1.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911374847540880753868917521266338622235369317931800607667263544333890865959395829056383226613199282902678806752087668925017116962070322210432162695486262963136144381497587012203408058879544547492461856953648644492410443207713449470495658467885098743394422125448770664780915884607499887124007652170575179788341662562494075890697040002812104276217711177780531531714101170466659914669798731761356006708748071013179523689427521948435305678300228785699782977834784587822891109762500302696156170025046433824377648610283831268330372429267526311653392473167111211588186385133162038400522216579128667529465490681131715993432359734949850904094762132229810172610705961164562990981629055520852479035240602017279974717534277759277862561943208275051312181562855122248093947123414517022373580577278616008688382952304592647878017889921990270776903895321968198615143780314997411069260886742962267575605231727775203536139362107673893764556060605921658946675955190040055590895022953094231248235521221241544400647034056573479766397239494994658457887303962309037503399385621024236902513868041457799569812244574717803417312645322041639723213404444948730231541767689375210306873788034417009395440962795589867872320951242689355730970450959568440175551988192180206405290551893494759260073485228210108819464454422231889131929468962200230144377026992300780308526118075451928877050210968424936271359251876077788466583615023891349333312231053392321362431926372891067050339928226526355620902979864247275977256550861548754357482647181414512700060238901620777322449943530889990950168032811219432048196438767586331479857191139781539780747615077221175082694586393204565209896985556781410696837288405874610337810544439094368358358138113116899385557697548414914453415091295407005019477548616307542264172939468036731980586183391832859913039607201445595044977921207612478564591616083705949878600697018940988640076443617093341727091914336501371576601148038143062623805143211734815100559013456101180079050638142152709308588092875703450507808145458819906336129827981411745339273120809289727922213298064294687824274874017450554067787570832373109759151177629784432847479081765180977872684161176325038612112914368343767023503711163307258698832587103363222381098090121101989917684149175123313401527338438372345009347860497929459915822012581045982309255287212413704361491020547185549611808764265765110605458814756044317847985845397312863016254487611485202170644041116607669505977578325703951108782308271064789390211156910392768384538633332156582965977310343603232254574363720412440640888267375843395367959312322134373209957498894699565647360072959998391288103197426312517971414320123112795518947781726914158911779919564812558001845506563295285985910009086218029775637892599916499464281930222935523466747593269516542140210913630181947227078901220872873617073486499981562554728113734798716569527489008144384053274837813782466917444229634914708157007352545707089772675469343822619546861533120953357923801460927351021011919021836067509730895752895774681422954339438549315533963038072916917584610146099505506480367930414723657203986007355076090231731250161320484358364817704848181099160244252327167219018933459637860878752870173935930301335901123710239171265904702634940283076687674363865132710628032317406931733448234356453185058135310854973335075996677871244905836367541328908624063245639535721252426117027802865604323494283730172557440583727826799603173936401328762770124367983114464369476705312724924104716700138247831286565064934341803900410178053395058772458665575522939158239708417729833728231152569260929959422400005606266786743579239724540848176519734362652689448885527202747787473359835367277614075917120513269344837529916499809360246178442675727767900191919070380522046123248239132610432719168451230602362789354543246176997575368904176365025478513824631465833638337602357789926729886321618583959036399818384582764491245980937043055559613797343261348304949496868108953569634828178128862536460842033946538194419457142666823718394918323709085748502665680398974406621053603064002608171126659954199368731609457228881092077882277203636684481532561728411769097926666552238468831137185299192163190520156863122282071559987646842355205928537175780765605036773130975191223973887224682580571597445740484298780735221598426676625780770620194304005425501583125030175340941171910192989038447250332988024501436796844169479595453045910313811621870456799786636617460595700034459701135251813460065655352034788811741499412748264152135567763940390710387088182338068033500380468001748082205910968442026446402187705340100318028816644153091393948156403192822785482414510503188825189970074862287942155895742820216657062188090578088050324676991297287210387073697406435667458920258656573978560859566534107035997832044633634648548949766388535104552729824229069984885369682804645974576265143435905093832124374333387051665714900590710567024887985804371815126100440381488040725244061642902247822715272411208506578883871249363510680636516674322232776775579739927037623191470473239551206070550399208844260370879084333426183841359707816482955371432196118950379771463000755597537957035522714493191321725564401283091805045008992187051211860693357315389593507903007367270233141653204234015537414426871540551164796114332302485440409406911456139873026039518281680344825254326738575900560432024537271929124864581333441698529939135747869895798643949802304711696715736228391201812731291658995275991922031837235682727938563733126547998591246327503006059256745497943508811929505685493259355318729141801136412187470752628106869830135760524719445593219553596104528303148839117693011965858343144248948985655842508341094295027719758335224429125736493807541711373924376014350682987849327129975122868819604983577515877178041069713196675347719479226365190163397712847390793361111914089983056033610609871717830554354035608952929081846414371392943781356048203894791257450770755751030024207266290018090422934249425906066614133228722698069014599451199547801639915141261252572828066433126165746938819510644216738718000110042184830258091654338374923641183888564685143150063731904295148146942431460895254707203740556691306922099080481945297511065046428105417755259095187131888359147659960413179602094153085855332387725380232727632977372143127968216716234421183201802881412747443168847218459392781435474099999072233203059262976611238327983316988253931262006503702884478286669404473079471047612558658375298623625099982323359715507233838332440815257781933642626304330265895817080045127887311593558774721725649470005163667257715392098409503274511215368730091219962952276591316370939686072713426926231547533043799331658110736964314217197943405639155121081081362626888569748068060116918941750272298741586991791453499462444194012197858601373660828690722365147713912687420966513787562059185432888834174292090156313328319357562208971376563097850156315498245644586542479293572282875060848145335135218172958793299117100324762220521946451053624505129884308713444395072442673514628617991832336459836963763272257569159723954383052086647474238151107927349483695239647926899369832491799950278950006045966131346336302494995148080532901790297518251587504900743518798351183603272277260171740453557165885557829729106195819351710554825793070910057635869901929721799516873117556314448564810022001425454055429273458837116020994794572082378043687189448056368918258024449963187834202749101533579107273362532890693347412380222201162627711930854485029541913200400999865566651775664095365619789781838045103035651013158945890287186108690589394713680148457001836649564720329433437429894642741255143590584348409195487015236140317391390361644019845505104912116979200120199960506994966403035086369290394100701945053201623487276323273244943963048089055425137972331475185207091025063685981679530481810073942453170023880475983432345041425843140636127210960228242337822809027976596077710849391517488731687771352239009117117350918600654620099024975852779254278165970383495058010626155333691093784659771052975022317307412177834418941184596586102980187787427445638669661277245038458605264151030408982577775447411533207640758816775149755380471162966777100587664615954967769270549623939857092550702740699781408431249653630718665337180605874224259816530705257383454157705429216299811491750861131176577317209561565647869547448927132060806354577946241453106698374211379816896382353330447788316933972872891810366408326985698825443851667586228993069643468489751484087903964760420361020602171739447026348763365439319522907738361673898117812424836557810503416945156362604300366574310847665487778012857792364541852244723617137422925584159313561286637167032807217155339264632573067306391085410886808574283858828060230334140855039097353872613451196292641599521278931135443146015273090255382710432596622674390374556361228613907831943357059003814870089866131539819585744233044197085669672229314273074138488278897558886079973870447020316683485694199096548029824931981765792682985562972301068277723516274078380743187782731821191969528005160879157212882633796823127256287000150018292975772999357909491964076344286157571354442789838304045470271019458004258202120234458063034503365814721854920367998997293535391968121331951653797453991114942444518303385884129040181781882137600665928494136775431745160540938711036871521164040582193447120448277596054169486453987832626954801391501903899593130670318661670663719640256928671388714663118919268568269199527645799771827875946096161721886810945465157886912241060981419726861925547878992631535947292282508054251690681401078179602188533076230556381631640192245450325765673925997651753080142716071430871886285983603746505713420467008343275423027704779331118366690323288530687387990713590074030490745988951364768760867844323824821893061757031956380323081971936356727419643872625870615433072963703812751517040600505759488272385634515639052657710426459476040556950959840888903762079956638801786185591594411172509231327977113803294376547509016516949650991607383393771583323024570194834740007043761867199848340163182600846261965628464911822568885752134637549025418083382138352224525872678937950537591560357945469850910225622545500301757104946983348354532383526078709221930458178230601237075328067836854130658463678886643348624936801019878279963067025954326513780600738639290856483087415761874189734584845014188976529341101372215864355991552711362332200352667785915989023144616332102651966590763206152438374761904953158296883626504209484010565458913062982771724980964195947234046511041982134768935401803825695495628603924426415986748598228006035386283916620125282660749330619658496519997941939322601723571073364253708303301143362498575363597042444647599899995085504135497755858593457659092653330725277541675843146693676780617035012003844874883823376034407751594778122188307090008738662736209166079905022698927032189976037950989059108591039296734561461070030458192127389259926961062116764364243835014102040863214991781529796815223798322427375365700855346997965541385905032683616022278847554706269843910885210302076860470680455684656049168649886061622295232390709809262930233795648217998163264582788887767452084637197106347892310667546935504761519778169902588184040792751090182448278705250597698375351430622445090220238243982312550584162320718831930069360646468209659500654929010971618652636721610741713618377667332797562685480124565768279031760394655539452314338756773034979157858859101166374845567584795271391860878254010423332985744274711896961048512640197504359909207662155899866073683762318835884508129295011466535482817144846405686524654090781547161962578446957526256945516560151916402921798854890937328031465192224759003096571549050536104377686877261915952844920464786897347370859841384513162119297201263424077369454598186502965923353451256845497454112981973587667072860161605620423063606613028149677344579773775055756466547525632264817711699785708712283154310456912326250349768115245217449739613674882204648051968875434196951193312045021605142938484475452382127014383095785581361967830231068508084587695205905329468338490471209916255636503400343967082893369836742300157511738515126912306617227641442160751291734187471431509324192491416096999867281582385925735982389484927491964615227227333874631213843626211637946706203263022505548958057308375046129923113629917306948940734258831948399927416395098443963405763528471756276219278652253960872013108048640653439616887545253426309896951761901977096319225870934216595597447175015753837674152228057065028068314335652491719973335840306415355075911597426436648284662813680217450590970589460274429263222221545945075804657120606863990430823693969320823749076756119017156130542481331171524256847846336377001520441791650116823257523616049574970639082244344451035121904881983027600176680985096524543900719909803499302686067552387968529219473239335237008665022140746455403722234348167574937314464092837900653919677401035586193618156683661686489239555496145282647289499416061580304586789146197172815545110005666054249969197410279874059327643495371452516769462069859788094695017473022841427571887194092120913799405943037050436483860043464522799330292390186592268987499211325656055784014233542605895105620369072028939315920440476835927636479960059640486076198915929819495087878602766345990540426377004590080327943472062982544525635647954299248819864613617131448577346995347557715549138423928940175403413997384616948129347924223460974301962752301382860722449638095383840152656781976450758854785515549234523478164603306293884200995080326014091830257438577067102522724366690598890854501557075423031666592472352892470258862479488754625276572728515111287827067345431024451523345654228431103967952829625019369893998347396176398809573541526014537296468147382184360052109947211941659149471670520379225520963364584846804144778030216472862399926404836350877374782450163820089524032253437992579012926564015553775409175170441962728503912669595666487724296766036730345366873404907914188694521471582790815723396912403998586939085517307980195554612851340891206108401221361707057043006056924685591646883477332085689141267942844804138468281325692914816010978627269686686737391711893146226913489458042778989960814470952476290501926031164920686774331866154696689660182266357878875060885624356267893279735463390418210877463803921624477202567269959639182468778845549717903851583920474831990312762243706623509251877543414010711233586590774812206376345901988422547272765529050439950252444039113658267081330058058820946031020826134136912757293699289302996173089284367031523858975398738893680744152637379424050644876417176861355234326986572897046306918017427797217388985944328485205725758833756382015054672065167425268189485167332804630764781329313260289322936604521021318981298766152624448748669389040617846991666541748508459797014617821584501491957210982508923451747451225432738681972586494458808377139868506598408545773165416917406705211194916628633773226375347566637002212032752438999773600607404270297220363477804829883485518952507947460551994034011077116972564426100509205984336253584706959718576261677663021174787834197564450183804102920324040882661734433909026352235050682858285443283961848092537613082011562686990799911708475558698215031007356324042198856958420068243992695378440320222237462814765923060554747693683057654967769047115962550247450780962483744990802561375091562235908101053449394177429427709144516666870041522854463807661535114155648785493601138747310382877331338839170964617482906315678806518276176579853502166599860746401267488412113009854993833710603196250670279752431011937733554853701169467485888836308033328773957165627534036727218070562256232637414883349928997025897729922403694175074342731419415743246679457858603989407509735636368881567215967635438066559393893438207598406121606431766442190267777379914557994503146870871626622652413359056992849400637274490882163524294802256633045855363633725176204907462406293896239062203042487268843237763173357420575399757437350840965779218088008942059066257278230769278865644556375801266728095252737982803007663697692816484465127747382239706173856750714669274822037488112256399407522762646499465846367401955997370283839311988482233553996497833316500846749125452295651240939096378409541690123467537528013908083086302265335238706927307198465464945497910113428715463669554343746215439188652608536697436653058856216441164806891283735779434153060947845727098703797692134620596953884382676082765918177362766991872780375421995417242833579106452061373688470854516582219315864537701831340181882725109992291761471186052917655142288112356621724169268062064884531761516427295358579837541237587610041547580559573012245927671189527733382335604337420132139280431705337946364642835199301457670649184770776895988542164797337176962594393864807489363320109889364352832449413256931743832350925828642127620947343287998438719829162503588636885744089609161976755302363614784018627182770889136039893307729306029671776025841803013347547440609321822266207705984247608263794138859860193520895982194188572382371427193034935451824011267104607309741268127907272643868568154472914482676138994509206409879264769257469881233464299526730823740572040614374870086704861259959017842497684584473682482794782475317633817481479957103120339634522674341512372232245462654632835356424662778646083987217912784308964163642223715282219986085060015824516947831892606016582749114277493350286550372769106810755782646334039921922260220859096784186001385965387726582624465759769406924054180444473847160790144974301805588933762376129691822923476845375955646842112269873163750624997118229148568960447252776009393434355833919516513298562364589314910186084968348033809093273626106205479597042129866988357356040434712839980124980220946685109349040787845010211768427634507913768760974690066575968304351926667656396092264884567021285074482118483610290768919649340230064175317348391475891667202306924534710762771979252499732857689038868014178031379948365108952722094659130450665665825853917469048687264990254676596659916454736513425975557739734850652843997738449051390582943013000836696145566974853779340788127721579148721071925886908927787873298298221457423327326598798275695089884530624022303648634772296705652412703588783028194007498057543901628578674553132719765260710764315311239152607721936214434609608975872693422367433161371857457760811775151806966210479558514013006970184500702629047949257083712017527937855495762739124558714833201017036184052163681801734142508980616063467633085050418458581662933409347919910368591305378948215865170118121011333000669577523278668551807825675283614949492074583733684581369140797759592526727396642347874661439981964808103670506600523826916505514463471111686742817731950256064295163795965947564498789146144692593662930936480481617405980821425434052521137133240811391357997162285810141910341046056929078249895621456004104569222141683089323666251761869627171945385499855148427517336924120268015992808320145830075448474233126438780847808505610430490999936434590519518749484369677275747335967088334960915744743575039860201639766611427653695267044115520019391484293460101512953117445887648307037167739615426559139908303757766302130990871271988706903293047012410586150639985299814175780430348080358820320201104760700475571016942341203410891564394782530316459373043755819468675253495323013027678235356011664131117799609979366204344956968354793075431132755864318973151517106443218924979327780126496476447546707816580740613125937527184740881611547981830781675104780929141395456463116058126905175395355691577558041067198123163840527755605227222376471188323322309958506897101871750478190653349485842325976225657584189852914471783351732260298578629294346505636693216262767381624595741793269889232722066663608199249098883146852994099138673444604967084244297824363023293891035596560173994220198869025724547140163300961214618720836510868818533406062201709951582707044233704218017669634913369599606432200532887349489313596603042438080456594474333567831672703729636367594216999379521670956923960576846412434754288621624514915779304047675334805303315330752154152638571052542209093772873216992199375507808872941102597603937207949463077381632162767775823154551171213360649644313449861301469831868611192986899657750378451945185472416220697613088630700071044963889885834103355550285958022011365854270555776556266893128476214953628830759291650706773506692535264469533605630110068858560930553314230646491157743120341826640878464898983343645356941445135956529994635319487323583365414991209186034069965786513937214062783638508477588719935005747909757557582117540535143552386663933161852370520496799125118267618008071764955566188644004316518590196156735527060685143644219213731610020498538831198186496931519049371921627310279883133775926877600267599302244405536314201916427741190137017541517040245299437951529236216669561923138293699923701939853172698937385991422129038984861084926747138259210680265055067686277812334573395998984469081835508009789883805030757266290867502830925758614563878365629498105357359291749646162313770780299654850255026431097793473733752437948325269965121850099705553085840030986124673043292976760819735349213689500849528664664083872828601670868354976512302116930805643687238641164364544895516018971098452249187837989096657019507834435905191227871275575773341415196573989983425098539494998814124386783446487382737617054230627047654731826463109229139335961869117977283179186778926642805449809194059356299841483566584488674168179733816426574010894085949130007202158871807825225456639862181398049030521641626474058333537504000740194482254279993710648491554051780598067761215477419977986371595520282750441625952137023199641559040842294537084505318233906957422818026742093459294317217666470552806755415269293517772512637399721044645520584157575046484945382735076490123836824504224062769229345994411749689347553263282342701496821698065455317255239800177205430712701859568436956989682160927438147752486126807182630330872045385865558768981122217545363004048974876899995830572648342759013885847650398193058002978990441432073797768415803195927087898620368685056742825309261613990518145908995638631137557971507261529413031744549240214796474600696703127864301901882032671629821211425236732090305576036951393477492272196252752419097926543582705861914382623616959655457062043621453691482259310567136876211202041821996700458630548647143531987653019633077769028567954324203174869542397889710246686325873510176048185892597386644181456232779945730095436741384131747680553443799013645532685824767493072220290017624204572899063328853990785109936309835377769368269912470528012377823241144269659139301639155579852670589412792629949943646369447012495223502174683217588847575534874631318516423179912710067113699014422042406407026337466606307909622448910012952295360403668628955446635423755484182852467561032470681248302492872525386244579857971959341054060870562870604429929193337498430292976756886861277497404544596676490768923386619017532331747049984158397755595545146651147250879200087660035488020035434161002030518353605502873815042302488822420194728934071708580556689794319557157573087111975137463957108621121487407227577603263648266509869207483227809353713516402089069867622140647013682398254510807531771186322868272763378352821217415520443340243570082064155437171634964564319520089264597602841430519829698823569511962104815566229729558942131254351521336588653292222429045620885074161077695276461885728662996739124102792034674590441155024272228155089784892580872312307485634128162565972301577855598002811368106635689273970968221169107515991963438732863262920150871713344066879390797414746430797933308087303569871931789938125788583061576198397564174362564762176330987417058805999965280146917228737151809411788020613827496544289659260499647182195829621467121208093964434800407044712416248876782315820010587856503237809929041755371805748914030024288439177034604898982947108277057789281747012124517625319091840930716296462281223680297332366612443586933117516966634768029462920852203456349679288967043930780679153784875085006608997405328784042208861093354398133212581232308361124440821151281651273249917530640795897887201891722073467939503296913126882419421580246056924287017821848968903809409746160325098497956101067383309908003103061062327328071910393385789880365322633128858758849335976469965590478534591797651908013972654581248095050287427962126428920609671592892859666275191184551637126198051692783064475350036739089813871196271150744263568262243430109963230818521128209486054053270694331365502878232501242669609190991332699437370734132107750205144626470238140622301258549521429930476847502258842909446524247120601727277293250588344365110452973847393594207262685238793108682903080965559559013456239554239285237931188402593500525348153422295334780355455977861008698531813306257391036392353739042835658613135128388452273367498419682255024368511493785527245217765595687762409905302625613440810368369543568085239552305262881509505250717177341555031387763911931672066190299924443513176141601484317262844283773831944689986306174983428240216193027142577057676854123715871633452769345199042735669354504037525463905078747782502540828519116181960611900665979295908076610721073252958873241805703943045859290992036451419475228357774310243483707649281414271709919012809418818514457535960087874805262121228996621627772984862020171877488369104630290566741167703884968317866321153511956045343986054020293223347161970289098544601705283098247817743429639598947113871030561743523826732065012379226235379369672525243862612822685804855676904651384149202175335915615324067367968259928137631808487144047711860869781970302767190801042705803391842578715041768238814749077317528795355505823877498417904009039656248835439331051682726416027167460313944021580518604797251007423281044846513212664007414880698420035516626684693326974069220264037350683172129899436237592649965522768022938981200372573415963425635415874121997598777357975142364675165996427364362610841017185526686797801742534004141318766541628484462155033194232630212811748085283412716041756342629789618635921473287387367269420363405259673413881183270336271391301410777728701625640766939427662283071171184624298272872302147026763353889116701719310504392825831053783052495390403175874293993539406055814751101428693264550079797702308978409641456191125718806864580525615963438032487811639917428203773368847935523488170788837009813233784267338541564616445017139038433595238203952789906956615830177685319382177612963394957992303297948233307557117145773354542940481806765251622317125245743833336774488783886952576714357759105571219413616615540811502112893050015496439756495958371695304000579823592594848131339422310741764349049259043964198899733995925042405279441845313507242026614540025633679023451836188672769729052988544001230943520984527859433338277220802566522784538261419942490050749739347054906939862405330736172083248025167237000567494592586323485242863167370894965602755457044357340712628723724610156571666948662865823389675749344743905685771128256232984409312628633912256472552233362007583081457561147582394749890444460343798251874970324999208142880115737873377219832927574396780191032911647570790390919017984497296390501828617946437210922703033786560675095110678696742088196344199447764889230532436990204662875461679718937492085329215742500061284480077428158743822431740125644766806417187557851782393913855113734489196723682960427366184832102056065936553106354078645810609874339774731407520784065607432490419216303890531280167770458889299010030544248443656701970524526449452389484606160298315711471604507963704973723574883890328765099799665307919151526076610105463468209502651808418483229626652756619312852946049857237440375316745747941421245829303982500644305157577269491746318410901011096250269990366449544054254214293868055971063646758659751454514993508583817029855060656544656280193213970560756843663896781237680772591742319198147005917044929250317068935998761041497197336635272895650190248615795587743969306899064213565171235282303439331296293016180944942494644623363438076407761028024735932555562660115058349053239081945710178176603081032181108412328009801692543612912362856895753537270851504909231388605068348506818735832447947099883880789859022486040214596113683887001611387935037790282729603005464884896821881632777957106787994109975218711537483521169042701339747370293549210893427286160911127487656477863180582569459349850684680486189269143105401908574001462136263415076512263282705965623501334321745729576325102959946605873861913936492082908252133831991263074463528163936010741290694028223004145610770696912526252245236711880066545422679872506878001262207627616468044805257816665965828178794629908844247882324989338548982751429491041980712786366033855243152160350334328072468820421698789125994928723555714525191312891279148833737646583361123470469141947226653878322593780173589431881200932071644416096635876441913565039121003194919004730319595499700958454939342793394547212927304091989744259215893254713943940529504150389537169013069920396918641952214603157754258769043338985619184142040090983623767467943551928618005762792971344193888790328742818869170224611291209633209749784492776795979270436724734532494113863264823121379539551072592526633531931122503179850473564312323632098160284428498581026876858872578143634414082176471020866006972062413625919267407830214889065910369016336438833728561990548422370859643934634146207822273728845324182748331185977000893549457294195025753915630303002869634489417041252702469612788150120578107971880718275835742579465957428432421979036693972643462404243653631072930771488038928803490030396835887960207989116985814953575007933647012553378426279562471645318803804928275926653118052072266886516558830094293667208832551475104764796847950857788332325968146604639970243669936110061313037249796831062198017227753426748553750114097426392202061180223788359477623918833151610996068551562625061170630792213501790127894834906109683201506469201597920585854434071057772683921784546661980105866164638859446606601076406827643705550820668087632970423584941998214449342745435157942032304767005515479430665599384607517754837127726126352501352624793675674521425664571561307364117819492315992343931738891332064744583014966683422473557050664664430365682907694060260098073150314951061922940867429068625531096572713409756878638133390963594954106890321634462152953040033322049146955596138624036850571090856741959140110366444230653147371405783455373994511486742901580493256130178180797433499281147683189319871954946103410596383961059027908907017624286876678484019226905126710160713287054855935526082452158289692188623998572431724147068448055558655408755011351126460014833706903125328126278285455629878195683638464956936578492639979935795160211943568118645090718250483780492112768575173726038399198518749966198738961724665006847196915888349639948877609165657982320135328499337876619045216776681565742157049177577108786145871208017454565049186510012820264387209001589243818844702814038394020643760445029440842037470310865662269662622553981780182455425818698039139731229117373038044488181036465553687136746909757180313788944328041575716711092046771062643156810839936887696663716800958392169686508697362572285298003956545082276483297038165285109856897397609271910084482671389275423552469874252041707562213675148830515349543216419181024823042193856203700606426698413120499567715643387527431555234936465615590328743497670552394704179296148698469232522571122576639701764866203782826086364991746030017983710045416998051145715137623596023978918090704515113597363765005894698617062115288639029035854420833467217846534535212581998996264674478903579452881057929838567339157726623382493763370199054130363761490268837579723383266521356826448472517311089722661753481200893717401090432306461949866115200033585295326424227221255614554364840389957527045610934734239533328428685393356314467624434065667942998369864971155692528039569675738540628826905058118778858503400453743584800679458390805335626541704850215343298698567683432057748960336713770031773707641601909956791539735166356364431486639790167771595371713769961060845752328123722975292886361653247987259025087515882604251039822225247363001550317297475562913150202757891693922370130249990068412348913029342283828452088063825830257099329614225771469058313817988958265286063235216348407630550584381426595486135098243105737366985400042393106231643674219494169161415326551336604294968192895748332587828663009084764240461148734119154429152877518271197025072176965155272679967166620191010912629047686954009623003140524367932207377382169349131567174079797167381032667886952155259060975637858822515686313711661677109516513732598662807591916459086302252448785388169145577283749340773399833237062669802206940095295861169432517416187061017077191512793803113824872062536901730312132455720506578894266104303775290312481856122690166863243755827489741958686520808239438796688174701083183494885375114179211905921898660494549455168372874675070278678585252733491971129971881930897687083629456241279769489255644578404445923780966656321806276646846021209224309617890816352226213017565209589620493260082547331444074608918210364404485932389724034525696409403768332551877896586102421282513864004501883718910871126354058216180769590782984319416599878970771980773102512502472052476475543788042317205697944981764289728010958496048969551765038802909479824940890619936350909368700247765227573868492650254587994980706950841001893133606949121408195609185239628215253692236333674074747050909366581585920133810412197284860918154311564649099804495079580269640481587091962133735172854341946474533358861528864930906727921942924374739261965283495745599112160502382840124020803998900895821817098507669134913277246474173745558039309869194481312713316514236926008921963758720749146123347951345295432705662416474991433338383071638199132533883518859838134812381531014702562660703426911267057439941105721240373629613570169659229996934456988250968894333867889831091029872175335807091565566295396434740373407087152322157847511317887773339710006656150625264774593313613640460872332629802880544318469132444880077751575625642133097357035583061711397610785507498256067578229214613471250369005152141209946702853944456709859346625950677039391274236038275341488014137191093380000199478940689317424790046574086000748362337910561618848293126622285654029796658764804320620050746284180604163833961263738695213620588697658388399384527694739495420030384896862698701812072359229624581650150371495154436979410243727033275673396710549499111167092678638704453297689126143000878210222216513034664061766782081493523417303350563824992857884922386219770809573116834012716662267629498362279985467999412251958528989183456556899908368669289890395357595593168373865038444766633809660955807370230287954822335862644512485700222219830785972200903913679083220113057253109745993781233065023073919867756054057957494550452117635562187294095704846126273434451924898618254590896513904738778758634845022774228403646961915916195394461972066188298121567050233780372616855258407371054390581899628406668954949336221658047307168277384849625669219010577627083168633830178181914246956184295198324899147889712960514846718092982558521670307955569890261433699740695397425528145950711795934003775235442864294242904548749812188322175342321579432714712864885734959189196070986667261973108282449032268300396262217144701071037534719690313387406487690666840641852692944053947071530326786750446010487590238500477365210035045139199424623299816623178150912110152245246443637679466853519231965418233606893115636245796831487408713177830840294805875246777532479509360041307573926128569418124147882968323356962141799876458267103613122865857861546538548297185286477760713691684619091155260602659785506481389662620519700563105104288552179754479550532014820381430380454752924593467150190682102172490445698701621020998070640562295529700189939288620471078943942546914635246899892299014309836073441443239733482844678154650975553139711006771523809618486513058801595865821295790857748545236499379561692327311209064002413068456917089488295080792749349702799547901767078060060174051555872979126277547156834673130582904722810556727513584783474273613909601449840451751243201664338981832801725756162657193263970078839399967606099060980326752692880322048277508428039079145038695132185746117106167795440907103185893585176586163200932505044981523605166358719235911591752862283913932674124446895590058579228539685112736047624865650981956854355372225833659576403008258767608032769108767481249531278498114875554707804659024761017307852241689171743233803385766555260495104664866797425184398657135651475736884497448919893724115903318837011995855123694238906812919888421503703483395169657016741727094282016699816388439095523027600356820169590877639883042756013235376955920065781395467261731900303321505334068467257541693231912143079542174079704875667888487659119532107831266533081745970454637180338613166068914051122714709212304504396701176879306684119300668297078530000180527651765887467827584698411463101663955996494696582108546049984468751014585957813264972353766699171232442901614865781979935271996467416887584249025953967413113920968821596793296743285282665647179106573996685577171178990118688332951756202283573224942680365758170624122574895642442131866610384626542182002566222898590786037219057032321501889928645967212304158653648107153553900018464560840649372414153894543198630576568764337439121849090355366210586351476197505620381688143522448199012482920599497342603275838039091254039915993094743060348666404852801763480131391766854810069429776353460698086913197215791087870341104436782141952321709875130608554643748502411340099298719785789986241602420928808613341163245500445961969605237309031646001303980094046742760590833907086360233139489933496670856898054685771737244599540690245069483244886448108612378150048523933643664472363537763306798375376218790691496851337940337287684246442009085735502731136708032045954476462096664879858808856990926323906821211165269969728372584781506487982398439656907519301143397223081153046927756707010221016797133993519464565711893087420385435623782805221559496399664031452322758057818856601945002002402288357582369814358462929002525307915154957833561196927938798527254526078214898835873006720083451607781100270198985794053212260090913131232592524733666039510892239983650830948400456389253996179061301806127296251872398417832720405015880323488693587816361485955521641583554868513291722723605106314877087970141019409681105136501169109586837208346808202253188196437062407775854789975646392922230238874324002882812738357761934423517888904203438511370997138933511217738167030316865133047090616418331698982003185305727185010509060029614272940854582328197376424550503527467732740688837410831267684934641392316599421056961948501000662952969627252516144555234835049389338177431755331246193998282086952326148033387532814052642316426992416141140801620628324012884628493553426235763066676297204865876182564622238961355853949608291438917718280844324872523013023666896534387801860036015017164954661608798050815552070512961514627070616012412936841710980627841370677230198796804930680022289590733922552648166639963593764113610155182629581706458727738005382289504640761500633495793355040371855304462116195943612810726346147351083976749334829238506859980703783802530800124208668175019990057956236088000847583782922590351094260059346200282513418152439155680534317714597288325092574761517832929779341034262755032826826651304474017675443087234872286576774898069506115974674987958557581883875555843331682103956006570235203519096300266376477951777307112062719516668463187579130003918479610437641499459959721266086001281858476027870611299519961892690450678121928367727436060224971351419952146573758956170350155282209968775492109794295786095116588585914613099427729439288611871417006309391855092162066906381636337122658481929706612910191200911796382844357793766323169582354086426100681259070970232866849936360775443146143364514663920010044939872091380529228298148024329152709948534993679984468736952583259459606199989784621537005809786844418148257173318730389251828128508882994710069927758073350230015032243494269193589224168048609043078444818279442106260389806105480734413985258741006101904373189940057690432429721049359140787707193521274944657774490105263381904274844097173311634172662552493151710861948186476413154273338223002105041213461482889842140393695115538304634359163583207949736032467153187179018836118347451374045016406420303960890846074009943443130769711065014642002401006343124540420788879039169301734000296671040360890747240253841811507299431495832022356490936408447332835663512233550826830123577878005914910109516401438316216889014076396178166761439229554579468720357396896968396131026872475629517587469826607865241504487304303996161646371802940870825548644549948340564963220910317091600894751118855306323547771971935884649885544269606289350524688001317862627999505337778831130432218394381970361692946234659746522247907340158727254771288925581074829942678870693425740477858657495172247436917779762089429172524368304467660054299245499551052486459095507327024281309888917386244230135804171457116868102069300843213786412088216525085638446820283542607962237810487930616096212090054613927766284127347762313283548217218414190574484518193975105448786819898440749654891909855947196960185175822296888754163334752240837878973577304790857744745561283282160215540582740341316153770306258683499805523904105340903373881109789265849325250281640396251376072563377014606916706653279280422764040779306324411103277569637429448449068681812725748875251592950772325580522895174407248344125099712404424500297224156038994555632241698524677647935458817114637249456964504466438973160984592053220552803504270871387036585453283986000970196681507558865020301022253504036154714430721203693981783739593200559338447809975520691405267326594531046464303453911717052806200138234758513723673941135163323513363941473112172189701789435590386337824582023808519785409383741389948250697156007058186971718048887718730556508219903265799167099137599471554888724904971048809123336159681508665453304089742091897263038797922491719593111468172349769706092338990978026500999165639681359156124116763105018106670607433002621599379513613808722763019013800846749797404532680808711698944982840164155041794337880621516712224638441833927436010122623988861431563164044877856977102275581354324216289666561076653752758112252996785880483784302249172293830755932016234042896592090259750175499232600598014998331928034765597545301879229833608200771630728250527565354557876479306015271515971405833118808720370866805625129230582110917236255848862384589142656807630143495407417151709451589287550169549911184085817822963825801094598954059357009441108406383610545898448004336144706220412105366777978103187120995518784148977346903070149408278164338644798781354192861968656027378335106301149521887247739988144258069772011535036067045449708733199175127674786225751267300983421285697514446440016467071973595772378288002844337664946282780692020592871779075441764334958566812302252368352395660998242076749604322787493181086870488086266924920857392333863761457256869505838597423808293500777735019650717317862444308303437942669513152529986177123039663578639354047123954825671210606448504345076255493248893890903288572354049141675923840595772679220222242633423376755578983631649836939675433647916413748998252872958619535940228926684257427556329972875638970721880677771855995940710902833159737895200878780400365609088986735780286125513603609331042459550414471377346499886854430677426254741399057640418425673073530270579528074985560135608966793742559382773677017088357223900864997304178966261635783222521057825764927373901398501306146816884933931269751410069026203374981786714605859817754742826996830914240395873125016833186296178972382201955550366913267157640492813251028314265958388458170646637084383379028433197718571653149004605647077276498658855655576828652290062938623312024704482997659528190013410321983058499988955186102430476185982897971452332214042429967054940382431520566277987408764415637898582291283727808980893423114197649189460325671091481080222612047565783427803700087314314196348667145272252703976920526227420342658104388449541450163391604592082810751224677347342193198963833641337339037752731499947970212248563585495892029403419417836398606859991271482709971906061475120632952605658430798751985860726089986829760873895600772193888400705777520140794339544010013303902760270691601824042553474386542235884935539188149279226663534455403738820507031119982021278289695096432461774503930138467958237916677666000271187672581198961029788697385704742296809864500904350683588352012903824154874280632703719531023131695143703183020797365321227013206229613033295616494620427536008614303495674343005492282256526840732663688870270334777717994403332857625478497177835397926737114499816333972617401472317832510088993200068715076085775753656565612838764201652491343535402819280251412769300337485817876593780160984366282785500293517040159604056758105030458391977361151393097287397020127652475145015103195531740944461907269263326163666507499604017837543869152497314757618362683908337505110150346234482806819839027744138916030448045801782118377893932092260327135190891192824461337409786214285321160005558834197588888903124881906790970933280991539896072811527029575353625981000532559127638280557306554346744656668356477471947228316231790667273618399322310207653377418771537264701985760770544129941903938542768313413248799681536704827531869628761459584224562043589270281254071358336553085939710270402286147380587532099070151675486037250282270296837954843031502897041460355934825812859405056820830139297432160748846751568600895538594019665920520278574487272958979575258709305593598316054971219416669291566010913222614628836443840245390060378025547779872904816227564301679784687034015267634752504545389657028584927019088170290189391691883279628465189649434064158562815668682335981052038520955861567063600533184225615186379815303756362558028881636442707241269534874083161844350444425088853301809256446160999609111395181443026848908965891408842756955577675981619563097334623730075104558200744328154687585887043783693416667771369266338651895709477311270937671386821812490549637511720088172066967580084975391251766584035574755980140101265308114872460715714135206212607647781623057866596790928797311837538371564923372313361505229856902887361160914829115152230412178416075100949676913339882703426191720404270815550655010051122547619919509639368576573744981725307949569823321293653883365375045330697424499998517088681901830414127264443196186052118058027992640922345950827800013624848648328288194128004215618009975795598685381444697666196506241819058985155989081911341603552675005908014064934446628710444178151594265174918622426766291385681077348568009831636893393976635553525066272374946558031433786098081247300284863564244343861205495830863075708006028254347059353867075835206890599469148950481930972906746904012360712819012172105119242592554425134366429473863597719426502912714189846518723384121939814621308542645991658341489684956036057760447234638231093714993102211847567347024425257066975755913444707300811680492888860134571555934423640254440979767463490761168406110652352333288486364397047413238488654158150197004187139157066467835699468138534917256848589412340307996469616506698781901349501067520842584418054842892636819147782378179677652275917527696245510763010467574855425051019386538999483849824211403831204779811530213471388372578610760142767617000705398504610836974061737666314253105824643552551498928053155427345018006413177557019201054102558470960058604017611950292537430795644266158511650697308891446573442509253128786518109592893270365089064912374061756191040058589752412340869779678726267860044012980219045047662490364895221851274390747570581525830970958698348215272880427167731387815805241413939622962460965228129795651890620984475517173314120771043320236016728907576682433719081584276142483349201440959489341374320040023152714684158071380637773648965875675091298354039995657542968369799134505567090168799995209700753043920225335318925892586887872355986992197170155999867790781727383331876952731072136836103775520884167140178240541182571092137821438501459437171951751548577702271714932622548288464516735501551164714848547302938791348043478390911640039835440490411322068605421067182533986605949385580568199749886158186684544446805613138211302183789416979739007510756874963986388256526500736169501202836585947936525853391560666549658765308194907138442039935586868872689176121361976109209390995036541611522538760841663244547732332945383624003717655644343139002155032374292897597902294974102008291081686785669447212896646057268498876753226465104315703566727428292804578704572520572482661749142246061971251449537629463863092413638779577897721353869005334312647515087418638378428251479072900176064646840114755330764542362346775128544893883335325236645523308177539589102137399860832934581068591520274457552248949735993580491908831992619676774104465082395819149502395191717003566410794881833100876208090856686573795073799117434572832304921109632804573910493603227149950785806612890278711149775537500211038590763225012632295682650014830069936478223275693552336373652586804342560251094223966273820771095186384015226136853972145984423947269935104863651831567915964000476796289984060279780376964656519551063291282484613855854144949170087817667433688922144831585371353811720242963011582747854165788719332138266509898259518287643191556114733889567210140372115821109132480468270238756687343338900782602993168053610565973867560327151275424451163099341885279503503692202369670572589397408064831759353578603833221084020148954664420396229114328259072329199356378532927911544004361342016057414210103382425777356025993708375456011364413243850375777553898675571298529379517135891308601635581160937261092498117851715275613151607598610427996808903399517122420367593861248620230095411334656360819386430973716911136979496943963345597262760054373853556286865717358459635123774246170515653566182188622247650341330718259383348073849851839426724307376094421313947661814733927273806969356142804226993735748609974802988220310876094240890125415804719169799083262533667281400656451379535171491938163356154553907845647703278076245037139133515314415469187822438622602124034161019927076667566083160279391326805253977317680685519016225906553114795950770077560144783827799334829153128114123886425594190098274702505816331333222109368986193497705876571576620926462990673860308555749692722377439984263674045781114064165635938154973335557251985882047881154534637017713901158618407140698874377925150125023356869468206579161089584122190185854952577599699084354756593710665410175578770541007690861217172373443729091891715359916031817593830724390867662986619932043290657012762166246212673238443173515592651525073755129739148084006695324778726582588282448342101012292013385325601787870904327816104218865267619758168628674898969641459060767323756837951943768633461988492842348766378316741567348201648682980342375286931085176896210543322333406874961749260487136130245275470371318634409315522007082739057017476843491919032956148195188279572784922557946742076507910896873336917827504612961328590837270907688632203831078364752332409648833820135837083967777044078294977668555497346082201007311257726168225464935581809620361594370143382418323149323899487159387405071205343840756908760877402257894781956610012769051157442485407462358734248315300970324713093086876477999044404389837224930054667378430406374638534802082030199292920596809179348938191280801251209935127658440945521547540545849579549780740558342516270988675214614377869590845104420393772840835923262347315690283494593822070917454765379752956245301257270042294063770449912988877062778603997098419603914367995746066746892259527186708892497383610281078818775440671005939407246941100991720888269882310632687163459622867056092769361365975877113118858180545558444082688206100097870305743986326535770380878184552341966585979958798003258221076371600043241984809140112134369659027750392588214151737480319283874490215551822494767470336974538000127068240240509434764407279797462503630303681271864655627018293649275114657923995752351593954881345034553600794875595970644571354535865018006043425932786979209157237721203494627274944248532882679810710831899699964209443666003075848048178997670876721781151839629041390839491832233397849187905023830079310963440323813481138299998931369384663115311406860634861439496146652472374716249178672829286474202739110604145706037212584607480078924134313360595226648144713588524197034474205278894894696663511323795978504503238404511940224948150911523393356274479523619920949980764770992108240898775289794295025357345111596712903437216174296011656058117395991451841364665546325103200803482944049562625138146520577643940386627326967389404098219650289948002125137392977726556605298201150640210033749641320933241308039937374544650034383611244474927674686218432828501150204766766400606761872757612261995976031811524346237730990814031484286744130721279072921516474008880576357571671266715374490278245246999647753420312885172651477214065549496140492575368794557859472851960935279617645065224430961469052429880286947357156895841158288165632376451124180779822432631128715580727956204499021040981057748554482247571431586896530376532887327797094696986464268366270665540377829111801636063590751051107107043477977826467725729098507955687314978712680553117166162472804025355659802017086630736891828094600427232226818505072498059966006829685366544279496406965951982876366515308091688716596768948126012677198546118739269749375241510675982849066087987856033131265298026051863691283952515165826521211257540709373399664913541548770971630520923436675241266392097708940968535097407477719849933584052868968275217769510276047470013391754330091994597929642683975648421152123220384127249351385866833152707196634534008515396228165423051598469402203877176875135511593424379512646897987709064695668667602539053907591397853601960580923378247785296633235854830378867637428397247951888632554042485552677329061178175950206710902731763984142428835838932651022837151705420581310614074407816211756720746694490294050746018964623830413330993243081350400760426144957520716752768730220866712563406248667061705900491536831889156163269417615876165722724502690956044221029293264705415407980985387296216178155463849850886562501714498275516322136332330050106808456981940040082968806551581815891775059446352695985179111450843271647131907358183785023300317180779560729858927385208995887507751209274736631786867061895178197123672949095865892654714445432856194585219098988249617096093463400361206359732733425109783675916173534955841448255708485463302480486343646849906939836336764568157931745562573902280480915802272605613726298316835271616478955573070013802373779474914370531571108143761778551963129405917059437533763293923467185714545854379460543139425956752388171356657783845300690107094539720802258200949101757359145754170766628078099733739459417923103007724693475349358606505503303316502571779325641545035024260824706057213099816260498123813945567052616175456531733312485760791632451876115277272888752080183964763611329884549326845070863686691919589018562369106098920242537906512294066735594761369670959513528967674808269761005048629389565823306933637928699011222704110035317110923986753749433214586479732039910063482569995645059179905564732837318134297135504882932179948830987203929110508556559225927543462207338375609458739943267084860988462731505129556541993344576552088602705867323621840284788588729294544478283797211036753563616677724211476188681772191074474391108135454595164895802168001264305145654260785404318258606496563832320146750169097830079494673187974579003794429197779452308983317430898041181775020542403482682103525799165531329171905440910529583937568026883871755867249418976036638358160568029364715023102749441943596011579015019965255044937650013840380557467308364174500496982705148469346524125088127396368013271241582939645342881775817983009345062247924347701286735855729587077909507372918154850461722453898341311182198059013599528148649652717138871844936939755561419709058504164671382390339417980558695291916048656430186487733564167350230120644391716546143196298703736832428304602340247793546562613373126039173773049133326213604480876538123371220732272158512888461995631614857229206311742763358015470724870689134413134331676189699254948195065197982870678020012893343267572795768043935771223608256749821775254169558678107402468162364840143320364835172669021360906780567384848660518156343001917460806815304095009664161051730911392600226453901932264278529460293804862430807722644214617468231185409424537484576356301989656766891296571527616952205757280342295267949974251229823389548033923904162222415287954142084270380053805058206572260031110453270068503866466647411622402926181361776491299201872224829400542577723965233602355820913566806211165940630115413658459788029312721644273858059252545685134106743399888144958583085217943092676275498248542449191492631583412516521038687050163415305743768266800200512658038741183234377830758611406878285425117002475122555653487231746498968740436445681001096153935278378298871498754081538740980424328285220005494427993825210295245486456872512072001161499734410135067554769300638234107752919790346635613661772980103493295595894110574062188240140022032561621977444767570399648477805406963333316111612262626250665242912986562690158517721290006320210552414628134103861886448258126558295278192606735720079572963793987204681028796699261712176877539018054861372408161415580193546132664065827711524099756322443774419749135969057385527802157505662090970981895736336408747771703939480863093784956643501779051854512943233401769317354289838579868540098227431888910552450686675173052448567197379876129325629660628013193723724310707683349558950167157857481083998924496137376153657055835930541463863847412693315874659929069729098331101309481742809767567220788138695645085979044310546647475879625722209127953192204398176981905844615063307774742303832891967501653874148704691260172477804238073283979334980836147793891477395937175880388239965146966796654096434243304795967460045881876286407041321879189709208420948532170772465438987808112663340288867225507815761744009355431382177513109021931044598947365639007308513672156769808911842725311809101220306965343310298650548427544530256222040856417357800330981127063679234958094791565628820982194301182438457869458014184341100520127414007845495954031919715039613654172687230252826546829825826240727363079110460256989728644608872405005502654447933040814447877782845380608484390210141720354608565894893005906375463358292731103425911515509109503978290530948181851862195842189470452206844040124602464135057948624915181144320603007118834394758047296603123660847604981910889079680044562283788378990497034062643593706260518239934552750058010780026550040567924771260899021745034112837530487604044901488879994854698966601463976430165741270022526559614800941783011867215945211956240274947290489599984152108726206218074609034524004110839759604318097238747199137539646751484386440079350313292127583915531689856456786778263723518651912026177605160889480361505579489553493263792056106814659620487051393096076121466165064260128094958305159037734163849108062938536188252498631044562780589774946521301386090703055416635970430684586756141754008087937387820625395603073178540483112799743098964978381766813690366990668728299094670155490708689046978507486343376752420800043136328075050093645398573186025863550400908511584225204130850312560611031263115400757121400404325204313223314628531093946890418642351427540105353933912007779077187369281176703195761048230600774816755290763497931741561416624862918830204866248710275009095861436832314967941514129705188963035071871081607619353270531318675278685288250915420710023456829321621177549993610844907567733602740022979262602736089356119956221078031887549656948809716023218323723665616668005801852981877700238357789140561240122140127881935149244234551454286880726415409369256971978934401010856416000416610939778195791407333137655597305015519562875844891792363937422484951117626845116667627268062881142052971988544171704001466825814131550487230357026044568105839325455754832860865472053950469929066708175950695198770772728701117770289668328015892596323714621079950154471150772992698690314637446909310720359056368473602432063443740492332212306857358236968873236544357445875074921357958893291791217466653186300487915320195613502042564572134844258387353741291899127515424315304442743559261579244578290135577229869722884198554696801185404814841684429083857275834183883478654862555134584846524707149624300308691331545716080185816687313383717273088391984777918704805301083481973427012242619948246588464858512565611493246826712711911529996755947569960509513517049972741068758856947797850777969910652075351147636944334060075124047135233846920509008005674204936378685013713143166430038337280347360935510479877183123922118069776442460151976870289423951878328475397038176954028437044350264434476127616923339234724346462307931128684520897644934936970134350968158569566269186494819443340493640673356767882345989811508208037413216197148974243632309187010560153583361750619248071842347598300675954732176725494393426574166930248139411221398427225028604440995777459775297865428659455541153721333613427124731550182158197454319527805548983954847819619985888799289588871697900292393201929238139004100619079378895902682135363435247510823225370302269048243133066819093397385247277269018121911563630934765996285713744182498281135785530149187536093117138558998131088694536828810231872130206230569073088114391671814177502479548198330953678507060225221948588832142552081516940443702310402681273103973168568321490731982916481562044104641283999889863935242997478928082298832638694254743656605404570766144954377957183025414742667043322984313762222935944051077252003940035322050894826545432098084579138747358463925417277431449051713547509110819969775168662907974472960136735559663192112171398688888163068940761596430758667300828055409045037353698554643954558545457400070113519587468290429419086934949475056830791172596889804930825088061651588709265435912810160003235283294833674806179369552589276088334688341619742376021375236220718960166089984199007627287996897140394865078559722619024063862684195132171897230003203843386236347485267109620808273169562290963201854222385787586791739031379432239442975115563827385612859484911136989569257797664594028667751587700216797330769069748790709630475693369568463343601122821887020077450497493373959892988252626647141225241697000739906106162632126723263606495736525760696061249715181118973095480368807081762200449998629751897130154598107603034343112784610045197753028884024766686288920251766957693062423613191789214634761646762622073326866583887308410864168025803841376813028819597145089760837033461155940552727493095806552233014199122101437643107051446438018200769940682745964395072058990647416929932819590221601917064659014894227164847403812973350274752087215879147656491572894201128305868144358236664832253985827709189781791140018166038171333711248248912374664937588921340432915884858729471022544978094503293553742532111479846944064206436940807580619256319381840879120365194251663823849847377303735221806292728608898280440769862183583183348084121569045318664789963751625605266533320978788509110453890397982511944615178891987544306852511111896799215480066727123924557873345461068354586834494522258646588799881018099076940870699092149831216603930209763269723966355550731591086866904268479927886326438837706406660924936746959550292635005715427763840726256429980006617047143558899779321609099812546104393395876374748828551494734229614210584802195720508772444008744829005877975664820270220602923654408156858911613144837170640984594718930307925874710274191676887745089953403517385112454762741162647129789192953283795916512417826005704802215665982575220682782495920415372246456495199611158110451341748036759443842142796054919450463287382480833058131743155393665781455579853604387237951225485365401709993081352737453733628533344923509906419073797838202169440983258219665569854054324731494369997493960598476536605748558501313350124788267513067906811441975877048657623707264326741580855757025887797595720676262608475832203329645580590374256739117679436045870103807217127362883111055257191644605594058329968881896908061318793864707446121560059447571758045388773748994360458654457332139032903208323975425028781751543151598551812057920490057884162733505161451514728395164103236864041216057169056828260849891063582191399125999271907477862213954496824636270879796837716773542679177039376225023361694343383625059309859719721974925750789514389015928948386702130663763483892721926122055852544787297822802318035610304435006210183797322503013801726886517889312986055962453818348245785957600266256053812279467183646684755908362159476544610152633395287598438734615224507166028985528459536304665567185832639942378446587498028484216793558112011118665146147649232062273738681395726000851740433027774094411220399650163400149535419954332306983811998322049688927731143678527904613452330251841668493680141115479836985068192368984557033931336228450729856538746779715517779877897077227476057481419782491903450685898341565402756355914019158002616185796506462495788003545643973318660171360222259013668794197146849601860134787599735669803473110298231813711765053439655538717183788398169071551339967987247255925996815491821821881250745566593338496870518201721066222701573097602497981154141347832083248022219671021937463883056686488286272869719961974203738594402429373025311741766974016746466464821613023508317686426334692842988244480526383123263172523952418913961425801691640199768862719644584892904394611746632209736109500848092099576791215257956391395516131860557772639917123892044639369139088686096636200436986861232302970053096534883095216242180368706189090397528154086701752390683521820096310437074461455484691375850955562491571502218558078325209273489442953060592543430530909939341663173985410479501574073177846268969952680879693730173732217216935080243759445838806101872423320402300627883743262359187430206877393241852437317703981154061275046549896506936066927581455587924321266609859211221574892385824870558834104304806599893497624578022150970470342340824451687352131733896362722638622599801069812210191043881696874758374754207096686678250268603904120824257916205462429690921398437778794071689463065818786024424568887609146478300121565438783882863081908953421430039703369837427503798793528656564794140579177376988260231944539749141459131265191828236316703452916022417593060400220314116340094153338059643198839379576772318115384699802467198398114848715896474475542237698824786931688550403476398115929195365594994051065903331782541527339560837502030890732216338418571992715561622288055338867393589126091556455995020693642174180117756079153611583668527481907914139045085190060918673846328092469064765471640340337872242496566966681795205154324025254659480450576735181291188122727321408691760404153198802979785133280347223491666103201741845217575324016897211124569395137591742660579868436311525460375663114834204778827111019976627505550461183592926696505859367530699884458455589780465440812219194156242015905112626704681056422724705491732423615419201761261338673389621860883971376454326590238112978211777668444452541917909394451482900806559056203197049758337988190046445097522418138311145531533613500437516014185071627939174439629212791597345657321345300436956978539763939278883312144067647336574692242025485855367961672078324715489958236901265230249310057779874038874650455391594267248298789127994650126551629974992160263315485540025393266893231737393183263447116755043993682366509486392817465020221146740680285814849195586432441920179606125131805308091627154906082429165519112794957818321028026344312057175375347446638371884508146547509577243637336304486344869802922819713135862486686984459092203211343836704656747304173628769538724185320863925613057815151856888212233303958157726588704920545061668275635002674106922455772104444530478665422608519194485453067837235847821235385552407420573147900411781737025319582108258696388978818722244858604943227332823788941134844929087034656105907825728940362756259839558574154561014917188753281358118273074850656232922821859452842296132467416581006473922826373737574960943442378788660859435231040847600366161571592242239612064706924373960339089414788928869605498327869013980778264933622495251570568986515168872583007065871337897522857301391769130579001094843258406094424121192829015921942478694609707513134202273819132768504296224077239238853245604889593982522412437210604805372384477976828476824574787798340646183522371365558522704928544403243947636404973970946616468873283876398183878092263160397354206331989128628605186564491008040483272623429428940601228006411049696911598871607555225394861573744175800596777491581774557947597142212612644012228191005454990694896999852574418066935386741702282106419287849598602346686934142773949980185776661320761858289417258755194099945077337534994992897396106031432440994101301175663299069170872662998851161696243401670063657537095683806650372669174492285728253889159394307728539151951956951990590533524034005977628893592894260265404604122626612374196137714295265045543830433028236991819118316071501625056846477620558707137157873259522388828647253268107226879723362363227205008667777730265838435121155290654817026556885710081325504371623639825597106632613987551194138432190391031791781424134662801721770367835614819684808663505840325004986810778412230973029524279996717207350203687734402829386630115695731827847353530136350703223075825963170818355433841083780471433493697147137229898246374915064353265936449955720934287409786573123618247009454834078367962126421304455873174046910036964232603893759634915417793378498915831723412410809213403355004519840627550282450095955549179997854649946130626606492227287705705815027553473045791984012071444900859133778697465889463331151497231321438080119229076579607987714122797319295959904691247778237149203164587014268888111970290097267117156871287386233642371989419907365960660228557662689438836847483317640339460752374942988858126471892173762668003989607971998531225332943293737242024110089379473105176118603281478188976995916117248920301858661018039078431592859055765149086096016020015325784611186671692251689421207104200849976445199954948653477133586090749788364992559156133330275914315301116275111255080812851050272266862365130597328158541373021819959697775598433930242233658805535013041444966415787484140493588339054104060811113263885565095758374332408625117333040246719994735592293320905864634935758728549207052920469233810300828054436717791934851342319418400667975915037017905748414047792709057898257533254009813504219728672784616475843919208532711524557393662633140659400318230574282372718572411361954342562269346286760070254699780696385623684552479199323442479669641147588948888711368929578946127158988065909768893698073896055709814537067713404854726089245533071655302745090539255049347632494077916866923326152898965175055439435570355570119770962395322346595150472441761853701108533599803038452620196744740635107989906423020354779109437872161894368504517610175519962039341552563961054798921170719786376523685678562392884595408622225888767604012354865731806005185846391161188325401510022536020371326392785357769456641805106621036874063259072782869324757723834043238610920418382778331402007870855201149253633896069934140944864431999755761921441436894508381598303850462181153866715277844990462224863417355225397273349767304388626114956318153467768301872693729454675291744392006072450150583077526897008231711785312475031861957556155291822511680910374488424292889510696747326212506630980136042940985229826434026287926781520435598169082569058236584170283396687040289801038438950459947596062911097398836236569556896069673764411764785433272250496642867540790059421862649989351352060484684441046914189197531001646921151796973377301947577696641731623988655489852961436618638632544934838300720346771768498129365066995700234975135172188963677412664320924889171300024092427628310385915772652171070570404623399453694700623721557538701528894746642758787872961935593964553302686446579516327536699396850822025204798322207669080227483072489260042384380300753114711251579789088742298565054969984568579287053420740534821360075863509468044553656374600601827968467161589014109838083228242320391372390130901871538997834014558550132310393912023786928656551393542754976928929602958299769515744556515429224213466462090450282902481020166044469797749256079851802947382917110666400384106901913926888627349438855555628523368589271563443367969563593932294902576471540900525411219652125085678324961027809682838995007962934265445182925938702665148463552643427611052067259402382146714662696851378972108819904913718291708212461798842952495354923583416465524474109014047674217647428573847032514747474352726223058596159146695967555293869399086368858823107183627227085345096745789562552891135311380372374337536956140482247067393879920957454857500581859430998544226599822641966626883550995291452907252294001414238889461152223676894438005507793377137714125250374658352260307946675555376351222524183970287440543223565671460785424423241837043135663397804865156943149259489503010479245178227429962868138629646480589543607024419946537242688006527266750371380208789301889634244084495817041940006856262630141241860513316015636980888019427538538923642070499857184384522071135633934441170333811442335076044226528498512342688724065694383178508744489219030365477165530900800690561617339766486875395311488648084493105775785092191672326195144498693325625193292930606681483802326923423378833230640588399795274763373648530575640415355044054686954677070131398636161301719775504924204373288802753977407748601183041008410819386999026662315791853682319657286722754190691283715553244287985801659203651094821885297439468119196663458460962895859446636379705627866013906967083237316198756650204510823767132120873182754727776078854418785459978530997931237482200597295279330984845821698695796572490396717787394237991876302870755662519709970265963618478848893397908143496937078112598151091978317070359187407752489676306975477495743440537669583314700663897554935996124643711623321686758073480542654203309640392270064126715445288028815835860449713770944187422742983252894541764388503264232262239861479829300887578390419275012890995244158787132695037550062252258417390319654548802660051284119320565221781451876105110001789943264371944986211081659485714668150216879412047623089234035487121835155100437569622781288195268297378636353792191939628548798541830672402688915284620350047695575137520097696234930322373569273608521734880019341150782454199792620867305283604737273904501466703117540553361402106263259246832210549187156860565223906681213915244936268162790834487837931703996806517081388474226865316790026420966589782911726825543426457581926560230175701169842020146283575440408788495492048480619942779316725614987716298144811157897458600207118154822528964636203322769070121178089352604685284860560137463975488940171796906141664522868674048638097867344327087772527124928335814295666370232789046495996872450902114845696198005230728902344458046567916096670386128801412437937701942866368900436426452024857306975000546434531070230548021049545151767067410879539714412046401451022065514247121998574059897974080278506456599814567450579964742944842977666990322098694595215861248623469270954970634306029042034414760315097817493135617487926834150481835755385932681157749248221999676537384960797664951069527442552736135610855295607363271728077250134279784413922563077830600846454980544548741865024026732362440174899636735761910993904866749262118947772261218461299452816089565722969115126439133015126752676798669413541109855434601951640658774169119667274271606147451747496583976471786929440930899571702043392624770569563887615329224030138930590270223238290394824943940585446282367103992023110344868974686153822724766907275590734197561556632430571391479202360882056805005524017736601874723445165359670683188103182273689102752883493486623787015436003325804588584321615695437763001991849186463126073887554401583535225101977022409740343988077120296542850224215226398685691334292838961097505023959222220747114173232765543070259805607942813849496635825973953771454515394103313972915945321035710892371012177540081515584098390541622303564172402504692713446180135765406583527670730758156438264109050195242080506498073293931914268614493412402446248895646543326270931659682044921616908351104473749443151975505833536767981786885573140087642477933171551438574525415869402737350629641461729567270482677405900204589612333394808572368880670453520108033840998624831675762833287755595045856748463848793856862874086693299610006328688987002117519992198014920506631536526214302900872990125372387086358378302043898922779818456381172201328841382561666438672302345630461157432765622882899301759725234557569731763744212299185935658654328667238229441221985911588211098327182497669737722178679499619682328870413700762498102086927369188336649568879550328715974103112118408735276646234729633740752108821568589135515529453372914288544780401261484092784447668171534387059161838251821311142360330329729112205931532570937602916131589729615171000508523525680036854808588809984107675653790318270237683453140452555493337269061057179411153464133917097728950169091406472723238292497945953275378009387447850482220625227977832093623438439998099832079603877270492480294399980128942666887331185345385913721793847965296343336648379499512865928679599151328764183947570549067845109426623468269618073751647578461360060552475600409606851000909235978662584788823325783322783775847619615673839789695025874036932665535288470984416634030181341116813285938635635192261144937591653755962916384048840858938992473518119210527229012254024398794551190012351589751329093757721607039086736848338395249881409491904698834645743506827251924355140623213354372428674994295312997983009301544726556888222213700718662205579582092927605386412823524577729240461118695668676194516151482652241933175569431930523524054084390148358382855759577134823339796945842035078317659960837538878708956600944559380707636800281004898285425271630621269363970469386815033238943791781683819317410975958386268165496623600380197482493201603874439979530768861849151716125941437987010543071560968801494750311743088367952240648827436448688509269756889268693976364515795557756870505167721478700900942994175732139519862010321357599555731914347083107171724465657231086763113610564856442891370365327059687185436120801330289163554065059320129919166471331025659048982382285181150219585989367817295090131507282256669300567852458974185658942244917387990281240795380425564841254727210721762766069647501592683943475226075822190507771406357836699242907302490607080783291779545024973252243369644745144535107662004540214296974532426332828193479498831881747710149427080652003619286584818991663775464380127903088326476200088410472486168960270703523882328960691702490083531544294752925064357034857841674886325201165521307994298228064966697516664136404638520530519386106394633485729143298701268572223187599963499555548177421860630025093618510890772477391377172608879685678282141055116033438128347508736532092268364536216869380148935054248734088002542106335085649081053729376522054067133717529344457530071200193211380926542089512253250764352420499090087226884457309756083774433000084466456148690225697336066830411024991227940703084349691787645411258335780027420691766645711002115614471265164708446620604575753655487863087341827424418646484286763649085898489437466182780657512070669520252433275284279843601794580515459411538684578458061699494783429540232561853667820238013121210912868637073995778562720964652444913730342773782544270075539515148851944407865180042318493693706049015899148108318045736570224672843137669471173142794342378628512014206485826841026881618975367804644148795623425277869881465022136547423903172363561114659037371806880982178064687387705714644715792515665132062508040444406141654181256172447599569458457052292530849340012294172738748318920125844547602643770772218136017940168407852412596410691354146995741134347530633551328139321106526818471387138020383548215730255924948723421127706522740569368982429578105659728161849818922227140565920970266768673282587586753393937386470171705332217299263063149018595870393811447516365404995343240553607147469602818671876338058057227055380507356018507069014744391947211633301286569511055788491581891767472996272241517209770369952992395725648108378422753538510451872160241853829506535293787849659456797087621911101309958209919299276938976115337698427344897154867270606974481059903845429901665488712863395675918054369408183012418797531689860141461205267315020098795617715583341150826755571366076372806445224275272788726891993077077616370658139889759608135492792108217831136856697142980921443240094707954479656870069449972764791326593449943423966732033940046205489483637296441336377157925159481153959484617798114602831655293953082165466508829212852547656187799904821140792779146043824586520968172368638725063298025967407033546903504079467246059755040739427038262748972413155466364410994507019364788201005225910352889408604980304075998040414527897579379977198405573813529176781370587952572459811716309987576894259525909222436766335245951383712769292170317406625626888539918128653498892314938336672819817667845808702836678451437095402704003829286800905252748545198685136213023204352275168386732158539968837865794204866520547146179633309175802134998398891081910694312151246150333827849967788849144169168609839351708232266684154678131730372616875411292860878377309998296803222675937795886921181767860218237966810733719073285176649484863163828631008239201899062781804222735757873947852329751769749134409971494511907959283970683796108529642056147337606008814315777394802265845895327811003653379529807238639494586616982660314294180052534048446316291532708242291952834228292040095317598498068817769319535452501581475062997648282273443308481939282711982642669505200652810871729577048574646702922424629537863104139473893699455029648020909184286766359418509923958025353133344844902815290185564496431968384775872337079269016687181128466379530264955572436850909108919829715436382747148045566120784667028394498318511719680793798832126973590122029962164407670832167589311896300997041523340851198064116648515332123972269685816805259056498471447831571144484309491287706746473185656850641509412359960936575287560737033270296512534437237551381337563160905361144799581522831958496126778843920374003852507759724052566269451535311617048527413915920139776467727415294059437941089165928227590694551203379265845253646207679918069686359302490235496313746357191790080949124159551020030826134862357798139433531377931605570040164148547795176277176827668698478097080841501113272780223541210142992449438000599135820171223724011791048783501974919673309794671740568012149043309392930149017289538602813511804088492749620317626580655533141295291576316887424452395019183004871860084010241575771964588234766289129144864712696263012615704760686601905541112315255477018021221945197844151827810806828213538954757697194023296617503801863803397658260701420391805891634017259906957878102347533829100495734207621827170407223594210696657192384436406883210294521297288615461869030857979399716295713484310645721709614929482813880863115386812564366480849560031771934396662466059413451051097727390446699783867929998659646395352488939266850578164847768533822417211426742879173853334342428038560987986708288535110664182811973000125094658707138041452705069091094099691492498483162609594318980209544167651643076986333269091437825631767585485800580854853653763562779826113689192934334180767182279724727208437908686666078173324905869269337055381809394216843716093023601460688014059448153080525089429261659439582172554507295366490865516253559938163185425906826894910628028565055733436035229027901754092774691358581171871768462767471147065920988011032905205981941241150981058001087965745386799874661973790846164356261764084573651654626139153173268238103427378110762436008761703165198512485061195257709859273959213647831373436103343078891080939359063805214687171393518032975566707004164930978595662115185797773110199398009356201586164364117301676565514026584493855505731165438135448973723695412281740424968866116154328589551820461270899283050910127124406326886958502931336883951877906993393763732380019617459372663089067564265638895892812647500361483175638521856375892733896605112709420526626178949176728756634323756776685941201777811741275382209219855082182647966325288226307212343394377246976931846418062081253537108887981700904326962839573714654377546271016446386802420015278412995616233340256712310272088376739249707100888340617388391788855330486639154688738136654609753171904646429842374241545644543277174895901688879387204118218582531659436653981251503683873585817520598634880016373437130654935708466084142730838805314356459298370973719919610042960609415754555340736090025659529948453313813090806177480745635844737472090358534448602546041392437967337967032587117169788762954018369123386417120453612407263378407367511379917090465672106010029967350777720784858624368221315130032798378452364227715948176175227519322525469962383745663304222864734284275391153419359847680235776417959822868132995183716652116573870749855100840227183524584435909825179123339398856381771565082265153168655862474715925839488293321695946680097249731320769031372319008033156200694941285690214292084625484701583190272985408331836947816940111092270901420016035737112369222498795309383206343258974754352142752453177410596862117423192109763320306827883253342368155336062725205217055603245182584273877592041193556165662994143657299905941400000342994074189526092424176771371151239554234793943025633090185476520941435515515095038577626254668927713754702104338821196882422978767174841753486477140921068150004440405351741467668083878646884475738835231608042879419742672370367395884672365442091541214396618783773710605141220815173638827105685151712474199458543258050029412819406313093939975635909011781052552443601676633858185693161944489193961487504749505660919540757092249538445271279498666647339376256181730256690118093439833753669561642858497970759800078945107539475374471395339629554733165597525455731217452345894958266525049469824260951604369717842025876212631967546944322682296321814808019288556287367712494348653192315229266995563082004371004149231089411612679539652300935384000620959766638394698207592902676501322511301608803234844756840125088523818606423059094349143068869570258324043579532622631726144770319357410286911483548189106089321829469284229848252834516518105539332263967708661557078405283962233099862101179002153843361411850608400069438235353291738954974715535981871133932960169589308216176361676009618932037577738345136374907945069148806390676456143940827456385376204609404831196193024858262490046183812213014924983187454301674881783750375980323379278219029377289227868708472180680317574491482607153715711313212336710608308153424762167853504304546244719714807051831375606315709348112202112507094557096349820781261529931129130437714249723301876925987201247900474564468444516448507715923750841800718102496364595346649608986950776839105508773347196457166590494463461839135756362921514731769715478713790150269755553826495304147282219079857875901267286797314023643282700908870707630119406593442812209248926086915169536032234296641781123415501808655167764130512181499995894693835264423096685003005654643106244751831523411346797715536995848405981847853390108308447409117719253044396077157388360615997021674351172331490528926479942424715524391518847735672675488328394304375047487416380589688367317701894929344457465621683914935240831560127403799314079491964871236877351917017365965810782930691646004065219113944586684907591523099179326584826854289874005269363660513247189126041150552010450372525328767177693455199694423138650654818759113877887220151226632439283209497397951170404290635502400987766376952539516483811526839450719840098930967618500093606478507476690526129568814679607386365679070490091171019107006978149985623492903698663733513403516059601053308645207872039407001754723231268315908089293019071769902983755220583027586922918539540772277365796657933728777482557006972556581338473447865172894696239576665682738224821248394963235452932692949527588922205700444558767888258761769307807947825904762277624158747614090576614022121497130112314344265744246406404283525717238486909758662768408934650891726521012138104158850126427609832855569368081252102583857901807510467791751695632882399810409377606730605679453222675788119958452614742344121419004162346597537211276904349775281580200825221046144871687775796510491944937374987389948104557087186598395631212818196045551875765021202174189537992895095722110279174076428074703072333279459045559130270518733022143081096741079421947186492491018583707437316868028494727296724569376425293299456184722317180980063840788423320269654589318471973336356539770795709844698276377220070057154571559979467593330615570243641739539799971995518377057732980712408743967601770844787356420048725031294725407012398927863129488493408271734650198121602048098920353169134886518561578924930874535232311455486845580326351840673590541543623211939918052075270244958531497640848979223310971842923041198496231700368021228396182787434019280337915052162936657914709053344948038752427348041188644256717101816358312289936668747118253547937440301378651330140710999172676856832126770233812081211046268618608509942696036373611611955802575024664126199077816975168516067455258167079802055245979500544749115317152511302554263345348335591170653263724062339136912708549758999808981307881897521940847429465717671455896694578254011583452029854230421849559736861440119191929684490517350096558550007058378792665570863608732484622513718363027783185507588620191174351689171557369822313783140117923728040728962875993592448238354966669060751675532096625831397909299623142762200263734964692912865970618634624182875309874385423408093020402528747990768440664366662883922103353213545556499039745145281887921923071609353074402891709712166523347844208678547161997723299456486385837304114229911310827427987725497318063854480017105444971279747931313503957879738978227609811481011906295478176078424132278767784326630669770394607761882726969488666623988222430870146794951693422089614365235947548515050359326573271984637642724509557620888626655559486424083593985698821567652266838082771836025852827459736873326702939818485349432914738344112365098049962299885909281652449761370135930717446481489792258582212911020873084632467185464388644134661510292784056460868151452398194133808212590390649713878710898713533680648038238227428988323559293710531915852495072514790316819132752502423503056181439160846040367364301548051213809574477915916544295002704934470199098284162980238842487964617351953292626551388159494667231613276164955411683980858321450643874536323581991187633434656552047559439286625524010053532181917735742074296336984237369164461742121480969193246330372535670966324355506130836181879614673782888518680395489258230517213175804322988784590068444340507405601001943087356684431464364573879307017800019060993158828288626981100974076600609892229930519672769324402895750045246209339568313410190946703551337088574937516137995091817488741415025652335776596285892391010907064155847815361089837972349654724431812491411196033283064832931220138910593316390359925694331514426793969227301283213985904392435912339678748418222394576291521432945733611081520877688896126755702453865053093828070072854322897982734217866213730414058987220932501953040160768282902007597438750950722643729145634447490993719036628364642435712182474582366647856219918638374112051056887605665219247658301481359723019836834955553701166870382526517394706317853870934407621231775695703657606470177152656482003107188845730356810572698298794647583030011441166957245404298158089272772322367175971732767629734572723825892325183285190337726664452733593890448018444285569100001206374776402773087544241105628273422829783969036095381935946544201566866705958681016701892308935069869350118705725231336403647117003254199814716432179542257252561925803084011105879139144620918913833927243458690368217788539368485248209627084453095385579266320095156518971378910946331298471760171795597134107405426172267817238441216407514816372581199672241934719503405669192808852681550294000898806513492585410133103301739170805075756082700675042941074737352764464296231240898621818225372643116026688125757771400720708992379834867725943474805687552878855920314541051090867795451725137746667528079753779188768435081129991685325445056032691859951801380293957744066980774803972704573753680562515021421477310367989707508244189758934648921821622569102394968425424387484384150297403982070301405834499581690416142034770263067580093210572680532269806456416660151424374084213719458820971375373916357228481456326537399125518043321990684309978061575680146363531181785372695083137763849399692113331061082997068822250942944262614036595342684327496656895328105921345449764002808710475684080055138016555818539996478239301215223218157343947117531850454816499908627730945323841496578091267143961376577948618830973681070627666170252042599603953467147220860928451287918496091242702348633333603585570988750817752284468440322013530940769875564988502708316550365318541383463337118786204268775691545798812234952482020180171220381252447997839456401286703865102691682834768179968889411132148829326416294043086703368288129229946913010492789439696296257684120182910653776869066215515535950716981627009922158945837391711554393926383566864426309064954464769259827182115690713201592777822859313831019533467158678039782822589478968797947527409855972639067326075439453405183645203696213926060018684297160288520365275902456846497135540621599254731250584270473409414555261521524558242916024019600926627250551068122716427867196515180146758604049523809044325558786383189221737934450699010684062233283125993095906694538278625121060973230846483084509828782449367492639192094150669837236294340658853043963462602874984602631249357991640669989881502305843216949515884822242552651271009394505688798831039323658974257563356610103899952738503732961966812920969439617371349173635433502366097988622337301171694040304853403796102186568439463755001839460389828750179911458179511893794033659790227197392244658300139070415983472918083199873242435817412433766800744692159993979171602928650044566197391197105748757620633215191298161804436839306021910067030106583473607512420409366345008805445560684246442803511681279669937518341622485410182864846591233074397222822540124907964175410721556366111375326352088768957756095345205466938535279223816247658566818756716383679765868889776041673595950900302373230615856476566130347310739919576918305763624783151914533200325340516247318552524427404592166067805855121907186774456296849007469463400576080229768414263554600422020228979358561391182100540452351263770158348295134356008590310405171339927509122012219953597760154187252488832979026405087199254094000882113482850763944652925403706567033264034716545161302404337687640825174249480776654712991380568591332609867207155879745746471346234032607400163246997913998944282212610738966795666997485515966021177938647523276405366516964168918922711737200514047332458343643752168350201924432862548452713769565890533003988797803939526144990851508466641237248538844291628036394536222200093408161525051546037510437479717736567917259147250954125579190689937006560553422037008236737572021674682291502179313029701749802153567139439577451537973138433127329975628563432946616347928028649788340993983875561372487518078965406018667093643632421392319559982622597068123082030842213700357448300240909434733844867864744190655513363421426730215012487471705816044793383919627874627699749383543158548134329845434706244577447671011698250377060235503607655272931686124414526853454973741855649056493930379282464455426263355958792149177849413923817406681138742264655125465685326751396117975694009359606055667180080999352564782457581268432248883297417410665282705705095940944444797090766679580421161610477748221911082807257183196019997044452542190781207025998506222882358193355770387985269697496426795893047750908997151904721045323535783965180652189247017684087458773538594614914133451629223340703064216703135076190067560700827814033174536127995680458548787809052427155429681180123259594309482858425126120028841605921907813995696641180921086856481293212062267913618908449986827345648177306391733426715003356909733969507504102461238168294663427338072421978037993448053743669787275975505254291825804597431161845351745468178541111703147872844740135947405883468239754222449586110372007080407466183471565328434979704026954498659662312478899545332150220689883587757587070444940674099690055659806094654288998589065726232330283687524259544630704035467879783645037034539854882431250113543163904731910914552415893047997557003777700331377288357932039969345383784778964548561302994077995131789352354757839993239618012368523040039987565315547163959015611793642861658718880888378621079361138661310490593234657851157417951758626940303924918591002343340029335430944131509437182300212880485049841780350607104804047344661918591919876567150205691239883878744050574751478866223471333548494181787771800044666219426406521392755253840591445319426179324151506461550135291025690552743711858181132718711125474599218742696158050830375556761615961016254333168778573391511716619964656242272469034211437530691151876517893663330708540460460556747987517166173312871322572722143471364821651740113693791502585286950005504926047987005975945873523814103819542275436136589809472661526395767059266455507910238457900764876554690955374533347297660910540504700807381283768853032297863256322708757688480260515704545209190570249648867406407190324663448362216913727726437844100335568036289394711273759351309143420078430689878956562012979597424224705329258351844106707401260501320682105765427108651365739036563251747183393791367901778578246379898611560322720721441232983243458013572533645081612616836736153778341326601826384655559183254208493411325644596901322304123326031465484015006120095424332009502838144333112695559703025465792615923144897418014960199242514628441111740465834259055467060858141115776586628929397314142443108026614236212003979270706122028338788770305666112438264340347262658456114943204261387173795988284014537228410221944273549229734559378601283580937440736681298940374313190824889345013576758873861769446876777612843152921067678420255924718666884553454733000629586734326647483065350785893842876489966256896562539699452532055447455097958198923373332961817525593238024527648465005827059197252349235572891512086488884338309984678261830238188570687446455367918104312674540009122517214727701411244220936603688417727209730528358740335896374355034459243413052095092615955075535282798992418412142676518215829526962069533206558051317906687836433049144853389387135170355302604571502334820156615621504767369714233380973778573025009902895935122376617696179034733237605045944791942493160635023897539372706182588254935164499946502271683665943694951179793458399831714993904542892890428420224299770025355030388727312779780277730769977719816582386437561224109569311232715043245219727592830500703317352043481882255674910364292282287620726262984450716255423421524237589739517254495488008168737689898348241171276215710898012324824415230212540569830637249330091476428405710345518554492562279306599944394766692866748447834210190383703446139712472727248013426915501657113173726570814752132229386396780170876306670094979979559373562056831350327641847011641410358024364812079800786604924011258212836655717453303050043590257595341214648853978683538232641196350029672384323420776430496555555049569562707634111637283866158123103613505642469269087500718914418665876673308162293702295828808808061168059184235700216721659113977204124001096511676246347027344917846772669409170824876978836739749559326106763351814002547212026069045932613371237854631510122488602363894652900782006828200068341514544682460255104010921824259946857962015498076256034614830358558812006436379527589668731042606755705448328161034472509775596876111404245152301552750971858955776198995572509287728420295454039858474983001624166375890017060673258763786239904882133621810291937142001282835383827242226165727337310802954100324408893269960796977926334722107222712064922610645770331077364612208776760114915068503146516685481684380984497416818442747311312401452673015750865423236872889432467400361001477599558148482898322378752175393684505144409034576596681264977087087379147023043403060968523891480579670937800280023733629552526023184877887583129557453640196139016569948223504345139854028424878158434920043300819727865020551036803106957884221433616363444272930830417075493027372585589761683358987711694369861529863668570957008016468915376558438308280413625419480424038457047555288499027038460510340334864063063640018999326437479361685700834902527180757334764041911422315414034680427432216089201916155189747922125371258660436610274467461028997298779670369364876700545702598214673368918377944802337316781223496561388162585293566816509088216882874491237581311595474919433495663450661162572450322779151564884689807375712069354108096966812887914329754140918673045895215946023948952959802222879240150518834579559711244374244759869764613832606443317050151971623017089547422232761568553051898786332786405583805824559993644096788852594283462511799265903833939041945850160104644024959796896160616613530767889164369777992682015148909656701490442657359063329818451269353525340894760539055869012272004827225282562307036332285315879829107483419037489863619051716226098751175961814539381876296801624499819579783881895525474506372488048037202715380748805830591171985582303434117706193218232474574715312164890416511133026603628549134567173115612272502344217728090974362234240727765309193639315334142147634165219756623380259679958769101013562204909951352121575048669229512350948964779707395476935191386298495365574690992035286060896253192018632954795068633440758769096400697759381313695092559371083298891325070416179856817602150370450146523611483164640252755710632560418825114010817094443901656674503828253480782161853144081294777461827592783210460034602717542779827550685169661977693009649665185174687423327738172678711497615568068330448986861573052375026225092342178920722651355845845402447509803427713347915665257731084230207783294073981819076491674998868101377673696577572508201697721173623905526897970755798282523723621163734847732672917585967264502937321213592338219567610039056077565146606772322801697522931580505056422923975412478072490279079678507813532742496202334555866811139600592672934699238839771874036840590687507159588289885160567205539080305702201076674022800003037608330515214611451104652809813317728031109651895565233040468144415345683568586770652696007419567735799732908768634716091898579419990492297064790566589841444163225861248260706307308813015018155433884881726594708597666650706256911399206639559079389587982909476520216191827795690754574019857717737035449643465177235345117841445173697809032203462165427492368423951363424529488601012403684591564959264259332105315036761670155562361770906377734777300815372300143613373148319921227991948527263389462927203067400460967373991186934298399867540527683130047792322113011397828627456059450336625868039967972957213294958895850415598948978629030945026249951710064982461990603966178942614738557468746041859998300715856648715622188310881765345088516303738316265656260079126451477902437615412958327043517578260379585241457148839250559232658231186555040783118820305246450209730381567224201766308901234011185960539798265599390994201987714226567829837892425648172929735178582525488912400305999001837239535507209453451279614064319317469232074321672150993664305433367539500571783047758151026010818913115012580198972207473951388034201292598330605913329888749870962998276805110793112350986476949964527488062163276950140526936228227924442364377384059281026059702869833379702872934523326286997490759011893852578250511106126826251659995965022470767614567032134305440005426254801528954494954600215890549203342446633593126756615790148443259102202318681287473444883830774175970822604865202158228518126177030194702641647192597359129567867544814527236309504473534516988524939771346146315999238399953887293390912549576159119389897966538178933789009553779917669031049387978567906693691006824874296618235957252748157395657379060028685890105515826165988346554461156819251527232051601168350058380377983063270158338301632641221371636642078545215766648084593667092074580279344707616763461466377952037219792051553960232645816150610664573427084731851284457225819797213146502152419851035972262908947896110814754744533595400659188685407084637338059890649012854037003367817124478406162601179980562476152995286780697963143188684347081168864682317364928902021103706411977499960236663554436794519382286980173834566340806417153769582115733232270688047215063150224753945600881874191312905449529371784326710855336856615611099877964491422415537367145734487821830522680048133368732874003469271084854576279112802317356599811128940669165850880373547521141797314124973643763289202652268029907588354661883295007644257284267200556924649128334778499627878219160578508290542006192811471592502962580032035600676841903589945856010624354183882819624321382576052870373027126053749785643012577436475155331566872417556828409003025113514359926992739109398981187686900456077312458555477826472128299363613414836212802070625284128364031531188721584917340546915758103309596089491225142253804194362162184246923807436440167508999047390299238373703463483795363066155178787207844139154983358380636898466073211448425744067601518294769438243362292315613955969782312854413752380179679182815652466213489933974600851306411808719814760550104113066450289537356722825162670771458434435390943740500730533376632690705354521596568268803154907284621301122375211447623171086605393092252534402602091760081644638530172973184193592800412650661097683577763608118420009741632964538724028189463635659328770810006778130520949255842394742935601775697159391588041705759437489827827602262536209440943910180281193543342920351727811706294654580013854744572156661720289331330190940713260319969565368116762388692748272162323802312514717726097366045294241648497945656420249488622507644326585607313105170904567291357264277747736047337295645386678480022478749365358392943508670725880367907567117436121792996196722032088749528924992001805686588441438729961250097857637536906433705941435777608049975559609337041426800864283469089783320324904730255722708180267313875946940251276277543621615670472364888161547945219176646509169051823734281073148860181071236191947286000584236989173180704182892154863819627882458418124367855323202109668925359040579391619503413816675827043738736384200887164402094074460067005045876333397123280928296765085225550395999299838055211017876854405961514932000638224423441366299034521049283702142887000431845493403867769523553726708589499376436377320164405225152941854240472613181977841455472437400026755758766459180561390178725073742943938307787776010847960367102018296854526254650055319590333216810779366704239556465424667943749997344484083107908073164818059400485656630304224471067729284853477680556454588769114704860552096930485099358688342466352243702555215414399774765916609763004534092941909654909686790618114608854724070027778866750643025044512914400883024532403350204693596402771251995159933737380428011535295474239395609344103473791902961370985888844047071840375131262859777221182447719308511584016312517445495611381727736367980790188580993614866785208465382801145380544204323901010253013137840176640809907302131349171031024364051563184076936291597929424054189709985648414892897872102204009270605902165679042376709836695445356005461515737525127728115658622764325304519467726092982854045318744876331879682074275181995527545819250570839767652627211055601212015150755003746535013133506597954911420858983631426655357490444634809134442816436199842515994426687756042551641159227565155328185047073405147209155983081761972414707261736014319207361630698433675670370018885959061752714773862993261150948373548661080613180537847566577738609484728346474809610113744605922217754291123784639766527349276810947166793494700839909060982658892870322952777660338190316763667404089964936659942162923570816890820642520668131371773302211394494939258383681353493381426621549178023182408936728825925198313804870034152438865718234673611556104656373356711943919356752142405021229604450820119857504702569238914085206807868085738139787250953140552512181040275377919726530894024292406693346585500409743091335705824283099411087331887616194617235667954557964966393182145762383111514436282526337079652282066345765520432819414467750144485437505981079934064727231995669309930715808056841034960794586299320709417123092006299670879274361609007284716776679950655437133523436945993280955904639814168485568753219071785341590538569151371105733694247336697935020842713734399777500262646793498648145911330916768625161848814355911624994167943078282379511414712949146815918808623954607058374327940141254954464641376275511103330893668460360776398737971319599642275184138336926562114762091188286210888075504215465132338466424631223168893634775686488900262948257158907923855682333564843214200628861483166599717815904589618606907007267093182404964908571457862323303151574761596136697942251048124654299945825514680085343509540232634208471606326554923046142477491263331666631877227313730550305406359194618844167370979645442748782507017039300567047291143235080595119400146755901264254947931378120269686523781234989443165734352255169388479732353425150664505387914013107787153040084808817504781023687963309191535374674168839687799870480151453553230584421752840251563620657791858231746182076560635919916405435247175290441949509208750466519548978886432974009803635726930056075379678696731689282647318980237605244441735347166143272662163825739976984741911618025992672737298902241935537587040901514420392850072818896254715044205005527011740111602772280118247071920027997882624624783175437776954152989461690637412463532233825033684115025958915169661688840372488930208059654010736429351304646329009256053628986248284008030548749679522225197491837278498016478083931275955864682201670696255119097638612903858234369136725725835630459911146777260090126746143354454044529935817454980939962193023298508489211679413683635024432799340140717893282831154224481772804214581079709530287565258160892360442055787348112105345321028178893635663215953629845016482098013899859848232336745465169363857636915618659234003624699650104918346748776543196552057439207765533131058558426283731270169762845875398641695609523952756660360107615986964876467270988099933831463268719531789440864931996048144643368795893856221722563269270696374048261516970958147985770138167933215486323467771115223490285419817600142345905890615931667981188245315647633450192201469751279682448453744750146092776599642359805861999665024534728573914307825579654927306870519247335636727997303070449120544273178114580244257471735270420283385542797926583679918069638640402775808027524519251490511257121630729154454243750013760446581488603154962976594702801863186917155976084888889624581065191197903872889880303638834317142300745919170293935634777449472681280430873368633190870200522289155873180548811622977338695943158471212841293156556010791589115904965152296995777458649880842962144457267726858091029942983727479367265152128934919558373212827528273232430651502630134822265957390822660510045535977018596937964440126823020795574970233996619135329783346743521671820730615053622187627234252054417717436178131710238640780132686355203709811916770290315063892402483459169616947733650831604945799711627702448808511534684849919228897558741135688101248464036622629538232144297215933362161566926348095109696738946180878596365232205494075196669804280899306737431462975838118706329180425481354360457292070891639299670115662288504601411777995288622684308209073847078381125954317926526792245265964533614262405848750288208301141251605975946525158692850505096682465652423237097583873129650160121688027343782020050630272062899355124156520841402795193729290391095676126559318782686190964165075284966512598720042180143951694666204650425980551516262140872753948504765734335030268513592544290163064027798397717542409077685594019652970970006737769580578194043343715079149092383188223036407091462120694517124083333342413204051619881586847163130760983731165152518778119095823717536472143131432401551976584369824523635741717281568060870696707641017563840663570064901736438819812035951462237549225244242228143710642729161222723362855864713097635901186037863534683893760087812335317164842714636407055097906680452793773640404787457220537349840542840549106525796825031076605628367168565040910720980949747155832750487586344530113634416759908735092881626989526776838392461632794028160627584638440144491696089925634572030850481190123933896479453309599162095760926774763836426522730724593015825721034457150443230797650877516965130198997284836563561513212610601901730408296137089053348105575319922617913456139743722921012424432113436879017270441771101977414769001086504471944390313522643417838770260190788142817778462167230409302323921776889816130235769614173871322823009156131828900813674763629718000062830204230104499910987096114906020886554042100269130396044414574676758112230614375805635032241207749016902610263915795238528808977102816182983834528930412063674066125434153357640447127719229637357245880386361490476815918126475917691990640618280299117087278843770399788056205613597674542071371334967499883183288024732799369743898750338543791293571718737835981145324327854940257336381918387753448526031535117227375439859423478000924794384163069179367918025708313086792886836156008050291763955458997840205279482279986254322539913354012481303454127575711563862441168271956314086728859770711540186369309814038798904019782145788177747150683595099550999482534956657875505183777462033026321618676052263493808565198276487172378459167075188045089364531764595927880839310156899914812689778920142316724788734062817495057371624737806915244385456832548592684155389920316509189397807134571620559874741353022281585837458369181426842781295077237323353778426421901659347577900506153661891461498047588439246402993475078475691240577587766089799731879160888059855000102421285644877685095185539532483734296261526659013491039501015923403264138839064784746401194853505406101369100601845216052277763975778923915935241864683798781903774438731992099250119860618962232563438909434508076596482791704920028422285471016478384210966953119338983712265580254066190644367380376574518394681882005042740228492252204425507951297854861992250571762250109583248678562749118005302339940520643901855827021780750102367347650960642191413689026904136979061881060335447241399310047546403165436741412194784579293698510690683872090252052684755758151991542816708385543028602639769504454718678242713883515321408510472673334714675484843133178152539271080418122859182862138209654575744756094419424944830670769674151900761886253405828761767674402595148186369728981442510384266973148442313425089980444805672847600729478444746258081245700428539221033360765988577059927926679013205031937247480161008861105468727311000063878384706262990590193560209925507041622413365622521178510992442982306111308359641728861706576032259183404576772301667915686977203895848101961157959928061272236399972045237464121029412138436397351409041799854703284469871286670782076689557379832904541481902337083590203619122577346433141033888453898207920378078643645488921753273125158698432783491614166590683485575100546857388260451133885441208498084179146891251532423077458893898566908677244634888111173188574329803485057952738706386620200751099624208658933031262758670982863028957016466180815533971589035221865588968545812938504384508614742064679707729383689857172520490885926731748517960155648858702975813641357945874231294969287384243838224175424056012803258092406085729771549056279755865000465819713650040471666573622347238851703867231463880020772175805610664166495809231663368107173745193370035355903759024451645675032563101458247453435936650107791940889927331443835120231482563712938003952419301238275828277968963238155524239557345325598408256546669318171691689642041578054311589230870428928011246251054407313497767905778779476514778161780149012222694794347079920353377810134177092774009378264854370627007260145485611481388985607842173688264706631555747753714758993187003070532883824983127978724203418949415098409905340983799638317428431479973554931040750721549446008676154727109503048186505857649138245989821569516553769798722527123957428171421848802714428880688472385669694209858496433582564680103001020919732118608584948948084906857996964162901886643528746524483067222883514231377932341312021893972697416641288738208710281331253141087460962007194538621295679465061844450715816175222900760261755326632522720450633793081974255325711432707933003883414979864045501095779202481072254621040024699258194833331818833747351293096276433764511954940148645485422571368908716152430930381936579514819797639917733738361483859243224406834606674069335364665605402224793134752096654849100601100102982749898638454003663136862383306419478206344039684723675246846882268287520806119691254751975542379747042372585272987463226344618291115660552678071810431364712258592885614598216534132139202703858901681247741003679391408915118419951112934074171315387730041452006435816451956316108855593999176480299366136639817530554915084787164722728104836770277043663075273773989251414166462370103463200366651288937410118322312076555190283121386236132218061501791625125796442151597510635652505023384509924512362930834141453087190610938772303314736821214640313309879058498424823565256444542579272005833881900372117058861975859396773623067237712635871279979620825947698894798107339338704347854106023120557275927038525388102769399824952359957875267130238630075856127417930950657952070351950435312455564815577242163874587829423489189997993351874247575297144691518460409563198359968920422557601716831757821857911315058620778838349479065269579528274572413028074504745496554414055790085055583142532706845705782247807450585821419364496093904088431945558424881828343168656170904459161282770049812408003431384724786823539337225348065187233527763184192296872122424086203685298497028250470326981362609120973911769352896208912285251167320239112102523463125319027510747358810544362183303155668863766125783276984520395966097891283506611990093139848967757032823710563825154060139705149756732888638851853944569902334318530868055082504728311621690282420122111487590084524064626047382142183487026343456777194175868111242563462914687889199286039197524300026086810336150144365374857108539002763804428563941047584476754601684296710452383919511832686694226503613507072434046144798459948827758467981861981390054377045304386106854355566683381429054749318417991193466062506683717418860199065828778921601267680263139765490692429681557998305322756206102198449389962670674366983516378284372649671641807911462872502977885546420135794084543338463282835940382227255032100092481113630854634599198181764594602134679973644511574161772161598423511955794475995079360563461035406982782075582137066070040991030945195989009412641493647160820275828147656835345518608576244034825369906770253044583084542710728162242349362227192362121662722123285335944819741879378529227499077951645133966865023452468379842635126530929057664981345346621882276949081353875589269957622607877685616782319220081573430849303954018357487118972357543845383220242128807040087033295916070248659851166850194264936813222150571897368488112172447932558916053920445214370057256666398430658845467993004469927318195698512333152825944222042962958554764461517396796273718130296173921795645283967386023460495225075808958566083158854894695397007532730092447590045407220284741629087847976192316892021524110898664494727441406137443551422828162271399794123155870718185906976074297842669334830011531384725595832403105117565594703988444321409309159801117639096007166211153415879855482309009043170833469963203310565268515140011002486899950853026245109037159388100803511278408386044806555283696142586146063950388769716183534804209856821136724333699922453812380211274404247048970607218605809181991329884873739773851231398553616397654901039739901317501628330417312097600685425486949161601266229139945454769655823755496796905220290608694443298052852031823240883903542369085849730789463440621807262624791811525777445621716300886291645412727980057736799007939720522306372069383444605084936218426671991748458863561394166645607857570376582810589706470406578828227058005416692778503542351022568158031903194086343080782791797277451827407416356412173265277359985271372903872612920670592994380947454610354293059398585172335749065151858922976451082481133445806035070164859617869707351389089709228624030621898203239015482164428931608161097745300979118931272532611116120933711495407856575800530940265155284504719485839188649713775014766167997345057757442993882765795962552030234259447178343531794561549282943161719384469713002992225159709349183174615667581692371747506545914510072554894811111447099065692363543518848982033614347714587442234127087148681666472502472573306213841744366606693298738175794211144564202402160185857929457900475692568074996888712924433143422177396814212172280988994233712176079002697475748246352150497600897004037620864692789469369588516539339213612001556827011099638942767981605743804970239536097885894224669792346935610884159331968953291527537900533290665800962570719694085895332362251881883140987815259264536314748208724045127876449545557435521796821712623168527313565864432289646524097867266319329811095733229343931677389462462065954095311223726694771685441468846809028842477130925886490596916330821719840348571653738390117171429742109263575184668230236446721726299611993714648648572741845376612853140642578094343383643469236104188760467559634763035503802885394119889125677555768990108994162058034129697150275648368992131626763734718077113263980977700493446750749379939667567809608659208289473616371035563418420278186899882922800601066238642296198631827112369500417482464739728726100976431202369409496244920699855378708819113253687919420511320491880248093148109065466398234116110221341976447308889641975492915956401683093271512347614595569538046022009038295050341633191600062074906270123577611459554567724101333742571792178720853474697058953357073068466922846755863510361694631585339126044168521861249180760209564061262749035771467713515828270852458409003811052393147059449723794909709844023452578240825460047078610840781761014698835422157091386264283091734699877370305963068449917753608929390753485322470936928478885650585713354262827054458968090655893793453193593189669690323848887681016811351043943352277839925727921865120346686832621697581884146818667881722165143559098238258265820657013720278928244421751373407514690178950714149829765024538560402658823798913998768709713177401746226166399716375503886322255360825284262420114966512738543105629791784533199779808206442995791422813921726893220280692029760490079206032039330359374791107059858820285308795395749333173712619775670369957703179936325393973063823031246071258881998936186659826985828034999896799090296433626260585794993424360203884635956936222841077942690640374105572811356603688067861262782567539654691278597060549159525879470171167611493948178571611374309189418239732751164984376208898625202564942128348246752358724419576550081001623949751143580154448401798015995665000046663600081880763159918227492040600327682652539933657231767147772505552765571299397624857261234189502902382534593966979878837007950425276119140576652196275792888186534523385496266237172405488694423688299302210157436404977356891179822529877846312637963276090957873081912886279355421675515245876272727045123657179095089862221501716865862332814051634251636038309038515443885648789681986376959112365637714363221143822186078209659714795977673794497402498546307975117518193332843545704186728081468810570330692664274884148510672853835570138193546380409544660450724306235485781529719604237638763615393004777062901769461767053495775552903919899729662900955296971116555351858712489732892829127967646025560828377893372660861972801029769072898193589974460519966802603141079411926293765029182831767382760754943213651735540417361822206031474892780916176985278596121267014211448485856869861480792738635546968090463778841089496626062635564974913441368868636728545105476272244526348638272566316023284463773267112574883380496842554696256344946637701609182821424728604294385900329461049082018254177110313174571465387729340634977705895278974465546698281236029571105117446942531003376126729211977892505762586759125328923328647874596660027042920695497818073864256975075380194108548512153903026311507593529534455333073608080841236303470131256833061924155766182986337688359014172553054022475247943228037577319190195519865063092478713195917258021786966862464228782411363661439906984394770904335719854226056797117243949067462656874410534678877829568157899738540839994723382363392707396115953072592845991873860053516113700406941448753131842266352607604452657501183425719645464742180695000544797074381955920979549904666951622244880421697371980409625347067939089314580473557484831413769825970447119243110486496353626186882140256955983705932459788339880215536465681330587335261929019442041784369265210274229358987427710182351200850763966696099039330987549297189903773203905902285618981594682350047541189281858942770888554911681253991055939568333907119813582051581683573282483096484281485971948835471059494076260951302297927513609805594235953347017938382247341797366881237805764506287635248693731830055302739807694646988256226091061562885027566028995346783370624158085201350517674352667751943785225987943247111076103101195586583506882739175796301028321455961370447760390956908571847618400706276059687927891081667526368836752097579936836811436594687877078104163119301278098293035393942771763445024904941989455801921463299394916193295850439934861147598059101035963148031393167306363514699193082818425510236210085030550909592096413835345200431232175100800912782733975872150370877373510785895951806461697952798570754239575299294987684683995005683410552523045388520331917867159273710922731743151321191873724578894200530805511429343140604722028045810133433568624889411283925873605810166232420893619485336133450289805768644368836857357048538761090340164299068089685525450851032363658375024051027893150882201090597525550674691083855454786901939047597806383968146913002310412461846375520251286837541737346295187089811332654296468068724168649935747605999400909009154103190581980321133916877195131853679029470906083954550692259163813689106030886545664506627592833100746844805127453360348064742154277603319214386021082940143499972632039773565469880086055472737017481839887129073027322010413505163077781345673170055721133385051193842215771430333508473963202119857940400009593047838969448063420968408022667145975306801279108529511024016570596383638354472056051924307793887752162747673911844557557410404009571447043204737585456849984577606830151470877106754510634168725142628652010564105645480736706594567824770288326818333469222365222818951277330034123849257430630849514012248797053714720616199982560413638196756807380166137873340479293292644151624180051326845013840384312582460621864412707683258761371800762996708275300946656531742890217553072315475257331107062779699121478422113573713525088019959237405603409388038102852209303303840687030824405930122482198426016818004638322892013431903396086887795535889206595332617452834191488084042614373394723226276476669337932980148619198241145714371857843420429900551227468600641940586226278621432583888273594280311387969587247446613578826949156002182258994473498764436880043920597899599904301073717647204105185318777534412668126497544092061513781631731238002152084104630757317089755660781385898562745527968164667435629361654639106375207517211227858851085201454429335877477868142634138933103185788695109288660366116305253567690261765499069197329807608034050143258348106888464046900201311179073909696669025533652638058442893436171868466916643048292118227741560145806950205375212396107693839462396786040069886336660108814479574314689147390817274059345993117100960626930037581974680332510050682635924845900637310606278226946441692177372891999900699968872538155250424968466542313236059866998568052920850999600498597548996422101274607880517206034891647819398254725674129769777225245098336933910983059485219015102732581491177756746096117996769467927150963407603268442168621483849221485284270846262912288963136816598027964658985243545049366289235089040248134992903791093781692665220697534756594932109311788311058358367214637139327016498387860911218332904256963530579187555637705301980715908594574469699389629174976912396261839069730946312185201620852591078793106242754993167243597775017190955367782938220671746058354943040709608483485177083328246527540532145557218021831547388173372562557921663942841578928635816714447535517750444822226016855944690839207310722351870378191667184429511727562894317358450906527259789168356047865767449714684404542838393449622240202945214513255590251401225307849509714421171129600150286217364947622956261001504526975847037656862053458654135785365026291838419424005992994265370132621222172456363178511219028697561256865038626869746206718206594425715356481635400442361624136401122110171278526540982079949897824900723706511005889164905354107897845745223257673868353111011777066025142360004874498107538310471486345098674126532222424147320688714074831840857206887574504748049179753183440686095978477422089766027473201656843653148365376047827119834891385413105638511661092373674506163560074027797245514295996197282336429598546811960440753081152657522075872782346392720567002244299007511087010162997189821459609199634876673967193769764885506784177557246321807130098149579636594336463812324625277160712788410985395604099470559092543682947582228933411377841880988046154935084706685392902435238148307154289968853417734186146010080216035485093452280248464642908974447544164302807765081505401776544073794536480488266663822746950974357662290935841068824309225567515368447090630438912397315725287042773714915245318470209415417255481092600549105725574006216545344809424349763830992726355516903989150658576386483323014627703394225579983246215124645866298420716146415677825880720031996711524087382180942180678647773467105156886750056160658853425237903165271424001374299640649306775538692509203962603264307590858463187394855321551609718172777908712466425691009287053215396551957946717719976135249692680964365685068932078000318577579649355225054225636634890532223066358485202185765125283019847505712114142348095982953005505084196662630313294130256156507039375847906308161673427828910683463355240060722855710696952545358981216219545860505213762580601000329710441991870902878114557386489257107150415502264473031574971176151833550216600393073849440620969251372103134942302104896496895644672093693782509331643355379840803594248372869848394374147739525205186831513958172732737613320216863871148814201752896828084837876938537925466697510036138690020611157586738866745767789365546577840314463445044681057045233533689138565545333270169363786100473207728877468817277618875569495906293581110247186592717453757937291902703957704043051606066122036597254779579789172977872129525567142277312233967342661468379144798095787022069074439332658996988976117107595238176729131492642602739727106983449849631398878482182245814463686374093453785112341675152934138456521632861142588786198092646976765722843625690656345678926909154235797744468540199271320339978659948115381006031433344274846645414271858616647622347828295503448211090075413368037253018815632983443171276535545547201505885473905776985618453356774203354553097775828552353606105394323388385678139670714643347332309834906722180157620920614632733947719739872332925667779518837625626199562608500151678784700456824147070482878302654427356529261193787802756957395574703983591495906413658638520763853578384890878894323903171833482323269581383127177028420110345447511428323541437571909674598619042381676432869784687002157698178093368260687280620485831705994762388408368172476729156894030070611516396275212313180895332316899653690761140983254512274440784107134855216346486002361800740301636115053205972762919204475646054271337707978866327941420044815996485082552942402862136251173145406271248894384966102147454439818662617314280905528252090516408307311587177010588823019462747440663667144965111142570608599662848740307187426122963965835262794204994933635926554016613723492015211395319986658448967260497280721274653019246002546094381486353857156335215872943882066276123534404858480446833931172762987356658567064487845574564203369985154906231464066929558552842134616261123261198790332526442229840766705808235921329604304072593086778282138974965816447969580223299746979705414791483040254323645104780612076694989537577434058788362112818899275428541662058315026789704768338872203087883189827424945837339284972342924505153559465620968569675455678120281790756435109392538803602760050284929911620803731251234253052758073215967652416360761724597322743441237051777229350832983237542936310523054408543492542204427187722723917245959449853246535701168075470144054124443609048019959983347492132449440741959946457661424855648419044558711662512552394667626007627901978172170456215941568137838009528867433767903631361817100203980941466986758416802750229678547251602667685297615902687738235941724419636262831504613926987746235853741738137685321156963854931326088044357859760979524875889000609366886416659688451571255885509838251959887736921981819401107456825382743944226943672192658945765761926330932679378304771218998896855173207598229444146851198655313211831078642215115471830558514640394643289997366745924170133653050089490629036323362811785007916048800909605969220906425822059257842480166256335236720054489965629501071869015092243683051242471586989755351710323874622683257061991695858457125769747858073632700037807207599061641511060058798137245360777736703945891495786584511624215139212243707570509495382517423635343949398456027317874091386742979598598305961083499341421421453097366572394894792240219235921920990378186232203359263297700879149090675852746693973508009241502489012358105453436645396372303028926130257119129526677006579176667694448213331807490525143149703211461410536756100737073105301269523350695266873720623864604923039969878503521695620066801825681608508912629232809049411076059548811844925501399088664448467592984355658105108890548951757419103222418965843593443882180467728180155425149931681741971154481366690463129269999325285392928213998424173186642291982652547244669923168123960341363999269641793797474777971054872352105058931616927705110969032347277495237345020096113020569785526844482917709116358942057049438771024404291124940583751332202499765422928359222171514190665560469203218421784358695402998973116356198493789105727039710940420870663880986654102034063063778744231365072469419304161179532218461869155428671802614233796840446301134647262299331226941389422218572270464877480572256230139656618862429544241877024172124931314629506547605391313928671219387009063719715389925363917928790229736118737901448069133500585330080302619037566315515160391585524511253497794151336126308188594081788550647363428248191552280033856200519371501003426324214723732186618215474559304759735031646414035786027556368601572938305068318071961660782381034294180065169196451848562676763721826846536861025147745773935949088687237587077156465955845314795213188000829680928958452001191652802780718159505780545363282730646146992361521998143060313813573950602555168395476680322480096584334478523576640054355650861073642724557165839676987542787970029685554886184142644906651803580046239995357453155550756651721288584734520523375383922993692406530147819190609188553477162628511929003750752434502501317600467382745700642568534919841334005828427162715325419580471319541654819412312010528883784497560768788852186361023668278935541633531842991712225994731448052377206432698353209944144053581701508852959236473692943976057095431312517781625220587217645115376200519526693074058569472418513962484655090800340097013494292963915570657139267471240315077817542928188119722612783866794241725856149599184478928366695034957572038485311625618545032901063814262042124237890522055941183418010513559598710192506173728564783229065515698644278982823627012550148122250659979333233982018239588155724344741155885305247156170355106276512295808845985810537917364251520493705426362748383877214138498938730865732734435505099510451198798837193263262559535953451903725300174340922151442469945955104500359155014848988226122318700767168309269558220405385898815464772678802607564342856308122852335927821373989923711548330819722464049621292781918267470715039683794480180542627108171727227772629017858300790542771636841388374846813547231385915715110329849412254379429110328390289344578447463240083092600316458872453251200315331983433079617885010259273207011585790888047566577970737995596903629551930749874844576645571868065186409694026816680465904903310497386732728845317882968201622972256571926788790057027833552132397103786563587274898845641061321991001743215855524252969887601588232704628130451794208423028454201797970681821851441885663550386737631283989850612050587723527231188141695393446596117749895018378477183547290416441662776243121736845289016513150702329168957236103182230835220839036064308725610862121850863324648428463989465377127407132215449347303012241623695728050881390837437377274158242463857786124542821478078417462093868664894526977972806569273333813064763509657685152688680053063018626606051093571263939652636815286709642196469438459528255661408809453041664275513861518339188285345338205001875945425491228376213881723438207640008370113129367619206498305103742569715587917583744012694549830793098142357316792787083721369423134680760934613713610939548287764099571090650505289092990814924668752885783931531819783580220174262404595464224674344749405023376410458230437685270382779285416419268780017469901778781584292987582881760045049215655929538929131219459820096083071808882491965114178146558935199041616775221221991782459232104967275481920396405296911538671174507145869248364019168057367065985585010462847159022482525032209613134695844520574297432804607032390780867426543449987091185378024071066047607334516944858629266342056837806537921244739627338158015263970641992232153669080970221672482722225251281194044005489807648719778173840079696906556937241789809401245243977766662193750043873893013410002651802300786752997900259411495177747619634688652666393874632265000725271711551029796521440600943867465512277550689605722667595082553084396801193178109223808646985189684358661564147386496007768161018714121296243775250484828874173873963892975350479958736985647231134561974608266926961047857591763275964316006238321839165112784214319868914332347250888877934676800749240131547608507705292566938695497443845994687492593412870635624663449866878903912615086632457420337281635074502637983659683051952021263041451623444921847321150396146302233252233084543676228563903609219018980386280828468168599661318912005442194147778204750587958952410845873548521447013569372575077903166853597186643269759297750187577578535246254030902356223955285654409411538150773691937253661074330641134783283775277877972217784728517837655631234092946835780267001025484247142728084650198884777595261514337244551880483439671439238117684351612666429995643898810796307724642599428910177960980823216861032499831747231072410681964894089884938809148803068268535284218613136548895833907348914823624496762908596123338894205148650410493343162099694535302844132823865718682509286270812349986071477164069730565529059645746465996250966570177499492193988131435151212964378088269941404359989182903723161459769121238864697858631864266867736148209393788161875123948359891352029393391826654462392508045566340475797546621551786701040772351479651312015309653753393893422854934753086299926236898530090861463282208928739346601900278995219862670554480883378705223973170138074642497263731787778157320267396365602939791161687638616015294944498315202879717273863351012208829816797921464843111250574943626452462465540086947944633785549353990118647032694582993919768918215706911569880314717705344914507483019239088564723966436362816439564387073768638177932685357171907657803329204761153266469083184468330948854260171083859483833694307505260882501400595356219485869372708090677551786403575276753405597079482637510475393205120379555312308715752130085606828358194028888205477025618298852600523066250604738824031588932117396208991940454860585853817274289218870686379979269060331587966252719774083847923651709695321183653194405286704010307353535198113394243837332823765919287179643726561271015605784964834913353597883622601361800794718374782514551917866543868856985594679238317972099953145314112476375953529626242614062780643511318504794497350499672295450571147522185596500963723823442234729298989916508597001949844970524535109115292300779936374931001311941799020370450618345556923039813306600042411353477302713843311952122099461806263682764773982028932162918123955856477510775307096097476179249832647127932120527885380493108593695300736642291086037633951591121184317471573591642091760886917506832434101749002698002499677158354024651139864729360156327748492632164992439680783654785108348987767165618066087823300483585889549970908053404354532218157411814017235308706116538081722132004242492474232026865278313070782596537156112912974811097735486252392769927480181779753682167087987592515817197796351942462062792928341491006172082022334065297682983892302859852829279826788262099331708929928485005585579089500118561372271629371144265197439779957126307458208083757416836872135219824901124730985133229230012158727904913857337558228472229066026610790698860783549478105757807317106951702356716548649013472748629589336414546656803439000468949064100589983783280581213756462496532543240826567489514700812577779726414802395521442800520621230605202714981605249423252197163838221561933105575325521895211897812931853848041183326202252109961906154445226811690815592959974476709562698734177951487385642320658132672721631747515610987421902725342069364160363477809511972215345389257021617092910081765461979984140363715046613834987911892083761595713915539059685733925026060977428904670322476063827705321092395475587159986599694749951911280387974379628838426937242955949902770263825373998730802337322460499802955720943187916193362636606523621547843559277584795117803930717042253840343617103508045040200889034299069994382299529330316092502926354090356844568489339081004651557434108666083523430052415072228383350280495146467884108610355060449857446867808552386590588016387537833273671530957037208036463095767627111744001636159104877018333314923159636206386247940120782636917985532425601330089836760881682646156902897046684460654271818557114018047324981060678085319939827321797132768871440999921866689343347538855791135992981724300681798419799609869080778092580810685188613012610373705192887502849099216592032032125557995424014415975666157157871783380151146205207202501746316382628393673027902530545797309789068668467851241557536875197880111289068904870961032040406097903890938364269020183319929568892484552353641399447097468292465862755155845543828220420577813424899174095387452971661624639038520622749822253109486456677561119287885855739779083050813282895187862259718444619388792912512680133093908739282257822712735525195630535375682344437514920446209269544867995186434984571159680811140914572878769138639884487885478593764307968401004002335963704902621314660594383802686420696537895259791319569667849494977047597382179849382021471707095295917410302835221566626929098942162185604814339874092447506658843931516409152534638432080370217787674831196107235977913189249856671295950295326693479948792536595671891162012073921380807613238704869717119298675623496116458248604139957929875046945134434772364404279314506729263859176494859450814106574709881356057022263838420229620155653515881356747151295879767047829784339720788453354400568520450133873040599845978478869332145900740432780801354451594066839081228237946849105292246640251564238634690995099715113450192841237585862401483168844957703176716308392689809888371701802876370414325078875748761885820167967788025205385621993341791899787213006637202820827916875696517622502393916164340034740908828741097853837263798768475561006994248364825731754823553496466369439532301340415124892160006412898627352000040867135436911216637800034384565481902299442010245773209540222750838736863920112188731065799538182217894466762304982113136494497206341609241607698116250604901688635914779341517596394979933986303054180969607365316766592921274772398249057892696431523571564251492186655196828308122948843634535953877778179103350720851634378552255227398414371960482590534231018697957030178176172584182416076391777691688369746907201882657498147273456610327589738586449891286511378480905519455430125493175686412351889574122811098101393873227319687318944046838956190846765918047217228904955301794271323364850465319031178739974692546270867183671570881244239239913323956544567386226027074784811249123027067985343215778761822616917946527876284838929283671026800566167114892209274545504209880045019022564237848595300578391463763089925855978010865178172239681937109073503564211942736798669529805286828124826496818988638887247147863212129014384694708341008081853565533540059655997546809867421140011407558846056908193416677796080844423678494806052622307832372757397385016749938847586814574125531826679528256258680247179345903860032681369925492542277028364606447043620522742773011319733354139406278556534944419638072190131185959773126937486749118138591946292396221915115819499759342580841474376807830158689303731467716856100971619716482809809539815044836272873470890864187094039105116411822581508818718861617044288051374465831926453822067245135069000881193777035565350480503329816998653019969868143363261781039499539485784499968361166481935920076989014330587038770968538637028347848662790612144551117169082156616006903659224559091695601198100539780849146055379715766790422920396357819347016089070716837951246931850588303456175536729171060102820584517384760993913627970699499684805775129191852030261117917052695528205533040317596773002614991910888288019375085886568899117179685822687274595174865769914868038612177351906598607407751745299302265829840944342134935750535473806164571698458423829915666763433213339409382410236879048150932408143114514941393504292134771992190560747904560764833662904514165626090556932108963584243617794669324572820797972479510898037820491403136614264471667601035217485437183418172215008070908622931986297799938872340124155731536030813250093886957723332692700791313760921085918648875964095813728377419648368370195628320677181710501333182140408106116646575234928813483800242018551820127488467410938460907641390244664492457856485704499242301152513652700752914006365506267430134037942772821101600819994432400735245015596216168306482080090331007283010040963513490267480067353664885010070384830140670823494999865650908876722621187265603522275274042629833593743232788189458646142262918376316329787796366314166637591985303886413112308030832613311557893757059507358114322559351799605918723559559001774937880769447810957006755307371955167270752841443212814890888464449043454982786721824408298460439246470772488403544483920081322800322356209480553675310397854027353346243803211877424264879334331979705131568557784870876860933210915538990682534665817776821707991200255066493854787339667066485186773590015509611849336028232093221743880522576144911416446051140554038879742218919818182311443631698235895273395631305994434369670236256613026161677976097554960355627375968860488687161286902788283714887795473582186373221683422545212275015639718453535471055355229468846537248446875539247222563876321179724905998525716145481737030728736868732122458393488158824986717581675863794231881726468514085682123659638447012806198950876522856404084753336347849728072623042192014601442540392475272888007422518520596255196078988891899658597118041798661415724457619825749035863810067349368586666301210712484130193468018689598479610070737604133257247548661458578168931719935592589162907400468968172786857347088851152927002870991268242534929040256107102825498693073599016505928629079511470415561250109746727396537314125537383721849507959012437592245239385140487510231042240902990137281669923895203311107060759438226049624916702777725619584334242389953049450680430427416313388711548619601468950108926932553474462679645737275282282641630784041329791795665011607321551345811326746771282497865632027712546824393386349116022861330541742138414450608915401657994015705822311641044300985641320405116208461396903410194659830866978822304406974417648412445699559262113586765561848773204371783191835776339272079546457062431723111005435695794876815665848203491950796615946324563593729503158151802538700567982256583446525539665748545664337009167045041139471375148542510145298688216601953009419983127045866147154283151228492994125403438876250764421343307859385390264314645353880733031030772591147714744825743592203506428485906533618894184488547406405370411459759985812324068159574044886211564724644764856754749004814141839476617821490893511753311379590478207669622285769966707503668053574137786707270563608405506418803850892278063781107811820461290190872383748779635196933259733143225456120666480593343963483328473045661398330589739460679765772384477491029273694942735900170420967558403175737046539413258737512083304142170328683144496809977932402260460090761101448132674800335171554107095783283669642475868700601816515153617894116117375812519426684169647600665493418233068518723677033577530032349224177762831315110608067734299476880974489863705336165724646562898840110419891730492961524366661824501981253208635069926514630654317935163861614766234934206294770630653739128736863648134124838404153123432106773845026955236875674363978521934116998022131594941051168001778547409710208923229803034926134824767448297379358425360164412997179114753998734941324778093013763489854224464745590883066003230797112334636599715995505851035718339894000714083002488744986944283311221226111349875675757293952028298583408713691248090499992983726424508205577335045461282688131143449243279885031800790649604878989287484133972002355592945955346149440749785207723727882155319821360742726484002468785810904770474893025808261621859407682311963511841926834359136181932601886365989031001883035506655537735003070949285891082367086894161619509159473479713023364788393895547847074383062562714293409356157743726870333714783622143380455428021456421888041853854648332001729200768423480358671150036131708400303565668631694688568920612399945749748979111368103315608622597851096405075191279725689097722999849048484246784980155741415543589759516436630472682901804182229727295617971307804947695036418739758616653136084669042535784645850799565373013297015027836144465799083818073258960481283247633988299028636315918424736036340773341424172085200013718225519647384036044184948557620675509084718404501661407812310898629220514079983926308172689319337527608755515373465809324793908207326379361104798698487057565114915159938232290394455513061977988354309608084278436585081822164294555719711175700744533242634614703313744460911270190688220331224090634566863357661680716024836553369226466786124920192036771727286034753597493261698566934092808602688968942573002388180348303222568779035709298064915581848341907310403593839990109437398425751450243244281790029607104928143702104151224534504601889957896847644249147349314541039561458569257712089905988493958871834956115976416768899478786089010483458013438152852251505703412208425058019007675687899674175686370675106979610527618669899623900819616481738472436065391278110682212609563393775917948935967550771546887635000461870877920136773592280818777373667714303380118949243338555612741744562005944057442367234507492072776080190593229658803745542754536956496019789611363338533718868918544642069923671694280341315066737549156132276266474087847914630842532934990990797223937094239850985690086765197392071797894178989752281104548969494454881424099433920709516305824103109013728411023620799992964918071564084632387846401035516566206484380968578627877220451234597547333390202050256980602372455349067296423625538065507216835493965824799491336745599300571867018400077850530498605923778462361664894131869073459150252531376667999682078236134363398430951406753038139200601218216193651549360690661590303005722556309965721860092972155830160772103399842202339995028286242894227047523850559674780678693297561842284494647744009228023446389911244887705052430358891669209363628605133711244249026375781492173113270351924608797301215505604028811053008727013367306341049126743107714918214396607684525058403739265535668433453714487603770692085998401748683123008489487958766406423030044581262615790188650257906371583212458671669254495190924159808566845759739815924317633673145581674330021887188574626420402208368296513172521893229304508336934787546066365717557349168168078362419337358640607160743222882451618166545095638348727509949275965642014048333875864552635086470722731545764902858003733634755284050737663930339057030260702951355890599476539752474660632389053175735782338523054357083854467012960201055308291445299354572446698884481169101950158074590362448817768529969573821969195221024495641715713258041118200825186213832878561641660847504165759516340136676566919529145730679016751305935142835709152033877600487213662538613585313938420812974185483049667455592197333508812530887024068975699410572142278575595749610975502586253500540541225631275557951921716284107320445317973339049257735562550353707201509461064925497418129313743789194953180421613158099587454179782297304151750026070875505964619327416536227345175664122068414734738476599900790007081107746201336931409644401581044243508099871752974747115891305006142819968719586661225979639681570588959917808467641902545061573352624988597500443724988443736805255100552507570723368169970205599181033506889900987686878430082735088524352551509514235098929103673987401719604472324853661946489731542027514719856264932763831154683591694891231972267134832219256313976407779073313772143954284931642655588780549155138846298992274497409142462749678864272031839893801398280170723999360194049599338421722714643432196749008641158159833162689433466190303369348389384619480755269234960547620569131166753193731560922914376056276031221212819444346333531931540732143306071212440824758212869739006543691723154201669998567519260603812174091143704068582754509382419900257511206712208762644218868421413174770098208908174365925177119558657632935943966195699334974229490091804679866487472552208974203517079697011922014244132818963478726148681307446591977064160852054939775013292948286571687823769303881318831990944688740659582366713905792726764047598050109788268316606432743011840689761905385436970973516494911475607118241644546342440085002237711806523692078130679579842835989026445514919452800917661088785820690720735206139762582794397424570180945628969536462361155139891431855921197281527119936400741641789563973178984615030492181139425785346960878976526041564677391648259965632107179752353713304056711859303660289618792438159302195771136856408414902759279761385871844972660450998447999531604284562961061529810171772472510658616281141562056451120928120109759874325117219850785021706742659765873719804248963337117245814776986784116428934562107826984530618101581678970061710346604612534279504820036094860468616253706774294517317893424627066774858826518162242183181512064134611707188131398467002315981161837035665024253684117091682762508482056050882449878196289775249778988758352797073960846375782434557213437388956497644974744965278490983978752728734596200768511492989874224014876211657610978798594760564517939321934007942741494695622918463327072871330826826575474099084009394074903168461226316503983901376068695802170507684575076930030974445113187211012523873852747750817809739968016491950037419750200999935212908431859630075243155597430251283399146986877301246952863019668995951911451656321229684984882885168960640340512522056084825350454156038683774935025438318569913613557323331961225413771009398821594067073432451165421177258747119697461915218117225331464856728499961616495636294748774674841210873494544970138433721821474955603495676754881966693123420477537669943568366901952734381822403741801565829644039671202947082726630839501443850050278684227979741870550880255605355306265098097322176254553047249617341794871541267176843102852652737812810839942514432081085081267264040944147589060719710004942683604630790224328297390865372794995911975674708879085504698934790831117818010996599821678198812453334972387321697594942459159107652095939014822334952356571469977244159727841059707176398235168277855862733848769203509803194722333415842275006371357565965994701972655223066617342867099429262140586638308333944252522532684913153416595042546015741858553509786426824002336851282877742349087219676237097228384581018158223714470939823578386723558394433445013011632968491299592427545739882814801374421441257336546723987020207816806793807350648268593795402258764941895863384228449530800640864655044043865728355659981175668075216979665806544088550079536210075330541916474776698580333443969647313657077494239108192891338632845371450319946653221997188085431393368531879018461228184344874948298773549848168068944440483753442064236226220023305915621406330266407214949216066896253345345611897523022069652019998370362915337027189347923408288715294047091117942591900032574775840397217881929237683443286433280429293307229189997079399499862491246953800659703478087939437994274205272095451651599110295944071407347838708519360700036487065662123919382725095092282495531485650171605604525679186231452302701722222622550085210097664618022658876569433826437222578887224632432975597930632982445845196034639550432352308368431673079761880722020427078289657373404701586298376908781322480733560895897979515641467411883901899313148333747547562090509053797837063110365701601153781006963200214372955477705704178823081984917002916663142304754392284796899185496647731094103163461826271071209027040024885002105311913986770034542583472299242920285549646236335013834425237051018308362929572828093710051515134933482810112426722209336147564186941646396567103044951730142651697069553351184689978209492723997327528397338545450923205122071216395612988539514375307108129265477787253054482459083749072844210036186276556958853623284840594333616599424205745195831114748664423814366564018122670394427994252245281331448232073034015001841454722398537868700966667425436810831294703072516604847009697896296390929465298933657057082961169263564903253861579687480139236718717516254809638612920835907269783606173530195680343955991596876887293389922291081617305992515125383358780728050825167521560944179654170505227108061550757172368325119206492441106674806105534671954941495994839696562618890958248168848554839550828109452485367939218715878340869387786267230494400224647252899791922705907645566448150891903407758129116414023375871747390666803496640897701547167359029426091458242810618115916258703878193396949483230037675346316882420701885278489608013661759950804191869121799626178247852569628771998658152430348326758356792617768048667115176138364821735209032468290334616527009917736982549197539852750859547883275871812368401608703921083733011744508873298873806861173615769308020592229863686555345760415894168840532603200898213603498945781227013925884109880865590625368793244035952402534283699571747828446212509314889124937500766048360855446679418402300720458811649201844471884328768752554361174530381848367233358671949869047667583977608018759384243655283037666098587932845568552343009742647598024042662700943030886794128952588060599400162335110776703669992156900635179826895967918481587686832300588278334274212509496792884210739476085204411349086234660973471033011673569175239543952773661855490514995529163459235619692118029562624964769149555060742793526537732637821995233818617696926787867101380966340119877601059022505584273926025891500942020355502939982943265949098956888540859986345915591097337409751547896045582038923859048174263670994558727053711069115193863318932231685313506167150273753520037096019625085327118957837481819393601032768725950715659591004431762510363254488278961816522697549657212545012121408023477705148238820664223104827605859753628453874843328175464005382359039814186599552633792040502158058896638747393578727192791742764868013554040329368328165661164691843407161811138753764924406598702411165679221677732224417198789003760979026600335004332586976346085433190355914845678267398676771835835410910499379262289414647883300064185164344216071879393280631235675983868862280087812413573219861591516679922344407800592453388357944085089654072758634131344023469836040633568223859328783216628974563727796427688387080851213034167696287895937552586843528191119819043292841482717090537492842947850853540374561670388583896870331992483295722925262683999109132688634847027691797069723912577020283285821569645896026823550962095939004092484600244852995943653685765404020469030078366111955152092705222159426649211623439037670494759443656590985720254937147660545019836430147473513707314433813925873046136269512284845208574181904176712535270156717976867098902390960807926822037936133830074494976705975011968421308848834117563100615761064211048347553710598869174666049826534052750152191399896746592647571147870178187987139241534136507547846325534542847610742650009574321584601238778806519321781849464493090437482629935676061540202360701974120556022207850457046369981167333145882762205058400538071021009593853255288453825827486031756468826012642297764245187977270332674663546437150604963701270719835350586760139536603050825784792993158458149678607918437435034025740120346511607690877878305683344377674991763616952422152034955607761652393639560844092136423279318384151968728338208002489540415664969181739421827330279950716146923766666283098652062212479968488129918270833583259982624196915365759642683072144345988660022775673212251041365716136990733839462954366359626806342551686899805721568879164475782035830785277138509575944339456990355741513262276320828028518946850361869677473797139948524708058789191778949303906672903085448162549920520237429294222598814268741833854290374131740698010846288803284796034010265249615556485527148260762360625451655741987365141105260108498312413404745625596473182238464283715003428054545055445013087449963509242871719208050392515978747398457114516465631421114202784789019776160955307106586055463266921883568100759493650826395691694938231479559783381977113985894069364798088278252610534487186723845763089656749682837255064221143766522678904791365563483353070217355103502014586687653723093601960517848559891405883656352556832825340790490570696485986141012665016940521198652763238777510813594472441577165575178691163478570355551131859135549116420890133495504418171930273491408257463650923555547440280117756761515333083193098077078737030521928916333773205375257238967815428246448241191755027241095745833982514707386938046661745949255843452263673284885638296362760344736142919552332185134031242280168006397132766855796079791220678779108676548498047828755147139451611374121929432339691618385585424902380890986291341494097315624147313416222013992496013760284688316803572616869775656656708557190398157747237471740321770960362251240656878075055581080452923349071320227806025630159318739090283284195708625387998727874683868810312403103344746766511561308753936866648593639213555641031357480607725740596306581391147256524237945527688452642610700753607050815868106708339004500919979607287781724473446720597108735996827769657049972118260813447888991046513047028561334036068444791428745324360309417806926924909886561591725389341446110927074689692752101959852880322492219626603635938536936825131616872741666274110057911801873428719347627900947301614075154127745404897987779036033788907276924873786852185255197118724739220665777535485834551927245590084072204496189733214084966474575319378626204638435763130379853938920313427028727407250165857404352571899671617459812321030436364583787817815737446957615392474824436322993762038980157870871506484782463035848210165409616553360104461424094695228126513913769216619981396621218444550828310553160337134526740849077700304316827142794865084743431120811432115119709862656543105483629131897769296370441980777491813387673895055290548276180577215419213634764836401041286745452876870235263882886862562935067146759069621149192306328108628838885049659263391917854457751969268700201885917735124948660375154144665239115873253160973860238902214850818756196511167183944908421682548572312362090212832715010100492817610552146560267604203906557070829143207368660688205102926820656316828816355940373663876792408169823259177180210643215469829020939743573488860961652382369197501003088783644669776045142660210541778037135011365941365195854045499761311823714050652802888317894037182042581849014123701729964743933278155195165125485108521267446233829851584400364809331511371069185083446880788486528622704586258938423807983905540634749817138155832265518965620897580757504132334654096861792929911290987799113185716125823203595469798650320817740316150779731639633062463107373764437199672892979805782859830205228081247727165489222389994113420760931178933173146502303438707264843193135756129957656160808451595634604407684038825553657728407774484359573240214650073606417161441921294523890340779786191118158973706935545169083818499843589707656737139670422338350750890095126663215523641809359195391022134351212298133513107991625908068084051285936676270338559867130682761497956154906486330818645729987969495767219555201593893320468757701473914748778769439439039625216235557203426423903879853019644194240988087224110362054365116255083977037646500799331125620398571799959496846506954168598807174807275451866495639409926366246354204130987180292339599178747277680836098997527243783420844986497013276241429977987950850146718283934387316816641439911134994934000455434901486849646826927081953819260997685118606325399967769725720322130743372228408231823341191328803725212167412203730114740100257743215875913649420576816893961054445160752872689529790473164769571769390091095622176328714649556977998991144640570957104016784391891929205260701925156016875484825408959170696338315486954697517864657186298046404207712093213675271849262196654085835659099103216364830636645949163049818683888464145083097016520389562429182860567132123697154764936202019881652429755611436677806530756894120335605029601342763424848949983899418932037836304493801922319898335463026240460047785965004240032622305537316056540547653585823680355578791522578634815049416142689089901365041619989111086842450298332738369395370692735777927921753243106286436070742847210280516773216856923763016943738875213504465327405800694711188963473867941495875045729112602548646322597608474065828312290986445271404802103621337543795938630706584898312645690581243044846342673711554542451598103232201785020096613004622317771193673831844330104546371186106884024510820873963681800926674877911306331624510209668068242860916971007398280462399129634857715948287716202734695619092032355833858785782638110483524006069825404387184219700996989325256160949160504637940949610667783906580548108918032587205733923751739062813206707742599660592657049256197459119182778264550346483808600613334133178654539657698632548954088258950262192854309185779943642375243383170325896011545618360001527366172902038979984958651521156967466313060477394917160408041978366370671395354452851727636936671845833874726472773347030384760207820371323746133020324304718309948359183070091570294007872002285237646351844977589280363106036701850636630698555420437354882224852635162755048282964732714067995896414973524381805383753191119823626505676578356031232379461065623861640796328696833316095254731082135924329668166328422259682473858182673954135426685822949226715360220653460441189054016433710718669772041233077481585418313804635804746770332375332607235814474486008793612926505750879678377795243176110698626614800895132121747631890958627365405189127985630618474416950889109356397856942681290490884677393002709594444261668505300125628278441557841134577604717363198829473794551068474272100772942628210889919157818541507683461911156830082150997684423526758006865351540447637273087508235041787980823868702288583760375420258493663152356954637465956329241063952742617049680707685149323466659572300275245964501359972939251534789259195964889290985310786345549490442941634006002741675122625858378286577963714426087995080896401745384233147609060370882723846289786082031922550517230438037494502499388421944769578265013196306932703981271543309377316693777745526391563089467480861352011925050706573713023824448002820812942027604617970269886592496879985696250458901591010874533277641758310404206391158127138358920220831982613512613884244834335505075685734834230102067243728038481409886849620323670543939220795151117242075947330511549228072127154156442025042109620479259474004841962583844684208100371467278139426377118838348962801382655069169618526547800217050546184600545017594502964096045630796664230767712465447978538318242829478295804884894036257679235612901149616960694164249967567958534000370763648146660063633779714914028561875881424529707185534224055996136830612355520263999250752011912367332337607255688251152600214562327514206948174576505204030398841830808683866813333133590352519386649842518812648856999433809546589255882128660081160888704717437027897612225561254292622806298916980140652849130918680376221331999807077877791750568705757154829238270327197694230446614962211655406754122593406821418856473084422585777043068709145280664125488497630372299184990303820852428829965044970731221320963265282091290964384818241295187448803031400445586852597055871125790598350404286659843488337650628353677693293193350751444054775879705616738907355481511860778839046479462187503791655620169338290395573196468065131151447084252112875738832947857532138743413664876257267476853787536137602093531665043196651659573885178205397077667498747841738110694790378946108530127724983785401122765673714091719587930884601638795816403740940581327683491914378965632999789516501571344717132226802126381533328016033168816104208878127338652186275346119001909219586751191284569278512700530694335990469713980659627957467197820494301999992135428556721263135938047847989580557332356301022692497743709533346339654883551800156542988315525627232559750682962484114312194478652815234501269244579024424392302023841050193893721917299722405275275671305826216893245217803826449949302894140376512823150848356853933492313704207736521017132111980157553938294510416652134130431401778211652328030725855998629224268132594675591368904514849081265388997773140517284906521299081896822185602867520070899419681558732679286650993714498951330998012454966911959586748110627955307965736712865740956395226933887521984466827809556031054154954955208315561326253943818923809625263586589895021723456687951898535010952710625622147996831978037910302998985268314990903974759297127240494924019401748664496552352872274099956271410796739276053231162926757857768078366772931775497594803286757237677824262663677057610913291245804543484821192089214114317640610447010565176762871297078613106432841706652060598731472668090109118768368838088258409679398852114794846373360004740386732791926218665362156318263633376891483758877002526244348628354779782014512880801348818970007060065147839162656477580363237696266058543149530125122803822713490477670644272642320216554277612698555468238787346887674696762647188454251324162744127862531972118988100956315062725147952544043320818394792003739101619336734907984455889476753662233399037721271413415953941061436653056862756432562878951614954387971632540338442013543249889631554554116644823825788187227059544621640974486121826497418382336068855507059206928259418714502547271707510203207042519162694733991940819099033683406893345085763878484605877954102745761275143877545638939007435399671919849462042296826464128953132185004517370466943931071883293450490155923286379186085100653356167563658689378340203357314260518965819614463934022884404059120815314609293579022083391309754014703516582399851145907995252781895058465533012567444904660379607802014908536859769462662923187708422309777764121226035277413575249189125625387303851459952870334793530700316587734133822238222928362027824535314460265184673425560617690074513286867255243871691659165366360212608587417651405852508305931572505041700028035690272874664274278870781624925086938084457962192484144399123005847435328151153705784513332001680925645986945239609256146193014669826013908032628366656868624864386184355701957842284500928652159570192346896071678933886183706013187362515853108220484562312049706438338051970074952458819675955503795699515785025162758665898367825338496969908465626819096683957644741894120103263896128291882159658956232798353588366304536179975108094208092847968496554826611062885598853596722431667572490848415062477131788233859432165433860026037659375285743287605023553416652923642235763992077784517407116805948545951810546988787475513916040823678350399669866757114214105969456731242517457220266558290530615934738098367002592679304214875963600875743805060859024274964258194174303729264395225989585464352578163397010507515216192245399627852179209184034183875195477626781752908688593382676903993329551289199643939855278104889970045850396326461189931502271321428179569867522094059734627106277544539454342879648839532712028776996502731612850214421920794627425932780857901087944160302736407064611360791392660888161870096686833117481765919759167992004502090013976709705267821140105378335640177422980983508447295541588085191305555056308139321735110403245780077291122183494649295967672697362816871376453684670792702247537954033925926875786338742694643409931644646555622852523180354588613765704067840069011996330761129551106059150474596607455157840041858819312949142578541933332965798883529634658370547489509725827201971983283142723438020842810697561315523782066655643715006856299412120927093965107457790722556993341897480601668615581854803857445147255787690654072628433694431593487651479225769784155928188244726048348325751891954403076415097339324935811629527833700979116393374392246063534426141218431249890101462748561535806191597189378367310698404993974814235112755201469380298918531384853801144090478641014252349970767837009546582675035367126018607064471600133096135919096433395237288528667097504789324947125320161088901867368122124383218699725089607784346342269645811716763380031886002452002064243975209936159101698959274925054554786548709935709039802589777205498911952117301008638112145512002557836164322497263146044991008563151083877862291196267242815997167607624945464596110439958356094599518003978849338618783636579582882157218522575422077045025742957078669117930678962481927212678508723812189384135496969566492713688355803823955770918821605597584058531236189523503219296002492333891765193979211220158823051663392668428634526431771215507661551017585281418894931844822012806841999577346090670952304858543044708282113175585921648049907561197854167311391494485408902752193347132285789494052542424739793853587825814523259286298382093778903074840685562112828501255015403504698733724076579659759959265809141764043711233902623920517431142768919636255185450523690841200788796910332280889446211193953056460826137973099353592752847844822266129137318194860120276565489070270258642228893085809879121921233485182820323336249539886550084710334996139476093321569431429339885543663368699286810984882720232968450407185751144080063775471131256062763364807319102955754139061295800213717376416353914881692773629544924576983782751787839267886560056720260384544221725462163908624958413378850437787824697451449032937429782760803678736356504972831390090790634979043887192225478589505775082002659424837168268891788061628201922696270016487621660891987380351534283284421709887602973017689933974899358500203555532934606464386693035507762196851603909640502409825114671110938406346007162049421272623038709165775395716167204027167384885416353236423896203996692292575258846408369589225592306782159768172388864040147325203306872866082622062320476059136397571306269868101429206878241431559459685950788726524189009380406951233029076784852715816974286523059812593206580304531915863641607985891319855458725819567730128866818904469761260398675305339195009407001718634354348898675515820748055806334469172923372508282196944165544243176476611799805421374296008375524170103006080217990767601558067865387017802611185447680254480820161717669763810910494356342608679901777836585544105981569018336283495233469788382383184160376396854784639757998567630322631920257809839229751662892285072330753645048265675351046178485927636238395685609987340508423860669028079348582184042613640453812648638641344059004257516140270146338064581320112224340626821596395113113750376480517366965123730699810789356987246032496292259224239965220154841899930014580632871523759471571343681837891387439824019817633216939551807377186467537302081350447698615018067380278063786098546398287947395184310602351894865560716249800257891768376843215073676277380081481972139055171775405458607492056144924889233679015317847585454771959510500832872815656264813807966550396494196609799696768906114663524806502297620642758988750345645724141701433665763120812259683564630732052429077380254323736401644700530403507038497947830350796265253266832565158117662958693155836782544117225105439182377160949186725554362594232868365143266260406687492497533712130074030673346454629311502461648297394679120049431021345893724231344486338682457233466109507571060505382019181025432234342398839942210124787779300957337703240629949957846794762957671874822504529456463117755622818963214321083851011355412403100933930648107768211136056608137241144303193233457962061259804820513273772867828297731709462141863923416848179832664556666311498469873013716879218840086382764702776177991873424056691330553509548813899516536790550407814804203827735965387717407409985834900753082379490603455903256501293561014245109485524214803314151120211224579912594762790004335135189371792646632452681548963606221515937493251441002682445472219674991830906844829118568089703618328325145964842713363160467094173297705695533619326655332837943736963084779847459532016124491334914965797408003447832894087306207889591641967539339631778741873242667166901511480733891426392011568766753567867319234086380791967835266459694611420566542955207173716103781542920627439183327928075934384016527216318000809649253506588938743862588226013808580335565852156224830385988917734447257972592906471320930594357216422889180732636309187744732773930003435266978261768938565295487200757614197160182528838854133757350622192074704451477189063310753027049971727939468342769671310843312802381101106466378730892947083444167505185729512283633825065890652798654456264382294226708549704881853160160289723476714675152134251410028037656635039901770750895872533261657585175663866137192204385675504404809090339952716941818907412580130890540066094435145017071697467497969383216625164603007033755915206623561333805655561498162174351304269068437729543324896935857086152513275797667771384133090219794061484245908134569403082059153078503110699481174224930530087767684519923466362219397004399774772967789755134536533834762696712722735596987407075330144656262471572437828466417355259574632723515409264593930873548196581265163096078630954498534593225435289782283295107285941454189066670867190086882542098126501803325614708404767756039769141458036371078388945643343599894055916692223762358669892788096112722310686115697984437317494337751233546332761562407555886184672030533704784572905369130667344019965808315503353551105374065357341068082403427947489902004658014604710203493058824916659568145470672316722511572459530336424448437058367170085111083972508820980668492305450975535618505968275976791468406237744474595871890955442396068679515304640006977436452933944007091714480353664345012776569507354326914203381434859625362641730578831318937053442489835666064005323024318567898017179685168213739235208812419201672334054576095620950660336365635211055280740171170124783665750918035225443749894343297221983508937822813764753417480135634082001894961134162989120345787921347834452618657199749143438745162973308121784491109251382720123248857788901822089083203684368806860981030711176869143722340191444413221969576723191199273341931911685598315961794091356811514755011064020000728658672038472143562477574680308631419551419667763324633056325001505064118491739630172975563330081872674940351506860636878531364218259622500150904639881735210578254467349304645129612495660868336340129900960452974191158312406254597208457431533219256532725151933724923941083545175907154146232314353257090503649329584178529174290638182528792558689637094831036847381710921582462332187261671461077745703420561558925194213319509138176470367646073515790357172081459950967383347649555451605937548576472275291158312890574937157540102259279229256186232494187584267334171733444875968829727077534712111280454790767295579551928737946477638186168013686990532792709509816868960955202046876601762831506267209531687808944391282996714602272033760507561814436592726165145450279941964795901971835391593459331336327265833728249517094437020429228916958914463283045844060072929177537787979247840557005058021140201436294987778597041204311795015961101121938873152371963228760173637443266610022888146911961874592575207912634329302151322268840380911885794655475727212810062054526638897883200357859638434940917086849796022116559248257346605752011969089627990517302500375595865809364956208461299045032055016351660771902277747058842407056324860102575791472635904903237919236138947142524988289897560812710966035162963897871771164983796723078174596333735571436085563959344948479827881239991268948966215316977654325828663954580833326044584438512364495274346896492095358397078400758818995370306117366357904338337293703591099306139999546551611194915229158609817430036777875029559579209529612449929724050105781555051435532119123380167417679082349913991675086841180775103252697654728356077497498722530426878752322442244893442013331217687173748103804010308625135990577495431837141917924953888555490994987954057270307766873338576313045853679961927248617416916361202126704949679451710264857235560614602248542369505322941116347126606278112552712578250944859566582911234185456992721934208603966689243208924512240106972415902092280050592488347246298655162453878522171047882308266326873179983284540705111655068188187973068490474363422495050977746702131901932935827709617369047155621009511221078156078767446345716198004089799676455048370422919676666005071392307361506592289578758907194690144589255941845140753094703249734686891244671907526767514239466803303066659336821715967442519311058666203109298058756883179975501291240948424637806451938113799913339729826954655404016646591991903995104322115146733845494063074622994982898096287743361276326239519235606554917345274908043703577566346182738695511821483499600929592806734439061452959127143445138573384520399042961584065717684015612223706105552620741810422266087924082801070898513766777333144345631690229707454168421837690881672441829020232741500620061324460893991707454303268297133157139435086499286815336842842219371242808241076619216474040949840170379192710889203774694126300262779726603797147629526170439121237167299481386521713953595084223993679762040256166052946261974030855047594809924342485944518029308065500433841449361645376186552078174117322648638320180047389289169255217754971215803907476087252780607189902067414528638580040955869958601573624767389508874671916849891476651433238898894624581845502442311793079000784334331117154372963407034392438769356170709006864466707789549931999495979579589697622118943485398499171245740176524885515775163273975985444114409105919606258282245753568286502290120978176165824939012730718368450663823325621211395918684508718869804358850977220067249396906855765068397348546845384534840807879644489300697300193964345412144907990530969697346158362687233881493095174619252854051796751361882742643886881593998794138816407629218376431739025921221032735370844621688154315848409815322268220741926755007164691113643488434755160320574230136716862561974051340503782804378116354918552106722884181616310377191346115145571948198453028810431224031241303867859659028734805869144844435099685558650902268995002608703090394815212608046992260615150679582737003317732716761605385946439702814628899996697723863160737521592619098064752049156041066753662253474461196835078445532243290637096197088543220089596056045273965444897548987813519096803085127038281087229828513943177892750951599705685540683392963285212180552561549220982608395031431152739926820774918710642180350434553795508244388214397884798213353670234415347948044155807691212264134828357068070564575412532218615904104945247127472153540279602611036218442445889402294813834776645487146406891403503884080002352666355348780588533068250653977200175366809588564679103155536071778518840488864200410845597091745182913026467548658501371796225830697571600435086790235058999752609923981940748441317131338212001268664516410696744996876182383715796511876711144011660642056525119124392021949729749069871936206453371161138403106577549206150398501519159032076638161880886084919663547163867955604221004837391604499988819242435746620992547406511025294871788346222708920248110070151938618802042039735932181619057560908132553063961718909256508670105282489148042605728337597487415924973421580443161778166549428457216527487079695761835967272903951291523928217584152110312809196362527130068412054296709073842927993476808926310539341942264595403010118380250793475014939627971830002265190342838823584504252235060401179564135989180231442143885038117251175278209296794370930868412441930717968292320286878630034310406155186481036453016456925354348735428483360334622221803893582516254424000598425884660637150961471382440104662019369939035545820073719726765550489856455369794448073938438703635699686214663893588259038324125908219442397401438475854203933020448102280597262105953680474814543696909560742603853020788106883819693008341151816601488718147176783829410439907278091215595096747740665455929655915070013544885871721551889179814352865728675500292009918703915420618660113846376678594716965875082418756343403241115325988372507386892864298258350466916966359732807738423461920407741782509863249793351643912091314304983224130202746506462303758081671779418061727033769317284761832300832250144852727443989832506262673597700036222909311391431842135787940262338531159776540236296488684780811628345821034908008449024004128132993724305587335848427036391750561237546201040845076630686648293775334810287680854307049805536018499120726999765355457366894394657678615789089207603853634786288542737644577005990644292694210672024560233178560108827224544025881859743643987384840039396647261732161081876429419792719164618695778968909655937305389153656021169954648400530354811103852840663657031253844037004799810696967608404461241807908392145310936277746869385876895880536393773824479152701466464022604620787880817210142221986841981041914423369649554765169840413080611822559193738537951498225974237115515485704583983779695517471574677168673291724093852367288207948025280923068070037354790749004325933529290725022130863606177583059242485467559185380648312476224957046565276666917062073723669433867038731933027650505216092640018710978435947917496674408399672038965023715584419602850869223991328564857586322684319630407736439250937938654707519098710656144833489841995511249668232738020530702969235848128888746469687812940302788510151733779233300646361860326155325103647717073689691933157067884798673399644502090557265332095724211353215223629690562190916997411651581303469257289462961212786829558263362214141731586717415299789903842447940143238680553252030431707690801077613657057472549582739107136013632041617571829102901128481608451380052999181725220281501046812112687405942351363260775459907106671857656187857846727654628007647895606826473085961143866262763398602689523058151487744531772863009221205644478494482973397754403904528560910461050158205288589716644529054522981791112797803119976797374398855802432532615836366156417319526364650306315958323052470143980071382171281719935581305699552117659492890476568016019909634149521703315496274453265310768507345559772271214062513131703774712214672198407028323064081889351154810091263673118867998086972151330778041731348470441301675797606920360539731256347346007155808801028540547321831479858357869212575556323171367492163468449249391914461158062923849041594836257098606478422128199506055091614993690166467695209848707443132874069645826646192484867826439278671541395594828855497030778085209665367390433496067631010600848773608002270684888562024714739208466192063707822784193601703386343934947856622715548655144419687290743919230963256877106913367985190948113546368468607079819862379010874796779561929827474354111678290252592236768779788406217692237441655750701307700052056790826582720099654984967736853869829963692539517925312458035509460758492600937586721049179717417161074937610929436599374727361782031714378301186693171044359782981107892672435942183806329321332008847791580773635349845749004704649714744284022196680221235642773168584111744587915469512809070003490981928328284761900335856784294287014982893300472329806786176871738156672087710425001701803937776204826961210502492076080745554202288194728502160424312556915178166003463018729727378377238699229508124916911255575042399314495056854775175824207109208337879565967917057782045047833478293433381625850006504538045413029693588515521474268120012103712728310033971898490083519824805176932698640105036352091301691196217342344681463855576481187002069589010309993926644386714978971777003724690678019171014601930051881537600258392706719795263374577998746270792369084023892178516976248764857535589472927556964394493097041346256794110174212918012901679890029562150435061128739884410245243653918883925482707456431910979366757224283754485191280637595468629648890214148355882870165415910447476069723725492565518234458933320702762350980213014290273955724931219015272936527397389846892900519337775757004286476789877177167722557210586907836842237619545376992115144413798277954201747669342500685680723326617823258731757293323525403045819060059040257116970323807214489891529598368752991768783745158511546767297085375694049889706474977465474866140392879074354801256425514478279086064836927537095007803991273025858085805814851131877667902741469394209245919262847465737189218955505275711894433974530389861091692682862482243257248453561503679296396603852464449787061445067444150811902158723785280106746719382984943288775437493380536847297105313313524815816459718697166615896562740169422537501025328686033869930223572032912887458714556781126751074141807034619701811360761566433224063188503872434306974734318341626172539720011829955829243040756119918681768504812053871512865082787789280853355560678249062834642741419050151550776648312880984980498924039085276349631676560862524349953899959443690670625271426846034234235354075613139233286905573672643172353115267542057681186841399778507211397835540379414196050837455841979927369118391302960532855135671572604075919751341491190075908035445132663522998614388357822373631623116606388378204884815372524713540424972900029394102387246008359763783756025995165884765103778832778014706671454168739292673642941722955371462669922110598915878971374388511622197509141435160117290020221077724450130501223014379450996404183986805182711775897437894454044506426047812173126109731072167001474770474686360421915414303123705728104118872092460785400296091699541312256599932550563286092162563733644877800389435177524494596198365803238361067737529479732179779340681611024940186832528550712142997512791236092114073018460522646534620827839968192670397285277913246073945576824070192317900401110584602874434810720764884336037514055653787668074008798375698864108632505219938840050496791901961124357173533883124296155014279194164876401580512771813669969076099785787348567270510396298160372142713295728795628091266463921048138405561475861141925985241974125235984905644790188057841556033796942074142488040109395387906595757752610777890750238509873600227538141005319769478137494465170239998201232252720055003409316556647451496947590355648487770643811502384783497185837076368103898754472331377758717424436089418314023895452635960189207743467658765052616974164952956136912481193280985261546886791815175635973887427982441430255426043417280288286720136981006645961346129314296153594102555079972204297471406442837010026483975746868050911500721571957932085729734766632837510894979446181553608827747219750882463401452457444825146206968716875322462529521276425698855921323138765966433809785966777743471989423422485695912077436033153910736443965408515937134593495564580030958272984824261249800479565740475216728523773578094818983551044146016724753608609836962896946219689434996527811811542666271227961671961919263819207378563288294930446048088414405819581455129258917588855545907451578504665880318244489254274484443958144402119229724083007775411003372268655283554696782215571984104519444797707648569870998044781863204395970084555850719961430216420365714133638783530643761628327275378228469006358154519287225436426278583882942416602724156138864063245587396321884432679996226762840942243672663792731112693703413163692213650389556360695991507090668963642803113949653394466146431371809780304054326183842883715344368994050862323264851639685582584539442461935341153214601828696924826084341268956572661521597482275430729442772754251864443797925701415014488300366821484860825340136325436499402196979565050554020231803174860716635239484380499318733098689612909912985434392828198433148062937398207679903875438725933119604981367762447770516673038752389826705024015791351423796518240886851336887885271147110941714534805650839900333534088808628955921830438940638986525551602353401607793114043412082975072388875630840281528276224340471488152243215612596446705290240739204145107705147719375637617976903892570952555271891575318594730818452514424873427734065300270092348083122388749057135913447040679495567681798905728148588089824884895410813298353075553929370154821581474228050842146907318141194866862006402052139491249847936356726514978738324920466231068001123929057181083785246216617851666430422533028225300545637864485667759542797930027292949587581605759799369933735450188195007661275992410142003303999879468091350529060868964505204225092236870403297232455967681107358341295866806300880744268529115192341897896965847588032889131992844309347982217591877843573203136370025094704832015206918490844307009203082483531080022062782505898847857601472581773761917439385976142108727955320769078624328499979960290506477483227354928398038687001825348978038714412287494756604196996864332904648256285282623910313921829382512547501816914795125472147041680160069553771468021337215640439238604011782488423210499896550516711508026530928076515643761146190199594909787844940622381988827232074038541073972255812491232978736540519812456836902881038786156153030432051351535697877654598943435813421650122450715815927580062195160748462602192303785215997134555120174042604578155580758989417019461624531389375827662084217618926696284999910397382935986728446420416717835391563695607663926328020637591281708367395854272980653571751911175489083939684554797450437731181459610453276616579951950545656053943586662141814008885081034594037823255322259398893419587178817093099600277092668382107567261618401302813244353317984420641181967899373707085119788674868326933013358764350625708669548047210553460244211753860680508180393255434696102757241264287274498937259886825305124658075078329710255074769875887067703762861634207803111443829841611039173078347338398291510712805477735191839826118411861987748292739591869397478606273013550240133967713632187452965987064942285082991912733503827202671777004229619915650333977727856637989653004347657319455221301776383596820091177656965573825736015257124537449830576880078316037061805752061436477560968173308065754479997456599125330161508593101251798576010668301857041914084299611084726043495051838754222564512872187680266289791818835413004513609884249643512826270209256713280720102552713751467340175725659688919638734939260996600998807351297673989811387524635615202303006716886545780977468516865961307096526470862790724533946478864554112070910182831572514045769298489535525545444239648985433070420073825852194718483446803150850413109972929827393350183657598838334501258362582476582637674911794008741778086964462206266745833973511241221284799930539450049447788503570094512991319494920477683198100828959267952554211331099482005751406237694649358285263841441429614285108475725462775228524792971423073532636267362025445732756377013221928878426409255529811223876276474851654993081626603315736927659450842542649570738003469179988778273294926949242116320982891778142361667677047190167516968212622329307404078365687350409249348183593945457273326135341029996764967261814409352437610247179305816431320709340227637395994307533254903222391165458031464964952608530441869426484781567975706628204154845473109002460052195480256266514100201363818389231125850989017449357743656523869857204113834906199425612846309255793817860899315085396531405314418860660573515995250980300302822363505168302648677750554495205779258428842977111170877265607581419853771932417739318590258502930533736131285058657193194820626928825856261778771576289811737337752371229064649560742917813429530832035676233883133110493260932252173548997148476124570256224381870461824832972983226743519805806375587557869201747868832493406498885265091771095478338151600786081085510904999469512190322126469705031892843536524325232194381989989989722367220389599103825412433022812076015527727812550949391171864166129839309755842091781930125873677423885929127339647168900030693375560056721487203627210010466080124351762810958689054796188722364385103235179421465375034026702440525475094703385444207468972017224586283464657387281938543423435635792362394419737530988188081859713966630360946346669064032409361342948535921678623357020004815697729588272960272245672382561658837691060724526282663528295238289518067262954796633429379041995639272400671295908090745883687154767529847083771284776791095059914045129905435126694311820381844822271164078756705682768964966237861009912405084089603424263758753268077474093646844063836514937896889921525945261559579531752229280004497936150734624995424115282441993416021158899155167804855518345860170758079398436368169608865979666870847646007436247866669396298613311198868212299140893931668984917356780394622544635388831379664891569874044867407066140954582387708101946386558198521036698606607418733806322086841449555564292218389170337950519618783527914151310745847893561351718165909127118895636875126691723463856616337391991248299468046489169160377080902676196078079691543826433180662664116688701788942948323270984910031783147428242017330897179893387022921749396861508694958180741771473171601650598640885753716676743930306974286967057859363950173687323353216655724402157903938511443050470002865546931329873951964393080340963135907387844665922169781039318595432635323915491828007209832285591774144918226791039269104333284003410228048594834844996232121705432314181046578833961952450772625835559483226203538255870845081655800388084004885967726120156883103391227486142607041979115147854458982810149477831732918213104092991167994602845060921720665106660822230808397918710821912881863612567515660473501907520047890587891432751277826595786361862877014248886464257979486362611306602216019959792743556188797580983076982981471131933872336617679754824809921346353368302616612297917762250650011602338998496976910423714996445043186050085923543773033754235778259474689604826391423668366915550343167078338801089674172659733660585068817924055821069917411235606518347090326180992157409241093328754682878560360305798072197605731027438715715972746094827186417695737042858699829414521639502929420046865797498209799317422228602935444686223257751029291692537985362695030429734288644092868303171041582003864302862279150285343613809301846939485541133695671031118289917555014345452815008697007133920910307382197714189430944443029873286461855616022834220159846235331034938669545672644283699958667054959249044881208387041449085787379252278736755526097358029939694618008490871137431342068493097293659940468628372633499762294410278042337145058330215880320547649133136879645123660206606647875944959874661832790608040957059195099317643899136218411085847408814056232450357528841035492228210475047717156402583118087670797458470848993786575146163192369229253242482082289814237945964865254639146972344758682516203477696152109505962893012145836889052241824169535182799659798492878664051751293546749764878120397435795445747305860396076206547468606508730232260432667234552823290544666756690435476193408347497376856678792235642525578080874726582345901934032450592951150483999558726597231672478338155842371025557138674667778520996669155427085629250744578782513458185972622788786533067174095527407282795067416159781916399448818309333369018081899090183437340119932664435771951320059552799870500375985209870732767009209566329582193770604117063883274696379485219078160733782521530697565156141715867211758894270235296802329468330972445041960006140784441003398439128452434401439220759639443693708047569768647458335703452462534000025844655032937299964833734719233877025432049353955834577793287677875336303810063866387807443801085853828849971794476021293878120119746769394861089222774231994388381876178333398674707236819902638173976524149362983795796373765046231223040695720006881122064076330980528395824841186525211649498843552880065500119987651016730291566996676365187717585201245061980322353610665624347143235735202221721658622556038021827868308119079665082763578977261913108782217484596211431805690046676434417481183062335799968262212721312896322335554733764484287583537190613579116215432004246745401957727047223048925153551019553529459807947674068760848105878377171683020881810204286364712875329079594810690361384627715557630266034186775923976545732445437437895918022306400153293328264234286529658733800394098605191707559624718427067088938190635684862304229291539116116334197321724419647347943292008904668998004820096592056454360250702294264034587666128763604781673733060157937181803723915216104606112991928767632318922186238081406096548632630567694818031929621849580983010889536449979015209192423557628080817789032137669232105108046191017371539804033503398342897271797027970325488335979331618834866968805510138281874767994486519954557671674720815415137389824812367579317582163505224562531570879883709654411202557332522812871096536169784142051653912464279266874697215867415607706540544492470946054704883288674151340073830946338266017965620990428612177213788473554503976820078752352713351836239806793028897528776317290449121812286011870304519571451110171342645477078381604045199030926055380091613066089409555953474608340077383375826069509558494450524338256126131954286569400641914909094006680000601068207287217128554282626404075515118710094987905041227454789357797745020903572348093378802765583574688161095082582022948580177975285956954447553912164776595642757133741237304746201957544757219725759031652410527117190876695147681876807911481717026518888172941687876887827760218548763167000627005516382057361567538822649237644234514341537322085161303117985589100391205922357484503482579963273106726479323232447213749082251706092302177806215139169924584308102035960318596535907244301482836683525143011320694621179501448610017819462302684987607726283931150420574821991223032656561448101513738648201426529686288845651256214745809716647421997414635116094409953781348451545599756157188426417938782758244116876388289611536331950984196451121909334531001546177730333106068105303242944070464201265929581241145894148915298713188352945668050006943769233617548983075348034248924715922210907007287470957269914780874424005447859506726627424957582166683520681254941964719688282116866277978240881740642812960683630969609478887266720447142082860655864227919618706835081943362883218059013972972200301306919068341720767722765903885865916502202680886568511821851560139035381888508157588050360827513994211910179106362193365546990450063663862804170339987060849453135330823992290593699472656585917492022538648938930617461505840106329170307681793381638610205169201567415793398247110999102959068665196860484866436345168616096811686960045551571726070590383856686154473934028378824838182753925275475899775109898085414319538726063199681751794543049194884836633925158178045157764608235607459318558644966123982137114925651407971905313470684890145764472308774849593879143025825052699731733854881645376494317085918915794163982782211421342455061788087201605218322744919494924472745636704346549776239708414145528570763365392274472368193779078572587684505584424887765226986958564117522524263485814034946595701056980275969666332268879970802493059919640270495303976467259925446309142791246736485769771468793269365629070480923965543377585026612218594164070560114427361416168417013688690743119093139498702559681575483097334975423094872830070766618264533036396374602788895200815974493535531575924177763233902672473023242442393441323573357401769444799230969118817343548175268899962736288518345547252592178759392755639903477431187546219101469214603136732661775330634481282183016983623641952627722935668247229937121698349247616366846919891926547713675699389320383024818740451057159636514199525895800668455624837895358765780423339992012530511992157682153602492333799149070997592180199007533205349202994082181591818946568190341417627073676983346676636563200534642306564852796057776551273582393476660212008303044196169955811423289065605421437924801623521840385857046911126595827512687521303205701491206627893609085343744257493534397623073109433747260797208283068903063780619405216368174180392018441197179306421276345072154146770291448017847544973332462419787709711847504939721418151697825327979356770646544497398730154322617301269870931130770221098109639897273409535653942203726379219386587784298639916525622185900870699219414672239489462878907047688349420553424382761932960275184834183727203626972993385778567863344369386913592911248754964373121546531379834997162753062637558559260559580165285741579375464562867687002477375274682557016804619871366378602021454020477001441658540795483644175769636360706350485253963115864719833697613035534182582628922698832626875159455494260842487416798761527442437709975566088082635476118892120691224348598723604788782347527148096562899836941628709119457155687841730663488809375500164213881563150947916950929152022178460563943403776176593525815709611246654355288131607857212517226393974610856395615325122015320875853697174691159801535092834322141843913867940881224731552422817416571370106134649576117668215894665888473458481884500843305518811166062370429033201778733224575268403458101320942034958421014271289899854504901945206928548336580124490421195662542626149378210135758519106467824661916887497638062714410541280252347049023584698899821350925873687308193324062936949272999803896100229317501111351570503388785389890496000440370650820091160007342957535021543217205798442285764956074143240668778238931907115745420576987949120829412949732707093022895170237001969982303397136690080922290765022813394405524239220859526838863486453133889159904796236187522453269679009391102256558010638458783540060246703256881202440701666343113361900344644721323697874387939749275756858971268935292722098144146869346973936171465601130778867994724579344179200393966471508212155621089500814160585129943031157819045724437993822660496551927615898097440608120453799439255630164573149193981491922453962856276590779878936689370546170337497594419063434005451871066424667513697115671214454033377767367197673208082019667236543676989638131444472957211794836575381544340722140320794502206965390857880554436412073433454357958206574101867941571853345781463075920678117563570910112653864730674299581418322090890258722081129552669244906531728454037126597558338977457449936734333729485088890009516207498750109587536843042582765196439821876514247721133279617363759933096295414292225729404764973459243651657979236325300680855837648560679061875833088229377565849200436147065677218657126398996384656669809703504701140450896812938464313919745246507521458108676567627915059119737762817685721519596105722428421532696053363102250986064691316900334883097013189325785786808735433621051870760491135916792185648245479172195112417149431426618026461827208369230836851457641498005652886215318492533939466674230477097212489063184043604540625740820617024969058275860963071314925452455869544329007890763753298961231594932731483787930445809729394797706323987014965636942468523296292772909924872818912411806588226480525281244501693354889706471851382575991538374010022926414122720635600363353456035982412577299852434595955383871716506468499633486723290544591988137863836246710142453636026270302324325617255480538783528357734693998265898179464931711263660080114396851494678280111551888968916632245437153778725934144030444554075573962056588084179589960787550680650512491508142168878320420630187042027685271369984236573977970526474718255945787196675444085628120530669377345433064881971152830310600057761566947905678232587188718410856720555352457345404563687395936862648889781553820656772068989631769980914559799572613160360266648000103145589143906885305848365158139208449571309738937115839527807838637367438579460492270484852433766947585118318864675493737001765813312746208597613709690688611128137391619997255277017484730675341012857241855982899551716096510264072372471757744303231355057269537706984907361205917428757002132536366840571466225987282905718672313916765615234826956764108504627790165136222290956908223572482277233015647834089314290675153667363235248506433914363084602756312063445250681875522593228339362416067285664128486250531535317915311182736464977160897116724873975287726102573287932612523036207717459639243294904555165950203752080447218306868628752241649133447102247718619708708976448033341577902552396989647879413715985592393107377625703590502487257477840670331923954579948881412773034659797661684108855044863128686011776012248567413305571437902070418211932016561302000775811024667592314761105814276471079943511129040790712692743610448714180624327128376445694324165460865772268117066037013327491322407310412214411787405463064781227183420883178645326877669009791721568097747499438278872404286406352337119775181406513804708362992018511391469577187458735433125304572472604124731043263025188904723266184484550892495784842598523378723863592542653288365480234919896969525030705388856236123887712709061371890386324829168759856777466873062540173745526154496866197973624671627773482199050537088782279224878436851565280873221248891685953389032569739591956869798250722364238759432638435153984405905617368100390876601720155253294714505480867748534554556869688430501672922521285787543821627375640601283092240373810616862875697886617779707977202051218431865342728875245596853232987585343993270020798135407674638461289225884465912448861458045771339615470931267123050039848155206559698133712913466213292124268985262340366097080244097618607485161172639662850603346774387650639286315914484972190587466057366149717765220020547079816604754191732091747260962587037478535832147443904083007758907124469314467511361532849525223240917812545400476258824436516960019480215178390500764342451907271424302057202333341738183460357614278028439405832968358842164637146104614076654556088169644357704621297349726435946610891344865492200032664852376898840223183717193861699631744743777890309001062765171013944137664080140221769438918161609584372710141142228942941314617436396220579969338406975991352253352193447889832168542169276993488303396112820045421652753164586282473893340960454056105077702727719764464639307659256902266401805053511995424820082878992917247189592634803580092942549296766509254440993017018530946038117573870431588578721220522575297922659705588240187042472687412146058029034729911155734304162952015540378982228515663089037729211361681228354483380038651368934394409442737052673761291097927909763432027450510920053635229742242836361169558083032678525956486565060662081995507215896893974672297373204343475765019022735172765377948424312659607050384984241373753203904290214975606193753437003534052054227769152533476209924699224763178652104362062270257386687998645242788853744801647536226504963013940806106849530569488232810455591334460161571869340978525697572384784399055521447126176152115377040097962374164860782429682623660908420782466301264606100175234991262653492642849983186424359621179332956722366575483925549885030165668240718083987316959167737857087023831460521501583582396358957826226840975053690924767616026168596508507101304979740634070456492635410419300591959901337144707275862368099534429192726786543430012148575940252620310887649584202019171369189749594612449295633674665049153691795371094004650239029511183652440201465815015741986007619319555573645587053355145705833087731454939163312253357611007164185810874548509162997720364512473283356308965638204174588888175957750775431056097716045038100618936796101621627692769879427760972952284620018753962194261391088323757543315111266277681058018638450966559221861859592202251681237062821375490478546644950535958622171276478031035454402777553900730639596486680674260882250028854275259041058080457963282313701295183200840435026337340381131084238145206683801699561937787060424563144191458692875701732205385353993025137068841383819341640143137458991055661203308399426128500847515570161787068083410009468226072960179666732374884714425806130942869872022987774359313753320186335477874106171429924776378154169625576056862997766441549159929671387339079426829082880031824906040044873518256003466630215179028477301915830261213175622966824364821694863696661330675295848832601575223228051177897844850373217768022548735696443919159600924796644226889144240451443652014135461571140801419247887426431464230467853474430998853367942932333085960494596320975362397433002157616836979067979867332809193867308289133762975952704530055666012591005461538758828746496251267577752927472940304532932835896402675473541534452291769167881751793983735004343698211013366678976710391961822984454205839398333414984686819318511807582298465243508933002979528574304274862878780533022167761587916037179804488678226463257525444118399206597070296193511587915096532839318539753713474286282331526985309090595589758146019809409589461149266629361158091195570416100875111271700129359857115187645296595419346170608461162604930023359140079000231233855549308940991434530263340458363218513609607469072729995480303915575955179411469867560005865905903843113005120474236848197644394446189789549470693842400330853529114250828080087862065057632840064738299280430697403483185837667919743987020343240451975531815860149064172296147741039515385606160294484434714204442305235917530535983762017690101106908298338030694291493494524462879668217484650298873796194406586395459022637744075824696137849556803337936326363214206180891878522490502711499741204957941208734294445051722057953830534554145229966685838748377206970704772910153073442605356245065976157692151514937762034295702424906149307952818719257232071781288424636258817450999956716687514516290001171994611031810275272773530230824544517738682456177028529506735449755171603451229663545617466817019949599337278655572091236366018221990513225978032444682123481503648640622551621247397968747732659244694987218260866927169147616569636075723941415593113236769820753931333091925633008969513658907881565899913437381972354810144167518724117722471193368020124869350044262165248801438811107710264504045577446520754412190346672970257517280461049512543178448290722900628694318208481403228427311303920893182116125178326432124387527623132690044888212437519192670302969562283791784872652834624761761444551941558986741849893801733488885723563916467028701633458114680660925510444272798429554050703656784205875527921481232821304639367267820330208168520945538834253255818266393675234864559813174585663500829493541842853603449821036085462121205543563812659638122956315469359328031816336524486787343847105423948675682484353983708050432725188679165707991450354302162935693425301532917869772534984324621178355018647236763783434994541344689825906265691257501454742028642446508529810632815936594306650233705795315518822970110121962508911193534638979646922336015881911287858709518896161938116577267049974345065807001357501016048721288628176615360596933440499428324045069669840269794421536145039492965240709558447708025822707490198367384830993313584872169453093656785707654538527006981773136430972800044443702235275805035146745450307355482373537225886788924739796828560914071546047895870985979437167703643666380138794030536372813150287917788185516829183867874426566909083699513245322009237090015426683928347338633197746268983646363567094294482137270111412302108849120615915787528729992849776688522094123023820476385693176434217097658013779894820698327141346924587605898170610149866708035530399810175422906178992471632989779387521593613422257964354389080971695356768000419446834901921996728894783568954613547330288484620772421703903623727949971350814903058924190689604506011358827837373023328658289835614694129852146760475175794960265421867824832512274596119145927573579929824215789939012332726762442439846358872811870137348350537272150911250540654402819369488927853200457474301479538526534434018664051642421926935214516443397909674224254502421430765203797820624186991956404585309307471219828396223504888506916868577500836415447706027402010145994214954891478910143026791646640544300726118866757999873786288571089155571432681630105480660705012816057280328870984545955556317987030419045979960097993383034956731585544703628502290242896803882915008930400807589835572768270955901322762499978579199601290767682285074677700944058206571042370366775689582013099163900111597004657355480848529738156800636075635304910034077381014230403345072628549869090723181327596900937855382582544848331192179017141379163181088281273529348487121134631800106144477269675402464359269377212675963577406468524685215733278831035545808474573429670220125836017275098020910092983736449712987163769500454864187268201631748307037119303519346951479648618038141920958097383331924278500727785586181966150508473362284048888559324698906071042771904363865268029475967367377200885300079477314086470383585296691476810447994293485853264010199501277610071828098461619478650440437396967792196064302828354742143649333741797155349259715275742119128168186128041329302513288558092818117638055863232560777567182266162632503214695333241190544450747310971680092406621262165858708857347511061766601762435803985862414487295291036623872523213129139076186132487937567847627252018596185191325961521380178173529007273586460102785464937838260686154289556689772084181775197306599496150597233563897664945354962769275847064368397201700285287657980524416596285051848210816460295558124498187176033340388060211086497898632895412559105678708973573454462873396358541065778144370431196571856514807382895695886339682050565324599278646313606750193981840185528355932597941882961894507177096801491632942257784335791929421001863415665183195199583981602808021611362492135922426911922985854927978732315636102528437647019559692947848705366476025539710301362387779223410150661283677481815598430066568934503437220855856107307721659219530784011463670404016431412486417978371649479777904329191950677950607585191729826063872173680703243596511712065507209366203424215370326552211257783482906664891578306436732458414996862904879256430635535087297426929702224744855800442046215917122849635535562096577085988085924513566660809697777553096191487978327693838862279873572573590269761418783590812133437783410203153909962412574637526111212501198979614081294731896343677698988510102316652061230803058176916862766056876231343744715146824128337049587348115033777688281606972261855434958573325504541744354239357354799858261486034433281193193976323807182655370620945505840327029956041861513817820824896866160572007807143185732609985065823918358402712959608539552149926300723722686966053082666895488062639494731357874070042109199014317887887652781938463938156697722576550935924203222520936547145321653734490344944064664523010745513282059873758905393396215487511298430506924069505666474272638224911299707656160750977322601579232834767640357635090200159173842536243931529149994363662632554034824961620491249549963040592745132719130191508768422067747301101504960552212731158566982601259612742060551130470497593764907519560677945758028158886920078143546659592206803531047021063239795916683209479315901799702887927806059571862498794093870797008700764744623522178831434411864790045011251899973730062972329955328398889277094959437126598802134176303524914378031792368244305918724752777493475566141727699831293981544806562378258230236406617459421582137106139880670085558800550602640916724235302352383151353963258718565598670027259705055997445862950146058330346762392934665531152497861861558412986814067942092808526481572155624287887563093502997956861437861430754348948892663476263720009967400852130709127241211480762050498874290037731673172351753361822992100530475894933132157798181503409351204044548129880672764900154140546209826310009099629012697451888921453619282553423774866830756642910020422081780223045078402254448383106361156218657758708820801288866657768447936594916019577534841143098224828158597861839274948984517200881089911300177178928441190767466701431606297976507011653083898182368995843149288453686673060210371715373547898307445548600960441440931619268869748555734365367596270639483229479292450537591226350569709890963768460534202629628230788624046026495322341673225209570000072294389642567722506584037768147044761569071866756967078621844248864438472416579271158039268885749704805666628620714378839064080029652267461452351467554479670701766588906649711792061666470604714940882469371977756184944472075806818083190336829608173170479317782641034883704356562567883150533669423631954204928421687156890912406856710300527222421324005849812904696225045105423582479919341051116170865850969157590800674870910125005271082940186928938648348795899995381563498489492213572052480632300263838536008036372587346891858958513083614110991478952786601700776161805192276773446553286461170229412373930660414422305749411195895856258930503516716919810869307856867235906592902979726851205317408419136418589772278927361232663607909376216729358363747724277179515131145031052608215942586485870506972228066951469006338425469102210767962372536881624860610026870715737941402352088503333300152613724693328182696022694641186265204505503161686867505598233352411137685318433627683069870785903895103764110436152152716273825721004500209867688741255901169467750340696873325233987166732395799676569004119068608105303612803648954015117931226553700409154580936827181175866213284312019190188307715865641518924067385729177324383933580939609197859017362180120379165138475310165278245164433319777543776829359522105520667834762714305981151124317796258785797324481090467247455316929022949260944014248565759532553552865947115614039947031252677896419661153899477430056281029976927681319970371574128545541285728234926522656333501921869234129310941410256157564751819884015474513195461692918573698170313502779781381112275044151986162620087165603937380405215810365039714004651035254059440484315009050060700286061510156061686986713146729829289890729451619522138050457913847397164215259720740269382982262707843326742169410233667588276900985015013066517823133707945181531394933161335351778902238312154402676530442858842137736921649746760325267976886663392519553440857667145980352898433818984716099030156691745618952418778331522911009232450230239572950371069493249113036926435521014718230910541124034657312379604328935212854676909039812880631570670891022646836963285639877059482841174099523784752366626534938103779431312005978405423498640090352643154469698355595227701716060734537041699215406177315787246996463988323676748104030924227209852921160729325805147650427372904834910585079035390140850998552174514127931767440178059476919201335787936806442071287155007450135675128573776391049074148613212918116155845656715796143530700156040962794956859439927281725849214014822708534907346014543509108779527495235698705973150238952857954674609664532665902521677214326248787958500679832705045231321135497511854941186315717464373145186271227692105030916306406323589628729879188691334208329468781769433693939616737952237523903928917246165515794232896576828971133422053742703006808149205805748746192611059882750913339437469613654162654269643215951730479100236378083438807634761916929615620353850696182317498519037956655626715945406574443248228222793384478634481229285616483264988400548941588561664691760167310546318213356774912599354512213949477328645804293349528972028004831022701251316957685049646111422506085806769150931298817536062564612506852376407199257166554973336801484309837779936387625629986153401630461635148933012817109453907932658125005546720788803275270847873063031129007018738567065011654631920972373119325983542998479552570810268696116140714777023187676060392289534070140747239896907177408667027466880000348502007510010156751590837087117298977344194411073967528879846786848033369845433645771480950768589583732479632646463215938868797680263092923554455885309195425365178516930907167213734502332009373051569494586165011500404941154067298102281807280251208058531471234589385039594154375433571483486520285766655078920841133265059806207256809322282764962352561912979583803418772603275546013718424223078768821773382744818523422319621118116844403599276113120635947885710099659743157903184713067132743537247717190620510131284214269223257849065406141640215151824575584935399824237641810944852215574925361587358318561091689400123877783813799713092080194191125150820418730903826357149454426563224787571629523263068432634453143081766536886765076802998539148006581347625027035838694453035228776963814455720768427691636328882447636193385684786166571756100013619687073059530022797174009439899072817210232057578839112445900963573118289006086742928817139798809833338729689387790712481412530152865148234834658460929896048107665549821269669812784066646473769466188816056225948309197654802409717201358754955691319003899350576215332765798637122177281829044553881280868534377103923649793202050396769360999365838913006035792250658321743840428554887878242116840575418431699225800359567719790283306740122812723908156627345776869259308389240241672719352895737719922060327888997451484058018565147767452172405571496153724668794710900371743103300873639150223585697354554090448967531440995487768051852717360889400427971599787757052283835530568130487794535565722698769952944738418267555650732070551020273498313399726519167429308529798436955709031996788123255314686209833929771699778905740823977098270400035819793816523101606848467741103703948792271860157013794435841045729567749785960728307686491977532187758895188434760513764438687164423945986441892801549490595912247750561304892889713062618339441516595772273095953517649990176846352171823413239889555193891350999669586975556140196702088301062574328254615011029280103506415107515333217204459473647798686976810927399436719224451677797118595115762803025571747608171145089119387273473436162205599122305853919293651101342916661159272964724647002910175089083158455897973609619599914041849190231985124959673141453454385012559556012589529496672427414849493312381794170161797855178353421679175554633951495742333011978813435974219065748811369033793936383045106296784159522811843921334748404897077374243917339139499676017475783092056588501474592769360573334116929083164886787392773913779466182233536185826282579363197545463549758038374957883551998371025502478475128545451045966157013508087363476188430323347460641441783625610968667445510417560527822227696914730656612956022744727703840032328430541264579948075310621067633504713906243916987348746030488409473673916521006331757900150131713800298795512641976402919607646925849451376704869074418949483489895868372483098267346546475953315756628587421831585091106279034303162638795229701786793854261417215720997236844740923813830740424144393172116862055304174331246508022502181799016790432665895031095119664069129487091606956823904156086533489738813178891207091612153052079835753553788527285491953681476135031391377621860041672734339738829916704027333409121198120788438855430779442076821750968710859864433761068239781162861130203308439427318710796854398020932694068723821972832757393346076658058220751977067776196019793511762663384113085804497649941078837563703526629569565407812912609302700099913549398935969589583566405885825520846934130784411353487259833125815045302672002376147217804927854456581557022006763027907111932653874387953249247618264486171545691794417117618487158554956958793077947992696853576191486927310602248477855048168762851845656217059645890948691084251348621075242216305070551644462033302171406054917567251165672625694197635174735122504293333852522970048231959184202986195937752835551687061387597859152625073880266547389707556094157844671997036494053721849211097635119048659675906087351788276557431283777175344633602211850193692141260035564185774842910201688968156515433547463523681531543656026548380670583585582530871629427476588180108329421366366852640605626585842420640893871976273081807226684306781686060425485006607874449411057243470555385409360313895163587510472453514995242369874624559050893685710399212319645436880549997389804060547610460672770985368960670281380089088413318631429042013929746685416628369656017702515296000697226187567055172299384431528282436098313953492530197104872582858688568379474872206844737515920847966747545112468587583799594852007158232653272213727520601078507525187062041891875860930922050676783174815044988691282777899075119505592346586739902440123524576771188772834922884805078107470361973288389417954772946517184114459927946808025803955027238916872545380406401757671260317472875125581860300526869099418258958541765469694579227177744649186069918661345710681629032439923713541606794750608043077595125796440749616137100680723638512584258032865118896904095676789084986441680287641283198768829725809524363653448219060995446757390928475266558330693072066223584448979214975519636655732896794579976945782054010378529643090250182443865022197581758415466503969116314334567282795611465473393747278293084915758774696505970447230627449813202242055281091535859951902838529389852513052470247827015096164136661834616706447608653208886882108440784837674681424680059756652675840342776864007056188148235789561676436689091007320097854039768265601662039048952382421531067232273537579774250448393283023756502973226833749713651469648762304094025352877038912441440890587202709983612074374419975194228261056083149222850174995142377250937343531555710305497943088694942389441541865085926438472287020557388232371005642656769833368682316806064297038537560114518592661351250944578091143464490065111106404712827050940046307750323114805659873264370092621994803340232048542147854641950101084805770485500680525673567034493210869440326683765689718655623879923266301205539204975126774728290712265385727691118742421398676317005875707923727594773227900891996486531707160630197530116530554801860499839102898083686391661254039420117370002265642860108663933001411650717629419345856296284479888015786960698292133382658593033697967529855213048482849640823171575802178116226781748296302344329894877980079633765141804180410359416574261639174973422806851095455620388313303061100536979210353303028602149544891954610327773361036942824026750051050450068626260559763093104347537670469284274332934689047234461992469671182056749588800559606682763087826010735932381632401901272902806559165108418074812316199634763274334873561833256123325514429811704840185837849905979175556110516296198817425269681802709300672418557949801179973069485267588262144351598873628048241140108124464850705928115257000772278195132149106107069972831630475042070813651883760263533051885026025347679272426474271040251013446710169921542277708584054608835077426344266108405861163753223131152299072424787928473097892251985102894934185502497795075170899996181355848735395799917990942250042043930478741998056025638499473517534286634611699425193333727602854762829277121451577159507621039889113420201924243297658135248872254536968100441652480070281102512401670700565807393271755270518056249419152611885107158925771592817308907174480125555959402743386599801918237093459527600706718035672202838458669556542871079706160397509820843785510231873042571731754475385733750937689988054412717548097958058843947601368430171606598284831149185599757011360966249054488659826140928083632108061360970660644141773496607551148663674421716873861311617840419160040761338077792636034038881333887126562529727438809258342255489965806236590229069482117566214385427506044958245326486780004610275838046249623254492557197214048103413535308567885400241004688025578127887488511369534054990220582982331238105872838414609668192893688321895962585362179285316262025954331082542864256074767034763433444847807188303943192855959964709439439575690076639218472921325103744157011871997346175737780470689484895084275257579482177892846064331873760268181818186854153253296966565931822677875655551614508661742985712631172690473086760645656116805477733678237728854081745184028611361463069149369990862321042362786658531079804554418943262708394454750751686424078594601310735210404865947991624880666988090771864971285300274136141701838344347997638468315380253553710568653218779624431949374211933557961021116239353764472267108081702299705500489329769845827762394672736455760907235811657667980353886789490045267547946453889538201700259285126895496709861483627090959123759601561290803885868536094572087376694111173573569147199716373759316107918542182178517483767857677293305893256158469901310968766451705879924341236320580157674178784637006675517255252935996074061372076466247579151332362143848540768494195108648930724415367551239911403703729102170294329670080434795856186228151293931672575693720188889018335921025226468847325507795722775926887878413679940455688715549565346752979333229808824840965210175594641649662624812008045752482594490922429096070860640034843935359048612597911367991277718540644887838188416052412820967809122625236152819801503358109328435500818185899137000706391210723452540772897980590001791026660583747922014741476419429130876725439802836126351726907401869347441082760180138128745065700901021508529399668554944954157469270671950407616787934263298108752826699194849926863021105493575558203489514136677378182763858597555544681704485867618731292354265223934682204202652262451836055833569824745998200261231105143388449026870099220447965849417795392827606150416032336795607321418329509852904717456793036653128259733297473492473851005660926450502613941750848566684938545564310750679882302705633388611388457774098860874155065896590413488159773224039283302070402378542911594265456866762029111199990836101125239932463242662601512239310286838815272521896202337141651177994615889538991393046056569834272207024713829658399774276650658495693702295152552910842772022185474638461005426098000678209821199893778908013108940082433331068113815021273212765778592585870194279249058292549905232201837544526451332441158576568381154354515710975784126982527469547774465313623690845373661017785063931739273978070867363608466219819619404364975681430314328676812483617602405731546336170710166675219536870397078174434009932125888498455316158390576301616858072960334826592323466381794458464506601753032179034751637562253251712361624801678895160497404866594603114530627617508025600420687344393273296037321755341116997702067372294539013065235769528022779575390645208491019541607228707029447302205812051465083619618375191124077951475818031016178055228968215350582547735123433604137628973077933148745231137573602119293365678347960318788367842523611820509743637027779671734102883624279118045174599171743406982577802231326874880925780401987025761889852774792738435241240767346478347737993301964535622249823512277536276076643743195038216578160995278427203718851870341340052660074973394691804450463088865703139121182210061674775316462155184311434190335596377641470347123620539022249859184587506651702403612315157705884211871653107760166486563358452086219407915517479579349264652114391061707208165291233136362649932736069939859112409291905773386667600170809042346690242870176576977777463392701216382827896504041014303310026919467454851700859646562960009030624866988747208103213106604789878499619485353955299856053885990323542606986068648295280269085889975463550255602260292163191594719117496056493972866671093098728926032301814078060503434992527970085893851539972722741249293814149311639542935408553029423383736564007337973500792325706399217078586686863181805593135130213375310808298938865687575329626867652818348484532315500471999429282947440187480649915681982224669016570630855731864979463546541345038720112318215375544255422882061555275404718032619377563058233804696040012267305242123707518922800643105647287677396565726765815478261667428290623469808559854908647008945665901690924098357710937101527344728648302376604698930208235879650563748058961525268896887288294491710030752088817512767130640104483451061636104166204119648380353658284398596661724436709106590176685474889576841871627524851663468001292881119745837171870646037772723837115126026835350598550449477334262647863220112080928280083607956722633195198799081151850698088463837735577954940766893123744565387230708558829970523222083822101848367538742546304319822405835234316784810947735683212177075983369229890888881571219723306899261539724129552535207194829460586703994259527077074052455806601023753269606554045486298723197410834832616531935658511907060692553388112742746342092641636345718333075228374801722926795219755763552606589037203694898533012336227903994892056727194273409969662179275332795601533510749179596246515287997297748953942754338945728040358334493979232408708933439495166010789048514886688143144160389072313904393335930774797721033236440244241280588582509989301272991260041239874015757407338766836431910624345958805933931525903295057931056384576530144311437363376556519015978319661061194583122620999927233464269957870733731757148446688886969562649113350936912847402432026925710205897569654304774095994183060205147501907224291606028709349513131417044820150677910919942071157884840371951431925225855374232023744690729439055206113404937977523686866062074411974599018585322089971710614932421852669644554582441675208994766296789437779643970687050000388014256890022428754151149747266833530796126180409982921550502752967766474415242932653786420902172669155695628594659059440273654305020963487566141437887836000474334748603357589132713511567924480830276863754089031973297033808504807291807853353728346103941408153874879564100666616740303867233654608566951331801237930980915996269860120836161861706146543039922049723245184042518574823446828161117927210941707779888253009763364140473881456232184857581938967756442148678532843665882341025198233863114485419764468018002512677254297379521504944097216220788861264959254719283974511120948371199494174305282956174390201961949818702194754001688191573304125057394226395651693507566541377067390169855816908801200067651469701536413043594097294878723583147663614037910454653063705127331768494254126167074345471320672410333287240691316315644738762359657811934268270939556542150336887877081313106516429217339974625038902724162960775323277158897688454006887831869190068320215583338630668906742083237731026281221669748639551862109562695548252662995426455368420543164827761435381008086539401995833740548164308053503768946678480858068523723112136802142604123602064258280696586111431519466487549239101551369746350656023796558019285804280308018927366344471017400825268890169932346747116499318117141638773024595324077343317640086944424847884452024350365877030772377371753192673824835192393924252313172465405266382839089921922548105300213614215990255210928708568658945927597894373830186706795688515845680654717435613097070080035014762250995244516266614441474955196030783568441687218570395049858223285294837362721503875006741067007325841857442813218022761480114990963881621179593385002715423089312719965113411666244691989592189263497956517758746122357335183946027843980136566845399369726131850081535358742063689141413956110685026663112673333437523203512133776509926819840505524633607518277011861343596793423435934725016200401426805671375309032010774650437912754289266499340217793916198209529341658091820428864317295743522521599268953269368997833506588489367330116283845736703378684132596952408810412099158455665044342165883195717600202391174464746342656508998461608900560312061290944866817702501751733017504142539345402578732479625168201274141087017527425970862451168658420074715014247325052509770757987849189586869904676642853310609582875981140077695034394779944911020229969819626224549236830606970792435361608071496166952160830702668219221473266796945395143579410597343768409291547334929144481931112672040417050194735351027299016966922328843726353726624543108578457631171124953885263004257975672092900432478443756545569277571439799842597887343380759250045616284873396410914943866803872789944124879025878141461572688143966133126746179301495972091264462462852567058655298591234158699573012334982990836235180131677569539797979611143327464876679877319947754323072640943504074877027180309052661220787606139145037167231141176111532257789004399613229966043242102078414559111959664916503828232954473141883890650001115110397435285122246903993946933148812375025982535067389177559905808537736400915349361682802303575670528678956162728703299703315102997510086220940129025596427766910929908988530713429370334968815254282752968486771697267477975645954271038960080728527053578037766210586670893213312231658084709284572458167322839743551969614401966330136196985604169191417874218350986276549774212508578369906996629710094194596940908777716775440283463991134814922614209103713965427026484387520785187027084591549430686119155545041826252878291928070117882135980098183588748681845020754157978616489850175423243301288885787313168565395982093528777522494150477550759434541309109457095762223943805730049792377158042814396972639928047977729500840496541821647003521364894865077241396179482809954265376231723066683986751010777413273984663151425286210114662649455115971838325161928380819857771980291604872348031693327429137000204689840955109206887318119326979897654022591394085097311232296863712807873022267878713326772331674232108743965570553446610773199469298151928486683643607765555818505687727226785342890555313754504108389714464169887811956796327010953288421164046943933289532981871661308466681769327798197668753214818590232647803316181206857900768887058883571516777253572379132960163718415956584083833848395080834070104151591797128163474621195033588217885780971230555758804347700931554027476830069045855200664452327625302743205579796133183555335775838344347198957327369351058560954409354701069301315314405804180126327917747851567395056076930950376764980189193390525996596366610888567373805389053554217260628347899781914123245756543337490864703912506524298654333942956683627854706461931766982758420252773700158483494078665221642834666043805333403264144043435985266701565759094373219597264718047236685476640402912560572060335413260694246887324127639629659547582808831717513596979910735278091713005006527279749318678625886232944726276334456625589213315142011470976680594806050187112839731613731363675673348241328568344141897408315909732271592216204196915005715661821799611941261620462948986239292343339831953446276657955313028930967060159972699814629956919193021056013429794813675769465714899103101886823350191978528788810483749821684076970517254235577431049818488328389631480919397713780859672353614923741644611776369531700517973156995185475196040857096058023835372103179745154917269490215862974331383943990921062047316013848724605747298265822823862836349889466819202241784881195420991384641508499983421560868571349575076127078014978674041276980939060105233851176269099243854751734671854540923330774373588503170876187162147281239205679368235594690509617059479962030167312907821019986954562581024933957887636166699029599875543795572165464034704014697209335299253495589883922833878848426907536997401906968903441813765795508089221556664279255395699606302242688374533726968413574078991585507646579534462086211332096735354462711221470517686392024821698951712202056257562758951219975946176095189000178185365644458925197414993982519842161114470584115432972238150999046001016630626715945536557971420994919437769240009374430326049512200144923133878275862832960504471797587647680507994739483873546921714058471983697864013204904291341975883412260359086168197363128229647559912445046723562983055491130195435449731571106968520832164593736815078007981310824029583720339566767888142912564366690485873539187690004481819705575992906407989832932136137494151497485965195702967207977295492578790583833542969339411557703266590193539730791577541671987132302345814918701997498828788897459450790003866968706450688852325425591621638124918504534660975759761757495486741578454542029032810254152108428924130190096267186614870862280116378961492871803074100388533823658208862964683020292285929866891042379431078304430105598192307509029639043844008061995543119178919493623587666648922072911611738814065657134608307727414254727191484340116405546361746478032444781958195340061107836960209315761325096407245078212128359216530788231924199942797327193155899430540379469515341380208431881921744375071579520868264760820143078905581669152246048244421216294764443517840728223310203646395287167772101887657167220471186496866259672337785936979433874071518756157164997819189507159616679852750901706348313185289699784262458331601051420621826263345809148292892276640258587355276080389412401863335383805040479877336618983593906911446660683927935888304263690692154483889574845972491154989502012652275804682065006457232577792253669287378738156094391908202472018357478718609372683481807398140765778255326543964152626335005475673682051249132333685286184973262175456467427768457896636133260038543355948280176636902429630363047977666678386298365583549901637208443738499859327246054884516187817472946545898320845429325836068815387196373914807282305282212152436921279858620628049685971742943335033664482163025639649117212669557869409984529595613647802090704312960120865820102926695396685079856908502619186253649483196714903180948053576529588414921693772887433187585732663767613040707195889678232709966078784724206927996921717868784039355779416264867949899850593142423952023434067995296607565224386982480290674528341415212706425535770047382757440869647804642551545981478241837183785636037265102349647045084520196649761904392505939364105074338226451922349331949135354034826194097456150556604265216133272177575416681712192040885745508017872221509020542751835163912602350049612648020359251965110948529396049030014608951196833227789573327771387766906957827405789845456288657947622575128073553079420954590043753026951503414356929261128909331511307356840053905050583141887233678246023333056125743550757183179561586346331586437561250164873460781683709536057296195138790659257577934753583092917088881240640888689855382440748490829148339108348791019423630519950579114456358064064101419433825345740380960677494692287402113891834889916212141485202067200232092091714907984899630316484576213898490725699458027255322623549134668769459836114277748622176660396036598412610521032607651798698217333291864006806041122455270917766892584820267433525146417997917631016933566552632261986829417293736365141956106999616216007002152161975918143533755285289225164950331751968339195734088136612153387658767547806888318838870276884212664477889489662687111967626966785225227721473431477591556342132395893830909378511543810716845231848693592121671138215057703882229423835779098653743179155612150832408228607019004454412754627489465390086893691167154058798200411432962819496976732109842799533155674951302159541799721988657906870537398956840449235451707232908888408031267252663827500364828410536787001225221076658714966322686694756971503514249240894048406673166139543515161860026144235310897272145715775787879820487472228796478848283194696343274444483987226052696769547609058439128559398385495605931756047790381212063586062576632826468409486796391718723297742512714137934343812513661777724468731744197909642646970683735883865270485445818569182110018123057481750456121372335254120314388875860923981854691129408716897031351252543474121982521138619507204677254673915141008764063292709479467478351610181542178723865846584303887970911230739908819243013977797354052603547764514449221908773617165565248733362184626415808999015145298364353441506677222877096425318549137838905568985799730085444533276235802540747161754077374165684095474584944763718261419721026818979491682783891463502884260047267881418328335226459306335609272769126415273900059571904285302959532108291963826061658187397267212163196509268102650965523285368611722719722969225840083030014393530639999692646039916685011710031420169956077459805406660698876478584889043642305659589560091483150570986629711758958290450092070118247573811306730079927571889439692267710519434492158097429037098076680766593017930079404021298079089714648841564474448954736838062839385169632044039373428066276124047277943272402890341275476927630374894897819499963588461548169223944474928902992045152073036547048973957399159103046234485928549831037354278782204012046871221866377860407484036944126791063803689696634545848678402917047232138377462541632503959079066115475872274867512317129215571384590101723319611211591025975100145929730485654134438533402974406321718874285123463654331443130355617099956903429155797178495179943200363584550926868695466809088866782987465865766563799996322625856912292856758298701562823396464905139965198658585382836982434229333394756092001071115552200833577029980692230815340201125425728190858828168445733682943055504570769651202695203171535387261888459487681832185501340929399889878946841494559516715388032119238843535560283180220614052762317712984995086571173974856194611781411123878491203071536764142299961200117006663335791147197435318553559458810456904902081333922073492347958213271174835609587727839470981866442335607872662129124691003870760158152472700573710351497120912019885376166961821978736780142597063322707585326308735804904929935811235694170162665232814704222347552488863733466897538027587481753838036525222726059935073197382575640323559130019279526402439414332759409402578285484122671893698040707744025210968023483586671801439620364994410584545301001153878546458149913819388187462508592637365111528596478372916633630074702908072511523120865187321302430674345328389159950203326306024240711420951375809298812118985765123806785457071754830446970095174097987227706247091055278244135200626278478026127784325235345582417463623921274146124087748189544789127645817658350168172961164208391006746036298852817612570070753577997980496775621082287896521195144382144503266182283475669953115640522644871777045985064021889054413192618774779029475464275849857124765024362277990697825701595271986996652513022386944241341498651974398773533067304938887557520847041020914509058379807645477006307272280944044129404268009919833439741909674486751683962789455471424479618959491133611184782788623450939648460611482547710576574103056544969153555972781486186028633605780908102733435170265967360398195520198082252393552731348964330517449475334766157412663070665754385487900737995285683051447784822893324663380961142300674359701079265385702773871607682945059616809952569785283597203617620219426469459099334971935086228707297312289814782869406607685987997785491129868688781333715209150033244205545533304665955314188950566782071541204045619946207286583822314492769019542348284263089463015985922015089723731507353529777269630106549833388251377268317381163891641946016024505450285476870669798092905285343045187739681059267068079956838469090671449007703728160747120829811513497097348228908532346484579315049914877550057586689014898763252396725180314026364594255056232933882145633799463311781050703281350445079645425267533945463573429831409952426187801298423029637405916115064628471941163480325765884319156437483832120176149892296967043202479399533932933780357679115057729952898589289167074805131038100844665011867195649513503728265771537322355809187993906891618260915847739499882835097996565101865718066766216458268115030556387912034282900965998352802131928060450320144958558294586485122090739912943223059494261857589996299228390249708757224349535443774044313905019976751726993268593996952780949122324002452605608382035725387006917900322250454660213030362484902477854745308860707254252836091232644579065756586180396331169033576514588751347674719952355952730286318318300346934011988023054262584341435963247142389471296464478651489935841253440327639049148596712759258505297134246304076991574757367300741033148193758992419904091536173890592364356623872041511665206474852301790556475561469978947043327257658528729175352156508596560780475635352394389592030564366327647051804885649404864434615097064177480980701097874431460978143963543886848164669430816743631999585232516627417285572526279167688666495847382251430717877832863632233712521722792483390901965819179274406216496685351418309874563148231653937879155332895530369352882018367978781573764193319015992757892315812448441904967892077299494026502562817760312339409021079947630474559357246893898389871669817426517498130151792075339166043486941772519537667681135406842180419448980687631509303753656629882630515896048681080746007166444484255313287159252501436003920568822351372928690879687063597420583715516166348364653994374517824183293497777185309859878601903543305895860872144817159284388259027458010506952406836413124392357126239956173276015750455751171579646287054748916284394694024662906051372323161431970063187215703578117215831641402748089892299725990025761107733885386594227810035898804322791325739932581791524241588372393473447847059941343976813165889361799225116141615106264911841467255781195129003024009102004235948387083575808238596001813709182174017847297639954221871230172128902862485487634721902794794795509735778274655628098245161543342403407665106487346774968978667910023250185225532769866983387634789142527415774514319746683437692137700549784893970653437188126934319840179512779010654787030021138191010273655650932359243281820108917156487746674245802313446400571140452515195587745155099799050074167024371509172725248148993453120628585096942279198192941991342162961661243374430583039269929249299755516754039473061600598837071175353188828262939056959435340053627333803185618513144980548925631051255976227097905103388795061090293924965045973482303714071856344504003407839185653040043585289060211154841197446385899742578918201850975510735672417252960543855028223339503212513068359009006333275867028999646777994506347282958139815757123857246841902259215299867682280636171508412580720181633883152214242746450085523132743287595981927747570276325795748646986201109202824228753034644704678258153275748917310230982668971714780193909827350097866217611914428627048236961629091210883963158513316135815413619780425557794743555709121272875396133156781581350413523213976715027909319897465753316798488366196755554551587433522174861773390641906669623006412425471315695500549102573450629191034193526643638003469583043059746169721679154652230856984202361234854777734486108668599847454167880742325726242147394617452303749172728252229576535763407062060928344460009822756564214525891708815507692649806015560535041987829172749620110353569346492523818171829681002880584826143107209626502485809656077258076323096585026479513231846996127869486628868694748149948556199642018871324818353676930290006772260120709336740402860895982588569786616323079447327791955318273492436980145650807726703345320159625600156139450701712376595377307671029420682423166322321338511847102518217535215294158168142105110199741855817685751628519996684023285399756067860422715043580778774488132306638188593452189849253157040466469456963174055727428019844112176767636512454275866037825703103698966177754834876254674001416274328458109971801984459898179226255706076688625352348624062755453036837869707122715809164876508968732464060819288427480074655618718598581185665555736902980629206267741375340612229944885261729374488130737230204976418671078709541141411221514682850284988492310280510723551259783646655717651914078291294194054984957231965339533926960102398112692483077150403813655593647354634887827697983497585714906532963416472936427805528798083284590843020501697324318488446733263797953028876322965241990408723728879949547021628028973586823946120620268267098214894100763979046608229949832558061605464025490330844985921575741494804999100094961912770769427009986916613446641532410026141372733977701199061052551177879567511111817127644316922660527889173332773334036697068484680074174752247892532985152722725642429939538970870355588712742753435237154594274154377154031382094153483892334967599779751463350108428159365652789450976704643642397112346497288849316585456667327657475355363617284742124435674301139303903624876998759992474312979460587566367165299307389778321199428236601013904979819617312568574618510356409106307664983736789906312429120705394735095953336527939703456366118978315707799631339212739070464535179526604704476115870804393103837685797973547704906035372418452201065337865832439547735887948768226163483541792893304050408790648363330385197415370147654533596811510351364994555597572178306233123584068531100351085972325052328424266415276424027117252583155579384392036762283809270962763983860418960269898652824121514995001679552916662429074879478973575600454710186426582289518634964910010911967772705649793994820280121054000257874996432921105536198810427229042938556118119218249599070324231506574165435480611270504505037572697800328776899006907348364525891131955034188499972594938670736811965856127352122769619406031475684047505621254183571012906376883166822285572785788897303158550847649768031855007426178402971313540576012022586856832729607271806770037875289285815512435808111627858379113661731662642734180289056519528990779608565275786599840447124016196307332057587195247779888384370484307932815599174758765743582602487118831363417024400123885067461401662113983488203212405153249183623901501446939063674979323838334192429069109600162217532376669023910831566725129767048001950304221142380269355831259533995687760798392470853106021977690312628739722600199976318953991480038222019087519545173913728903406815780088567349059863752304757623189214059853904851569313674734016792683004836802409073492349917500572735951412733320645225721659574301449150275083372190330003277101369450414655324920060892709752582044647081228424427650578747142401551509804317901942253637900540067097653873111444642482865161465970908346016957519280742752521946606170380303118787918367686727662280646019661395849599191343598978530661115882017039147357771161459672575073274850466893458404191825821316036441349109075878059896968084489277161997082333837612729187600687150020838765923832191242687545656171068037409583424319627129166204019805301000155867353770374171623335172578877603063066559073538624827615997761637973878546350517253979183753112097055945381162965706392093774307150802589147930387549905798777973434808461595604596280645144079729304221128055622616961370203415249525033412383428445989938100263069571925782309592185665481245486377959050148487848467561467192936166221615174612381717051067641504351586470872264308007837147347310583406312259911243412779729759387093928903961593404948680916750351508841000528459516222245749977785679403230994956450216728436245217985696571222285915906836838565150080029186088858918697798860082384269932215878297699659917811992814754173462612844813169644349298747831101687783814272203251198640865737797857160758228960345653252394818847282988137583253660574555068642788450463913815063958281383917649799830448641374254922640745058675386923954923388730883965326817413706931623942013797261556293579931670017869219648229274721058388759594533217446997490061593890788434335583042682148506521743880644975626261196486284750462191016871125837400179691039782482598333951182092944826400817595447315004340506098417675307231469202163796061416544003149314524486108425623733862708457322051291075874597461089587947406257562378663994989479342359661623507503658991174632697014830395218249972615850770956255728697568810258406904864790416477901208911566511743947907067745876323681635343319942017543185822269877905071368915444429898478220344065237916794047379071564295845437091216840862463207421639820432696946065326568576735059837963452950390487877122761908643251819149391962125965938922250890436128398429139703295759452185463531533676539197168319930485658780316725244530513229882329027233669908374766981992767364289147135989826608153274655186612682370090400901483924894966838855937005956012385051771921980000056870381603041917441216840801408638002922089413794673602292751667849848365361218876127312821968136260299903886872509653540697296961436505761484578349911991912255217449368957536383753715515312344910885411621854970524899535565488814954098712652581068881766917542306443562919083451152430348647255037802222637330097734078249184382585580428210891728811760085908553382270641004504035938977402613660839216253956944593722012181453067128605392804955502551506846130408778176202764380638585447877804504412348675475058101976064499272196282308526786844911409093920220449660040375460184079954449046197701387893821870116987256533906577897951743326403397113111643565645616676621648167798672185469986377089871057049663628152160966755003849312012446431633694474323583377551721674986210569881103700107308103233366441680021641404601247046690041403009330593241210459609377472128569800751397417269439084807109774502697611409471126063837995126872616534718205733506602664911720373006170424591706516027816738530184455397902934585510171404263501853314121776722543783405490316136720068334930326168170785429462234077501339472302182824212263631386182797360166651038386652746550400177670114376264871412069585213992639077075188227739826942132170815051259359270286447014990037266637976981205508588911010153558185095470195732819223483139200785114711645091358951646770804805657523288015089635573142126717101134417312854026048032013101185266525215146034621015201322507305608080746872545999110475755293612808071831805671620115141738379563002455335277893980455345621467399949862358232964250939479805788804974443937020166093723332959951030824194210427890289366199408435411586915181146989967652552737130909784173363788825694299888160858576129523004696221952266354383736703156347422301665459627435085751452146797020742807017924224962950338805937562397974172795338913982267498427612705314109072126274901503811367612354800156149225230904174126504774191245645282161580127078199380408662023857585631280777676721487953505225195359222919380129875025642568984260258414135570770696291658627143664489799085386324934736597881376587786299815136635912774618524120424762765159723392584985417139138857347064477113775889582218961836520076761975088448406143501283798047322156892061162376514307135422387049600469952666193946665172012641747079206786044082566297482417123124088563096799717004771366647407794561295057402933318435393233239927833216882694521673204606241418289092331088875538792182695515241838727300156548424513800989729217722351444163488328504872719582913221445437672424192322721407953554026070568170430091404587316068441190548772227150571911439552077697125473261817744676579793242734322549227392772207048746048654048077390849552125262315486111628642334529303703647718116255442601320252291070883757286725580274114513397017052279160562399774873879785643221223541144596350450203601308085282413166071561612241090965194716628791925147922112377336754885213940315647625667539482007383830806530958343931785361024458355757435691396642279858057859915042301028798477125817827572648370635437789546787769036070962336531014280737615638606246307630263686061424602347774862513091423348375636207692463532955660169050950543551822165175494456429265419035913220880897388043546075433351066789897798206732777518391044786973180308166220507111551684801685706418510239069430691984782746274644594271587369819461963727503817732053183950616639822550552855739809563830502429553982930953006596488876915611998979843547943530948614818610630757293908405543887018127457995101316734789335318491162495841546956957623264984012235674691457996445854769629499328208146886517146192719176119434815636715974727100137839733053010781277942379991742234463184730677063992307033118619456670869597170114797920731594974845256791608643380241087865468938285961121202965071009900929887256438424003899361955622025688229159180522413227503772787371230311731632220277899443391447737773235149220370559041874078875488006838290344385720922976785392849780085523421180411127376991945263788543832339705031071184618304090429481861961987259129533997418938314830274861232884103068300577623407250006663720102658912318985717160760213195744062929506441573273588215927376660252346758540318629991125172651547290919825664246041472087131307605746869757456344058259158274048440943627043823937866531124676527550585413609836354792628760500317057333459908592562347409229007491934739965123259814342309227939487849820002317311637931291959492343203645520590093602253830121288435955536317494291403609644579529541756569696737168720997742019318072890336623316593465366131994900328582444127983465750165261455069457366258229576990710035504306577451212828385148114503822510301761484611616548797946562416637971390516648403182363634094781850784070907955300605628022672027233316441612864405764590041712612920099724003308523232388939480334514001641637817759282148937387168124762347727087072255945659427961372142713794334321525130223958007549445354136456469768249240298366538631401970554335345828419105002996186136330478437282040295597526043234116008505271703343594659093574479457576248666443568203572387158778186353876549217180699254263117795693237106770643093265837188929346558345094731763846519866661657559269818341356964349321623327165371747605515595742700600059256282616577565482889315664608187221593276720643762230516561760303565310242442946081625175864067423392334766583930343256520598901889217709135757678735515601830127323075340536605766190717685461402157375657349820672471713034183887119777198634355523443753045650656720300531726876361581681135809313318894965399784931376381513624757719245293556936400619162269451887187538310118600003794306630348981313240125328312074678563140869645200413175972667574314018513615754209611778148856723434030501276693090096550955823928535931287343837816925070157264965136452470660697282953931963786788051717029533638524608461482849230259656865483157556474840191877928874777615497020836004668011630273026681198189978534648974312620925449527263255959405041619415667131916815698183026323745403718370662498592379801208279841064392761767317829070505803336289344986035558070757820347820810261149587690551520512375111285086498072991493009381668581208307385286538176614020975161879360569901566115339874197299350693639692198348920274272373439901715338708826251842829021187126535861416258955866179495306861728169819914672616560651612639389238174258616652144736793273195185301819784840574730554546933999825951756999994124138273098218868598485145962607401816890518616752326617252340101641463165195548909302223068900477538672561020210338764536616040362595299605716610132067716963299857443483291347266572764942368749723908709741114201075285832818887556440580364596191152277702945096879277989492362309132238400177949952404914098985632224231569923370590208188667532429365120060075764902152984116659121010598898796208954770828332290242159183978737452247559056564189475594938675615912994442620657976218490499330619584634461814249470398383001283585201652429967527238694885983111705129767054916218190483235498565001552230988464505826057584314278619190756682710546060602392721033845666265020238648348630568020735069937903412844193382031194729324638178773560495147789702441054927563695233258583949845332062903287288706778838554718759246304389144022292084623846961034339090073259015116523261989261344314534151932366803382701598618111996542247498496409527013870516404569279428209316937200388440640280196403099722783757075381741862412591691613471668085362058824893347637889444398974860670796343217853473868515845716114368725727500867621190098907965919070692462096797805042919818184123027920750040269676750211744012439826484718132845553118299130194979493189121312463929898571881431474158878733918906494247370562367167325829095181469976940979124753610223250587002975428775941864825998013538138862993160515232448093291333815904469073672636684407654111859937195326007601154067195872101465024652536228088201943113491485242474343322258875665000904649478784076830326002473752090863674316512652420899930182577128730135072565031477393461998663897613366465901265830535938176509573904869544929539207693233249260967615148888908537668859592292022035240155969575776037811358597029285851084136704575635347420285960523100599334263845506668236480231764667614097289823704898356927702682786759517848121049940555405775370073235560851022921803906284702850459038867127767729590311991845152859342719645068819273453253325886227005035982624456120777252225201471650250864947007271807309429972184532081470202904858742122919396762733497911914921735305735567289310252714486917893371533635107446536150584458934266440405584263282766396638418915763385539890533827122878947277786548673703304633758473654975996939853668830435735260009266499677869734312288884737939959110134762898709560684849936815110319089078852076658335096351617550013542351256567610943341444018485691767870156586593945134886649711575268103229691431776458713040309258515790957577269506305482718353512383807927524430129354632461097126203159588729605796818617005848985364943099777326626266269528176945302656558564049878436000244763138283760395426797396235637440363986486502288549247699047677241282193551132660223318905705648819727814168264678135915558465151619029261596606215878431245812445589338115849898398857175855848200356917160073518293703297404336033944462696215635895337635017740532604995575532647891817190949425722193026950789654879163320418214620449233812882875685384671201677095571491952983393854899771334342840466891258565664342400448777050322763894041033118682155588335218909275847656138479563624955263702368482722352913227298946427150650619315980559115857314883485130261180599724598800566705457012661683060768222759601004706828734406827274021849046773736065535143232487397641041426726094182073301337547152066411583069012701261769055287402404941599154101730597782652473854280708085927278067278079553986377841733998744421333131139674907231663308239961555495755917618013749298013437780186869128695528959301809663479430267314750822357610346777527137564062064911753689867624273667113982424887186209085144263715971023614790511112502392628050925183489755882197103021536947871106649068754010319420067237212686229425819183590819959121408112253614096950544516928567896408640201454497876484473853365117823127258987435081493517594577373022655219519183439375044152309824830291158747909030704289457615987531858160284004895022529494391021512337063131966158592873360163309251819374069954518066794795157488824319700630834638394508367623646501428320930912417138354758356914882646844541590708888280096723900584502028818630899647063033763462723198276526173937564673973173758472786865876255736882602710866064773315698154001164106580433710720756196772530979452542387597096677904961643596116356447553901707806969593973166158397958712869553392497606549470835206725586342273273126244797754768647880665952539875443553475906535335060917393427613330780779964412257328102968458043323317590260549681150538321378203394639415360937413332100278104601531228346706350690319766217846514896474816851533801670137500441836454556635136843471922919040066371453326275250882716554407355006544290291319762677025651084591163402104629525366162524875628292328192661069545049693072433941539434770896555057433305932356673847700209792298352525583594710023648327371262898351672163036008347969927184325378717825790437356684929485186676703721565594529958366817694169509631975109106867965309327718033890697804128938827786470550658515025272198587795213479309397855791256078392122448969814657230182638732861874420201916324906545358784457083110068132196774604585734395069831379363745981036759686144040322362119892142390820053213705178724186170448690478116854104776909034498154811382591587460947662557125134640210861685567562175598746109499069101435806604687722547712484191725998048562250530063636868853231401921764277948932955263924210689237950467580987584660665863143697195694139954668284327921350176080319322848596006581359946419057954515613770563171486127709612274100504546304116661440135411879458111575937828950242240408562934444344005219495692519228317003662122531059669021019175428567446597196842428468822210025871018057610389592079207627316927204122651811046670239830035142969503185521394927027039259162728892263322426382072529681407141340551815292140933093849114398222800967212584301847249327114169047804578617579625979096712745329695236369215318995325377591053407713734230169704269133221466311656796535158773508916959698339157882524778526308674502042474350539136166566671649293747532787947291384879317108338109644763820747778104095557797167460114610843589665006214763768547357557953784420108169911215984840616440952716288962325353653913198858199230091301833607765922721890601987672955190208969220827382981813131352614473167081833551820840002224879835488095875754453653811517557941207081985738964355237878120733478958833808651678791520011147671764590485896344341805357368549534930028923583770866128363789185033178742806047574900546990221673933157237904565712076229360660011984383908257444379512827864258200603785744488482207738231240982560075418176546141182604892015092134076910890733425468333693552459935057781452231869596095655128188612799501268965144778973340644446404452251057972213316222632207424534135727891027614317621502709147898811692965876343949007136621419054029004237538369642602191729593723627494233365655528916680268154697653382297710225942987147768524090058642420583515205459211501131428622681877074148445664830098972594805788399090023153904017877299516384965539488478655772876231502663995211914517781438729649000372042110658566334949418976475968294440649928177056127892700760325143729132683194495896288957957067210742682544659201993823619185732997006209668196453075857658449716689345520334772968446864959423970191445605913071846172066872705305121555535146945204023859482162280153946200452816588147461788274872705876733090927066679892636802495627434375304806206365931527213984716424331478934382472501795901425839637723893698995740439340889141987287585976535348722779027259152139785457371909426874114684071241175663461406807615941057727499135850280292045302505544885267367667853619802176109542085730027524348020579544096483591817612445730182834588438574030401829771378559007018209941698624426136843903958708874982910048030700048228846651464553621283560833235113544471068633053892903579417340867874266832878709660185370132632298678313898978381969733704781877013487138598592288366865253288871706748999386705993696166365975456761692957789229269580082554757055789275222795993405936904868293311676956613428381151069818518635520722341387407198385580852085548841843528189639589484750576362043459258400672135150446340575603661094833533902539402542468100074596280281290673696103714384121655151219675724126036667450490012882817127891847651465366723683898731173302001468495779035944852924732063882571358047977640838976493170324565006516740262026733618685279701606414901586403204004822486530067202079256305336785427558458505437250689168342482211881157677590953181852017334135338852332137606867186864970038032203697696780732138525409959667044390245969392491817398922969429705252286176504951020691322711324164297279142657755240078562476757551198416258990896625812891317965824951930802374911143699970637752017020762843448676940732346245636526831040885710091033296151877123349805880868082963135911091861804033358858304263344212212758631279470304304996230026124401660897740869213855913242067236627009294954457136945629936083075412445172699610404417245112290631762562709983557147393674272975678843170455557001993106607073044034294533088681224696596945773028128510451831531545475297364379778888624417702979824054302944934990827542160317943158992699731987759785733806390745491448002143080398092407818785904155803626117290208233665583551688463882443692762767016782895138818795242679920451413800857091941698433913379734597355302726279644956615560651088056890606769879000232128058925210267323617188204088906180049201242157874417414866030523705835018575957121872331988983853148836954757372122830394764383101546956011300939770004119583321068291575527713890808737171067089607082717367801345365205523239837578754345091118789926997574849752948895903158872232314472082438865435317929918268845768235426912689781806398120688259535633991799763880896542628270442619159217862859201611339586391402035557437082736170241495022284465063086496604428429804046306885187111752550319851510506159490110410591556081757687469896336271542378938468174044869161359309818353117048475869212505175928967483809009175190560410964217949682132779021583170161328495014744041250720168943679081240640673118487361076428579399463094799677584436401510905666630077003886038453155915838453716841655812993519320321528658848563760892625249734976251547208802064777237092135674713506209764648770475687725501564977081647728556256630020271064584178136531455902804614679768637116232864746622779696719922396997673646258084956925622944471228916546001433340186149815090072736145728054831167318451365189458597382725773825258031124379458666566384629873969908937483549575224802131474725582326656994712091029188771836388448656445605889486459740684378660188008241563083139740951006034070341103030647438407343119937959264296176946631466877070388644144737610245979622399165661643673110490545538276045234906757355962189773339796830334002155741649190405181292237922679462240378377068379017056236884921696432907921870832089898956885718984401890639161215612910105664212568872829626742603552937828466762298697479815519306932932496552775715214934252493623436083619209218333622446050136734263679060830653333706093786025350132627981982719342977812679948383046001154596815611511449531153760273838975327004293981436971883087674491479942274180593547573984592729677807516420487015459026455566775114792367168991092815799956884990023539437226095683259432186753797641604451264236645686474246556367528568675573314825445851835680488747810521434894691977431612752941157825120717517819978937177003304063947297759204035097405531635124244408977865002127137906210804556166007261716076990421692049081374600576914150611213511000662516117655022281485077259270620533859766712970338230506246879241221811401748096532420875293514726557564118662007973144939473950048440109991154547548057377535951948498662589071398983398199238759788288163738733189799083601446513441676655362519729722144491658291257867706051242803671190179595891115925948494405734533043372901972849279744718041067105221579507673563007668734295817790759035445823375761263904851313755890330661948432255202973141988520534488409699683781139178418688095020680729474860806847432076124926721082855456873377684436004322958766398293019816980400598191135632180237371095288114407504609810249361761684715483173330856279247711021490184379064926834768353475647931470283135409672806597325825725804944113122000143942181614726014432144420264498608917981422901561332539104518293932941440580874349622067379668228096787857319545192368829722796239032502125430856563034655758624671940339878509602933884238471602421412202716857138700908788545009268147876612681601169294191018582997776218937687932650529232280064061615079404583260882599476468885014358328931664772041605421462545061471632257721555345341395293822012794377025591801184405649180497655592654443157235119789575322750018151404905898100642333061546304347308003841147690740962905411153981249014081662916116259100658847099847271267806133033073012867354828763535418084233335113516061769897244394938686516387184218848978441006120560293494705398431220091219838532793188931303970278442483977056682599226000586207021360898821702362696207944587237599551921874472562417464028023830197029827218211829580186558235325864903116635243368005481701955308622978706540559353483620560683906454496669154705161094746412323795780831906528888332917941987375539251192459696791418204346304256494147993177790833441518528528678710121069224987077339318190481621305114549856363369453936142795261470075236149724844428819540142399473849312058659642424206129327915673003877537259848649935185510986008266440539728465582260216787313779097649907209225652125415178841188264401564952407391335649140930501765864686829075833119269985474434169390473860241161315305537376254269757695670212487385772473820123039103140464685064390494000591410628361051493539521344106559210316993574759134549125175232498130104504890555414970099004743660789106817917336093627353323877701056669944663706134894994141808128515392535771454406149750962648043164387385064085110201310989545917316684118877018946608461343182964381891907440929769734846222476274141165005295024360010457835971400876941739104017660329018584396429393467130457040771959355293749818409765813404020828054918978077536273553622491043378345940505352068603211315473999233104240248553272746984365588984753589648955046082401920581482904772944840832319446900670687942565579504361468285334236769500723862145990837007162834526548844835712729578308981804700849696254695080652185255617040067703504026116355958294842089154541716879228379670095543423405605690600456348302042696720666320698047058892971356150800201529953378301461811809327260853426067047821272461139013872073075807842094806413705256204742821857998269019645239405782167762646297495884482126837005006199589433809212154279953448875380317554283036707653365139793741848795633612176309235415822012776468600878128514132885428741587015947656413553990702983073966094989249500039014991154706678881936502176224271340587694160455351847292371892233648528802519251496047672774166041394834484086877842948904625073473533224727770924734036702482614329999961762525470176908500395587632439865252801404898479243579118443473440964113821110345603177043753658844727574897182876147743516003104009563738591342850902818935598901642267400471050314978486371473088220968909158569305353463972794471986093590795623373932084113883972014329854690040865375986316435250532718264644503545666772308779924937157505922177273693969399398995923585148171813437498698377230895611848755281429986821065847315147414081261153681914821859742497157998151855321806822488759848805589643027539843866407153559180686537740504213782098597273044656573688437042141040273351210377887697963739514207012539162739134525424100302683758967299643183025752138155564873276448948816702872709378676612836583950355755568778502864934368963189310470563976814320057143408739654221108228004407796284183145104865139226641875891204129624907304324907140638650124617250435846680357327811052627338042003741627682887402976606116910944459614224127594660650783902854246043049087332915718332143638420317704534371054891387198001980372433483155815710463519656593796107174944776200167209471190371807816413333185182305356113615166422094197892564184575739981363076310273878807133704774231190693225434588812739586003859403783171881604809654786756510186454792370914727503102472822963436880730284900824329601406351282140770102095569574356777906947120657354669431333131097356029459747500273506481061743291752824107796346107291357114512479114926829645064066534615887188339986115192602086906211608882667389326942842531139530773047868463346788147156498383271854963655495670572536345499985265304370734662731512264820887273005545507760811644376614085218246000732337514565871452578692507803669926638314382358528950939279557112397773801340792328182504389663355805666126353548190254448514066468144172214824114808847933746504651315301572665062666109100250892774155878084555139003427834895153478828231319832517148863543628544766276800846406269820064964282404236484308083144357400006961863900257494644244916082336061961584172779615114899261630522371105013419649482079305349454790194831140395476509267683249626129320968859712476679749817536499979396922216754771140261909264140176403510746930844098065958208749001058205822298938675546501250973117797850501352627371206866877261051227725813297965041570756409054604861151135485007316475160865690566161799445819219943247882815227358409299422414761453785243420860793638853371642676332482428938056054385031881014454715775971773194083693148641697667603938303814403894514773082615947550700924873179078837747750405055237815253663685754323801930000176406725596453874302094482102044252824993878120079291076113895785396509018192427881338534053071711646925725090171473901986030660951672643086509474284553956463034610458243374650866750310143749689984219873567237539907479130520282307700272396814151429685186168027871022018402694758586720292754316315092702397085481657104075873082349818514289197281058069334812227272318939878695199396248235830320537480259392911603672418213382584833431667255154030636238613516616864518555774206330908146475086567330841959065014562463652287743087104653940799249248809276013819241596591689570081053459085671043819314127910609817629175199428225015391952135917394499795904760907288925652483717159220083190959451997098023925788933381418529731188374345216436943025790729408594649744914658780582807266852573463454980233060834149667958127485965094015284737722893602729115338078755071653659773314459936044775501218799743887885097199838644231603364132961493429074479900719255111042260524070751176345036582661302284581550613616541682491598188895449154953993446823428332488760681069865047254003770705010988937976776687899292808609892842348978912863503978832751069780917965096644158369771814962683688271720431044748337493572570708887868711130300363041086143513594829315309515294732648062594321590882579712716609483193893024339586895487583176239470334396391399828701582490863368696008474253066852039773232547199146738909933482159309803866645178568605662999766490400385593228730042896578797610479570568175225407352248003973852445003102832822324703665612222449143970242389032868924648218359351380539085101391962316455335562497323616835579649199791358917044745229987582725061839558493635032565929010093368072155548144625513147370296517399522767587085647181270026174407222188182698556113096014816328681347166782263882339744909249744415502056306437883234459400736655889243151347682204709224414249164445913981685267194108243105845900149388388209107626615892114755094702680267847204658175395101044006143436013043785463702799474090963730158817469733497902451967552877403900962828117836806064341629878305655834288808888438197883926063956514702647517026931122517651508148659966431159757946715590156823753611968469813238910726751784233831561143724578014529118420712011674021953515600433403930861931616191554831527692646881063588983035475962836111454045196877163831564397741136705143581317978704933831732088520202459928771456199343387595648615210424750034834954186020708633095580666855711424758796570433512400277611539856366037597269680180948793776722796924831026855503153153817121923297135315811769326158334669614644111059368990973906576438416111916461821335176068487429413482877728429629534690283160097300311020635761490748616958948960739689872357818348662161454553359729356469732617331990937960064790755368905400629565244923418551733190082771569248474915544879663499188872678903498449804169472298806687274623734772407392190934189712952494378979895091104111339681192934075974385396441347157932339199925670999913968363407146261786092067484432758779771838564029386268744284459709869748738336548507536092748626146802164723997136596966771921391835076753190923146050542347638693953757311236794773313771077419055985019895872951287024982689369032110941750002089800183374427161228094740649066944462563063680647602816254337223519062508955658455675958645600361816544531381760017735770456043725513039648930101432376519462376951929721346140468659818950756470254920475395810231792607001120683352085221490629433364865576092783494872759013929806299432292809331603084782301462549395251050478204341950934055295792737487225793697539716062591833429900448819777274701514188049283333424601938536184148488636527140380402000191505760322426686218600863898462183162396448325461755230031091276806581711775271187021146928156522780025754508032264906250748662404644440093729743735828857500058462703800913563339718325159037298966008755259141461537749879816380389481898424761195147048078551116027769746264376251371559907697458564534208542199744069411355696451206663000283531876065725430407126367096511814216886001301380072440709959863938483828140086128646416667911281078412576753505421417878783362371103727950194377656459004537145374982215543603079123793134098690573088985592682595146525083351798497951237875779307001551002971261993051882245659509832018623154152983446620606730690844122424573137156542617840544584007466222948088199815131999439078438526324282953178067148779398264529619055492984110579798177408149149945384892213385636406060464801278544921576337864624329899063936898447558600129547247714335620391031236690800671347487459659208212300274006369719917715814784658563325914941959999261875631696016259925395692002525377725730601749553153119944072834421686279776742513978941507008496725880999823382206772137591429357878724828756337069318595864051336869612636791989187326457978783798890612638287093663634361661240673468226131034011921745643206919157078089157787507613005103781221707860892954239289293043556500191008022575427222991312525706341835154837144538960851707829342326349781132419575868296821187450617181114296142131719659673855431155319208425011051119404695389021070767399689228486613389654183430061663918567420504010677380185248249749858707873611723512393109315290479337926095294555450410622478018619366611189743071214702185430882490998227110369726781343501715197409382657322700848429527857903974715731351517327002335037612036644918909673956856189354239102628052645414235594083508476322095525671316634462786061654593970367605755725213204342582778266457261783502657404709379515442999368977754441937027828423381919497025131685414196460633381242255277878498743781717153747869227796564686720615780986697328504884326206924755830139531119876657822638226185689077504258935236692922400864789941317027784970711770517455204184980007549230379568394633492538453258020572909210931178993194193656912984242770746147985020582749500043212855201321071479537540652305107459002065102147826330974303700250511729388189842067850655235886055148308015175938683772491608028942255731343543191149847898842646815495089054309074012887775897183883166963657383864976776110489526811312269192167220166163830913220270020729482881923074604813000104779799205869101017853608997017877579500829161595622153375333499970551665107321015344842603407730951047556183439770952383770846700856063371548845459174333741294811147484176263739941553067415091957038020129247845584677387276519372088602326760848238773368855292040807422383749849443193856106255999057030846600455990411742384512226311889632515409302391804168516941536452585675005221539369357687690428096943169896078029169929864403463184268618770936767117620512223863239902258965266281806375001730835727327199177931998823860145502307391963298697551095052778628717330717518670816783244043576678897379361736653334393113317541855854611530061544444813537197727926095036222220134483657536802854169548194660311171984542158591829429087011976826054585936560025223715838782803327458003995103770425972137181965890251845051227016754691351586212183667786634554857024177763338550378370023904762378438649862725455761147003907546399155905689038134289233433929066757934246363561285137902671715554296801563960342366615839369587946788381933976109571120185423122516685112153284554501182883017048771948968821871867702588583694932221466972373497015740758353624432685482088411302317470504228700012048539149261702206011695370365027915291324568836256820732302458280959213400616296051953199220878802841643239531971572301111924767744940331133231101715002040119261336719755015607579131310420915934328153397670920651192713816009372814543175074781173254898220984442429953605288845915545923644416136360024355440961624082016812946006224422178949611965442805618434673486810696764061631983430399827706101027065523221542731115851087109869777765728290966901399608664162781105096485615403101054390020701791367950253308980160468728402549027003808507302729932273255400513977283259866857277302110378964001281141410276948183711785495625202384936723423981891827649395018144795634954013198409983884868791808370078763194549344041627720061642797558426888763304738951881905757218964294080430687636280198204861331406306492205580850960603867538541821968606848683528615455873761301154951291309183575547493120186790022563945324882354399595471665422484613638866813318812769094638536589473186215198176692905619370182083136444489098846133474250657234291330224008394453807520981430476849156445451195885695855802694066294346100358950822756891320581812618871125421658994139947594155642306717871138727962643801698231314925956342976077810135283068990739072332174144562886136974385364008040730561025204221822721447205848556217799390800972415860075825305614704486057029453462108061863336683525208145162033890467193394975518159358466712074338980901573571691404637489596864590416358207277905726010213073742628068069562321057338430471212156046754224032421080451979519301499113811148472332969457884102488950176924756187281942941889170498847424605172688409156234836097606864925878428713264318881967501158773818912080656435314112244536298983161505665702742617253921129224110953259125264905316431388059226033399181712443902135791592586135976523153969902071842485916557344502580704962978313276343441685940749141987298807144869464948356450358061472368774393664714180336014759724766741394479075830287576235577798274969167095063108728634940310871118118608353032192042584657965930085980453684554624305786342072560070295306423940215395609281998295043186655811095695120951603113672802960404640834591587390339678496658945995452037529974063181014787744991458781894422479394588868267477364283407758818593170444956026219144189675488091605265272018222034320940879374511591431314841473151300149621022381017194459523290359118481909492521752926251553464359296346218345161676133455236745367824195077226503388535488899300922816018186824440635902468824322878351536228079430356479922323002048099263381289804213378383447797139088854115376669089272931676381028838622655408470363635519111287615133133699250987312113556534126025645359256756507661120180062071932304018658047616629869450324399449510575254179600279821318326692777102520422241323294722611599753764883341497902551622320486984982876222105527981141957581406385877289385346306984963575350662671183949299813670436424382306159401707070749129457449827990658687985340896041316643432398053328594358353816153283195000241942502719485663187551511943308263275683084900417910880278625882184840138875638774434873506792002087501641395971910120937714205062738863941972288409565832471743706004260962727647644166469416172328252773574542041593788203196077005801199499504633503428632116020771879000823461251565119889744587446609847792195052428180511977157963281305079463881994930871452586351562578648745953554195691080915466114797571795927580893544222067188299048402387138829542413771920304425141768325859037914650442264131066990781507530747985124482681082982157071525593477101914239651851798169546901971059093758385257262717709069658970179656333614717300710163131702258671764645936771358164499907564795179153736669558058579011984556036735571008731474854734059781914540362018173772985427433542221968889530604790244883342633599400187093240941604871124456158775879932561618295977089416986219786929075360466813420070557267713514674111880626508930498206355457002170898810295023677729498543092840519922151253550569610798802184994324324057320548121796550701716395911942861454587163986835175753614268000828125935741678281343213146918485778317024832832184504683696509735331984090767748573730138363753634943751003733785791128360633906712071755110392858052988131851444009294320528252735335565074185339882804713820121711192877082598162243354145276507558979161263047248905029194644909608795199714942808316956102732373105431529804664687829780367043258937535325553819224708941185269947174470330119959105211290299544999734368220582967804669821568815693693501192400399304223315098980689367009158771882157353855799238687347915072588581950852734264527197034797222311192244133178060667710744712282123087094646328845628006733451874619066283480140888000901331138496908741868228699803300560877579634577276453090213213833851625433485914929431303452474439122687844541763468062640639681035601929303356613788091190557487703722135884031659405442603027284784104663518541703954427010179264332228178069132663865008358319050076279604650613690037196845229890192609917006928306999251040126649426408660112360511403855067915475394100011475459786476025676493081705021507771183729725757762279356929372017548270373922544361231657586110768501765267495637228246401855459703084126696382733153522807084461864049465720906088623251271701675374902983500061801394139153921554518789469997901440046722946019159395268112003795081118200210982093530569940612728087275309692868768089336866934389915825479971647188040449203943618906658267187503453195115442621786168930900910258441413727436625094198360275599559660520909627845107765146480823211845190736755473887721089142243759594989927402908662346176930839859756064247507970473620187162103242672458746287463104576809428062232819047376671976969701569439697238380005407946789958556944743494726694806855407518893586293031720542918906202498092673652286829457701488889668328647496360773414595496856295179026276044081856459277250038650842902492097035530028342806941784899570601399980276009443015998353253101214699760386562790002627252293769111953310492745966594090602051422871062265939362743269348507178786889713399280196741169579817794676378893660307769218427855675449834481431538301630586669478718433461209603564090484091912195438477883037368414247421951672447984513267721142423781143456306569894859441459787370402199003139930976298147389821437609474363914314098549885790094684387955640055670831146839257418495808500772970560285639528517890172096434322052693050826860587845311623955531246854107087264178480737283631401952362249739875808094162001197284052396336321630336743705108926072745612034170444062248456664036070905934986243000781677582757141379597346086057933127037838281930044928804180102496295060978734779855049621794096979966300908205445428968985969165795410888927346574575487068760944583441342316596168586285669042233878393138753773601049795503778862266976043464282827496334725062662212415497292969477377475840454350516143673149560187308476611214449536344434738660839289215600445518334354527419313204949006765918115823220150028170034380964974370703430164198582880345099731850440587052830695403439095621882478124658223141547807276256176136312397425189197233448569435357330542578274165608080458736437504151015400350644215529865448348952594497802623119620433287384954983598159062669161197874217848264136109979961130437004458141507033893269517407805171437930245536869925707659846325877720341279835375394406105771942319739763555411038309994077897243492874746425045896383282006795070437097047661663962741188877397492112601808031944454698646901595891919396493586502326135164434223353922051318230989384007156380362036890458233586085889691513376031361066120601459722473519945976027027589335207941390493306565763806112879666840669487611400656495643098092773308135587227382616267034833736918478477635854608340311726362747719123907693920646190466748207087371605712772121124569235212870291905022992501661091254870136077751947826879601492056547424537992859050898056259157720254500463082580135165692243301892087151010659799718820493579572187346283097243011370775210784734302461782989281537076027090284269210046221242372337379307843629385275976040468279338738783521196360204108962499113790222527728811289766334778962209183605190849127636520243184546952538950347490227074394200562046977936474751173509194945512657126444120139916501176587086843054739513192105874541918030462325061664901692067685931095113009147203056414016323034661483319802657393241589610137636517167604020301589151168227763555746417390099499267950915812083895708482003039931811831719594196335241232363549368818708998628794377558724688213337354160797614420362000861669271013590024926901522399172173825671881244391926158940664926807432075650161537353618947029094042736278819267709338970937011518245297081516689757468204591457253607666534118466717318908641324569855492562836170984128261448526582666483933128053152843105394825680378384299136897200398126004338631692938492076730870877298563530113058225523558282281950285579809128182736735170533410481678856231107884036982527652033662430604749841956945429885402754866763485564046096898104447000816526151682045779195240800663502921380473809404268777985001423381426876858152040287795084754400626200715338444792512184451571438694408721196390516552311045053644492724389296809413758651930883550967545010152716569001776337564277319138977942561291727400815748898626520855712183188031585821473246496802075041070741915475541886265610132202075867062372782681410289060386200585209041761836739720311980905955332807003340737796017936494054866062915437193438282602276551934371944650943925400129980483317127227045679183314527815134926898498733783374272223738752485664218699267115312028164975763502593572845917490706083078283345652241872974877843746085329416942121138728409901489774425331914317038667189535086801252037030767621037216615155584623276349115659892759481902534204669088444051612818510317123638881188914611574187999761093137034304482219466106662372735322592211950465379735995682727606063371696100181456920997839757091266623753565620252802505186372211777904654877835441291300415933982266723320621109214121684397183187534370397292798744464883403578546267877961630373819467458326519216728110052253930840883878745840453001470071702973442562031697820083826632145269404208475805379321309226409925262732059955800629508513328777843589845460622198779257341263058279938521068121914022447402532709394914097412134919387582935809664248611204070918489403861980597353634193846852863817859859569326164216767108082167731483395621057655108561672887849508268505640514234083062115385290709364980567688386939817108428077859387680214357969723139022323792975519101186322897322589061427687446994740608184251674539209705475670782761346454778334970997347000979940440382499709106620862374786805252447617705732913970865180001806548689433713193408454875056093743507039649728806473153898702977572494198949822257187027006017210559882978115206000035548498764422570397360581505757461659600424243464581563266885818886520729825901457847166619600561440456857484175702975673802273122411211222994829021054654352064538434344054557465431721543210222846760031832397312187892014188167485708711834537026027829248458634843796646842136966486458257621190712575359358269743752522953280311748220758036895111415835266139335162932447700905995176193740220135905083670632588532167357632048279208940922274885578393200180861607806972260158048845962011577906634942592036126797081284172783196535485329100570041130449755859229824263369964372003168447665501147181294418399582567617395413207847343643414499629932196860432971826161713966331100205668049876427384938554918500183335142093700011851030857988525557573890671431649224488950345759385853493080764160369503740900981054055259903457664772277334451679064717988244631373824448993413821731333839828713999919392486824791671944309360476579564773173356679487535721532640496011469175149703634353265852475831513048570534129358920165154226938224406283451830655922222560379777877912777769303281591439641679137514021084819071207855982317537085198476617393209219662011501270852273355114977890304406249233181859138925514497011803976030645132480614431763814574682435545679133405703469748865407831588685333770402825867503946324795682284478586235706825704738363374463269919470213992232782964372475901908547387602780113196755571706121865613104978565857696732439546344202239100373767527514057668006783450890834697931446683400782861295902717762866528662834439146541039762213889840236898538180022726897225875017288137928662419928695522002064771368076559043148788853133719737073490367577088279500276977076920984063706984965673672531980324519498840952042769851069757679336453574905155455721829594020030808551654990542425379242515355761224491067658936210185461291484666519210647289839386732324976951693015950301695870822434936823866286178326402075281722005216479067539980254654595736565955520478052350725635067122491166081172034742424930682289251502720550400768522893170725731911900758966464659165119417008897860657140915421312090148934164847770480875425061360883574695019644740935115134484617391357863405324484308591412397893963094908908190412642961002539276701627124297896319299091501453377974684822817976904744899845443994594952735636926945865779396481738485264669354271640529429551652884068292176651392356004480280288998685407727819325633182516821019969060289017159816891296660550487421449652498789036534793210783838825458735108246059911252014958155728635404071287732958955904468734874127548093171858662925225586817140195309601194839350542684917936232468583956628845877983330892747825390077454706309400872077122788348648706980624224336388234219678660243464772523398183443041771181105783000860050437537973296349310234214383483631460598483025867331795004028955957181492144369457110997119748321484900258591764720220113251144771822602546401744155037972138324560188845432171637191899728282921513806760342781532289689655315508816144566684280849194220378995521840058701505661859505701166496268779543158979894829441141418524191818541672188468759048791438982430887051179040906990222621335104905764522894488386391861688945353406576101741098850592383962779404098640010767241747650906118423777784515342614280989529899841786886440041755079803674033886107175960218543887060915231021652647705857347253326388662102942794786298308762555320830752595740578235311046217562720472288431240609539250330677680462219598262791267935909300087933299951185602704120285576344288666782953917300560082526760709188804303399880475622518159042740819005824143311317937317969269846078653011574817925056479836754762156498464603521751979760250901240281109244593002644835294758729533684185303972175080697449786642273811376061090368566823669836490483512872362586635723081035675210971646493937954511779624464279063392357278485912057879784458746891443399261254230526534370352529529808664656142187557242107423660705520680433921482056539679384218501326756249585096900468875587471532495024146567760672684490928371361932598273537664845270827643314163756695223906921327344208343782714971791171530999283665465555709376718315084378734431611696661954368944299330541010400904987576528072331789400707942731566295253882846884807344116199187890178285026757100710554959980151914277652245698394265374400895632672305709053062688311238411104818787211574135622433621611466750998663559333537811207087190218423141689195636197861728782266491621897803208750486338859175695727754103387191769067301337665226292531721486085222470919470914312283781602171919361653815079785047868987940606908757150755552859165481578289313290161795363850983064615555975374280562828078131610532737594603768208499654346581472698816389003131323003452344442467935850192612451889350781809033309737949861317019633167195044025069846909836857072025325709521877773025848412526833736150914802879515026770113283203168711417641887519456425825894179164737287811723037581396093774727125300941090965437948444907356554800947942070530409867810114500210152442817454633513958238586839143610968464351558686347256740921254665297369191254150536921284204046453939819236364545058881112032853557852375304991413755324738434961827797628781689177572987928714508833889090893500421981526385265730074167315783079679863922840111743192410581645599470858248622996561219657116470536334847153063875774892250969805860509069077664147539643042433302097398434162408395622087385997072926103818654089906540251734742115963147995880614966973859671248308716317711086468912412371631655270216257922630566619227922665575318635573626941055567081717410308811407658184000539626912487221339292152819849122622731532916218268426190347631751444538229789490597539638699514917992295951004404512398020451571874601882090293435752744807297724693133634995140881519457706592880909783790265490393095753559301202730710154037148558583823843332854805194680890497697845025438733555078182577901951306696227794018307747348410022701522095684252234882433832367788053327164746018706448923289282719310449178933885391165308325597159079866339919429810590329482377589337636846065638512080198258462095967557710199845961974871809071293498545204805847957241335760507996043659840502513374329337939087871224299374106597545158111301566166206612469047327960840415193118251426183722574554284091108078957547519578147019174702569062127591452201388215257067803807911091878930227882888441672718216756076854243121012652606217681748098292594700936326610202001339323098665819663756733372298057010168943300643768032313209727965594237720724609472705530706852538192191193819184341118543599308833306082565629276837137967996934121030830235783371500285635319840290893157870857047903354995570818840970199919715749394821274088351872429035058578000401973886155690651045148955730486767579793772043460456302257941166695969604428083543032582917759635177104726512889863374588161956238043369860998236232656522626207618795964769288483203299776628237076839285627922038396579062918905663211660609079242624432438671329198030366585501994997733695633195594333356898782531686842019772013233197816878445618183988879261315307360105131508796481542703683789817732691395235019882094023383473027541540994413057902929931095903340510544202542814068894948576243337717161697267794410677323561447732733300513878756624794811415774423534473527122790235919925680659478804647711342916203643147233727805544849166652749689181978652083949857823170124431388532086663231782765862984763041098904505812310805187694341646449286641394189308977872947976845816018046100864649650973027555704564804934263018258688946730174606169982430997659412683999383000325487944652652950422562468638540013656813859889558768283168823824864475960250786344522003628976932277787926793474164417291464023284054152010785064210335497820743268958267880076836009594334221279336092905964165043863266690946081501181215044267335260618458159362587062161027463222374842900296224996126007738924458606983101380587588491201044794283696690946688072946125188238895549018174214623558767755964149690892022414682933972287022765089082858806045830994721642493875548072562936071852642249386110050827452915831224445001011290217102148909669706089138572995007887380259454968346381963356335919931906842668272727288238542595338747457162374281190929116459891097136934305620105777879630790873601198985661176630528651466886282963221245778398114176816857079964936806297555154414297935298292268186289549759423520079912966005029465499907041660672074949245967780767572900226647718034384156165304517461661808289530081929826234155312547805587623996095762084298307234993116824994445890663740113311993088277111234418837389926527860332804133997851684894356867036414803100823653996537404698145642567581506609594763251289916069958936438140305897114208009234726873686434540973653902658989227378854740623048583594584901087815805528374939497079365320390800297858243750520917178145755396022011228412165841330839518350663403182811712722151852126800332796235194719248936296079312512651008626161265268200659909274371660009382084798565046825876428838624169919437083736970668976132846702189980146744072057906934041180358995595538645828713937435264934310836286198473737058958088490551454143762367502922372430404750020574039140490465054150247669344009410917013291459826441564488413237381601623394279600354958007288344176148978842734651614966524092914430679046994494653677289138503702865122438819734145785018027173659104095444189270856435186610621884184593840407536562721630021316353291721444756047354549549312980647073914141093963377146733100001245756614805411585246447893562846444392900109781724854593798604252897606385424289629526903560953710386440045297837998046226136726110918701086013155524637322270250213172740608890850178804585698129120975312031924913839517630874945011391022978559136809412392874013111249205348521259281835323396098347509063295982046348653507382130325648744332017109729026274221326451871254553393266477442669900831945565678216461414625167714874466908316403715647464641972371907937740917771753102508740852673475523760213729139809407188542406581072121898041463439507341759609430231308917079171738842152982752456108498247844794089707372896852034024659283464343578427306193942612080634951916976336009635360122214542892169272687606803515942313191295591599881473396401852556548416741682713181742256228147797183646362075909391607324915199674001047520939874082779639947601581425301997451057282618541371143988347699173011648283096340419595801974510554733358189108872210201457794725947453424064820188974100584510442738498884242843410762025896072390567956567774246864652277815717525588324100732286441936425953133698661706760220059900756602025336209367308668843072417100249646640344778301261562817629345611993690296662223872172556235517755074112280375029121549772145435172563342635786002153587173145449857545477743518229263968758548088019462669626918153754602794736392868511044111258846782724094884932425120216800578334600791371155422665896002664657972276902538717243653123293382968262255823981114759639916106041141606346498725282618432792368502384360016222944356032722321790519177933530658357815079606112544589733016855774141429532342183730797073875267085560609523258188004691740557962072361390479437693803002619719134003557075761957158054015075062358056746331930452172611519288723941296454948200074158398049879892908612420522381385616960083700117930038295249029036806980652230677019187061325516562417204189418578445098671769290235165671177318636526324434975827733149452480017381097379488705569262527988324282620008518157159897137318701268383613717551804493505950012686737493578429708713219415407069169361436541874658480473118234708140419284427785487806248561718060513987997116204411614258375796259719979504850439408512369242863190763912953168433554728854686822712439310726579554079848721672329490047360759081603262524512002313530260371846603479902427818725737087727864648944053890786288433846528345796432990871668351366200869094532736201871602085927700670535349627929074802810897019074077040926981342865079901562373843137382242108560960856463379364666523803034719095669545614987311340618819041710506424938314100935293133599688816625100998289350100395417669112698402727666225690211514875744164513755432094056135630826655147823810849628429609359735670761976501898008079025533229962586797030321803440320267793877496593374046029277243094142529908960791348252037751074057657300172140589714663683689941953181520912766197292278845451106833476401591701356417468621899062525636839852526053166248104169881541730584548364801657036581087798928588526450045216128261629424895131722041661024947235591884891624055213115450752893113514779770635566998073379959678008392774243360421007600183917745177617686259198321449282711921212303228573018967353549218953700760837008842063587659114486842874894949517119188505162422629180217445157807252341446911633033079580142806551518495532045485938376341895417005960583582096529140103136661470839174761175567136266964337680272248548908203024113308843277212837130101620900867798239056617513853197315198658569156273218227829896621242892206751501292714815577877717810762149394782187103489275724316909321819749293919414788321009138980683137460781453530479706650274450784306214189829190117264999399600613678439329742366723100292936273674131891245826217154283910651216059007074015610387885962004514443854019971277796533372592300060279743480780036446539542283623146697441999877007174655288434133756623534835072946454734592182364076431418728249738474972845375267309213896011200322690489177264833616251342492954808512532330233553744325996855735250808953601019985037822711710584635405837676948931617053112069913376775529014252258313579676380017950182993932094686877575662756222165729468643428465168461861709679520188300113762488192242313000844444597046425639997172565283359013741384994696793374730711394109656284499919444701826280962507899963386733153811790294647832738325555303418715685697248910664540485548549229684342280103309750427886328301959791561954088059614876459595921502656214913996247314215250217735934845468192952253334722842731766480003803068284822893415731932812201004607730638208432095227344246669121822342757381828220855282526586282952559794810773138831141625193963213677867379168782110954577910246606620077465555302935167933451697518478396221240010194740453957553724198140858394775275068602656177221725975235202158551384359328244698404667787091941992054873001048491190491047666287624725165318863413281703877136550942003408875411071223010034553642311914034890795299671006026081236567194241397232948302522989136408396493814660864759627969030850677595042790208627651424216287493283431735493036437873832056238895237501212313991139738369950461429711292113033470246441201991760125188080207998409937683474167639812174316780192827550595290457083948461544374386289184932838329165292392073958679109608943078815730341410504377278766540039784427064502332303965435019398895359856830264799489808716700527129961915086110780994974117695396628673747891825691009827342413472355909953442344746339965783106606032375584673354861680311141230877668741041995171419831556183193240115762002921653454376202800222110969853448939551517732891680748069364536315060142660920985874567042711032198879078087243509343496732570481115683975009785573619711291060918685410583908165870750606754777976368992598926043591491825899495824255296481237342878692521317471064425451343366572072641938506399529114239627753494108549391192168569379614160137831495535293415955846665112815841016360867476375414536858291039985524905265495534210454362174034552872405539313572304649643365476592971929633756701696458621964438567676999006830622389018370367366861150938364608419298797231979862009979303347180778637714519750029073877540195122540302823526993775756458331334816120334737017628019652141974958444700442611867364270964686868291282084847027151928422853408215470067955987370563358430891467387332829766759448393534313922971090196010230471531856137998623266644047421177206284840687878181814548723703558708841241695923480928363280685268567137118515000896799290315791943605400939024699947332055280412472773258971707954446683845823000161680037191483273185888416859504953730228686350984271893567788291805595164554547392689121160720122054500709824286985191336579933867722884126165769050759684838460293556474358519986696032350774431300199843833730759388351949695887197454930492828065185504434521641123752473584699606982931085541413612028379821201251594763701184749072775519313851942021674255604814745976725491668740911952736592547824731159653277747448556780612846677352186785480037861645744002511660684172094994474403324714102154979492649644992534659954616697910474203365478743893157474442398728273914143405226910222681432415899949080777872383689814312813940487925560330854028929907050114377293016322070018631259313697976669197537147907281750388012395151504499769034441661413398680729310054466133266100013958720335587563078813876640595431769198479860120053570864464546203551794396305130749020367482422839197207838639899979006901450713998717100095446182948107269218155399288497674259896738881145272400626054296919301962483347314595156493397061519734622970544777910864386324837667579240183565035468431687481165645594601440081073070369071850800247992561074227309921371058900884544246705968091793012880793389999209195109680557014824425012599736014789428282973379258468998349786162970241783098891839542020127335304853697770376071545766346335329193231598265657443054388349506719175373044852761781766025800092783848956516251800112194134402134693553855827462512191518088838516946328587777212244757231817824344452283012406621534351611711521261359131620915626464409019918908918733984076981543200080307917806256869401892355523560634023884724548976979979666125316492070863525839089089852581537753460201557474881145649867414203623589182931919752532384598125197479954279121703812310124188358681983162203140767546864889171813553742211233928733794238033023734695321954022350377702479638238062933965017594667741650376726413722062173834508428807106067685178440275447687641340649836481807449853057482386370528853466657695710334541915969228911262222201579924487442571085452260314555048876357790922469155230879548307253519159859608037097237897305124556223402605303878580177073150603374670051929133490472915136830096887543203426811441364250078671353094638213551770460119045377254677809456920942121086550762065272425536752717482062454004147101123991827681401519268460444141730103648271345358300764552594470014604138339477163797641903740491376867699628970093249565187895674779896365542227411859171114734907470144604765619054236390315986689949097580097560852434636250414447162092014186700689508129687159834791108890068479692248426792982725045293826335476980201531208487945936447129577232663863352738870897760226851539340841462145112926892987272298303108927295247436780986073329664862711766579446037798124797551517939330776191708158775320956741644950940253809440396792762540497432504183369277037534375695198045159282322017648691922415288756684258797877070616262308024379483604150113368366492713986285490068793059995247195969118354138852814201842158201227523439439893419502191268118567867916058620950300401424418847432601806445057739594204508310049186973641909661113922923620003212180033122777744917649695419743445842953435608962856322447663733823770886313010628225577396455842355931239269876919308707800199024015340400598533532921624431445761416795354249717690066347846158891819130266290737580045908133907909810313969788558986063031759248970980870383419106098605117016949664001869981733841847395362624992046561983270564039410422441671759484246919907851669507242668308184950222758213463136991979109188876668932131123829256944399837782255977168956414329087695295844318956571175719403750460125935365817416101278309833145071301859344099019158441248636383020039510026265877333978093481644789964071019012355631646516181386138111915599521197393124702549850165431485589409008684822875958109122680118411891430082033068611779723333550856413849942104317214367441733298126294730113236342712561342856925527589477104814255256912174878466008858859753914103722276518115573354164930945183465535446319295631474517386703963594563514694948203058926858077629658465058987160998765129029137999276011976233247878978129695249490809579031065352008084071205567312496618324001824873249538777486685797060867572221102380263983436996638386736117128544653863715266248038551679272712635096682302501172687064543649896247390213019734098854320022055144875453374518455326207562017963830582529502373690228716393109325829680857790645949052247196103238119569406129506128333511423586073834612064661954821037181237827247859477581039883943672855305450396399976496677065341512880304559345775215849448373186709945508655184371498753668055629250501742052074135029553793237146756532515132831614987999627418979172767551801596919601615693703729198030262234475727287636875258083790434153355386212576221440955758634441127731399855621878793517789043938992323542211740812330505438278365065020099548785298089648788146382689760425901579926424800310689339393091596229844698946541782396536954804512525766089751473915273767005665608455663340737870239111590755386532874643718044592099114608150907516282963278737034379120736941237515075355633511232270727594739542874952117747320040834142348013847684463700413733942019115640813848759059901656598392854014936336519017212196127499162860705491155891741989269724593326511804006731358060583135783363416826145694188303153460580964097649348256036336835595942956422523546499192943285691048394122224958345228200299563336468644212267638817890534513730669028945033277919470446113951570561397538320778088015044739367076482443102026476529802935133647152822107630333992855422606458353077067727857001491061388958359442382243322993139262290469938814376302514213806726523224837985324993041763914061499773464170583838433107805108565713162338570994647369282765560557100648305493035037632047829086405071925339220139883146380456593181986564894250844486691611835078731099241728099230301404982783783184218461570561344657257073348250830400550879494483848216253432223395066288837726812411499774589807262456038871433097235016895428708978084753275255854374029380148498138638658116976635105780944102676050227244515790465181749551967472741354842066610232044567151577787054221327859069755312840443028397997372335934768475345238189702002871882556185690668174797935127868393568287530300398353602553956553754752313943179207177981042997262279801324449436477330721415480834281714859071586408177331711966001943048524563646514056351018739949762732498834103281420764413293417677539396170933096207943590595118522622320873999697475624615166393737842299614540600379684924423784718962940000631571838528388438301172142287967314956692370105157499837464491482117009094544929743085248516499602224730355245626174359464598374460006826565623036911682885524715129268405284095520377634029494291306961490629260570106294601651046679299733990965463342663994961625796156521711294683264391056651515671552438851395339261423240196063463698676648302045329257533518958424452409602166146568863491868285760730194600851962926483277054055811076861372158690091599305473057391282211125136663864261313278109955136920120968290943818586296914403490333234659752789580658057608764812941803041708032685650732256291238963420428164139960948340640837376954408011243817626494558128807740948140442671771262534513733053750502121710419992446552724658448722040624937671984020041513329454021394417065938717976828531086259945687982523738225282244007366532402189147125279639416727716351595880087087602017918503776614629870658509499675361430330540000321476838394350044359508868713145518264098627644612607551180681476390259987605519270523097057200072996151230337661710469950083804010507570349626924629160056310385978838046439251549506715390549409287895645832688307895223226600352999985313340591891013024709573761870207790961667133605485506710640612660889644521600957572758530851762076435810695003793358542993805019678289353447561612604552451484380089417236409297998094856547469356591146757833022970830692920690926836990029279824024844307277304606636865805948677133582625338734521707174488192562118655884554855559552019139849102511492240600671130995403669920778134627773320100495711844250872432519152325840506692238673448605649832318434970965287602928353002459305607108250709606882755310540419302887771478239902612774581283927898201312776987332821007607032648530993452822079460959715183269661800147726971558901330889001607506166707505349203972507582483089262446182537920520472510534726176440607135016403687749446519987733107786032576137739152784787969778692116177161692609939864699564539279432188416495498460429934625955779670807171690392244576329641214616154209575321255885443388056883328868808350295379909058306316054569353656188753774261499557215835361224100904651732015340022637703596481707916146643934160320633744977318345128697770794170844742724840941096749638178314874803023016792702827360262546381303801692852529036116835679934848351565695352412096367285830645386034450055466966271488744787908214757734547870588989438185578537981891955734693204411641310461284295634568749383380181630119644266593717870031066367808718288532531623074460912705235184377431251253219388511241936473998595740581944832545037385677461888651620655747654622040169548366982063783259797290323144432190847943863777643104459961728723311861739155266245015510225367391914946968218668375444943712710591636065919164360016363183038818074406616763374078925141058400165921544421333169770673705614358621028964197631721655639594745454064052333137337455124004869599880667178291713590325102300948645310828919661425314193964467410994857978187764879485740818534135769486214844755298192631496751029791380949143241963023039069143764036683472967676251087853666360342235410629076992170218587274556803424162612481188863542881636279416414797691640784527108254835133535523464454255243747126904533141475603745862123487011456062976172894379161952095018219550868597976781489613050960353488617352085747168868490756229635139839024435344092915903728225907036308092148875162179830671886137993700826237297286137008829082657153506247481427516363670440642892480118897315022776473243120619752320847236594184523268936425354436088779976174175868660726427965426185802413311239546238331654118979846258523842619084084774920460686062478006517603101395052770149024494860932898366110194944260372032162290216715660555873884849608029521882194421168638040377173141605077381833387024671191520942169349183263946761129251629611888368530120101484328739538696606436235160257914456861831640683390469767150067606858516223595621528710107392222559307113957362033153204017697671874323435215394337805505930795595564568731035505367077143602064286510929145605443529747177152165614588922918949794900418649624304992178140817138767121243748916092945934441508548999397429385670969504963810223237311736156727502941804106143227182544703585465061176788039980313654738851940680360151232402479638874253593809580022449773149007952134413989228383270518207997689403995337200452381555820842185065777949243853759088492783358446482682779002563302749968519901261532749484532404756315593779367529640231978333553853850844823592826574140840885702931496150955999825448226245922956547334024261031909979145297813489356506278527560375333529193815707818719944905987688560317501077788805911745003197724322802041606987990269575324294321137153077918877626883878010003153149530402686169915304541529897575659626869056455742665325806633425066912948291453019607464009014434274611511102298369750519174508420276659633147500927033584903400916837366372099827769161230971760592498717168831643215515000165837310021100193163035893630887580289164007577492082543570496738975713092949234402396155701462685030650253609093042489535032381759608780877386893610231054957442341183581025122178879986427619201480591764047757265176195464233558900996146947571049879110958371611079308678501613381175193023550094989685312915029917615720737431900179463312410456139364520414337510205404437680307398553433452162150469707680934726481342620835290846397208532066618644313311363223411648128659605114586667692774487995240674001486322582398749851835891448246897146433159645005750469682887262934168947788045120154084931927618004684180429739477420289148787462887024895502081978236440927658030876548855205744005574467410963849987580856340500061502187386548668958887309953659382044563818526849256761662772522596737912496912165925995524223840914566641901138452248947685075377635900076798468031943500505027988812670996754494230380969852889272098310635384581927195676127351176613436205682713993476849544904065949996166652667640129211027126643107762052677382141051083576870840259184672563297134258789188010870307254908940563667522267002105402518369041068847077225975596959335806613727936557328861346204204322452079586855310434128706507817407033175658818855547493847362525951628248844838720694807189863290840276756330853094758535270187082246995370254071695121155605298969965001944127251489752383304647226728168506411616325958564105153817092914928223866754249757488350071863184309274437692820935632091613320495059731094004909407487108715699462150670819998168518700697547475336557162033336246732122160846238515450994457616624980058123909371274798557944937059815955536937504967287373514237229588113759427452291050343048583200398353378731211337741404684699653157904530686946920187338011486985563022629348703693450863361496355404498458981359711805974411669458026371366001398928648496604501739141942478965817603268414768318523775704246928571456213204547409169758436701801340536342431087093664704707205870241961800761508106412212231559191631752679396447748860387246488772303265636387989698229578338969128453444482038403158158884381796022893138266168542067084208532395568764810693704082444970352984134648371918117712579553186631882087920703483109727647135843573922516637362626046255090498097178503862143186722800116595447420090764729156381642059019366350534643326332448060853622464680725694047394170277735479177368851110902995712518929607451718353878335644072319628121895293836671050062247063880428793504029150494716035729763717874974521084183768165287078807319796188048063041603153517023160985178114671243134708430345681620630125858335769754453320078991198657459300515840876109621174943354792801483788807027222561974155549177384257167476897492323282271868516604037007281962555320783932979615985026295229756194217269700799166258470300966765281280585870720076313706307373048077893156562570303055048675698838245395929973793709086008278284091994391677748367635650652021455901135427510930967952779307376738419378331577284599090669006007031241377581911705187946905505751116109309415602301321982068590588652802775615994816341911731469619972756192055507246233693262069868410297635864429391103087999696681650453452348406550397093765181705992321842693078144302841563740831633556915821089530423080868809403834652623811741297931472984129685512697977350732386504873309835388069048990655826702592576080155768323477157716433915662741465669101759146903990275381175666410425462666744769623095342014862454216178056999067268115678022158368124112629928227820562313358623463603482997311632288425872901084897722448779188896932690628179734882381602085771414936753585533740341871704781016668009576248803263509452594309791783686290243657470967782140296809747832894568389066616611900593702600092679851742514288538631190467380467223670462031801442758409528328232605719315896570959525376356603822913832866032704477179721579496604892325229790130597602303210100149676460976511673964443306101020040712495835004515364476805391785605123766358734134330769962012660396238042872468735797734076876774823479089322371626035422834754484392260207601319481262287819557667534997256776879845969266613333710813308336374674902940011685277167918286522040794742774868160964695064588651771568692710678069327778677375107676198216969930175484223412227178911573157593612058384248290466001516417280463018985635566340801979061117859462939591951764027456589493652342392711414817122168542043070908701257280244982397830593893562190078656650656524849416896862994415118224858704237753199729981208833421705947240867219335684257352442024189503989119672410540012725377330705542239224293977123964665946129570531869146334300154635957942020247339559326124878329373729259535764685315237789272846756296844177618872283916573537202682854793005316784136057652372902148479024110909576580578306293946455833433149020783279476307480656258261558618799505638185789634080420193411348560931187535197798237235842555324751979965474406888074512351944267132467817258803886433876120412917002031162955094857894130081838006008586916518416006628675023059732016258551886691083808918591223801866043556158079124728620191674034334288901401029394111090365003961284752348605333764195564027061874070780271897260917667549482357203962749488027884278826224084991120070817097170737810357963520285807345498868852929743524774768273042450675256103846287015555038638016298211889422561461072697452321023160716383713834765706954530330660470725956018931436895848636459465638111917968399428279650594399934058955364097725704253308965230808851315695308135507729180191459675314131368208562895746922626239436505200179449914758840847261098934639235300558949843584561410994740996531777770617317893093170124803542905134284901557709708785694638237549449970088539142568155445596111522340290340139318229145175727961541192829122716792654244075363972450223074167735377362862638196494727068382349637611392815226458732013497186673454656901516772955630265039129068768756477731630931322865610339768099887537145092457785924031284390644261576091682997753607652568457187064667409504391850209775135452231631397392082306187686327111995710438643202101500004444307610918645572831691695791940916159581331720542381461674321121932825703653962539938696929260764116719990013569173940182720689089558480950246891571835563017981831428204439151440638195025414737768695511929801378946200903604046143652220928450286113922398175316714347787307723107679971706896510468949660703847031467211675374622707239127459688247985833071483785641887435137198578835594081824885888598045425695711171759658207503091516563701189478103044447488364177385228398206463980464377349493017941990492145041951940035222725882579476144867191720333038428467910717264465370643468537233038376848533407135326645060441626854646183894479423007399804146774651018050744965271091372695114625298094291200948494564739456264562988966490794368331744493817592012432927743058510831460082857633260014956444450341166999125867098817375559645577659151109372779453237190282831346525382109822705971165050095377366708509083063269804604466158496735628630088155287409327426158878921177523915839564850793429169407070412155524942244650456015111183582281114729214317384061039678288472708164783117653991928431407021871863206151325607477026756700659228065826233091415492717792857284129147376063307588801673788213002237243241284595064867083680231513835461474117753285717584317238113632031664689815399502807782664671814128656762063421193665150618496856029955105066303215877019967265518450645554198728402857261588105673710549558017993096439186776996901433098115368199380006445094655115654393778735732672545688540995419916875210508546227935038252695762961781634306362853385844326619799781152322475802293881331976441219869822981093469084179143711981349950249172177812011362368386974656448464010284274844298763488071660020081706396021288269709937668523993612379720500070984316513015429018070082848416457458207925313734384111911147319653522267590650524599263734505877091478160563317251544736141831261143151381355668022808178814923752357624405731668046768121616750328072882797750622562284581625320109976621273177647670675496705491388448093484387283696883705199244399286319139466764394346378692295609671784386642351522732982927895634192347211427201869259578702807408632390777068188067958248090813473952020540575845217540036403224574763976861123966830174536487066207153197278363440565631113485573826874123891121704378470956505243545877387134444109296241208926698829750896542899185804855568549240028939907510762303591562280598567951422412922905503300896841297589631304749749102633968270087590844711425771723729366378702077376308273722772534428365225980427005773189935080325208905451414476101384308911209311877687788081178581956142738071502041772575653726404305442363450617523589299882141391288588402870306754007800400946705712737086402151202363431529002911495457775021520660322892594400572912494800214886277487920821254359788658278923715626410514723301502537742818063444124879040877373387890529720774014165322410294148021141210095990859378242270041188146701056940066644034862109895001692967622430520895976995330297192886726454751525173942067008778028079779826600397096816869364620817705416213780343344385833151333707997415299956926915445098315786291460120242713694421898542066581988608396881843166462486555112940471612993675729615828401802225839222325274631318410009228461606153393466389850848535226889771552085516082280881461813190824237577815883783269819400883414105396956286882266082896143985653347991815642671951670174696795303907084898631197759720319491045715464515022372705660378421275624158404812322248647983287231665366442319189453858695602445060080624179827694895869268946951323888178714674790071875496260706153772190731198207599352935581732779180215008447656723764229590551640249279445846250767015367402894154602682941352043918793659818181700053219702312926502879154891233941916549956615353614622513994992747158690298774657511241998250100687636461444342674023170813599894359109525910917285492986123828932918188456293248620536435751309666209283943904012333476131035934303004003631366667785668964183908335033799393120120207231807596881072464857560418898082398679392894975698885379419177946007004772151819539935501603446079415282636926057433269582526224282342042302396562497993179228590342679196884731825216067311255192646648578241116953804652306409539266461294420733294418795361309682774814984911294825733255370155381443497471671466953548304264223597946249791723263099912846555190845117493938802457930699927252732829379622285174651489958096386978753877110283695902521022277318506490946353650901048625617510575877541914963767961344555755927476126611333683567336764214903732657948278294494483147686912682128160207695836390952564134206172474383399591752356062853109729205339783535131097416030553921999391492385790420719697059160999415384309900982682113803142672515396230858217359224562295639596327679313599272775803193734316928131767915145897386636101657301036037409754890372912345393614959377297800260234922921590802767817861643364250370353472523981727991423667085531604040492143187664339498643425395256064269259967075142999989199677453591490864024512473023820288839031520353833134860416608191406472039103607681110033534988310717303746121553997816272211165143426173641647738553755349330120006503136150128774247253507300360629682865089587009195033711826174890797670388012439200397658521128316970275779206539923059305812371996303087708279224376253010548709493509452019338093794716900968968570500325174576702481974801633872266766514707262862710541065968880830867411496890591851793438772154208245708230089181158900601551386207771790230116460765181929267472240831105627774996028064802314336842886856281132758904625266741077475886311260339694915204749266078394988107691131661437393885878754476532307195188513055035529397160934718111382921999667839411762260235771847628954486246521741581515785584779089410428077571537139862175527392109083230967116395230808339677329938303743690946524280282322544316570078506590722938568562897042989774846427155754533374007560989401838302209066282094592927862025546214068190616904548412649218376344986599749157639473121912649675267882227423035549799656482443058914064401306446555030690008400722695340418254096686243273107723923152574236794954412799680561695103564136235381605290947689220670517354440286989239457153718754454160645196655880967479966972423092941871872152930895062547662359294741115517225465904480365641204476534466623537031351427141597972818718936129432307612907436462439405685470112346406090472733921396665037369624513211666823996984528514872664548086099345773284897145062478787432936209305396497916235787710989772632681567444898503706245658633669007147667854093235510473005421499255559568644712345239292721881478752212766052231475765394616821130148292654869123712357905002985797798785806608243275665802561025374648838303157245953622842781304503954975837027866804270354304014329048556937870152023729708791244219111109522694524068548480081689998112274431310013268033427792901806775784425723541471152719591098999402313143161574876932846477323049721452187604888571161941004127143837277208484061454658215426364464586345911113462093767826468087799031099498305318056535624490506623011444617653005392586022245286439028563507124200673461590463174449875463845062536006005399894553800420496331237666122405122439852114340835070162962679706168237400318137692392414340375927203269305956939169734011858503402970389547719308794706600802925819615278395061231095441138776142895210507526516357116898242909513898378798359655819488765469506215165434822673847577869954894629577617597262027639625336654369551696671793940392285931127960930269950354644392463796918446009893662432382467002586342638693653191178516859149416441016460136994055750220609489105111178175312943350596018835316520369568221559177318828475203514784324766590205985175383885529855957861746805030229829102809768702744899201419693606062910409425884315893514015501384830467994981971992434619116389784647351743936335357600060891332258073405085648807505889413958750283453947380465224829662817108363008246946884445551560707596837473006383630523897911001724447224133216638001633858878007701533371158645981237289333597565042401087296289188186475707595671855345422262868891913416369202138216831539314878873225530817187633786816676152576082703798486563254846704541221386775701528768885690048070299704326746162057173442238272129111850807135418145775253188887755133775578184644938743328338550171675714405866336952030732306092946939121779713226643082436069269349886484823936580471699604934379284103465917519940136597148807124500307960691251482521147346700875154717868872231816119787925965438630962954904789369796106417787654370286754360063977533396730973231208091567478781548037502098235901677382786139986166082832430808783823971246252553169989890658787503564553377344664450020720757241103502687803831265237067403040834509799744889802702709870318753514517898914340733877681708603439461196556428428387557228715185236844926538116968862758095549355651176914444113925225487432857473436829109280580788019792214673820282373313374096863817720093435182246623105027693507802401086997897252997881256766247469389104730423583976305890794293376021177690481190281911091650913831457109824069555484249590305958852029777498173286783602438940686335786218166959459262625294706664430045463501353627562955748735968778547122819963006149218040453991749086217091824723311978658294375444994862186613375505797713795097313709368557110402730842823445982120770007440176004920753417016678001227528490195873622610162284912044470232103034056827595000327485143369356621404514812556358206773342752520859977936265335135930587891841892019010531260733380260118282694469634407185104802225328092965700675893687028415568803194600177671571550638617591418268440355609999536151497003509906014639393838262576713894917385236421824507612539454199644706867616830770763660252453504195422928146696778714615206524201608567679477391626320333531131866107620005174447098672124847630583717687552302616299573614063122739120409963542359533678852073974022455944357042590153794963902810825420263542027600405750135780557809035903217998410831940883409132179004489381225809474628934202471546471291670234233612718678220183275898550958195548783346752224628717531661745890784806615105180390343274246593827205023031318604667193840502552371460621411723629803820051558967120703169514236435847178633295945271813419085704943405636389444617452556457757937875113011458874080507797877210585133621046833597679175683077786833200095474895766370349856135883969347031968607957269037568945427734949075919508247081418314945220080957386026116810577912794489203979041082602729184216098574628064087224249983465669137933505984542315940880141895242402099152785667225416550973863553836761140091485903386602222899676756249341785497223337946528094985025470990260020917140285639735871730375314025700569982620131554738742745164144408918389086444523066079694924430624250613952917410586841569455237547017432257769835937900269742072255234438045638378637580092116845609998276231074493022667051559426531862323195364915485870665732794926937357153608764832042451461819656964088719704944536136382982061120989872986215884996866632213740110594608364598418332167071607848026397178243751039621824234173274818128666176396421466105051271190848733589988831549440060381259630160086209284378175889477951056643119929200455725617752332832852252554148757206530197899214493494569446315235263878336805407655448886122856383482112348762433965358256173762702859954637222447282087282424368241702530456216400057176122272674487037428201679202812893141706953565268689912202396988521180360605280705658589480408336951364612200504086017510234292062011569604674262659716768382367770800116881270837995407001678261092401699999495500084801028972126773445859769372444377011142680960705248992775456830571497069740393156913206481109657059343548542883511638682870129717930385487502467970259243684117090197558404508559696197067740878396048251841417087354777179945025975323478973448685838080028386972688363098940068142110381241986923047174667040598969809034809978569985270276186495670468935281803355683397648988438049910629245056098539501316773399077368193244151497793482365547828165634466371163694372508187230999727278495468358338815004613142062348467596971758181067491068070347408971416130867486216229658279934644815792093068445716491513727849413750627073009668106974218701960304980541692472891745298025326731132659775971970706493816419193946203694784129055300788041650380876967104140590739418159336392509835047746782480906614596681837107649422356016902860323799156359215234273690237058969395991590401122614165586714196181499368021913174754698469593792275699752032758325924389995134081922103633990454690033220345486372940866622010873336363177794559648218916748704308410963324271314319046419038423200533599782792021931159440842394882725176223831514055951236231495954362953687255043017580683359302666138923080123871089790812666112597371636317720516591080752753817837032966748659647624789706037650856320602327806170577159836582671411101529707887064918966452957201291407207738721531722145241132988337425007672776615399511582401122714927075674451563734410383799809167201407095376806372219186469914845366641545778980157942368306028209996416396264719736884326692104728974435956168521868890861763494615043243757727578892581544271093748594673243056380216927943009115971070544892583034895544390979950990645984864282079734934505292483178644738800641965083320379576297584269909809815869604795469677900739793980574661597010473694442088126252114830406121243890973470683121692489810695481978876567001319077057832762893729303354603849091592910445159669540964614066730773236426192858614166442194426819345825057552857514379825994907277411774863041419815643252898627979306422290944614598214663829986594470621772310859340077632368016457359254521091093568366208407437025000378616052549213178241353613866837265165438874586461966836084388433123128881663573657576632930163402214379255230238019443267206091571086625448227075556828477311303746369479290089422233276072273731959296402177397498553361311398287628032975988572672410762820736123213298064045044864131101917334301670008025226542652063355794151435629849632325486268804567371737395053039161183431529764003029493985458447798524165333911648410577400702081639246369360948513011655140307764851502802400945606535066939192286132546464688341000977116501588325516459610949345738384870528912680686881673009460313889891915845800220673525085047514220878537311302124230335535693367149193507189242156354001156224452658966013622582227100381194133048884893619064264887855614059911262006101886013618243141436760192968485988335009900928598014605451179141649519297041660694427663702725959191704814657198055657412912959314221906101643776413521181645191625827469628677368415519541258667190164375365214557176918247610215592905671482480570263865299134727304822393770673885498962093152294616157102845845024014282850174955218300541013758505340579310515945842745697961127715706076720795176260955678784097214461482050893092468746651839541615976264443751607796011703509081043591964991559222155820002457915513160280518747233230891370993705640954678655315752682132264560484743074820405192660442187930552087569983725879251386702720940609977271906228611066276335247439552112103442448120495906487766996812124081155259500141760045392433731312525232231099760852467032029989996067037671122844873041785718914852810178690318734989368202865736737338885370240185908438536530049864463525531685029988444892043508735636853671458670193686884273859238747768822861280866451635889572646426910544156907901629857870075483719225733877077193042990488519685704907839261096912519474813534613955640445377308999387015734653634981628875604910869534772546876400552734602788339730892672389237347014818315748751759336072320475669695483350848224661318366000294595772514315967649900611891916701289670168185549779980188333341238519451657681319884310194570824684017174771530840583038416929215742825066670661111567903643080203580665931622307332199860032618080056986582218551799701212242962279279631613946719809349567923807571120279315958806198992477484446319970644169430739904982640179255590774104114330656003648347235475100218913258870229764138618438630723921133004272734352399592972034641313682297932317998260023658346182421613725048405744209149500089770316791118808281171983102541152875722213543869521745783934094601365863593409700797051193706907675612666067352265950710397498954262032867078889317185425370478773176707452843649472199359607347047805037976252302686729372053620765909424588432568210593216872658199430666098260224318325347915074111809960175341204215450015350877676457924690318235108943284458434593137317946823322603493860402719051937856586485756964330253305303503116168609402005712586304232538397052167609055802272958083635111636009501160073725681691161862694625863220167911440123529874694779012848848489109960213098832577898969368945980585738069183344940326537068496126570505082780542667658247387663118293838864028316170134800732082306668853066475740496388110571036325792219459817272678261063446744190509550468143744670045583070775432519628451284062525488014572732865505908094227932446276346214753691240805247654780357280815838648519864489878645688532048669908096909869741148294760360520487996403557855847506422667579046804860197282190823689469356031552233304538672571126580596910697371295257203174016640604241831080325126757495499226920471260277435301134867832562428929881206395317515471170812920134226509707128942564737156944873235893156483249100069039457509878229176614471149127613104924614723287332397741870132466268544824834316559534307636538780422627798652699550300757277446654398768828465584903659780092350251334763163656103510133804658362674946849226105024246812367395810686653871874065227888324190654511315171369116274387839133045338499238667473415511197975593935030901384634222921873728936599219410323864406203776083839747085875591614122531471741982063799849245761269729312113207359776528924709212528341847458510052054204114923864827398947687828631769763690927372979746964227346394061872062223735536652724329384618434603281528135837944580862040696263504541398493200484577255147831748210603641825611393923535148718741414386883071314025642673967627299006449127951949702637919213317169992274890037609505520467785503345961212654969979487827017879846427478225474936395996296143915964376598757115753137151403111371380903055846076840381585539795272067193371019320282461557792018833441211581243937069692365536216681671530900657133793349967142375427017501419720613395635572332208572980718608631411666380069351658137314629819686116847447500777595769882970810306928878551445233698246563483225744560419004431866173225833292739957644403351136775719439916357610276569331127414506168004221560572329063288623907347667879495677088730569311610902803371778800989213431525919470434168813995137274651276084326934313927466171102035228138642884084954039791823406403860437685672629282090151532096183449277019470250409864099674809281429296344608297181200012582185067972199186243124327097885290961503048439621383893720443557864977252491237568010266358139164573192745705693180611033449813205427496160145519867989369142011173727757870176467546220739153034448923968218705449789841128428327474514926204596010749035964130232620526865452401505647639947018011053194620389532515885995616109372346949641821451779393129917814266530569679260706157771259984213764840145186082269233423536330941651942401698343816766407718309811846967318476307076275711775573059924695660057085845047991193496832163836594551488447782992706430689816013290045582346751437601001902815148950537655171679797880957209040315464270257739987943358391035596807994073907730869954534364393625758299219173109058963846183719215302328023537531556328493914792694681595104906766758656547030670202579787775218595278657658644347331590331302272035234191607925562979341848896045423190408827780706642812233449579883212149969789492806817989197407813316082867755943300942082474154835223260185883403498204864974937066193086866350815993488701281287156075063154546503596550260439081820617549620267358936647439153569140784425761999127511574418513701665291451297109202353722351051226591448628723692822992456023100632892279580264169524402274446379632818424088181938525722667817633077551045518292039391501488084933268842243474171327590597169451746359645235155586691703097989029048010269129164745410512820844331696844758523420137997586786639441353056105375619675432795008758685569529936200167634157677290886041838753299518868191929585677561510352988624811381495970955606404569012839131854211839420564466785181653687811181299768675746768240657800646418235003017583628789802411251761024488398086841419444316195749671500019875623094797574822647783971802228529971110295157202184455318694169293622759833812237214473791015703507019502179617968712425305668388686922376240948319296214203333764478816106467003614690796912389910166847766774167741816296536487965615280045029794138946073941621086231121244851879345840696300013432283808880662043956230429825390238779378668706618119108888886344027600975550827648766722206700935707328603090335541853783814631475498715918966211805476579894976163638757426135782136986798393558056466188878613351590861417792736519878544732406521014366676758162619054334647093466092689933329772279750292323316026542778868313539480395537434631380517950939952542573896974635517227621227437903029832363449075097046398486167174179794594752446768670288078490742814639171903964059911992098952770373892876499948026654430364108621614556165353874857033262037935154382420858277292180670631952528785283568775491532676595689431033143113741797045677519037015986763474379659907730196882732931538185619992151837214382522972086331689559038122848106900883877116948779930703871281032960945603021936922795375542018045290408376002528402356181030864738657853787940403411035656422452276800290082043129372749195626585353940605216288783443334726381702302936905515285416476130729251174467224084476059872081874608190630795184574973383731042793244679860200201260013986462919567245639260521983166937689836200212504712456951687109290545836700943700978615192214249430894663289671844017458868421240028292476761679406038576127040975540122528093245332727162910775199116836763601192411905951448004470230834287364045130551196803264468276278732892748174037898445422168243331648193406762691562336062918674034151922955113515065362562299639855045837819314644470418645080365169286393191791001231407949430785850016498429973771318644397441313589081030992860274794738811634300818559861502154538186184128424522545079313900064889384846826117941018746427413946536171317778999990375536397303574305333247754545389108317939043197710223767351030317448145532741437020999777032149024624174029181227910369072531575382195351874275503809401764762874316163859230252614921461058106629226707529075275603653107152218768373801389135170462660748185718561447912364534156934647009738532644356533641002794593986023836996814298907861752832298253781818349008171406030151508635737138944232040104033795670970600131295596804163858761580170827397580847203625387910249811882299438541743318584022705010804254187646518190732896151301594164347135537003147945952020659843303912060698561036229160045534689099145412345300342259858400557540044576760758424170491479725129496399032304559899363349144289536415910407316265199326355499697325943495514953687735114740612042593331375169110894761581139639315601173750850885616610358545961296767378969011444440087701082913876251030522035031414211020882828505502713711866817352859195989470586151654903061723349714325211097107933882669362317510421100899758783419514692548501703272595698028953461001055526713197973115626126909553388284043109949822928665548836411023446750109969359420119436951522652520114620971058117608268551213425756633078820425570476154927706067091846040288726151403354662020879557362670617017618618991292855304396778645425768018001584361895373855420333546080275298364889254713170997706665958619135822614891407809756594309612115464809270210050248152005579920243183966835769360140968621239135904747528022416675689338735423521343418607121505960983364944869964916946594853010584174387285776806814176885198624456169563918437917228047502172167847795177445696192251899133189879391125929613182298920581141848729758211601343246185443841743898658038006935701903975538451145732197998189496164559717600420184790047400935373399506391572234723971317492885459775188106439673801218272686759009656802945023098046079891908435986224502691253008164436096619297327359461433238369775690560865868114439854261806033692158334235209711411471220145114060383090017001675641682483331946702825926025783314584141702424354511874848108813334919637172531069185894176084535666812506390272703427520708941259529884407498747477298869761451767354367940105698361413015748038091645355292563580871664941326390127626214139912896036093958116442621842401829708188208247337775874373192153877549688287383466625216912892120756991069409692551795378174323707998676332009974084360958923019097448830261880349113354376301572348086425719292383555521466956291593747093049837741955693300097741912851823042865233374835056533779623930246690702054178712857913834152567837828095443988506606515175564832516457950004243607679477330341790584085026408629038478267167791597791000528393195521219003060044713346141127489153314222039306497581043115059513708521345901398922953257947085127673301515669108560472413758288549039165196020663341715698655164714238956690007098279247995938692639846985400417382588008498728972938023745377365233047199343593989242187675385953647293499858758518735671939876739785465667413445702025244519540089980026658964970672272770094097875625271803254055961664232595774718714977042167034769131042620968630442990082457279608613028169408777079191573515004069483621334291436684195006192004641184525997601133118089388911230249791472635209261887329817127195095079991228434100545574159982408684741323268504076456845971786899138729852778526601150466149828308525635044638196416071852297761826907495773505610588275645487872854106347350182900836358054882923949574800833521649180679100585747003851999781631971771431381344420897080356591580400667906272070763257962041255633816145596709561721064563888998698601120487399546931099737398214628692735644957264459077171030006880437728689615477210815823305914821528274773562998670392924280117948419172064496347919676056935803772273585379092722749454377672345038094500154085290116695343611874460143754849229893739145378163579277568644141709071819211831257405987463774982357717073997558493078049904368695054896808295126816796909207371175160706083889125181652225870038428956970306373735650222852889290730602388292656937701271756696907951812209232774600505025791719912939196857581804088820773388410689034391412730861051626627824240838168775453316394061141372838277363306145245512147438887763443568917597626902779077608832397763049414601864372755665879674533698184690761554041402192770721043348271904756756253616078499658249951290183524415286497955085809296386283120160287031989992426526789536042231512122601218115944542641221954979838237034135729856610664517479191840503688881177970191983264165365252559039487671159809709189889902614670612111847414438325021890177005225043085028379472826702322886208931005212588433503804641188417016090693832402310509834694886009707482315693638933455449318944794646346536101804632082478228437901358756717513534725579782190363524599370555217043413507157980857832479632993912029884644895370367644516079468750240390956098592179601573106057423356859104538414797285373088512099008813765823532221549096761656510649382094132741742892156129787156601250164367167571849098365776435315970239921740446947382913986298835826376169865621519255185227873636064124150279086034481759931509500623777808437615574908622222253278517280636099836261827403228755076909022655719758152901384236371071302435789198619162832248335166816471440650815730836579358320742665577758564532287958162264248043778465685116048125796216739629531696662600679164278824511645519923658226350837580888850705969862676228208816420260448116851127139232949479992389146101444022988157952765846321345242969669251777153091740473446033210569956128244383639018600033303931259571991040573704131015612826249059049665531361477457564905372600729788331439500445246811283417610500509386549110547673031655688601490681294470509637839195293272050746703785230746659389581260652843895546746429996415711628579545830436102816390630546578558161391264368268722878348627693799303798755509656248453821327295663764531337865162091822102994114143470232106841491864246632980449549290932222438149204965150099158190495480302257132481993619256597110660358492508036063794655114395435791511516148790486121996626236517687019041338465701286973662653071935349870726116662759638888941679732327778984536658806868459028917564251666148967101960049012674294948118257513500591966982348655030135912866693305911930040656260656784446171456713171870495806806153532775233950262842012225886603640926065073371977024056674086873957627877282855527688479922540239078413152763646872818058656643088338732664468626572971468685811279366173795145575162240940583737933105612971322795340432870267499407437198146468358110538229162945197588025829070118838390566487037889608559136366031999663290163360937061363901322593903689515731961555923107394134520808105050640073492503557369676926870442632060948709222944703010400259015063068830293812541791727771033178841067654116052725351202110946964582258449075486283866809005440649253714284625805967864867506739475133452075168169441002191799983261943003392822205972832164662686086133071225035660615736402870783233877220898913464879687012387991445714299364794060064937774035000733508310107855665467424832922086645517698066585506666800946126646209285818402415327873401752917497840244562041875591626153997168083804982866606626693575426169297041224028698262574099653894961269307977395101179258311537723260450915559143968891151443454008591959686285882813701970259721660001647980734352396644557679765590119330080921395552513658489583273181810206614677374084789495920967692810309172741357429761709398656082798525145175051700033030482844412547658063696949687888677707861032399391429066046430402252804371548932105120218979839955128569797492036275712507914825013688167290872213918005223805321418391972940417952706182905479916201126510537693765977814237234187346390312613743219613203059257410459149632373587924677655907820218646629796142328120606405067362212017270107548656324526447373965889869721863833522912110942306117009281110979134150153065933772844194570343125071114561085351245380675448894371619097556698382969524108916883998465274778540276524517742317550235413719375842262392878543922465127278311255418212562626308404336536910787613370570603167043952439069842273617241960056882702719921842572501851008939402965178830632291805461863297059731353288198099268403224361257672170531557911972313372841226853001248527745585383584288854393389349927907171104641317448556193742616455148547818547143921624098609707275564317207328219591586503515202577499248304290504009233499687431978238051285144091444650895656847078075194323646154721858212776748355502572701627113083948656001701739768268246028287885925959969033994734459836272089415822147485347357430533540277156669349503026022535551029267124792903127885844747852522523215622695056279638817033871338173794963128830680184715401792020690045256572456542939526984791564130216469470484673672528767697421826972148206495172322399594118696167136992349825481895578996946170003546600619422109898949374011843879354622594490500195561871403905153442062048371544656265370079302790535948973830575558913600755966549093509815449191373875530863576399357580305737647237159716613439795322388872863318949043243134867068228410168053359219908571316789848665483381702706647560988463465237739268668513709225806350871433387961585517911033993298166026389020049683306356861281110346130465883343041459789700231650414703825709145930664080602425611936022837483930393652477800639262131204628435233717964166417195559406117434628294953387670141074648702611106141305880811669887610617837874754222341562416737297524980415336660686557153711744139534403662723265970220604497253662610172220023086233870543604630067339222172183472905028889759690389976829944765252083310169258354099519934583372191966244278512619811582181733018844088162628429461202788747070739482125818986413602834419384042739901333400135952765026875982730891362888968234147530976655084622620721828059594703613133512379893298115784986063766591780718259105614781721100402559516025350120979750855036929638279942941338600119139139458151264406257586668228486791421469686473015362313379336012193602025446380493807054347159837556556106020775025981295935188281975842815821419000506163535637221403442530468581890787103263442692551940182402536643951435071897935017165542266153871631590184503857663708537882515497985495338991087731914563601497877824184671201459113925917189107121900838755196184273380952437890223133589993517978053713943168218717979285489546281476344027036757250200623464306647896610936278268233073886136130844478612751845428039495905651648634428757203863180706792252592646874482980723945522052818944645899021700366298526924470176781592931327606143691184316886525880574742261814951854843901622214841915162566398043955401265370814046811305922048271795450889508949552494230962222071780079260065446850699678569678881873143737915887892754680873042465636630891118060291222620181903429934899555214230174895594072535097068913190245382280840892022406613888111625071560628197828168441298135662430604672961157141789924576380528847076064784503532389031901559132694664340393230016223161342326001277581955229396079833197325795620498199088113763669533845096901329315898780529446460043004543161295425517059542474675251605577320259053607785182153908941722923668328199495408564905151157388430356414762312926976814625909534324745726019511264726503286954805055732854919323766540227825378501776460274443343050294645675777875507014822961359578266988612454554132144373588335154248862515024720004667309193942154776877349137573290995346866768469104109044244201940388139644752246412038371847081252209332006085809459885338661109760628801014108743487520129448088010455644777882932325563126563478130474956876938236765251936179057090395065079085495858648544499475936966972033649876673252981788297009724179585220409254983589541179941736979388034458120865237253810388478465630885912143232993761728391648062380959847480534218569419428388453521197031664759133398371653873405160436695164801557356119237226836123376840286117987459480664144044160489249122989971343216029660329372497033006778308059491116121846146332538587287958945579963093170844657931947132186432486918464815573037593062462797601179547760036723966321665713757542580198244273980890531176816719936380361483404417228989277380048528321592979284044107955280569827471327072723153859187679706724212435437745935295010344903668286489548882597657434958854078058816117324295706859234939275439291683232921307894404141868770099535959270819174563495245283026599567967286696478073465479723568873906135713035160693253149695652481571649304227428765691120278770528097593547598451599199964376980008298923272212996223101946860511717720832415728341355094644654227002108009151999992235500648410789145599816694994258879643049684065043127397210357350143459993306710669007875754447775762024249915368027958275555732809116464106228197276253992835782689172462684309566532794192550902630246192615336139104991713040078921888504325020592184768589045737057432184958711811178816405691472942060521867075248346442416770537110762596059902720976216936592467800224486471467605488823069038054779089661169319089232239340857250564614113877197439557575183542544502598976814310370578830485339266780893735218348935116080025034819537756436463627017400719305921294158365853966863075829513471331197225749298657404107456490598959706072627173835274971370965112762042646095739059478631188501529112207905510151338120346880318653834614285307334554730539330333077733622396245103151617149685984088443257798843526769293130227960725308108398470376435593202150566664733043159479293845814532564785183320394466727009248504120844785340074263614317098755811621095523543297006260862119538709757371102900979430632451448247086401627576267081817915958560462802789258715101869794470588552317642459990456829252818029029472697947367980350174656262593585300849601472161093372144652086583630281101187548532581663786721152513441427677905126845263762227562033942010778819124379943563177279754679019939900139758834239226055571188809617363331424067808424330454631577551922248859505244931884757584375871882702099025649749572918172413883970480699813532877064873001065974361177942762027268248741828904327686973140702154326788620420573240900010611001694716036273114121928551097714595352509949239104088716999891642782795311019719638389778753843593232860054666347438736549011922889966097884947615341202221698613466990305080032931646679116647975243763370064449520733107819284160565588215245813364068166724018195742866615990003315130717066088062475774492254920049909549922618933786095307818604183579135967418473923238590290802923737395124154988093470454577472377916006285454477087146603205572643326135261746163241367754378015772673532719154120648036477751428886628177887712954634924012606306912805608987538442514939169512414019496566310943626506825531758472398490637955468420024571808551390845297147146037438736129288184453209989392727600961172099513277245241764398743296557253954550662789216991756732829032542487801639384809931525194209892683982380765994036450538476914104547782341831537585813133772336496499313049501302023879914614531860553813404667899335783410375981151361759789619687012211364472287012062058604667938787515696604994467510062724680192099995240520461621657619874783558382168213058816887892257439566581963763768306083089455562665742045244367008904031092162411343017769965743437967206709001304154452231914731642248833106153982061122337662190121812197367378949345469835553745593507834484193987990752910229079222728760411787099813375291782039139006610600403276379996224745544015993025890208030124252877689939725810091646740840719043108794765042948548131232867102953265764773064359618056832494237524909941319114529567969227148550094059944453947220166931020322856440691736867132215412508354635317487193428520329830480443356774040648123297663832570581305760321334615045767874800317802736958641903591050887340455231617331303440573569418299308224423566717129365063047228901795796772999620508271901120046266859371099098624483222240030668092859926310369448259896386999381624527966188564292220161225558631067399348959675873470555522448907548557312772607891159811507190973608430211309376988352149180991859923043243512645870978420254194092174445675706036242520598260582896272427552321776368789380549303274872623598145796073226490439876416784366184474777875573795558171960478090610033748856847685925720894047186431587974902343648126889055872083529996751868520618118055340431523555402117397851880784865309247424781634092176910448557494112683826216859346929000724890526318181087507304741782921822601607296945798275201325737788346051587518042523544169949802886678760697023892105839360101972525689048237409025234150950767947826277833969535509385519555255880979385191772309632100144023269683845959426603348874161293113066173411272168025911491590706019838547375465674939312572247417641346792477590064627088878903034748855564199581220547051061585164326659555915079547327640044497646023927233678101430465961859054813786784967544019219091873939643583007941115762633036962857471655334602802542610538859768226791456736962048576098447583560567827017014141614320564948039038004717260722481392515840612564738691044037578828553676320275402949608800080910885251322418022235993604905451232440286192669183624220371433901948404073007117723690235932403462006948555546249647297810356055018861577529699223179859196651032118549765674811017763903532674819255244263321122306424028556032048703265771735439137861313595802410685816611669342809374245900804065029074864208170109342414433660784486281428957435244479128081404935859886196539424419967877699915057669432706403191257471848070810744081741163119810507248948782593622676849000456657718686069098737216821461687385200779890655232194363591920686950378670100394075356016331182835983474330891395701882306635920621859324303476042895217479847728579041861279297839373407340593977630507382020334681978167551447407795444668712229088074408000363697633014201568817262744959418839981264656415260047362715690384077025860386749353784580258468079022069553747253227917212927548712702232616107323570877908431103548128785781656954129593752687502458678785540926675707460802374528061642931473000790715160813389471823756809996264442488299564251150319625037509515982406455116504806302423234420041189222575303500766482557984424946888470752948919093798174436355739449686641180282906435622068930374449893581376627096163156561595146548452581180527988837980203510127978499180310254361331642440633922136837798822387223756219468890077630545182664930734945934416196644959127404119022806770945751068917941829486713705374238743473970050175693953955403053758706368003469703177027435207017729225101859504715681876752693277621896695576488336288186585694231419050682866940236666978104344905136632389228976484125632079344342656076362633097703055976236363279222665497389689426001624840571850617428902733007350922587623642422745708861988629628500778057978718649533358807813652658521933380450988482978093240455746781362553590886059945627935669081458364228029504484637932838050163020289737652013502624297562446847294085798669992684732375072515508042800193568262814685818346993918889838586924331730509287167591684398045803012966034894990721847554956423696805367257058737048332855255391640834111026650788985543746203713945954359956485689753093525185107208418382309991839184505160549999832063853007427618482416006434022910213676748032854978465156826300595734965688918826418841543144701162539784517282971330400379716408471082755735731757741958008269840375461694157953833064584268566077461328064274676527757626495238414359297012323636288726797589774475691544053518503666785428647083043950000140562025166210987569720012921921830026671931737304474799103099229210262903691053920894634803259662607418604594517903411757775885381745363030830396145790626317273930603300826536095708428668805988915197924206130672377046862083112635410979264663029507157459262918098385512130678244134103135686942675391127356292725249313977949333069992512653541928164498186051332884786241405981964799455914693297863185364064495124284755716523970804286619112500514485955372540583101297109553136147201718718792508495685417191885579216398215734439417059653371114755818459417626698585962778450551270919046556585387452367060365764100433532660153991049726345017603690947081570481583412831722219519248606610336175285652465557257643123144806186878657776862633053992942225739605958100277728691628585616628814761234959829464695039580297093628699338486902735934590549648647785913616473855639782932985147427128600178246209625696567090046518676107572982348611713590120053622629292380206917733685601832254253322520717247035849650553247962934234099637590634549993522409870412457194350806369157052884175212010181662047955550779660528148512274731782749952629214422922548046284273488342321701807752948488930343332729688468844800301468796938196180738367787617208342619305469482642762814903896968352390161839545063654092877028396227583297635661573624553444244092657505697922556864408864192451283003440869227843677340033392043953887325560479626541768612988131833847784462057520516766307101481005754675605280883797627780932945950484252684159229172972319666742118908737858884797519653177716966974070482493705760770097167459129059682408653064006172607470313306979324431162794960962432666062688396626786803486500580400763768900303623068924544574375243668527963590576584227353959302351872498158382330905887991830330733341871419611401703633952394935573778830536853762570579224538112485235869615248329218286463063313610298242269244209361703132226948489623784701863850911059404246604024984465401462360962425684465673940223485042427190349918501659366188510615594164156730275698715538403461104041730361429237846800399406243912168742940861932018978949754639247024888785516708604585381345393841833720688261510667109636510634071877100696423976983165844873649346442131416941821060313866143060761398345563407201588871442140269186612762243239109668701070274587014375637506856802297105821104383767473666033464680076532770987398701825711755523223195788513504315860832464985065888513975526214137197567480581795884492420939250051296258913062254912440652233998403658000432300798350884890980659239004668639442640495879535240460770127151705270472638642989910918142664995385754591661910103414997288231066671658649639603405431283181233490288867971338574219945074065458926420041404343214197698833716282701758555421346397755087169494017207281273086130950391499332004787361926893038126716678074838991822744207248031879391458579132052043947480228791031640128854518570091659365624199995901969779643730809950024274916286819337447042754188531535000601645337992783815841503257681212318400730734181486014974682685277670015887443852374014687862535671896344401717712811889917949637291100942928465329743751426995712829702127921612706897732656623370962583235672683864392874145594280625061310340359377573177933189835291759807638460033130457683334430953222001304701439894345933012572737527842382993976630353976954877636609252067454760527917184096165788175129789641708553144117628088937574697116229061323251349225086104591067669409556201167465043239240915586029139044682586293739334189352548738256435899789286883575671426651359308016949537026866381648914848358254639488437904410336504797042957240230434493206682780010886477644561943729873825391869838870863739560505182735196296804061144159774557230535783967651916932937438072100856697346318938428021505304718267664723825690567475692967772740965866024798571400509679516781109687116160497573161341497590091275738879256414940991798619746809465400122168335113007944198533456291934086446586772711620649179100078783304062607872598788290589946930752466546941457440842096491244234545847741884190665328963213439057616374871972188689735893734932712843896182318106137902794547079668924173892120786569538453791560834017789331554036082288315529997562340953597152244369070978669639287898174227993528779353860318659502702497934220827182994147036461832896981870569412841705205518800554078320303379881624228889242582691821697583819417717895351416967142147484801128905971373253586922899573760419088187635842801828948330708365172558241449546742545179907375233100241411697401594727236668817979312928359477446712875474684393443847443608277588375486749213040722105364770276839964720579310367425287609043470772430340240787857793976108279630044731233998061828059610304361588624609215877115343936596048151240330559478544241084432109413520841699321490646066026996479993069298096994378014652771953697675463620624087735429320216983571148944537039805461729102981941001112337179186227692126354479690929024779207801426946840263831592901755879797488284996587220769384267498352628244691125021108106724672652861711735710616554213493789266196160835107129780173429724640447309656673366225695614788051112684782186346908681304633492463909001234608555259387593581466255623670758686743445194849573093824698157977206873088170407716250818510598073118996159734339578497159407975330167411545854093225747863473834409097457271505207890301530973459444310448437423961999910042237035397017040391462419885099248403248543145454106523891347164620510795307405434369202249210928966215181991489616935014498692421981183869332586763624196728156803602342926337111147252720355572019332815932732933785040587912046969077454452453821235513843589535264574664302243273148489277125127889798692546326175515948153397131393653457627133799033080995604311430775642505873029599935951559789619843798198702014943738936619163781898447093719716200683731183221368288511213557239784796855302547950953152683248732905640177173934741891272594960538452307645611718842582746616737138911585255013267795628377009168057063149898872141561790937490652094587018300714931950916079827015685159725092411683664561784543693247897359843052973105896235289077223010832552269954307908729362986750285511225789686595505951218006558580001816111075903193467755363921309213914921379120872399502828321371724777723406277222095321488022394853714389994368673003795170608781304392235844711075544906991650741423257297465645373719012051753952636634550021576206550575776153390028652437932018316922996133314556353297146400720550443048386221565235058859222437216300002793633714881098225077441195735670506820755928468136381418727338913477593021156895120855328524031280777421295595469440861458750600971325022828301767621468225220513056204097359779733576277988591746091706853270291820703506348099835932882671213340898989701889639524212154815858782077749559074880367995998398310366454682537598499575653289087163487547969315726045628940517212479443040163008549818477353561097349931018974399667194010324933075684725957828170212450201013476464991954812886892950605473781870276678523935095017993050334460676291091602755449710271149997697878453953963680301645081382076751761924055439949847391248031346655698181917250075087085793810933905220335046573287124837391781853687243867021555659559490948107471023342980939950376924342051880178184052610162598632152191998545431820090595793237054601383910441597648091201123640043302059664037029266083737589658132601379974368566151566568950962067742524036165582760606306068787975575496115100332308934802600791595013285375786996815780661537154395793169034299714590898689459768564827145438414412483586020371263505081233495987987387264811058105252636698747171654399130240630703261998749478206183403616593408744484161035351795080666845037788767191548328937542280033311526388617453811057315232554625673639384513685416091011920011930282632345943635220095105427590483559799758079554839961074975725897131424520281842980372900196894589288024147581364032727358101106504620974354456264577839276375677956206053256859031696729558481687725403219544637345145095662175181660287302761536300609041909878295214084583108207836876854330628802342344584202284821025969174568426090847923354438764069902977810711030696251029916429850075313388385041591769904859771672152429263232165117338422029274840226626527170374500210089177467059912369306008591360428005218210658220276623256002311330923972588907253290502286315358915735690346271697047066256527470160118067221949962662615815576048147304576510942130514439486015894567217724492128778738531963234736600836120092821789427420229979809120613905822788493697738512740857632707011781455512009144628038638925090980481889229139499116672071541779688539324858729512002904177320968546151684993350375139433797498012806741751718480299037350130742427486181723932612557303415981757605857572465959299816643711761438493063709773044727666684440656141768786300152325273216067059804308710553997568225233831221811530860915159960499344884485361490249935446830941409295719169132042973395394504733242524427487012241810185395929128269289377664504589025156684693789181530110630147576659420477537812206874005775537564943947359160565563945766922054452089104921590721480009973821154740354444111075013204267078742494714157440202998082827626863488980325598784305887311344280808909921125667183145798120364528321887741274348356439992111648694870506350023219237058025872838348337998974487445253012544588173738581040095851194675300372647642026067308490115673993425097529168417760373264120301806869428346129786513869107445840079662107967299464121150063686241541462585186469956429766145404146191418636303712802996838341448209822814254934039418529510417043132129948029391700344938007181449391991475859531034203854756111791158633683341020425174150242336820552627052261832461914441075747004825662403633331434696650916602568715301672215629485937161546490509095460442501141703984170119599534603403289618802426928845858714441083802782508920564308450492746645393134619627830747551875057603180608944220513066482186588181317764066770849177027762971293856975503940712856082614228849756278096688039454730792817340972176466702554679804735425330187893668260097516372462569540440417556633118212710677048038928568473666182372143490263338589135624658809821545306436833944700660952767687629294122842188480307206867011184172456060651858160132980103607565796768787503901566726787167382477685888370168094068225098944997180413077853805795794027801125519769773779094448111237372597374682650465758118033429842742187691883877725297732575786835112238039767111345446468006563179473762225656058997376316079524194467732753953275879189576992406992889370643324183170891430892521151858741646594643288847364559741103612762551655183896454876867632451963333513890061831861395465346679516356857743072385902771365701851553391937408934032722029364646721230571680070207349407554184183077530635190221441938412112581067421901070819299853320027628630006357523316267760611292781537227403259803038871138971653232155410377831847516237590826870440442350657807611668308459749903858981246645013285573886200127148925539651500910752899881579704063773007808666282266262047456908118379373229150041539719824481973548291995799329667509946395171454366744852282010012313410713373397515225600801060251054442944217004055762628899318983834355400161373299141811314386178595199486957444011455566123082091059211300597186938492840870165140397648805492046561163420188283714666361993549268462570833014354937706020683594084933889447882925356315337798560418238616397508486704616129765705793050057632154022279779240191586802570653516242186775631744214554151745684332572093524247971064157732069672960989415386727439561593238369158558641622928726969719752345734718159099912585295800681368555749549616863204677437059064280179639530160428338118607482600132026011769173811542622497534785090558875687298442845417429430666136360345017180507885382933608603278125824000914848840767333708380184563580007946910962142373803788739094795461092219650355083921586112050106943553676731505600710639946384561184317526638330393664580129416284771901844771167477322958475660853895131278508987467949496962298784795070347423311005693357334548036319681269989270362162096571837519603554051062946214059902127083883927093312086505910393310935781784906000463213948936904711380587598366475279744420062096520806046974834167664378585474151088870381570011657193480616569152958366721060972308174205256288418379779018072033757155471783395517780519729150797070069572975210210214520483213089087709354426803467452038454143012650643155873169093161560056513957320946862559163895187124193152900765621727832466724522972247307284149056023340816344514737146325329627150268128961589689676277466546931544467721851015171414678021843911482345046395070223853021332884390329759700821631292370093356164104106906262978864378247055673765910936613132541453802871871996783644508317470699264770923201296082452817517880503278982752257048903723135533812767747920531014697287924445823244375557499162040121163861282537647145523161451763926746591834389690506349838740765026537006361403223632651521171534041453586766114430035911650365273907144048142551528874588159876823280107942606050624307866727360121085439110033254758330225613240333668620581278884410888848628397385456999522710103731609084449322708022491246675366494061879433601346747832736597378107880733705583006652849197059714824397210642697854917393989937722034129338113554742868307485384477716514316160535167256100914852965115237562640316806068073984999939253854099687633576324772191972509753533451268068188759486547582664480033868889476583782301988550802887421388288450132364419738592886267259853326838009623514804917974318890828759313159962029534696663169334128447094472669203791252911478846872025489885603372899433599887795336228026647913807734461023111345836225409409270654263818098282457349195338598402574392516665173640304515009179644450933347615584411199663763691627499208869560543060397491426836401016165642799676802742261309408376593499089771400133043038160426663693997597263776920951965995982382496923528475591264227332490463484105618515067635238683353444753638701571859317138895856411269455273057845891162256846545728992351161249189814074125662189374179460937497240623906235039442686803004176232025912641062731136978311877516795623353130586597413571033989003071411378832374922604088623449758956500459640787808411767137293732236534023922837669781773824680092678069904944945003200210483923990426070383833441236809393362066414886273281124393269778111653690405874845643376677161454177870819019261764524426906072379643203632640609614355715018263428887616223833179722317628398134538962179500884739731966080299891613514083790257493499669609553518770174085107724058068379676874002398073113256042671111486971776940972141746977839878898053517555170316672880702775992268687974228340571791028358241140005514831559074569522721169049203448553076253140670653378133971495098652393212223404837242217061556291240805339955539716435337040211348042528787913239422030912054180047983260253741312901200977224218148013489800009617697681081216581668024068388676721053038754385922858825875461879965389775175988175623270307384019579366192879865973954083361790572839076925557339695092698340629409532690601196523796801809794508391865139785860179432335478842718301996865558656441500035969749588693875411195035383105751716236117498906597960956853408490554772430794632034177814926249061969982605908343941090622822697187991577875683617756577367859050540628492360174784629718463303019763608915578836412657966607558925776288944352158349993066746329475803086553329993635702824184269752677297083487708969187004723370102349847603237814063192916917562545178041670575338152007139978076264262691674668165773221009101443349411827498943631384946774195906542097128974165350299017643379481420109911325926689796699753044409232898082109899598117705190032862545771803261053604330187568258572429521790723810644152324445853422908891518570624716845780464558771104342544977589317592567522479028245562275068175617976204714792711985132042223582124153997357474074510989639205776489770938113219143008167184883820681779659310640243793640363041257636833834303716767156376700376351405311989514288944035729485480012089387866971714758556232740672996285793962033549765838204159629026986359977912330026574358495472892594929012492488487119048005754489936601362057075887336360510050802976323483296628701533380070941794186332345397478055704517536472864842559371545019461812899239753400681215670079730999674237808686720394984883673230603459819928904999776278419997189093822809016883203126510230796219638020669487433741925948547334732591225379818498359479547453270432867710676020511232636264897628276081857331736840952535245521353660924490880844013476673469633273049061181297137792068932176956722585370988744153245553599537362728062318405240055748973779169851609629841638338186274206591540649313993614180523221853228147135388859638541104089209732949080362192861056381426856250496193873720107133946124715642119355493794855815191494937170155129577967364477747129797107401794048014163024283630014894117650420682885917026055467713934973356861124202002588167961011582587786190713436973210848576687445444683897531835451925428272944559242377036239149031655145835041780879994901084414879976088571373130804860030083670345981099103896419164563291452009884785857526632904331964647677445929641424228070495724780201481416978786908528609864785914535627330449999026264266185499693982218794832202643172887429453834686060974475990130214998560278432716119662292824147860616224031319917577711308957640448580597563245294622530217940611852405018558991744981164578953721381129069612166610182308758367457194103809433478944893813077717826987318647307337418789628140209716587567150419371005267959832326798874026360845536796989988124847871473464808158501562139993064931065874561036434736324725442967001961180851108611473954650331661386435887251605948447846225467185522655383410836034706781927262796948311365682260313533901627635688026723145687021472405686930963089630689182944775307307340009416205645745890955048274476838036522953124154078727742286817113841326870214444167997735393812517899280862014534266423945591079001291888079818358946097413887705409654732139661782386404595879158746836616996701629921979476788857778308853153096337865284437384112305179034895743786072079207558835948328218239526125018204536146642997943349910287839059122174722619305068983336179242302483045889098574437404605296372803129817102345685932093725306443867548686707689833406634067991006303282867872073402774560558570811336808989772668786611652008065560467800658524057211237080672110728903754381894333131337538315071132370892116678479682818358400827458061852788334561276440228102539058454311391324965817367870916454086276731732442185296739843443280527892621658122732224206187101395842406050615675558544753750146752000767660445849840499347340890629906968269852021199017507513564195284870585635550784607036028749143347519901481925634882772464787594982153399877827301980189619024653712964041492426670955403582169131722172009561080638801808174159006834213294432582219951691344141271530418795330533385618553585102265427964676011266383471251166195927638077561572565286717377506767082560685795080603348780889198649286199199113551420889924395968065383316866447774996185792732881592686549753721630923746158868263361920130565776698269859086749652536856328128630708703800854378139915637865080666199247310107458983404180448367462213489108018857411113764624718678987347095848044269033387789498479212653402933601835721970228077139282191926212779294805380066206119018632268084323409029639480616927623703057315999746848509926351806834898815049579074859685255028073902674582234300000568601449342455271105340133139134767172375539516493286443018857574109518336553069575242622829605780187198999667088404879621395684021583968288418381145217137506368630586452568559708519220316774196616525710683555208944789920412967023687397472450049158245386763789407396469788734840187800360651536629728866974622160805599077957859303363265526082228055334834793103732561752187518374098346359520269885177511474434350109655393486942634923207717650509092922416611917693267828476063190113829622361986031458562807949463074077557331053137358516817573203545364882685493844099762539598952898064443293841824117534381045225160976880808266687310115052791310466881018270811075141330019432354714575743959241209584682777179155158709873909652003791779790111281560384338422790690489964804913682928932699274389437658680478188223597227563532658078990335929480339054054414650895527734241852297001530367083634958464871702202198282077909238168608824427787653600561582465529132110626360096786654878067682484347332534135250704772938099478587156056308933434791284030928595818865049228493600247655219699163577397963150728782222881720868794637097068425367375359738607488496872208557496604015281376948888554358991450573500359355209069930253036196646123178482913363749464341709101750800751470407079779784694957529291545440738025873025883734432937198626773166584394563548365891465579303772777909543896999778971736207253020870754132392361665649608791699573511603101035596068431819695159181126669569517555561034664645436008644724770837055703752259608952364527259715068712744062766176648728511121483305659846614672502262022602193260188902849281920996435646617569821990454608983907055092079567465247273121577726407322490857867625124680327872658599511497172754861663174122135127389417962612642156988360559646807399008531488124519851427722793154320272223692584226837750047745923794762906409048951883341001271672661665973495226339417000963142002574635791938222528628858081792710174033470555672042447321112570573033928478090412291559246932140703704324514098494933897283711494921048653226339225177262401917852086431516756764028625830351995136631870038114057305970954831819465052465856826881056211322378572379759009625052342077433394279072634848876622604180477076819269798894664032261093365214988997026060190237254306579734901167842581882780790923299960819563028570494793701309123669791026183881887139675601722173283518262267511740539578080754111796660465800135234595583909060760696445681919741717311696778474728042540712813558016532694314736334238118549481841983230038928401928303036527322960115238962651659361058123789387824025771464037633400254672818753472763734531256270428710774912576442080799439545770310440631358533978097242856342386673716012624188689261824606624812882065427771110806699163013351955014735910470990836418786846710818588408249967612744867413769739039194393955902632204521302140089467118780281337707049075355050988881088742705601559196160708164822371725527624478347028236704069911243191159595333741048139495359809307263769697605113150787370210591524098464422935980484449641105202724795182996536036700085678484026752909148941015706698946620567984074053838460315231289722157705802578763979587187363640342617611644365250387265478426540487544867588481157030342662229770048767825974329444529425029419211724503582678421523350147649097081554969893822548334612109877677646774970410766567738751177860740690791521593930605206348854345609679851386877338764563873533787985468999629281733260289007694474447359006954490336759976977827955085722649673969398093040907110642724799665782952457566425712384916876985199726464182832484792697986547061776663309198544737838115497988860628149745128661067568499199200848861873556384311434813578854377916189657440816571237222056182374635438300888224767313854394883473623418692738119849607721554240884619696159674987882532933419784755738244684008088720485268804388572758152936531041442728339116062473199124978417926640495794273665003547573097785632440253725835489982298112916556775093074142656462716917452106566739034435259560876198726443345803955962978480766478782345543463755476648473800903382857658620732505668484327124531179279776132364319541874739936064209033712598329019751285312035929251810858307190614528074577020610629254454532880916546853407438223657850723304880938200043738950733536464013629444862959697955116600974976775100749125660116697743583626553381979131127225702107685613651420626095119233047616196628762394688290625296318068409598476789745574713358508751707332997131199698269950488178510485930274563805107015535603186544661401177976639850755960848284566960746114245616991214536829831018846367576450072201308956816737311662679554989870212919026555476381065944168788616378428199555701044729136590006749335321318751403267664199219728123639205123962268382907538315934599817145543891418430977454812455856425911842560495141694627316400612139130364760804760819697155605417337454853080310529327550140995432713359211428703704432473139805604138942466198998273984485173484605670448818667035780734371094862302518582247268863505106666938154397164979182585820078782738034677978357483606610472254448907461063217325069117010268102303244058243855827914682598278851825705429108059501281086316496610863493505469756110405715390489405496798528210342236361173163232628539612767435674200602726215274091516494493712420890746649783793219337095031359590850426794718952918927657416883305976124278641057500757517275753917987179987519989038766813632699274193006944929856574936930184665817739077015994616074945732978193383247497935281024155370805277361141597966780754673458954441212495893967908527697838725595708634137433825997995898849472564190707167705602554410201143172852426052613176355415728610754465420981678408455441749559197389785057238667905446084614810840415543494908220337188660830691876551373161040666566471915394790765984139247562006371612108215780525528163883018563191019871691972018781963916335407541770851417764794572083991720886232479564572223498269332792561644513376165291718931939443318664169968644843650490148887420957972972334525693698917975489944279098524574106413513210074301710744407571726898445617575423309068841670760904074289430024873807015945397504779888130451993034074711070239728994957349524093127289125959514701930340543034812643418334466287407355740263685270905048763145582629929288999263642995876606262431363583189499895485931458334393964415314723932344104971955813669291505552095316034119936375520802141128151563619503574040167806514089718140217969339705377249207881957479337641877313391029380528580689678270753828017023566223869872602925921532171012587675202446983795129118766077574348565205345864565795776199850357518469543690098028575221941625473049628591683085078375516630279925948795600265188457757827844525938274726478281088139207488233002939078278613454272160561487887062811088655751103643635598644020615608610942556843839847336292684434706018734747382152131295138804806915792418853626394882629245168658734569720772453565560295850929798974749959063575928232898590667158194310873830464709015970050287168204328483296759357625589193139280140885140036431647719361003617323705928532904419078261608622645978017508857746957869935301458048737547218817030481095333895259570877997821938365287131634716026973144536940917236170716326168286866195272371178541131806370552185939986562080299071392955060984753898219192371509421981672897159214141987084816377662087327085393076837355440955350550658255445294961878080066447156247965785907229149379363601334888304999513397077891831506770271881720949047082350644365179339999753601811199773824661161083765473415907315124492985050573244816751336164461016176143916546777205128549028413145111291661676350485138999979113849493079487358982668788002662985926350212720933637414892796353585333242395952201649244828883828011774933533111406254981417859615613225166587839763737731278613172195183922435353623650824238920506220973597843468677505011063406291992888081726008335516081732593659178225866120010212661133515673072987329663609122763762839831427932436402628305583445537171909934583967882164720638700057839498015922776884957567191515963053101824320710679705161617617506142965600275685508175148616966748541015365562420198216518326112135244488968195389602347618853572905311911268204595466121830270196919574551770349885014238136939068217158761123967372471422558128716669887852154292304108513503342377343664569415804951358683178358207258452340686552260216242288509653126179625937131836428240332573411995903389344793444982706077282610820029944299081943814264419075007759314802771824669037705054574090783248628770344493878536307066622731927975035939381593149300164541663867259771737912502309354602357910246078419393120755450178393219718335097014191678165285537367551904730094034391925213336260441440473168124306416296080648787514250670933231161109946011821693688595840946447046410082649384401718508466084383600717511393493919519843697082434578743423947584936745059753222754412336415755210778222761591396104196274640214696007379224723950300538636732169278391587076621126113598055947789491508256518732263974411626257682800787025696541808378247225684021748952175839983455442857316749229708493824421351493004709581309443326468127879658949211927145662833336638273912909680560033260174178044206574213572930011143347442145152522049629850048679914547249432896665572616705990791826884855382294486461723519613472010863244620824397962066654708265346534745877617858929136382871743605294158188568989743354073605156983868686682443416877963495687731246411772556444980593772382550571863190113591704929755521682903964298584026669577088197251843491112201434022864166862716743274862991890508419320105197629695356177336975853310204774703245706934448117379784838176178880976825726230639932471390738639173833445441514814171443317837958286880698373998535974081120569460081867538719784599753944508729066492477219894213950450025116081279656496469978469846116034265432910634387131426927595614189458793534943976520609279039591565527394045108886255625427767322776534780057490849255074828901679549468851506479859331004265905790014041662502983562093993137106706286790598407200865790615522499887625243379926199410835827205249719923702355530948163090453938578121092973288289936298706202011930712891232454367832941711323800157374979797919023469039091819347902400680552044018069469106395676056673003803889648285482422961104208400382448408145880874229146132825789974403854399623092986304147967627755057569286934438980686688158566674775512324958640696185569754115778038598407775609895651000153648618655962003631268500883528291385618118103880376034789715948228413756126968289002070415408453767934390223521618743161950980879925726253420547533099214210202718514583039115944848987650460447021341477426382433714606778075763277517306941268290788526798883835233052726256815955587606225724709880490366241681695047430767787295077650962918132406411997700553253269440523126284077244652721967773116605417835693428769186388083342115575326303582081617585662127744634077032738953812112623917047575632658783141563678837559393450215293106450585758662108123308362472878968241182229687555636607361239160679304981543334063077949608629537312405232767164203688728777654156813315296565240458167681196607648001783814461687023134087280687209243047205941341572473672128881455069353608788895994913040727590482934229126809395087976987044719380638903141119275168845190428793726342761183372542992653394696403121483894836845785194060336731897515042180616005259589205911195048743126643344465149344103202521745038791706875487963327201582754203832219236166103092378372622376993560580630186600127097389012028948860575256301332816498041427984270618621050586987754176248709593223273005431405767837339157074555127668399350815852122466494438461220428465558518244315079986114182662426957624469080757972586400542864260173934889666008333213170499195637807203261265901860559296695413977754126832674885637571753191277892496698659789598081600578646426312169718588042176980261412339804172395267853361198902502339272285990269405396659866369446805313205150440527513101125617972023505863473663205209249179665989613334029054941363509588465990694165483027816757476455014968195272805469040329131971263028807432453938711070171561462583102917254176664480469375315605142501556348409579546919906382063369392282167999470921461697953100439472388478213095911497149566499877445210239971016337251651153540860389769352530981549043609922942123045416889552169089374673184116808273597869652544662918521176522141653206242098323014543738388796688515704384521074622675480593437731640338530151292405923299996661486660495944338565433337909382152490797554452553054548385668378474015285249330869300487241271497662162538732006606698187750464564054199046580126872465739674358804627895730083318602118162689956725693087927254102903196890605074441225079723372204417433694072582487200122953755088500395567762754119050292480960481332749585758428997471291516053379777082804981321252137019208275618493468969088229181125949202648383026235528144680760174370163727604944767238423625830910446845257695558992935340098012799311605647668489173419542802701891005907894559976612756889358819557306297161689133555057234142918402653542607041916521330735188353920262263615396879380339345637853752323377388362803074571094048089852605798705466415314632343003348730716819552445061244410784298898100073598885778143964518063916497921740348386816663409946665319016250844807483447441267834056285957569782304188581617013548113871138164417749194342614252720244324159151870586460783503726850014727201220436885711377213717548766773444950881108609474012877759153365831876253462131866530777115446732304032070212801793565271767784951226509740169040825280191397487738128838554054487988310307199896083846032700308745149611139715923565684075096926876600111726809288822223308480237271511328238956745492881366322383179152294492950792214160183678525118187401145150445063409850842467922652710051159248033489648553090602712675933604447541596267575288288456380565262199082039195990489996472501919857415531205701072932292543711776818621217960161969359103053897393510627560672963983281809722539842091979830454519845423471433765362437496998995407584318469018646535898497230918120738856488923771313398396931732501339649185240104640651600778880357684949654090563419362822269213456678564248678486985919195056400316270791324457734326690695685853239547657647765410706277354943082590827926816825637752103122073792518541262762862344171931381847581098589294431946783067942394399057241870252090687177713852767970044818145846701882598969703773648170201737853856846098075677050898300648450051084393703888899479901671568172638643261971595311775146386231928294138005858518483847047083077310699920387921829029348332581853987987018354105520318158860831869457358682140778374043214751512709136406706702152343328706834814201396023581722841052267192401457088517450573958532109231821493051097746497085562133712559841110794186527714763586852381152858867729375743439673220444696473989230227700995858288436911718694696364619453355675470636690713884625016540974911070848094014838829373903671845889320158831265520686567170686490550122493835967943800334731365839182062047457973626816775860545045026461590965104549004048279853844359319971934070324927450736547398499198252947022177794113100931711528439288911434904633942099449796424524973953334499102021778466252624535460786707764110476332962838593950018039875642881020577633996534285360570623881991914017144712309879676509859946425704292595144370286245296819398123561660790116471431965856437750526513114535912692811051121622048030357383489481449587877014132163077844490663656141084348249490019099040759669090460052964907550119554340841043789951610623175403074244730481330012410811050102792633509054305322662249518097019253938237016627566860788606302235793931405753358427547804328224214231572527643704780963395107324027980388874086097756216449069807288955108737985490885008510657842068159026679850101837491813425683980656894788506534362077361340323535299168546692448409773011563447590331915477938085055108826115700874513209857031913812307359930603027957036781051726247107825129968566074358937478396129084495610001986252476497090034339168060162196918749148628314929690640104392566910509516436765956583344816900821962912844410158044499917359877093334027526808866168163595680336595269246630257881051632882892577998976635344353554645496603129611145144022247091133419984493392383367559515563794359697478123446403511056566470908553875077103941638253485678411764159812401323737878609535843997022854122599249318212552585517827397229894115674234091793261294880631577301300686571154342826019386182571703439421105207903714933418947493279172178590984407566679565343254197320299508144553457258761256599125412116928812576903946091769830177969256398546382448543220154344075929039262881367120684370452382267410979640064355423711268805350797647581098231176277327784033170999004890430199836228750095407895943586867244566141416210224657865146582185471829790261787696323431758053550710505369659762845818844600800593787367594196920363468841403575945009780629878707602828926599834651489089127902325055328434589877755788058850493050859189117835417713910989259275926686360056345822264044006078063572662996904911457438245439216501258527624018805075512694422261527937335823312594582854219800081336690853773219351605099916469412231781231262464360747391103853842213558925347292145781025865826156543062435621161820564071383176879892020542835662613047155675428509947869807840126725193849467495773614279466764673821626420765045894570429382364713664142155464117716378481453448861897219247886060180814401743821219229614066037380530000537062765271421981589177380898474929132344018528185036889831770031345076524893470088730528350396219265720785412860173296429386647216899322216988542564120961904097819880029456097755856824234263858776539231874152682845908332434789984351260996576407394286435580132060557887685124178628752914066154432757991612326579611496254654465835988088523460786623555357923221401533216846995281320158970086204229525980343889581784069914558374147422093285187544843803355895387375597692517775836198701839356701056779172997978913827717986024618733478389118607906069406579402502534054039683443891899856344468730613923077294121397487449529483146711319438559504880038510015737886418341877419144534853083011658315131118661487592255838607257951876613922733961702280770973983364222024411432173920510520168612343384700567593018467493705173732792908152989290170954580413762839132057071332940739448393347895311473501817448488281488611990342483765790111222730505236004465349198024119206437043327221583013076962356395707117727900787370635573044487060069758544354496079444281086637739433518445844251154478542751578945793007240505837490131010324752094097956666726382323677920100348703382051552564227050176359538206394245928692210039506476632387579251423734144218785274671571143995588386179443841969734711581625775815752657054870924705527051426871977196395005233480977171825284016579305154288654557193847303248240398573892867334620886425275729744396700672660790843664494163019164953222765679488055558492818062579056613242066846737556582919056470515548322081283000917065310695271768574145959283995992778241430871236300442227204784749937441223643124394794306138219144667576316525005049919492527015777334346025721492951877424249401563138394036538308040676468122673808520464782322224405412392086513340774451750302893425819815739402826131238940441536891081691475093281607369124699619352158063253687556002109652597189673161902897784339099199872368375837149907705290180177539862499386174170872141881333033203871290306156418093115296633695922267216749889550842996230904849603534550745275845384272335139962868838478486735631454027077313929001190760541753713220805273776535665147164715456451770656475896649744976312159069253448106358339168221867674351225651047788954586017515414194510276369166811231809893809482894934765290455645066179533124161971286496619711439056909036756639156728088072181158787255020916207175666222402982049748373452204514402733192286173596469575224224078394738726136216075232107409940176605712946459769445844151487149279723437697798317816543480287073259066718643161026527628056167356596498387150685702315359794665008386130423856487657251553646500153348405992000981336133516195894545588935951111708070196507516731140359792322950576922595523129659041232701166758956449274884511350040267159714513476733252824179331719346047102727343200496297055341265209206442429813694790185337985983177657771259806133664997793910792549975476985259128493598500009287354730487805461698892328758630171319689583303549002467011968363620287375454453503123513926034997353272203380476402677170280895743584671260927509553540006201377665771695777327950212384625319840988214762554278330928755429407176804120142539034699497764274693995852582214053129972850492986450158909055559005106740228203381039157269461413774471067123084834381615672768761015526150912591561051052979014795776872548478815228042442238514835533223775698785137055872292388572909379283934299416646144383396955278618385028156728109856431247338134437451089729811127066958120395484752384609207977420383176303184964304818346606497687901631656337805084149313281523598408771293149172236061910986199529043399102826420036334800206736077217829278481159749079560631324112325035215994582992712440390102257293019041069402736148996627348557389642567593824717187055983467959616812608880518087652034694298701155914908426802378845388950867396523994398896178926878926710967968483879984332423602616868548056262706698715105678843768304314757839443822973164525706299817301076382383464793818514932276341699322555165451387932076602572657623482909553440744924291028694925502067021257689772283229623403568776754237641456929158882432471000223571564044504833619363943208509242834640246771354114870849118692638546497775882774664175293891237399593955931703568134160342839635031545656796109915723165702445061527691494129071261833809449827855074472036647922943386092711868393875460258860013382479276982138619156586264584256395215998820093691764780035396360932428871294917240433431186395371799929037431065704878643503293838190205223219210618568065132070566969626220962106858519909386337181918311522491069368131525294441425899899928711995260090031795069389940383142398822303234579880699305189575247280061791430577051661296657006102549782899066865952483319093481234002709716313165762667474812026154583854398761290389731482504768152488012557019224185731989479880074830232830610488916058421181374095101226249887252310233290341575933681485400643512274138032681394753720060949884396959367078756528977410313066070071090187515114413438369627295862214790294865525436430247395892925294858872653795940171330821702082674566994223029341919381171535086941029573920626865593592361317542212734752363246860946521254803406347026739140142815425742635660949113699365940220815314679596150211279304367603242516467080550126745467986621201122497575335421439566586274745319780961106939040183823056237315202964793001605466234308577425624072836857233842599197794704591057515572682523182662029277936365413923003650364826996250466660234759323008638698688222051333278473596391392548178642415900974206741025479783164120257023024641332559567036671401300232448103431131388670718101414900464606560672155969303199965574382271513865910364513928829488387783770055989529441244454863383616220420974778011744785845679901559811215872826241495162228680397909766974189199967411160039928382334066324982388381027797879422521353420571063386655556884912040896550321737431180119267923559017369123877756692870154451166206602373067838649714539211114936861170724038503274657075224083156051467238117470413427778208008452853493452642999250148980603810804705955666461441221211202032601005065533156636956371859830909820230006273298073411184407998043609509690204788068121111586497374654344510648976391007449061240397627750798296732119382378204307799405786400290463987724453755185522851556931957747684310538645017838314844587352071067944516743541228403351290513174922267162162494210615676857047058715486074361363229485119757123766346373018522258376546382427261216242788398602313412195148711797071127395007793305593725026321299484324269530291126576270245151817637684207747785775151110733022586019247317581635205217257303706392604769749477189447282815803340347435223652973029058112289870647096869086132252787459033579692975223107209638352838427084342383764398173756218557420471817891847563132491698534081308302554880165071437101426948587281684534539092178320039957264660555223956632479648485088827306343126776506579993948311418034547031183266408355426310698504927025141021832515774139223788269389642128332907451385892263412095963380521075203007478792485119177556323188537012512955369128189633605056080895816272179776331101196921326738207419392395799175988614626096964591742567239699969489678500991985620467552242170430564529009899467927754853350165352938824819022114098270229516324772668063868573830053068821351143592316753415356746699902079548807660379111764778227347456221740357873982674029348181144921231971315350160385424602493196452553140449442417397162439094554472543877103285090573647841775125269709026858867018118749575755898795626653502051443964866169820959935174053936358820393414138368667506984806005630501083149843461346780394485040186013120782080326896934855166765848847319279282489400597570794509523942383000811791056972610431170723799099917485610103138965375432893696509703869089696157102104986449250990272209797591846841137419985532007643345784023205288336609498077207842945779014893989832614569678421844523637451092469469691699137886869809517577607079420780214411070736494599690919063221978275330761464995168395140477926898710906712266532152755753023708616824195301885656998880762501176599325683365421674212595637814842409541538615911443163130814823907233526195757935475023925014486656097831805682964979961267723946439690669514390722435280367686727277029794423695189723891075375064911267048665518559976249480792545389545440724464646001726932719343760751437661995927368897847307233692541678591541757507433082830508693867773154743982984490660204199334062126952466730638737919088733285196942170653046590534689579864258168715651325876577250842719280563757317079312750531788796749960556957636033493062351944269568378857425793964955787845764829978800221978005231560520753201399687940622119516685449024611151650279842904029193745921558299907629784296408660015610668935506446222389383047238577576014598418994641707066677791224620970412952067597405191511816265113188320129484319265179298854460340442230420810567559401152637750568676083071201720437057641735895105383777638452386832480194858267759854381836148427351560154746029573245934341012295186272063570671798907175818571014686083428367294083413258450013983464932991033012133056708088993708711909554672701838948713904063643085789546413633305989851000469423298917432710057355736363606272388416263618859818888360743405739162968921752392724863885850743566881242727219849678231029852064461381515352211619687402278594265860176011928443491465413289212934213731960278562706184930445133411820577827305166169629780738497652349358895547417846975497652139216584536466350441536945233496560758533582249494398200677025092373511057013935738315565046878916121587657721359190762836562662363025669324012931520767221005123847842503279784636503567004105325798887228098601538672442629667859191746678117945932629055883510278497661285390943202284047201375541434511574647680396679223258930920440899769491468971783592726143821239388509834903339897361243951484629539665443557928494378653024693427011218966780383361260133954334801745780064257961490740473721804293399484100076130611505272772762600770426710249943015730018460894018495717151326932332674652387877987376036293293649704312876376512715603624148220054254427769893616291881056326090819038796297355378287621717160260750635648863084065250513011296463461415321172892838582167242203381407454944601666335802094509956637762632542059778064656507195667766049174241102835121359930501043327164857599553721500030400917864289912401016675495089723221161141224129370194617948189583220004253208978033545148277623856088536713120249125965416076681923852448553515669384222633460106478387797924287708183344196312267664645714480518086895762228717867686752899992684910618934530529145244343046000877721188896279496912435060833815049546619667745215764841662574948817125044031015245098532646523035002037563160129106595683064991244030602216982317925115141282764875825770368956103343060502615886767635962674903104636364000993057677246088704690220342254293345518433783586491207323152968318612472678756998411908201029071922545473252768399276310118591378655827288753092982454046435737968246576073616600727510606783619687588030382129190681824153830387374998404720373902329264143740236731529495431840277968355586430056804647897744629962298699413640467219451619115878555713895831440930601231617250239913957936251392214401270292428992271145261565900230212135643937931530174402245657786342726479903080442340822461406448538044048602591889623087082416448440857990326401948688825298025977751419504705107763076749199709949440761950720502251678092717718062733617296721217654958180434610022422720912819650037498398816835225861252154944688735470294228914679980048412024563787882150931637344365477680175386479586559991831370792975463519292503373503383332901127985300045019043079968270088461903507605306368022107687577038222668226267617347512908361250127022289666082609021562555079467998561588886959567425267777258432758910338089005763099171660965781443011386141738852513206152194528929386923462293484281906017817208663046161180858983433189930936108553284989435987074394105761084689594123159833262394952806358781497979962997001081268875485230239194022554546244516195976146641182018135011147856510378820981911410238270984963452058138525486790964813214580194505969477873330888961606153752347522956187481985723272322984093497355639204051670698450861442152255009311758905013711264719769025636933225923571293842592586978600356071126659838417061280845432328633099676331838364117542940369974041320762309188684991655112671768134091752764574246503835623949722018922479619925657357236144356187392751470159658146172461242177263411115787347490357670016893437624733657474724755057656322087740641753394932356687401674419864964904195780404469503837361970535784225814638381543037605036671661894265392583598336629673405600725051435686454473905618926845764524557420634594536913386711002735480823086288163443466812811661717592936777821063935001967219492878992055655099126317924141823672979679717678291053773724426135904100862783012869728688169860355205156139820269592987122500430534522659410627680466977836034957591228586171569362999594626914005628650493141111319098726176983310949188833974152022662752748454548747677130510417428332534364925480047122315089893303414495378245516950521402954453387714108092762651319063669663369601041798809193361977006190715914879226283687795311331169968882731033905495125879291795838346336552181733621963969561475459748787220329083016946209882150618012729606083541206928714372986279281938093413980336478290789233573749551480468068130055594972628554693662945781404716973510508293146268025529763068115806151123632648432433706100246891447912017773696553209013845343650656912027374473367588054381202536171028831976756513984514417307488487658605897094547093392242194728550343927344143675530407322642756158100248338172657023889648778205629541779843794026340160943815252817035949205339419294478616701797352455340717559972298112057873631270731986314018935384905447354794158257065238003328027738035988198518903239638460457516268638405052974034084302558195993062356003226819808056544320549373586647136120998720961478341643977200762352516543549671152687388729390407203758129847682062206227040382012113003162823700495995580715522951941392499231453652849818088802786008306183425273302321907967927282739867013142097717934271199775327242270929238490599172756760470866987579400445452112995700672658678106698642323404186899846330085200527756864586445300429223069108225576435426688013465533900528025525503466674095005296830225904733888843885194606511696844914527738669605600026404755054759821989171707424135787797435674778239792617095177522352387854940424198132157732188580949098173951040863357101746093339739948234149055713680565392244054523689817425859110162581368320385435762948589317550716933968459458524652154818126829458055434712045167578229216565576532375526997949190779029072147002894591090681016854719600989663155204076477049866301162677704369757620938796224414955564708153367546517112452549498844838540037299543806471080666580100942334861928716293043165699546604641700856800503979610516542917873495855858818010016576851922780676255579894733482099568220098524303122735039571046655784023657825824795096030589642667051786294603973778221908777285040912877951642314922412276596721546316937442190268508370792317576381366754356847890585509262508795394828888739146039656482715626061512048197544281347890969457705774085307875917397890703905705383998733368158003932816919802359107398269318705717997466063278205857691302076871017589948564421776314743665042259932619887868645751621519302391254622715424892969915170543355429491415645267101673752205127441177003109350471037931391656099831985206670859694712376159978097244341047528355555910608605357862024353543911980535232462300132812005127999002251233867272667516718718294341711081720418692382787459382561218258776159014816754906103612406644701638593766894728473688925350984711599764719610215721644544573422619643395880767722660386823442432820118561051076803340013849004053260941274192920333037363193919394083040036568194656786006336632526779677227400641012037388525046217994082389637594297924840034066009917907419838340926355263919832860694271768489089611574706889610298181763821155496682223878652718359285530752137401008085902924591269607677506390712555114939795521518260470182169339955158296281142846374859004331785970928174224333805001672029635540739952377591406856441286476938308212639461539238861348940967989740263483895894785899049632424331323792474526046350088638559630764852373340388668669167117620834792980862815835142305900313962925341383957966843065007967056014844235880835325600114772138183693590637462607406422288759952939479153957228497981400384269054560698655379688004526259801841058783171575187635945688187985163585682024972249188206413055791660940801823065270003056993758423485180809679351258729265244662202843415157630824536640057598398335902280610357172892947103724112813323032413404172141364523138906507159636808588642117062888036038828183977073603988522260538929545016242763271308210173983104485438879594959578979114406670111534922136887724352560374017471123385657147271697464086952950783282191457389095076038587983171461749895314714813295887554491640388164205604748159072587674153247136909955890318780276664941941255822452836188502456209737796338273594493503460651701231366074002191517804257587884588702937147846449526433262119270960975208788317270574305565606956801058383861282288703916317244236614161878330113581438941936194195714593118732328197973026468712121230329355961509287512461356544067762112095585872840072043176820943340161211442010914681203782270314236009099640378097865561162833370724993778532858329115994423919034508074000206956853194031341263777094205927529703077501003041682127539024457915192752222607407916285759522624356263011850105855124500645831759246911224519761652104567662545317813176829977912782151274394314443188343194855870217212802188138613195045511537135070875961852526185507883062938907734750175908069451473866118519912848809787237110679871965468966174265948505378476709926960258363254606961261159986736345685643498200419949652836857363937951539780102112688930739927335528070953390419496615205690188852812693265710134636050129808635945955381373917480471036914751135011310034267117364983346092432097901136720601765121217916018664089258865509545735971235577430857204889337214354476561810351964942527952764187173813622112595423012770918165898051079671437004931868909195409135412926370730678282122395251208497032128194896778675061063169168332806026848066314125123772826369905799722401966721746845526478527305249856842037883862146463723898506092172678053031632565528399835047593297264937804066785136614134462382479293126924495914070566400394854532864937021583324925500708788024992781932690404500012876833174305432555699962477740857692181030631115893801068349528634110657660199443897706459952926536447927439731162111897066752401538350570180631538519967654526771545563610727936763153759193450458347302474306688455943143672739766308550108152340601176277655707648562188054196656850130737299123161688229256836459076752117704407252118610810743760915545045386381073188087445433384388916404104755325739493689909550887399053638175701381987834622299369216771007427157480145011597443814835625373923807331044527117420971202968430477360241648449560347124955831176699443386662195119867167497190772916151020908828793811878866682500179880619431676674408957396655605588340282745078582317462228929944725472693604243850034631419506807109357330724550792911268592427734984591843050821612545790080356666035949444704521505908598289882327114069483101529097841990104778024066373388924639269630421120252838710947768244947233697280235323422903492614501744340148959322364664748790005717287028554288843461898342136276172730383582610730830539606770667880554394326187030002730615697739989669573140960076812778267223993825557513750050405191818612934026098504320511397742285430527668047113531745958743822580026967558736865255250875570674022584634334764341458991611335784765422149027285203853670403698212389699240172287221975776508424804284100515082097012967230467445586706235240870284071712927766695197613842828006385846975461239779159625240104679732746236740685080433074648947987792339879693512006128432013729070841678120855355931049911261742288603694217069077825084196297496106686783264187898580784389237451739702695925536664301731608608479181772338385042009257247709229956285587712527129402734598684286623193962911423436757774019342967583700273870979711121589077534739657746103779764916437069748900862895570722053710002296268662997770149165329195419819373739985563014590068483656613636728878399713469856216471534307783226512391935173332662916922462977423741654535006796460024806984981471097469476834312541678015734768364117871791850507629492537286683503285991906268198160031334230300395505122102142567069911121493989630508278607156278005020992852296205495834022273353585710963869584267495882213170983639465945673846203188785978613789716974689494610212387684691160227721476066450434200456900845736938270281888199249915325667498686354965609397858549990702544292296177762574097794995386315089831161490864983903390198690994798421171866102837757063109766277000295377302804403558736601234654110406836092095161757482631858218811105834555076128453817184561851421290954846891377354846242965922483845093069274335107459336369056512120433876007117015414132610148101279624800254644127318070556051626514527518777171831917378604274948590801417710436166383960795066589592024019783136067586399780373763259460865124893509288871253599040135932908318347290801334537737184561393955022715443456806786778406236408937470305602214409106992904594247019420776047650210648377234001956104984912269720337045351342466090431699836684296152664634133918909217473511145235763410544136007451424372938208436069600196439765505601852499700259415019932700678473714438364459392205232038775166702986405190382017019638899399388698446562221956246032346454902728051008825127491862796557722338891021833603428354731565384803885301483243008067801941409649440204546569651734580301787099107441671991041103305142211079801652899566155749914020401026726048220518677851102196972417097872802928155450581300138152859895820755030629014991139930534311467230943552915590401735377704686264970489188744807827671036963852796189061636102754679885461835704612540112026216626182644758100521633186357442944253022024851333941705694883888535728293227507061201651119789159980590459680218551720051508601902790945526854458205365014570332344434738924477789448656955166315161654358130963436091049203561624488829117782025558145858977783047155848377465900076039538051680787608635198005216961351275526883143740489828849852574799978122386496309162531887760791762397353631280365237408695846429251653713760943518387886149436122837172169716607834795158669060822365127610850838029692589492688354478399749163533578667949096192598391154726961124927948974009633934970029763851022025525180083602340402612520077983654251437714582767823318745372606377556929700069355279310450237012718588790927132196886136776356448279925400811998891554486730038755517109813093451507038632985955282366547611140532053969594748548307898619680629531904162842159746278970054297638866330671411033023090849604320390447200908767763155839249386904947301815432798827319567133654469086944714028044704828376374060375211398948725354798289109889844837757313315316690180580554441685869964806555613337103025125556406407434132559521438021050570963153932056424669566945980122529945636577884927710604454046550025106445991064746211010130009325803307007209465155930510029200698216860283541470149942833341807164134601496126627203940736257457884376114459906869472577953780067493828699135360391765862235031582112961320067098747751921975219747913921480551394841124419536511400144724050955194674068625900036864083694989571956965619379432241555736877472465539410297665155385283745033482766175777789562283403288821252975685341579847580203404933574820759401963610187670025399687520895695183371628002130747908966304058730535313236530579685312689667150990132162176627796074006761824634960173652864306500414070132286707662796833183205999039792008889487271620472960511706774269389123514102126055756040251624008871780958518826021203864560002446234535440419516471942879677553565336287144110581578435050866217228869015485300335835954221346722672900064239033041436543182471069378688898229471031181334482295626982034662248319652310659398415415669963709848073292452306492285904159195692486483249747783722663675416603462300378637696208244613321824565863687841075960554264334445704599076195326349724211326519747494883083403600389255036816028605479718792023296472849156368376604465475880315684515621336159127198622889367197617976291082470793970462017772517381701587145212614090029314930251126866032194329868679429935667283842172963921180397280277616296379688260775751465064134519877331034334423361235613455225157037256451495607914957597199274446181636937966634233026892265990730798295594051856796197515119483261559647771039300975066030909496881173910551004811240569215842918192989993256588499934285496204907423509095326388749126799330797854276235848668232969273216870015471801995273098507329392936496573144341346398725657073285328286571348547572866098016299973562844843342452566618977633305504720293181562551791936375334924267648808140040996654762389398640465351213690610630813711966424773124808185512328426834584300811720459855652483660082278887688302435443038917548225864403095553928452780361616165897648165133535893250575701459595645571126725729573120990800216525600417437240398563343213317129739471497021600508100571854457173050942148246234193094449249091763615621423396291891455872396054470261191916449446474021440236181330738870847757097207769305747613550364255830713928131664914546784975232498994638100258721141841640363894621526645343361066619886543475817536323809707147540955490695062000649772987633825230843112926581510586079380638396648833342908350339803457681355456924305474480258225859357846805813783024557192790761852954249937726614195636712582232370783157021646553429198121522255840548727718029415172270317562349735837939433866973991319197957664591906647427738893808536383254874867487816367777813335046586200229361631627194010303126456758750616778530289565071131049380047505903861473236353697281727883653790872967919549637966638704135009967017382756388837525724233311438363292388582979377399675494229631448468270794143980789028413363482497710540151216096479779371890816841232086245541956240635296226475288564934189259634485345345694860325093797792965434756896259279735714597479030417990300211789752665217344670736761338076415001449369325029674186613660766975076256012520074643766663052525000831175348178037551336797722264061802837844984345701845616039508881703987658700815042232411899776761650917070025666473429683292353007198552325973605904582485765873550980295677363063255976512718039730893546986253654898567973479663641669220476061037392592484342719280443524938897867696756286997035530636876029712176650353498295780662801153621739489636661049641636134157634910820952202096156274290205591583478662546321583783439455688469427292958400362918861503567919121616581517320190719984346142408977814893302094086218353802538564530827855035620637212051436583787358020276933191818499548429487690803909312377435915889480142244645806297833533936421638440520669112664506159871412981588364020021524584949007412458741113898204963247306764480457900664593722193359097459702143428623071839121947494029922657530586038796188478588986740453736048525575068113249331228485486407361398632276711019862172215091969480440244218562643676386638356100689615964742061960537090057856021153504815621652251192572704817155137111585186800848190851396563506987526112587009408233983254141185000734816581597488499445142548472214259784901208743242567671722102579012259678793495726478155570064237452731586824761502534507595123533440348526273614493895344012223046586062149782930538971576474895210557823212789367075288181682669914227844730300370285596942924746501281443933800534119436606094833057060133841718426023198809587372100214472062992627927543336736157005292526574631250270087003689798483588495385210717605114420539014868991977071576677924605866781179298159373490313433164907816320052698235470469332598660371135628737123444387095123647994065942708567488250334141185702963977021508492557641210805002649942495781248212711422686711038833674038208545180587514799733417864345864653851083280907796329725739627705161143213297277377415730231342997808217335100928059667636030911107970865360743600273328698017925011067628646446200046028388494473043563471585055087599888141505484986628485092447571060783997605863204565517340285943998787457708328052626459378158528861890433452351969583868207801304238360617433168315141698523589975090391339224920438303118635475876378017153754237728146410463114710490528165047136967756138055425355706388227282309176015523354183736310183380083049850191779616743479489825509183301144942644517554968341664198225975019060516782679457343485120718178378524658443656574078677045310036874646485893500116533878110388341957277852739745084037344033509035331386855772542193683654887307506355303944022911859747349041351211856083098257902870632458927116200884278902974598262925206807867910790019505597595681906237284078255983676883454423801160490136690244735753083909723761726085932779522875032463705978209565554801162961248473800180300020111054209602139585244579906055497416863252956611420580486896122010764468199543174527054844551387811152503243507256604216633804545676257897696966399104836454423914965725323619151411306103584870577699221566436319494264007386179159275512925956591735027034946824722026741838655140357450541892729642841768423925679343618006795199765498672549619364363160817518746884061647687754016038498683733549073220227757067742191971420867974005703368186456596588590441570940145265943175722489871009226826720784208682328243108907056872247120084946594131382121144472869022220521293048092965109074959058897127894461957749990115965324704322111889616460797986607465834966773092676871920580518815833761538877301262959767428450288394567343700036275031578428093469214153449208233460301412635888690651451623397557751624825305922739309829871950497227392127877679580689868613458349380042605041318567765634401236743231098315511191012186542744457152697223563005490081890894976734336852727256779086886182005606314093539057941023836242980576973163385960134464922227278198562358500028661268838991211480630717635061291949172521350762170261735891905214233746730427816960452024405941719535054120860068056719689469023907316630279433911998521337120067014157475766214165770651584261648455873880642544521783415256259908755170184509744637846691009782584759258151339945134020894163846429700357662360748860555652208716416703044948239969521277032866689077147432688506674706461322410778917513649353890751782262079899118321291396701596783664328953454524709308230491298553007046349413363411723444974279471789801307965083721061869889239961959129443401445107315825258272073624234606591826490431479099657329443600394063654042358113945390298993972269879799140939892131342689859116195705093679358380002673891046024855322633059736692100139439562598194871175993349560457017306381719484529266744170866763407333405193198682886603748989137173713902442641548259237248379159988016584308016646507104495708333138241332066099232192317791549191279109690905269000951317065858961005311225683244305345872434704079957443893565490744302563038257696410386548776213258541072616009617404784344008493238615159113733130727860974334444675031619422243155487682998499794895697641005983326622813390600291556520031168717207385569946308321596298671017486670854578020259927529764182455994630262398470590067433018683948676634283678550428160785131349924966462127311873333192926075734775700865364221289208543620490747476808087509452474434843832292217371028011652117667712165325564530780087057088279220183287669701175039749040138153679827751922647412072547656928924743727353847921348558773876520443087353125642471455626681394919078255404768329564369267664987508536917632612072108639761449704971412529031552149185500419961576498823489624169392325338985011930784121914114547580685987516396251087625399835731053417175227924303286308172678139542651796264396989062141027881709741969138492827781052204151461574289441386969538672087153636989942455879525566556088638614193261122459883449887407184583247547248032547576546147680567056467315032801305736237612102928134911175769584378521248632292037143645706484212009988552672235726830093691451593041070116390654432840124502022182455761769000930882321428686625478294418772433066166827879607722950301444973146176931064880229007401706738706229925665134681608762913557784181594252089239209134786985406545173264376958960645812178977814078339934964631086065263415839360721471778699536012465231091929607617732772897338193220963041723894498784646284216726846493341911455615424375184139736569822982419853526372333964493928694724722939361849827659184185547943196311929981728222647142435852916593835753336031325746738728011952850464488041352590438400098050055811305375289806251271287285181666934180153759063253867074274074361343645940010846811072994423263533426068983662537840012252401538254970809454324727729673287808857384441469783611842751446441108650942617091989485658253904036981185169847164321945683121164869103360081572984999827307501938240125769737015013267379836238066457447921184884314235343676064846328553673974897178174121365958332691984943989572510463783851917861829365199889161855182548454476402257972197604768790650274051478842398265948294056249580547230095015889760081650938993171532396003102977892100989954580276405605283843311712235223791363357227171848916473722142531506461117549960833749716088211753666083732145846403586288703584313314633190312603478636714687335085728964130706707128340199175203088807562585185411246493051102077877634664541414013227283696071413816749505998661896560869245337248182159991779005365218118282505041320893749418946658859247405325220153999271223240210948352378181617500098862065429741703029959513951590685062557666286859810042127836172539592680407271941768387938047542023433568507864123704155318663283206056657629426471284549403034351452163595758177469685115431823937942722742336463615219112173378673260143412041967821417837166912215566503047124795588546686899663358518537818645893206342159124452685362374747662191445617245809761726612100709327450013281359367690022083326203520199477761894462499974418811548577943376423898542554424135928075294881934480606244080952802750516615002959024303574925503191215657507362059546409707450024534704146523916274170156684972821432243196048149343232190663351473851581698009978340408768411219736804938835657271475801468594859978432435230651355723122590781308936787609684862395239702211256788934189310718483234772111371642558280231542922562030291352597432404421522251776845846100925120114880746593333945752546027578960588873573927295578782750154058446731504426974186953647112021536182014481696540840348288058174954100224035293305748244880472773942173032853374350012651226984514058164220266875245849751974958769848404091306777380861256557815154340680984226708883017252056395162624940598262717007708038831122633972231036543385378011310758582087396438994918163800829813094424766345898563362008854712159117664395575487617289217187273316174225863526562053159526625465998771185799049391424092013887266551740351045288124713323570756531365826823971055482432001719586400303436394174777996724628007833485111557302787917071181904335213973660704504380354981907216664960090962469906670508554079937517405551572412983858528203268809809684671898310139767124255536890166125457977155293644469378534912613164922952301776696580044570216092923744212953614259400592655374954406770125441953414072198872335118441765437877070517063615206814570231641427006603623801502955412165319105489508218326199502054017048845580399269948854559294850957590754075157139245825658306384726201623826073713033967683246319707389240191366655679304834279881048607347218186908136488793977343616472549831547153090229915997455728282293991589249651647033977919408495145345222529191765513054307992172826167366466242957071545172888711418981405495839905288453740398149000611651581207650633061184596319410194637787658400616670846971139152869888780699248180295197310874702216366039186112748848867552439158271301109050140365193883546621727854054662456312547005753891301452564232016073782867681945878385314013168506480966528421064223928545277455604871592330055928491826468177526303673190481707194906282884308694542658993619984919164749054711983614079488117341576551480971533012009021804080336359910194850515027640828648094579170413511269083871356315198694555419462353528472197291533068548798677422333081519613706890441839674260678436210887222406208249498039384593144584259715666147451246689031990861182503204513230948156485158297250421207977694462023141534538259213622481135068704580366337693743102239984165549656169879047637521923405535090506189348343078367165758760324350977524678842799469720665205596862730462227560254309347036615987030111333605601636350302528666046262379788724932988748529761772770940884789681254552559198297012647664172632344045289667464717980350272693394134071004438706699861774594230046172686783064322056610982040941177672633593747274958494320590880490410655090568612340053689775305670005812241523093470818477128354899575272497099683800913050828663092145933929451610470186426574043882648245683103763482001039513787976358953669571200510508825060810883862453020087075693443838540433626735712690643159357586376477559013719291863409365958757289733753667435543381694048105896345058754233685513834257412088153126340549625613276287094548522884414934171734145549229546490289297900863775080217544832987729912944791964861151291056325912850332352559283697680145192512561320995683697132993058530634286633903514395898850007877813828821040897557017928329140768186887907509492418633137480626237715082911969237790535447676658471160358750286332973742266869385767850897378119392549771460903915442182022136246948593677414739667059122117886530553504344251042994318639015535361040789434874270854210689045027995065290616979208907540202212604707138615532637214083667246066850247050105469098903329110246171960164441962134363167832971367022292505310842590266020540935193641813814213409098149329898693210983416518182954439199079785791956083125539087642088138574470586436431452797824817660743766894671268255669664621271653824142042366806623756568701230358984049746352687344316583474823458015163947290362656986047820285959772120598336563980109903946592909134788213738706137324420934158624668252782656218092237714359329984685936070958281866981762866409625307310390172979565080837461285334712791285686431219555369379992871280474863841455896074276505173010914917720488230975977671690990937910754390725841556322968695599936453932100724477102398037690747029266750486350742496854775117380389800054817933623211416139641228478076205687986700389106967862009862265708494570739235308765742191698643320219145099990964954972209274079942714460867797835675933107932911516329944440216847092359490770655652186462283797380606110278715062738604199392428187702085229706369941160174683486201024756155143311062919605494338102215607236102922679898307017481149847174904048775439677224885345463451047216440987493216585021402085566737639825113614812202664592218929294346367632581449001595188254979417433145611011582711976005698931590144545750932649520991445734783116735219412277219929889814081774573863204375749493849451177023498273946429102804031381128839044219694788414157768466308660281285626498613082536206246435700061832699645679375707880833420847710968349507113266637274006820641155978981832853769908998539897548657640869793483020469991940189370512841849807194622386068851283896997520194558081340222855211572066969250394837952039489599043666624308054877982706124562222162602707110224987354377496297458931229563325932408977611608294730565346701665596191086533681330913746466390984544530157269039566015947221980592236041390626718111894486607149810915621315571596764944304678439384438115173742748102457194951767406410575635292363581808056998195090987312888291397459867263942246565225399143236090887571211606112892054684342619508720489783147392838752492296904749874942099785350405744641832529251105081471453126663848848652778761109542598947153365807032858734504861196737539534464821970191645159569985122480375330880721104198426223798577839180576204150062560590591432844909054178662421834862444807117881404565842844008252851193873941634345587859227864638642391303103560758118366012958587253893622170133547867172366630657018327019919252178154273260359076528875490186261106306654693475321027714815462414833526930986510622199115982203881482565215922109634517663790134016495508292506787406321741861238547563659462022469679675509688866735759754494907338479832863086180990393949081384177581611058201106048763056695209221407681681150264216552577669528603404230258581034032929797503220198920366401284087722064957131285930745871436642239051156403269679726742127036056990666218646650644198624987720780273621049871277883640888729736572058305567345867567163423191881744588665155438063892144829000008148578407774191926090175965530595285492102279808839992436228468731477629067860369469220847599041011871210147659120699105462779350966871369620383845747086303333635022234013079264445745112492492501963844173870543839907722347320975030231907620909939336043879238369183882140710943925950183731803502840469075867823041500750933628821739932440016066295746626473151830251999870606476371778984122035607261883840345404455737014647520397525600105460971944570239342381382337440889545933883511964838579241371106955562477687491456272902298859248797055963572872995978216053636403364758483779646909272469994734131109553898284779241509157275557653184783419768410385551426671184262732003529366900535307779724910141659071382156196022514129215535297691501711666338887764223758691359391980739306397736638623394381995763312315532091832438640407766244722970039955978306208523572227618456632084318749423669320504106561274883610204273249268226372936664052210646496591948939144504972478828423765297231078257278540505803807852051462782604359437207887339709868410062010659232826677789561270553438172424741253270129936103558960235836552045984528435992107582306330873775870382170827357079040691368065786589151788323135310784458703564157751348732096641423525767840737359929429963937750327397235051981867464478698517684320501952974312787708760621981677943048207121836350640308857456397413376517971293864251920489130900727915858166447983610907998030342018332190077020231658912258790030387792263525968134155386001842235391643293534544464373966205855059744905558464614371722920699796390716609558557779863255454578930846226932282144187712998060231117986708845666651972014974907871688925765346814970355009809815513677397303911380611008228396448891816529129204564338943989464089492788906382207597967261575417785371156516988429210918199543098547503956208790922283460154876437719776686433819441000559531248595553955711990985598553000251241378763358438325332693759584495263786112417525900145216970951687800135223628522771914280634154586810678345761946020130705012262280150069226616136018463883072139359505759687315158260910099013529229237752763870062013388265113545339052959678591419310231780570112051792979029749182900399840515982585178986173474587074562045970298672061677159973213663968092696229677715633279524891888519879200448866046862272646665489614764443527970360392455917839331718392792832634247559739251800247817114446676397269631383169523248854256028601836057912651016565443146702883164344215041169190530942068147822762390170511523197871197916920651482502619816126728907203302417850814602072944781968168287625591502231829702022581198595640865964640315150947945410987667178397982744667079025642696730523900398239061951867583056942752174556071638595991160135210926102983947664666056857602203802632931252674570972917281502117088152172750117297147656150443284010569360754854621042719019399058387661185940747061244942530540258921107856354052013321762888919770921672557896852891439206998342198277028145789333944325693145651716891020335813335874123264546001274543067660067919573275928939360404178328042683042508199318875317743345552842363027152084428652071171887035515246036130009582590835744734343470769352905766579878001372838098748091108905523644909722139012287910317495934294649663842532187893819491350458375651489432812475007290926811994670392553108949202926371124134657064570405227702208522440123641870139889571865825195851372069647537329818726909759626891749015507286516877359685042509161296866039803592476800345862007658709364390657740640959206775021874687963452035137029085313819949641509049178154071204308034683548619342427465032695896405085124725958405035272608472504089153391553974397342786858676910214783675949724676132479432089053602238541860727766450336205881644066416675606595681287235377243442379098270491015159095819569710134591013928281052502611566596155489973607919893257872498876770378980735434773879653452040201469056029364032428098995690062251459219070594909163656397500703807562154942943858651520794697973527560374437115490716893883828706248700639604168655431108430647585248890243531491352956671612708309030231051639098704031091461457131781473925772580853807776841658461438110238860464583373989649561742181144823939215483700044544080550860869791758569089412145187544156967242833864789036774962934850342857995256009917220378844051983679553452345171728059447173580453282403550064581775624134410833035736687460555039030652005752184461841952362193810261928524025964467365094588771474504196005798075756626236810454668367534977217242902081058417350693440747071845371832404538885958851400547063792552761760402379767549861960097338735269368117588540373981091656362103560979882156174772906232066472163254345547329901582608050132517641324170378823386940396154562540169637881201667878096658299483239496658481611747892145059192351804505804936447943775311580183610831434865193072153342691136628839318318152201560767576330930802422853344763266790272085709583596222679670535570555254385434037814874817961832698097357220993694039824211958454927536426214517168821316379130643119102644226355217060788363719549961395098371513478402286557454124963996511952947710625657278026884175844407461564464848223057518977136363504342472467702024622632977456223351758468493613377253298032306168589447299866940161398509233779219370126841276080477392279240943289561392628465892837446405551785294541019391479931147787740029515137247014910514827222255604092061082675711440870953559582132704838412660742280814647894634761218698926123455061371790729319373105791153628206320172611695800334506304541851425495553665837579946894629146059846636872657214484433622990285456478870052522257335599055407265362902817751764799927729443248506233318499896974805647786495011929422124757461917941255093201693277077958488462969712567042857941655028882917085824837296622466144959689356352545986051497493503815025443055165463032276881528768523843570263874329024990868574474489258547682962696536977321872668900669850079035200403964522606760605985657037921771988029105053664923146794871437960436189265202556035384599605286775392692599148113939531326653525848389784289136862490511911749919250722062438720866151923929857924604533210291246770530623288981245004264897941871203824855277880170017063460035141346716571239334818080993447515504074902348683324805122564687087889840311099722901577889124198766385898321683184953775704718631703253053144622208748905010095469647105689426542905859104968062500386220167667272665374399956010393668156920379451436346701215177948306342062782163260953451125945191384413265551877319397550622082443248794414953050821521380812804534985035540058401439741695072119736615881239981015544303859828123303679378771150574262086144174466448452980566560101170064953843654510996427861407884012996415279683670269456895517633113728388779879993355976586346087046713492783666025118283143234992548765687409965298864821984537153339013812980194993405562522427096425802695469593305817664220140539472467569915601013202640603215735597470472237460072457389541072538029763958519375039175857563676610228352836358265095264601431114642231175280974896669058669318911077498357555139776246574890729708454085379294002088605230482486268071199644758408158134865357993223484680438178946199434419117168245318684820763231022332448557301665283831927049252324836916974219067884161230426022945518080435002412068495746766178997281182546526671340062196233656424019996576615022933001159290454647663271059872276005679883884604926863772103635635116300962430576543663010704959449217041158725529233802669088576761796502730180772004103551269642767022434622439532008077264700514548656336316745317993919832289619453765629001438639777620390061113541011442334844986743787653245123566957067432300174936666834945135056137576015059646099328115673374006905433555513249990105094508581808879505424014026265613865351102203742432178769052655423509472860877129526399076487009619114690442066935626245717936475221867834471221412979426954180832754779407618997329107412456012707116734924417826965583554652394509431943320819359370578602970204605885450182349585575003894236829551850806983928494177697567700076781134320282301970588399344228919388898461452315955083058786401727037871370056685600995059402982016211065291392142745009681874816638278426828682873492045636675735045289074256815672620393868239174612633282285560428907637333432961243737188385059192897108215339371845327669155102921546592941937717907737292843450135631462667265419716940821021316072270123632319525696906662189020521071554071790519948063862356169697692795777941292736820457332766062944412818964099460838206198465996534818171013277768212787766274186697747247607692816037560305278973879161211692818812380954935455549455660652398236263300716649260946514717264235420209606151023415862398371426516299866154343308651102786471200791375818534386145440446617183016150513508160297433882988256197579978802317199266567513857441467493642511766842479027897405383177072092759316316894193584931340036561741651657673144043468902125090935358293422640863965214361493617674464894146053651928301983910360419168758768187784758310986802760098436178093713009938842171799423427464993006701937017596752810019558247871281773847619537332835351306852592871527293787929328500651265581578280503828879813108923772293588732264934173916619846216904368437717422846026713852927147508187938562420961493930923234133949929174881061217361316890765062193385094437435822949824832781896280495902097448180046745133286812690473515605147666297177773328969032595232588308445327143076768339864128265768085835975848463466742647763819018543672718698399077907413995491578945877527776734172070446828395155553960602969895375225010911003542321381691951930998447749614708616487675305253635533594203875917344573562497801194187842478226039224679643048087726179126101488391946481504822723459099207411440080559643606375908886001490334794520100034324057126053671025504327402639262880742280748958349934282260211118170057280189619737939410699367019108877222515233426398378584027999509971875566635057638229518886074711461636751043710934503999481067044088060132551631863801183493402967525190446283494185513744019647610646019446234424434031994855852203620665002512593119747663380998671507991137818277413541281243768781865800536195207991039084910928617232045786421026335709244675039045440478454952089000763422747515571720336149602735418447962010646391167483046634060071261756391209450125223302424537112857469526145350373436428719856518810694854622044862183084138406136742997906737351496854019581397911185499996264986628228479407433782587225268929340510609226753614211303398784500098453633469192410383191450747349329382058298888903475470760675493166297287806226508670703811387579289928526943133221340031178324679125833386787703697600310097110198953602405118764055406070811071268016417852101454733694754852622568001769306632244570848591576727033372341640161795568367592159919209883838408152320447074981841033164908833969204735416344579494103342267823351361829582489327931840935075065496910791830132163471066708309048899274834639524761585322237494040038676203493534701831806645360372644269769060950776787954424084125858218686662672639675611360049503588934867821187407769108179382708155211501696176303211433587614490233210571245160255982084861215932761284083991180045015281980979945901316030742855810950185589500951585925089090144238955050557492996490767925798750235920076064088459561001700288579850871727509819766815165971246498324473687322646656330673723907427812564103387985316911697580065630501934849661794339133098963874073297602385812097817403631863854904490752723462269877783107722605590395899113707676648611064065517326401540010261073448774708319152324471750064449778689079802808094678393219563373869086992291233929463916434335515878941504440182393755170903130122274987750695135228689926149611390960565673699559168217989241395994418996286209135072409077935210698236505078965689476845081090668290216125414139081687808283717638633586989585897267078449870553118023597815974932383184939820306965146725047063853556722731417178706198883699821712206068151089332915971612222769547559316341871350259481058442582867621840879644306142209537972669202371092399983922672949001307738249842509847593418555093904775491591658855426195753545203515192034191323931229109831049827050982232963262113891036376867977574281578195360130659975481921250712684405264319759375682352117142797407272667901258690931281710057582189263261394079602828005535630783884617926326618643915747462266850209083987646585157684211195296845033890876618232037602872805357477577034384072424803640228854608520379309754843989386071001626821202558133760785920638616716053290657021570090827283384498263071050258583906861620034951644323509338824284852633666911961087428462613057817357103164379109029802471616876478821506784906162635019225949048039860459635255295805582683460366271913203679342667566500843876214230699445037403318232921093328923973722419691194354328256721928560054542047946081096429780319247113134980281161835329257675963068971745070589535268555414267774548227406554205940484237903274825823712195881380452131432874532323133672570940856092673537703145358460932354934517461194592074178110770391766355668932861042470173876742219951958560063116395184811179344900971850124308670548195735734719623392464106863459008845084317517408731346402578249980167188938154834801696095428003919210575825755119489297340962135253665213955817047112330147958414971921171221329804705501295433491787133526211038482105602606838580673232284628529548045202119474568812238716269562821320553164521389345990501772310834952308297506847805137444701983079507921622439775371896536945369601590788994547921589083023775072069672050044069380840415871013355533926719653924704670085162863063287184246186527356640159031704433273679464307272846339652662973864996804395516028806262836987409024245910139660996682869397619270700971941931967523001573748861938365679665838788267765311295426831432832827050152863437579147133406710332949564519820817564258720409825230382412132841549204120059842558816825244883121203086460759167978574507260894312774167095096117130490701516555510362481833437227008638247489728169104626629701711467265850259255392106136631935298911244797208928844419806933148933174692093953006721501911055139383108994314443673627390174466258180995085226933600943316930555201491930236722736733568907885452150920462080416915182164391592414460465636876920039982186100139652913416521825669652271798723071250290187708001168572894329289176643596511045174577308935453002756037875398927799571259646822404485116591416253414954807167374017540879530713418376312999428438019972887128126068227977546217360791842328730845164724762652705719649050162949620001817891419366506820963613310283569853746319113634122854997801326327180137443757392061403366827360714761860642899427973425168302622982569408632189953161197277870398349943273784745988181122941765746909331872567786629348132345366692475483255113218282918945065673044333931990537853026080786337853371441621462674576481347115992461554365416981080774832022379821341860422215297184200518956217110378005708387063618813463810801331847893643527050591074046195220903299056428322030570361362037085315170006669004429286921691210422755922140793297474600732563350174350024175779488591499028994860010611419202857712372140267100499950687515698017291973369798118041923984887295047849596582161481267157790314440631901676496056581962676409291895423217337648827565128134801886631397333405396857919394607911467942534386680692348904859905535408263980919525321872557078903330176314841243147004994125728487789294628644245616645528488861306268686771868339283223220898723064281404766069265140497304902843702755843841279344281309680302559330708017942919726287465948189233866074367327329698115946836407692562240597087688556428844794472129639803238955319618439543316289858074991379890396885551398917441625192308265616792028181089826089596833787387599758196090228078627904143517871599737884853583885994162972161009196178391397956792208535264520313750178972190069030466191851765017373158069048055068529945595670273642231113146206540216924741918518510148947089757000146298840159854652082953371511819639965881993831722445208203071800885951416754384412447748580094480632551652765543068140170165224098437480929861022773944161357154178214701468783297069212664832703798865719668869775942944972229553478080808021423665834001760721132232511231500280154473244813995486492674878378131812185404243055851306094729774316178736413951546525187136723176731620154797341042565852832158508264986264230935973578816181729070502138302883575999559244703120705008559696646925839611276444688416313446152151355067980857781952861342271102451383469771743002622011816285369506841270163994636187515902165589295336346424096436004077315025792577112758749072574262626838658408104497136561712763609372535346204620800199420520418161126152614108574367529492642328254557977321796768729166997524770047913331567711803882073729732839553078525594062287291568777331559020351384594412063781208170540725246791656800015340217163226124117106313378868900431168021068180899450147420371181441539949372793157141119071160940379838294532682397423261386938655409128388427221015640401521382090080267901726134126632721397904679189408377986767804993873247024730687503415194307598886144474197773130114939170831513387234942995012392913990942639203001457911989902837958451989451164497133809798605227533460723370147749823910384257426998008574280194685640118700827399189206821420105001211596722852727358657013223353302855243029807672809155385547867909714433714148477152805557124310706839939320935853317277379116785034271160978829374874697644622301241388552629661335669266126754778064274705118623680088469982096708431754836981230611332733476695287940200127629604967914349861440218470740118709595505857170520711845582202953706211398595270635695489698163565201628875727139981253663193763389798206583731372233501490299685821593021711203018813890458589232213667864090146963366310855603865991507306560057652625825855788674009622008804371764959765768664722474937158327045274438041553272019128337504687054879833380979543476775748070110180859378133790727506278599082793435751611758439796411886660820313910547100732074168229798505848458347150256612879474960048347080187267350627790835125233295644964813475323663696819474415226886968240651869723809682736389056180779301725478321580539232020682938919212805291586493011593640218405911596100133847245764886556573172274742496872637631000926095188307221227705384996829847621379123075654729114817826552866285918366355190780457115958256064114705962509501188433858408599279933648963260064548030253745551274069359173799355823771830288822116612676157876723543032110745907121339157933779668148895870598170980385418117362873060238545358506178114181326803520484870101748014516987714441082802750269131485141066745496022730623127257200597602178048325467691746774498968452832218205492183835727048258345568784166190815347011355474808834705518224100837503016807919442405289735074001944063113644497943974245416120581091523412530931199157364516228068132934284350524408461770035065704265402632097230445073401762029505803633793680394064277190179055062380356663864557072349329144518612123931255835437462732829550526833394573737696194445470693691595187767483417656340842605038106756026959965494861860331944746782682062305859385997484967205559455588649913335729920966004180735440135598359629172831169676825256531777838559078230346602871448397396379921574815193541949034266463065200187366739143641356666433336461482374200772069439535210145531645190586439766001455542292669454531815741656658114955646193039985826097669538148111425655682833851915195347894972117080245576102977638250261137527857134438503884187410173172337908782803491005330886641975458386785928792675882368769338443441415675292275138806932048072249997928630026278205691408890252949090429679017274583767192821630546646433323910364274355407946528629954898084991162098180430614272877743227076040471681893600446838012650557077549648128051821760047008669749491317842558993990545319450070562821522037151925456939690734675977851324704842448192705691413666018254180075417508437467935465500877180540448831288089354269146669914123814387600406304885488276527898867137378638381747303165145064843740298697621226793290139837669673792971522213530726977221692297466015618303729416215066310675277070714787825556432944492537641343253826361207659783219394729809234301917059879821106813715465121263131588587097487745365381293920333826576645296641029057347823834539306691593638510570483898149750368306408887614648663998382423833061940935207499618376437629057304708816086768497012630066560936085594932749788806957492151708405478382666034251827967175183287365436861675302016038168876058659610613496331757591498255562249570219284022980945371653239408663976153231487083119027088409602349766004623963644024534789161343815616015956086600409200084771899345661161271317757593262061460377436227241378239453731821944220949228930790915902291553906391228769758484584058951706768996940731545034933735049868930804857674016772460098137088614239488055000914538235733878496816209504898133796090536069157406468595912977970295349221526258338001751079832415980781076572242808677368757816114659117405396642513698803130669964979079216900676182373583825778308565072563013765171571509153247758475478218224863430684086476582036014483408429494126968069108435815981906296485830198525438491627045870889843558606463305806459141770043089035302835885341600879456636861049307006353926365669612550288830407704661011828195466789795745488603109553295667361468192360236928954695590234884787339233020407099946574141208689176468231889058806845592023967183139983533651765883372506706584907536134345715096117322591218768703454615077253771235968812870545327426780124249116385997607366761928685251409894555782442405231100538565079144569715868187571055406877069928088678476368161758099874548842299516131994319523756509556024625548562181301158500991088424192945881715781643105171228044352544713763412826678064905482924156549976768218503696664246269116641779950292757812422476218029182834350802827926411853267013859113400627238123958173314270320551945175409597479568939703860832303528033185103710627126640007851062684810653047869968714113607839219182789770268619516907103183279966716862965723793808271433197143017856704651375997712198677351967927736003798226592225106691200384036219018051442528855355985929813025918739264589396523766690706513715324067648698891054268267143002281838282385855904165608087235568248868134567141661735494932510932276695540104330242864018938629859675178459838357445716565539074674539802823125525461771889261147755372814563379429857525199050324474003543633720078050384199152292112225574616650739744845136940447422711413642338929932010317995023717438780683614913929333567327760543633876946645093458932147075782685105459319640729071429921233158148961199211606966545568976515313557364057325374110695235022141215907458951818201771080912112207831578621369364246498071490079622203487012820305253288459099649427873226943991075193617131417275482633557859562105216139774731957673701262069622479210708733136415419052628568713002559325258426296168190130174372685647533206576325326615935788925101875250852615092288645347275844316412584976623466037015603420669778867680706898832491826240551453252500181197832971265598120640686196276722259120792231636530128928547361259720732076006583942954629295172781202069318030934794003237122632393974917319579940834920921817866157377483460571000030692158406618390968722916867151414557880641736676288166283350507532092942453823089196749052099267428823495034690714574032947511822185836867746673841761969184842550403046405665486662223116931343988069931340599775134739004967293828084691124097358230340127456203054019734719368806821706629428525013385842320603897086805779367532601485674809260419183723624433448203135729607562228083157105860112852920399458546416479840260762659556625568678523080687693255986536205029348056568763177483579889477058456293320791244159600542081751859396629408186237465532261473843516478545396853709018076251157841016081869238118585331473539422091880373251429281623057779133782480424706524029973667742186066375551333415113699910550181279136869342600920287598418214129912794961120802176170402443963379506435457939697313126983425782464956310825243409106511884805961574026148537883315853780963599644148010327251690226975943265912004400513848891584339976445494249940102579572752235415228103072062440702686738207200767989498618347060258057619764962322829705396982712662649681814246902767488245475509841160744876569926900960303262724162655116603045115833889839253608736979823946339937230119077032667804671911548735314408373178015124387420946405612872699199262171959541028639776037580431350462225496455264841574770852024305600805064981274206690564777555476502951660443574892410877910530717676533537604149823706377306810487291489628167193488163325280862785701435581577520491500911262386667272235457065445654408487164802015027116884837106993322650219631154238591327318948916379744100421470887457319288717373203501999632350376973433817388345856873425310869039921382440235292817401581398465131763797719950597629744502792172220817184288608400222910958592702628999178763945632230711836480715027417482242417539808426147418932692896049463938028785693407047213817861334751446304927485016912632483846705121237420531135010918415196466703632886447011564154735976525001025710141343317801904236351211666524122517229485892411739875724704657508619108786049150437256979732495719588535516284878537313748022711994751382819190588615835455572615720195646752425182848562199264942287763259649300161696321166451185389777156937520945561865006259159699411864549496834955543939212864156777499892903669217039022051404941823221810281431376718360639328757667146391854846663862868282829352431970344744997337029764965804333031091202644798974250849642376074637327280739193680865739097910067074574715361649805545687146019659481488247126490146809439846544763924147831770085896959459834566749036745655459611880021664589635981922244467129176020897424527921918712512886558457901684325245153085096882506333352376504103604706591985012013936072567292557507137775688403647718330820208378334295565032589710825946153810384364298505676099635332177388807837471700419422062939833111491857852440287075831236321354647686967853440915157381239164607521002781942388409105818305180256447644036945588993739564688048548785630653100561847159910664880150248346055881507954364871528231078585477443158306781824714015558730830426954003959855834278499472869306477860984856238184897664292806928129514896789213194640620375676646832213885835662332046314577565703223078974643976933488563683585226034931267927347593291779403237950940088115816036472062516055869007124974492707383376245233884297695795461257442226215542250301452443626564624687685493195623870539266954307336083153457312228428908084626230419217190389745042676464483446724979831325996252061447580152103071873858401569925671606205169282620313419769513032067385872368005699998912033581870749347343853270000655854503071616772110664731054132141340088771221275983906990485845504561935886028824302555249499225802184644065776705844132585765088970227773830479902265984000040227653970094792804114583482624144935853140327698467242713012078656705066034040191882940494757019427829929864813297661135709494358683235090890526892602869250170696895334033498319100087300703353832891312527621821146095531487543705212045711822705975504853493083854356251507780266871084043741761662601798484526472025550266956646807860079411269222091289270073915857331107142748933809636655448510309353761050837419969808274294716347189123472543017235752840734214315395265726786880112638480583081143821289547982080550034310639395848918961434013815747466229217696975935508969059958067355632141070392535291445448317871795752859151803313035050615393223771890183121232843216507254218512124598874063121313999885343816910593692530521215164580588513989386860734208122264257695686402475454132869099406123029867656763150593561694833363627285164524849576627161126724216844120514803132836969700578410473159898115021871406964580974716735478931438631225610725044432781270092419166705285432630076496872483283980794514262429612087873317492523548668717823967305747222108445386103778041208798686956020050296210010514258100949400946625290171731931231725324407525316129198471555318331255265670200276022986896427194894067204066127998580937669013045573356858728623513866687775221011087972532609944400490057093389391010553317877398984256228334803136916530291356376045475778155809443783601885110183543944736315935878747864890180083939005769086562011023382472209528025990253736210739028098004045225810928226751399418504992061347377545515849443654289248916264792075233060947170617724742236369445483618538208115730751920012621683413743955492782227996017329497001208255033959775673875908983847841578951530253802426145547253236271833589808758691370846205861971433323671817686963439408373172530190767093594420694486130994872773308436051323752423171357766713625824767951019607648084696041371598539565720269010475672468882239460323558815991182558508562998040797084984328816931189569397907369264962312112488351511526107096990607359060827626757751338569117929427001152365691323647448274821162498814451613425750590090944558756589577366420866769761466873998730478816787148555280679034683601522067153763030400762449051301912623843085766942910146625494317427086497163100848638738841242598441092106791296438640047520056325856672309995104297061051145922845104220734657010640843757618674588372814705152660867935665549110066289847100018779867198511009622735820899004418312035898010847028075641640171146353460886736758941328353971059621723179321553471274887030634826611522734920680306808114773011542033968836316186916871405443171005733818885637748183048712729728697893578488871771476566176901093054877805492296295841657439998660433067015883597682099291485678283884224775464865277002544927976005453481003823103075090582658554526528862424017953891415439907628520427403694255333553848604175661078424130671237003716794680582793245223636028151267428999127263004264557779700273840423037525896868374377984830469310655059451446052293126624234708789773086893733450996041529243600393470833481378906496884678062101131106557427757968803371784780868859115502417457051728583365205404188899352370397079195835414617640064329109267431731351341076592246927337166324304946631612665386979146239746753207610867785147073041133782255736980044291915661923664938588302732362012430564435136587595030469083264956895326257036003989748739300875406901366481979853294179397854001710737294106629624417758908406331545299013816059977511174535094182327713339879614558809140708736359659222639679358197656414609735053166694422948413073615730549372431013808602997074145397044258595994969211622678565943379185338313536773808832507802651859247595819870366717999684774815988408165683638602753312393854014077297308568151411917491631387125001604268773364899854335051391917021676497836996095916108446353025555381204180053813121686829410254221699144865888654256022803823057608628704608205308456393791640424045756115528825712441435577350426296075877153917902748177436984563352909900231860290093547568411741715478673010845350448245781258652176866066904726860288340766146713135381879427691570995760503673680624660770117156998341952000341051973969117397252023804916948774590208022680360471729636951533628444377980034654925152306541629675541608066807205233451249657974249702562157599819037528441840285171932214295325334428177418016755647053927959889322797240027110495614109595518716227598031077785835456938734750774790404233911880610244027594818869183392100886826902181001300095849423347770282181651266994863846016247005166377238336222688704281850874323083160198204144180854583851618758669678314884095976190680143650955967063893008166230925417896592356285675117154751590500080872473118627852055615558594040725991506331189983337998026891681540250987778929197417066170533080393763528326334584511914268261192473636385399070117649949964281158142056833381839732452570242131720972816119228312948148572135723807597210054095590480845700654837602307040220195416885924589130594502846941643748326291906470833044884935797557799244491689863896841799563183598427405860566240211660625113348663290295380206740504779158633779050436635202754247340346448576020933808911985558641763272926221356130793059105807689980991823164557555398735761301742363715515997567166210113616292622111855331699979184416885005366280900822793620869781552932793762879698949101910297964151729081835592635835134301426746418784015387422755110469748627905750248498920145072042416916067997024207653598606496032817212859254240292928295029159219473397219210834881096075679339774802596287482933476553146755301912160897584547244619856711491481230744462307072206834093223206259539855355196748155073571010233672035441338341730764738723311715137618708386527353074915094830023703055468030837196036880277551587397874536426562097717902823991708346643025827367238958360784681089032670751888409772763410168943555837920449865626053664997792017671849353066865372551060828946345059265035048208599303954731151582281422164331957621154323693199778113264929353956849942357703581693353656698904157913702323288251034856459731184107038897611471448533427800496266146277423175113557322278268927341982655921412938015203597674934156759592868975792609136402512607268986931524179101808531629582508216780267936620878289549557479785360148056011455145163788130465417924482720117528543931903404182913438427712249619221648854842467221370612040358724775594613647215595244680832134661063791453303367153573151080412814551125798778421640549446602303126185076853858476421334747977869018006028019733281881439547909581466701900138921298309625612281752193954056680378152998132300287954515813175028314179649133814777424354730499403965993433939023827205345058727887804383667682288879383357855345398629754550239984967915945376052622951786672227885100309817117097750318627340670092673238018581217341182151330805208265846358493705024010392721553897724822968503089510017502940769920263788812437734537502009329781793232805054708836262930037763480657708142407175588821112911705414010109095703820014994956377237453300281205051995886021981737294205542440287249050558674338348783483547052863157302601827730151832056326014869107277796190042931591325203731930055497403504638296624606117131537389533837501263257804144156879284896025971897257872811868917538689752216634130545975362414649706989126764638650822289635163494125209905352289268896793004601490136715844696745405347551285381753531849740717562124851163311780651382131210181194731309750959025625513450796107092229645578552210760142548925019308858320755330814068789581494860022844590947719992595833102735070553357279186928168413793725870103149668906081059108987810824888278538632233143018680863489985183465149867070553690695803585417712321057952539574066981562940299772767615393690745421202020784184354946208642044688937734579582019907839949353496492447535300281414087203000607503519561753780244714194391394298230768600743465583018127131867601123660394361685068468413319194934135655760594552301228402465328323562437122158429382021854942003349676827555127726284406610800200117327168129679704864833345794302583156414800514565756929502236373969358283896519614364622679924667344142565987600978188844810999552405496853135300670527172382128379261653417779171364089288649143651746538696915178525331046356983100281663105661008796300915949848952817092769071115173553526807864998195596190055939430956239528872474484145523940306945971598278035747729058459939378302595579878815709214847921894692404313589418395324925410521859980931080498156777368342316188877705766027337192488770373788921315512084864881345445336400883877368991204908549696209544344873804079850393458897251785030043254507629845180607906084868447511349160028606412383390895486360252032385568993609654477244405304337289781379349035919865930508916491340084864693202786989924838458158532524305005420501456186069048373944362065751115142675343408402663923758816155514281148379571798040877916559195783807474748091730062372137963603216466254056784311673178962275086150670387861930896832733417794315126666527719291062468999717094851443340783000405669177547019066858796766320888941449296707016645274492976606570609803030082985183555421701360393374264209267591020828759936695048128821618971259388397977825298098425181212634769326944218579129355534744356746650427329544689911586990539771664553726958344763424948935696378548519522613812904904040023958218359569531871233665291006358928864214710025473673212233696421573966005259834795761551326012261476538908640773254376486216021069490083975686477039464534048730566189111178720915560459990933669017321435121173422431821719474120678371051815495074208567140163031569808978102147095908674456203837505884241814527954607537939021143978814007466892851963059766761555581066580300418830155438447332774466446595177750677773973761814234421511966580619954483272838667764581544921626771972388300990689211624144842690418483864520842128366002099569326164005040261477543782012946601673116720847412137910808557757492991435392838588720410089899308024867987260826250089376587604695485467847055592775650396442290321440148425130691675498582418074764935401382329345657885611283069493794509423530246191871671527418254922670223632324896832478888655244949051847020029106468433116967991203991733848186569996344006152155457307060206962187782016471689232744017112772362311810659408104268365604550394505028427659107642688126885603000301190843016008202961175938905624548963345758006640903813764608197632943008860971657615644012801765955350204352292355198093387345829145305339446495930780596694193362965329424976633719838769275539054531829052178312999297073197990086931852001706436090343408996043512153415298675446112699419171639595334115718080741891497136637449455043462302915209163570369458884754945408470736841027896101736576739285757258762641636771562564300395107051273181214023138091195519274348935356499015695610423757832380145247087206703832444762252757445627881376262784825882621902553825559625514689243333744873364325803028280164261480847144919227440544816550261855637074908149075030042514423711429590013175042515485248132561272694139026212458569282633172337530964449710822204411035002904622824272166561672607478464139760788190338275685876422066688787069825578269604586327965958093564634246127191270980135733205462923034384520126595251059928054089046701643292704916140005313840865860298444373335004317747467312718177487391183297042326119596996966716939926815403795704768456020551945097379936843428327054111539951236789724097939247148072975561646881946165264610136173427873922645173939927642363036169083928329101092329699364437336577857005143955474307311097673358496916201026177634652460331180074465706901926081919485378798628224975766803007517834419162311953250448873704804695139274452922297552810108183180642162121866249233364693740177211345370506572385374972815829451978883907017245650255253401850370880226032278711061397116523168267664115497518682093601812846968861062680899191459525638601782937898834182690279793984226164549683246704348291343654634314369606451523509540525661602205372202432879794688039863377011151549904630957608388958628179123293024270609985410244103200869526747968402043451540922747060151711626963080375425919745121324746290168872189364652454618518316876422396380123966706257100793348123081981363891156264620581821346597038860132123967897172801875701489138005938458447803736018483817534938222067901029961153521064116642824806860172101180830190716766954926043421943786147805287531232994176505048480372566499501173671094785193692736038475535632218903359007608946089345360950735180121958303302637574265428507324856425160541358109564924506326382852759135526307503812794980034945410129655150630417823010501308312916297960851603159700672447829841225759971488679842376541155799727305176841819929093935004193274687136673834929674607275735706208525775690221421836832992190841888026322342378587905585302996546023727872400731118967051133511609557758441395285504880983837337680370570875034733502017103382986133382841094830231620972333729832198562172312725645097071961065983435700839258524430151694250665054795131634664835904152161184096554427217133793560242005478868834699571397025739485612313223876395892592860369518608786645601742004383357169738817884348295126336962399492283380583592792990640092038905088317985626548620824878439422918023410089242431511154731196237804004642732647808455786143793692409191705934647545669620354864504759656701510594887728149909092336741644264261782952458126776041000232699378761426802821250020386809475352819312777549872478817130693420149667483223595917768067590789560362035973964745993583396234008114903568553383051003412863536629048755674159104110296831035469946050404181969031471105173881292717151096320225773839213315866035267097564123065049285983863228267956733862010815911347497294193783723005930324978691760281325310944549958033965928402289395075277181886229350915261688743474877128886461298013145741814329006400120896133270205949321206903765399801713285058383418017675950589050364058056824702146910450236723844002036351559608513964656601845885544074970478850688474179191295974021739717003913705865554952689047265155618052655908298046267284785485255008169496041975718033923970012067063745503810019946600176156807006599955126261894325728618045486592441570914217413105684831030261640209217395609024012725735317269773699375842543091311235371691711204203060966106477294031183714757059283194456067325472361589737522178207990032628028918751725865021632445951845644275957604497323844650753929320926809270277070360943665282664413133436943808640250681526606211041298830480582342729682988322765084032423134148484566438319993063208782042652553249233784811149591417799529446750573690560739993840211904225774263705216889952013572173852752215705770325059894804007654460812619778222218622678135486543288311737291163600443890348417096172285983811951988154227412778371923680094175809984791387666578800021467126269946371264571519999053226687773917407466487097137858652656247756643322602990331947933515349537098898946432217478292594484114481842169441055004805749581972443090808005057626883435156041194534494238208169003229852935307325383839187488539662876211869971961597237850029615173326937201210435081690534467285226996998381072246341947291462171092724038525497111036757319661161900658588154060452861882251733885087412209717446429049632313242130840102103789873105937042567209212429403690515227291359064924228481204584978722177297487275510883342281791057729659707413210488940434402991817821073551528827606565966328390708076418008143222046039696191378320774440641671353614533657794785671297085654333364437965295334437507154048269466983599169479458884925043211411150270857117968850118923856373034580810753270027070450687466974950968594572053497273879015324502240376873310348435413689291049399471287537896446338855808442183834770045410816058442184590098823125699830223494404830572329748750856983212596077953256645737062049485505645086320791448629464244796767297772160121992825170162772781956658181605168063453212629092631930888093952621575842141638277104000267448029031902358148630838564734000664843540182238641533253805083892004154120720979946770227974276215387860998421751532519886009765500884097708840527586170444056356663723627400627062611178314181975241615527415614254964078223826405327275595595006036129011752977644781029822128858199599549138340298296786252263959815802085109826124477529864578481100357290329923107766984734505185723279736447221121254872546130997426084892195283578929438642732955334232096654942167838684280906921524378207184746105537142654463005205940514610796500932137896914745250220995506597562735913413165812959289074354108909196597416666497821794431968249443075493953277310272310079739813722207625863376030433595419163881171677139626352515080580132373575227183424998373075388341194786395747751704938051299849302832452367240784421459995030788162417785868739540637261913386465683266947885589807279290367327781393201705841516036480501235602274292495163915673095259974554961546094908893858165616767581511375183508203110117597581846552443566993403637128156003354983683429815091101444279602313029940880505724936487483169888631709428079242766915361000278956673476743484169266560796237108608630094026191067082246170533373866582360235846829683847724692067665517768965558631355477997388425387825960034354551452006379218393116020282323108665783240184493215828305698593544624304675148425255111081090597518986543815859538802874299552385746492179710974991594093767110006028320381713789849641303244840657784152292793277127431535814452689267912773039347809393195963578288734521856921965098115856289571713450832105987708592652086359768707514364557948579540161941480284746441676228025310115487909180019056669245856038284817516555165896507849701225883438239025531172620011391576961704957483669913683706206728273659180430496148155069014651965102358042887606728848578129523118344413630499918381944390917328799030683529992658266930919847019961025335283349413908799022817736126563318993679175504144896237389719362402404876741574000523110148583568045523109982879627487774704922946454731051285790831339048734967828003117003563313562723829229766975792841267424126449284086938772949892910151489091071353797274714989980319280741662000725909890222342594933675064466947616448069383552976286228263474861408523305412908335457258965932438202230802911161736136599380862644428916344386013824834041917948247706404584509489805726569066708562995210314079819220606782355591506639050624645251224168898980859579289912733710183362908531208983385711232912157960448649770848916295197362138481394599458831345047074477745511603368480602534262069628849611988929026741085349241305748169568359517710321713727691448681048224465145193284201080340207649038753749163923468653833711926523151523561559120692232849463509114915917590339543160152287364542453189847401484181093482238150191012260441289258009066273071181856747528705932185602813922459445159234546621270385658456348312961901237717194269578874484511664927408973326379220538513874670779991372475757709522559591724224688288556277706971192047134982146186361750771277850281625739271272324840802456747471095110547085789469414579677234964141545641777977828064284375831175731332236007078370705065331613840033912486919814664714517796187439193797461987855325626863889597198415966095837409828433600444210140518356687110705631666791765726647985050750937532745890674682773070154966264153747480999647810474636369380713626252007715525789833831863302873140168758123793179837292897921430915422604320964864123419460885007300154129450880213376478411230444113678172775496987481744447045092115725964262405502690614135335000403257310012825720938562426350606496400298383977638004241238778534068870592369031294863978984702463962798730713395727890088391088741612055671227210880833735504194794590146100042318558767072737700109177967554840815221508785406642373396847866703545717198620953559665295313935268691566694523989890734498440537358698495660683178175639360865600878375866428688744025524682435309336171693955769214830276706506304539237804339854664618805964212034321894646492842186831859830520519022935820102292925637755482262062776790116096889574153305103278298730706807922150379947170904915643107914328260598258338115331139297682546200317459378287197988306162269639565227862279725108224841847614932015779781525300128430349111808395536861669935008614757156658231505272175089904798462401013403463900326149452406710904146517112125394590710130617014700843277058889672469406543018760915132398121624154886881380701892981356565349595058950704410030683186817538353225476045192825265896617821365325327068665872893301137360505200985502288881629221767514720133488038357047491560956555848642478462665101479037824357036818338777446984063957948586214281029255156339047102596734522805815216408185103181266886454169522332569558103532247976268910373552467866105152854011105550478297662032270670929234489891951491601494145227824899889161984783048954738843843665754577606530260314798849040963988436876106633506093043487423461327868542893503472642546547472099422585840461899391793791283607650466571143748062139454082528173533329488238861388477475613374014568685544758273487401960287058736576493646503568463779544679396633503442258527268115151354850756474104737973811900258699235408015281371164424734925641823969931944873341871053471166925117918893802929436821634571765084267479762436858917661937640233159041831077330083624089093636215077372113101994285890487871138561944979152224003795823362828972954772896007906492559746256372254786921633624924760421410238910317467924914885304059454407635561567310577159024044773755690878237602998360696167619178539471735988036811844952809061237155440663759792990257136707740627726518306726942804274423074499236477709255787562312879951965584220681653814090245802544881532855875314620517724021964736405893909502299359842179762443535141726499739450279359775697340326306122385743489293460015352382149499019781313263941391994351867073409907205543291752603145934316132689148095655483809746976540632293827414668080806410625942158117358901936020184325472200177852189543452670408064097070124793603116392990651284275321139637831278895828406704490184215123941650959015905652188575174674224308620147132117527131899439984567710375662782149464482511413667228166848380259767900280598411909102605584992838477749974058869968469425298121373219270344528937158669737904251999165960958370799911957347403447884770939414173077929851528205715304471548649062657146936335822332900886711067636599297084203342707085986957841131500428015318853748907619565591669936239229648764461874563938916219993241605238577978682418370103222283126371256069284976036685521506546071033166209634468993124964982813654520592326184621908618587541479631186797153095977768413362949975256446271630981052247422014111881511089773205782609910679387976286771655030643003927871966446852618519343977232360131048035575284318258246931043760287908349915838833886195263371044541369286643433551273375213977666331342891817580986546613083714964846630723542603989078458454048444715959031973025268083668106461407697690031469769604574770526415169996918525781541911420017336080706113915538439209267241146926335603380225103646074782774962091149523349661716518667115995707274382264361386553370259246355625362580090563112449401564614572053219550131773055413456063106841686415043009972288044617847653336368329788930808223691429626367313603733600693117505251217224628350350083154284719938820137410259888779226284364938580720592484645955366923566224497944046066839607978688179977471884537905533895030482781439742156363909121096408423352066451477658435146027653816992620367528084646231225169405951133150617213340936428204482300366545195831046975833969305233559610565077748185877344793722086510501130647142297930810847254231934279974699068197636639252120160104768487703506231414550795636395309386999432765920140710415685271993357584239079303176462741492287047705625899273666285247745817851553391662305254903737349887834555113211007985602810516325898626672682704567913697465006154836330397617835158663297575557561784740159746348997470668441641023075831031315256072350686639847176427488897366070237302485915574627442888259972816976991199745461677537767979732285733570424423618665094929452328408541586900925522014687908772848730120072765216051560474613388564903605006567636255212223348277305846880804994483811858439837905785031907773555201328623599580754208541779965900032787708829988118709063984868092270176389845803423870830933948071296302653059320664657519724104583170292678316251393833777301473126636201250608660869439973571241802475659940893974419666039299639660218845293558803400807749803170340936575565911294303727990669871848815754113738031917622942125198508093929705472795178317394638545374523263021446119953800777459830540154767418826708327089006252144578930826441851647769932527588599116819500229293138593992754928592850019467161395596948707866130872759987476236725711184081808779437880694041509726974962236291666853093119347394155745615318906019718447118453415347954132308317716795585000587365070037638053807329230686858107547294799971280654063744640497674879209279623031441384404044636107695792869882201564448720612068153906599467759718436075614995733433865759994392340509820806826316480984406516089675066239033805160477227855636333254470395103695829992185882096324217557507975457325271929142955930355713712722234411998702150017656921146082897164914216729238564573701495706053717490266171241636524597520738406577136695449202037720108120775904044526088241999614074218786668101196232931281453366307534861152989332748739489537356569061102548134215858905172310727259754193206556508517193673235605975409650738323488952601205043237003256222002802135087942022316176001975659564095402125148093223482430502935413814767069621702189748381833838999772838588606123042990208291331227378798320715081352207735397910008960055269474704137249353577309408477430843765895563217815175084279832104043101744807802695218828772626535059541062854539282643386390932832156623003120595202389690753238225294653697359018284178928946188042598808852482631825261791331437491203455546899320188770560939212608747706527752933098817469421560203694675807524512075257446543830334488626482747504985091738406231939510196068640634660247249188407027298309330535377760238508959888999103411510082681350667731499690241395517447158183983101361690133447619165678854831769335881400597516485413688825144302684478101451182898694925054533073810068190659590503101701591218353065098016404842485483981379408357055345454336363820397335605729545164005393585437168153285994462102836299826199185743235404692133232776458094349232290227766582925040651077763261870794107638584161994769156366152227278064419634743950857148736220378871692631722868046382608324333934482409912732605556089142998662325456390445823088376573574971922838170765621923560420548378724113578642282539492895757455302288978565780762420765192173367365632058676705148958049719775993330345287636722074324349068772717807851901433123537762796145141821949341143199349512561384492695058593850374524530915989565407455383905244511062900041274009158491298735799171023048690916776109320402079143639399926288831634070314163980842572569509167719517489912903452540763696405228579359370319197045306083149067324085580996306394471690516237350873171308493333371065280133305643137535330956748253352991932616085858489461465502763629929494761367390596836556254374471868222299904621409420825573309617597736886023524261584225648796789996606028281671388691294895919811546816477151830641910757956397447667663129160939536230012825584785691626335320650268582088833082703119814110802046260986096305233597835379155982647451261111968843255065167534617697762766219262537271386129311288731621971279667523235538806185652555403719096112890480244033265771265903857139661760096414124310559208924929825947577390479549396441048952348553460477462545139391016486126320024477125992173652818654903986971996370443775508050722877617212973631807343392158104805405976540317000341728579877056568184899125319972645946151330635616255260373429375418749354321876146687770978186755049248228409323868822851149893132954440422984703489940376165728212317585392626580663830127604659304596354064159575724082120666697073485902886186221215590242681651435425184849946436552632846288129006337468335245068927255397771211497385080807334248067634236071061102645378176854168437192744557982407599638270648370984085447106013557137873401339102014302953318232018558087011841549323267705679641489126532207167275860650690654077722155388171282854294117803149521152048468323484810807004391282237962842390418537063409287242069874696993923240797670957544369814974042707326050185577742849507596516584850929639033263278741677681647098157684273744545730412652307059101919203462054283726096050541438129273853829311177521422533330165719706192570940738094752387468166871871428210938016310912117720638001172193458935817736910577850826787014794495857706896477284451868410695550609886988363058573005051331539080999155098437014596462582345708386833173180080085130376775577124773397155145994152250557733823697427844159700552867460630998786911795350957857701140062502855952673515253153638147670868754690491186281372508218023181215976948349933323688657964898942877121394714909530945761083530415541622077247110025485516868982704700676258971505059358243706197128814335952379363621509033939245293919151401163406041325689203329696623649933972619252670470694004163905778863931921965669022445147397535170987872780934430724155667188880176810111341566792391204010939415584246429248749096871494407604908943186693865557679484946040445705079430808985047421060357547018535246541264991049943714858773948349114658570530418166958261585739165367397079253063471410351259682655576031164944218401600406926127834708015892773467778597680971272696971696695868361885186364963161216882889961936267746920506358130257486374342936419746670305136839635532136861474699656354031360955574666587662490668962375404139985961539527017202705362219366760787278454529481649480520537964744438848902399717037448017088836907248812607300519678392955111571357721513872684588627617064722422441951690099034295824338553809301734742429490124504280560412346062696593113735274562071301539141489665013395151861447427077720678380652557556656387878111058361389023152284015591748410000299697282134117055872823666923662539715100474662906974347149074372310149455364540693797560468224410159195445189699118448456264850248873502699739076446805218296635320467456393322360669196763388932856289563606909714534650091147815566454039375746312260862044677313762561723968816308465161951467048361859493906325718955463449344050206471799685716132387545836800292080536130711279343314781696054788532476483158196726108644077858077071063115586522182405162142156997502706691419359534637819077640281912897763899873949350174629057631807820822244458538823550888158417564234597961726918344474130277436012800148400030053023465975405420713911393547155137119620945227461139850493541978174423025514656694238107496703062114213269912900069466593201982205912884716666368581337268475599920662663986358380795391612094047467897092595982855437117010917468778941936331937791725702239336177784655681728014236082573400035282438147705944950960441877648371236624883849011791755776871467199871161004844192846267609887107384621383704044885147501748369271460660657833009346482399651821774745690347135509092755074348277547986906939335471288557886268252684377097703366756745516814870597255801442091698261006824156545641747202548218803666387017692619939599105602286077951142447349769668595139498827641541814937687421310765013669757732943673475238246364468295589451025928774150457612653376313281046637313789338134437869187874829606298164019548939504088218812018373398115045454411040124785654514400649816064810571744496158250215821491033359387468677141992041506676736050791952441187537939541586417424437819370842997198856998428017417437914456341352183994147560129974720807856813507681811299489377809222678437599863016112056314972042683488552869732986630310127554548798834512549188648905067614048115670179048450515308549109212129971080526341910513593924764486985849558111641271869768199358326845521390190668418671548706319955311719234088374263878132584244764244681801375420062325584493239781201456973029617915776782123760489784751072376466668151535662560004579342313910384869049072231929855338286725514587330812804544762571321774288053593784199390030117850411858638451325615647034472766627809037830826943579436420435431792855770749223747894476477701525010342658436350832809116640926498087501182468650385551714921082996071078219406143296821097376678046887356862884048353927334451239286172515172764541108628871727489264339398164018450310305633957346476201438153909698333726191248783944407330184342912134946282220465006015163972175253027768744951003107433100165095610859213547991862727786754369206077724780133467709245115123140634599883459843423483476013675748872212170250474650644683800594225535535922325066875516299131264015405216556442451125132891695058919799665870444365567280337926378672489273574695733231440784360404960115188169496300244917646600067805916225999793046719983793014858113553709033468705386673983927997576518951329536316090176859045120981510363487998843894764487200397618264618177701048138862567342434975125331670394107845085212376125569175603916230251921030733082005545547570662473813528557558467156415404007082599381726326335181991112394407095730822382365841436019495012494344465901467506656720116802517265705043105859115670963084466914559555439621917809505454075433584969315069713973736067923172937236644267015057626003155281615328428175279172704309127643587498304435992564501205480306236352054671903289238573879991305467583438986227788144090976018146200315627427769644126575404039615528971930854951606215709034487659035593866824819458723024758474191464306978733939604499734265203002262613010877849028034866974313929881612017533675637930775538307238181601398923456191575136954926670243071097865030759938890208687587390036989685803463783519339192677062745871808539844339181615885759900241855712211956028026673102447429392818507814348484963893120229413500171107990625264587729706428739244728340778907375846210217209832823077191153217097401556073938745357286007666286639646672537731954175043519546153884507031757638472296055314241554052642654646544265745632886315392650240922488630930034082143470756497040922415616875271407539024467401638244989549076748879406191577258456504485628626459197900976004275885910876677691172295031897006876023298104271891138751377662652838433507945430242891277445898172569244353489151133070995845675530634393175470665633417203011214931214379178051245670108775685661484680651495655630345931894170051115362151782694548153790505424975598131918541133618508548283182268840382816857874219106162977947692288199058275830328624741438796005276189346555353600493284294052478633048793894302099918051823274025834915388980791793183768762556195658460727223357279887884570626072973625127454499645929540877812288401382249637968076633789610430034307688429361108893420803234554394126097611627984750936290138859258540212028760320663352915070497857542557759244478468693374673384869625162075582202282211292998282814141880469190976300965049595297762547122046377006328225185780677040436176717451611236451842699856024779857308851923468998268256436808805354616319243828369575709453184332748581011317346196706944565692133964306100403458575983455747830508255854490123035848077381673637798500851361578792329698091983390302300790068618892143261054327025894558407023975852050654090671089596505103476335368258278647565065657743506098557385537149510229952525766759123287725646225267232606620367410075484908074450144390473457904105920232961962944039670402993807683327961084518376732757113480121160923487607284509032113823175256078184038918630347103052087643771445387132145078976712274177357066225328746244794100415603658397053437887518158469690826783873108010375358110460803700234589530933498185470691110261421264105772350429652980137681752731313390780196149034196944494189419155361299105857569264210210825324531561987850920040111425830554697139280203108869362228462786253915111019970363842968506600113225520936052291076631379168530778209595230677776856108260150416424674295331744916664118727133816479095238953551978910801915856756156304511780719896118426645883427579357130252435195349357356586925242509876945253745873552582557916660030332045977637711645576066321828603602606099326623122328201440521225058062970714045986499917215497148897118989686053394702457669538543633216398140907798616848817277188043731095103748778859029496787183251217467561031912034979840683999033999747960982793243968053333100874335042396416782109934097896762116736978708368101513321617310924286161195436616904133030031986221671170481504705432363753134371984259144293949146731910826788142895162009077217892734405272793408129927154264015200574650732128652320825576066674911101087825602695495545195431186260989463052359367865023371847217727349403898123508102167023633137885105419027455135679977199222794893792238015487040850580597881437786298194762438823406210166697824075660086688267692312471898674652861133214403276294417165733918992671712602926674192294035180569453003114591076166433514166246688202023998015901844220990899977639786859189392183382797335439510083686176307745988495656922861292035750105720203764566526307404152976492171269100146448674387172419931893767916244219257027010261848503124423002745874532608215710519169535248975362644685151920283201699981787122298305567646927934110264350566210497460653604498341145480194848234944531216565056843570572855453535170138748243285909685867406435613094400290621162616453349412637577007396614963011740419739176853784653399844814415518177688095582942425556901577469031803415503034238835498188597208172547621976006788446590285643996004658443305592692294489929416768949692784457591955903585283163216294616053095514788759013256491749415805343186578865627452871981079730664694111000609123773533570010118576007728461965368067685577414214270091926360640452714663948214892589100527351686256158733781313429833594889909556260918481089369264570565975089416345573953615698643295863333618595715455342592979499484021410098629124711942167738830809363606332464108861636223927384177740445723805214159421431933709809834430572992811347675435901410678984243972403298912210754560345332837122156941001727466039741909211182571026884601301734587218405446929325949636605030352276091604035654017377200979906822220153761230928867270180600479077751957955493768542591897745114977064849766432635082625267357512123042910156741109917802662007879003121823033321594194649247651813502960235220281524343585273836330995694009618504758373150544169715932835238350063273842190308972729150143534193292294680437623126303978370867261454935791871418314836206206409228949793933606495084515346495370011308209787939670530483967293974642526049211633717772485223321862194873472292855557036601475440030880055066843804557457148608341023476636402829182501942525273721242093749795210780975094752246074047948761480144465257519058693187934476118129740853752962999344851708503436447569891606626769541991842084388647843632290731099440865379449574786088714349766507521868574311237374903244846790145755524122895220416324220866968343646097934767837486054765691968949956942476848796232554041481149993701661747535835859489573463178753709086988892807616964797231401010681753864386059011989570533534834920360473899021744291746432498008463837000096829148272481525906887720086639200931614613790783349989482033340241268438566687434775822925009439451942025492074199854826720284180653651881186927708139777147943010653304601481625028230307916468464762577548224551854476031647063877167031278701340952374941334340409000197465879918003051215325138959793615679086727904439573954504587335773266535450219266556840771297754238279299912686950138545455992026578213258191968695776782340652520300838070475570804903197060106059042494219821917095630079865371514344818124901736032277192928748298054676154637094219879318833548662400492529749276782922464686147714151097715837802644166129405459359469029308457976529984188764113431114096087106446580119425260010551716887972087393414798732588307677076322059926981022064902730518683072418511055592133850637076541064079929203839208371645662111375250255601654126612275274872260008105268384010594764005665861899402725252164716392720602657763906778291255403007700539359792352444284491859072560074151700395007922826693543383059164966250124647486695124419034389124625321942330870554457959087563481161024476225213147655311734046319510675887067902267864617323175126159830034770848836531479103575444982772391002740499723706832735215233415020019045401473509590717144022706487310375058027853519295918538467655109795016726971454769398849249032378565712130538246518300899649910820357423061602897695956665741340157451928033666983732720485896837307264772112304252971395731537679761742285562601197666301622243387322564005768621911061374215723055061491783939043276267749245960721758693451881622835311643941630618257345655180196010547627534954564839058683943868552003343966507174054230454012008382091505046137361632696868917653545087849284080973047720901540958129686079254922301915506906019283381103691593166372298401141248381999855929562389464159894937587259400098211537297779764783633467228110922186010528221479132284880111717014931672433425840971117412080318715636480309119946611358845684324830655054431070382353599930839353443292855756360187779702804103623797492067057244903972712556527393181630634625181154638057521578579434985475309650249593433424882289337025423370640477287195633266205021082465777062229704932810079887776168863590854429982933037458311399926464114622205532478139097141029543154154706068578378016784065429442580944359530662312777676585469462890187256969008480595537977471857767546713694183093711832391251255614055251001365859439849229162671528292634131877670475049681301485191245651507739566843004376794528913879415098240993155213744695742303526964961781553077448663504585451306536913790215446563046012617918414091778844569931530665597299984683686833237425311632483097093109477727426210134308709063608896709917505140676946952244866189284617227038999920796755330350784134328000044724431758045212405886824966157359820856190804904974569225218662593600396099324959896605161248531990671032062737227107647225171412316147149455624527602702994881397255023246051613012414206377623301510302726071294026773337033551333474360553928294154648936665412232391837554071671653154891353958383709891069399912285399273274910207611296799598761146811521400527449849453595960388566532958400985678521477334859831912113754604159608336274779313906793279050408632964648942708545979147848801960470508041488275523866434480958026749393406998953928970198588623472263596968459062713986124101327945293317071248539868438068849104023347744440346094300375385274305050969522987724047944538151229919617677489956194130565343903664422931046849785008242429293724950242081783177002420655621452870526704773811516808170452276033726279261594355343166462324044477244739779273735987541924699522611039175900956685719693623694362146290691366581722461630368132850292221903292665170441429837742720694964248029488908852811223911265845142789398868272068212825102555611431231224100807562203876552429557081233015804251635808715338505869896049682063464146508905759835094416162153573894806258590433609682139430963787631101786646190232251659023635586218804274826301733258764924699144640418286444785408355744433515411742516220485319103904678017378221005792943803536393100516129154809726267193077368849644956508191591119456216308914542409368016440806676143746574173754580538590509302549963420540574859964477701250598583087206768622934497932707547164043969224612121120805801260435352822809637608133612617747398308673982214578558467979539688204687730604847850708280063748228215645713037348442749277090384681021725215315486917667703927248445982017020237209682528234345628360067976256371514709582188980048693608799862501876998084808771060399398635984532998190292058988024154229872703562885065156158900497001306806737112005627360368233472601200651373846061440357031221902440312702880869385749309911097932772272559678614137276096860947074651461759899441344075686313440838264029976967894134097394625810122839397351228952200376470152970309397720564546967279359440124826880555106140344171353240169516919196544190408272597276945319706217416302216158287927843875424039350941310952004522670018297620703365362614707475272017657623277720688264868007930142676966602369287809353997485122591772909597941829023654024479561245528258810798115553723769619545842179286825905483123338002604677646214254981321941053518739567629933973212516878938412093419536123706974739488538107310381339930229040852392206200081975443346933123352577503061231104359814608319783690245380378318247544183292260373723808064994938120555453367110340342337111102025445093420157910465959278626850712467591005557856826805447253461560651160458057269004278240848780885877576708320985521887376829041245731665073047626836122562896224488460734125971998665299819107436008872300786508937841496723465978071128608195213631992173723953311531057558322043526341247037921038421374727007324253186480205497036283324112322977702213305081090193144186671407689040698859711122305773478224672983302316122442011081297143122556331911585801851064756582349263855267015708935606309282050259481254143790880430836584367790086418496221888762190994804513205809894471513849560493659472453006224338412422549341799106959230895662608153039494150762448685052834961775618026038214401445675502357400842085412063649986689996867678340012248795646268925929140046888976481660353486257602493175275493026344692937864525976199118356737513197061089975101398420188809781016634918270368189294898008569563606446042095185143706938678575932381752151102857218681405541175581780242430022814982361644115968263695073460909839138306843370012942094162881821176005809502007380524056827771484176178885129929712874426829499416983607848127194574529132401843012958271400811007920824265203842893607406494642028149892946524537742503725078199385196757109665304318701781041665756702735228267693742699069802712144915710224523742108479014113566151245334203197963920152935737472568995948899972498623993694212814153596031348063518439533724972554281630823205266784269115869634155884505049080297747507212692052657730388120679141552090522977329659230410916421294129231308821346889433705915654113806378881148294116282935420898658354264864523952647873275765743845793326324268417642260141607678193368066228952230826493991825344238674474460495006721640471649799752313288201388645483579003045450319813228316966064294343821116076307468722626214248134084762986654387398904194068453867687484612377461224389788359615427135166816178960512866908768116183142424044409017362400439937683167678157672026367260574091392056325698080987115516613861013828616555127852856032655051410346022963329153670230818501435153915772635633806006548546049255527466519086395414197138106820935184316741982061352924325896246307115014845358319623703790876454928359501750213919940354382841492338122263974377125983164289762721518845062117183712861092984934337818926885503997040643726533854453957668527369526764209359474220914230593182245138119691520374320307106277815862854575308370658109386268713192456638631824363171544100061677723990992468415574631204442188170916976349408693577745014499962392018623172988057679934044931915648417335054660369090900481134492591042119161114111099267226779289295625008037964124329821224392217348018993594976291766394382578039639430337461174809772404978205985966170551664825310748400937202859031118035346958019975608102653262118201068719245800629072577738461010970718025101421698879701549804521566728494320330255166508993586451104857053228163262060729035406434991646025611873926163844650925737071911752782177185271031256465573350015984367409151204250391384763885329316921205082304293731737272986827789932409630425292638971586818223027461547602405236200333340848471066282909534443691983736711676850542103146144976128721364297326442893266570526405989393794309240851523627911337804754660904593243586309995566249493921232956290474539405613497363299057068800832690905289179927097459146657256362490894318726425270679701660051143876158576265353331550116358167035898798232764931158242301246570107659341468705386019337453435109939112714067383980635816872100046410824391769485728329630242278190209490349575282623001356015147547037722602939763589916849468127130615777580409304021607387146188974394664532523137929823184942869915728031701213321847357380717445216545024749559547889126515431493741026837390257918910844184489597114480681358041099196459549048306487762663219903872359543921245366787020951384882804955831261522401321452406509650991220728764417147925963357676647723245931141914020488407779725808692677428189394686583583253526054813543695455498933170339318697853960219918380133830886076170001167187298611063526402210323447046221110890707220686847579531419671598148344949259410113056232013237986701414414834786789519268074408395009051436060471081494639690500570537063947006795362489917270217029594952703283108827470408576359917939316450747702806905684631807422541247803557116400338336919703467688752668091801948667609022827073264252348000484734456018891670756219900283185574259664215530520882703374618587264478424986880871315487112504652750956268809988744356198898366812146668397935787042462503490037527741008252831542860547596995997883253152079042098703338168378403032584692371386380226654991597499808022929585616496600363573822553738776508043247255589059102819268388941158926764601053897343325995706772239914121530443985548988929482553082245941128683016706210881183428889903083338476550079392352435557387598239932980167666503356851827555334835608657247214857572796771638539628504033374122469620674428113314652177024219797723879532055391960768894168465315370846930126024952800305603155290374991942166502847948640338066662140600262778830702876820842457557016073664132370824850019752316973841183805429389201719897483194108469203263054235140849294514136504770930587341834333002485280051920970530320917641006291359112208879028599329431468249317842805589475509120116486728367520750204665838689036593498169369445558627399934802490081813876335568111678100813796452396826994113656656259746192337402088287438681532273271555950992631169276595349853196851189932564272706299705889923353518461996430650827171856448064783083113559453514676645921265940554623376431821197853795248092670222636968439627699108469110519096431537130150077207278439078695135595710119816138645338188775872024423670038421269371341523351462015665090680424375195588094293055465240901525771511805497054251514079742542890963209810299352418632740280453056886892455828682037588331868440171119446657559567170589489992929942299734694794639584563894674642084648804464761958451311819711809805830660025367285686589949146619447216812606035936458594715709521470770554068829580875000278829305785753461911106812783838779284723956130916815621638952809511539869835616031766971803406213904596097350736349115684297254769829610756715741537048040922514455232536808869239335549366114937355435928403932359096554275313088325763088333524336916480958082070405665428407436982461510526510939256019193173954102640177541686278295207462377141911797087447736968704503643998184814556375877452802886428742816642360280572675557076136858020716507964413910937237818848358910896455275762681545635191771324091083051893227256121086790223484753824775482586824918673694741028710360784919320401951250478382880967687842076588239716964859871122775473052937576993084337976667418893598207268846870532013154274728409128071029369568233290786991863202598797878849111533245631968852569369556842367823161484116522415867910676846607414447993288922597471964531406426561395995428694187061437076148683118664814509049985928455243984348010183824467406936509774613828974696577172080882395910421766745744894776831628541294557918082645887883779827903722266517731357604735462280504716240798604508957627542856305643428676394319130393486013103579232904524411485640644424558426946169391329508450145960042294125257980309782642277175103972651442584082176226944375055857830146122147301713857863082989900503847192260858029223820571271000982331976298557152979062035119492810086984948044109846181942034730159696415730242935289369714730065499110746795750046647800132849209863154705946492860906998249658004473780780672899640038234811560981029163574660368899855354979698623598369308629494311405601469986834156464501134481625404255611387426619582988489277972312763838056499353924268528226961122227567821355719960169041202307422243036010608899737063077943624750504871906212902360860336821168257082325719614524398864776162138987922717744972303006426570831578695921222807493458901167699870826137919133539945654371654412342037034233555433526045459711243292571084542072523615484943542566529843294535625773800663956675933627281688407216278277122508247335054278016922931980639391236110913822804135620720381495344891392560478656106766022172595626004468738724988460511123353801000873302889296384063529744210650282400621739398096200125826760309370814227569795901394896360344119839998277487069268417581885527187481966275738763063522429194543215756379152416591150900098161108066053853799533048329335101051053024468516802617851238723454134770713177698458936342561892133163076543116974852694332868867462528437488002226156069034157096970412883583778753507956055712644249772235737466775163774671873422705894851246748138684133978588947315995506646586152334116864858032910222452396968478498598731202238648261568597847622809079771521693308303552859835987380597694783536774618970293472287246862568357626916369575845698119346289469635428574691129795617227238328289084930457994095200551418057596411698161399806244910127477047301804267978691766408296313000903380530567021991448923293035715022206908161479607652020465416112007632391319692058403404797690738140814715653976883086331094614027616870601356099346139999145604228420104996910497831973669666736395025125957262175837945362493232344157839788415708658144306917612552756736133467123921329779635604461527798264011708768879677064685515833332531859857755180695548924218797437800416342618640504214952997536229921315121613935684508893606483652298513146451493729111256531198747065149185934907381474488974269237915033946874633862005925127689698984431267137196446577215019107858294464992711346929424870293861682801737084325500516538246627200235758260985320240528119629197698203449326526336400432983017233719645559627168832784053910062268064064835252424800218845863486127583982884636536529291840649428555954988770405790266383420804953736427247024202485406157253981805084389924754458054583211807615813893547735826219469726882015402218726611175675968102617379988367651753334898677442001207063623222861382341383971595627704504532917378101130688870768646684231379563632542761525876971002663575599476428878576163646529459637067589754800502724692857212867426375907193328161045973220700141704754196390441703797981202165088913590752164199084842261039942732897604371918050097421137095762413639591091296132283184487043728153777224861937557543298701964533402192341017714899622239769888042897578115742661330185850647888884913528598501364509776753212654167125415149692276092198371211582437683715763391378765162433551417588082973575429047139544239130148875771473356385216751553313610959156022904351455200817597998888384295376127478331101774604400161651545401520900807321586241612543136948351860693298573951541162188884452462538169408739574749736770283550145468715986080653959594228096882488474134504302069589412375609317672820234370984937457320597567670227112326358477311423166154217304809437000608876889363600272331041847199953769472278979652516497028749247351008822499666025099215225533700019129518650136697558080818474039815720338791430212513925835769121875124154713336983324450482560783429627325755818171130286915205388777012000975885225362657882007738869325316403711986790940291518450996447787373639186283382623504549816893669421747754066896762492579821093810127238247747159621257175142314696457342910404386949532696160756727864586027828867543227919693573654130161255264130734375870053767662310419907261718725495194556683735916315809482324464612906651107093044501019770128355724997929612187182374851686448346032839826467217308226013178746766216127235278824430202292107757282125363476385028479483964226067638962044569885474446719690331894683873765580127899518734303058358502226448236999921939652769856268995325886168561021419384768328345749493313327473596156070202621733632906536470898475734959044672813237895148805566596056531471965173293418318515753648952300018583179615494763222225193424741150015797258654666060319829843391167320646777411872552922557441477352221908153825571179551221859028311987198738839195217647357044861707144873568391914966707684079936742329622438925292290699673322773106087971283556724790725930995811554602582460049979266309559793778397620121268773779391080272256649517722557806097942358453399699196292536685936804914563603045528942540030223604900148177677868210139877177667856306772611255220530775068739424135140679998207576633741352476928586463457249069261173557671405404011325440588178510597080426424908631124863925988625380720301931538195064392653692718834833765371392062630624057708092304727536970598450491826660357440552356883177786870461830413854308087988940336572830424513763952642582700891556900399745676543139884000163853999210862465575567196029008909834229968318150971018543109068251645078612113101422711521132795574443791427106681211678655328443323461347948820280020677005380273094929729864967661430552190453448759931453646408331850825262275785266005282217077994624920791383074156133673515260987057550150111593074918311306159396341885449517042997448016872952668403798574980404553419013039546721259945071271527093191900609018161670802995668935043334535933632587924613910572748390087935522987965587793732429909872618217031735637763092024950147598509761736652138150935581236621210751021614483556627398046069846226181366172081080216119639581796764391459892380920256884283485126612675105403797277632468754350180645501682382983127680455851597783540295232670225015536328719611262348053320263543665964086936466937606032194693024497068774425158338950932934992292606640411068640272705069732153955590179661985900645413325503231514939331911580444635579136460717743369985464206155263216106131144417817069474757443362628069973927068715960133134210100523214540865356560056253840077741915040565963709414098958560907895546408373737237935319164393977150342826421748587456365302977192806010915242703346676946605728864865436962724870243116984221496845436279163826552278604292927155038484826736159708285883951848981632492063422676194184837447272663107394950018468202547719887274248084253083915227846304568663652538237377207165280332260469506070214576542317087644228629161821201026082958425150426398371356236577662740413924655736510240000854653264083454427372288887319199123805671212178740603840957298549846147389532011233685181524524241638999197430865065636376674654046202830522707734230995633421965310832776628825641954262845970692492573241956262874886260113173152789181259312656737756721639219923318388139262879977253359362211391801394892492135755077655031771282598370530917062565111154431764358589869800795473758148367982168868108748920756902448876977230684004916177776361856930877458626878061738215192719790955824543263332953471283979560259702529088557754881766133653766206046777392179533347629454433134003324105266437386536220279617226420396632425349903249881832775484060040951871212017192378998674655420181080675773120594594802680201354889099225359980652217038521106624871438880994978114479264903043501780824750253367768909399185128214906137859570880569508472484658980209083244675854486111476732522763469199656395512002854518743522786303988213988006587266254471728113916030901111183262741602777640735962805494801505676819844857351297658055418286785227552641246140527572967326753787830508464446786564986146971985345313610748580280686935992279175199917886236655913498627098125286960275841572423640619559094344309857120859497552900320282157737093854620558183743060809094017279226818084585359024771945609199767911565520189184984666823267880613065808523338407387527008866325857130469819835253185728585345151846380984382245205015257014026952997963551497873066348149368899471516131526416320916805745000431261208399967372179066657718402201580587541163777272174511614502865651267054199809173591935997083690958175816668803418101964273237509672872241275027947936989172704497570033960675555036269767316722932675163602049512614978350573383911114648278934219079210836739625006370800070329950506914378470811774466826594618403780755064779692746777806372462784836882699941550539604831266607336624195054382728699339496262170402835879438314579834888283963818048255161101902744796521008142512051784584176166580129683796097273626175981126599468837510013084261963030041839361710479836294399800329909133130680011671317268314330488632207952227577398088717593113098037200417059746519257688117133177881133890340993354496106286571347969250088515979766202019398655869675136114027208654214799581858823653346513841677941757771607898023105637018419685158654646857699140593408988469078907366696197784072968911105456864923696311975429773186582618344340268702243088498361571711924549873504144068049756195513161684872626946900899630043472079719253157106369849490838063272871264590479696475521531183594590031762042637623708593009355307646869902439399718946967475845978459504644562883447120439576272359321317230953018066109418494588818074439474249516434422687226753253141656356640822320481870645340966135884072652930152868837318027250267915547365347321981068736823734408762871053618008508535265559411203834635074318333501642838624736497833214244863980232649741438695862855614662352568723490309727718836523839415668919235579834298488593048156387325656744316222219651971813383563984281454966372662972286618497924194987168379474987383706470072803030816390808337008717354380164685339594293716245200892576610080292386076374741077861692570410079204204610427210471010553616252328698565172042936042960469534693834976930056347334856517352701006284255366518172924255023663762474169724435871682620478850188654718835044344045956389040762044481342951249828618132238407729641135698458493959785099883376664647687356412103681159388148688389588698360252603933512084180567122348336696071340387256477587353184091938642425388763246027807537299446699227152898343555384120282765437985569695024213272619938191123898718716189816765140236828216582483011106339934978592938569669963184970951588920379747346040174261551727133536805252482206163039707661653544174124748144694979115163858444678297125014781853846455442579715848202863845779516066099062810782446229186625571876216097167329959518396153255729345042745273170295371383397020843973245740924871196663509026231432659237029998702996163614864744577467755570233355088997591087028898922660010324214065088785209119523672612873743205999036750638204126109588090316498850623600831409953854535840308680685645441681213721302203547255184416502102963064973500505955552653852680141445907700584405186974489646787230137833836422393738535750891895146341969077094332544640735238868444262877570657005752218102191538625116701864027633417121044046518470312816951567991959945715359059624068870191188783703645981846597361560555743378195067224797486235814152062900025892529029941723825904514243194566020309797709541234581736797319151466144121206366118980707918006735525561136398761229305082167876935115051293023468781806992656578033845085412277369590270198672225668450653147551297656620107747254047289416560732132281009979266400125599608540985896858397091317780178609576233809041420753707445375920526511785534209454053318309554815918835920356459125829203633850989169408401790414237223378069085920236081149112902312865925707739234806258833135377394194484486507261515675884475864046194324322405638487207181547154921640167899429018103109804328423606680091400541337654979754012305532596229784239298611461841252673150751049925933513714063417717838136242944140630372253341342119869393227086618762439695351216510018713795746856706529351063460046814174653033154236290263991447133250379994080362536922735497968674736281665439074444298510567674433826732238331627937260144995514188584296427988234715832234908954435683063378287604605267560718130368991950726978615233469429022271681104747139132761433002817292372904149892523466366638112625851858362128264195985410727024184030544395823351137911279534220192488689194829432592485286235449053547320226438070943668649439831241530229962185549902628794127580385023801108034154196969572189087720040537933401880985083138454769955992985996713285901479064964910254780678808644492146894476746896573941461922118848443253077912184321293371537038973125759870414723002049322119411821597572655220890154153496676583714020835851919983090647834656013800589720162331400712186822663139055008899656685816954284972149983126169626267717955384361452259674157302589430507378181175469376597690497179522570471552981983166623067117584815050747531617867214548863868614619423323619727214251469426514373391899803903897459972216269347445562193481906829945427610894884541282109251300066327823875028128365256851726948198066166646291105493830659056746869733320470121786920986730199307782335898769179509474562248650689029987479031682874354837310187765237028577939649879534420817069960800865136050332573223403758016345192194235981093067048266984207579250168487131788030051067421635819874291571729828329527492522640637568498641192274780960712207838083954485002448711575986519556940310093873490774558618369967462027479873936451423562845963820745325634476639707758190063929158112983634586976103977570115381244369569707025084474759517647384581415629467354392238293301482872812659406987999736974522503474774019717004816239864787768934547778204601883608778195358710009356621889275270649007857193528550270235022137475135302457179397326230619439033909013466419869235230500270411589344019471362796597561897348951687258469572718008971274566663537167236268444240143920913685833439284804493019497416885708624499928133914831194649185596046973550773173509788812872990664613384746864181297687333505105958255833936585305624609783669457292189130756643523280738568852564410958389004567398762685784222269994766065612896362598265151966647914712394708061165966522557051163422628166327329502476415690105227129468459155766175149265774112147404187447791458781134815294612944982660895689833425195576012225007826321711822786874739249330271610062072440532471630451674786318996251412829121614601171934901436793975418972045897185585358592170093206893093084742335158963727992929388037914757296251651929061629840860870889439997003946703142530184533201597210538864045964813306428075480752624510434312055953664491031185254307174199258179455635660818355264085623780676474159969826385878129974268400499932587227442010804421470159820328196625094089120753222912326808244425270237754803190296941206919238255290892605328012276574242165961331151006787649213870199615573709787205125187342075193659732408998080886735734090053564559137844263533855346934159908541213741049974513288327062481675833572002072467372672323085305249778503379705381688861715546654268655959202845627618111991258832703883686293523970443403324996354939300756450463980177560195479936114510943910142046490136544110701215606675215364610740090417388865851982078040828545841498853443890979271218054033107458137400211188834844013886104629562330021381600534597772759351061627201139984668192434852704370892249871234227847641122232194027811212361180446678221091037599248145599783079568745403331182093311953819701345596629939397775698726128024137095074713515303396630337287007927321191833180522250995286302801621247819399860577067536516927452213864920412044203875381963628676308396693940497117179499764856603578091051725100792797208372400026412532198329598190741013719350765707283097438782911607337795562327239295405222967040982430356753846941800511673645289743223628476720470490140842777290622748433087216170398257009209792090955803562994172572163639181511246681108517112896949615216111723109356643209259078668468749024275036006092902059826457712322368303186776946133841960351506047728064539711899119254105926545085607795082861566371609612627982508751497034099496259872489695664239537015216973248526035697430141548049782769692371227026756043762178565588758728327854109742816456660639618438294958126955001059479517912654111326805165902916727666625120680256452722236529876024375311165706887246666914079569266279784675670538597250104331781236561199769560285935131176570121295007259359201545395688499472919830967022607993232855643989142145047150333661822557739376249261248342589721893789087482103497540973074006319396295002491297489755392013490068654019280761413342821821542856008906571294337820428502049912908039898015517290143351361000003464970196204884567057691052765201671785657355667024372865129434816615897832947842192580459500360166010518741297874808893592376437509804638830752822967410571577807079063296117793381411184543835246970537809708436957882633379089611589890009219150577014075010984078367794450041250206294974613480840194342423208600146000561193648314476572792837318021328359319720599256553420981503371301760389904831989055844556233443031822599196703557277132530801361331447054564809219528736990212167105904867301580256370764048811432271366189636345101064033325286467889949543677608754860753830803451923528342334311275685113107388558530794686525092515103989344644558556364084115870088717234191104352155055651173211167226411795093163753840089103558859083518854861380100403626891607138628469474469069200218316625725061979018239130403687187889459313804948263745755138785947710304954342595960377409336864285666534775317379329086441267695741898819670119918579672556471217620935827927398933606753097334206817094115505763915009398361920425734143575430147705438340898888189633094613364196133110262209350068739092870743171987327478403029337708135794680472655326048524071945485720626778735634381950760467129994776086276052797377609559709964666305845577906284157354806337943142996728012183397866139366318492705220304363703990349187210704197444332468633709240126141127561430424150796032019935167472474168782142335545992042743905527282798116675964786343259670233047108884370973476572613733868732403716264207990836144330364109767094228604511923170366267133578600386125976734214641482698451741077112861130035648358606059393157691058577312727178848405294417382884310394803531171857101881681276077078369002008147446243971503755637805990694374639511672885675814345196567055826854493787527562115987893904114654738951582851909026194545409003672060468329957632674102442529405063679137920054448304147502642729346035633990470501895478434776640123525892255940984898521561557865707833803081890304001863803987673723229694931156731786133121097895060355842977819345427929822663678375176852465922550301794259484206028497721325033124719562453002195646235159529442216137751385516065573729364905608811577091409788827167896522047643886009850317222821301264760574368923506239260872357148752920172181809477366233913054327726903979773920928776422151907067335281587106303186969470429528347336046531049208802101574452917624422864986089764688447428993614419643416088806900882283326570183845827814454310316110797459198949047382895173084830656133663944910303099779223917216965994394895944572516162001710204971685896289367193956975072221716230118785475861857504392096960398271900476693702761531034400248853298670276963547118664278156085846456661419980808071196300154073494509741834362018857549798410697628713900266203631534284095086061894637442118876003772868435487935349065189578241774315658293260019846391344475295368944146691576177545877042100653311126726005774393072262830570556997118197148159288297300786378983756634267976431903534876562153661069318149562282143442660974311771595669668969636415920125727556395833071223170094066057211800860530382433750354883993438136971293158534510710881338256821295726577611399786558464789703558034805770906755061155651731840773083711097977894571797819269759229415439809589190218134967864679369043101967706228852949311116226211556832117858172568399977541002149130907274525285521918621042303885445298539237963335450858131571775774739970533242276621298553058959476014852773230161554636445722334038689308494456261325728593362050278906687821022798495633172706471467751659799175676087695141546935060831491745164060800500540638150848619054773445490184303563009133043104192554011382618002485439670938916376291945594859085055066366536625725956725020659586265698026186812154674145972251987469163064175182671814678550600397534463461386883309503865720688257724093503229855864831696954123615155892919015803273576352815091797896884540735868475279521346007011234752568085452548894908325687794449106015367159735358247237813760203029522563228874662747084829718690256251035623203455519122758906237481329659437803045986633670167104748440452604269551081110665425413202243763740810023676263275633834800011110959703272623875956292454699836882046580600415468621354659021110002116203694735649526368559877653586633144029711686967301859395268494265246090448798509751267220481637492355849617796901088606987092599885121052499224763731162381603931182603152363050653341922960439540749820453517896727412714425370909282878507821530351352841113539583415421387498657487544933520460790859105998006830567893612896703138379785476174606593097555296073457994978060008872725188858461878662074166843133234661726214104378455302036366384257290033277625350842494775247033110178993616711769821292861191768641476158343797666606542026501298442394268708008228576177249007549196056099751339819681118262444906568222544234060459685957688572135455711435152131135251568386132355077227008410679194084618921637545030400870989257215565044913391249941094169502392599403977080355704569776266607031053301365374541769383687807789691827590854354679939008155859120892988933156500129024424277679598423253018676191676121871028042040885888926195278525903923517715655852124422165830949439992820092659683306721041425204958525902944430390760447696459705080066000683756963170813007892215543043299634634982386888017694668714022179624700718690697579025261655755327938345224425819174910891123919755826495886048856752945745860145096081387148210114006267286944237133961049980857184251645812898334102213540861830649924673866466625565175553172888486672972026063415871268072302044768971066882665799434747040223525906208013857877655200868712749638354653697917721240890362472698401440869378136962462568509906620498763397640025661848789930583560735144973389771649132645495302718882217997545223739300638977478535145479204379017425265935609750841752705151870888299480227655018371356030560785864082223359170207358079853770491392314229602880591209856554492369465944725287513366379703587725944387809931574295684206536944794859940716043451413709104856501809757258784702952154406236163918888691731210229171618769632604983112203516866380685165726774331528609824772309683517255926208679591601166682316554420577628253848982393618603411925524818294901497429184382408972555835851712463743733466469957659194817660286534121085871044246324612834672218171242110857219198925640155797034027791383013421048569097971004222279703829583158019615033149557433996859924171617154673779032548730683556498678832351334387629857825746387157730507087671292218933070040739267631832435442825690829890731914210258751750684544035178172064908699657719818516527890372739996046698817156115074300116510920478128707988640699974487613147001828296085865825247844031702889986571044291256309018279236438379843389814682596266875139295165555835772082169126995308505254976226978289102573963879690367316117978252863588608606434350991357761598708378727656802057093836401304675581469795916848389736625018466470974082321049043256368230616252594973053140092847749293506074205209337770490133118227095425994092735711835373267458025015212704489297262490530439463823227406992115518844971822942315330230217284547954538873856184125188574256149699618292787768813098545845783759810552537320840349646434672892969969933798997202519580784013483708402579945301116773345530175288105582492929362168614065489710718784493395203354205308118862807123659714148251665706010986215642379325406785484369719453735133800556375583910691853221909010769114136437024538665997083361334421436900326493368179441642347481578535535349928409210772567093950549167877165146455649109866308206473596449703256355765142218627983485322564563932778853319334961559753534351149885703305029712554154031126265965326466071564955576272705932264604997264877886877785801338933627555233143503942468466241135087662266434698496004810185528010004380867867318438378517344336035189794395287474970181396725468345699307457828755678559488608796915326278630181466340982257412993443281237023472562870624483964646690380051084119272457358360939929454879161293421756977255058397256420779953096782966880898188241557974872216819000134909371944495882456511628239013086483069520817988682036937877998595308617389447877546595835127090277214166012423985074967782115962617725397205984127580726906108052538513779583193529907674117901096463834798728695683648778337187846438363159796810328299361566163074210758007095460583747910345149655647660751317035638892054697038701991452537791964336698791622060373991032272300465205312746342565291137360215026742347923390179927806415281863276058133511045247335586306546547799483878153275790096171037892305736140955221208753761060429588664518061761827635973165739830984292924957556830094120960934822122229805962198169837580558630087945590620111984055485335145490099563848744200135553910526668828844019678566072093323132795746876692692643001967996028851259341008156886385925148819599943389178343494969231786279216473877042309404483915920339696486115662249325739329355708448361027050437646672414077124154842380295690911737677030831775159205089852013887772285230830925020579760882828828974181635663458052708791261157148776550669553376625624448550384333445156473525699439831395351686510452923221724960785614900853333159283948466623344182417354196754730536235539099085155093829771713328296676602604012891436385299293054377810753459990790083886575917756030473571625643894740730169424019297298200696093477041716897291141334636024958770003411117896984627877070170448297857881408488498657154930128065737994430190109450345117378110176385379110046724375319873062985856187932667030492973647063462396485811114258629691067884576551117813853093601936060264480576146951848142107858580883402054147858352958036615456961916190036490963128961277069358372052225672556790209049856688225675218786922150305123856714520098014439571072595126267247852312077211724216991704298241982682739498466469631407919774066807073596117541517669019563250858816624674420950867267893259846315005055617205467737201587626815210985348875741904334962240073728332055475973502069572345958192488601888081735811301144916619351859492061822797149999424649965490062828847398516552254527884917151245115773024826195411965424199811079479406283883040991338556852815504028969387650451210231596851059004351503839108927079867797510915780082233215002508224597753541139705080118123072876946382395630615969592225971873873098235071066580732781191311393884563595854538865943238694128647001763644249916640655112327898040487494558017649944073843588239568550686728253550854068905578941212170721855038858724596139195430854029964762433839888944416086739541551828129899606952787688386147419221503818892843769113889488126052465880428103181594386826683157000730762192484841671563061889298030775902463659695274972666171485336293669537904056932802351212279408027274545100735294829355023193546966287979120615097904413716888303008580566595158259250426425275032777216255341823964079488611621323119479491645064137357490502994450381791488921067252278234566742612514445145415744862200888140334977936284793438072852534907967008582988636935403973708191705283239991938678706194302975387987133368969752544766151232868756540778895176531061824384747096450091422365951880818649999193663976256583296941129513267822131807098733287086715707216390359282056195921431165900081310043443959992035421217776720534815664598741861761605274675343261498043417677220630057172138320891206642158307017494686668151941115323262230143017215126662728728764562296010642453323496557966014279329466465464432439253563033213048779128581269288148512527558769484385831214753536563011146782740328649158647637117543158613803883412991129023896840169410785046097687843525612856035011300358423973463860942189388160680164373781525868105607222247329258168704160995899383795221583717984765515697652987391261958165888309569418316569253655957457677240250496358496223034022501044540433125866749782586140012913516824963766603602701431030419003412676170031206189445074632720853549366897908903228319154919361690575374866910184225319187862322826626252999174781651342248096623420380315020488303017417281322929294597541634942152918586692680291655486549155161726008941976814538754079086249309106896437341479615126765057942164733725584119662288039191318660593137726124046845180335856314730200714221963003948618649007430539188153928069664536291226650663813354881111245917008187017110589513534569052206845913307022251662212446552275164941268864361362587920902061663781575295793625309760216229721158201942496006265169127168477623161235979465581817524139864351717416028336109292917589149399364253714834736302198504971460611617533987704803197235549913112050818560616367051303646583748703121212534530790012591675817972823122864665093399624320287993950375977143433557689398405942311018581794140128957415304338371519101790251288947429537880104044195368277272178719150754446832001298373630031105644848833745923246866566774121864070577747767647468750934823555543510539588276823619315629524376070875106145241755904983823165407701388557459603286648458411801435940365129223961854490970067655588050493565274293503442054308968289517662034028146167555123870727728139429205677599322253359548705346728695226078446077535694643081144399428262106617902486758208930504961167594713834433172128454348808254499784377128391174126805411827328509509012775612250165972150540564883090787854903717056075667339680767835046586691153614597827363424829249331374201908383968034167604198949527142338186537601903555607439658447025603484160601021205510366692558890496609698422999402490071813449883345913621861532789319588786056528412912044072684292705392649175278812996720384572290441196511200318210041829749141661786944018646704941169606378223725349769052769870147773007422550378932166589769059611687903602833269408951370375148459504613646804317149373231280607711929094901201889541363035080010451004091140894081052791606560648263670821329835756669613112946065124530456298761949877847151385899531554627598927096535504540745167044078913105239269156784845254881618532025185414035165380521433334421715996850214431098404113022347914702350939968961170685911606948682768643021695437301888687589450927204921246984119960573748942017320226429290226746106521990811955502386811672895455538997480735406101473542495294432123214758799724967351457342863458496280887201925766052535385034499487315523986435460597381158977354245410335264684717072261057288596803988470589492581858458191312760657231394358057753890352730097396041361598399951270653311167938177000165388546894037334013365837374336734575356258605636873595574306818085678145229012792400954066386449241069910258872438179110564269095769582196203825255442336906613028192364357526884500142861085312154705001849972232130851812693878832967314508077416683972007918804948912998458528387809387444603360337929907355644930387704043951418631459729235780943102565753068791200222712542001730282326098836635187949304584009995953942253372306165420260691406871218586498405124816069508576023786582554474527153127324651433270350767733804195351050726355629818895998696387823631345451252506006681766856425588526372794004791364352660684151757025528809940178609634101736282415711230893549149441424978498801114805757130289950676353011552249986867936868504824364373086301746667826220245892679161167159157263495133649727136616234620262402239008283205850851403246390425075465669634331560688503584069239386948841851050686697356716131207308219495537115581824863385563687294764057030996721592867406769237926053423632254384583979979471611263481431953412408961664757180899262803028642053646964743847976565961842641425079315633058821866657806405405353570096736102640469637134867653639192950281116850265198476881846350683037410341873588517116054041149388057617530953273504833683661799510280171260647654504410424549450119207090727666802453800463200120022916732714388180907934337840197063061266897959702190773154233202924608345238401483216956652116389183152100948864944713361662795491218086739123451406513069533226442026726492349251915643476190668910133684900092541841594206543183744170219937624391231353491868707304784005699994802043391946678462145609318374709471822668506031390401342866009449170868645627466816366176128881868926776146691025371283391704475075910095813449229745842037087764351878783522442248597036745443262254382489387056286787548746147262557536005477480268094906121627780651651853542880622335937729785186669407012990979941430265228444899754902801261970568231703679125849333296783243332940064171243301333931820945605285225444907870251405643236869556399238725029016591357974711927749319873851288846389015123564861584288616158812463042793341486678972220107612693777354820181356145299020891879367387350106956874846293690588145704587529731476889251950526956745579158475735383627327995844449982885845253109878648988677571895128566211559195300379215056776773483752876080071961309687265581201174596639473778187581127119235466783326931133750828674364890869939407851176691082583227819962369162680072464374341579213621797321704393406692132546459353807270908508472067982565610289868023840168880167059507430429799125692636398459948378179483898638928349277209241424659378801959109470286901174322086433977991490987446973150894362806527327735074445324157646493335618289169827575108639844125371433589058512027839883807039526323572618976780239234664725700437724182968827936221645833013214663414731476748061174932153462721691664201182509934649677887390640739135664283473843612128963455421746779894020097151338223032513204904946733609633362681182819419764209748603804733843599681268307669070152740125891814306493991978971580661945634081170676366777282545217462709091999600282740001942849759433621754310828801579494177275848242623480020622717417331708211432405931646690861099429342183731743259600038280362893868590113430780198476411554703051162379388655812825244624599066525163966596551391157974766951280352499567292951945539802856183223246880723879310314327984529780444627256691595223052609790256312104024724689123248460797254191992790124871978952215125338724894717965906671649701631687037056787729154677147267649517757584555780666437058628479204968333398658375831252397922325633750921887767598232198545355978540324374257510862056628692245995054271538318356753289095438767481639762624949388634895411585944640110774519478488876646027514740362072026981975408913578113227995105757662391670366987393310336097543255134513758106267306261942761051369360184252000215318748078529798617750776183075462956482459047953548403168341423004563597612909673207072718481318880797236612464384795096912201613006902744669358683386163477654472222299823079196593114056640554033959258321460498969371618093821182068482483801631949629342129704740595319448380080438386446286361143590768693142730307915217766357211454099257315552934809158954919922140866169663319329644347945605909780117822892751058895341487638134407755925549174457587442614766907045970781509039267206201863063881674074832292436542751203041714431533081538033676612134848373370993675442543968761106729177894755329576922736591800133376621229146512476658570883062910659202280722229182757321406925348412128486011301788215419603224132414066580011896979046839059042559414669762303197161129023795584121724119074200448159696322870606165766056691484056330808277424762268171214050801937857689680037465740116374362544982054152082548047372907134412958752950877532022045213326483279771734656904597530003087210689951045903523582747580586742398841906370635266577143462479790883598641150019922889379269292916342741880194170942397856765190833548178485102520805114236871637533179599135210792110104479980315474157200370806282599832687497156782585781012750104148052977067283185614533895921631779054644895524840114617909314547411644675514789606539157244656031769844160843234715611918209294440373533076391558052081969448669609612737211169457070613372530639268625791058891200341706433036534409573876187262633514203768935610964143272190056110373789506595760916856451844517128614364562013696721745225779733215436534674460627002820808033587916886634051491690520169255689807735245124394491713867797734254003976443888873781000670470538014845172769543961270072267517934603346981585487185119767144375397825540874418140470567464356222691316423609556934822370848614511477499802836875420693705344449268292896791565925820093295252511032176588313507174251954702307402644819022216239222007384383354889764754815408745883795251352260651172701367517433761928724801374260578469617880705498493059958950800445822372443988061780999357049200983393319701121922700751121096816955418130247092104032335640963904666487812893115492541673201244263975862115287219053882449586886426422414685549705908454883999745847584785835107702680344753627333763220190156381142404588742149058316307593412175994993856843038440660406487568229611429769100014352501682537998289588384297612116727403472190726327920960801457450970234281759636525985199470436273133984204699433607805457142818585448315121409732125651342878009299250446595069003698345956105561138142238344249259859899732946780580103604946857761218744283496584292802320052623433543950201591159025259492073247354792775210054391322697862951469266007552028035163143948747260973749731426324952238289005851891787547946142011438841923279844861029896215966401926277731421467946693842018401314083994943858422528593713784008548314846416362831208149755464540349506566668733216331597155000230501756900569663137481137770687391697821755000242880994171939139857139258354142868868012779251016467809622075000491478553930572070947856444379025458235395592022201972729374713482546052842260476600176289669358130014407845337686600285792989350001964282808618408000621046281146655151333388688663459961335278632693412377679141527828956094824384159276923873386192402617608257560966780803055548373939273990130057817736948123332518053681402558130617928976861760242040467903596857760437026071962705071486684648004793448973786040090050442108291321944881468503964774090479375507135911279252996809012342804433975975664043978198207070306197100883842989345453177460023565876831409917851368456769364317766554838273298149028218129922452254702280205394664814865100380498752272476765633761459367912416098041895017879843189055557520566456897635437366940608556816233992622685906002421468475152013014365144685507383369058731664672537390903520040617130816258884739955032691509606541769782483031907028664294537699067164449503690977068442835363117523690077172773454504244094064506160423104396632090393976030245978203945360856078406808037110545548925981436456227661101708830985892452067887322432606035472786090891719338488926554215852970603883299388263939964981690801367622397988550239849940603311852372297545686021776201783243924602441072736355553829553046439631689344426038864100742973471976825035499023025289943378666632410175455678970313358410640036134637670637986463903440277663159505318388604377555484804158017527553131060935728956320451492104064065798049337247694168571873059122899692422443169119250874838353107150165941732058418793300482546509323086416897771820258183793987687734482322467309230562368795925758407888404239251740442542785279332674777611819902187544101774765731034974181249008361633779759891761431343757724979038305998151736820939509719947817008096542620134928153930799972975839588370374219777661987748080785101066939744558902691990613624624259862661998400069821928244573544843072726392929338102020309725120341094134207203266614229475107589385704022051757350941555764875753289217700061773131556118231625798120558114071095367765788608360419563233727285888151272098413934758391465108998862734992977431646375090186563046525621386468041892444672402317921425718010822563795435379524765514609344385707597765222903746328652630355497384897045367517502058197370183219579241750007469984380097196158268678902734753231086490398422821773494835870491119459085148558432551482989067465191313588547332402737039277956379019356303156833457063502182082509928430892853759250327241610497356840974751603096585099679068652089569547607581544979023780809358928852908720741536384415941729384741793183296441425357202476288370925246352448937602648967727605536826223224844652678389942990239240449039735235897215934297289716659959716217820443261090859043313212820623185238510102895028196786933909029156861170936721290596761173938820718679365369780365144123618621565343242237342316598806887531083642284668112734470336973864036999722297448832606914933987894022240000361450487480193775258616930839156477976752442119494959044044204114617194929874456046661577587290199595757162104214463493517077436775846881950447317531954328146703681468470895178729081871340728296386291472609858382171661542648590552482910074974212806019475722395484450935485565664620437375640844186087705511740649756052761872986419172103290984711360002513910446072586003031337114633257899201654215903543178825800149512580974973657732505185011174686605789390484303963681917248032558680825008790737417375072229130258999827667372372179239568165495862522655951654195965681226672244418293323191707143431358165265875134942586307413073767211338401692969158082086081857884258824258888308038187546947724631322101912182793560385857638370385835360731617571112041002787917877174264041565297634711449588161560695512358040643232022851567236696176384156415368148470926763033452781196158909013560512799550604427677053996585810794524165763036003360014739801941280512102530567873420540028035916925232232575049321494156319188410543637153525961622998255452653093469186495483093172873785711868458111610240890167718231929622397877463987108539824326714189708582359963671408132583590403459344281895588616271284981324833496452669712516737028024704174389111931310159365584026521871906397227204128880493596577239374526881783192263154163130159484755128837662561360207844035379047053792212397540764402585066617573262958492126820549411658964817219352645264125785699642664730090534954166010345106801245903078711192089232147038890468574505270551905098563132317334542971767561523709128804001003447459117249357777952590685453763886764891200156439217011964581108044314443618745377200573752662471876890551796256908510971055172498586337558157333520648402910557727164717336784918638238513667028409916489074646923426337719749380392616615631584836042866824789834221161630312262205524767507950223388408368214357231506686440555325563648058792672509645427715470301372256850945487775420347824033142946878689706417471241837882010509527422918835327252156337910069617092929289539810295508907697322619212930388741746573165688814133542517672314562380221974208637373879506505956014175767052364027273158388753737998208912366031273537264689737647994224218964596452907772572108956812812297690125452439133141209996005263515983337735494930958384672207884311298821721098498578616270088196093231980635845492685477724055933857294865140837458598556734694532823101049303360236965866526278513797694998465625522336416573649417127976289258720911942089385047926039386806966754041295235284194006564336167622146263307467479425684044641597365954747791746789503590542488691453339006525183966864007175568536929006960850473360382815035933779491441365346807124987861875722499504786294956031706993051481659158794126101617539350765361377101771245708561457341082875299609287800140712177042381549409388221181835497153099830814346259017140477495150473281467975121324046962874762079987986281352868839476900401423872908165547691510140325001312630683403538736743887681754631004775728361249087282933319913104291330918061232105496970714334398594730662991900409191707296316390975551017547643125225209945179838114509589221269542658106115861125304655311402036937264399001559445203119204686156329649862419998331794902918199789924859073967642627236969838910054550233513437366867014488976683787295702612253165181846951590879814602571684412727722846907261027104664581540268096316596602926148759767728111075481909111177169194420705911710721490023531095599963839039942487705738055967896862686191497878125769030172193299283304926831760000795691731389149476729400247787563798254710805532497593040399011900465682816772310628678945581514348319712664047952953045228085249319461468148595973750953027833514752250920102508183858412804980492727153037966814851112918706225891544593551872762355045106471765298251166853677292493956662369300300737160432252510233507405421408934375742713042074746760545399579106191701905783125768930553609199191731187791110856343622796290088960835288047996761346998309498141137667961317779240855797780513457274165980100948553194774503244834232334860430058263821760753173356860595942297426535484098227794793792764888102973509195456847473938442163683993508353480117277872781303983301866491790946073654132296925900060360442305545449367053558012530764146562349862953582442418838362305571249978029107995876719465075849188975590729132403795744799097913695528673767404576587636797012285119311331583434621123860934847249382252751743815305342810070795673976191128944797957613901790465570853562425806478239379380169058448028801198784642212361350911543370922357493898781110656174505512260070107478819371663018294297089062042711961862346626871549965472049725728514863367798340313605990792794996366366791164372595255398853162723398409846789538538211524660884072042574834821319638471915834922578096309106225758754486033724115119269703606469302694448797080847943541089693943193364836324284408328827565059541186255108456244570440472081500536292607710953657965416494888415942573819140266903500479340084972104892470739608563669802203994435415845905029039697157352344432145409429602353110446460747011930956440278330661805523997114199368336963607226076926331991446838583132407515458168207787860417702928157201222264483495849955919467313132763976508923342222964620807789193191383583603833368204862707432532777041330406421519402095927356130878209254356900148277879526042563346394832766005301088606403259778264980752418226615470058596300114992155008505638583437834819947161403018337310713606750966026134431017371823864787560481126379776518212693268178603310871888086428955651500858991930172101649223896192431870844850810820684465029615157677156692653005512620902633851075848417283766016145104311858304062333342962152450395321363871237265201986831163272002280240577590066372467708794165706715216950348626094437076022844444732579336425199749305592860171712639630576264758219451420450262641993454761868375548457123216237509724927870738119602309711119312258628629022246393353735431792810834965146721124475567775451802711767830966370723550418840012130530138998607970837208637133803487560410619633262387581147810597979281231580009559146446442167280072594944859811915670750776783656161725758073604492895160577454914379057632639388338676691876009586684087475903800534232510547428686925907329700852212014353147122577199537988644743902810559246387369128813770933666839384841303474208443795839598484747344456651013439485775565195498140158561244950017019064766913835270616349802324047297212848905296680752724902824136459706985534997716362240716132574503250395516336236263017879385808827043965278401720821846625754062429460524049683923121153678406463943356527014969650021484184255222617525905683020308279756244232188486721293645174097756557701203684165887367549126572744455146961496574716930764845760632125770260607662133527478836229435823487243843666706369861112285926760656551699461225505646538953081461589979056224487900047115536952242443997881037979197887904356530276796131574674239046819442274710678486107235249088687183275624724619251668825092506046236057622809017140138326290412426420407983283816107552367729874125904875870439132456506394148724151140004012129948118094062535083949965842202556838708577427073583782855373870278082212552240883490291926587961726694309150935407266891593464998574150418935259748416106565328480285425611868785107485670505864844452784802033573100586038196731774599994050441828748003584499689095279195744990066818618982889938479344253476151047307200306533240791325974868763449106248478954094054158016403387343303823984201550156249283757621994161944791651698780498408918214601946982391790473889923897306055294888837118655383930769538937891017732831143247512069236455105618469092615058170678496818522638831266843085326778309844758392937718172889359514538701263163856267391660550665733090785536774414354714384093066491183177383024123063705015174587429206969785012415304660294858135138861541281910271977998177624443279308422808876810825664179711812098821638604164687842338002139363705058166070066980844960474088477001856683394893245867626473145587348497245402645131820107357178189404733029704508013841197013637761740690732028900653730631055615604517847806807171778182690890845677129920925613646088309564829032182058004880082698704110549955300766967691122409187567379129821270072473764058438135110447146597903963594507691547527096953289607990171112937571444823016094670730844021076120336146985880360032741076045263629717443295837804939158253294909572870347185007580535344659012830834159963760578527433224442979440053104220958431835489855954870522494166687140574234328005800973844132477997878597555682924576124735582605686927239238752195333924769216470721174139580142667070271504692566442111910432955073034202983534334487697794344517177786226811726788495649889852815360132676726020361282683190406127695529427987996541746488031804519126495002425696105668237359905365318221972092304865630843774414489323076562228092740811613136562646831706044166556651123014121253819886846788521598124507950690065897228128999635070003143110522498461537044980734753808905429463191853577068141309716378478195413979262355941901443445920027795404542297778920466984181987396627570855716476787173502640365501190638871024353792948933087210449378212613486520085876532827421626013917830634648359513583894720690283332729927274763152920044234373149120886591065946381530704086003717218286131341835969555399224225148164911620167771804621828227383139430724556870265341261722894110921442810558175587818692196965251830113353162787070458331752345518490831242204164011515946386907562142763715277270290014331624690975115002855325861938489332932137081804833342815344579759507028676441251429200717509341700601129596442018168444997875105678462452582483975303351901122645802206782294086019298793121905340619251370380747666243964576213426079117764885712583111534646510746603221395887186099360894127760900009556561407028793095981474605621598663500893735628086720786852065946658883774709490417867422990426141786770295827640260231973327582317293189475410724913847793631590788411438581976109864708104072840120083266006530068191172253011469982051763804258321302663269654589135817089333931807725493056805326135131713814196560921803996765776851831685450681452127071145564011918343479649776574832968725285489766520574292953188871337562734076354351343337460614895081267258274501168928804095304724924969202036101123893236097123729818172091137543716251906435467427880162068348489001830084485354980753427799059947723507981151195477108206325958283243728587086239315898598940585567999009709102516064358563609545941267358205954129944705447403160521212067632704698514860708076812681216165009751177663020347313062484815855439238449998219066361496346495391780091695134822592095197293084084534899982397975178031485887814914670811756357947901207708239760090627355538113946957402845592718029287878752918155716576299871438474277531902965301497578890979218508266799150765679955572076031642502402299804541863879856870622281578673373081820673831998760255639196351119245849734825310372949653436209171879290934253984731486121639425414062226618747927034314997156829475665267574891900852733623920229418711295001817153663221506398515049275630486755058964904624273852689823352794351138875013128962195140486745855691174473176780379780319507221936613364620648237251457649598700603819540973924306806831273799503926027336505083031767036459049519743748380112588330283131645975043421983138086913461797650775341737593829896615466606198104390148846327170425067910196362959212965696873172637473744541007994228315989759950945425034408368553322211152054902123877313368955788941959010155472386247230266386745961468865422380699221859374476843491556596314290340202237125515291139020926818892753723578333779149825850009008540192024720115713691797988577907468184444351962634645893584252816269763345214684063889824385973056371261865429651193398626342565285568887809720400356155905534220842133347379923598300009376962283770774413886410233377031632787769412384828509949885981849039497768818809800667126667282353943170498300888023262380699582858687208006593738789022052104235433045305965017003258157481473620413338784985940213023214624381763948610077005108451161139869345529583932099829704473490232094789340656236277548205438111039881058313758299218175483730793745487720914061239778713796976819965382898407421627064518595072122155472596221444432468671301493344929805940911189708637682575384444922696578819512717866825857038068326122644380890627233043793131435732645886188267945531451984122147631828849214090325700042271559510620334328970441756956941477622398368726496265614226059413006221068784818143573993242115511139349059582712131807950243754046960890275746220679636725240791629898703917241373848592231380418248402050614673854660700181747637836164844447407638316170314975664507480751155202887857360792604821984845351778929767088045180142536866654587549376555448457152760347145667466847632711868943193645281926094556596649072728684460654999529342279734333640796293587920012484584949334071510846887816044808352628521899668106886522438916903532287107877299792603507948402740473490968943174235167753294967646814030429232261790084006064547804204314157944936901834690524956884999571507182610743939885739076977207433939968317514610320895046550649155733076160502715003892909617063075234135798262682016619604965008295412133423094966924208557299440089373224682182532106656580319116729076466228759223051419764385473047455250563426798602217010637738805968000624974988154291358036056530353387285166712608703357827458976986906373174118637905736662111441390067213377621356239437949524727009652766697282250256468690875290558281725965636592439984802749583457544185905817192967050242136584730742942417391732838189071272703471356470153595923326285910026528489199755615784257870789774731768829817023284266167685167206607951612142928349193493680235194046296693877038499674486950851614998140157152253611791849974142330091600243302731402717333911157736595614624483286869266795018429444164005475536826466899424321556809016027375076158202045382460830093263234711858855474109487441244415400421508368072001224061940235022061924394832228735763408509541772818779736184853871220537207918840403909321491181253521621917526286977276848688607355571435685848383015539806989148692313824915538100977468971506857713459037776096004079375687002655221424937189878713748381715332063706100684439893736673680596046314844521430813504418813045914844812959541411532411217224716931046914936048884036963507934497315548565967669919937748453618985945520092566689545026673456703269114654654153970648657946596655188776496839768251981416386596046288258197554382326869473874577996832350776268767749859001909935192944541608582966637946274198564748067158139169709651891836540727006344542204802897840219563424786015632411183410182836483787231793541106123472550704156325949405834044621407444331113468196455433559382199500033815926336221305941817542879849907187452084152994969138493780912950058264148276212064618514568109095740308501849644571641865841546585087505268714557685887244555211670315275317776335638563431202302707710910305442452963020415355902091753169838979685193140565440704150979297402003473864038480882921205020731797287689359497124712730560719995134524077051981986499938103066153783587060867045889467262436754289691840863537408772773059784338873511570995453536281812666085882707905915617210851374746131949547076894877538687157971283970648512222510819022483709132469570325963586287207013408763659385135486038685223404765018420766481529165785720051198720410399002650913757934768644942947146376045708194955406562413699373799196222190496740888991705555938784658710052998342613230184019330928640981846085738672672269612145918836857183640816110088853257746953722271723654917577837920208305764499481557226755984916662548138901392387616214158887485690251689680861939544408652201222050081634996937002338977331302256268476647001546165760826720668874035691997475382125656553190200558005548045910323495163216613230272619805112916997023933498668858412661810641170777298985756239052012964919731181998071570316802764898353934975942011184056753265808404415068889517291486119216767528398590544978278465161793933719388397401900612434027978902075341117742677050821430620483493467996824885178703305684103524998171912474211680207312286198349299564898592783581555889975299773265966178600122223453632345954146802287634433157956229720198765819055938518853432682917923963147192571007315359861899113491471952671486948249636375032751170051702067022417321515386036657295439163279860452103431294294245780520479466495228832512600186008958458970995444951504235709269030770026108089360717018790226690379235359531856952025715451332099298810919550268142737772735618335854181675425027248839991981762773017290011916444758802611951677650700353235851119488946168187754970252826240296206458490369668587089316547857242052690432287991035482255972119277411587151034730650876342536206950941527642779701335952927554536539447249609797742172984338656463995102191389799247065687935384264627315989106807517905111315008523039893021221437217291790397428557471462219686783229518902936420446141292185406862172682965984547062173290461803779572545828988209968675109341862747593160646685581033482889871143092764374247349349321403986938755348362471799332103996903338163002327261447609872504284339490229186697599326886846280816701784188365564951871021814362047225944747515025287105330825382072007053618323271313109637949080008396056523592674576048358905096686544116295217198872335646525868326931013770129791011262472924523197570876547200572377839236273576363697849573940793551725991759035777559902768014887094058643086638432716434112315816921238040225768039868410474485478527241073441224516138176604233957014405307423454209492872992601537817468163837802651646454578169655855983220207093620420568466687546039640767859551009546570107828117216612836360764384126284054869042869392714005764687682188480444526308300867446760424401515015800093560889530980014900283864652909542751560973516089738893545717867810928497864247235121342818785276777598798396390150199624267108903698619635963863656632803082364990374010612248225299545111968267492876038522750119715522176649588647168822010254912562916344301716669091672017084000806136422684862567180920296299037730775768671245561537699265814699986164266901999973326307343870256276395198970435515469039141636954536625672616684253356036344931219396562212231561326802376014092431917869716709331480183769564930134805125274444119389586930094183937086337081195437015118610553741620048096872046706385935973530557517727235917604919152377781483519678311562633684550862166605448198549154111394561485231065459223327650113394524011293412876844938350405467201194606923910486837970624948745232095181656734628050614886093158691099231633436258317196608977564128093022542877160080386352521475929647744276673157091496115920466378692641938586943796384126993032514229047814116871448109996800466456506201279939549014137283511321906194530715054115456211388948098153790963594406509563964718397182551008883254954626146123510520704840999081377181989948957256683599301452167993750461667157203723602081141648719430481910565486597353214648644996857915775109255139141409107410107490400221068512868417298133554796044791223589143046670126262867029082357953345303245178256134863275099504452697205651803039174934264931414101239966238746448636681397283959379881769890774556168323512978541164389092931194841894642482840918496199246793243831877473324384368794262597058242952648560331346741503026672699867741534990441585438781583456083616747524912055794263955714957959946242788953139501559447455615384307333199606268954247022524127590634903902679507274212860430116589353725366739271754939349131044868585431809131723117663496968829222240084663959142794902367060109980504861254911624858816458097175026988604784654239119202562566062934603905648996089103943636109493447608661535158151921304502365192183100199481479458287573131180258133400682547447694775733716518374438603496868251302712848666652734108383665225269464907046505362222057974501773235605785940174165857546237749355962030626083503928111879851530692432039954586920077618215853048426126899082171591324937706414437654202118467385418226535195366390232932892805960863264887215069271506321744277638786086161817021556287896024715291203245208688633253074213766177354017226387948113805617822709143164023237154161145811130231540567430083291825597722425150797916929541312520802242224592864800065234417213161548451053706940344110551774511062704897560963228869069284835721518499208734526077295130610521351763521044122691811169088273144078083031492312847725201283675279002454902136335210409487098202055740763525720499783997008606514332458965483537815314061529326084513030616039493667858084325931699289559598574651394160944303316024777118926944456951587517725138487129235841664333106363847957309135874370898812587423379150993551179784984704514207797219582198146883947210178272222976680088947074370225539417478420555577735455229760187528054628757051747562062206927813259056516034557949194102348238424077572867917076099841203001521579049342945197731232477139790888407442210008328903769071556187430153067451699300523185609798667098055200184974704802445930486027833337073791981714399995404941680054633182597889921589571332721956924923494439351187231769405069872663118347684985820252107294648998560105918250836784080201822687124266024863733648991580661927926311613757590739465191167190544563565041855465472889911999137803355527256914950072791014328203783707327411606278029997187396395152352848499174601759093543379200949655327385250475030126177109528942651537848793066585181276585294586310589071052475733232409329200924679089501596007859000187147737951975275974434853970448979980956134537082688140344379767546324414233721757847945931779431020522818121310744348604633376845600750761097390852484181117994790919719493877209413961701660745812439929318366478411154513695059442857076538900941970145271145604954769542717064110330161482177499528423035594057492774229197217177829122748155826916004907858234667714373053644278220398405566658244606700748071143739362438376601394682246660719595773728703287987910275570429923410153966284238932733196221118361966205744569481293461248761583964833726999639978162948974978952425794869705583982476164911817785309906138914661814845328245358616686293609511648924240142596122527780880412100997054408056891686422571647225693064619632321062533975884259060210701291907685694817771366796342884852846120170436485973978305925360778749116120548531774640458637104368597534929238728807410378262580808934064932735128049934899992573066206142213954929628632334272598448586583507373338374672227072439210995714168162438770607909645310747386683014802947783065914613036748920914505828378881212790889542456944902793006532163290957257657390173851263256765522431662340043171644352356037709782533538547568839413712252808250885791579551918819594918311265276908088674523179128947950456063559061537033641554678875640414966758596218512440816014698872184603110156835317287036224960115733667592987695830796360213237808588874644880130554584380434483905921949053107447083049668100618308982606763286441549827773875738468718934739052922335426124979805595654531243905047629789177476003813134821207251418772733742532595056355567261547632142980037798554662730523904456901629301260704263850301729592144042774766504761155749443679375489828481869749575896257837502990197039496064246466821737180945422416298313356041479155165656021771668615770948565444208964937947673150112898188111593948895333252587624720780774269638914114670338939770359050381793655605397288320052989493328893529339230017657705032042723689971915499978329059846626051260530319172980080113749445613581230844545498933206728624620207883267820595679027294098226531578388260721656753446371801846055762910305355579488390559965461892806028128859889435837844805728523868533559736705572480201364999054290806916274443926620416986547729143015645391673455790850796895159364216630680912896148637493120413003220039663479474882150409773012618157427099624308440770757693034118090233240776144507218923005695920625798666425283978627429192002053434072501575079148374294900150204135227632545438225141106294527542628847493389188649340823258885666202922094762132197423485412547810465060138394554973672378149321088500049939100892845228976238333011206932711863745234695318073398274954790481460660279840006005484777756774089374200278836825645189581532531446634591688237548929500025208497578626782319715606495803649091114084398198214760284643705531678187759274939890201472237093440555832278232300914373075512718246666180063811868314104254680136733089397817956150440562279605456886305625395167266541948344667551302102167790895936654415296786880949641887832447914200156665581593808372099869363883942497694627852352789992814059041551179900537107942987359645388466770291664058599539787226329297139165117905117890714568991822624208988810448778236518350301217040530561080362180838580829372770778606334184093544188124149144341518960550286201752076783546506714739708020185810321404452190977070297553187154787711911514561670010078367040652429174610311861284620248930159611837970805099186542244379059459504682471978417157422308442114204950366358839660011947113882949807890622433252508198279751507505573946927602874959174204515401865882633958314805631587817103162220135119472506736167399671528322090932506348202770682108790383784542495413804322186850633913676829314474379225560098525814572603623577229617254854873961995736472379734711974463502145671383912735257060135495873776482005108483025127278048430336974221468119659651820607518291661383081636798876760690021511968277961035942219145312685024209587112704056006289869981623394075474126573032542253045388340773175222779851571537430058793851452958200765282315473892490941956208380663079173170840887990823521932215683904994500609070356894663824484330043141902465894004519634272402442523750866286836828544626763797031553555591220738255828809606769404907684045010846998016838249776286725635502469954437377703238658577143678042307564597321068942398757072045245220560054313033987139922298088257001551229233309089682713856906844960796949149861988886266837058751762397913752451209118115939461853882097967440994017791623086110780424262937908245459982274058305941458226332352514246752225669605676277891511380648071991760447779507520555465440019593962649823366056773450979012148393073748785443586664975928968510411366970914408516748164851735259745559467395265511857554635583887965846946638628355119111751307267987513442810502802211935859099272555371420011494919798770800425616550166407746101501506372374469065348213019528144077936803809194692120680173167389004498898533616512002507061258919573719911907991198122806824626882660649227517943376245315330722430160093517574049341202317143997143837026321780520923268446520197507991724033481352209170390997697217970605630327172425322019285349883811842522299247062204542108764725339460139219475482569839365092235880091816060733470375555056059596535787793102935223817880985832161532439504140095504741242621550933075803464007098483736915631692481073784944057393780557334052485768713595835128946977425357946490255929246460173693962902813252010452346333553123032777828235404741047014996965661720788346451145792004199983431995691481493761469229757914920531510527178619452971498924220344232899564251486971485873127707931131802175306387270601721567139993546055010306461746275905306156094269131640172163046446177559290375928407368284042158775430182255349305152989247258328445022160381991247383139116250801506298205664667537219449532869739046803326979733802067393989234964268609201963657114984188924272533239822321201737664337765676193122381376752585557346432945490144399559822169376765996668489553447117422929748052655432353750735964641969330797135903679802769741833312429450573335192375015845068252441036333106650754217788660092290015842449913732881613978497983516307477380337233262202538800749816462610066294845643986160496345836689933111783252706648680922231574134378497221994492865358806026573087456811673571970531482285318676364459576616691265965623277563667648704853171801342867620957730887734369769457375667836927744170906702780964999945693233195659624042000183129413157948935000708444004745652343468422503279806998990596577820606296087967202396559339450384369709585774929274767184445942658350322558670005140453644199459129843350619090099357050402466183637624903443525508276811922679684404581606572205561625090231958025260507332210356563291918721868970889323079148457119003946512508780946791035518320839307802343734632736360544557362747267807475872091118065655852592523487371462636812519158771689094316449177545446758508149557056804227482544374533019298986773453139383615211164168693878118761043647908061139084126642436800177876961988813141590616076275773149853306594755557903647750592929974422357463144956941686445932765086499620976653990106028580698284477132491533207293363162345447262728401182993556600496438870425871236486901048874430851125049927302333435453580917948648277278222335812868686006571549173701827846715434430172760286434195364976344317540930976575105826909349742289137980891786036394281560766202162947685002281740977371680267899951619326336584125789403299604987481833207704577319198687437136956459534470529693960292205202788006741731042866784957852651923758324491782196559670927881130090469440756075606613841719704220388347746188747878975913387923856755183362858987087773320937762103868704214128217300843856011560943969020039308540470623997970464909294907093231134885954497627291821490839607190473653078108806005158520655735359144378863884535138106142430507883468252170668683515901309944449010823224636112262130855742243825754655808055321895874488101792993086379085976571872283816639822884069262237280164441502221942035817325392226294506086661695344738657053006556214271551468357427733998228672971761283323713992143602621577649799936133294373942713906529525746900458411231826639756374465651272516458478975995012504633921693328471461620300489463526304870549220701525701748517551002409409241379483237772668294856555047961690527207438171404928634263590746333038292761727111307224215303545231988055194035781810589654621760893824567546061902225063230850662623555142754399368606707644620948560883031025407232169932606139512682538610059173725821266130445658615800849212702673890788279383054442670769692093074551889645090253898950695377229009430112955293819433349360998492624540332688863561416283770825226531958254753870281185885788300443526145244001358423365091092018586757453503811755368231240609559481790551250639714872804076057223539535648272977778164064524532413798595577734175161516678667307397790098256918466256647617549116216431813523669238299337460977721598701435987152207368504073884855300254271928094477725978245279197204500078610531587018566774396935186684654062050287955755374595263708268844024177363037131582302356544051603144249514330577646501262355899084184721391252938860856117777713490779836561895094972444064719579891774953995602377515394308048609014487615881160363052111754200949800675075232305367292591900574917897254909824791172336629111596414740552099207398132060466269937953539310205088889790341168559741007105283405612084537073003002592148007667452415972525306371969650777881317450854798444776468965002528420862451101189954850088100302348329433376717546604284713492076398496042349799382250107820964613678252016347665625135614883249678616746324202089877313790248953336642384624505283440069877321143259006438712486357785624388665476712878897569927719407439823775521490928537772814149252497558278138122154070636261349278801461664879577425715472079537580052235025453252821606078508031497274254633528414011260879199841081042869288818371133210115701907760868704137984660075191068641531025608105266714560130817732850149149936063540234787952608314925855463786149664871180033449002707094029180624576468688501818518889354721312824531118149169308819652726716899856570359952461745704000274092454985158252435261047306455760752391792682289054023702370157242927565847926932284249685123810328749486665819771834721239136962430522205951660747966967649811026402108387815213750510810747242461585170660104236005557715589828118904777357374414584725659133737657870465653067745202802873075970149457888689662432970196007123597455195014282699600707919259122225878824920067026627957476060748178774952875810118178419461934475222232939202076864499605383610815385571291687769888428385462016219585564369164619243146059161382129609118353421756961499020813285345837119887320180136510321214460410203150340518398255933095245292634185634328031283708247016676676872896634420793837042797050803196214782647128076432638578025982903923448267219929335831826187778525331854604927057818644271849553856566326453338302310808010510327244387819930560542411277682136962267609437585505282492175229549020357934737475391868662270771647032112916700486103558997508864991505859671426908442113602816271094701938777572896342943474143269062533729541710744829293724546720870485125792181350952684004133184181840076642991948597841111332782114568860774920738090894193982702297004547708619817718824344475800736816505526424688637987545592290620492569852165241779308970902883442659244952154564045214014644699821131517771346339497085015822524328081874287550514144771061299310550505611802045434922567846659459979330517343593163903261500941368340843270145717139993519541367579778660363882791155045479481587451755463144780918753738910426376312897655989567331804852962581324937018277455547467399222585803515295857924790598039074464499358976446719529479016681597197614652239366651924286046069963030781017694731759684277150998574717639052187427100978816555625158337102014115873624821183994085574571740041182695651680363984908430134540216918127826460909441685769242957974512464131410792810965012102424714765083527856971689698654327363659204792160220669460949644867170821340381763841828216593705054680722996178250604786832946896171692766943395670084133625957286035491397879350081506165576755755684724788830531827616984281517768992868094525366837776512899163356083185792588016638696652885789727441998200838880269593299130043794962079987777491158623093306789769790351760190798715245038859408148318336161057294428091504228416657781782488020184928015679770372325648375657111043583191361959681127450086104815341386327610683572524154349192837729521246493198897081436555409801513774624504581688869482526135906247017335638177636691341341865368862901885023993555032899255486796571541466815262040911629859583174186758105494817092139607245577976669583917313807774438004511087160233248307953080755918167400472234884725634153827503998265104592520545065828562574079057632796314887696310360728744699427130887120215064938679961525843715205885205911810588671273594795577256312043127885671824990489889804782353047580504798267773558132083005568110662903361195710354775287272044955483011229579047488090559486905724028308090396106674260129602314171996638122449761783311407649745496220288035274648247048636131809730698658878238723832924079955603752734388408532452528512788688724477086303197647158576617468595664686539630833839206225282781556362434893086446033630567386741836451576297959097268245457186014135721816363395226645711021692884190151790753994323508821878332248645750422375817786478490834490907763692525278684233881096798298825067177516879347063999684502162668357343117460093310402034228890135612473494981840505025061285792238893198692180238544479564900315420843893748892933387426450580981935308184662640276562133632284439537293970584748516950875830936604435057395888806817092161562825912136646066200128954601640390242817246606700647075190117102573708796005668972245470220529451730574764425443048964515688662831566383674698137439402092780039565092362830358246929141627599067553275602108876873545745012093450434724582776458934939072724007616915877880353599248261119437763769068208412192955295859804753516119795279471397954504423249738817658552370658280332490438104814652461860485803065264579646143217449070919696202623039206029242582309811909365959683998280513617169122359974164618157451540014365988960051794967056518254336574983576574314137650233660220335706328209140993828448015128531069896309297439372431840950421332151919821822260141735438836433027277545203710498660907926514868682978652895053253458596174599828039091840339783164933234924844584227409422764512213534485617128772474758585465007696382112270196677230263820613868278257514607615377258518637933396710936346124704250477848190267117943701946535929236854113422018816545921752436514955185489784399120838812654655903598867444196909384801095630025146367390571209094404674433248965497473972907668528163771717263121383953540414362230083708972059017929930260673408265838857375813710266596634221069999782436994504780422830065939051264579234171413899763114505738948693237143286295902038229055672429165015156557874114142334730399962441758218706390159183348178135942117417128278850668499436607057745302109640756404167810775061850428859694644419873018228800726838416961917005242636725659852711621928255680866432848579306599649989738869068849086696961187888429629556217485176428753492934749512459475611826147764101042941595415906114298940678114339650137313405249304080942587020471413428197125725684162256257287446869243453330425698747517846851569088713440378768635400472369139281829393612715429408035867940283303961443768675967470739120369684723956795805555208783274471948716207797313813880653505697733995889932697667989156080061667338429402254344556735767762496467437474620220730033197302173902285382716329940223670489462248325222828596020815594668831148201842963775498554430960503864808409513861241103911725272170644792594718788266078208048840530363431863937019535032365200349448565491657637223426061145680613928633702470293046179529151596769310950052404011981223239316050374185768748167904016175654555871104516075079883322102695922775353580974213158953739619711782914484802618147562754120670546971719675810080977949176391823363173656399089274054191723228221262688856362580147430266143638945558575546615473786042115540364790687309679725167079782826911791973153276805919373522899277172759477307536507043562505350525193818451556490084527108699374104245455853595699251315802983840147012903442143458845106319783248127045393931654733436453784011633167234609987138104213682619642811536021750511275593791856569993530478474970981888390810254349224554989415949300347642644377727181894383754017383890036101088991815583104260984009052036119013092254722978398802032690129961839383141453915520435804971733865351272982222524841218025902334798856449697435113265631927457315768759345215663810700289136605990325861969792962823293982762310541512473080899835223161806211744871191223006256995380542936967002422351216843792297440695238323183549220834126453039155595493399329430734083289077445121203314545134571569536146232801801236930007684519159831903941091794776626058880552625215991266564296060686627239951325909502315256534383054253212569554113965932560275098166672054444534505678290115173722315312705668284534730336441022980992654293607835299914290678885458684438352703547994400941059215877389258852996430788684672775338047015391468906541704382073392141043759472634057460016134804388048026077180928881915834694272551326514702731232683651284686570923649041481152439092941970104706987427289818638381638155102767155447359428639698946754729897698156648930040789324802464595656459755312000760856923621763819726558316404043780026617437930768043102734048657744033266222626367514004808850340113898432290245180137663685367065878334281234666050077717484438112004818613257787085704295085618247747793220278926713352114584229751255609556286159913843882964924774628560488227486261694948346726961535777506742602627450521684501126061760372718708433034481418581467602808011543077580971538027523987023015824181300985002619833798993501241184268859522365314115094411591778558959530379209952612748003524137173237697654088231605889247138259464040969579522940944324698434833444454269202129941226528493136313670519904223218209906258547861591062765051429043005116054869813395525346828805891233973279603500654373301064624122572538902191307734172445914831578600740322057716948123067027462504433372396426394443963531869288286154089367971176990183065274156556329058793877514076160616628658192795338830510452076099424808707919225726970421040735953108366804447978587214345106671132402714409226247002022091418582127147617488278178129083562284558917833259002066653932172439801058995081515825388768122900003087368043893875994166952543915219480448675269394239775955215232266095213575951542674415809643136962182168720514837709372531544010622569227471691353666089984577106233727361423612108831998626513627511248215773113571916672074141120904611045541472838477464561853153795452416045906306000819534163259470998447524786592254554154192012995258747097715211749247492107702272612701845817246332112438878553180981340522667996699854190964986353122396048673972014726658749502524492107716692668298857649009828275498731518675516745730332424958078711163393942709672413664256455822962502390032422325485985611100699841490488092634351336023194128014904201637300510359682677542608042876696264868668236232500110848185454067991472933492540910237157161632863178740958364310808454989173891679225773886566887115241068670494858477509981938896321613154528637704893790140470491037918291992514927676207563089973992485077509515576452248913320211069819636064437808607057131391226047533774082237504969617357760755804017109283792523282379979733516670079526192067460312803968061458167877936310579100641415572588464285738931052322994867261140726169485248704456775675367890529409531882732782958734613303837748240625949990339429839203552543931968953411044425287656941084763932680817834824190959471942054945713399779027847179188411874561833723403716751893155917919947893392146713097872338613361229537438266215001415126369201636330732263564191223707425610624203445707275356360445895426595578163908122770534162641436825643596162231471820550192673522324403181350436850924716843056347163437141596688883407559574784035199943476094213665274116460055146472398846686668601703447273623413630142198775817398576435441064496754429836732072185804034881338447869844359097517198020410886015310464942463398849973879109200277115959296702978998276112218333466807873102057100898678121741746814772168230589218260691847905272766180847914721241514941440804619351819604294782266394509205049521610752349218636015205260712355201551432540414748703944633228172969131398349138200684585556852248612757002587668890258187905255721146078756725673106083109664002704626612911271142902571133132784041481637773769525164667397366688633082908505416321313613569481195331165812927104941980583066602729260923909157230698941438995214290441413618856772545583054800886145034515417530458230432895454179180817408154304904975096655510669839076865330719901748229920124769843923743625479670964219409382026292261694263092926209375522962577898790777917383731502509820488709360793779579869625367992012667326783726737521333135294288164970813194495995381140032797815632611741359422760285864105879076057766422379348801531852117017390271567543601696768275004952969789291754175938307560030835870731860778349176668336985416925662198621853602029038755469623858161036904872194175654479908861569085759910448163728153105446631711692136793518837855657769961274436339465459319559213116750326212942318441103594629757554312415664852174185534122001028549277928184479170762534072265478010326996379837600418776069693827703579030286753242455862681873407211839876999476100709491147969036261037262167816252007752709000622385997860823135492113971734834592837926037742344607909689043531623057430683169919286341721555402521793937238469955227369605052323648014153535548307055613085499464294563246099584878703001770376589037234714761700501645074320638532674790341026290205590774007686466400252875738097130146660517048840005756255547350873183556207562965648990499954603423582558322093023488136429892506761483168589190858424942490765741755893332463880033298160178208906155539086665814305738921058536958796943457261252242430086328016193901490722679141519381072707171677416785264886075250592206361265790433935903591085413397711668964678179288687902414462444197402437115909473645416341893148168729380871305860976759510708368989220311464670087879860183947136831783326552484823072208917014726910010022868209827581446884804090729647497615986924399479402604200035970734757607088466843232013929334864257046319286920613164161437103584614383564961191487325741358711480643950413016245377384217071270795579641898095968666195433703003330591710458588810058656747219281579571958196200208593888206036750403503618158072134029865840744581579007951008313227456381064647856096209358177378964454201857613431332231443615771611550903936213611267046085244920995366254642568230951398909494778148100706415402289384945132815875636014197259735073745030072489371009541463970852854991366107437110599429550627518529171919026179320644712595860521395086710618414583683868619357466099267417726245061800461462158329605818136645955227275855171500314702589340134603119298336583240517716783506878810301770765460423982789578203579331716445105380871990278762522932839706151823580506072998112286366598889130245009253764956496294331179363329758189095594376045915078261826212743456164029691784073114983434722499553088793088626211830528009163713590640304571459894458079117912316952882857562131139029204863489776363157734621732982148626646813987218827677567733382485639641336886912471989588284764060210475622348786701984298146776782106243345264301656196997819962753469073672950578290245908150826245911728128083372874867505073319277464264742194281198213073710933630455797846149649027103889722761870112319266039391998488187391411366399554563691294959524487241912405957125289548342677104603533659771345624287968881066758019486830039738885765261316217387968301997590771655831479664597878205732181638075920732750756480772415090683314044970257631933341555919901456342977134397744014862446787634601494411747886951014469085579539151447568984959263928344165131251611259820951138775999825510304007230876187465700553731947834409700758098178666006641344742950187860206825418068378995643710420166711125492107603316661430045183516179599212151007084697180713647506833465358237372761220663256865364663081260842322330717521207884528398659572806821266980415469794266825447492321414624067689767807205320942083840225596761157787508517696629272984145945531159138484845702370215746439537948720160082562004044523310956860534677854122078372964152267885109723855443314148297461497619050230687091969201853017536785891649884816480265049165921181902399156117410959925847472448848920021254042459523954540164546014228145622392681090082732812882903983156289728230785266712673689359770134023064506980369776864448775493445612050894106130200282665515126780339850420835702949480764975468622685100564516357834382038403233945348326997073252710580614190330616210495500160239855515997062626294370805883606133371414720913701498535703047708279992668689060035957711622582219959646517394276941655780784186903001484916966234534681909001451050228002249863073914995252905211577066976769849291005853516863107706385792394797025154110437907816488702266909113161381420352019460105879644943995708489561098980605968873017161727240931647251781456771296027295716882959063865469933724223836838683969971185229817942495089268289007097818375345835115942397536245931561843499390285063480805797296275800916779683547632250564832494277631380516981678888589966106287682591749621740036568599801384908625770019990524875507455687604126945437847963375075532039405771166149064798763419032493174679770603145335242608669064197355712033935456606860132792157245968296443507722389990902750557877834680319629876944044073210487349471206725814072581906079328225504392542377050075513013875321388900726468420771522101986204416446358065743199485612094644186472551826639245184298242994688164086515723043152003285795959774120020144833605258427582911120669206427461788423035839468179099235686314305059901051498153739435565054556104760321857980298438628105854982400679347679731990205851333867183951191760855382690103834037486980416991909188680088148588217574159766558528191984444592370421513765681470204894339044029406572059233457965600677730945339003315101726200756127046207423896411489922634963310440959221950299445508359618753446141137639387027693313826158916926876350338530153062519090210857133539666942906350270715538479830240382890500972157353254741221207706389704152869954258545675991523205849591660817288154689010174480752452752761319037758158297911979655888853181135943723513236757966874307421313189419728247858161135409475084552760628228172401037218980545025463120308461295581668034868321810864854479873409440223155610321243757911324434774886608306662383701657475523295194854432754351787225523430532846849882882950399162338409218224656741914162701164366102967065999053339248899765208970187690778385492308107092826841636689583460220389712862057589248684609654427096850469114637837527883788747273526627796800728042337109658382826911762726075576858270084513817539717141432421258292895832852839551345061268664284137538095843005668200506467085441334222171307061648653681584932682013992427836536366499489001304585944123834803815667552461507505509366950691742804727819809984804017960297467859697702560721361425547122919550026996946745308991581325622880075887439019782082516670877713754970203816672731937657146506274636497779171814810300112229584909327906938061639297019197257215622602507876827901209004532656249020246019829850241704050369873627330069390106665915535355590127320117045418733908891581381266535262342906424228562557735573382395844041874390449009324115605623891997671454388823546758639303522474412413004768297432010702335426428150171705106988111390670474363221227686737815309070674006002819514042070374520960590326938017959858237081092978541970288165598920492925648337567972425499005668254390668728940813094810468518291238528728734589439370491455822608612401746004507795481268929918967888515046945933542731317295009334261297280898442156297559685898119758042153853118247528770155607063183850460672973452562036382033394725432673558127885439492207509232214897301489222752006777987472917841232915854412048208185757019510052302146006200998974344159159977402800994449132338465333228350970631984113168413570894373887367669467654854616068564863773044304443673450822613114672011012775492704027546210457681783541049104031579724202567157793391945035098202695638560036621722277278580378903281623502061526072211466355530091874643869357525032868380411746025441739707332559850774140868001422232794551572879293773447436884826754066571764191655251139799104907422823030926447837928518949093232590863570672788254112790885051548052520274594878791782719964428725909090884664055247354602350243665881707179343169136808678199933006728811343823584759406748138645401368743441278701812532097441637742428966925029486858391724452263686506527793103826134560525208109795292374164476394965577480714513165838299559141938508218826396835044324329899493328316287534205254134934802112923600686831321245661444986726171299742003622615260554589990109864426999901441029306598121608669890723325783444772922055482847134429675511446344913583650275511304674138302371004730081996988230599646804617596564091537069184856333390520070961229256197108443001118582293891481738101150047415001475707189226695311144901826621918567158351327240256758106538690601827202128922464763378425394276300170628604457906732093595654308633514644159926151919354893598952310870540598414530677623274154902706402049244088792675829810229413455287383125469393978916375796459994541721165255092285611122970057381812172190947516744878359805189506205921977481914372199731804327516781132981457037586359946461577927520356811315557569757799045256299318326176664481238918136142951497764964524750200647525160244752997110200809481957919892695301273732226102886239016335298756928208172077210030109782294547216501595340825557029871945062414883489302125006088863140517908202833422496880115157910333807725141931000546356745643506458947323037974916787214933308538944151007579072678194756118032475602880921892205331938795123986679552827543445103665750750044645610349700035132850148779176276934862632111561084859630292886074197498478082395707355560242300224347456061216785989237452385315584761693224875200573134322704824072684440191863040213335796413501598649183672892257950819286645138224105701908987431944226688478851489447434592896539730117177772981903049284945943513822621529793028776185594755457526993194827960570269102919738347059850057074802472255122639662520983649528795496340682288415462914152833642324261958224090898148773163333294673009687358431063713739619965315946309693075777270422799173325337188620042007779365727218981405495735061460609004994709065517353191163559807217226402137364107448050301006296838878549010873163316952203159215385161068365468486841231958632765825957709963740914490480095063643083284214019157292490661671683140803457744948715481536373891166218259409504649512413326809337794354709511741375762033143498382287329392291336556382867181519099203899178632909176697479456063793028833715126977610930723946505997203578856694856048729093490359108620525379833963340527105772454526985669945643660982383635539954262704452271843937511424431443191871774510165878855067714278582977613130446734356600926506419663729806173907427153807844376694387777703212316110472329920144891916556602521823371544231039419665488873062303679690811914206086392942268305328672476024161925484925183552161776834887912314979154053461615240529617602755188424309532336310707168823270795048686323713398865235011276552834444210431018472085325075865328468347770774038795497782747724568928072594904711318197850233354640523052852568252074355864477368104552151628734236041931719266255719696506955563665850316487167477187059179836905139484746831032223739598908413933867214040532122880834245279641227448695648161886938881831464455159630544459627451293209121311313301406136141119931128493086434485008430310345225981446722962360748898794013017517389703310430818314948825158028397312399688666429644229847925048480472450919922566487830212753923803232370743982398054047466657391996621093958530171478494864677459958884955988953940430850831395605103969475613789245721370467034245197009002838346412000668181237557321423781274152627711826618739556513774338300580000933879918410018208457201416031979788301940395510790407566640456902770923509401122752287466744129246852895596456340691921372646330676944546682019536151763036638743465734275749684327590059800381527740139669727195339264415765137968737169477199079855060227489224017203563204716300308596623077684496338224789883298256744144905189311876376380791114758631313518467107872321406988240822791047299329244410374896689668067291070102788500881517769564137869759760681663419337336966317859717765949987265808945549063165524988052592621952366258472721768985802768255979952706710288735190720961982559507421751646529601685573503261015339036239775370513852153924025826125431540374218508764912957039708346905304369260697341967226630706893248491174047431384392342012173418938998060830443057166022426951447952907147973406098337077709519436021085521713103615223399225332838042214798560732316027655785523182195884185216603210358386073983420869319315079273793773626511688465068270167972993344528336570423040196658783067442933989920496505030378508271760023396257164746353719312649990289828965698876464422598987470416072014980082032921483170174721790650577066759973206759438680780757394560689620827575993357842012971484497372973965589188887674575007422418197583944792668944016828852777636228455911680167027905991228804637110968083908611014609947547581773044737726258445166002742132386933749570342196941781399915827039791078665894999721563750109965843976814721729182612494089927356067476974214889433886245442400390103057787885286234677630079194267293446371024488981385387399747393704639814179688687586651274418505187497588383367819117599104583576374527772822157611783004807472482265312175660018752713134623002235322976232855311260623273739322314784901718204896369691223651502065950156569135971699738256679657439851006977239931523344324716551163702407403209112915264429140723532937817327694386532082475072515776129775042714574988810667012966389598270526732386672549398239561614228635000896137315883276460448740253622433548871156252902236401661906970582627324377898721922820768087028712548385502975216166055010751146124929434397169695071352277469923530766703760824279041663298457352644017806571311805167228884878301507071296030787426248961329377751369469907178926616365432379472416953401719513781194990453772964926046570475344470078221175812873620189411605301379455366208118293892212696802196688735491453760285696325195535656481725009762728592085554774320503685152956310093861820536348549574763038991488938355970883198318105316219979837004046715371595475265878114948825430667228362206203936600209822736655231940274229407745400802474247082077338919410122835982125235885155666984498129434125592401237662371000455084872843362155003048571844398150411344480429194346648856427487719059253931045200029511065697458096388257460464725663810101842300319673415380090893755529356692965696186208600202274435366495788996998354502709372820640028779090474784091151959653229233380606035631429979825629598031804480910542331333622832218253956747300378887800384034061752642860555213328874420290017364902162145499919817159791410432708980659667436171084530638302601487187321513909508755604176180534800593969814158650085966270855218197588577455665564732493125053361368844685139212822417664004842423369665423029679326079780733377283857783061817789547703043586007761704957557853175862644471852744002211703587754302534489849765778575567835800212449364392218791200572299304615033144139403558322711036244775581082974247894086518718702645864225148379490144109258400541367234729895190045286698497803545561123470781251993982772654698844600262986804590234901232828660405535220329574434049881519484039633224305627361798652510973609305427404999115395316567218861230354692519957950462789247843653504610506736648685075143372220170772218621217072653806820105298035591749725711457484469764679576676502042954989677300957506426321038610478833687933476112564857702153706666178023302501214215838452057982218698673955123826841029763330773368208511163759524507879032433619906791181383248702502240061882927073432696353495123526243512523584905542688156542248435818517027777278578398837929281227214769453242561903409844741929755564288404114893502614944239261072525569352130811514555948269407402534646338696053408737118852694631114233221439926069674253250677186886732462878614482841595902100129734806358960113256778324317245504897380551966219107711141642411725234087401049123607839305564407791540543758130350166940385454712717563768757497148000325035842534082563992745732420216470144417000995737390262492496374061666681244013303055747014295860359667666504010581783424509498518760316444837624907851871750136202209753115797257478321824631907124449314585434269566111208385095897223777570038859674145650456577202877586968685604829089481416228890756654873726535287246483719429296679638254096081645402143982317117906793182815097171457793762157025174084320211723365658427322209356321100052700996165700021879658614651048634779348044230324144003971891984516483958511579162249945287080084104592653963027253793736590839151692617367541489907513346032718567676021230887606296925082658552250204833812096028309858494052156668201664666909396657752272189619924588144047808219624449169640972477442166544396403206998642131921011755631594951657723123530515124229128919548252301628355971200250153408797205022892142132010118195750513058860719552047295114445425255277374513280021309426058279966205689363688504247864536525951347297876013961206635481440738499942608186330873998706988526867154538557968801348305593429257614388524887399802378669765483745015090498480604044966702122102315911939025836631784941970416788377326297231302164545539920872033668380033934189410525974541229215296156755199146500408863316316740431435392067981322058433163628048093737021917042615901461173941408379017581569739355431035097455217318307288954506368840643016765241669311884466245478739060131482170571941001582596831024363092234181708267045276815756877904884639931439023179310841338019716145840680285539485137332643231212377459132417621763591054696225054615088561589286147060255251427446697741890247100569575168342792405538147615193168717856008156344386079562163425210025838492116069104506536856805783315320904749191813136044342022687445440338421981653313999969181778889834720657300537578123728344470453588996413806808968944934982901288576952453270494291184853003411411109535448210856535326961696674817737504248771377512268912629275029704557508935254966630841714034772561013971965071060428559759013801679448227629745504783745104582797267571502548600550969074294403622107175577728759536792927085321276307457579808632612645118402207861138687886895271087112473514570937366507945488948338667522523051519330558421804018597966083697093817624356946729288581567270691827697101728944513604141342735652581917782617370031179909055343279513713197890136604423681550532016874567988195485688367335977119415784156514825232027674234582554751526823176167293742348639443776451278004856790490704457860025567102414055698322560372408767306539763868960861808043141046078441373862712341544291163366280096220227024520559901296190006076646152126023070892724910685858570059997549295876159417046765065533557039361438576386625503714644978185833359709704193695398753264316010915454043302378254587772297110189531420111868604302805507789052207685175296958994651018045753607310323530128435082573105007481245428418692530854567409994335823824086697249221952529669220700952751734513106325119770074882708818631367330456101596751931404619294450600607988618901776579697690978355570963596680540173592034125563411283571769999287936798473515639932642773237880380679200336087301696761446500994591980384453941600645269662121652181416341457056658815092618384130183534134219244942746321862939243186972831617048098512703688478423117740558393691997308168979331865675037963337895441382228331580939321284251922194812066325841149686369667659752882403846923667681133761664846157211725887079497966990480220117075684279671314944134143624030875283805489550577773367155108847768105923951524509972919157544824547160195756612698812184544142550889154430634755771128375403412037235729416807897978753306486864551541428781339452827175895604575789280707151437981667730886262681792130486619024230962357773036834858529964795643026949891742899009529879543980150199746253382553853805915707836015333434849951595811752011358401562737170004560177403723167931500050745358962842711687932043890201654611576046248090086557278374146664225956570855414065320013309165827424173794171015453180394756536536530207753973900121676614413437526554620260135240486050361867291303995146889862975228713232662872109275668343312126410803527404192277408396105382348324149935474531678223082467645419030079996870370109155697324000936193543514681620345638622147344642624035294613495153757139873464691152788697725539764974880677533569283123522935405411647182015868236654119125428375684250970498635460533604724695705143169045366754022930030573147685663470453530799723484303154744846243820859436311663317323895263223686063344218320933210544578607381022429758728185806798271571191877206629648117175647728009762484601384161824791919430691650806150111194007952805227576918656456348438099356537633366045700171780489958453119075043523442006583909146990162590923527643080690015184895481307475930245203409919482117655000560634550380239796851010030252452524212789356165307404182753177872966014171878779853886794361178213511491954035512455754992686733570431240891770673427044379922377899491631993136896615178660755438924370555784442635708418701318731695596335919811619147122976599089399614069446362996881087832364165484451330056607603913383471952402598769808962859767759876897306907718431079657303257470679612842516860599438041403420915090474863440418106502537682166100653062454445736922874538115236515187418801730101832135486297872748634991624050106464572055344014079422490903899697964443025875367507186349938425895046189045226725746770764137425802159826118474796650698744959727228894891562756755279657314606483593429258482524508386530227639669878837714707700127566923446415650310279378416770266656659613799274968056302567926323752072332128369479354872917569934772025554515718814743540694075125917084424965319547560921757504841242103190524266584503307931120336056456532533596469809925996609511815911478976633100806284897848704942796594194137308658785467902469474683036498735182150881819929555130306648302494632581343573764477059810147879971808156658980527843865548114631395136099761457876555837496209324696984806647213277755174490091976580347534187389977789895193952242982442516165145532553515878964385804686846413273193587425420880072140355589855914088439366492887859424459836384185285430545889536992939047406520007044940507585452305356430822411902669020196707637659080246880120457050433640062098540497345969406131750696636883049079493965357515301826254321878391253250500653359401765086883172316137269725143442032970152809718468001671015446016408517312226932082848238421583376795563693810149506230172767467720586657257178661395457354534776346771894189767683275461974256765961590194526703861466959295819591622169716903622239171099562496991693503098902770827704752463420435156698687471377141789831651366122035796883312285614764630018444755221195178115748263724996171985061166399151868736294634861849602659280798701053765773841494916924433413371411893698744673972833989417602125545480250262136573723303766552021166487705307732314043979698891697080648160288996977738431093213608809562671372990527088777876641682119389035870537701002931127400487367078431629590753780672578803770990568484669980376539174232789414579445712959923044430135641099640186371792522171867864239184337313902274416929569766039506698053741124197671692510417657309592417713596697005722743140781482539331964527978686591279791041726881688300107588893566922047808772901558290171936084395175140474070766487509874106249190161701767307637261310156053832945035038360721256996245134948380678665021129561441063237613074387353556368934663876061966298155886067279717457033292561891359478770338118134906126353861565243583072495363991170149818524987489572132533693903476872625965803020827946114317984701272585236644098490064036438809925394223798248594233678943407001640950276739695770714521268243799615131123923971470977995202974252933541844137362103400880820468877367806690886620425360828278267190049044108495933206924062367306594439227399048153129667131213345172906328978872171330699851692081536835308202278227017263132057124682991289288526380699688942743748127409493471744846405307871361155276775139925695836997100723395933905106514096998658320819896957693127030416987651376293910143558668682087746400278173107529584330796537115414830874952006750094738693472695982741552830451732748936683242254882091579764629717566145117668087088671190041220737192589656042622343012621628061759131315526410248643538291236211140464583204893542116505353556852895729677513572859789275786970843657091087187789436356188731396927890062650816228475442118797741610842444621949228667938841421876569508017652929065654395513126671566897377730956129399887859934306201313442501185046992010836150235862129944124180915642937900270750793702250314044511985480251146555662399810820517143743966550474867286325961413898425233676534257733787294677249253355924974255566083525717176890425792420936236610374740744387843582238682263028813493031685488050890986227794321126122009253971576066084820386544883633435124416311102589710115338803349366622853484254918101135625428893687678564161174386300400529488700824555680203987463057295602813023248289231097192009573383579567457915691808451870562856358911394700766087097459749325122672266773469139127884079044595248994427193500811097471358616306013767989613291802975769195924499342055103717673994499991590515955803322739222884887820599238219081611759465522204061743984473297297293214665695570383340101938594026073095886819669784449832868835699663136956013282287558116538379570539881729120966116635756642173969521949249011491693011427553226979390333651986810528595317783996190354235841899512486303087685033291161453456273521874656497730340289692052863807025232770198036282702008847195804599147525809602908885749111094255891730230256338618337466686176250422975616913548402527284779102801824600418447024875166944893600968024931106122278290097553972542839452094255586285394790071750316151991284177846420422382791800291448194721167930517323045689225026965943879567889310154379623100730952771805784306903155149169837208956542103002499686718380733616880385551200685955776019170703021193124426231839900069817705550967767499401873911104104321425847089201177575221102188909337840268853066388159288456803772289947930981832528695861409742802516372001389070640302038662646824125863342249926415769165828641559761638818363544609482837411904428741302870804221735506931384155190593953030456043346174570283299932834572961847616937423083118961645506844870823432762007983001973032422723626353119889543477468921004858824192244366032734747315174365331835052771252680804598549909496157491185723507140429761954475697308858509163649458695473598299687961164490948153159603860716522737007559274026523291719102985915722486169959167440826201965003249458833369405478503381085438957470230858925469047274324045468718111109575560678620215747570695038399682589423423102067224843297983078148567158340019855601315525574540391379600028016507514788927783996364341964119574381880710127160665348674186915498454595087176948152416467832240273218396218981007060676864914577272268287687589815956285087384943024768718723086274107401447378052267092004437933630221584895767018188365674272023329688740211886733894896278858729340537043270877455004446897989618651570318999593777554452217468550131706724692417281512535277751629837662833584697312959227787312944897444705084316958693377664467823659396813068695018274356659562588431711614359594174073679655686764951384658633975990784873795884593728414531128768709909183659534244727433554106654007556823455602787231898229279964365837937456163999278825333646094274350030492759457463714275790450632464857076091069365037979137755017232800535759936952078108407184377028250103291948906808547234851427083825351110705579159522446623187741310362397588949668916783037826079968040501015565393504664655360185149293110505532691856129129761556887973460176367790733027493533974230353351727868098518211383462224557011457517237931349865476030766215072490512457599366122882261307527152498035423901455376535905483061957335743846019685876507743247627761066727241752704100578694080646999253005184010418023246029167421233763218756848412775360374930199820172806832866239863865793177991963404695444083591275772875724538881799693173025403767022037889248407672033547549399818903805746977750834053787840618156875730127412590121264525412907749472934744926670345593761599483240499954064747264281412871519029930788176665676510433166431362232168701419757707414905619079038695566024138292577372394539321715923676953105610932733113918080562538563469815378126831290016299911020096693131009802379674333154954872842418971599998503190904400176074555840145005575036926168950736889148067181483619220297835917719074439455601951914600582900235544307464755959840085305616225414071361236779653459093220148741460276356990179502176119125254837828522952292018961974518524923806828951346506774881048252917931096359979447264575630496740302800080727089690059386724564639214195839497450010413204343712943884307190519554774547846844309950417079579831962212715004267787317697355308927693207523523325824011960858067005480911005598221920289880997318460974541965724499916735972704120470378878435423234273608032730767763647311667053357184047971460793353388258628470746692722701525485872043920907078783981268044114748163511112143497338925242807848862810286946587544895401564654980676452814099988954302434467296280937334754467711407476342960102746663774037981998340469063674064484550082056530784277219227209360408050363256516096682227972034832684588829091344158124985237946354335602863932179262364065194375138195740753806102795437365392330883102838304153022995283086688618593921862067802770656893502431091171549084078307996319629181226158864918910214442424238267797036317885676384613957559857944973345664092884012106048416097060241267532078896403941354050937206126107169882205363671159035349529627118058742069834122062544121492067207879638817593418800265517456375834233438879647051512840809010215934810902991442700840079737334994646665837956147684123694975006684365420617583066521485226416903014227627334879882765831259818941639347365353819161396166433850672100636453865816248530251854856500233419280871306781822312793755335933832803566309989114257560410296005601566926468384727403487039020649733233674058801100747493252191595819150131449595962034809421828217825017022492226718627736544317310012387058358408516347378380212511175901209811655161391103419044829223045487303699845619872758043941588747329017804840001642035885351733242443085890989762901539372219565689116467180035652818200973439166263236484506436602785372469220214199597728846150770794753500028957196243605329085107474965591232652619778629378481762090744778329940866804023099764356449563249581620426323048680908360823419792341515660122740882079105360072239874480130681933415272143198125568450326124435072791935374644516182471241494866186042209725532820274208541098088551209591689796815542007668802823729102863029791922691172233049821115468706068834955165448776529686711636897693529127246542830573051235807148617582403462839836476212965474905562335023478319956089919437762167097309401829981985899806039833760452521379682216204157780527999590644825559429907583035971166065048334004096160226320059650052814448665001277675126526202607978172354195139365220203365532199647747974895048621225543868165578649023944869311213943646991357261661346837487139760347314763809346832494481163292542761043658369456985268271416581696812476115577315817157731412566081423244440129929735600822461088280901442562157673068537834858215246434359016695972792072107560069245807714895589160054350077250989994321729489620608580575170023048952790427090843920324907316325799684935331517467893844971138026344835572913878062470359283998383746223687925226032891106349746998447715275703152180672620355963262842168640725646936506326218079457293780935727827720744134777039223933509603242632162968320164939981485049821097653837348092348518913313534057779119622088590553678398818706237054232047237749646825585109076259408853500769727323550683074364166564893043838879320776947378486907738964707595071642855815147114028200408454082378955419492689221541960741876061313020952742440880303594472120383054954465218891358256583794173857772222951246260809209558742314728880494740541574503635003990330652329278673757324318253858630400020916502604971685533827212982976889565960922032538173226267922064541504525982091210397111468940362650874292265470396435837710206259248715155818750478787319051274928855350227261175729116047850828225569184701010889050488086032643974656772144053968640528175351103296333931141556282244776589798385250032029515917624187655567693545112884072626570703763378032793026921594288007205349939579790413142318109743035352644332471044507654349075384192209211639659768191954023750916366719556872602164430182497893961815337728973771945822644548912880271622871136977637281411295318437786211160537355892917549576356344292456877416034049989189107816258922832098034332926410139653074420521845016259125386768577115939996175291262006292388904898242734621726776739136180941651807117246907893654012935289797271258366977825835747327373918744887680320409325097477259769072312975111477716943033742915267372995433676981995087463404326582660708597650601358205528447390920498206185773285710677502677758026647709625663298009879017495163124398928485595247352478122864365041238521056368802821858027439175993359091065457096856105209851307149862497050294911979234679143196392376592155514339602418255678440503469192618632074854062994914477816415747445794153786494732525231266836199892773822893143429489522173401781722266428074352377633299969773498071480167726275160032132073355839462532513866253297885875944718455361890062888033508487474580625884491544464040312962179042341507345386996789299104121254760362839899302986984373133594034883666111655894973697367390382873005902254659852424387816952270907082656439790676587376002328769824945838637444666841392218993551154486610438137426281010090545173138284983098389370723358402316316104031304371992982144021480635662026447686957864863032292552735260771297622202525395848045786759504451996316631717163439708031498397923351441398873613558683376275545424173850368687371767737097793778989937215377200495445619450018536310036728765647568541463717025699213178232871563451218383585792281781007668700520850161524891564479854002140272306003536913360805411923962015184649885609042717263505446862303631602341797191727173018592236404206164540014781793748332590116417851278081073217516844113768175826145112315217536024306254189476153098710323314454550021918964993230745540169787340470864002207493825876492289609652506190866567488689997368654726841168776875912826271597369489765897871806492300728884562948266340814792374219603466679017337864770366353722479868290177214748617798676839180660119921885480108633058503277219439715225834915350853832047962043445205718237030902997128772341611345997379732473793848841683970048911953670328455063265909600682475806068633317164450520851273437308673420385502970526693943443092216541114861257586955162766620600918861735773843906709948375067943530552884296439582272402895176277020888642976165207208408701031170619142733003488361623116423028519972309930492816145060630015415064903023448490833117273601172047012595975020565349062688949442763390238576632568281058238432263153584631503086075995107892442211515549812242185268459501325232513729553821678168273893966782949790590094845448405961210740566555298042847468865900724896464115244092222712055218106495898732512401718903766507253484372370408852634581842188306857276014454716713080073551053130761149124052961770354059162653869056458222592961308563957067540465794893753370761244572899712291345454922839448828271262981629999914934480186599807203839897404291724690297806177216607547622267402955458120621135279418986545042559866970695577434017556734333253948662613595928583623169558634059910735219963925180678548728353055014619942285446578796614215065476693094163047037798140045530657636020793116394432924926285228420947869601836900965609094097377007067695498536314425096655920552129060080068606828037153512026420170316568084222040866425422802783318186848717642147562856777732982841378580937185841688451904766897386553948327490887091922261037952366561766095917742422844315457079286009464128554903034702221630667215578409885488600569472247206831012917864571072035975672585011108940077234583681843548707835515429440457558255422462325581785548927033233983125802877989285439689776271456817051580906167347349642735822373257038537177208732849538529971399079526612521533983012241456364050761971147614637138920354925805624559485528320241821698800442057531911301992358183134889470884419554766043819286929167094008977515259753283976175091365219128208693207769041161160939948768012577094661913098993651227089172495466204726329623496126058232601202606790179685467770638106821898199231296384589407797376490726957743695461864248438788668177705597635655070585372178444510633207766637327029952769631060052437385858111769272550594498996180402977194893728760635383995212187008745212468629210998857948593515276402463276584847413182304810093521632694773870572544047543740688363792540859694393063627317401730136028902230513331376157992629291707385098909037562263020243359916331337031982288868142637400416325797353614724321305207229220518817204552639747079509128475375360663025660263788063481318431448162764424830867978087953124205018845978078801522554952739240246081300544432680042428531902608297160172227640066601809909002348599765913585998545037332260852548979388605288177827419697958052731713857965239010633873189491963853127291530658363513741764777630618393087359998487139119248718808312277447679285638567978791175890470796486202740883266917962820753607793999324405587976056374921382845969003421603703276565809312351117803697087244039134623081357133614483197995664878484740373112924464238335714545923421496636002279425501118569116753216537434495358216643857417318580347889834918501253071815941337542861527010524791122867367239609051543871027591998531502010218711223162181031658404372768897314550214224590605714679733447926543911802529378370246518507294291312136510002410465734817403845416972350364680191811531396381814627841468483516384069197222652463124415318535265206583054514193456323205645887125310800803093341688734262837607918519385520939724391125004461288002258527278117342581578719570132146149582702616849298280309766169173107564091348164344434097534440473012269756772770325989981337665562199469291825996974774531796226060380257437289711354611176716834991759550661161900030921104020086418648414484141819275063239442437314661613197287305111426665872973833837871311691316570770074342113365963358489812160340291495717434129156160793075955086417147908552525720762617390918415346041437897177013554805661253519713548041500855695085027954545805476979208999829882882777406537272383472509701525642517940415572462994103104652111237754323979709779619390454456751874449875822890470032859737934083846699876874959079563405264687512234934609762366161221568074086767879595902716016552779788225977497352276249792781499574014475519629094513171767575222061621833220418124880792644076189774878993284781444663892565641613291027265161185068737654175739723998177414728661181129460829110601234024401045974593117687356955452746515032165170356968201240971561477961375491650609418454796583587895140658476605127952562111220773761090102963227646388494943726278962824385015340071209682680888804488874025031039385410745036926780506964383981099329633730879387862189553511646711556505603650395157527464459644801279802052899875256857813347460485833249804912283851382097438636458513778368269192192218350662632154747356498879146177538678110608068616526513108795055968278666314449478149740243514979196990909891609546798909476819428013240027765571235767181597690381028568730817518627578671597724845138241039153891484499379535091861739244391300383386190255212849336670339093706906210386529252405471819828593162093685795923433095012047548042451545995672427981593068606218061642902927921723435404649333242377325698759495178893967116300874986494382790406696809523478530941641651270317118288105868281303919773720642490080837909976547232048992010479099269664648284041922276488638984298216073744785178215086999412718955045768713798545709743511112162290505055822446018929339834610388773353742791225977703528920376706649373482395024417488094643445523203593317729565513960330915523201641363272277756764905538312521734353431773523818968072104534982874289022871064483099941194079870283929749844878502043660877629001702012091154287675605480417573617892284005132752553531868974287671772651970276500280831059592357150423288682362674766473912178560826024456695630249678926722105454932542030266981354546048589219756707816631521058808216453810336947137896103976467820938637947243911092993582382864657976042695715993732373621762378420113465891095779844738694352643411926489701674846372648000692952849643300734998988954964152611015816105751786156423126830945552593607179201524748202696958636979407594417411850655526370445323894154702794397929333801268845966180862544582211317780143943123680129031523053611851690577378580469933423520754713977796144983953702412871551138066535477408724032320968499382863707696044786293056934810209703554717122284076026595379872040458238375058188654083965660738605292711962133642657553907424035912837145998688314101807144967863127123995849617405075316365862906710408960519475311679278611244899076399251936688825609599998840631918546546081787068492488762907450341667409042266870656294984512626752925480445192505843093032886980623709332305138591025855847004034871288732519544569123734968386544051659192118960905023151167656083324074407277196178137794876311720932912965654320217372604113858930237267648180676037626754020582065826029258578787628200496480163029827354664336993025874835656835314445890069880390425155172834923432301864010276128967037946843347574602691233457975640549852520606776352296288026715884378406042005937058151044567580259021161044388088154458775776790262043351452194706602457109121857116721743508930547460473836577669629569525356516482413537633087977336197069283312090170720171834023894598122333864925432209827323419219592654893721981246137857602047381672500308091271849711443216567957103816064420183256803704591600880251118167566982437006680824244578429054747912206427031233595269489405023782071112618086251727423665163169676257736256562099968316661129973640797277267732345725601136247175794321249634023993820370239626257650635738692488965161205708928585417691936986641444246213485521560530188818230415396396745023463879268874805456937148733450327466015164040333781174408188626202207233091188259443766874970669246669051268004736074221607297891283883949300274756753602508473911429460162715329395665485072853091063511838472282161715223403880223504647641231536886925327155880446543288622895905554649295505243409518077753496476877374736440099810759218883261082225563579737658785373849856125999235484020824382167060076458487150992497438781735961611713810873305435360459546309891830679845754632978386388444276991708271900206846014425465359604523816316697382998388381277955395188011160500854026120478841861137374652577162779195259477702286960800835694157603031328016194189244762753568124541649982985685766322529669192030737354246763918627168324610136425115041494435102876979727405268770189556578660703315058421166672052338350642268506834813072723639107446703731070170706067585605701145880960809068401677546187298506290928107326177882990873593487286977983531597167728756366813130582930695241232244340432009904053753576023170740834163094054217135440222456311148158630831086137570035244815207315107878944015346604588226466458393673027164996971046422798952898566519474868972229730352332161495600368218408060910751496424595844832261484239032468577484720199141351262937661762009979608425432397555403193062066019631622302771953065574840321503244689576273591076376647925948389805974384529945761562561373058888495503394455927426026205351159752268783849053571911722555902274572590752990686699668177343407110264927834422317709982856276572660876439672923368105721578254933052731551796627388853031742528023679760754066538678800145367547128428198268195160641706605825130399848871955620269145134822744327176825457316423800354738215988328213164335077095168792217360523771297838576348857431519308446130708962819068158490068514184409394069963046969330048728209390212585646665148816133610358540589589455752659472519411645422838848004216173006208175507512801316692507408644636278850320024866406608945869697738065698790569841022113957042520271614989959326131328445314761437346382459167818440733432486594822437704744706276099250635531129831490518128867929472623540437693480542771978010515704745609849332422540622562449069593622007384893752471618210154569544853639616796733091513349240931646068360775380652030458152628180214340699773054766526473512794502581655796732599977720129637702074692116731086860950819360623846730630470879053351414209163720803392056453080214209730696839834316607856007797474636503196058896948416681621270098864914701287786488025809099394938125087856573827552744288794664771514254340081150343526899505794238809728049825251304224397491367204403445310497702328775190280417699732947975840047356994140188923487583296774245277335288992236205832792497651786201623861931902940571617502763983671227587533566181111877524397030918164323098798965023190276150325211512155444930710807333920133764596251379564386226279435880169403843458014113897204416188822894852628639885053585954811679530364300525515209388383798129388395603870375401141617603435683283334964956989103878624050835948775059164302592026888563134455208614987414229622103904156104573443103826782102256356587900735251610696657138380028695336998707700808400178079299119265422181323530606132309119155563899095677459862067253567078108922179262060828588637344604872252505958919078368402598525545350764038316575556025868603314955930210724088235081638878407996777648988910659400923241880635717237507682461952412386388360275074702951202780715276576466328761203292208673920727263099916347423581910677773110650086505469188694671498037703226263295878028970812358429029335036196141578700715717215126895173385931014631000007861863818464810656705849016848019755035455033402410405775432447839221505493744744115704407825850842149183927069344048279448175370462781836009458924803008821975659194423413115147496259781835357783112346354561093447856677373070925011611489215861007610176920392628148166447202584221988534808072871596998820090769237939971872908665125318609365890569032997911452690837152826976612640584886391259393336827661327819585939076086256463331935588074356909953580044515262408445754313037361050839858932032742337096101566920136940244537608403622211194170653019508303530999469824062026782774490672550034018166198969339406539988524241578493935256855050658914998173800235436618259303746803850710503847247093389477482111674552990087305340604612807028364499659751105244787748160464617581824517677511705729269170394110432016720175421152633496544539439659871039766198812899427050365028086603190811438054579416539832223511487035866754328800097451896583404131164540718294511071835915908984754756807162574271525612244254092201323925065758050665893144979612823664494243784517961735271034621562549861028446268490061599899522353141194477678569632933700116988890721488671499795982255450890865101356486475544688346745926636864975650413279037431323358610276849959456578940253704655185150362516255998379266817509331902119899582413998403652702413045600560917247476458942572307339698710426491468396242646700584914324157002269815056585257029273095604323711362105119010422250743297058631612883104936283802094076027053617089710325342163983080228534661682321736264800708447878655753117085694868621912230097773816744602075188727882396472069543304521691077622717794263698150885373538920805087234154685364156436716545210194021742059972214635909733763140494026296215963203282586485607555341684598950964552456308332760381507960630675067377565580745327446400583509136512629723137154867804028322774980416891228380127098441340217534137002182167265101424101148250988174709166570786525951717840580817748220565455257557181513303317569040653028831364332467962070811548360260947597827656058845247373000653447474409877090982078066646334120067387016842795721787642164884063390460522275118190946997409217682902540604688130278319058678160181138963031891186222433508693394747589898422481678540229419976938264743514059385561599089990967346216668861399906074916004814548725721773202323264690360594306288315420658579404009625416822769095670442119094323607744143018175642266625536326875633125276894864156146812363237722630166941401505203465282214792433555398633323834149617586252781316930983193047994222421137151586366299537902205323731311103011166794948370237178746921100847702744567738542015181741383727799744169519918786835456587419812115396061610706933644849150536443196635818419492010723657181242569701836992161309720346125572189938206946027681271682940375581870127881244161597215851754176573134259199698387437290488499674682777226660319276217011821777966812206479895513930235447968593288580457816900093152887840052125067881852164921847007568769281848363346925738740163393759219984946556373237938163396579401823221169836771252670784409862245919890582119292162793086460552798754271347191310846408563726815325243461156177768746942989144960938699600320684624019636728690992372682693453172126884222584145762426465737713455991046911898118526883465266240531310697792147282858552824421847895462970964439921526751709976546635984378731804167596658239383990459057974855873369104873070517038242927119863226838733654987036265520277325107294748909082785806111981355473683387798566799267360266024984044418262032325853171696842800562311827069698767267103337621183007786741207163850492871733311630869460375129211934943720924076468666178476086384368808616552532571438023477074547884834094251711011616276792321792504141628995454012905889632302371124747843206960867965508500439891608848554070047254652802884409548461033677959313203809488247321789403990579265380654371101793171362714024327231925473804579726787133969747549548624276774480080409687303264015975830297865416394778538879588785614105471361635209573483755684594145211598385145403410356246596427434967391694678620586118777828390238087550413407702984174435223003295475929792809387388406742828052837487444577200797734163367901214241656774859344671409338152395968291354463439403005314901077695273790115801959766243064498100201773769170347902886929777744375107179149109690332394893819845909656897807680846837961477592428369755895513511383359358706886953999661012446181467286646171373096357756159628621515519734959437638733540432010744326444578481061639633884939676176321308935284052565820343044101451099027288058115791761996570354665925531076658583981913274359672770250303536288740873677784856337706092238848531947165625723236659481980292482708399463013316617003136018652573353932725673801633173517000052012138909705078416374669788041266602160249147431664254657641234043031281430574887041929387571797704101489497945644220648594895799806833243454485442088435571090830330982693972423690727768570726630410278177951869797242335103694823697148628361292765880167864490967290328596162100650504889484925268613830079140313846853849042242714737543709001492659641556883944246703371075354946170647262809930369630122649257473531753655063531060395204649327480935906078698038769466627244132528320975978453756405169794095265234651143277163391691399019247043197144307544730798244913630408928647736002589476150237886925929907682199272404460760041256083230172780420718451953773572389974067398432109025333465328338342041318022603586892560354665368224836270996186875392189955555288096143256593561988048424928807365634843150193757391916895495112562156714089437172309867175083679716727488404275195232527707679403949717926327444096277094477128710829495076537042077860976858577497821008020778101325537096527471859775839756442682534473878149093582409417045100021270757168318909905317265240172837805909239472573651079337469237333776633398289944355495766317791579461110994560472629146500788574278481449440116554091637953534202399658073234003416131100198527323833982145016158147470647943925934138962010018109823872935952591957015935267562060156033939627833776219260659171011023160264407099390816953470676844778717423209195326243077092372298595248004616922100158953094127693524604136744614113429691427415710288332373323388086549824610810632677675279835072432505865661259549245194969794908792513254852116817942005100215918741321921814628923657299743551194324332414645919379289137846295596418939531823643797717902111230116459389901418832347124923284452343597090119475850655042408337016734609166976577562268236605405123919218295600374715865920246808791185438449616577340291033386842576312153597053109580385032101129757668090589915714507756702453527374162389666974818271300047560505914115833499158731526908780121886887682350235848125026948372345766882172692231992820356503334068178870502283361197359661827162926588318593133211122705653334518433621683076056762471158629904839799409846678112799686797778803577209649066541787178011510033436353500036473778468048097226919084702490646566842485273627380868955451207983994380048705842169147680915455886645130663521995250448100159259096759656937323586610837124800378818258510869681172949384723988756943241746420478685220112649492800865471979224601763994199801457063028448964274130536439714202428361330638475800151578406947625248841777153006742272219792109096213639932781151529721356616031865816374268311527030679321286034323953954826042379223080168908680350973453340304894914174080264074824429257716813485279679259608788097614717159549041778033658233412371127019059566793580030844951576111793156596391989073012365751977376178540992331237670392830241118086721584619333421682029496158030766808186175152337195760062800929372460259080156947929268228031759971176764164468060420896927437121647370596208164605801114642909742590286916450172413356032928942247136583631666578758774178111456646986666238109293032771707877950659727188738181598744737901694886356574277311898556671315163963766800756733321911629291270429466683597700987831333027312386939381951148136439558971182668292208334532027654307538725877011050129539114215447416312579949257478730163940398414730562489711899611591752416231346616018273709032541099758606960971051140530651711115821012766572299407157062223598795055318408965927997049821487727992795245926065298103000557902978928167295538858731525356423240794713684370735126265811693880135955762866452199814066756268234545798297267912717805905052504354979511710376567289909945730552517005747424337109359000098731374354612841832421889709072050956316165042877091667971339194638112333561540805245306563867535830010009863856569544668788319724071351184129392529316450466156143445322587693467437545070257055903695566068870871531355386265344848252905164239872767242220264391582024314569275567918903286328564282365270330543567353992709582004347612480912490938709377096265459666020427690493057494303088218969382449702090404890326208631427679367807978986271524605742264021040455719342043098916795065342703575229861190148734070826858730781710797487836942351530412170347057829555190341291143392647458366541701063933699536892219178450521085828722649906699575569213551740833264329482625443945302454579463503624935811031815278141077052541493562435263325773014088595832429810260174584602327836467060567597739200479812877369539965793572560107768612154479980592762723794375584654190645859347350546212397728006727207181038626565473912023408198971231074543627540283718230452916236747172626385504297410894393378099668747344656777265852725239339458869811808591785387499231980347682304433745861232106365031005863651885543616275204816346743608049961997288142955725868271865190776215308628828923236490367819640947068230468157460841921912939789965212862179749324589195900914418598060755507211713887495374710789952336965216103221260056841089270727950040118871369523688894738672903100055464239376270446410313283445872931951274874146732940648699147390149566560142020959969527985361679734700311407334180160541212448553186003249480084400479366275242913752353814545410041712027869081549178240276935685568873641504628978370287912517457856605610711992918043600975116253348007067930995280894437421891307189447836482626255408228040121040236782875717180382112359111384824050708903116633268349390653467877117124303942328121391637570162896356896490574150256094390644600263424679612577301147489864070919167430357014291271947572318113863184155003358270674693826999864298578424125799034762591782103085187833837031475794608125246442278057662020678668848583407927831361383457440954597635373243242678686666737758074407150736910483262926845356908523472748958235643528582428582058181990655146902925289026989058153569825777585333719659144998387647520189130535245510882275662406205356422722524939312799490988926929589816748753460826654758571349621782699435556544884239623579458268867964139331444871850773206670710150020001015208794628827456773577055308573760247792123321839142806424446701778712161573336394486797247573377651962919110298333118413202449097233721331352570881935945885374213994011969402099974211584617613561933750260908460714728534380845835230605850826497151906015998659970241433266110725131252011886882406451187534186499839529240725408031729219976092654816899419822812140216043309579904514395553012200474361578561200225740572465483013147274008001334462816848985846137872644174769986626679907160425609380350257653530759525230052334234466280939164278761622175316968107718150909671335502181355017782859480576843627435567200168624760413740061405899404841443534822480831507380920498030381394644226417185712604219355839233436873314812412337307483326541278873695674281956303024337767721767153636109912618854805050317103442723904475049344263142888126202057577826039695243884901319854923425071179804293936204792988204367542930214058531431282197019703664770395506211173002244175650305361536774167143543935360317628331789064704528179739753879774588726335102717801186376785822302753209802838129768930329563671059125987530808446405976282353940872306516137409065919593271743559114583187187683981269208721629970734614650692364965104553474582102305283294298264845564478243829193259693828631413833401527140411035510992227428579525284120350171635267781986397131108525551626013790132289863488761618787147395840772795277268951504706916488622605148711011008633648582447248093937665696280491258877161640642888346495668193062356180270346890969712757590803629920337584883341148852961367521332541530329306194736932946295873896145215395708539773657012198884510251173800481824439716347184587590282438169877109974612397207948407516805864632331225580647626581397698102655177150266483924053502880842654399147076724963737727687656808063876080023611741219954100975706690456949744628468811071211555008691178390504183828712565621748041494323559119477889397665576451381664808815579232323545838557844250607628002243358379429956795984894471977505830346566732878542499270090845215289006325259355566051532137873038414748935889051431541552531617353030951487294620143009541334498838822214290621158636570192016544796049259575010935439962103959010459145449745693389200238045589846552161478125768330186546045796470355358156051005644917437442803136328693401263459403547896272567889983793132445212185554422343362281648032010268443501291829796912726569770778248684327561059329069415384174633283020228019190110684798979691735789585232797250369801835958899702759111597684055821896490785153543389111787417839322745779002611608410845088409489342774847463746517817851525983430288247264355600846610679765686403336657768854370803495977367881430017241487988891595664946680240057857581027549078631704425307955211161166266766563351454638159601753875962804159030254983802825011275962573072070931658690589289503828439549099648836373345311484085643445904541042248727490334102643428113611748631289198688877152454344963518129193567902765455880628955059522811135080836696188294653084124651860680815278640045167998612450425489088824316517449579957721422987510991621668504206422739868633759163932603762504619188408178419620923768265864471918165751350261754004048989288391524686866258429771516031984163429726484733914203972920312329626152355554003188686662435266227826036781194128812478316943430442493953155007609674423094868621061343134834301936567475409694536913952698498729955221570071708914156551747874466665833350842215843399658549607338194981452932620079495243683791997511647425855537980051226699179413090155109335274752990506974156417643743684844308905862050063817974973123413101683869499314729619992192394498067946421119134222104637324157391029253415265916617769029993783477165451380507138900686768142322529189529354565138758166467101115076685470822237701630766305290256419153373912382333028006805723098394119986910167017073544808180929650677839074848306549941665827851678224888802383926469309797314058412795921928232274639664049469243549397559469160384294519907928647664424414498838841534446879766114200749711521467952877917649094223096297202694975438866993508731080363360412760514623617740217748854635324678349346746787563353239770566624396216381273729434980098529843388608624430400321545014519837966133031843787974425582698648521588505783579813405891693750692201606984868288458592379612885857115053447203961095415700018752900307489310221288363959565613309522017073307542977294306768098255956900320566091279578060420087572956595094426400674832147504238272159396603726152205943718265533120580475355010571787562202448082962399121089873078479590158614698964981393316100845731319668557163747966655354317253205279002495016787833034105539770229018833988254143124948445196669660703828014106206419748065580944475379561971968789543660873848570383077116987400558485288662372918730556767158848525601138807013957998529847673392989513385149993393400140387973798926696347363373091279132024125155666960836151417331856252468368572462284314206517506256630966119737537281690561004595707768506950394429811932357344785911422435670610372895620865180023289688199118874812790066457325199131130085594477106267686951919009577169104043342217256613751791668568689807533498621677933998843321455853622359600353978520336226357868205646182705031070263395259666527588464922100614111764857221194237757238318361442325082072074506707117367628944913279978795599345724116405137918768669935822148036101027014682516021652390310304613420925742597451267943074633768837397579720024037104351915759455970749924413569494304471804843867909159652985886160155307077786117563949680941424875313763240773824778577034506301500415102504086736500001465586144595178928179382086974290956711532370093753154153025047766005371171151525011161002028694834353864199834527610973626373456237001268294824897646916965941960972316982242711846589945861613864595853018997954723648081450835649278180631972893653543717572215985146981851556511506927281690799653318598227497476047951597146167927075065642600274217580785608876666457758878025277629399755756210069255781686357485226684221769824869708465317097551986899048027664700627857844421110802876650084872762453317380687613598647175142240756374779389499681121076065837483141515733693221561607961547416689005739039624220040480728191089443339282115268705554020467547639995888468423894708446214322286449284462272316613301398650994691699180267860469800498186373040896503322389121117501477244186312599574206621239985776614829001734675212900078124314472169801493155705006886208657659801660029209695524766318679280560403727971807806415775554226335550765097684467861625411870598202954324931205714160345448610067880393098548216956931731719116718602605590833440100814971760582981908257513878722691148900198304630294309097275700565012581639353176351635239934865746186030015698453487793594123488463261706344320310259682929404808358583011306695057562374210543120332885620065284857632643937273708663316717373102264755840836331013645266926648841235341728615666919129033703196003840914198018103894218172044923768775539355614821192300734795044995132429577923882786619798784023484188861127835620369032291898577177478933517154828534534449062929114728424678635213760315800710611696635123469519440942031743698156595677930456456920686394009238708309435500758249953560145930971718870448938766780816669751756798668660180763609736051767312252122612676778069822911988437867568937881780373470329142191574263773159779836432189516473636492333975546537610325765743402473436944932192957974930767417071687041539413591302848604475937130022729773272497243200118053047730527327105451939884947410292913438561501664114350459640049936702624152400272885844936576135224117901199655392318810727191773187689316178799314712814710367934405139637056303558885454058235674637417481750417718063211525035228911613120952579250721782948656035838907711065869668867886073322027391284831045378926803171694848162419460795380767984164963910357692004890839605216156400483859391928192875092925805549825875786625679406903944938979096591045009721306885071008022075735193054197227034636087950973333520000976727468204762046296239370430990550562829347062974055317000674859713521029049517801316475934574681804468640507951342279682321488550190370567505826202541204772641716760907905995695127021520791790708934098046151230301677334920019873996158112017930835564557213840042589959197672773398095386590977992096315829883184760170422425077411331474063693860260690714204764450192331777365641613127710549180370867849188521372458694481923885511762029827315971157958778485411511460867618694358638074264148598238224525060676464570796467325942624073907667819681820707533451226960735722353598307327390653150650666496260485881047001467416572728980815199612479441544435742276409106475815845362689572460262604822918006133845358013852582019979586405510818309131927575835873510829510611995990989737522899030002909744668303905167084685156375614130073337136612586924905463430109919471018231733437438060530946767137227872507993533328156156836866768986051723515396004384591914589496592217848423614473740705377168404488342390042170160559717517473301194159718228720416412992440511148170996913334360948587436235128123292839754232973352008229576238042711535081966357941174834084464907858608172837915766491652982995272370998538649519446958623025966434189474342854076695673910497616569656126275555354602120995255739190714666425944004180728961111039152533738183794703962857218211084825522919614111972597139679040913359665560960890052840599641717795706617202618666953117692810095813070381050125000901544524279045722330051338836386416199128658447314452479987021555682106881101367077767407909385384438848467527202753644406313293127999010877570903736822260581179933888054004748496988076528833395580939092819765974351822030921286165605423874482569003203452592097489385739994548102410745567070001165959682064285456428881728818404482402837711820825724038462414463823084618335409235996780800768947158325756872867774997736591678083750894579983349276050355483174334419949797226058721380272889304566061347994981183506444208714423555467080374275040363228769280562743505507417102702831753896757158040357571090646001763885180639153375272944732112051728461945326186286215683706485613486107188267273987084518367443672233689860573210254269917619594006614825074543237959509910637600147129939974230344140317571112259432836843756138921169485520781159142745872131106782692749682551186118480985396951249248158591919258351642112151682703740430237704158277539229520546726502639983624755023774294683207641974673574057035342376540860392640465983421510428249115120750226145365484277807763035104907147171285944943702364318634992866675195928200631149500605357148396830997290229969040907667407029594477669516344291064913075414417731003503892674153893000301854320717445296760116570423893889808330011896557626283015382258118597561702433523054660472089288846760266559262384216205295318315381144450938981165369279789248612780065397073749022101338190246041289418835120203854012978555987118811155622248609152405500576909514150207906665757449238378472161770957438820289271850100999523249413543137596567290074289197375336961342725189694348778068276052917300589857933943700723996053096141308809037370279837396124992396894578956042489929271093305140124903243669338670964939268073246053864952422224655067333404343010143814264281207468776978520967918509669812188265460513192437682097930619794305612978021906917570180256724455669227495124907321983500425215393863281052609367733724409523162789724863551890583784134018692419850797332234003693272574390108239817573742110029474596413851046751225076366930755145131666404302413441058122288563011211315218638435048899956736796805608161400785554717423950153981510131179673531670702408778147675325326205506159994893794368729570775250445479486054838862520045645528502734944874693768091373806313190148590189881507215035152773775839396039920174736301868813920251249046397102726640586152920977539298800670951416921420520295039473550122884781042092804157421408826884381085544566939688393544446957286642377319359060237593621008316273896058119490373305026753932065739915278590917805874764517662801393313859608709256369459743630718723851494332317113969296937954240810809078471283220364369935799899346692786408592387604829979752641150714857502752245604511205105868475304677123384154438987954527839380793241398241347499812863322034599203303954210055607419051182788462937679988794987287601737553572578443839054445811740371870228992186810714103999850175344054797789497959944874425050188821322880174729300409430486524537121819062551762430808815638949666439783417818310531423230864971067190932879068430182176454654999159036649880070482455783620222357277474415518956192721762159595094182710685597830639953171285294820443428836185197317050278527148430854320771113619415569236984672313965200173684331629284504506518728371369581317802464763448300142861462166415387895124628466406373209268407453179187650199608063272770927281614279301415147467431448038685622349842910065632706734479474611503840666525621159208105529710914012556376830113501277121340242339707553291238618681112304336532189347818901697321285533725530992114035988696271968397505683696940420910334036516464462431275333108800578635988501083019935346571690796313622112723641010851849040417931919212294982470119017048313892145309740484992126474793186104546411656550693488079813832325449815385519765373646091025112161562122483390119367674479927930134621935563186361870993380566985562321928914749204905007665409470634127126832874330168482948921786272110380006155826849012225444970014463611037927537419821550884216704004212345620722997534278149566758340624019729573253824684649431277422430839277018393078415484267158784637059935370711743140791244584763879288855003446709675389391616135925728770218715440668430565774649194349963209103920356334324115324360144463478511281528964868314269265514229497309128711963809266578409622009358573965825439466196242300951729489952931565590061474825911772725777352965888053162333420047835213415809836602007520230099579710742889020948266076380215121001998617388394458120851103941047608274394385352475359075410538179836070671471402337307449884860641783160017098577885933908325346884011836726315502593500054203109856478814491959523525889620812810455317649247399459763618913492920035038945960216353447263164272940595920866948564299062043714132283385680710957164025592026582752661022630599567881421499789040807155529334175618128508604520479092185936226271762292908038251175279278593544626920078959487989907641171835584958397680624755538118482236156482222213615248286987044476167391327125320971195581916555148208275612930165671659497185206816497994376578248275603204830147370957687898605134628819300392482923614970556484131605341220276357304448317364177829274985111356781766080726434433738198914983957707488056211649997128237216371555944850091113128428120165968504777834624435372274787747636701206078890545175606266460021187460224934825738068952285585578363205042591149667713861299510357102440613851101342993895095310732949055740177955998099439337872633627740586244733970885603776051455704627101186556530785901187244073328171935498976004053241518213901942298033899774988611055796406004288718627149016350942532204103585130853136543095774238697460715845225505171879126347896822667093064766617744917988642246646869972250743342243527108964030221459359327842467517438886197750340224508442968856065575950954329429272971365781088036096438210154475731646317027562819344904553919001921495094928851337542767836871416711360712034107911964994143561379048736317905380265673367528880316089620810980508803165384005234860846580571303767097612498664416392484328879119062585249149819613868692870294472657004421909007920034801388265451377509277787960171394371405309721930135273633245765947744419547969029990737172722825050939971317434720922231727658870936577900091289599216658053749385368855036624600384996911678044708338772057042484424115896548993252603371877303334504952098968741581797305706347427923132580901608739650794491585903319746661009094941458746929448105909845328707086786301800132890051710312891591391131984218803013262555012111043356862832479165641107036304592372380583028760227094279377243021054321056493700610706048592786084676721621535892514098215143921026401756163367170853866149314370139729730396955626312332957891565260564994846527714590338484498032628916553833917314549456185989686401067998199485179397397561881454444662029846081207074710216144857269638539416380725276826421190663540597294728593373093680951968127473330981211176798860485393632720475142786833908326850551090766651673102338812801751515760160036045657647269235335317511103455953878885742942199446932965776042913328103826072003648218297930832544824104297519759657374515025089447800938597424095366672666160577878955228372730573072932221496600489611227380575025613568848894329881554843883556945772514853424034079625310672902076811901382909263938186391234533331176498694298769759876498137453249243110766492450656044520854876743909500492879439180588185706609489404159392206931317066320895589905153133320144964415534782765130486929582856627790577053379225289287655951064863987447981604266268069331609369181584973373025637374910231731246405483804898389479267176734382869002799025264971089539190595503463894446013265825474800105911924422575595659294202887119643769275311553994449952582210272653618219601211440328363301332333330073750028564296593433460806974080558699469229587125100563686406787229698304913330743478697243042019393983713620101597855694090507523620908156950126204371048294908665588151684220010435216086421984953779907927137814384364632905961807717206698744897330416063462270513936546074429496716118727038881173944732197262921952038867651826400594126086260326146834272656392645928021659054609037001316355524294471630139376573846730221776609643191058534749313473692249460544944726533573296086470790659010859254423099867817193190605181286788718416636602860141521164804323708837552592335182701274827443483739679647550450811596933584628229277653126132995867268208211227756246142325506919430395206645345287534820450640185384252309559663486057079504184542000454438217985309630863394464146106667343800480752544602769318749927978685517957489879017709304761434962973584932623187655227288388599811331449425310317166913839060878109361039127657125167662236349736869413315537267279242317349067480460911390530914030149186451364187199678897759676964614243430456895676659088512434701672518438180391430267481356225686078097011467650232354059314588424117372506205383136723455964398116946532289801996429193745480133802521308805366678239474363991725053857019398831944590994357114732121301919418129651255952708594711981316932982709760459190737593321802887970154846263538079685081479700109408520456493443506511152514091027012094333775551546721536678641628703309586100053237182231075460591059527034361821367535980540772187930774492252162555445278320754210756807745461914889942138398964413883103446599502806454234390076063708134283055093302583089758385929243717858023002572515192974515066863247061855388545439256681517421421417723149553236271202117931523002165399559385410773541352410286150253265358519211815841091388206085887667357419368361760066167392718473331488604717645152359070580894488666687748732989164348670805452349418782005470250478423953282216953151662152611163917554626571612490058177177657978734239626462410301793709617384287526295545127931471841481919142287551578412633026136608199798673818639834138102452185280745344853917534892461000167046634613218408165718560920114106946047190482716547429555989793896976016043830430700890568448301055376079127217362641267249989657462436040817043119129698250616486923697739068313176394818136002878970749181673694726402105346371400540669379581062047278338732646506531704283051478658293701238062179394338466057412852593762205125892917540104088139761208139611199366188773298957892970093747183957811931712866863611359491414913382934767782928042034420630752910901258543674141664062965751854688165800527399258791764242918656368922452830817039733949134468935802670689806924380444282765602121160015741277907902349803010495567829090970654058117969931742115286766377712956019106894297011054311691160770875383004506595034304402065562620749516560885116172938173351882235013490776337508149403407924816269280927128692354128587821338909991237650601762675637782813085611880568809102750660326342856994491223260700826886118771516330190650830379120441813545401762283754419704630246054702005685303390513979712288385646970972968597664896393257291654281469133980041075760881102334264220314068018935765051714179725710349524933309933335018375126073511860527767287995470633358668141693994275583159088753783966628873847815680510699077770757297916051728613536539497421582312412185845666159975902799925793557202505635562267735228470815802151992912414923140658443848652418853642324182480384812935179282325189535262560821284782195218237714085482409520154094070658927756248098848472217189750934322033235292942574096883814801106414020255645039336576161422408778024430253351423334316317146769740726327219881870972126245763130409214511581289295959028795614327147685821033472133124265972052050992778927833896395613825208560859129258783159818829618318249071005509018658871641962592257830688409045033269531492843910744415236476765423431928613823260365367203827251296210696944306136004051448263782755594406334916661408297112266647400367821532680430555124772880687057348247490814485546435939112624093494849892220779508137903370033168642988027571865459738645646842799882649580363226991423875283752745826061977784958912475078657963070373763746711763001147167456936263607252429246869134032074172474873829374326141831333200927875468937742019305609528851413019303446311704976550015587819891838086086867279384056074369201222752137369829934948175347511057488767868370595817615683928182693769127401839185236542891401032871319223646340825638312396625702943063028352260490600857009929462774735302560830644334582994993951842878374265967419256354095877814784949611812177364187713907670556312696851925826057375901676877993314137404983325557335196527795719306417387679843139241322733303516506548740716129396464600964531150646163296281940424462786645905827287912140131042921097112426041658964258157300087926381675103903338286682339366056034308782377245355303483708796749474175431763417741730063005046198761658016522235193206149331556796924920171043702271419969343114095740074482727134138065337152371494126855702733886349947834042339162455050929771370771869032830536254594867569969389998925027540193309805140841317567103193986022408911083396958342069163897520813471127067095140247118042161117154470793208008263552515685827673031520092907780165340250929036778234776977902668218567994240346718217413727787423775855467252989984198584067461533125779212863088921126791247100821397708126357157581348303767925184834452098616759800826272268999368963286751772050022258464701631002050575392131285854369129200963245548038395103075030746990006396782246930092227578542967477091910481324272664230900601221355966151451036847298187884382003789818259299754042927064499767949604421807678990322455849019056176333959353506774467734722370949845418406816060212008402336350146121644543306183264298446475120102540816108379105013366775967877283808027866136810650077464812816008767555881056999626820793075551699635955318160592078269627357996475977571717701949047843477921916526470984876799391192108743010463057605736523535475009567375120998110302457366759998248510110799840179032002823631858522079175018437466236817501718272432165878497215012229674564137858396123477333377793223935452598444330953087067304721085073736021174923055947446887810360725066845403945722200063342861553890029720072842055243510166320499967312599829826333052053348197741358630474990707084789924547051525267277169965302210779803292791512064684070214814383496009990184828670957633048528223183152074906571955105208533148031943338622387167501439616609804393434147486546463016691677940861136443953024241650284473092842591569117319335639528764848256529911304528154052334659933729741440745202280546125778458731031791041332694964852273170809844064259169240308182240645594794483801354825616379322468387315171822609661272939163833340253514878407876921700312804488528676898616164986758641484269277705831859234412040299507641262752985695536798872712792018241747245799341432721642233983845353139747382388116646514100455235835354815048539402239505775401013601112007706110345881358594945388388010796039375928888974603200419788643359313999943393818187935645882532812221201133234037170855521586633384872292538279805238299781391916230091295861569146566930484810616343438795401982091351220167153986337573179108876385606529562966546635528858489224269736357822707317062116564116090586277362364246101698458899600198411117370566883064223018627480660657081048963390384482130731263886531282288140524429219196650492957625255998127214143173308749323779233812315159823173277546059877609850342374023993368150621586447584691959810296486635239680824321087841695986234110704956992508340004950186523101997076094643326294915222444575859325547577787456342424425741622729195251255803246028988952507394942449129516067077311058561128281226464435829695497390348881835960922906204479815133019227023662156383276545443953801944111012832437712239830868077419007015346336724167919005911411587045796732360529091530025346564954844955205569257065890525035513350318592659552070317061532692530726690791897748645969756683651318019016496436844400212647242330259070908357705990973004313826255056515251879923208441291479756357613292101372617496401830679862642283863486775984255299068307029333248786875149758248739096718925140463229244934558104844454985476255080388227246841779479868855974545613826042876428387267172547579077599165893469766282755848065562849828870285771091348348882391106977850031675622276897307295472086872449341027166654250043831325795918275856536896369343751992080499531269733658111638754834148420733610077775556528570573899769532620033325648530503365801530239077133124595424404309005901368273433328112827841662904076196807779697751644389302383835165358793048476237426454958203777834624277654540510156428178000802469336465562481599202244054017381856189906871101224938552068913111011823482431431099598860943730817499198368691766520833982086055169988149836607213889360660640959748935067019948012593899576221290795721814482333397994828752473776128741265683688526003876234316070572820103385806176746873233144875701417928340227083562641452521579344790253651786695847800794406826309762259346353120077627436884213087469381713775988202560874074664961107147254489102107849913634453737184381643974351692224020225599480136382569009215395000494445866419898756478192278083661564982624033036886445512587560369230561994758825749587063207242532347587253948347420666512750107943606655168591101157823809539285498424773484866850609692387425879567216282146477181874609393779208392341409577928518198877969444281774797369253447133587036827190225986598253540791834232231286238374371425016547722536665535427968211679472916958749017121325846251947746948431886290573458665763313150233290977816153489532401154209244715383614145953692668513537861779882009305285038015907504633975067598860204872871061573024638116307465440753692923452242285932085990621454095502303745405722282533958027767792242265326157524046204062651663136302422841990122957466675019773559969532794400451614812857330753664922316341315986849456177840591151278433659353929247012710892730474956849928380064729887949398752622692902836526658206167833194374756381388020927958231578448027454799094866197085069704437805872813941150584489922574874380838753286897131579711668884650994072379247274738982455834657763810971999127399916598648548860400035760828032206069375717270661277540619124902501076354269183363772161709457121336475329399147831405582771107980250014223067611331560915448845087854619294406358796137345315921455772524845153748899453863429722553652354389064907700930232215289014508698609285683817286846083424611018446280976493065408180838280454764591287997632930544096490129620717805655667025757761986430923835938742137796477241126709820125681280229066385204791683026877171299131402492428147412670364956572690932739022885926448125081357688792485174210304040117926113373461682508042447828045809111792364096417840174236746739258260739593089153412046002736450398712226578917421634572735024586795967285763694896458820370198287859608480610692689028978789550095802516136285518172405821874764424940167395824662365367897502977175429376681757400283263322671596988769112376937687418569501567319721411428046684755037696936483820258042468563344780397400439522398163215937629047359931992777280506293275467293528084421880025360024780527366716751152750873841564402640022388988897507152907678497691334229698693096469469843223612244225237881082605583119157959308253881345498208110795334317259610822772710099065477723029383149337282346233886684669893106105301243807708646184347861402026759119965015144569840573384383377700471436369208921029793573872374032671414429307746711444123783097002515625873705056198795498478394316894026973471328828658956388839829310795007185001007055866736366594920767080729969525791372064510988377383673585366519567784817715180362467255962114055728963655186395682876290349491539516248600467822474777315783680420010374453186603490459110501414823222201572814637053362328722198000752407728640257987690892315463425333975495723930638415828221863320041963410232507927221885604706590924594131660754376702422289841155991791906990589492903664335538476928468705649323443837710766338662542850467163783730885238800688993012340246677970323158093954899861758848204588405934289795093337388937111563403316564109670145446695159500022519794202912995974901885294183333947139452663789409148958472704450717408465740395478213477312066512426904486613022932783492308994440220709879584539105262114458725726439519821479965737773835729524149364759987127134750785136603637772420488816493117146310515972905916759451444597372718280043856568746679392840556069716826446459864336654318753083592853906384566662590493749122130370624288413450143997433123397033400498879824079401409537005994840526830639907503458163325014378381077011217029555185080207536231906959848020556579020408352413107088373091313622071497917189142304493074608099415995153625136995343511052493210812118238658992240300941916606779533112444674221633331342150803960336023181664679769125314167195269438427603140902385713659473950589535547033134337619568120288816300279590363507150947593957032292825601348121782041953837808868796028485817782238949894045161299071037058092124398224952759115163173946975754609911574319301580383330487874756598095291648207995382806719646664400880173587297065601191917994618424034186668102500383979325879687339807466957354530606853871030765089116946896631873409832672168939728860727298339763265182602502905858510210395840267245554805786591216670025045243192050737026002321981722342807483659393289198681712861989631620696543132887544822030259051498631377755263684999010092138053774199684617097019431864901299453155885581457664754738061868507016264346898330778660065289264045678137081587283296896650176336495451447593073627882711827025329603056888773927193616286049804924026048266372228631338131247383240776589064820588915636367307113016162053025228573430640368822965645457457784760338573956665969382408394378672533309335249834241320802126786406242457573310078714099705286331206695742644214176865967408678243685531589278458049117365410944345788670273281238817124024429559629695795125997421932110521197793490832114855794360486258246886116974837761550827698025931264678572320076430495293650005268169424990789180962335197134674046454615234032983800001828765959911928763341494649411780571077407049613755481109431666577910465159802051615983928453508332469077289016724099108295242846433072420320684246984778020097073104378834180005389514006757936104487995079673165894544909843141577138285327287283757066172456402019628185908221569833481249457745138555409225815500272522439395509475139204117287423072371313935261607223073503704179042767415944481466391306292981529441256010354718297850598726500831597587099044295811310584578723563308348862835640809219604384055535354998781925167138685548392369536242437400012739141250502128174520314769671811914247291643686205318111952012902286748175602576671698151409094180487867632224231094569126263001475786920745461971101994120950796658236473186394146131621246677749631445758116136788347343377724766899997809017876927153092590166370364866842340644067564729996615940221504783706363808483984326519421965600013778718550078419560419608238861812114673822434317493053209355026219584010769065606287336502077612437272910345129802916333772903729116863455023815547034291644148419564852862680538315194716437002042704915228171072417232978720098002138431603445114696827086098730396776542110738549697829513334541902709110335202661920076871421468789507317859591802176684338160716283146010226093614848919334418777126586305805306585776278763641354957508459524779605279265003694783097634987155783643485401919574519449478633761934312085790322689984421538164672993211908766506493847982551586936760704818209746228544325490461320806275086296319487779585643151974098170420449417629737725335891024511579914921352231431234586046198000986971486862211517204880090737074592447296907051769765775260343494321157758610894200849029488629406835217061318060308480510411499332561259937906082335398986650621192790878405063737247490397216520060113482466515079733383130489725914840103980828144556159353488729105796467682628826905159995576594132655906754277869612464913717737482569715515960658772167529632001202917228407223461598811643182420429568437476903905468138023403186951462712427253114188690065069603916601963942920167841951724094425957975716283640363454304782372543616747788747183449444055487046685587118197855100500373423067121225998126086682403644317860270535733842986398116354505091551674592747303008241937540679890128499364627814025130386414677823824259186163177292359626983428489071733085629942810684101807404029142407717749171601670214445678953731083613279105677698368798896126591262758167951394954767290817137763014512886314344512676622561394123380405451491950847677564504700856125337058005536918115348302476543220901297764139674333141827277104727080925548967725879912315106217453967438229085856854800091437374121804981662344951548637938702930965393242899179452659025035165377764273374122855613816289204311461485812097249452615811856575268548777396496253003679957084342886446711296682377488400138380468983173866908424168804869156558064111338276673919983885481586237940976569865596943162072984086133885083025118595617356234540709258726219797120655806402951400766965490221739265406337319772993916664133956128853302904893881829358327150666555372508005364822223981343475840291316603718092115255613399291014829875062661631231012212507908255308923837010182590314768260274263961567598363216764476204872868738907530151988708098856609772032015546127075792115968924188408194157187527063256334865200909501308784071490622653790665056817752215685086056822439866009074840900710922463585200036431677849424162108208347757966956428629098993239405707098302842928541336667334663678882160287842005643035894227391848401794485662497422944751486595488871760483356812497220621941134252138961438237497363557116566096689999629887907085986694189857964922077216878583867495288071593793636981000678039270663812566501956749905067896772433325805082602072007664340346652389163155130092348805272413689000516359337007215984032807798414462180197156014551017438466735268323810802393793126088380405216231105907828670153239014099671398316387025305098902739075644010917177134021502219421701042169419458591935150447894750254850673951665036902910608190118407906721300912414616167607618538294128062333282589932978043678229264756569560690657771360950052963479079241973522283328254205850869286908070438038481115852382547157773827483487308096164007918139233194293034172510776429033585513204485848727840806130441998457903915952009117702929012671203607248205954097127894759982808278548923060462472072566760057229289825583778104692947016563803179782147280831376229672727813729809597091019889076761980786354515930606217873913071011350181590241746191555556347457481665833359648668525625853073220549036623812425700643707398841761047563123458767769530031522277732923202114753344983273815539091562144765945118677886825216450560242465499459286249957539043461759333202431279659841213500640269072676942523409205571478004632228708311811436003541767656864297361154030596649121982461387179517368463991930576111334650635357415315428566485850638739720665561748100480615727856801921388020749099326078280741334037454766928543171815924511940900191152056186389591076540941414354782089816573139397601901392138107372184762722889011013645377377928149288897363738144462825209262723609022269093224752748559746174281869149619293201792619694739862557623230273837086628575509725386815543891359140662239544348802902409429378533123586626168200973340070456476699729193016107067221024217550342492029638089517976969629050056089607265137794916916585036183222877237943756122210529757287515386640165258642210627319824015392321080363638343652944067937268472814094651120320949354975740454833187146922848126676778390711681834158450636588148325334200921582447662263964770479686366386649953515548179427306851596162330967774637154962679980710287005476692177073042789579677172052837613282150298354187939782410228421010741269859022311680744712683903277590740638308313092021230928506652178375829463034132714060014307129939433624161202534460486376248605477494145075665922389905911933663219265117982087443393716354281098565204047012046274919900843791754172354828325614517758831651818130721527336858994375159687900963614772011756985150571199557989075608473630243508792918021072765237918247766731085701030414202461131415619155751910527854499959702967478008887115069942478231949720932603387814615217512262253546657943802778290942964502881969961421374009640191748854984262619724984937238820867041406207752583156111981375565953054371797115457814978257530989966624162244391998328631352829184805613523234039191856061402121915068705199410444829968678018222084089236459642371358711837637126335915554396012867190098318368735813375693196835837813693463457381903667007293775810932144733074017115600952714591524300254116000527609532354762791233148197089129639341989355109393371947763886885329697489702311262439914230597488743201269648661906584542050460599472340065734191666750413850787496838024516228411937713373548540670657509482592798003325716906787865433175598218147703261899433475261916872792365210325084799535343257365306220401328514667133375995802566848631764910937919174459211793750782419885658377122170170555670894409488613274825414198793129996862017218144455273921488313949200748808513290050249859231861220659250142334932802853998832971435845986853512537670364333496481969819483891882860374636471155325462444221249065976502272068927907077101649064837876387463146732485849386670585183281065513451811702729858365521754887415203801591557396419372373737864564311077189966088965711039675683171251468012001833126192764816351189885003642958798422609841376358795312632515364347306742054343290959418977694616255106632650024665896288342610373709145861765404428174219023372103457609739778214894279899885929901029784811801397083148048287569536446024985346775566329871849497459128748785579174323851181387775919538803038213905619032494202502245528275259956624525543742120865182274070900796791937306779054358332362584695914893722740482414212937427968385365788013549895720443375604512288310626039914063050723355642998016738640650014186098310052332059708844857399912004334639043651842060277256511422106436696649888432195344450076290554243185806514860468259501134002750611438419792535737891054545652015467864843141129092699624962788805151648728975184391990703116841204859058749249639033098254476735974076104805612723010350178795029122634761196225714219231222003984893518629394693578585156123350590036982707764125078227193715167785956643198999884159588078385171390944933827993666994265199851070545098546888392816366058354297181806689577039494090444480030170411872348864853980773713008151990578930452867022971439036030891192532775906801291563998461797353190054681860106196667837960185640934156934340569667941030085331019246824999776565504484356490911687626759994322799083303388337532268791136805271058227189405321115431762231393417544845666694096865643118060584457141504905627768860881049884470563409125221039286067032226404784442714287843637818053442465665872710631441465776833805410717895687640574593780545210113793714682835751645588836048446486791070823926649767907954159037494889241019256195954334240883891257578991179109118084134193295267432436073513940988578296900919852246038276243219436813419386589276902765544530164146718420680547525863778841526093079133365517323021995066280384249567417425200453164697203399742219135316236096116260229137166086160394450819588782415036798623510862459670337132917473510896653855364536198774697309640031116702066084285190257669708158090446637173489288786421099961234084116914319859552521770939648367479462015634538501206195623832940369627180179043388187831110186411966618748129375421343268447224937995412030320011917063982326420247753343667874311564816872911542186890100758741676625947706362257948289474425819814798137047565183280557358219583075322919582761670574608091371113048327240547067271631049288248379514951521386704668245082579309171104179994417328990243571136075080251142126082074429787103878619328471999705166405989751455257460100525755303068790069534676403609815877817209985558435756157433181520343705114852225122105450226388281903970945165642047318904971187204581242866081398445042857840772653892285115077605569826991221510739529249109532268716935424486350552919574585730600391152330348854562378994584804152011988690655427315987964194868487246071368414619354531422577748079467431414652917029204265487449792270459221282949627527263970701695724287260319756155908894788478233579785617188682906933589145304117287552631360316449649573895429808790415848966827873154301918091352391608379504487823613868373424245694627730406559405091363507689249616440793170028481260746503344940343553139184012686234330714093677367263053841007688996580952706493061622361067123260728124128913017012277256273099643243901068189312339424922416922770500966604416803476676051994183080144214318920295831803694827481084770284159856830309055548587143592239713917627912963730629692019297317310597919847865015978659927917886126399360596149516877027508960815538073983612210519169393995804463497668157123450811811461264692819089621302134246117965220576303834090956544927229208779874847466173455010282503659138550273310378557596762864874501101454597407606485710024934749106770581392173221523480348338160141825736676909730289133687683896492451271726628464573721311800625181692063320129381412229539954507528616926916867106870394894125693893500390045851946455189718452804729180068831651648651090646763083174424118429887248025450811194656074765495232395571188457124055778220944556058072971567340699830345798892430142855898174533068622819370204639142086041980981671927393372468703210395190620552315918611160497007110448255097791695166628504550895416179090678002311743776857908077684081738075339293860014169207362614502209485708371122518792221704593859729170948877956590015584242458632371250958534340675557095968880427350092109727988875250175630373793981645792938778812472897742550147905458911600740224572202143961677164684549285859312495788705284058684780270708944999768643759831409058665371993286363629918332786850851676639171592115368586382591284882853959012464672473026835219908733807625530390352150290899911860565206190956284756402657074319142371067666215990247678813345974592654872644017859495683312817098499991111701053616181241857832864108749294157694004081533530981048567716294564982249811728717123340870397720451156845993233365382117717887419527606613296702122891161912016043932569459702147835361700901601820559684812227863490194545501067190687287740200719386643329149790699206250351540588287172094739450815598768010907928098619728065357353304509140043137503568180984166067216975669179582082011994373218559995951288208153839043320186954140198500886072851228958325340853245964230642708733685635843301621662257731422038753740233274279630376342495649767276094638221391652157682279036571551523507178147883318582435684836768354519628568793326557710353737447159886910429272753805140555524894506080625580378946320689338606356907507187550846965866768326800685739689377856834973999933350136366372413947488880951106408523377477481572197764502535790772865299839907349475417691477572656416211623773616137509629376004232185114448819477753292059193500639171683309047543224989957982683658514321419046610651180734641379627292319308492985021161849603528481619002081145771322864385064527824340879330038749983913635390883950938274844010367137195180822309094685424331316759347619858183404097927240634612409799965539186270276318600594241575554370577134080859876549145546132303355377525193816757791487842525149341132615424159415443231888189592340457252128518748066115574073919639103424028522004109687415071436999924673174204705776348365522452626552553067083023239758812868278883405650683126183225087869426115321345757847788157658437402187941836738430109849560472992894426668044844555128811659267004587891041324011498393422969401143752297969231281097094851042854370199344002101086989279159289627042528801838040032190260581319519929233803560556750023367500008672382241269589360767909709032184763442603321531638933137792571348072721655954602681486316036484408951960488112639346669285234954847985300541485539625440900476630260043332200049022511918078803015033991495190851396734789042877811995478584006838473397106942669739800565630733783192589133358504799837440833706877259109001086053666088465402309545842179098277827121576637401389177321087535581285413661252478992220314534012543365684094203723591831325301888785638783029457905078526609446391115740413493067737191157987878457152951056587008257975869800734685263924071133317782969250015281880795345076972027800037641453238503914007359738033503713184116573068595869645931504591028433687892190951416552554998452576845470010866754207635540615976715714629820978857076927224523153210993931432193214854027936182003039066862059694714787414407219604947796527570788861409908383273548050753688995191090253587158379249897741137347450436889478236045489945085794179017356246625236373470903229059581845312949946035243402333219700292483474181941570968042672564613543074003836229466038627449257392560400918395456361422313382450581474846110530314302810625894601964314666818700338031889477049148456096443861141134459171945009818692932075459951688077589501422677698424245982914556150601220177646827002759432592482706129235489326231802252724088757252052841256330447437854545787062204064751978801183630405180162482050579226432505644081893413659945810601594391261974963138405942328654181437393134816301941058397638144140518560804561603318877965671308605335758109469435672865067286436624736115834352074217240453254645119983911010458647139470044919607603654298998630282118331206636785728715898719674980888607485477228257711087614668597300337499311340546999978443518460741006060345428811469656074866170887348916087937747492187410726835922893730358756736346922379806477779572649352310441562257071493135075145315727343835915593934175322377437080320650662364161329249968774706068078158022512325519320745455426532733388016826159519440257530061853446059780276477063332735231210640538855675179588632962633051331660810777701550226624445814568253172837737568391040968435750327884529913722122231638540138644517668862387125191219978242433526301490118504523976191408154940640665073706898330328781282732406116368118324751580388128335613958426711895455893747212334734712415991457491611672393847258785992806032583247026857679467961008528834175026426263716615642746756824015948553856877243040926005868683667557502280184016961995890103956113704025834459919913410856591455385573991071744540642091590057011900070231520909101727480152699559641195295298540903221126680245813928244544626999505549939614009424832086251710584714871399825605551156408812558261756065214946907170898314100882480074252606273738360640631230828322729819282684445937515649879973674603344450728033728907795062336013983161770398837020024115580080165813642588071650088098710778116299457901956881250425212405823370697115416885610743895948389147491971170776795392134074865347081253362673412389332010391237236459272856876359070276348804607165201143920186348484935377696754451422279430611253936473783865816109733070737642329172413339654708582147019732337570931093759359032150161661519910434235667438802278644364678476649032039081052299410419779301917696498235538645614602652344152101087171492211114018945763900074600683873738006251801603726312945717882176975331102007172179572117136304529886945093329806421066393628682659998544584140902234449922339658870704019735084656165041220712966410744976178195036610507354223302706256733389413015860175348557693654258122393502768800322880564971571931461206988241634364564750866597334670658569424615489226711154461462687634734320701125086342773520488409461630725007503451701775537438334824765519234458857892344258006029563567719620567417796993918314526032891841972442850000753063440743085894740893439423780762953319816480416180081231621214892727478562228943410369353208087653060035795473091190047869487497272434397124482266372410142517777509596616839993695002309362064950795703090876672984394759541163275377240371086129505591598711081821754090411046572193669032522943531837941646930645605601574751585043055059828167586680520181633574423484342895696940650782141964572576511761228318149030751748242261713187030857410311032123855566103266006494418198026408693410818933962818724762492158705312254867485430085827595635856531584294930025729480901588559616713840371772886701795475875859240641115039655611055289154529667416066831019726623507611680238105310215272942647492964805484994881746170741737978796297011529018131968737354239732399810641355724193579501275714112158127922930818934685239359226193389897009481399037167296046212655840971219684085459784242440556360897333222099204345479976234845411119609992427935772763978990111560554952718637194200689670173762151309723594434828694089829410765162091625006710856040931678445717328272398888851943563916444326432273572843135910752155748701263717886288475454235148483492512703424628464698488708516822954044634216770624067601235818100896232217042507815472402151065466919763690752144551080558649622971587691143007789207175087866115376191862517043115471304155185400289503634956387620980684183671831951305998338825672525269009883028908924908034879308459981400024789626966603594035976910823462606853211167121782187609865340420984188164361984351328641367524075076117848249708282257189825857812520834671056641808646412890514017413369717031292580057672753715373376803893807264959981981289231454110987371702073545901984998520274535203790515075917432414969121889056341068064473168127545100083558045807301353891086283926184080258461167210485999038479924959550912595451377679888730002223079408466211068822245105443195471434665381886005555461617404109169970384912532515009699418596728285254683846131379237855857209523681767865492273620084737183225789647081074911618692606810627916142512133733535423152250615197815231524455833297276293600403524846386817813622285862486825790760542517482460710352923695525929137577498371383775319351886422378239913267937090689128055782904436719067648279476965315271824435575227561505167251805486254176468966059756034094623848777358060284294056086940368354113140384442466164473261949604844048145638956401987988242668618139114610850173151335898381283667687523114986310533390229992206669545723371778211332893720358142272336377238223068603312747325998900894168592236100295608504202909703410101467738703645877776997357150913420635811728881487919756217243197952213628880068487042518234029494318336017281684765543620614250046432975265870668421556570371142728438512247065139949602513044832011128793463720378880286097642204200839398939945875684717598371386071425138710139156089859653146313179659572747431027758086577920341293352786858643524859121246820753204241473646447272142637427971520659522860708087615907143860225723454817911096424778647742368816172596347948573121911032730750029021682464502568791116315991526838953250847558972158664417778315068812124430120352203105719207180404348971156606525031460979831685695124504463287988593303907084303744018577799403984682403529790994349989585504101984557139007968864224428015059208442701432106132342929211321381556420635712958083938680594156535904214181424783408130394177123738636488017142846375274379373851758691157601262217923051731678218814996361881906844344344384487628700086376841904966863689619744812693574001885970795714682122617972264176343042385785005866917526147890233526863949698309421788995811521462752934128126464230821106590188211402752731459024851306213024534763922046838823991810247674360880408973561321447223915566019180141075241997710233154913690344143141692475491124801939639016648523794103475150832519998039355355694345902194460516879563123309623619329241208166944111284060126184015800260935275632173858433145245546901047885382714470246191697005725495906509551336677629544661035295207398718831314106462002376374680419090805289701886684079092357389789710675400447645817104021615191602909973411499335189053398395143577244166869358815300057209470955677520367856295244363660115893963524286933648649418207171575097258246293851835009259491812018024111537860661500556093528552963959369714263978768014378251538462160755681165715795576481287952587535705319070588715886065026502254362071454400947493278097774251117225446495478604290526667961252362543530510286598805221751002554028729732010458599360272828409971488784541537953416331228058400845482860289953279997390402126743703823812537459224652486205902867518657030345857530364444826238217691383794323139823555396575663681267836266785021373459597870229521773826561593956189704927914983023775257422867618215898626891305481213251048849062414421622549198236259411211042026062600925641224362266265246029895560460223535227258855529399670504609001406652307811367514284371326353242980805100316195788307689751388730138537734777123961229679068057547049169558331742753344842092748108647298468510459348719381156166109417284460066123159691396302733582085679337244015740783954898042035938723593343486343970218611739512593513408349470625356979503284185172549745804895078369889030158143412437896161614519975485816249173535913137403099714076817280436166582191642289651022896337939060990280721137754967618722208690870395787234589926865561328571230285987540324746440881267893046379500095628131777006794203542665199651278628444389183504520429029972347742121101108394159301547577432973804457749838990287571774005979294085771400186753166920819245790355274819973256281684302639442500447264905653344900476353354544402091024045508524996068000858851617114304044696632132595992734449143175639061914560208392867387260824280096662718046021753266582852914755903084982459739405606015178666394803333701058185838315189667524533446743089748076802710405136173930740838042878283054502382443133562648209003187466179175559025130031758345850647249614736800205440603332507068610801404773714450794435269986702038715291382546659820199561331672345038213886045296182104977574561483346759894952654889570864051002075276930480247353267186387190111160166979631841754283744965182681871650660676886946362092911246223891236035078838406256058650351769013773010143919129532054210327569640672766083325735726380721348561461364487020196696587484690345060797537476450734863128515920413650117096795890808978987605729062492895381016832114877338724188035051060722087953875914076105952395809466197276311061632901853905302362855245648506663737801688087626117756890330330606448224224836466376023554743329350739357893570789753385963547033342877556662487735014546149509855493536518609026882015394505882555973867791872516508364375790596534892841834482908308211368361173749816924220433567896721615407841356706322631510976535677462823591134324986424674281069420248125259835399005150718068899495685890182388160485058177147926477312468672210720525958353727242292248251330583307099739762662006938677695883314045520211231582056272907501220812632107803592376007523815063032141867386125176583896762956616098872635710838010587016538824059285077784503139882036356551195781004803588173852115682382275946019981804557078235955861244493581236955252343299711548008094405539106596293364670088432644847227570112003407500507656944952827071852347623122981711100774341031608932531262970616357804188815587386447196744595737683877643589801886266106404022783292182899800851847525393541902127821907960439239152705006544238651053590072769968093859432066184982258831566530239379874965695538159065055982183446013921743450036260159957044952170629481838201617597696996396863157518846571256763934544659884392546985376651011224233661128069756369185088989400874927474168707807103625120645141499823176476655084401870544978782642245820115928305175003567730514881041384888459809570622283976575592814192105821807496575320407885861405206000130276491087059141437024342413950768292848631742983362981580750908434934645026400598723767178307614647896937651002759601169229611362808937800996551545519935762596899397500122704456469847740691255887540912116672202011617008783838962100687191088481234472424195511026619466867847364322984390937751293969816774406071435609960664437827434192394230531707910975274859535045214125757621828761549318748845806143441600331525986291259394883806276380211439622423356011177928030356891445097239949615058115339192827523014860725156296026538547533566130497060239614819691346353180273172804850124846073648856746818797303254353040311105728989795163722332731624583462663582910898565026147892915325011671130701256405575880216580081508331197473105664082590218298331992622137950237970145527867964116798808971545207374938874664884277476555488930297613577507208416704357060516998965494945697679515111947996447456015506915415192844201881752619362060032799252242897138628300379069218976992689686081240981000574833944140232395877969872464101298049936944257973608588389352193525054623445714151799362932373789870453766835100563167534745645935872925586813421711049032318445721478937702481380798996810567703708936959143199760615615819203430696828407173207557255005241993066403295186729214108578731804464867364574479288442062297941423056785108807751857666269794769422394729187563585331478016278928475414673306969423129862269378754910208378260774527384577172612803497963069864061959133788969547923847595671229345750460564717496306995428268925714446213141201824405955929406233907073125106764194544868760185106242569606023473878838328343103762787984581096052080978547878726389734902571173424742232257255867713157786425913621604238662424138367219978000260710819985345082072126674810431862472933848967376178784983757105481042367951483979154915532969214231998635527237463200209831239353391853751283103206505082570565202928572252489568589103631282038206646993860363674615158702919979126329503938559480545244783641719292225697380999614037231440820383505257862332790578172861066856103084293473479159965567859048604255823356417457225285192078628544330567216233434449171500781979896516559464233435590006393641695250964348663733655933657995232980105248034695993994478148678048596140313480770301284884475868812679094691398107875752482194353937093163350084039559845579043608128636573081219482784937251419025094711483104522342551880722524363829972459088055980913925077963394850099008895731404618785726108336929816062259377304898444087559562838130453559578263754269322892977448267644494348021176790277507737960408236393512363637879205307405817725047458511526989475923380791231565789401219115313829903885610147204949503998622127667472061320535418174782135550549689342900316565530002323532349986211206005866777580842170685131161722860978730270966558099616064650729678353591839705957652904806363446254521922990028405793510792279900834007715925191774709040149062076244026230940292881343783549318860886520046255167174792038009124828375631604033770695475307727356360383035882409851306881315609809409814015122096614362968402392304769587293177660920706481769657093312064139729454680012401417787858701135465447809519395515383611051224830318453748880393827889371724816796431637911000143842963674438970652740194934279643408413586756794187571312867930708730973254356346002411448339209296919159174327442369661989432074434214231719952521725879726215628385037038582233935369498871606902751282710038658557351611651711291987714314589503884792079027392032540375616274843641734226541343192004836603677629225581941452337199636588443736704588551090259954592042858768130438279354851375027980381066332781967373280592518842757476393625946650666216301261583179237356323265684589934257699900271250560333938696821737772628969225660188578310876464625859182747764841647508054507049841913959754455420384480566904913586970838915473187707975533787932167866966211765254558451728756512108718530656538659676111270673974576535113941620182039230421716377378993307651659275133237220068185591612609282930240456677108081785550475044652716948134533354996711191212917035380821093958335008500728322118262578993613296540276476688729968705051028614018664533808090441437109482238681612096286713579074105855756930444257903261420007704360592714630932978406911545369457384052808049692334749362643489816601805941856292952964864054507019424835814651778621029906154480507534378692990946118314295134717820375011998827594136523089328924707887212663745384706346092019130480631537551669670179738508265920580191186531430621126864824060933905788163716591371527638069810794927883784945405256975487336022828458621603436689355265205840112661216076089133281160588397049010922836550699579212273315489834979623205333414724883545609701725637746637115082516058761887654838839170362593154718292323030217514349296040489146996620988274385942280932900694881444683057673243025923696962643549608230484984085466313993021107330072718948763475836924313643264769025545638410834434487234135001238980706499596516912874294255360250697721223933090439354386172656160343623073682575879971593408173209687472571051842142807058111536431643285821155397581661014606051090627975766412391575793149258929363350902301373159953699251600373783228885209218373883443450229501188119072609676872978603316259413187076520350171373142783626833609764601461748933354073813369862704170246422845879530526062203767036905416347746260223665450963128767140657267586533881460913494007519050126291556370294849982575097960292179328659600085137669573620771910193590342234257223065050411291347378368930327077300327936906520985693350086475741659995539803273925684126485352860364871684902741462552649986226303274187838370233093561088067145829344512041777305768054667819442865193512916026067183706340910677411456623454826223898045307470294401381323488458754472231172526813436271471899474126481334954036018207736502152417973924522705006144702094600105127796334841518141534486512019891345696673193056471641861749479075322292712625680342949740691480460777287889277013883401183230961455087018599255704450056468482599531379067326847410362571514790458036839115401158548000718481557721187685307996336457994382057808518391862512437245162008554192464637233585675431516487606643970051467045711871414383356064400953747575565455829375329810176575355000643063619859119114069178255099591127353825104324076498507164428179701949764276619822907419661353573337353022677512600344008396483743933992315446313217383328635331702980590658410579098166565584852598805181908396451788143800819136728922257172965596850146881737948872787090081889849356338925694423436462112595017835168749046813843787481902479617822588756355256758718509043709990357429775218453306931759683952277942838245250079794498864116807229696212008142222489552038346831650736314693344434037912374293015444814080563317540971504853551602894377134916807295153965676782016961540270899986151677838675819377028935046138081070745869160180865470398340705945791259406789261552506121017632135196017908414398176307851401170651924396939067102583589660674186200628001451093421591634589872733658756121394690896343521917285557225736834806295191678837592119317341236677318853055205198115825475435439624101747542429634822611102748242034213946299352452149588728808040501223516713163669455366739170294854697489974254746158274789740896074216767206733280982333872887046346673322644846433826305010781209369913727586377950508713074044416675238480381332305691024829781994381260637146288219972720855046042750562301482839058948737679290446433135793570078224959211879983275916043080701630717740604139604784032382427706664308814175343284347971443606018591195090976271651263406075863763394192686427650400892580613438208337267344806699681094445428606481140828291794638031701607424627120107681798297438685116811318164393954429213882978502682784390756822371614590959985768974118066429470737616470457980162008633909336962979278866570726270533665837069509049555303556114741287115205770867882727689743554944234801413848762231808613989764914312501708945308167798072353715384837640771336384909733599591536653399183324168091558228210647100615118942280882552226394802018741177319410730664072389152113649787740411911096983557302850480344792085788572554588869536978129768227214036281625892866580323542327311144493951840807418213885357611769350013127558363752875778509438476137574396108869937627950650867840062283141886198697526555229830522843576445665261487553737673307451543744099060651553879361023870015783989923615932990206274519944642492921102138156229184336293245536022789659480294319809087300192143408193193070938292850481254568636497435033976698438255928685437437899328047655934079595141755459967437709992754194456199869679681760566670378747768217073488593221319946472906846680733259260728479465413293879270881581742773755383475974942084386455662109841467640665041441850237399539645494082209346867829421589022453985453890534468024166641440465682048072884912224739456459880691838857563690357872186387211745286816219096332550021903475380049959700020566408619491579987990668693198370348059627595891867289462539967888556922814546205984931427644237517108423953071791280967327840469452851487011643813439162597231631890121202721228960131451332011842040187812153017694474371060554976467327730221909030204005773435461661402417771027149524940077011670398276147409752407951334220975685740938700761680774967021303780341549577584840466445671166423869675787534153249123448846061216991985039720206936617475008505924688456283402692424269040007278681756110212298146426201979834374033423187416907568132626843066654733302014625988125683204167635211627435520569796016342379235420356206862731906505359281757493107319962207069810963764994896280812385070733663927988602620169336124607552051242987864476341437922184686595619700269331411760743716055520597590744661180322295240226208141067575205594036174146234935993330640787087090391176206713383840890157288529950793657115572443784714542125936814425077745831863537408544487356852006523134477944218783954201352372796057221607095902953389431359124261798252718581870405178465873662228904358821546946348138569475863659442480800505720380211919697563395996012717746548295535806657984001369722575989399533986170785270104650167613640292489195103131401040588176518582784599842857823588892975445467470957289889174698791950836420354161249810211698599846762226384377648698576688890623271448367689953253350054370291259610429160154536382147661888627835709773476891876193744019582079453164718938884642831361739435562742524789546286688781090657042641133063505194760800867464279264637470048194211758706645209539899663274449756968100174190958909261686748521328618600073243974635846534645477566454149528392475199635684535872816682447179213445587632047341485277821977335989052033563589722199398043589222241121876593824035504108289321527386483327877978158475180847891103750391406353157288818161519085505375194510509905627990854641518508424903193146142957293025494565404955917406747793451029972559884155285118498850502138725896914730299823103201590477924125551072616258368392559583332030038012676807222179229089943601827363651143293591133610059560120544965151371060603664323396323736036588991550391872145535451822469015508194341179162001682629199079037716954536966696278320033519368050957034998355139192773562192673988731101033453835044530042533071863924586573818749587531483520116490604756454357256926492820655090657408529593096226910548476898255433606765705561598759586005015204732136369150948848949379921184298009212703840440536591876404034457970388966112046256843772559320273763978430445231967539190778128358249032319241260506563800149941029922169271235854382808435037626545078320014286612187587358540589262947653914438254175668337150246644485354002091765025386893830489940022719227594052415077643692905605403589982146690323435207809089959351475597206935608377962572354314766346786616123472615177857131569609049530606228209339241691282713018675896534330421954770932127453690758346305723173429299376425263312926182566862639029402461812415789122044202296391537632017735620718271320128689194462288803283214706527654015856344978489369459852628139674283548346705798972686245198400209292358331940370372839214306972564880054633603003210040529847237652336380365352152761740504205999857519839811002220887046603699474523130357217504402502931650960730992924541019459661243128239025197630142718254798565526235359580405778997649352388108061830748379269207232807471816023748486926794084533438091950641554587811692702948532764319238181830394636854922151379062896230741731227766017303353927609292974711192179500312220503439872592934714427719463670679099443039104840623483421403097789557056542261778170802192034469897348793772792941608701119272961219291123931636333200925417530356693760154625097768878210895451891441695791362511730749424210623368441494503378990863687892019785421190711507937257989040323458822600225428602290924488272489690884349634325120856481494218644021681628424036009670051095147683391333197493900542190975430921243616633778505935275729872099338702498234156844528739809071972350528428358885945882400746060442026110408136369688282645725958499918875551108286931922076009245059340708386513489020593835221762436982035798397194264193161797797239717639689482247174458736432587891410845197975943271365807118088654357237501225474817420335225177033019409987637500461839134096527185368948944023403002842750588898763535941847573601280349249712741362112536680484392528094874288491270277412179293996134892102239623529608916677518659613878544382903238895529629818230850242947591600290706891539392698871723157564323681286268222981947436814095751164949065554084676499981474348143180673614433682401495908796027760951903645531532646275066086969336171141178226619667205313925422950926396502701808873284763299140492064984420518299948958830984684043138578515868457384529721178193909124746607906144541664836744951032596262747437564707898208513418626494836959053508232906333123361626435282322865899489981476592846876106181906003166831976621676781463858786718158498754209782102301087620098913999561395450894805657816908257348720014326600022207986592501062462246914291245633788728453660504519547626972905849770068994282261045742335200534024558637642911776794049490392421709286362704498115889224013451119092259702381249555007240476045050987609814068378530627073326590004046018120253512414430822629766326019584745873612795830936880194415135708424372122873674407744707446959783765028344205406335290489864246951872879051977639805592336964601493695303038178368444778463209169430651927455835864527624102345745332959694141927522947159426932439104983893113705883987902656724720677510659374630803510600912669503472318690433026243886464254189328324654485843256993217173603750821782322171076555955863913150528822578484780673087305126732143431631378068360662668178860137191862652812851317672701500638139412324803457796902244874983281191361044003078704479014364827117046645094622514387690738936729937093707720962642716451879863798399564457732847135172454355635659422722845585815078085231678608774296647570965937582451803358021649134508981780029691338465085184876477880402120678004113982336738777845230665832846763549813800980411140338297662947795213826513296212871900022003642727560348061603134606479576557864528346092077430328134843004758458934846560826973135789880284214503550394468396582877240083956274421336745933140018167113772958254857574123000501067613055048151185012329840090549834099006043800597124370433290813062482720172862209606810654476766808342686126043974860453727575694111246293174671420335080304230536977163621890225881694605655203938290805835625390164791317424453895973896373432087070893679401067921423298762151442579906533559437105046435116653941011491664545995891423730652120739996134490479725956069276471105594100608546044461803010625331701208038163140303473400598494000235689044735214754914100499239533599898509797674996547702345783079174926631840270969447976183691428306555365328621806626761595936919407000467271323953161148318403155225265695453067767010615607279104364611720031599093449111237806025202042108260055595486391625565215886549153049509575865390377247638243875387696627255560097662056504188177591130814257497275681738391090740160761371712406655477751389513531132858325557556890038768220141617296458975976046581304741337046981638265064572480603630175139897299777031296720425978015316339312647176343294268117741132751617205041907547312928557049729029552964090803644357263091464090141934476338193650262846891087928773925873266739481779923782261990692258696518727744490755842990726421679398185672791232889983759924619127650578113658357951626621066381895903010291020592625518335975390823693156375335936931612080859060423677531371139151889760403556004506537434811677923323350217103256155761045132392319095589170207583579800240327896670459478526175059216618164621570238632220106501204569248266425433755358585431426721821417887448531612805562419344591448478595044731482666918364333498406757840989148466352684073120334199117070828477711921337563013033445425288349705555640094690101193815019756943818452553382163096475523879607795521066801728237944815958541146456851016284283818550661586405905723676377365256504791555234214232290663570047011155004109894917019591937981857458105123263844228413859398967227063561746624370101015665388623587688990831610487490039246771989681381452273400782449676259067836798599172721073615257203023589542013109315097288918146709354257597106304356438823674636630179930076845529290810883173424726886437032021203226840445156557094428941210527377763808546410870885495244703453730598805780509322267239477170426228781529403791767179393748668616646376956772751336134210787233649656687525011637422547464339917167173234963934247276562952472682642056535145534881711969371108257588441337895866662101016379588407426724669978929300760406526872760531391086859194837569723590796634046849445399285882193121297246203826837071843179538662473806568778512606852879378649753511087480227587518416067446424556994631938754521916264139243195652287405012167815278500774432656225014551382784781854721059422191706031563529854353178309675971453068097975415989353175896638863321538683933612412671257858111234027050664754429958942850658838548160872179764647082790518913845325661878169686177789765013611753159256530206723047870858403930259984291431083721883207491689403429104291252097495719654828106048153111515544780631011320953978500521929282820077754030197477632668295326487102896477559145128115952322558657992593093644478740946131604838317671282276663414255228860074523829577838464479566772899285613942541341757280122804456103786424769687230914053631696489336121321507951875748543690747378105042411996129097503096074230386508730492983166351747986803838247372830368597070674833761032654643109869955868499319688694729013003740733794532206183019053932434980235497134715444174037945054308311178827638425666289785131553926125496584950168936779765635612753151348862634874544087131533531345077566283718858230602021520268857318472448300752644443623659101416787961172256614748476766199274275043325759539534974493843008217375435260949601910209972677738921109154798080029952929019528952073525495245310700507839361377727396890611549434642060334207877910742998578259513795322333776167208913496303523588547888951090910844028332134956578584169723681068886593960553400849355568185205345630955933702266668124342267008325503451241754970514061627464741830321231793885423760650775522316213688197188513518530307973409370267519944599029477482255301322179952326129967020100229339035775567489200132533698865746087892915597011296345464188662450924053347908170820989020409624629701417172195375593753113488629518894820747136638634061708172633909441834249202213916916212645346388349021928500312996573364095201871795790708233474334505402483069052301401734204286645400066620681933744116073670500887190256709427276166878530830633488156027249361352392472318144107207750590209245694458188411864635580977229142100706743314638526509846887227163483179788673534638448957382438402708215104653915464444605537791495381639438096155663377115448000233877015184620603691759263010327855082812958146013243937849004945448474060916558115783413225211446156965522180923993888894408000376369129486828582057692075183638863675001078930357884539187205492500245544756255697212700768905788881719928428845073341012081535109018467144805726756119180131150469536216132151263518828505627420075603843641782424680163403935937631254497413494899017987390976298248704185902200434221744077777697126837120230120551379443199675343109209547031282134896687344616601805629232254872001171367808483256421610517953871853923181430414333412656341690547397559007912780260559310455737059867863365802437393601400181436956475570716434566240216031914344546081492097886726166356628209982967846241639423644663242419007510478486838460630802055396386086931389808375166157491500725861634103915852647866984010597816744443854680746169098199601892086252062458029973001143984628744721645731947160951992607673989000676511649683380566724705625940545014709868154940950937137018659834661255784986031884015149368074582822155919642573738291473276900179742325309059797315360531512896803195196470886141598440862548600658162983721147811558076438780597362282791376583860240878890887574518741477131318284656462286251579838586615715801487132330569594396684910220460655306157308601227250668784426552383266533325755832603660762018753779138901824959940258857279620662748041456446482578415672742233455590198653129583501431389753586394565598461229260650989811344888255262862224353934556467698678044397294237428143726887748743973316146585858588248163329207951958291623892767372245260954250121417095032468812797215339097110692843948618599170835076189816864509887001737241754699606608226649340127888010304565347298430008010819238134619541459892717165738379055450926949039632368440405421775338751118721501331680862004986633664564187510858146511851076550440638565655882242338226067857635847441658027627736307656421482061104898073294012062745192008121539327528888694509503047087018847844369019161701761569713375986880132592039539788119996312614116661409317117745819542082861557520660547840263875416368169804226661095632430882491920180889527323541479848299261110811274778418503695951490922717755555198680752610033298681276818493179796333961401893322131007935121612019683109282166301591066984623503163679127473369027760988332503164242615835839911501001806036675109964721108724306622016059641333514558931056525555732550287431271937671370575070225652315139627731415330810337545327621533341514457717479679192348716171907963445416711661657639663116211196104070411714322889357378845304297276583815314230292085150912249264098122118771726959176912119342782489735095311246573785078731639800731356347971111252340865106652028666125970666655596831430196143274537729189499596385710513306617570957385682533788110117582010155525702561923206312488049320168464463651964758274727047817897097330530738744701505490087986286447658166655110477051643466747698702527535662416071901765813846170194295720373665399725625240882135024971441508973975371804732482760731577660359150986724706363525210832896138744841251798917791577861088673559260547766493574915710394789785679119508808663697243695761303712821382790035721222961337729271200201599582214990882915976406028954169458720402998186635362628426530990974422303062088742676270317964801834491466199418538799167421453682168138936573090141855701620617699813253231903982529907806809343281002490936048683230026250678240232118464000481755659621985997100150748584772188053253269637706433409671518451152355114262254573958426746129139899382168550738988356490077294887219488352642148199618596250624152217297612125897236082771052747260376451577437892445695995673593933971009544682103003877627768495837773617877113322369783546382138885844557900402357637760237137579895246250576257440071583346873480245966510496448495744588580048277330839751157885739934968006926318984476063305851190771680336430927680301683400752535779685696856578077642735466145602362475057882269626781989722910445484020417303262072529086490732769967409461521151115154236935581484008280703856936055721175020298144043537912826751094490490111391568491868657143251367142526759372792263353733144364606611510813944136948193985322990893458527044231528823377983091879764690114930123100467188048525741464147974777541426685772095033692415216011971962281128677427063636992393408128343893292253172300468792764599450550678620715108048638440683839635156491050411661652243224587652937621338015200111238460484614042795862889739889124280661700611836108027466355439738136371097837032412055860432646327393646409074098581353172741339747034386458272325529101023913865241679481580312258315199309330472805082181521645484984742362609626438968263745307693492054719108239203075650844230672523089372585927234202111715475353694010868426103265541884228927340315294227252537892153194117387116338218463055977748438515469943636918646417657504246691344086272538338937557734407173576517990733365738824781521819782100161259966044904774957153718906418656498331223274095042602100721801043483547895621270865258214490304099483738316287156040175460486969713186904406630008864468489900471605698201386840136812393345027520727160582438817901553228416623378918479337616115283847908053683273144868875194244253214926476337954433890864505294643697936562766256084670299068122391074848910128815074747448810872145033715988888301458853338458499079400618354013915407261413477931912814427203875782377131125380735284228190813897334925980791802993374976031716741341935473285065882863576515551109663036551718540137555953593848456965876003803645365966481979732510353743484318577326869780428310210462943470336637449538766854587056983227361857079199126544554492844439164381028783507340727729884747583317882611027768254173176713685928865773969889275605999092948886502185018402638772696457168365645092706560563890971005929124924426078115365393761631115309940266847488150918830153362595150641769555854074192423107428632291994112233838060649285605754767330176306948173339048091629317475376485529977710099687948813096085995487512912385298001692685459633506392207036875525517408530183835824620382170206737584922127110312578390474169746881385926888329134235212606486670492610912513059138297925152324090068757122328889401957386092238114202686656454772405862876098473232654740706250795784595541180368282677823123815498749311543742807303352763570718662910566731784479076581038592888331802285302360919906710645366062380008388007530149849892621717387279144405976138058030737811164187590824179211018473658168683078116712802500677165478637454067386413006155458939017707905591606409274145516142588881756028053421402533588007686412789209303825740340212791697592562720209811076564810831403394496113303241585061061349469024690270060613546594752451369556569238248408238316486194424754855875962165810000975820975008466487841915907328771676816910467205144280087437407207082367504922646828323267504865946643119212790151831792412823017126111336072051302966305775250023936837240728920821898714565075342862782301043523676617227661518714892372416573404505648398750399034584668464231758796058842845354177291656543371564207395551469191728145228171167848181897742845599111720462970646022992563230832211657133114270319094497378568985670391293522288472516815145581438524458496107876720229308690573905869874493409422270741611074389342967225341303559765614916670532058297726259958559572387280198687155065544601045654530491586678550835251436498865492019582485701875342000231301322205703764256624249852310084796344983282747445380831800107303265695741780556589737436261441521430106684540688488239905604836391614092850522307090461998124333968141709006485928053865300302290287649956542522081740694938452304129456151325625625199406288583430232238431825829126502148906025706029163687337248192745441555024173672165678205020187768654861131777844652648366276436664901180304419919136073214996730111738623021297989803271159232639828461191265440616166390924355154011835842671998514338544736740512730200403563824449528099887931335312876909938685122065849333301483112073518511559135750448395236511082474878203180616088774983406674020337559487866223551587107824710390632625961713554699827077014531692819794226702422726872651747117106840982930754199747668906170615703397903617038322335611606166352086126583977711743338701642961697426176931414239826813699062975564179661503263197234059356484971362795943705603018501224556317600214400518512914298566223479099009286989374562034205322962741685680033523199878685882473965550769529001733945210450059511597885591827910869002649222122240901328334090383298582881070130101798621165418276779266475362844599612347853686801880810653868317053437754130348026764116082064717177684840953153577737975435021177028329971854233779408569256267381929848558742146162143961327942583583937971426499058546010485769873106439025302132242924462454146682758778081634101275261353778063668068152917214030331303099919318625337854706988187309426656168985636745509950132256982538954813296640901594105096437016664921105250287798814389821966003615563895247623183337028986989675789575112932039361876917182960104408218976815882887538688415341998920766166689152062122943897519503700073961519112733109439069124727612452335785710817893647534831992432827485929246440635392079863401950166943265212545337019250989212801059457289311899944838333619105484222508252748642128343220610403166953404550060431876600970637146998980418119442788789017158738908895959186448299438446173067971883253901218683977842314853138734042918972406702701128209210022970519143982556339860995688363854594712649437076465948753190831924559315485254390782248958593375441192719801783028575226293366996723078853216746327453582796287481158938587019145990441615304537101775739236237116060370128294932697282599421632100645423892789014307785039131499338678930590195866950287871887366666763067771189396823360966890426868208944253123285606159880159056551030443376576917995445624049737107196655140172925314357923345398867154040406512977293895468466610824084253017693170504756546314082790588182806106214119250729273026768666270102530997266781185234513032560908167766013686931555560561458615411667935479468948699106296340382458979770311369494173878357841925432559575438117894714937760157426108878519535994515237943554432802644913776495313833705327111199577502664848589852398593844512389282076856437319892334272890406349776980052465393113082266803733868503071175333527077472090264119764253318473026878303286688170804399745391934711434103274356127100022424227231862793638667830581466577788493484088494028323158742434371812346332287153614515801789933958681520470623107016671026948015626271016937789889466739896046884370197676301034571683379570206850576625068813393628664540760263601168123893482908641174884894092607471266779623819398250310537328740807943976107508793332035482682552461267443416503828254308250026555567083786197326605970058529221836590345481019546970355756857753525717889502950787457637958328781778708727813609856159082998378627885582721393451100765914152496459338272633930786078405729874441030352677828688224486448423952325569800094293259104390505970043158116379393553315036606001554411613125735147988955762415967520493123741287196899261961640292277410124302287920682117493261297482275073631329724793678798241495898637461270891063939368819216261186307643608974867237774549294896380286881430436650020171690369499463177796939576870650577233622395542579818560945520547493725025852175017373034852361097362168470090922149875073458564435013062817775731430687560249891174948267659933386558107817049181857564676421029514901548981281890676504537155936425424067922505881050639145169988061684617457305643584048826357542970879553008480198397768664463512981947193432122214642763942255795328854977981066039290172386537355508524405345437676680179031536733619672496780636150030157702505151385847961669541500719515148730533361962657019630497355053241913220344662182115729581088115608045619029315073734899251882431111628617888898162698813957751807554568512685021040186542465371258342504188455646897337669616649440692037696149300462069919022511047078887632193558862414513937957716159674048033439042155817868324044660622447040549823833398121010905501850005251853316751750589115168352599296050585093459432100578372444680825026059740396752053914449717240229752358962169640924823553878067681426888461626024630313987041607949285839493112622969580132690554285585907888276578594541674656632212825406766056132082698207077949002442832052087063148902111121908164294296463793656322655224080613540849885391532554570224889557833071073222604699410286241879235461064971620448805834628198869374468780407349881113951197361084723125322309527463495121987693833009496170102346072412827880825423138149773181703655540060347766752825881537533091097254829034631940157054749257456686285393950337099235286209074329806890958300630420853131573268277310858292631326781230342773407511849476418428187881180036872314714707897942506147956778926806160932954332188368443072320663616953049872758054005751744004561697753108153788582364286596228120322606102483558740931517622033842714282351968959423106915132509281842599063415974907472874467607513071992071246057665088490752037809032427073383596331099553497414927741710975175519716638438312864016323611116764903536032434266773163910915276766385554658721787194066691332167413309193084822962262322227985152214811618075988806707143364907496439509772194992780168281801817629950708079066498312169445457992098326102859144142221555950708894298133351927465303473357667105270732056514311210814891976820325699549780161101870789223851970786910268879632903387944659941337326399221458345427359191061063925406925676014816492865722313466061152967562926806383727182247238036766158323119343431815441142822303548047219981374505555730221360066475959242038188971077811752486944999392249567315771460304247348441634043948465676960788011645425372203565303376649380216362250550240905140633617869858850178863869354628306500908899567294890598772275076428759567326480290665270245247188675519840221663666813306346467538913475528406078595354357580340401044102543388202969343347300787627936710213282895669146594851993214378291698302241306914812539953406802400639682045138095524881176486506967844990795608299397257754873492335425222996096068568243159499894503287355434393856374676813459428057477561566486700508349040557112767478703618452016162539090469346278068950536034938592306303967339409042649739107169798161357180694769468160399873448585153044679926221698023971206657040885061380305707672663043384769899199661489909571963375147081072558254512269430344631917667443870824360838825018066227009272468086056239922187448135994522384959121275650124732325590178752332181512749893346491330529085611842705262550498710282172653205797760601610529943534420569206132539578970066996533763993522371137202207085440655868194014847655699979545598848390944567431978518161434491601806836566818931553813989300530946912295355565046527195742601023241178527754933549131862161595198910523120286458035722364383855786683141245227475062645974879031685689513573571695664694288837037331004641527958986673231594325725071879498934547246850516651881665901469445398871073872957059989927410174153918382643005863634712702754587895358588143171921221263179662363511832159829359551447781655013860271421181278224869433581458413266789094226977407706998776734910486836077976057131407345615617474594580783161414212726092760358357849008309813025440904839210367135908320322175766563015216810856432335845252873757301566613057789562913776651786824576902496554963787153864995162401579507392600256476949942544542685651867858704024438733896616140298877995125619268275446252194802384038623945449246386150368734130649671830752462639023923065193097642302643408755264560922829475148415288981213362173098897965878325724189514806158106510526372603137861809961014577570169499184483391289105526861449413732263943312970333573882708143468271714262398550362536307875751882634666569285977663046522363438802945806375609469661320909716113520611250626694792004018124986589370861054336963273036186417582702129666046360632561482838741998825213444799452987511706914362025035280959424401859053291652441612162326972505494753944415494419879506602210133555555556169489127455386902055765847685515137171267310640430384434861611261813432826585460206637956725652830199860592612434227714674551367401827352456966175150363640932914512773236124221062228839674041300618821087198996828849565727748347460466782618146508053863889596473787991195526590761175989580308952317185402209200390290676383562208440274573630008827917804038195132405186046316873828654002769586682095339392808547616946030553071433987292895338757638951346888518391931128570587108923691111552084160208339218157090780170394574900663495108609328997434006937703924906582974795927423482572958852522586601360803880442100448973767537886566322160120586923791562762093141869081263181641011482181030323141024971593332038589461292662060193899061311980961629483200795064957823705842731521701726881291369164750907653168463124934961485707499011815284901237745600484782633346353466630490817512347751568481779601124471689091063864927778449712004431706804758956404371150976192981157408201814792824260182933532216403481625871461755911280007360507007928869001104554676654611878239158316342131708005583856098307615104965325741618268543836463096707251466251661431405921726864191491779315306615418466301200006216638399199451603144274958024441289771392492075732206024610960134438812885041977095890628315644752005092124380674890194476641350241787791531312686076796024110434944008704587608451536261305414548334986511866695199862610455827595377538922408614878360108371646537375739305490841581310372504208605423853302490850423090410641596390785730648230480521090545372131390623629119949738095248149145613326246249134562095539081792376571422426909750084870336288633767061772615251613664551658821862309786417753824146134759710968680887043357039467955910371217971639221429951439762497745849285274976928768635117165550234583171137554068283767240734987494135612534529053145433733728357316624310373822059269707800216870837859062593747379183106360264514052096044537153730423764743251421204233464420236256425507074317497056535995815968328306397698731299954991553346354046164096543100467056755813425336051320331675093592109572929104989744258583027670008712785065807960883486817061743518512203098162934257234504165341339189281179213658067399220144259720898202349014153145565799963578845358151992577111020812944337322647824165673186365628146914309983155895757516450854844508911879738066794013958254516566845508109448540574372742801794858731383756842975297974554118276614917828399231239972136403935507508439016360253467278332610316707224011354639702185005751549161236329990118337612531482768696250498286289990337811685559472814796276720009895470741568233660161731246782621325155611963914179258468345951549976808666738534667215359524692051405856597976018072803211005018360805146825935230087206005271838682803602962941387841052314661355253593948635768691203365402645201408649383261124131920207914991896089726182341966024009973549999083325700135714900229780972514530150462103627766642919415983745954785545998701028329384908150241041677070474074455757126090614477028208800304868026717976671454779044240666196138062453342308842392318621962040019297498701174110136043830749561106807864552182696627987643908198521038582813578994716325355434555460445621626500383562720168581047821641597541925060943097796798299355231351709482221556707431921246106149963518857820505661709043738817421080873074824940056324797149976895682582510385728609079537624614865750315872079240214335365026981031942997409942155116543085036481482891823608010937866760859954933283454046170475107605787743842516949133298190285657386046841438640841574403309917450232649099203545557416133002214867437736125208985466929466835795633204192632170415428248978718972360443113402483132529929958717187512257173339946154835160401639326718218744350205959119074638237625807099864317918396256852240381026459427993996600186969289651801372952305587512908368968576327967031514285990037990805351764420896082258857781116734006621109772127027367306023171763406124484556642344022350533704418968008592973452932431071767408399688517857127186552639224331047785704527358769961974323273781124522975045139261313149474088504684974122212484276594637663841642965883937753888498980594533853203230013191324355748224919303333901051704222146731459130100451996253453623412979020873180304771187570189385678433366084967690276014630594510381309629517328858995936353296479508941290054670815557761772461295160093790012555677904036314249361096354899457310104315099104970956654760410253926049892496334831010997090072862231659676542725857663749886396911970158357184536734382035411387512885033712490562109908379319142531989097698264690701998569086701648334878411332926113329423524656966742453634218597855284304683837250061005566241266482742198720390991462519922474372260450374345048890141462802847797289670577090053264279316557802535669867271164234936818602510205537443146781815646850340379911127987179029484908802620355869937404664178041882039966918941105601614511241919661419860808789402365514055354493917955880657052662587852473052142708238034294059130673533858200714520019925131840616592147263999767962157923590339286309606769616482115939574671546517676813525082025928057291888890820593686150698318121674926205504343156087202544630837326700899560988441438390466545586611951457533643545340660680252169523992338617566564640327467908407143458545060515653560087680653973420071181703146459806229587020245992064935746097459087292487095679125843944062814736315464278693037249169970259279178787898960056486697768138027658201258688254984348238271221474014838967688882682800338986469971750622438882765823238640283616129188985605780299842830340848130188522116794027105866435459404167046867884099902059658756024528610607133183890416408220740051410404102280735046308197096647010029229032512222269825661983227584523612144107564134245274375070768749833650169858531527953476081012768805893480396114145920110331125903527372160573935342015179601776664264683574934461737952116052066330963970974754794440346423747164947967268798387777583449573448821546916650086359691272068276852042705246174779651103359817126637952464704513969243641894658845559188102664242277523838738535685261705254707153959374542614254991417082435384476946203092493741468335214263476563302579734568742314824084321778552634640652712855374958256815630051122913985433927242871553187302239323346384852924836772774842839303085767602177416300076949457594607711470539161023389226449067601177997361108407868191070448658761397619832878647068157337190443943404872002285793892414951560938101346640281840822552368686103802923122283535848372601265302677175307987017784639793993838716195438765535235634736031471418266610791961803710567164388219097621862324063103460695419034765296160872169891988084143298734364470648326298455456554259813211089138070376718091816208572667192997927635491546427433032778485850547350831563086841510037604022256451076834381770440289650774561419048453208289825952669878632939250786661060007365205319563476588455543867701851399151283189305752085493034224954805369493856823296959418128338089285075172417724952693242379354396904576730740991354616372691609061804723587970386246803950198429812408039993137089782547419757776340769681332959935524303177620559203954950674485790536285435877832444517603194590589583319280487229262098452658014285306725970070369103572180743874278618751495284465843099293739898674304675035006027776311038590788102226971758468750034360685918058325935953246425114765867596858969752595157562940628016919948443352240542969617457954963245476012536126731428615619787313615497218760918971394947038223407279486739100469615857693162355750853743272295593633091527764078861146582088479436160689618752749452973497667104209137032031378202355878303198097480864822973765870405825230049841178743226627127340966130481671501589030147459879817366260554325707858749072744019579206192142067073932612853012160185070074653404255586738393188544549166305380063837662129945973544333405289681217567651574792154145016431072996329063475709840948931571953865232245449646560982593254455813292346622795480829428841571535866508782961838286974825317279196634865691798139699969801857730397896166924850982029392652300423855989745492820202540766776763913963519837066613864779088889723275752264949896274961108442744699514882975202741267042231681722878368528153769113498829361805149787759331151259016369977360826174176472379529778203678928556020961036446240255042340177187808575056968657642752769679308553706360814238179662213080994011687483010864630007906112018416097950093669299914766173721866009197435150790369047092416662520782037426929763201682766911078658287203144695823277477086290362805998411113859444428082177720309900192571118635632275738910132388408445439664877347529298338280929987466039947586831057774342953748278918603053856920897469815849562651128893939544796899720689109148676703265715033610790712685450492267782338774592417439436311084520207252710414392855821954502157636499940339596348308900462644417441783255052200474362884180089752766131144194478430383143167784241021278517917132045714417818195370013907857567200331648897384961854499425047946355787538809950826703087215129251335829924300231161783991429341229883154761385254850297204840788178655075742348953935072884296509678680980313347911453314545222618341862813233918264983012117658639835693615214325604787699074415279264168935265762851751234392168823764612349199084375870845672407295123267543330792250994931657756685376802770895514229505751241558341120268676283082544337871664090579653968492933161495252012448232272260427801052125377049034360428807870768295055092915564477749899346817286451188669133381607340106087118784230406791783811740105002575230070824674366821282271472047519498379975613124790497463829160979715258884341433461049392669798811842089760205511040772040404155405591043596608984822540292727548672125350638211988827359376220463526859582266247135701555126335680824143123291536788656630684568200765027505267164340597622192926713941915699069238111703326757086780214361369219326674555003870253541213830526102351671687206742596522885903775808821810374956760299433193603780000055528097971114579900092261357310354674294128755527895142069999629979805454371431337450720758446243624309698489175347968492790006102511212562515890432779519567215912733031608973666021456292267988406995707453550798298960274579503311578843963335455518651978888681736897398214015841675194970072287767990794509158000330330546284842838569808705603187125596832095721279294336182356018752694038601572514432399570150889524875083602013316028828096358430794312050772872985619993082509713153642410229460041692612315425379104523201089430161984307931457456508840078785533755360320931165716210185410748526718565598570850337559788602862390880583912328188707926149395446091888700359500852938793494693401777285146292112265221581061981718901511357542954134526410399267533975739437459784084164622647654237332521940711019778565681340702794043752577354539319562371915579084970721006728184870465554988434975342994818026479530378158593380695457215198868638078641369069978390935379811015432188271796312559794037584059421654579845485264886965527962904149033444290137966790925640938356426472924297524943480613435229214248064994845965785045984023744063617332425051894464210258446501030304786585550344966394491151876452817972117031668700516020626985568727061137356009806491202364259502132270385197491813076887798173501062891018718926061039108748338777271111149508201592596898101664388319936171156520989647604772622232991478550678092796862949224360052934069786221313499373516269262484584075231842111956434310718632114974377753177727880143645803206117033100172720767330912235546619314704433916733393533588968451501374656666422981616968683848174579374710444693185804254755981458670969996841509812358684770399321902630057452024735209372326414205744518559182564411598894767555815502040463774451539026466339584499912899040892318439917931789694345042648238376489269766232035078501345063244079190347941593201676580569291510073638338629105314205254496496056993093588826390969200675963275925635106635229217171740051706413135571076458276447737730020670527607655951074464982128601882758287358685630668894440541847221901721350757626410593056911558757118060915177049586156859455402547060719156431647909408908566830064170438124904448927570169245228669591042158019124980135656502469231223127096464845813528376656589162831539528088602485597509901546330570583569042454183126951150612572557746089660796960303310410277478317070039458386899439315888992332415313242797733819239002985911838943552825475583949715131476768189780426065202801261058563954415550726951004087369526923945338094434014543103174739160505249344195341224959556749712335709697785134120935413012736103587030324611910938750775424863355685653556027288296620983735326815969233732880535405574799614145169897764953367594713951360989692978271893337285133065956253261476632199041669885872164969665243240145144373160550825634412193107716832645517166944502711563154949360735957336741257120132125908257197793105037091439308901686730152415006219748521578549173744668334506466341931596211760816417177603665210436096228827778655501361140198707000239860636738635209419481029138440211752743716534181833799629441495469853493833661741062550454333840484670318166809562045188516659659644868704132699600544517599131128712531018554835532925474297837287830738734741085896920015374195303090385839334139319017206072803258176814963658006584006070067477452579708548772885883916807580731111021051747268419381456316338103194999226958297247692057974747246090637443280636840140935608541660815589518448127365951390202796746871047042949549670985628066845465606097475713157932400971557245889780889001192145459710320383961075578449732891372736060428698203251603022451426789875113236677652000919546302805430570645821493433830152950824153872698546415796782152165258561118781021986102675395864758954844021022076296001643433735570574966948166693273305781222966672125782069496006884295655571136253248685186478398653117515019124909932611012934626343970707145088576085925349281633079324496400078936739065488173446955787454681222962222376139770155042648473539343097149641279883870877224683670320656385639755494079689746223657410914369456709320578480039543146566674876543187142406677111282038146574945477639868228306798112069288819366867549433458731590532904487452406574187155175759169933787416506269178491039247718708120474843650958343238131158103903570102022132223006974004611884435509326736235169587809876843739960115834594709377534759324596368504909374197170134477636164821104820854357358423312234797166639309144481815052920885918578843560957024962696157886144025637111893496250830700760261076287956244352996596787984035241449258665057467086873345781952687822019469706739835671763465439502870960266316320490887404534275054959776107604120192791162838573435198424578211732177030252411326622415084516090960230744615317099361975424097684031682294234004386308975233263309519592624443952548637897350316619120308143129191732203222274914911558452123660880613841200450201119399520977142314323795692401615611736461582280028888662910157045405167356587872354845003643961763218675881271976833629233446880512772472358785313965184753278652732589817059784390222587825947543946708550643801567675821607441352728088700965818271710791009203513231121626730445909698247433893800233929261409058827987703896664515479696012531857232363023949941823508011305064052199369894362678172077642667452448998275313148984250270435533294491434415798848279294020225787808131536928408731728656235842829190714403270935600350576535303086866347416899467564429813966048314966293775717719828835930403732102140405911588429727792731284356535237906791765119704506771981320263736222010421767058542423909353692076945184281172478059530192586775313680756337908320145059095129819050393337627731820967544498223302238687604470273061914830189042108583499534823450184508062660842659081002468167121614554799291933743539333545105253586245191478485713096877744239222371504943509531769646616289981304902017008380904697580564543113057927789197495380079753188437292697943503692236738184980851428873318749492011742109463946243549156026856181628761868740406327896721532922535159021277566932840064150661940272889989914845940460633670431720361888579174551527729304988045021697729867657177571020699046094680018956052915079030225776097106085440573525546596121634892615681672174695968791757469227418226304641854415237665459554719812124497273968412876656862669424019432269129949818628647029240983419754577188395262620659616755086253891607976141363376682768288892327804770461795178991000538773810195176647308935685378896433720055968252167441241980355571466212209780083908684217976228566176223850852955235179475187132266919837368843982115637406351185697191359587099888930341790910459993845952196305336089501957872537218875379825207883599428093541451841481731203383458468735502218174988752535309755514408830352697550531436153344537131691144174713256992121705626828562093326593883682291166849755741769800118706487086383750773301754068468635198405705022744184315071410051006681290022951039856406407540931049955205568343546752492696820584984252815483319938570977746742937333524636312132105696526287875029428884267914229695019960871110240522819700075730571893406754557402187514086878835224739648556848267558268134966706213269762376864295655313428040193756583468917755987398685234391208807513934009218634338250325426866206016320894815833628834191243908085137146577373610496096547474029094790116271477935475082829972907477195078319844570979090435623286961653712441609030586571609612746965726817155791126211551316441239561834901834493421775011676444207061022833467322458289309994322440531348415352705705242824168066115951246984110825265533009209861536172374136946291334424492388805778999045340942687042614782759755275877611475516418863726053117649069390738178857184616260094321418197968176121309023560348516482186229887579553361660669613024489384841647145757082370258397120426313887447920369292891050290395661311837560988743008688673434822432966652781871670991424674193787215047528204547230079827569390765794463375958781218942034659490656097368440006504040509028491224602382680862486821891713788331678162789225193858368269882763608747902480081563213073432127327819296754537561202962558773303423546864069350134163427215712290671398362115790052649650671881931007013156424737529314971548168854318570649980180591614805414347952916095147167665170452365381780278475444422648339845094417770325297283154058674703267386536146885171556838794474826992381158594728593499655813755228596368975900057605343898327437157831174152520856211731536698782797941896023789375051860612475590471157171548659077492520968924895582854833606582006551428806951029035487942797307733248438125658691511102883628712048874339519015606280102923092613667070695456533112400068286686489002563097828058854456363833491438923553955337687067727152090768609949918537586273119945232046697727729225783930117576931219917886645433274741010649488103692582313332525585557212168238498989711742693295215878960779893954372114744151908644322241166130974011200154775200662220452111740523617876534843858650395267849600959828256150731843836632557886910016108773393617492021806105066973200437691191727887230698791261020721521071865436641712265372139715897163704380602647231128686711424029010279031680472957952325806902034456036713094275276820581549328781485944328369372523939366924456383845860440352437524657663234692774519302351379363563277831339554184438978868614605721555178097067746822355799659159621692867883393029742634653747507115440752973582111869633391881284677861879190758294748636125086655259338191535264053738978070765610399902442460823036236577641576529226491136552090803136769113889861145137532989748146966910617395862060932460636190976482363719568150690454188337034038083541732947867668771220438270624386348737161517524726010843816516182504242899981140085374168836561425410759286542778057615215659742182256250174155091530375172660033660665849759732718206151648572994929079742465498890396374842613995042603901934427825800044863348836717763956107094646864957173966937218398037385261499429164416917853231804626240910136044483686230683786488282710807361676880166771521304623521871970591182513523086066206294157504518604085913364306172773840890070559917880703541814419729263668681922222988381911039039252975263385156560039157397163656238336418543067874540424035397871095843408173818315287891160879015858253332329644243454271968591761769979566077570555003030080261375805947104545071955946440103089976611014436450376353106382555847857722410329835193894211997225164049941560186506800012984411258492772413219864332206711025830865421818938347715168325087499688528973888836647627970657572170955844359309089486497311029670031629726845019354063250412809087462869722846454153907234826359652587428345396309390827384864456316102552215689077525282983930442395984581241165888308642660138011980498504786190725344874720307756146046440518025382218572686196880303638879576837085806192961782567710824817411147613446182641203740682678069051741077570905255294773575089999478665627991129379944619818421371005730042148091838542431642164821662249895359188293074685867182471462178440757738793265415392426130444347923389081169648130035671902361802565703755163142663060067795615475710278318430335380563853379186439523127777369044883251142355477233808693465162898380359903833463586596519003888878371461531696810500843859258076267330109752044834721850762269201087429243892322361504900140194498595401480953571090241916401319844589971911402543263067345986383185022692864310467468986259137751569597805698565629545817535818841876150170267779032835422325308838382648772618175773253661646340566210357106505038557067943437907587743882548657879906558792549669510116910520267423233862142714537118046391930298555222056672758637988249439578443162826825736833044389427155890699011082351175970573793287989202653921150877182659395438250889652578823338169900491085547833434842072605247767301304777894528019369108834658761536279694333158215992004510167251781322944861244366318793297698495186858117587122538312650250630034175812480121587705647774230230204481437551461170558880345283289994281287569823755463703807686790965573662058360655752580740274954513274599915198568342959658046762102766095037610910842902181932702174642665314776818231745222104259558768107034735785836423857256121354114696569383727320041193808614589042541915969790338844003656749996223977990897838519901033513651636190525191652063107985527468463038717863118927371299666294518618564520756314907574282160570843801318156072715043327041485034463845577059661618514600669611722796013524215026509045883874380571045357309587555228465668185580863684019741538510753421197126850286500118075215840094669993428098464016952569477584588601963835116419209400603983140575943521879997552373154626540621777703601887783406880151445950917939678835151696689464411249257721928247825240459173232354734143811395929239997679067265302552641898819381323290706817278765384762136788685854542280493623713953521234435778393941071021868412247734252606433864848871246130342989832338769554517802439490762519267877744375461988956996821676420651162471004704250230918404075281264268920464111950667216326561279737524510716795345321540355479908926236795438598160413093038696320220904696821995288279219245977756396209726217416324507991150034016393784787936312832067429019106075120678691598580491882667555691250866643978207477005572056693539569539595044320064440421348858360631279734408987787502735561114065293856839311568597654668786054469720177421867711322988887594589859218905157059687854441600286716475662637763499816177656189016805209238625062524670569656725508512416566720445260129059307661549290478548831828451511619945415695691984851171124500131853785723728491864240183030253199619387232545276234736101263034329490901476300981365631551968641224470448761507002260273675740326906138513651668807153204853525868224625692991029912759544532926366988526171459668517535605588695184964723027915067337907752243521946808614597980184395909047821007859410507080943188418396332373053426693664599215696024298775678647473863369213569464258683577252765376359230044526752800103074134700582429536266159337149302691959054894559797040148710209256182245518658004491231661549640052911141785238188328451035492626484104020172718059558307243854689157951130319036016961576549256860931531645792797346705320635588988470252758655652522388071432602149618890801112940160560540528136056714239652595190627015730404656291785970072598325713646116535685968376001196629897567548902186617295955459095911234821213273530755546677754826708294149798286282817293778487446664344357169932533471965990582213838751904719846601071841373575796314731666753630163587961151133703946411235337282519645797147816204257270393115267218908019599311567014617240225595916933438096305832574630889597153563044059457916720109761284937298023861633268224026400957267843929913860632312209045037073567834132919835187996480391607601803895043196367717886829492512574221125993726768898940025185908814824158962360803596792017808393404991884773336047498795846740233039450631337612660084779950348778210525944477446381985504369507408380300026812369625156177300983657832708152492960848593456076502067011730224714567174638632314579250402563856041900286422996296388087629086931378396930098890831741299885284006018849730740489861962596777353856038915141240791843899577870570100316653855914807269154505506494790843966064408616089385203341661487831692319644774900147171110619216360340685913420950119625490832065831665512077770996976367560151055061568652811000620953763297659389874474264229417132252871348435512519506305426312295442538377449723589773908646547353290634237304268993971894169438116575196157792655764100567733224676814967181912055434263420758492880633464012347881946397004214056522431611157286090218227164569557794690544408799482381258173897627789474961963770526960026339059983888992309018280421112844952199289028123561674500412348487650144671025558622126136953199039030207121082950173474318323033433920779887671520201381720812834273718321157412746510849627611487384444866277720527044525697050504625424919140952932076519434954641987068014098163681939141915800684130737433086738135938914112642854664026490254744384595084260427499663316767240197950139599464360183117875696843354339599681433586709374112600982273439984194821496253515730775021916670093703742004359849020851145507168016606386025399086635790853763724771641002782413037914130063835782471461318433973639886437173180913418666946718163630654003907835963190605741191773551850558652697477062341932607190166376315402427666192534002881558397179843603865922818073949652441325805987807167824953337648609737922513616650224615074186571397065276052831064272045335381165158534818312066337845828419624001519233029810524641856655316546554865998339063078012004444872906247297936007176346116062666586703113237261765256181793706853766361126518584481522270482621125962196685561163904471850929286626305192411218174207321723919954638757833942531280462341694763384513018820536981457983489050480097616610594011725360772119012041462058639357508114566395033717860173678031601881907542825565294948563216949245494163279042711429281977787964828646838504071145938286731180689623316035089763821040266413418212076947826592157561260866137429037413069420353277034616327868607910480877110461707735166757995025040137715228267262607735676333964388715922519156675264172080145066081460736610027661104452968469606865298701847305883737806244671099530051602567357311435192412851308376574998056839587109278255764817053174684807562608196532918155525541681504077115816593747424287199752628633660681633907185238731069232614268281239274251582549353866165546438959335093503132946018517932415494290738880023540556192386424301501558865245109920876687437447441808267894995995914715593333752544313315848156266284068093392122336300350950934665825304770749794403043048203521936435633923555565830310898090290235485569895849647569378956433457856768827898121352810333197055906980941860871930810639155058895708134488584233735785006120311621679971794785025541848699265519895141240234944798514885574322582884983297363651601198901330199291815156029431277280636125222808786051245455337299503698405413804408091075960794785197138078631055067543521984783795811685404693858674381175215110647596560741695981422314632442137210906023714938244769612132745454605016824691637072979525041815236359232965594150344089670935192522440348171787891961172999211051269509239056700498175811595178985872374924708033578869794106870953583182770227149077569456029513978140635302252298456657502129574025623953607091946609005618592806093064678038076745190350076808728978558264435428965663403057376236308171262319967451537265086470313799161431881680494899966107977428928614917436825996401678122489901631136443996295461991555300167568976442283640264586160846398185945053333912693832817545454352370152858489154463333271077017808401391414868725826718554932952271039550454600655767546703863321887829242504190927065740291185528277885788549854959421991707918652783893848150030155342629873377187346800213377083821862479603763149539255525099676810471904013786388770979863626363014194169745550060648293745372214903358878417348639965473171292061096479346921416791752999771082595992196643082120745219677127172027820295818698513965335597291553133670478851787655860281458353256771399616197286808383321243460749645360898487852672440481770767359340006224751108236129076734160259989941332248536237573306670619643472105984517129674157576904672352246085586140436632119525941026324585208081167764967151488350447273679671646503935888322038260056649620098891618606838324737936635806952422907565996539666334988202188829305248049543835128833462320777924527838768662535405235953741872404629531344403467236989042989021943335638451124927834409718519173213338081742660651186082125216743006210977763412178666009486420014710015961327976412530958503775084007605737408608979231494238027168833639082265843193327394994322201582309203838645711054616094703743218964145719677365230708609306929101146083590586397224259449075355918321075288026304097870408066585903994286890674479672865005338001046609294021629215112946272047181280685391076382765557599654962810353029325270179126235290567022315175093513324707214806724343159775653232150309440756495288171804435707500631730719642191828642892388318269107875978046916153850187519554682118868028469852628745589142205131517421511526305631164814142972925013670815310587080992426168976640183463502457117983613379717752655864357252014230159722640049490379889038666811860395129287535837311344913698106172594224839351092020918813215963603058705138136402168739344128145137298351532067172103896021043852348299212445134887209437962344082522498240515307989911765366476795504334036690330747215433295305626478119538849690021460301584282607923130000458460060439484707741459255663352959499928515824807049867367371635261216716793690329637938795909895606317085069894887497562521901048305064022430279473398873005891468052212587885205072878895470675262052936420201259162104710517649564947375219130291494880913060822490138994905238530399102406860820736931416005794344037203422573150284642672728920658595800555268270727699210473711603200377030904441945655384523817741521213938729204376965654738022648353798741977506801547081427725023634073646883529794343383877065447823059140035350508314560665545179446117997105046603128413570192349666327416306851198498684338885909211996378042311796700729776891505469696308678789827214877898130263200922685635542187598970974858883247063494404788168428430316421686550126696496117127234730107262184693247831360653602547468862777882966668005865823919739214619868053463136714477748484097303912126743454067112408736464998780666563025860985543534145871139712343412945172021377251418601584972001246796059062290339729821385729593620253303639264140475567328313069849855420722395910654615397040973711126384929092202674113111424811891549488917925196272630997372866702367716192666029936082253534188306894724141411106722838688579562228308213887236058562615955003450233320180489053862523140919275104125166114403418152809561863340113782536842941299255614516142366915805149318427922499916086779520846404827544542591865854795603838447804210395738135040965211599823127794795271817689249442867312376610271644669888882399455872904733332384835724072075631818399041330368388549401191726587057839545497542571335183307538445927925626087170031863630794049117024819211391213695738365541724597334378253391296940975214852273400497704447895623654598258941602708381845445717122052932352189456787840143628361793162124525317281450805109053116343511068444991779792254142362874992336600864536849776100811099725654089802175072844914505319813432711737323566816089825814128343521559828830506967824178871436498951963176154381003393720754787154310425208673848744074918166108274623300496281671966830338274630576091483209470832461893909801720635921799959537901723568979206763863843678114245482899268212796151582479328814250808194068698246252363873868503866812098472099872781997187920879587284088930485887725266183816207920489104436744762582534053518312832676840062021012125077296714239729802596040253784765101517493208706477541886386293891714193367779167416704082171562630750208374561427888716796866228386508973559741178858286897205814192382776742738593306571636316151932941540567708533151981443941344479311014186696701361459589214314719042977030403474777951821787797804964968199143181427352862968051419428436797109458862835221035778989155426911441345341155714575609909766515270239251658104685973271159785602751949564496233662979182605656206310335027904371466497655164943274606868379767016929320210031255688235338981327188459444588646098203019871388137017120597701749489903892375756932678169459468081304014303363873274613237808518635501346037417425067074293678100860964251964191247447079659691272673518196045816150747210527669340114361932437664418106780973567567197920117640159391971231379033291143409055833805440250171199383273645872763066874898325991668699496024887075142426251531233267115706669850781320503421500565902435550170167029110557391799448994212763171233250540171078001252038309050750301157360840332318476935858782338401974483654646104004189819776218636206178952910612202493069262124774200972871906580921539086235081122961360177398655801089665947150924645392659831627088540831662843667178707803817858925659659964033991424741564982488946531834555082823565745734447358135470706482021122603075792730286222242534672942742373636975404299733814936631718025795631333253503744509958241246887313768956899851126083341065340759303882463533377177533826183191096144969652010081752572083046883751853101132107739821896185991804920754935613370969369850030164856812238237606753924176840511237852191681259151842499951761506014768565547518264923197331239789324657099150876089928472224370634771418506555383013700829668216322617386559034155121940915712739133140828092152295197110026815258999702560497939799659691678078357922757459166247212637267499494394204441555052210640756761224445433331605295944601030028951303900409192089053578298810117965148815771613745219886833158789311307460339316571912324233335058431386371573651643464517259174660444618797705679591875350997572981778012972563235930705578972861119325514061640486356978985821237055326200405240282747993305474169426055667599515392920018084032257099222152767553160829022357303453818253622552076328682962177969915860672554068801824988554984876808793285237711919805258608610450275064805188791103556637454579089405880881107193654278973597228138652068308684707954822462097577425565396209434754801940077320980660295976126395731722203713433056932933959743277701809496597453589149683093977730386339931379878113528735864458523473640272394822655947949545126380853694413886143462127949522823620798957394151412891068878504338936227204448883209364108496732217395144554364438443587373369686340152993676143909392807381862204977994491526997419787768185597038506063206321057457291029673011661208347782092715554352197361410394451804409189516910521765483749079647447093457121073573984237471984697132481061151178927923952742205183791818189443693740747835087895472251425959659053164138732357301817741952738650245892070998961419927160253999730920719229930636895420853913871342653025796809241797983168523773439185212046124993178363161813556047354888242564427641900723881624603309129877337255909762708632012600041976909989840841624371898725564022909336635683145226514367830217280096035453176659604436523180060369474273417681802259014121289382790379798762616650860516023154072283235668652659263324824079621028845185931701322404632348894422721464742324674752060191814606985642268748949297586256670012904267598944572930767009637622085704431889802508237839025852911687463229654526282718216333566670359032575487980525754734962513783642293547604909252625959579088422090510057177077489219026309866601958283546483374115151273071823913345116145805347435782202073009160696834505614684586296776553950438602569876657714485991880565605917961705238833006500972828138107396874327022777891241139136288082232428330798174926325393000385297528183047117012428599753590417445451591182916123610338595593650691501070955067603869951669643851317975159640554205574164815732677599603681764815805123281184930372711102738936234455342991328139358079386766709727137256686011935356094250548578353660743482306701658741421099542099051806711793857590252123978498529272167103916890404556365668369439072034104344761708441249227473108592020643886591076470628476915101892090534485933145220009189797826043963244356109896024457847753805874571371503163684341811725478270160916399691596303956210614055351092329702674350610855601419829913324505126799279398861755944088177773712362494815287258903775989035062778453135338383688913415693013892320969466564853449573506538872983182932492387047408030551778718063570781726836418587791436642434993850178660839014130763017083176069826892868801070759073190823647214116195605622475608641489581357172619576132346387876769181351119359413244548450349548049323995978738055436897313534785876497734748831953261668875805450641338332795697539889352901395098339547090259233880425424989966387413877722157374132354085842197956247296168485683102844129279854571307664108793953710456785817246424770895396534093344646046841660204218023452077138255316401526657287584862439280614124533312908532302846563201898919450752247818130981785326823253499133007267492260023299385190831172791943779516572616659018958611205864292695088675659524679535777746097754209956091930599102035578190063748316653483179329731821181282233282094923440186191129631041796710791528840277827393921712461249588319443940386548407444374973292746919857146094784598614559630843159658426316894089476433142729712958522228468925472758571633010786671292283982268518286027051211530591068466730151131018035741766016375781169517831777819297614354278350943666219643371331276739596455695548173480609826175886440974126758033067759527729136857019908819751985084975956653196389857763415091109271458823801834921867795533374697467192347712562917147610064601905654394146268099077479026839664877456404551390725486759691505471380267131844938539714752605932181732264837998105230252780547727903793975537912485756338507453124181212151420678658699202357374984582370180486620434912931493738680228281079892282222502857626501892288336853863853261140335931955288990825767522110057736663515068925162972047839393774425995734430937112155409024214899357159724350371416741015008795784970478231660754682613767667144972844950909753353615034403238196468819148658028639887381646345889855371086783511393932958793926088502517581027210121131993621637855090703905293233358937067043995218195534199204695853122672033795449761601999537380316132668586611425048404421639801589057666792528571000909502898645281870285250681736679318218781097633111829033215924075233366417857501953102379098711204493733783070876617939342952078933011506370540095438950450649637895164437602169842209754517021355682012730431777176037839389331813234585472079263531927825349637909630821008870538216055753492785619061889166302064576229887761221979113746878053286895548902035582144979158890134399429627411132788361887416917775875583811157750177784796491372317318493237688821015083908304090456551420632756692465030118055920156315357678102137264639434841315749798569857094764542359623879098794717757323356624645213523687808804770419132110285784497431894653836885294517566369292820069979231568106575629293250876215664888956195174140097729815048455381293145092345195186096051654334889260353935082555745025183727714592983018640367090151078036069542520733100718941138505301957391203975801786596200850538677302934659493059020469017392572434525849368135786936177863632939274708961556049920013876583673328830353609089761385776891773868851233331424052500472677204338750322954577484444260331765810825807765072659497649349048011227213035344818862496712913672495883844766380743385292788418811481835561324586220519882199201320210890903880359176461122851179231130020924556145964657751230371692146917487332571029108129175635420678788165793899263080072739886954352447390795476141162196992985304754417919664079908552773294494145077856721651178759319891800269299950824136332254408701148709926321221186922895170013796520251309987621315232330596251909839468349702558312287024094782379027844814942640082161880987621627916451835048870701812403396377837632030361603602247586017840784949719250536918038966075537527589037012266840426270902300200671044987297342322860844892056021654683863534782672931357822876758816881124875430169746672413249516025380854457227446985231771810301267167186692764464948303677619330093884810427738494840013957397428688920534098728331436088156129898710477599691324107043495814737784740910705354071609333927797912175349794684642086969608200397232298034524411284601425120607370390836855528653944150078926302685659243899506498978182497493841487321419079894337533006447387866119926057588808342112409339760872703282700259193321856625455196147174840783780112893480352912987965782673398564364729495390905163045078687664200016583167662721773025884174927991453038095966197255280270767385403966850491204191152926108053765027177516263882958733824884437234910819255153292202898134698186279035838023582068193216955136988488864983727486588122856962527704986702935167990512410177181384113713624303522443806786130325822074267740104854339396153744770162095797685548972143472901473530776243317934750350220175235574969030062570346459298270355537974235636236735605150622710566318962943185704009211773569059859540195855985707923407080814969068813212113238176482836110976146066373826404140725679798246953775308661774604381330318819692282308469719294937008833877199670229667369960252294974253664990745713228217725840125675459041770459078827439339717684947683882627360262901444446395235113006653142470195636630705018484785971285842043533029308660518802318360394030610227032942126718828755455847490966164857859399502868024683266796950838438978088852428899678828102501212322500657443136779323487123556401247449573068164062979989825231255668002270073460685982768191651762451897293156396723677511760965015972616269567508977892628314729137421397593824836287958008935326585241567412493366638372747616765553764458095559082788846879971647118574423045205743652607000975222316981549631711574274142019349597702643962457238727190931866969796987265580923349031186743636784507209388018868362594545763995075752212977511113392646269806491107487158129602960311429060324053878774743601130835889928455111699076519832584233956473949396195700315491368538725149637668547069238569162521573708510201930640817835368333146203893901272381070869449156032781455448160481364124692763316854785898619329774867250129320359170588306409311487686264569010745542443366373058387327720271441531736506230630515221414255966143718582497428648705612235929862166591589955381662575696171487639944749546469461825465537416189881144336507784807684570189478114994158812015683712062428965639762812891185575928354848019939810898893681070292520910063095082826430314796736554487749559954082079904380146900020329725931701680206904216046315026691560983452325193962797121199638108069863315548155087549316317205470919289473634856808614547144253714102974618368902046813969660490615913685870386729845437286710917016365089357821291682088492533979373760737885603414052716772964538488817103717394140797055836163677232014678843877235638637204666093023065322821589337810798554516626857511942477608537637841375117171025069136653794406456799197158516886181774003981555875372896862461825260395067734703338100406184582373121067698135973041146391838577067679491215581621628527049476081385619905388919165761661670869345743214377362781690268855873797026791097779381872833950383436647461256406800860596825436141023098058314704744734390524990586352196133313876764885236681450823822983001862709826894697243642332704291833332240518264859860199204803280641617822863609034750070989924555340395451324015517931171354825747547762389329650524980090075565221921916506796929156758625049981700301833757576003384212142798693193202547221579142275887991073064767672809672966470654788094836759630496929367812296989179312209614191271484821993490488723029938575450140294328476628092866137323895555581830928941213157952362994336993380674210291079628792197123381964214505207223025299707680556179676958638932669835842942979157393473244668723044728296976289534473249883564733515273675730110858066649850320360654774126999262235113455857479354765713800772561756984911537200015746793630035608580190953530663986990719450169660851355823724633734006706811314648576499689092957363834254299292164448220721966445538700957508187858250777308310364687415738549914745826266252356215407554063459038083201932684152658689506258145682458176449102922096024482034073397155516021032507810937925266134840330610732461558428946901907509715275246144701375661418294002102244982809540364534343197432997552225298384395888542876499330279270110504214242772297749710221768732835427482364660946334287786692973648170177044589325020926476168713423427148362097468577450351363450601545292815458733704398214222909679602660422642245891208044538687091595572685406389407866940096075891277831236844475420827748592067687413163543183585754948700567665338049312679952758017580177545823696925395454511368180945729720308072116685954238565888288514995905847130593999012524983115545951768025395619065234653790985849936644795423757592732306535878169674368170852904763875228179797148131060187454298625029791775678772165201413189511755161290335055335849345423254225437000353842203787873080936301319948806696249809985234341251822293099352043437792425162109479431384988070161095148156304346534955405035503443750409521517625987937635152615710887966188736989381380545155443621961723054113742318160585632945434343461269334446884607386001321991618206416921386596809826305138088454770683038304927987276339230654695588414173225056219031713733691457453420181803102827555012122067542009031339831909079871435409618711833720252276420170050282738393808359929948168848840150947150930853026901663064100954515179979407773896932053885578499063615742085490946296894498606851546478624155272830845039015607855867963867703574954199117161886150215361521096410273593605427077891954252245305443533929159214326267100733534627146026844705102718556002013755173329216708578023884860536861249669692259520325973293347173592919614002768121794996565648707942044430193973790442666687725720628987348439223514228462335133644243729487053463204334311111635351843221840468043574604922098405900823165712908833570116959954453204708135500416205364233067151412015639269306414528251429056546231207673359578215937872882325786869474354969201036346227191060675685792785269913730744783455114189978633069944307728105110759422364178139906093813135614553047040456982130832341673029982808576583931216679322173718021943842051770106345029711844866324171369921661683836773997031146467837576594437586750696824522180375594052765164622972159019204382218762977652576026095451112866931667696301014822197332929404588055577307046849991524503520096240541526573708449089064561750477897835094669199584707947697465783612507178424710047938988118814623191702697337101472503481041748937293753269636085225129946112938449953134888160025804338329840695165106428216690494271872611529809812556840392238061031162157295775439929983267596629198671796234280303840565429320692043331095774279199986623943251783486141284566361717270263805222461107078410666817214169028849927453019477931601609006172705152209441068037829185740448363196064124939412852642541037069457399230041701576014159744364949541229286546293800983864048612706511402035607877422465872887254028969549446254150635672001167197939566090684003538171948120713208098798753337113953291247052726803287472055395122467121272693709606598713529936244122256474620028067183702552334414385260700068259492418986650407543697340173306896580326366923867964612231305204332695141751843936119368490428388859047431691663283785788612049711161672741378422226592403611251040290504895343705586068765051875081458421443811778437225527178123470258231451586034970483300170741671022797380073304703251085543726010450637845763307827008961196522430832785470759310617560126202515471731277697091166195757005724340199247002470984247726366498079296139337282025180321545874487589963334024903068016034798955296453693275352986568616838978819036868049942555083430796896401659256198257480310231669200361736899467251274020430136384451087433381818421923510916904109663958940746940810040381496765602965795063803863083853717572111510166880374013634578186117135120318857281582849665881205570455383940186089251024394524527036623274221364311612604369267233980697747161575851324742902582133829049205714369506143902722641729245734508780453490289246342864147882947715920041524212362761528354994100245797052583650460209882663215872843404377103702089997976522266880380147027416547714351859613861036538760656850572168641525629983010451930070294389558066610229719140179887468167675763975889355019168036473193453932171402163478102664859073717095259370824087992581506459665398270020599279343254739274449998219372096314399362525384299808217986435215380430759161104950086114282559625969803772262681710673724778544850541823008371237472158257909524759337035897733172172072943212688558702788079636025729395614459638980740395785955939150574263459576947332339072084257616824090449278323791276979132205893441472205138944736195293566707658955066617273796055707773734758140669195050467962014529606966641287465675691371909555632016402767395546749000753697666084166021897991660165683650545971475963250954612921278833278246612935942360379829414084393877149155732157789100286717586132004758358199081591292979349898931031343000968909728293794835094697778970664777179729763449131089571767196666421989175641147758231616167287847581053593063591870784222773304225596266417111899973019077750528385103755883154138299667712773337528683217864458086900993409332946012438499328875823407184785492130568886656950007449980729603965032319871125279159633092644440473852271173979258460357009925802800578602022234463903013449471655602565152778950139032197442067156935301725437799493271560801954635723970780483664912232681864052297040224979692492970416078631720001684495508983772304987794695567779829787531981044805389919680434532799929632630186595907043959173845254163483257559966319417190586423579973631514136832959350682658429054410546515014121839877617136393988132495939007721497128792855504441282218325559217141128388102064063291885580588667961647488920379130702706045745829393516860382493391800959803587544030626121375035186492372929996729239345635949391116002313488106265538182191623086298292404152685340007902859709059360039962057637732233939066034068681022194500913995551567294659074672508860800091468429761909667781087552475943653627936682780924763953516895739202182156521138092356918712132671889602641118439893145578329489669612001695988554322508089252473551017298952100394696099375601800637830771075759139980489979563345290370767001974263314180296013154930958461328805427597714633837169625109417442432660718067252010088396951653691737156070302184143487654379530565430328616701857057259320761758633215085876593978993562521293549867732791992871187123996273068657304867460912917390300545370453211739391536166101732953968294178977527888871732629867451958162699562201251578806435024719287796526591035047973740823449284924214986948152501776792082405444864479000298629222261906645450243597359077515140545718605002237532810907837695912756641587314965557136273145275144924599431825987629547635013445251999145524369495958808703267076703183777501745432640081716490067916496744799209703212829720250225919357719423358308873763591635012346819657500933103115973245409688582061390487326287109598590660957176022591493314073207734531948738004868222275975766524728554365042680599226749258980429608441976209685541172993880934759281809846431168852360851348716565784526945057616195577739977467776064632512653429521085139165834080075447733778148112411640010925737706383454924497296167058514185559190366948328757693281106477185906362619718014133011979321833168255468277362756634091021096842625728991584384555467049894236772992249294925611245076370010667193544294924512938698174267331666219372985086079556793639150573104378252243140655613909825343907556181841893345501582598355348578013975911871340881178374829857717068107169311521511183437750582120074184717832331649449704527608992214344684403330292090777617525070827631143407703363862833496276151903928487551354372101195350881287383271399462486935307621167410512167548856588548691412428429998771493669394071796158271581371343865134611755771553926270260929866732304442708662755068755298854510600003812765039107645504028321233543657057510062544135007167257494935603349468968524673140460842679671402910809582184686962114290648918936142988029801229760968053186968259056264423135038308387920435957979337935804407991702062843185754805746412084922115222082069679074212363654660681754711380915541406645653558205816482758941571698257539932946539973497177903380385767142049515960773986365348446143659477915901122341540385546262831849786095273154742222793011114061921528375075040289729695755481059296063135808322421151305802899408957838405832323473896525112499111236968692474610692361216376368600707471627709150474579183173023547581431852372857679091927663104216789859636067635388306170863805693586459411409517612232191921796361404802253685043038225380708609183117973048402300143803110399966925350295463576074410068163790882376466149835155673877405062750414029655288089144989177597327368475837092610393905415792412383640643783351844896071770347630923420044835609004210751797535201873844370066743159338949242587372495958977406438075950370581887869938064767615047116717853703672367347162278575187941566243076565443833257325464779768198306552749327802301906078335934711267336394624941444824005830537471498769247805857648229306306097727729065399919991665703581943614555706141504509652280561446518496184635625484492738504336120301737362717093412399822752352087489885491751129294250138461961161528030739543939136945874969632232004343241201437945618715500000530104942179709590623914581328837854552312902858317902040128110971325095032552623851540221028753584071943674343667950427036391622034861782534791305780978780906371384235036472950585072633610679814875200573856645101003527263663296787685364552038645854079865435443244307067209693122310670579119885902925374601183272719143465782526296757928015539353219148016829475435038160677754095330019017832345144202808255557749742851243208992379414623872973876620861806161311331026939450962931669285523587825263275829041288978994847652723079459539335366617397168319362995100036429631999326756688477328193465736296335564340796344638223552209212485060922128280084018289047405709428743302478284327131650717601803360613007407887098093322356414214043118244999831774562980256363658645712643302417759734746884705116741707769989235803946478571573380197920264363338477252982227495164382865357292722789522606179615321180935727023258479450135490598675161368928464518797553023655235939426877846203064492785155660314317379807918859377160885506351471690314633147883476730687460678777585469544503802828348386197348003355487848343025370880742433664974565191679440503426475515464276230318493115584495388869042819671296019018116208282656599528305696211238965725813449666229902469693487162790150708947023037437481191826366562946334959996379754963257518889754764722396672320088268129450166397686293841412479203755448011703296622823229798503095002312242571594197767643072781174529013690129100361874905995879543772713023804779804060045796560479394083379444549086114345327081175772422008420043988173141262118121593787206808610152839934460054093731743157545062599884352520181557375405491538256523507528136953404239360477801232434450907104597475592851087827520433685121764925019848445327043817225286322073929853890148318420412247832232175679395103863578162249857518261478368143107846627379231940968053988447277330181951481125691402247649370911194795885604572109585988014925707309963141451652127253886116335778352867958987333217725562528618279222401221668657706316301667122485630556162126825457527637264255458657373637429933580119552418073325477512399579004391985641999308187918781589147256323647757876338172253212034185638503346190780855111930885642787188011751331854471511108557555247534675293145378515077661895025101720260894384524687427657234677329499335331641406402979404351279497141367963452079875844488651039900320938268230117767801536101329459906387155276874182074535127295761368671953615260586221845459137961067159487304073981847056276103446125541071895501586171097921454482528267169224410537814528766760591086957748126229115446593676739018562166153815343481649459893501581238969700616699809846312097476129267523255948006388412999198873985113443357851314263145098945898918697924997724121755723628884514019007715485601764205759517108662121383109633224007133508353446441412560277133780051430722901929100502598050982331566702301310204670659516900508384912480377402550165786822366275572220178175180132163120398716160217321140284080377131985465532198705295826554360535887019552932109781680498252302896331295775558469124249138232423822041856056636003823850931027676339369707354893642904975243834359601287691211930544644810923693041847168996436512938765247814447784678630729155807549925986085997845590146068589102877748431314669753656269015928542380732796582246923410266550738559295128961373911477383960267933781505704607764523685565731656341681930007840685535282157304514868097421528513863366781087184573134757478177553469658927460887399787728426345346095013949260270452487537415664043359209247204327013923841159893056371969408475134796474061873514284926567371329859289955125488769881226352173729557431079864982271438204838709603209824768183672181993687351994046118507985639615051674387173872862340691957596950876352570469443118234749199126285125056159020339146782443735000645563441774792003679890089493939370401823574309814506588671689683258761833763946686570370845751648785673880899279798189544678254524487781871548219943143366762668767010734591954955254891183681526912125523875474029305444361489865807037862168531236217410725635373023844144651441956769490092278526038046965609302926345541876972910447295288437085896769381582093405737791316306526234073949670215609240273996999826745681323960481645966126723644877119013350033553147840677918655396406992566277074125749142842751927185033051585875150247580886290181593420417596199059608583212152275291920208680094081122984027278362388701286656650812724668140382911499311530709175753445813800734000971351390783855167172695183374801332218187166856271869423091190495324087499098024315937603126333540417525797089571607875093279351374007685275993219484215604271794764449525417613764651706103493760883752844626532470274484352983669163860396722924724764055423537898845118697215921515163215569798216993049555688888216059753763337073672542528709535458189943577293180104025643887512823793270036223707668446608328646577588502390858470821341421009126404767159844815178186480865775109838688079467765822808807472761631307439214159115597747877332873638484040868836126852213004186079565384738525230580628795091061099189474688950249876095932979818800539488993046115009999332707320724994485811430578483434143703011837191478483394906798097832873461158248363216583277274238720288304323245458308714786070438219002498503038597842841576885677099305513322410020418160877224996662208155367236507511961046698439919940494160157844408719187738369540233403594353422787259851053564813347431230386146332464380952670852246926904581676917569544465556349956495727990685513842983094288867916626948547785241697748321556363731204212353034849989426547964123287019133834987512494270012737277165620565622259618976841019389372302959960480652868341990747727801503810504118719946558960046784184938442422733147496427887902305288680749912659256539288271743989589833230732687537491360701723792749103630057449102262290261233926321770449326815086772404990965840970083959484702936872512382202375890400973156255594428042047295794263022828141074084425781049607326207367838727131057923627301771107645041014562873088682447432522714619257531932204010724533096449786437887145147749124305690651858173152059297271515348508450963227943027160757373705784781580620085325940386777242697186810017284477432214146404397076442374337050555116108085111375456643811253536067698087415674782906777540770797924316977610438883053702396818891839321075229033135699234879950042959677479504661428674625110418354454862462891442418527744296327397799047559722394556227548985955526559010986212406947942970382396465229545775449827288528499518209329285484834101373646979172601657104022467343344373955110831863035143923688054742410564797078711108623496084207364199467791225086346467193781273493789580261904491856587418091648044859456627094309579746514115385945625554649316894725031842220922379874552941311377780032195879320131117717340431308673369612812401111761484029648907737885650449737645123141406233835697750670541855243129595322900650589243320999941608463891932178285149279949228034728477097181138910739495272558859100565031060239351926784361995814288236506464952100384995215870907568119919673048927479653380902935499305394105362331844156789458302787931096056052894270704552553884328711676842701940629027734419938285126285722332435508396280120434352525512217717987663616989996605740746715713360901568052884598430991105435359014940847807439144327466926415903327985523602099748837774449993495040835238839340673558133696082550433772636766404571300777900939191885196782240217204526215299814329389503657773174745548583275952922896816918396337697135428686855889703612339904533109770564153172264855914779256057109896125806045910012646210073121951018273842722225217251299560032023096158166509897869076659208718149159573239924318354874707896333222559259987268079534362708982979602665094820405083479159021484911712799952516425268628443940585940981242255698114871335322102871958054015993944257492533858334093069722188175690338758533276188561315437679127193027866813069060846534661308311887681917241224517623230076264285222976948854748528881172510894992260075461082499544342503043421456836828217757662725031532096022374130929485941781629394456942993128197610612312865668923531942114462637758522923066065818020252168552746270811088583691227457269630230521865183797416140196627406421648318162182573524430790333220758139392298099450955514933336905981792803196486420761383355465484081984546720707085443430887448847969769501323699285964541180916707384820314345869246899524637159708075314413841577165128829411948914582270228355914838410791558293433731519619271835431344751660506355541815579758508230489508654812077682774945916313443379802699132884707460321584267741936208452783660581242862439641781583669977309571787594680293501171215650972204655124546096664048381733811611910269681836087645774441806664262238749429349909994152551946183725437343559719928722933332847723218763342366484386719769719822882450838827930487619457642986162194399409115253167553392596112332663127209941993523381077811692576145157600161816870606573863450709421778243874752080686982502966709197530428882919925147516866278288000066285801985204861141845800039916722601887340733604162399946776560186948052785101551302395961464212425219153201022206825323141998986797773249227112319798147478854953092531527098237876805517434952945410818872926558927810116469343729417980247693327209712954011911332561977719664515312449271943561753209984126803717115244318512461024001284569368001849721863345876162519913990324446686955797773085299049605324508904398211176677806967942555543092724687049403786769833843370061761173146786816444674308992454812314870616453645843463978460037899047616974608414601693129611720407851616467208472932337266163975555742885667082297846056355998407695705554133325106198472951999396103152984589592720822189648615362077712952065512532659068312801481562100768569782905681235479413826850992716360181465748556533261666592267816181641601632852091358305782297312377742979613977423059393430061612545514402710414486042171410601599805980515741237998651123867762319499828590633258054348200116265457375114014296818860222679056837790854627657748887295329404782288552487966552500060981176913233154687863478370483002285699642970915876917601312656082875390966807993104759578416403235494550936128742919682696040235605012440520156820587389342009973664794113356809792378070756766614660376000297117351648045717346929413930374524860752585864151379432816436809079323066569259090643051062919908806281841907841725357972368005149798856386561234796773289513784345420169660880892543896935805795544120819758386926968602908657022319803530644489301211966484390425660215503944898571293442443829076838372485225772683071711635915600300514452082285717853522597826174666354692880227758460514259261849292196205146232803069435272585198933325408662886510503959453547647426757192990291582139289875946166751357037010164788035943791352329466352026003155136266182295282332840408690355531653751279375526767645946802476128529973435671689069044349349839770476412409790537622502219527502249767254258191111588460441543684469089985142561779959134172492380705753384958733064172770663823061594411510454913366688441721945013661063301142423850579031950612564776787413087726611983464813183317634603801303746931511926289226524382480523016147879752566029411434553507767837692976240942132025554235922635562542269104570986614972159303628559826081424766765451385431220185347832318575215188119343947188329274830196558655691349222376986063969087976510645451823239710110079408931058438807867873909662116074877763200031745894392437978636367225084647995246040120564604749289610367960706208239577585612530230699827644782018370421275030106786888201666581215985419162265329367012227457727373465091447853715773776996387759729069355325942065451644329741551523305259134474381900293741870275930795728233978510580154724284568164548056709594829746924802878229693532895553148901178665234296127726808805638605389148938176820660968583950083980694840017494909661272783888735080126710950942553418021896437401779377320446430500793376010911869650935414205477903673954975923023955733371165995406716999767016101968867637620081671524678958944359678250368263637910621027485766110615660566644615205501025259686769688345941658328300433405169705235006049739909516066369416286149112274936646178494896667602504974661867081274754171064056169223521409556524651958856761957923857785863843533316709747704574895085309674756386400218882228435267507267034757681106500411727647647657492094607756893850964026819522779838960524693682693448044260359649094927810482168185819607487508693877744064154336061302404763860883752631806330315019769290741112692758932001116702212288886931281610426076309092431055782304029270494921868198073073054708097550283119471228388017143264203739021995091333167664287751422178141103212733160407405947191328534523751364617432734995195698567590632477260039967277243596446184029605090294373169654658817635135190265574559903052983696135186050416475397801414946416007794914564109424595722259572376920154460300045507131436472229864523578996118161124407396870971399332015107214358036603499775446891955666514671978596875279562296988156789897226699525106416720435796766251805594374087777359313862115631224471755675447990315241563115986946455091225218325335276841309075672388935858881368525638822229829612985194440846030009933603906512369960831482335420169931752672092760619002599631298866832375304297842092336887300062282338293742021788456262628026469443269357360563797846650108379273020011055259220149275465035330319942624944127821203144943058491892444592401663004413928088480297511161962708055697396522777690859782094928663131314603033000829148514868443054131995075896062162738423483866919692821270682850133467036844246872199123851842657524944002569508068708858077164912285272574511039940171622891346465541783884952306471343325910169988730398476004188212367138255967026409632667734681410838171447360751080652830883859318968116639683310191001096188016662839058543372900656519027437003940045695297333767021993148072703515283871190354629165996578384741187684995330929637882679201271402532591790980230316051237100234506669836607442887283733552737334079213165461010422178309155904773907303531129652125952460100487744825708035758762522277718932415778012019178540628323048424195036568828147162520153671292282776930158056557500626777692340816868625715894824701443665512203211486072234539810026244479320665325241484706737206687758200836204516279435033146355456663475241017869140723124008501888287451568009713759973099038100705915391369839578817981830575194144889949450808858079815747095522580512558548608586616630654345844460615392385386280737326364082664362599537140480740212104279166538986275530136398388717029391463031845754454819746128147143756476792173718084040100180031856224319168394522593113005654613496830788255753658988120292195750907486919785766559941924953726819325423438767080937636458598515568320035839513245178026281904269106823497932263932401361854669786886159856814618557478186235517301249038458300773307856270265580136351407140196097026037436005947862374299406745056668033227326789949303427869282283005441570732180743947779988872734325995649637367290176735525014111186330641294930461058069977542246219158770348373578298539798905060342599322390597412528044499653059941073122097271278336370816026724162932092382427620822935016901994978829599248856991649658570058746045502443830141735577782019246163958450382142199583611627671987846013104897601746837441617357647771670767690153252297282324414467024161864809325992185064672656970778342808318736424952903869740785554444130264358492053698257882424978576284317260673417811399269226325098538272822792433307633229746513443225553689782856185366058349083009857550950634382070354579383401087797035023241875284599423715936413519337012742311766066722179878830650921524458964092079197111230538854478959223140918115736978569614916740145359128872708202129473724604332207423577163276717189658990816364224413066028930622217726548722999828353320386250605464694281959960398975295241327079821253933268122307268889578655538312939412342743895618505718708487656439848279682339211303454352482879983306893698221420649140519418380509996471273859990188919828739723467242072857570441978579904582134295503428558930343610080228231873787229829061140238314096188140043116977970577086834532057910848704537470314099581021454634211160723504332539247149178419201824750072993529632287337482565918234386063997588423939161892388666999407298382822169532436527680692629405362349120839491440522611220482461943005635317389768491202940257773885947736618591328383759960206709619623061851968697688549823435077730593446570914414806503865456544935199033071007223977337599052687333907157817529100310862531325272945837091044613544000864055520429295734285176090776821072757635105247248711802004115132299984815995376355339068813199159980954782588938426709673299367816264970469713304014363881071156045783864277509974378747527325103390939674139647765574726015765307003269760740229270776121985813537972254765607185255219181406522392522912231430827158117952113773615382204099229035401981194660137688356434110998253911843459647659448177626060599990476263573370699741134513627468457147767858291573632794088703166569003631817224151040401380232986238280359464509082531498963280717424656861691726152635726853533118348370100825509784530846715808366370312755775864425254211462668297867701578384866623497228033792139034851327843046987754305833223353504794748386731874793212409950913087464042150535893130233031362665913811488728488402269677369280789717223888182003073470613113242943364095148079321215294707423391735514647177570237460232417004888329163061664253975847559766756451301723643956153976528722499125713286987659870308037472819705697733157888517228710465671126169579763779939862479154663342499653085866418015326484229306093617541204387156518609883250967831029786195627079546531809669019736352468367073024311205192652968830863188143920150397097539867131992130406272721264822807358098147494609968757732333748525391499219282231993150228707317330159697874647876071891899454959180916220232704946197708768010026738435850664210782265810180636638485599773156749281295635610001938704171734835887006160293286298337362385848484288070580036130165255581664870293206628290406780559816952577034628917762573037657881102221335420798348045326775100383793170916369097569414172953957585934971007534992837415669085981714485067518156479706572277889258367952743580923973262781220709866064131627781055688331746093032784678214780355493601061274726562507782296884768643061719734804301556978101296551434042942267805843867546296744054451970606363116548002625036544004622110823111635423865096393890955802007827182029882231006928695884370986354424012216444629229483253620290960183574993676592670321768152839319540669799255640701642720308685575890339833679371871348893994876687251617296041219878932420393040144506276303418460269759757440684055400865652616951869773438976983909378680274791910299952943225163691059402823400690263847510560530125207136307784883391892776053072454634881453779296038988642943609123636883886959371288512163032771528446761564788352967901950547327267814397302396077940760085178009590223080475855066738189934818359930822409832104053767785840596157967670027904704991751026830307981815774471874509231152212677407452106760806830469217173200936564073919464541861988690393612613538547349057685872208937996267907739349295859486548453539360352637147506999984069064875169977191802983090876706820845192871694006266305047491440936124986076795333330846573037825597250209407962779618376534772706429265314628415638594239018384496670311784764271460065098424052681967020468296163262692159136095689435673879993603525255536574680724767919935891834149223397645255853455334135920001743817802213658790505873053528267544448323363820682331416958320978145282303986677191851923294000009764253620336138615422515435873421223277976776638094302789950786854082328734842504288938827927093006737227654028309971680185812726550092024544486847374760429945692103723231649242193943830542511580485826880528770196074409596832557000352125908295024910044188413959430892381089790634503992652429188654372485317516970069266841318798098593721671657841327173339640838118823536978167644255486956437518597739171579297014048677449662312857925479433691836941447812733119264817172981745708690355107909591892213107929664963047155060469552885338671096271053954453443808509555850597057004432112292125475725802922868166072951175038472934705940736760452155897855381073298235767801551748556753444333180601490902259982978892260358921147679724820962939826479285255410247055117000445957552108206373594739335100281387657831618103916088839808987868822406478321331095677376027375011110173949843051921037270399048810686755056601953168889596820268430759322565698502480405095697790051306121477403961796273873152001697008407340612642537766110661742597590911740719338104075587748622829867410612558682385225271369848462131459996275521279231403101995318992591344284193975474426269913545538633891327320056968061443868547215822673861753898758612183915814516324351566762658212121758616572678685220371354234767096521612918126222063530617561173215400526612474442987379850107093646231760565266256837198903986892296061255656169865292273407780272087205713293344415004164260173371341774016048328077637859137361345645861658765314960359571269050814800706488936853523578892734554194436765768663237066840593155093172327388912646231291148131952459705362845063123068374142545817381801158758659538730674795445156670863850172793674639247815573585878165257673851821687785872111181525358125561508647942557927064703016003598915635899937810567426359117074742475873457743256065408764754176927276449350892700579666974244700215407056136684696505463755858519970780956986608319716927018349041390169867463900110298412736654463065923157197932402941039284871683861317200108617318675687026198847236777310626487973286384027349726835608865803628557543130136379224490785650043467941760913061089804172022570260512810458870370242154180838875230006676657599239135946702009018727691066178690906508945108696112398363583829473327121942187704860854918392860101369741366661594200775915606585928599803398514020703264386227940573650121606785375452336640031745853652747162723135235901717122093689452408269286983679403098393491543299978706842046938807454274630236317391838548862777998996885296724834512405392892928520819436846750614878387432447092714746513877956089999747398047284429755469800006213199731394688467695212530974584773456431220767108574989330812442323743360498025541926392816621585528483428547070773570702724993003585051188165212790470850198889836967617168112419516999920751852605985330294195190203090674585588934585851883296089435348957464106322160811279579114133108002317684237435144497195704443304129990510152810788504892599360704332169855079271508786341426574561933024303135483630606045372589645752340474309146204166220284656760437457754344272186686231673195100308207647632399478031927794759593823624498447494272441135041699445531763399907506860052470445734952259066805007702178213767941221960090431001076074983712106664872216531805163940596099813971186528842073062221844663147632301296355026641359361696839247407752825211960083954391805024066142130845384070047021139376815348612620948161934789733385129883408407542413235264037953970582706336781484554829419426363114791291434603933206763854406892683165881815342787130674861753812933824294129394580252862477143911117453178301114341851823088382280247698614679188835084930443864471282147185235136603200944649037513322713378567651900448478122665291079034218890838845463256550712697427418913656558750570456593602489579351944127445109002924194263549583440334348278651219596300836483938161543453507849483773670142045839087680648772148123005748208434218782368743623073394824034734442915837450384131638145729792398650505493302113817323132732625797671981076738880273892192048302037048695772570245727097793526156329704787427618675756926270675651034552424720095831544743995213516134484243761318186139268375754029632824924853083678377832370955053299716890937721071538249423332723573595888369859847589438784064927549464114011582839894926585036584499526175132990566050609878090047407825289975495633111391651875035991682416338750511793355024074890877619191398469306090433215913887327052790246140911814810013226144998384345389622223224342887125057482822237085970443836607120723930991116790658351000853456132812984110823724909848767756155616632408987501462263555516135633615127786892997121453580295452358146547384465096439855905746401518678189428494989158992468008673478368086627662645812961373842899850525107412345936299985909148176625651808874333136699404572266379195868162395823651704991554164476585856543405327191524466853943744723653686201142075387765655835951098630215041070185081887407186083322224237999499719763399272894699745139673271568940981444795685135904551841881723331690977034836836428038032618977264818808834933899074852215730212557411140726668451007343869429667898501241225241936831943994245286953086336658549604026723779563973269767121658673887825693771762341195380179325492031970436309500810216131589596797288369934088735315349721826101822485614601864441577940888252794169472147136990905731334201270912168774859085458788869898170595696311219417150635479187835823657599352307425307211623162725776048726083723404421033825185198789882772786564737328705358647849161362534747688995135132478379104542196353396362546581307285027209341785914534445696077519610464469036567694781304248472058030723238774159087225368122571116392271628757283925267051869852244241768108132486661614437142465329519872775898058980159549447629542301135689683626007155028376795113033891647376484755635906136989462009476528944523083374377207519849002847977671872319975661279657869837193758508114373487038211102309005857607221736965441165567593151709009757570027589180536381857192240114053730096067684364108531708768963701875211659426332875255345729988809086773915267829744570457222445942923821722526312880735177822054786100422449893822861345980397072585639906338617106297310242150511767230393372716331517716742658924537630278634120555271974649586258602444093730402931965843639781933650514007932376666160927364860496050416965801701807574088433375525928603523606883777521232625362051976008440880332350621642236555087146701563801221478316546962075491647589345649280949544094144518948826618297579308544492104482823175504582211275773148459767818379409819580701964317366753121015286380424270361648144691077155823635068011487175433928258610591482550948179383547729348517829260612877110533848765382339067571855272945126477008740141132315515381800106211404283026031667441244424326966363946204638728595575792246575910214972876482541569540660119264162855321333926831587867976389305016562865310618759132692976587209467501673030476581440454217645008074982974858914899009103605941908996301361167261697696738994105524164824595206900061898242995417104515925736531566609677598890635471111233937075492592087639532304003149126073866919451569312931625746808596596346846702626391165950345315589662618903239921416812845237364520809890563200394483398966737087119561556909155673295580176652654798734971829312974727448696889838203447989104903003657722801909067765488815851998667785909009919758814014243892683494555305185096591493354081386527565223984376225060778651026460019915328511462910222890133717441161028511160046869824033145163684833762065588166326417665333128929089230353779191213315187711939310384309351306949069268122397665261609465175435790873898321835802359081301947909775967037470557945707665597163096109136322232550017046581434841659599497587291583532006893255225784923124041982249556650595024546113760026411883157694885371166073752152183029440046357858500602123917888418839260875140988860062348163382264648840123200565839187107355520139340823673562078480668198014137873623266261557883274747794126347507667688369446167977277639982136565283464912824856790579252503564291002029373601901090776919797594089452738196433453628410510407068006889004233439972374190005880146943607291198797628292024183434276550525063459197855567931993272980205512571517703392103546496391592992383701158185273667650364602257210211425297062391669555192478481672031591262734153698860793073573435568068498970211926635784879796248830650120967059833685295838749396268675154522537576006294040785235324405975177754849303744308200346829375309348218472573958859289351136951756604839168412249566502093941465055391969987119129781343176222486889389416646062311171533151010167525953959976126157971978679258176766578583584937191693237609961379156556650233210841819948471574194253502998495868137726609067492269388728738254596171011104450325582808059613998135529092158146140468942770860382538214935870163032343294966055641811183168253009135402571997710021978425179780938426198565395978364615612659254113810108413317915403279000637090314277575433359582182233580102576695014965555634723270009920303283621395688927936521401705155140295388918418648596618076393897961511356385783828912118534040228316182978062624248756837510113716603946165604959549904267994556384823307700770350824084848417709141603826642254530535500112248551589837021606887263501299845520817247801388854021490556603776152324223758385630212225336717319878965303638375107691079143712536380450392482280564091724499881645747281193940582013745102402112163699466412847384812289365171269185700365703674972569483571174399032393858982694520333074306764036790348877392873609063241744474898322805465814885747823431371330818303457057537890406473736677362683167924724763199741035703059241539392770092427319672660642778801121870649536652759161624572238454517198331886994768456504476562337069942614501154655634286921518082678039135964557167661547813198369908561243906214835709897641585364770212278774128619110198883980379387325373938655180461220316060451306912989032224380882637240028939863495634040278165669448376482424417465382738980601289809667817344508466822992806198990922271177226300385259035276313077573247216402945070563627158703418982916853532358713829378400054704614830213339884474195409596761417866284403102568623738744476848364174505033628608757079199179365423104657833573495140862514843876942112568973747283322078599366466367704549388658969601598386694731085687096868746108218003198656459983048622456108166006475616097125033751926833362248065205822010125847102720338303886417694582969753522178357973917431321427178374786915128518012528982603608751652709176945168377347813231487515292895306465873101070377981371586742629611298225699546566424183187396526629194661012659283587428052160175905258067155710202539464250583660462307606785430647644303450145119238254701359918243951420121549511337526110194522151039215237097478291224566048299693161912347496242138711837988021612596002005578142840531953668764365996796569382569634171082244853345733001794924719964490734168971626579702551013516098507055673208645262166103018011335918246008796337721927799688927135726698894516409375863467694347446834807574864615425987369986238230010810761442149430078172811279794448145268147526522047845068961686579466395595923676295520159445746368739281532726463071084354997907137966660961510899907617523779121194887587706068619141432335111752950990605843376614634230970414052147820602473634962549653445081130352877689392949434432588445363343796297170780112406410471266467164624278239641045510174328869658910010434870901917640455565023327199769605366732424895356938409909692394586767157960144806100130675800657777205792350231594423011445896811133467195807331580865155582543758068776246085072264970894547194827561320229911888980871772249473076359606757369635066104479080338888496559828011314194644026120689494325959237662903736868597110595816433328667714901565520499342750263254274495490783992589886453705120426887941410902240360503582346479198267050277608706772734032247411019855398067413384115411917796390458593316982607342705777341149760374588246529726282970139159811126748952144473812714866772685119980314249537111464040886307312274042460844453873825236393909778385270973309575012100507760427743042441394901284695742675350389395854111889188085290160333528677031319205867904655960835255120767829020972225907675628375322120588558508175601740898455605589611743907388131680229231828480919811008054019471219220926305993134956649455314868407858321162866405154983949242658341463014747628834860013501172690216316081645552647492079152952436292005805138266384825732425812252447306508240155045429785643712212662191431752257643239639215783602819513358817147521734964795607344245418946255978035922624867345866517560502849278345122705247058760665290422054643805757885451203731583467374995459018905880351962679018467074516933044877059585714425644464414926122184213878834603296548305293793221736477104316133713863181978122336173485117688969382256374103632756468139457812136005247927566076630611118714571792375049392610742706067638237312935999421589069291368052841739815133394260928929308285714585935581054460999526629530100668628563889155469723272693151122932913227709355066893428186922067967835574485369427116481414000444942274699690624300709695061666273727247686395771856094283661688082870156800468056866246979783124219297800588646701020155201595485377192797884606424560812488750846760966271678862546517632016876113450114172757500836279680203492385149488146682769770100759029940195709328210847396603450174083807316684283636290815083670990292626672416623566813731592072664283588507329504416211933645912918213586847001025743531218381963175369861989688336781020319056157452726609789357467672520240103915798248742440043122379334617116125030402354341397805253121025655356478324993506189964987287603598418830094108903207494621167346575079857620492782089146759779963199837281257397253181671860750109891000688801128405562623051946165521116207803550781056097271371863824633779869546392999009700681715029689026293752284289365520119882424549763514499743765785956078728729450813595153524234613554400455174736994519642906952742201370943842941146475068234987211199558633245054337704261234819975199515669124299068603687528727486300421516092249890620504286870268350068970990584462909493102769184007756494013580237768570682855915623225544187204704314179427241310505636392250267192870215290212795740144304891413291303763692349573475526846458330796120836859168483603795239356457464917665498725649593702897574108869205318312041745783483581532715236279435811553997689411316277793635010491173855564224333535796468924411113054543412992512486665597273911920418711060831424217441055785874854770593820760896163351754181294861431121306602282516254734356385328253251239953118674601680285056495130380398222601311871597475231952626272808004074470438195059496011028466417532960299881032498950164634404593272144672324362403678850189179737654744334811999723707860324751083684641872959435770352636380596881755701931679910781826700601100821576955966526809751785564231710724896549757545618129818713307306217305573985587151292179419320217152725695504619201840837205729129496595328337668816658135534620738411687853040959733687665804935116655206098540307056559384389296803973883897226208800127579762203576725748573887384834100210780695468962506862766969867504873859049516429502698456896051581670051424734930489839522164395119965519071327575898481241717955931638958709052426070086240727558333830734954567088782649636798039591343486107142635162909996659801268206886460049553647369619642147410554704210199622314064077367908512384964253663483404361969447359937134335839998933897059600533150645225035015426014862794810139912865873980026070218991235789234937526508573020095306001696655520557044946875407187206936484593584435075801153135798392961815337910044077420775971911880060595573081558613438230552053570374960338365575040012199812292289335968080983139826480476894631323128376975496407953681371254459070379383223236552587314842693260757479846427602655750312097049366831026423979962134800111763741712584431720005598968914815698447514325259905923768211389586287601820929981826024083050360432642554944535466131698286765404127222151723420553272965675769058632586200129774678867277859006670807450779546670047071777132439980407340777306810507556370186968679572231064411458738823687182774230221705990975354268866787044636656141745367677783526657361824954613565698145263741552069429708395105661335846951104266195754384426087204924823550712775238659096549443955701412729674002883199580562769972410303244752670533468801201756631940764417412259511889539041860287844278433249714231722354164806941323764534349573800408424959835022875377652107919508812463111049148290821155895189702519660275778395861608947268508386149685841674864309804861513790306584380189766939544131433306328260753913163163349101589529215128802429352747048953373149085756716980179933935572048056626394681640691911392879283995014406258653972986603204629334320836739366405959953873356015836996005173215006884543341868099797971822307212990596740016219812589307076613705531192030362696138925176767687394304927775082138047959195871051770897290482621275080908842417987689846851623080199285246442051444660532875137259745781677855232827804148027890278062852482813590958629232334439254982577669520644446085885958401798985736954646255796431703653047559565077935024872612802288228831836211154791275019466726156999678412268504959676500047022931960620667664082445575503043488553202019541589945008498911954719577717202764810363474877387866950299024145826643144402149559028367254040949871759016091696984429646842977108299994388469211825555880212899051390855070735031109882269313034245150391999670029729247737990313732145302999533926762752087143761257119141226595345543122166057191473025436473340909729186675154673049771340458084744068252637024423162129308990649217582562503473968135446314162826608853004219487621091454076161575654332220073232088698277246247463347538483674102227427838988625055585517349267196831520243427115962704168845001565745642134941275508962931953400214473670219859938335503609719439372846443756015016135103347467162822855514105983683554114643296253135041820301395033768026922879393347903175391890825633225617188558133527923608181957185816824997689365809291125762039033032050316566554004024954148880896958703770993746686442705414027542883252365192318459053532791683815600279948906721320107114528983802965239799672740072024745194245634741184047903340819110095500794197418145668789372731494148660125177717396564142069316482207161285084140288640150780764259988554843159993400679420882484389755251358643752323829593526828785991405558436529811244010192663502249751638550714045392061425063871724513557051453680306586820433741195537782289231688840349601182367722814748870488471095566017536478171169586758479918970858227977020825446033093094018188679338199799761257292917564963447609795455262903192919101551598194445250619479618299876481405315471343461290522565695862422266469577500239889004428925327759970392271298785755348722803899960274563251265745727832319337470601904788606335420955515730406325360491239179998381979785583002937140130159181318610152786218636140430826752398696825470469285146607371381549560928375102572832860810783055861991810530852042690043886511448521394319738349169920523841693443926752560116226505021075602555777200689697074060004882640512786767942947203046101444729495123561219237503719242506891977606850831295013887394649740350398572011490690859181888670853011072152737639671948201784199776050072977723112372027600798247307016872932940767515072377974822474250572564898224282002257066869255904522751606751876938044477601491794500787580568833084600918913722927129142681866672106839243671578614423706905770145414568855404483868279773044079992764779287767968124079913668382635984267022466369573812031879300984611215740447450188548366696156301898243127116272572137917051494656813557206886050497154310440400297558201142920743547149941798955422570682113377297475729809146014718485325265623831657149033925374953055193033262532728085241288586121312387683646735115907523666973527541607843764141338911485364038329247280807775022780517723708500658227720015799714214068711564886849334415638084342677968864623985371204793928998696978207061001705551005311443715930365090043442077174823262066912632536522847310564881308791727809439292645461326909396891107223998531148416744372942716036503294825659422850546035737101818966622072740175497551851049899921563248693335125702141478526705452726314184308185292827144506816309308976807316231721536666676974183012864260333649775708950860317072874675616815069702564869747709308258683471779362820100707694885219794068626650533771886472715247412082109576131733823843970096826367370532190512597687136460339874593411847623617821857650927121693888000675485803436250400690518833731973243586461504123579215210152603833047746000616155935383650878090204348480648677053833477423660526471087518239205206617305145634414348485966362054274911735468478628773150288604125868072888802390675641963178420586452058320113024324982504533790828535606650268489602540445747605158788720601836572556614519766791248762881136995439981368367066819073165507236166048597794960110369456261412984839739043299751830467863712172289545927044907962810032437194594209848139676664459516696807821204052810187140439375448452913976051234472328884879982292183121678204400697409795763249928125961004631988258053821997787777895333368421559917904612161766249649255397736104597996508488377648402204163942726731940612487249700421866191069193815670885008736170017634520583205522134752264401744478563495252973580067660686854782354264966403601300478284879035594346663138061998851232847201561974610766560463734349853505958939467063575886980066062400089765115362730030035750329077986449851696523903677236070497328627107482222630068652254374002513897128481129752691340019862676848759476826498323127059122963339767046533936897310245505561824407755430101641428075302120856385183622171036383341635916251690219173606796470759185735143890911401361515665773378074107356748728552199265382234511568294239790410832490500236980959417121344327362141413284385851622346412394264539251072369115363575117875392923401206112435443251493544887434307062771567283735175649235252209566372273360719097807369964405054084731122571648585350318607111792380286549340045504025971471049383128495478910340052818214378689215602813383722799810781338870479285079886770097457105188365594607617508423722066499662811431491841615202261243661398247034502853459425369166666999446953202497032339292657085944412795983242615062653427890925429293620534341540144103469693760606402073810663586469434573188295864227090609017991724618532626822550288619650159585780851425760736311985710715772262836793588797176949485298647065437267772681364151679599911073975020116210622388446178260099962341628155194732208970570459154709038842355709453907319811288374349432025513979198801006690116978605681347367203076233868414660576427899258530295008393177823066374355738849963837877220655771143254266370431413840458982833762414056083150812907233906612662931922718594184662277169107424515499110791815758342224960134718366247843486838332601235924052511105081155905199506528891921272589717255272489653909613234701350172721231138517754567937391189291084786874196526971126090334544303729917579574110961961850001876308477214195679840766297238731558038463687438176393058130266946422271973305717388769295833080989735003749072171417454517961907775899652249404339876472589248197723834882413463667090413196046951440930629970036443617254539785787518809689816619983200078636954746711012146097362183142623061131041478543786000289991033277941973774712490677252370247236644439398064620945179618564591468707902578021123543161740958232964528397725976793289891259959665666239519584419580955793210233513621669511460603961581861690071697366831128126007557889001386805047135535685167608206543487315273238917441767589626360158904685241920931045101763999351832787742484312070891995767350624338857211715472927123546327120232706133577911804831147948920497765917265724296604882990827828196984952845413731929743734403394028597536590817817656318620551241999825379217774250883750445986863145747180827449685531240017655465986101059892604449126142424781529079781701779219175669231028833010681066035063275563420932639481408397024374300465252742068438157852619290049250822383610022910783210528570166230419168040878049369962354834608138979777843360468296162990137603665020459329680146444495871636126299700242067374092393473196888763819756394544124275457309188398486721135116407311535484123022053099128063942643816468831000545027514494325507774612979069566010260454447725868785839959576871257980877275635284020037706144806173906082785838870094083465403338476931755989681900245858172635698823759716001300702266984899393297733497045791333826382324030332752920122524938265388871928137050598764047655591792822556269301438460898609254845385254930719152846613638793034773418963650722619262429508172513497376461506705507405087471222630199463445209205659613253127354469925732413729343698663229644333514205446231531997292847788983988035440153564606627625041712061679875571079094909966796660789158880344593647617491620358555022515760284173203550301463875822494667532612407366494913291232272442833022926712957996464511395419595220526624574416883370361384357005071546821978355752814312971728461039039733121355060734643662120128658427966978630215897416462925239722836450671351306531697092420388196225371584434504119365036981230464990448473774200698157242756202635207022058862243499009027550351431832756873055324868270036425325346434982322744050920124684795335473423606179721685776727846332268120876660003767581960607263907978043178185834059472888584329947216898006405233767446548500831160612765931016701170398435353524701505269880599037445578164381635768047484536367243260664176645552616379677508075195043500386406622574521905678789978488829190161420758998746388283299664189868499795648855079173411629321329164134990571829211946286852809794291350406211934226341160536859242063290529201686166382873927865031975043884954974020089404151883686552758076790268754385606259040127709232174185672493980408693642570315247943260774311764851439334847786226880093496240050779681887978033125730058587498476169254441720243420761434353910892301710157736667163711435711505782281125436848895832053669108268917333288342783543639832106910168221075105750663736855760436578710028668688682714702602186404873984151087165176676498304989167803225842801938465723837176367482351061415562892283524711907687630293574603675542819996048002361618452257428659980622173429178314715434983735163820554084193009282181378633455986924240582870313571014457867283108092308793157035888933213969863095172389806962286311136972858097423648347110928917330923624634614153341537517477784450983150406707236901004283194104977311560116801732237900909622408678992723056733314494521369950735625230664440696512431416370394701981669319928426098417686524796558407342725334288434158576440563174081751232857875930666050641459992668981478538805173507180294480295850782039245079550060401538303762993076192977591845286071209380743584559893391568358730934082745255992261629748158955018058129857816130482523972187396779548907151812319805765026872559749967421616300044470064401431255120829815885836960653641498921788466995226775186605341566128991517959247261953961978759929618487609968160570824229606111521889526401537045986239212091122993730743778073460336252461124350196676530349967961826364425556223544696261994289243298719563166695918179870269786392911492727347259326133144071710061497107809256958080520743043362622540221064754033400021382623730871625815318341121955386273223555200272114522569807389187412864041749876093648634113419458695491813519930728157509146958533901284852229626141389382614536853266340800226759168465730297829931329694022687189237809115959235284329958985986451413798117623199181397370576956052810486634060993336450700432122325691641846507351740926344604389549228627729398338442584932876622193282907665708148027157194618220529638736961933198230008183634151316821536892565009146526241465296614208354259670592371245377480361349796046306421464728581715034508755440634386649669950222405185157969072595469166824219277035345034155962454517004740784268958866767111847819809332125358834787775719480416709848480342160298457289387559896188193643990520685804703426925293569329571291443351347594936604035717946332361358689286589674928963185761809535531202211932429306072732585007332317362346959472066877704317397788019423314368141945986974774009031822880723787067637077557162398977379811500471457492678703705697166311501753184169730069039684656059456802478347262667780063431430536473813877050937070460247184398706910012650138007503562634131017025351765396952991813158862752286836487161074418807312097810579043125064165076881773528666418445893439090445968384810653345398831681756461954736633546041469086558522019440075293762885680528190395764471213220977963916918644484655588501487630917988591209980948293639031209892988018370094592776096269542657438269973685841230975309893331518433945699475074018488167019853543865210971357205021122265697113436432966646782193315745417721719392850166083786110852496557731093457406902562678096118351568574249818174412025325078874828146732382982444840745254904216565628658295256535033016189067478523482944375110426841396242420697359092077539155477289794635403779628851165948582420075029973682002518273247957521314875680490609506164487894325785558481702869044368440425206183621606935010122739068805704651615705175004901069631343431933240520336054304984445996545851269598898048002589221979725192011572038834029811444655426154545709653468997637352350499076715647834737215691413352101157047809370138092999797388007964863121627553148661272839855566040333495983550167253032904841411354240224262437936738480177684304698025102422645570035328728361975470497118231627689478479753206995399650468698960496657772203654015866885225935016050658912560373455888825551995489117705694734901824758868001176348875052856568877449930233952884802922321207247645913094972012962753217114098117518793755383603911229294461847025634136862518476592212474800537209029775174475974438263963771356174956274165575631672218447011759432595116497347261136938189061683539180876910003658853142334662798792669945612675061171898201194056896675942517780950650495179617019409680747468149443510427247429414371434637744588235493530587498247059631948431837283061824071401133862619172249443297613276951802787452609737464037785709272698273043224818148098735089550843954018139701346411537969366624761967191140096298895176416432632725572632200990436538132159557330965428210496070956133015141397123776177823347108142518524240798873251128142806102403301235842613144182608351246444772845766889702139520111104108850181373338894604188127661834642780748857207226390373447807885023936519936652883055467861585963019164913807635995614975547550662879423491853250645998587422757508413991880779824585250783433416045530761073958049250414831950779231143612943666063585492475397921966219915270715463625941128531550769184371696654373356592547391453206395875519914548926970585539627461321429921994499361729532163436920859985438243502372013947430395819577668749554034135284788015947819829311565637201097625258129819294469779464757501718544912186483356266431247738500047707787414538903896978742669495160766781984816852155708803426088822604468931675132505737232852168459450192896409878108939084602836250369933318240194470206657586313906882700845742195061158229543579248728334213911164472184437159973259802017653124056231477078021525041341372328420542707884738872803162193513654365326011081870986595546722518083035261272399908026332911071716758145130756150293278044354649631541039559139652119594106941418387834237263664717682039180302464638114299256683432441065291741899902542698768629141811400664455029235530526087314147395907935581289575828935390834998926598521825156264513756907966885907012160434887748339638805200630126446284092086770559831712890600798873026468144659470181057587282981478648694073320508305505439631540448530868054226264455119275939405589836340062078003148306715973944032827878551392975579474324265390712688599212211608947611767819263713492037352176474790500309976281508385843984991096814300364955718910864509688901938763309909556207335515741301691317503082189096053661815473900345925064489704668389749658167528165402847735406528479217545217901208233119660277219737389886121312397367060983459982813570320971907665288168807688154586700301283857160509226334492713223322305811598998315887176266827920757855456570139276395363007642750151687860692116523988962437433624193255754494494239478945972207564460686931123576704520428584584091007775957727956783727759165656166797509155657337390006700740104072296682686031538383248870899051154708275958790818063711276282571228603430899227940251581993577089578553065290642025603294158710521660189378317296684675610417226480541267564888527453439973850615274465538660214301273546414375808299220657852459208367367496211334650778070993693355921304458864331893320673592702406638906509686699352699425312141165523595867063650489267839870516063195789141725087979401063833548546521968766240665841513515899670456014257487646098078721915589151196749113202962002517802683469840838444829023208270203914160384773234071700134908401763880055147871734947429225480028152662687864050163100612574010591088807536454483451830133220317483409700089780065157339309841670047637486348797821657453753630862366453680295168492009744175541751644372812362388620672532359359897065457773892001539890473901212121530470722395941081225186648163169801358898400745471733550662275018185476504285744706058240488306478540801360388149094719585551342129861090173928434983894783361292297863507110328040355214418619808091973839987709420436912563115980963014262951014207159949800064105824362335438649808048739030929549871000713126068771015971071277111370711878385210718078129647554849436114334633908271414210480116640385641162587324292104685211830009469229665976312195420363971240862816364629115520669401285252560865162429266298342162657819235742186430083944255741624969703440460518128238508536773840581273385544171594558692473346583997370800769917407689199773044566518787260557024269010406035316307047488146157086658422242121177451765617283561658267506212948175449476884352520919166697863231992413047804484130486247328236296785287551852849719535734939296397780329279291411883656425475018700044400431847937386321341510750499516428959584251385204889808992073030686217186225595716013979197614626156857429651434474290456716181345214034464948863127736171013674411432815434551677155891994423520032310818180258064233937594321580297399190838184444470530328088549272265099365813506651640267668215603324569670697752562962839374899502911263739989667247196198459079327101574249885067678629683541418192583914055468314791967363160953818735869811045038687545597210072971725767020261468536694913952665888635445092041657890319658013930045446141090396335055969674740828319609109939001861443255854257214852092230048032389989481928607647527455319437491460726229923782937223547651630115699118926381817357032288555931744778580354493880295597198751441342353320401413881512748553759234370240646868702706484219005778979782874708701829463287666104070298891122462668011573403868065330364854910805958671658299841671088916025658949183204582500326755578558610632280275483322680318731500175085394627419907409775966893827424802408880561394174645106666603072728725311340143917155183455125147789087601525411573112444178192894019893449318150798855185159810542894695838477919041478983630941241916079772989892310266962387184864282000975705835935666574422767919928471429106242113789905251100314019044728536013627417699322893711248207024462756982648327173601117605865565513388107413712744517026637186030524052176810639699132437518637126887724707243897084365237692821658828699351085787110250765448556240368417170195835172413512903854554597231346141108524184764775926771312385402882916063363842527034366517189228006764404129807125136957422418863753215230031465358347592426721288068636535074603130070465969514139860925591422012977717274265364965653019419111511679398522840647913792309253537739553406616433269664100251478595828234139412722754766485868280482557887620182506652139387681269119466961248104175491715317554844894762468294408126653760809120761358719151332522163646335916407462474894699718472200010231345432063174127193906060934130563754879762902243193816820362863580565798055371017419188197509726890010634766653820273097333687931134559063913669954703478647357110157834241363070269318498270218909882494882170450483904175394880988395467943252402571046829270578555453310314061916123272767755859969313860611531521314586138139455185377792074932396050128665096634549057326635648053599327850526588423773141343006415707928509760842884054040100834304938324374635317508464579602809564903914560015238770022671132683085931943727133739203079313186673310796806451350825642357929048774856376631467598609986547291056866433811491602730613621119535714354471094237958275387376000611993268947059739275505213633992506405474422768221961067489539188176920227011645437561906745308162250913784640753816257181954552270623060718540833832826804380813545749449194367986651062976885231613508045727127124441371982357876664803606957818754855899545428550044954518987038768826513505049633026495175505918792672807179412069784332499444499202133238076566395596026771277170692118913267532174374287676613110470470055967545624963993918755413482357949240062668072041290961264768294022198766372033955996116812424237292579869974376232767450739819977117786041037729838323784319164737362051349735674445677303814395534700382424765802937840170170988244511948115644632328223736375584764607761086883824644764896163319209305317796617199142356533786489292017108306547954798242564514064478746045732817861119377704941258836978399778974101394825206765886635997500239709059668883913552763546124123481136216793654546205712869695820364097835268371797055260912916786782090489139291319600504584635849198479158775661464524796889246908286831702357973595629482084253562046192656456047405988473789628789353355104293552219759053626168390224673806894441238166951664992746678833596936068593246846131287304205569899153729689395650275778945736913694079426713881540041950403941349841340756299930560156331197234453630263147582243052966704850742931632561699472208782085462220511982699793733056214656869459583959284590686664640905649681383564043463251155866080786566554284931176358258363952493282466076406827608837952462410554593218736573189969762823172145475041822919543371038961577690738176343238979298459728275487403482075710430330916684294462634477529204324656425029801457883551160599376267730902002247230958848423905833373337905688692037853581986940199236495870802978204050289011381374643044760037652228428288469631929485527517948965843817328543399275357383218523037755569134787313819398157028913941065114930711202423100691924081381441360365182306191363592825689099468072076473812031867032249404557782128918770413305229067125565574183207061571430408973033770979035937857577000045280885981565950150275294103729371362447027116432484626659417655399305409771728159751166113360866629774214655772784327287136865420851045630974054468991926085042705456729343110515255054798894276197095897847880949806074923017025522220803100185314090764677111284958291108550184995257701030725090839608499288976744698663588561541900479903290296477909439613537237366957929747427155270037072737215954103242634330982140976313116939000958955751383665015640827742451157709016102438924010465242131021862462164548936812173057707794750338516078698956003337735827986961436321585298110925602826697133025419681955608932331435441697339930738755994052825955968969992746598277806383496068448607996602398368260151871087878096393101576066656388768588295159514185056172027845752256381556979802597511235701814616098508819607996248263430112451106508143742214215629212644924481826622422565474125552762181880047479013119238820471864625716626859853380209607956031293933926680770074265990374605981203735016487335943155596885387328410520130417940322817066896801445321477471351083532658144049528368937386387654369801931575930191039681749612376880032395196765211889649073628269334203665212525923009502850843569445132379359107170442377018121588322889484627099264989752866208644210786950742639947307551287774054683203067440971744593656719121070110474749960131274633516097430182735220623161658122721669888814694262559523920760602842082838707550671643628767199897492621090132112764761163477504759634663774343522628818766269061940713970761993850312142465180453017983880639924331440263492505504467808699209201774934697624927051159354657362317576949283579287229489497286147185603497474759976797504839544561068518016826897704303152670726019902003148427896040080583028509253258610784262788490537948657864224519442903349952059047741499492872946759876950650796325440015908353203726073910651826011103806126716293692581668184568009271562479646693281102749384694448753023524807667481207416483454595171075548496513224520506543803610860017510306137305201626137732176273822601958062318194759557773030947714690151848827640157744736653059129947955992151513319704828854626376390158094116732149809542028580757946855702018995050924792747673154692228342261833880452211569203488957044289448976731748119297216968834421935794183887270375291929852225218262582091705617169826993258722119247928798560656809140804036533616344559357261312891009655419025776274412193117773218145873091815265496906389514265209813709148467689710826822062216512985572970766708759799168634272066505040838095443136721166138751715017833668301406505757554902560281260864719239792841933891530887019074731975346002928842364326489595583822852567868097711492371968200334201892787903009899440707129220726622174637790267729889317886945967704216608912610191093538625844645540486598119928529071294301079509133231977004725128939516364443527297540844681988528363861715760798789662704536692142779645890787206339614058422324357466238521759473571255410782249112061800051115103706921268699506360575976016304441786261100330973601227979270201610063559916811546630261060509391340602151414912426846175368001542670187815957734871256968095999032917676102274512740039939734263971307355677153619052059545485910013467740982416587411417366085713507614086205682720455378468848108803335966541713991546534353280831898076572926451533825190815227498162623174769805584723820035255654108822154970740719341094234242911489955817828197711764669265671750206336102829195922482933799658166496162244715656551669879103287826707734458065332077758258433645539021157050815062497510529159110416867757861353436354635808334264089098264744492731518426730384160943801361499533954767858059709517006723050275756858546757248558899077899582009188339747275168032325598593215216894409235778844581549754701236734569490327892063783665611067007987466363252198079548927939803647560167064431863760886449882738150216316057700736125360315943947175534852691505784729918004436872370715256527971945261493586529290688634159243547488243514963826678506425193811603602919643920015266349155806991075862237142517579232744026243024329064309459803160875887302336283996245884591434438648948653790439387346708154886992173445056071260360058280209511727450715004745734638558906280587306845054377296724316154951020872935394625153307765014306235045096899831398121099774877203839466635476441760810076869794055798301959092290874384639460869811844263858642328889748864379548003559990013979996883098666485213733958045584876589798316451130565471718413885036629769733998367301157860343690865444366185918224972001949296485880353141718377694733419760378776905144425968789469565896639804542194515801877107027040383733090082876270270758749985951784040201950927201643219016743876587676391856022002915537096115589670496612466767979984791075453463309793936257277220073702883684652124299248544018366315750184936418640733781570164998511813204544677273336866707181331292726884136630512561329511425182998697775751411227456775728291019133749377433562252655003049997537725966443355701077554807598027240027038098333139810789318580636238205524735316029700495354609526157268926419730316230149420993432342649958603969561654087080070006881563905822183672698043149602759915746680476500370533872281618444285598734199557913944448101836437611403772762537994965894704494673925353759358038799286454108611629167451595344002890277579184238709465610114043507229690405261835495507278751394096559646661912322678222834540901950852997708820119805826085168078449981759493513301178994835157928822314360751016197848245667775015440841606825897621459076518917851485931434960804267011374205228310248441259227150351309682406071921043546144133520656850396536060642623743959332556450923753937341455480391303223657645064142830815399392403098583067415924495063721529510967882053008180113755421186659641596774546325322367123938070424745217881952532085336255992882046156630036171529008016331059650258511667705342287242056908822835326522919481595027566029294022598653443785617970441026548865041732952919225224169616801897275049020220002529363074197584414784598014702941954136678773412533223098120858875734369057620108186929329598814929329020010502750007027645963377245449580832167414278911023429927407278103803849180383982261675400704818744925851701564571766593131651526204091425980577834484189436816473362066603433848730186966691256611675979434965279603875448373968250201197837438365451303669299663497355323667459507858844745680259822162762523989897995150979371350469930660382780437908430227716845832340391516918064377674033570687078305902348093044056778044303990339633718043945450159427626687301582335020982841805941574122643297441300595658838786223618379225472987648785349262877393694426588637953208841606250809829954962355325234292952672532527246642919894059156970220264232959945340744580657480356849011829680883957836980962910404815219027117568805513143596142566039961263012231744147844052435999511587848625682216493278568428819771385764668283061682132768424850304947315259614009816262685534569471441948903826452882115233713659365961327523341074730276718715690340802249760256342335978202235220842968484448570505008945358407799855907361090139894113278070875008514330227410863316796737816294995392942826833282169540631626852042596520168633758995122517926005954376003402590929470273890372044335598265393227933253215190375193119250883885954018701958509292326293270116196972379004041082862328803146609921537526646129844605898448560517363443187014999902408487457739025742901474062684745637735016232721731704918835450688486769439142175182543516574772818851613951298966276677108734756956794689647998671889339139220935473961638355500297117673173839050948853596516915304709704452481428847073156365742533065455900457585078968639149782284685052416342028296298523192996963518787836835136512772588924260029499522739732789670465238293125125206239339372440052322827104352762759246561915640341646021870036843071787571042603502156673768611195561997124689713187136330526237955872840137029879778427781505098235941550588192963748214811812659458504308649509932433456527931983102485094343967789147283220884977233080856213955279229179656060795606784157877873973670045841241117525224155067405847116071044391579085315071284255956540442494904061481360875090934699174583445404840905285117579300823181546692660832182123417689286328082084827184755144945402121216427496671728070190060040402245739902733785374123305365634069569930335002763690160893033307797976926098381384907990897296322563079347754191997827840237316101291395849800943024131263472126680070291090429170140489363329494709536783824103692596734960390210659120274257808572083110423503069827769161274505727614466294244636618516597401750463367458240459480191833461739836856557149807865517025070551843032474744667480549445440910994746192126850367743014645509943381811206241764745575158399550983649254049437838840049342652317247263380924122322383956483137722503449839993126617891944575818320594951421564820864759674669506555748698216044691427571545530331409738214655282807109559317480871560843391968516218771839660787548727898740638928042565913513714417383664228472262716156754524754889839226560581498678892515211565071593364688837383717520059381428446883042163772711649592065142550796101465148655976919379623026395132598357695401808216313343465715123525763200919638537750710965990960562787821833316627715177830903550347546553447797467149180990123218096390508474165594242028421467702849586208718618040950794318295796700996003963164771505511900287876831135081236454803933763757721687727728978774286558013361240889473312409636833905473478835244912656045381485789059674293409019275094983455779907846295680791611008160382892997961629738990229100031390006047082917332273474307754987843773098381688075223381487220404192357727840889366081473656451725664509378944563030725862688218922102677195183210572389997160886961157185761966136867266594617608794445784602439445975196712079115557380852547450207235055574206756311926551101849642427776654849045592323460354835555723406452100741925967109877226236635728979469604452919444050731495258803156365075570204259220616469675629041144776697991962003001287175196549618254891477518923839520411800763417669333510147660401670240832227051949647722563545152907210234432699449779043586693330367554691787594179470806205249142622888241273862687272140609175218102969456685986831217493303750737031421859822104297872619993038959503936737866026421615412142777009436053426173357502586571222914197544252876920874080679490108749976258537300602059956369386637375746942234846142774088427497998541502038660682609522384995542312067684610075183954929470326544660148324664515889019877249469430328528105161788312860950083434354391943993071655005098810439735240880842724690067789110639525813064032743731542785424131267031441068024604455439518539711443099547612676682438236236776306388127381851860108884527984188871511948066730050468843974622726571362254601577824398305682610575744744915315143889129607773686301840032439476303066549095546215606666160639871971720249552874349341302827247153114263021847878782565329205602100659182245386562435352984567768400454200292838410179148984053274757772558629114005182716526965671619571953240117483655767954704056170296648777151125283590326594888595262415580552289772983675603180456176259908678067043578472342327108234451014611482611057877326358357579615300922840798715926608016311733082025563575636364758856589437657874733872527715864302584656032299758299831340502577500734606549774764508671377685393066210157840701947514812697181733124006849675034529835186770712846331062495628081312017080051982109755511512244682620001599308138404577692848819526333938084409548091305934935054262780526398815521130784734569327596836187901813037449252089321393528423775959333385716482785109903346495802170457455444203367843749594087317593710354383563620145367643336961626506571723202777830422431466556093159636570144864858492647116005905060750791440902728537670246837667071469938743053451051048513753513173023057900337110164097780666302657731567357432117018705885410597915689194900620338809675062184010955468176925769408016717577022188640749583843733180654982258944694307451078360765483023535846300530418516978962047027910844177098807192754280902180700911985147016096806404830903341920308889243245904561470369876980129418029623919543120879861343844669145009428401075902768586022517524671290827477357214831440875426794901452320228784515399336890333334982770780311724177716413498910031580832278585911775086858102140549397460732504013174356270737927444526284055755473947649728614385326789038682657829193181576540292374451723273702812756339677224762684678306455517139124729755229696010009585900082210416662555114994279061624096413937643755200801618753930489468934578638804578743382220068162121926396458987917530001240613483471800383996741915781118878618310207825989303293783960640154797398868956830121274140335193928403743854857243986072645180425684357352792338845939829717801323053224183507362419160538422203225706719292040322589164147197653183681553818982958911440367722146250486198859310697194006956391737792861942762008931671243809694750166693206250983634965043997415596260860843745607256611524965034971613268521382513972522561865905200943296995015940114840296829587468389856131552285862279774872293070777631992543551716078268384911095452414784726547685583542113365493785064154766958172619199175308418037111581733478084915419350550200157237980290623306936566179812840328261566735583092378723565299091190054786385243306291953596939811677140557387769342434570220080932646510964191352438831374965002610795288242266152157849777610168667429563640209276878073410074915452654693304920971579230833026846916082269913823088047459890731068979281790257629191932072173708820697401737563861825546903287879545968807731976438433730979616693584382237942289237839805282152512495494760716268603915514074118215576405660047563488935101001906995069526373711517324417086777760087465895715218477128601000615407517033798515786898650574493827791091033202649970443692113343760492435163238450575904836861160820523855794283596529836847814293639956626441621289492237346995175746043488328287303695126649311286351302852746256077264112427290428671146251768679009076279407883664102336388268147838377123289631091302570090154268799726331681935387809455734194919725371932949318349792520971237713467467580813301945103661433654432355249659220852556052879490967394690315930049672098151686094157892411263139451648563350477242264868529134406294935452539294969602173154966259586281165026104702673301783245341690729806201607392677386006400147958256528441800859365424900102377759998748285655883341932377370108830001442121294741143593287477861226236727226733245718122658738052249567503692521595273732495296374900216221947922640236649508554797297125200883414229119976970240529179648657133278918674964310615724041847868337646687014995510010826279177994852196791914524496037057965549418801881345533206934329522548779530210153617714984889103585734984670350845087579980326265156327713974294581110118953864439691652954546122644903118922115995673523358769886568448737449464681245255850111826021714182890256002562782639767183360181715878269788021088751488823517339592370874365073694246666875561130972834582014268176054964097695348733440919576754232010032151399129323269724358595340966105968672409906470306064364591835487711957573997294707865031584737277306089185066123712036346188009078166254529958511273617786646683388818936135789130887843989164996839472797467191374376894031131610281317790583233387874887378013793427044282102180064808389828691928431715644115474957735857312972904046905632368802059156286668350013606381774607645373908621503149034984841674250512317499567739788317059432637994675427189679965934917123099236041255946134754678335369160691407506643025863824326555257246983232309944183063817075331260494631170800963794567491482144923144075335567802307376629289978499935182058351379244225608392072049845756775803583026950270267656722125654032285354411848959090636627808969121494057002238657225188102881654110228237930224647678866137287076789316916768442336639868372452164054551553627041608549926423264934393447035199728470354591049623894830677152043171099124490867036572386286424410601492220892959638290586384737604109782146207682998036227545598166728372543180166971648235477283790469018194927671392596366500147011550982608137688703830852673041355948707767087793913110907003624376575346378386027521243878939919681365310840017222852454680600155457300442358142274354619546258260536032752041955185015040713894847231366138289638014281874771624611730052887024455219980962786185776984740857896298924557679328078954044789056540314602223593836105499834547918361204922431665868766405249060671565513679924121726383850895053864626371570796937919817275716781245214817534511473221454107958671732680664704424003758941317974136617894197592417721993322823919168681349769336710699768921322421329350334698954339246813171709448701304872179444643804009634924293864760621953531576481254698534527439383985559952083817885837498380149492517614748656010207735283549171709874978776645961915940999502563489219785180142574600082954966127326189143375503419147736328312640500800353805915291337344539725551733215144914016086614493064061668297650345300728028893169371385096051331380628064013948971248277136927624257450924802487249437053573813420589076698236285254732460053667569925276023755582977200195178416733109855388458513601114075761771678531754396975074966445485214842362388252582805631387955682277313134042666072818297543791648292928105158658738018883680980414512286643717480774045999454495186022497591309507360202740978248898581557922164799532607982653632441025403265425050982138555352605639699053912752189241335092455173289019670116580881723089826464061523449589383831788730854893944369784908692476058005045067049984098977285677959459100337900270086902738517965567553418051474010420363974869412762420939310214356584910529830752262044658239939380651463920215410569191190965553869796602376256743122939811731238864399192123567039104184156799900123172559962182811851000011310460895349991145427984275607738402689596081320652509415948614574091440467596925748683792479363223986078087434207194638490247580606733392913589765152580220008399155251262893014624885975749387958225090994372682050419936755612314798206008630733564766606658069586165131674342951061965119743480534882925623103346784245626073438494873852936532976931777883511453855302992863132776270844790174693416931097684106957516378982913042329726910873656012893086244895748785069196969147365368146594675013845750735706220121654459753974610248947259163317464920163783947807188693967328668672145191422987443187255825991729808152982346215924119517420508125263918439404650057336293304975110103062969395083181159038844648837666529037475767030242118881268391526019371828471828346560685930842211068231678041325985580825283319377635873047198875455181547119489216639946278671620373780632967266982983797058096536489524759910314428988208717619743313222252636086270210891697861995835607679669574241686928331138889115079581833518181406408399051476664048530029961278325767005882245436782872078888853530832811262629508232815315784107964107170417602189058801473773110222566473503628606745559033775542510331827687080069408729281297854254687147755218170506616339244556010584336085456005336941330091890632472419401262568231751029343201015630202639058012825944018814305241508747958906053278157495518796593604544800565232911269938408810452411438570239365829181205475776363263293073661715765641913472974651110277437629339606191418106521545294789768276722935776087383411724210625136819434626205838964728224631324052541117078863826349307914590028299831688190853173033268795756087282784436178448418187069015935988731821299387620321571269079567396004449567249888038318982312799401591228075064912692134482372373461117068051372214878988925218554747686818632220078774606337995499624149859270761009300625581719865147974974962256908081229698490802923488312059866622387777778222937718838874018117311711922479084702255588877880193880776358417907950330824323595188771876496114122378622767566073574738541445045178669493294379825437407569301774982524990497451279639340453641853328937444481528841310659978061962574452899235163113666387081271728737363576561231350016064625551647355423087745947202847553735643821106943124391770627635690425367063428227625270832328053035461300620963406040880812051364150462243180515639788450481414843840849599751650136311881210176393868050584652787139109473458219335835327683202791197690049459323858478971305792626421863418856784715077403076099095575575490520827704521241661487845111516860706472149868544656385402103990987952564434205778359330580933818550570776822549335777715192169098151536278074363471930807098349752736379372738319829755912295662308024873460547876721515982242943507035720112240293084882580997125595352816527150808645509564736466334733629554039788359251537513046892265274412957815386630352147764172674771542952230136797039368185283856632541479337938794261753891304322745627528940477912748639974345000232240691620948711102701440293527898950501327630258888543225461441819562990650622219864478385487482569642727195075637847708389363507141029701095562436323745043223142119354337663582299408875028148708689509792833069824295182914027407015039362826368852403803908288557037348674055078271900105868750499660925708417262301287896944034824698238639738389240732748427559775227869205661642406272538159467104275069313829405818095334017904340289762502412742824663985965381168477022013073839066261210267426402782610419907687038308311036320154387401993839486932882781540147747911783282964546489993901822050574095901793540872865341911682067607590381875356268430584214888723591283795046143065313023630617725750673590625644653957788580949201183721433669810599351807789712747729744288710568909842610917734870173126156489165547934918027338788428335859013317348465513369518031535870098868242990593026046943552930243051736528806335681911907862200822983376658777450493467845257023323652038105307817181836131121567873012051970027509732517564771180046190572407336563081139878604999956927572712523439596976334500479620259299799351980480806506043072842812437701926874911934859327457175142627849705495615915601476648143702015564105579097997794970607371426297187260719560459666964822222353115700724003447893613073166282537498175813675918357179815295105920835434703113421878958824126910720358058606200273818549797913089755248060658996818490228478492722876812425288483086070762958815003343068653630759376350368549324076809978653388977446872218575993486289728007865108098064179548150642293452831847760867070570435933134832609261895305330826755800885325496402320197826182215490957560833965927894955085563699640870337233887259837904195633783520863446875855920359202571954544537686548725991827628196931892539781318409242316399032151504656563113940306630851875458106259919619991876420609083913265133211608392954395903905736629323823988547304088652659815477342178190393834928097822085833473849901338333890929698213659055623819410507445323833076931184149541403313125666536909685654485809521385156600153500083589606426293282932407028799880827359609377237891794830050855130902495393549646113835515419227281318698557840135267225464555398816776581014408026028325768483223662853976623388306256745652903947172369731082776630976765128600304077084739638251021344235157050913676420809369116856515388130109022022131404517378349042990289593282823311747442938683671438938039114331770611140644075045029868442571919823152510669013290596009189916159793516576240750966372225681243156609545477679191155444715669102374436918087774010359005434927430857649658548055251849776108385052366824576439628658530538409673390373059993511916827142171624375916820922811439788606702058028259824308347335114721672139360525403940476093280443634454664906725484619901678990498139881930052109376790018679484120755498450668390678917896804470286683859044610906063708111026157818324889067541795321448528452572543781567785647245040492973228486576882359839645805018887883528321801905131333549820071903275115152972337964178695426590083423353194336448781420387444611667219043910265146564820626009051384665863513294974256087934460910085954220913041915053162429620829900682981551135017811502286735845210849843766092834491010312094666316357884238620094629601743030167679027302478560143552718814066444474702818039503918152108235338699886703913847536591299915502921659586855196359614538394379892233282832302121387580057158312274586905197673532837553860502121484773256472750579270858989253350913498286270423720314467079082114496246416058965745378047991149954410312075157350253319496534511309786681674292521734038155785188433922581827994843405293194948326760437591050461357664292638771017883244809324000074111162722618732355073715265612563886018003007158817451946811388701786423019012927835834533974287599074152648464613806718421302584501844110218458909741919856077740842862264507760154929093240266630932997731821365706455235045535363105730168925365810579631839708227008773536961955937901928031331751430361230446233903249027277128013070053355880097447973396739208166289497036707198889406030259388785440002486980062495191174408691510873420781607571037814261928161622883353512309684769220071048232464421456014820335060029037106157024595760201781787663650369945696421770810543033919996213852390391189659248278492414359726350690511424164385815125891192790575143754691642674631731564820242477950168862361681033890625314945748704103838185171993457755583645255128032867130172713569682666214263741492585350052125727918268462343546585624194574843112165754403817729715833169375517821403201501218720804653825358997703274206576581889353552708771562951120251200467899493071543916037985918867555398617962698370589277047372855888855054269031855940855424840893738976386851501636220586268769716563272958614590953380007541841984510304165994037828929108134749080840702690124380680502720886421089123577004363349457921404311256657624030773253697354787732368155959840349556508771987211810214565363342642339458792321114463033704739867816253860177832694075747321225374403092532778815576684055573103657705176710222660570599893697087896596119851482264614529373778239127583685341713141265349091703338112976078489248844924002835299017005935190342736471406191320246663255299794903554651437863963600013778176643046179587949962765213671855107180818544229738247893847833807660179757973044008624211415166829941120388342564278618641282738113221173161186167058685449871888985335597564214341699510624874940415977748762772939030971288705009433271979513548485032402258255284558895983992652371364092582212934348219849034772616063814675086155142979913973715533413814914134643404825984708291905439659491976415818882986263415785209190094704423773187623804953574574051890950573165589931076969863248398759704789718261882826744422324580514588499894290341430905713513643743508148668242601939574301633779321173627580276938645156518314693128235729188880800190410957017534360448821783748414633006374384227298322874571954898668115392407358278007231733997890179670108977051527826174393654782584786084566671801943124180432096259245004834331655741675673851549263201704680745069737103316168355181338455866009027971855642957149883152310734159884885998591367376487851783872890069470012684459999085681192276133423690761308972950993149327543131499986374144682992240265541372963585807654081899990011387931050391338997234485208552491464087230843900426378149569056075904217957163746131136115565555506813960110459111123701058893126166451350403646587412015439967050358647959586047317214632354183713481830872448341731517527703217308292908562287745198697958486182446919213406724256919920558943572584171923290007084036500839494358576024183944170619126644086315324262509416716214777873911137496505132657766565237403066912181795418881279853037249633460613473808758258625863611192697387079183867264574973848615915477014180757122170088116549619981921333691450141031299724447441032715643109725391993840350925020765336139130900104024231691550263516007297450297460130250012005243311214505597416319514468072481126524128071120549072281087732244092370443125357226761511098472394842548891425084871596040602061821598244809723925225670795207680123444710954313458356558322623110917389000631670546851301920324960670038642407696781612318204832710919055484092755292927298530426182540936328670582298825322259657533529384118109062067919281013318121282231107272155931906418948725941020070112635174382079892344640265298479824943850061516154538988793473008370969042578934202124599240145560289794543752480867455497041589494954059806836403654773069651157296889768970397575180882122102702276908911919171178331049055164655072643137942793416413578903130782662482369600271764656110253579600671713526703562623129928583293699011905085901213289593667420311731290447337268833148862052358705949447494305820645145496941904688703696435993886930347082817029744864366107249915456360642383105187618772985559418217985994986385158761272272016340227972104026826931645900791686172284458507072768130915035496741704087112365023247483482530506389406568368434256469663515588325323537196403294248882774768123622820770271373514580235462937679645424183776106198613749850479499445737139751909777221097080880152156708094160387497537728368836227256302261406097382706000305489650006383402446935951491045692919002320792106353278412735343397354208872396057710091064677326629247523540346747766269534897209484984124461739480854164982463669306967552436190186155096587643908252710799464245197277854469925941369587477241001786192628228916630067131673697833644931307947550415160428196223119960139813970681076568635767343245234418107029481516640354379717086322840283356714615922670017771222466205740012306084602061320085575547326605848355698550948442962868547885954290820520947900741171817201002714379052138158059633252254145123180703299432209285473121809639106154417501840392593310650342555865471875240478683580045930566354224723141596474278341967868008442919084241367708056991976568671099965355770023805073468511583094282785444506339672440959251061434929206289400603168428888417240496560566098819358378852982909580318339009906907536076052167309197636379715372928413432023056064172409741941943325917473076456999241699337183596856407052529888883296749225352063408587639320252533861168941890225546078154410480839935403522427102084382849364722164304405038446376010052572427566086464948745106166245830207021612880508857053199618871235956951822417448715126231886337116875059127086135542436985291141696734809150780684901395117933671474792284976309052799912714153721567334296483202181642787118733409766010544060403049237969619703117432015788428228545126186326683051078316623536371633958799748557316923509256620867494219573432857575963399148164111674437746426393766410566702739449108005192643044647022342242086522784429587290498878934304042607311858833546035020971210089056062632951070858494920935835859561799650459626835325073219483522805331604802208721944471519010208850693207745879063488638752519727318482858045305390993893973089303358678074496528586415311056195136958252102705104860374564732123492870635950770983005376666821831594478722701602555566884010463430270150641529434383082526426061747176412241675128726901556084011190753864039053608887162668209223113539747289068537513771256997107417225586691171637097599629625161477062539665156048459692999182936344916450351413230043376997326127343628999095749003160838934281360467012749091675329953431218705207729974200710797444703152470857398305845079122605181415690357180866702009118530684028172079909739216100869322914850211083108677651484059868486530613278560060234195314843755615317888582500749893364369189813791164949048860827077933110434091222041281896998727364960208572522855254841306507356018361819122270375638534691193070392015183643453478233427477569297564999047774737714818499953694242341423795123546555189090888648041104232268858839486535353903073958229545325677836758621131130543822865395257440886482034103288458758708340961237017301315609936711937801791541631216300536063662392947641414752743083079771368991008346650116542377230525454013672832189112618507128051466029517379901281818399441885668452939109033248849046645869393554779084514121085484260036701706087666505466192429144674291682241592382745270620864408633785732727678522275977164766057111370362215598048540247833920615662563707716603154726505914324230828372979888587413508696614869643371525367413046269999160059267432504195114813639349448925826753033258539084797764005649502605542510549874701689116619352363505119473492380036367993501675282904043321557810749225235646338421949633267439717148877881459721510962444504385509995527328152715423584485761063627540744255749889213927425568550351700445515929793568279836185289888231304637525833162647559349314856382336989296002127682996468852550267488762800159942616564229924602625126020133612316233511454697602894035768697360933721331330004908444144962344417554594088596578485158274332655906534200890892953245405024256402360018464940195794269910637971722906838635691950660637247096759888018753158975201746996149862388705996711404013344286619224980777019207777067998461921727962828144168903652748061900938754650622917316997771138295743098933063971328507595807884103855200745100871159186282139758522645744190514913113722488081911874677513972645646813854122616292904089427325779284260423082456683578408081805504219884460937808389198763592370634287868027528238824309761234630311196783240895658352914979710088607112050507408879221679998136874848256107394341693702117915263313887829264438021747928286624000405628229595692347582557458065186666094287491563325481291460500999956439083946833572585598017536104171842623659977769239479057896609820753970251185966067771138707504644290406022558076756282707670867733302550722489956248386158668269283405458407062114650792461727617673886555169166973829222075920878166670089657415688812073975444448627434517611136397553449033400649548193300227802728434599728694497754721420347394523518786838043987667263416452663702886981785502359511831401601773159958192160019631472416406032624521438971358980982021803134031617276349960300432608379604866695884837057941139247358538334663150484978671303968715677617072311807047705440494230671437827379288751267181240105240948116647448740100300262534230586532722796260562793482107121897379419895859850654658797965163993018427884934798544900987114886964011203698582788007480134861035661922442452221881817566121725245127091733710731945662379383397667150296028277135441242984585827985354709489090061560533678620200032538532611452754889403517752648547089432779958870919735689670431048557891563095666892571610762436864898183948076741017650162623122000016437701089880662620823613091214651920390732169359528225179716800923597960990428451615878806810905954815286235704369341447662422027803424272250257887082676237532641285401001400173464442788313958195214240333213616448120960234399529385463920213287538680753897995135979601895849006489341485313071047637402360790721183156310308083115661044623737871745156464620849834591975497347977321446002330706132972642012191313320549135857868842349243582604063319331114309954927243414406279576173558766673929382290116046232375446383917855842227733507668737558995707676001419080345128697318669890308919435448296880955059930931491427833203296094930691757917996988672413393053652139468312753563018790188957708056299432584124073586310675878392079182577767407328008010377660254432877874084564037915024613259034105387328439555471647616026918669856568021788674133816709746041361579772793648592623819244798124123337644898306746552315634630675859830965105571967927764973410920896797500301199515574598462980996615535088889835294012722286464736163383402208598863513424073832863221677744538270851397533630829371656135307521592041489745098142999048666005805090880018934143882660180398909883017128747916676777214627038945096828314958403286608134164665177113202169048463072965377006157520802267297538789426028065768276302951421022970071510491977239881695027047776334415423431831380182032152276313126237877450190193928598102386960593239828024407000642274945812791263428274842164231857430082142143314736145052846940092610061634806632386725030217521597383432449481704753927731543786725050726526977261700204899678532838395144312660754584239478152664132772939976539339708774651364644883391438437702841391932923621316172359167985979016500177473711348572148757863531416543302917449222929137144300382010561805188189423555216676991074719492985009533314989272195039769401692719466372384917735274984134478595811736379331947733652877150885011837039083030263631063191463740839548595417515410105548855286633286230174320051326680912544073065612586082181328300157048859653032393504445262004474590680697863684818523989604292695966910312581366005235598053769500935570604342350616462772842719618786963269822096987043081778970943469865506157171218999166613058883169342454043630298665583607447611132973827376841293047412100976185475634107294440401072866180792820224252105280940793293763210873991500233792530274516297145066953301387681311553275453138736798356547573699051319924210893826538931852565671749531382950950219072897733341375535683769790997816313327753568788560460607118339442635507576703506842658004925766820768727756920167177715082094796295990615972544369325773121307969092110178977474312517565634155780473537736558110065169092518489244799641373121499847330011647674191536312826044433184650731784939154041794671267451988838301154104636135947383745052809954790854998043782369995325104581777105127943205873119958223116324402478179310262063733050315962338687636369779762168223015931626754669165923778308021838396883491267012882535257157547632102990833404806032921998667150375315304981025581825262581061792216036319675788441520837691646611745226432922514304686986346673082222804568102999252448981396827254313719343287760086838148330802600895441999470125869573263390815351736697950437238550459224499215372941353398727100832749368854827667429525010068248174498078420661125937651013800361775641164377446730490644542890601182826584985401019932373227175278623786056932935292863328361766397335848530086089580916179845951041773910302552983863590259776839780639180384915163325123397915103587425014125742147801200759232987927609341854478643172063830472441485827213080463637524364253327664232635638463367090088272806545495679777167947558874773464426404618418964255026174500218617656470271255630139505445387210250745295340547457184547998314746602914392126667865903457610333569480052157331084011233236563885603403810603880254347129945225516924990004723057629674491783080185533747229467908782613261780908201781798657855175302216069377091300429800469176733943564639755465612491589541050596234124632073538883744137999336381062505359442752378289683159288442172232352038737845407385725885881372957805320415699229217030959755669944841195318960470185403211285847003854298003158444015035463923686787592895492443571599488747236430275694012359697332603167003191772984953038182314628514165425917864725793343305880940505587656410743025618335439381128465839438082680953963660408190540015402338538334383163445262575818767770136026671416047359207623990628634703630930223527088006997872652622886278478263196297882016982348628153165022256946722612480717090864703768308497793368563668349370729764135003617382176942082412477471322509548819427537634814635979186916043191267482794442218633605930166580797774947887626308921644486271062724998653852486028105773368187174872383786547074522071645218503523410988343117976289947424491323256734313804125507670865133059777358079604106224148957541393005290053087432050541229980681178936868658527053506594237221848808509710624580141765974154262009558112951104148996503137316959663515216118059263728939097659463292220194511287108280512947987910881909354615973439188406604151095901333357213622695436918667476015558612205181217691571512794334403693989885084203673905877698655800506802751200971005583503384336593785462528510417281742509681912865681689273809123636975445069795869805579113792805710345065191564047736871535561277288806602620630971923150965192742970317305197604900625660917104359651476411638081891870238329115232145028534230182515367603709493841587572916541030841283230474713439870646636910732250303832103711404712422490740621767289095296679266969220828061437326893536504720383516735160444759903574878933374309762790425516411193397835119296174505497596449864878270599832521717355802678210973694833632721298546955868046425740425941264595135285029391425077104999610850332122339132507732441812063378409722397133053825114835123998745007011311302738638239653553449748807812445912628319467398139422606686565640482441636162216397992045112514618017209636109548659569488001946416134441593073514402230290754677018487954687364764430420518702116313103588112689004780633094835141069912491767866731748632384296575543355532778669783134669451263204892306199498716895803820220903193136330161018626874958984735105641051004995666036619540277026206163079018114267043089109011726479954129269855312585211188262299450263769543595561085145399134086181082562271240946948831486856068607468614040405417642621497729591010007696356961500943554405906474530690664355181371374363898347732823125488404554759449881269975189915150525154235567296965148276131815188283434526233331316540993780966513979803208199436688962753281304656866099428535763443359175369186298652303007767380158982332899833880646563001738016241407821462273938424205771943036394077376281343545132556583913055143137780525386797698654789633260583098620494342071797262060905324259964221595094246911786106980797533110859263026710511738606260205636802107047775201192237353683817580728089229587132251637979395119485934872738333529691282053627707852826787990299314443375524046838787328339401491525717376308175160135897863253457252949219740489490305697369956231320121446434026620439251938153809889751432165781936620224870228125914716291856034597516769892927038220107529047215181163379436057332020442310300967656126667752358676335281428105698727975773786321740727589472208823399147398215553706172650539542005420654661808475161820245100329358488634401451466778788021558565260620906229887328228230548229989040622055046866580282682436076788060499794471140845736420284152650901568214856964233529266286316371201040906122219776653133811340822092939245118035395950224555034610347949694317345840668709778998578149240430290216997238867187709682374198125151178304004477769229779080827074219031932946070403671752234315435566360846772061796972269303415821088115208319284943409192914448718784721272708936493049706277204118055994391971777329392575339914078737715435353093281915633709207163708234713778239182457289085105534456449920483044909221650175824087746871595997396134201293465262309318042263193374398154116684715398693022155807335470635750134051817882408279314177539614154879155005334147092646685164087828609390197824676028185076469178993965287930653313969967565943128050768450777390836269014447904728294897343945586739800258011887813628913709956725443986377428866865501100174846940553026398996143589919276405089037883123908644869492396268388988059672285782412335171422376799928797358184705676305515692742153726264261550832781670340602531553920460302652363415490119043285913647249313366567701014734883879605581956462566703159949417251816270733885847765022609572875044713616241973796029801976328306866641763711794744271916382332772246173835172731598316508358650051048538854322544580712141276906824024849860901798519206894352872392049176682225868870749074652627953909988430314545670919912040010000157484892852059908184227785864966854148283576782710526264357971000693888951998283348614358757344555975092077004194588395236164492792760275608826277291797138385646123629662312332020954879791286167944111168051918235750802410703105103861169651829089286737394670243385482445936192985011293918342216439173939388401047569233793821379499443940566404362997693368585850352394067280720181240277634287676654359127677376898420177689491535658878220170739061464143178727840997793404340937743590306760011146641286080711349013082614861803827201717358485077365662663126135033783198289125250503066400313891256176006429486102139748303765710216405499339697487178882421683137015610432631787838432424935171889575318590851280753014014123088269996872575731752745893198510222658500826360901824320173023374846502035258326791301001539949395625871679388680325495647322222204289524705256592251775312207023352969200578994350479320275064063029660504616345356269357307517003351845375045177794181821109743734724568274012990184974904838595655864657511895686550104639649366322111676571737140050299559809426764516484195988298221607001581682511307025482475790186669911022111853890748777473590073872752124697159721805983513846841760521761152223861429793462222892384724764732657652333541650468223725351050668019751564072458581035865781514201858920186204749115920355338672364897998555014971358529914976623504774448196206996348605501388520592153783813536268235405459326462468435434924157144325119920412744988836497524895143256271248330164098570981524160350552336898661692859800116678835883736666656873434835076819764872946939194989130979061058158465705346508406673822571174863253731717477973563486295114382498172635109156113692136511872975594425404776576567693319153751758903192969294841893100991043780293490154262738474643361228866245605126334317950402414044659689987608231498378302618674429717708075430339490403233043819500023894040337149945651333154453490524255058990740491910110725196131110564277300483333644298428159284618475400445977211606089112833300049302293534563065694255883931286288774752794531760123247205006121753260549917845416233772771657163289575648447673898286888732265760702260933350845806661015417207804776990609562767418899784554339171448517253260460182454664734704195381450076810366510544075206451790073309407888692095189372697844429315973192943188555660552225306127748670417170970635353104162428443954163709883937011528372632445393023658829245217771170148066746341945193918843846124615954422416184187152880723780069262130784278430007040118682343393056773478502228505759391513321616514453080696013887945608174306781355145517942152602848743122296348183725709747396369046379720081067059495259906141733513089779344831067233622039518817476120398202103370997817538433528967685377558576994559612455347330884403984263073906067000772054615124100063694040699076076237618563267636866554747124487222317718142971599651751808945642160822283119199747727658661854488252197628353221003513938587032768843021535085301358011289073258950473421144996220232958472498141066740097309116628430128314273326288371840780743049445771442223350350822755474731081415180686764124167168475627924321174836262156499269053529986796826960430340815553773920843036822854315268645431371723051088500307304257494023584636292542388064168052103467712924569814516098114648060667540099682484047433372275411223680431704485323263400004948655459183666823410043104299067806574667287893282084713423562405005449416177156413198508381409094644777943652472084419267245738326167776281972741565305055313673197249839166861071991262852565502846810580632070512544089045973201903451900556085078503726640729516379392990459117997541548462999303263710159108767499077685657500748831466215094291068873523408203188480192836292707391739935419763316063199465570731422425808382596972572722893613630426903155724789835574247377964070281824666663804874157984673793246472591029674369192040444670814443236416321693478861548508670688732885335099315753933227253286691825563621300042621277091351857833187162764738951351318562690131005258761384706421179212799449633578914206398630006846465615403873782257055070388571670516119602412366712427861971470582465497971212678146850430065361594945497836091858949290222064695661031400786324252150646174293836844330283572029068642267949530269282224363963999539397387333272534503444122995322683720059904019014206540125181503848945577943456377685126727349821188325913089685844899938038913461059483487372508850398316700936958804937958368518429701692316136140875780724438038828577980357709622741714724036982579267682436217876473782854981111790657312446259438304508965598339893833370811928572469643085059308877967738927714341679805131152494294156126624115009638869183058060628879014764295613012468171019004152535255866963263866584875579654697027497856830261104074930854795699763099281681899156377167848271016824856467622309464674259190172143985442815935261447216460333495963185354800961435187291599768370849995722859918111267654917860725043291437638297670130220748031746720195568168856096455868250423712793145705774010235748560628470946920656313169008061985798673973671085444487908240201219575864962452943819733421436552734346459557872948357003533430338153550115230455048104805336177945442759202167734650100598471312244354618115717315868394485613522706786431164056206696345866474321003814862553311081437470138951889112711525380836172016079201836368818103566726046043804350012316547606706625970190433527723522386244896792870446166626895757481463759791358425848504898096854350862297277331936744268086005258930917491727923993751896922904025242057970676278762022225506523750387685991954691875933828526842537441960620301436690306153448205301579549805328282934886091129949801215365708045089232162283813918235446816823695210055727213904823190273834564385197661331442368886720351731736441097262448073159741880797230539742949886859292999029766136380013597062204126671169722837014579461043385617782350748841455260061354833163536010894944258104160653810960647762140123424555166529284206972563045901377908784583742456088472439266195135380347058471771646697567949719112614308890244331425181224155285371971566229852298073024604358867182975624180289991308384083185918914418368701230950986358853658720256683079157317601892476096356425679292897754205330313578013096416438875434440248400126611006446357421601909884746106226148540598162884306405600672006694883671056014016475914284780736017888923451034718308808335674959730049819942322217766304509376325150266756154152860117767701338099476160648538811129458967498778624295835441405840561285312311486937699987143070462484090762360395462879314554202976155359741526381880828027257923882447652163059143880585073794716208934167287916694681700345339625820380447025806483215146914849451906396722753367459927976213558004833708605422410820674296357070135614626351697991815800342909847130412882496807830010441858041562452150557846053485227881371462686222673363286587326991171491969685807481994729185613077713835649902525832930274864840862227168353599475510211186029904879606997898996151565160328642116589437956255440920822648394082074789190886961991115393821530073363393888285031916496768087784149703760302091821429006398861063931038507457126560128151209537631823894214331415662553792125254721761544273821711174961203440477615637488004820361408624392498158589018781814442768457144988552310662420090615892480915425943420695670492603858775569338284621948587182576978088264316812702536423125260825343579007631031977059343416522871630970457818229200144652229369159384433910619219085953720300791496010553108005494033490360567179577824074593515231704287231171422425155804749167613711657825832333866128928116233998744496832490172058968862307966456051841171989709277645528510259498208627852668713394256164818710912800546291063613666267958768942502535832899293265918826916011721168752302378886649779557678433549655131356231963637673900042852982529568679465039166139111167195558878354248293537549741337230524881127136145899935964294263564776641858976408948959076198554776441445600162248443368472275700425451040606590068246194867289083710383727326248256820332810738905178175009671523371106367925519039327075201197609683622638754300475565255643552672060501904628066592386920145402790805873011256709040344570968709332014653233434966506328310760588657975876100706688484187159322570086124100532606468441089169485205462147677640217961043034281797217593592037357877984899644116909149922774100431029619431047572888925030040530801477854564410203445584911023660748091210630358192771438196545784565395014133142806968764953812245391897640588341451467671020739964507556713947006472462783995784009621060084103661879911182097779663315610682731796203803251363513508044853659807003103981081734763450507217015614600093343557498213339973016245863976468761072940172268731076117726422471082472650907516087696222853437073283169553317775565452507192051212177974177464917439662387354814717285290241707449757783034929713437331275399308455085102696786078518485688433297881472325840898909117843720895209228255003936547647815347083464126779899634012485220610869557528053436816073398463380584473030670191269579188146923492757771908000577298449620516967321020089500316277751412259984748625520557913001335373057941943077512931845750627933390744514754489449544169898436243896419038515325368826818579927176553388516605400618483409142822556920992851825621102038716642611902351121489332038609121689267074808501273422487871300277947603019427563085919535533823436634719407626809028287903284022478452846915752734600517744171502227712177773971955609579043817244141278196222451176620969395344379862490094108602499276172777081526724237214775415013539560031964368982088028441467669986620822109043143282059632755791282069020419148247032962590092217411869911864807220322924621860463391488027212447549291771457322489027558153915451283537881176521431344428620780561266083788989424568317776134566578748246670491931688386652854696270768467285886462845693837541577078314640215383607072938379678856792016905621609720233214788274004769169498367976001360068466391628424266025075309192473812402344291076800952012660188812499854969900772685665207879737262685285883130119342002907805081122033720672083979780912690366497396946281763217027887484510753012567180482279784521803572116549614449421240547260174274150943935566339666009964385359808718808775299803044690011623674170004597002456448715676235383676566605627079111914152108715383201692029938187965582337334797647218537168036848176954585423942603619178592188377169196219168346032301570660015534277751015561843522658232194880354608527824193305269699301942067454975679449006026652372307524998097239629671473333748325493174466167402655840962875348282758685053006269662099149659938277021139630889398627173165491846467857301752223736686670596693179434676391304241612838524763801836966741295989572713931940956585280870482981523888129874824345903516990043906977775648472752805221215182412100625601724755150927295966595447303980963613053012717231636738387497804351214835029107620624029257257004528794221571721912030600234792382153765856767964357340356813024740203507299724388702134956207868928028748495475065601761915855500093285033352124833520339162648236759696951809662352437062349368671094876467169829731452746647633398383056474022334173616958716313414628496067396343565831642195897002136927813157345137026505648087741371082154785612418621671953833890299864513130018328856366309460861212279526486550451124817437033415281256141772355899840399033328777887189359144530118991789154991903062521131687237272803015625356852086805780920829923348210162597344521437155886417716857147814016038000944958825655306291011791582562683232645255815935342513375383523300470123815462690622391838014258071528597786997228519353947118714027050252694580334892137480677099629761611753001490516686795320711228691410498901248944833198771803251666415956645496809357878499056336197211492934955501736392807924273236057006131986536682001442695469129216626768438527640885817586480181109989207365351133238844283707511773722668182643955521977560202911627922065821463601007348790843245956888933479400165268290971508266027362244128741129724086482475755940257233914801985494508140330787949134425098503874797466655508329754356472180357540792285827830811880260051408276724625829702100906293495776263441112642704542118145049251845261253368481475945834056587056614563968590844301713128830887129921955700980018764925384247274967050723533308763920672718275888914541350484298760581673965485042058063045462721938453024339701985812235988925621374488093471693798187369474512143999828579682133352309827100976744205814988550094520286599968573741593581787014261292273277868544813456750818233494267091401827999918809284607014597801090497599065808146593886664272245722021435546438357097979644744395990073407123218472055867722759254909910858022066609545986031343691928613499151616432823145842848186819774396293456181364722023001283573496518113974302158949178164196717023217646561010810299479600920240524492301238488221594571285396509164245623413929621472044473144218971207886315514199475491442264830508443158230550055439533840801487528611683493615095592879881945983524203563304840508130265260769592402445030311922652348519521030578602324714688473016095241281896183355347120228139185194701678932134325501552701891384182099969431418341559621953487335092388493986120356744536718926807234591063177568477276841713283868900953878739239463467720670255449994978897280681108526058538594106226177274734850647213133650820621677984424733758270077655567478343718615349433787631934349350912791906451764742866361636819578515377038239036874468035864491323728338395984671443297105968393005565079659339236419562531987555163573035447195776989095662806209536405917020081454423914166329981373913847439473170811131333114097856893965229568585608404628542812872928835184105867806346149263657878757587741501573409749273291448705846813178335450490703948395369489124543310946681437838589328397014536559593343649520183935772679791499586624573474516623773780694305114545127359321993088043965894010347895535543464082280314570807608932222816158105928855300753798918967234825240050431603467377981543466753602750266147061569303112042698091273449117022210055113791848705714480806064421035218517161459499025901868598888576463658677357500217156325443961811401291535554429425649302930985146158345377542815677644544604661553616242671041620666959308116963166728735312597124453523303189667493223893325074560597189451015859670447214739843415512455193822146788967475098790509507784704550621685733806479968481401568895261291497221911551998946385431283763762318997859226554846896137070933945799351892197986978354617206659191714126650212986891399126833652982139779391277383659319019633460541803691524998934263008710475485448975317605605676141858293917546535086842540738552992060513301578537907388573997122604831001641329596774118441029762155872082288781499221202895317210516959179154656832156779343439722748824213844955425782548953191251655134127763624443854366171272146738132921901733502134861757915997971677476660926768028765961518508417911917773346648495694693017655971111173754200024482431218734924651167483044767176635643602319199976964156316848944284539814436998241149068810374600329212718961257109703867617372325006630868211659530245122562669072562877214649881203350349808193770148152335277300796248933316842498874802197719951105531031266790148374919194258362209235967330895291053012179432410114256670964594638850981262303678837113326658825282584546508225521140341764286071412278320448811096527302934587791958551756849886213806552241221340454839073619006245997676694733040595659357379221820557549031942448922724323603817216847196681161389059775696648812075373116604211873975453581178926818727365357958215207217191179613998725423500133211699096905496176218552120094204438386789706917271552800075331613496317613279073591222166538024778875667987148492645154216268404673983333759212288739422807893614753546300969631053640114068975097141206155394168233841258373503493509254249087607292830776201616116756928408290008561266354393019045212654054378873775451538333537990642331121509242054628470366207670821697989368560065802810330015190023570485752479550707672012979994822945966431619290076204550809038455203262787475766968676594877831656487155312863159127899042121812467717394835708498313890111542000789037840054722570857177667502729958870521652773912790945818862680520930321704027543154876434046741059735112581811975974021887312019537389800257170978318336513065066118881989745075693185554315955783338720774114939810553472690940895153898358688016683806375109705821988848601893435692539841060864247486931253822583032557219160639873732984542914389028667326075046017048130123798614769120338909918724081923078990511463697220054686830915575803714996405069640464732854196882440672507885013472788657110111056438589051464277606909699753210925546098450573716384446748428919207559289647065778058559455399753046964136223750141117198141334542909859160493130757607100907013787155625682147635716351394285202763784446971676690596590606282517474797023029588685267665689397530027398255795363519930269788178753215104221437538886539354424886159274693583659527408806979642472712598913141659562824228177254622589183580604980736046807923070584097799579894478004609973172288588406601624317383335185755851709092601265461891432750349450174534729804815092383202680841506681332578929930297812205050658241790577414176593900631764904202564263429228426766261735137126318209100101910720315855181911661303478688625924634208069076604222146543767155339423775873592362336130163827138416263924014297662746294776625029818009662918860235361915139700321227264529036593010274555551146154136342894887826290958003639609832130486608014555490626130810772352656755279020142927213242983421819376769154473990608442931209032649312478127481676034521644486827143166514290061008186111516397309552393216897428002860845219892580850569441019942660626094113577195511479377431666096337406145932650431415124841867709154955816796493939929816141896880915712505662726894930961164211407125631192543995700367774308884014713843829387302281642917373063903339548136457480174408804253785391062839363325189151584238436550823928827731067760219077463207723466289036935151046048823937740982343413087219972882837526040908481551054876867185628584055642032133374305394651516003388418408571081141713568733935903711257083218221589102743816930741978711945808952448821106092311060544480792150906336102841260873015400855809495591493960212525929916832316324190244537383729196641403034598328864920393108978896664272030265013544544631756938998259345247178573943160461982050093176090987377418406049414152286184650662531628699492140827174059421827389275307768187988813120964078984588516437110516924276674399753467815368825080033251198378489493509950514725268406538019548290907165644822481752441890655374237357966286006855527521663278984309428268043596072491464428098069416029384753184445093862207925007039780456562979787023328035096901317163165807720908129730306810894583772934016281636244253866842663455376539678676370570153962476796732406414110426575820599308268920108116185236425416115786782095783278393646801853960306301355927443059298403644928050015901869028076761645654909062564159112898271082715590250342887434958156996696703387513000529269888270129517305011026524640799266925665520011954621918561399949200064323819025982920200438592106339300369360419226319077989641261387695035383519628706662732824729252699839418092570591123493415643940442303081607091232513019546361090399147558615865758419175284861661507570046035841089981330973311630378249367167016779252861046283762699225093848537252651623383721668152179747664818941028473918405731177908745390237802032401369231219312021363505894109605102684886768544885626419036098442453377152759942396115962081189588636597232113855990948170463515021677251571316349284449815086958061022868456961348783829793334490555163853482448032425701343781490415197728982296905161024690010236402444513843477383943896402845009265714143534740476898360988990226196465597288763182885383386000903807863973702317015378963953835204483997043138405544901914506125341059149211941008967113795774809078521001047477434272746368273409003032349199885618798236111478435156242760118082423625053116502041404127020880655028899081014940197296868358140092029843976481711038366950343730500427374905371367881204361975073777778389997185174944064098787700483681695695240007830951684051352561440896371958890732528303730757208695936009447654338899631401950274033739449683416464970494195040673198336714100696064362912413624672147104870616238816591948476294175461531928034377659464529369201610932206076945313064120330878232448033258990066106026427883133219597094297202495228720789851708280073624301080067260245147878930133881960974118391335930234149680590383290705347931202915654512780916524014140371542185033113763361785453044964549018914356050107974576034556001956575461233855922742481383333609001034386434700303450877444684802630834205517985384637358347880813016521634360161849567617564059470163515795424653215024881687645240512714248650227087573410670488493006895522642230403602332413300893622641877748764499717622968387713874688128792735964805800609282933262093820677760965982928870950132635088371269456348759092494644291155128395128190023493617867551463323299256291582200101305248125514147498319441909817296585123000679634239873302222092992045638195071764677944056013221182648611366137809654764420606579881335420260823720448888290722959418651544441874285888668343417842365845114051793594753679691473943569994740538698917018258534979190459187906194656551872373482568218781469873734610806853524589854954354931972590788677315325003929700144090479692274267428126664425223597096186457643945811931334055812017036392208478372721814072669769092659312159089189602593035591333847741564123974469192240103830104390697454051758477756694980135883576432503582758428703597957422607831084620348921446224614852444557714201004117851695190381466140673467214099432350877046835827670344971145524617685322533799651198947714704748181731328224255176313165507489001997695863660086086028755022658244047741684852975145228467764064113939166064038113351777948156387017063996453047541882210106630581207522145494974999979995722109112677963987740260936113704106472789618273013419062393310870252905169302569536725834203224562947990325758314427052840933685664848579466291660858852719618449759387730098628953216837176143698365099634886457326262001609960759674029838890960611531533649054980786778608782082045639522379358587531396555009971818711712138749072701612070180406350492761496929673013358404775628844934004638763544658508217701414948002146752000844904440878834234224579531212892890751137953405418782534158960454095643960501405879619910447200676763543930219844545860833941903918798899340795041378376542214773007941399482251562249377953221508065695041816533354274616672276585231963914795897387517447000640381808134866112195801554691335948988668797277510371280368090006204334125513984159589221866216246231409758506939945117171904808891730002627024828190140260553575351671026111944578091868674473580930888202847578931370252943353797218104493113426307413250021189257549397593243477331743045225000402995542811423359164586682442630956007531812332386691644664233110312977570445624261168864245238633922214039150798572017248177161337613696060908452918998200107916662697112214130455231487651553478072606990858773483533002186942529009938918220488835820162936657966888986935877901065346297673231670701747058643984713531225694724558683590500150942156758054007893940136876977882232725791441074937163786616016057848810725510712481605313606762492251413507771616790359044014191429634308312922154849451709142006565450767750285695463760303547939689337073461576890040949716306490328335695089922512913852854793893164943919894076811589188855163174643171938027251793647457655676737447586230274856460463854155493163652441200363968223435016583170673114767724145569362468621045849237595226578972698526742025555951098143897963466589010802894303892683822462555426606779823238249059175808174754101397944989963262023167594541056676921873793235463097061243809143619602069503438267532565129723671838485186897951058355782954117852496740354827345073791625471533230125041242635119297859851518407880482755503604256255150880753381921633083872141284712749507419216030296668825743809684047257642412084397744083532496271090610756002946241649298409584654421203211856296767282044960447200720614051176198038045206131591323629917994708878091553142228257550047786755768987125340838088885853972758938175950020813258496963097545510656007035611185884298168522743995497656469689879436110799517314984396855229812048096638557479513371164377562339820627371758875434427529311296544019812567688328061064069855251947346599638202129347907432976692727305429439177918136406438275251366911005005541194456216794205375761912046741295496110240437984105557966290797235083945861349750197214908686805885687168408894584121758282066461780952138587286687477668957921796258416063915295233985487043694829549092524433218021277611487574289307730473992058573023297847684783255759143629568768663242210464928749600364546411245549059853183030294024235630370965077469562078920813742335782288583344838606006926540124912715376786220980485993743296445877690036042533116648356648417996930434931631186477893640392602829929534659327166028651963920952402495402676857129468835572844734329614428407214352994446635768425264958174268725639383651647479951179558871842074272533270308761091727075273572145634694789980690106529203174703398298487220287012553013849870222503451984076024350388876126563679570704573728198044012567886861909275502729794976959384133485618187705466030814045894713903815097945433678909557903632341416255036635414637054418657263087129474240077976370392277822228221676861960038284833412606790571991147981748543159260597689183952759779695147443918017354208204603111186234930924575427545959185985793375539584042053295675029306458571980746203393931556694467545547470628979112015893402758023457744425814167217534240817850195772890067756811926006600086466897475497821376607197971028929973573657415929826681055517889065996932914974510700916748032899471029373379262223753067087257861444217255100212858381694991947515846626272494978291800586842861778831253151815108894495659965764122880444183277793298248699659974428999324972412141390232436086388684637414487822728864605443463452507949571822479838455467753997317764026431831814507073158579779866018478802693235420915926215954575376574804783212784997481215646065646918570225485214442910748593559311444437497942292722629700475344272377490473498332232228879714169777490490080232624805087159819764626501253480653068573724537013905523928967385342835827988592907692141200921129016003264084002332194278813595565324446710175357360283964704629988719617326273882499130671484451435298373865196626774068004355974959319808761329888011095459400172794898099898144661487483057752365117137460908936698570473701569324522741142154037764893678949308931853953143475361191549081808067085793419410388559535316189265516838859674535327261087461990619810661481574358949065128983656446978432078590960516691247940759390471044124530625203684750137538988813346441802404485566700967793910001638258759374372157363252830286385948838029830386211270085710997450845853876218213242574884626772104996428964952467926328218890506645686627898276456373391570146817371861089691817215031711903801452535072688968073515632074337196960640707231394857061609407811194822594643920442902282940818688475235872084135049637213437188633391144050612759666644306365271311190656386761148421860214185324406782998287744184800125419402872834111094339810185290080737541684252329977533236840066046728937578792649136183881142396159094079271826538732038166355646449425284645788244052103892770825283631302585757422367855152616876450348974950503889626611145287964840539901345054206542689882427418219863028658656333566495587329539614147493650543701145491626490512826001362719267468766408414250066363961658480911676753059584014824189690007056595272061922119703024323032890898494868289624695162992787569536875594839919820359833674634466302782912660715201049948923468306680513831701651655427354163914933642357983925119925047169682355142222023140169644475915494281543118558398401853031733050749633260442260312475698228602328728768063448067216014315780132190674585860523408861094839348183510176413881537789435913137487764101743746940306416003564236935211970710452491387471568767881875374157439316254990511768557515698734704368197841339416350611079843068558430448450732600439956686932908183864362801746684682720806443204552267518084136897238075093247688282290530655292840027127166891317921220742683098411628059041758593886671144298679931687774713873367170813038151450485810064906035236934387634216917656428917360337027409509275137330950833277257763744413214655457246879796448846616173628323910126772085542351849253426182453990671568936754533947281917672929350655144106059567321483941608142751431912392047105525954649525796246307241913356271433466487881305585243132079624401876706647255489452330935814065493761805742097436510473768039579867647388139554507643270498853322685723489231358523631886308432153935111476291535998599915655446177751824124281491785188967237350894673228034330739669348628931144114679800556599011347548996788830428320999135609979486855452569852635363327855204241485895848808137022342922314827560205511871282295606360274374169717251103000880911385662947176203629913502613642116771710384307139343327709111545056071423744070791961811166816156211938546017757768811314658497860458484211965150053284480844367689136084739813807710073693803855756109620865921847559520341640562819839004702670170486483049047685669505570102719778163703672940929729437231755404216892672359344403540775027677599425459463847897040510336063643116569036330492177167396847771225795978890977579662946108099051258408049995840059733596679312992239556965382945715405409911137013974718796259436243668176417705630234906321258386591777745770029454020916475258156862618046002312475169848791544553295752984900312907938437745718860541055808680118528462675186565669307506838713481282017659262445080497652961113952899467575243613768605314508220326684343388009691558756723917712520051110211137570325587427656449433583474539646185628440335878930734939922055798142007094138115664574921306799329932262573394423453863510209579251486302028560636485931945029176331633250615951407271039482325722938806296110858506105539625878039113249737832456340994363108696585077726561762534461522962681509921719275588673822705817963597450157691001427288673219060244383600654766328225202899749013358563561297260486951151747660173570445570713254757823234051064108334803098703673931500870175734791528426442449185448047974754737856982763479419529410389894979250635043796584365218456340573531611230489169879586987284336786008168834568992691970749638793928875598694406686960794738464328873425495589815646101318842154466666982466944639279487471836510163722676396912939331196648796992216329724044933526356283137826104012678188556717434787305720489553905008986719912524037934167182435423536300316409324633235294734455059528257455464750241518586665875482734226959843781194373099332195964259920663461129413933543297106442676214723093495139122819846928657156259422132698663968688595445472486408233849577869664302297782645218247168423094447458600824286049269141588841581090761540775590819677212356934490871257773711530915280514606058684142748072390464992562317896869885932261319989310218897635085885142261151496971762292060099434577810191764782623752389432923410941110190002764482687768891738344207422554627995432787589209001460345128817835097306495267927664239447613705601175019182405787986474004263154319732137874057858593242227721261250730720519287405632597593847695923512104900488778130025876104737306156824898246030636446176535635196603587245601135537667763363343950252247775025152073664093544967137541341406121158260927029183798770626329572054943126125117774651377982658012290954127466087779902626323763968406323495045219761483121369891511012669017616767113439506057318176037020988279478834887466691629022233186527274503757785196046372353946843820836430620581225101610603431934015010513412108366127442615926360896175435720968405122074683854616963696023842721830291512862957645931112191054822060859564641021628734616311691734986283203948429808756488455551617637004629528740211728462795200226444506404148375668701124253933286899862963760426011670873176118740761324433070432785732160068357104870771190729485120781150171947911252722691292196914511074194721044818657448740991285938887896164610883365939559196958468532051307457810669025491203084279749477058520257554492101537772593348766531541558468863143722428175947684126495867538242977493102534908209652010172163999754875442999588994401219802801869450899147188479074934755608319558027345453135588004410719787456069495929902527912806802596062469077219353179866074737483661425923540450734385802925039271428954978902670172090219056534677053604132893174547176416400770414247733068761369240405908710416786495990520695437435587812717719118292723646003673657620478284586160317221124914181489671580172227553173928260556332194682199282410438794584313842448591119461281717442667605600651745260690143386014797776008762708884091604403722728185612229509647767403112726286866011036822449885053483394322720344656544441580763145094748612690798289188008041043451205748490436712617627401834156682932728605308216577519199303005126233592803509859478779270922295744731648338880057815836198273667726178651696454414332086858341278307636298000042618772578624853670222032301384614248832054097823733293897003161321443435004406311711236435849159695397909343179701807842074605910061389656620554713085187191193443272783584013139118531946296641464057298066479179060550226024442156624632521035079339107268923508862877245312882748850802650794903885321794664003386929202807235715293616614115663277178714707389068709692879293645853060986072256028904013891601651033024527959897769077659535467252070487804490978885276294756367295999485691882849928417227715696167160723681407588991807589155396208312095424599739507485944575770622258838482820636729932157999128242122471678184254921678359415766404210860993597278703786449994433496538848338937091227379052754642585681906191697126022880618280531525487858883857899462864088975204924666850858597987085861442196981695370097801117736582140004377795050553940315140282850075243159322042580734052144460596935739992065848980286098412678971689337657158725306660291711655357106417799405306222662000710109035871937115860396662350765265344266060828296861117786332338752313094778449693289898655399398994925967732357353384716395881303074616497064688356738884320983283176413450474042815430283470776124768332983017184001216961168073800664685377882707197350730472993278919018334649746611531547567626786498773871753829938655991794280519307348408687135139523416669927557302755058043963116066043430647351695706811418884730013652168818050762779376612839091791698773863841655989046938791202086974819553255075054216629951990571015752105331589924894574553368198967788935462964385822338424691211539371944809848746531090611519692821785782990247985487216834066446596199449411951267579445548775448020563820459246564542972726813689172994414111012372599132543044773360237761986217514621167133992083510682887977048578105393036379369034942058935569797712209240801809046873549701940737492628170468921817760963200477977480933130156365953849083668147613179629534661723357703631735296867374853067233820588372284460406414040587820408503304379124819932817172542774090172259445841553192250042255754477511586148953808891857126059021712632900121320126471475911238864479895822093629542472430818932590247022979488807506695333743370275585397282029925362025122150870474105017583258605723966279313467004402412538700678187146701869203112017608498028588696582992498747861350892014870772781233030933080779258052033351874335070381104218404294461759105179417724273618407057078141595435704572482599473244367149410691586094566859246405272053091965858032674567007104006241498535517785228560699371809108653536658685260325918726234342522653499493278699143484973209158433498898368306425854789697524402875577470151438449041411901761589526508184364708781242379479766980410036726763090384562216805136776329458179505247861653343209711228638345041389230426258946368268632046923608223201333231816103668639650540308794959065886424021502683455218393736850467337175384691549941226195236621851836838012912335121868330343312397606757609802122250796210425795668958344091610481492854306298372346540936153733027001674416495772775492839834812043729526164478392167400425231938973570639682742502698769533912386701508639750320213082386495768418598697202723598938604341762104765444990841110837469434636844654998420009049977662154211701704436080868578417437868567518306705910024457724000821507517905041542557773108005548731233847436260992206997465416580346561425534042844661354694065750548400249454799352819576550494750160081106587871495840747667947981330996157875158753077245415385422718497333585573329269910609921768973400783549304141124266671966784546468738749913124314911664133225712562585076893199760754470283813871957678872046643067828695785765977608506412754991771668192670772512266568683822119479758004826922186658209827715535702804039293847637800071738881891227726965498581117882086605754179331288909373799685027450708743764304394307282590937659636680940545578842256354174302669321012950660378427217960305577297233615601398852802457872133760503470008157840388611764207552417044022537566406668984460477709003424574758429237726176571367047172985788920377573622017767566792934625466800468737837422186064401283303242103862484531730200180777732911565130956154465174805886254655916694023578777889681684931359696333089859147201362661891130344574262344009019936899223491190316432383100431545150008864871956460541953089928187637416227951488199420989269893977423463355343815986508478390794946325020766178556978132937666307410264891984686946092216292465107276050965749778136256095030115079724019054089118072129419310059656250878068739975179287010090836613588335405431036673407298610429531051756300433949432249958127415437041835103389002683043345293146672628153294517307777873297612089182515119271677305649703464646353172322050473783528172345632461338149851200831551092725406987056624018215048093170378931518024951212763059591092018231831347906748660527908159621880689401854426729539062040834727245435489994160088833789179671512680626699622911624949524032836026632727698381378850157800937803256885536915432177344779426186755930973812162913338355158004332967736775602309084370838989793438920268920049351706383779891167619908931865880501286471508329588618443473643381873885637970656738809006380672176534034638839543623689273194429745047737911584139219536580134636572717759011497560904435032463569831972511959779685746170908855375762921965296429040365504056973827428987642898819906276405024942465927386195664598686198270828781535404845297520067290436396146790437245102272536636261761159405035603026781207996570828801508855756291545498857179012338618971252003143152823447662467109527089813524027577755338923945157571532877636619087154475489558037624447316755324493096987054034514339640938228344775383027369912311400122207748512344661619869936300007698254466889178289757507753153794431820499607045299256439573187365333712789295497613340669049488296714615961524590306217408818701265229254253503124420932762022193191629455806341404888132054714374642795034473052090014031105037377070171195657565167435498469335806069424215083739117027112957615878118898340534097691968294009870185720045819352114443050965128984016119252884170411870177437264986121155696638054470409039807220461369567503737912465848280855343340038763957990713427306182090050496566920827300697401243652157360782055091029210500575016440189562713039839551495077108587105700729699738673652579157091039062227502579138473039875298950620327364915118122236766262986516800236299320740909257872658777271224509684247950549594407708680965995942427544654146231771642191773005867385190023235180658944913486693129752398741786772429637300599592472291240257416028111992894799187557740752106582942456479097480707589723359132821685386533844565954017851166886848741821564263937848106963168004045067459125677186794843490508224769239380744032571725015176453500376984404332883292552067734271624477673151710796425558872109687570631584845993734684813440003396085581867728470950312272404886949128942668232628944415425800963103957134652212802723786787994002937354967545237132071223735601883826913431641209790874736236240246363529199377503500582695498567171245865392392365152803502462264960391315175050241001733993090369797830826974639677978786933858304661350650447338360425783589062681721313708683541237154861775056436419406449127617656227608178739949114936416238612383408980257446685148496948108869043291344458972869188501598940491838755290033321918412211788989264297785332085542038526888390395572596614665082910643170646415891004835907379083838619509104811739467648067038862378347845771336231692483760696984624534293571096282956850108809514235274700248077537919492543114025089011780028751781062162937286127387565824062193036425849257478376990557870231422707411579268928518311213575289354756876655325990545208882923314961644544668281009441090939623062083171710369126420791292006103613438177805526485467825570192420890830713339395579721947539632657251819703613411029331574977626461525155081695895891931334669861495679546158619939170752208708241618282055165362499838291143788554220893335731426343194257731163093482363199997512614495795829612834033410972565688610518263686672435237639455460503305001630948639325457205615524892359022022182932859056776368035588291802237714051698508909240565668139476214243011915263858227213661437832355045044543348744688985493069695334587854946087207992397413121767583634517622899263312725373856028559904400161138510369532385617554605169076614321549946773157599688167118893088259660990302373010428307122084269094096321984805387664487681255283006963996301492715493270618509732944568801639820808085110929215633474455237841310249388292686928228658719215350837639635424714899713192735781185251149241106673444042732706839977858784116557930099411379522726103579241905559713890665583607135525363702097884950715923155666818361371160744872736039244030937593930541232583835415065941326357207065475702115227266587222898877910645435121839342588918849571398951254918145347223196066168819732744341258978840439691745775409344354863306956202331584873851767735131815519711499491088721076481376190373263072350292339992877959679439403717183399919236312912629596369678939689324533874121716758198974739980925188632490680108183622156087381560843952191968333983927009258916229173069701560020088160662648175969073263554211295255420279874550137485755527815881240793781151278663736966049623767779815002216545416697411520185093696675371375568522479698975433960163897911788307323718921792133473811114331654961670271010191799230592350677630543200459554601329193872014917782898968978822198792655105867882247390537412000600972290927454211580684660094913297901479549405134089934213046104268052439377218013465632344269512285020770849477299445570457528681045404157367515313403042118797134900705743125877467656074115469697355897046327089178846594652293491808062906266672383914808264670219682431128435335547587481594074629324631824937200744896485821122319322210366217922828330300962971883125671888524006223164390865291799270556967080805160485050962394960359636439408950969234097717441008725380815530534485799662209581128456013184061293496804396584091973965426262710879639521705623062460265781251568084406117850719368978978896677325621912897659382680339561354322579171088276318274956104736471680805322843574053305812380393252134772857624505584038063387446120511021020362165383645428754211028027486339833835816074978569188980111336771985061663441350642089347602258050437153156031213128465777451181831268103083326741326655209016330356155459795943177352361715768158750696961393523706618430872413304831611984610232055504941271104465990938551185707421274702200774240448168886831055581156154816958503849626154422933151221709774805367546042004081618802049507632094156656908259909272671935471712360402740364997861954596521893297252745838758721691299235147820463153719749284967331224464756568705560559302228897790867602262862982591878823553125901514267645770123842825592182406788039981653987308713348358732565838504955471433509997031664969367262701874239607704113220123448177125490562993561527922444950223311471673566605929859017980072027458150753379986458577268345714023319828652564241681721326596859744585916777362095777706347730141321861779334326801613752055123287182936969800271545092252713374359298144928882452698344120862548539861810496231885558147519307823200017574985925092560276329785366134129994330485235556532654716226100690350303110382615683501475775655479731907767902215344111972174499104679527131697916368448690680194333642077481702332663770932485700055444399695337281744102506563505213478096007996710358437696051537745043182992159167017452354662462284060826071108599077177204062072872780134177516557598814615718422373246588634093248865979223168373212899494698919707420188757446239916948834954589981205644448120754463931206384677978651930383926708833963183353306007945608680203687822649638833981757573635918265407804412617682365875831358250981019698334183910259740918102723067259280042147577250551377233662139573931066322524731350822627916983576764464302208245298027899385356692434259140899413136184867067677963256342617202780595289630016852383169952527938849602401607362556056618418677305129664879611123916877322639491412815116512114470556774716794379807948459869413137072601377091455210123871371194283018289808856206318737596377097247685236140619972426141647223961409956242326883496391354519669254166702941154474902863608087062744950139214620679985040604351509121455023080594997606038253558380214555283627755238271833965540064274247568896232367467761271245034403019301740184212399669020975754337845247027330824502369394499392919537740958009453583127286253127256366656963828962465799604662383881155980707966840960084333819909645954213722986521556659617355528579544403768152558447089390695011384511251199145617927288879308463925760626635773943745649069588492963579011871777272554772016270298986871471180636636405615606672528102381767305244837021295871526637743098837506175312959799244173691325923006883161302571795890473502148138774287363515232923824953001867734144452418114469412813223206106230599102138210015033131235098253572754115753456807678675081674975195751060563108038604438405346277681621280289071058546345157494210687641953945779483225525223153136583445361151508028789571520222704528072162856424310498715150558672112486089113880729319887997786287745029159124591336948026344079331086954405468603333930326160016765891254345779252215378702201673917839051883596929158978327084338621703349124373439074978243514132546460166298506238862732634517213363028783254587700401016518227850545956034040026755637465439086862199023066363109367828786742807158316878965914720008882487202884281490796835874889966427791218050946435288937045679891930552622910449714971187078311401477602860946745089609880868574096443397472836481689304447164047988532660964119298914699618104199198836224986514010232915031094843291059888243174691956706402559515237827224221425946150774193045308903062834725292557613389559857958586840543172676211555280397007737085886308645305676488737872097015395190461480241119621912680336384438592595805456235091629000880377800789102580886282209305195986109306826385523039306596080097493152498316436009446240612682768679896131403196202748617682007950352140264488443298840255701412461497093941074582561703235414853166629939221151494967608178474019748513402491121530439750623225819492435905720946722716457247482705015013899470771716408071011202225989209310900133488627076350697238228554064068763324376396310230098145868856462460016291724898349622050733188020609560398270587589795979222242386588242822434700612352574802496067956370597767339493872005693231757480293531131086504212840889356496233587472987642859650910064497701175383952693064960280941468278950843053499522646192946539600100709710623363533843226333300339332831796607324305038142024549049626790148047514493920106723058734156006304210376133743152446371502442442969201025613449214557077628083867277954088965111630091879099335723262749193880338568054927079072674494882976092732348626016651621452177892461760335557879099556908261879971443594108708597989896194481675549926458997818393393680820494418896292224283969984686891700098839893272915481510929079883859325464026411361101433560696794179598556118026870108947983934607514406983489564012641775221700865039849064427903683156402522092835736123447624346783825057869981644207601499879281605348219837185798010206152251714819464629603202649561667105055520890743594839686089373918481226669701262094374777172916075075634569214090031422737691977527139495477068154520514300534089089548995805537032724733818166745526293303308866401300499726957328428838166910647452860769297103150213731594104814174555875024776681701491667654324797825032286777005727967900102247610359543841184818194231707160230083981358422426553836615364558566580582177005903668749615609297628822976110846194055265270659569475809879124212703315257452964733353823932294353933561305671702597573220484342348985139660937252240852075251838460098701723590872596879779935206736565052693257012428812249324240617940365052207755548779721645212619905447428772017786600261085530603547983583346929452380972281536898562356148754096228140897605110053471008922547532148891520847400650558387010803504951095519071893895330820463986322444762516263817530744598650117311704576772911788673952110578401780837672960377917151437195811586219603327479640357509945667075169915272022784823210259820026323658069684511208524156949862545935709564723323684929974298881054562106998697876291926698254367301047230717001405438169124554369766523903974753012907473893956783915918753370162231492762978780498051040118313548665179027085334941901042700956859663726723061063938927304076917132005964275355568254707364686606400717938734733380703763297166116115069014160578768284919642869906291959067074548454890684549917335355249665200892522256117134192637516661504973800011530784832688116796810466770332452628021813344947340102465273670333376400712653045301308193715835268627400388834389867889214200377458721992813009046155337155126067788723001430918443440746811111434626197164345216471105670903909258962559342027899993750962231108626561123679808457805476732329807137676327914040503057941564703259871683192011165699252208346809430028244314366580215944940028283128403866149042135355982700799375163195453058747816970259195470044811179273289442927073438779302777569082395266465123817741627380495674148349505619170202984887737034725114149734522411746169271919639596597062171332448058622617229514582614874341259702217595249972446851665740723611014329564376450647063173234815318294080121924824035212423104482853569234890478610332977235453546024860914476744879843765472859670700298856525748251249193085091683345127020498656538460059617918821439173585674188779032665661469111553262184862591246534371975061791795596203539794596585464845417215093090431611175073681185751605997473582840307606033523138770741617650635063501797653843939351713057392625064472708251913796747534819492363607156549237008181815960061151150744703534664922843537296451730429398456473286714010835659224552025689102347766050729913773633333469918527367510357350816485949682889527992772290864813784900695631327587963246048465825821781471772928273120139685124380525681013648846003908146205225458227979688681249709747812151545886251521136709427091380337379648255067551057058385032442359095338055415253190326856928261028507632633858723189653890973482041769708860889146861815555671662886738307351530394487165114589935372243557702096547159991385335971825330998167358453126681516204608804885101813342171680276879114901736040985067554076256147817825287240165541260334516732581690136257962083988483513562145178590012163379525263958347531887234865863016297723955668335400384793713459283062645209400644465195566616144462229448313741384741670573634419910763904373744864040219261847729608417918565825326986124130628018542651918309491534865254710063651560278660676275763391414409882697637554348303896884804286809606715887486700513041473476968944827681357645500971508974188480730067766040093511845266455616994757852757769821828078758006112626443022022116893495205015597377635660793457068477780214457773057303031328126369643783349583647705515321392040152990041207737822558967916600422198618120163478691007740050058491203185994415662687486174423321355657782128490879983797596034409074764045935574494340481035738616051752391433801434519214674957700705167791068556128482701374477824849546389756312858192853417997786519954494147633314482497815868491874098500010233047527856229599264949260971634855743264106673648275053212671524226129256105053266750522894570674578615202571661435407800176961701779584061418462925362652044402151465325384266314163520958038413256374003725676103589845797688530396076125293029480923914193653405833017122027658215330395838644409811209279456619505378015418927561135649199011770906678816745768282945178733047550907692808201696758873007447532563821436198777299404191037731868842509932921231846221875344057315637014194187311952546445124542693044929003395465611819210247757614924332258279994866538698053545325918394202569782427627906368524686783957577887158518205804233335942695639508514962208005559883728873967809190414911058027527683709256404860407612896659157765129585947314352997872587315374684908243592770032326978858759023085776753317274258727799830361327093543061847021320463294235148283218829522001053822237508317627317465522759248491651367059286503525015754239919296474727061150505966587794420092553530818119277196060875519622013043999756779065726661886737994414586491898874893204325432624826060300900197661883244478999725956444652505804081285021503256515982390763972641078804227937882180902917067835431264078628091659302873855135709066420899135781154248089694749730269045895281461140238228283290689618476375721950279214250525543343283979421127426191920582702188154814876687225383569311017646731237838253343423196585169815679561384390396457872520581920777858519256057230717000844094553019617807989755889616335006878520007958500593019328411146926708290602613970095548182389829445297616609161261334671632016513958096706604801659995879032580239056266563000384331284865483578786513089529678504211670709677650050931319943369682619353238683180688675223406180306715733527251073341968483720939369529167842592814284531760951594318163616085967104305272429844313886526289297160128684092003031633537883373358632950082853292116187367031433149809392416999504386872711210460561772916981125682053871630307313750675418921239007349350865458439416393410056976381332852633508091345053508399472691388016827338427610986370773744023549566701093106612806782279688622099516173538480757425520728099081415862770490679738345669879225438441621548323338083830729449932893099486903527010883869974839023149546410416095418630086269743689101248127945623476547943876937800461734315340731242573944858411111624536914595813993833557227564888195105025818740495808826022148841345659465689249254025003359629110307293872260176164621152587254447753242756961245109120205238882614300947783538666601134659169736898919615853309601012131189236494554461920407969501575713149117607894512155194124754472299638370932648060616492531095881798047780689341219627429683140668783915360926169817297172969587073627324393102739467739180425614264130636254474333799551042002896166507306072460700238586105356110984584328116814024763918352424629172074186659173665569440618008645506518112225428270229823705572208883162489224455594210611675342118182464832825974757040500940119966967115539890919923753890380384979599900709717464273338786136743120982427163533440958706261099978434168085917024101240392211676052984538480061422479896030492766803512945639242831208291009181378626538611926276237803126080294347558673644192392924946698640438245636860676233175672154243338320104476301893281965512707693939137171499602876413035401263342364460085114114788087341764227680473400222988349782207326594182941928689477670607703695556722235658636700176361756636320480532496940971780059910622878455285722557822404706559023830271417282909396445657916193096427198662438647187527014929439062343234781106281848330324848867556020754347266203199878972540017068635059155105710359566011620994860327244045696308105732907423419811426917373308110055310699250564726005109193432617667327446290279490350553889205596965519470541013212545726837966250960308570551813127055338304273449275005768942575648625082232554867935363671614671513430693792223486715730291533434164781955650642169254737281566803632215243763705378246556564464705179443110525235541515484322368640359834848304407436965151510372377700644630286886449519531615771579376362423226150632199390674163507990324426544767825334634214810060751859632689012586510603831014829265936259588440798891838851847886515143888054142813384307417584047324577975530775896098149993123019065215847117958754853066179241032116167057184727258120777629476285327901191257706415004161586453174103066131369775516454046462752124625675895231410867662605058526965838349345658888938045980110249015860929521728654313465237899672517015513094037543192334798539897525342157824846344908219074260284832038185646912538585837508338092223462765613488888856536128147391172015313966325833978193044432222497061442206978228603435692464845258170058033610814315058611676086195639611239185842805457219103110817070444008287457024568401763025550297761059529604521595876990905576649679248582970845638670701107162302330630024703431461792737272781370811146336477290640098809687809580637595441646379064631267707374725730977617361686512707600441166298914823399071039864193716901586105888319308141902022425752649464306690900245072044279608545662982158455776004563076105190326738474090006944182170250511784227517136098002838961138703845037562138761594741157502530902842196568949892824174479627496367285018849647631202878407877946620948714028244551147308931456369423503169039316916125010614183746811426313373477534448131933135707990510079543270393478366729431643963326464652614239509402545276826286630078926029181808934253379426075809485030073657972738716790506590173195204049589582664642895610373878608799808412591769944686381857907853052832966273686714019646385588941623288549476677595967657866977223924850550386431774319579300241001004137211470537779146730558191321614003053990959344456914669865348070373621119045922763980985792103964774805263557602258812648590625119773132347915702557847536282317013793908381937694673665728397831198638302833072939139129047495069479765310651260107145059510561229838030264642504007922000347404700350463439691579596265621173304892104113639756734557210068908453228188636083417652039735704282586814990033854203435141625475008776337226274464623046804112275607414852835397351581083813496406707601937479927692221071195316886695634274841994905357126796084093645650438548448811851546357207554339569746153531869890204913831399175902982750007653738905269785121773299570918759584539121370603476727606277389408640352402088155506461625909887676520999441044993000060637966831435126451007524818873836736555876701472860943971107996620049449777853884958762947858607561688887894378515556959505610986500532448172862230969250786113719764927936757578923306393038449305048474952843333077404587688929345018224878170041998549509465285167395213365483299419186665552092799615294319369868887080924812761841258928450712626859060086335180311005162901963873134634140545867588867637986117797556929980388854083460696448366166798356474995878868210828331630810188132290048599798369450365651201201849245130187500732821467975643613346323761595130898189596880886644857257836409264865259396312816094949803646940026030669108983604864442442522669966983703915412092842102796229689341809811197719067323820345079461297359590699509256115484123990535098249143915528756654802635775359496550610958030475408271521477908563557600965974262483108740986623474752634957405713109869267000550581361242168464057700411769744672542772195530777243360036043281031662513681003479489127531343117569443653725441172350564858176367803648656674165067199375408198495621786747498138176638945638640093498243994203399915239901989560664272555665934391301168271345744534902264247590239135810549414113582138607860589854262411073722324902839853675035163092233376746198895098867512373224716304726190659447367658185840617313272975834761812930026341694760891076991032803663245867440167411636055816787983692454954775819327927002479439621078389009557008586023683651137649402600580418861493811783637546424305108221679284441131179464850691320907351755885538445150753334137247126669718544994618331495029868814509861041427073980290832469318360821065924340493154949338638616402275610331301521595288686879701871250532368050266854474932510466293003344990261674178305398882547231114412273239199641843549735327812417950879017067395749280468634034495338865843690617581700600952939423906993625362640905033864681119235312124879739746949435868891014585016979784848532193478405762255261662308339503282959318924445612055861033023323193351161367171684408895922870007852900149455067321567036581879505913223561203269764974408684128940694683587620975120365645150901658606385216573406763101088480035583248785567973511281466906500546068935739319052059758961373310424627948834739313007981784253054341605631654801330836607215988134397727760392298102007539293699830874769429003157016138490859455030969098841052926333048072480091469796238178392602274898284285682327995379328323294091897151512281950408059394810611153367739774718812568374813322572697679104453360386993902093168361241376341711043417794834071942315530077308396333974099365597021801378068973448929247603963831467889326862564225480116615052445250198849936300237955223640263230644575599107027361439668976676180018953227191774803076344718280182874588493256916498500280818115370181170247183937445444077560329007097186210555204805457465663099013769195112868599947544675713653497284039420121457614618468119576934507562232751055596690005050352017979455906416113474796514983489205123286188091112204679063611595200135332134584656850090029067581227738529209527088839097522693713986974248760221409798070832085179959407484097935932552565498787886650475414026770889226239755256065275078255136805988136340163690765058674376415679769728168391516277670267087591510154936676747970332041276449839946888618488512911138727525238280792787115892118574808744134649204565658064939128492348390262570481171328796283410028803335840081956298460381153234606689062493253826504182401452125769637196606241903041865613893903866935622254106348946014115302539769221639086816579812522551149585886216834862914950659295454852823251216692684056417485504890786214036210645396948852027860576018518035899661021690032855982478370279684087990106691414536681332739568335751200631325009283397667021227249929515499430058327772485834251884581747504074891565962545756668821455069988327422555138598567871952199872418907292219467759793082182816082800925277153135781443576986366011919679648980671865507126529353736736643337477501019716797270460921596570504146564627148301446825728848548948079860310665252899010457723544407554637822088524625710314054628559461393075129701866020699947749463438394486857767195371859022717837986799081778434860686774161778752182695815982590097665021005663125672380826566720034547578325112656481731003444536841164287426015845111453887117966424573440165603046752021841053943340846779588226255262006260094420559663707713730379422272331983327204629973327353170833423046651562883631307748640851796741566946743712277469887905678464491309917138159512617566118284417082357023411002064967066038679489095703964055998580956200870865308688273287197440027012841124008678858848875807845929435861462007936836860552280962819821108586723188107173529732495471561190892961742959327247566168719353330755695275084047084009877705401890290241144813259063141393460091485617760441871030617167909551697817884980009559191526542672640928403594493483468803130617289920546372213608547920189616694839827918147793516979008402974446428816031195750730609562782789392171478747948133869452370441180250535023278875891056056053336706206117174627612758225738217328078937566261679372904189863403957939843460351992990946210536734739067556842093435178641110108386764049687825633554448261244008814407461787548959317297118189527956281729676769145819871155650438642562748927699937118916234788741478752513830013445322970300447432923303179845175462875912161060302281769468412520810452095600845525425890946419754403760269957772407809256746188806125058453808277670439535157539719052201181466819592619483398477977747443431240566172542278523602273963845123621293733624632332151254336857202916832808902645420161972547445066955339291907848526351475592763029486378750292583273563494071947728261673661054832164236828060686111658229375892575151383286059644574710625664928760310196574451684101348090019453431836711296399995248220321462695835044230243473288010519247815879179407911602350873935377990316684494921233692449627593112706772327074790387465344338349455529749608316021644119244997776155255572171452249052844405213848818454872009381350125614167990633680836308557675813701337355911922090118526487708090671755561373581538565786532491246846535084113099579474767348691626685304134270614880603581863207085321457642576594300264461347299891557158250884782662158668433453975179824799956667086725759556125811493057656871301996388280080502508214613112160409589711245645243847666794812736512023093424633906711356515380707380083334621556993615904426801071194730587884470416583323808450448305599147604372215129819016278216311233697109887537652347077704160340809080799828579531967518904130199591840575332250342721984489661715972354148140016314540138837276841340361877976878056974054182708924009715018360762263184139015838875751432724491210110587237939531673944554314462342750236378492288969330590215811593540474827578552548443958281168073442662258732768254641835612452930797146812211762679289236243073171474300327299051199310552834601452617121834636795744855022548601460548900440289971663028113357831170619900230364141991588939345454033750594100498763683221881078616231182038506817973858399421108174328034772567845724371620727456744263777071046312485297090887028491752872353211843874366516139395748298139831848104110802940532950808767614504795227790686015071036529110164622110184261074085893371365024183460058649986625148603673282203683652713060759821519590283463851317216639192140760503589853075842667763748965239918204316026813882909163329738535211710371403751939653240474143728605053038613633264696060261245523874857279952180560287960773281764102949153787566379543484677504289605900383028636193697298961277981629673680544039170268196170248382369260006427622524938409152648115563647648677597019456551924062815881451637488774368453612680541779876675195936496118712902272255964898628619601301519637105885715547985676671056951385940623359199661637519813488651915999400713642220929101226971741276069534490275868156108539069637734365811468062528467281387606620083763726662842350388131581920179508307660286019938445495830462830853164784587413142662415558133074580837591320890572664939151979123637869207009578496255212644937883467935610655805522693384544098339540754709264819538196561835268676934247720506661354093410260675926374510537187332596275698686337234215714119174831784464683153103465577302721188928178338584762223739793823875952128313796656340088354210960483823577857622505183022328444004152185724529284200037790898722353366488861679616919617711374714497684930251083542068210101596198263838582005458538463132121240820681399139401386765158519962189950246769376215037845119077997541851316224294053539710172876199830143594128707752103497857214926702122353221604832735862381627014911109566907615952249194293958165948646359074614266725296088856687915801129779452814646841313424982569381036114366418216966069476230969104354244131748329386198481220426691946559682334738377774194403002151250562161003203835778943800671958523952603683576043330011159942233045930992651548388858011904515176212603776804430674653864756892619369097121255922371606934623325600680100524088922198235997134242904504662201296490116016516574241505150929654088567131197072544855352526903445328937508064419290851072524384250108423710101238558778805069028692497210578932068240814676420481315627592571431923440030866423831475839201590761904255321947343464445291185059989084768984623464434503756891371374661465819444640857213541188042121743105056155971107987443933824602797325796474194352831252959765073717601282105436966512454883164931409169454789489481231290365476835295060884606612309784422951879967294061891170652664896723551011916177829948257278080653798847163908322460341887000568427287857412034584482987764799933819395840272039305376930919808888773193784648158138347786697630940911671560156194619235132461948151475692637825649139100893448826972962629365521618051763502153817461271541269356000944676976293121184670827659827675156055778761699284177451051205498805479514967289154302996769121988102263194659806380466107909313528579576748623715641912894020926250639202845487656316702223544676210816690341167473368965489169804099708822575684642280648545708318154817250273792269673672784912715565863640224840546063168807939806419100112929897786426347229334797515009919519917566727023998023779501187453142141411214923569779306284560314111657305305759327642940870964792714973972713169819730050190640877760201932333501404222064855249240369635020910998952587748932892628931360690716416723634536593009404115272727958044168305858943388283563761751016623783424810291350160688497828073566475942021829737743512519707760133872287874153226344589132402122697750320813502502391095803666430441163816425115709560598958865782528537459791402881531827858845534681549985350107240132266882405216442066893411788582494218917376549450849838319859237050447999622364597633783102876658161006199134097048737001976030275547056782046261032157376810526375615966570871329518156571526905517524662773843444836488997371609153847608403423622154087723381058369122018827069400354455106958419056926324033646332479352389420335022940888654191179776785474839391932532023754386309108657144060763630070823523038687558315648231365405122104152679212191206404792657644742105972007885383789869590787136258359252559437533349266647919884522437618351741520623461301130283651336239270431984918170026440207944554810826218270596808391457080719878728399247616561072311995982939565367089892424430147695655054113294272598792370823836572120818943836950948373046119085946998249460007240799316913446692628794912376799654186862025457005201250709182421542274736710137931161314417634846048288345099021190042586964674657339554716292062078138985073019260937123388829418246289882255968812578775654779233810665096789039136357956043342428047027154400818827863591071607538442402275875671708650509425077210913979591956164951581474901537687406771164931769967459616654135126996591150361842991963998494692790541272196389830023511426293994231211526396235801681865451059528763009369459971378041904852816599295029232965397933234560293776936851847812344141062582883491532713187406894686940922650708569253546133878806167372671387104359946380006548003802462181156016198175006861089232106879601534004617234860815471434097720279280791131425840402624818141457677595315016888385611645843589164007968161910830872652691707120850136190637200006202543324568777466863124784704137011032025728327322160978879302833689858619780220271201421205212785069659617922641473432580319917526200965640475600003541770902629426802244890372738126801298853539021501439532471402103605675767071574920497541345772336534449044997478973294740384071743337591709878078721996350601273102501982917772180162354252690212191726193292119808925537077381283316811836748353512616092939220656347969852945363935472359925382702794441487350412905003087486736897444034333182556164333283827529342128863233167377338539892661972592563291830284825495825360758007500829743092214490506228140540072380733413439797666332410169537508361869226437475528357585011316049414668206233909072779611456075897143437996738878109434963207582788080336341480533250037306525875288491303465116945803731133422204268684494018678888217863323632493662905517081310719943237271115162682979922605700557652296892019604198599129481021199261960493414085858305376484082484396121204278597553827603160733344990196979962692742773962175865146817119104249232845619168440871317585886296557804836316846786102364820273949069714540013829524556688328528052953347432120107310432504265182205983341369061459836080971864723818933771833335334842203606072145140848524854883628289613766134481380343850970311501713085712689198696312984851218145251074016626477979553434019725278406566041939164320689020922122075658942221080769304632969683262524040229799477563373229035702893479368744982544117992160839793963798055874045191596077659095920486835689772702715204494725309142645045879227072060348357526476725614020532135063962884910237786634991449200108141270905381649814268543478839783248950354273000835124625530690663240497524095537603094329602884463792229918379627148790793737388062937326497865961429922798291279616025288605709140961654493432258546939637835274531813165031613695177941337367494453896277305661312233043018802195194967181312655776740476420679488836827958793711390412554149145777922948950045383100288650701813217088873644334928007242262083728195715005956919659901519538986835004064701755290256496697058230198345823014498487717551762230770878504657060683566716919810123310387668309908666770684688830319851638666417794146115298270703453476412100579565622858167913475434477723449469502019950515802871936614195936187620573394468606005079167483634404437066376752991782144902269904788026388337227355842721179966668175557122234207048791017138382349693540246804488016005193144468371753884135447878720122826288993997869977333075032432424985501762148224558918082949490538912555979298374659666791496379625876967452975036686622336556296168009649658079513075197036180652671439522959596935837887251699342978143690695423534790184695825196195669155050170399142785566924002676322456193098958628107096008167774953064997109527541985894114691390650304196606428098641014493206112034565546663553834057595098800130480518866681447670794168376665560527173185731532587312955932601625396362992093973408109955293876329007839803383152556088122897577649431749327951969785561517681442530207018893815563583933384958610746074790133717638102522903807660387944138079649925104971123321197666362927900964491140076722180942760682649091027680878270251967447912410311196440944685309676179157072325736017265705051714133433388042991505336480168608889654095409801488736372914281320254591796992525383677440983946438722607948137848883214093862446045222848535443010606888557976572759648053414465833542676056269460098954350430258328150164560368258586581205295043842922757144749854212215416622677049575676154717580225694925573531822032767070364762802914465042250120888749295705626171322617087046769641713786514702897179420531979898332815270860855216204417820331450463106898213775845688863968556404915769124880070244351744621623026204588134468399891467584658066175900310925060527577769604951424501931105483821275781202542278323696151608908598138276450829802177272084275081713485702961863382652523437259330058583051854037852656063121899797203800210607699911984157416965448730402872106248311189313883162915695775543162155358963364494338962575837123152044670257211504181003386450354727810578362671800053216160155709280557325063472529059960072786270491927062607997836320106178871092659061346485656391160515642213457726956984744884205705520955262056967444068734480076086277924143331815275492252127547019752713867608089918664276782289020696374573343312397787998921052206168572262014729054432617492099440035110400735226844688516998742943339502641214726870451985177955987507148069052026704207573625191408349189158385877096819396268582839142515752568463403794649563574521460034537392319715668809886821764390980914853414703391518184207969853001540926237779824257288116138089631566052475787438682014307769408025952342759612733321082707529245269253663498657411837283470435614631796771056833463114929882158031729223380025877324935856360904020148670751493440588543077362305213254925059091066961219414603842401070385576583996385367444295773920328326603579170646117158710922700634696705220715963626692886446061144607187948373073009228194044754554829486880628975388947592812288123598177575027895017007773788734497419690550841752837245555902978652058964059543440685386503478699275758208883886236149953043021695538112886273437496264557968932081157571170873282827853447805490171811612467099450547343417465225008322005322110002338043603941107602052624016532358563981611452997428834974272136990623397599819891927309843042303863345863760339522284981736492260333737309218449170903681033737582299360073760902017689161589055713280416797949725702574425085004142894126634373995336837350289198144555243659362491441238402177537489542173588654031641449439127634320800720158038173852607141314219081157276160697948285396328592766156508400659922595968203082965232207093289330814126231595226657480342557053451651401068455064480000257390946586262841800192823009812350455652667179831458590251386118305638404482080209846276789213125387500358527403110549934446308163868748521749343884104768646158490063258631698406535399080578454058260426578348964675546427706566217183052064169463217549564975115801298761705503550805022042815858893386625176750114684036545309591289450212289810174733038118814183078463291415199172123349645294586072183783735350848121758806975089510637669919498022245789399030468151582698407407631061321771314873686478805849818694253171467864005343591286719007178161300763329464970267600686209615395015221232643531058988932126867133335786441196316886574501185221439940396876499492339982662167242046068456711867632438406800005693511911083651970835469835106281465814565626682687683570248856945444424202166274481925728127689425296917209474342899132526003792849253743905681561511893702552565054785274600558387212310541284842570617591550828320201008204334505485160994919638120221981777311193402979191400367110099088587481764722710275266763198349915606642595231335906340203080759584536008768918946142782568428160661856418997229535914160128040578666760327104633436304920721138226671812084642363410202980569408887187411820266528389378510946671448301206912212674410352525785035832248067210525407153955507727501673304154595662865060026368057553602420273781978990103666368642663455984907523985778753930745972670561357980386128115067111651554506814361289472758014617459139634199019257980161943227391512641431353300884963735976732554433554530638648313988714722376468203222065061153183206720160267851911684159454805610824008829014744648310267620086432620443641139665967688219373676217778837494027876387392250338153534761573264284418415834144631645492361992515373080578930507994736985445953082797927646906714724794867293200014303600536414004396371910997899759007050250091948832148291663988915913975610727881998200404283977445009152993658217041221052646773506464715867287407587265922436815884569848577855204678328507541307961395200725313080099033962732226937241960912757663180169812491148377065655346144515195822962150248005769923663615399995239974429317635962525425855750149509561426056164960966820517502425906490929224543753211169945800240794125138443433697083570697093906925746470965579029682892854682713876293450523559274301265885539560569045403764824416137825108500227263918982658008512437688081731524221866955664315193547490846429290563846142441989125490329555731051610580431153582909243930959958333200708040010378708681166406649586729890116306340765293462086649254054992248652123135263452512410449351768614703462747391569117092638912864489231407148517264340346683720619528822436628444584577208134188926554050222571473946416438629177700657805448474161842980813629994322525918006502198371660318435041668202482921829070996293676201359506703083400773568868294843112756554774594581024791149451967762890050044526409636603986403849005319618365024178430867982450061852107516639728561005439484220455908949057687000127619712114369133040530194603095844764549345593108860003755415394228403221645708045784145395939745713908742535785594573917721022527980689522022043005227965669918144993604557890712217037990206911363181337139705618551007380909067039606792090198106664312306612969359722706755362091941445090389137482399915573677634946339618613251972524971884159190760588043682904833752573411011094421299061079720877076339919659519182757537098791414180134061825777219713467792743634632617657995630488606188443520417526862507325229399609177965001547967337041490298540090812937183304877471341143903854111258568051200525305478721083058170508951875516307941166019646227831450842443928932735115736310119469466209748932817069892944435355648324746446554839722328024888920737032934227595117873629949004581770177711836192708635750138129324166427959543864816437926133041481606927266858989888771644210306650622205266460670897257934368068533202519475640422129257326638976527273097501648778325470296207216261557978412974670055429096116396020436465426897464856826374527678476612849038051284001837573989524967763309154885637470590924306853177128586843235400991589084818583630054383814397084428921185538035618912686119172169578755384286862732706564113461793657205935971827703721669433357886656599756889728679320814753788317678538431625939801949024720415480464818307917303242798842832604087220875000064944086263644968757534645358919763232213217159385288340364931840723275567841961382184379986654261399085812891284554110277559378206197187358996038480825565560231302536036826569563501511124913587395189727291570888896121577605760808157620226104121026092377761813941346985657938338710755771139947602181650442276706265284323406337285197160490748207177961296120751201738584409461750573625262759971928115197133732553633121440119391114335247778689161907351122953242382944523302597014216753581238337801426193463715165434511691850417661294765817398925541545211201107317274982642545598857730875570096063573903717702717523851733542938664150216622483141196993473750529373101472022265624406495548820132797619322309534895113256425387751405840391062309221420523107207779527934226596025332362254407566548759903841341282667051456083890706208744914586942495341359300433237318748906227221906698170262249093565042966391578112577558216760476528680310910656801868683527258759369138246756523586353497522355042438931319614732161022543368670167527331016686426896182582089972301498093159104641986372706455666417030883434324231174038291922071350063833595737181102358321855302703240251220659135026245724271352576367499177364655455144252279283483641185080230809073457140102173980857853736948079790760959803678308557124507843024844073135490509910616073120988622723317521131904293673044172893504928132099248713892462487647823004263529493413840010517286214206127521277379863324057420273062688972923117216556815362864240503254875573798713339373984147478052098718120156173284893761196283703915656028077100195521710577214762345419402935497076320386079684166610853882273351521344207489361163793909675799486746064486441559531356940158813244568334697959122121817570288960611129874372630602999865234134011645606570440859808336827334492973848127272880513147440547475464930161545319795548527576660480598064424021984912681017765649633120995616399071932639711439169734804254852980608809092619495127782314041083573159872186395854840265102542026644201673170534622646288809502894128657199106177102448628683849450238911940564850903359436973081207410399117661660272134883633068069176306244649059714531262039698420648926036934748631680192729932318334261200612875351385578497503108148676701937359280191370320986210052158568051453036895474024238387372187395345788391189551171479347251981541581283706465993997877170917192761756698652192378646877313122454189702377913736139159319573476740226404268019359952301529036171111110887167683130703166806648771175438941082209689017187131630512632743621243012615237668805821803680553321731084338640690031362314387886169979215764866885766866690386650520688321518809549211063005492480855808756965062834614244602395589583761061385481859260541061728015956596421567483410088527551036034892580692417755631182874922491112901258081059068919605792009961398755913731643999436762687912544064302916717407242773041039657928379679415156381725299955585806509408937050658575879428005508051628996565710554753916735843871655631423495359414706719212575338103873238532277277991710969239768696175234543474303967549619610640729676016381789772556893279354829800387085181475607887635043786805018983147434928565949507294772274773459286906222891661366555746643710516014853704921051869203700704552964312179934481521197292026827089187351335402249138783812654181372824148763792920783168334098555167483518442782129625405868059470208011282633257195168113512991093282880945322852250301112182148224961243344277913563249804648303369733616434487116646347107033039979164470015660696056322708476421650785640152694442879311099073689623630223899401159282780630441615495758949131543083696201283597478764330872617560371849287768347497238847456043843327204050533086379433504577578954835549273268209062574581870961342513008689884060005732756071718714981790148716964564728697442933873481311379119746483154174711547447909004475228152814762341903631548962680189795361299273725980234166035397979829308566726643398354242982781177291928744814222334411679156533727477473968118695783494542259975904347552266581135327409444591193023763461126011174447066346400245737481489961159039074184012854387556540740074036653993441017030655777805586194766802660445696105938168384201625655362801842891479976899573436574494463988766547478417817036364636059975596200123543328595154884940469979446740745448939590261534801840541547811583657983788067514928732389400160187361192230910122604995961324455950617675843965478367250592632310433889921933996676147111129693389568435948523162385498213558968694217308246720173418789551448331605134164940457131405772076282664677779123841037580215319481303914288239306185698997511181072672073690626459440819575839509276150879519337208043311062388571981152753074267160442583782857668776168229079418417300816866415883749373283371917826706160875975952645100078417411550907059711282147702939464647139518848201814338787844593034828490679379207790113433200659459876266870694802299511518709867059878916321901324570589621906176587357937131919738852703411207727466206955290833758602053535765390834486352172506570863037780132528448749689165711585903336928191580687926857401853614426024521576675904088946627393963168385672157973364155695362743100465909683231939946506786444756688142588953703247903221142626180734144951782149465492363983646959561236284482565796511132834215545118128823857023558062903627242053432417189560529145645290064783690578038587597204084869311517591069981265277050169861400881020240500522287287745379380720717016279667999207490782488305643662223235068371450663970804277264173647131191949117477388274170474780153081924656625408366985389846499343016922548108304655351852045912644675679508196572848417078836135700873273558980784624271696293671292530448758007540784961785838740264747138938416442981361292161652786527928659731699149415558166217233591326197265991336532620265345901436071281593007500033155502533764366276896143804344716673602607088162271827830202993779947885704279312662973555424781069573734710905524712862587468953060408724180323362566494311363419749458006090151966691521111695365201099318366213266326067618046437136895185847417975317185378067434734173892285075391956295562961883937435530842453914887131549416299990401393333642887148234549917989152684114214986697367574892768420611815498596175068221620638561659404418547638255323215085716320979232954562222311955713947287143900321676839637772621599446300360301435876603764606711102999545825491332969616858017175594024422499983356220544979752746211242825733768262723030218859476374170113964056514714818064502710253064705450327359677872703191549278435555121519918931337104900570673334373504393779490490426736939211219067831573891346309618876597360459801032084393083413191800606247534925314271946961042188922482742978557729743401110870130695090772986671181213213040119258371182253058819612732366985160170498125173532967473527033505922176983122950599436743888636437264769116928156029756826111235716708996489825611647157494562186850674974530092649736315424059505873784744615606160953854169000508449015119244203458823984209182525084248693889620474138098877869971543250392909364096000611122556538641443197572626142738837423440013245620906873914933973260453170094342927431016358187025298903305366751382909134068936677036691675603313021272011324231066187284125455146211580223445397894344126580232514206972816454085135226920890208472973469466412830373439219512818998795616108407683378184591908221907885797334873943441000050662130904975905216032532960592589095210930845812484502092594052940489271964734206937230654170779329574493261298668342405330193187690988159737620144862916077095343916619284337756416851730230737493755285651632275244235172148204088763283753566917970938880218291854001117671062041449811317550643986558460750657812363122076771474939565947720924370111436299781437102178061738994119946616912566473449085924561074674299998129347142481529401290202878796445739190841381945084203733149874097317686028719607314984555151064796072861832060536678666746841593807263786312013232838054549111676778912536306445295857607401670787331291369679890655247758386016994944727668074713350798283875053602720850961273883983711097202231127520400108994152575809129931241785897263689661089250994367798894882065014629937290416745748331522878355032015116954193105289035843519184284534876478033549828122917386759583711247463344267926070290508284364012248067173631352224328459646994750187958873602709931365728681010729168626543995346193494564331927271854690470452450276731172561825895947280763380528787603902045206438005885443290823903411436857968494313486475214564670828486009068644633483292044694077063275638662017938785569404653037728921588949646211176359387414314337789905137154492391825421247247332698278878573361461698193876011869476045445709810728013931481493563001565795930762243517112900189895270160142759576128435823614961938476691422838330112833501584272254187885455924671492640773190555773066100095210675545377458892748703280753510453357445751413358097390097583280732657614741347782531496451039865109120988606828100673815678805084888235879918117351012904668773898938677187495563756943134920964438702019098925234554342053856531531547206117321258538757558697803485736133122191454192819402024348468020121742049653540369760463747573671951991378167416198672482327667961825441585457829515625628074118253753215375996963767352900026902161014009438209278324706120409636614187419013325288817861371152581198303711768070005823982900368869905890799637414910785331839565031613658888550345763683496780392219268784641013243562999002396501209213471598423834705069932861125354121455679670245384029653900738625699346051286794818993133094412398602154672864813937295287163971243679286635495519774721960134206147225699598240566245634336638570542044027282596660249015124670340100998868740973128815338652540378886137265696642636262700574934628694020947212016067932855042229789307704651279701704143604068759810445351620378397861056381294158141221074857986185477861400384857181679150996179118866580290102329480309812221354297826728114454632007065022551565293805439483575963323338341674844666782039924523156904312087601375840601403647310230554731779316116316638019182301619206320746737853094781494767668237736553171485793121702892532123110795867167407712836234827938021796987147992647101432576565276651957651192003132569043432154390956392505371888343044988433326577304595789532990837979488020921899494998209664160930312440957036176515598398394108481422055729550489751352141500699730545801755895302127887876842551941934964420066134913870046805413131098316394722726211943490082450223445461334859869740455052975931660780685888155837018563079471334104966686632643771138795127336092488137128277812929687406460583625980516426060405930620541213675101307691329476829857876753160737908813325894658496263118959255329888271882964519777306918178161592221715683214040371541870625907079894884589318327157866525170744532535502031703933469031339728711421171560141059355474878345274122490898727762018221740662219591210318241235216112724307209342086299122417738945695632728458752473505529782554758595528530603772639502373674363930938513361892549611482979086760278617158258503658371771901514102331634268194102012718818477147249705978910693361362683629123250113166693928577287977496433750335851744808330207457268488641733395047837511696223095932056615599035446227769010888338056586237528885131413613268691063583393095656471053592603752600619943945712411979200379342553775563842438245813686011694508383145931042274725473549001889740744824897162153307527499914559184245400353908472200567130652536102627615656904210555611279727438925693551545294017394047580025839284534988428606515512982012708132586866338450509750188248264095585338134986964605201704638879745988102252776858758741651909450207776213630463542906054539838941140421612464870870085162317705209801871897219186673682232935402656129982824382239922345569120160518048435479117931139268635193151260600362913214514022847885374860843569950811134251441998471583385663950978876407626180244085543566940722272262831895880080400539589271637035560497751967054441704579881988584869372800873921811305710547371431907120077390147149013179990814074600462217097974559289821626775359193177271805258243796908281480282260211142468161297395935829020431187961598709821819286616651775497375762183577060853637495029972149493258825877165690961308406694352325247602373643261516719844305722867378243199150456029861412297140337817584852081366280512599318873568356814109138258407172324351238926790399691146452364312403053316204658426049975368802952379624993718122039328136372752333447758837240526685170176498068294318129732147755537553437695424986054817424906071914335253367265490699683193896249487322833590515260457672388519622901348651545951434544213722241103202608925506344690204711376869901824350868963480249854836605774298800521339875146231952401916195361349786072425821967162469834006011688203594061496778727060961630397505993828931862953765282780312565875431791175756035867569532611677303805791761259788223159998878788672701448100777962822903482434502876626378800187912566948927252391684954212040552552632775449700134371227643830895832472984000923896793493188919054060856243852971341750758671827931559208080545379148031250980682790101205668974602192510715816237737287414589382601793242687790344596503096908973246579118587111322589154903311985924044213391254981823978966334760097117237297592953594525354130011361869536187197422438776884062582911881098286394927281305078617112108158478223567725395804084993911630552560717016160342433433194314881938529001184658749392464788039858061232099468584844631259608086006949041324098020291194247523990866478070933255342845678933813033041735043921680578859632580482197317068925638823226757033948604452381337995018156456002916346207566897251766210364328558657997408522972337040276183636268247149692617592679554874413006761355575891749716367669532760526763625890107911734393594897514610045293434824959382218485188403521337034440111062961917100705851949436019464018065316322671859793018166946458809010605330786157644554168579492728922750696530903560489163144962889123858298530622019534841309202511517602661298907459947770187346958058409869078317247766018076363473481464771915738050374574086250926302098154408544259091988803232171590511870185011698429071748710745998682896535410426597878818477914283413197423887815206732862038613290785304957328555834727438314964547738843506141771946913370969249528847667246661531462290910485206589863694383104089155279171881692664374020421338573890356682447642143182335740655344689888366701400309828579585723939119922208519419352202903082266703386249646517284732089933582304607885095955714092872382954981982557234616133474520252648676060879561835227057827410665078969431616937288274349623347268010760977567108233453272214558455933285195137108470555594783002768178762786412666128344229720957050056712900853737938725378092976336725516455369758192834912321546499358624404369410416419767072354701729376673396220974300540725166018999516914716261819500752125240620620979226286020419940448271069418513021970689932327630305193516450072751755964593943955737373692409596368713032075571516499870988548412010426075242093713866231776122409322102927730231699615392558125904244854620122158859362639579904872830203653226107559839094277586323787776105535282209441693135014452329803133768771461268985035555709990147567154434972549692998977138046336303394050738790202056604484544316162142910072461220610320700857382764639604952483621183056976941181788017716308175130263709981364642431751221712943368153283010103253733196516514485125412856653188003422502915659965977675185519152244368531546871865919324235295426249833982925247885078091029125831707746998093786107120603783397583312393514439253842218038636083275908526235362775043023766946440818441544071227443543852246496374084862886546181828679228876752677233377459802814810690725265988381760995891430908504489705360660000803908357381926474941548365235045331926568822012866714071922363189551967535302936937575035527690717035718413239490717267011308942309577751358316096080525931289322102987457704629074051722901781290106740788297269403119564547162523219217736324758814329794737228433025465745725091558852709489094988102842350291243945677188070532552236959866955260469749512296492949293125194045665651909303497671090723869790964553444367342617618897361717566826665118580174491708093493460269229972542063343949462402306297732377363506865330943353226840127397695210762802607282333061766051037867101591588477104222045931881094364930111774497488968180031933231678956779785049411348120838233544542023637559023796897906681112419360927352687466576403688792123487511316307561170207241111600331618563994538316460109842520636414880093536308500960982572276259209185571457450413650781867763486304276204784384053539292486828996831373145618469296213813867426333164766689185035736505436271951507936203659637247254116470527769459790568437104988434789917536386852804330403038009189345286833840086366945380978429740534718947525894368341492917641728229738421320831223833465640868441942296004493269827320244407846334119978454385576183676523634633033458327660074987432030032706946593494120002629207307968235049249113604891532775320880709168961378131330400464509893255187098918449277248549191873948101818691650925923386149239137240062342902664771685438392368162444892742197681569404968598126162935522429263880856356026577133078062300471343863924426915787414187969038069511794986320308888700720851800028606875729868712199184185696667052849977770864735243530401310619503457823572713684419403676919775956468013775444679649586792040384653159818879116554322342084136591227212204962904907037262545877606577980240854330108542717485789877427502362709937148655217809470745289355954412721991569425518573361599870896843204075739034070500435357748251252571870590180684949731396616759070322498340845136542912015492717046298259396356865420946235131899879996656220415480317548194283756358379545852758127286229702911188895265631557593076367856681080969451017887176170415917204260531503540221303895718891819595861484130850602941103059322818528349893346177147573804828357637480203735826011956807566904188000558164411348516843226605725858701785521516877323475882355428916493247283758552713360534514891440327781103156156816567530892999314442453734140442318899497424840185291367768069903262167629037942594549275568390963365341660602852051931693859898880825319012882349165825562330659344698089304757621631468463859658841082649878851313024791539387045813785182256284582840012944991833795364325261077788467182284022756269404672944630227680489744167056639462624919258301903250521434229459264664297843626629747660835830727377134456017587576912147597584468492703934657165878436323732967132490140804053870124190726821237756430197968958727705255741801153632242192508466284405421862246169987576243849903805362645967324412676963483176582774964860517125942528238008837635011963794363775241773339874782086215219332361072366771335852588681420914011886199986675491532626026262241216080371432177665091267181731577748171581973313032074450488104644666282053256455477558949862850586778312970706372613363297567736310650929108010799927700817213920138695194455597485575947476051507592007702865405225142459190013629665015548967485530048412730080655517554989768263079331175786848288714007009920943261211452276020973401472515574078875729540633375893262987280302519153546799851720634043751106259658936492849065748731160464118488340093124332863226504872105128918781412863964679832929069272370295053826870069614930443735728802240946969995056224865605941226303058346854304840086899335301560398887188492676872963266968640298760394420568534468167781137881933957300499107809656916765706596224469971768032681320570564667589744302504168286306011920715130986626556580351077059905656926971996015309108098052960291942169165051088556079198399734085860214655550168182604667950360999164545387412451477444561158858408396741866610077256758809132086477779736055939102070626725126576763969045555000959841407533983389787955246992176268380550467603893460276059452803495394630000546037365637538839073019957663852682353060941288555858638532606169844029063915644456607357856841713317933236112726909274045483328577615990956210784944132951165987657541206290630532818481846992041255283909105906527046472562582669269336119981843431185071322134869710150859878140219812870240733679848011639515416826122463192381138764040895354566579471492736419288867617497307823121943984829839693119232495012404398072854633041028290210780459414905112358625731922201380782384919305204839710953271963650429581589020672628458534996926854665033889520694937029543673417087262564984149229851733820247808588173248786745476052918568685142397382827423632614573931179270032579874721602519392232099219779781041781775317244946473423322131371183348491754770167387649999566748041503616548818285363128955111279401784364714343127429233683288393444265060633899419181894333701152302609047878863848742878255990922536049153757059071505126531912912405088515553164892349085232527201005434740403138072568109537276519594180011991671282249780117276716710392683121336819388795787297436903265993578223251260675805184870835011120734374840376594053144605420023384817564547267383377677852674500030935349295691243905802707968093502856687620124416104343918934023705753437529197047681868165836182755412258939175435183714344270533938094600674487840199067350161767762710689372482828011313123055454304579904055831272168118759462830180572670890311867907888164866866201246935431060060001180350763954161409025033521780458513259273827493979782656991635157460548947392200988471431640445525449718472756570351028642555919783625015586839120816570385429650427072772191635053952329476047350002235337637195443340432847109768551835374273297352229565756877478268332168797097271651961448873535682926806970471451425794573828590689503522665626421441102769327671243926367696961631923491564926808880558408693064938538798697350574393225026152420602668039790401954227089724386071500681235434607980480574771874115290140441132851914573556860082563350756094269336150549957205093718221132348867065403003935313235173208338422287187306746669646024393676430275276868843479406497687926939897811875723071706767150459430184760177759130462772068991593067627116900416805346186937939583232571314290431694608543134593106705746230851372950985399301525221549583929298500075016219172955585116454563864013949661588699453315777580168687888589452221377353488054037366523890131141360448597529374108303595849539908208020512968932695740925491470823091574444155645204209652847912837381827807567370967349032032245533210368620269590596676289827905294363959334770359489585529000315824326351619828229539864343539558443442822721221718650761163329180082554348660227296147778414047227334458589565096739825073248749561513752147331092180328916701426009248613285527792104077442062202006123975035817700928924717128603165071095939175215116814518811817563752383624402636790939244995435238615154884682363070504021965147286330125106433485098686850078396260766477414159782840116246769492784944740065968876194468030943262526790053910120655691508683538335559526378591599628422444663426650316791231674522794017094194567121840871755187270559450150792894579904863755487457150601817353278825228849867790353750497205738242919839139158474680172490270072200117200981710097937909035381767695012543541175124481662329180278861683832378069635142820914672341068313152707157529410525271330078513956907744511746755490763244549668912240786774528746891446786292630853975748623223381524027343459574510502328025750489393983233924489756923802947242720934809309766622193214469082538547057558706012321863627633595500616182545781124238469182834309796521809205520705078343826141760250053447516766538875300768419739518723617912816060423806380541921613855906047025860313400005952827350087218697889621592509477679152411751103554016391259297568259364101974974949269183057020518181711584727622797669989526130020331342025192140723876934698811136694188389017172030205954811241201716234792484727672669603660951348709362909429285459063682505976255949489750164128484516539700259688174997709754629557972294092817810145200419511400450594713994074050405485883178741552071482988295005960789915652377786012288572274905197516089131050064805906335483178303531947839384326792737662614979771752460519577701530304251299343150258561395688042522200277264513208570913513935978929132294485991762928424709550327248558894847977241271245798596080349476064813666934455112959437136971913036900199098403285125531786310300337065682538061665423166556241569551996473768251259538482653231439303911914940655552528284778184128921212115851739111971987737960641984038981754037792074334012488000882848833154338081187976824395946492251992844785164928252327547554572974982748884116494876356066423542013410765962939565685533877693838042272440401358706688493250956427899576296700437974510539105715410981484876135612596873295659551824221477054848613560435460948482856772441153061830491598213406873832475580116257819793933382682101276813188089300884256803438221824155376674737885891212570167162751553919324699537604015957864456820611171777406800893435321041675814492800795120255430761972536296691188162137377005802165985731649738707340602647643409155360874873865266925454472904705100759314312761727165554470297946101008535347142965040519082923264547541482192633300516779198164016781622270961661485118241440274790191414582991844706777643931177778626601682607551706307262981150616010858924476221610198531051396607025235909374257676458492519139680760480536684909092084289784347579324358043576787643292962823133648572775573880384506742995262032699731767217575530552011523032789526986189219502977742242229346840456590213585118422544954951339482607612008134238303683124884333502857070878607739596436279451079793885643306159975629161448381456645485174912709246133251035019784788072851306957672799843496826587251554481483075369918337192435870607526216308232456517629520745324170223886740433257578872824448045548327725132158741713527124987697194523644089031052377382186232677154315282296532928832585547407191616529897968147583422934651460132069983258323028184547907920285937608020498445600983325496476926568327881556445428068506205533708942735803765046408069378931505615093106885784215258954999794214335521832502969707912346334821079782071296440328872076091043581087769689978182988171900699867248276526318336269373874356973507189822447664309382990526661037001275896882119902894205315108677916921523409327787662279591191111547694898675686146487745733317640593199289187156747015409780881021156831020582978010573272743099254804857846185463472670261283335710804176718129221011448792525117942287794517457809027246699981135799747694215202228352412643549756691746950910532907344638648959716368668757833610731228547080620796129523379478150330925591127762566610242614473589538878331366904999442493738090401872312264267113752131944109486640551062143623165901669187744066883037227711900424426556260221913159198740436808733207791067938903084860707714979002091285572037420673126559153172765533378415006015088542045077080756731930005731246607590704656994884603406502060066315546658397103508076329774791419941389399530066616525325512305030386181672251949905919781283124672624758893826438864873124456614072417487897198145154535933237363790047483405576859493337425699165370460376808677818245452228035671187798564944071490980917956820532912849126277292443708043627749114965605495148004358419042091586634266127883363190832673771024751859758103434368867790884475091910325619529377120059428605247120322496382397825547610806861579762911969903716899686846329313273355492593785721397521040870267546879649919525866147009945385865219786936568081161420552860706506565543115110342504728104931959141898771771255760738631144168776304593269774558384396287617491124159090188348192190306073885453258069680541401160368360339831408769714526286377744731701173816817912715990139302646854950173755861758318718701159954326519810247455663872843791048038941335342215191170129653979966469234278400181173933547463624907265910442781066572409473579699272915992119847604760061860758377781881109310806969825737129949800165721306918332986242499271035574208364586703500811513422091262327931084758390977748269556154745355646174871269322390366599023807855874114773690461946498046320538612393013276863418052665608266333586753302987734455742764717810524811159047552255537681739694744222872142933796061623479876440464440402665590707566547797208292807100767897830983559344696298780717860239302557440584456958398048932575127301174729406641740225558680462507268189632614808432007791255837982480413234934253778771882887310484032134248160089036358004490892830692620425992376214974060706485526739475646587706748508654101505648133825908074960521002348841375021783601245202754363433778406595326751616369372269016223938279821588596789772852807545670002166689181871568469626178001029697305471087852340576750663631882857587168040444413325637421902141839934831790896998463456519367648403880965407915532176883442762305847552750003993501090633452993678531381026378706243465233238112558535421727779918819092719277255997427242126063294507047273815463868890372566604077187551693222671430012461971888962874682047997365289638795845039857047666606891505081322316760840537160409719248470377242300344083703449446350955497090844541187761824189430609083610672245786952187468025090526379540488675265650101346125093928516041365993441023174633793921503896256350938577571390617441237369398542253185322831407529674389295262049353225614434949040304407812424615773055399486701166935871599798059984692310395365849963977399830605795977341935247771716060136214368239922539623595981337410983419219033593479682307567540679169242326714602221546529958602720543538069545427458298863928311209356638095535285051255647848402075608590884846562882528075621551217335305387793721091766120764206293498555412919933124123334700078586788296929001498497888936985448465928769491737487979699865984101459236411674024556942217724306534317118664298823987541475480130417605633419814514389611738677850706557886953687526318355047896704816555931813375119502367410174108383129836280259673128554306189304186928096878161979903739341186963726393706541816716871432905757169584757253957953949785798316135004152205403673727699372596697958544973583971270102033573176664541472775734817530289693695297752585912162621232002679499702754065322679716055946431326759529459447320145319009596766540124306192807350248024135529174188055410635153649185638651057044923096549060966883192297587480606788752236579304014880808609490810222802670348900450326045982785184265316939334888537250065903763536115979325760079249797381198035462060852206609857832623018215638888011193231898486113788696781818557202254854002018900050858928876837706096830400247242270012314078063870781232807713277577772158438214379640123514086139162684753401290122399073680932877922062271579635000151945475803103113058712983229676226554674131745444472350624856100113584635526357691708853032492617746044183630307763679248059422788175416698802747005793811874241155018225716538891327075122687317048216422103392732552392371839970727259137429802010347349619813485122111042727448870513887216155721169075796738593665315979354835091898048390564321713684564555685441795902282075162196931063091144612327013912760631517237158586133003035813982872446390114792813514422632315597701300505912275050939220115409520526926350966049523821482025080757988454374125727303482004062618396143331264753146676499501094806165771728943635545245699800811233472189691028051684321381690479189619047364148617418133107766884974212058301382624587006715506349877825662413981212283256135644311020894739083806227883192995423082052903437976665535892220015252266547352508707166913750784926878650013389888749016151228016084848100681977786847784067976366892981246416358680765761452056210325889999870648854639260781094208673646843898762417283589034260608334650678880911047609559930723657140407526508290203077234472697902108175394659320045449556885887918362658446722577613362754943504415962121717173009541801589955684960406014366042574199764919756464696088675883331788070061569212778868177675930607585739057292643991370460146847523133470225358308346615692185798127777742026256439398922688243064596851218312832745990367493802264216959311823534581489869453557621459479069698311469813375903646631777631361009181316135783469508554203697153068294826225403639972725432452285019406712762159787924662113742888127051568567055190661297678856757872485736698133744360238720414863851896029201316427674217278162900042060150797393395243828504688147810023304449515090946951477414506176877968630632576186871089893810242120579300695816724544499417024492837977150384304929543016675501927154073887381515800544065119690102693275248454364789853078796314832566119803379242649261362820413389610456392099599224099839837558423793923826784100773848087193225254745942558783913980476356489874609969496268289648533283432841550004246174493663571851870253936578100748986354897768038626477101129299579131265935367803093810593396718953318387219564740066637199478300514861040872764506015778674394151667753902075793955800895410594009402607401084166300623589115737291139119753474575937324094266625498061759233006085556092267747226108464192240326409212557923314927197841466645390951294260555723821540468263360913984796317561179678471908726255584449858839288607761732924779708412354016767005976867671147092786293951267505022536408601116193798391274165309292297606514685219532845326779266499878005848920410460789132847149582811906933072030103384390230950337847310657874405404267271671354374343409291457665794056941230237453671108600428776711862549148799841559013614171805875003625886340237206086866590573910277527812773436370256267728176755456328294485470834787621354393849027103975754016052629587020859828265939557247297392781703305548756876922570371452545385688603065304645021260120168482690232675627512671262560907251837550783887249635929315871567014363733143840370058537825022549976170118919552258659239644895455362402773965026427738060244702924002846265406613434176122479490871133407419696671776232525962964633225534970870900772911294190859280179977465012090156134381365217366661690067160318518850060554978255649343660514866316619933055995999037303867769926427275703879715174703944205374118218149705285990419232911837227561773686901800990625083499704114185381597052746506083419707037859248385679469929359943499023821788306728275222962332015854082997619284373451808670140512568731652545581670645718969080362122702095535463010214649428376923611443775440311108704341658207495585797530666080893676537455235294508286579032488115208108948735580698870349690700276513003958744939837455162425351483059581215849924814855018879579532354520159454504515730128019359515031563799246607601896342651625836833442693002435959119607423030066051773283552099143907094146166438739061929738292064172427169630733468280413946297097282948680312154281888419555910709577031113502482085674234628248296242786610445621225442945989728096442658437966776483686443915439028841853646893533518059004416187853892288108412551577880226169909941174759597155070186126190511625893192058078266804466135734690172942121511080716767342585033234025824628061191847455595697519986530760431427977295877046692142713146609351071466088773708204622466002317744962189163555807745412156551711461787816454445897363856014157271882948469647529200585528594787984777377159335757892337066023838555237034684890936527497830007261465073254040454661516616996433568820691557760377072369333514848644347398913521967500669478292259029129915943860454739665759013901646368903822085304854302228995079738581779798141783060685193283131712088854461669316081418138938456831893916805004788675289090210099477772907363683214970184686966812076327581095998071572817850217348757125350771592324802088675579127232364996832557107382045788670373037734142433040114744324876037223507400044901119137014468849155118890307563695069354957692869962636242845606240443757235523753044289884860990848979019132864468011842099757918290936304662051459922110613123660373947633955383196441018364133689069272345716070826354024499078724787565652521044386893455084114349583960155570800850348289153612820712388528033607840647237278172303165831308002417871389561449880423647853246432991546948372804724461818176661981174600362834921918897781070452383197605566363478609826303552033185209730307696834371858524525495544912084874221643724708188886537057070158808230123866517582630125463840517184724457787498580660069689997526719343805405178359223373517330036309137243773470163354371052825940847645423355956145118155623364390814530957047029376947642398825517414797766978106771802742180989668990761300231105557906141929584307717566748507823045225706634929794952230333090757883117553303547517260313565301078128674728077581796652640696458057736931247997393457877927494816234597055781680562581149686122693953367853295944356454926443719008759133404804249986427900044562005029786111537909628933623331416215534915994590920791298239207658822466373262337471637547051252927912739398249787384733711821378599821390900870682027791913032374534727272492718320813315451908461868484699487230292729608670874399649753125582885776792792859102119082789712239100957996605568436613336711699909171582830898885172503895757977486877539468725322059280586286589300364423012973356931809618051126009004531366563185510956323688441788367116102016705063771617440883643123115218327309287036888230520788072964148774309761227844718326180561134804091195939938042684160728621484590486827071831634259028246496195802744052970729423118363436007144719879748771329227955468920115207458429185515902538441818781041561557074914148235412872730830212440565728767643357161193204447131910711056281797824416672465558403122433590307823414375221667724631738668964211703232118107011986577593373857088209244798086286861841659589191401937859530966899473446543255861696000436399599016197765497540091410742655206592721385019558673397542124566607629955530476294589711591620184327334879459102892961737299934580231258558132967224921296055108304665470333901489016124471409195850625191100621790643591232130336735626049638480212577271165541083106752306804405416112115837743216557957164213843505597102535426227298469479517483667720770202186451091841781210948231407082650076259201500095687343502496796525108578594564285502030959084501829230179474898581694136211310686868213332539344701665169853877560880697828937068744472336991290347197207891294777471447647146290997795141469383837916539116163615156405070829165115660968020751895160991641621585156386842439949780697924279231361482079118590807951937179507227230077148337445935179338841111283690874969470047066613251902479547554851703914812473343872313901892413810918996878170419396466607939623639729792770527572656206325853055428769327081735468641256091155533303825140414936324409508125696233410225953130261202436943632884656841717123265398533479401246418135111220655007864088594484769545627080010386516177426939499821371073454216565159038892298774835919496433260013930542564119483687007033048909657811666317441982405902744935662221374285208513853464208944168858998899228069127802339238864114053695257659127451344586147235497607079466818856085295854291800052830730530569366448828881297297997798141491408148667917868510670724607933125407838939592321511206004902747172937846432194908180941735165683294127258077324721012773430439700955928887598716661987423269087610166838032447736012046077250519194309451301498492283940771959527053619303496803372427659351909687080167154850090444992666337677292744113918296865646314273743206826420157211509391317640789750203437453368707001518255204563780445604557897398515127828022085421733997541382279739476560378458685658287476067527011891021971102843279727291799849114212884875409649632771723968965664301396330371281888306487262738416497364851978830941161906010302982381260353841874932232063615917878718282049672937910133619970174592244690080314820096198581433637712640095830964062120591926468489600338514882016669062578965385971251139499677676988597136422417829681958729228175439955936172514450978895384263087737988454371462707219999779105035688049345044579749530275222825426614557428092037778851243669825295007919969808761770905096698930543137179307866615941848609125026017307537905750711758041945310998042399057958016716902688897237365787171659434593072701660816877017080772981921315158808670374590772646743759620711962175933179678829589980928512885424206964945037207080662176116625412799301013519421598004990672964146398227311068609861721176034788033579688563950299330156900867859886661841882974287066652022513314462735420771808029026289927480696392710384736047819123185302350120296234939587456837870044562103093829592612461017814452526488357338330787436129389939757968987845649515410807831248684950700021814849277563457369656904124688888834449362449961501731992885189440321463846187826658515432120349120856946519547954585744506739278401619844975899437269211285181650493617302057055482227430116020098237147061568391599122745780285300615762583308081061189513755656877626296917673613628941458490541118564146343514644786689664370523751455913599877967054731349973226026966012809479753381860515009644423788012823833240910491775011469102171170374878590436036129274204899644214524206697162050069793322429242332335894591699577887466192552255335394040506595637418756878273303762400842637473958611061582577922660598689578343442997020454805897614861960709665201775659442248606740108801588204103629128004642278765390641723292752058808643278321825067322954273825564709009208942880701158639579550082606682158163917669506428525124397526936875155983995104910501447299609933153687715076348131586720496679897868293930223456735373811239933139926296105317684138730089091866452555386337196894542021092021359669288022205656803361390390128352458425341624607235151635968663460682408958071224545106399780047042696534451457669225210501277804804356518607303294057792476607942508001762541590051439329129465021326016063733859046629343274484927194525801172982688512075655204059184489044586755319692927597317551237614588355935817901572630293594888351170629974164398114868417797498788383879605437591963112734358224716285904338967590515049226154683599894412146806293691293035702671312437768847820161868557825485768893168682875197806778336149287683798336233266558332887959288487060895847007680333197889825010526589687715952011034485698410342442141651492475121711835588817299345897912782199818499739577133670226680378364616012309123489992502701255050005644407970956247715698709847136992578264828539056179033124153696460311528966874918796368955707606628161702990225239675954822814694618264580695875821248894338308069138342127271597883841068723998650942868713378605730111005018055968876740718780371107737255077092392773481480866155910286493027001275407176814294361669787836849583929797476422048703318001221363829745509594199072407185344763049376069386033257070391529786426641619257561545326029699584952507696490501003437832444292067204784170574265162306363768709360222210454691827608857038940582401268291609389431549367126001554342980964457811624170583824287612405769425610615173233327888622618738020598177145799564751894278393638161091391604613931403610535092786314775379971243996458370247012192724374526838650556899518305106992566682519444326865442803178934218829507927254088585618244005254959787063448033565017646971988779730336525211609993529830045729412537441795941256555520117449116591714353821975237329915914900588215699149865279027975930615998919750941519693533656692546398980938505094838732305565214290163901443047466938646938125074323599040080903456516362161399235069717169111636553694252619747240820138086261151654515649259881018751051100902879648740698223667058583110465041642494113081703632315547153251150499136150398039928959670492315665609400911710955026681281070730003412579561833977561839499104772191272203775139915662341580321430990781315831062855428962802416343719341546719002320283244230224229189229798624560220347038130483623678664342727244240347548336888040038433675249260309331053341364131017634512693583002757461696448948730711629995806083921108158401009992426315542397326560024911738874712308375140459175400554134404708946033618639612267479031745264141311994324144357101213036256277111185252879756354282413736996543616374904282520682694214854598322829396948996449317927380584189641174937623799294990821653446924916423264728052510008632630162177798688779952801953714401718316997845602307261106199798035846608919273101020624144305552229476594094185847803421165873004340371052947424621189926653023043744237547609093849889257891729580691018877061781540229633075386034953925597849749560649931069651223434884189240856126426392241296771859133850170674485166980958325795756371567694869957030057683708463007149067374853736590115605519674285681512204694893445967312519199575571110145534734535145470764554406391323771687725858851892208687957539947605689490631029174935920813823342534376207623014963460213718467457480875470992266755598011156255754848423445552440632711470105689189818770072327523068723015193695751317215173790114331875940113192355906976879365014452072002379411916887106529899588297427527960192694765350622534282721993143468729781809920249001771817507874714486612504356452282202151945954777966231469583278772445130724931164667719447249592014004261300576698994016838425288463353829459080458477770959429589356222224255462787185194769479122880442134077768237223058599674044465893888258958303903490930097395531660617044000311417631617815689131017953635218679467775770482398193858675433919763564993280663706513075798957711289820328677631052220974405601186749034136306546270722805662732365542066780632279998153762704534657704552995902055878027908256030166977964913833308641007862779298140868075736786043809368291079721825754418168938519330309553740343066272722590067973555711838291724037386178357977996598673194590863830883423895414412668841319277449512051611006187800013469949055463628690568947803146105679327514997753994288213217181541775933084204288983451694621587687457866715498142299265429258019485807851889646159291073194647844693374838779308785472828599445999665582279224304649866812426871182630823854416142608363740239893309681350047275350530349818744799181782495458074553482433835886939949624605518757068115496831115781614302365557074956951367191240672757664448664993748731116032011085366149337449974394909324004327825990562420063300632212583934957323564543708440609798642483160657928030369157767276062755692809984880475316310941515105013714649602472524405630023448786556737778490973930689796473912617576445394656864164914001383890019421079304446997272054712775628916548125989718789769537618680421537338488030775016576383201909702605213512239918449824575547057051901336608948501598753492115467637593756197968527894610406260790857139384240622884265359639443937708190109358056576220881904794284778327410908227888393068835559408777479001998873909632356840792065050274238243742386243888720758511370751633335269977781712522077954393875784928690238225707880908378555296917691966941276046592207667159142096275301371021004476911789093458539013041692869647514248149008978023455118452934233671605856890692483322257645597372886017990398925041178596914722923845653773144432316110984352566596916124100145242760091577901266004298886838405301894959145397988288036061457861129401568240582212167642974087071739839467194492558217681378476879718552280873051463186381066989071704049527391662676227919306362230277245024823031442014093258724959941564021190180864892025913338239203869008905399547256073839263758863789437068960002749324052498497623134247447043796477141109046838739909746363088808425751698372149972801673459602466346676508992266439744298478486550157334346523957709069141801946628555504474486389724228750883094485720012033009577537948658599218518510892077044080566255244093404636283338298425035327568997195777096809130672841940497956423170919301416775414486372656702550623090418762464212307959182727441621747658930738758682116970598680746898498969862753219761230568202944865216156494988126832780529411822216187564019905527354868189282070783886751241639653444707444068099652274457505246625165828600808954899294127986717117689277475478438300241079111891323231790450986630136374990006772904098483638497107252742414018614753779910507162966357348259395679162908408282912071224599330512567043194057517359642665496139360513721992959076604160429305248948682244453656748041752185154668517332911881188995272647943315832563558025478473549612620925565944723341631948758700130432403666030787310074200643710334675487590448312900382196218053358748014911363906084139116854210324644266508727159750977632471716697631725347267935851305847111491674994887637836131883075811304666413400598466640238486596280229687380983512295695511024688917580863496174809652973693453960053748577149943983412671520943648207454990120757053176325354509155008444444454465305200316684382223258709463089058789742837437401629292292515749577499691150863571542707943466603786236889375771854275458570501464930066445602946774270128149118717480444632125555521406994019362725843853824331803914442156168298554528660509857591391440580427521359945168300063529553795895669068820131816673516153381488886783589992766533962606534382260421155636673549642895940730271519002291641771927222498344644903291568846979541442361780219709044294989877311924472945911509326929870094004241969530929783911053731631732495310912589303622802236662591247682734379117097937107097228015392005093151906249508770071718235706567393338574473201761644372117226369921270794658403813440541884995398289293782312439379303014656424159581989577955129276017828763627384211598974831465995166604517451680331975239049598185240825097563894192296408783702338833206843093246992117103622395972247825918902738826246018681307717315344729478827622315569977547317075207529767795554611791557868055989492183937471928276366718802292544248998831137359157249005382752763544241215322670033609279807282584024863889982026708067776180231567052935686819194552773812420896709182757957948498227715605082029491093316158678919828002382053427110833633650250111558824821630198806683481765591882662326471347901619050241712980561593506696926430692135826181843368037344590078434289981681495037129937855242509460534818370229141723060400965372012518215322292465372888412800961939256352302714479619845651022739871065458335399035913347223624259021193712167637174060520848491636500197164257025447848529410004356997647923746193544268386643357281897609942129691525977499661156681686885884738452736713209423098763730194396668963046963760542041849247300383803521837790179844249617106508136418703310985082358970349626185629345344904110999905671302559722228591818613841525078208457339719520500223689811095736054766612110335780103344624430064450063748614980726592618301446316897787159477370412110247215874174604603107607350890663582861240999683453269070976087386029910065343780935585490109203586486533977693479550903761580491997135741951643300298831332534358180977737431779031638318697537281878470184537413330196522325796758941175073093600027982143109291772758460400102068772249122558501113215732066589248704037434670589158662361776336927825203596327392591945861939487379461263758427170019217821007772563415165419516383783871283629948210133944151251312047462518152527958607842113997310725598730386919564669359076221040012817083000543611226496574946715279161351243671225992795698605135827938887891474983535176616115093525780352737836272100501041962770923055161229556791942716411319698886974311046302109602447988101770218099101341041684777016941694204873711355746988309983680214703531562624773217908672022568437426991289779523495914167893045743334870795409680694682036499392241826772254173826605331783361833461283599663264155318440448989648002868050047437699971898525585661002867916107527040478386089597897214886902564294214188893058999269866616755684872048490320132399912324854263556387206220099555750198390974241209918659918311900831415183288084435884549746169816742630493998556764806489474142860873967455484247974239877517202400682054480557280451449973271123810126174153516599367156885034777280149728505313666013222013074976160513444434831340033312461381584772520117822905091785222303087643053100853816290036392506743509440496532971998636224396735912362115224539659099325853438253705684325286760025677091780076921381773939903411527841025708916292780958856478741614559656266761827464713851738355043870834275695872224492976595844372177708671200366416847262125402383638518529222136656495015501089981434323557337676164227530873912009543409295406076953003067459091687300385839714951334805461680096257427924282352760657031398217395438518123748525572184318773016496859233565522045702475173043103544322950832233986042905809043395197657702463583365260101919861441202071840287173145632332056751111790280362354606424988852994358127352024602818068869551184243723545256449593109280667110541082629228586532076050123287355866319399682176831230678114869453488319343229423676838151471691357558361889793417198497399757166578975137174927120294386225451568140148180832801537014642176726391228709252242986799428856104365333177526365088193907463509597000817972258537533444864496843321056309220340057885653555256811931839412803648814631694961275006107051544860567145927512353093037392919513201599442230950287731568677138764389275152454224833386010317060787289146827780827153043037919804712969853075209663108410625016353615903147080983931278133529836828668779154214041549007487628555893755445980538701294396482505723049635764883195399445926582593700570663234336520215707395569375785631186796537550675812859982889808487588798000125857321573471042737598313240533824363619319945920469689403070177383919090799662814569764707155449088275066026241003458298517235939704072089586291097226522269804153076087468085093003198832373546109370896669688156494369510434837916339576282003792224264761534663386978830719122068421650849581363106546108176762543748081776306536270358694609796893960902023767432914103277207471406842384710361917101761155592755536399164717394369098294712113281624778920960761792157899946419768416386608637238812730055625598242395085444519571148278860654628699551314386233014796006972045134236178620872646676148366134858134831263670449769752985382039865131233099146859538822863223519401104380567354137657092573202473748668934905450457746345903693276770783486693177996437859824868466915073932848836271373689069606896444954570635921918271815836878961000815146994926049208578676054714173688081294179912929625869171501598354237185879804939064056117834378465180311821420593535329922175989738102705358762047937253572851417553936098634531274148967619696199295536199729345005234958698819000999906833702485296900394258785146557213212512556310030377648191104015997831157890574391783948730016934324776719897284123547967683025499194469627470168871498362873033953146127616896293858356714920952176074409080543218894515730522416997513122639114011486498019660122550614833953072288160750983589372461132046989938973325802113187678286377043879130612195985280176151476305176828297517503076215314358056167437764959050301306764659448572828064577626494851930798613207549377386185587477115450348893431640280089433055458331242723395691359162125571300483908491044145261321835902197578109124025727992263768090762127214514150514894396610924305044666107258148200703211571387949902286252195813986335761490640643712207039062276043793840577523643054471832930450151445917964995739267482611406275271770448723572728210121900844686308246093454083916908232535977468304287267597737314297606138730306850466806731725374933803591875290110708367342543776155534628963789486827791746062372417081128153141897280613048102200290596541710764980534445976504984428276939601621894379046627810556803651617236981959415132551154347839858814210921756660444198355411890674649808791398481390810904942320697844139889568193652363118509010543102393983068997678492630304064526418986374994407499638845658923443219869285053972501243965983169140116626417680250342040879989246134620316675015060938627134190268441340698474562056312834989396749932652170720162563053954651670591067539834236750028000565889698001714756645679874122668900946760236180022267735889227972148993397352567049304747298149755485641072847483992213457202165095237440693164808052437454563376432765523231866102470143397986995517963729899772393909222110876367147399395237071882202100735702836321500547916791890342395309675260090985274590513211631103380094233685629006364163026792540612191422357911775718426060393181936520736918228899264972546947890164198175253437014136738537151912364264975194427584747284807275189106976163772915595411249797383298272782056545355668011358677307580622481083967064045909952097475197888564945830613745174066720224555400440517277840468530636311594608285006797855904177254862867921998215953687239105710142644583509511406860022763427243686014108550468015934774289947454658150570277147230345330400193886965986823807868291391946411334425115770090225345260251827226502725504156505296606080918407295952772959195400372360400817075233616184598079606659068436337012744734484577329409013451765192945464680436256112000122610693033035624723909295923286280286837585202095532096369682480960044987830283796527982885678894695807114356938449359062580826763687562135518059501224139022977889924862856992292331941328669888024791851626561599011121839213709798570607142493326260698918043091241705364644080058904394484845514994246256922919926202405347364721237507529725283467504390115124994964614756157102843473982737374567915066338547773997054057987587081306913361237766394759599379092407659676944832329863242037518901387099250223325655085999380095483373899732273442326092141373231252043887631653615888457075392353574735329362593791205982196180809790029392979722598441678426529985500633360498364554931675758702304728789421352625203530614630270803859675322284151014786609965420496538479493861005320472058556226774917375190714298470556115480146447689331444710446831499522147394715687067142267791101717497390791510536063807706231532404070642681877539260008927100694828164998966833100244395573416397357902734033701499311202480035723618137471514929364731696099264147607106149650209551020107549931934371690280041003314833062272161359871339977122961376948085068550016663686825375891582574270960076462601725608280288632155569588554770823209519280124609785617899638756563046427916343282000587632919541247909832752533331344195315718406089642992573614549869424888984659349314606716061624206856299190979499854355750265044548552980789208184289237555007318640391684666899405337875922812104814198059050467386429235008167158006832504299255554607850201251774070544088102230434099589114012710443113834054193651424925667351367752103199686799412214283995774725541909984424450805207995177915703338431570433339371722385979959976464369114431987702941071629662251767207212238484318706394982137340662847051760059956592028109796204994627035369060571197361082584382311567581073609479384086801432859169407814373304853167072603622350369169083889044497487693062094289292738698003005937005296723363914797189127107963453457091242705070966470916050555608896945832609637741840238357375530948530851597034365982988529362248427464110813670398809021517892286161667803414448453367620605575943903361131719651934136138361046995815306037890397166334129060254670743165059952348972030516176485201216667585683760719522142038326907752457415927336113599310528198395130297085699070612728306195853823053764395951726417490567457499474994588719771027381168784846994838296202371607683861812402941536645527523524234523409301455753504242097073858566922872195909274333318130411763419158533941601033882992526356410551528070681222180106399583255477926808751415389698889136102045063999620945604608055639387199211176481784623661910635254645469495624914950602048512114845549459510660160539975854068965974165112342756993520776750209353901215598057431176224464356911890838399692794783404738050385163289588564017384754423001115504160046519905690199859653282553156626392745659945154330020358289460321773361258295121838315419838092093143297492366987852788296140308461509798864088145899851309846012347666230028655582838487586887587351243730300569583012446903033207105405503392587931658210662489848191070792897016517093640000803551541072944960293463877530981988592785774223291195189467796077654665274346123339073511889531760364249122777588329761237064316052532381128782732442513804871876993458053082768850617899318912812334801169316985042590792748746334900999810885426621941526078150502421698138165155154485672160101108394124435605945030753676648103115199799849386045114955095090802222472033887579995662085411079985331423607373094351107993149356589149401258545828459444589514240226437121542304677151032773716870640785228933694660629055213918798862374072972471477010706210668865196986096187844590026510416989352689389405067176614566809079744987889184518385018459402118968571376005957563675294706921986961462085265518812012716550689239537746547826631767464742646235868441219340261994750457503269102216047757144902616145694235779372003487880663457014903086018659511017090269505910448815257430451575715115050511395088738999385989805094884067260280337284975996238897035235149361667810150237354836882692760182175795961256625220560947902806949194996745999754841914225174520777698931492178728978090392014164620726334536729717642358677380945198437412646394495019358884935745226838543152813326074972433768889926486884743123060427807208973947949495040942245838447741772496347004996614848259986166705901937427300795558765118689752080050865847740573225402932144733401820897060412297160147084278142485211508203086663251361890550291192558281094758802555593680571642553935366338962194405665334097789306530263759253511741578919534870443849666016020129769573733513170453345285005999945600216827391886824637737745663927664822144984012806877510755264605059658393112205155131235574011218754360117185092850815963257511869627173004267260551159581940583322493404370141226868180371581109585350750197325416116247727381997595037064020271017435184791842813466987063288103147024872455398984109603473393641496585160333000524788290353598043397601279693317313060499196482454398394874217141324824325610708984851896174017820330445180409879548371774417166103152137253031917938754581123529204053160311102692330432428582430516499519932373918197029756359737916248069566213808522686789071759910198149167916015144336065860769023145142906297613066756728184055135559678656361108558369895680819072493990390795393238205468033831269580988425507403932575529465172781456061696599335887500027160349144793552994488970257091486296935010573968528122238560524560631477111172896120101886119531977076846848520577337583104663772778397170107217230680391200971691539523776338337190310210396024621706168827526842630525178917375763458497512971971708759554146748931866698196843176605350341061695467772277709365810245300206146672047945548460270068381928754959542562271790556901228815151951656943082964658206436231383484711453016774312868728388093863307438104672971275630469812915119524274045909976739558877334543321963787399816429248248852849319840058076621009026835950180741853823541984042550807421596527822249754639878862248603108896577576529479743647453865653993961485565801314111500063620729705715510966591030303927014546099145682349318125762758845117964887511664941422844164542641906180813711418672149483626990675014135085464450434413136347562151168753151420483543322642717200757121460134256180313704120898101005044215351376625865057980697042894289044576846983867239759501564627570083766094491004223280492581234349209199550338131539927652387291542589095074789886701919075418604832873557135736588301047989469390733722147399753799320590211007656143940871070067453632228921079264765633809380902672896191971101962642983475463987466015954726100546637027458119199884789433613743131142584352922351403193275518930056989747667069894639389922739433035961133134147737504191416162550758412444226006123686567169788030791167880649199616437888992409959519666101963327971141645736973551272655168162711182036517198402764768533174341927974982266909805328595473123413781782735707598929406988409381755151676720486390651705378866105452607831845211758631386615350659489518583301522454464446233907143411279634199414732545529847549441173172772490428476131698257683568142595020321874341398638008663213305545344298159562060731460362580740050478548321380693852013836696118083628084387753406160552327484106136614213397646277284727951062556984754607192992813258054269970553272498981083651264105852828909690325897947489195373846564893440854800131598328359169807961592261103956825375206174227221853124783411160557216745313996547271101140600143828726223814655689586103963504121252350563591249543724721628451785431885949547273053692373124149355981785046576570690580213850021527667888975628594381148752371819258352234855032007741754117504028872400044350295800973164961244749925963795944640754511503079755264393791962866956099208523145750538248899339038072824425788306191930739609668370901827652492262004065734860083002382551230609424535436419115643692548429288863571179937052190020644574663029284544861471932319826183992529285913645538720966725423185492935384904632747065995485199759345428278945610760862114755559352440287849821817116452409044077230106337679672070652366049778046511948046937337813970162684131820427810347406931175834444963866822455789894701742330351947478811727220688118384711573791933834188104014224065703874974537762277930881287887841761571717654303447821711009275248036827388130843329313561283117551528520835946955166386294388411413437141876242480976555235282399271814328805492434380573121114756472729646863172093128413528732847960032427114981934644480347407930962365003660382308050676429739565871002833851185834556219525058615544653302619374885340710592574427558278001820102294975223641753846230929379826395789703157910339209329409710590360006596541905835842508880753988833259006040305567075876774450302151482974776432795275770768780721114186359181773927779071463762081043322013017616190776404969165499103811109956767003494112802138868921705525701876467792422898972685496302340448227986901789732334218375986813456790149496996041279426694212827889857094968741033335690419610163503185156580439063844961372992389204041940178031083748302695999693367762053250679357974266206508813668566871004049633544814592255832422412403418774476206421961003920488163570317531129188134959589874861087525494218782388870021119018478979083300951179859097769578426208422004146960105950144034637333354386769688869578955782568289573760028389126598274945510752993448468669970431402912731165470688617818379323632157874250393967941110852102541455935350877728334485231958645419207180668682451905840799760806507799520831983751143665889643975760484656003246878540737041720115590867684689690478778302590290663061520864621858271362388061684484991469658479128906837104742677329580313444322089233347300388391346481306357642367907449153878542713702502765545524446803301677802392281541619809705323278582439924867527183771398415761018373143070528250566484292691082306763447195922396923083082729416073565276283772621447410247803112455154092873255758912875001596939832946247071395787680505786780116305230221950659473657686958335583227208102832135803061225819493909652365143942011593887298683199470288653031174620836886113260812844361287728936121523441283808232823821458468032687761789383997451167280178666265875384354202338458749375923725091306951354323570220341617960450096010831073474296427053499745538249280820478772126211276005601322025652225871713164338315759965577736440696287422700711285058589178632232456296123778951490584652665352503853706631775194009687767179323408223179333124551893598221706360807562224938167575931008212676775622539934587701651854188832684649565404555726166126478050374149240980551795268476270354374969830566687398646681310452462440458301201850159708195473231789593530275323847804927954450733579734797018473098566606873588365127804065664970334027012324398372034425280128161191537715919867627032527425475755925016807201787735319256134517794265861221983892290619552515212969634109985612232541535434647915411064839818860628961382121803817993864518123835523748606148726770172364716936247163564099291317757946253682268323594396021976789086020787393673935349780675664918767705186167094974563401879704886821427010762952471445101208893444967058443546745442241677047154785382293275729258036051622760324567934227285459646295171787049873165050414567592035455770757317332913219061544915991468481311214674652818005919601436100778759174184687982965972003760830932284360693220811210898422741935504321958659151274071648649140346367049065865127602300965680284010300254147672560253709951477220571322332494087377910258008874329562379246078878780693500243099543425651574856550817166974064470863632738722077502844344919603619670029261971203908499074773766064300689651069035202434550012813298327107278950238876159767901299766604909073240244228627832835861702049592845305688899937564921959634524459110954255782255977045954649363430540396813114598243552462226210299926895564699491369609661501952213954122734967296058836725816298881617973473417080406361443546350531022053615430717901573563679304737637251630611712755167012285054155200549151205689660167732965428567450308443880559123524319246169648795570074808165999722194501308064438291701969400223514416211791650885782566115475983252251215064502303495307880461892303907114060439029017281160709135256613010256238282321423839794176922097908010581796405157340812463175181344326225029712978526983668300779993621494697062268537177293362872003928996357015514718719643643927436218801861296459095632909293571788647037386260998004594553422632733092811740575041756918221235466387501423425806246783161247344232238529862882162156563262698337712689641068813325850515104921583673142323864691111937001559220312721811822841102198352446121263781031304947636572847868035368074409744709823409881347393619316060508854945749780140654302002818234266933668171919097491638636689185845097763742006741499858618901778876510683835785121534481261005616654038828207961251179139326752634881437612661060830491136648358649111744960969944573834148868382703312905632379172157422672799774999629779685532095786961641864769677138861312972023185172504317801127332031013161988671773567522600175851022042317950173472040139960390064480625494674379148529923529771216505886118195375537014400539668229046058391511494584133797030086959058910738408258032763199843208714233296656267482859374718131994628394806165892883375213546208200133439609257151286938865605106942991280051873429316931022243602394475967232866520564387668219589204545969822045977926237057130203919149471340287339964969515724427254802685799926749617003028194016425463266727112879686465724318091472728515671729474801097578227373473820501670418568031534341432413013142900103644318689232936135753041433670708919161372594788915564242960442953741004967185782801154487760065320515605894838435740766713123422143179111309549469733940048040562472683786349756343332655384253719646197025486592869358996956992203006300784799699699829359037717580910940523466138558998881126271264690491169195382430820617741009375984267266274726837819650510657455731347563562526089492870373789380788434649248491804851685557342354187560771247541934910000405018502369086506751854450439817241749994935330292514437062961958656214320188431458478241822628420195572020940943298244364160073152153371600047117158682758954292811859214640523454854297047681379594548437341114794405162065344495564908130021858255874212348968159200938305217983828390878496308886875139651336251111172932674265890760037595024866763392878788797422339723633028918872662584154474790010964245940435478389695316320377813714921686188978598751992686554726496333871503325907407009952981353665601425234930226726335627989318031019800082687253733768614538941092707038036120175815618096888268298706480057696919315571050109786042046457924138963097384186529601893289995264128611723748118517036281413368828808839420476615118807233732492424664656911525870175257311522740443038207738020938157596922250495754944417223118342461504730653237645561327850940161333057551121001878975675701652925856038274309140961940970227341593849708798708270405067710112924811240715790081003390382835771009688486653033448978466135981248956726459160860119430850992791183783595147758980286069062713816431981207171040867866441308878404526391459438227467524847304673631555592647398685253520454861318191626665559982537167406422822839159784348029494649005468122089740766659297444195143230767992701388207411910141059737978004566725862826090965309274091139553304269589459856261655721330858305801256268987680303527562699614693449679225481289090913663971111794742491479688626755697561643971265274535975692234246196807382280211980708075525937698435456551260088922284571129185815578102601183194277704177090337691681631998028175341245438897221105179463631426377881146771691135561830684991196635563364776502468264065971218628697325460038142792404127472051683262279881872270259865521066190161820249992670620393200780483167072300528486961546715214939577394492868471342930584712386256467180141213076707709737161734809301736197393103549341987371671504464662513398236952270269413859364868309551919212054300551046216089518694277712605805670326758266955800679001195152988046061352873599028175499637138051270344421933633797156725875829533736712932464737974002591078748148888440488886469933475288082849312983982647375444619277838732135907476703874722536016452038826171498106470953735656406270075107498514099417657181953895686168194093983296265044341987204500395530017249271970407698092764283829588489159409968733675088622896813242828876783490309679768485582993791435391132529919642417360024904503672017189783043951240640882604345458447084045875985132150288499360063178291425751433976580515715173616170857787894855110765841682042569663148637972171748596744335474671452744215254809084253010534074617164985641306319707096765517403781187288788390766490616690659428391667801311619807788171593408096129331290757776653018526925113547263508904992837381882657517132095525584604366177108578464007958340200486929351030351693734017659075108824114513874048444690989631330931779799248972565287030971009020743435812326977807951267081330509740996932847977983465103524851139598771235159446770108889662954986310136819080715668313103609684025947645258795492475596816722838719937825259586140985935299168301912965591885966821811210732279779032874350828870235646532084189293230274504409514689236809587173440039477961391818349365830170887864780676481600150113253760660227470131062068177971074223876109663341795731477943647781229173498844449259111403480046388418934527604976456991648881100242200666530009797135511139776611708522421531663156984702011837280909000534874071876362462056965672139603626333249784202039528409999953231188823186594315221372828059517795783381442022878820623458690572179584917612144416391014283948888485520082319083524122642615559622553280594990509803052230191484442324657291234449581097466973452829993042019649728884885654261486359908926215356536721469283228624743781456484350925639055829985192318731533959363981007656563830923401534480188867468507550943782699296676476482737461643186739231670090109033499654949244335962875276600780093706497564953316162018288156653240866436317143871457431401679867762247225566701227343811881629769125044056294849405568122859768392613813097244684579684328238589058363643442331719228420141689297756718993595116516156478591898986008640810658923206683464292564707231949025939633208304817815274079903970289147588976672905330429319843212584687498611972180275273375360825668070654866261071799668265741646073719708065073292813402701582562784786880426699868910673280665496034684817416100571098100627508718375907707850334168716320876357589272357750394503855528093497522803098695755904395787797466760887226070238460827807991573302171650265520686924200374749150010017491879319038662514584243654234004176033979564518009074300123788413591675802052168544713219922243310687111293395040178174672821934613019911306173005710388867022946637533421433779613206944957634079858750052281058658560142974844900422524836199815817885668084943294571587849225787793428634588145052030840933066096348255839573335464145250230025798785445415468343922045749656625702857686254066190824713820139324063618653045818955961582169933641035877470630020115323344841259760647298846262566714074233323115501836394509312235664917232623356204588138843059172646616189615148603083556932895117366950196457134276326953691122914060631618201230199345223738311910359273687482021490856935188793450117142660588289978034741705348040243707916987118597916303957759987696870157775905104911466253637668185531409764345229219441930463310452055854709500378892632293063749216190185683110785561736790616083460015308118040739397987919625467436277918524106963134828924820196146195208966110843558548243331441285160487275929502970467503397907378145449224995714399189955286810249656226175330065681640780180076469586555909431954350471265643141487768808200688447620476097640869557341497687534285540277318496281639514346145613388666913361493974220736981954384671127066031471472542426645798004319361684645247426581648494672218904739226471748328938633983307602863714509589081108376610484687986458380840449816363869323262634192194003632611283401395177939158662156026804235429715726214155632315261956156189158627116428768644191735882813033012012895026137447738868232984480308392391705797757806589678184954494943018329330089693898118898863578126100753023494614666934837605846153210417268817550112306184949842865277432854990855445404287784606197717697557834802378251731997519816513324554096943075478011380097074926101553305011558951096399597170798842461866467491057343644711846427480199585155437764009581415692866603842012727692794013488801222016651154095630207333911329994576580488213275149439413062787264883805981794604179557618520688495861101786104046443364825906825357513818222124004586459177505011364852383380888994204488563397355078432837458665088542940796400014584108652882650404739466462169146585675668593796126573756148572413605443115087041159695003102820600460319347018804794727729438073207399443999088621443863152478392935635367852587443295831790531533373017255536848908434143229496660959529913900602517516407294060170970501607006277614886232629174333338491992239192900291648941997454321776512624069320209369577337651995358853051621314713805992680020554986167989908597942480474781285362163382040814614509714449898534738015800987712672766567575790447448922616203009665744700948565205225091304814284302822606642355755722419389759071870558113940851730257499391210996329664327132358834694344582547506596756176846832236098383431090338299282195424978062573340050710234496257801200770042339435654687710533894647504598619551650832254542838295320498276329386365774303699713147704828324864107449370086206957695962369621204912365095012864193171265537235653742101998520156557191802348630772329581952884521666769873883599181973518382679466789146232969990389310391131724732551317590174278944167633134982464936211672600870292450508327645516630305059805388582801647332363076031924512282543391251881349074747643467780036536094457373860929929045608508739193008940260423232802993518972137969271019575838235006735474726080855619229513426937567095317726181821435957187657970190203893940709814738109280160774328119601891162328269905596686898827686330245553531374344219242101887060850831733273435303864321991789135723494938960881001093380364028556272057584275530833173205665171135962689193504956891451792407598806612843093759023421261606189372053015112247471344450679839738596888754130446312901973145721286486831746810003022870978379562766551725571411036302455093938673378920670518872440377977585456326199162656484149729838674949745754676113035215263739527264221684397062954154871052549165783466113960631599632748011143317729624989959331419829808004679521848408198763493613289575110320435560621308134161461654119367821842326422136020802796543179562402652948779579101725561071736671543137975972451102968891140131449793387004338069010949198880490245378657359977515625380490218767957445884876896030814287091528493635296445197356103926684852542427064965411377045448882288728991085721331552116423676508941402692973150696229807111512029960011448991120148713962761473552471614977833678269376098804442517238255072962689467521449678546146147771420639939770010096406766142609633256863551461082073496288541054116793905223053845434149499059177622406696900738606239925196730478282886739479290656572088129988928715164261002771953531031023722343279629032744045134833624888258224085690806255958233950674385748434496109618705676789736857009244369423465928192390643901659962594294127223474739626886749313075783600567462391092485187090601925701221612333374631872152393175024494733076373814060441761606519295389888701238894443121146338249961599257884370343532997880938864169414321133620476006964325137243880849729517595850477550168887299327567609528355845723475822950299596850079906011944174081648740563948589979165191800319480118352846029657447772521869924469214999065724676494392512722019885455297548030850357269976487363566833723341910429206979530928840109195214275651534166337668283158822106639689781581271511434698264416064730205598068419986358476689036351953366937574029521592832849975320113743033067889166815543381538805919236397368171144422575390876428312886676544918086332821841584244429913239259282875994079218672163345678182494211602509769947527359344049849793550000606880872788119270708913692517356933826899367377637385425651335410014917626461206663364412075119536886830092426102894365682123171921989639678167635625395335373202736477620198038783379641189695754178935640811286520463194362981944916510916119047957313249660423031708558466463219319728539645619222568933591185693268196333514765194595923346288841219897145846960685814426492750185878979603525448306813563930963414907302492549699633834540319155470670611093434962828719884633510480934884409142725081346097319934732765411077655093809859494650975759708770617329805486569962882916754468088319315168222011344863170962846364825428071020242983173758673663398168411366677470378434953718976570588553838257611244235057591418236888825602965383222747169349002173373762195059186005657838588838935339064808098006460868880522370278230818010545521118386379392752218621421171106179972880785781067321552132620563868691719955707960576854807397130963320142092054563209743356139789291550914157562462518652673406916282729777645392841138017416416293585391935652867328795909725117955650886015371651752223525734060722700163270326676716125412119075230998199872413346749428002464087256280985744542799871402100850054648913687507078745903693143441735223714255378402250552601240338262544957642701454627221069913198402926433034783506062011984019831442365623809918892818107696282789686725436638274830108635746047141072780878517027457850471501546372899831689507870367724523348578337686223955609753337464622692056710818325464047092329235163736347160952422174531099669993009837254920135200117595487579580372937565899589185423072815037941593940030072396597990677916684825232419615270076609657485473721608914773890687386726132816471063714385916342510090701840496216040047592649589795480230153600585123810124689424230714435774387113986486700562283217938819853464623152347169733102788292980116209763493552066974649302097733057639064028869923278400743389386603708119628539567806565058850009409881286054791546743100445659723167320211212391725988042145180032793352431537263912191254716744672787391923085090636580525161954758210285550854552374669329953970392562921407126797884028804951853467541979025097329267320103768586156281536272233499447637836931220932868726704155928448953859717553183452358250320031740498180360764776894353821758081074084982264033552201130212134287048905349266522355529456689810349235655665649558699083535094956000753674074002898422581494036104104317125214617397034418472439141315021422270742807551462317688802409134429678717786501307428842791964718563086646548130542660202167333736922897183449275254352635647325826784947084287775838257211140939048189466753356852802098044718567280541502546424386139618026014141346905330481914594401438358150213095493412516519536336656385913583134690361139161954415189357686098479206822231622338178678536273928168733066297090094129097752363180159556797988189157804858688612171165653496890693948927157076136694372221740663464365480569954806132850307553206626311183378117204307962082927029234638225185340724178830554754513750422613046475295067874258629304954833431926769846557611264657497025060065187316360519594553208393819800999873342934802979268623699387938054480426236411364733564602100219671401784306849805094961027334339083823024470123127532218606691261164941255940839297385353094406719642344101883965094740010401434199300290777147937011393437422574364318331406086250072222564297397042613241787436073010569687495368665966929156341043687984308478821073660363135690766506770867651052980740383358599953931778387782242175202637935573016049315775784112872471260406591779648640119225881031710450188779371751660356447015347433707197844649106876234824867653286727051203291399197102436656544220857716251684569438283592490925229592419678467001460150026115649312826744169948465834291520794060407276651005859774120490448339599191029826245721965338495473143426644814026085865224256268989943033912470876353075755686404379469182720181889192931512486393235681608577171843955660666036586483165184269566666432481730879324002874990484137269979241622923812504373875474941404303275997258074953096978500552863974123537112351297036093627613495558586192222809833951105240973120749057782407955074207381541909125489539107274530832012943369874397024953384761406579661758728426653800129655193722894826479777908085999666992942334275314416526848397440521350777869850347143154292459967356667548152898688616465805276952325354167175387075837683310938923793134222528810356361897972065499953063501882675419513448195992737899202116450487175078849575890504348602070912048482882518652187678511994432747197633234404086316072716663962176913732425570684357929628618609020789133457925254076158714075731286969678361808827298948872345267162800743895469325141000494203884314421684326012264451292461741228295757133255029647342092586428796420528285285186943329775488998973295348228691021480079564318287327309631593154633313355686342842266917153361354842801070758485971104301647368734910113512555234087222714837519528634216060008953545464630530818164093880242302392308578132208693038203687259524303144908382493718109832188487738518129802404961187904172288512695571887976510029122349848809022052239807197769151149140717595088907358215601228953697153352668008375320944792725701873408511052446677943808569482487604258000122015554396346385031230011805633490475159497272133424379840514800149710508734978881068516683510779877243909492535474112718429814768364762878586230713929587532746584514640486268754440882799488715260277918716606696330623752466842103645840012916948512803665924872035633303767111209786816164421681546620066876146986347882582878220756567572199838820191841233846514759310937760431719967557708997411276920463135807661327935329437723973604559234069307045680335605905866646544507087196738290153941738094223323536119603884938916416263895967042035954129297771234766063262686760049788320813597436763517832754605561256646108979661659656242473199116474151952417930947924076208874119646415846842691014806988829449797302360947074110769456669429467292483100039902961666968848500768290399579423357604509696068973936599095575199438749197558257758384691100212600436937077263774292983677689780717788343311663412366958732209378095156630304445564715173348337082136205011969148150172072615434454931069730513481705233351204483680076971945113130204817908637912413750108640258792356486229201364905130613539949457715443380341571333225124071424315010472213432077044602565344493022116506125606161440402645174891127939238362276190750299796239339415159445169284640637368174232170906030249054514714787585889340945895807283095183629972037480064581353230396933179317407222857109763996224221534491081356457637063739031161812846068785972583405612813363195572607850647105851273678311055931425791025514103572930095432084033622307237397266331401328926097360360341584496311619712989337877021521768275573103807130913867850304403906645936226558292566119961511071560715998070915259394456935257161025025620689757890552386730699642778724958939907460939202587532188931565199766077156149987961936313322456160552949487498720806938584915176227596381583991137950232514498493027564747595083330700637302085138645806707595897398673684426341016852329890372852604369222488633318515088674563496485602460807283454401730032312385553461359021211866285021874887450137043618020169047028847138265121942251267017432285557498712402567638925753705100727674425199777023014334689817884622707362373766433888955765657688553760693775754450607502077701153735802448095741806697999221711434590859776453676287673877664285124829955771795499411196170972156851361577460063696757894754444125273929798750863040166178461516044593613323452189157807956802325275305776076306111404561410323392176149114755771519209169521887704290872012194265806110333689559059297409920933972178063359661677866461738828298914612014757775035204914630798370659877152648803847880629811580522584584413896101943979909219790613750914093346082322119047055343811489224188919273186687753440594596479982069186710558077844064875098865851097056687668288403566892737170613140746862266722205791432188152224393612537558179361374105423293379510505264815495631369890473757731923754061895164230140676126785667083314714682533054133849322185291368402922351543375427686574647850106067542645314879123106251867172618952078180256022771419234562861040676613751977284913679907365759659347680122803951282621087348170552155362911250338287090621341256434483365751376684597852239205646676192688504851909639001888009018973780718340081148166102508964606406271442764389977469094417582539570087354254848714651800395527258693721835916132166417214719652018164236140622609565578064270385159316623791351918062714620600435705140168120093055360054958720419175433913064760857360293696711321526159612055378087305644849540822971832660552825706564536388056167669807000022428452410765350700237742347673137922624130143973752366266247226855796280121331185707164137103252245671632298425410303359323500209821177960715994960234702796042806951455630650008079838540061455926042600920245365306760459115539280161104160118177276612969372006386544180116589513591420529307278518466925564294026795798677660433663855995468568173657757098322811540766650961042930901508087062357571297079142070478429209062936623900472775702452035612236557788777378824013944873956612963785030314360829977940310522615821877781547659273142879126838757366248858644658811145351491768879738375630403494527160638116126856452760351741829522169924827168291390912696148622974309179697888224236021020011971725263017597387116837727903157838609890892301614994706399304386116271756904335416477199760893238696424902548689573964272808626838256673470980321814021800238012314524101819239528419122004431282252302685313480536645146058305154896052306346847158240935197157858141114534241443588803193939710731727749674758830284248792685660147873164695342446358292224146846495044425846052112384369603940416292017272195483883224806212872789437437009896015108438652563651794108928258826336413576413246693159212703888824001939547528563033488892802130001898195486407127264250221771713176935945849798505876269731288081087141551019271676865684882951957494889217443651817513280381967308716089496244298281541300795834984655808197236181955243415866107184620938402867969312198068039763151332558659577969469548394270331439756931546612074478837447384913745474732705575656226160349887027835678729143470914591685413636310239542696174694134919913696990290956484556696904692465876561757508127394904123550414925733245093795566012783815548792197151806474016861183117601662416608902566135543215132445156291240118891484619165603752551128685655018596885078899452469921601069127162224475490625380151689498451957234725780749745442205101069588176176197969503065890654979209313392319047120102041033492377611742360253316326863394276010315742836227299759266272957997904019660141912043946654579804940487813659238168647326847086874591471800149608567855748081593612771870755196188667094834744780268459800961333292322566516606711861564308575532142717337784340975323931279019370463045936481051739712956549094022500625193418532166920196661010195842738098523146186667005059523348767998663028722121094203243504649979183180528667133291658105859141755627261858609317135474958139391282418768289853806793542065899058464861186282365638634688249630765868961622003375363913599457998530828214354061011732848001117530250811987444454033247315160657338661815054123117759689481138674989639557689784848824201259873171687414774731530812326811110456359663264110293776599024392670614032282173513859536570949611437388161314242466033713045992956393232113505595093935009955137187131814656017493161074435231463775308732676413684178670223544640374739209223580491599591784933210358792156401811093956053622703411092226487586875702913693783873401232253261739521543156513017734413187877675459305169600333089274859333553866900202712629125758920585781398104714328207246452692572821805528597459720841633633470108812829576481778917991377214019881819108290906417305862440001864823123540232268291708299214846294912222488035869449326939229579770140419866813401359610728372594001838804976579613467621820967215128335865209419327440269411035728116891954741056234436494972786911218574394686877132733233777545385323402752527384060639232518188298904058253241084507571869417341077510165873395889223446068006703714074035236388324060095353914966485729788729172472841718512323909636696001035717457012364521799909227318118137836188118706966746373479284794574622776689228960457555069370443254005095463695540837134965416583332397773654182830569556113718146333889192181258617142529670452865151223191258059349412090634125330973572968306918225407929024766455750308180414975803597007816962334296354745760016254671811674534166619971295834808175375280934653139868468701948384587381654228304527229885048018730649687744639423384596940314946139423150624096794142350648011264772927554680444749282776448563015238004983424130779799983849961310866636051537137468066961578286918189150038109450993733568928891190917788959311338603466826014833723224244966726938171601966248376579753173846189146011483940185175920219303616759633010633793613810815192109679393018460597040505779543373605363214787519521737880925937167916334343884118964173269496908749636212472159187820008354526416154479035260766291083412746189780873774977816500531958475246341274133570912946003719920371785872745548120808429732520776611245976192681601195664500033306499441536258673214879391913435603601958160458798732441099233149285801029872808492429670490522406561231772704533137499940076269783433774335788862202314456991008418408298989068680607285275046832838574799989054494007099239972574178922788631406233068741839785945335168401730245991258649212038595941789091184745323777402305351548732242629605801629066686355942041559800757974303106841574007369796481553966100165692375811663738501205727953337928973655682237958540674330774673906807758276587471481811865650919694824744471442782592807379550673915863383454604342759363322478240049478790096283600594012127620021196299893731164678254644017547805757128500855857776179262386202430736313164364425196944457620886383950317121915813385274032409385249600987106950514270653019441698743514027680700487974303717975905700675403925122945500391961919405480358787117596288583863226937043108557405169720840590115891814474970571174008942701739441680947366785205730946327405788104082973539418264401579248888067037325924415350657995007692879110776623536751448425059318547931865454490539468356122128126230415258893342452090381589563838955182991456726878017131753863094861080659116070207319726486406877356855819526193241369041798803939812061887053930291152456378611492316287368880860259774904471343169802573596524574324295040950398212563551645859950385636532646828053528470107638329068926948713162820665218631267426927587758361681204566457222962137182680112690219955085992770317914941409928839875166030747713142817905503440500836870859146428835223530387724775803745706099379061847434086060203904130701411774520850612427407005452355883900291731248396243586909721409658485999539730869701320894734121478113482121579470865087596869378417511206830860682036055072929390237082181029214401160633314729932325760923084448992558331228631694186413097735375243973234073645570611085900241928501152092830649915805075893964317492460731429522827348778943961958522638933419692748091897842779010132616676577172238565191394845451520193905490785903879981908027498684404205192338541861245230306543473212562989395246237847039609835715116761010052382422848610339656039444446685859097409507418061878106536108824624907585082936736585053597942482963042644839433654880673914560227442668556352092012180354218348439155989098843807686665355899788450847209567342515874066839175551603933654400362803565665950830395541015489349056613148844894636715709319172093617739819140155562083481142085201074382506632759546098924876600903391750146208376396516172150666724418989340001644334152919479916201042386152241260654174373560325049127117731386517659304969396155735159740309923782088954646743049347046166781880431302578255374735178211269166578799347579019404795078587456068039213135272041209918811916757947104819843552695541742124731375746932723714601483581147961975974539080257916156645154441250062392476015990219998622724266912977938984088058083687353028683197981406958451265925888945048825493627111882104492455325811136997113415163369248889753390384583235730871813785693311868154760999008733023777737115024977570082693170729156993100893930706345353702249962400478989637084271875410677651519974649039361732034231450389527178630277416166299975811210634411763303976037990128342283213555429127926018820680825045642407764123229135716481027460629153098358429688542848010552859737477391415745212358724279362950270795970061592487421777317993581997529162363261558142268701134622530009662785206789962490468463938004252034287705858873696703051078345883636571188350938529827059590870877400030880164001952624387009926478194939810976562688657014062857845573033860806859770148308523205518042325382766910554940381483103271255233915656440707355932853107527869298213325503276963903321120441296301956213434835220490469373997937848579597343792033147368965751482268000442213538577554643222076992633607335498651946481764998209942296004716105854702875239859959455721870532295088196732963873852529346094968978635638781255995413311316559726906351073445163409634245449872282222320367916017096799533371404768289245136970855660808049898361401122156452453887437633700546065176900187661978113320934706667080481286641419877059191958209692152406588533680842029740901155317352008043928559115844716204187073858167062514309561074513133027974234190575513725881883419201305995852233549140317808803792172344251796764430530380170173688614600258557316679125212608635550489455112460927707383331108828533828195245113902172768212139272735618280848677367105101915575798757055355799555935115539249595153092004294815850195680999703822496072790058595514347401391872736896677321413421910231262299565824168744738528459461230121507144172102850467083374837975624080176119498301336785744840982717039052472260648114622489691687862808101174858843601276953548074202121141596471643672598645742845423913164173441890821528490173444725800162654169712964840945165111614394618554739168569151561646273298359334812361045886868149436417099434048626463456683575317389004210643034575133417681843965110142713095508162378473755706556484707120643722661520340216455028627956561080598965146329241804528893084662254591983978076403494632650637789499388693963405318889964134275192383818674827838912693106604385821385360478050030319440932587203321224190873513024203701128584102189407567342775252840587586812711878815654995625191047147029687489350298018689412405770342246332430475670342544205450571393845403357807542942988492960245259237256149764041495809039930076249116270087269668784065565943496291958606004617012837737735390080389058526940323909081621456664267048580999354532306239165932198962615924272318700271499441750658107369032706320823879296959452016926956735984101754324430926348309868813975063225957420774080681279824257471077489261908127995901526212035149022924446760208381988107399873894679215978190929800750983828387631062896228156475991247341246414104534963115999830218279073101581813622907150266101186897854638476623444150478301078810662969515286241130242704612941336152577978787327201193389927974612076801512837501272515544683388992475515614999115956923557813018352629445292398267409048402052479714581559660861162274694792303972737393312165811279206381011154086571183526793147786903292016598520170226643775603880828915184366977791597261940187884625027674533844995106238247005148395632100479153514796363645514978126939430772004430244735058615236992998519221154181690837381524875851619150056626032424677539882262566874614832856807813963725932721521137704682939293351373596074404999709124973709996446962968766488967606634912358493567491454653105503104738667221345110035778919095323865330885489105147567991941812681514984344797837624313480033156042167452875701633497766092434273212370149431291952229681649179603158814559283231735699439090826525333751796800008016552778532786168143357667954985268603233034517792729469737931298836010701692703926751897596806650956479754027228612411926595049690321608978028824175525645730026227037424763750897384632878585948217595118683121797353383319288950685487063491945501040400058521220319121693027592007203905212052693876478370609533550081212549706282261717779834873585305537444933094257756910396266906962312850874815476885755095795674410790222735992834333618353818436872710411885188482672624054017731499715919188468657201242929164498270506670572912803807480930024169110264188807836117253968999620661237271488690393827001228067723927945822826536039711644595291873004015852664223338249121234557602825470055026160718646152266945673502950786403190282799755834286471671034207296653689319291570443662176284223168120791851696782381737180436752298270423578619181034140513444972761110805936840904791575510346834143896128689369445668928401602053610945840895966873475662006728292240605985762603381055508011438070752659368035825346417558745035889302691727288964515661696647083320212074911981825178635920945259147489052814124583404209064725350628593784436568351320820143472437934139183668051011023587803083164928028977341794952562809833558486125038586784236457524161486919098156683619070511831043095931181158777185820609226571104181055150521039204295039003021855343799326851811901843646359651061410218017879406387220761818795000142638322663497697564925933021685705153776204781756883578503558169657649513501533038484349103929030509505165758814068215209030223173147731100321383186387762595874655100391597917953929575068770274762606905892528490007544788744901581989129459618968076648154728460015399355561769638690788344968392130502307447492760420061668669795429017532063489946249630003075854738523896532227593317758131487302150867939854160245180426720203136216237915287622539896953174226450054548980746886755503992555916266900879965031431544284386192560299854716902532117426415942844537757019330102011988668973785858283572534328169187350684723631649122187378109456174542324053167158008837395554932409608586262806365092211228601411409883475854155764667140457389618071344146919186632560133222927908506577994479711432195470600993689507642247365663948867943196374768132657104493753219279561008556226890840570413591153906614168487961912135137950870426078251468002821083907633874801046196790525750180624890861488373276016603188316658556186775261537340920447828014320836858380346421499254332313662171610791291173550770301748403172925157671458947649408031345075747673932694379691068139450943992355330537895959033180846665074202604369246532373144099131590785635572937584849264801147896606670258282316714490355670192040899732857510715815508113661027507848943794913483479571347915886481403541526311195481587321896460642395146370715926358867434068568029921350563898609647151230352587886434267101287007953724252482498409906390705203798721728668356103640258180499843761096469494143616879651771354193427671825923360535839667780715094959238861636965668459200825382411620343166680545622828440393842993445220602588632423285017653235609984812985774756753715895871455949952679046097292825215125783970338505739131998007605949520247872556005056483400135251167896733757217688654367856490910765658164084553089999377592214976305741457832731866691617804910969262294453461363798655712000917317607063114440749848120912399306999408272913202328461992593265806560311860079748226990242574756084207513791052517948153336805916306874142510663122264003670815281462219644408643349420499654056367080722027401727972610175945665867729081032225927503632335925100184760554321106495113172506343532581669426299122733870609848356654837862399548237852699647059393625702774544804070956209851108911436504513218781515204969575585875703629761174147426583943402361987861830195595099991070501156918697793362762812556170991999800228828213160569265866937465262069915847994828630646356653897430363768292468116570895365673703254012614171615685805297789555993651867680488963031733238800095246314435223310497790105731808809924865076273251633488053691892592160635672129137275588437142424761612747146596256668206402074556169543125439092830442977433705032948505039741883734684039783764368039680050861321631300407321804874904208009172300688855903296749207298729898800036649018418018738370474020927136425261828778309213902289061433072996422359870803178781893023529408219328622216181885942213811275670572544410517733282193136180737558126574479604301493758603770445359698526503877288939967009352295430205229594762050237524716434578946279345995531285095751214214522034600053913123809765806454383024141385758276331876835593423191759863147249904466650167889359992662306626609314524481335396884670900318599257412830259413503678599581815425166327040041592073761202713751230448724330381497147916433401687663137768886542232683206913043402184019832728583655392167170395754029889199046499821717911749855227876001342732056305949594276803340877581513150117907776630193214601939203152583370138535008872424260499489123384570063138555262571468365982440015444206288324441207158638377360347115227193357828162896665985208876825897554419937770486958249101983700308358655604661814754155498817694472593350728555906785694627842067404422554154821786931166918383610771225432481142979384706387035595305645589441110100848234212573744951405497334672275787462162103366495988710798433467573866337236542361900115916049537240907189042740247286774520356074941841840985992488328789748157350440975219886824362835058511592582757914047657050478682373559582383327603233591250198648828254878762656666432309999277274636704429993102488048128708329248214768348292180884769273321598916099493387378032231408163829375446915324397547359645882889566076978851058114557176266795643245476341804476911738734525910980071192418309760981094019309228767954768503152189682899616208947541215852767802960387311273328687850772691162014884376985133398358773653568470504293901524134705484981058629583359183321780702999016635084924648378084424430868195222211922461744247546253799734790433155620612171509072048750664576367844906633419995275566174742796596004173227388276938042571895589321249096644551392166288393690196089400533720359715236522537602571741525673725042162715145318574288432578489373951609808947892546272878675286636210507229190649754855097834354501577993827356486386208200120830210553907254974147269006444168839480448262932655570957239935581682942304389482300351749828246831763597526672123487673514223146321734533249915473332464136890669035204837929656215777603073208114657223755426992397378406536059557537526047761662016534961564404767617686905690761175062344458998908548978222105217665965377598668083212565010846675777039168721372316864171460429767796962253346681590463581202705814395499277774032229899766503106326919872642026967589080033307751883349832339408490603671283012012035909093723280494362432497788686705858049966021742559100818470442477376446730463068423150866373079683006680553058273207363146778869046915126238555393286194137358314193153885638510093359908389009310274608406719127094397837580999924072376642397712437309042630487379083733935134669887147616731179493398523123785694491240402379737603446968736919387911470260667651107869202245002301843838460660671734358384329590872072148158027558003808010773023397615639692982304848235717707119870319370806612420800439397633500340129863234697184397635254168003736676384451895778711568503047855474673844699760975629064935379373867610456265559241268978988029864753962138995880318233899955913289060464701555424715486133492349394220062755803349072847516051877904712436785075912617339365032959130559994177254320819566211838054905512287739800202014449607323588799700610203906304555167491890825219303037259571674646443981548238299803418262288414532853183376042292258067203285929250289384708386753756385781602375211774960091186006907964372096212511815586635240125065313724840586743783685010411347468208405005982748744539093745061192287623415557743863941518431429903300686093549831872789882336606749934848724023220406086910189200386956892582607326364456887530295884924383554569033571202807697696433214587864753624967148857784554186324373184304518231979849731389871934051263973972566075999558567428096114843108434585655895426782037743651243453240842947651962413308179355536912911262733415246156555098501182952173577786397328063611777166676017794270840611997572520412717520995692154773630349978756502353333570778912941964417482657198743322451063445463403147513966382069868973503064859742197781688365361820769837048396213758795543411915737270824009386322769215349023638016619496502758140553022975663255701091229165364105534785356790071188125168278336215400338914888390127160773602639359300710406767255963225082032115495607184900482790475512919995629262472805838110322284872480748086453798332604377044868188234533272192255310425329809519853836491826690744737229816260496712730266953107755655323799555852398859219805784566314941506251507467420683720853288675717374393777145217087666482290313034818529198561536994240428140862098231676407757426434136371476717273719512538002976340383846428712890216094170142347270514934075595901005307963614051462140805212135761635587874808658120490044638050876377795533757328650399885985602454301061604884194380499098423078244556137651510009471301743375616609449181837580696537614794552523848670348291049274559361270181359438721510591910086799133226771090899552295073086150418083681803207789404694921275388487560478795908339755128899289636369464381442600448419169412915416451327121563418919963838952702534361379107366072045835521327255527923457954555913427291479035960302784815229096628034671993453230736154533477282130284916200437188663858281294198645775591224710371080150635284948224620346445631294068366912010668708572773828705802208603142061196993110614506909345819306266452961016091907786408527947356081534441410174737150119583592411877147876719631989555071533138459057125381162647752213738208065315850085985349778059088915713821674718270092444365791741151474662114103233491491039647502308133702690084828086034303582342965673703422756005522043893330468550008012196570266538530647473115878831216208429642479384679730250164422015803464656488041655218667865411002199667390244672086125816876363177575479672508703420403531735678747656777015205959937724587269310453608597510369041883911194961946623092323154176229224812892072135408649218557058638137913746429108524573381780803921786409857254988748056381475509781946182408674568343986745817697876455083362532082028452757919385854307440021216868248577217949090165112658257394070399414737875184672525581050095433351404533681085848503206409847406644610489856825614671401278728433576272532877927661330203495370295297191031556911483654880194368582269496266723649658317980627453758790105386353592558319395340134284857623281541999164068272083748860652091854172394753784316863404419781960248694135279656717073265816351447594403316759020804459940406802170027674233638535501196287822209014702347298764751447239144922983867676864035014165272250625881840086337640927350187419387714657674584971614501930841759583727862206755079897893979332909346985894139625548054727438293036927483443837475473462607095104178048910984696643804106216941816135578658782383658354449805574907713305880584626589658880364325694632621267614514739915499491229996532871396704435884081328298387587508197048503655644231240426809576036667096770076794165221114161744501096957265771685533867831274826181542442489631757098184612202488769437881889316878555717485439519554761686088940496730085100327366388468875995205802909535001970592873578516116907652654829611270666949100648895091152823076007708444050208860081518531283732603469886609595949313526719452473972756564629101286310219861802101460927985857178156843803285541153523028507522623818304343116377373864322702292660276445072040690897058797207294380943727126174393281430575193772750184613560378206182335772755988411750314671689517635945058763559525014512715321529458200133001316157947196606793133015044242131702980441374419241241066260584037690684528550618293458208410055479323019416502384838805126036032853795004670368739823770531855050584861092217482018213735155241229840562669345761075054832378750161711632867979013467050807908602075349957194419479484185709303338520244469320417134549534633639770538995120142258376673884024850147207594797579340757065632344718481930866351156508762517500427954561108243949434620383365304649596024033373336794207420484939349586600578778735352702779251263320434560357149664271458261037703968845142767788286920295767725852158500503263354212309794165865853624341552326780858927370665856290974474441644023848073947785798092112313934504081820842150818437977613570197588893653842580065024724097008819023986399471407545492933940478272648357877493619009828045596245080653216888235293146560822034126950314518414820080788318563021230783709674095282172552246631840539812905360756315598925631625910450732714036826594099990911373672515259648053945954862320057696158246011808475116530586370651326104164194436921317810832147848462475459251249908282145629008993745306141040819128300948439068112207092712555103508556234158110131725228650811045717497870111330722423728767670158475156164458282632369461630785220031596557983097860128551888750929340603839269721653303759631259760326593339722712588355732363304796563931955966260108021160240884102890525208454133080073773892972100230914485548390553888749713250155765505477864775087947232131763705710398545763897817600348388169001792516614307885598814793561172692399049425429552737543913624161503183421938689566334408650737160079806270947034261020620033664310902802015100048955364152676809505508092738941249029998217490633320546740760704233746254265547218875715522831889562151739681103470194637234817132001239833642575788612502228778834802228612185561914395341833755418222814939916118128443676844824170987823922491626107707408038012900907097427444654154913292738493257534111048931294892001954304400969859279356014343402054270547061431767262453986597416629727152368271467809399721303143390097305000916880742878887168373455824239651727355652976319539323010946340032558541997281464511685429506612066730442756436138829377884370571036042907843606873350479483401031756078015182830511652826671660077884205383573969455518081083734974543482407874554267249320594413718768712992641378352062033922270839128634473573857147053809059408511891362396655801632780812528206476999799558879695966289732718245420911362429213562284385575427328530538844359474785002059810652920620990253057544727497554441451248728644995732564203631147720162963180405752836513291269071408880015479342527547106376645497337024677735886952976853439173803958246497537255471536797834775274233151221642043641207777124814953468054837850296213129761499159260837348731358149308750912989178747872584861315662632888446885788531962447690724394063838438936632648750955701200299160038116088561367286022072984902073617669143768115007161817036807827423885118624140316919384490483604842023247464671165474644632078540846510556201973916405277530316736176258546837982548689583863993887374150243846138370080157630069524069302260779507144091458264180887638940696335511253809330713947298066049876429730478196536567148782234973005831394718916887911954803413486580058175473506716435100554048767530944212656577372561119940934432977819675531276982604715767030199493074395853169140691245481570141124188298442470667519830137705889116880847064687811241337476827810001273273457447500248256085151341602317487208828351863836182128898398058284713449331336461351796833843786076383770250124443925054889266691559796296685227969078090252118046330777127269606844925964296438788278324985859582000646529765319529094849377425515634347822329939642660309823190941124038411170487742650443069646878358165764905680987516563498629946714692287308182564072754699243352297827476126762987535159175962986470707336191563334225416459986068718998928359913718090677955991470009340392510437366031442038271299125519313940500565631308648015365171646614757131018891799868314040435781335920417926263111668784628868095820003634817273450857823923602579181231857777144403470496148758987581938342050980374600259536311099619167357794860334399821838025103122161007434973189871287521304347606525461001133643733231728711211028811051895792956946847159744640851423585046055419065178441027270475829541457560322314130785473825022323147485733642160869481274579992942840151164460775015980942794258702398814629442236441244217608941136095204833927240907467970518571534572852681761296795931500940833608800360329579475987072739034405747817242847185904798803728168826217726258919070611327281498459831056768982743404764694680049918519936489010264173042066215312532245668988887324411626781126959982244289655003914680152166330824337765251662997989185511868960857211370714255540237716493444856620986387709583788755594995956154508470938017405300418565289293151525465457915908036356407921800349611205292666935765167342735496182121878848336874982297496521679031202126783138384220819700412269960689065565231066240019237788219309254597831430760702663525514263511478756784544569799793719741792023138344095016096387003401699657321600601049213768379439631601427511057974407651995505299204677959162293954595067978044974538871284668331633583770859243578510670524575025153880053466863485296129242492187479912540336291726738166408831686470373387541361522164440009306601880758586151432905192832045783230507364171481188396334946890748900536546909470063158399296494352976052902451162900035020905228407776149503181519506062810580649373973983773805580011241465925477333763542654449342783021874206158966325806702223424999269252944122294081923416289514366781053864526549290770976390129781693457068319469235045921679595250964067431861171950987982671067885093587807836789444124610736560100701181713267847669697632087016835210967349638737214046675648374907371209890986614794426154961079116897535218860966995156699790702574049244811116708042121618128124485106319968446551136767926712374368119462163914999409959098417539648002797407294449953428221946479848216825081946130817253108737492595755485879973448884370693806197798242100389818053274319806634399811834547110632134135892319484090795271670148054385513491963729575723100189687858906013667675119526989557853972339830038702840737478550594376457818960474789930031058676651174963943043874548141539530697511390027219945204299188961176792818395722937822806445563590649167093834408243531297382032674350083311392446933208590114895108887985941191380926211383386859709864288431603399653460327251906649289354397516393038053195046873815313473078252595178661029333726432240894772151153314382188209685342212552664268229561085554681719842573198194494445143286709412225365958660626066762758152033923758037583703988258888493586258639728826405667410130558784667112339019816801448173826304267585364517129325625346404483618003641460027509319202668304142548168194563236475364585730650423939523798022862071334939974817910916111155250388822468998485283742932930650292117859704395775474516882224936679401928989515525208145514063770902888563120536965333347880287238022111183232663030571025343370706421671515431712704331249548050556056835803874453987298735439849088952929816043800729845872781386178157736714885422900301564065355040303941305855858745594038453298504445097529158419394477761597032813366525149288946922169232480729825033571841963769691071700693604257589644171232815148391883571369833112792521602513494382972645227359154864654040323498018355810138561559210831610847210776787622597952097208787924953705039093836962860313400435908790311108842526521723787725760014912728620410100729211656488395570982947990538434752411046258212273877589763032105079025654359615008844608059863704646094464351422732580589083536562530388450460119365781893440597373109979292218548390817671320954465845739654571763610969495031498423274017994437257290688367113878380643943318672770585334077379108045288627562619233198015540077257737181535968196221034525654275714839503507880604404585299386985366425002035639906066966090543855848440195271920212895103474567998957639660680470473141771169556367593496074209157303991580300750811664710265302760554432191795048530239221405444825341876985895316569698078235106925784113794304377209402996847163444113697242947517809873166341471147689013854365656427925267544453005743374640451465976411572685082405377029417156293125370714257481887727037720275650000395825521230070258851055161440102799289142928298416780536622902747997864547319208950143574542649284218055239086186902617102573495033164013107819427386682124704199881552301394115908202267771653529717510045463899373007392866646558637953339187868104373921115526260788104645049027878148948317337432491635272367284770601011393278752456554648105574683875913757475274686053556105992449167204037269523197642214968956597317276542557274617998182109854945926548193116829869838420538673344628918237493652809726610999867526995257723989867525957306225890804565053165762927663544349646216065527364873723056047838443656723822513134810721700260209480860028307765022553054189567028533013004337107864777371879039571157690734468160183316788206940575226255869628295684321549589993420794396763760173786259996194184298805431912444429529677003950974848812409709920516593035537310569818070873459043331071919596067071754092683659526142390180282096600666878202647015229991043610068537654017399143210975076110653109733339291256029774646758821648484214826448792615486362546472678446457925836530595191147665148760497816040823641404611818945912870276489530108152425697377680035521687299438634693990446492985484218005730109283050998751405172848589107303741738706381332060618232250964515928013451043893614200374979446165934049379695048265721100459497609469686381997512965969252901343781818046645416149295627870104980956856178795331036918567884619610381790571810272937520594814371121564641865214932361329229584622746726728328506406318003609410997149226912365965496895051140779299250839852269711270050993521587807673254496228433650363453217988436918513762529377167502916203071481754621527660693696078459220913438415530334550621721914085564223551886250815628440405683737007611037792625007338871521864727136714828520982459920842134699355731283241946200496769289753611631503673601001270601399844013837297062991716188967814487320842844289167398830418080850216728303765592197636370917371007912363243294865565127881465574621614996799772306043536503066512733652040317583211785895330902324295622598129593500632146666334426129700873741102926530356999539120772548354664785976868805954910326624238394574333738801196339240921328405412986051722117909765263056094206705724873357962027242969336568031737416807711658015318508088160478323962430439083948418431910308041771388461413381177878895927317595597324365903108250351382440626507351714940591247278566678233057856670356594076962054486528388878210283727364207293813686312045126933453279930627745883668726230966634622395960877326271627547928130665875869081811349026930302631633325995320162744989158685447710210211893410450795431105786771220389748680035987362405130797815970382464749232095546284158780808337852233330166962689444930610142679938463903756873527446742592135940476347295176529910913052913695218755688193321112038498131898842468647871558503260106521049349894273945964708817282951587634575715450795994799904176317052967589723304465011324022557441992283248574841049612880451525275430388243664114401029532285328687160677159630659243665480787099160177360508143223682530352905543466367871693480756694486694220255740813088586682802460286115706149081269455544952400764022476510638304674319384778444589480519273919577501537995293503269634963563111095636938133470824422214920329070310657957221487966183889114666359759984038625159016979734334100294427339965278251333124980232177953939082911206951009019470818872722496762490056346139307287296380634781407825621037110756058209322329512695446596798255114167898323323645824321160672721958822207693400729503421206705526576386140339066267808838699411523107702820863257305441447298969149772489598857049479409609437122473849167244212681741394941395813041577574504937476452669506970326774906464638204657149042179981915972210931704660515236096741822478864563380450694773801848372271647451987250567797400355222752181352652527024183002274667752254111651525068608524763906977474395074255987054312042779724294240040051194920223536651764534616442628184090843667540904759271231650120396885840171684323257601424975176054220847416587601317138118620883933740526630161454501004968706321703674272191444269395404888122458959524953188865893550694443334280370691557232982570490438814255114802110187138809103389283794125421184094063770722429189772557370649412465332552632220975661499059608907078962346711140419301933465025817191622097818523527293755034327358467975009535486287609671947284094548413455291242422385876569693734827937335373167846047256354598773786259845766757963286813635021372784565571280356559991221857204128040259236369751652807460219059135292424469211741695069642546940157017323611048873964995189434150363905985754445805919424763805256273387239809621282408160763921855455323079724486529224475022424456169479048063243674263876842072614318378706118961104307734796119716777562634020154483791214374783180879887022116147425971967507891345437614105244656370084079316255669675191176515987338621686247122473496932408767426788398720412168341770589261995956799063344605437505550702211544846246130063235106163408646169317145360570718447762011788965095618156462103894518184685228000944675272206544935729746581007977731231650058386068242624788327396876837806937414239938110223582616909151103652591063558275983262049253126559962182490013782491434713156461825653611070061650459225568705320872741139061161464082163039745757627698085277293896498325804168329076723147248973007325691283981468573196754044113521355508249808628405199822476350628577249856724228302935346517693131982205834231989736828641092407195327279678693419253572114016614766485946624738207985210459649963514845896192766016703884944555712096325128054157331664234081923864092591940070317149693551366625678710798716226682056799188189791679580767225507982385306581082869432493882255374392905609194532980445322088502937735141466191311366223447648065720059240558935561274840292706062230426123960827230998974782408155123946914421916418516183210951512938853676959189515504741992464828269560260164658919667086909795236108517722184450626484622217279279383825071996651711101581716949710537053582369678105652713267187933890825096378434152834773264875756241844717692154355771443321100930328778149483696596046544218574567235534052986916724690818489199161162380617947257939302468747577383880115588851406225856718620598318741243114588355829258818241455518991897760527100020965119206779611006192336110395086132627990794309185787543024641297670828108607425414586664048558157649333705275225575130759626730191073466982181522398622108299504585681572672835858877404919676876236140367972276053384978758140048270454241479331842114279266600339110217144152928400509487850106373062630364981630148972190810468966344605566913480181753363495114722941770344844435033769432297463873306122037913230444154073707368291051211558866032302121377104480597409194640434880437707789036055952470245575902824208638308958001756657288560302124627266109743425370481614689693897464119528426996122025106261046505896566823721380979733710351606446305228657073597404569485915236971676221937450859724099931359186335904612180794730979066097140345145476490771169118730507149245348142807055852406300983648295293839846503719550436438038253035412825270398897846512239477679253606713048613456867291851989498565349479446557882775840514564017302148028103111233757185403069760384021537849162139279678206668871387479216436593918339665453480555360878857512268480220055569377300524190480887898922865109828172281283988430892660845506075237757415943064855555288323789569431063049228222408749750643772803533392632450553881683341023463995548831138107101963808713647381875080933085999436844536027272004480962542062600520514571755248210478143800012612697308624444577223089154244166231127279851971322832674779583024184030758287949902805507415756466915015699921094914337261508285840391063660460774815861605286116042033404909270109449853989697318134546702198783309706845587280183505135482358514958672729228985737239617468080183601799280790381264197635142441920271229361985494504536186908779547149625005858754637602405638596589043877206515265752123128715538885411328725473386376017309014972824993793232321441853777817165892189572240337777869130305247792112813412183127094640680282506672369476247023774326262245449779708464096961082810361475652109846401892143797599525791648237810091814910569594049535144673287459742150543100070798888105225936588228835580494932011329395388994410403890316347358214809856619668610866963723164095353846939787063275280324487428241310394535795628999092125420902652523995140890915757666129675194160385819252559057309809491509277912299116118730940039703418110278778569545580973079593900607148597977846859781013067029808186490918546085721036878199035241983549428313120650462665306450598712367899593439071898384280988891078355603529278233702334392874519689955079486558049064673222053911394145086432895062300129469608603839188172681453292406921116312286392963130963174413913879440843562107473173017662373543450190195035073668322342909606821040130338739789973744979037904545178373310685571685737756202466985817783526863271118719174717876351895652603320113466287599845291149181349239158009184667157541191872077274585105456787004452735197558551526109059371293323312672456974412139036305564014356891582902843718165569011212711452088591592311895380142848832874879552907404786339157296094972231339933651202994262282402098094152778165052595187049024523372665108109184341986950905850778592069317511304047501662653883802104629106087499865170772343908212021901742601872934939731456327356079677186939089529188357677950427338007578684756581113197224771978319112440722643748078821363764124139248860835405148917641424356420905631272475628255205249978510203097641685236119299556047720470627874521598384703734047354694376544299785200163533950506327184999030804642091965079821916343764790519934160506940781625056916777967935338633982973798772135367336877672901194978240588806180373389043402702659326367736515679817248500841285117147746737194630239578337156280025090230062126595709360826526457475078512019380612910003585998102921088366574161440920119966400384362906830626237787048325562804375630306146087829044219595428216993605933539055681851245173101942845295351877142585491445951164547892795280787949701808513529475162738381685786105448247101917986483488110412297546409958220158393973572452810955850859764853231479481645865550350615424365039590807757928623768579424889703542213261103447788460758811335153690374321427123800121529459688720495319764976317967325318906167373451743500572231934167409380243218941504452464067114286507303178059977441251637421832039179945787342271299481848129621388496880074196935299171943736086539067729337001572908202248048974090396356388465749982856197101691744375844427643497072350604174407652256365937638701425829180376022268118822289259379668211262452196566801853106341009575319726577634310141785833942539225890250595095580083981266087390746022217799700241598226797953075006198111368456610438684574471720448902679805625806287953435050498708536737035871407005381732479383486423469728582281310658988082874721642479466522244911711147330295183759494365908122355468620455753123867738231530572594572937757456208464210893189553046600237228246445121578548157882941847307844254275113361081596679168743431537872049869568046332093091487994914107920218541818013579369528514999110229844316200465267955115914546760554830516323864899448154673905806379177981042479973517003923935803979813674701413127775828968314566514548352336277552476010520876382508434004458876633570924519733116593840284480355142820079109013249307716148357844486601760574982460928417798178128253532681534530664387222004502116598275730797975136587843050428095258407364373479071846716495746635538120318334436187249991713547581033761428119353418271450385583850464997085384784180713816464755062963077764463724725421845200629751703425131442191908640985571243799798803745965401693973961291920306050595518852826974339566280400542935454641632486596236902701322023492129448504511416010241755910328375330666928511789299153224412074930600064653794389241074148134565552581128870363058626302051915079586915333558401950749337679235729665413080313744226673033333658929711628032462154826346525039287303812809323367920841979087568156673979353019352538016587393501333026729519822558165397694463359448426683199156256106186261117980160316382959721050804484148108184735003249206405640945746146205611588543038067809698345558959073737821450651569629232589005754381304217730599390889088779826541762351915139975932401963331086002617751262026968216200850283780748181323172434827052062797402336065497324714556764365427281917356963014559630599013540769808954136681230734123127822770928557978317217712336900148095386425341331788180915092711864770657972825386822254926655951659211586506032929109460775832973038248698325450883962048374992045366331646566931620417768345824410942758762088327281733672577989051862151865972282383784687937792632687191621401227822035007621184306781843044097784650450222082781314005533462302792173580099929938540221737511350593691781164389531256824619597242647258145750210522228898630466658234437374663913771061081323232571491249830161484522869401240208521969912296165159707032190656041411999616763687062700282647578773707739757892673809229751713576210037994142082778263978504987015701361539193498398155922968615059950273840596011254635976658964620634063278998771365417048348856533664381991758197831837147866198518248534670161650197764481006847490880591593992790544309396883853867713312769316422070929948887522269130673641671743022229962115485755476892122028921421601514352686946874866482107208924970565055458616548248394730330060503814682526207347188480253802309645825203585631959549026194214708543781465000179463682192510880053941144550954282774687694999855312193892521331019355241743432222775283822540408522032055852546398833124128459768455243374402889883393957797999075681611584037186955017536541818538611555425899565260831324349560951909999945437103961297893201454363580913516649083515407908349354522239594117863045960277827263324061867061112930593010425123491065892347349826689791949347760212794908861582444748041464657575478689923700093797948364433101777959256408540108160448500295468174601619497682621863101415995239287375713229643560165080559170867578301874739474943375520343348319558077893876584985088541369391776524486575490798136048249529237607900581545310631554622921821528117060825440828342199371117656225814242880895420213411013377669804704244031527050533798518429202640725316253023887406792031594945745707538664620174843303122082214322074105736376883653460884940838139016178586613690149331677328506762124040917595753192896548724674626250847991047296401825762789910027685903363784262149466612172065791452061812463911777276235922608809306741348517751673875904971362941339481312938177815589971277183106934285814685933862920288933331932421798430446198416484004425366697866967237270108087607370015039106730117933597485196675798201838998669209700591398094751051898870209960188692316498002723099816811420258164553522733272251634157338481864246606784679441859826288505069271796270817583431270589011198632900087928358190492724990891803821393279102404860699611024989258207026421788449124707481917437104610795173879910094445259784589305470649842373634564166457639787199560063766841040980159014132639377181388100545655637255963897404114657391309019644497160814006948940058970150578381572295263993205351906413397546397069819501315223875077033739857552694384773295390791691151986549205611635830204172541858124552371810531572939420131329987953088635169682135788635068289179499654586610673845628385398094579979268488968531948317915243673398942233821116712136823637568167181854124693823146963917163664452554201594378825496557107865622757726063818692145806379172755270972313273440400662972889459097775273299884188436698428079695861988074249256747453368523965917934580967849722596114345126751916465306227394408781361583975760026016501140371231225410411044816414764830119630827268131106959158091633576842708165179686458673846823779468603262112421279327631067737656665231740761849046714726158923157915989628042703811697300264674841119788290033628150202034443708438227508858051097391210257110447368180253879786180511151421115675709804135329324828755105865169515584883407112923317872996822885717790078797398146819550594123988683262760490696296527097209034219055404327713864196352684394879418007566653379860425028763554535354474901105305934013319631336195500060026723195997410646636912501884510793437659843649452265658670303840968880701327548420889667494168839931177493410508925138123444894993940892119652770525019637063836016540953694385744191861149602648170073868905542553774810743945041587732105059165167210477312480990926068323842192131423507369404688608243634392401383422669855876042126469386998938750759984464195522801134379838675817290622360536000356168297854502690992867561540938579092608445098997852910739865277034770897777147264967677161895567241949894348108665895605101511172007126193185026175307469807365740723901457733584274719550888270084837013371754810711013057597550775963206436248244995041001575249868498851765215376921260942649667126621811772377447471446707305324719288621178557261620631069373815109580868273314069456524703741118449698210531978167113052301579650682693794384884170344485273907072513399168633175848417461726005036891532161543581142360113223929208865476507110390458019026846292450552814486205019386740047864715812424776748381514875175741594624288115943361158814911686659089869337979835190499200536875834870037501856598681441927498910890538420544760184816169617390978808615811458494400565583299239960145589191045226327729688073114376801519813623003811769520639632078686473503687114615652831299017623301164551029912203054370710981958244317154973661711205649719947897642404888739755275426472431651648675684270812835405430099556115690579543627885105951661667168517482809614058517098814315334256723490104568423301319355175501770282387303892831789839308222252766092497532584683848513013249627725754023221652904796553989693535783925186079988654336759118813927648687813404300439493711955521305552067950022426039720415611977511728093419839150330511828627264304953306356132247359605293220245789890576471412875398212677982688974468475633268482294914475713370419319799616199501446458361795631633718508404263821990364116275808346175162367464791082167240597368128979692165617641719254586538861723707765119272295422875480181547552944128090093438258524787001838223641821017065650551418697202871415803662833876968440791679009777230352733711218426040144639133221403978758821671708251226213986783664537492812712398811410112581228480205606258726841240303949498566732082456183897802690750037937869541292955220322685482028371064453720185819250966226507798183812308149950833931707944671883748843486485333052600995157330345973907469053473532904765074517836792880656043694628619233455383730749988578788311607881356764451509837116082788662468440733476562433571173419139331731818182382667552627052116252440431483074250081555680551315051184351199699947156937094146429594309132088521488400932907230113374596414800480000679234079900803661826368328820114993870577801813584838774621779149761829272172417020074340156519692028357307496963882250951349336194990540053796077258368584787596241755102280088051457405395924096460154988509014267801034434753262584769613626595793610941672612917817963233207737367881307825557495291423513975131037088563244949367955365368847222772451600303130345541303652775985297119661057166332432949572476976320944807270050007379867394642697680296248731402559799530533692647496074754598309491490109597013082903192155999802638502510137248540024991385738103045580071619544762804154478120104734868253791016502815152428056938568999916974347339150733476278795779719859827088808001412017481540434167986710248782119369885011255682833500785064858097609221771492080453836564430357445474210116837555988748963492879963936690518906496444045934040294856050952154183506062786653334912029633780741395549868478212176633732490716432410751018502120372976728094126629935346274365940556999660384249910189370691397921070378272148138693328252767246308682137867542529573293694071789456676202784228247533547910450421640926124977260677638916466130165173296006503099217807266665912451045583436545889576537108334527058915475548397904786528563766427783985285792490283673836902515977718502713002891869338333513225441157149220075592333137168347625577734256242430518816251403536822657798829453530294269798711223612321403463734496695141763458501294964491014219912606403169380474473448180537018430620971989199285555754934073124899963607455898262235359286449825054925614915797743449626779992361691632571508420717582729087164946894156202913666461359357329736276037604085548150073939106919443179194631065230751424604932459283554059776896754025217486418856786149146329574778189434804753714874621806407034444861159561425824402879150573568346860794748393812762461024956705634512491013575325954359503768022859456275021486273017545768662750679361663321090853874660660822910813592725488933614609157252254415576103899386562466514171166081987655657295053965370072878833800610894104949988365028820734684683906337855722993393564894745983512242509058535173722345903951492959849383155920091556809343452912565243203603456252264306721347328360286915690892591467607029065275784561042070717881254925003499213732334755323032646812670534134596283955423819427259005501456421569016181980613473064441075044978020098449177891462419997067155700046071391319960987674250538654237002565030085857562888964802046228813166850178978148161344399264999184343992875758673793199592845579763283753024160867895216526314497746035077473725184018305343796424252849533435530652317696404042432393657388589320444737077492267161512773438943335318351160480680159889031963977867938974647551461681315865504693294106879045288164453023433757893573544871559891620559071256980543468156198026899134849940859204470319697919052972956684443861628023679252318737022871870825806550969092330151990577618915692855000847151977799071516870017997040897720200199829774730090273175717806272038609760338211773979378060598784947220268161452167359445701466676479164440666786312014557760702414439498490734379189717649605375548582549742715878317582181317834231683981276099665184621146034556907812748170538736958041244173898577758003416271402715596153109251482816308182225779532989114803534870323872790950040010017614035350537716675441360764819396028687482591321218760212892619976272966728986931058502351726425212288597223048044847891302829748809917369799431483557818294589159098846177655146520122308438290045531739258608556361956833496964316275821186562300949022561736698116742698390697930765215718517393620752805216266975503413365277757381534585473126239304352723423962693994608421867097496750384792591027951381788366854651151956849870984322175873445538972076891446505979352878715436501268631113536966187416664807679174631718225943332877512568082847249026188832204689230689061985641315602919361278786705304805120704025288267367704104398790106459690286017940079422944451442886430513939627327036662121171129823955042599616597864213105179675421566834855956072343001775878551889091024474404167475822687273818559138325541960478311516001450614497595657428322410742442950597973298963752600295068215870115219412400689938995888054600319793558077760442792350812771321553352491487944621410399579937949102800872911486830846331537125936280351192918966446449900510116483697931935850776511031703516304027106493919465852516173263724813810865493565064863719226765071658630978335829059717500328993155099925133390913007518323641757762195995502772376348020296081533844422234862620495578053101337791902597509255865451083656368267733004301783148051005660368896805542030369328572866533191035402161516099277889025212393993898433517041733344052224056093833490749401854777067236805647435004242533453477495568267451595537648133723695803775824639420956474988039218562980587062174575772475377115189668997471698556780095053904161006260740560998893749975057157744691694996759342884996655370051016916285473596912336773590849771578380804408028450638431889752321616832973685031890262265976634871992563373610140526500818994910654267178647354603584048282368239875894480181295014063221597082891304038541682216929556080039338716852419499095847271877693720838897596395466732609144135152407003121937024573969623325828679713800306072538459391114024119830369303758357806736182818930700467669364894594037645215679317705268748661507323754708751064802211273235579297024190807660005286417051899209994074944298631878256539704048814005347269313032835183381246125013650581660315047662370820828960742960303390879726073832269733713351775506232945681042862290896253806989798244920205394626883873772330349730551969597857793686690804302293735255162549909902683704669445912086841595638559711039145086993278460046601140075970209349579925389171361380655084905849518878085732117553495945988880834158037832721781584107011711171809687572207163103077625360957637400329621279389526521574780274843706746755008334518488076805323056325662924370856575348936327439581498438348698902352632415124663837442014946123057745674915593077333149724443237853932283207916307593763631697899506988828280666050584404557267038047164407618229407200806504852562129331679320395618146453833281007295356884355999487602962072509070114083038672827304355670380592157285047152313731461961660528297678644165568275985743000898695021754110053501623122475737387699427908652904848323748447278178423119729548664774098454532568073799062654431236849050099596291752030775591025286309012776922568367283843532873558489134835513391761060210056767736840314660275027824515579430512761222678603376748265541752087493225044069037670118417751093111841821354291459318970327677127168427717072479130962186403395448422244086974437820356933403691191157473853619458391964481773992375011966941272985909669297401960694937497663719353900116519132449723715899902738336634450636682166465020549006004142742532749493799103480092570039155220221463139617326700134472389286516718031789901604799116957741271111724342914302207988145546651355883417204313568644551128371011659684478632544388850233105772265507902531766204589940891073575846290747794331019183034085604082440676769281569593040636025355665861748524780965477505856294785768187105572116358741946638022720684876602369132650917301077927473451598960139924267842043739546802908453787047596144778505471699190944706484385561710301491023976464859320636985281600840337943236482237325319238346233317312034981107007734261260889781368633706492288344897339161198961530101829224061839304586046945009670266031999844457498085182887359702672884658861234839432627111036458341926154067836342714790336843050997315271455207894380191814706567823244812571028481362011165014994981745978246514849654105790909559923111658307892340649071896468084992219537648355613611010307899710542607968481312183336174119998126805405625176634359332205867171541733141450123431725619269701148117521759164801374958834379548975442462732879450903731387258881689805865436940183162260387756348476508804254573385404095409354865282072309609597339175194730931012155082498582361220942442867578662996406718570875420803941863911239189928373999991038912627616130915801890871379462903878243777283836485898921977118575202562941786250817841183126875377395094117520711816784856017888358826393231438289009007145219661310859340367080509961138061656559785595549608988355517640821243692355178307424255942646871954650852977960648861615774279792037283384467367441132667592996968325970238677614122980293662912093308863387996825626627100958213242133325738387549334218009232487916816135652542707587066374209884433109592381254777732656371068415516229305545793206536780283292007041091696428070285508924757928984404346786033533969484709328884440008818292116286320767323342897203361292707911703258749254246163398121574242506180409660363520052606795162027038446986955370307513862873834755590297015943861780934127666440333212971362667653503931204038435282540399448733414825848509570870495517263090797411607795894647212198365445212597753667306785485553936795823562511490794926211109927562432439869745905695122032343172417269709056450115882485092568403882048829086247020797912035555811466940730499882506471042110993173432955124958338270126213669762996146826168858847037885155604578105423671771338032484082646159424594630891118166528814046608395320363973933677150187229021368002471805607863038988172817554846210855981973566936174428744995161177880671883251383070574629649632401809525219214060328251791125154287250848016931001410711275994819339084141613171838024555018451730896631177241050198074402724699926676177654772099250007553187396721058609434733301030172541798484467345073080973356453904693474321068176928339814853856060948077146813641539833405201162519816984078586636444000177394993991615299572748444254340207451482573964342726957309843026269740479184660991636723664679900343961377791865016239536280534852972306517047201885478259419385832636792097128408417004196688942954734833498259815281772461852401333989076417083911384900189770553831815119597266701217636614640931441319091021123438688568140586609743712679025469877791018641889902755180492501250602177729589635753908287845755763276212682584712514173415053058857939283558055512847013024994289163320795267019086649949804547643370840186811552145107425221885905901989365791210709104225180347790194715538224217697447587797971104232647276297503715039671613130652711422157849548667070404850677414357946246654544192280389000115483651734198446148880626095690296206543839431439304760111348820925790376039121081218245522985628510248287776494654164304554455350920840662226925815246350193991596128413838877727237072319920419346870558865163132740017857979347511389509549246425991452653329202848470873207573348807203186511637916556050200124700321551569424787021728483544808042478085980470294581040268939552604189096329807155898838989479213800120850877763067934839301962788671165368111832837333983715735859643062860797705065499379082304325901625036293029718600016575654164536820502417671769998670829823832768912410004277881894154362306929494712168225449424619875970753058445546931173205800838320427407175437355242220972844271720817629916737912665301811310950606555592336012977928599915400760256564990353634575446303307182058801549480588306056018897285117568085801790507492709181298426229084108394243727073647653575491941309126460989893036517255713037014897315228717012169359000505902256818899580145306066630347400362700192537425758328809517505444051692031977763533569995064240705825360696981814944473090025398455628729155863633040811746269094130220877295171316837895548146757423657820458770910925767059675150150549468534887668250488043763284705512840984704489909525373151923238616749015311674492678125917842118631653179451300469325484392426801206207444641677032900055720422938884207593160635226234306649918066940554582782443145133278868746724758960110951266716583519963688565697391076202090374422782346904974231418907242558533474521332402844489486725805205139835541729803751138266064209885247147440506465451294244054642727360845586621366857300811379378214856420139964702556611776931425152144943223936052779697605085982407181397759240700296105871358559542919370035551436851097281454620434903407461719063548967034146660217516456244954707492533741351102499554470041724032934060374654926968043541042478165556684773270760373696800509845661282093345124181383373668264133614919321791290142633372292634153371669611587417421598146161230578905222121455062371767300716646881218967191537593625800941128845077962781325771845326070709004148723636157913267990055002658088558535355541141023129823264233246505550419247756900087264445351655494694800067637422713935755002985806070895283411880729888082951176004137845184912483653664832540847523780265452576228729068804604509531625691134912820831909937798647577688451381323304581723875096990591463279871910021320207029872887629600363716663899112063129013568056907386541213831141298908548963528445232900449695436468136006256896631538776784658937479269469906120188179708202283720783927108372962916479671848505521060455538958983209275507018516220718204795970429149289444949977418668738382130445891578089650813749042267360937879637265037607832219590719628136971401812109724199033501918262524034347165806046189826509618919069543909578789547674512760554714553833900592058100331805031035963710869565020641370669794215711033335596394062514258257784875010131012825013118012677344167774852150857610013297312300621483588263783676956329385225249536990003229664198340469000885065505754453483627999966516828659194859710981986229750619671153748798925653988050805882094360938307933063891477701789376806981255763129857623056320212308096695381653612480625564731129031690464281857357783050064401592863240070948926163478904674545462538385828313829726574548458890599900250825660932746444417920046883017144575342976541072735541563749813372684606230122108854921428274532607639334166858236259909939603058670023388599472771303057295979985087222768125259365325575857197092514553517229158664027720595601881180112663306490705461459783583449482019358318224945925454702378216309236566653080669595085079018236615775126394685346262638634283300414217740539002659399086204759366691953471948062277597845028971276951179598349792527983800549409708030065950636034856003144785725847050254267592733202315454233540277686719424527127376039943292891514749165198402756465837923341733342637838591715127756608053585154956794178755938511588632545526644669045290648977379606556368672068997819002429128924885250838126578776064949891074297438344323884153415790760240119712856354173262968144531413167573013751746740994401549082335734234080019062498099096464258280577410403850054855584685481096765840123208323419016767300438629194690549865975082412551500139514527635556193058927861695240278894024887397133851850793599094558773415010602760706398368681630272656813489576941025522306052981848916284269168180816065962509517778047574312738622244659202615934075665079650561579229470169866746329496851553218333056495321150320322749407145924748645931782669099297442034248017712252779392271341347399730515232129022563621719803580551637290629809699519552216896446526815153401208466565321807485640503434955265425390418845300607141784142758469979372837288949092813202715026570898787295255847151280934310025227900068853968650281595068692391545230770856549720795193552475534690202310535587000765698060918279983139780193375504665082286380658188143556201014213445126978490373922083792279654199475573606461406230648687617412058778278522523033833056655896889828905208540227598540868640518724114959772354922202519126758031055734313338504700963601611172761699516898407133623610108020984143655471602474559329184732013799230817274398840754725564909256124063420565943872942290637925976178093006687388095448020718291893771399243347052349192680983208136731522403778521324038449444958062247888124990830985325260065969778521136631397463382908590620830190100360279956426203511920848005559903692954233632463632098246033617530573492064253908305703487788618679110077011380840330448877542276017816160899505040309064189467731137385854264102308656622067147733044379306723612683786946363393572975300611622350705377143451705514189520177418780967501934000731067576637287123864751686700501087281161430678053885687586383902374160611879668924598838170989885662343079806109752130017066984905915679565951493318509392021175873208624382308548404529386562030305003975398598131042926626833783991669281976125817640962451629638302804105961045733865022525116352600225601627731849828807495002788664685121273329447334714469267285074892400256324691529458999773819281238797149808690198457416386294388169670034300638926035494393859618972500206418951736699867192316692859739982296773341484108779774905372849172741977292678730759753839252580252751421026301704865201502006099862159564452934807894621938358134883463240847091922549473208198136581520190001018417063607478926203506205510004468685031930056581540458376611813809654790558557456356552372127111340106438825422062906108679002316306632697324238691751320957531342754406404587194257024793242860902308077337281147668931131296745972293384388248639582633301016705917072812420480783623766137908723480517994023228566464602638768375411739677674826566935252398962591822975072892204877206142656805584020079462644649954488415166130423721907752622445950614230179735911718888075826392473081618016357909413798571277782026364457626320473310813310264737633341667044524099339709649949426179065216042906653260830075610805966284868575215384417842820984135132903891610092463872756957819041471851955074152608728694025435433795531121079877292978428634583220083668181846191772713105864092578706714137446762479828153709763821437329555736164162772294708327090707250719392454792643670468216639391516415001993185753699474389033918593247803253894317554550672466384262586189005379456514433728064131750248637710506480281556678410903063181948066578259521245449973393626887824933787491810579182240447990186569009954596492763769608841681499016437646125343177483758746729068788310482750581371552041390751150900911137901326236825264192030749404039064362025705879066779405451594270806732477000650242180555386385974334651922549323624174314937524623629463691293507113448931907052494022584759912818689553068739784981606919267939831212019471365734403361955385673135858809504208258610561562257641543726168448648053546228817063683975151147656817856801407363696242942157567613969384381951304320625296681542844424398638711092153360301918910181603830262616663092367404247221694319563052664211904149966490560769000036026618800655571745852356778889346114544929716001791500059270405178455854404634445446384834284238952832949584712689459487278179290356409039825999106819446795800346169979266401603590125595236949488694350785524720709723639301450276779361805136783191099989999798599297088692071920735369983741993337430360135545023844813624402153286621359172337613161409805738731675312687256095837265820460804712907263980230514787887674053432928580021835454119380230976765418484911803661689835043671116815415498659274843187026510141373636090469079793334840714638140655334428888107087677165134292840321844850078054528380764008446389797604956972409019383260249883007674473995621410717957170949328606455352283611591221543425172818617836837075878730064503720012192049412386893650155990410821058484389026927558938669592518408223231294697484587208063917840124359645742707330589912398274065939453127284030352278263445839386592833515923102072005341304110410505791867722957145853106541865215214350023339105606529769094972124926858117688511267924303523163120228717227473103647330214046643695962512850522935649559532234460465728370633837958550414532255453292947231024347675617799477546262723756844972698949638868048046497722310868781105081848590699204140017972251213052874029042698406226931126616807731327513887497210362509075025479973000713868043127710603503183474026212847979422808962346588425392474990167019049536296214247321485404312301238910596208375045807802873330825590246302748831691675818570374002898250559486193497318282243129282927738951715426943483920287956678963606864275905661491829465780164598700605277117495462270254819202339304758647051185389342488749604707927348213697654301823412848192186825448916307224100254959472443407179868981331359550124460180650040303658818521896771317359993969139203974291318999847229882780261677246449005375687037307617205379099145367445849865176278418063497364657608416002388428773771181565184218290073743116590451470339011878412338069378412583206896083393918153051971176554914056282596940942933039250377587167585576279439500127246267197290420124923256631782833102776184690360407829991805485833225628991219488216744688306531297870241065824348119745243542347000160239136834862063630412891832101053721556331066177471426711054681320128053727736840482053357600635006339635309550359516022435603339039828922560454572309181869692647511892852087468563764708007727354652242460199981459441728486837602720803853380824704041958147154722784806192476465488008532627235270210955013623519737777427374877474929809656423228453852915901140666341746968993146214537541639177331242941338348141236785171309383845100653421821463642612414550651715456421945166619188064467975217121520799220294880384420644139733539114263968313010616982042273718591382272347580626749888480207842283628798177574708226566248590571597832456079898862635181066821120974508408563349142356771219729671715274755271826083445969158515997620672870664129037047778492990775354609123541040851977004538353884407204357719527921276291806431940514910098344809498967807748899899133705828085227773089138216075136929065183062155333908520894590598093245845617574755538330396627458225675975283280414661046662851697372956554465914132812219011746660042760313876347071964352512558135753059671568375621732984943536881621089097575759300935208233191703841273254253445067125282390643685582272513528915312831596762876496707854881202418387054143995297301385665510268701693062203992752484912362149736967303105223394230183809051980574974186652839223900165022733378271726048680186711383149023885794699322369024626974054892969733318185462226569709384220344350242328272401805642729171179188992726988462108609295339096819953418527193965194891065404728556598700769845619374274002574723182286001593940970022353841067820599731274631883300898714554516592002276970753076494295466555344575863977740785707119014309151085724984426181636668110528383008833038284825580579915188306226497195030902368646338146235950697944059200951808082197680075501408679644645817325040027667281787833796199789503694959155568909593061223152927941505173679562007057925992416711657521526703488522382304161991981886733135504738555692715934761079279711341999351380945767715378267849821312883969388464361002897885023199757308773735723886906803660188422985423925961312546749510167926439166411070248929148045483581553160672269419564355661789148786875063012237955631117602109979371010975703950104273583753644589245717389467770699167616493061778965662652250773737511383803483318896806572250486818916380641436831320849695540997070621654024250252532237032755832190940933672258247435463716353465114635037265204312799466317699198419212180625954945357912655052633575681464936080567203670196518554305818841095164651966193591108785161776522341414361105801838065714121632965653352246270804790526464458302088414358269782017500848761025971665398545150026432787363721212203274526054640816698398171611261218925189684483501691299137782537422299825090958507647920303850454273700295672681344138798715455446724120551153821739398764802849584417024851839415918698317676860460932990762221024984291527332469597443369106886433788262140552462918249974563876494293390894252146094766913330381593803456618181115888180505015878828110525689189690325043728255160468800658148098846117331065887990985872105161103877252328221905616733277362893437821044183968432245129909746592938571771325003387147543011766143554907496008363225128365725129236158679887362474534751840195747558088143966341060787800195973224849225016289978760307735050686621445467942021570629297980218349220959497846561445110462548245837735273618645202005645401194792336481195254848924431800688374230721100782409086989618154951714683734994191865617198983386847771815556379790750600659277257248923260361118246745617988013153605989861888040322184039049982030764159020838458115381273518963490352903211245108333885481303291029342303366288217748304394706854004793047059532327332653032540102632135345753340298044744290607207118782487436565780540805410459153221611491117731571296494412327123468590748466164170053026512822576315107463642885316764549538440271679870292734624452002704552209875289842995847644613932975567301353536711194560553052703863731347840554068626293038460494269819382445374408804488020471912525225516440466945552454120257134465086125615633029346928876782809059964084875963888285297712138375929177132605786706400537795362180081436372846902364844043364823405909685644959395477964836910904789207222586432367453312092146321122607633059213813072494616136987753255887815356643754421368511954393015147795577501456769213040231902377075742072551725765268366251473517123990983454347667455392580862631683803310538409022330919543072282782241261888177133208638790202719292816940244903905856458631565447338541440107493648938560982327400163803132865274053724257034092506561476095756650845681801078989396571436572748264497431876329321051016708386289773710029636308166629435888063632426885080015004081840820703321295514937909503292248950172498889424018733107430034176419504019868468616989283620294112550903916198779333477926933503671988337400512318555891455175922457564063697187303596260902584929379562148292436325495842401647422560887011715164311206302603761421075719164091062921094590057329553426584783142603978609021652850923296371010678264788890170224646803325589246228527098347125660624821775734729813369607506981046937904034238718881310825332969447521147588097849871586217640577066454438382553087941264520807076493622286315170079502501661377847901058336477548876782698633395916772106557799066329843155875842181157415067344528246171162417948490008364450200591739592624295180714409430477373240595162390245206851306985149410655403696415435058587706394846524720038537681993260139701372672686973000155711955375079595528056443385868815371475778697681329163416097867770605340620051102069976942210363505451281879718581957821514117391783217342102416991706449768575817140861719300902850825016719786558214149854450116005925467406809876519502310220629968038777249882458894367595281823187504387031938600798610816687300338941435322426916498615656950497454890028288730816337211881742656141443100798479717790998104011341080837700194355961185122142914619263822217190133973896942231583968798631314387129810120254667431465887298539040264788060105931478990390717928997697457289832942665248675264729261982843667280238012756982202436316723646826763893388164692987111259544259981870306196722168209849985066458524941712561462295589605542615295928256810413583976684023362416991972483284418418643182274264771078022917556632760110849736542999176782246145585809821262854017475349753265628767855910269493548065253786535002531620162897977805946063201925087271026940987123887756193822808356122056978732936801477181110938371776490223989182106079588162416150762932002844778357307684958273125600169057114660401390593150228670942489667164917298541631282610162070484653428931497041751861977287987804979773490519824216398995576055482416263524704118410161612470468861224896851809865063298471063344795903598555838494341993060892300567821169647604891054034456226796065496392897968877600007009984961533894265671284937183789505917560913021687519494925162383705192187786808039797883114478126727914543199826073416743986928376792142044581637823773538694616764581272889945977010874576770717811711864486346769094819153761798446592304524114605774200062537322690879153853188271319275031429409673692142241519109700753908791055842687541043151621339712794671572774344727295878863979519282163611177545161162593532853628247807671867045372975962262893723937190434670930240356361368800618266876113270006701581300305514921658310160294778148532900348211135366516310663252515582770266785693271806587539297055339724613813707251669903850234503001961663862721513409719814519131941645501646776222421633488679362506666341373933677941740324395879625504902224994371697918288129905433931228008558068187430775267877323607332587407913308843952788983044378489606770908664001543997932237028812333925892263098272749916382252182439446862345841974117832249776096248768102052353385574982120085018449715711316276730981633378886386615032889198602608566473242420941255697033747678822360381044759572364316143895050636188945126616214658385084777239434753475418401765174283620618502569952272920735167655518432220199441617009828358325982926415341247302069558656923810965231813912092986776273951351907572686565651641251891226463011669507966040801464523997490400722461473046003535226539150880744678530039932800652681432689677456673984886789331217417944851223640958738447900951907402955084002734949171137377177275752169120111760565254884088475179929223368135936223155112089456649875447623685719517979032190108059227734719155527185299250824944016723626603485243588377039195548946688339279197726744022078295925548330998093468555307099912274233314136227125578815487371195508496889502730138406868615528968693882126466941478250920328903933664202129341460605250786050483362246436371353905151020610414712624957414428976988434066582330669503473361575189226824984899342540380617255308252595219994385976057821462141588053028583913534482791851507929488136386120492585693855566159364282378577108955354962306391067955298497697401514676681900273531511226597513444405290273129658554689742305829350260351560362421736108279888390827521850313091740692608458240228701230944442878206346884693727618541063999829712332031069926174881800411999326715312494388510732106394483295071978430163923524430252570492515472570812533318168468017748387537830586238330389184941548422250466867560230597392438184006367998069992987395623852728860777722089080379323343064655310169288710300150981484762228215414676031020033584987596353117722496000350969989437053708933546251726352762900380872349146241676825964925462728414525848534265504040287263845020805469762500906423200915580309365904902509329579713500913713860456028156122308976527107411203251944136583895072326368452259715382411115211160468047742754980986170563079914689693563911986796562350037943988876318445510206848172154523416761827607393574449650772512076814550842584684846010274812666734503799823938137083373344915885372192146195309886758408198701095025658842827566499968453287854706937227322817341471744062071902722621494925034332886073959196038414661682283096149050087205507820426379270356041076034925065928116195221013608545515133882018361790417240812358864549425930375431230720670598477519842092909272395277050880331262153031647332083860252832790600396235785281469010047856601156443209143948498024961175229422340952147972169923772015296427460730212490597095800934969584447107912835559203497249822774427384394751352015762494046129428894728041837997916738781649388670083250400669818472161316878742860562372738638491461182086545420208311564272491436719565944902927010219353310882972361476692931320875548791758081843936088141009895243147423492507687874768358311683028937066708770925036435618555030305529460907998094518243066593506120809691297050603025757126020822897713570248996668630047573106291868666885476865866365566342571967556317563008082035689354582618041822833411454254769259276696843321395875511998305634634633725238056625217762049051843707035246695547951686523885644446558596982180336623469673711765197662082338581782315025581323647727568706975118699872664236944602634513277796275606498441227943233424978953338044532541060000977025849171300127872186237265253511729736173231772090227523035588641427265134462438673881297070852576782598364058343243745807187316507238852137799410507866817304121884467934694604060397470763085651251525533546007870876967244365929936519686340986773754021459046211690595376582286890198637959646773274956799114394080962456537292991815438894967164349178226813754659707011316721479877391519139751120806804831694719655709358666840960277532934862778807749667487954129846758259755747434728242272782210217777014970567946773837092826999249988344145632979558641510131443842927516782954138760431512888749175935331338445261047460044387330513250351883451692951334841010395504751779710278517922142211888325112059549150643625969711576036926384553184252169669093374158926425979249598172412004846437051324169494566985007584518760406158317167982049099960371536393773329780815084602576235606988970664167738626146526694500833195238294627063149128167854997304135597345686181052157111741858160392864276054010612272683408663243795599960106923046554877822731835821839605576283053598842975402245354922096123298278898850983591335726072056762424111520248115966812755409924903149899436295376328878538328759209358641741931028899707897671510744873604499367847020615404944873025894175408285604132665932286882538277683337532115994318360503986774572093976808352986259721368970932492659113691763970679130308957692572137564763532237202410310466608558785324909904378315528513813416855631629621032842862813307569319429900922076266333194559477158133792758093677692388626059198264809558320392049046336059727203318607533200093387834662424608441987520649772133376920688917924081597061220385414974375953079365927775890787786957447498219213232707516788270011893022517535996691507447440289461075150932758918921357020362772396568795250544927975314986834577098186681309753041084440457264215310443901879739583786450911499296702826793476161597101511133565760676260386705659201891738528779968355175249602675414907802987205247683877969809142157807512426344269000276169296705403468557185684432513596949046148649863447243981845061661816550290599343354740715418512583487394751656570654366761746792894847306292897969193027829241637050656145542468302724566982829452049827910983395111583266388972425961819520433255439051486218296033489224859506473248314860925201929788115850445073519800576789215267915593883645318457498992934151132300433968743078965848605915902017426858154924559545503392883685796254447704206842737059599539022204307305648613699465859074180603623422526981885948649383981905259486448508876093623866685855859176413929062229502304351539485479253196995064481538225401229738708130240238364097035227550188756042580404277709097931116355600729723210895221427098590371692816964298703229332108107562995294576484382582018442030599669644280135405641043048862103444873028988750503819155643207438616012670578702001279314437056372672198993616125390567327695433414912289502216977464844703636163865249009453781870777223996522097184989224300796421671658136088819203076116628505333076647721727771943169710485964713156988918483743755899035878964867057305289662644222958876621646090441306441364299650503129928660057708637320707364795791032942130928416347359342536370009335224340538291065816499665113927585626669281142989493375714859128356619118753462742882131752248293915722396579652624393912829190286241404893193971567564130454953307180590335849458365631695644850460501481513266075430180204484934062826057615179234764032961130297516571992084269342011996307507505878260029821044673720194407659763729047590312485154205768864461674889773084033038944516497730956129883573791817622034320820352492266592910444292992625730903013145968008684859253713636309070587725258585173867006583703787033949022798727493831057368997583308439494672982911721142749979612285967673520167081491173660132100478036230169927512528385183451837090136528206617590032067616282346891050854282362307596567283153937034605531338982767668208748497345761657776390807423200313774152308771542715513858755723174258502830461850153206888522562124372912525342590934920199483340139029024621310254772536527711540619085495130969240262455502515862210089796928814553203924765616297496081108150785206206236864519323615921505444646894587927771309269438133094242972836016494912248693857717666510823279727003853362200036064956272874955835322647430171517594380712802216472940273129905827433953138187538175498406194716271583019926981332933061052553463631963073548022250233420669868297159827439951701088013683416570380351549281750331936888015959822067103238312008884296372480684198193921073545191658746391929912460348586316400736183344299046871000917537949927916629299537553415598282521461523984632832533194430236047580772378033596433798334990664311010197255931014067562986443019488288659128209199620310263020186752524167089816703300036283770038621063848736163244312354066800492697461078725778538377377502217291748932169225790249220138397465095634087173489650607150130945014425971898559938764632222019870902420295993406610432328992477153864116610616243006087409784744243434461811904420829917292387007110282763335979060261804428006859046583927571026706927321547950047361785910958314379670261844870419438464028163432492497286417568057910183340646528931786433336627012021391182661501808136336328592247798899137859973225844956283953771628532088871210796133177916497903939708540941972586936009585681904634496669285147992089823039005485476941474036405190377838358334104421669791893113292764178505418203046548864584726862794940547357153105195326897934385731551540505245482133591486260698438739343433243540788317208076647381415145196520640268242884598776925851033489601497862890032889549236540146604313717800424947260308242964706991285375614116910545189669500403853217910355738309723296209009398934368518400863741491238381122570977978292237024113124724062923439942145804840973076967335920662343890867512019320088155908964939189270533638250790244983344312379285156617361282398313350163211999060911656757524874406849552137193568990626589880444263779983367164032328316160582234970100762613517455640950528286011189486202996983714581488203263815948203033363135096611297707697615535144180353996716447931630447654496197971696824971962904017023180144559567950798836688222840566550440517668711740651990873563687388272594166448211457893589484812731113593738306588474390574198594143619105010645895717277745672958462315302913620783360524096062872307046200974900225342674001009371543094527988135489337915112065723034149524836938558788925780727336329599763944761542981805154414262632873154883357040234852616991855016705581516272188269192088411226154407031995420107820689874753782792881358016665506631074243224601145799934668810367144360011072550077509024844742304543055038854754692181623050382924540665366094987652557049691452937496581248225800321304698034463743534426193409969811152821625757864020730207562844619082863765828864166280196108943261772334088969555411829534174564069074040704035422644596764856695018977954955545686431792516635281104904736009506283363220344770600586150594598053527543460553282329806017896445822095991316783056482639467654687376629883817250097270950789289814231607989158458532863740634675143728765665514237539269309206191292464055921518404314868562916176652051036540144716220220174884578323356606321204513380789807583404346694932485896815697752135137962329506698702470810147512967152206492357771693704066572430233366723637892879210507861786091562098160053661331175150287398678335929615820651153525551690259094349897296852335912339665924770877462244503907725810393060390756542587475862087708561996847824568853446698550082247820940531899931167944224773334523211271637627388006109420337385376586801654006389588039126557012682130005102050656385087657853649332032385163645028275584016155326675283457823932170512469412667594465345893580808671198845039603913470509665083320459140309233275846440846039690334879831076030698006078524902643328660185365616260678258366220466587069199978177322834688233468497476048272710554570315056216926100862543098236039373536118377205649174671358451481441864763001767044923838351146131365055136989996431804226275677000059574725090362302946465454118238219272723470220834596098005382299781239336589209113166608358618512985351458855058458447523189663842484274403892178990909331713554323438846390754512756382017675342477817931637345412865332931235600520652747796666812446407663718457827613786648452282186026542305828876067762021215861856368517673479747120670597060704864064117219041546978384650853032282583368414208214022253278960189804003304783682992542890830945929732725505420524100193699045752017878029608777304071792689773030898155083127398252404239362306739247127929591216983960515691416554261394291932621400516011761779840478837701122379061497506434631387270059623958689769637847531930114375681875527196727226763271561481153384629437992434464110903980779177066262447934620092696207852598895674361873001281493121114808614637524092046333071395357773618020459438401697654042482031448442930894251095136175640880770990994083793241575536098941231712110126890035554391843795789251697705751767470846494115727019590614371075630510751311592218371882872138514028293902534496305247286796034648764905758093141327294530932068569245050299851542237541481657381548301438074589979900820141538032183938081611213526252280220235699064302867992046216120356916165454645537223559299558828819014037819352878034959692400443602022517164443763834533652046222462028059835895635110281108187053148588122221651517646705259500264609701165054528872995667474993163056883434962073097468833155224459505759005638051144658686507244713816206505602974796692538085717953619370115113232932902387917830705830621276970917736005525171127359583461395689626324470758405184907735701583120320762513995395847858072591529123133122861122766664238984410315157809606967020990771153053297795931051456518661564120326353281976343572196905716651167920932560298349332559035515114869195125910154281639154890968829167324899364832709768579781395214228583475603583429497874990658254710716159991466748205480991222196646690062928234212736041861238327163256935918465281891445174768721310054385233635492631974629671092962948355985944433740162861557003919705233361805660385804183112995846198319399463728234124252671707000771807015565292796230897380991992148517626507658003351065257964165407434891163124318782639546147716504541419042137626400982361989459678380306535885862163935188420211244224579651447992297654340898080275004370292600887371978336041214988590780183101078269787419088561418642980446931294807623863798963869929249579952410982427689102657803491386274598371828411577337446221945287744907841799862117377235029392879391318214280045900519846863090723050845468590865906413240666990072103273786184060016618836439813557157880447754824476334306164699607433402679142182735083093499826625889051659272576731977508723596313190206054391029152511854910942006843020923171630055747797232258978545535184668346282608267620688046613617217045722744505759017156603960090343562096498668875456536573435107585532750252738433010310458970403852371228811401311931306521213256562131109267889803372610130591356665762140463032185987612530221075629193311037838132828167469978412166378183643326776229613945027102123079567294132051925424753659163883504423387072641583546118620295605237098026951125460098944420338783569688337335221501798479546220786463943533940727327248523525811177680187578807929033694473785918126984596041895049924743975481236736273493047654760122903099498176472436613305127230661925564154238369494952444301135779005276214810521262560364989517733819135334640441839641746460669943011996789924593111445468715689310523663530973648480614995141458684605858514326487888932138890251580182277784079150868619482730812300946229242655137101546184283815331292004440998046853757528468628232484165336059166807468658789932538751610016187282673906862870948629459777889862782230636488366949382518559976091255505283398882316594958683236682316924232206430207662810762251380663609654711800774307236823667079470414762876700634225899440865627325640690989933127237001340665069538266323800255389502641468187575010368751740294697243449797963559360558682017299503819490316111611635155660301914836881606297217400329249283332153486577736605771514922622811040295613610365481484365650260389091158806089828194389171700454461458354051211328893917837124276273441130825043853693082158713217418232328127429628366330403898438906391357494673414000063904837514961747356547220662564941834940225158400047496909871577673485666674887592180432518879352245333530745372801282960028441531764744684100570970721301345995831025464174646687858623274896028171715756268401675775587997655091327140242136031368065913836231174209371000599670176356728261240692119432029007148454535827234406490999007636037081448847116013518336208572305390519157570155704390950730515044421564302025780846443020515547770112094381411934218240744515711700352258820966944005912173322611006959201344220368950539644925765471285029491868330505293479503656759124629113867504057454362639155339981440014194298670210547964936448929832210164180368665111226728744028720435943710092944380579370738052281586071984517819704673395095042195789794407368675630926220782945730950029791399120051911887082495204499090115434376057372463395754512852976689615928174390556242079945039224863653791734273430092804892897599194647676918512228688643626545003355897715097976028920470944782371234532184779431775301010536436523391042255157615473116664452899578766576415688242694001573186536101358856056616415115623946861624100375197280655568237290761505728962763046683270776364493290156286715539311095608700104328234611779131269895140742582182564611596805830934672813425704364462152592265395085380274629471058566738684853360352043655027994401465012717845922186443594419713220196505501015302286704987704223060857686360217502698627546606309764920187610306795788168598055578687299175866223905635980308286735632515039793180284812335061656643038224961607146426044793999721561183575796455440227965358220899051732369950716213489026303203181316116894041186172297024813557196574726293360329629392015263645898782381112669183430057431781947471907234266585053394536983767583280964544547612623568496403547076887145215383381903753897744204288178660726558429682338413003845464795846400567062037825040781096684051951876400880745484530959172486944653008559081195124630455304294637506619083338847809500604780781471275419506728944705435611629321374591647790603102827161703999365539512287710456913812930416098800123136253852495057831705385541019702797257316971376784222618034780374614051583299888402351342625797188562619517608808237277834260034140078769631384511094271118192169812166884855305563470048961761438173721381821333129044350591569358019302323320681190345596883671574239664871568729224957234757540058286098123696747577633014454959714768087762233766029987011306099381661084143899771669239080911416209119981636052217443755227762583939372029495261416133687364220753476478212061682775249799716271758432831360610011015638603547616117328544515519453896662438443297091251826838144197043514842235782894163429591632573921925088987961841274250867010133033822131801860927143369943698406835646527345881454525989845680532914000442415964873838419127983326145539660585678417214344654326652942352849302595415242815964965606152432043641375846016786508479484448959847748265654531839970217160937403998464663684186371283763951934118226206520937036752564828438805643302831864918591195677720457710039240704486146045303465155547642485095307880008707515301101564862089880471658841163137217012406573200764499464384021548906672683346738788586715682786710772209371241438634258883476580266351357949615918890613173475074921813156697861210784177307076063085686158185871207418823661690467874192392326610712179039420704298185854247348020507090519751072919907729201936882105724130970245997372248576876648108447989391232312329987372661964056522118227401952361764211434598674054254600785961010517321900882950413235786423560592416795366281730506968759285669409654676507983164222054597032538922889628626802793224664352373985878753968620891893615396454998946177751174007806664561662986547680796259658106779604641260149771852866468027817728733442998495028603580903470811103086093471863117850901128652997093748903549936610901382174581567467370793518187069100603307638018418786916735073856449962312735739934615206590548128264758187552412183791038551713957185377336519393681361449886977804732768091472344171721935283120702584090886159573092036883913941684142700080784741727332578873381210689281115258522844997597485843092073650145186146196663477261206941211503707906296161038015164087540093098240555269095836918485803997573112666547748781649276845549623253045960107891318516867481559578410081348364536768394353331955829179416904255269120565469226113432474216349975731784173404472769891429024109178700981959421008141598879309342491067677679750297173327976663054723343464480529734189933595956553041370300244068606536840726462760882718578297784325713454029310722116023997243419586163212025614227199418301852156372856462887289343997523618715341586250341582607011000865650214964913383461560681013058225033384777512498728670749444528377371597499650144043419121361742541633020470837165994063569999165890497775747187807992925231734889174751415440719580004839964955930518720586217809555000596641691946493971866525031959508269291608293032700470731454659876308664723661509722999577462577200351310961608089685222426900542694878778953500737677999309503176191518375770616825794291139000062002552688229276626793346725780629290822602532007661187511529765300690135877674918537013133132067541049951603690004376486624532105688754296015106443249971424231579346764001278824494605863486737544320007745433719674307178316972797273504962602933250735559295953832403496393299120461675587330002253280968825218956616836275004307378056770697160557861606647890533635293417172878462503013707787565110509641081561261054519075462278426463199705557296105828355195248727312879930216436250753707056528413967402473741082363782114229507635414367557828461662362165211733598960727478288634354079732587347753030210358522905427186249970976983419373062171426511484305702751185093222191947884925725507770814837697683056807472596702185935925967059846450849177483925247353540724031644394727773181433523675451217380669764105800938717923773784742116855942250375510563452726141727143168369126056385132494265521200809613786141784114969612978103116380458460469842985400464702569458377175717401380531516928799866741072847977014849985749375945827007586721068852430380917522143138974490033716288566720126345649133745127309269751073193826930822521857308843857742750032992514485842117259615025252462511337193996916224736870828885198109652579237550585515489859640888578927175922057819467916337167212459029615300305807753094285737295732481831156670930263185607879029793622329416220365618296211111558578139918731449304591230859129557190159894742290907896004591278784816674636533741959836397192710633850988224489824846617140814907559454726133055258315554809617869706177490764497613133839847025987915373875027560460446499073951207825743142018025784263568163265254740556722832954930495702424152973599796504209540130486132843520020568123452050139408723541041193009678865868386588086172163866896049760732333455548259544206599096118773569796505357473806989974108864911483054979396328714829682324413654337130321295852730933682261432772530501745593488056214838901741262818785290668660538217367477406408213626343459793872519114335290034525587247699026572675764685509761111410453881807179491174386363329243264210405239311799208830386042862882382782722922692607269127722138866849170996038469193789636453196657064989864953643948954138459818572790140328051500775373316398398316141023356929976961428750090608307735799977788832533043108100494535018613799373107676971762039169488109909252651911278062727651191013397660629679165905564751166796367402510068081051497638496694186000860660127946957771472645607041631948191300832727127611575028074759427703036920488217756525476556395472033060377433319294375131024158948509194178733904664246866337835765648212509560603624936721177065731119271839197302760825907353446361528456289249977080641477504489711162992414294032957939619359967524333268407534114030334522982809869041527731746054532319978007987741492468006205291493532887955923464564423597938977972187565878568006432220087979744622528142371118564979220090474135616880763986705039865041484259535227922053759734496176076052110712332144968698078023594299097930773271624777592055961949147286384863503646283027075107806776356346492642391291209143421926830295601508178849446298236093125553266012753314836249993698907420110504237140403847319059958695604920937508084539913593439280915670264584719916570851517572499770855693416999505211201944033160868951881140204826831753370948747023244593134499538338103910975826752489359866614581118668417893072354442590653227339582308907331647864635801168303242198673412328628697485446307891046866931558062805726599944098778984695558383931742865329564894175133421682277838423005310542522866971426223013753217764241125300586712564433592680893141223227796806663941129035679235519226915525064418518384151000592656861025012655251217469571044527902040276011232072845424334199573962728974475216967690425944981467434515287801156031816384992936292883039641210763764157508032761337376602568711496793019992153770382983968694883345245720216645380865569034433981374111291132917804087372511768555449757107779017392890020987779796981879650050050770078945212084566622760710406415305871714532079582832161976529242265033946954511217011918415597167784586647573948464464241506867095102006058077551643275124069677077005093537293639778600885975761233772700916134335923391229245347048727517877763723039771619311761188035548180706981611741529227422026179130195517339069963372253885217265430918071781283138978113762932760903049515324771883024724709787505354497930702926923637911544706787126934016319197295054353802509641727622398055338025633721338873547070622092167129773385174618570552709053250389525543640986496163786860437517517998067494431857002659626317602593899949687250249759232636625678857064395255404157121805911028858080694293802465440283342610278468739308035620943907431466081664824342840844544705223674880964051804577167972564967928606205712977820082437336827557950017724702720204864181652543972927695368004726129047171570238630839117278777579619226069932276878927034335157236504972488448102030459042084058510653616969143822948366935702995103658878390373171088777264521144971193758521944150767614427878035568084749733999762715766398586808570343873690061470565954552761014861512627012040643323362885160042843594308347559118235787926865651558214060591539544419955317695473307356709306681631980961786077072382481146611003098318558824333403531048990054931951044161985160769436291226888393171845999179569653490177879459627202009961537211367549171430666017760622353995503835886421329290713553061328263586419808834565867071373689016773869869312731881350554887413510514204807901973215180339426840541741835510019424544918025026179057787453866922921982316970671207893437738599016951944596247321567331251284851321320961667213871412365996451772097283808598132953179367837464385274901137138356929881799527081569040207435425007335401431382683814123099154827140720316831016789777877556146408748275108015367441397725322801586250181424805191227365279207488764724120064996084019857068846485722745730505129603915628359828060642788196901618672706368562770781206227601833886760052105061103037027405044181255499963321530061890792084721084716300976811386535832485202879709130565562270291132190185126200327555009590174133156800524698304390220462267370726087374811663522024485166230081706527463135556114059011082819215511299494046717965685425730342950762472652975072528558982343089333876574337443873641362431442956492276256547141473599994404588181669539685467124454927031027658671940084340795809013121249727766299318461624780722440181784952127818864957258251107649739428614705584067977384131241870260293981317599768220319950024645738348961023593463021742206439106619267335875413117523871191591842547314593640240424231896002728962815197716644985972094671705378738649623249893815572451542491148865082645400842538560537228651781297770114676837749996996036926688386000362300481927689468400673899574321505355312401627096587108778129167728125727885991240894638889514359477545331132241137770031360860002247844053737960775435300830976279389314983240441964909956674587333908234146539135816399014035948671066511474751910146728632880906032806793703003903485226580683655690818784895612759627247237956806657156718643748698712917164885097500014236451107512650620269253725785912431321582006568761100916666788537718837070417139596512561575704558347256589165283646636226187691238460981166289571787661250340916623901562759238984488889120833964261400357323088649300759019518661905043233459579791611621392794889084624864116343210015227332776330724586899844910369896623169584454869336845617864768261829865544953731553983913418982725443890707328849158730385758423039664641923774470089742199386437530292535981486974310175744112672789812030696281233302142279919496761357577286535470214832975861301023201800289881832944248740134521212941812456763451476394023448501041012372572081642882823573092220707070603844555951668169075173938777397456831840507994940404373632199309497241891518869202001191639716322086290148002308068303929594401079804306510938760647376574707781128228978650953593322232445596198843749943348548404288023068741625170859706574866294260569352562557975983327066322411930295363747845948791208744120329321743449127370721953848565575201147634455441665408284969955008678017178458381135565431745940804179326179439982031325085859267293632704486739588305585482902626535476681098451856471218250955705409064193372860104739043213852026877487684356572195353254913972612572079220552696956156819018085388201117547934910321680584880397516837587254544272461395397405163219310010756441272612358409558534000771904448500810602447623106529353860763940981850465007534008502611226373138245669490935768463327143683653110433516633394158364651762421676740032684566130493247194497740542772441387830097054313217937692578203614120492443430729241301582676915464510417858773994156119307333859857473540207971493790561516430165203250344645385237373925987145541912527291522892726207800840517620766478519749890359288022846872804219471171207744470694348769737622476317171436557147092848123016624549452018618027988495188764885296771508820383712435323010808751190930461357275047725930239950649854681359211325117510882047291698236024071041100308083407868616158470959284630315528201583086005913167809245357227731193549859818731970460539264084431802246213379637775216384976735750440893892970759110043134988367369137198404256855437495784715577452100742430640618711443709715613468443812056125638540048016880889025207025737855561143968703307929524996572492876122579849568046787194518599164868069130523812850156000393056466557072030821129117747042672809421329610187823239896896824852029117270581187153568904736628185575267757107111152548832861295959283750267687154709660588900250860534859186856003033715185208013722288667229492314370218209000004515610137155069492904709703547252017449060201402864612229541882230107796627296637511108012102166047094714600675004674231818687570584070193828044826424932208826253033543914083050053604277510739638675856006877317432868274054367496748203454937134701790320882057588426840810733752645064748073353089526855283367774197965822725009555181447268623005361239559957833325773299054384313326817980666550237776215064900380246697640195994673345794414283895317772653093951993410408287452327074289387986713249030546672520280776397442087811025116370166950641893870322307178840234084598559017749832560438870467590900952884745807578418819269949138119420882730511803214902716224312741194954432420284433491440874456362661206480042965947274634888523575391915989158264711035876668019596661505339245967051139193876095203391597769961637128578044567957672932021200478527414154905053996702360112645046815510359308037248650152970625837849781841599945546006459278399158488326717196340907107877866693477671339718317001544373411078072567760490023049864018323849156508834689219498991003482869850237411656890565334515439465629720520448160296124811179989292217929553186088603637546130548380104907557114353219764746081247433922026827762748265745818482783692865603427328023510247958957606493967080323394123988529472508710004733401670869441441572269612362809352908619410676980540638256190272402411952316424940053628598414881089683126709634739328431464528062973442502386752204407485932520158459411081389774296391097336416889915123247002244866962956338662584260694834283807319340170826540395179936367524230378704991750661035679074188384508430138287738404483278178176984472598965184458452961504322619405382857451901344455607949145291536236663450407272294800396251770643180660726972428416376851977010796792505212187117043079193770292629179769985011939720388700075007821392571788073999897637009915884604141822284590480881035677974420378304763396952645998219613086042817252713957238940667140595185939248178734154475514152340682013693205896694870377994851883566516556959703866429308803579204378884362647207950037783455631243433653434567930409489172060895568864607136917955882091224680486560155584173612015470656149600358064198994063919503578058392168380312426194201456744145006064693248243632168050756603496942008867869237961341987403855781345445660146501107110352881345352398415609007101449149119562449516894197430349347078974494763789113697051690595477171791305522323290381889386989249647824963433153020258050884646373068213863509124343861308921695072304071144453722453955531534830302862559406191121348129290235093052593649427674204806631715232699102248085050062549272379204737881841956948735315341873727082934043704663555131655688623605253929378720106394103923094477099876403895379589427025147212791843335902044592931803293569520038232059897271726231835948282344564530925042149175189382208144251090659883690327760679659316195878298174857950228052049454413938489461996762965455476225627052678995466867664361433811097261840894167003046460570693626281753863101716892840760859660729672426267095703984842596721186490646417084945301700036786825386927827352959479555403882924701126826340115730268773095922683926112367266651255319891042869203171353478265439448227969400742127752355737013527057691409252739198482109621857126944260564147604244366673605523162109532112499794165799778535540209728285572283385134312817927172837634484997359689595035396694225241604258310896376119892734800246295683302553998193098130235373799864058451155445556366344239254047031048401892366425228069647037480059692025809574258112846378953505357946724475196534038956487293226642686581208024286150947345304519200742418500226045481068326449793580121110233163638654057652983171603358901509089777269882768065940874167636368606997939499413390054502650725440806406354309438363088956336704955841860621397270121956458785061806607804254386590750481320516540530019544580722488968400784497947098246361782079814778655814917470578279210429606749154887410521413797802616276729071049206881862828133661045642511794761952035162166123567008308641000304602568198615601549353155054075675214649947915333217590054629963729465312032906646988370207760744834678689162104189825431656473442531122808999370049217183273494177244224343495542961117318284606986340262891133913450995686427635853405706207602069248509993862825448645292771433507132747736930265213288314139524235356821535992942736577016683189550283435595620578092972925023932188314175248859361690338060279604619926386756345919833294092950208436525652260279722314981750736147662983741364704199506893484494818932619959107171079920992355591469084987491892108647562411772364147376915922689850049530722738186707679692249530722038751827819924750867279481684458361725393237547988298125089267989926457478351710223552471508006427487596984856465090466925326073715706238544438204158472977869372995780356939574103956562295013579526040497242693034998175692932285253964461506321779469179059304038239381976287852954740875296785421128678992957405311844613364929660632807702639589335340522318268065884981518165485850252336922889783172015987811869252913240046512450046653810437334476908209233671935024299393568499754812160030142984657067802812351676668609415529585913414982358127073817092877178277264055492080136562726273494207522891693168711361833460975277229576827247287944573530049115406124178642212636182768480703942972904679521023592058689808996545551104368164652967625886656776167250501794012043963136903227176453687098224196719273977656580154097446443108977981426177625235155198886068330532073211631933880666824313152854894360472508768734707057435299091417093839559739783185808679785575413770227256081910482598009060383551534402148870300452240649856459132878172752010134172775510109598086325548536908574905809370808390077786430748879710236744036176031667979432060247577951455335691457053190048886737737213319383234159789425898295993914001618682192352518738984270121934599579985303928083806693126002353794745997592384276419523065037996446956349088381967549147899041096616879211683833194008426136893045993361225855278096654091978972497997806786726879988680359866229115669985025492616246237715052755183466606489087495111207009033953610437924851294282926825224113338240410787723198229974175744862545553630210013492068042267322373200156920932464207440103233563583897826014817865115056396481943231345928485051739989069977785266636842052084341873238319355788404577002822556569005295150301758209058786202207132045198996295686914771441085610260961121614104656577539683453454878256633935098971853426335847842778429255393834229327432070583497855539212494659465871453473785672841462367389960907043178944197795331988779809504366164593550103880053213718761503117554269209314375245120392921591503541617440398027149691412162137941369481434737320559754810405942885806360403928166070528042507541833830673980726432221671983230667460054121434312555165579758043103446702660095315065963136639147872669460282584334143434458857982266317986986431879796536996314048243446865852263339289021056834224217616809409505803900861292642525307694754061239404891639462703066518242402028780177234538828491271992569202452049243990132546747657223529690678615014038703505135421323958354677098171306786255072143051281737681014671129669450819683705645883687033927485339836384594177861635055342407704952039513664190075592657651139607725822252479290687991647047436976429741906061583701222477955553531742342039612465799956282999634978868644943095612102397619206679525630998950175034083064344826099836590347096589383106325440775707732935662105375089043338049520408785360722337680931400753605839972199414720844383134216126243080291510232450407730460128681396748184904269458719361128020321685852728317512589610131367167165478015825137717347368799494067929244630450844526884550900251925179289423790343202725739693172328172982876112843374619240708228658767770834107253751785184907614592261622655007602030891538879780932867532124461788133471767995160494669458789127380179472678495266193057006223977366946856176018583311808174944079279399491445176149044145623051759582508271973936082284179369181191080300119612704351949687969463521002447851570424324650157046525155016392491212987595883614237596666892321488690173149513187449482212059416876527240970507000661849184338163689654778555026267298910139313572609222308899972856976071058809324724956680724323500874947254249407789332408918724322739795453477168530469069523806192916135945607145070145307524688118256278614062393074421311832215083328713279844964744596322775315756130936667332647246326056932745890796913840046657167685959362222152662932794372542211793398693568586066910847695367285806323906233051636812374409184794923037276559020311158703638675678750370897549688369781651920640767772479442234415604274815699098070093100185135603744231919369016448904976090215638050667577061355499607489407613958963968394416636165999786035446053186120494984019149464277900711654329669947601760657252773415182155007401042371554756634085999016045677249842416511772602213316095296956524907769282323682955083337349645655023198625644373661183099388636251079422850293799844945073894912117069119811359369962955341925343195258581443426656576408861423243630080660092942415547543801993196336970266179835181747902702766709770770851917072536974235557095836776203625415799072330762493062653036652538165103060289311785279504652900385262162926266448354692312152515680288256369186271741779170750948705204090292341335091629310416388981213024857797173043819807360444370268988768329456021916882862578518803736198085852881807167379104839880259977846087278306265015616780566369070154950741124332301838823343482573593727099361199990500370737526044154400081709395240855723743302253239294088541844788325207307263978879682665233828601104611582470229324729467974782944950632782490482900953703217337017275837081879727887539707182248793923787494178568172894596925184578357525614152112475434091391660721725208492642014597216144072422483279068976199133594811847006154361651855454405581001104921664607236741522149107899126206226058725354475720860521131865076035690724427403311327792275310361815129166669564405880088436295178153629331563092952436979163386619737017709067534949932310460405484970459433064902788366824880692326876690001770643295825028949159311305259362415294092252112317150788120813693441380105959964761712497562275968538540866479485642652573593309952577936891677317882903307873733252132255031194530229717602875072641819284871275914523999093176800182474803769052711907944818767199488300219916288392661080817577568723827139607256235304903522592890693237483597841185628646527682314009799347285279331096951946392451827048764803839003413840718798948656149922467499371869213728826901986441817195350659931647596083322349182790571425370563379687746855565386655386129848492242198458537068290263332386175056739242712989969052443622270777938460707555900341799869627423260353573535714647955134904598465859185188731969416221080077802638530325361051124232796330682323037530237740446030237402548360417990217161781719414738316098561254871245617680886799083939688173034097498575529493616762318545967729622188760163778482981807195386874573211130296651410839019466673344038951455381474946507692118509407941534067548863983050946745565426131786462228494850771604106055714855311382466200572507711673241339322946699508971931321841650348193444129768494573061064329473932557920371540498320170218980333386450017606000446720771151734559441097195060188793695765505273779561878816067222961897754987727532993722405381564997689596492485824241192345933710397985735319152810741904486117818973116594610905440343408315168396436516052775153465242040953176868270383606602180207459912405915421859577480102374065266435954320638582300455883551704139421628933104181946582869662531429504902513903834588880329248032210927591224456940476929133123754114945692472893483190820051196695448658051944383625478515747207781066550291526923359707249760779549016138525997249151779106368640303435446528768315592618377729338481702348705899024277361495072342491154549572286509847789814657582583163135515545796783830851628808888853501206445851959465457112043950249848329220875458555667846284605036296601453791922115151227620747632061782286758245545393021073661390970162863245170672735268326513970204219807463622064985301394755753866061017741090132362772938955734939620977873720146336116475200358852583012467628638306129332443843498632479848413717117480072831358583153687662372446122280406376218955253126150434603775226335411331167666615542079623315833791137316642035618594244901580211921091516054400379568059826428702978025924462525957326163934030272949516358096275389734728715889262900548153261777607583080903025314740907677518394680233071895025847039893269933771204331600581654953078219785943055386818996811384504812739458855952289608174132154867634693094460257549767493264845051336433684603705374685997631906837169091129134538148415278659132997208439968126968501211905942083139407635434843723216656469387012853232110532291115822374733348007012036254683052703911633613045068532769110767209001996499227178615459657617180297379922870584984023376986749412266105828397477717098924955861886438709571558746899287307258160530057671801173885355617626891018013387953716086858449076862207566404802726916431592153640984625915835883991086316199797867729440348036198427759020835399950373356790257565467039981292963773496538165814812331108404240101187493363310270525121281509973093496173620989243644895641916423341647706938715101776464718269508982885085552575788661821703330396494611294531459602110369944350518847934671475806358032540862478610902332406546558211614648679291166977064039853905937096743324277925807044799099094677402952777378484791068457653278662016711029234274292468892693581053218040154054275639278912956521949448529105683803492569858042021191958381513256127499168070431192798983719687728080076519647778049561890708183148034860982588649317860057722829643537647903507970340900165208334411599695470272015176529283374993327734222743513368202494562983669054723900448753268781332340391426722488442734191285723949991293397501169732950886293931967663878099548518251282756824139268390187235319529881063010719959133506852693309311634432724331535131203679284812722632418694593887143869647699711976287417602633629975124962125928342509445802815668066919414596668729503576842324561703530840761696039954268357245492711787769316404124923351592680256453944521440616506434512887883083329224238691298819300207518375013139727182551109035725259371697465834729827851013687741212911692818844890368344093483089256003785808168645510283296362471839324878333057781206509858479867854106444228147954217889753848618989490255758949585689006544538481227397777715891402577022642087901229229456087540985873984956273687938527390770034300007354548733288199275156950866700413378623689666879445769616878682773942549659788853666247582183607738087932755133397093902715227002666216980500461044748478941613903662608910183453611940844557006412071701441986108834453034057903123564602249277392585105650213119191395897618924093281493214243528012529367356495017037811765233443721219821134203175614454552192889600968660689138227937243332689788270183068385998208820854600682547066462989299876353959585356515601303894777134285083373727410626562506571008838486315784835790172727014001497497832028535863040636328144549156476122320572348893372983581331174031839702368693086052497797274237779682830713669912817833763928509149084048750090797220905148153649153769906317721732853623055064844917544188645627232345638283939800023452511000278825784545074582810858983807217613178317597751229755320388091248577312948135200074336718444733732020540009247552707725256032188999631213187040967626118437348991324029903984344166872214350999123793870204429572835906097610993710758383982500796252193556779267297686696379107417256392189473422811549743036264940792011054917642106018167200888078737437891805807272363900190670121827219190991953152748745178949957637756565630614647943205768703877394801673670276299034319366641772988508046413864973111386460806872509199778342980275248848734340446293726012490104318918687668890785704476722980058006144818911981336023685412537785471184005833714383154008586532285288662522047590995472524085912924416970027703569292867407863232576983599362615972182936092355945928983150104108020982584526883704146198684075502597401062700245624991088577235172628057052891324725987636328320113261650165817908459746225846505431893075858458813441175348507422211210948762020714991527169218254401269272163911968818109004248788647378419343310934311438476202177432218689201220045216419343381757206669312290488276855131105854489851658560973465768599829160416271841912512868873014590739581057481872387866223523689251493421137085976242921970212892392025468113598845818878647996727505028580215906603809716546909631825757460361801694785311088128370342457297951234717576515073884629627892204010144301464590453853146792645699379138048397499903477254891659404531740097645088636626489705319555691653770377811278547270437809107321554657743280193768973630819686391444618584321094779534779068037323694006060388611499463794263623337576770973317414950753147389075465390868611360816590966369211984804762913022924548748220522317156205407906421419702811723799804704124396107793097393087547369175821440954414143770968491059631900842017805013058274832925389854181955870816513680928353539254767109089055713315756441490577659381443084752711922430928636170714175390971583215758703973343515531433459553839026283569339394436142160087360111114826592441077851449371164482176440778589974263801515981434688890421103025049632445951755877759504178960806362665186490057716719369903922352713239071627487101569759840309763965796092757811112804029439926083457728298863383017119718128546854430203002618331900491936146318070863909401042797993534459949777436457111120957614646205291584009039176857065895751127042359960425881360000639923034916552730444484201308700352124359983692855885358962559576043526287851664362524094211050407886545291438306544783641649113217670741569004316995853631197080502514731580674130465378870082226727723160166219361896999328058519441355243270574536169543871216144420842652007298265190544533954932038002893503486865920278999490859599908007296866789132662587176008309987397866880540109387222623000045222757466347422228519811978745487796882672137031769762637630522977501729316744249236367926043781131063582040125351085101299688329716987207554233660708717039392522102968134732299364159777422611185861720727027968131155777572012285310447724580789366561490906025956101997485681832460410772967154905315198653261219505953376758370157888016979806232395514514387278831262727013139205818509490864799053594371608811690427849710409810255126769624747733973046344229164446425297077350850756154343219670784843545830242450213153175936316290840203181314172215508971551044345447450081010888437009897194613062921180394183298805560917773037749905103860008427412165621536232450147601081104925375131976844761978157508924053011703869283328104225498180332796503261841252765149351915107845902060126988416701634306473136190941357598414330122557534380408179536930709438238397871401672454213692947051284588676662634005817919455481154895536187874624194588755588945522707614851387477003837657456799977653145541817426949952483301994817116227812100591954385385478490196322554545054861424402914886526507877918692800271484647572158317381374081177374925201072562515359013851354688869789118986360441874028209635678248463505722807344941648941634079097470168550344568353019880489435914528488146334831995778572173250210630205857127877613279190168137117439856775451321357735902109990705795307215960268337036861670386844564414837472523820118029279612411091415337998221196626837321845807489355739142169467599521568424573273436251403963918355415900489281221991482058986776005578342341524402891374662819467400841265115467094091837591481600993723642168557390587695627829875348816513918176495781797730145208333879069780691624283229995592415377220273205331306171839803326523697028600332826176093471820352556388232024954529809100801045932521150029831785801347131326712488308861276070890040717816947649656683184972999617938112813187191786473662471649499645265827590794593159186944884419459003023475731688406451838174277069325745880370130066639771180501331329769087196727218186655007976115375127532429301690613148769653217960755102800609729703012443020153389096781756384902940736932389092579676015383186392157232008651241621085284237590068743161209195728824817434134372168834462677866491724595784700495710762487870895419044820899587201739088914993788610540219025190806780927876834468844743042656142791045209141136442367344377027358528810431057683856064335539654432074145157368643430515629353824810713265400555374735017035781129556794004154268829908479800637761275005489229209524090465569760210815972549479931112197399208858849687763464062725071838273659870521744522651729616322781356742209549479089559483924934058182980836439239353172031116361722309500884088178758581050463058790498378093399819303383648772246308612663713148646623133021486900873037112970373179113401959677799688830449247658814668328881140048533822290071908830771906117056113855941826904398117966823008839513414833692894893238904005223455713342650225174082293484464788342404967366499372903723719451334151257836743297207945943846861080694162974402294653958739632288140740725882402936381848026470414942320627108868096915050822765356078960329314772778082251467245452130693078355893874149551178206675479726415068769050129494860180810392073399660143096391858914284179416837111352632976911659074093077685968180062353713382502401198473004933891339841779427588016272644353939272730041643734419505160003101134294946824273717411286682109226568443835164830701583593097132746296242747444896275461992919139665201588323942003159958714297664143762889290186414226694420141445714431229217460800906419090743637534753968299356091906275337428017322197888365738787508506725378167773282280083767078635266297544199441642656181535671712355075606567864778813390531919904227325783407536718268046652311549399556838837976546177892671449053270938360481943574836960022684308003375814284853209797243556627340472803034623154710156526828854373659508667984343282657504098871891203737285385522778065434828364365424525833627151817401744296157570748082621785041398578641287206509965200576484381293269582070454534758018141441655857537670859347962481828734273565275116560804546709822508071266928361014065555076986139734783682779442039452864640300341570081625860367889465614343950513948787417679839897193457006807337709983244250446926640703227795968403160072699258499842153747125532473963242044237308732594740710951788363379588551811240223813260237244006117274003698380771665632257054577868362660048436113545356690358305568907389271523426260862944783647813191692310272615713219020549132254098625731451174274972575902483212920155246038965146380087097353127125871402954958904761334619927824837186673475044997097709173267630193428785884251532877340198445848544865108845571587870814666863071542048022990795706997239503919513869416960564441665447668506689054856736297331756182039142662842426830281983525038206945572105774421843430617303276654641616709696592767352587073460088050395016283134068868223606963170239622212816470299106513599274558903027748113469740205598984308735212185461507107926494422867834611757910379188565854880701401234903125330077933744870682531839511493955684416248410151615341450250709674612252651951987607856340309755361261017816513818762481543064359346822220240706180683246092537510023601860828797846888747565272818781945963384336856636176507687547986589082485057876841786524447508661540636911001558012935362512431251622270235942781407808145473585613114625435374804326785484666379825131092191961215675375726585347114880085349558776470023127157240693683840728737290400631032411542290116226151859598384054045119107610465415035975448773271373328072264423016456417787689200015045155785118588286850363907647162349419097785131786359788487703242943918813123638539633396093262435193262237223964053151102991680001107501719829116217884985203289737503277947386740302154343541657971078936577474459236911628671513676394555386106009809881565210585051871461164906226265591122606910376750616822564955234693405439784614775721745467849665434453654991647909328334783014175724865636500798774874859756310671712048307280873425128143637387963694771152522691077305497903809674433407261433030715512318773679176819545576801407419503309436309924349892854428324535209048582273235820226807600918973693690613611061294732325044315045566180721585964175182000778205439072142818976045510665154892978413574289400026932135295427453825530104293678571043133861990121910998988850533951977775538005897361384065874191768520463795580916550896772815344786695138828612305829539602495386728567167280316581730149410409901675090615411871176241687138309398585878589449943513364513550367723619211287813212927270699350345058159896151344757034620747890507206472107069435075930255867554596695266720363493363258252767104208913569855203417770301341556169390802057883199872516439013566902195004498127156216425643436660265742539544109684246825970125104825305872270327587654643278950844090401949023960640761250448459394614483254406470342339168173357892607449333957827701714099134531607911994424139370517452054424103631955916555697224952155875720562222642063167408751125445201632358226049204608795064370838914912170928815460110128265126173130640586048767287002129326831874079085092550679980611799121159949712900468363614352586864539284601432289820825929882486461202535152770508591141513040330610563006818917009470541541134366370917955984792650447186253616546996576672160450981643721372782124774263950225651200254730383228868731928258871741846033895855513403169284899314445672198066435747579954726236603042646583429904190925689114583567524500589887272715516051104490364241345995496540807662508142968704996924860109751996905695943149976015598559454034379251507876105169015982959398940659338235909935331167523726962215040734926509235981537358511494978561105369002131825880779018432358564594447646665705449145330729490813918999848237635782519318198301442347532646199988926984547971538371465085294188293410295607677196179884053214123381572453832580338662199884434223217474347802821832422512107101877230815469921396265174065152108423096666484588331854315336757617727122069403353043486178892546858245622012690244777991801474387767150478391062545695785536783004330020609996144376722444086948339993131950991892179787549739968850113457313104993030405722297030636650108723975363100559173132679048749655578785454552983844096022547935583362518558367928308599410181633268270802975322074299620602378517944803216249972379143836566388966110159282469258753087590779666233631252302213493473192993286832562109083616465933457007726481546149683244381009900571258332847931346853092111443241158859803585078812398068919873608460955029078852033055210583596262980818840764147381413944879887149798509233575751138804195041459795827429613506606610279394170720678369595116232136169239882269605115447798259142031407289587211579229090055257664022361510415513381828686532359209183990406796334748110592231753957460428662882443296232647288360792722734210853421489750993160325782818050497690653312748509707223434880354303031610529357119396442500374409899622860375573662097170620027111172632605466177885700624116872718030228854643438541087405713176109929940173491101829412975869037858443871820113079605496548461777825212548098730121207751332201283869730581518261985750740727469993059840854084736663307600763219060797462571687342218852749222643883661737706389986130399751212307078442538064136491835640712264688508041807333285226645379943959623334723102940060397022798762367579932547405038026848789678841629517002533847961216008709189722994938265809674588722467302045012278495073908725284319276467617994607099112253690410957244083923760458586195131442156398075657645714938614142734589091223804818311660943822268249840732036670579546579580988837455648833064202038240572044829402593120253516220679875465937675039909125632219413646617228083050897161938392372816051315323498588977727716582739572511383044701714576872821285815022704524998017156599619934513914705976482588085437737897108656016513249965724344290456761604931304915805384202979283548464217798126072467763820835721868493316865808941061279270101781260839600256229677695429963006859469540840624756217097058586337371247458646539981592686794102782581024620918270424884868729951526803817707842708076972394921343829425923675480825511108192093328017342003266613339424346581038124727540780035054973151064279973145865323457184368558266092375485347667230489858457933492800608242063644521512589177743593005916702139074254186554066176158269537337126004865626078294429863996542852659455799680235846183359092123426080863152888914266834383444820394389752054142232170376273415495214465501872026552978306267427774219665396166022899340350726412781470997219480780404004537993697502507609239737383519917191478934068964200883146563337527845322135674650800593335743174485613886532401251977314381390547855046364916649654157681123680723585386324855930947035413557580972487299605062558540823719430660816679218424599113361022254012702824476691722558248143413746218603753573797869802152018981257662466521883902099904670045813663128880217627758000011135658685870477860270550819466885792505876536327041572458993639150722343109796314762844160274744188813801710407261897071628965470716741864785970871146291271019070563734308522751437232903871134080923746755048294864772781530896150381416520667141449655092530537417256376891268245638574900399327863287922917862627626501788683605848680413802902588763783596037378328297952004399624110053449711919211132747112194597198352257464499550749901881879730850910369719283926612830023868751550944578568806507159715064326778144680200561395683607606764879514026005312368288746694233297537400396276929555762869245762444588209878611583342179559301820334136813505515699246846390633801317526789338142645094178048612597389214063355730115351019168686230866244542102098268288125535769772128641760141223652024893133718979438763784015333514445039039857358545618294009962488006460477702846478898203007460805405568083457692394373893835324781755758152441003692156828847152306173015736485686377306148413957173059235576243139237620797648303330045936998488421611504000184740419237015797993574598426498944510602450636917598454481753773117116459410388147364987743685942613245234911493365273735052974118082002535248933914970215113097825046377435611756020963575475962694373114848217332100570414274684570792096573833977831175377050573301030852763792577297579444680587569217168813021461572376307687756165951360834482150707345170469747127632713547566666940819612314080417154823391262227312203771935823211358723521050583579234573325607210784680325208175048101757342053852983296943552861711972979959874476050634822678507662187331050525013598864297743684033774139437404033708602085986515604031772461799350824476157001673895740824294774091561733629865556549912900604562251342589921714268920274662407335636490393317826027046965654992184017463571237399593378694003793453723478413836065077943961364164560839019363953318184876355256108677938096188662715529835876694379347282632756796308659566490046470122072005226886505882875032641543638432733472264808462257292343404785389985767302791069301801054159559341439922747133442566843595404119557914249986039439652527119940908589165284753487298529780371430984903404994885456257543918980247519832742415011163852978737957485760055917198052883338122564437620475634103924532282659054668036858608966710284549987509346758861138190765211913284120565998250172201882615375874656961326580465078552884259869470841680634306557588413033197405736885200997887583489014892840533744241511527495531387202002657302210628031299504123294551368229152967142340513398899244884675309820220314002547187590011553495097313338954280154553600120855823455672128559093055547786136604056078260465228655495547441724969765144606714930042271126091886211866337487085942199978903213907198741492416402722181767474215638316292753313473822039108452308430391678584441040132645609623243443868199466767616968785606611675343239424102575439997804683950575536735200044316726159669505035311235389062106561508445767617023161075090082329589894816444766064162076418279358900580250394966202438824693449810999543529935552169323930895956600908768852661579094457260193437398834431725895741414025916792202928745112470390714125993998833416345318591617704753014832581846088219642920381169210145215030425135088511695128560717712931776665891447956887239405288956958036893900916184454735311248120017923474962696994935870050102473465302187484454135678588102901846873824105535229816688970929447368752832611240283743904840638531231017548423590276772318045210022954610971112713269253274194805944362467718765956515112149402900441711831059207061952032471934546852397342713402972562189042590045475061522454833347912065020354062320400512740283094739877090274650780648052097537967100978334729394371812713022333684246058284974697402795326463094708184196774555404410938405327832903586449159626143298598265217020900313964243716484104196071351613160206612938874429459070390423371424094294304124110995811631165582807949150018589579593111266888381354014909248029801333572022455900204390276824281393584351701736965451127717593002734311278480843676691591174714828209848186632652635785143903422467602009118759186710423092150936180626393443468823970495102573348588999381035411145923983029970423937038105357011097055056730591155426460029952774246025138551243251854030064362339409478250001755378466810581777876585091508963559498893370237953338004599979160461451865804270780721130509163929890657296983984641075301539510496565433064001233006386926368063375065274283387042882840181080077316981792646458975926443610288008591889270937790386203028155519528722185910265593453988462132946442064800179313563846635377716819506445297132874544643271053887932996503630546998919444808439700611230113040725428237112984928143230196819844579468864918719903171913407204039053493738433741937637637340264038139774686577416157759819199523940947968948201120986150037344930857187221753327547044768673904730796172751879374946558780745992736156077342591193753832904753464128288391729469707575474319159866307879898044484990775447843951056756749469229818696451333852269371630810602421448887570141914847231862406088967395740316228494910237248025952414314900934241455212383502100878212429141643981793849209980612425087866575137743473663252543947797304862494955904897411629506467985926671115771567039294458619246185842017167145581065842453637256105256759673207363561314146943026863043794924337661996585841042891170803241305497018689752316402771005967935222224018589326667358043247424616126456027248112893648444478393873437238871941392803454661177425026089407630608645306490100407578472571325127049636922875221255390896059647354510439590703121352077450436742934836384132692638981315458883808696419531011228885338533560973318088536662848058890286594067465834806290007378351044000820722874773549251276599805254627170179246810847719110518956170438247116590567248038603919942398322200524611303774329019632083524005747281105299517985517128070729963126393484314780831023675484942486272853616553558159062371678289071430168252550971181620063728460396225333009856353290091254047587234401769763203120657231586610850561566660377420531445376066811392490851097661742428493064778174857206151934661116504785876897937857692407323796842820550368630057978181236827142536071412425035006180888578841833457506880043394398166454653066601431306443937378781558931477245299658836122145363674490619070601984571966684280913771832719665914386610928485398763479274821655813341717606920520613075891968841384238094243771503450875874008994752205685490274365805204203967341447905341691618553319484062233897679618750033335600344978105961334523584018942170120391090211303102990528899649393308097661776477727488072839900815438351244855822942738099483566629035872107448041562511237126872722436324440360896461755330263512037470803805195854397541977783860896385449886684236084639556537901898754747477822528520523638929648839450681648606039134350773976275692606631434184266071787658091687668102261120314597572157349841839998462452501081901550216848899859772755587398350833201481032913102788215614290839670509952897806301812407628559973016340598922257817638626285805802868227315811738191385046238462076526282410727714255574897216557685881876531443815294739857058184133714325855427439409289085296773422726373068931330625902224591819023390142541593187683883817104681211861249724157207158740141637533885964938646212471678209201779007686929704791046314518079451340047875419541493698092078135668407900395027514619626268232176801345270659434952495822722283644522519236331691925433850950738865672400748413053197293307587864277794240594120884312254668789539667753242552813646530242724976062850260352467485093385272282537486275283644792583073562014043929586450097583863648809727612863229855505473972925560978649171529114516391352652786190093764030748682951985982961058278494990386747656300244955135413801314093083591954361023802579184354278988451683934124881123804369272156103337078165608306276929763314106172206147638345963720968664262241967860598208975147935059320237121367800368318226238958145599579513883506193825527893644264285622634176718530155803107485850444347307441409681236045451130342919057888008466215616718997408268688369982167833421828308116813286160195637992343185742554484745751843090235488847736805553701139400640470139841023803682083659813757885353963507660996114506992339224396131301881021239632344111852326991446154093169877621762363221558688496156777387296472291955375513248538003963760146004533045413603306675898516706369948804127116918085045696651966210226107207818573492485962157906010915132586277773966269277249110088579154758035276936471422501235048334098822714635393410270395845923632164986884027136809265075358167317793700048183049268752684619165048234568478727286793920488861245834517870416799541374057671359538546331960632627062364147938509782874298691409646177731679113441484310754157274070049767048442665182836102699599211422129817697981678850452182751554904780215765195507854335559603832584960555620911412885364139716790991567603069582467238170823554677739988449308417356704124537401476359870010931621408780722016120273537241680949950003762995846752453160397464792164590454725094118139506129248270617263360673463025291125094794950464702995105046371642465795355620696461995232970386402450497892874922630122292535449262103565208070671458636031128892328606957492074742611018172932986987008270495625218261721373254778225954895323945709941235401913852746774575563068957789550726075217060142410385185590289886326260272055903075052472578537963079434737925166674128400456714249268671219964324712509355127026271574521562731318599604303697279253908158522433435630423273325356153569218745308227171499410368091854680717177421338244967878024016577801303475057908359852109031963436210307237834741938922649959429464125983522991037267276227711550338487712077078705254558842196687481469590415764776481637926884243446815637799090408981489717960415436066561666883264970271278058374229034519451607599715963891718203665993737782379588625677791495359494408878725311321366647558683475681568289722095103411620606639340110955848040864822278520254210673802534282592391774525622967755688334408788299982975258828082839197068393369747485844590581948326318825937448000356567925286684599430732141003221058133023797632585641726726834192902554356448571344680145604419183036978837293038899363305058252882129889365654741117912481733322371373088380556125131363336947630816801530743841594673016147601061704740700994160620911317382974697259982213505983848656389255254621890389547110413285931050383749157846115580265742076177901398687530381073574782973236338158992597922935957580511261136864574190392877570745811096291453347378096003916126785700935852684155071944564078738279160410287031956646996486033623804018247989954815368509428645912396003076961799537470832200520918469101296442982350355271439825840043446967470680016987210007510892879454279988771547228329983096568203256329444578635631401466080096903667643942584461617775151632756068419301260722337860990594632320217509895180186230628629998273839951839955411554631660157544720907634441232752903086497628213459319414975585423086283503190424085211942197149362896856787001516901996714220012443933437153809170186800803895493857798677100865055223314641900142509266239147538486832181844374328276706413586078009598711487284392486481039211725901080092253531378539088048197013561055871855279886577906108331133201428022637105774811202639663175629769925100004517647578348261051329798774541711858774802303770762854929403871944966308879798111452271245013902872565468952058394103012563083177892974879444404587119540204871012696488394890018185697694586582120229183759093814445336476185585329798123867179719978405507720471225607503570319046351480649188274112971512188536013778792252291240642864094285631126104538284754840718310526492283588050791093085823668282287611846858164796755676810870069963197878711224529232023903949628136119867070105569092510749365074931944776659978467564605303496245082215770904852638024554812302063258951724037282248735937340016853818324422870636453952844188548985566071323877366788243112521879843934844081568903783231165285290946117745890968801021264094386370019369979555341462311049945289322599904210977434267151542214505625605040877376370477319402891396775608228406089258359704045606268486524240565585554631733119999446633176597875366049245481035489533417520310476046838993501739483601323056448305619981294024666882560422770054781684760998050580570492825472711948640508270137427729346697251597322543248113504751038749233561962517057655404648736017197444558838974487754632790999917535180788856971001580338190451779606218733479755809457771693463913311965237514139060192601295626403206394863057645444938858542831047320323230862636061844553837416913900322616082916904354955967534263924381609497604799599410327579026761037956676803257423577298115019671589854571311535554468658714675141927453377272578991797065563077995362606536534218560983900418962467169900242075272604478369832967093212774117066320235732509604768540938776867123698208033398871386049195846468454693740405642260959705839410901439607398157385150722866148488395089382822385598670976147681648527520968350731950338842002921275106778300296412903370987708249704629300682111874425549336662500761045614918432291848669358491395215778281359699746249567066591519052980652303436805314751774219584538693612514839361392981922195045698107302032559200327756970634779923751614131143051457346088876373173666933736280752791990842583006145159042844819561751689995947009327225050320326137286307540223442836850692369044150734472901241672026576846224826162703085821610418336014512369221225164887846236376422975889804224486243595266901622498874045265654679279209263360903881706840116890932085224882521055630900030379810574993627736322618787426695698702354234326520827854733458789529995789522897640417793799157124151595706921343900111548403856820713389173074087980618816464035729226423521956357888370983318334649762189451238753130489110724761338453541040356434815593706311360611719644211434783813768877470367426109288857282368666229226466022994066697265339585300229363004942672790134387665303977645735263442848471974990211391775227264515682447681320304789902241864857705602803852435647262398087542726327292866800868238129201974340876110572318597935471142778598901304065945099002995670803444524407352219132715305350705766295714619483520760880865190833426080264053248200791091992639304394788572941093153455984670570290579324040859469056792770859352712177640904978948543567605900177241567653442922250185615135067990111631254542336141273380341000468353940565428604527610405985081045202456577950773050046228122152238932561493632098005190906522831335782947542129592470170902504548245522774143849943336817183734373716527510999735624962582149583643564490227874733896537134629469412488152487666119749248634667840646408672231009405254622740151007625565396838479411954112944239578940170232948198071575778804970108793740294360390332622112663978222998754254093406791520689279130231564603389625239548349343076154583410912035942799336602417139984245172208717434990498121866388045715660676077472662431428654458941801322285228799562230453546777981902508255988220135441317690533554196117984820402537491845078302490549987144537912398862350482587011409103132587497799450837722534792941336220004094692401426466566538952152344457440202346362150179282695504947494469107775165496452418687982753667913983686932454987599640408831544977609327109054970700992438498938030429451078920802114958575073697104607578225434273825233621668885792027086928582973359587309812715421290455823651311442554783725992661059532853573362676253336992872489020860426878569382858336183952876578640705797371588082403493822722439706002743378983794213516146669777839985032391072542904607471948057675699363451373336783929940280100472057618486042552588916952855549985178503366284643725333641652451697399588872734035978400943915746276691937880590193612934270467139934318010958652408380698797335937113769642302258045910914339046349575023486044733121339273657722775490785712737731047187691128652561152065272412205529843427604867996551628832328179704162618627944677231084112021852033872251369247723377777671196436221773044381687432283349788370056490113759140635496316516712128388313325921240058932752182178254944633802719517304898057207628665649857421543260619954530657839154395642274039141664093531782022322975491112247839994707079363459462117719671291651684250861692172857580552438513083641516163969440784902934363589813284414189101024908151016987636692176757924876464437817593868074544588383790446834017135775405538798371602486183619176463835253931695590188313887344333744900567311175385459308373940106147513229036399243778636916878607007530600254735405717363489787639791532282356276732038788396599735946943637204880226283748862751878099158498030104730712443569510274015655107332921968693644815048510570678423373182945228355153870855819531881447092211743868187582198642757158793128641074890109496518033745293276156591156963351389408644080856200378472242304495571793459283129936532484449634281245427640218917120384379054973272733479238214776115968920312176836683185205778339777362852067869283265571971691829231918307225851872372511810935568017859288386588320611075983806337792057803525223807526043749161323928442050248559160517110756960932585368875021058284092339108210395470879893173289703467595053015502215148873341892646393815703815290870572627082749238512945140765391370146260291668626276505767913353891601111019007612553929592490194480846858585992835855269727348316507259773630060895445070476185699564707923653759138625138675321374484883597509572956694144584199371922197681553783042590195956727961361134918332196226828106915373343863676134716585604654042851946497140063949089446861024464046676886369456153545272072222426940973638403404525714769062397435574793107336530806910853428462455299891248448113939357850414818236240056972616338042039799706614518620617682850869224464294979907262917017860010662341449987496136556485313398665285301978214093894115073578886451519028464806005828145567244317833209954304090120913081729757984724641417667086940344809028986614569879470003289403574361457317405814928582926788355327276727595255176491240789986140258537127772411060313024955426045678340894019834279860563747017527917720265465116390256920914285388090077431619154813623255513552035924279978163856426392883694144433642643107067174355887753794201443239699440486028448857121752536275004077645390558949927600499857534489032646001884097928881761954621583729032497238860411082080776095841692192884525622125224458982899447036986357161653126380658754683633814766913357316513376733603171075287710035102345970140676695708681927001557573868527809030706370438077892855077968146607414344113149596612329263698412853291397648533765691911455096948790372789701597937393988028185072101191362620545447155703544529985784640641144981781674197074558760680326285127641389665737112076445036128873761763468817317122779059524594890238725077241328448185573297425022158803059642903844512488481525711258590614306097123560719707630796027112149327798550130517640955516993007518199755770946411850016618788079617473179716934695559162108012135007708898249716737143928485170820176112730570089570204041136994422163122817249034514137571989472130260278360246007663693875400722913627220007161934642186882708904685943755412292673874749188796911209600648226474901618494894145428460857181207512325267442493506313115876593302340617184697522101741640381205739635037532812689330269108040233699352277384908656404078579817583200037232322993503555365430693278904722771427288106748396998234672362823417654591076318926103467436374799690628629499728023752154423868000380364672288314914921412896658343228841756093407764590629929766477595155277660545842976788783807872803593253585198969160130793987224787687407871510406716496033840521657625466542449843909320193145914035112802424393511480836197277841442604054403683859670352134464421635702591668758978746716588460782876505779249113596960279748876647561615621895289338083976777752158302086581022549058937754127646460144259760574884399769850825250853691082940410588886530753968880872660305039933337037080729809976883295552552190007253112587164819455328797965043879165305352642655564540472282085530308795153980612519773106635197132664199376726997250878698391147359855369539907108144352476911740214086547493539742946865946105204694534116532343617071418287583462541313772689693301560297462367913108468792124359743391932046382957645889504548020160432818022292402854919516044098565932576988210395929925738589657555377212867867878505930514309957141583495426209240808999552860391361899607942092760274522439338207781874873280263550538119880063149265467535805435173002032354178521196882586211349788358432664670378125699377891292697265645474277611606312326771483375317691526879375487540962092592505061827205984694840136493678540237045147454559521239694461509291956124504837743033931904792566993231750347113194128702592453277252627379256382988782218549157477254301804768507341177239719283034616179772697786858074472555640648040923034197345557800550968517921441168758825619461233716449131560155742379053021130941067971470303075747541435893429928179066889538456783999338329337294960988026073169706058983319870308793366554856833016143534094627971586354954202172963267109622850821512058161624707628766175668796520005510589239066974965103032358214660538575986674339365161593547732019247296788741807278010318469682176850733304205002709465078033251574725372895013145350728803902452483757236852609274851296687954166571634327479415436079772514684882817675032623479951023927882710606658277047028035260088391071482932453188106720534671991203180204529551547681506651888677411172285237624435356099573346435314563670175394853446686124468631346744106214363765634149004266595673096660826902718185032455058626453548402945989839580897871666100487847249092537521256816166979377729776103676067748255131465542511621735820105134931716340992995417868773080308167926061442513420999976747268851763049434857249565846366912550856613758063907213060377929566127709145018879577852357210133250598380471828347066814706466311454178191443776368394266482584920593147122019032925087923009342845691802800491363812853986139212926349087571090802505360660037661864728495659882084497502907459775556846054811830104019414414203634562282051062621325112386576930383553803120781749376205503172805012396156930526364122403444084678543926971135220572297360568220559798011310502619484234128259239606163008823802631002814875098413684722065916413576604368170595545602763663721721669085790696352700370895237164790387607631837317787187271133296304921957039431193191035923668625154397065006619300054200965499655710933548606212365669799852356070482961892376983736852448760818826199262979272224391744064304204615624253783583493271251968956189433681189225804992666062139482381782717560939439675523074506912135165470402852040102161639823443388838565192896563429494427037887410879605487641922603745138518549535250980210001934112215493736139235610318001731660415282687383232513138862326319933682767602735310868956425108128535542917684839126051026888940207122764006631121805275750102818101886685275532037055520099786597153352288397293586259721088713426963739866184715367494077547503894358980614609059674670311090955202417278019069833199388476955982669399651603217347120427076964499637567273753920617650249037264890036781479961403276846515826939185951762204601883653485604872129606548616099009665369604544831419322875344727547597715675128724240068181727401882116408675582551538718402327736409690291278119757648984189920818254698286156155092806023155997470183938358479612730887467300558411045307172728426836433049136079514765598160747505680097637675320752741141149699300763150629670106588959506345347926711008826250864906677989192936344756535706628786523836241825791960221473804244052488506656232188109528067255732486710105912485278042855716596185842726078611737404330921791805770863142136661064208985913779788296598127004742065731539938806807715576154279582542470251761879911909624435325701701876739045502182329140611940944538712127732132947374690835243487400578448855271893571954194644447291089112836885453053049615678337228464821844687588753371548416933356125022983068886629105084327099051120297949090119264360863035097890597623971774171205024478674783730341891255880850009793600410696530537487629980360493585809001414027519548575234272783415220428364989111843659978063998851623576057586460744461040490465009089017394335295657273282339428938856764206420773508495986246727734016121894298075065553393353455907991285023271085737870583287381280994924927231298472969968570116818095904042231043024272074187334454028108158432794662895625974338921675794061095741726823414461704093455607775935217650906505474296299768429542724572276941097751055351264799157026970971248650430175265233514725324023427302548907140898950998586077708699361532335855472193716689721312206953898578768555262220807842981159196662680025236613979789243138369346147290017245144774721162141720200058560327827307320869956065040023493863073498301171352017388651373750647979929399538744488625334859295561221420327751995234902382751462852161221161597025270348414736109993653612443792267196125242032714646324307499883840214767640886264193542309325787282749532132745006458602561990473030437441065355620774958636449292291397935190198346043911129302477564065491376831003739924302405196145523900677110104827834170811585484221882041910038637755422327382055037198205307890400239137661457669003741043777403277920129240972468851933895277569754260726342664714881222249171458002980603360968733043494082881899012142715621003337946278257345433277818692533785385877195388755167625033565818013868264957460757219032130246207057335535044512667889855342081415428767345693921820938964410634564708886128224854360827686274725118419129880160435797385563578348540492029387660817135065103826294000171937054647403622984006701924261386072101726476144899850555477296380270664663896227909278773403359448539428979715219477710364462240809014234606377312149998701152440680725937809665060708910797715471698994276189433338697140006812772164246507976198303429327191610816940608864338568012743343882943096941584624423415894516400648233940202154842641969350581278156073908193924292632952188087277344144755437701704768205714054147651611274961071184038359489874392982039787356180834691544586537272173238765716387182701675309140376923056211168900919646948880596756128336980890765171380301851677875472960402058569287434050571239673326515177630645498978555544958658935795673338755225931877456640420311073028044456805255147658067277141148342578749063308603787870655308711603774465463314701894956170695052463222731086349296617333096178176256835055306313185418648716994688611821512017503141227082825560486639664432189681461361025712668260519036125390471990921819201304594384708941055408626042043159469214581100772790890415205808148932009884788667362747070564902049789302227850772269827535996628594319097330799829487119069961762409496801480187662546075339794618746499388982095692054192250993180676659806199740434329294525440260123002479717641697601367500692115360248098444254752292040598591295287952421395889863955735369405219143946904534352044185686635066306554268669866168721374342966350629752453059272103934043341976004373337109986219926904420250886759035262204768422051349310013975758305940243638835504826607069323046753682333326807795470946876512747271433706830428062176948290152979982121860932481036478492261751582711976011205430392355858641658043999233054357590512374918607969607939508895154873088454767016448384154700877541219134569676584140729071449960859594724828588717013028044952145302461361362877364124508167021698035664866161311267821997801347302705521727031950245298192966846008868495969403562456977457792042217478529569678667468781864677762987647076546794428543515268141694286540268529298815542603238838802139491188933848278101768172003663167316392348091907332410814106866965484065975167586599127213709966172258536750591394710895269763571078508061427402559930347686253256771876260949786398602536164616201934574211090682127212303110051631897278197019776705550900126815970676746711880655923049362888583588167353702138447627810368591845699801166187849297725732171843001004586564204713798440538825722354255213269241608122751451069424617717818948862291641425901037405870242045987827413995888831629863762034918689549315698528948588502948707683221210169213980927688717427386128834857880429427831205282795027177896654353889850027314901614115074723931454698608769103539946794298184144201309372466793468989262968434361834877251426204217215705191173264519033271694213361906235146662243814209006131895286955756107016451965642212232245760187479159209754508057693946087409633114344222351955739867809112374487163902465805206824126090299302106647023224548896069460028178336453511409469573048787587251612565096897608662017685635971928306576827425688968173135279849431196977124973630862596882462241290166783101085153309600237093879507777443935657204633612369891491585644026182384706460072167011039482862877032291361135496216378545265068839282666870083756738347873002844205381179838909013793232037263216726706228589528745712394587553310384662858523949117528998650701191451211087232241268013699977959064780112648792091238767503399782107889047273370068792353368801798530894968387972856169912515751303576641917732840848884579033498123541047345957621780103341013383510560123264629879543711706323556990214845035149252685037965217600648586691127431435718680801128004870682152400715594844569470728970410924623192525399801402987784824189910704781737034173773320497107352786903302053131621795584574597946415185211790918662057633763248273270117284113330195915157019262937828678112956880744588294218604205738721258426712655243807949189212984624957686413346821199382759091303470050857608075357800190599376522475521850239803194545156612484893838310512921601543605677225577131690060388397766973595506074606629585711948956269216993817308982837038151532609614273975452611271143591476957384957278347600584835262966960050277314177467314135209957335928794307445300192230457341397435716124309443726663936995887855808785056683695906745994437595839762503256375474873516693727539306708386503227165348167899148809026792502223953948713849095118143764600156076106448380093283719510350997894850001147158851267052407905206977395684280560523677994459331240463235852156094724831866271595819927461610096749502187299058849916764667232240113818070628936962941761473065799444925166288052121861266193510736255604463495909470680538295923159574437735501574730008726507560095195480613973620551756845470370002396179500030788547963234645954442831035602753594820928201280199005252079736790835104446068436509105868932538931588330699742166719376402216259854170416368849724381331770608789719184369184829476649873272984229262876068941567637681324930219578179188154267962059264242713153517059209943513127142616474853279187679647940711178884654638296957311009011193001183673895421612033969513382087331737549177050447349091872571605244790400984600055651757126805392574964668900457565099371936448771429954643475810110454529789159350030685328258343441622622631317495044833133927959940952728706221392602155237100063715329024567719195804929905803661135981602777355554809288782533105296987967719012797568733920406532011006754269678913509069329862556918251571735455683889045221478659069361577518016270495164836824669253361759631736270601698797379859763768294515419559004911294470909733756592966494823191008810579852669035985798650956561409924220660925270071669542477411848894253065503254526125273740340532858286032578495131763807460481219887851417628228784124789215250782217709886288003766346014948329442301263959611952326634972186157421420922027799245352683198123324557548997055302894741463544962489070300060140439821723086463039202906627651769183111006061950376934989071354980843274259238668989212619361965863889710461144066971964075070855216189866845253439750971877255837690272540978211669035694503564542279144878702144611903635913872492724042929749541500336234306667176762820504163539589490517401304258193700693076555643195515482854345207235078306889548339961347842729064559037332625499790046586902716750286204719176723051773640066834875897217875770183781970327603402632108192262790023139699107582886434643142736564056080181346668901050787262005747168458021115972178382474491647103610236660503999117835659732909526166621173299177427626973282579870593239108622620431637436867053497405388351916161529793803291708756860853135435757792681716265555214569620032780503776099525754082473811206721776145287669215245165015922918242005623819774385743826245127540061000963391117285196439585714815969146726316430979463535080312785080575273389832010073290169056577974194558189688552380765881631789571175417429023866832665760793525914980503263167132770532584465176932706299480158977676741217873521951157587944516871124871942981149271736710257376920729451976993976729465626043258312702630427292530163247380328209708340842756147158947204967738920257549115806022222254717600710511553499030016325582479611775482328209893163490276307593513890300640300406149717299946576406145444270879863105381623858038216048499712694329965539720748194095089392498426922540575854032306477411888403672378930764358999267045018661888947701926886195908766808394869462429774655173628758025893450546755665971842693355579847974769586421161801842588002368478825052383592548898926994565498026866984432649402942057298094507345938105424556796647163725349690022965574295074314431043322174310685796748321527507709494481363950141829920972057392125511103246473425838959836179652527536373385383927884447826725356175078433506663437913775692661844635670013882863222712902863943723821672771342804238857615327576966483202207714379887900727604997689551412551112129299362408182930995235494806230759172012287923435135890418813221837812330474316214297146723003893967552034321567701877971245906545191325850752838287708812025533612390347074843608764128785028409160048564117330597204891039282514931649710035566317203694434657862694768286789039030912978582163033788628458907440494774764096455802421408155055147833089732327797433322199507834992820973882011495160233710271432112648390789343034078163623275254533782796452483387797796232704423119932739867001268874869831717168930059752045117881912827528419594375922135380001655307108635833954939109338791239271033596126734873965363119681667996920797726587536160211271058086206087438315706567378741500579360290203266354328359839721121346424439627985098329852115013917282962448027489491201064481918805539360115010992063062302635517859413888710963392140353021949513792211520979288658913798628137905038503649805692942254317365658342710358464473068477221289010247058224467062023142067559238028233728985056940443026335952028820945237079522304509379965754585199612779439951332976836544196679220831537715162680914236578565799353530521266897280659499932439295865356709538474433353776391516544951083738442524783652315153423246239137343170230763163352297444567663751472800567960743258100221686683024662687390342364184988558721147759653805566566201036121678174900952056976918510444350827291818522086372265732059171072510724935250439018931005779183128552671405501216671885478175467625390638938185653237113348440866917134630924344593813313485265299055891092579848136497540025975663370436293502630250795888401564330018134429492564183686976132222284190107177940146218628198369364911273100785479129035053030064250726262290187198791820996414158130563650944837224057927201601089285308403853875346015805820522959326663359278874654312117468199611955179149494843828432297840603786625757797552904871347176362032150030596334969271284125374635613611223074703998386224873928662887458035411777011773936557594338183048800080482767187611013375707816807290834127322983105804567848321911092873951044451077963070588867525590919505210408937332332373407698971705879462583968085512650377289516851148443831369866281262873467778008975511522810277689324591874479772836652439461920649043009350788843305220859326270642472546944491919908810400776165553702270905409022226096624219265915010642147135503157215430776425357793701375549446591634240076588653136588908405079149912098847962575011400912606612309699036752143408134976862455695997821614342767017579271005242261612777044916257704409623583849556298861363983944852503653736701151189209632231088142227550265281187445860768786702529569799976037808712541302390922894826142013122596230400636990662048974356688099287529046144093225961859046019135876947027393444659834945638179527421824901311759396257728432003799211256680302232669938834625844814661626591825382460931481123163291346926014958483142774701121524448325473092048211574491179234194457690473026675743727972067199875836396717195244399263122727681257426647268740054665261433635048901176043639344423617320456524910987422867717206254093470752724593581024315875091215194090866037623943784973823414889007939764972032218832067379806558606586182652774677400530689062039045308442432404745103514189532586607157007260994224589624467398415369798910867369043843292147828599996683051622134153493524105085004649875306707428492480240234263774992558607220725157962053315137182858906695740694047326900917143439342084797756512508985991850806968022824828175516325525492859369322468360485385818197972151464354618871351628556061735732957490778058421835773321812519055656286086208887917349518663796986954999450259922474150047932236925965412133021054346361862852233502362667440186649431652777627115420044143664375784207550847471252961941334324796092848108179650073588036907824107722406304694319790069456151189712300208363652030297113336430698518928257724589564564068115814159227054822583648425503134963129026133392104726664878582384521307700426068478824300216328253360820367786707235878533646733256378566046717267533075567717500595172215780826245246705829712141562716535076099852191821026771757497529880705800654885477414740106433815221453937795950738819836752589803423581365406487018718117179128380340599184117821927153002023148431803108393383099554698806857289072487138521648521303498610331830186628580262514534759213887227434854496847211131214390961983516418414564266646566837396656204497956983581470121526711763639305395807112836131363784122519457557976762865063563344512904027906149418077231861230801787103615704415977670616495850217425440117105623666430508047462954077902512512354695026293288562866010732167495577600589194806327410509301244272963702212294274690308461752177256141967321483894932047530953679394095875786579936003908491271761089087960355753525670906632733429619066396465927340593634892610153580475736526990977369054823042605720031927256570395086952498355562934328101195351668332982819544121157694368764444414829247374443902602299000498998388895831760330020497266749837126442884890212599771499419047775287813929718815852633559151583222638187218228689160966141741978613193852592922640472382961896122917865977694782873867322143741199404721066349379675564199845346222976660466275858885552550963774322537669386310799170626334887064056062766054644009134355988965699540966124278998792372281428174811389690757173971837955606419277122536116164181492264099406491896694896585731578848366084840438955649280685542420526098343352286022999509317767642310518595311409485835584509995376691776058032330183568121772505291174698459799045319153947410323836167032155841209896591175865061336154315021982778451295070752332336082472231420790819558198093798298295044643495578186504518952748831494951305815144483137784104292835674508221508017692144612888930201396728739580828880396632110975562254191576068562663186675820669120492913661910439493951185845354277344986419119761985331023365904417598234222952937872780922275239267518934048087315424297073899549383581936360966253446148943830320706297913482316889480751372799298757595679187059085651917717307366505526758544392354399563347963073372336604728848658303183475528133836819075356839140645459874411621076568014956679908721486200627450797312327633445704234879984684805342608138067062429445418842874275127720915707513140753160246305979348182344092257533685153025994844900581733489840612872270799046995251285969141441509206583659223759644489314608253741249523703613334575628445768697166537966699455589699319300303596308792982671373248242959804944551198523785520280013405546221116396961642775330796141558411696063031012322707497091543034044376200519694814826671702624051283918452019741921653128693291566047910792042633075981193679719987991907248476428679010122121026814644516784464534100890077562031330458664224624552066508758793136560152658165939652582748483182207164570123830677469111060380351340798020134575862972801804152888404984807337586420619581037669521602206311534386563145997829101286253928674075788138529340853118904854912394066944175661442549580802431271155006717075268510074368341968508280610167898251355089990399187483544377298479181872587042269655041072547253180778171393422502794732941153276675283063314198363151558912056955761045378823318583914520943846731918474485800543975822272087787586773697646511443371083164091653364939425184719094532914316044437289079616952374411799913239364625998509094941197322126390443558654726867743806376001954465043586400750269055236240561768607822512916568906582517359412599711302609881555262596414274692390224355974685561366227507257670797970772319098783083920872313940970685081598517371184633352422109727097848278705164074050448710060504853458886336847846727381312118592898989766785953890518011923616440551479288489054175738701758778144060640012373908239979916502475861880175617221958411031970542788919245765771935393439959005790299893948641684873622205936392924879242726403350220305696929079363301684235456179445951014568405044922294301749071644079100565544009337979461941760891545516679018320891004449621454263874535600866323870393109663329380856487017119887371154917718186740137307258987931083447838564651720676254055369404945002489352353760567155005749881535952965278242932500669677402691880511144677460698905496170237985362476749180727270784938529268862653261311180029649253168475498724614956523289105030189642138979297278056355639851467445880051553761315188450659994286547905054037330686460008807758169359258963107727646559421255408694889121024953669806832735506221724723622094894457912454201147074490162734764736559311464643986343650605880382596209440295439778229046513160619900806598072925213807224847303009124889229181842211136888091481066712849163238555122519374897001191620031880549346704429204331944157851020379442840377833236197101872888750642185993827399589196768050292985361298308826024355210850293183596650684962417228436275316537189978689433171530168052606232026079076291803562835211603131751590682235519850032944336203462336287921804471352735167890709860282836462985464558815864097646338142317203270735143917691808547791430484874464356138115701593162793389814264757601265288566573631443468380970358606355920158514476762292003182073449322468033186333709769094006802157801938153963683084155036649545026407898513747615475854564942783636406328662251519213275992118259373318919846320336790288007358954065989502678889789587707113824154097666148223278970825418432746721940663315023555563906605954911755831662983915222275947090411276579734787725174658816031519835349086634570342848900993457929516247462314137009977392404612546977332050185517894205878345844577567100912544949570847857129488712607915580627455596185560510609623533574279985292510546192798104461178266813547055332910779518978067299434875825563015201057860422100139722872853128444435437811045695258086147796536911537267918396774361211717269412667629364539299441553500812867204315455889057894211917078570429264762417199693698400599083495653367910668966804690467236946016178762050299318260212885372408962103140231058052412351690032578213584909328810246418104342192308614488416587148885778827854457392112258900235769151928184963573364868039613770947602885530350331256825151413053407708593530058403952787481450560940973815509935064925631444120555799513170282103288089829350464494316187294725779941932922792302236148767089860997027085498542750282135187895643095283481183767979357671295183587414558934550200296297944675500479054717700730752033623516525300142172450105512181042481380620261632264991584902703931482182894221081411916683195597465147579899526673398580184658796827960191740949020548161070146281425068933407766125076137067603645688903900318276754704280210216606519675217381616744157453885530013535793389211635694081177533226824904965042269579256328306156320128084351452358764480288061604952959117451517518161604465514085823045888408350609099032942979879483754909785857642583087802200380099242392374410380565608291048402083641131195285846208596083694446146242858775558200830615773085278244465506238929329699056154755826908578129668051957325357474692361068745773487703602861915101756810507949140524295246334246992432040812309830753511061355995654971730515674623372646580391553396256627266955267848793833387014759422905172664136347787140559179843591629962542987546049837306207952325983552933108026935386504661841007477233003965590509611352439104452263688045628711005581790142847363068577792719076916307756615300720278187250993918663457266617567635158210283803683209723733235204809189979112558596268752662087410810934788475194508771051139213993665595961953296660386071288417322798288579173599978736470696662597750315278871078736580677335102871445689974942261865102112594334542859663097571257405883222528804155581278777133932614063984548535666954365039578955762501518332888962043532172443062422159415451695103139814765678738810044281768306424904648389321707674092423816462035367360263547604591045792032665441606796112365527816579227942400449553496485080647750207932178607176908352476012773228714101490906923157945007428576963493405484749851467518248238070153993953900647643814932213823203676405866085673449671651304140863768732553401237027280021246439354899291331580785098686562993893250557328338821611010198296717949641987500340052257516397726059509133593773125660715015361162726814502704788062563829163076618274913709486294183115609702030487105862947532522169501655270326078372183112778362850127559620332046402673450534873184641126409038979759729817945312180296799945102706832423385564504160243003538678002276801142737540254688649711432619424280769407755319730340635981279772174479455076962745286852738908104623741273749355723199156478930030954687329695754618176907129233985614790378356588306774060451155894012366470348137830061490457535906919305119713569577491559253684283398868312597802770076845693760748567253193855249090757339808613047838347407231665077965107853306179584283070217031669467663159267185463010232835404178503432499382855767365839647742481241833450618842470434078888567206595238507171412808664241601311459390334035006254135139452850426187813849121540326211997237139053705217816240090386805695713568932544529164814150090341514162168480820771763913525813165692442718759416050517717478056253245406752641699132666435660635819066182419021800473229542214641412995381287684349709646344476673761080542223555207948342712069732574820119514259209747425949326780647434685845451507878354996340584096119137648863265745111284879356660572446800277846266279801771328707584927761678237587479827263166768407331972846745613581756526703683115997664711398704561602797045725179239028567822609327823996374116301660947331947221702237456789586022305235254931955675106833880161794373427748531335873935671514285988340134119806560581668786757151770927096190907639652499516693267238237805614336630746068908414986090656349753454618873690544984985039654015441903659695084517583749479175349360424603296547446128059914451047153295513687524194526320123348137493858356178394133738911149812210874890388709475953604329397985626184468429361389795365112503396868262386271210937352202620929611815631834368392893866679539704168783992088438060831366139199443036717511009163996054846044776201072783778594662085541986601294775758503930117318196359874697752412949818621887667062517005609978121598416803951472420151774785247030796528521217274528342578095377216185508940265902224223206220431264067109438544274491554190826445711314735331872390226486314885529277296243804622665524628665124757908581043203360059497069516727039214438549208034397518431868245299584358649116959903075177538528672293076409073007410850624553327750086625501718795555049527857493503422648896297474297580456581466436164064592359413593309229648857162000185305193242764780576159387872321966367972240681937375563361348152820525943921833987346258769792515812918329311682206165034911912231902825436967454800372555715793658751494696941214297590223015304137092609069588406510425988784663069411364090128018231615066232412296891885436887422521571819580268440689084661252903121837519944676856060412347473312686367818887905532512050242666766426309411332904426944107359968930424199139041196015191288392785580425356571990334723222680216938988225538022230430671136674636753842085142105588821198457343790425280247900487809066913392976923577672615296641205888655968228070042809478632022005570317286344130033334150558319121359030262043774009433506222122600040103556278790606498218417043987801919253276251171332759795594870409467752411245833519704752067307851968015035613617112086483622552376789090377299615638576952394660088653732360833984939555745910973484390090277440157503547967223025858196879795503363873062992863296081458342464439288892144342316620258206284548656743474335882087387124492726538358633005479403078239686593412216413980555412557606778473760313220441960976330257625273111424582634850283387302726907907729304626380227401584877363081269461121969395817946937813184837304447236019097715387630029158673991781162847085495315019231412644216656797825875696821743240283627472476152532117800781530993237225066223582052525957928510242617592483506891676945227938949356960760440170644725650638009882021690635899848532864448594779222230657718401114399078115432645984080938654162799652407647105569698553044655526176649080639962293799078803387346586610554045250978436597624157136701004056853125948271142252811820487782587724834064344469179271447275140910085980295061762022271946297934652965267795712969728891085026026093420457433296743378324407018763437183197923512769163095786091938822371238645117657435925766630282830257673357941501700840448168698529741137248864540111098552926979329408275858280721645139526206182319849825427844013903862619932460343457866522131860459088442246299896621318403996305849330441068722833517601001361745948999474366280714711525820528600592813601208781609397090079595156203749805018568304362677255763392298611640571404791727932199257050084745987007027707722769644996874774134324426087785814365999408420832847551622038386661762328960319526937834405605340812650830971814815344457552583696073001798148342491806700244294647499979206564073878632505137183349837432737358042379812879714220644234207120287307779658479444902242064546627812522007727771058315205897875527775155133645932514467320573399082149870666744564858514394343795823545010636858902205016841939685961368479344477894312818740986504325116294014662783747210854204302712531454363725660718024274913444720069133146723942370615846600968885100240776560007726371964242983858989577373439483809326956819015301466439558353510473311707842907559626011710007603861984941972732755307093983673495668513436642197695661042238987615135460579994120443030244816670943203185280450779268611037154959323182626909438618231051641520875238639576210369529312284033528120778381621825062446532385112863084302586288110907111529453065578216992360895877830944391911484910877848717199253474499309930480531688292466731441624218171362177510920685580189961938211725763087119690867209800672029204217932054722156507841513951656571151570451993985299592377741992576145122527890639778283681087646371828727163411943505955653027553750167991377283202091720405752290513147558826571407945595215160538975143483295522272851572242636084290371783897954501706756421208813391677946132945081024574076628261002437014671642408406573547576177613848030764611324357941009146829902846284025845917288820875287584173984190920879683837503148370876723202898831384741515216199544484800492521075511456555280577109445695748416726154188385836395827738920585086767896171884763979816509886980343934382746813272698008748134511748104478888251258300250908094002606543541949694704276895331668579423286996377047165319505795032149738771234199190152568947206221293615153299671152713130273780035569105778596917978749929808509269791067845598038612595806345394358461380354848860974202417916251537597804200690008699655070297607682714393740851309116777634512409711360070788682121148931004683538673209217833826832476071857231214339649551154008539925956017126427864371878988123903654342834899349574836160810890823631417001773148015200962313327512586410328777309558554905968184185684127038775365446510226304924848173516728966190379821153458630590592882681869415136014389875577129771794629560832545539838813363798137128662303578546030296556597776607296865318329031058435791074668922236455110740387857512694314041870746015229768962287084681974334229097758025716015380924767953827226708828648426745053208135922687041108184487709813052393023539839832518890263692013290041968821741036560278228545985296713010076722759442496834285337705794821431484451087048820846136234827689192402585044625827132244105709152204773628660068915134134426122497348119676338606528958018352331671852120710999472519692866387798308086964176651736096786332444645574257626470407226583743426310744598088071263116687004450172798926668602041216362478130372424029658351765310877524310590815879282457416553855333307291692327198093153936488402954202985243672573698599625534430285222435451996946308053546218060337736459275728090236512331908541169418539038916052580756200175560753571261235143460862271356589907599890570723722880387937325456718972543355481613087120877834098481528186850037886565209635414607726546212016496303409464283521658902647619816779098429101227490844897996855569441282703439176932413916608308050030756207980991578815535881327061877308778278701315832048823622881545419378649081228150976551311799842993859591755087661979375687421129335324929952164643896828814725606361295390063110131559335151508639769876224153409128856542728015313780631874112733960122222167399007822220392414793888896481009753899758262990055233595202918166336728311603672410577658038319224531468626370163166885837083320521829247775502110445051895568896025692032009945092438749832142275776325510545748361911823768278678614634720621948425349846581201004547968159659798515227192975432487921990745495624440903996867210066728839572299703090390026556280425357981649878169429412555373289718476892165148486079977083862135265886114918338023963696902850050620743569410020032577727708135502638861644680472364110094100585059754386596585495038786411797619227727292718612245033952869551038107469316865212941045614918150197166871486684313608101518731166556977003863968757124090748229983879122413785245987840606477713139242184745406942841253758188019081101949996837402701859130523052436244835082195856716159593756564708796752459026731688274848771209043114538134999757987243809438627584888291322777809117400431833390559362504843203881404012123198586238285724580373963229245092659525632210693202178701398003908323165310992396739475012816622487827782589420260581194211564527391801897536715052639396315495320494440909865219182261988070664946648439455463114433155607945019540002071072061887568849174218660446543952049685452688554988815219224584876887111013849511687115328043728649647921175591883966695491390747880670330746568429433939036018469991108387048377393365373308443763717945792883867228910143728955896472840503387603784804443601206281851918879949889915062872526125462069562329232557208507736582790517585342975630982664154955693162673635418587314954248338054071625642031476133225931745508603524505345219501275245686171462789309893664347876503834484670831011357415043333016327982290458567267328740682366261393176182454439757250684642446358676251930751774239278847584643610894193026229541627814037499236303201773771336450077415356040829347781035143222924756837404682259838184232456177076232683724153990661157536021199008427257324788458460694789005285077640716563465332500472448867371542986346740533866462558740873495233281453781228876947463271572773096399127633428404649319602279064807171297270294364741350623599501695036018418275772250473504787226850650407063271241595841630010342748376691553431293813828963592270416556886730284519323315105904239758224722112611685019738388753142503595322024190301133060723010536514225652955895586762825320211549980307726850086851837738331865084934898658649066053152940824193544574525895163742738469804504054585643928954328669639401386043084258490823823308035620441183996604131928019072075093920961105651438765841190815325366057526225512601332937680047174601914032369771319747614444259681308928114458091543918347240566043510647841159719734497781058665208871078136476809137801809035048504650738883501148128152233634259347053544480167640227418859723235828239226812932580752057702153466223374894749365656315613196625645010277029773689192747038303355831719802543212034365376271065744770835001814422433202575549350391668630126985513128498959118735667963442632502802866276043968927041681155950470985907251931821182950998676837185976135653100565030689030424733709745572997491629074746479846826963146497290702573026048902350089410530574828420868967490368164924163930372526789122154588647097465980173241122809105259235241295227436528683296961343602888271710513197901429605158134585050646659032668577389245489745904052264582485801267403699674668717115192811612858234597769817428948740373902386906357173007113063647922992715081134578491123593220172432625282548968351132848559184110538934878804165973301514252967028078661618277562462346553640695012497771463514532025508684186958340878848175852382040684395632116483203168398805895071474710048953573549232148862614860565533269238461292378483179186728230117799329228227759480122098562303167058169329661791814879011850416420047062449419575027462780653584571946823652450132043356441198039408821695106961124010355661166102416011401432822118901015054607365604348773557368844370256946492752664923607387626136294857803505251595567753656351106017965966841391130083492482501705607682200781325445712594105369753284778310023925612927344151370907925494241807663565696977727183477305728064675724927516790728175582716559731768304156229152296712657094522735261639600338305104247296526079052868830250983436969053624425514207948817732625625461804166781861471617954737033318634232619088352114658928526737578623259069139557755007501541090936797146455657011708971205053685073834084942189585733668642683670614957163674507193374499665253903405897896017287372425498388017665542481242474769406361498509712412229073435698399210568437973873587634325809108959383383435768143770353128549461242202800667008848660352366534286929505290479219650549103363816460723236282308795440852485289824443515110755747497725829673962015912440323447582738899111466458868264936390566319021332886952951344972232602540857242143770468447147202759834299041840664436093415673482289280768868594315679367978539452561025617052839310177835738934907564277323116480823509710683200986547960492143763228025721782160276437794066833201210800901390562449766953375929971347740690250041444389723198512607813007674687704117304354823704542635839814834748492529058904626794479794645405445060342502647799640450945839105875863674151666965174181488766219887500066722960323379162194340772420692993048317029330640702449873255845325379103969056248512977723023762136161449617870861547051921484227677962089729914374238836483716168630027138452532519855132172734300042019438312190851073481149299227318241680289825364180624866039622986342629710239222732520577838961121872558909880059228072209945722931236082546516365890405130040194180366917282778779298182053097380696831336096550225320248853210925871801839904549751586274542143126146235332238936890319430392640152272283399269759967225861369788162664572029854991344628116277612285711132190625601998491103106418275340863633499995490050768135028591823507211573744877989464914595959542664843723698490291667528465243471064348291578131458433200937316425946656902737372970313304355685221670119244243267221795686611753779927039006247104440774666482232322288931941029588356429587227588433078676136098773017096091301720552342654711831121597823262324391805282885456250606879437810034923684346749536600133835957695134917954905582026628836902641896815662994008873443342012882945681979100473982594932830538058704073056454775049126399840854469936566217248650953802028373890057134399427018826507258315730430236632074256451724917790798046279628889105057609879427636478516986702066508008923139991835531307901857088087636422452013389432591797176499267698582306461317615926055477133985384984604968193764512024411254814623829353546324578262113167984634605144608133799160782247726577576463222130638879943835911952008676194858806697863493920175896208143046738375386815652283879377612753287813543263867729312912671308815387885433805148566793439690779696034143029460409185510255914597505679452473358111740823784687368459588105533651403728269347734518156990732724492504771178403005843991787480212254884693531929232620716155118957900153674980090656821331449718003978031308641104491885388049263215690357163286444774627743044767541957770132187919567886745434629131644164052822556602204920579167116689471404595198009488807257519078142914489517922764001283101559932934731644584347927212174226524057033224107360469886870885205880495944248360838299596788256745441357973352379526851456531466897402716838299582760668353200668427137119266219752017679757410985757964808035537781839774979322964872292851799712801033401145245799512352108002223961261450472276647379396966893485359273986552976319911578384293852465089858950760997077648610211414394429486148313610186323654247383989028927894914327115383156093515082672101764639221470494513340535139996448246963406374419344616289886066528395590636993302949280199268225265534631826216197630793804627182329494136616894332074372130244999270736262609304359431327908740856948294657806043754379822129493876216949412906639619367088009513405661503901203715099690029018639421561985900524967612088928751294084582764571182683626932672401292457338752375358323780711331105297492188342513789530360346811760466487263331698829501183842383588042607382156030277205673096855223575664167428683902258910657941604745982235653973180242083503455132069607185900420679036892123747430149859779642730268244037726270044838753343078252807747911144235886627467165158729702975221730485680295708161632975523054600140242382576705294311675396241862574907943007263248117196546564194969249641561397434157320348759234175338683130519177946621832291475724152457594093987243460971333823017705962352724106632067207737683334820664086697767505859194218600348472480014662019205574770167841881977512173380868027814052910062011837453568296824448163921295264330467828450510531123322103281205426963189383784138528942662676416117952073709408354531883418315233843279078709992768613774011356243010287026822957285097085414964118026447484465497814939603922981219685955078960170982906495931564306788770122396415877231713039092148841357798119379963112830293922369387874132400038314740038719339856042877362620963133000996170014079918871793734758262035907557776663857628864483923602751997386199032480433258227064640326362586571490094702619623222940470423747214471890172540198977358696979503215503422237507195448639388218280634595522224629741046968144559818480845210647011272782507890059284490156152895783036611999462664037923116860046273512423942574206626638258972720767013666799925714297485006780786265578907668513360374188967406111638998806262904147114444065270780509419422941353315668530692928546988725694237435191704556272839152141995452960741260887791711006633240514022467643542221076429167421743085666377411996278838497806424507091694075160179643283935856198801225183682530351985323175810121822989980389380402025651568730090121752507316230255069073234065718077287767916481420359661403200957705824423422068786360632996328766492914884276371992671093135694222249018494945434351163926458994041708316641138208058697409613830980309630301741923236223345118113977325206413513647903833662242483690179496841142997708001106931959679358822180000790564373991686812115401502118714921392806396588358308562615547313902771869338015388457581911754192153648607235453911437565004513566936509258138258434411714608084882863266813087236246985504049845367482714481910911309775006292449434017902402527458992179968147147386741602796511650310537404290561581236990164644842009167522363840852737415441602022926752606110481355929205109341239729928352980158485739836912135658961584426111378735380039101173627105016588464390785814304519499454650524588273245615358304794423137654209853540756729576026845655882438203429458765386088388700108047514645147282036775553933436053228969217460927666840223515300566586307316396776968171612464237272587834546155477446696106615586245452068333319951892542481956271543291854117297094176478134856435289375602609337281125000602563967595308938506682491640208593137741137112434169276176459979643494881298164605754860143923843171647370348833289185380019026922453514229212816146478628317861314171711107573793831024615563241646735243280129525824955144718005265078510805784754194162013592168683872026767809181002101062410810793123110723648026878551648398134301537120805471723927966112896251036306429798129959437233428436428025360579304509403964718837745755453886334904654780007710454543986464892984327279568058868742531242506215874031877327758981734472810772788572316281109881985772073324602917055007292800155550954240299176300821154927772685855905945482966901485216035547894479072669866104633795665488357829154876294149639881155621024148952505056858912751348785847909327803239054399893522264048238956796011900041369952059827917496319048405185601973368054989591668228097434378199229159861275694961572922810085897338467530513704332639504856902694606551716184663461902095442370526187477182525418104031202386135656953025781115134242046775304547521390949486124706080745080024060484302868152051613921490391407922143641605927362098344399715613452623154880122887306465508885172822229122992617116958278210667336382973808442460798690449337955361745083417864446533238642362349293594458662488894773723234603992185851492217265583924961968081613566774608228230928287787905963371906097854784234875463099677974188845227585661480844753522522781109237738621449582880604570868309771722846127187260345589947418819636664888450205031918833393841821491193544703867839172968513491218255476542360912036190689732699830190803305609475931433547974261987101492585244766924617172157593298921510709520569273866585665702893994168119934447470402502454240817529395701789634876270127724668858315190429812155091610460067899690258602348830651447581241036807582084688131997783543770539494287218111276049476418146821274451982708658070061148803207118614927815636274797029430135348839199786579918417658992342571889341370220163255965829518876475248351356459230072233028092381411466274764777527221024842425126398808599735169709683651962260926738467012201553576033812009430278452328919380134172851726223124702699758453816123940335221340538768421957711303445905252562807468850800169371518059079430915477483736656459148847970554536972171365809846238245082003260242248184603811885053731372220979754494940793137636936667241776782030976056019921084228279137839967835855191341854087053878438075197738702288615250294614236356703776709302058219673707300154769420961439135070627565448845181155965807325922915857348913587789214363244892742240659820462106286551356195353749038530363173093531699424962320978157619952152377996672122625940121325979663656981944894249241848950566553492668409707878138138450916415964519645953510304406081405939592340372659682984634933160435675260085239679886554867210539306614793551454978004747869836551779570179544771973357029256725477669346602444640798127077573069976046167012758925742245588635123566618353721961188985771939615765689894043352744309115376806928913030884755986316491560603345530075273066085729404309763448857203198394041653153726045312002848453836130807185721350559046407645871498761329890599474455881544466285870505570158769387087024500498161496991703433204180140547581055810725046687031515786637825613482187758522808254616973643118876245325873582732104487441423271727474323091153498904693874267229357964914261958426230373485007495720597859268540406081682914012935256887122467661514255935445952870916509226124828887010737774113680835546865137867244897183382948980525856639023213946747740380552565701448146891927073066733571506947486261641921661728280612184064620106061018516290080577796648958664949495588687944518814438116950025887040645702915631479070667294073157155811617460513236596454965953814732838349493238728692226516229654317654069588948195573546209671905614646973561149886243549260414850489255244649789635911465958296733026928777709741360365249397271671834586212123242454766592493621715185569507297228537262308601752983174128169795287240457275697367934810790699262925446240251381851256763529940269249725320512798211721176963790365068666755131636379715105342005458528975337140644309835161217758626869344208422072484442497089207475602467628732163544419195897191095860081325052640410923743178032124274097240343568353856470175076199862067572547008637941732393197297186192983002428479213951617414936577491835503275879570418638830630727814334367791361578953758788856924545388520953235686113462389745465816764998582293200336411258696112901669607798553230201248984982533573254485716899340741073794820357777698165700281304200301880320434437980351645449982163037184196999813318138637761513074463204339834548805381903547771828707570646309359758022850078265326206018601099957889772437269767560372639736632210868689392523872838015557041626404717322505487834533175777063296879533721757009062049734263469070200792658281069939527536019884045582701052511969426683311664532051030754738067245470727358194274057317814519568179536295256655550736737841196675700908500083151941578487468212812198762188072820415384056631259015310286555610178146546253263917400865266371441813922769524402271583085887108792882256623240055991985639936123399071017505261634136101041116445551773235752960428198670897911760070895145871831322842935526327494324121696603410241006886845293535220103753532990255651239371101509411105958133566327614175103793590180511413081624824447035908109528722968601108618850815879133590029544557275435521093976141900468347501471383325170668773700026670958877179650292882448430105593887176637119330825792861503251483445789132583472817162222856089788517083878659519618150347300436933650466743356122233141252094383936067415189095874644181140550981167465497730211147771898397251295619101848224883637529151711332237082862616751188895598735566207407565941015005288623175321740358787690378604074055578533238591714655966321936402202220094097454318431533678467122084827823893127921784235838742846775666527459720163113046607283029395141784029340198740451593659541815000360934675492002544415348439488450861360350624543239315896693131376407970167262421260911417842529968042306199325047231337532529688855499430652708590335208827369301380335917727190747857676545169754285606419795744167827896606355561105720905653642606156002152423410023589211472217368202580676284860452604911446962069660770208023001399635095463600951011537318994368806384944450597640165127173923642360884138542035858690695669393221863781274080699199136775167978942825194534029179384377017651583914399885535518402791651706729208724090437309791696079999363456194709452341748497678747347772945141747814359956477370962284618730226844893868557314887154101188379047179652455259246432422578579166954726338484955403361164334430148034643215433762222018873143020989225723546371675556977689371748372468644594508620492777001960603698460646436990397604339506672408745656392319042763692646842841458934570382761270470223719787200694755205786605183095951249651160179104562793842410481742988611039739395220342874532637504600134940609980554870633277753082850787588219861925280945387221439818390808851989445914966104918579208732956205330629346210109567174756353260813600658918943564873248541562959202148903831339578986241965853783466128682053833725368834630860441805071958176117801130821300034408799252218688585023610798110358986904964909394624593243596921198581030851996129693641766706255610882916453268394868057788079386268306648111765135148540033261651961210866804960268011737314113031343739291995453689853184505431437103461957489191221424886323450379104952948132031771329308500946203214898908226219148414828331788086021008544840928794948948002375716473874409529154091012613279556754148810455515968869406103305601493145662428875456490426714021624945997311370650267938852766372885039762345642786555902744938784769427021978882726429120509451463196280073457943274597579329917786314679605610472261215673865895582614914831968112379730950393692868643423298678093940733568174192247829862723177673803820016802185157304701399810570071674539567862020145249771916265145806480955518991751103640788104791898840021477841978638409787914026540860013480588374835634240986253939293448433356555763875022445990633102936433567698734048951830854750381103693378103953253959713126901968501758041383506721582526397492234691928486800360237936550780218993572375317009544386772084075350757713572980571447247454590840339843056038615905853490629649401469829128416871967888834916343560605943110415786422875134073576746073390189224876909883341293042980138796788222870965059180865515307155209473530616823800130016330908341221638577149643459570483033307559926306642365660151029520238353011574391362722964806193146220807982937735382722193132100136638443603021390128723730173648923809857260541552919013667514011816562419898367711171774145277358027200185382473399077828500658840403555637840613424680026141070685146498992108720424734322499453554167306930803300748777843922145906811772826505801461067566075877557444048459083235987915422272993708878171002917052339856744439221347529567718355728785187795389291374200723579905145052379588053556509241493281446327940405724873766685341218321063630986594220192418349558616536559074253613129753749168600002783887768590102057394948332796354498365068253764453001221564379562355410774729093827002703377463730422943048470554579456099805793911090364238126072694690743036134748735341032175579886176595889406910897731621595404994464137953007038083254941610126411914441137185993149136378001371072030551762593767779037152414768001497771862323332293891501311365175230644758748960172778511119330015071003845846540129187151411691823338433852653092958801202360785393139439166294468527671695042626583330378855925248399114710669777782851198506146296625274785673954796629258795910968078698943564580432384146260636138653941749762520688947160396368619268553161281716883614122730001086859194347183543389197758695998603278813206798392054221514446873810284353269817124191869212348333233172413288987365009109888447045628488135741879361261460917481691854152502444050112698209129626915447258263380331244565344276642289407725904164150320414949403434337766590294442370775063785571603696758136762929760968759599469660143064405316906736967909226341303810552892216737089872881417983184817774271454308912765770580670357271226387803213423452640131776926612627953185026194141493220754029010482349455586301025678764165206913655980560539194822494662455419466622413577423358740858122496124544959495281379091966057365822290746365987408056122404897746381590023349704627580852053915575573961726034920521202594826586186432474162994853769379151483548846652745808364483314951614526038127388032992196374478775804653921707918105405129005663569517432956924760368569961503261097297660887133487651972469122594912701421226387686699258022749931041784566366773526877163484635603998452230938127110847277921309959358278308829288606036932881085917771607787901344182387559686695206184148911969459044657155770821684031706749680047216016248161563112196624357235650292729318719342406662124489113949938505635584001413360562562660559454680602223464747498136524184916577863130875022780996472002112098214114005234159282133606618065996893180271427656147780631171478308344140817268500549876117146687107426602269479993165557957112130771605524251778865040454377616104120023650026746733238272388081343521351558695595511025104317766213381277525381834558370841427452128725823617313071070525587435685961011002117767391937349806946976254766023991310007999099570825708767997752897692147432365337138365833980571550192975794273860330631469063749445945647717406821188579397609201824720960851421934907427495811465223747153425482500762108453186679794622683857997271676724763862521415393613107783843257079629943605076683927337387590649437008605924767660129981197815585208576050645544824292775978502594671604335312387340270442600135904761644339697599154219499593234001513341663847061248154920013882294397790655840950137970432812542596667466145405664103736376495085570494889974013788321868138107712012836870473000259443298605995529110751712937214770661822504074297346410929108835546228667973507843811128256044341678720275997728061021025979271615868697253645867816051481760974854076314766522556754514738200926839547008510669875251958468786776145952898677711424771667025185538685365213249154729377745841380791909371206637594109528862766414340124597022560785138026119590446388470362811468554309609330730173068207206128466426330990354357445860116716407203483266878167422371091866818810347409651555913090171602119831170062226364205503513683996128222858980000163174775194003616346863208838151906032507100131466989335279742585138579111595255110262921579484065151085693785530914532063183399586354969246981733720323590792094164399514868799090691784291631159401365448318845555859307400753364230795151988418164889917591173160848909569980718311102955802037726783573016509598478177075125275644147071293162677380009548523074270670297131632763743930265002875467506575702833516773193733509825822058785005211739086290182593937501794902134510362681680658173184427656837164235017832489314768763038304106029609801693767569438634929414118755807836331814891727142059103862783121168499328651624298688017705587041561684782133969320991939315074179353815064558576870239609886919808421250914990359074848577602034181463983002666875273399408762887797569139856926745891800752619208929218999007394837482994929153275558431346588731721258882004954614836032041617085369582721277655193782991968459794303571824997432640040845231739296473755360695984374955592797130166308893213321005762213915798858215237620933552602902165950288698620619876762436747815561045805417201136847387453667970637099997077208818933523694678294980014929872165544140374472026627688658630700473477892125564812649365927522026610909351374411584131464435950953764802776482304679902192710458201004382998377323944154524534653566781996687693313908211563119153247483056313970454520130044695919847201981890024831931345318149200623588696059465016881640360498182226591527812965574265048195146162522987416947045608672769465887041048084924882983449382916230287283989261963251443883788031734559567464494005701051595042581974163480255062144147513042676540160511123111739210224931726867534669897343551196031258120350794470437994095366206365661398227695050714111425588932926312825643294186391795913951165689976515904837127129637992727814071256463295423493999183982582674638147838993985396776192642885882544047072421552169074864794745754150139087093495683844848821291011302425955765268162138513149087652516880855351722719855072666124826029401127218548121637793294988767706779032426081999867385174859731946693988732961729734964956866204396125292306039875688794751496206685517934774304995145108580245699409070347612853244955788376396855708403837166395237041257885584948776004976016702086021324282290006165587046383921785273655771593591783186048223358711088467619390121374736751246443329063464340555000870140297197722968611307380016449263950574048266530416205526312675252012677653998931148101456801683462198195135709377997984410276686909442578377706551277462115680847870509145655746702182272656686195264187641470125588752293516276323575083465122426625010596931929989094336486720192123168251421055987628602952957606751584352572583137731344440145745023456948184639810339503268365218857012648153301628890372047790708289567401783025469455088772626306135009384526623591883244604537910164300465394325286393568777419298496627981993739055469215293635353291383587473855251563033705744079249946732131717929616026353666871590990457265714513782880765624358927423784628195131722452231965364222870998422137931589575206083176646391678971068241824939434993682642483549934726838073076303493408297682396260244932669372128853014831380637339890040212695243625955340830968977071180539124269139301076858226182006415021913901224498957112363915907373916617033378879627058350233103668675768041610889061473023436103994762336802366490697247406662387383231844546846067089795702765289034064801737015707309673218286448579917559719153905465314676199437899974300369867160580737443647186970097713985347254718958384415211205591035892628809239103367234181512322796173142427555041648350726980614848304971909615759893148853302375780083140650701139424797606266290631782631149497650978631030611341264608378608230801624284267347389256255099998001951882309715437807299965752466685051487160686207720407144399846711651648362788520095061524214658986860714345341989831886099811755792762728042719610301709722526915293849086437828342136639726793202806479410038339681993203044154760071246262599604806517594616751258877236419859671651943104206497820774909208873702453784544697792638397037436681445117636910330385604864646489915320114646778352031391347555501727702896232487734990174547920474312194431730265996319428214713491105315720630353810576904682182045922318878332783626276400292224805305222831884974364823980208113082985735859166107159679854726366919755830571461110866038271975339183591742445911744197753756645161827700979473871046004438385203019950456471959573771546745711038195623593175673261850848681234510660561271193299798927351191169571000662432815538312093432069216706069953135895680751763037806040064918502953735957563343656528206820521670802128147898755261373086197991319768985721166721786647031071275139111369669589268891581239540928161131818623759853092694250620181417614125434200387074731997768575534042876765104527890180303471201805459415770101599232729145262142082902471173023055138630301325425177561549768212239635478453924785173125426953583744689815841217636360682241973421076451435820024995288044393525432876589621760043220854310040313664933858179296648279887243571773561738018841634326665327082849352034911938644657638836455533756606973767331976382197740991247800844162805409995726457077866036679480358872567440257137105740854792007309170924865384318004027444121719759694270734153558983701232287896609097944842154030372444705393975088205823639476661511319493632686871107613160515204903497746215099290593039528780244845427964367199856013735125096082976630582065116000008176806045187640462379100602362394351736020379937783834613983652399824444161757829518893250652609642465184764345829022895937978014514399680951863659755206299893806134165245743543209047076215093169753513963563865360214033643573389947411111790430223702993551729818376779782061970078845576003598525969517120232832527855363709525376765064861696462560253395628334133996404150023345211694816054061236098990722683568040757371991346929735657320818284194950227787935138042745059885775002486728923839797925628973544018985335280671960024721706323652999746345793605307395017509446765415676635270153947377189650672207727432303331099562724970316343916798045774530797780163450483969093981701023767236166839857217982480445303702625870620737932949945377174376593124908258620270992138544039103653763983975004628511568244668623568100688899586595854276053770751632745897818633757911912331427892544162677120976084100604046104298618319234695072951560843167318547818795169281423159564309735312027060127109265790529030247253575639415408346810536947552612776141183589371012933435260758250021281234092593399586061804243433434732466248796146500849454952413872242939136667125032595002494532614994644517707296877648000696247608117736934211189596118177729374971288800244993838626729366471916203032699494228212495856567187626394118541426802733871150378818421275121995542700972896574267599325563441729203628145377261751172324259185406346062444457367141886975083304992324074055664228009669916504402087910331083171649669200846878008350088549731422736378682034127086838058924807189614342698489855643410452599298728616102314531880423887103690749742934567760847734637222392645055367564759686827906102011496132485238521459226639069580414836838834830960387968626324982521554169509627547055051328467507697556738044068463212215069329682285781074848425743560494419829844134021818985896858958984252263901804047073575133374712982046543842077082266519074127917715958051389412653222704751657179695453365743662427779872469928196349070836535732255568895339805258654207834197654778208516656074583351571499611926106334686249724193721545115515733761195783925734327634455685148691958502033403985387057468398489119569891413892197202568432287349876984093480693007627678007592886971203644883642606333420265131546801459930582592786392696796462227022839650362021321046797678162478817106703837434670338079074298892198885060696431243000242359756246847288682355818690787474646432384219589701366139873430577763141702194680985834954448542439970343705944714712902645981962608643754509277501752361233312860450044474601195168025367606642694249201209853782788914647074304561616198503531736020644204833189626164859897304521557897043444970050123906682261837719110989445258972129172860797807281832837929598790196968158311152297537920931874973457864485870033539335358243527071254389415182781144110458446180303631967075837506329772615299430719623206899612327025364162035625017690498394368387528342803869281011601649036642673797668513503530762658186836765211433704459834098982647052795629773990235726693413739154019923777090766062135907283950473142388859579661450551704745298371294015049307983581970305007987236713015441413891872643423116112731255439649697431260568019805767608706077342809698103637962325592422704199020177783431737207243346598347775698032477524454528025852651641357700060824363041639327036708185933196600636368831968846726023999557402132210040937562046017189475025836661656358051247215218351640922000918837868295091521070447972767111377930127849699664672751793706453443135625618439551750293068425250789159392557236635615814292649377784989307246830575367251320316044505909572083425935430531379165292797022127916546579559168340317848559739676477292682543881532830377785178179814248146478893116289598233845012924500864659707897423776712193609329540856036685920390441598802706871760890505731715151694343823992538081632875392711836272729009790284814658010545459815587142548549865900990442538952044331862061124477170289158007636551248042404303595188740012875348470870218068314300924779362718452208787116269614705904850753910023020732960985472883288073825777215609693413281676277794721966587933440735210456984773714871149023118769419954423072476306365306464427436899765098077057737573969613925741894797935444401437678882792233045856923518898241922869936832629270546107677930613463720893157029284489900928585203982636210093141029557467879620267085517931614755544447439526042268824522404795918036040176505585007689390611194704509302445701703690397861207513433757120882997494975218732728973310822539982696500080722936038062839766560362581037160480261906306187299531596610391629482289504486235488001576169670246102811687047974200145245596659461324801713232523703608741024724407680144002012616825538230595090008310142745996662118167039264005878915284217845660148980216124541504856108510359971395913880387496509931106456032268407485229059093304045976636289686887545541086664952965143637084586400459572707836953091409893470658299399672105060109651790233571790738386009953622871830174987632759435947874124049340532259309449100455563302477825339684078161911398398294393224449246965860936791676110507530415951316973587307236899781049549525384723545427801584783619920979449405965890157821305107837224877744914066876625485555093016196919332437409711985198045075395281448183917587208426124015203813121946781717012723036471804432213796433700093186443879433974762281836413334912711490781874905076598440462594324031821037730396372802935425665463163248680306565190669087820693426446916692232467438915271984239930647962425878263332631861370392903272290127011069415179234813610445090640500407297942397648833189667483130741132653051932298268454697917982333863518387311563857738834402240423573172388104346072264694327147496571098736656616775704474113495159205769617218339512888157801577464225423676720658320436562520491669652314999048392495990507517947515576617699382908533693211989900951668723715910524595737762725117866448393752569245503810274206325551901772688166759297258668478104185754546139406132625912078491433769352231941078465780067862708772305872455046773632271014605481080087270697231728032055781669859864734858213831289868673367482074630082589758459559212331925698672817907826781131444649189526439691116530495859952055034625600727595641009314827259573406960802324866113051948934129206857563212796405166080657457373817975803273296004711465738818662282573436348364530782651108923628412154258949897363524162573536843163988966905786619793986818629389818109294646771784314215098413763217723197875450610075868558354072182337364118665401663593078826462193574049030436615090843061464576085508400633182467542867902453661681906158739308455557373082092200309381804217739503325617391188011364956590232245069669546454755028566107259917001817905241390118251378408586241448742668908671420844804388668695838773434250648628083946397496786559897148062203485566964376923152500133984935209926105489567191233255669520144255267343598881421848129414147805299490613695231286036856613591066437696583656373175051720077216852757810621592467695948996863583479773149140423888049918822564272195998132798553667067054884356114634302483273135200854418718979666885721811947037359894010190341491663831674725380555828823106919424620161133859333886330742039448517983682098536595157138836007040948542192656944738906485732154437576196597322108364171063664338384077894609951016267765613657632510969199853952173202978059533951086855988308104512807925804095595129400452017989793425062594079853730105293211300904684100239754675948059945655697590441179662054296422342345074210475773187506851809481894645849962959669332213505096725273775315472332284595106180345724013952153884871158687557403549771189818244810214299824917797805459143815515088634491358056957088132401181372514811041231889136445903572999232699711918509813153179152243755251565617878188284510085369598316140522511064291136367151237727200350295193593151390773953097427257504081216019179829243600565000015074654513056635744016510483352879950087644252257964128869668742229062978397045970473441147999767471348634218783799036163107601797686678932853277983648481747464435582080156201794618896629236652754251968023730885274326305285788464856852370193277051849791328022085251175425228026198376089836177591398433178662890627779091236193193571857511154645765650900200648255710220260015277975835213153256633163972519667713981545059983847543660223094322495434755038190295963337998958271692349134166297315817733354736444758922948514799032719495624539777676251823556326638467198479702057619473173574898503230526944135867224417679518772369729412407387029177939310588085274854115689174773717039443673720616173165127904657564228786942025665019382362699992970509468673978187206068664630327143438074432568250941168215588172363196161925236204477028195594118850422217975804143002178420158511168742989143843634371939053378735304979333375107093955842612862317419883001055549317105658918564518930899916987499783578658748238971959564445407645851281293229413641681559190285234268144622269079962208766759881853679207829207373370693874945428910338791511099896328614012045501135215933830333999754879669304794462331829557844130229186390115521895324627406089069655224820580241106154077104601591959733426505809608343112507535597521104404359003662497950242637358756858226302841421673358429631829398677846852497317940188390745121579962869872749714709202034863539102336244124329386613020500913299991052239937992710958575087900410291848030874288184318763940349509358554111898449239993586376670153472505428040142720021926033612682354617805330108740445468103886621526844725458481488428517790615998991665817251153656392001935593967071915175995071496859225269430927483743601951882917382451933072784178749038821254406184205985688442430461062021964720095987805726179130021653393113844019048755876121510663757852716102802337830053591216906303920910742898581237285245476387786430755881919850311970287820825242889660681081985014918529805717584274713367323009960308255795866838582168063856471709143053886466966165620593641977529201100157692909107248821261416066439320942868149681778772135432828450376387781232170929952748847430523041253836782643181522930915827971332716800498236246317405608495611029040193567023232985933254536456590528024845330463886574806203083837907604401221376072495763283418104847033490100366370316050195177989531595795508153666640583632277493366179860364501724321581955375319365917887486018739652142465366492454775563796071261268800668014466904680573356851387242336727865375563190850293235185273530501729543529920270665043198885676833008243571386023188993595412961617387412484848901101425744487320963634797300970262615202704677955219876085550491324425106539477739317402051269861972074975837825152396077644736852926097816649862784553288150782092559999635893230679023956722421244295433941338072362670425300707045282284264003563363317065315879897906472775317208551257456143321836734264288566604627383970659846340154418280871952264642316636010528696430580457130853477365843594220136968263310325998025918267845486423898408265063288312820873765199130751960112395262711856220988636260224066639597651034090675694771047336958756984655670283917607638880362494676340193031702923447877656788471798063683108397370741700350411126156612192125335159739966656628451393123404304284703705902600201230448255442263962770351094423250371569904274488698853868001583078500638382103229086613392409624685774173549421355086852563501383288685471220002045973297011597543558116182342973761712217998435415576778484684941524653186578175104548659317664758502171434307274070344509936098944060541401271919381328501455930113085245692842923125922259312895142043005527672605433482928077420371854057105610838873794789848172637135001236605472651410276910773841875065150017638265531743042839666615086939949978931453056977825187556612998295718115660963483812523634404219221638224591731517835001401783531035857821648616280085333559477464550277974013371370902565683243341391625530265077397423382257432165680906648458916245901511024804080975864013156805078119751297341663337195909467499626895737669299606789327210403166457680522277536709103577580412079804385899500786093881136959169800008171592394154669413073062666888657874324888457031289905232147997859768310177611690539245948526898131973374404227293303449168995354426209066359042060134538056663981178550747366448017373312062864262920694829512499000679555331594705514776771030312114251371371030851774838838966528037929850716067697012370484008695482227851062880809204206795090618459340484195414960818312423133776611971952595877354613357424861664393726836045544725154788748884312625571138220346166462236978859431415396634363845870979008591021680924707728013614602801276866484048464530988382971045412575120955185846594768519540255332730304725631398211235695468228656787254789278099113574139557428015493444307029102880033088810694966348632594043755946784611074414642467649344871944602821814310858258711804426168114119575987256575317016623356399613396864323390128954691708918154003422933439659465147854780988863318194737719653433961452319170047480814008655478501614493660143955148025043066332184142153563440320381985176613700140587872853595428240125762515146967360368886052980927751650694646648232212086200178088557107059128243328087810018459597268978005279540076598474950477586610602597164176646884896347774698109164657067911100033320689213923433770632839579540009429103684546939900941721047088690352055674757687972769117939985390031470356695745467049054672124457555680868491876087997495034401722860454008516062553990593495880556622746413634594822006339717563654017698275186691526571462272464074378172658948159494466663478319315994262198476872166561248549728116263195146827423192136483220775286253242870202482628704663803757660254159547610096457392595964838697042481408876672959763347059223198268641345146490854635028025834210299136566521110668600469950645297802228709366294361541617733974875798691772634920812808078568483027025408661692267373033296985348975760562083463445253156015549603107950658595334582386441288499653338083534421948983746399180103508522091375912649497854555944476933348511051244902834891721958948913904361338101910472702499525887872009880827434005471706297096017599848575695827442128979640385042729355412358644663240214316177929310549352231632677794067949306961569256406836201895163969950163309740209060223262272946363281453360795131445458637614730828628015318436842529449824980246346280363736890139832999993324332111136918813721690151222519162510593878313649209923418990429311623682241622586120783120019709346890882020777661349000772808034290034437435277738649347628657903855594822114973984987725649415179616112378165182653795834967165926218645049655205958952665482378612161579447382589705258914063905756682191508038210780149280157640702390936891910922659663431414168531272401180080432429440727842632058751282568751402317379896419300547291464985956210342195340172360173396481822025842021830362698340091922615041336084326735064130584090634548412113959641713768198923304295996975199242442873330527722530293046837413321778294739766698308654428012419161107227763056756387483111091142505708611976681045252653859602907243578884600372640125470950665450967433458585457572686967517097649793733757756945825893596753261361903282206864148687884846598738666540944157418836820574244382136610611043288689386166676858247674706676376120474844314474431577240779863687040216435442497306148854353670839006505133420258467547103129627532237961224536006209160810700906148210708696041425681327101548826389766333035264329954343852963421141252977602069584178264713734815039139947399928568597791001937920090850040371180625682547431412108484909177156201287197003160254860576227121243880140643326788939232097356094689964292370063766455106134669709396043845683631706280884877361607309904812337447757707495006046624376110183242136001231395264508871052565167202376623473441458104993691621767282123636128223433230873836786008923063102303104423543980783713939199517940775407406194725856220698708679382539755745657714672205629390523713627344423672406968963365213247298232016215513089317670044344773502453288380701929536487319249968170034295928351656430437306360253384718461193765527928808147350536848312999527229466767708550721853560020675501376123382682935229415551992739124450470812423460718925449052691346060312445315208702405795962412058917140825778763943773138792567911678540367160329156818978434430478332465039350484253610654179022602605801825884988565197634228485453438915161561457085332797928484439533890637649396184452628901738812195919571961206283489507204188357594659851636769060227730993312346971620643108720456023622536979677106499722340727558252340246711383084146361361294966301514633556419061433176262943516718771315270765453689740895923896165867527451251489620100368125041552012248119174108472205325691773052661947505225457089731650212101881188195510751835696082784698738378384757049097495564698188786635703278484486471698048872815999106347367121589284027638995816717680256634306602922513866396696434225099983114764216361104343322891030187730972967968861792774619411223390688001520006125351765977229023179794860632083861012581555176110416654569209449877084563900221090692049792607347938969603966936048304276592634834549374329050065249278264798521226983340687225401627871184072438427344289255709216490435400203745050104728877278545363164514279989573568826950125033297301616573428760628780068579690963305328417764525696833725535484923952607963221081313123049360073691095377914866630368397442722609883033773784823818946606909119318559273601565072491782285775950478149853511903162302096241216771044595142625909341817758958460639547596751713322431245073261766239284160234630319895844504006261995157401044640213331841725960399069091672690819941326345939783870013473356494893863331958339948652746283057873134352534191368570886098217757969873885070679976520448824769685376293074760495599664931473762565231239684479737876579295254252307822027364987097051961211029083295363921946471976800997951603952576702346389683103999189268426209288125463064263236015216935542269153082485204971467800762045923520337331022940846401191763756281480896695686448664739303725404937385003854058655832267726021302079104088448491118494387201709326341357844596991506983052166089150956656803310501907756521122661733850856546012485980860397531045232425939286221506835495898183346612771629175985628852843640023359515273069427420580528518584198008137787773951739999842857238877553906152247197897893388946424893865011227763821713009111846527350410007803085920942376058404694813593811223165407093614210090677322488528933803109425654339944938104828094268353672053279182512607549064017306473100641147139367335026751199120082823332161738451497720082790857975165255373364209701244740777305091756847293511769413250070388276187382133760629919415497481274856295345190936926007134790806383429810466107894722049898514633144881190779937434049868856615011749784205785625797750961140359768845247575194476970525013210655447819490783106451060685904602345298493541703878626315626080304067527503312471623391700022100689954380467081571285952988500884342847469626796372400849888470363499784547279645473770435922792727435745414305990522326015025856838218788544328793423894905354367087277606005321191573616247867950292227529821766722758818339115345189976349164736546173093691762644151138806835406775441801381559865787859868630810061666672317033462163414018480755934760837480041683457666055367321871797947079174755079455535494033469133284381970379324437354344541490412426926743331197942513790238510185755065829248012734614820975213720573627732683269445636769787670075896391540034535758598433047431069122561411214069068429456240350141819872019045814352288393837330613506657121733845999183447349266342328987259255869587981182776635456007873909176043975927255766755781460021976331681489685787289450914214644394877442197517365920928610645745869406300005871955024348440647061799456157124992639755624109046942807594141324745773431439007021019236307913725287852000728210423996663405817469531850883710602905283128714661274488404865182893341946540216666121092872775494613810164583749570713101022129068853401239875813721835740163422357723030099930161193496213240491151584138600486684936289247348188079707602689687477793173022662633146718623742992220137460702682725377261135273740185816246835020828386821862089749267375889952221774028495469813996653546570784598377657095657273886767358270888502739774039299155630874670001169990693904130753687470353693654662473466914930443220395864263434242301999833566490322556859089826165082764810407813182430017319136961503118134288770369679192110157339420612614426852297287428965177889302073979713407151898283862751264486733093065422231895283644442069352229130600441393440812340418203487541236197357918475906476708275503948421470390158901101741414276949624474274111801182006386166177488806705634139375030614617694117882654088362062544159231031225011310397859143822326886541381940617899841241127613189271386362163897037422790596760301930723354593456849841312397231083540001142113539543804353513873094200723469287028303068231145997159842377176241701129795123814945164930301862043528510705306460871299168080181716176865058067872106565563733514389893571521504363654610870830394141184398840233079646306021154414793427087901162247464546027559861288938552071983607818691355546803937833916651119115628526522812009175181816227812845961166720119391638203410623156328345477806931554271332273435441774863690520423149463018033514469611263396638434556701883821858774548371050653927855736775677506172194125552472141430369128977275478846211101096262116675637173211376268940322065069989469238948986432711355783132041566624798704437647236785539409633145892450823876412363024117715231651862392215763311826344114281668889018943515613702367829079421513253277428072170019453646741654754394444270001179329632110243440043533303900607091342918733485338032332285103255348907062374876216247929887101194567129696246417317570633595325766322525108981793073861887052502347218692651626254452456792323333417154178936482746524005443778116795464628912449907167255727837381380255200086264257642794964120273360459681179958427524823097915054350873127757945285516383440311082285556621390316947962475333741462602474238386157653501007817345651912411348592981964826285929669003917271186331657637384616439910317396378046799916482782918769263511193835279027535968292577630443310050682242220394120381631401834432949963786603036312051168075491045841270307794403520847969005540704994338300841196920003993884545219534196130877950768655159442717582702082810175300130655010008555289902164432179313596586949307937868671347236918518316746523647070670821863969384554738844291160736877580532538198388673951901031925507252479270556916866926322857311801024159495500012786406369288855665683371245014321564074444988219195777742413478643910826761716699738103956890564425347714523875490117546285953782178741622880465655888050565375824071942844114575061951352408359445170820591273209764640681319453856407328502905124260762435075779870970881543163094783461255395978540060062601884037157060072568163657724275426082152598273384117543539918805360198079299476393889487060942255769145488946402721232052029802354508909347886887351467103671144160173326368101221570222592435837323792584855303024801667567326838420333300401394127468950098918932046779325463606891465301967022845406371644651086192517504704293744605107809366593268087681035879820473454225756262830130456506820006724430329707772401359788377192350745966560693776286509608171761385473820318164557961998234408419414428705359463812480464329347510256742450797644097497563234478256989124717436413100022344274946070208832519398792176994161617186584491351513852926417079823556282928757933124488734282420005157844695883616738836784704584002971822067998864527884485403292930381448534819245907170596310481773721025651490285328858463196518559216529484379520093189251114724525195601244321108498734563226300897234347808066400355562810350502585351623461578267935684500564723776168703881095782370486755525881624989018531573263445275172102847350451049448460206419532711702473374352648366318143792918244672115774319659005302495730342087581704681549526608144338917050039596700386532143711366392197741239020595134519212892147343097622406194223462089194753387729190248908529876989614853624542225426137043230089359831954716555948848026754540999645831045749809465886159017462219809716225334097108841453817103256511327148727328803963031298104590738202869148610841079139821056254645214676785787095729245558342980944629085887266073229765772665664642826267373338522873669296062128249357320774566709044340432434372349148192153173638623503603046467978618409968090129404479555631988940713804923564477303000613697921369149033955624294955774737665965282387753328466054181689446470713146090073601318345413415861170522719694343776589619968501289453203409081741161147925348822870303427028450415661643572053538985792545190749642998992471234344316850031989375601007976038919296945570258642069491330360622905779303005070439683212878378569557048385975083502426317662187391538514420070709982804301423113812514661486674641180380206137124352448965202755145636498432778673347521204520764801197771297225422724810864074801223619155902055095161255903636160296663230891383139849723698276081193626922101654011438631670177972929492456175985601780856341779586822143075427565863364479192597135195763297777362302392814399550879686933239566942928474413037892730338689385738603319403113123631511509914794795620628228065352482400628489242447406302223523249573155054916478918258621487859239569424662272154750598124873131907429329276486575578699416508927606276507416332369036911079972241955285910715066252481373951976788751300453711166174572635891509625516558826963875219563496725218978560899064226542851411446792765113817810991454514512941605973485031116628066431468758911895971372469625214816772667486649362043695886445497161894443092421154355958702466809677491535143762259097232173248350129759208964977551792073405545678766553966866360659219184329608735228064861468440098155820722872220081706318620591000854881476478964112422518146807220421808295440425596195821823925890754868452368458414741840298217615040679416388311936824772649898491047116246416727711617128203357638056278076218040300928313138416358773961333093914684942171946835381972964819564402643119153915762795401067761954933374605573691658824454633819814304201167705417165727859152241036788257703932385567315006015466155714219286610237433010007235028944440813596617015259699974449889512497194604997552981010501171908237914587882412109262164828520424104733325652157429558624850108385108385466300850550368159168790361856171277044650735707460445384636798553070415250312531830998195494096048692557195441348918321733850484863542949200883353381707136533870669199510984445092820743537384714226467262615455500646177216274527185574448241149668759632237515744624586197109443012886857093408794582634015572441960307801899008939234125986538576083101045724099857998619298261430209193285658000575254417949925682391721136622620762947911864651904567495358709482170586901214226650966899711881322530220922273580832219184817741724735799273379860948646320309800885441526846636145325573598967801097579611707739489701556941966777034496417766752448572502708309372920436668667787750988423597385993903715469376414095466742489696235097709000182227137510884294210203535526404648080847808645634343200987284077571741494164745161264111190277978982914287743614674620221952522804255978024945378496939402018891251327790684129355882507457145390727878485514621236062640642024725637547457042352526427496419837818158245888631528808779165925204186895278403729359389620367770321300149292960346723693121476080865196325429259830386566199830712412987829899860553402561058322663895495612841042214979567183794836687701439532091062687799030884952679925654749983587165298820777509555721428846304388335029591718215830058425868892656399217180522768297408369977101391039508411067319522637183333806564668679948394852758375460816053778591406430152492526511295298581169732863777010556861849975646982795328976198267370659779012623330258674010608699593994902076893040813028328881529072082003530653010201759708658453838132726586962674090311181097008053394745742392460283247628900179261508745172809683806340763960886637202552259419019330560219468918968875897784528467271599665444454050711199140998084336732236275402775405629571300047613296285211155283969994628601776495021839532982791098304832785626094476048417698227136539326310520198300215685762350551552964848054076625014063424642705278217333241298180926123042431648924659305098286212253105711766693648861100533927990105322326337670949385734415347309313016808088705228949031433450600839377938130077546883135197231647772399819478465049921286053553509198162212056074742344974347648264673225668549689578376778873284447198745398952042111931192175660149445531781306390343021526852972578619353929957304033160536615269996908425965056754375860519815248376098515250967500503733815467308409088702535918092639408744203015780581210892570190711370885516216115503604728721357571718386141657999594950542393182631396870148660885490067570775634859427780601221134702572238780831511313375625407979902175870168549270736042871583773766935066145798661568110561295526748859918269313652325108549413765312111993106302130683006201692748223649585150147107762751528737636582370952349268163708661829789818328469172101015530408721591941500471634371771661607970342262078886082937020025651758146665137524221082890135481002539834732149622707514931781591931144149563900771231600409615403349515448024868271486263135574214411218531662057024607867092834105397699661599235854384535961918400420266416451997349287070963776619271293519607636519019876452509367706163877803258353080867378166901792295866345303175696675938034414202079991414964352933062022086795053177615394380913863351626318380582535509559581157323291842652534128174335046402776525743667694955257092733809639097151582098582050806304539696190585178060893564055478135473618306251696247344467495721418139049271435700849132500728796500975620370782421171261506182607461052360138805446839329335477640931422258079889189373245648612428270823111014828406730584543401771064009378308364589816449816446328422163598721354829316420779948147497499447139699509826425386354271190722664085182406860458008245323301308440069842894611569313473839607305914635007560223340610250856127583637602490774696930799036908672570305711314900834505326516673624003352097622409094292328282308887067412970324774827923558461217265214248439487786211575308662687453478122070828393219447706623015274321793595089625694084220453949066984035089011894324645045019938486593644001446546560351237955850265283874816710542058974561687384429414967406798837357131977782764394791036565458232678603316866186800760079834365463408222122305239984990009309916825504609953845159607029210185329070983305199718389291224695427134575883949213984993755418804489673726615668587128069371379977312645081709847741439562722718079902809230586108768023696456470345441368296371395344397241380860996098699619926979693073013607227151784115637646900571768209683276567655848436564931999544614025376446402050920564326711868872329734673424453423583729664657558851522954191477700999217644871875055486128970277278013356839445564367386155519348844017199079177915224136484980284944666799336724524439758497876384967392276184071116717747259089571404966909743462600310783848243325416141134867009363478159459751159945525077956454927510620684067260271048270515462419825470524180509059749726752625206490560931869975891077130315895487531611184385334069034693245621022143188691474191083963233579445116242669927933554112433923691460869806900168609305081653058186239330892473570667287148760985661075065311094379249067009589344700087286259444848569189639385387495250117703011179004217962489267888047759568038977904107943664236269707996573707912070446382567879459507048413344077765088037810703974864222948418965914880563426994626661611971874209841807411060282021443864406127237277871648299222765430614093785382261594350846438767993101652254996972423575731928013950649746327435367107954446724968558899301796043567945845840901082433593896218667659356506000881912677844918248088489114338871086934194878997635718909021206230718028616731370250745595120607418346319754051433618225868305446574705423031781620579369385082050497494546249909777681483896088353449453853194995580903304730425556117078707131258765685651572014732076970827916156824454126423330193716832372069921568013747427458870143813052784141467452437712091712214809863005925014931690863204468841392875852842062886722597603668972299541048917121269933687182688584621590618447047207039176968797062589954992999318826260302741896113085766940005025381009028930385910324967237185926718186327897826460634735438856389191030476820473792578882744048227227058517969786206950931381140217178820763630316353367097289217507424571894585261891877495342148021280795945529558177134301277709244388908289502696304977664858785003913528511261467123890474391881334295535756259867789833635414960629580757018796962655212142954182583675548426158314429853162605197545747010772484961782216230176452060849969267995293242701810192547964794912085490109313294320376216970308992451764559834223354055174177841477932934636082833260336411512523450884203605127971650011187071560363306782430201796262935383444426091283058316099486958336361204682839199456472417488682887439385791169083831719554112440721469485987594005572309218118716129133466128708728775266623134145550616559811623168722491828551776687066113981415172713181036886795708740333803786942472863615455323354866601261527380026860386189297423242406751527528362731269198761377836267334106299232546060858526098803334200280814784679231721887936825625499107235105511161143624930584071237136092485321806396570415733690496959265743397626876060408317451986842066572422527649089702118958813583240774119776556124194242102115943572615941540494795569363105089252757094057358938779980322996416631138622207942659044988211583679771804048073818741936618696156969789872123455077081961565352115984903927000986547526301370960970009855960872996899422560301349141323431166839547137968199514952514142199596405001155347720952574817949872029411042185514851353963504836167538130128897729909792372093164206371006723597698470947236322767668479185861878117255164681052673163340022245136826519367587233096351511805511447897405504596245767034145995088709839786009763116310962616582482898910498667402771785034781905034611872722508880323487678545814638023588828616550611601751584903133289241514799366339315047146394335358775019811205911312403719243565227194562308601129870623375787182340498308719546729953337959056631686528762791826318069752077487908452997909553727946959966609447829485039673877375872524954035189373644417072931862998961263703206098043654137863076649596888389922877145034161225470659032371829048451368520478005098534889483838938442095009746310877153602658629692924552863195728208082563486152274674506064553224376623874352455567039925507814502772292408404009338591874777494707754141797289800024525566786328657870165084149988662662805537290030056111367281636600465956616486345346876456404067060771261035140640337995535755334763022504007677448355527526156338015423709550899761136507025178314578430992244743124360914288873901032012853463197892111144563108830832340324040530891159653268328458071748976769911465983815373370067949675327656632156830272589137334521609045564124236357275641114430735285342204301872546443752524190060226123268710976110435428370707617764014805826062594562845300424721656426670265145848550256751454639041730170751515857811121962923422510283935751996184228893124687808113309993357076118554713939893785274058107340309628386838044174226363256723460453059139766111712532786652176327830834879509099330067825912960204109919815314436271025382669836449650502752365755701902239261410069901516924260662261316966128624541889235365373676261135654879925476788401085126338956471471351372187723189320780010167131719271702270696540592209386334118441487394219844085986512057497160665434343970788429843800372792837269095655759058774496154777063986236966805085442482751233600697354533795244905529069666701236156292807615813106067978321288850572833704519474260021642535858857514354836040196944949693657545450044084008594131725097782187170439356912799862492079310670363048160288945730393920881696939132322270808284275812756371911527018518036680642141786974742634267629017492212954096219384755549572183013846372986457152570680442032769876196512509345193597733275815567526134114214399263557982446905538175913238238988403478880072792217148686245213802555658346172192887624422748807649518569184205271793211154507967009468971305065904039834849139187595463962410162466650007155372524011243858848687748900842972192949476766006460656002600431986772706193127629769955133599285098792835657647761435187463504999881984795414939238185605533285623099402548620418544522867289588817800332845537868958192887598800451161153280717773669935892737285779495385751836841783108157684632835912707087803927811087706021217553948156276112016583482606159835654921812087228346048749698804949354939621880250311140403185496955638474159866933200120009464098123033221045285277599160000520982913564247540270381751225587728530362413646367914602244057493342687957916073938247376773399764869498032729529600463077663093714487332035645892866980803703612226180410611524562954121523142702763546511653936051757346246175603166507219180447502284742751947219439265541883678841713720104905433604842284205556553219881250188530341942423473938745656894404262369793444101527697419388431887926650492096681376261303325170760410276122914852241155716863125062985887847284160225138514330591766407712696703657027273875759919190764936533934026883876203982189101665856777271051163731495019836146679374672452874447975771837765408088713344585760503596085954755491024749969503138243516226284954504082062827755789663308934517248951653075365842134406335431693225852140491392767611931494122790632453855964441068663080500663608171463204365274354073583634545270771110987123857354082122573208052684855398351217132372836079884032411502547709386208823589935115868184233193567758015470472965978941063917537837503439161299236644598881801026362983445979223402125010492501489677539668112896056618573241888925954346686551452961631905626163810519108299152458224961754575048872560893443766417536057569759875527145699599877931854050061677569814280366015295759304443990011306735031506177372655582014908847678644186630267466890302985177649357098782331224067284574844386861838933649318925404546492691442773788673451073265176253272239269703067072563463628146996073214597189714400579871109248172713313211833585003926818238817276541577249945173570582192471154002926782386337985755728156080002653712587533665057716980713080794799170461899372060312653656917729328544431293010114755729817096483908213196278301265617674622526735090471918786820469967383987937012825502182727471834733910339028378797837135411979260285414236642799456973112278013787137951524000745570846584244188722218914997956559687880955546182797732940412717917203526052634058546586597125372489347742029416246706842592432558114824722395446748110224632297697411279271193514348957846668247575450147230282984101231780063082721309832627611963185956563769981218195930803787452702115679087791279577643516826471331677445146321159954323968105052216625152504070310743309760375519114485537880684226020792785902065760502160456150173535200649665902976013870190521951709384983326818915265017045752271632648030376257803051714418094985207575523484600142080143777809482947457373950603598017525750494244534364826734782153431320245814529084977372105500153245111914069218271644383892610495169303619516795854463680150754964438185466077306086928862791688744908647458297991318475306491976771597789634812318427926329979415400830017250962730550007815981330748020598016344827632220959174469937367393378936964222120660818697813286642797273635263959674222711647931322829248803675355811075279670507545405970401599605040372795805543665247612696265264820144082372330763205562192136485875269050609358235156821480489038963737413840809727739797000356332995259877523986156035380456135730507386851238127862738677104766637489740686997853115613182531492763879524729490452598616019260082053976172281085619774141251104172324650259530762366230724805892072795831309868293146113773174378510239366431408775374909120321312330575380431177287193430473727758393378648760392246260852579845288559423618848752651864889906126632712959733008090381902482087475093033509766819328852209460873221351197729975602337714518331289427710093563617591679043187620974061373362421991842812099057484037257666405474950541087690423050251143449642094000029608303340509780306710761901951178369881502133412870778881556762456452935061310617169693815120037205933266673936277301807218249343075930323476851726236361926672360215373378095435831923692960812008404989588996236401359861684779630125989125805219062667479587514444374560986973016829611929445154836622546738451405281002077439993273106818933826390213156190168006080975559667619112329094164032133774370917896454745629454092644629207930304420892011904807017453633665847145716166409777635209340934320110848182742466354595975749841841191318185838330589527313593740228376617938206223574772409378288002371508464804577145791560340975181041827316829254764637089838577571474555989888061721015740263008453333304969372790999151430176718694239902797535611565443959493431869200639968155933104782336833051544246617137797759735280489903828881319154680747628970416758237030712618915407020167387015973021656115576818954831013110293434180698051434498361684234434021521854818778207112017058731738287603220840225013917365939933033299260927365846927671330765820566854462332724060230833113960496376105616766915019699520072012002508958320322760018514764540337183401733692630849907010740620743858029051028337234693544325190765335381217881241070062570937456335334362963880581738765714553080481162033520251667541260774395272099578707703967550885506280171552463618994875974190166438873197953900845249784916059783712575770619077695871863490440389966889822534901390518367523158469672729233598843389239588932776801070483218831018084073559002789960635229784661215836719978308111658609982985525725349906695785252634480907385585688071108041657158786163608679274682544759470302832753134568192000378540312501643168598762295266714847411185113318572870694625110742452818239196184162213404235307584257391251773149393166113654895071746163992310998202149029491623238994804228763782074147023241912944213015348467691199983385286964632940226058618171820443074322496596502254542439753611488455983399130213563698750173676509834750075070789595147153777615081409846326402422043192377293629858278992580011840762387186277064445058459597025412954285176531736614239840400222965269313056930486116901400785798347097879880943671840038567141660169018011051974749884587165805003495641567221609910116884211902614632826944312776891734790156459842675836237662923606776797056141256128351487114663656009294981947509389487556746021830704643559424369263336761010262173272724193250710504299102836586680129894838966015273540353352319960270477786396624883688114194177532678386600508382312495183113035946468983808420364487439858016480233708014858126339129215454067786406086679219829472790996971719516918610368018442685282254641206112984208814821933079513750036298222783315362591400136828224474879158395280687666958234954660307030625240856847992728294128840456393781280181971518592997138646998640164279238043767238638535832357266747323200113908049704959745268267145383301456523606492000474715196985227229063506154477685179954648470371794976492606220609231631633356112530831875435017416367681903338814446669370207730661246296679449677652344670996968261253101393969826245764482537164025152423521760562143326738791644902101044543224417680471586623276620201559284640832790891674904210429127366001576297578380656043561683241010546527724803488883081339819630667099971632174894479173249813937464982288406940278540204087655109336980258934264104586692904791948581205928206111763694353198795915905017461777362472309409696074561090723046742500905599660735445711302711886922478074576285533906023621834182345444468062373893111302383524008007191221868352579143671101000590300739215892793213085308793889826464158806598528816314043529794670566271301136716830976551752509854328798084883401829781816022280615686224115895062133409799730540808663071106841069437917455662735169599301216216749943236178084923847918374966169237038391675745283723839861252605028746204404564556664564987201035338922662420824461928766667476843610836234821412503295196482313752229846841517286235384691855288003383317247906783460485070158662176866131063028285077999152310352738221190654710807792860058607001272947791248018983153790179025998668659590181813600962812321115117446397431624061260308637272180771949753714224983946207948637097748716515498213063218555147273823665973671993068805778220714646303015271685106914843330496026968822027456264518041822536647661024339783494658585838998946779440685033202560585165710193969012517140065144155479238965238575004953960352028693668954617588512616007458567186354513567400600857815512587201084904015961522507989974757032096960882946842684255192884419138248511389676126468049160407168953175205565492713583387147011920264393174367750138682445096273195781522168508112902312533234810071971308796112209763809985608926686827441719984141254520414192479031782928230824329591590457256764418284441898654000117794684980791991543810246103015610470083767015803541519795798992990670748138294293590238131182917251937076833403452965413156516265380766563865039546115109540865208657600559045158316030533226285250214958807714104197554673548997936769473324333260285189798495515213420080915555388938999757323180613398127935587352927045871627439308661959605286543053809648015252449516888324766275788571670012511312911091766523696204164859277399437762222248759845727337035687074683460602483188443905980119026442549079718903191093270860369182248490584632586491080051366454994847305117230773616033059240936757046562507734374662664511759196886394478758866965700186329393590570058777420630044474873304010202656858543284222682370420015004860976105110453959324345400181847188939025538997482427592655754593650206963931328299020743762423556987089170100893248243989514234477286716048066552158991520272153654359401521456698668572795834963005455831761225010698222725872287835366438441015564240050996231995160626164510036009057548219833910846870402665079766682539103054847010755780307545782398094189448578902511927480148001642047772483730467554333796170000345963290366980316317822057646317406119266012497930515265325701896872150890651552297153237301058111473854122239637755099939319934001207369520792966612559909635844102781110715857774303626381335554159241151227595444127912309535512672670678298112291503159339083244525951364572710593807151597612991901870445530981587590130530236599233494075456467815755476473996465758275639057231475017223194635510044045930989091737573034716216041992011006408724557284700431268283740872810094693300030550057292025719380815488289961658101373833600787688979636231961179628376190593567139806866456842638081154462632956475298199505788074517956364576927085049546690612334462005912706873257035250397809957151151451837309724548357619230530898231649278280945703292937358144295939852781135471034361434079881897999891779176433177775601964442937789681097943664956174238424074865812805708156272964872175600780682385722369384783376164227470575744940951545590852454326821654050555515799038920459251435367391428499521555395754412259858125149456206680526818850384595757943501491288035209879517734696675097688946683506023694624708684127671462675768816336135625946969988664124321498097080426669475905898948679972192980062329929250012347720033127473462035294466902010262834027021664817132715335388285346042716823769366931954638046958473984117923561791610050046682753876170001134845939791842896996732330172576963536999610017691862359573679733998053745355024205153987208737778047361251325216132471761964239814238446442644713201383935912921082637706226691914573181186037518298142340577393233093655372199257984895027488904959145010041551333519616611641421314275906159668951738344644085098402236941702450834262591737759075126153072780575803222203860467787962892941826817586977122231708947937072745946434627568489791280989219389413325712172733272067210974088655036721527042047474587394058182651330409842953539005436751286468397004674671797476781322164244677024001119941064204528955962351727093724885092900911956766825164688186021885594847130325150461803425827351220683173672445536119244731733515199221318969276656297290571061181748926836074463513242137553320342700351180994305222835316035254650238689100240273573864738371034448492594862227358783142112645612737647863418494347366410737722926815224590223691923509047720459802773761714137730351362975961649384591183502952673253814399936245862377545359046824981629140152650560148598011698646252163603936327893154907853168044362821392461088038214671893092866548657811857963818674546542296561673252867224800660556968514805849530386793455693749966783852773455577343070466661675221150690280001549777917322000875262675828248577305661358646857175788674065529433452978770257148728623877131538169251621249788156163218649682158691127190936586504201869368487009302558967675153490460789333335895842158108647266861116627001108303900247038330087667167320626792371409760660439225388251642003015915479445675755360821397791141015377778127803436770811273989407164786576336085072348486101925042979024297611065317015876469156473163681617333164297015331512526840766816701455723247876473364938804376007716171531883729536041080345895548490538527004360432600498871697360560033671383321349701226130370922325171432074186500131633293715061335980517099309816003763645367650769130200624075721181135233039781315387341532946549149964886444796552920239214230989390332229477679702750254882090240405214005342423469130223365660304212266079634142628538774906747321509692921922293218853169379510855811450977679224506983758647410334449329808901984874917401805664889904386608263758587913625695063865430209402996507663528891603155157453247828946697040930625817794022887311299793838661830880525667467028506152188675153167742785943540661970598782596540345499713189303213125713526840112924257100973239848967034494361932119833305068244777060632401249595743146058759565064892693403044338659944194105572096039869021284828483008063719510299296350339937409205301995193525991095690828216569369134628244361503197812031223749039121401283392894375352149727609269808969337252749907375082007717210193232041886726058496341277432084928149672580631145871767992440750694623151355740144454109977283927211090276323034838435165059881414025235231112790339146771079914497131454910908246994896854397860231923720637515307618743008391301853423959102589263217396312011993781783209843046882874797451700009888438786460559223283588659814967336282209690231665605098189071569712588548084293558096532200023495473905192216876126556371677333686284360783748317941127081054457385357996249385434255221510761839672813781845571814352057403784167090022992091103087882933423278367661074400497372936623293677813433802300680316876819966066071803421598006137024029061583094120648663713611055870593136799316980388799174705956574779403868569705889742645061824277090490695083798586853869368223191805522400871119654420519432318161814087081126546634615445035328043564559876651441032357977477655746905253552619971807894633957052607096788321077349748284093431347983077992922434916608934097028386334583013892873658824634528820620742037278867261072416647264850526153286731151352546477847576288729309757462987870099685494250160125516024080933259973896992259431033199974032812360209832722572727217013487959322663016867709394951766425803465806179798905437436639858082508933666606225815934773868254628745931956706894489596742327822793927718421007021116221242860288879328592407339133423841507142380333402207209002308473621436045863457997654435728055904136346176829183044083894034811277680124827704513654356531534925323591414691491002677346409158919655400692426377675915676122432077691867125214855606932541880407289391464203066826013325733590433280976449639211235797671574380443811738315378121716724128950504850909569625206410256870786106573852440054881703020635518186870145212064678020150506706898130647132773139152445799211325103711691303716174265023667879382769971492305283064545881173141713809045101756172393976247213496478146820842818880006821674141373451137821491930444164431836216436675495237925696116779761460756007679780192805832284610857602170999812236525800029723956738775772412234836035674980447942853673767456255671994604886837855997639986076192480999905454140923329341396250048962675345368963087789934067955298545721099200502836752975206690686920602272608333035650710866518720290950924039187607026329733668775587315630221749901748610687449634870400602516462105392353595815474818129035661836142588858749206235876877025195995920913179421191440232776580818959863119473247420872262225656363603077727977544102613640898820501929400378069260963358899348593986789139614069992482592306047791984554384259383961301617020002316749750810008509366670711736702623909731348372833984463941581767645122004042409887154550260832503425528521588996620081363328490752576767783129658034330973841844180483569777931551711845921302134471908732861862298636750129976434673524505619406840711392856380364674831143318901029338301330571591489765742468471662355870683797996410458156870951448443225665612883189204880527873789369871216823604090372848953253956808646959523239313748710916054617755722739541758878616575916952022705604807930651540335943243956973830324671707482562531065791456460443999346141405077087312812100062069545264482499002821107813845761085931825962098447619615927742401110178675424115027217753606984819787307526085035977733029469521172111061357647794388771592926220812470224756493996214733032263729887503953743236220482888190508433182935281532000383768796954556786204211773345805680692648339091798849770439382445340489690157682730804161845935089922690165073373945322358345221320504744983469368063035956551978495996984898492874991958104600009724149373528010724161394403613345735286066878288916946848512971821351862639897273599906497259517898126096964355514699347790178028406580192234931730511762187858612029330425967249925294819665446050184570007830374378470097702911172543951066027126926914737858093363003942238904958579389989301380908994923369478524384261676074556466176745265026906372146511749647841071539835064885896010862627282370235242170290537289099494946434478577152797927236685647277339002062755463709615339325465322721136255620933608297627518778131965341377359436263852410986045320040573139005134475525566888958807238166612270821535225092691916944427503314050375183955087743535133712034103131482696614096966263960330835454740298930119877476916347446788276270848637933668626851757491918535255795335953275823237717044411336230365923299393038442339454292395271045719724085109055128495232073274134715718447019065880775494285646758623305801842445868703381443665438036870341781250519239443126664182381403891002205189431701648362692692317252227414825880111468322080732106210709036387947524915357608203891431883957872052233411786159186939661357979344483191227459920377013989970424584578046724977560362715314488312353813532159420296935514394588664340198225754395835953772565890956265969236122059675685307067902677032623863965785027413601881581393209199364242210938731649683298799969669243327166707136304985000078288299001262539647930857961142045421479794959623448228137184965728175441408334433333880916373527239795556600991065894823938419684261861375811706679341082340326806904992129243123491288226250011659909265998508875813876822914466952429851713907867722809813922173058092754362263696322227808497681616076007159631779521712900900761586111537999019086070848067655951894093978494085313636003584693654874417287050085248665924452724771159242642946521762372022414558489097049835404520862379313486045467820873052174794048058834094155898372153849459371032722333037422051751486001745281831923527023153548076260773063101107732429274878965438919221056299790824993625882560017449507420209118463255820253021255540981203368613684693786657906080088138669435496906229872660818445517314844274149148346726341090087429422872760681941343848244842815083777464093631665932178438594182110564399091174498619988616290114814023852090714990118850268089460299069058059347839761818703248538709130922958817303949837456648807843295731468360817837515736215171593411359607974943189974400063878405850961538384495565607331602284284214119723032776980560821345754996865033017041885359789828314636343763335312623840636527598300180668956544921381560405373107959627263423936681436384229790001822549237321291813974291245676227934862752047176898523415418057250698715005384720117782490046258316558699082251766845187067897089313469613859526306540190115500385273621683639858623087540955699896762775987253826290111396744115477357450651257641649428319673747283793248357999821059527653372494890531872083871975857905081541713204551566249278915917800401227448160739575302321418619430662691423169419209266469682150588518369796139523041807122468800518695606383729305451893608735946410785151983800477084707228408041666274403467802261466252501058783341253787606458554707100949391102787217629020817271730909430992754437244717473718307892409671276868436811141212748057462974622870355158749397612446940836323431867714310863617508886611773774200464499728467307174537025778204917562156472481776802290856658007530504545127138451348723859957086165447954994792806374618408365762042991736051350003999020907130588510667965287219280807490308970895894569109969432371646667858747629683970621278296544243490965481853928022023177690342174956667736491211382425262713113777711444023207785864855485083358054913983044289746414644897519821138881434658700846685827494138260612393392959950475430739434805415901751794724044951920648336020473657230040810046009497224600983423776124802148585753005856771411719868131069679658104131340871488402224691950665205262345497085691315405672011348024592773839811660539540373880709535802402580776920095009702055495572403975152158104783206369061187727967077920632005675056202040660129484721871903740654490800175556844972271324228862154987704025412215664711427155131836140519804183023203604791427338141528679291251058524143907636054142179280321899101436856242813064903834678492407248633226777127426830932966210074554181917500756821675500724409852664359319786367153529097977018669502467358559180295097241865533985918090065436256141354067610937746983922279417535357623670239924861410300618440050228343052816366073220654511588373195393795205102085721181564938333021531619527116061389601499917958563538438129214178485867985162320806665992612726202796220642444337348721902469386732133158407703677357285487585660426060630897779557559007973859439008547260026369365609678404083897689741244322486255745422696653977162606138696100210091457261258526499457747658734111237664822647099912496779993263083813613327537017938253626383527801180316468676884737582293246583447078380558856297503870570034959545067142265667684167398125508297862799676645844980806789136449500407545573460222728039978522225070891379178608296650281092575593868067886977032009380399881410361462588687785041515771605878850160945719067978147143902161218224344856708692076362323124669827507895508412642618987895597483017449884754377558887663970922632019028563245529955417712447756674881583752860746502293238198282507907450925848305911228924162273030492651565540048739718183037355407234307647353170938949358136211798543002158153443711897161395405214199967163843662789965471925980845089479520503550610408428154663829039824168536438893156125083386175811883364002461109585752049181758882590186445291900143636297453175516946533026216325260098553253709548278817410040425337534016830593984455069523974202032766089103244061273911229778501071153517424686936538408304994046399610628299065288585774707846724324662735388286227428687334639539609808892801536746114035543980211488889294725744943382917625303110636663384908631765155297254933923779562358712583823315721913522805903874875601868234706940695319423896409609157182033822453580447065344373614842249018479924845969083018167753814430524400620016503737818660491419031809487700169199191424819466883764068146437876562996928303739492749258640448292078318168478139808276786567893155847290229609776803205008318101674099316440552174865009572521604043607626219760021676987816174517830208720420844605184223405250384851577930028268874427545093682098461111862209959438636996513799459171875792367237242681839315088607891258938333151957721283891268970195430345678512585397591186183679503474723586945586714579876248883353692766082674543615382999383030099753494363933727851700816010685489735862516248509741651940181034739886250484686319169251471936371655696272088684427518458378161189904780847488791886141484580157961624018721194713433865534010410557060209798303746420149187876207461287110949026084798551352507869567191384098652426438553270004404073890483184337409507221353604693919367352909295774165836852871655606463389666784429426118639719484443833457053914723782916881898165612647404229249954259805731389551038018839421439338984046071343233344816117337739133307948976553649435305877774621596208345927282741495188143587588359812115760068367921263742162431518036024854002671179703635457895774830379988630458512013258341542283865983661447775641329448075125135088138255203163122499264824593541645127946616723359763154593509162016945267864686448290419551980513771688848894669690171960071418399498662455469190530344632776355141314037659069989443637743548930067320133779039150949011964392007307480043189301012632901210012049652593658870027997942013086682196223375845820772451430664836748330837809812305776781495771122136370926990097476488085726406330998085292438641625374172224698354618414339042201484998414835006109047614392034485698076134578660835726682689731942422185989416073832690374072270991106183513557461442970393649318441132683342295079896704989547232627754376866734621733744293646353709542997141945301553887066335576824052713471450832649357839115223395730803611046130037883853339063247264255028767336060039622194339179795700195055028146202582004559975775928046886157612071505461605667719847395009475612051083656434392509481166812085893403601575944202012694366753096198830913517531215107950314126630678391680709527819125854366430955279824695993803670126181098144363337093942546229283598163686200405496816503345983561723380153137274159812056778288526488017642000389313491927445157480588175052870726110152906601274059500631450050050820622322902656240693303946463132930230830027978771999872373077317022852378492894834473519517629296973808713120915020110622467129778644355831479037441433292436004485082556900482995048910042953900203874222659523160709922265954570879877125377018925679806048052310685585635292242113320007641942945141556653372518870061261575268325144463687972906228541324184297521565054303403259981527806631198541651182307198137364477479760186286900169950610990349421438493855907180934054546602857915596954258834663782312902088531491071484242570127028841124341651511572360361871753173623320969932475583171115444661274297987515184036446260693271833424542083778719466544907178189151735345840128845925955846412379221297206743225570038223321795248472300305823021980025904703075018659213578459767044462621776653782146143050954467145526969468683237214428262913573357146465839007620989409462709260353308764957335490565522508056487059752061366022933261302621860443688349910234197183364758611588738278793955794528074894479315878281891921806433760613384857620037829565994062771281443725053890602947154479330537281750195379267554116649272396183605883022564508972432026810984939377930796823229831301289288685779455770226730817229529874457981615934509767101000335088519380163812440942957597895163201640204057590194288697842330685062210444818754475609163433770992273809116197795806670885723813487490758977777164961407005571086904858119402115988884053558938132413467282911575242998668942053198177865246461853529440807751311680377468628955158364739067685219155120366951571971192981748360752694734566635035340713781682488510584414677107573891508580489631199097573328894412895129900879264981688709193083130545612944472145941773396237665729344948891077249502808822244927306727288837228005723946215957795358705004160464626799984227610763452569155029506346433041251245886723985966604043419738222585734053393037073546773280811397440889683743038413557572682738930383478688730701451755518582898818247503060191535705911223297067073372026893136909465193658975022608964422522634699079615411568152936340027792947942296367402264148882796334046443597114755965971982811164898182011184404165446913825485726511085322782258192693375406600371642362911267768051908121854507837760264797066877768358137434680175523364739398867403100628750997341096028732345335291579874951680733887494053185029262723159927276703147585532839916457039280855191759655966393601508666305902625712295351569200633956520467461081597193877057879860543423143141321878183517226035052694377001865110885123794682751191918309748126385730856954940814060365653299028876817204899672598143061920762619709400755490587763188617468633324291851485149049980366150008313082329923272837693379093220593727764464361882415891983133728623238223841424751563507797281269172541558654512842442645654516034066497938806252309330031524507129296321750981847591585021799639821655714422231063845976051621190314226071613404572004349724332635139458011084471727157963110305373698907387490816316475634201821960587872910726911548019126100063084903813838723937075986523329461910795203075424306869802642912164548879828012072806018739536060398469151480075840142307950794067414546750902090213869561163891939978570286548111131502889061238182601034489430644548965569174176382790018906721514465642380951376417989690332547165956170222425426003869456884637572030308648844950455072363491270101350434605566080264298860277728095698969259210654100638680119317514825176953840236852046675735727103399932274545263839010917071904863240160060892251675392671214951078157288584606578151817152748115224639064980049912930636432665651786346448011437078708092212381172566612525553568929728532941041279652340116392683854450249735047618731055784713329484411998422903713874815676285403296152806556015834342247071519199708599020670414169864713268630161465979355658494262205899696075142075336061259763976080896666843429320584768912549668387852902149328463853906809259665558423321955749559037813615246632696697455185490629584348785284061278662974474035114160325738440392380295963632038287192329017012454692019950433844397727269532384455247062679874409967808957104192237418579774474238471530864654656297686161214034828281663025247212865695078846525713996976630218227464864722501980673527965634840521074826097842445512380052449956479399602595092654107307111034956484570234011656106917252799720755514458377102495710702862922461011671714548749248290650300166678636348476979166463960339161273571364895393211390149822263970162621988721259288094684613130404974046256186618386309656162479230238153702409062198143683919258136011366830767149397666042810062569526290832901483299727346209601806217251415225293358651702182167484905448592596005137882943058836633600760889674108973258671630534514392706600462400860068614282204956476365608029370871716386972026962267833524363684189784154642579501574004304831551141651785208900417136700671435656338483269977369988641539866176649389795867907394319332815476474737064318334080527119079721398909383855508090594816252453128252256697225350940401445712480495470747045095983105286873857142236300505978097401644845639745392634484237887414478253834590935779182858253778034263904205177975294041039248464504695891250637138673293491600044826238897761803023752092111969277971147019703942121132374568923486134108402332115845041134783678472917756916489970923640374207406658122510712819252100386064239405028011421171306558138651770279792915858753385533550891777455129048908572868737484056625640379441185310015198478500584938875158266097302018073456941653461598778138771858417031187493866353697363516560891717096517542256212298023614945711638816542627006516949268784523606161152468947147796966722883186453495386503022849847188789720336945923173709860714236258792688582783294942032266317902690790853472619620802513995072209062745734961120767521731612486728526463682927339189163234227759902455550370449983265922692632301545816956972335443476657833639503304714328203956492673976089201046958208882201039253048822393785396262468022754886178589245878604027115445277549436408058816315224270062292503239812403257200627616176258807789582493849646466972478749364453560005575555530420211136101202625558928332932692330788377356087219033688211880200244020759241637631588534916191856779043517345868119409537952732524300221054763813958815360424508057763199773518480851491891022097408988863096770954780927599329353032118801847065034790657651251118245495807204706268736245158946043823082557348415184062368133637473155894464959884471021288103857934101454568724911438389043396361572199792082694215010247497108066254433415559209563668844135862545459183907811026812677633744924907659852290099017309178669737079880436143609722403677985074880756554199174511178487718349621962302454703332580518863167467495007615817427771623719730721233406599056293773815104635360872641365601046060943038364177565954509867608687352069657357623346751586416358355386401977364772752490190409350381468265028116944488767501642972971314843144284522577488899692060263655327622543902064459115949273228927153864185359967909190089423563071377353470729483677827943439466868012395186867945743861393973187086383278252759835207564114933547022639379191520919286867771081614665906225229419788414570054493576884739864193767101498612039144478031119312381369778673538001030982064635403792966488018781071261002194321850412455610033167765737089140509027774585951566604924001689178648702710293285019247703702419680660700131846814324763603607089337310714559351224980619941397011265995459628296893776765355848541396625279761171175813431369664152228562447963294697448315833467223826128151862368119541564045270747971899026774823163599472928769712438782183043065046609499735217271459902396475702440925352391316341076866156351531273201945056404750882492358239877668255931966088649659152740825019817472411342036168741790736585305139032205034951723715211911405344139763509897439881085972338922085621124001477631973692499360429988443384295500200872852209552130181612579237184779189575883280348046432331433049565292050145060818689537418765278738666374734981524440393963769395806279948965549897093317482877680549839301393349836600569093932544485926930996323993839376832782334312753789726922877336310863768200026176936172156455330924800945020773901624125528816355061045902159981793143154246971613116114345511603273364549865947283266328104532874044923588933609888598992663708823070380772382740498325096745492710210552616602259728031941659385396424965232586443141403902449621905025362960372406957920239728314007709819800100550498739055496794458976694914115524254187638774090506241501723892268926537041441141752592446154375597485696822258252465914938755240077566723689743012968864451610151701724713838536938783510849884251534298504863156814599720587042312297253331389681388613012732861431988400703443549261595009335429128456471195050796014647365164488286711681882650924112421487768729861935739466460479022369332115870532500651174158271136032681080598102901445854516520394332663393197422281907991989233182332662187072518715122569508698384522145856547296755065094624128166805149222765843161325995105009385923789109184230934526274448774190351620535352086718645327534691958401678222610581743845939289642639628753297613475139210203264483145416386550912703162204549781125103888468304976509350459591723132713428872538276254173858947432673989111028443223213167632957320134486906547346907834288918923575244219453895730859892390500689858929404278817102013587760784961063467332013880422827388108917045849888320498411016080629359844595273040156915771662723742106526526062317022823540610110493590311977524318457260944076571323716321004178853260642080526776524818237111067372016508480082377595587145638537356529274284149676523476827675764563476420048172035077933936073890346010913702320725012880680218219441398155068292133394363912674284515284448851713912576751614661421007227998407549490926168552638838080415206445939263421805953011568907537915383885274187937339829773685059897448444358998832214764306591083804440221251276158638151285405023602570438528712680620766471477769859879408345659424017650290863781549276234010877909381158065947997940277973298176150800713215535050625835508910969704755825991623082282753657818462875076464071676923171723879754508996039143517868670364187046891752035209656684720021921797813472647323860339768647894799157778141299581266792475010422982323982955015850224329275979321956515061568879858174676081019082780746629494582018304051416326155373170539644865948075147146146890589989528708363833190770718132821425802109106403187883804487508013136784288780386424821194983032963674057738348897828279253207224746218296785827085145179299437689457646391927729895289683015023407595168020740991290860120350381600456417777249841319230587716000285620452899162219752458084680860737932254621574113471842518511842395341285792667414963229149419307031387919103626646748198320938833910161706746334249264891905465648797351391538083136957396648941581139722370426327341952281876825359917845038685563096294439688006299027930898019584232300685870928945851160167118928075419077599900033003059827766589412300344772971638696720408014833064152460573732744379200470901979063851639224064086202723775358906563785188648842560900950760557525484664562482797696420364211866879864424934482675536180818870839710710540288499526733782074633204743184257840043218676499174312778213613598013149569120017860567043207392711473100913032283072595850632773712561530785739443435039457086984275617209624155846247770304060483792548970873209960248406780084964303450954921030802269069377775677299522313713548775678050353250628896465031815195309952076216578342784271908421719206278962847416379468101137780265827114051062820902447038706475985411826287412389398266561186427152040440269979744506018385055056805916538542275324780115263409164411191414698997119734784817086025752659192668224668874512199474333017050041368962326461827945602584150565164371468557629770145748430741462761483851498934261169301325693785136474544780893714879097413696288165050384576210507386484693612080923878396691267591827921136057550205318130888149593404690903000498496130786882326101159377096346460960165692836118505012158550329162012738223795861053732965749521719413451784335132359578390563626968429107681025174355894707839780576068272319933159473191239121867284923179572194106000688952009001641410953706409839623770583578466276059617644649788127666503819381232469003117035405256043159883434640613433460522779222540448436018313104566623802574479711797758120340643232649796272059336406113438362884480362895529751350214886919399748400873113576711261150334753926113580819101651584827773699016013011168076914576651846423597120445557931201199280052038222637343946059297318269436570539128851379080091627887220720865225864184974954597835023657931328805264394000101849238503657716732495468659642306851351553682642033976614191387192320958700398555655758662389540338472344245192524144432389514692815134224336131458093172737743483111966476161253052234470625622357365486748315317692310086149685157857698626311532087807415275816987738187885419515853715169075287113498418142484079570940187714447910391597301430409289677124652545053097565250260348989054382051294672491569078626787267195164391312281988502963110161666151654178691542087029970414702712291721762245178779200210437710278673903280284738777979981318282120513132986107467081062187488414048157586839519407610874372237937950239923882716644927188045148410072628209209734699599390708742267446375502675229694599842842049679487231826327153732463569237341440481262232710782783604094291285458458856777748891158006923696039643704304825646465101261272027081762326332838438638288272523704142627167762740959254740856173649668207095357496481618040432943950827287829907876813752195629895532298752044706369942088243640357394102555670113052776517179977451671365880863011839797808415830574253988645095607894777245885409307740649398061004322253367354891235620930942604634601764239981664036869140402590038974264806615338369253456532465129172066781477773252116909270079111211561197868105221235600367527437298937116190857506981643269525796787937612142488877833940804748974949725547779297092839652172293634898128523556894761721178865274255569419968336769373371166559216489041319029211294669055092292905281222116353103252768887796553410101488414315073860510247457617808682317411973314933114026778912040102578863998296979619083800138293960818747178505305560976312612062526462769240525567003664513614541738000131749490050488600625352622327771011245300767013805646499802067587001477394394303230971457202529162490825567651524148927884139233905966749079538743233655158250861334203441368574246094510408627774224374024009595135293851001408932288143191707680915303317663061376564303431583640431908040495189118919129486252211249263327205605792200248240566476363078571590980962666618647874737934152302452924341381274109937218567576631185358830410560029179325289306571061609632244505652344069119141091220546363465807842610963561541251906382586370549009978762013131083822384326170529650186964601961362350616262986664347335716385334825568581527483896893983396957172529545178716126790128636447083735344344143194215679573924641277564285880872077999343684193342446704885829224206651654691060765206968024357263357118405792482877786398378785542904307280686372852760219428723843648048212839878349728761339355110040919186112544973854833426452564505620632486001218086900660487904642139081660992292461953981488022483273525212138335017821417972176341314105364253676180662204220600089550043897203339319483559204065223191963368719469075167614322389634593727372101922806196023739094078634039646814507956716986655159872000995599439923822202603955616211213131913883652195063703209422851497974935245027995106052749906971397522051859449371864999333743059355735756078706978560317104941808710551800813642550245671923142401000746225967506928681461375146787064277014486020583900294422016345539013362545750382438816115865072954065730712952740229915520908544329545165014695035668927265751482701366537024761709276888595220792295618441713663408088150065953111559517508865100244766910646212851482408181582896098360483490653607255874584289026824857917649933281349847280540262330398280413395700888143429008051533261095313958088482802827024107906748095521373228148776167096705165644091631556944281384087153229649006522927264288267888374272016471883145890620944804893214556028312444495611846243639344456471974211034657173913346526695973050251517371070208943661257475072953741099468464029016828695458181149768230421897558524689458400585563757115354857083846696861744163141468381610822970339081678727012672388816983464971985206057865304167397022152892742206423922058035682577013764691915206215045816711492543073702654314540757239687972463473751525207929487770915888067152106008358900408214640768032030814750266502172019070579839896688943990395686476095222345244612120912463190198367014250798016488014714095070205238876580119765502116647915460206324117207046350734284481039232743217468146064880715984141319199645699514095295134532215798911662366025905376343677876178642323790301414013042920630594637336748457622390344679643687387545283543847727187850190323388207867457472192302061587748181124611159491394359350400943822866365264765436355079026597961385543780424687714623995862158451099499176047578289606235009218889398926990421559603067621061329760854400457460739707583897633794103186211994740851524807062910634314510486575487891524632061065922165612111656650188871878917493724903078499205762220779188140314396872421344116544746847288225354632684664819173991665226053802362931792327342115519122898920025755795276972574048704738452690783522820703712337879681689943619188395814489968757003647082525154965234144045265955483847821217286148379179714501303356941808086373125325372884990567216667118523166314565665524441312221676559873232385709214117862509151411139497699730182131338751360483596633408487217556215895971650472357497287772047313259704371903397372218383932097424575026988338735276705751267865369966160877826158181002416991315590438427129673023023657618166446201164976357825376335328192896033982601460139271364511866244833575251502384935392107626118671203821215624697524175939597370158176668754483512914584527715447705749479813360654765784794196855364648228815132880002779336907633233803996486679405177522079410110972913600774602351002920677159976133504951741389198555538510782581700992186306196527109385673197918427510813721391538408349566667270923205167799682837804836019897664745317183746025983072987569865101878242929931534163382330721674904369217650307639038899024624267766941754212160499781158560259980845275660496731747201103638796474285853772692681044327482786162597486235664980979177988130210648400994872585084057014425950543708085804638976470035182737296298304353163389790567190678674033233855009061071448415998209447920101435313486120352501141061937886954932662480298109560396214640346224342682444931235383903220889155206747493608924207407626293491713673467833975051445059225614599313071182840309395642370020712234857236888667094707846293391970624474626390652244585022203201443727188227991200505825186151487826552897448510256698043962074635441469296127391537470867949283520868026835231420148176236179609158640645779909229088784636032270356990932582174013454246973763439154594804883019069756617126154848370037504489617152655032702934369359218115742582291080430087131916771007179435886487044513962512030814841329522361893143074415379579217353002904848936617084223937006612142016177930796450125264856233864206964678656922506611743995188067512992108788473478039609230199051663831966405395548625035628828986272563403494898350214383208041730209792051196061897452816232745710762994656914003451787909580055202279254274012040503553378839881396538565616978357009836591754376635166091002071393542088343357780776544993608265173139925124523805765821290421426342796091948571356017192901221690174883351673429464184609586121320937840871372495203490687842362515955028761790247703314984730110327262099821931791245938255248992476382597509339381589780596241779646561137186167069993290314582619356581934391083462735443471626847645793237564662213366401278655317201652242088861857342892370784512995788822922095832517574741924414607866676458922197313239547257010995385622688457776158289775414735382114128982705850943127002954850003120205453009561361471176565444766310824268451383256128407959147704064686442021726008712795618567358639411432145887713126705056764717170324151505871336419475559671112889869766918267840323915775965879622976456388658105037597559338076803291205752069396167540256711558470142460586909056731217907926287751005153402915068261854975022428184835498125508111815979977964688451987862686402850839517859555649957422658884657251917112841826773835630710363856243962321991476929590727705159987025978267618089968221408704707337707847563685379811790711457881630956005209916586847759261491115908990670462876067674055815064576285311362147252701355145999695481131148059518584629190619993654374711709716819030784977806714625036740465575920074981160477711276888248682116320511768338326830178668139553613274644960059152121549798073864234752926471241904476627995719932906703583343408504806656200981746095995756194156425416539866961548939142337860029861766535074316987337892507750061740208802238923309495663627490495556130479323642904192669004872558487749339178522613894512843260010858744964805983483655802726075681655684353647286121455404392146344845340179513132543772592613357933019793461033704183611154904384725638165127906254749985625409198060022053403912509838420468835289684795488032165240238133500770924862936382642695580428224932737137755079234456361142614115725192350443035089223074112873128953364899164682498036912985130453547189791553794789213161459532077172788030498211068225546808869968969261256003174938316928229644267982425279897155333711776477128206323591748713502054970172713573537579286496689605530613668000766551674049255139953239761209508744424924495307722641760643500384737301990497645307214709823498743334538130124776261657432231835472832003058236959334383590151402227798886841516020940927040147859419667042427035980107170317018518050470185626884140925336983987808882372423400352920734549906197101739584164519239902173238066890731246094189643191425094477991974287079592500323445575662273762736499405534160961496634503400917676029724371032648360306873743026402874863072622901996040354515767972828247196162128465253155595669973489700047719341958304705832861757087470533285923860291850030475461830342836375238250878638913860090409113717417690162671954927151124241201550260357240721318064968491261900262283481077065141371260759794111526804058683212937308482868902666147433882622407859190596152998661657788247756761501593316358033564219576774942285122973514131784155346365770267437612853681076029089223504526837242376176249898784131072193059550624315544771772289897127332150580163878185435126726644921919937465424332579080549906781371549371466514812098641975111272701899317163407476401352615877543079952668529429925496569219271993608053178149307535264834691052045360433407268051379883281008308758237448825725501836872660232373046957722832536218878916590734994861790652779700365157279379564853339885218897739893880662047745656837871776166135249354795835245927044671414476300037549531642802329829132069833639879111965596208421689768738050279950473027827961203702691342919563138089916857295255281056670581522534322081940694149814676450239808970502830015506095878090436390352119219461146232044133113844478901931403679954403799559927323101805791784192956446660765182040765169026604682053443846697869021902687821875386847272973819486450464568288157996948022318207372870096577652733578577434482858094128785528187481203723098110930776765710797079046874461269577483913676327020452264481892676205801549993486431676546416867578740401614387988328002974421635356335473124791093293714495539276435511269200197473496082088484677562558464199649204047933891712032675848951682008202855349975500989396755807721009168696490919284457524545556065615388638901560606330051669372368327977114572102607367752231668937477705924597030428782901126551817538403726721893628239402375115172443136061526777811737520729678478486866305556669104073684012966203988010523721712074501895666547737508564369781280997130986844454452642890739386825303780953495761320547581813767296718502382694815026019614492135158275995473148361676719374357827096870320133247849444266838220324679923634893225176424718356211717935381537439397144836076762101792637244124708351415031407386084514652146346070863409873570816077352991481373224331416582327167395828627062638626416448675134711858165248649869858105303770621512804244680850602021673051447408963385452863228068178510142229069264214022361599576810891462623654144450022719535881911460314154607564405426228376814161726316624331516297523537269185026798281242646594029798228610071437422835787076021489772106490284165989716866885197780317180721182134874914809110539208404579514930916511800987524334594813648044226826675190951806126128600447799977526591770091134949752369303591711883910662645358746267484363393310811213859803462028142646880702727662736312036275998554449846043452414913023451231008571938641374893745698726434909605787651403226619748110689118034194111809518594574549261399762918977798326019903128097158391489745697546543383283810736250946276609713862188453282325271789932986863089889783871725590819292319343509111738304184907320969705484024989371242968917842167658231686289023634873419590741500348622753973873879884955485608182881255432825722155937137844446591908661472065254556985323625325658270942551404629133512724466943237536161575727038259171355565731872104162049806311782264500619343627280689733000867653511811388246572455300643448609489734803270760632008498136475748156226087828119041619400869260442083973305559389892844641850011372222563892825447311156998141486271213803824309752893374132420363017416244484556551925122305757899467127770603884459431523991698321312572987786603974729485200202048893038296300577538502858190245631868019515171596203282045328735820947655741378609451300837224189774440968257379979776446821049736104856379015885761729542355822406826668483600810280903772943598765533776067113792178614955153993953166160603977664120318788603469349170194192479522707909690953637532099876572922840967616634995577497830249568897705910441523352268072924676324088074770217110177200461431959056321882023045724135825600549422957543438953055727063723970125785046235692257625633368244260093044566847635043612724358134693874105901846478616326834264310834252583411293897392924912265828925451198960383862574380590494454527086134948545832763646507779023150316894876354474900620842577393487638952011606159419535465406888938121909204580471846120871143451028440868312514334131242639351879911981348175159399063584799878030084542969382939752492878009214573894585592883140304547929171736762059177681783907526795665730427279809388460601981071032255618635257803629544493741372748128581799404453898224091889984007371798845991993339105208118753386414393554291947958217950107618496582020230686282987734585994989716053838544838447888888789141501211982740116159889216103602651004695792710916389774075591457520966453725629553339018885158272608196270547469116293862003225000910590328141709800216443278790283864670387454448528219204223610371929922688803096823577599814419396695432196222019209942753484937380995756422257134933726119978775781305054608862074717893917262497367167690919199293645676261519535796435740642511525659604605246827690254682455042729415303192531684458309151462160680431651561876989608890300807070765056425181629585689165827844116389253408717350124837868109209217322541546218035544898138296880808196082704951345922749345759427323669328132999633247463967526372722999994746566370098333416705416274204980545467815272664192340239560495310857022644797732514178246135623956943402408524286645218468233235327094016667752417614225800962230194310943607338538710837498476962305879119411627716288947837603435551169539192636232703511406051616334989785140423320028882242533388145746708323817247191654020035739778985621644535295276011554860046352252215612937799389464676410334942750976046148047602169630819372697470935482579834627019790588278175597538734061323151366028685052974981463039921514193316800256571902425692579849005365182406046714998569397388872439345435621843824509082623547600884140667630952206569813309243167511645509092018288835615144023265767610844546130950108334308959732626532306369860325138589903309710093093925383906122660089027266391573148891050399738346627887275187903128182437575197214983561010404504452184784969559101729385360880479613257994303846356270580932061186793616922366508813291686389130485235596378448898265688823908558709927254900363274283849140936620595556592459555929715130225927267698074999324258200796113021889620103245944515376880823830808317001497639114865490957715547537077245070226534729295861788623999812630931913402954041390740480569831531834998435231893533910659282676648597491294833541819853503017194181311021043529427919351317226699962851288562870035090886062815284566693910028101522310288018824166079585370460664496629974790395430229635267692844166651472777048292897167266473235730673317551620301081317669998560289846739643577120532046382234590902952358907473221541721946039753187032272442884146734302611660506896310858219357669138230105809810655831909253143991369261685235185621980590549348928998455228038031194950203913926807245915259727698145236087270555444655331185639718209871138059648647746956072180373005231283200988786712862275535129491579972831217471801107261150577632343442541113462559498439610502133443832593249741911326966981468224697828469546054533981581271041312475189460022239942051795104691695810677700077074587925726709371417512278820866296163923880434348083583191944173351909871045100778352579628277970844243583280445747181270323351339414473366300705906403881283111357855358681368141864934816212164347720684010899349167929877754733231610129954825971492183509170239690154097573726291158956029199977256032583749686986020879521049100770145964751409170926892003437234322726090347623194012918358019607469774170020094585477380442427627648427769562737412370389983464626362338246245596952504319502270164220771746011500178914924496403639847990550120816604895762109839109706137724433485788312770614584255444711809851151629280153550701294606783172025615268218098828969072343899894018417238813728756956421589879953124594034269682288284951702034169194284407411736482811165703062157220264009575088365440067676824750533700281581809786322568287171977871563547888254308003308052857919393288327787946842293211231803026397291024359777839651058004347193994761595699739632158953774362173683321225912389177450533027679359453127233767351221576154299879731306878665136335185774744253608797555824246065564667896521213775370886665817236330290376810127330685541544634122079704078950931931017999235767991580967114614072144271645853081804810186638064392607408606160430811246616072112399727384162275632723049122273910140813340251165300018338808459958217415660848989729077266137070282325804216407226586604464151296979522986122972020359102900712234480561401605387147232437091151691541717305525809746024682743083731401285218642854407931913798414696770508613877287535558546698579743395310701395913907695775165181838419279790020002352386138204836130870549142641783469434115108940185420643023297036186602989396005931533715803881287899162667456925055938036776820509039395627108586140992222011704605788880840672979297043836143728563345502470224111090796562122988414649180060898551869539478718002843507359955330963876071275604110961776777979270090282821816771382751427190864436238244190419751492478397109355631671706086862174626741269920665185924692424685047719114276629924555617089809463989491183930551603862944707876865052720401070559786229884730000770276224370032000369710780345843637190025689715065712165167633569993906029182092746270950630898480799830151770519207242083284572743567773556529385649547779734746626579502661417942023497676142478904672370760580374677726740518883287093697537396256518791343043571887774875460968198712029565928222863617803581599638452833506447578314022979778649748222800267782483944164407602583608601875725596568113523563780492574501566137104448181850513433343690779419677554109750771093208956728076442492635756009829200739141005405974723820980734115179291867145300714405443304441722013286584467050027697354444762950498276680399953078341395101600098805084433866833322769925577166853254171812670799242058625074459469548291701947439042396562180534340090342072140988162716346412295661479429716772506043938775739407967261834417728281363927327796333349471720178687066702752532116153692347637453191453040489394493119724384777374812262178218243691213073404392493270050912040779315513121724433258302652160727558807226208313598177319569319270507216889670018767609048042981524069796928264788875742798964542574535992075247160941154133818265394229693758792020492401493029848940223221024780131444344697192872628640265539086164391237082819444517776845169908566684199816915337438222926601133279607582457342333632023771154185688975050856011739934422592448849026073185428337732838712456656473327920148621448318890756379023788297482434782685680835340426171630069615076443965017883850104994661872949866509099162709882872284558795772073978566796148952920988351457784872817199147330637270812173486081069940233270255004250624486242633345298287714153516783854375337825703675106411876107045699700047793860242275513388178181086752584844820357444378303962962921747586802818146295265602496815001874063281941705232631349521147413177431211683746455641951477622363499209149966237194257090269156228829023355440777013630873440121004510487054473960787739169690848309664950445754585452285849764020736773799182138262913210706208761197083198949039933944724802434790232022913675593368573413967858168632287465006262240053577339156716043911666919851477531475026081791595194779225916636196287695339563792092200448308872658698078767275733499737450855809023710706922778346680214811509965154933640016233484903977470328349986591366735450254326018176377965571309242727279638305960382968213411354197942361843686359004044496811458461767536968225900382945081000836267263937165570109176154285323587493351728983042965612327081533281484698203894043944599299136033512411300280915188410280168514702938269820924162344093124578603180619463403582268228961895025566541685419568112894724177019582210025908996735961677833627884821102736898582787488310915904388960184965055915937376047462962677143657006956193790001853177116192993646176936323907567837491365782908844315492627269871871157879570550391136493358785260359201939271168172330837411379951888235922260944493868395715678954579844699074023309864223921613921529501996759921886022036009081705140443414371974493248325877031906084106572364613616125741943456192944554667408705535700806241627547840592815258228546242115338816806833384541128615084922458262927197015574087222267920184726779751991989856584876292985974559423754213070741544651529536491256024307583099824306676550218915977635437435355603319321369673105213042535425860392366993852092337310221438474681144129596915304264254140150299160245331098441447279153554711265864851117308445080105486867593586760482866797932698979926842908862142312002497371538419309835685147770757031350869668273050681660664262572071031039405889182000983457752364864358778129497094102024770781662097298523024647699963855562451914943882880564825582103280629226257592570278374311498930951603741998210078172531066640100261981502749939351800661154782036496336090714659567801101629431744917285314926207963019436581941368501105291888104688452776691034521814860874770678396944914062520802480670865276729814641444635336719729093332338486142782592050125173430697804095600790900457555724851359273676126556462708552532266179721841478180067704113365957747817582370050918234116631277010428239195698774806937617191581279208710229677881748127858846321323375106490088752811344536983122196568568993161512146997183852214239922376069238664504906088225857409546124284064285751918299681355903563296270157251131659530424489245693800423099574272761074297502118957945767052685053907756735783416158909949111115176717041840660664418599378579759267955908229103059583625116704636771408400678637564869826735268527021047605803132011422727852271547740374469561885222320121634672543647332841074338239290333472077852167656962750753808250018164283423418210411324923680045834183961801004686468819917390112168122434094617949839472008694222268761164566593143540761158097167750366687537052346437107528604864367026402508365499761794115050515691057299755685540191279009432242308529537371907560642183296502471569142663026743396764534222135684985924855794278380491073743616889088026254663981483825959259588902473006412128776863764122077239291374686794204707843032291877374157520716833833901113597375489651446225742102539540611783815783476984069423913504822289681939148183551038229599760199191897139606874746275673584391728789600572541535311306538820903331103590372596717650539043081503708056951066684568914711358205907350763512272003295636670042936720067241988142952285399935386450687219245500389964581421890793916703754189806689002505267167371307047027539182548430962653762384997325060499856817118261502819957193818467863220351251568038002666783660177218651262467996002136600474406862239392182866219100548818424543737241766590010931232777023422858074125392299277721271684407465236019138467670634984857406199656018523239833023711074034857132218151729151875713793455286964837637021256316265390189827988903399325133346172020180896826237288313778443508203337287144122180258095519229988016706484008822940425810793416068828222716076023295634404120008387399948335364704904148770467550371037730767886392122849446920859502250684432454431297188502736134744804960854946216500673644266372919648285683193415973127230844822266949445002883494229932339464535801157090902199898260062782240149261220024872661826723008858877035015706909771082262850110051520102308238268239554116339872611355475486326802397142885855349517368737240806291638741641871162878895749952980369097401594848942949744529893718092256062919521952494285618280760020322885471682489307052500787534614820634339656522221599420191683449066876920718964151560768931421268879542850964553784149580767794805867589043240682619427833450305821573396363486987583252215541794522076235365093585997072088067202191237483676348507864178762642013125642773053358231859009907958084927926147625270540974947284367924799012166844055392247594255656561236833662189587122275848469648343241633558431435074642071890195734333837358726075075678029589324670280359949202229156964391481736015107646629394145333642934829530366369224017895374187458201913803493241788805788255419563855087709492988518812332487197584487092991240865869164022440935194849819681203286461380694243710504419642877400809791166799643079779089541103807460312037911637195363634139404392035238162520157355165556920841928437396632308258301947042730778535902121046004694327976770004397778849898958338206218701078936049876871207275985899691726614374652499936247763683349296048957711692278428383792612925061860486434813610524618050647314770715914884954139025533721540729862616769918500814801023927890279752066566924058305787796625938872943433503920363475376048063947887523624464600747320327272146592788389522708448572779236308624785868720976664427420306961529890344357376389521624678147453735815492431150605172052446326316557204640087091691478933938261683383554794834016106227762773557265121859268238000991406892849290160186751635393537034058776728391502336450557338466123978169638148231401033971903741021934892460364857799967804241102826136680554293920448973135907905794834447494395967592567671900143982096359643293843474696017519407228690829148269697817413527410819284565003406520828516420588964436755337344518351817218381507112719766945502101485086094461491477655966502691335138999710013622286552465083450491359611120799444857762635520794981107741438991560463484086362007454271203085469465353480495426990019323033379015811267459876492040432574820132604285396199194079401943004164335445839932538539739218302557740611758178027393961615172775591371636293277353135892988642151909493318105805711907536182669840929130611609723713994825487136179187866810727543457092117261447500307536303168208837567188730304876965350475841227425869612458643523814898557966935924735201710320382923740760361723493432582306418985413111063109584015216387476920475014544230690130374533486661235444197528133022238262706707143877027015152953804148059072844793802733154396776882001904864902253501669969912031120217199473527413592945106931196048515392323993578839974432021609005122873945226406693827149499904899698264302667204350633568059979196171185296394418450633120448705210313797400052666630383229008534851831282855534934520646655701712024073138907689191367084468532278391389191569251955727336885832153144057718515338436483778807602864164601072680518506907457846770464974880556923681092257591393576279969595149640125842435437727352674811368148948449678388176238851806794804519799876580084186545168743533345161101921114855912288382065244176554671725206722653041878740080236422627583876417130958545991156445998988705804229031124909015623924119249701228762900823451033031636391880851663975709332799977228611123063996641706509382645076394974808502861532496917513932083332545333653972563409398309516228621639895274292725011247546569071508432156238842350612416854832707786383700447290694408849541526323190608975479227860236423188335074496328084459021979978629474297151469400690020176194504583423497520548120660432658257928081460944841154355095233065159977959734299632530038644268229827709814391172380484963515753764811785663548520219926043113174944442278745336565914261288722165213484713440748004822271036799603989800364751832870412174647245894503939684671353568041740558337927390170152542105358820180248078985946315422881596489109159472819888779859934685048310018203850146152660352725774408751260032423312298785230683267618225846317274120842200231848297224747855490322427788909165433960468063549944168785353706330307720648496683285221358631444933815722133249334448693015899927569428887520786511104275279161009608852584578793706851158308064788430074218453189472248589621491916398749173005952141686041755266953193740217240114825513260569181366613459714073576733471223879178834436677719276836986680476891707501994559728040256715163356209990112368002702302010773256711260030526049221631437958890559195097976676013326121519115360100161765870364169223053409965917871640705962517779657333643340622806612217695484776250584509481178189367456905249836655041230392748790011437919518647584866885688794073417466307633491223830527045898537219117058625261068688682892353461863688761313827967625948030330850593091112267169520331245503864823472307818255034498240425793071462506673416035243081545732027920057110954045533725050574163773436643139886004909835956699539277514320322446370305926934619086668823081536233752300943449161133934507037327906982675130740958396772004515444722148030796564813692787515973393762761840268178506104757684416855663651316981775579719475933256244257238541323756746434760824488568575632492026722467849827434878451239639251771276461985925639021490221852270203438909740407389640133129871825663862226819415686834334584985941550979433621310648267101872518041091169097537375459108304784251683779950821469561977168020828681242513575229737585735575501522377657710227059749192587644072044185759474593576170604546569114953236119644939821962684670147583730262051814737846171779179308953201038823010504394227199991701724460300031219272329645637535484401515217178474666886197403215891326648588319901288434941734312246503395234106621064859287526358409023701526627811046569397981374891885545118319932036482635097012012328920877724242448535432827300095206243260109802865528947914233440099998436520653003072468161828143291528793700212847784862965085580996682394781293282322370641003710543115548984841129753453865574483888932874427306801634313276076602080767560511032335351530408160516222918291602131597973193383786655116326163665559410571877402762337768759304615819170108757007808026627267451320752074753945278960516747655828261695793288639723624941674968104421634833910135643511714089999456850309780214468173370126527320156676316222327522724288565206722000889874561488249470983325192753981208222937258799453584023178309610171581090213580380842405591779533702955087778795815355271732399608246995836792412149386367482019259046930879455578417728272977829795903163304114563096822907218326359898724084722570635132411580017904754131356506816682696134171662295610715809295793043099006777514592857682319212235747709693991343020592900985323527594634458716781076939489759980886623449737639099706752907222446502117635523020622987455378577908868560292759102133133698996533315863062267118955408568720827451386620642758927701629056420936843140087009199282246266080765010987948944433929668798024502768894290383602667921369686615581596943068415126999123859664408008769449324174932111067346964604007544354467031750508136390278977779667137943192322130535396643686827056744893953701473554374302041666110333262316599496031570297379615672140197488707297561893215658496056136250458355788569382923433497371990930704510509289544601713878085944474601431609566383318597848080817453365272357091070545375074945077528403435237378676540545672553434748118138074120954368740157211378965625753649399301665871883766540156027460714990066098914044668157545935273007936221493005743907389252984523789356221552483864659658358236717606964776690540830104415591877864771893432549107413737688424899910520115098985156125215944490241157009186522952296398855502722508920515690856489662536921122989451840874024173224746693321811907218327043451856271117606234653938649602130838001833507966473524803982951362234161477527013387597456044957661987496569053151578598525418767665395394379911337077372620062219944777911423416217197004244398886309831658728145745907082389270987591435046282376652879391809719235126195677066294708665847414587315295726048988438867202212886306877566572092961405613949336897627542214985655480374491392734037114610702340052095903333740819778141810500683883710486148640940060328433614088307428084746713345184807387547470152052052827803452275539767694681572272940939117670719588044210005454650847435128202516209172694007553033720785682812493693721400899132568534711833325037379355422159620362185289434210380812863834789113038624333400314285322790315465860646199598193246672680962884220709738701978787489850203458285370381603688671787312801498134882033691596861176599418963680933168161593151982404804208457111560854731668403254036464898861361120702693458910077926739835275462172073075026006647461591609666297576930417377890671737590414284071104463170259589551707394511560274878373730742318407385023161475798345732524377883913327972050462041982861204509722525597007545388632163304431430794747771615332044921754093733487608179397231837296719479337601385882154207824285647125404453153922658977617815985042868634427151787794442213215062556016663367551900400194213924146998458741238488372512212650932014380911069639867389403166638708847259762107968557666633489155174396885792036553895889534595390142499261727015812816449244429723928689697773437885166838613958827969584312054674787187979322973859518293956971692296586028072999030125802349514097232666263060523001496015272846711892699506606750760172496194166756289407288404526322091523835497833831677688603630189122953185195902936740745681250493965613261497154915566534024338546943960449810251692965096961487879679076578400605296401961576892624740582709851471215870624901937003404034230027400298919894278163647120212107907228871119727959752464121449353548841034882659412643839977176850462017059681156412290996367436503847127784147308702900918241980404647716319626765775727693325403425166959658949215624629280901834387948453467326379576079567497612517859522304850774223473285187137007543366442227234022001219943370934282690336076388234742429477315660451719849734802072255388256974010842570765780567331019143252035946206248396005459493784565121606404069116084336069804519221982320493949779051095909172202455895350379992936686890280462059968224894759596307635945850024286811043767719782273087529078119707515580598367970011408842066434985711068145176348528487149126620459654719142797695352047566539354963823225135988571433644522957182345463184869762585119830071297171612783437463845529596881339335471775059311460423021685883346403404781935916258711884933942694938452615808582615536322677545958408530128180345424532011118817871696587611402962891268164531868085114611438437826593987517436170765131926274917271079947154259563289220048536264019089463692282568048354102682804216393993689508578769326253426538278943489006140713073604335931963116720915827028461333259019387087325357473309562287302862827016170330282404597345554371160706409023383778090661872189397915760770801745604415250194116881603872578071795312606899477636553636063854628470108009063799404034908196766402001012022906842452948129670060727451929898899598680488267047034489049238164178326123721816466866446371840641330656358189688753492743839412260452848424563078948196506771329139728729878346848639858248913882029136408518956484072451077818256517586500014406216059887540260245279881481819327416028141776222193884660912023021415747702553892662222022630810937786069456618844242735560084030390146122885045100345784023823121526883272906276567754114255189926226580943533082931520056285324442172271053891494484167074672983833040849875699247425602165197429229578699320841353412899403875363113291271954049033923644573709119830890929043610981077422418983500393686318617869589902940671598915715691563828810225025009556271276696179737962981915661199892693875691272904315073391482410460585965275799553869526736565711228733455893201503770507810433719916627568316947070849333302576083736983297748178760198646517447683810692479245570805665070093574043346649882046842376498328977455836007191911346574938484398874601898733065023768507417867550004131482880247323678331423328198905384284898442309945176863101779875783332291758251246466950827286917253034636437773242057289261884360373619213143204935700356033962302719411394074564476410704969822066217965359454940844148391254865832643923776192406228751955426419446544304361096719852805707657987350640755466976010952194511084977133462701185763145478566043186425976596078918339462359120014419249989385393317099004138888310708028564058145073087222394201151176035089510385680565900249721600523344925493049182451562910211658527733322109460561361147407630163692815523330311209481772772955786599386921711565686760816940734059396383698225118494425180979968095977105725271669944383361177959561718332100138727949151656966576106786854671217584788793137390320552384987442887626561039841355417897677275454429382667289129930403552484798590972394382296130078106041076452226383378205180765961316526878079175430445370880606275665541768490801950089469933429881268811537361663364008834488939846422898788109914423604221509702567998709763681077065912301551426820704266982801212537207827975931538668669194641125763971341840879799336023082866243048969561151441917810785375750588127036077658310666237452793576972206191227620941473825464491068187155873634795638175777254681160092825237027633995001738832506091281623962998374188629754815695709172683048900412460218975582027127260683640788383604781494077543163629679454873480828956831427690635367560420319748636092732366116117768702081988404568032132823541909580996915779505143355111604236485517351413808203752320830069569661115668167271574350405443870658316635497220189317092118320359814929610761592862752057025055742897985543139097124459626824959216730199096979062478290592741154045554042191858504383582222007929032869270537152724326596726428498861330807602293248768514837973491166627685964603395082057551205595398120989789162965144026142368708075359217389977076116655215124025850436458265111497806770415657011190166617342132580921360843819962669530874560259378267488127825442227347351160267088797108556609947254181747216612463307680633920922111861269196088930426943395420162532988574310136877088049052246496869348519531517175773737913414433305631346549787791949106205626772109189563360205307378730198028453910826629403274931825479558707832665630463658202643198387203363179113596587093690395688034250510766700902425873160871702252250370590307808991479810103879213423610568063199081210260357894146596410740782613614723621497473036839113111085577047733481941795125769315171316846150890043456711511486095334485290531090074024980388779396597182014650695831884972795437916916289148152734791654464613151950450729644165149901283385809964635080601532235464949383640146904301624711034167792750773942355021145637577421534383806873409087720067326207950223180111811024346523881959549229335959177365110519515937858791204720180236061789687187280959652226992189724371400257743779922866793640577445674108142830757128135678742679044247751608977404712344237808029487429548706538324301173334628406227960981014700162563329291163667962402079633621637047307792025692644729642565834128049276589797990482400295982482235824769495817956649843616029616265876496529444362283555540549042173671606617976770153295229078237756231836647147184377938356972243007776667986594682181148811098668342903593866944626647218279622223485952290532071313361020366235995216159866400734707670452993353711721168806381795343581045998348732255947384083000463527840053800630663976387405363715195484903484742489213372725443765378752948951593641395691221303875952564329113275510876721904185028324545171344466802453306117118487200884043562012624686309190996783722300008340915305295351100914430376311341328956781030012078510154599084213753610403064086635059178442998003287444743564261425810179786684631923722265836709949977005027374322792531119362786122644045719129662424278190981376785630042103689470599137378131107341181987067592109481396566564217274787136366191553277812085790345592622951270218727564154778086338039221955215626466002294846423584944834151185550380920246423872733982984740675316158154757341960098823927247500143581919712242991933124057577206488161084914528610507983341737091895049436957938217380526943751140283977991768585928364149643783303697958713000052963428902019442449878215766345940229967823252483451322648592609291780934315610246452017046472522882462412370862686719517368016916872977403721734553411387436721750397397357746617463185496720056244756753536665245095080333162113504352833304717854394089368040434559195077132113958709180384111010104409412109090054956424554073583116014490610747738607253759884060842956708580952554249505006833356484417088759031198968540986635027591948795418664233854867095651728857719809213480931629864174777099689773285120554184624103396066651226077165078368014285554240843638314586337768602266213619354261975869854565866077564933954068441793086449163722914343681060697064573509745490025530428744412755121608032294603131826956694295925905366029502792004544567209399434307449832750653808701439154345034365046960596471823600711411152626591061323917286342945395994405040881578790016971163982001922335319100245853104504463164475059716155891221810799984256811767055460923243249044462822184442162622236069900771683623682909029727154750464362054257186811943727379005539974699434068963503239203306299390500489029297218790583217800593015111080455552195811598035926078980368298835892190079889361802098016858467133045383963843126722668571201244861422852663586068881188571107458275284151133173473404356963443827860152477462131263691852682411097955968150333823951285629265668618400593401007457486960030569097250322451371562717770913108419595126585307140215468922980138079308055325135832665720239127656733805407903833151322676904830538207055903825403893805705556777705493035554401798706463348072988538273749739362143230128399582088267467751529872464676801571206447233114500091057015157954658030846102519613376611350031513042016568390896056224459165130974368987487851563012451846686319012354648219817196928004193036021639445220430974375950206463719663032196116621642087273008389833881911052859845297663886262355310238593182471291310680381861061610893622574504738390011069206845327098093862059383366317767998918050785685542337519592659993362188368832328650312244265174104666346018138745267315895388735711392379769272390331812251330465405404277867919483418157155646811171217677303601003064986186569007485898561946183015858850556824359996830328099524085860301829588328355007288864608753649719819314166186815112377921039440136346950317840863111001517727952700912299348641721320662348953292662406574401282693617131096406598769321378614044969187743267093280054352434479846953111893101092373891763533766005481343643160806749211015470585405061734122891584586926630292664886094674053132584631445875172180185166492933975069213506173672716391942333683699124216313183150321713650756526886928507642937624109700817021968922535591418882036334786591708864560915809225053029857553445335214983847518673297529901838525491629646748906508749911605683563321468414898973346603157285079598783075053248212586673993985957562241231155224448726099484279697771193179487682081481646201304110434328104560245349084560076201816659531565950353451379742936425682878909552788665880803504411709524939290008718310566411105423463965053769557742690855813069805964984278735132152196760075726576480341180544969529132643067718984744111944139202265684664373738533852916049671223329053024908893233490647123387065900935467566090707864125505063466332317206240382747504697885430914677787099077982713907288428611792502951943423204125979123918404202848461941595702183281510290204063415985825265144106584127434877739548718680635127442473454727356823983889505080430484081825823324840441369236571830238188615702409835855984596324901327109310075675407264852216222859234572610244985969997043508762450433233026117942519789501178953277771633123266218339851181840309095414889437294897578823247125823125498930332854045307937967322293222695172014776898412953701548804864050026096476577185376416181995548691453916912690975142127485171510326757012902127553175425450561958213018687869165305324170646367117470850831002214807302268212381139932064036742907491464448216144205195392458543342855930881807804818914628541701215677861996780553388849455265068212374083507246041869014463283897933329116803548007363935047766988621991036607603344470259971935223060597079114962650836159773027605166751822417219905599860819145977762659308730769611224586470141818264810417973073094872437612750559974013455825109339745912486651199456533163022673773413505429133050003405486314180789541585305816063462198442146108871002336464737936337732870322235974199067508772293367967488674738024675544137929205627419039715975115277022516656976298570105200830131477279323520960262770501319870520727435938790984405084704062478657417347181080217831314420375111684562021656109540888333355013540104167627745140768643105353485716769198336187811808833749435079935149990927387572788531228473321830535707359636614457498456283556751836361898092161901816742553127034811917202131498840529914863051135231410970799017067260616643773924389374687008517209691761011362357761272302847564155789095603884515178590715226961583098217311199780210036756747145540509332632577643547178497694282972373587312446443857067256354844831328079967431955080164588950541690054358600442719365442498724533471050993780055259073753114417422925770379194639503598548374630307939732474758429152800088464394383536088072952293673593577759111949662021767252222340634650175166329208531771614823209527885897508112033053464535195324661712123985972366229641474278631411931948007291177103560621174314359393760293269631243736363743085869543479838097159736530614303098850901291824445005212892998010595545570052047181891584171398243999696923756836060250078584238973573402946693181917381074867883659674677189541282700155043431931287138233610434011926891496603730436130220746566040972314803918035615877892169249298306433122669410431179002870188000013075729428107010052679820748478556270517899936709633807497413471524798425108755799094814345474588731524098486571366221805624441291764061577675892512451527582268525668528568754227212815741410411747881685123114439575268952495566126871768130626452666972999947138800120580312664338887021941720496142312368019353200827138268809771620928942198893078066827705675663264004559796661273568442051021349271789163602444506857990962956414588981505608666848005285027541874282007232539114599684195158116875043760921372293413594500101030005985442527795287973171742977475739551263582026963703627873972147083157717553963847632582714937050310778593262236330022942639314032665429883205389071976541106432264464038815423156651162081168895245350555743083118890696039141579351750102853446335056473718548054037073508038540703200761911530754438539695437472186730953002756802271728834875036802582497213288907930930379751333441271561187990275404530826985030973032339226658348189136137944699483293464813294325741898374863196065340737546951931062593788996756709579297536864932358021611649042875842383555033511647581809217743732816986823750932236192527026433924004827500989396240235291534167597184661621869300722408183200575206720037847020543742583380063500668884070455890965099342212496361450518455056382446044201021294139289640475257667086093859710336053361630188891139875853708610821628613483370201693357400927476360255694130479273994143304109120722329912183599013175038531352931735033299083202783688647709867241683200514040545887889861033073555051907116336671208394487076473329965635861844786485152817901281317300177763989651880211352968187504399936106046309073654730456008598509017348392640330879144238845382648793710837206039751634565457805842374656329992130311039713012979308651040617850724723650020427483315202372972743417832195363777528079144584839524130536604701390649532566638474867330219500860233205753439234427233399245044077437260191233890615391593182308333139084563537691844399402036784445012197382658706324722566361521988910412232215644001663134749192997772747611087362304538910341675248459495854104159380748350101809851462702462147311873155731923311670477149541550101732626992846356052651306076979980388381282495967008809814156763069429379345732938653907681316194782287246892224343464832592236353531168378944643915929303544400562161879033275882486687807428706235953694612954550488831820665160147034378921074335524052610007056099589644988644457912294706973671645821322370893652144381545926057243542411311527898373984869275025807094547542077547275715408957587829025752911205351589549090032395135046492982353385311324855345437422236850531110901560819735717841931522534502452129813055336663831032522486092005163325778986366246268160844152762425918726367919218399673013160793870843983581207519734825657192382341126123102629121671747086860256320578130920487453946795936973110228592924530719757183741168558326707507773945685863140779862792763915552432401090856521302267953852531178692632245442586223150344526381641226241064019854252727388919476123341538295646920865894408254645126743429725092106378517314706125032867102494288977735572771802879674872530474059925197490526214398024241756254079582116153605520921571948447742334910440390704802308420567289887360219427946843046987583454659262705235743934253974812735347433071178523063323921561401745593349162360205956324583105952777389810205734288304830785519794188275057443625566304800309812734983458448916882113533486849792332127947800813129981030235090974090484590471057855118957107043286108753131658331861523063537465726018463042109319053407319605566459780320423989830957860903604559633776043337750295305199778209665569395068928326654017510828917380620400617385168955996319408742410770575527112043468097371796879127495129249508968756036136279471798256975407600705507656326081419994753112200963532249865842322919015944104028104276432093049599846805618917581663016612474369142744957463256414245823539005925699978089366513487894743487436356567918934918419307896536987528250839697354000249090498739063236621537648068351964047817094004548590814659509202067518739287389472173279920265461508537773053628241469247185263915780847886885104611136867755405463642120641959824638767143031288880591660796424662030421299402319068478518718913498660118666176134319401016151257981111000178529207587320843846255218167872342592268612563526199293130685257465943961506372743316572456379939846819302338655774096229514792571939488008568366949008898326808317231112830752758898889984713314495063948193583097353421082475365163490745081183513904833192971918562324540155278117880588786715282113020071638732003525791957114502039770441478722265789230690362213963279763602546287876766537508182335026870950649954954354803430240274772269955907367180995220512017928402766370839251073088620673469359923832098225115277811927243320843956733172567037848501226551224964922821968599630234764355675424619156620935534842270591676512077956274140338333168496204550678978661626194110569236889886187212423152694632731566861575739026470723622898987063283521499656282341744361796343867831738297592304462641348302861312351142684579897919532156244226005535757441361542332480860790233983420152008733990447421572945130732545223524261500160815906228360704564363062170674551636392131064894991533966244879536823177766326011256050349215331037725674647955188597993717122148489381859240751813896591773641086037332752103111130334996217288174623418735795348286063437439885043572571810480243172644818572212184215351375122020249516645812432242925395547286929332191386299555610258853429028434346236618112937848116684490402132315780726540127438726542576321620821228670166706555983692581671385507555656396142808497555242641263245510895623051894462449871144132412695525334262432468946059705368492934115691362746146227390042599008441837699465371128098331270011143144619105041348664534238820052230284152339332105195800038508686347689383203565202808656321074696339551402201022337031748075265970240048723072576214096958172248844004743168059476371926961837632327758624332948698535743970874092528864408132851095039059338052514083103491561070908076787175065934497461899608408072898501763778446466817412345098727719373986524394111014233464305293313310654394771642532051537156239529049838229328948353972547708895182757933468285008414822524519550217849708710685994778655688602288440051425205456601674208367519504722175835474389140147364644932856387911702088699465728201231412547824871194717805153866179828891381948683984134017995962079586307671335587595538300478309954509781636319474262756291310723406127251380848423107338264098977670943490637149798361502925006881847944309645972183042686252684376247601089858624094767302933156508007787577669374878961177917031335688824518321799467456694855770941719389199509372392897522928261641010357815633415702816968862429236523597812760102748417140883642184880131344561570823198255799659952948263512620054343177576705889349632892017815216938434229859414856520026503063414891000915641561841210678440533960099287623142756102732069199780429340787125267895747337469810021024586234182946065645876250099804042635315877615027952455710739749092775537083396066249165634247505771446535225360806792680003972556401414448327255486938851745451318459493418832239384923925796240119045109724130846345211664727935576424974024069642887252004393357551799634363263663182671685711817528346381282567803914826486742933375564374506819505621330315054458001965388278850835893434974758688102184988398055379716380744718815005601865269743595176730996598628878632103652479728114374398264433044274368166596323590195554930662968630825961709294287030546656633827629522356409625211853329082098037177033236254257437932510461979669586145391184641996667451415542355231178914039461254215021130436676956639790660912785610926548665260385068520069166343370248219356500425735390074264245713470081714119708807011526147149612666524048138175913634674340071729406377165123025816739880372454966056732943693466017405816478274749078087072466582291429173630042860575394949469862234730418714129320336252120263359793557111105741909240755659466567290548986100604759788403351491288242759481099414620432268800478746044397638863724839038800949696083242939138240942446897107702557073393147434844865133609946536361517343269758106525438288459997474517728507775947116231484829934536660104371642789661044956515618910942364328723116501055708785157236422120469966137365474572008531080417089603650562458242458249784888361043967816895201480551534906143581870119950616024028576512955462918635615575848416242371750401060299772471873424526253719914964972849000753574744735870151381098246443513748560666799895373147340025474035917548787846826555810089826849331040419584640857225272806563464320948275174057563010201173601434827555995930856855445956093088847005053248625064998241080909864017422741212156223694650856370708994814255000463952179856046111279979251813003298042324618977458818929349953964375085843542602458160340761155975556655770897208028569341413166561229968344952555464553065614308221492374786304134119400705839431778293157992505126098795697734416326176027069657335247796214774713176562498983028929891074185595467923630054020153881283822641076504179829301720899812523151406474557840472691201807679999259142572969224936944931164443707723140764707028894798951384948036317415194252239049651686205019743899120849823319465721413432417104821586276097959449014184802704645206059146704793581347765077804251079387416278666157443768873737115830504054206524267983430851219360658106796830419719636570132012733813107206774136161968220223164371015389186832054763995033881302772692388130731324350763251954728423268132244916282290368345777137821673618457604986930432386662292703184495395158778212028868185599577542384363249806432242860750115171993809625682363191779556390507439079694181493787924029687872292816078610820409920399528967816025569101774081999855193152950047125164722773497247659466685493907152010162868888610854842664921810740948646438739849946689997306448083031114081731214157285848406895345183890287678137975558876292090706659924498539145275412755253949997821796883107363379638455605090205411645884221453096906765562652758508101781216577660427741287824185702259408953535743227127777223854313865744044184890655418929230449423231539619308470018519868803483456857604402079243206200226298874899405838973771483818705878719507862283135600710105700167745985419360776170297654466699498972221675644036959137388532545223813411071944788698674722982734498296102492479594138785949440119743389125872386466561541614014355678035313530558288171366227756265544578118370182279007703865087457153578678426267453789327609303598551282382262229690561066761440449793893243540725712905231718387693647595974875314203465728499260248118287317612188258605233253621459604121796739774583602976893915376364702896899386324457917923758720267736202725462454552463038012186234322831436960389002533418365243087312357804395477201715983655575855075447282504313512579151758758817143398760956282690554970419088878649468594336985173388283447412443424722358253977219349295332563975296308475208226608758119530895874428345969906842591023591581018315559843602079421386797014182292968260779230341622102324051412713526153445860378242831807732742103818849455297520940158780802765912753871170534015788642214693982296308294923194910788048885982032680989754356246507584297569879501904947396161392144494099123665815965465601891806770229546526827318865793224069171447370734559809167279168742785901563493871496570477911129956655514603690283487128554169578597301939822892856829374609314393043336763099928106585967974288325236507556284424402590991189134767860247142922917697488489250820940615700283367224281320282257187558684814339763003269099974333824257020961417399553448713511451484362995996900713268096889936554619255258786106153899455729237619123510234018099725233951101528312220957222421194414289705837345500561882402930130272881005753494675780910227327699165695142577019616092455834891599778833011527970780121271763736139200939152205844469526130084841775678693557304887682658670493596429587306882457168197095471202849828087478218379524079569080556041153496474025784352576516714055218666372072664146990178247727147676728025037860777154721578489739827743923493496756853149735927287339132999451508302062110697642962406663119390368782525547388198284696035538886903591363121660405237550200996980228925017603370557365750385319041422700820394760751759527388983004793228967313670805814773360109176033710211981095688797021987508123576792971246780867905043675926160385628100028327658766150141197107066306382123137880655521277527930028517288580549270767893460443517070860840902513830486312985871618331694683953324182509628273633042857878537781921630833824716478669529175257948295967282097572985540005655112728529323438686406512303951638261689953456600933575726372931731516883123532789176806478804710632763390381269964767857379441417926329158549388739679203713554507991984213800825880018112671800129854214112130267138423295149265466456867725464223150476064902150597034343072928031270887632761433252066518846702056113571387281196913203398135707278855022955293523611418516373298720119187366052361120473389322368922671495560194136475109257772736207966829035582175084123695432266071949291156489494034143793014975759229301309935387833442825971130090492332753608394005971721900316941167708823513940088534997024784835883655418936883769050137534010812914842324876472541945970762998819488803524637357738026689913853424885745224950964344496906149854045682045054800199396720309872251291162225329916169811673297325304891780978460007161604906899498871533908621900814624829917890754604105349452876099621824442353829165369353857316909567294963558927714543540229304050748583872020553106059683067976535200570936140778814968271695470679337117888219404459769619587432014253438133358311372868061279167598576585845616668924617145073759240816401146132518303539178318056071619357854925620436619033651004115700093302404845652800941228635295740546784565753456602561839288590921000503104983715505729270643756853797752722819883435275723649433541764706349512113498463039096440929518687680154582268850049458986543367884839947004315701562214995605105511563049002935989465977323797947379838433880115770112942673598973966424646067457119575979555105220605420822390952364401327448204191865281601010706892397887832400604131124220606137477710479672846750572266888141619332855020580634909658052677682524241407643039974247566399961485801715229551418096211136587007289714901745757464883538190367214524240016891274934105453096106655713357966751072205139445629309521814383048165370549663857056982070316778077531070501927175431432963903101925111309171595636252535984118783194750295619406113122894690668866907550986775503285117067816004516705465609242552351467637233207028444187222703211016919428320760139529680830516244204318629888741686294095206857939545525420431034622695099064037637303392422282162735232778768100989821412612398201800071411748828558631389611765891724556769879373984120154494083284706297694721100531983309419334592019188835805980530400114956993904792356103534241927392735053618698733197007372477806852814174498836759951408140280746747397860361930199097601340385944502428933954640472737480974480406137614912245812118739872385752305387699589570842178700336334572196289104115230394940073294056486153435815375517548215160865113303306234093396431899988127326373775702781874580755367076290086536750370094873174544030005087242746970888011029209604043258874262964592628728553448108607211825316039190342199815278770256522370671988934333847670898440754508208030008344603627329673589011734202082552068974151380710038469893503525764602967516263250328946701454635829112139721744907434914674127693479416269386940833654345174263083356661822087555319515052048099247320665283493279012739594228361287472297150294994971892792811658912809865617446765743348653645082162742988542297718668546914233166733226296652825459046669474570096967105153643960796596180993475907791452456536501338837548198678062166791189774878996900103139803995519741005550707810334597876678508802999114973517628774167085748983147273726892693339647683909071962283846925633545806848838355282462070028200942043172711648056173440726069567395283918837108353282238454404351427805298076727405568778598127001848207061820070017148704976395710341532929375377731352470054739959397679100071987684219961029597738471962384579776539002014740181030710319590974641333579695067960903847713264308173176564358281974985792745940467176605909112820971788541472063228157883133344871303590337030453143388426801354735320888958093317417793166337744465074584517087537235852648013278922398884229313189773417695311866274787058161835324182137153893103560339868377574285241247638508461396719528196703104625979437288374744053745807510066421660377469057145582562827956609822138381679628330462330847809611950180015012549161686561068605049435448685125883125638569446938054403244472767233282219105399277372449258122275253441975362072848530722597478375565433987406325869190854037700447492107135936890570629358836460359006664210771715494987429919403053649497489450347951691591106200873170279888338287832491334096014842054362172255682502597057637647197034883695318310214694117720673962454631345783673846207718199355402678950916481488535676998029948418377845728295541891591424786541650341153323879838467147393289624018028722439874415210576401730218759434395065766844952671991710886081417140338296109728783244272552522292686720801420559974421334126938027479633393621727768009355868050836359892800605917837923420509363781062946421007820277785490671709397921088022447244498040918743719298654594252480018652370897892513410846212915181113537585156632181621127730046050820424840801645235146080911129666014067524356728269641741779336908583355374230047880312400124545874970163587574347723445444632266172354935584030947917055131495487305930955984834423515891419345105977366133629857957247694359698026626844828154162382710280462871866099765787071689611482132942751992452474313968597107128418505196412470979053394708013050603937618995203462026177741648788560650006436993040446646610384161985114670384001295844645283394376175373062146933867489878821326577501712520301580048178571884521167352899169576220421782974887205685672989287992468546180961406528862014051437734897320230853402055725240132108820528763708036513634196536318904980991824072933484219768208291842303360326226996519274753424764732969527327226890687829411824038070664571266797286729251777874316722781457601900546626974081214249977998206689701216420596667535416255521540494215997309100564894369539137551949417440703429137475466894524800962099744635753244528832995493304216364366305927414702204111464349851318827158783131868792036126414576846267859989066461193520885885817752981683212505859672629238496420932278919089519456688107322655877561514813320327105223646137933022348499457772029181102838392720305486059794513723019785096033392962804251413275496638623531530828547669233274335193581413358750234223106627415344145976348129445551459232625291383916545000627915502037411481389679663947587331607398116862068348136304539428356657858006076600716027645430603192242969422241007218609389725536472551169265946839569553825430617957435780676224798042147894349615622898954864375665318857551019720955334421903693056159614521731090931875853812286784663771093931773797995294602211258564616947657987732131359520400530000165479556363150570942297835116455705208525553574177297249900120383978951349216296077361606747821025541204971294776936393733145319068737877283892160845865295710036262528085966269376803324558597363560567085988617427191038406903820934417171609705067909003682715855313088961420933288591602929098344081945937858627329638878078991691900257854100884906383786252585965461305049113810969910453101768075692446439427781600575183417632911771407405212987716383972317139228413063808251202152783658037913488002367520125404348170101206231629721927960687931108157850883428709247671614080090165300814117416222150750232883782378094964526405719117800228129486090305922954291741216228297050398354625862924431096905516499167089350131234904256361113303472629151901744988462492427060174933874153523796687325404279986982279841183783462771153564313701622401794575149511179002627951718926312555202543949209459668585867347620670393265791359169550018565417361447627671023012161150416981738152231324802013993412281669633698224463936016500404185046044402898871192724853180084098142151582991361352605906464336909537796573956601692917051981001156969597967514014648176220813593609326026412351396246127754153714453903189309276889588756894979319499675006343112446107283662128219961581264905552090077895728468959621893247430822653148726395141243832025509106949580813694932331455169681634244004077585722237281829836612293240819614175704950201103268531160718077246255464085184482149037027381677764720973033106224053294845168110755187799554755534261721384597778729314498178183449964285226699148688695786398365168724054887534346412086113899931659974134953402923040644730861795483357806607354428456955835720790663727546906121830819058949395771738990440734103047714526031695874772762728257971999344809113369803624540661931478071172194630431916385023445722959048077542490019968467208782883826936622960067076871218966443492315332190050167029213608011141251187304320066103612530448522880126052354084088633907595676007870312545797508354973508224987766517732167499294315477452843023615579869706797390747707180640410560167297714523149627922593563005800353994798482907782558177186751167933620968818395953266762011424986747155105539046436584117894587854779195574074635627863041134934443616349336371921047320247168391133533257321333717720427264408239317034322184911456119767741459653814697087213859898750208343152161304561023868652952737538746359631865680099761301900096796722140678463463477977354302653596102550997174894278025078982916005669019488880919742208582678890655110748167431148618293625615050156101027593708627980993112238262270107730014792858824948234469053057725822680031701022337191780982984877475532836342556872197906943783613109153608608722538688841944019964348815897785615874254651743141049499782343588259301384169985560993543955149814624174084519597282966759710841599513757475937008684194259979594107735102063159853281710334103085870475370243463954757999203257407582483360240322581271569104101643987669861452171724696837396332846881680643747121563062265771873316931285231140066046214910615156762555589615524967596658885546271339291248235663215241893995053030013339764120727072423445551163164586581040506759983993420669956154288620343422543345455153813243041879002123634681057379731823568535425046526031062642468681737378210740903081599471777921076335300518804719670466475651734810641767420093898685164036750204674649145599963616403838164580195219451807074484321432050765194334231972157289949046889566786794696669979554831249671575064757951570804829717967312657010422094659265000456578907012250211794781748262075747718785960091525605949763585034201057414396342704065790345831991674091268003781146903992319182584718679945202272503427883505889111238389989811417781185029759091461954128884280333122167645958451198134947596224603429052036130275709239434418035578164837010509984168302107311149739266941908199281434421804008259995675801737661135130177028972130592809759090176755785108342567891011015837037540930883890653194277814933445639962837528495398768584654979146199272722380417086920541492535524875123929147623352794496842742930920601630016522152805952974925795921971981067525516242738617690483068398270097151360330352914364608360089308144135521051782324571555006032327661516753092920118906890537906549742579000963079977438655088879259910894549890960938428805986725584968853328163126012478603485780402230760459523774476771502592262885507183272429182542819495021458685672539112496397893450404747146624699801493311932470196562545389435024814554506771711312459495131985880622693540313165072122171308158401779100738283133774391797130112108331076819187869141901136162584323834834371939984605438334588112063271927365687010356732228527499675747067718227577218682211008658396239313837652889881979054095607920948719462073270579202304056237934701550773977763909262879400773535662886798659600809786895900296406288719255394449752077801601453464423866982425076160092097728240503791486068336805196395912722027582655156937319670607762667182217911222009910860836845596997265915342637394526453606410731821415355430027517457154154975317607116313495043157590332120047100803734474129210935658407386354626080344439222368778438555522781209866912421596821280187473941052219784850021452031014230303581877381737496633949349862888422028691372084606083008975697779870291046849352547709961416459014990416141052494282678672669874293575716063270161884558263564869319478625949431800298900679550248981359563840330359981589347036075489029586097713517909456883841579309544765646892159628988543107341366628016095657855362216013268623234385517774780460436135072024523556478404930384838275556017394976512866670764505943664749221542211016932746810335231871806058897601484012937775704413384588946062603538296675975473404947904101086528265986711011482503604630071844715854155654752455203091580281333183973690208835302837713597615313473108177049694281083137802200203311904334658536108450391863494749327496155424137118855554330901114699719514878625831637471488152832180077996616970726058636119631561609331084994474878768542944067102917258624353205236589851354743409460538981762101433661814470955315578618814601119136436285156024000718659981052473710987950690897795810032334053861728387256035620843565336479990031432611486059407951333374968066162383465777795627239395586741357601170375250223791435037203125760834983803697204947403795943688475480544454154520643220753523150147145413019268715812108302254677125663489570201797282362796489643168378888129818274274133173604183300954191450362314435177308015850653888608723248370260874937668918891128952802048052160683037644346465055015303663003004874949340365755730851197577370693782458184925798609681565906195871260188901177598984063420006936993117270546883349547170494267451033026578068610164443091768416159220476737443677870055325816044470686850037911397417726729432535356068764628897546910050250856149995694268704952847687263866206435704200663931520438931011558546440129197726423078652081378970410431400234945150175261907775897377236558671079834624845630213261696081097908423969112595174142597474995185212483757877196109840563954526941221041375246729393195562554408381243670173843146789857335741999086647360823327141347031250138687688585026494538074160194012328684430274348047145984190256162339655137854156338455187344705410203236169961736946973454832204423325390189888967583246413152685309170943383609041607051252245697125308980065374191379727146024020413986543303473285991021476692921733473101895748275500040294920830504418116961863615763804370630022872970703821771379119958555842802807748307803613374082076286476405257076913074801538354515883826764928056348100395449034172941357620940897030126914048757403415307931920706262749191836824014037900709113663048558905471139974225046052967089262662284657084804690008832691159273690942436724487448097538559514547484179782244145773409037208855073175699085458756422413031615954005454415568711165107518732671717323576766798597133776892973941440811196129214142643312314603211976005472899005026733921438749814655130856964403380376471663557325181271276319918526366650826984075921110819648217992174535620016601727274823784301930086197439889098987459498632921547324738838764094056593203966848034560449695606692751548023871730837005316840852475806762139402158983633623257115743577166065112853144041085058857292769337464589463287210302483764412047032724143212523291079421729099339924711418416611385265949064050891898075417115409492690312801448334935842094189304360251020270667757703233645068180275745875871579634356206240972288094030765718867821962892107607668491181312528753366180493279108217039737250635326117370377808664595105217888957412374787590225209768071603061061092599729457887388696672409316516516299986925394258485462070436409507595774958211840159651858306474493323938036801029671972656942355004621324459039123453680202924655917223808547399529597498633225768000107405285119665599977030838004138598703165205663714187696231476067662708216161681692281532923816786411817996985497667454851798979674468452761169560087820121409101126006591775879527033539540180882285018803013643261380863874206421776867892630642034487472219253862617832752902225668514545434151761779322053325029496625582900352099583244214977862083260627410630674274783116083477136347219683395965364532527745256476601411634054716532840148298029936576356917550613045580085656129930934101034986589234642182798574299392819116465363357655246549734795412326396988785264601238904202079856244091449436544271860250049988402070000388869952147922438437263638017649190920965043503659609441054321431005731195186703817002534167232743584001226435820840812532865790921687585527491160991588036144212310297602033482939928639744612156948597350129010064000103261574907261168660984244079066921210979808439700306326032202281200749310701984082376017524083950448609766384875869880365086634069869426391606529230443005821862667835771881685776109264769303665656472590449402149395655379394933137687868883488360838457993798610127609614332341681778393930337964903562866496313233902526303870584905782059917657088747635809538267062286897161276774716020289379304872893010199651256001484410615495885296289421859423863728174870103753196973372347853127980366870204480780863117934541814718793789308511538290318320189613683358808232574254745426728698758657628426869464511025068901185175808228292212681428107162997746279245164503495621073845366695991906667121286132125231989654535704651319054905566724504577386866117580777508585864702567687360116820418093137434526451487972106428192458211655200276274550421185161947794541567844196751693504208385335767700403766294363036236208606176206915445333128548856545758788707575987576304071226040034876396721863594898776880082099702511563896842701342278902801082019690154961964225674837720967265030846990372055370309776419187293837896703004874600402458051122704495848576339738604149702908606475267945709495579733739657617869386313852455777164510010920014032344144749814155290242325913242771780779371954777004345661057127245911892918191607906062105731116698993145536514738486028860640786738392655362213830890598855713127587520288670841457215382207731091948849173032481030568744170239735816594801101775406322417581678522508053838642277143708216694207336432344328335442480931322306140886568211397667658262643195134450823395116732047242097172074725433942547754589973047724144587291301516783313193409362484504748825276057585295614930571067223986629262171342832728595122383656503763105325256021464363911900412809963464040929632696918387760425038740427258983030295653306650036470376296475080724127564099792284204402448764790942133868400051033470230968536751162066490666430357865992683857232009318610359487306712115991755790601991149550676315864402004352325662482808171933785154823919327567148228762070793580934026930987864280766174009665925783817269707494751761561410966127299820168008191402298188698784343622697241222546482584792939990937739864487220383827242804095740728410187129212032445044554254285158937901751165196520681579336881707505169559473153607028018129529265272101210495939643428073743903476659349962184868499189263530477747132939382879803740959500929265219018084254331729463271633692891188677191777138326822459601164864316035173461891140355586322440324050468764515942727419026074332185770563042019979389442647153635678686017466042989626144925956818236326240736384858743208185996490060255060463491341494288737973554486912096598307623191221617132349272998547207806894113870518321556773428043322057876371470854393292149285574811787971939535194599397624569150429906078670709443776325420188900349290564741547692290677616146897817613675885435105070484960191668088075780169841056625172042035387073615937519389063058227367815067245413194496051897771635617036153186059419059568415308807771012519865665588853148708850968467469372027730911746887955215688588404192898761354902525739544242822666095275601822920815330995007296418247364262008485560943326024172690752704595796755422340166209428457133007596312320589941984100842420050695938434837813779629931570435931284999561885681836268273366832966725417850869634154720587712854031469796261569175995197675671391684081153345932761332086399118704424701253625503753364087178193102144714164447582407008981603614861006038493460666792731742807033802066913351330396517232646555709455015267380766151245031817793511033951963034696793078806128372195035600140008527977119552202559892886479313262356411519303792914320056019471317011495296629081413678794479793437094334450446144746042326059143442238181265105214133592757508916114330186909474563762613609794733444379652839070094461247621377472503254764374074381720499480671160835948666900200621730321248426177770958377737036885313512749468789421264690333502430397977391915027688248694062562681736555468304068615825399076226793824843380523209887358485536290591970945068483376418277500236526592150189986103350682908442872105199314598141600743849940091676300189024695102617800462646965843645611556798412675692793413750990301861904641041315026543988207433184071045193486840190868645987224288736641545076476717385540622177281097430228054183106542129637521779731897966180297052580354028927678872427397249154013648166296916819227955288055329999538125705900845920565389699337417528967031450738298566758229972136247412557789776685073479802374548334671891684028678419989773616487407753962113878782007961458746073335295173148288802567520735283601743885901632890403686586662256090559059519513034471434193886565937067373411568535866124520640714894987016707979102733046735850548843036336386206976282736363027309931761089830216063350448781193038814858728283527522333981958675931311808658997983695228183655518406878538672139331782395893436057926516406534564155565125351954442121232118828340019057766255969833951968786343207035568588426843188562364291803709409742332247243817893980062345358196270093708450011776204252634430130461093947807099726033708272704619586435723188314571414701116572780953272967324920402692218117190722916503709324550397591817771538795636207733959464341135477129147330708391587297451878855765514684253477990279838034060766139909673370834596699099881927304473772010556020390968709374785083028453130138824133538698743209520787570865828937597187140481254539621194678912413642985109607370936543282798755223159670096251683608304340936218592292861255740274136672760522161439383777838528042006292378646386586360028762235079238518180411480620154788188116899839441556376300070739558946089248310104505916575133665602604114211928346645101338066151082177210341083807661167777194548844085535741097910786639751560557241632913233096484835234464875585075927390847621522064076614099799763083965896259334708139614079436712930124231457226155210444193473700790970873512836215917125950303155368911617149211459225059578902768045555362803815183760759357537617586745274422839798806881726688172049699697387961565511196046373938247034589997473542806375780080111774333072113931675374251896416147060569439363253333224343108712677458371782709986705306686091043992833549668095352259984164346600307614534867295297581489377965807056767706661286799327567308626507298773522868873700286168174469709281684930177701195220361783290983152493244417255090921750559069114673132889539924557680778705025368462206287723954445374970051845640268023951001442623860593330186895372914298319050064241081379488431917078138440593131840585199241300024870325313806165214321887855441535851178166644461994361762982215497477967984918513862612774154768724931768831749312126455694131161383019083943198090051905190401469065025974279885156416425631947690891400852036764547005922754818910588534175245614038416535258180681805516025282948014720110504835908258017205276456237245113898112646810264679230725965279820462439613113251794386441979319612343630518552038139084245788486607949726617318715497833046052353772563272166033128290689971007056994036188503284474900808056537213306104602125381524187792893852739662663488670745123536269176732939170480237667644818066293661839858335999218719717527637287784516228743385371737833389648393257204735837396833728762130936432686195075217738781810268071825288001053449333703267608417351428834744784176773800505637653937443840233026835690348474484260197387719563959605272185717610137182488700359721649694543553804778359150743942960050224728791141246251261846888989973290658065029172512808899708480099666855896471824548682853860974284777072950912256760643412181963513392180856583478503912369701733727980234742308177360473603543922486675975419456158015020636517223563094786042880692668278545825578772867391382594534431308326020962931401896677573870247235044960645509749633567101216651419428545321424069771055948406370602354831082614259912006609662147804091408779689717358192653167999682935378949742884971968224343541421812180286566620549811484576425620903288065637474801828497254793423243280257194529900457413605838673684186116989277759816983259814932048015400786218113864769482033121483354610426199850616030012917762483905707105804829429512657604022491392461471839452162892991258339789024470171839204322615028401814751719599810036720618331152142176876281566282139822249326691540065452892155551991316860244811581811415765126523839401755118420351486453507080973005740934947836199707986145114641592331161872615796195560709449248310579278726145519512040848618964838369182218730681839353179461925603807770467807818876749707012452085758925796433551190884888666585995147099653822785379259992069427894853464686457327684404055900750504630544009401715995151957697206254891006057121386855977447213353869059140971206481462285720507112275745110313902139512329654730880782586965565258391786887258686620617172865167840422559006274095092458653675615932388896734262498130828467166586633093796184718594804588552512646848614613376591988671053927825423493560996245919169252719145795733066535162320453944095472097574515454050766586976624437331789782747921312564478774653174033401553368511554507803675302496967275529124558442202204080617922556257619762903267605103446498979810386391655908938778637577788725270905246305099418617155064260729976621042510062696192272783221313987015053628340561689997583561429026415452306507036560227143816855520969814591388261905005697529071016765829408191088915137011884793476568781187349182102947907157663784189192947162591124140505553321049277371616330500391034107402039220511801030065727995590225364410576953509836095081745687442857771483781281264284126576742703677936862774422193027962035605051105905898216391167653728066499329459273838911890025266682463194463169682849448055667310940599942913969679860524467298491409325844174365675960042241743905587583059199834837957891786360972092485086060432872500503813065809581814545039867001250404683401387447037671258297480466302787732378856095873516022507757026285565348715393780311078984809608799187739854274463078834957421819810383316526477270097161325019644904022854310461914591446289499094838062450466339368113186157327684839359468840203626684687228698544410120777542472961113580250047926219854952653916789409976681847982883999045801019543965210625270831653553820555152392043121950063460231704768919247413994650962981350743305512862656409105724846703360858757468312738573057026459065411929630963916557679178621306679872001231480264879234450463466577728359053795060290149567254420343958303713757368515071584694147725919514616509492162604113377482038698677636717355592242955042611198199646441166956786844156578351628821257908505838396020393774127865110842941029711528893539751537314942824205805787799647757936202531846519395377519875554200416736645469361116431441544737236955155105414494604628654496874589008722794002395049092240123834010645579774098844268015209948352979808808201012357145568955415974525265866657638952482876326121747387426506541174553905946552856869094313387551561434095478192862953721033650457857065243507977010075337582455751327950557813173962755552915096790521119963619552433939588904767373044672910329995510116967092589042576678037601403301889546544467206908668461973870180974073555738130526880323957284300346431610259840765823474268526584832051484521938151942159299817674827050467801912806063168675154922737194873469646704549966603693717097350876073409116009469332465696718097014826125271736958882923772969553956035760196535961533065486728899990680179734396749557156665976183045910236950487728105742228514938723287240821896075895521728294137883986856653363312197078408299570412488407130656530810731566224380075299536012192529266966360748569800900229793598601718393518611375878717145293078127483123451180491103891021174258767776267056779785335399854591169009806769743316914747999090723243755844768372532918237820242617555975563165373616156977170590744539503037301540834803245524356764362305831783195601800457712528740787871209262972296757403427159085109370122132800988687956185156974082118227029133681825859442211877276790644094495459968043220313288754877667509660494722916794393185988924023464844699892666647913320798179712504501949957402615832880083543336070968707683590206361949778479345246087998212662838024299690374506419269139085398286716183455138638835165296768291383610075316239057297856410489234287031745298586660746595671175386725542799657665714118970427520580305280018613825500298672961501243988214340135580820417374374394189104679650828222899559815566472949169089083157446837091967013853573341983888276473658321689214803323242627139790152672145121651780413925139077267481120093692334962340349147762093575223163319385004127842462154504958915143102130858821229868941046538939609983323841129076989107854652137014481178243700875472152340043744923276994359566651405618880367011298753182289568562765839906220082684869850678154277538175705209101926534652566828176572703988538268840592221228804157087169911703942158656836063243279876528587981951711931815607609701947809941174362268675960731402382950169086447252495852716393964780630060551842640774251000209273816060110444711574822896907921072260092726799936278043527090722311677929300632595665155786096416647633080993356019347427066914855299228292302462960140950537752519139155401209102897173262720434061513654449165789756989771653979822341100281616217272103151613759860557404351820920717760696068569290096296769513007804356452381881282756218599851079773399799907989880492430791525295704415716240085118189727490045814634147820612168137745591749318323288174030962848567490521265552627257130707116942942513657015941921936204953341908268810334440400639369494163415690499538093660563943925939327959132618716303929976396491983737246099954213721301337510777248704236816928764392648806056970220515631123545851982297111249631324245697136196921929303121029077136117539370652386496282292319505581288513620929871414464140990110432376230399372166957567787145812721830998243890222844558740905782893897783816925351006147596030022350729052184386775450717992823220774273493140147978724223593686300072300173349260727662749876723736396291668781881857769172478012494692191017060776271133406441371535054939397070868562716407924617865526685175044447946253242423479371421932490372106992484849365176681686550389281693947354390472351628346185352130685004351163079739854523302674849217534478485797456462476965155076275114762318064806252149650678953521292270513995985183481471825202499069720287109442639891499350706308597158810166176002928858679856961669504869150108484214214075480812250791701050443158261446401582789699915657194656851329656508923948974827246026362884352635570557204785233559267430896238476630157881398044507152393791680786525372685915611187375204486322736836761554164085336465095367814843070884938519997079876887785056859231759456723716696937027109065921082953581627420548706070711482144426467741648191908061666623748954422072424557083140693957130921721054349638786958127967973077985589736418534764296819213551252508107016112060224231636290291814217282329350427509175881173736716584639297399860915921794853720540408167801696060918276355675366328413315714473412594494509837637828616918576845087041366389683688764355739552887907060065032754339252401764700337393082767305401661068754255966599020975358164566343849372666069648137380545274582102242462731082573675258163402365571425428163267041630231110674582243589378263873442197174131396321821774820973451057640922289622261006017208904260100705368974498338530452711664932970733341765977408669971952239951118540304394760831984865431203592805797916584743353025690829779733914719072431280571498221588668602693553308223720327218303340047641713465382688715651344573588874276228809152651670375971073623252535219751123641049615638123315533760391957448595703853720569864661121571799174142524831611355554795798385261546456617841890932551770141785121777630814140402493140178768578911318711751133538382629197426131816973766726109538060071867868946214072453055910901837649928102912897085436025526321179711219871518968760658524461345063994935721547087341734211519401506682835413877288008121389262217884531229676984562460092993337427106507362231320212365863968860545046111837264385365907264019192412433252697983332462368693015443157978393401477417925916216632419612331595129974342022911603514097921753365591870878789987633314869925246240777247522697866601608116845169882578817440492649819762062774846545777210379293152313380265463075220975757381148056972453446727154028238559298801411135152697367163301596759609716705798644729410819041558020398112194984054496623505711318715167245678592885528783268716541729180198712954926141427629236911668535425444899884445544018246654783703537993258187129958844268285519937402191683882794955278522603182699374567818599191217858355854470188741186080307508831815757961351767345163225038091059965600324554895618860108727123836836200592164066858187150848082739800220982974852938633255969678782640095317271230471564370539165776136430675049424590829866085782520601918784650350890908038527731945641581276758088913617204324416514585284508407445973170848165612022546469882425603472904125389298280571460525958377675134262530414797389912557202047573563186234450910506028890391304910577351430464896377124935137472633314190072621919111160626454353574526803553165110278970365392513300888323516917778843316051213717857511063714166806925192878842241668673219209184879305542449012124282888238629905085856495701984317887668328965420006981699439378985539788436510895979180975795617592015959320903986871288269447211434733544557135786996837947804435624147501172994277990244780420415555078439996070730198463772467412897417459008050960323036907000302430472611907389558726204669222380260597807831386013712895144176129874342658362702731372756142305854513062951101420026437848285352556552730928468575162158093760687452907507440745509224544470071887329355452123289519464932954288291513080015340530137137178913934002702141316986658392372451154715630570649620375005175312303577092528295777495955718081515579760931392865502915232645482305019670236779521461873218770171846011285762327869180647615512087452676313251483487527580005163920238671872095564644537104596698277132320334128067654109437031558231993416691689760834504069738279975162860153029643131786045692288671321189411770293763790532894469557304527761965349750794286603624992805429365277731059664393837438590841003717488443170623073946282227835943937660916505224385336465238626475482134217966878690364106095772149405963676290926437178725099919591308339705525855178954961145504761636402114653034805670771301144037711586729509186485613869756271971004551745450084631110701908753349422403186220389216432343764359924309684587758392914334687964728942394841960522648914236228449503902523829576720547272304151717260202318622652045787508103741643756205104158182944999055363024155814074075327912933711340454900249586934502612190455568424849985518963939555213594748550276025572716801222217752863102791535253377365110980836530798973947886354613752302293582115004574340755649320221678105932538198588235579641858047028049780762770914717101355402652594086671166707362691653416764341517403157356115946367412983202733564377570154368477946537136497051609155079153258596077026456545664069369964453020385917388661582416315551477440747801348281308588780819353575957185262875166398256467926659620496720680887812062445063859934674406245632526430512773432475770449595692106032613467110200895060147288925118413825378058833099486286070840975708432470437726370158106846867426519431201404551472191036846433319878054827407429227699974157770523700818489255439819100407446125122624736048347742991898328217597121104771474761171910296673280180931718699088313273934101135245889325380460433941404186473534424562142723890118689819916943040210984329062404723637368303758740930676762479173519579926076444375180565837475682983984440548786934650307981117739132601683047221661147896367646867324204156823948187159294579344590517449538205143295647021259087913622977946243357057587405502285573269708652819202828589087661190587359544528816227435833567789441086199748397563983946118933832973847742601649198158142872327123950911113379306882621755473726807872452379082736523634644363699408630500303261162090060492849840532031777970768542297337101852927806865406285137702576042620370944007087839863749934254819060965055209473077180847885903587502313878429293226983467517784626070551631974148498141547508576912777154556237634404707536636060307553041522978567819912145853888772403381479010875646365869673878655858950154079354580684105563791500202111652433610404881673178133728253444511260611912744022155036326207179714761312785342082953931520190383964257463781390193125734791315671127516606041023203014828249099982549935705317773640703542236842678395074509001742165030074193175807469403177053284377005581470008404266940492345066997268890306534681092989472836088159350259463931006865786046963453578440233437561978795956806683027691131325371013711197290929870081753022075842432497829963113245074090595063968582622353912732546387543957131899488612015493482933304727599400145395185856604798156664468825339502381484406073379865672037906931862071446440699297622259525584661879340796679333683262679234125443290507788002320098270272843408774478550867579368309043790982837466588285030897115926394996250553172120867295695259360136364047373912390071271941536927660169132049524633734784211279762227258529946809166738375799278730967714328259137083047040388243109853338284756058599476123846846588716056703709895374598275203287479294591331109018996287943967614347973178290592709200642609922114753715111255389994381406910619688619221530688724981359656755298857231896502631173642025983267087512113597202278301913672280974106115515905415008601153737007176372638009139677044315790985799561471439501396585127018957224939557883969148075264487811432729772355970717511233911469140286364578754787194329913319149885131687173440127567432674649630426192415656018616533806514454109929807392931561687253265773568451043136496130426752037165535219221208191105845559873810649210569128760043090130594680783761356499962810426685272891571404058438447218009456485796140906949315890630243276783562138338889344478590203386657724508739287299434296551400155269078682130545784343206902482666657137727969696380772042672835697556098043469663360992493260548697240851880394170663798251197492262461824840636516009033544987189551159498652838261182030112657525118764476438641167668332479225755005780191420181580654463657074999329430587715542950231426060934029350428719974010118818114234988138505436006919745384969688347776509008105203262218840265885070251429575663057336636420937754601993774822798606802216618948076484775254244492635343698750880542959035105708137913596080961037981154648920693280541375737473030214305226360989533962223423913272291917330951216137994151443242822395117100508377423949846560180900431077316699602610082472801866185376383604374141342888575109070855110721322524419649792711785031722047214148835835030248670837067015481898344206059063560911561252606593290773610873044302556593001768731008000987939254649106753308775823916159202387734746654024745473998813759332750411314718580448080646369582876597234981849667862914166989600214795588327831100367402239987713992450976399730799958562287893142472069314166076969549620237083213898363570403574127906076001640438983611558920078488358009905358120552545013459425822182124223721358786140850925240909626501875071248509467570573435286717936560493190242332881762195800777119466523902262768815797682212786570434326046824039240820748693978474791153821173764399455145494305128769098603199503617418732982827520717495015879700269442799477006564348609875926074453563449463290093642523033854397934056071006622025033105443368977397123204730923889129743915150083101946035819332577202557485154762831130031005312643539161827557629892751729849113535733370553589154669816519665675429410555758347680323320237378999569030983417084722880548090552815438181063834534664887732874026475386911905188562407134374445568967985984936162810069408598483291612227545023834181632709089579172853131266637311653729011074199392696795673213407693526970532592445860371246583592958662069310083415942520475933990870352804336791460002878012295845071494413276685028267021278446244506154995472424563198512350807743241361696359695538872096665888197436132915296851416009553452368610762480235950807821170636363676971740172182621248638988075077313527118506687125770618041333986316340348647233787832079269697740552335976539761445005320414905929868974988122029024816019791251089804531512447141265107899064093934723452095883579915742129267461077809312114711675261960339411661358127020840911623645095624758521102612924168844262900745084207324764608589530243152801110342717625810238990119448423443267366783629892534674687524454780097549217559665924798780499445622775223098086226824060132143866561320291301507392348145939320122916254338423003222591700679528085787639415044137261073950744006330072899532574977415251179382256504589179699467420230557940120733901727972800113507964887699559312128556851717552318447506564207411432323319765703379867802089161672288005829116397364154426435503821670147779872101645682635227125792918872535122963020647247820754291870820849935807560673414865414815562769959909778020711377812134944868659166997697550263853725210389798423744730842475963965291781463498332515699692764583508750174046938040281501642970523393884971810293946606784431270192599758255008142971750420584771126777047128207365040829235940741132781880846668896728075263555838844853862823787015731660322856338141155139694132280225216383857187709416270963243171908700859621924744452268881600772335784637651938349667115565754194008613926002753220328322305898079809075715896662600365952805144217015091818964495126686763973340795705999251197144295852241317595032960397728645173263067206644590030414761508286459574076964361050918965490793037053652418818009790005774117862455924485711037942176585936585884473531339525313215867907812953255801662964299652154591857627493800798737914139917111539683206242005249660151566579575788335358198996085121629072416719328633303672613014154497795990494604410473686544273311461550712408037873854713214082625232036807346723533620066324344287246784939037822241030673421740795961870486085932863986506577759408004122096511893837110840541915080112545018845973610204691033419712692277486450411181613384885218644811287109688700015109388069547876396392800496163791118539198482428454269676769697528749478065755973908026570371460519224002233788364534022805200313082596744494771789504234150248178378420061066376910215306526760025590123709803327531028774805261146887906961203700728761497024274677329891916704318913550608399007801627159964118282547797867686564171087642062781944396235261542069708869701299783983031606484016866179107661210841719402569408663504687821751905823067191873156671658864994476521227750455815244835756755783765569599255756971854273777690335496049761910070923702683607130841475456318538347750727353604301556423989011898988567875634993187790386908154730061846250413739608364013886708053658625381549323113656030728376492933128385813369602733907996861789409225300363692414468521903592031474261807651321594160923976676837817531552364036242394867854888250222222179637584214824398861134930381978441901936913304028947162906741413347657543673564425613170491325996406406301417681142908235659133613967292426763150394675859242652749108039624537927955296334333444586695883981648540797760359659558342707559570862869391028868944519223001993156068767079829814053313383450952326586397007840292511400870434495008561164056123947771080476603725431185883042720929949987996064058814803120890243519354084906260496948707757556874669833460522464849811558486313546540403760212112216821527655342118083783216190176351955696045228331863204931051474456288117879558209152911071392740144021027263154197343784480112565844920140741788602189590992790072352489529732256934348498529574060772935797234859269201379908641404164421976581439695125809826114555460125419142191290013232192863253552822961711991934673816598054460140423600138049851630112435076280701833797311173057981742038071414999886237095895641078882237238022177178805759574213260042412528410131886914052827869253754872729384568237058451249578305565732460826110077379882588185508055337994841319088445829727233832272805773074641483861051494536380762842549686252397579322778856069686173620157754131993919889242031577096940921309017636884473703642120319810491236680310566109533292263833915014155907768112058076824398772851547447648620889388326852932595718881581268137616419962345859443756727501395997995348774503221850205849320673453855063313476765070137157728357675635164430137036153986978152700147576541948018167316768384635593537805863330074946907481032251930342899474955587199915675770896142346958203809944951817958671926571014379765056154457309916744148970398729271754086826069467220810466829846645594558950264926711668525064330448454348790425351330328780163624791527244859016678790587435215940683652080132641613243919273471180925078974424800253273145352352369688152260204785474583041906869483325475797205375531206088338876226453677103336410032542112380834644614003282182170833403577957790372811471211509204159684086841387400365386415890626228290788759094580064921395190352310854498525748379949933854363883555961239440510321890656374159926079689761608090621401191162009231063112463647220550304918171579778952867160576779801317688333154826551728192593026812289339661413377362810797627379371395163049296458577839974646926516419156751858233393168004460296799682921332129251317908961373431138690396777411090042064461028659983090364331011353184468445135668555610197867379523613491425349578705084633938035027491988979760484635381939220540148149554730478760907189058131532528150794527953930242825301832763531616779982357192287973907899315345824972748620402844445299051194366504737388565996003526940117450151697836912669258706179463320409291939061714516368414776115387925298688760287345705749955347176481094799015558827147288512166458550707952864406379326263294344696437330036028474043184162957481901759667108015435308472229531890847034725705894244944185111169296830692459084401635738219701460295364134701168318627687010386280589572798417500906076327481403658736577271173088704495035476706115361329568055770188306640528758833747220075166908413636516802109889414828870032975902796047013411851658187224033185982978470252883003064883988229290398656402801281199193602854423284061698278987005532128267004777570574226408968625396888992445372617177976577882759365064058875775522475261685136305118969438757887947316510346039021864394835361556371905578070683657576545895794675739734759329072480205150951057445843912299255116830931579187218584314140671977182802278642728996716520607168886275201738101542575506472419594562216510887102948050417980265547768394281811193896887260632353429354731620032019192445722718866440220344211579369665793929957288386827539829188633051563960949830302156107375065056584463474087506942920740633951898589089207411920723741103449649400727517094274919800199754167706062846657239460246493934490771433751484334997003441516652843929586900479436002640754526844710923338627635624327404232618426097280523949352709239029177752317271122702979538483956053025544943792101622353235336395131947329325355488535728234251618504136113699382639001782507357926552404209047939090592117455203023093786904298449335365389452956524405211380433521558948405588198492831684171212889966733723007975701576316254993688751914934692274380384972459386272125791033459378783834754188694605818422074591994170798456377400904992382519467806121744453592620725427339821960395154196624889648605575669258984070114915260785892155578378794714938323106073588312638175279965199439339904449782837783778881522943589094426081774439682684915189447784575840238535327997080184022164999315112323692736385519712937175866870439619338581345044777711961975323973868998116558900095156680493290396959553046966665190673543730246209343092477508003867491281640952082181570379383591470063699952384890075590880237819754048098156197943038972705784686169784138190601356349511260063332763487020036125309376942027432193343390202097733829646892418002006180603090028223582832518419203649522504415337943491259788052252457901279867885190660156959849226500299246319827519653642450142595209684146994467323149710049761040707791997344577366599663011214681622074546319327532791724645483425050426435381238532625766939509189339457071226835313010914947888733272257928619624992712586501153278871461213981930596210785681909665549516376752180445808573027291160113400970747055144729581935029387356858386221980011278497702049317959928892691109957632965698186920980404078203446038567601039749946164097476130369947464568600130984723287660299935240134947626734679789698788033812353555252841642813984101652419448067848607397035218690167908174028379802803988034117836781440574532623766025247702060594058612203449313883849607859546441031617012001632261703821458846923316771705261724987608209188622448294179697280280320604900668774546406758719249024899770469802446278882534700585035552609193404363077968916228921075322332253569280820667790830486074418340069565684090687011923958478510741918667715451020929642676850746306239182556290949048643513842503512423186103417494703622765779785439731304235811525196701039294233240203162451872875408668918578557164895054862690897863453356728843043254388899950434706432979337615981181033057674380148487179438573407617174965609734108388793777155253257758141663902250003365865998533782802664481811771263486823876115662293816360045934908306882918162276893666270000823653999024153551815979103233655060557651088570821777408287441895763758196050097594641563449249129154273983495424123248354350896870680954372535875583365176616190276777716862680107572625681701691086516984470424193513559911913737587987130128973695371726161299657926684893188569324603070763084772393040348753062707744270408638521574871833821508940448331864104215254813997098431146279816785223788159838830292547897657108199044280696284523663766603752739618301496686628903691841444217912956511864977541949358347995134343520168827903266104099706842340895565886658324106891268899236652848968917637626690274761058494185640808387712203206168976191089891839143880212391273908137213817294973757391277210185968101663904881736294785758545751369356664281467999779362576071432110783727642121589386584665943468106966657813671511911635912176871553824647693223531854416811004731780670921388957352289214891128779288704861846832893215785129075417523325484828684350639967265767261724229367195726558553187121025910624926745480699255234886484385433939416841198897078246301469026534250078860273752996959904132628527478220026580183409449829672256489578155910937881566092123532482031926614653153133385300374822279316773266137413530961681380624067059661164999991753993925735656125362895155404075386140148585497724774542678429595345537477980588831104577080276230163390736054194114724948880885229570332313858682692991435174836579992338096671390462435578901949480113918635017661265471499988180984391639785161913610751381944411897445786961532730106955099956338276198182627623578354522839804570496617350408525756076256397798469187354079968213727669912988210041046101928546697571200619658756760651236945672222903689915857043127014633132323879089521595141587471559868219925506803546991065349453544310312528818663246787914414556698270675695991186038858790980320303737482327116769891694012208710278617550550920956185771045490638109828327927834243823144255633379968695510793141840320925885475726034073955966626157940795834389085100988933605067333852300881245096101268076419790520372884921679059327150796809599002050490176812580962987966995925634862319032267466590234825190130750559688020449593049001639002132460271659928799502423572612344402700223938050029394704373340377633389989061859331125041054412359737758252246657620777808785664456917942911394567230420138401621632538466060361074314779905707678984569632598965249273028766319846223974670931294321535250682970922357536642900073269488609401439178318964245068616009237846759832701477597016309260627364835722918104256634316428318208824322852201418645576487965776189970363790812707890576139451145462336676867073907962637008719457089860634689680037571628911884178753566022275538036050876559317518481906764165885917224571935489725412186188123794095191860077488321108115532530560359676628632858462382975489476755710914676397728370961566029483202392754931021712283235319577103020097387341787044922180048880241907425358234356099289529504208693567101021475037930886293346615253492351438440206919210559634392855456741788032787159654105033603336179821068046736748199004059334329980424315925913413219047613632038557015693905452718894823929489357420694047304432337812566433823805938957714841313755013613155030289622044682956638046849771270860986368814704668963738084397936415588931149799868662639586196095108675943114109606320431694568855584764996127181033556075848111984430050510898289314591514170563072763458180898650320178079158293522915532274686193031180162892879416954641108645868758403169121137409328732831255718023084244922010234117553745489407761485057937682907827843674206015138962965604928706372619300220909348347933810767689098022536591717574062792569545577108270985726630074681357885251285876004141738624366817773824571269073162763969843927567199266925514926667337957277786431538340728996396395392446436299160646630721174109636373666418857883115399657194876599275598416129345364086923614741619940291784469908448606321919262344474260185762508964494995008183204753642183801850327057080863025764501764587551137425932090055623247758048042090084777433017882767520121060017451435274547822304553546313313659650764614176657591058953520440090008144898332082620459340686273595713410970249097586071898238656222658792899107800535669792521917502826404594406185514824201197747895257780751581923077701351735171839802322513909365307259488138220037955708350576639543738706811213350295270665440144141724131866893687411861047101533705168010636828710449389511269177573296936880279586138873553998810750706927192977530983536457683336921162588330702334704563009342535723183731280146818745796101161254810777071293062961428026314819180121730094066312436129922319162927878675451356708823959158135477370037561556958077428349768177326795290844810821476147671708931802753407595905558889414452815650464949431605435734449283731560619866824222648955882080106585871774560020835487975998963269234392719334997461261599624441540763559423518895733804535406573773681721070065624786776234717235248538926629886755814324969009220511407069771919134972533306781019518577111530610083641840888315450194272696818195894227103589326857964768812616146573398013912765850634743281992518174630003713596542711002546536576928941975407307526179281698951563204176977454476182042169649034722506793540975071931384686268179566155637694412059127919936299306700397620006831818995368433762893930474010655527203415348499990963181353485661249687482054901218271882320501194431421333739838709755102560096369033131380196116573888948279223297032857801716963248232722655947828440418844435088539420306371697170133060146185107536649470849268065498780465058376075472457433560769528469952902393299244587911787790142398971783040010549654928218542552145471934308565375807355259352423353804196553053467945287956443270687349190025445242613987801497070628652539223454551105839387722161078313029317482530211765985435518983865886555759385910367715152433683668392715526517857810453993922037614307784494318384981938526345831138323715711806370284456620974536228633829040435253007062245331007243155461216386436259335163151532598594344189531749806564803597241650512564729536599322604113448940600734393649976151856164192813524854786813695037186705915375479770649146349908754632743777299142417977217563631731801843747380920803903167260407145077170652951382384964682412140649333710590044781345542200023285723639109829680350000831609514994091683514064167367300182255466257243169873296139825175321393811072417858562043591588625647833240088670973855345147119106495103013681841600981536354692020661260889434338650845115435554900940852064861272577254387634580657511872514755176545727893258650141425082288948894520704220355929507257724838426344454032847005464699655272075341071632411432344624518154458629380092867996574175798603061635540557909434323735154818660666305604057552451658071533949183870990580089672610552518216321805606601104638885414396313535321103069104378755261142678162564484542249268179248257862447701118442003805168079058481871403998158144219746640101606361231332422378422099637766200688504784297579181309191568510364218415270981422154291018706218992565489100887417412430806990580290228881749404320424954468225618825945882889372729323057474491547265397378562995008446571264473894684279975937170814896749130703110367864684652428676869565499236586458391279692408195590343970689746969997945930394956330370342617735794799294109747679242769752331904372173786194798314806739722866810786063323112766675716618536151257680378369476274318086979321630668694460797162738683575953246030261116517315732102092822251481641694040689368162095319587082149000994585574710694125970284771413484543740773716090348447523100236197503436501983848323643355209008191016050339029161435179570470002230282041885756238587096783018326756154141317698470908981950532226605265289377579879512351618644451774157140670819329360223520044145017967671300679535599532905725951227412630614624661184267601979020865813380812276154279301578119528764634187194859437671398390153477948905696400595191920025499161805816660405145655568523510583772643778356660590861387345138359818920226400892548495819146908311171044882541426841855255479774585427754280847043036332251125318582282684554924957509356366745596726842445201897425111730262407449420249752912510858876655789871949720441419312324543893720695011882770478683191151947606392659592575565235134545395985945319518498930222939394114678840447384907344703793542671501436489336098825511986441502280720730766384501512503165525786009528657308679593952860123204576589084463587820779838681911408045065854462925084247736715203624462711704655068722819226006420530884261042089321410848521040189138291244705627150078620777653487760868058301626472465338987834903633987181465171407075279680557762570825299312649088145589986369249479452163780724561220255653429006937854670363861318570746458953315074521102802003131129142784364455565231183576338156847570174338094381666183615234367654795877071702870930125974055482358494156072491178047909933542725211846898622964383852924986587810887184661316854283463202618304354387982852303081834033056444190653540520468254046004850836586314803990004504468998540758624062723762681532662053806536808046043926354753165027365625390380064370712888326233460596200691504642096477448766449956046387337386513128019363411721369829080231726212636413817942321070480762172965179475882327982458629335871763717227137063804213714868121165632425070416453787448206667211719013750069201683767950474306529883368045912813416514108173303289838297405574197342106338851624829778069172731377264491122413972217502732309389310630883963803299417802169722087683576907113841395988215443071589708962087462725465640116613552156190544420274589744674859181610475664109078833036892526311873164929526403512722139049383682174237580065352635980532664965195390140949823520881519245795718017873008680356939471431316545817804050663080194631092206109757288948694660591720310182226233353625021673750636219101680400031745457283960543467137334775715874162821125810128406533755404533923446816296723984970513054053744868490179718369585976038722556770217294737803211378285808328505134472934216451606467730597971449865239631993195017838271402272874110277851302835967679475418949579953990552454513526546875827683326697777586553223437262957184829511719941317509537696292290514527346961639732827319359711275614700736785813960900087869738870453177773889110120994783400828706487891197954733247763344403631021028695434871474408799689533451412557736691364259191126588392862063290074344259583570534853570673544858228552502671883565335096064431584954220678695051848998616730799901555828519459945788965192019871101850972144112738521618910127538410541346741503492399324414686268220933468829897378586536839984070853391655896684003218531620057373161136728566401382844393315851482079007157284049342529633108607164131930813619012289248256323914560131627378703225241412308708385013499853284923377131354318816638095066197895407963112762399252699346523777679445645610515792022007070786153842419013613001128388251456735744799825907126039215014870383597824497516994954584885245551293645206301785464070295292633676960167596499525185311931140685142038969495613148744787668547568353341323760614342313355713003850863911701258102155783608984704386681369559681822121082717144222460868256275586214185520387394916049093019098679512869099606522411495039271237895437752823444296015720583433034766846425701462030825187892921074335374852947476201408931041381039253451471098173311779381117410526292601845358180066752795535681451619955484391081578911411984553212777939904505710648556377822976133547613383207763179373707140128931903852171878998932461512329400335285568887878328084072632925826355224289496839119094126925129655020547956076370530256256566193473095866905018626633531463568001816586575893907463910070323937134572189713761963622006750196579980289629892327236906767291351183908038284262379733710231721079432354794095787904616530537835568186838430023383200863179238733640227100931677000382268689017636854539116609780717396146532232433402800787894569366288798501840276748012969895458150967696888511632141857163553710470729763726870953676013313791408359312548938392424622479464422044345093011694472065807160536046209970079219518787595522720537937503886314922434315809338040767557788195666602542515089285861151695416076040496080715841221043946822430422290789818848701692207852284486058123619297478138444820722351905574394673627067708860664582815041057774633155332844349779194876283601654273989478686564288461024286245843494342882761874226556231359218509133770113267236958649207621455292582196575280522497628736838720131504266725255300795632625664476462240536299151192831038800845006894821657530262671621792457538991705348759905975721150537665469248711940309513075469743454135557657662458478433091513817177231183545212881828334456295136783972645155608096618452880802455764413128080289278806408544268436965056209044230302337149208138063326835365140990582327586598192437755296955204308908596610051318222690595981094854934281934057822616452674072094518234959903703321235837523553586389844016132768766744963766901440996043762093235092902129870515986381576955113238117892860180611034671899885457376688637558353305029460042517790712454450921993475531133891563306930560789235585270768486677118151685164849650082750980512036865568696381314273216332225847559908126188204747491542481863616761734164001920583472204009351533115164859188139662384450462748711042606412000875101474289547391881673494175093883491813844378979284318030791144672272161676393389133010555531486542344212354436059262544421105165570592339222074612496716164977715239709135557204163823647444219205462656579463601927713466728385256612578459604370926865137413532755610222212280080007419843062270061691265234639363909714233490139466718536356637636225584884716825840182412702133083183467536680459989854743054601549924138179795920982570305080728177599892334303529810960755539178223812862204123934640848867774706914506727598115238424014690073202557452004681453831410164047562500662207895685812617696384270940187638059866674941276071384860581631942229476495976015353850096752369125068914457774929693097618075430220986446724255434561101770930716352892789217646980279773326311544958109872456286739771679055527927794255086971667443732530608086430873646522207520283380822157555400895515640403153848145300637588769501824856152120156431985549926898679863020547713320635409694722539677659300897260142475553579920871447156506023159471908345721525193269944377024980982017005532104181544190219427824542088319446556284787614890492270830437100503891217216775782958460086492089476634925380187822815315305538107248133031708644496542894284516764233703643741688782638374686604490745580455952728160436997479096237695228365956812728223380213541229902245159934849386539485524785999859958509128576211459860484502450504674312197002006445083591542562038590675617712608324870949958484728731608228421279533367707149692177586753263998498564840693239427230781863574508378095382998307470210345677101826712733909628076282913156946009081376878329535288540180161494439042650482345604289158362853358036517176894700400792558345500136101817374473042859681925087350820931452647974972577518041852992442846140765357984439829461240157176532899326510123071498248565464398804819763822149473080918005146025881464426269328893970313690972775103025567646948471166884485702332840002971888648229777825540373936169554720941408053232261635960302779382638633870001921218534878232947728121561520446686245785749147669938233330252355241610725202833349843256063049985701686637534813173001640274141610450087478356837702840345339988820451765463050999601223320299795026077291896721974180334256629217951368613711380606970888727213338242217772721014002852162041462862493175530980761556213147767639561671477495224206037363322789467093120316684808233702155313274619589369247961847207705458241675041817368638520272330303114792847759028504406341253689072662236402880019454937219063825496164514529040261561404790694642169605238381091410764661805230907173961939559211105080548116150057169251442678150809643986754001595920914599778967718112673493402776638858004086037712242768864905956822796401481388174045013458016668316335904314627854617873373214048767883785657136830251598964929825044133305862451231668398594518540302990950593885286043891115719326503049242283099577086071061985256969416587092201515372113544532255701665094544508349691421067699012485769084046522434780245226873508226700300085052136631516978222924145525238563499535799829203207561659410928210055887847721085035484224332228986003986465992846938281572734714945121531533758850239842160989053351356930401399379290425816584422309033239593742143774426812632957927074103406029673281540080686580000567532838336031622931765957141575236278049110174546016394071704886199027095956814672026344750747183316892656953897171416587793265157395039741739878013494708359631896826108042932224334192993466537323651974348694553788376559326167083876971301229473468902560290385753668749722313352564573090247092937046648233900573311881703637778471064925020887452333227980797467189002966534638650056403534832503563647550920343329598891470707612978255499816337739684988946353024921701185384193180419056932328625685588682161941349745588160316995422679364742717715541579305150906878854568731602143920378350717520861274870519204984295196160949799614795123756112093988679819366584005522339136599697373356251502668641638728319377688597962595394599820843565294119528100392515933253589863821709564007994614763859143719604921413606110641331638587338583342689797973073124136795052501014977780329797842234864045161826861920369380713682312010811948876449365924980221097342232856562238204553958691276326379788065054341250505595721253159432589333768692335279216253058519794074046372337845579726482833266340213998411520115683683969646173169907606844547562591074344582654201613132412191738112402728945807113043207555992443896936885646682417593957242927425525639265257695617564442472372747029687775411944240506336771147863546669501517161945777601397198953949318707651330580163731177143306710050544797366529041345663264116066055159583231998046956114753548551336196797708230431960220647419462082377621522180326907069492973671613721904366227486804635009381604874216162482278739369814809009309967934998724411639757054313190436855390826265701618384824586014268163166607810332796902441587212362513344974968304124793060608890936321603998458597152002846921097613429260247366762821692319870446121378196075619926385936812626207430184232895859631933494301635122171343567605430547046944614993993352411974727260626985835416285023257154760666159168453388115098412955401204076477888538903920576806435552051210932597583274090099499238792881762167333198721989911825443227422353531131308851441958236003265061099569686964778543142850585551134477804503607485766522392388233543610127025619660997990368825057245655060252939074764899752822132691265856476211653668489984855509252201118126968069000995466632809545337358681118669206792358495016564272298136821545423239801107757573748155249689402008129163892319830896902667456586175097157405765428339206504041518641917649295737713356627333004980057735499307780674205222081380230082873624281936103906594881039415975104446742658910447686886173373222274361302076664752054320653989897041563763929403492878591340001838064191512399258254594449638352941263527319688670367236899804119637660698717232872584572089184350889790380659932562465598273165028569594826592946125062522317588772095123942972841542139287006957185909302650283762199390568788958442609169282911575179152331158768349712017466526384247408018245559397899766500620679848668189860763374397968273070164748247017908465521912313023719364084509641055938490116338031886373678240400942804921373243313930196489994522067227341398627923760588487513545228383723207767062905249217251183112626363243142325663227302974898928549450882302280939521930953814558300300332837825940937133673054260321944959374181758753649553590022531448054493737775429346690808981443736591144310527545196004527644077089371096727314091429129443197998304597811342883512613332085600351893959772193479104925250634181531941576166146618580133344239502260018538159010319484094591077908247123280235901217706658959883109197256454633697701330229963530818535320920917258527067112405654715977725889354201950937245722086813018896893955258560500927723614665719821060038104937258331707674778056204065714346639762890556037872751096668710664149699469295675159770479106638188708839132067973557812937161638820248321711900101449182902801058528708693468285870783993007011402322976048116093853139790399243345040672576529618806248873993964833258727212643621108726340281109424260554217105877017477142975411028064052882152276236517405561903432615392823030260328281027166018669528496455683684106699521973921426858416573222964129372852446688119299991320204548347004386267162651594251274609117446409486004933138335811731321514542305605313804783673763156091015363014359122572941234776725948521343614777718251731285096215410786311388439568824445499309770871423655260380232428915808470735139635700276496423690469942499950553261298092645270824740455565294476999393799492510519390352803351067211649615462622092699351032142689876217306612966086031842751003179346624322027766210046950172085531396543443610062649090125652087922552509001167636026146925828757932120772961169554030506180708416338822430806698298399496700542949323351647859451250588846465922024653606372731701914807800839505183685145292183098395773915010441977783748919602173138233949286717246947464711607545519734870477853475677787746611314435426135854401533769830975900470438554159646776196632894835214626181461230923737194119178796301781614621633348974241796160533694938090541463253521515223217071111807966554484004244631270828254906762055326690485811935139697268670199898067123881064012757207488366734685738221436981038045477500815555481535597137865836581078325242922058236639943052614029455016811002413530385988941496380174857953306816860556749730918387879098340500550853642187730174819127951298531570919259241370427646672132124283772473258120827540246088482792886479288122921725050795323418288022626742908383620338820645056774462788939640848330730618302157613132876118660988728121795108069028629379507205450898623898726981431104151985157681347806932191060077055005902590633888945351230229003320409240836254511259878468807644972576132460094766874468630562936142878601074541482387273348225811633498667643166854542692803376438566190531423799768233711020018223179704830777939763425794913927788780403759062141575032028408192786482637158075125589432013560322042158112616768388567043736811860216162635011973132184238129989874027824485028056670028538327101532032021821576423247179498635896233949788327215157290616904714272397416816578980629162170760202183720256111172899677162290564511682589711142843853847811157456809057824464553856603308874227252859951878976017249399610314098344545927770718977914435200504726453404861110091097006173750661983683255022727810561155653268081069438633299479692879891670181009569435506701970112591478560775147326596103906390782656926345067588103709115750857327673588767352533464648761235949049415396148853020843443591789350420868347141638489628772323354726706326571373881674098323092773670182071998329818152568225683491291329045942809630530899959520281434099497811380451759473620328745373330615433492331085454203494928422986558222989048640630130814482503702099409299582793464037384176736220102979157850026194916944455741075105939771780430904379294143425643101799041638949648613949718214819555043789345737063326149545127646891381762111958151556172247057320056853309630018208192017079565050670443049207694893996030808903283269287876656704135224696127414630148823046267541392736638283292404113028773718007899791084495297041607666160598708880584510619111018042540612583919246173682699294564246605204297003452974247695628738356017923286168676932734555836285666244570126119549068908340961115133858519681544428063044979989052931813019401339199408586230110808133080545638959248790197256799300746944367530426426369212944280037598570436156409857593286318276991827551881412562724060998123740121345340721504203770827783162421605702480070288318715980932234050235516858023246852022683653466932621502302614459836437210164941002766221490704306161326222505390803816974792810143736318006152567099653229228554465721752209377796203330386133313762652799441609744174143621786814199788412479972972556107216508281529355343097582538332250389909145604436177724732004605227399100020759842730505837080892354895609759253094063436949145837555705529341696264087736858551052771949602959078153011500859290816967819646333096035462389509479221714086875928675689096204720595329593497941371773265527903695656928488024626760312061593763754742152691807100396022021964729754651532112068664179169679746382532777917389262456860473750089269176703987194461519487164550621274799307612677629375070214551095300469946171394827037542781461100815720486954952282939153162402119858838252643250544162634450449629789707917275879086135476275874266812554491161353259519866294838349828764424092231450406313795111659609550614420215949536196229145522342674148167733879519765078124141446046651129719790220731466859442411982490279835250197821773836244685159466008154521980376959267151722052978354592083294923407359309736210173560106016212566440951712485238201893550453330709200575040240341124562822199685491712466231975227987979166807923685485557820618218072985475724895949206160426501992276232235133241465810746702758560201787795186022116622514299815796816855081693254189361778541793589772482476063208597905867794586324570726573703507495319560172546845778535474210232969794612908068352021277388623225557177219952961570926830398796749058464184181494235170356028469214245520579596104280447160547318160063666315494469153741722732250634236957257611067595283527701662913303964039164937324211405319987567692110213468214078295866662348506685193745334422256734072154961370845014744967502591817240225413652873086809487138340549651821754085632359036631653807399841529487042784103157512366110942922063885626938187302284778372921272207383497877364943097475639091514714747164621083507219906624977109512244940680355816451740392150971081541024682620785529717057191865870363022894252948685093071929598167402434976383824392074396568448388371260974347267298889201516543955724904357782634776677889458047033865093035462115637066438485010025216089518856883411701656138356878681202710265207652195710240305965826787097627451559263959043859302076242557097027734605591929425200341224435846987791608059175422723505899168381741794408340563810460618105399760433195570860007149178951637583525211040262107274604055619769054563923884181154272217927485354523578528752427499908501556772882138338255694668253267637481185889142955340029745710478569776132657539216519445035143195023242091667500646186024763092586076752712828102857573125371807061048356619892126820539841715434357360661643009649874814383073584178256245726692706526566456059044947084280456891506017803593420781201562452742034738557460623081022077661694263773727420728162536223697630500115933396256803845210514692552606941628712230850108265081365395119291440294095848944125977233810947155698254095599383874494377109944955561232122644382351836224734687859176819089275966820859141801036328223376182883089711374117855620261628057558593680903970206464963933291597235297467135280695216084583321774849751372907754063681416687544114613391262398466917823112537612327518218555222839284961103377727983183919482385333192153576723850234349667289638881703473105787144013309930333398149981152439788767950404416835024512045122437088692377053459604528952803224075086889572713546045178335563479118765297691634094663456472629295318936876250012111084605695830900356203887413342102275660775733629626183863433910486539610932541604962154324346026336982244763735612005951669145342702520701697152135849871866545533281153500128925838361703671028846298361954981262504217042683596476375418817373416432804971786360512690584141949560579250513646116073323534047285454919347948639789036770068386939955833502269799978355344482206166862030123475790056731838829724727442241808408689666084183353067322251451281517735831813598766296508106206105734789991912835275364037902812809631620918032166428473160788582509610743651201159849024186813104649602818964152699621938825573349645951997304100573656496781194507160051771315837033485400826102301249625847129537181419788925670798794389030957406205871788891425086973727043620809046825546380464844557667025124851545643402028719333336774490444888524414004083632745481135477529287692281988580186293685216428790094803888803518544408183224492638575208050021353530293874331161320998620213014443462534207753507736863296043988940356268363486629959620437137022858542821392117620958097126353406592248931464261560830780479213600303538735511951857140216293626542821949737569397990485287566364439378673799552876339292014058602217132702515357699842675781964721763429885169353062131072378187682959706741160664147081809275217877628602388050740225442995307171592121730692679754929922416370668360471957885142023082965583286254793478389781239683023506788526702414281308671466468155600835923849399726332623446922336899295988580594277519182227483914450308101509647247112926892544456659028073061048533538703716424616723209004966914266430626116297073764597540984101379980440193166739012728298336877105080509722532095108379487070121363475978153441150602247578871779026632013341107971102991324804536705325686263077527093774402909673054407149622161731763074209077461828726601194766165293733891547510494948378966530679611958088206454793664105886678652766078779705950907901978474724053508936530961886101815692746890193129325405996906905551427636750213435381609561147238846479745592358775813452628037830760082478460931980458364239347533595036664277536786393133231050007461082295893760201104809202434852701861642870736967649620651833887730356942374494115710856968972320163456278219174489562803163344374232853744992432102314774510981813630727267347108173918653242336549120557236453868814961795609617239198259022961480534488755553427339788387644643312989826829700575947684946648769682444782340459719091074124982861532395907201100460260294693749981197288211395011859992364206862549709393472035801976832596967282239149900665352388126763705649023706534995986891733723777815212358156310831856757546944828719796576753720836903911627284951337748582667329599165238126559855287632171650886798788937973375676988316531923527576011667309256326863442060499727201816861166746558522886956207012819816610134041368764164962074202795527589021113846194001042945746976107900907127384133087260167659641061220471157363404145402912468426266508793426880495098277411296686538732489096436868608699471483687230385990390180326888830996150523318160926744016072499084761518626134003247945037600390586630666742201308279644824530554997004011360947414911696642120133286041271143810677222297549102604207993647122672328852828002545597783475452779630607959390371680595211070598128344293173429681837592374228772120305728103072217988980439305291818508427091161854058298336664513483292276249018581965170408244932799996916676818683156557191178840931977906098691108362560775432892676956770678495878920878042027270584330198712547079845646665686470989269184025793713140828874664262355474298530689709248282864176073921155251856850282772714641492782801465681732413839157084305019797232530945994140885192509016784055968911195773638668845354472163798755400341072344849537701775425236008988911731242332272251107283695399172007280676590788655330975210610476903814016052827897803449627119896649181612642223447565381216365810803384812809998796162818860521320817733015240842703074242976633522348878177616311048070573729180622212575138343979853369326075145623352241893374672677597333642132819240302541609325224220987225738171828469421722260420513912843016073546659786185914560054484579032127805475461613831801659382691770764496253483668202123060343035393644283455052594085268069396713524230691290850074122763191572694403074691202428978683074179168201686619525375429191390974482965156423988471467498427771584642593830894417707469528704023856468853338878310272373052654988842983298644119440023687892141591626785278162508836360281660304517024996690735881402393306944791469403429380936105335854294881599849195885377874761655781470604742252991056108298788862087404835609895605982205709555538581499980409198719277779348830270442546428031361830022540051342478469380249859018877830884741301591251787232612597745165162807841883840213715011334447672770400024344696250339590940994149705082791556488198448885357374510619249310794869286433284391928077724363326650324079450950197987862063919708848389401273008170589788791126392991170943017352356132593914653344043956785133108571508681194099370334664238368690775724033535788497905532274452130853420140593078580279170796692040075487749685848399013488024130022369336765924882724393454593621168524911587756155512156564798066258553283236904160346232428974152002277023053327937653032506763804755658373615527799476972825426791939953642531143830528950500376236163999587924883923785612564635790305512921331898060119701960111926084894943840692864987296934097494896391161852021133797513563017392350660313436449088436236142708431710293956994681723828486329175013630974059205416133138614453916350893002639803317854498733814907330526516066591657580082913201304499568725397687818701105572318674951266101411053799228692839033232082438727802765660685856393236806554490212933230395595719903735887190070000857449394058143484724571774017092364740704340211860019588864158584105268232806549524333804755579223705679594973015019169906965979719994185427321353493517335727611068631059253306275179924605508693012811026100941755980162712754525738233119051443021504976861034318759125560287112417085204783891409762102138878407320880480692844384059321170782989549063494464468770038836336939742807838058813410601866733333984489128382649375828208883332694416013109145184573151596085152220047536755852928435696874803716224609449982443149794990270997432964760638926148035489397487083475224361245436247208350053971766486268392804592021583221381724094394218077159470895099476155707984842737467494358068715397692670943229232619418737513438336903436981104599796526624630938666856507582245723438839908067295036490860632358218918865319484441763831739345250964031653365341052887367253173065866735733079942033124606766258196034236246197452469923791586827082805397235121868438106877805036887537592320635841191552730523572475401563924735573400157147979042305757842449896460973790483324321628829343434511900630929077705096120906814439516324696920500380902645077427597742575189064928674121510124908223325126335697097021679080623866041820031508156750492220326804423753224219656710086507130990101044513244614069946074822316390117738268043362318584096294355018121765415015535270239611145097417739747627921199265310116005095359397530238795037856915033269965902404591247759186902332492524598099906156923160090453100068770183612752241415800427010531892792220968487928403067862778551118584711941091407016260347210646202385747190577134168919608049205661046208572680702332177810871056020505521420898420594857194386096550783371972693118582514548655519947379430306975893518175844438641729105572666558607866268121461217200717324339977366367041345242340574511924764149337201827922347371558001279277312364642967013492369030686389594961606156159786812510046543793363696108826138830400624168330916190606612745493676960877425290655614883914468202088916628741042597400244364006065801262853961617665165291075982731056169250009751089491876796131318609956460457137024806794323066668386193135115019975870117558506724232694396061705784187356636541922491473272512335287644999187851521763106529884938365251798413871956328429358474971965354935669214294710161961455273530851305013826839805219586333064291341389677156860774473093284775645477276839470577593549998983572323017386383412659027546830336786285747473239806462664309856252206587138360164316436567406604200973689705486070701532558205469685573103853451187917676586620797532896906492763167355664997292464288647879415791091468622161303371827968783838007430868321873283850772651076382543883505659160751861150405615594903117119565549133462187099908562477258553332615386823059753574415910970820285497545669472090266478172114848048097992472909349929340963545969115990296634832545904899474419309458888974259544771113442146631099303215180246217749088619084267178519067895601184228508525035066041633401777338024236630934429156090052944647405060136992281601482357088551822357603359220491637133308660932658039316541616779947871677746342709902654277677121241011312193782098404190572374952083322880863062593715742023324939639386150977809870105740646746047033000525882687415044141776256793112587373160661377468367973935736797494301508254846694152192734219443228070590351425465699596630247708332276603583045580193924079800547107892079824961871295042422348717968515322183363688452312673872791146994248493168045675462810177524192119244040329057173264454674087884663959553361007653429656209399089102572882080213478556684561636426604580756804136397177193024188315529795247083087119617169686532459083518985036570582314432255677330464691776587256439774603586547067999325503348865327870217156001435596198906341632614646726901969895604211171177890261369870612042167773842489515090752934510572809771461670819131159762716819448930062470109147495957522757959382888654377632253492993533584598402151801472042835503205910355962879166615868187470961812474343011438606308547039604217893515629819069818968474336484973668099861829503175469532583522076618467281257089599658758714148173845291509509302883330611678769802888460016013994347547788090110747830367277275762538292313626027677331567232540402701490125843002004836935261691671276387804103815594934037910767278563852331352630651308402608282059646461837131609578011604170182932104344788037564944094850421802880536385823242349768618413746030406751004352453847643282742192447590046705503331682890583453922115401514251760595450897256499069203419173774989099977330262594516966749450830320447551203978807285868816454776489176019199296158317141965343970346408423254834912317122681912385954169661117806721508453380742667295462833895911179510413339307621010870913049235885870009882925223277510670936486419952132680350529730406555196270785585527527271071229521445628001997339045894572973197627529125659047842304913231747496363798107779854291492215293140177411236524985869018606968359034385201453033043505132364308032691883910659581513009629877044892164760488965835117108208359360527770284892564390332498361808012377553922750852313829866587007590296040704416173705279817976829798063459332802501546831142636440868618003927860098941627331365431167123326620435773577190578045367310501499052323364537847232479154328092490099276962318123940119020473042497720154072204053221637480729907864923157762295904543663397323223081864668260361061164876598397045263361252849237320777992182348136561004283696194085413740876603762322009151735630390293180165095013610079114791031709010317544553491221050157880875268459497949960292099394043057125405851729469900162964123723948760108379187809788662772654597996158374055300635273053428721543376395661389073639901847275643474763613355492793856558407370654766081513554690906755113370441913746360268733873552305387650719208911732865708097098279480734764446556850901327147813997555239162820902747094307206434780373728546144414402701201384700424742564664388634828849746147839712535062963460816354341936483658026893887896530511076434780116438172385707199943627476271746979655070635709356261118551413266503183268499327719932709698074219355895487189095553978262911558890291434580103183386139839063468182504511569031859814242430143713627402654638029875480646491807931047049657624627595306870609403914003243915297694929404366801340394818606784014337740509170806273284712454888884402642028711245619453302220296394473339781518331209393754065630987581477210996900118287018693824364768981937076402742392473802274622889690212832176789011020937645507907193204744348127341721010103347742790576035490791506686657485242127895441725989987014378140893079671964944259165893601849702963841026894768678433194176975085945298282750373975061290350744423732294830853539536495436689953053666502717465298474104460512405518827692068310613138889812915585490335210132836875470716964488661832385401143998338180022430976464622991484270693119742437244852220490139008059424211914337902325945204581234484518099751714266264914282793866450186711564969852847033394395271298220243999309030800100810934364398954941370084633337549960250105959274273497932086809843253442244464330277174612965419255870499243802623760435354121418037584176849862734599371343494380945270820715879982213028675785486530579738738539387962038740416769117978268683303069169473942819477245041024871863276902769656024931050759420479101841564536681514808768035161056202547314591595519162611240164726169678951729125453028864430040637820855930239845189060817427347470577172612411859171836953088213964248391241033963197095509518271417482048341226433760927777394414846293523717250052662059558865557655160409047610005674986093609807587163026219371024555162846674654276264187394273544447381021077358840863327871174372779467092148951024990103983860671727622619942056321435211650083040622135347705421616073937067177927030159187005797548437360408611562826472334049402600145027902577349767858080895338050046376792510583060233054391715697190174545629852537767661660559957711016609370718373199804029934437534200737326028776483014877054443634804741744729130832874128122372403355384110342748470509977397929773722454183060928711192168577512281307411909118836812095612693730150792096587817150355754754609449941902036768351501233134770698827095021487004532128598343738852495094038725793546497585280207450196188240280340093852774017958346955992325094350615099076682677555242961108495003658161045079713402237416326458327216936268855967672970484052795490115282153721826845863521126153763603120126521675026659650231319070300452858818341402879063445902359861803412706791994520186677609093578558923433230427198015156646742818384283104645807317462030236217039171264679648538645752093604065890421158340500184086450894548955629319575759206409206907207713574707262148847844242632453747964600725208948184720279918695784044910163630691094813135103689459350274585588965421695901414229131159933510932873233673269253596069020248212154938618851193587759158949818740348657288820781185030949577169485830009528418757718041063368557476846309772241860040112030804766627838811860222484350238915557819957468276382354611330619945227390800619969141731217901009301736798298582158545293062120101023534644354979235598156470643125011193187815102607994492202395518523587058270681931982171884068643247989132129439206098979917188669429559829244923535721492413827715039190763389589445713703085840599883325806683942606122925066316572655485746437546633021720001265220455724065070065684449096398232363293226169067341331725444503583595502633160598683611862131535597677632252230955433317820565855955073817062819425389120155619555137552470566567454799190722645233057618510976158997823803547621751481774951173221570689627510224699701934908150079113972054302886569542546261483665853334236887493536406389769069401732502452972025941676725802522270571885014787316509817243185523233478564466805120493368806355374001255642735162341481613889049117889434507665797739827731580705302831921064379257653972373746921854129100507003394401500452873283397665810896251241142817530486826130587850140664765424914825832250677061260332455452170241062178440267044396019882955950382872545734535404582690346871074284036140764195918591301897169497871959944419254431732087930604525988027414192858764550934801108665440007144803454138490374116910954055782154131692964047434990035568761324118313805319926673152828883963654104499237984626660836412770242498612229666951334973868961065606263483058819392109629138796321997856501426490663893363876475693081481115462352879229607181153019847238902548929421908330247099313021447624241007287356563692563879238365252413427403299703308132792320103056367184714527669249989902179982796505491049705324507426729416989263348260556932251223697181478386005050272983653648251515672014596638553987849540720902900996481381743118539647777915921827477442079663227255205810923793587786100902353137868017262314841816342650327054180585124991688615793242549453938909973947711546977553792309871336536458108084356489552497660591531013961757014417329743855060922941483772238931116102065028007197220536968962298849455191559390992504801746216569311618055174279224263592444464167450640676220396186023052823468959549142561401592582604000917633895731317532101623114660556676669187398145204780981426444488787383617703095350940940922998080194963289249340252706407988075940015758211800294506277625646089946102049933743341191383331341744778822583653760974617053949512467245938462915532644051988676608104636243883275021329978255658547597875159497397117709172562356437228474736906081124992142962902934843954793171953382703469392613332377637124372597089958730977667276356910714428129119612064578767180388180924820063321065979925371389035324173341450150241699572954164321739747964180272344802702177678966724546115095737148346408260181393282787691638942270294469008951269161804213942767354527184420088760204792705971292936881021209794946912999730861941916360987299496935258167149741495247130294798292166423857884844876902210357052177764259081351890286973753719622755342350901472717332840683757902611364038936083240799663450638757894973180531235201833853295973466500248273050046249180918125224441882743184243599788124668927464412303813471323442768157816987642977190927469646204508992067869086267803047155891222871284789995813985283266620348620523857165370475442018728334262599189946340825520341792752572573696812923714403456854076965628319877950026330562407673860532438946246776215296789089826290161722515457263318238185743986072737958177048572317587189525136446426911138454071524008601106700912112244983210609787606259274374623318328045414510528901940767257789307434855146105149080172164637840177652236545052131688466288149392968163725289317267241571046086624289869250984995210686705664474593802594344326493290908719622953524669477697882627695546080703442516742407731368789437295305967566390962048364954347385539732345963981729101848205019457120256148619476103281993390880394067623749638347782194365830630237259994615444053825840868195171215453986454069576850132082425136675430030256757712012498957737703258033193656997955205570440281475701372974209045588235866010941065940438369266033978234860736346375468859723605250167162364220180569470065199706046890439632548631832947561197509884389627043413722076121305402116206714126939879800959969381996448679493189669550425259547763518407749323431818618108873478587991130637147258805692416662546293134525766984905197782564808015969979611276134352720008830119723253339780658070473217184172649457318214771847459332962377544349281464559190600099032786767125268717707690068845855165186553590034744133727106119212411073665205181931523925396703442600332050576166362740440626889099136137146072000246830198632293285619580506526520703522128584195893386379362583109851907800587892218246706362425827722476945841221059385872686243885591915366884167305258393861622479763109096158287494081082330676476311405096268516099906714054400991234827096831158878918852657845732052477425349267416272303449152253053257820643284203845330744419076467102668557349383126919213368726511820879411374046301124063909898763081290506226136807902428500367898553567749296340437779303777908103276421886591086178399722459490812907034008135140442617332177042760875752453088607759868890309990671919289084026377821113248073865577271286632352931297200637009239720594046562227646145909816523322437342130462266233049533352053076531233519920527436751681390468878965248932686862050792517489309125387681050039912680627403727943191567400801350458436610327416067974826285346100425428597673402849601345803433913383391074082866422106966022466681206269417180677475837219868588491600141293572592335880494233744632425410648962485255910451477124893154887403141759328873945013333776991138002047406441489855447520756739861471470702140137261203726562730120047200086763518629657123622380339994089166899687677687633488245970386881823596526502161152183371719605163196457670627416880410181654300969642499052895000858101646655802517005321970038146242507111506452706663153543140122838429090573069627820107149430793111836241915282157480337528458029222009543422680036844067438889765524942371875507419604001246412698162168040711085843888571877601352540763525597061229187464702084237838161316706118145559122484065881909250361396626952738435231098540061503359461881149888327407965066464685422191596317019476386090735463251511894792371176201124384952002844961966232614651267769166865770307465034674393587037557252922081703913407630537308027610094989021779084230766637272732280714864012925646475790900540722735898708530347991171020122562801865322927307139067793524118432934667073133510281281828944988005110892973755541940501976243554881368284331738051051163525116988135370764127483392865500712402537177532899528186153564877274016861610379461738975247182223806595893083754528166535503677993620567493631866616032698313710052460390236321755541574953911340989533138906065464487898294810134829482577260571837315871849384509904387028431203777923761112458277381894118025432395723555696847432725679772246081189110577676929350440214748142677137345632292441602082180202376424856807633142422270499609714795394891364331822094697299271686895571364938454485405525547753607700223944140476262399793063495461410316414379573025731524768076468813185760981161265437811155113495409350318687642225991491584290520455175621425759144018283613982327681385825601797864836116058465725189073161398099452162593726338868785653615625485650846885663331583465013082161560273845986000421946863522710647747658118029962325674420708391927313903387477262421227915595832715878499485108138212263614753142810992501710775225888137636888710165393861711602399380062534458231301575777926498712595096991964905915821359679623073358426373059687757262994412912125280631220173056959933330456853151761033777361459807244180710328804993363517928364050034381553876302882607084808148995054728351613655620267574679009132878079502853228655494976582457963281255822377501731576465911936471138241493496055727943381215350137813982590897399371907048920473421080057004567175898973821167447671043981451718013008074974663191057757480618774739063973064215422147733142200541169750391543890801284459595657907133491629172697057750346287180794475279469953017275928074741722939081498634098646651508844415826526214781029615664432617169601642376991106638711294725470557032765614818659607696231699759145059870856556499451612666027206498286833681196110147222709603084385830979394531495643787731537607198253353944333424850783291418126848992735819543949243263684055606610988578639596369054880406298983440040562699379503078542925826323446952801427081579638194587668964853945323049828597184776149883903183378079802880769197160841371125579986340666218798255499974491270385936796279973548329186689694319541857221995846715931239637435187997486373290749274852739423903983103658161831836518150582634896461869795757204555637822824884352779969002281704889586418203056816755923162623822596816327789961687905418560763327413124240058755234290140818642640043585191668171863767550552722455924347469603403808942655179724487692081119697643022782624627294767562304594986025445043534803185825647211232464972198493063331146749017712177042629582380843822257233248711305845236425713284002202968286967394581098882443379793738273286149705194103732432389416831125982414289305326805792937876759928484525341221157144118594369828086746945847433141137490194261773291987966112682788455486528908377169715564533714187091288434614850603976778423517907414671172792602480370888175126012275327207439863768522893679823624151785878851818887748797775337432306277746230105385817429622655716014044501347585825979831161959353756979415548447410204430299756123208412680763689076282231023796155679871257994402816465869758695435742845350490182747257913066105222318939429763259257578102663896022219524764606103563911837447384196359042009443857557142198019067021159542749972396205337497410508317116031090450966025836830805052527524987768942348661045679603858536578802380242379158310888076338252933489865330143609890880724816188929100360957040330045083802298173910876406364836446469477381935067188749577395399246475686141882376205818387530294151430439846686246150310069874567858073074438602624878228454014744214963334477756591709513678544193255927949672701763534980397127886618753233031401303985607562984336758665481296992759985605462516864919879554181462470082712831419111380202310166750416570145627569737798411826048421008370219647153836394352689031272709195113163779953507375421317128050065246434976742401707431510955274573283190643247528948941212164539294761974112017523314733232523789556919248701119042684792818384006116987119039777022373069237352337907747511965453146197227269871226367438552899744651681027370516694033330977432717331131854832585498131414347873056689973045222218267826203661222158185341315835267688045820440127863600812732089144164440353609154488356614558530409969943711655586717239029885905534503747584260126251998038032446352255275921565778724320150921099746129149566763404001535091535613139307822561920554967156056092273711940435038404790930107245957543701790237135978000180222919927956746755808247318188323386006777228673524035315572343683301484800771970195438749711368517876973810192585970656783335600427346466682838693182380319753320673684277429697743052923127740473948981725985603909589408881949269498728625650677090694803897690275354917970189533796420325132801293863038268237004366825662835187256468876530635362284556051466323621520305047010220428966454899401135153308637668586820313833521611405531792768574693932100477572362963423298972338548370554736592810883096926709504522480103103253673261579337194892544490086281107608401050173781951842635215478759078535494315547509061059257091868036376596086508789736702823857678011354386828744437653870375979461902910682705965598546944650934130553712812949510736617777545980427086231069551876101268196874000622864919005076043516228907064734915260529241514205875437829384205829790239374434806264306319754874929560142960875452923828024870603923148225102064664696013101459295482548515422388464101571826646400955294333896390214753278099524681072019939003606621232953757222904978233863768509963965311287770904369220459226763696374813050893200259339062780277595450716748774408106795364642375194256940200743903453990826326973563684079532394030034169058574676090639868002252259043181865920062596965335523679883707996071591029893739783754011603681331596418594470308392989156016439290557393823510986170433722254189602877806241729940327252631043418511381813969845945335791888866366889758852769456119214363357606558822557915483157142753144443197669181108712874427886793252549164495626250818113721178037478602935010337482806769917812906212504140059018852564498687318221753565521548322652491747358782221283146575939039876342191839031181083389223512942238522140630859074434324305492600813506796468040114491994500313528333481900758723462232730832525556187121793517843257691668349804165133529779587570181072645311626927355480509249188430629486082006027524585071814007997615177215071549015791217197663793599833537594750733079625016415934196968975229138023130342367480088947058606238396623373473503772394022845238571284568190948718319362869185944938809465492310530644547446338642445912896357456963106044582536521462471467471377065908109291130095723827679186540489034607021434552939771997627405335334504187064782581529272816522710811465764995440275586971625322247378562218072480709733519786263112422867721941379394807957492494860159930730623948458720015330169437613210997017415044428865949022323741201153385170777946486114025807019777357013806140281040042202936648233965084094748107919029697711260349343894718084371765786385881393854962762310842145756432305022129802886800305327554242015688461239071138903623015176494640752964496656222391036055556577335425256942870677209879742609923623187961187195691778326732978371086543313472164514702968494302426548672382905675632885336805265874762310379963423597956995540465717863364590503425279992421597649195348063959729746623445835572283091208504707726794005602087012838408114102703422405948349972540100227550190921629831730019329359156901843089899772157036326661661457454123368523478794527632069086563790419867549669858601878951154712877855433568719368346007258261410085273997830497636345432951473405358500416174689082825091303645258257336502177273045147409383668677571023435141802285095062300349782116429102964636770774030092502285506102496358155037930701769973378132388664500680546109122405883500371521694505560015931912560366782867618292388810950540398142491331476110086482072473003081839736675531456136595954837660727340825282066596734107323494263082374625170465774832363309013553671710809553306698524849442624818583287640155014110478163343758758743524041122290622227909983989062128541435678222425238587785289620092253988876693113828635234033700600202130042135460190071919352810080056451675186443169796701281188591068634850999292129429469328271344194241355117082266060998093591973330288295043239318963747047845045107617547258689936614042512953328380608507979876368803762084760949331711910484249790026100431102598473389283846502052328770422422779122962122930940978856877904609709615647928797072490472331478200780013603754736364523059394768459607508655931591773107405428804303332452873488550490990100542262603012020702925296067404394388424049543896633575659156352428296019739090054026215809096453685644162001190067714340634263139061656181717349069073460780423270013302302462424084856161371067754634403665075363449074427123781922210148427340285809774488415907051341964208938399372238830490390451303154771919684344238538475753511595739005596589767449609084862413421554519093006582925336897718788212896655387047681801868507068852784080370433703122586158270857037711155825097654044222815451664074797012151852079537176958957263461695970345920699562006656666001872289965871565337367169053473696858859855795308661808899861898407794679078128365059177766912774575292026574927977795948440489515268679569605792649502484586498989144516863488122657730831455407364937233155516445203073929258847405514664421279471405266254326817566269092333625147002394851287358870420326933939521562312447021026347843757517336925971539951484889280218467321528446541983257472569976622105964576296485914331192106124403961786565694092839182221307318497724651737062140061412811296231987299478318124452538100466134294341010621436006094654089301797909545949166648549263950128140667063718698539047167564475228650124926520290993101172858997640285795406604286910498940493460123294068041755164916617908174978347831956650550409286794847297278590344401002649593447268243047060399470155138056135446168858278150686638597093045028875387028372303180584849955224659492419623553594423522993090380127824745757921270389168546155714991674499542924213541119238969644055078442726761611060793474813235230546647951916226458373361331455946749825707929598105645728569624091770789138316356727009095176019792987950831732259389869416679182024322116627776079664746468098900982803821198634543461781582917450593605733296833969482908304585284308980331822707894181796050562186322977313838233570424584031121021739248654639760432916470322879817773163809691846360744019850276673874448887026801005678613457319551387300507384052891392794844997106397403544785069873189798609393646446039689024369515204263368067449122890349292388808675064214814404085065455846137914214375991706737895863529668199842691051836626835887824713252116533278390958530110013424676856176285793035219747023621343311935099920721452399990125329351267385157127099392860970085405196811057990060041302445711531891942558051244852783990124349508348115804554666543748529673046091680094827478240166267577604224779671365001232680465898043969039875808266034398028164758365783734314318965956943767271691164034287801971185480936248175403610732288004671213623100336509850457239181207850158374926008399490290580137532832378982675526512108299446626446702905323938353425522413206844929852490843449550971775296286326924115499255622886429341349495916862040296681142600943165454607628049642379068125224807363332694447209398292591374278886568687993226744809930662766448975940325147616795381322343809995717701268069948327402402938740287035529540286975865073665752713176000475187293373574698434724206439735527461351156822967906922516546096428923317857456076570689565744763397685771604246291046747228318102852320042869619194097585107275508468638883295082539809423780022164607615032244802966332366663399132853449845972478092873701625123967577565879471002348667771254920690606110757181534727865199419832686059265832728634299631178873727994094699772050042500692143214471271471004982124001280704291296389653986862691809409322761216985811524114326942845807986194450239894142348341393750248104302427818716110553199079506538861409848269954084770059137296036516996195226627104092208424742678533386736714302456110091793062513195132858941198778712763585916144789669859745530047945650224015113490759278903939552702364064828995592032270218332115123853242397249820011244146262042578994732010200489094026840847382731690589615251887955041326645263798518972786717304516661859148034084197867057345210673656142901427830897037574214785534380707481311562295383914166857407310782900841530648423751829407255319521396208656050857720305264776270464763344608333917586721664693729668558905674439589184946700660502301872650444541991525493089949521343575963013773799937370495126427123390550525185829747118582788313463527648523201353352806037275491699160410089324055337319629687629131675730541423046663091538287188963492516370859908127526676637201026901356737429401759368499639537943265235269597725247458214479463304570824301658424604595333763547889106216954822497594419423027734351802894632606746167846070415598805765342033968871726559274778569894814754199062816640917972813879207739649100791357384852853501652936606318107694631860870629695976862759316168411315788138881877767878395056140231502819364833030605840008886877323910765228823716151690803951083603879202173041762636550939536785578572611918222536482607312127720178801652638277047473545423567066641987588109247497862081359310752415951929692682438032777624184073382352266517455957679344191946584434028247507441976968808168392967627102153820939352166742779505699952182533636504584374639540773042453026632931536744298561971175827544396838978241304059180188296665991910567640663560073613260028988197094541728602909153108586478717314907224266284939779545390329538621630588641035081537827602345443396509085332257474191148562569182969703103510640890321445354825718781557100882162022933356705328349135266966937813838964142492432001637665141577266615188601702591037258567871801236265094687210041629734090995828239237282145358766457965149755960483504011900761711838620447863922620800346670959580140474936024556101403308483314553320499820948005659880456333812462105722744361533157085485597579000595471421321020890697068263975027055526023822283240767423450121227299050331103071636467033572914399718233287265132518629035637445575563993738734747973476448744485980303382726363522221293751153314694660165111565064096776449562982068905681095397444884436489963063176413884106533756786957591317648237103633570695241042073532653992429839506991483112895946009800936644795896114540303231819294928951638126170137317039294092371747979034903840458309168942483215933428595716964921430839789481381020357675296310812765471902133593392956418797649472588134002476765439294146798116093352721172061540698817011682428474383525953959326371729750707894732617325822814206644752530476310337814540512077154389849466277237821936110549946591070937607022245288854708300205580546261769944541493400212885714205217296071598739654083460078986944907075546517590067186130392846870996425600408302493184967896282979052348028036562848368583505086924078642402207318802878745491546383753612568997743735101406370361143694485107915132552369973875368461548392092870217405902238507509850343992100043743928023540232838426367863832359025027584291481546606307226462108803591329288706624317490796419045686923525371146696105327717128205550354756055584531576485246306625134092704348242244902923680866414125934826322215728123374253416471786085838192765538608289872988650662434670466482444532668941645219017206803879499785206868891168290438646996558977925935990115345837991996708861102247699435627631456911793688165232589224742111744132750881969132970642476247296266868957775221128395107012515876371185902757887292825477013746340521901320148500618699375080570048829503002285985372715181116606165894268267955290565702342654589327379355528055258159294309782100492529999212153285181554537838069690701748519568647778609653739723055157745550156854677348045990863220746857593688033736965536417295595759807984802280280739435102295187259654543516416395491846558413140512586428630574707918999554020037927238834966099375899309056718073584901453460637499407676317886180707882533550902777162257033713676932936174227808167855485014958725905331309278133021222082796252437013088866188891301859265430382833365762021537223749258551050736522817596852789659849816944125052610194025881423387083999191396839958737727124412002199910441092070832484896291896005476757867489854377422506207158412823414061750494117520430435353838525672121930938234367357288753137131009169155939651241932032747072302186751662049481275991475521136942466913410466191408008342167534851972426284742069548703829046036706989954523580139758904463796749501197559604519961752808199555569121331061181342919154166604009408649809756274178165050199235078604066340567739174827102764391278908470295969309182614996427045135971267977068894767344293518173154524453869371965822292374544179880378254440670294404450328897152900212510386904993512278149653816896107162475444685112721990757689599284156713799435807211237358005351990653123488608653953478464197822831906261747127762008764465474947279218976869387433211251018916672003808392171710724179310439653543436524050205576892478609671702655041670004803824249390767236357879161932458869239363563473479242723150992151847219237281794092437423695978071627731680713365234561877379668738127193278951048307257034004917699576663341517618346768956003490501587117632045217004113369626182570346674616297372174037651633091275249946021469261017411162352811744530111357286958083006025331806063920787130685205197817416457924214572684870188863029154571411561705522067362549780385100481516930174355566239031764521896467545754430847485981877891818880955708708346482934188908699198039703080928678679325941040953287240901985310019393444547417850846890499361163491361374569262906974778773266358291472979216059145877590542445431383941710250822471138321258682284337839709646997553187963534579951440993294002652379796557971994722286026198353943549573314278808373720867210107750783848924738934070848677745584675556342550984091813633401775757056566492654876880888023252482194218695323638797014966528366106729674344605474800024802097610265037227096896257174961930380335781505078723338227686652918071285909637614824705849598012676970237894004405175572233900675724734490236190472836028552641282927583734926888404762575179373730473066521470769282719207404356977118596746627770717023207998707179340822609789788845539850064486820759586868614219115746305668052097176674612269696478761088526986014124865773226583685929613520003398065748645807912380336995673142699054626362728681391199110506718030689811404881421027331084695233830617852210325685842458773434623161151620623898820590204792247294889729697813755745779203574101686476437694908075035864755513893738452328946922979797365353981406459403016070090448996786763595660396625421798277218846197751055088155306997352336273554213881776950993206934130672949230792794001667964816681100741310917311935775227762301719660970724245426632989902781467413445590055229314766894481327237218485155235438437636881516593586119492852089509061593290591472137842273343511057626198074826876899423267436041306012874412601180670908151858929449632801507811321847782621757420921959977157165203765785033816037170869191828325156737378247939639362653469866146204307526476602816629348889002072677618310968243216552136910819244454476487756257522302401745368127131642507388933340614285090567456641812744575525722850342069960308050113552273306073695150347677423652144487776600514044680483417701390968311757611804465786126629123284564542288086317470200254972223933341323778528384210851746716220155599450169322740874917960778233705364459739694425638724369549366592201070583998430907565318847519995036249530852626604824995621441989297847822895218029351063419520405906152843078881325131385236208168073806280153375284325330356652961656332263557025108523307416118646206246241144030849613357468091083748258714205069196273616944302912979809341626993409851327715347201298610363613417857598318532865040375557871306477161050361432062441740529030630010558608414899057537794299431645179174997941327268267713446852294871097338491231177178641859287734089309628614804610563912690350183050476789582144173795295256864745922563992441339931533162666565495526635715456700182850336278414343527185530864814973291018350839498497328948673445490268430815487548638640030763734527380459424318116334125229941779886892246797648691093967302286790434178967507565990446432159576264686128813758676107836146575842058913822281363290291412083656872809522760327300915467503206880276765022135277473353804374284729886657274874637893189522993028633602588883325564991664211764515566107560840963208732121400894641525652161503846289077760796129298152243888249736317585076998146322973311889417502848726726392280385502437025590237791330968153246496388614264304401326476152492429092361109490762481021478894031594058315158350511328111150767198913530306241335966673379007988103187018505361726277570105775605677002947021039533983758829597533573765460412806213598098391906170988784821195663046349473277857742678721577611734156041599695121482142617085330066685153864442047676658107837435069750089081733617047044302130112430167042497924099848531759351753333800577031603135191201593590030980475150407552608668791708399966017298093983145189581168919439907029601919674905761600239129621005891067231153703135970512145250768858745603994125951994626546014893313754477857738270256371933004464582041317575515171786989283009769708644880620792132831640961152344048972468673347261120517612638019895784748985184049004907284313899239934695934189616293825554360337291899066540435828807725185130848190110920260497061620396045560710080732816354266382330622113621281165164825172484596218251598201428253449771832057146473128623465010371977977888472443142933789921728311102893579878005076041098201471933355203827372967887758352690674252935599629889865107393085985283679919760325865897056956212460289722942277960399836303624959419339060436604650122938766426841938909831756522230000432674714950830544852345085305414834526756478045938456761983717446646948866610279571812077708893237019346923435258865222556571736950002843419600864530139729475732079617544126941075224666776970287975024955348360112545148809018278248529628644756583986918937778646158126838072462293390316764468675793409142092575777944326040648972190560427660471235477710151100243179987761927157415820496453649047806849137983767446871061824982003217119322505961332166165543923762255103592221647039001929986668986468502814402256872098986880786785210325615667550516372546117267799726262428543148881588957697042908616568376905684629796613677808681438477936257418401500712185771667826595289688182026840722666797216682603874035108960001272190290960435932832179807027760242545412693763505096302833097828236998388210877274407294836852968599828872767208938445564494279027660745045178834975905664369091630015704588268518710470012895174703621801613662937022079704510775898750425651260240671050090300787551376803335678946341535453872809719414327593064201065303393716184800325789599946119263074621032529980561337599746757661200851352609017227613045542566564605561176362025913889851251227613513553808441600154832535236653095718656606074287488210322640622176561563899757794286696182182107001077929217318779797219554347394760085318494089982225526048082508179232752471070512619891729441832703564879516966832006604342456043992320981325385436741543037319236549453038877459125787105899142996282629530310338374215001117144683153543276818223146116158079769778503909520734083157110620699550320899127270788932124215553096699602186254362376039644623167857550379890009224923120592464112087706106804375198273550649307644079417839872826904219452052688522668604535361990091786472329969925203017780289133950965497320302269353690355827743903139002912437722913837869132093634213665540476383548203162333029956562015926021657768481687397264459273552252870301148037860699752544159755109746474555187908137394799929057223699555190848351141852584537969887490015129420908906971706272267680690474974508727193458076360645850672435392408617080262774785445088223832089194708306994578691393966435878876010531089523609112305738507647560553250628548852253124962658476095070845330842095906181618790752061307657197621103723965573300830777291673976552186298572217363514241629005535531288010189335709615910303500746563203229686238323766466858738472431777663624724682283877592804901030267628313581702363631634559073127544884802559731705317340281426225727511688351261400607937743830284402711212198401582298637675733665749279942848946782940260596009807540481414743788239101488248053631203795670766577257167767958392280297481586574405743148305332634735260762387782693293740506880878168455766095521103300705944920410677361322659781909780977484551084198204669406737521428109426591543406065675271544834052695027803335180477925554156031940556888784683478132623360108265452347813259188837540644133649804444926212019933672554257824694296932959079638207419466380440042042507364017129009467100958225133142854183418505142298118016774715808312926031422181494270258961080024998962790304866089619277465849892477019929592681597483259936806379520492825164755602927448879609101370766865519813479134020435480116659961350476357759742902300226043312990252376342700849599471704011057448674021210076302826583894457650596563853603722101435690190565165226058159817962333351632437402803654794344213836331008211559925805038856675970981390596436442147100465025759821571331353197882278514561578960404214767440263162443137485332697043262414045630234352311081619988731441412594439266199601321069440098012667066445617727832892087247020280534874258190059700331249990499291919973256622511789773029091166956462956668186396014562529144139952046969857536429764016099722912716495783653624076847587811190183284463734219497057784065387866023328144277121855229974186054574177981894367494116968808948158515535160271781295773781626456421246854607267899239062438517006297889490453600861911517273882118079086069787882277019891666586413204386356001772284235902051717196770549271355977867282424239484163821998687904060718080040825046490597468453551412748882376111966127813647158204335521738524299869263425551648774180407241915344916873663961824764811425736162074072535315082965441229199229765509369317795118166960804085936937733930635599040755326160316889691221079824045287373188769751571768796511743612477076778038259094769640537640707345570389812754108545576555661345413741133774768437421410158743907778600569837609676843961178567788997182651155959993263581170882788111843332970041380460327293486044747593494847788475167918268341588189307182923727438455277726952016028490352484883195859050852884922104745568543696170569618230726703086967464939730951552351584353394771489987888790290167231076752650687624010437073237113668307843331111970960076109488363761651749174734603356294329303017017834734914374044637107207087756915115842519460223349088562028965897049054807785089824121573024454385746149678008195575476039624036106154217406623211357290536726245658811536538203833812132807707219070149354428040959377904521544176262772188543750258361965078365232248531398769996917278461573089291663576503335004458291005141117269565230430788269270626818982050709558557511651083146818702572303311918119425312900836012364517000476616237846810759751177164250964528547609025619110754300102868992829324235180422444450891359027099328988074913242401552435528347115072850357666746500744307209137073332520444884287052210216937857645740083598914292108599941145278916417582336582707933958191137784345400569122195821856635574592548226223347789044220301693487588879142364824086431610517642560930939340085659252920857109468644764558954916642084778281275597205063848971343744703722949446038606810686147107953715784628018987845833964611149269867646351851036136065240413723996470670885219126906354228349839218859752436630037305433099909277712362338844005055206527810543547918101185273128372761104055776313079178079431114897130899528249868538985746743498864182284458379422052973173652589428610926872246447282878565199593298098735883642773102039966714213431232563677620032579137306970811144730344012855628134084979836672966174343053526292451469992649814173519806723290932985668857339861071034309350184282781831631352262500016062289500910793981321676785391296741326557694568107075829515049613268969873624703094322254344170298878598020040284077739306647768043137758858322219636844612071315619732978216663137066032150928225238223236220937949455226183371079143389994211910178369647672185184367867553706870503700270737166163743831283229621993448106316138022648772393923628260606752253426174494463327615207441022936365754210439383373087476740903195144464991796836951761019837092188151315371273415741529857145603137121694332437285209856354741511421758966654251060462650413774271218495506793237855604399621400279678147468796289620179641330912879651840372990850316854669085545048463458459372001899404487322079425736861996404935635758918650207219046687022996963484391294399495160348944099924265473271740174288743821100383631868721016372761668546272994809096635511547402945880470283055184205857255387666486991786584475142118154203488357425984934105182588955205586372660292965430608402628645999734680011110140578301186918277561569371769320833884918827364513483580430271986721670272754090491295668425322119001249799572566609102145205361674357174584165056149076143569196213355926910720675303322812518136976979968833569001767895507147008270385772324318690528150347313491500247678981394293068622204859842039311571939074296512223215771951525935502525211374336231072516720744014715658782163565663708569733331273018822554043006695652216051804851278713672524876184821679555392086734371209492808510594215396009653536799899030601980243805178411464509524824204509109903898295498606776532364380647060497453560253979863496601565704747652686318319555237157627321960924274717328197270058513679511430329221447281990483824370037824455553412342627457731096945550622253527943392746474869315874497652721617819877939001118461781176951707468442384320708080425213645139918451372993439804345607396510323173104584364565670656474303680527478816555841898408508807801612730913460190605129201602548263442320497500500670014305701967943070493242430642603590020902024609462433384013652642136009362117324011502771150207023614701959905080777713504699558604041142332750009445256250082945692055503256791482928855437068567754483338621509084802543280464519691347256492863137160083484761137022641115694146302577153664979576419253279825457987952164160957551218327400963333105277840707006594140900333165763778744439121977163050826555693994451916530071409071238084283523495243093264061520422187133473187222768784373044663912670257442995757480940905160534425783745064572601068801011828460369036454633807597487489376354888510144930773115276186714787089934879386422548353670794472901570189261869857278471747598760053761825633139463519098809021525543572413429600260902832985336719033904775211926231251804320608887175688208653348223638656062609562827114556805023664615616877172613576367748042277795318555065129567981579840547889004514009376673365042096528746442020083769519101258236683217642595849204460271198425272781831084236103942582410907988815995598269509413510199160743120326593393132307768354077301971959177480626869050747717599664811780858869513334920534587398252530621408183401020581725254794785657790211388164131228518539597597793157228617177670105578670296256853651609119632061062210824501442010304233067435588776627258369372112171516987789967173238325392087351311760305817350637066093089688139025375756413051573617111046580728661516426453264403434398621806339255020168202973127678818774337561608662057283470930322311817994428259171369025044632727258048831529252830089492439370321772989595854772142056040214596794587497726430407203647784835241147853337044364648426066359385786702742027200801806813463491056587489008228109173362157439216036898734263756687074619087965383201328268792529956599770666662756106620906269471927345755704825298364829007695016751905256443441692762000927327748654063981815226931696642470570865239626888386545228847554610125748956745509206185407400075132222602274316790865065489848174416304249180122413307066360123737603279957546710817193761844166597597644724475953770106770727981557707550726820709735760776824511269880381374840409714265518952985036704899409304884173135728909695763809790062304401467304700764674651529338297085568106431658049191017538871193361784369740044050348316554494947666930493112598864439425753162179865354558319630439448012620213477492762916755156087644511312778790906503580597926073806673614444148910146124459751729349426462293124105910683195581002535556967769640435021911526971037601458354583772637579420139292303090678068352521129306942198929669600397445484389674434089560101643991481530975433925065633023515401789989584669489680709602362402654173719151883727965182058665742892882115443672331911184732193121803844819710733707159164972110537183065159662927423741162623999461955598162440416357303821717695799011199392186164443856863945266093069759974045124405424401006197149114907923789293404234103016081432861177777107326083095302726694462005276698882033316211715622178599921935183231681484174792004275447557361631560972380068517780511542511966690038091033869632503289831456633497703913057880551557880175246435642342944616103807272698540767228094293391274583100150314576670173831590753712017902255014400141901079265324149822637790494806088008264713905229107666888692880640770717968972781676569896942874694705109151804827052292550399592069899813725548541920130385974055199368810921757289425199993021582451428878311921811930008040731284791047370116546841954392101561199306819147605954534722347459763463302737963265822729287530404091400784971594821057136044896123329032159517839454046744680848658463261520453300438755314017669684813026606314828976913918248775742083849158402419949376496016668912243076837300672492657496468883865784742145466394044340938752326086450210947159387913028872344060145507730601167353288346126440335682468126913409667546448014897916980007304207848455216854663460631328340752380780720703219774729352639228892544726210620844843372715545247073956923678898428892276943411937258053215471486850965671010856371768967758004962864069564677200391919631311645224282693765341136077059613695324588529557511283366921085305329045766151954393947255569086160737571984674498467524021480603623657137070779225088021980898783678849865212119644903354487918103944526801987344366284208910241952038199215332778724539182152759098757703207033427194990227592062823508745842274852834680848960859702293334198444287796855246869320205792757862240236001832805497025916569558228863553255892818920770792855204359402589800326773820547165819960341088858383216948675389676481630668816201073704033447247471303396809614989497052450855189565082931768338777234227254225776402607721132625893996338094084868341343051125758288121755450834397069230065006093180552154538799323047268977069327321603343374036941367206803587352652523227307840254750730199699191143576792271859023654940446636252398450778436535251302251595519283354217375198827202854996826455079905766599379577372794276572757251933716949969188047310130156170778447429166912506852760347806239814289211623941025635201097104531240921172962099453133173051900736506680472789482085787396223292155908580991338248681443571819548309109843574613667778692749963590813131087874218777027203824203156774316596917214011132303386573777877594957816875535696900925315494247816416246512091480179721966153707570301033959990658211404168840859068317024789855439781697423891346418249964032805716854985839854040885987333069765103433398492519741510927605007859071262069530510556065897848488294281083228443731697100579150311105308706085189507493024289221789511948809901704011441726991100922738570025786014723001366510954714215940776171865945202396810174609872517957683260400971565188714275237251807022327052473432438505045417274331990376794028970371068039101402835685732046684083844643920757923983862162731881646393682906833666728295983249494197828264069222463527713429724381939477069611031461108790766804580292430162747383173616340725950208649321902382322467597415008975744792596704511293619061653833362643935921174020678119017415146042532846734820273707617869082004339170084419599408754787341410805736474176790092582433575174227059715942795543150890697539057902941589254985333611201471918618380395495622916443260495511571516059199195399397686958101441235882346292606858072306164239103888605368521117237731918537567457401224903457996264019437765306861911014882895492592029693820498776071661634697988009651014083716461091221684162792367753410610829992119221179596338688171404747860402993664472935568381308362234008025896539194412764729709699745332398289641309985621191679614508509162218547487592432385793267401190393902039720673736422315088496241990595830591904110521439355745317868646456471237700495147484033841588146393762832468196727086438774720614702629542772510781822403076527937748947609584106972072105226362725761365001411396307517885832828785626797066739290657639796123208663415950285222309109076992141570468936843253903420682525525136136866668618900651222571169461476470708377901844071795492479269572499454179698553557762329448100609401336990741872866496942655308244999704285301696940468928001850107570393255658409634234450830165453391642138082481631567106123909857249596492236687071327641941794008561173744879969801490125970020873520445688549279743005326624856400785804216863917523543037948592136233062796331172546121000862247850691390508199931940282259259714641520727776271320306286053505588329787586661528355272966585273513425047829540481487608610444039375928760564353280782983576232511247789188202978139119926442375340676295814434513022990580563554426630844466790223140403245750696741229045865089763711187579553499846821161884293711245751334063228469380596857916585937156147975802977080771581280049390042528497845368412261893757815637591861583137517336111072183402771507506616916762285423954723627451033082000894294715975903392349071718950363555448537391824175739543962886891332038081951017037381254924799244413435512558952045118685040373892085712991197038476749406184990440619060981534489070573763057448410365930993067721444641412660853177727945225554558091714380141436184165866285033213075663724982419668113520525827999720584661380983880867583546351055597765296055235736587441843726779488005054989831682643129627940185097530957949993764963087238100312203261268595125319057391415859074122727669753420727307817238215678603679263829368316969124541884273868055461105999763753036017238240929592123155490322714350575889581324096434855229952217293793038051120076763607927434710091332266170282303010314493865458644363073144088376985647363817762213042613292829135370346895801836589869477630729115444743105857404278832230785349950998360139520327724183319161604414313542740146721974183643254019470390805099018389365601051745424161384792443379406694694522790038979325640200874835704929248300814155926398292554041798699303253909063952320304400484524338957045555677655655231841708556309812267418827696781600656521125110933835717355867272023561265218023682646513137759048956803396877322161392154409778482177858728760612154865642829605260448762992408124996527034682088985157860948796583236799348977700598060079558303280705620694357763657048931614166142007438089214004438551002251699925603584440440796994064528536472608028374762127834956756658362880788338817063849655954981178941891540073065936566383015316033866366828350206522001130364576191160234936891125576031454238784441786503585847978683014394179844049351130443970304918900393383790728123657801766235134809146537097868184902036855937255086535783277336200042843671767307313088910825986904656591995802015290233569444940528242869547170147433293765423862279366853848147271683829163913076908274904117138752081450721306691682176753207024986933840552578465455739297797288799971346887074881882662746353629231979015395725906470419614843461125388976225822750467301228737388583421919577883221647367032274005115365474337172361722811496207738757344211060351512849324158250161746470709715840045832304352368325468347194784748183440292948364676372195127136652778527050968195710352768977051420589883734090133634606068556504186537122008381140336384776103968007401299763883381684716432234701357868164090619911969350520461975671806529015062647979682823005875743349285781522075692317794355581711365069117579476655080505115633708190972785483549701628303421216836137769358593575465139711021413441549271364083692150157120840158579014577059320481371446922528772595646974296312908896555727486787817122336757953494470219784524846419056525981896920269607853638401073119489778817009568101453141865951942631861217800681126556347851979519303961817482236733853478325731128038656180337355376041671542869528338729101684565326971568625170556639841536534984699341969384985246792586493625456779427368908330536502092807150233800841961086384184988955639180387519596054869761747096701504186756215647149762430140192611435901088190468232046745355400024970222820177811287442359408354889171642307111571430147679478063624434501066309432962645524763086343340664341609078269811254172994791077622308826809559167720929699010326109866439972607198028352344070012294857393126148430837321174184999939772436117237682588309183007917098359148776296720321566526127005420545963085413408743276574656766472135217855038300164710752213783565544276912010118463082008893035019881268222946095944198158302251790561419219068778254327619000610743499619791082673680793573997092424981782626253194227813812078387193333362675958136086760618815439734161846428735001662864546849563120040280716066957220276992877532591796328985914748448694279218049207860124035822356697866617531616360219000577648114017444261528348257485278116852253576322650001869914333363316950209662724536605162514677547803452801474956074892661378315414176923493618049061380743156170022498024810254792368449752272727900271846576213625529818887231732378447340376442523906154801256609557874539293629975431415167383179244593406672061800949941544403452880325023615632207854556238001507598143249003572114204256139773235853946178414128881342500784182662331451396795886211999952915329838512554890856436244174470758627785299587952640917626256959439644741100794217558304028038507361431506614696641252472260550207695331535401305537525491055718746502067608105741322439963120088489629275998407677050423850766816270685015395219916619391173301796901889517128324353973003939346769254482642535299397794385852073636234960785523859261498698172254005777534320705180716951321966111130889161914261462694922101645622335284987491930691464384904398009250894098271117478869567268280348162967356968056132553656262201230196972077905537327722808681493003569130910334911024126677559137517574330379656133173857174394277613948672791228543996471476888786693303423652696488106328046822491513015407386390896446350788327525935466375412513754873858358568424923456588019298509217008487387650590113915919401870103125841783942230007001964312979556339305208876741014131683175792601569057991974366598685187607462459054393258061803890747452924206020595622034473545508133722420559145525906195947161257768953563225136431059465789977474868484614450692099563090707419366339706332250637340251122860659886305209879236556905340179617105932642818905138727072069519697653475684971163222561345179069332271944384281683555880862915022146988016681412793424752033248141458698327062697449664341103245910694159439361652365115405842750503853864729462905978846396108516081613013243816050788905123216716394410359658834110149091921984656684772793090193514587771150820697771046063232283477450219046043427845947518252633104584498255186105817358932701262092497781597676004912075560379394055551899462045841161645728035938995167713100136933874061164081520490591532469789770102263721460112746184446100674410562914436969566103618673949948355151626305264283352982953831111921006175763556584169120338218389975078891528823670401063687875693767138393462182530063122086887803547056385489588287178563263081570155937265305850280865251009000413898944471963920315019856257278587821090725170608044362566432400089262418955752492691062204264368071534104480827772684577410294120639896466209568645292411907398266281429977257405346132912408542464917379536207867393863139554408881813804757506180547361928473512424361545912177476134872432631339708780246165672873946098203462454420420263840279825690136358494873267975662427412432263466326806968930316742035258433436613316120632252398751138446121596684639188315654391030039840045273070506567471217825358994638918609752347239303318477492645441733279941842329847106261148515941789361401874947031197887768755480356862995423884413758177048682371374698425054189524527053015958242910683713549343188428268235074026696343779313142636816422963613591596228345823680916030622206541999446867403750095232085288234859387458347420737187639179444320475280099785057642470677942849635628854005734054507449445262450257563364469941732873599899266721384632858592156453977322217645262643813527708649842400214645923010013013288791420624142351611161376468089419861971524359219514069622799974645044724347384113858805247439250266153321038206444102716665355661509074326634429393704329460774080820570338952943894237872814076496994307693948829003995495636909463335461049189633998430515571446654978250187739997703678477179302572434757035659478588326533076220255565191222931632794196466811364975655651333750381232717962775277261077846111484563986114158649745166316657240718640829225305469394936328687016824583486698609852171361580899737626891935460933363057359576973556484579447258146004954453291489023449702828543659497789684106791143688176923593934101070058503648124423803413918130077241913818537428590480943766696196186566132253282254940786241032471267058690519929636584843306895397834565695615230653003015877074568908578599065345087618280684320761082633310168365845559579177100294076937856829354108370479172638788253786360635848352964489030592876249606639329546166056333782555170142408972909441069995036939153775373222491584503998890563496712617821819477834895934773129941628412032422798973769088085501667894716007282888106101397747668857262302314305770507614037112822821497480420088767331036046142913722451665831986446734814896130187584664057932504910056089887913563326157991846812394126242103039261834765629734596205410623460370575324267196319944310849700763495126486328908987439338612680759534015162305081408459665025365445221457283399544879430035944128317751759774199032258710333667067714481659505073599290392531689553516088152937203528437968890094693777906302162097749492426103310539167622684930841404507917585100722408268203768346401982431788507975998602521370357804749632205547606033043053234281535429603055055129918281169295028152219854315059788718916286946516086500344812994686088993496030363863209375132321758518409115169419751974082342287959071612246070242995202789709598053844125916100228428914881077473633816430004413280323636679904864609204744941516745497241430306495357873109204265971814451494915298242923809047575656405187129830647092149048099951505264632255350754283639723611003033680004685541687739282144317916024103191471733831089368543674429376183759045889382424729163354540680072284664973129159866307835907315616303532631478106315242594311410205305079234905452222593170277820152087629831121071124392053097319288815265101777661864830558592224166205620389309134087009984874444824152096442949311805495548953746156620841784992990043476651843802717759695077264593486910272430154167716800644541372186452539861004820670473025127189614698409331033189529135962521809670014494674626584495002573933843751065534938050078053298246460435535677106875228798767354211617985336636983219854632543594279854099866288908579275042934728406716672118324504744071215137820051202498410989630031082418978708532542588359788459110795969992122568664943299260559632726971645563658650384715525987297355635998870765402533253779428706967771599795044962862037316816466647460721071965617432541825941496236927724962179588968632724497472952124161490400504756732933471220882232830174674671631658744521793923928440569504847179470527831526383192382263370852522676714811439568998553682645648500468471244874573034013266025060277911060367330302017473659302422226610636721927023084577870571909674856177314566760318481329201196110498924071948448658737460057970570828405718951383709088298895436932175547285564484229531112592230386847514695677652590011319805901127186705953340429553320414501953698096258711292647838870384399627780261601753432433469865202982477052426354112735045106156422598110574937915258117773984823954954013239462039959387407014296845384237679100926900426122562066967664271408200440754842309257330903064110094973097025598063787243532764453618826156533121321953040428920411275241003520390965019513070359887078049225944516144832546793859885308755034657691353786508396841389870363449563197926603048948152455763659723154297241781217228949965986751689871272850218765453753342048843108412807655704402049873342973446118974972741939148310082657840367111369944158399722577371638620840242248292466728711853371781179568772221306656959066646981998524481503045613512823169227007374609514328087108621952497960512140023254625079404545274935496663767677007182899954425349638841957250317378333201809658666616503315136631022713647914214958719797807212380115529352833879190984524357701825646260426566356043743984347081992610347194934705791581807001286765876569001506383266455818695983946328394366169985004235776556015289535572696204228043840238506389700114249142660298650492010889749386938657606082207614470661515051162646976003054452230349826599018866827232183903613945314956915410280471490544299911986656593959516603439834749619242720245247212323864047475004946608220696103985870555403114656857956139282846126888964965752478951675950033315353655738102320753545990055603600788977821389084605370177325172544358846210365945452672869497898656940294577938508191872848560962720916942085775448973241529278621887496886155003494943358864283029649122157934923756770818823598357118322156940162151089892466344310118021087328292427292897020837048389235576972859068073539093952427544228751980061501176982595441986691445749301275833885444132984231543913010935439830949221210321360729339479166686931924304526354452453613979100672147528850735769624423477801100874984443429443337827932016524918025297470484699711288974591355666965494898909211007039077150319761080310578614178160679487122357328720748315846102200631912082712344681734637785299834701345955430013522062427815685787704918460981830001543154268480848491394777274808769961556888566610713525781135074477286798736069805942813909888035098637574866881369626309668736169765988607715231623300837916690285040044085247157130173383411517610055084793255457529617919327536368420743325494177978744691712907511812402756440084353966032106583070545959557758677365717315063106208878270473991982173565421013055848808425465701326618811513568892153478389970437858939430962610320116890949467984945356019879334779377273022868374039045450542838369654508547090469053738425308205842145391327496217602773457682175395253808610278409701209009986256603793660309074835328856108783580438998732373563764664231122747853556761915866268920038957936680539675265492679312568627638149877418949228030491706677536357587108077524183526193711812048493198459039917239329706435939211693888033204141036468568789575827827480313757448704495470127360008412959481076855067860381918361255335917138619029321881799305493725695347216815591851103062365600192631224689442037612987660180738282009040906310871401646673411723851609833318058236256980923199653457286413505824192224603968441230126777824455780757121597486945512444277862980028513656522165988051442282988334524959423014586515946262822636420630112210724778167248864108884887394927273865160649668751134444837291239043494535016271625542760987311082889644959643445684283615352215904858975816333697390791056878236158412205278316815288125283257293602948630048860379693560088565929046332535766179055910637454862562018158582501540157958023335993165754292729502629360915599025963949099561779269446442086479757737190129911426513742259264307789223290521602424133979541612356135293869717824016437541444901062489002102202750372805826026889273395274314669355829364385210068171670074582070455686352310249472768759639454316153164372289061133663211327037638281842592290862824643106859865922882624762704158170941145771447911376611073658459325277514923830579299376946613129948931007787473620287708291164534141422718512777234045093799700817710040896218120988785298154390843142006406155373737506567957624658461467019010639911060735848577833185770938384583526159780540232226296104977579571623391954824444794523462748708993950657262134664399042265514265654276269068373116183806143781118763041335361067103015937608472860290944487863241816611968432391755346549661075976945253990749079915666607087586262197489050235826832597960162617692021071776724018308996044457355848348557078239493109695505284597436310197530379701413334921895124939357749379520344544285461825403331876326017827618076009925685922824718526346228139364803022957958974571136864754403618136037674424258587668899267632060866442235921543272466831758716878836444538435075728699767273283655228716508579854479249324708585296050403148151928488786357097753186296071312058429643007580986550380100482460177048651908625595328860773339204488516657113917953862537539905122478514055205882501396086108221933536344201577387456632108071094075727364169029886674843808773881363426041221775344451996421692335869418659730478470908914291896573462141199308596163527151723936071879559048462325368898838192859362161269623008632595428591354960818427025632019898254237925903516618274096389878794723971623955862356744603591721049390832069088110630460820036266706748475845839252634113978700199323533630698385140912334037717446031918799754099481885688957912484910634201316111631675920823420297497334028278746211003999998865394455109212236208696566450657984529620075803282307096961940598199440953822046014945189918807597606019639125324021682776699744449320544213113114599092879194513505636077297108107404302337748179937352082136819611328921738282942956300364348962978415739505906490980358361429451466168153068487302674432147366981933541619627275713114415954784953559529089144971621853794654241858776601895922197719984782441684081141609884616747787910748991552567051591425582036917720450885139261254003947458112069568359737283674034027421506700688737799069931035129401358381632440536584419797822284918572322142635638167025251889274623043416554315666765516823323253096931536596611071701444591637765124814541786145056325909943272183146932711269274143298976817755060160123263357946155337873789450005435067002781757188445901406260715417288318543299481506966488441647462125718448158815999508039566798059972492812129906742091601129348343755831081419822053127609258239876691443881577043713975265838186856679858531713096127952510694691609362077322408489258525608413846657089691421178941295901691067360280795655028192447807623895088568067659464552802705409247338613568419081493371313949753616203741042453038054077131576753311630320764054300692919255456424931433818137775098031021072631839487800327612866754881325029850804298680336752551572773665681915905077169967369089595032139611492499260314958085682071530677615775900426602602531746898857771898059213731897704261174329034030623035899847868497198905921396370185594441924997002450124287661671750184510766924612858104180944578862029908622004890139213357401282633046955146101371138498671593088381613822565489995067227679265457231861173276165774327364037188845252181365875307137556562224519344168724732048279605299938414619574966894372518139821671850027467107423108281477659772717529563833179010269538544201309333013949396083215963734856337321750633402752940733730483229653335246088964482891523031989824135445506158157606614450821225159998762803573032563810427773003510494748740332033539456051743718059960619360504248631660612310860948823294037352111564792572360898545464095274007355079814806104066689652615558843137192184316248097811207546562384405714763868029960202596684328270301613954518075199169870663471048134175120136919949889417830693576671891955005961321088939056237915453154307218624947317068012533719107303200626543635031943900757006209536809487991550107523459340415788782181891755216154440981056910314970710064815563720849148934063015159488413448315470641986252997830889469542353468004694495949088848348052978810140275534749842750324359154040634434186560454629269519394509735229048770900840172288600501816036125056167470146465635707452019243588446513691425083711762071641519371529285704559358880103172987691799989328373111701525701157728848319457860782400182463574445765655633186370568733578487289470761727105886031402827424187022505138337215071872771033598054166018346266737380324262579369645843702211643169742404125464881620251070159462247211253612278478603209840257676444574078795635203043798141310143941819373131417055991469731886382676661703632580924601837346625232013969364083487280397484446937526144696270363467229353093711429831123933875500987685756055843372201025627435670945247616274236464522832287822018842418089458505603712868296562950172763639205472966860827264494957912046504192171491622179388839157765270638823633382446134144714336032533409645894815049150581277959338299543941573050897650713007584662635722215979397247758666360122501525958173465990637822427656832012846341812833646987523403889901140770423033089995689403588581191458341097356182953743878782929439908108172583477892158370801054018112939157861713822419995917082019193902270966526402517693616428645149970962672780172170864216254554927175058799967268132157223410032700660669182748822235305035807245104648575686005058189983005159652956509207507092848389874059599383075903124101476029864178273876480137460008033705989809493420510267897037498254298906887310567757474216998811162678396734302109918559542239460076546868084510103670337287081956143624015489801739821153915942729475209757743029697917377117272279484240200275807930936211024006300693589147702400908575077450309079552471426262961309930952047102157251821832465274116791229852767903039358981695079552304493564574104808043248262276495397101152211417817398479451079586147220572799061326122324297115194399838538576666878763404219016185929129437754173433239232954937823274071836414392586001890167166887853989985227030432702301853050287040051039670430453623235498148946470789669195109326719246733775221799709689907156469389488894198065979668350551551947356644103158996580172619574614451747500479724592025790885509408105096368025062312596415621463511415646033247243235145037044189138764537862162412399915014034282916523444646148698007672807285148799971870092735157137863499426813546693943771536385185437538593531255609363069886513114441436214344045480872246568726657189648778322014796019171597928513830935255899001775625625612393687815758775732552233024703096747503349287150021206270425789823189473370649093929435208331635587934435706686521126215322942075844479889461807178315666196168858180578328627309013040459682938735181905271233709851945530971866261580628240747701442172829488236923212756709567747539915783859343129897167116950068409455540117345766789646154556795578632297177063958250847249299797801295026071326226214255532888139036539598516987335798530587951484665635795175515221412360440940202842783306487520329735502946325301793738716142872798536971138332858133461144319350363901578313449072775524376689909266323626615799643761843040213750946011092373539778217647553377506617707588684887154942364097071018019747789298108366669690495860053358388250563979110754582356993606819232255401679877466721117997707625139337515319821111364585300439358272068385179193937634870210157392611786907702772491861074819447882842325043623169505777477360296634014341025626128512336483190004092727475507109994193245820356681984590163655420784962672046036056530749349243884219392571974639121894862425187077807541319995304959091328548025115620809942186986628609804967080233441726269969827687810897832535120351884228993281076736774592075429869891991587627267082270730805473822840749506473050746988865438435938262774255616254278675647099699629136355319190944741715081532926483730373633236253029136110837410314622609027794666330722384570248714750354631685068739449590140814290528550483679688820183693554702226111447375160021750049119840450712482116929432156399570196605232683682928203347711049590501340021292743141897124083338961262527312725580214458624283724747185938496240630715733664095344378794970371591212303001035481978617666588764671768483398092942058291163361996330562901562872503019119876386419429904117242917281033412117248699730517272771591458591734401427974296082614389500681116337808524094083618465964091635527867719216344046869826345701408454923550288679570675256782783189045808614493463484800452486598536588048961649598747498773390943556029704425158572285957032898857418258289655734606585034620742095015544265217055584674661820594839496959106071802773437831716972899958200346144252962151692148186938394403619121788700514650863972682829655511360850467810333614617039650598478989383871610315707298405781593330222586977092289373685312073160003651321538648168724275341134446627308272489553230952088282740470586530674138067332484391046778281510559481975376367230807654944902664060105816319832869132627726627053001019627862533054956288568268645642692841702743061961873802727498778484639897137459543860404490065633611516327887638993728287571865496705732723901151534707873423182687245500955156998545021632610829979368751318372638436208467430969525104682904999196059238879825832186350820220912080534039136982690501778572330140103733429711123272786007648301922689965031233604089004397091674951447866157292720344716237783799727211419655283832691563322560029554427375894071437935463175522489161585410300979388606939517094423078648000461744578518719644604551565797504339183903281310570942610670067205004528972279301975061139461050979453163704329606087043426962316997357178413316462947179029933199611892570565740521403048737832759261447003668374297848691862147014555830486930675384489198775717682361660974607942925087984483600423727832238612394837787360837359867473961228865425471598182179229829705441928338778479304951486379619230743597478871276991998625641368043370203969841337011668910157506547240709979620972434190465772475029542240304055016691572751103578086570310232847446195166468938017327993191678505448718543210846175217403506875924878769437664618456236989033212576615667490234752207652414625488857923929320245271924401543751356736397971686883272658403423262110644924065734959541218613744251138837542795099734862859755411620780087955718952531941907007301811044739058375736968221368363818782365470479508290374816285368559290451219819635544362960436109264132682295368144645212482628845968373008131210402110726757504768354831346374339663423656951033310167008313128648146238446408290950766582875248725915028291400603171028736920736061909067490166731444034462326516649529862483002358397176244259011442026380922107478728346565880626289725425470881195461932027978650023868878227044662050006251117326254675026753576723495508761384148219184257720749342932764892734986276635707693471366189029261309524088415313483171838515083847113456739790032733283640162768712508949692271501128117779419454049255351651913971581152491304176191248387444513459698283220222339183428804718390043980603422813627372714985925252051744101109372399014832707579956061369390632524266302236697173669331444161388423038572587893547537638671392139974645781329288932957607546297116882857209224207780685868816321593215377677901962340814725174608407953298134476912811354340613411134382354916075607709616388997096439493522929807914426559697974435536634183395720864856669409595428629030386259945495404916905938639969529695754919909260948252534633049881294967333116324595937476928545163514708315476957741487480069232262671709983388671830452636631879861454896731677247227425122101714628042928203213974311611597631253030199359371955527865405563413426769810081925764408629582697409546228821325078028417924345396982817923067731291243115892897921338263238154089255892433494811109265352156542519127386397117522499332905172894541622446461371235689549678153104354344332301897656127568982939373305920439142401426708013751448927028381690078043080056834817683501218219197927840408008339148273538162884051649998101380387672487001874584307648733876435478307209742510284727329143800645906938888576993958504516300251515376140844657654836303478779382559354232475738184326783071319750228911653549822849492026439385139459539363047910125789860480199794710986251536146966036866974806332971762426943610619911689549164679390195221724816800564176643500809941732443675527631102487959899458234076590993066989228818506134873510982487260137323689801890721957446263203364690353619465991022491532009441108996115469307780234146350164371028086888342779859201232699563712686143937024204005458901005297307710437064596842331087904525282778740273718213521944836348804853984181467663210312685761739731520811164689690595747868764507516433711955890076726355914948321838294526994926108362890484889456362196906609565396343463589529350289786219281586530803556124995299997584881784367680183041790713779644484970399806528484452330420790627046783262517681800576996675228802052771545448177940984862787449201146820804569006588447650708275225276991313533273985450483481765450923501094965776179382797338921497000497230458614280253894051286373058810827574612045734788688383618885129311716546933742049785445398532223731638646957251716574640622655335703573875701628487042767106036622298272333819169859764864291734709997776216465491414598443328508920410280838723650327132856240305799563084720031020230534301438461361395709132093974674985506664285797161421157418516911557551857539417482060488273913942340096015201523909744180098304744046812531544102019921834631558862287726263029122392391048772547393823190366052642071002243787824532822391804686195262658826230150236042343958756102183674710377021400120044824092357032705964663141104700999184212146785756529741498334585385505671341737499212984254277688569204515941151055457171025137921452520359311994163648056140997625305340690499376918001042111962952481701483483634413206820446402400220951165737100795700568479768721742115345764161417461544608497620625766142507634855101815380880035294073606416794956141725012028725885057443011772985922178984463519415582298491289739604804924006036517089245294951574434275319477411759793319478245324262720297734958052858610743801469246021922106857671246733808610125412571275676776492107772247817454738536976548894127883169263981797841022629178953272232676301188205532188475719327826163558893105521715975940865908170697419694410326907429169927822708856888109686328114519819155674067917806562170709106509592282461243824037505730830353839031352187230033746578692346340206251505354994095449429660203634849304925780264146470294470506680207410495345522982997115213459254507739966696540042343979398835211099625232370827254806414327533592556876796245310622050625285498209768927137460367272540923313112107126212264382152991254355620241082798079070612326971700629846717144331941854371924696466461211031750497528963595609857313888788607625722558218344392962068599828029422858934863706167121070527499564224103021621055188792126085656072009415098450582303258044174353183543602531554124234449917851097774033207913079957086471575931338348132448796494839039142414644603717513646373223105477554730642271812213222505792271056772986981695642268488333209958001840326694929721270124331653966210780624569793550562653889800270572980734673341061976494913150415242806767366845870796259582869881806330879741022591092583190098005049987484986881183694869825959823378420805545887454012953620076530715233162346964200782024146178325116036396764191575479630120587539756339044222496147984561421791822451198313253000252824296545221721966917476640275141120564799931688936146700142697341390656656202207213726276928884432761370189193205836641793006869659274449903652709825292968466966463273831269345167555769269511731457156295979444152444878514222670460047205474431389124511987011488431085156627068000245193938899573770619808418786538639382545913101073151220484980893224795818170662979426176919526044800256481025233801627657535446388675683473899851170850524844220319821849564209302398935674564668861569578963585417243178615007263812142627249642626541687945498054285571674817953153153550683601222825457172595591362550215117203251941010643102050800911893371084879124225626318139040688216123714234415034851844513658825934962827828027112863131075298212320847281718793485031734989313098026944764570339023112413579700828558129822654629564985413310482299788932194236155211887399564393169083495957975216881392220118462969799919804181795266878517903142955355866745148646575283390083752199586968957363177188169574567868536891993753201771893795662456600652183151463572219869716376586062833294232960906982635022693430772966591294673729450510687801938443069361917928506050743399079949038269745830999113054176310277886712410098729508902060519809933083397513118353610237166544325215594279581350633678440424741763937375126880664829414638467509013890349709890132200779676357529702568977338984454158180222008485285992416904187301558574643292263158015890500547572142090054696992870007380100851085287830649147655490685436245636770643240715504218905761148042654737755928299470787939092799009733945983925571173302968200814530357662200770926509180823031454774715810973747799444493042194194642348880543882129218422281451631973003661180983747849406995930440604594131740767557948823330679213093820445355948958389502913148909741390389004535446874359690152337943449904319531837415368836960052951259558996477189886337451561149143531649159069761872381458426172620381480919782342963567066061611172779504027876115364781162180451640999435943370157531555414003222843531730869047460797571289047485684489120372425327621393231183116828297890710237664541811990027710013366319745189183946545323325698541140000890851589939819889908050548602754035380893468473151563382328411180164166531082793681700874638194947831082036867578586715536512002352128029247259608454605755832303058034904560430183125546463403169886655174712032735448870604293012229541972161556427767726731633817540439139532922499573703752697081231772489382876208023034720374495425416049704586975733546001877574027693182758573187177835955593122028527411835422778672200148766451851465808953035288804597446307514136882653472486529542881450011099062029823853543275182746041362853229678406210541421869807766267610330488502324429099780128703621667877110443503851506979493425700287697150974434892548198847754375661473847529996679158522900380726038728101835290991612191605688127700245566455842019348880413958544228550996259263228432565448394979536835355528773406841959767546441504372467722652274982058705010220691660088244821533510895805598906429364598895921639765570358520056382497461785825344205839940572064635135629544194655032368792586846225043977944707405547298906269186944324606317567145767980457755223231350539019374400059676924955369963281535786551931775452427433547369824509107871408921976280211832870394557305840680540679610204054390300935720745477620511851545010249899200845702235080547438496215488235746758358306150342814919682306571890916837546262482545299160199694879111029168721646911052362059873710994478941260517914815235540065875244820813291035367817674902233308062668284518689267734699656403762491887871925444262516393019311747421754968004558859649048532496383829428852523440500768126135098374059817581395700465517482620805861073808810917641134621042806746402279096896087162646736716198727256520878336675034539298146223357195995294923559509724019907098407358031874151466581595657168759412046322064467800023607451420100722230290567456295209903777008788147328063853548843952717638895630606113449831208236910555261181214997260692062724420397301405649040838755299395539451960007232610102191572932808021627762515199781886176174294563820967612866400059345553367716953044178798688739389798734472014153081657113795772624667104270026923045632485817900422936374889865625178896655845163832218603314678749359677984110052579374581023855288928211073994097685766008180877361012009516343585961885571602524729128711978052723918646695680417594595796859970459072203645074307558641115784855139233753204960490094218976526630752882822792320568929848382892570338998802245939842351306930575017985520729621321228618585638421040012363382367388409422251694245699296742049560817886971106540004967608047624904148481270733662486597800057130766991248879039026383392267070928424549404372823688831158011301950905736465559897670023191437153048474338966629685673686818637459131063266323399543938292355395081993112164292187906082277117788598314564402666671547039395456851916726465664525076279492574791889783125394224196318113299452946043125064924521879432753347152095554845968693882180998786245840004367586230612437789518833104782589363772254565720193535696740523465043167568064694776486612204831418571880557773874234617474760640885314783541753761820703064029310277865752698967148002855458956792076272217384239318541206941839717891175161475163492469570018157141212031715942587633987082784496773116035945420157732961352781464078678572384585139085148447766657759759598878013147381783209720829840040134290396970708879710082472038815258948164287478007634220361545298210755834445778292555915869597984819159710655660748674775441225776179930922596740065176104179482147637433149883655413613500679516223015899928724616972377155068924166226983284927862875516748591563272972741463469347530944514436503658282403098550690320272830926316019041243868008421410287901486721492632707872347010616846656418084252396915137626611927013822782187666827220093670580997112007874513952035535502835696508190384222380683160506566312715348714076660077337100358999762846464887712873731003368736526415781298638004913883075794004213754459579312986245417622966069464499375168564706528416161371307124551856869331647939269364963144230214498746467403150890662236329937804606441207146184128779277764416990459238403213279255198333673249119844472386504801211891298384450842864945952672710095153586706724768066019487623194455314063231161808077182623372026732467720788749585950718888552019118652660347769190714313126312952068712882483192990392208497656959790784905193339893072087066072422096438211142765808401995225597808985095448948270341093729648046700885966535721714311427512141647245888576632548255458867923372408752085550394670009996018284489323101066054667080371963912554668075815486545659177496410976320739335842498140791981912910686990774766268620206717646708174671055367240900229180268625159169256708195178961706684869162399625561222820946983506187805129760719956169334713642211535825562122446753871169294717345328454877810504265875704041570451740299107137171103083580598043931501372442077878768046922147004285249730670821088836447216981094568522826058122047484819712143767090378723979324149139348496942192037287502984031605858757224840325805526978210147461734558224080572750482049710436535045828666049418712565821163710192664024788370280333510825173121869126728316333333421909462492803653393973470851869506213621424785987341573232904268608787285564666488553643771427749849971658959175576476595827479975793855796311060692219976892349029203658021692084037981580685792482372443572861967629399734291198389296286236506656743313369460748546009535550581609258227450332539424785801025829548845896910445576814014688439046636766144029575729329148306265514076465217388426846065470229429875550105947092741769687948106306106892145530613451124417101799207604719369011034718788355936107411388231246169123015071531151554156518576850251699540035961587504287674538693338782090038072404341728867781692426305188537811647561761600319937096366018137570909431738301188032684529804042236169428495307792120424564952499091791932604324013035024271391561375726355456457671539827060322043437060532171099564474400015181844044325842769140020856439002645322337677210937661493958285457838229092248594760438671682776113724309814560591823821253345956377343551975244277356717831832470633626972018671850867438842084983589325511935847241675662313148486822008315959111273608404100807717072664238923670315353189215662449200781562154755612301068288353940775776488362867505791877972125932760684417523495204810911820044694614606705239468847235336314940705383231333229913940705446230244953665686019284883548133775920583409945081294712065653230173241389961923884940844689373658510055986469898224847099360144262821878297045018743629046445277571491937631842155561320443828231112029141188150337234162232851367034882312008210344380302128927941008566253983272222376718750643709076632966451812908973981910869997751322607328130258621738062913301149118172953658726953115731752292060317003114197242747981738206683109528610780984883181811340852112938790705322282915874124784256305061056142082552838526055017049875636130176135352217393927473588067100113686416586974147891594592858112383198258491649699015229938683113903920561225771201633957025722315208610246479190656708194924668019859278176444365229999211174832566329072021898236397312632986443525090073799837949992317489449667736769084343096767357911663158553603137326735523719053094623560965403844783379207047154231817294206263023725119425497098235250407823146066821382285404448498970606048476846960583346647398655448274633309520239906403911168679575345344410173368636020056579137635964212924977466864574338711953924678457833295512863900615264729680259503307093314411582382025614888643209234723569310464598680336224154726565100280154776194262211860764342553317786421159503623018738535560390976256690756647378212265478017891488259833552796029332592346383807599999753479926833930324463876569097402145059542651728157978293266989490712828870986480637739914726369434627442887339252825454367458080897953248449731927523504206134922897393446888614118535310065018445301161872968545847299363937116081539458084087316363747806446167392941380323859134015419848039387401731594766845117954620726908966073951149680519490601645915895806098043319414981573565011233013977707211274070347802223977053341364202254145403503172674958953864920397384479108723679001854625598377014335640831214396579778026765047190050657812770551624652900370106755508494594716034442917843281499938113990542806968755581855688735203970298764295018839151006925412859234445880820376989759814359086017263893581627375052526078224052028972362667637588725984258563872850221802682679075820175536856135349098764927825768678376763955564761855958093823845894830535986700151279102362691298055477550690175003942184418622207391786835947806656039313259652766283944012004701399096663586099884822965869250054297966294841104318447252144486814648115282646391935003551071759641078579981508254437073402560996018790822198615034622868755489103737562991856713746315369836071182791281317747600236394237174499137810979922490660534200318422446453237133932717242359728372302248074194119905703471321835427555694300271798495350149381163869988117390582178766106034634874897529776849066012006842010865957553573395462001865675813094149758392188591453011209346737518884583111448136714730072082478945321094969993270153075382152099912518372056960508029113748585919914621909327212336065000533070036508288761867612573400427120687372588846261865759852297631145971869363285060570678581941338358359343951497636356863292296043031515567319486875528068354915891375640141606539455549609522668947844649587421351446229616144880111676974046047915257823096275087786596502763744184259855673286113164803548401950498201703785510989765731195183518363396415731671352772423940309884200748897611021794620547783584589791967709528553412093755600244460619656275407028775867217819744553340204725296579057173357879971820599097239536715407121558317171402872321273514058080772248263483435085789368750337813566471541205246325481178475466871082872796515389931839169964866837842862641548879756072885522316591042371342106140208798290248829964998428673898986077853089724368860636021810466413282744555772651481763091093220430440585410558741467060255301781138040813752480881638911107234824878472974223537913650807568172342560613532781891797107858875707352030190354192702981751662326098450681752325903278655569169505842646648668890678840172864255150515491696279386246795246456787558634002396493793160577613460328410269244467164633608702550585903754128439668612427905490520685087890405182028899424821745810078923852458610775662519817506137334921599285393916500954276520888488503661199525207237490258977806733216902529764060585671969144891576054480803562660947943840203356718142688328294993182340732473264737305334732074625696699952037094397491690740243040169169329835723088231843407730352628903285161798030595405634586183574559554429608143177949083523717860408815757731056743994150848557811112077200438737076187455719318839365563491593540727987225480570463182537641441103381063181067664042176417641840578626195702836043642695961595047738165455587888830815985224417966872492385885873077807849076983616175915877666245656885997241025489992249688950478239956842426841831935714911885618982692548271280081712312952822339594607940479933164980143536467399477867995952200154518140205067790084313091229301738094551732014208693143280886399796933639010723483739836529665997874996011014087098695453488527903646616935678976821426087244912245669079498883717995328002839711632210972832913219646705633623820495214523690072997050677039423739473926433473009902550100541314217443547900668762815074589697795574663881063328977381683485491858328987961746939744925888414514194946258793420352261868287821688267818484427955373130718217897150897509315126691867748794312021588743509561783174421055776282013030464402906801196405746327845336408434066705559191649286478638275697860093772031236816430311316724881117931507677324564334842551615263350776097050831214895884946605341109379251621515842419610199027066897448551417474738733287337643962242425273646874744229348538161181936062647693467151808041397513282323765949742312730728350097285209283895651220911386802759834290681370198069344412222126669570261441234840085355641966539978738601638300449971632870699766519211188846127033233876484919747111402014295255322513785084356034327784739817294628160589271095028866068547508502694898811062092795791121092507868034681184669417953058265403406762345968868512014768525778040740372639851656955471010547920441170580577841376013223949256500748560751204474959787340094725973970147033763490016741392843828743615379961982328396759354420414687135503795202498420482662478995283419005936343624556816964911521416287984741095112735737314235897451040810218550845105277502682994624524233118958377008006803316608325843025885023786247139321537933106884445434014124584599288594632681347925709218082603359810275593057492880633502684468342177101921407859164098469858744224278378508321376580075525916561082983357414814559722228406835964389026699454860818779596080493489371700835563234700790091633542227840971707800144563976317512421023007109904201584276945285006628048398076824960464684085125357607392478462524292064501299183662617238344740768565588618284717170081096164934591961288433118385852204633888603406516188685406500642628808345800057123793076803026155479068550151856171148355500383897066452088222748639027424320172005567735104947946068722567961136331382591422983319127833194310022973923598915318905936265150907580932804284101879495978454315839301621470600708586102942408994427953956865202219844454963290851155682323140375365334918059709740271573103300174517362812689532219569929089663762366463334842310265894935233869525762138500258699942700316481671314984155697165472931247057819947292846113603905260760868684727280937098505814767220163669307735543794532418128634921372058351864095791091092663143152130247209907141241652579696108708178204061659256555651806406234360403261113835310999565569440725934142396563122330320154279993304033326028888116123280161086810298535904197133005924288288715142666244789412819816589573513213474477857660800008495564375346516666862488591965045539095459878541304838200980105256683018554754573731728289293577481333991516478718324078902048133472081347932329121939220263880561633146355451958919026447471153663932948447018786771770174291827142581117371764686320622250541396504296673282438526687415425503478519088050584924874139475211369115759849927345378192053647824452434614731793226938506119355964900885226888110865194658725867730543111488966602502467767695082524712213763961907641500532623839121481545860735594647973378623704582079944622027739331283178803552975192727882713343115715067735039759041170931030740101311928928703383389891198699139619963296001135883472131699743747301546104724332247122177008097934026878530554805568281753998753427380078786539890311659134695956501229061553324921128695167368729709735925808558717072486470607048147852848032206160874042434657175910810466197677422211148936434258432873549796744917225507641513776815836266975139757568642087409155973202272782005154485628767923344762813239385909335506819911717612160351165726495102019690412252888994532567994172414236025416564301867691110236532874377239476259329445184854798801865503950660123373606619713539529960193584215108299986955271567661411522997108342452312960589661451800663719483983718012247567388798601065455712186441884719619002554561799101559139660289439791223913731425462023714090796703870188624712697675418563477856745884503321895727654192799861130387486869456045992262508023458112834364292779409192471633885940845123997866989640706991779960840432822480479711562314888738500156588389316380131859112505674974186266734149785843543957088808575986576326885539599942323081622715248604251770262435337621737242597544983465616714374456332348640650128335384967791638895263679451363155581648430338899736312024867125185798694320924924607597942715187187301450419990708725035601724435376282036889337832070644902293502590371289781878035429305065215270710451739931204877976736606188690066300605282886244647836089079752644760800541536728666579421050298680723060902283478603956769365552420650809955768291054585841013484210430172964037239013307199765726389471186771027538115890001559021902546966416371379151264621720979018626775337397992884537429952885148017432212859499123367072823468979333858916847550379745840002056264108116591603357002819478799094013439765862223793805121090447775486850693506798437798385677787836529670508601717632107848124263214586871224661526257402095744909448937109339487364428959919145291079534807111394090434205039397808615534235915575259902235203202926206721702447363020609234772094029909892186892942286597629785459442963208134089792972601352917457750843479071669746078163541693423731129842790772111216496058556406929896367086537224926740299927125115961718643712442312860891606501904686270073587137174700163799384776521983534559182720201053642398952693014973877714401787515939240688952133881824608396234984534346936277017015239904615625728107759820522400317527241808017637833313257606789433049892254798829583866140120942901091906919505630917446728681869876105346482100709280005587428593878685592260237635228486026160751454610606423880503974789902428020730180623586258217756714020874516757276248953649701989685891283983706711921455174349616640328798820206700059734829492418000999637594583669013417088851160107154454480778591907593652068777164294410486013585690777618440387622419207498969166513106629520792177259533759803380692663661393572299049247800754560157610816838157806319977433530601887164520823106069104498758733863458926938478715374170667260995342213364242478269526055896818322426279078203944948452073458768490772421561079775737748821885995686397168493904163319655688782786772635875431035532747921682346679019545756264282599922515881544438877948501915653681166488101299188847095381569827546202656334958665389644379219892966162177640195884829565811370327216069206424677818371113624395053494905251458194540933479616756802005521530861924857805823193367275434353173405460077571036111912840380063714776939883413596166945286746373741931346151274060173699987204957570424130326865144926817334607100044460071181923853328985187241492193953940693397758097678711122757072535494223531057606358752112700297788732935106346664794495149618522802849508561252862738043422102595911772765836637935498160910090299184586398806216378769341281089172705132629847438718467540095214799006291350633365341263962137927863446294103397192406009837588584785957362450097380010962511178367583028086080800875389652561986259691299137896106647007455154990081196762363600951538777975325552411437189547339269083227357796648370594017311475782829675326363209540837086808779965376833528264000259802991257842248019210832575805696856139734716194581870913759753547571790648462630178338042227334195404433216457497344306915837017192509962921631990102921842135046664090203715709739604953851222778636813622200164989834643977382065573083153622614810413785705103898425638462242858020845479060456723241459339568867560595697268901767742635607246816098739625668863888774661093806843546386000604875558034171382964371702561118026593256941759415601648389047239768361008070733090662262809129517784476296873487885974639823663091425432082465531882463393556691954799615028396510729600051458201542899319180923076320643682877237433343848594315510355664902521353843382290109663188254797156824128078456293125241547459189373621173505350461988833073948523381112326792389392810065727340002238280099986062551166613281714262970577262591871627310972372252798009085057828192692302931505173019882496409371425845217722204120620343313503867867117003902402346457286192967576816184632650378606586216954463381108135739464487538426315923095550688967235534226005747055298912133629307047834733693911801010073402571432822670994449032276266385004120461768718731925423942151347407712184384920441698916690181856493744319279349573577999421414004753874597111762557682842040814369697861281543203060020878436800284547758350547213144930377476947396003215473026693179264868971491724796350417515361571732577003211780617994037497249962364745990143021968981424973663912238254268900862358222042966184473430860620224174762819448571303871123683989666567194064012981677351061119899852460043821045438667109015261672879011285937268565849226062889629686818990719903024353980408168660192043791249099305025964785674445634347006717292178443410642659326962969800783080243056808584587237708293618354808309819500166510990943978378304892075164724725954057466551738083392496323402721665615019435524020440031717481506038687382876295483397647439440086663891737144096487482287869996296896880560379988771611021180936406982358233816845999723424798025340814625459946816456494622644580966326538262371450157308062800533919185428393398163580283522989416145551945094692371173808135254375584439930420122796202068072157527998195286700199882336075498209918406421315487386396737975469901400808421469150916985424673823789162921297065254169385526033501563943204488070267505886138516250717399512884317473009345914289250038890886555861028190030065003436681155491908449647635123145246610378322977529396084467400229548838523239285494557802485672256046273791524401469866349178834879678982611269678340995217193679703636990108298811186774433624766598144646138996977763499863289102987308844257812870568594637147712060254527311736891244362529354775926794424630274982573685131755573451671421056712001819834975077464990900647377749916739501452505165482969157789570888021786847706722311548833323875584391533792897219034527020331849212195321791609713804538594571353584961919369372241440207857057228211358891908755992303556056422243619444653404080627973334515984425666845348528796155054751008597185741775508177474026248675065312217743556196057026081252832814615690975159462595338116388484289347123903678878139395990041359390990819211949991553219199999548910856073445708997244041227307856823201812147126565192482557349057495275018416637837866564290377663719023046432325306940906452351522508942699481414474020532835495504723432577003154448211870917685726936331524148562253474228803632721831478522170136668271029233532710893272647878665392655700674167224675080200381275611299447890099586014373803789388148144490425308209932664092325891068643627999238766986353823919550566181743964124441534593099959088663561527246749138294639791697907651547123063065308232672403514542878988744516731813991890095860887789883865369906538439807393666054008101041001477089386380727632656690718192581845521419083076083323839360133919318527565238976790929741406524959983021185867819353654183231953346317251275590919583983008156353132918165161722692944295449735241116446853995715368932210318432461767285490074991448626318871423822067061861995045580851268883695828355979201333372057949412404675093302003973493965202946842795847492069043731951682557220191629058233800747589524494167796860920619001546173131057145421369537386138006853300466386589958670216750294693128061518737991461350051057326357883879415481032477575956823227636140901047326578767750686909579831916131998817192701107473555859046749021227941515858559211002803427876263475533446655824613984146908294962040304469988746559412090781955632301008539013464282184771881442596207908510041041305427613246791746886032349550881368616505221696824633788558604645167456263752349774403825713885522713877026580993490562327207272561110662887817199359502644927191213378953285063593742707928897348627499224273248125517885356751209391075212843155265909272428942697772549330277778446759913170349723621901358798268807381682923287291010982202445491138579225034490975484466716903730686498616178652671086812501384845850731889984212963444175964432244158754121809922248994190255911276057878165233686550782344623652904150479223796221668023652601368719324899090741123406023694591786717435336162107981245615080297864740154238309384397780787150597963163320500479839676298830638845895814224649587040668630203515514993398970042743266879632993390343506398919556386827838594031596119926330707829961311154775738744913701961268343068509407351372757221709738958728866384051275075996355685680507936633866513844983459328744132851650386161567338878413922417628130440412663653812077003597665082750542392553612030686384389987073476414881827952421936175881423604190256254822644624899087040549247787290828772872337356242581714673952118052924455952979719075288086206569437743559304034982049062616207059620725502181948176709446595217394908501501332827307237638192483900449582655593501700368794173077265281695145253757509800069145906075778658419897685722762814989195843533504601505326794014175612291321606901572410969628220558566313730145387115235266203819876303944439915455779965523890360099267433915630465132110837268848366227739748024520818365706164599326275981947603903583239376567466320926049200068414370785686302713515897000106853383792393167816740087622432612245262376318318450932362579102637203801516007331617934075601259313824079828425246671741160858185020724163640095302816580137929726308134784627064857785557277601129691075109704505020523452779079873455785516878201590245887736265629469183803812573527425975684647169191860503674537297540292411502526288269427962328899688574934937392258239284174306209816298646146181549248524239037050457136373861331832354245559963115987182137702139796395625973691859885984251575085230993940513757128159443236044781768212022544396901950251923652108941855483938170819093860342663645624183434964033673987675536865499541545943262928173207992895400061595982884756751921785212058624336025762783140622824019669790645375148250975543581590579068466422235648794232569620164954256463771768255751593952343689244141913027636339151095197216089995400780490991015320302880013797354419167757727307981937571805988527560661364523338308118201883410449939900769752960463732329440615133725637061101849727617850322664966901567872677590095271299266724054507367596857446796150644033753850543111910867894232044971931003683533426225957175680628993708157101351447613925544356141095191826996388539168991105307541895742693833324468233830492672492549194183783886646057022605086575101168471784405302455881842669899396052769284282063095522195791492623584334698828114974617182983558621566369298917292385895203916477325958521432439519288811273109013370729669899056894992357430652762048013450572272951845466199399488768427446272649256812680205555466623607591477879106976152212291527380777538045250848662941145102945596247450095475763783677742005547180081241259334113339710321354168584570304990727562279061137447924419479801227944523498051055505863008521742924971221040429467482947035826646044463802307141063266279003027004491698030607055808253437220384924464096604630867771873960218478260871130656007575757736073581276468161119649560522063923450944639968748664969021898806578173588584772541484444720678852416420457974363293315027227073001089042200466757801945107857452833683943459747447449977206321229723648042152854823714988599884449419643555388484540539069483646169285370559796860692404643789825978095423895641201640722772514531083043611231063126203331672751210413526844207075252300572062237151880749692007741506615671565534786481624859808363194322949503127485347271052456768300748673606936557574491523836788668868310305215805662173364965241817469287426323537747701877477005189508968490063846386360076152046753684940224387270516453305378960248230219334042041359795345207664988732200741497887546653800706421881012333392247095265417539561427968432706343384835174754506956783841390133283301859959488783840399566343139525073012151307687130772421029722098086083565876312854486428895445563723073593856393594287921610545300665728453694508264647509430687899305732455598767508256440484108178051359255042727143934479716852757232201009437326802880996905251736764346962362789487507136397034160304743666088018791960666921877050344361707632127268021684850349485311189551764508532670112245470594552697208648178355855839516909300806427564402917016958424197699392912730062183347317535899172691158081746899174449339495167152679373868886304450157328449918650884648883937969802563186212014207967279794836177768604652953722955703002027803983967555511865450474058239468534327468767550934362103102788564008399992980514569144898952073594081062892313357327097963350068419522997731313137740566388688164413059800800128793232657179055630741191155915326385111566339077645713815082214903239251301220631243970516246960058978942654682517984151838446744454630997756304667160120558395089102456415601049136663265493699131698194996328171523130855481897111804439176466144229265353255207047642351505471866197351466192334395813708740147768045666678948451567925501696724243402257646156399879118423364789445642045866391615845386173090499346660652780953003892417813565393090183198224269465193940620859508860714364715389586414708488128196317962707480191844926636844251641411522018840651411380140211951908341797444461663132261114578131698208692465111140798732013033851911566717791150695151627666869325923906454512513064135429588621143991647519455506403169337259813279365945227240657469290886685257484839724239789460193236621676577886118464794284594004360093134736091451440079030807562709760880174227748009883581273103999091378785085009567131179563378277538696909442692274664674924078386414208252817115081656597668416205126215698679992017674612479672951309835962261002199626228345431735159066283139142373982657455919637683144156626676916500170521121811051082545654626353730950491928993750863325031515015932974069565446863188056087185109739224461297738057594651304871062329694186612203977080577591783216352718729536181222104316536775191226479168075339283322895535019430173527343826651178710288156858328631741909481213967721560800593082584906409296178780592051878278387379556492822112902608454237103196279390086600544780944995108131274071202182601578490546887227652934016845250082849755755186739901507810262377067074822650619842478885116568577350946692820400985701107055339254370508610886086511765045603386304934911888913344115751339124664343730964533276983531353865219877190233874408091125713891381341313492804930182059483126887701543885770268530031239861961088498451685124150082237844934681788517139477088042429471877496990317680012790802771188562109208707095439782940437400523114264439593679934446686670997856173343945930773635074228245055890842955545991618253530262541537229508182016778337485197925278793871100720177924320759933385569006162507329477604655024448987185681475911437843964332384316376477181888620558465314379400457671234095381588784795908562364245682429308024903351248834138574965909309448601377575948619865320420178836689442813678240477574022740304201052575928298204542962034806627980333626520275732333435852020074003473697256417300475032191471436569106912946803343074813643103371971068406661826290659951862200606970287640949805769726991351167299963179485968006783726904602044794571666387301009394284666575398657855226829996724042586261191765396426664741313947630871563047171213607692612201687554559472845176404699218991235597500287182871041547046984696724704747337996010919073902429664486644247007501151669325712672429252502622134458392210183758436470732316552330702211598986652380211690050907781215298445370603266515216216170099402597259572110746484333581041058478760586040030902888180917456095403564023665498287140664615734784670454148044347990783388155802899369808435138688455917891019638327766889569356557727664788475066556695089755865600399513136421188991033200566205359528187691696694522580339335111514616837369073610325859957037841756373427340169298409784766293508981436428512828962001224616853885187206261932269889075046948847667289810990174234388349060142405354753465636502003703376352349712922547533743267846342875170388428334969128142391199897786576137908496940103773910337756708039591736202719088493899351477605606829835295463828947673882957339050158714013343206946460946144022295721950694798412665962806037490528336233974498471339428653457601099306353676940457807915041138497999725280247144534405576106659186728218074894884312156579554091803179620815595273061433353210582035807421402831140727532040571520092661952244056771303405077164149746664015225917876871893337375003020806457420585227273407525524995888393438570211610490817306543321423962994499348638109388199250582801539952225263361779140933627263106823789378527837225583750065406674820396716819457928952814572135546328472202740141512272066179253937325403609173926517483993990209714567778482091137993565657767448679362201971447082056862310284806890113319038566433022578010891989257027622644612253315430563615031546695429409427077850271353642092861625757738131511219870558776532889137459605191039105789581828976773465345928863536257907708159899070476964392189736579767004013829220677476180932964464207596620235766750968165065425458403504860949142469035637686874038880210887835995498590073665092148483423241944776659375379333322316192830994189764763262081125432881890349675724853429670205040233645484861033857127562801613125264133778295254048359690460423899437448994262079161058642177062704685071477243267475508559683186307231832054944352887733586004915810704428562074621789055026614989559138989634514555549206543141671200253879987131697891845884254489816487007212068395321621453927068055179580261957407375658713310667458343295613864750117822211073160835335058907516591487767119790361154451906983276891529895552954298654497799512711916908373993858914340501313793456151401598311060003574478054280773993469362346472981768105865682402955857588410674231699531055627575468243121557439126421603989525471671187984427648995410983670668038841154878234910246718799357122640866988319861150390348025386951218732128844738111080050871363398674717200394565678007905170498853562416306896163605952075967018386274847262578915799226964850897949184660129481476003301193871251056602469983988669000817415463098627133083671367673445005541471847523102158088526448411968257100365465156493781493106615849098253687313708685578684384467165026501365602679983183598978528668630175833713644404778928793506577442768802604963520838102863475358590283852621751004533348550610869913201715881630651904009618063927728211635754616942848954916970683061767800822513817334587598600514881089077396381199522291897920521608868945267925436211163625349298843906718532762598051326261499879455873364061229032479885023415778133519134675460799567012227375567296589755558919174708301809299605892346625414886985253160029572103352186562186098496858737332859646811138592279851890113430411105993461792374055265391632809682126877221643134306856065852068440159727834734308656454675863775547589462112944045960310889775602897237066258809076744333115218905792166399076543060836768865341196173727130765352985097339339442382391847894883150181152781753911079634727412478582669871931140416456751340486575745545771064786588701930330728457632013694664082787924987531218255180300608439611112279787163646655811917504850523476843741600031464331835568297529108939348973421948328771474926900655402502729517410012520002092040736635898375739599244961744265135211860115297892861587560677766270668129915265421992810744203783800257851107403805727326728298586769720218954661096324417429469258998258539194995965759798113191535272488839393180350894271206907927095919710302647273149698091668628345235118379223063174727585399841294139283236827274967514930360082238892686379300068082594347841196068582132282956245409410906035623983506273802758996701677082218667405868504382320895286372023859402618331973564708103497133769247833045446755154405129169828172544982349364511307934173829936193977940311129490939810623312799078046250279351443803750650437689105120508480072203419883735987047015059706814476992036970784928484180054620535480089028429403946160847816294916432999694963870035478131609814036148288266697017191911329068376821971795922824913698315415313209105746332827100742792652950998109738944979355632114473722789868532167166739608329867112785326198475315494866199640516023501853089449800731419649029254994039707539201652511903462273526722416058951003623149074093464495021848220070343244026849312911054944503532639073375370113510687334161830518077837133850118871131270785981711688710297353896600752887583502090209295642668525621874131063562046861477712153125106932754741511600924505939827501730547989441756939021326533542750513899426802576768913820171938390900125843287265071918553639774721514470029439082962110864458362550190867544337779968810882188725973604591911980320029182896768287034845889986862977021276102184519284553778888828517894140495616971576542340461862690891330893621822409905683590376820243728162162951954203505773436912112373028395802030630882640293074799311656294509787447201894578626438872877207667176888585228307911825127914829874920924597416415052713824678732185339350899430590518139898353806054687851302499904406061726543757646639595903058190437599064666320317178316602996552084694493482551967770307189273954575312609567580141012926304628753950273972368425258544233403551441459027821225415647698701962818798728337105766606610247371041428102871139980788906029010589735322424679974878004196885453022924522474874527165501986036307364340338344052122025281352767835902787211405123785962587601998060492581192183654705385056347491341440528531340586214600334876351636486072263093551560472524065102070646167755045100608833720949821937463494095721121898186966207760613733338792508092961213575330427006703440746765561881713446204217543774198864144672689480062536076539784884034631740046604994463581376735780640771851651711604827771275207596153525501843425347785986934841241615232748620993137003468506040716994406584512010937132132147237959087239165863367235057421291048381582806890658524989329085225080389871952154933053507277684978945812138035024380621462804233857010522484767452271739975902031838992416089024034757058034545335688965053599842054174889410111902781534780617525200015833436294185856330665084911880940423520744464812061912190795743543059099662015764255951736966024908126268777014997179891883978694803524651855223954972327828374035357488228282411062561850351377591519779622331677387864170885053563475596886622006755048110444695608146436769264229474321488782787893655073033767031081572415819319761837244264788085265472426845355873160803803429052899337987143990371110632174382833666391176047705835942358579412561265633002171611704575361730119501796857966582278091211334063139875286472718728917987941694528052363106403340578238335856307951870853439660545258290387503903013995105809865016938363725535980778697907154646266224029977766895564868058899041981659987113430368866357791225085152105021099050663363396338035386685741436020602858695711145261606033530668324811611459461167040493819661769074970181581326945477585104330935457790307901055458845011645965297780431139329918725753455780331728863998776939750210285540422960520778175174869105405301294119410225269661564412821114492085311826710616430609196229626108274885017615100357326648792875028830002947072287741551621892103348783976962631129492685674603168103785398849015446576170334809596493319429890964761136429056777874719821179146565420023167832122456760316141620738962326782305364926864716799776811920298169365546194198191190872970195861105785163490323433281181066175027975285727276260712813289522392810426078838942244871604244071559013575284730297101087166410569007249017455178499645041273460164589375023358271811669092062529607215554551125382220525626047493745264000021909701440134838187748274822225705342165234391722196744931913814146510901878433026781891204769582258537272207815196085891907313429216858296236850082052438665302286427192625712988100349857587366198224187584433161456584527845851165157324946568683009220033067279788180901672329220963977406144622953327675171425390786534335928054423613819043116137270134345668789455479030692581442156035568684778365328588543041848689619645376586801031268264478932838530006272008815414757100302605130441322198999833427177113601793355197648811645819220034488157093762521143346829400710283782209543107790136790695359137547946009943846760431178244135202113460256433024040193061300700428156770855823654363783207596902556628531889424966407503239993623566614445137330799810304165735462683030830210452212267318241494981700951409642089775658370780217588569537182413585171374609828809886569278982344101219424419981891806012912174052843689429643346148085161045055526613596862183745865414879929437504395504360073922628720138404884902719623130306113175496101438824681685555992433968113767816717063232055445267520965869432004061069683118633610773147993855426744329799348201458884750156921977786978504235008172757913198375381183285876831277346400685819640713493318095154171421776784097455695959977460941275363198483348893717317482483378782433529092272800139866831155682141098603284849984632570811256616989291873587273312470045024787699020703871535767717769362712935362672250984756889550899146416020749935881836833026477158275101646458562024289867564627109506499173170964488954052180985056920870500188796031209985457233344021672067441367425304263888051088240072147728009281981019957545706964172627537009511323404666461202934021909129250789135639547502764543305231280455111346247154678654794750885003580646516667973851009849365468533222392183293898698336774484502267675656676198258584808253629656737904599497592194747483330032631022578475373236446118702994120042505116923311594944190257232812315055274873615732193383448549419817333879753119832576708188088338305640176817246015309968059976793505700189572114295056290902515472562375098078992550709163592870814447560385708309448625113760693655447355412310232772214726720072520579433198297589701660381330933532454001134343448168700064500869259349209415067242759458709209855849687845821812695647942385204725651262455585485675900092283153703766522180314760805359555250571143593063261898687873692569651438240569472403843572449681335680965678105544809672246400921211959449542749436222836222925868998709191165059313034227977219085372403709755874173205447782466382038620731337809859777123154184791164196583209096110008827826838471317516259545837604644136705564657119714542717564818856568353538056455219482195957387022356483941369525155781405288197466750305035552772459019086642145183100420021411912148613121280512268187656341762034753646474232959653738675236127775815532275433869832228366737920327282960837760794702278327744604219736793838522749231214369980403529438135784412881674601420213034608582894428926878287883100764620053243458590924888718939284981459804829701550412022599070214718941763196110700099195466664724978529163165877924865117368889503217466430084058743357996150249304140971825818718530196849380548146511958394270593150297824138860651747413182904238035056229420737687451078993908070351750883962145144885919648672696870972651630952828149207911555460161094249778453671188070762568709345097554996267829141397874924384993517323126298979476098248541643972767588805734149663186300802576489400144459780062644605248067751550581237921470803292737262165020399559216736557979714574420301623756563346961441715137956742313972175342828627217669262374248697317506805042756854059454150160124466477402907956900417515274129885454481710794515278854287232125570126919632244723125299456485260464646921378089235948547004347545262201162095704388969986627463525937055359926845367799443320834397315963255177476013000625343985378880037610781230575150368438373933875458748101546864778593003220412071274405116622925057276014484730916312246652029196733402976558039305469091650761658423383173546673849934420615689300280176733921660047759957731132165921221689001266627511783317979484712535991424520491259092222677446370396125753556369598954140898081597232918506822019617726585377562526400200111139528777670631063760040149150974993605278050020161368699316066673969535778288357951191513682961322923559119986803987486557865712581039221006384725415245754402054452825732855086645206331676279237222649556496564222460116484206945593463535691036972158330375202546323714283708212452580490325472464506050040303914868791759648570590249095648347590592392731100210800187589594798015273326094882045598823897004057387302170340731577879289615462594275134512832104926263051970185604315408466309229000141088469672999848231085217218743505493693600804270485022110886421105137042804552945624340362857606730273454423407255258992638572120594948191675485548487061831641535183703693422951622449592559299092167745793580439273448379529045912067885988645069073443417811598117254476403142581185313326377948326526758315655492454238414939598082939239719963305519898624306350938641686349374660264970664250419304235416231395373077551504207377329378736123356131225361496663270747540810676380803798349151377011245972320260455098972807997181906184516418849168466656028707653616630163114447099420599951628204016892653241730966201019428219327729918047496619114017068181874475234512307721671677941120817358263111451218709611323126616890518770305935236015969880039739576081155912969086030126890780750415527648954467917575969714016023263438498786940772457593970557610340999373803944154633623505332680932433770973504339291325699526462244060513299380358839452758127738980475518674890242874105085050437665239951795851560199153011937653231564463941313085516632869591702792769254153954046102653260006831846983398545465534051121157315658033723996967660782857051670089524635629916648202066844089231198857254763572190702202641824212537343749690432118605516802659512763601524107076340576807425212383609030559163260844368582563937490173270962315025948134141393994108696015788852440602644791869257129934143564587528498920097516980045798376372151217932302105634002765619766770769225482527499042458873137873813340888530955027453256860222378767211939182424918702799664049819684252021805685662748807716906022295893272579890484732360953394421217515030805033291115533706380916238895958062240003283379971206384074439549750786951404611169858719964421088583639271928439999029986510635845864010449593569548523402589227822455865782943683605310649978952972572330820921255942034832798825695340336523197401874025782725410435540594362608044516467564151199341119967610976956730640727829646546910412898781394449724248942347919478211982230852890067751697155298263982668599197133042430552461553796068223533861479340101812160194444746318835259530434274526381969610599994419479982664770670038145705391512805370709497510988850556101361100969251457370464775656067663591733219306662599942182750498749172348705527612048604273427021128042024595135226196809851815140886920330830118621948645437414152190243852007776728782271573631880020158482796608623252960626330865032074203766153239540718734624849960283710358411156983465014919985209958980786115926095509978182341896427882014480452531571830142492518479419965794453618899983619002370890814736087605413502685847625605881074179073387927878809929672963997272654037203708870648454203991334182193066626721800004304086527422271157799498118488287664359350667983578368069230761412787064804126620854457687995123222303811543264059636590163625679302480560461788410429957432962684904594181364367754338473670225145886402234384932066108858274422206219353230750467007463785585892491845282036005696513106844089371199503755486017445567290158284287394151914978983783557096890670068435019163978531691077085048137396398172763317962431877373844917271192591967140257455174710721669279876892349035971829142764746258270552827879755104572439288673686528014613436501052423065799992822856859321089589058003053744672423454481934215674149310855033934326207256801975410744259510501665264937040981726585226754240481885651005958476101560941471870138717733420200464326738512910035169865229778050566189101989063378962092112630322937184058247629506968975415925486093046193226932705346955491780587124733270090485950229931856032181028038205151712042908009831726555870770593172290744666829705461376361627307320672871232916925102793019488846037607791745438299432192719480229803657037180497396663633595656108991584672916573064787435512753139984339718399512780751279044741840985354918634126388296100013793740709842199215753761670067361175251611904444135771163856426249038690132782390841609768104494768750348290721959828833467783868835486488834941918343855920969427251681447901474949287332591452043860453792227072187097346670822583195669897407805024447779313838609309264460129145401821830434370765437003219938608276668670497644313615191052600273701504763260741801658654263553749244352254269362329968254226946737660999214382802978497523255718456666815568421338258022065843348542571210066637528343437655573992714268860142192790580570201559652318412970952804594570819729789830935168652445202485096638140444028912803322947207073977559626353221104077913945198574717349519868416780174493645669753706248894424806269752585805223939681559745580812965161544720962134830365206790002494488518754149088816977797112478319157443320261465280646759158079988744781137805215936617863380554184572878217536516309922454850524542269706686990776588069919640923352766816517498972689603926020511356806077219660350412013020038162083741871439373208271590064253355645267972176974824401196174080632032918927349926414613534001096085525333751825609266547984362041520483585669620821704321197850693065243248946036237387955944284077554401635164826770764447772821814623248311739736825027438445310294175821683685161737596009191362861893928898615991552958657212541534808942791279130993493105050009813909877125292845637036684227325766505645899039450673699031117305830086300236873299897873218152885805798358659702791472695489706785421269490221797500526623185264705700404683358116727123070135473983612346089841369678082195218314161208239478753155213069746112295697100553001068889201916929777089263188031124771361767082169615805439427341238239109182846656398305005035420312658304073065137563102117449927615957523238502910660585594865744905371252249562909551093113595400185653958139103166576334603213283290855118493464664211407492785165175677106055725411395723177675066256029090201517027425927337596427533446806704463930322258844175554413686725068381892965070119674991596811355328589439080084837753712004272742236456515759420702560583683550821777986782716952169921426245577436420970584372726406180320653754950397853382765483359421777009957694639350769331424036679973659068398923659357137121601724736242686408404846928213305837731650647323441127419698275264425547643900115185541841662204244758807107165862268431350705710182061324360029747856284049043921243573753745782329181400365929862360620138742317850961242265309692274790999841980117371349984671280148855434456490864631468114638591798700758327474718154741239964354874047030526132326859446709799474956476697965451711616264275625214627609226747970906364091387799970007844986093234727866021188244410787741565065799780306537696222997972757199438724547435095529178263755333830922075086886882028479477297089541621056190206752548965595052652683804620166649855420037599810291743065774162575419106969608405676990686166371141459644136888946600237209512361951497004018262112006877523418055646078974994844995254797868376160943352515396122370988933670098450031584185556953747850452253311205161531523996055597677301500024572305969154416015619335585706014527366035812812683784150808188445638888501047269402744134233299219436215733384337933743885578029585818887045978477088156466306371115787190619338887544208375954001549429163434264767124088105622095895588616191644857201113090493528406151716333273828996091928251687122473335761843852038089423704805952461960011841312758446365795610468510628466980183825707569534168154446163577742737475798336460528037822754689702445133617110413504068292401352183151070853796054872630917583762559678245216172274522934933170353107813133124270329117983291454324992717921228459490197386639926656673442440087033269417267368313612382812766060539358461648853894270147322900663345987119759245789990510036309993763073375169744233816039113754714580876341855728522482713164570173903625780645721103400859974562485288839554181742033075062139238562861367866363956620455954731706380189051787975969983222130186062808621588384155503103818818698396781095965091392133252264807762552101418416363266665195492641669205761140501218639132691851243438088799568169530652172198602612485837883350234407703103521011350758681953643237077196999745745022097980811769998465281756975659896586635388727304580936874707274760321617695610374853814599984138692962387577979561901303328533898371907646173410234702386892569815676056700354087400298830706408312605671063141330848809485636907011061492915948888468486153820949540185060177436521004331014691550452988626621758705573332632724855858989679964146059410054169236399346993965723591970349492771304975155992679893451769477038074258445944407792856709700237198120992749158356454647332528737309360292305392359805105103008614971613854909451234845300163237213056522727875514720908653712868831187363677406509204466339475663347478032110796091680626032053965093223320801139839012466481044515880642864274026575304354163229626773439160393422970827733986488057190201131581418727432659598390193288021113250757356930141950282993654441196105714601073762377853840906875760538739262448382627150856866412276235598093122905516713636040809347703218923701999345009977801042533153431147203861698689996332235750948160775977691291779579731907905378120147292533605572574966098573466499937107027101656010922743441447422654699477073719835455737152017857115128167406623197556139190136201267536629461665562276543555157635553704089254088873943566591512732385924226015469474491161569607145841919886729659470689730635322841496955503436273928963871967873576672269006672619002567670837892866684782264791569957268534061780078211360916993541702372511243456552366059640828737078568593593616532251117515077992181431126404367240919777619082905224748885145809753337580731189988065807296947317082125083784737556258761815889110101408145414337895460916590316072350775055679254408529009549114502197357622206767867830085101472601990235007137192483647805579407344730061873353410032979090730057633628642339089198532265103355020677231332067232806219663180151005725156974354459347090162369154905504198759631437479462975488759743108374268501849211643435175498537042264539892273890695170425888770132314051406044509109983804786532159541246908641453076416787543018004697723637710829186834898679933861458968570476658776386513107052699512756736898885219038494429708256407676338985086137689551936812573930884629648125903937859856834400962554367949623141818872803831983749092533407533356058330576750790923909481270512436054821301653748189543804092076378087838065429219679278921515311948293337262243570678938381485049274717500340246001826178821899646759420597658082907826479392933357842212854561010632568605406545547901308011022404644910141048795293263807615241123913137833281548348859446709217780690462416660080123768398167247685409896716898006131988858096533111104590708527376520165228730485619927052664008115109437476608181973146897190645788719542021720600218565001011590950538495847900683392894210975950971720887341166966353891441855692121352839025462760929529137014333620692901665874750121291776730765525176312915360177029894945263452102451537177185134002554641859194805504136959536269227104596044209271789132257961988387387791103894969164187908109312497676065058468919373920606856730087168356924356506197152162456074119321671220454997024767018532062108205733170617055796458625874662968772577191157131299861151222453275531457701548861098223946108962816419592321959138978718118040821173641065625336175136727979621251940628489137195527101010150087908823465326491880208717322060191732296938333426182987652462166363645005734713397303166318465782221754773383483218319700212318103140552855561028788346665253277352324205768544103943897518349745502778532046692057850565108266090771235467268743158825070434264039083501301354679970827491841881720937710449745471447947411365045346668358665164695536711594825114324907808277588234481183207909680232721354364011781245229693664756437844870948287268738903430130423767060776794685488035736361152266243784589329467978028925949347932505623785245664819376794637004315865545515390546711954744086400342130064776217897214561045471827040832317021055015002435068502093492381438749527934140545633486561447205917607974829661173901924819788640343777814565732161269092272767122671188430239854616530040570452594099960845552488508298687379155578480520315034131775760724724582422511277798681887528643831537332821631055809792452705719686059601744054435099012502618887087039499282053585124958926598037268598471174427195508877542119339051424788677639751078668472345126982782264658822867974210542978698183072274603927859472716144244243075280255127079618925769796028653383371813568430516472199972531730962010885585183842017144377102399376272570141934832719447391309849113133230976076808874665109141395428966460615091319320289399393354014051593762938684387446313493510881551725753320458731216353756793496756501345614716954291648305423609962214564258598339206327152043744806251546431811442684641662985269107684216491821851674023415362949463734679527916572866065758985829722954311692126272775434872061258119747186783847148200031948947818621923860956968731270598779108510330370955238709743306062157680388488732490134427553512229298225546727652990908461825396943973784077869297222685396989914568578458810072116158921185909501625956892009798323119078776962284162734547761018792291157565835228549511765720970903440838671704735313186018866127126477567177988408295890769001773296303880101939017059924925851087423298231076270601994329655826673927935082555426501389714669827129698781901242626345941838903229115280947894322571384962169614483157738879222761178290717312850531568923749660037896618410935262575892132137036203162154025895122921836367845254799621413192920252505899897891501779560850436708831647580255804230956084929618127926211030414689497249370996735340631510159850293375389885414687649539178665440868582386765526612534771195852656190525838069853686115585023678406198337979370471660805763770474961765322101306514278569237581191735167695457881298289672064829146729198317157555391870923657810350032825937538927463612279172799426758613005665209277694773619358502118900491002721716570844839576305184542095320782105677754552599111212167358172622884714370152858424001650182746233435353263216843791501306395173960236328882240981708521126187924143012026874014583741994014959429934517491381242819535727651078054347797506416094864837677864549118625285654885268484071493830119844448584793526138864937564541535365647600194463660263358375667901029194093275612705318259194621192676850528550867758986585903704768817914925227271418684690657241648156354921944522987193572614622671926232991522184792967457429336659355504493688122585104977241600550041500053156075401396589269019173018136193470077336102323541294570764179552264490574195816105494000508888256340433680981635772119520821993876414121547817272734184296615747329215486431405260800758141674899150151846019061789226001510758687457823127278134098266173017797327158143409986996598906165677523010028550119525793934210705822410085842050259118461668411056186586700378619297672833566278608795838351133780636041606034594546176963484331722248401087308891491452996654527038612010796670126478341706844284310230293610982013481917804390981782545853528748118135584273604979091967335746029275669063282046132430082718262220265803413545015856994280345991724098533172813149010423026320870794084627876258716697052969370512469031549962372972906993645214341392550203715172119232213065267161488400313770789891291060771749975976851869035136978125300333337684265040669014748908400981632536867946601637035459795421466432215786074941795786938042445782535834842803681714789334712655564352380039606414457062255961456448975760259309193249436032663412500848191109848087209301197473763986901288770530378348134506180804073617874514411330199453789225885033582030537472912193587973270450598549128712600526856225748006849513226834085551456688257126929022628576024644318848551422429401623625458251053467122084433351507792017318924298227790677286116723918667113298868127264554568628394709957909231604060928160779231051963289524335890246411503214607130990185559737212831508461917371675869863748861365065153374459651425741478573256869158560338573380289576772733157889965860180343471409441654562457347686101985275538892363638565303477319865853457076487528760379645720045692806100625176413712948909268852205715833476987543741273217387536717657881129416854332675753951460209046984359917621024368431758070647053695427061647325856412441679755322474109039741323739714833739014570604944001842472685413041871597978528934934990226546739167950986607118379478563929741340669088838435444334154385857397381973216094114870780983535996715767429533190325568062985912069883866275470488851028428409651879651361261501203742841048623179741357696392517920450285685162372906191490053367139139195480882063846981589660997811363618345852327953648506465618226976729637332821113837589777285984797865469233876318108842522547538994940871905788725893620060941892898745172731345454370326012801626941310983511257726086172972371278403712145679167098167574873278944699869864955929642637221330509062149436327870176692775058710171370156557928203267544710547254630257316589271129885822544589391571364957349519171274474430328276492326354982364101451284208899626854552887126040363160257434252216153981530646583304106663282089218388524840276891805094201695827352711127473425742636535677688709910155330025192198685832235715548260370337798773537656267144341990878897035563426519461143752741988725627001641675704557964378886510861496218053308976286519349472219164237706636516647990560335937091826566760605723163613468771848080544121420553089310012244531978086421340503975239185261984031958803781117959933259849400348880671997127368728209378025275714311253363891318938939313109726527832211378404904672598732820427968668761684869862468378084164400594330120367433607892034181560874140802425901332337643940913486501679270743464423480706826794814543601288229558671516086435429761695134624440910863260898094572226176374684755991298569331591357636081977913310081072137346915013546806901099156142857890834734424085906783105046283839634281671543245428975607009843737613140581101927272030862762267550011183795636987150925463107841118806440321681233684647379400627473530953811230779725369014533771884842511375901729681753757268966624908486551864352382211394748250799809724311474353734675956258331973818609510391564978182780678037375793818141506193188555301870406611783782998267898774364980239488819542326653751565665224120759353130647440433487915063210112471002487787780517113351279966223548608431743434137938176868192936977053842774990984396681741926415448262478229474790190684607987845730396914453007177408452570108350476670014944329354915125287130472724962855328794141151767082455123893541203849773978720111201466719621486747802091711718087224308190490369385556632866378999577448389784339672222409078607267739113547281025056401748876486462317872151145065718062172069245219528169137959745933378795227691549742713966164502069273036163151840638373676903557289138280198088807227161572905141027035785130335530406023484885307091375270883731415097137177851901780297935367042093890017329043189351377654472010990137169947659645056066078460569489288036652054082474095564575415266746242327607187652927636957216242473289291398979744935810171976827603759508036444153590739146983225663850984577990589936916916458999668917602990107974796805984753865460602775244977457003595809645308687676511748422749598967750984461255250418393983204799331795588914650227174588716515638611319811745424045684424828751828754652626863297197775504587570266233561326681590665878503283882043248793614520047144749673111122893515277023195743106889297594431175053921768340489686791377462364181316063469162324968491077764819844003131880301075952510364090833989262455874667503268301674920067668370294640998800858711641593545240554321186813158439427606647912463087941138434520457544552376244907516229074999390792870222093137468715353103826119493290472049974403513931884081541880049549972278415879678639860007747599830624286650354847998675301468236086712742353968339672810433966057430729212780588303253911537231553860277733876049613283766214768144676049346096087454842882121361289121332859719188539623665297113113567590507017887769126240288823673237292886710369621413005073530225815959013232060696393478246936110456526345630178758124839836388472854332476250376785018501885407858489084357349574005614641156697628110551101851351115811940132895900405927707634334872281158409566456012614145575219988364341923231128081950652699943718883044717910251978541820318237306345076781079486210008309387564768758853166593403968900262801710707804927867047784252458208295738721489169913765976803288770165414110516519030874513442383585599548102806282280081892855744712066859274374072820184640475514351940074242913847808960134812410437949445820679318290233566240398053324203542042010070520997857224038778519225635800685925671086709152746319929288823936175545134862218555871515339831559995389288098732911690789720817524581081374233807178531378564572165568036464472619810613371025849273864962038287694171353475921325573542195496954684102364443722207789002211585291416528787967348296855034736043144441231488708501363476247279432454995120502829864207655713218424138090332255500362384950277454357852333379806608348132298024684105139206129532336629106085678647090116887202615401811234366566271578714777437469614317490876479979200233226246934451311124150295132477343135991291242654054662354260793592205432443865038856679785085705283953893360447696299347604039495801208963314049762528057789640367610475073853719554952850067811088160860634410018625516487017011824735985072060888159118796939668904121070920708387147134873769549198752792414979151141252593853907208554131081402072177921172583582148666335435826753259068883086858938585366765325653637053341083508625554521782140115214716974863092049093127204719586219914337481341941495246195903098880824525112189185798615126961147978985370368080860555328602323119367107294293989386922644022080328051453455519706431433351314931193363451857188356700332963412780227956984912834366681216404263048794304971191518140714978377130192474030126986928786647949347415542923419612860530013951041070623272334718455193199801879272819013079942780718769341095509951204786367589393397386330312529170934208481429656673144275214620679567404593149958698188350213293940796021988057043691052582682614830258727011334596879457246486160349392284944072549986166309566348726097904294244929331013655123380687999636228035390395254919364974979226148306519375590772562739106206362219786462803456735463163048930545408978659966531939698247346986311400745812898315815851029649860028613834150417951983711697922244502794662085006468049148586602323264462580321979830270722468132416905688423625053915660862471777002936028346303581003835695903550668171632696622941850220679162835671864572458145138695593616702713199546091396223026673234297210611192598294196751108062139771996840319652144960308933402759822451662077958572998294390935001790905996919948981523358508455103707980424471781052353723919412201079354083641142794153314118386049593026460487745349497486064627290072666297847221929478858151179009285938109553336563150800963076816319102410860684768556600342820125744099951760678667666536543134431624576526866736274926252583378108210676150629186450813192269790854041887638472831200302439738609700574798846894515504845776956883439581519528784706613660626117336535146892818798620734751415667104100508765311289247574349071985832560414957764498539136147520524203252264456430240936928993567627822372013635022101896229816077167325966029700253577366872201316342129050430225824019012265981368936317054306044615086572040884076837464521225082479986007220903056749563295007019481579301531013553933440125002819364340596537204109636886680385471741481765268808751063966342474548989428256848865900058589085956858132930881511336420002179156708892279317558670636719333104104354259621208114535437752394698992725404941745356658006344189109981840580361821139307327099845031665617467412032381804974484087120580776836680000720902063181440853096802337001911954396305982720259576466012442893088689938159223166708879662034528977416048553460367049520957014244159438283793013008088257953056543822465696858992012468707070368135717456434924974121281736993869988441520919163415368549750719954734388159459988999902742003977718030743939981328243853720151666679661202232813143727142605847131228866442451091952309108032081646526608309941267681913344530917869232411990823436135714338486380038708568044220453426138966354650713551287506529909536641464202902558860108902275252170794620015167638368388106816151523837892181887063453380013955083515342055284445876524653701239914780042302764287803656615295531754292250203989873657678824156042478720097192204389015127304419050839773934654060853210658094832601341997254167149809421210897919224577131491515183791479948410291257115953193376179519629278849914346047534080527509334293485747244810054119774266227810077120920184470394790348374869466983750801498150449142706716609215852346351026669961521030419637879248435668410065712055419117538950205965155377377469899973109636563187863714422222797833828383066415817854447228945742020707585586685863237199342301913015664701169701250664540626441462284710110752529634084947125069081414643644098221326204204878564523861959782655385803219027409179110440749890710271539520463695815877734898205941584064069234288389074732342880368496078703613604730522075362866563756647024043858517558505730159971047685865045525148593669481919382771277739748213162709459025848676002826843888094613905414296735201299397130031211866420240047605500738639463168285760606788619958715081649266561643739351436014907002393603839588069261834365343406187174667752488165700664583225923780656092553683863140378070654797549716975670318924686240595589921738226685963534697144327365863114767996748138522611679987471357413766323932635603968873989784093729001316459599782014646865291731480880742867443047085237932926398043695876467346749253339479439171506391527665420705493193851101497635090560643889653847892788856947831796518225066965244123028665833232131104492035559988230105393718484784699338737695082624465243621019888798093707273806950602394292625206431134408886765858214848671671396305025697484241162739381036713113468804154691830318519567740335020201271790360377617298113646639217645087114256991280464049324547534334564732057952986763204293707617169830640452751271382496924581518827952712581022038845271972746080882888857847686981217093403012474411838631396527181849285982652482649710676830851879221291871664577468789752100002733511454950169152818457667697294341746415049877817541956754793496460848360632699328674857244335408876141295902093058620101934308425065395641890793563867279862010892524652912994239300631985831002685317024755421944854417727659365073403329828530001548816591693026951232547451644482763199419433911237452688563692301317558379469368330290136653010229511631550814968854847387128675320201762476552730327770960150375506305305934263760717646091221091075231470617333687671277299714291651867581142220654254988371458698769656526622970171356771690345628647611603547211259601722972240121543518667815086271458638695535839353308425270774875215736078018229612429092252173320964508652074936258860271130411423382159205062643648255320769935028532791950439454300693432040163163961246282269904314892928926322316407157032834227654039904356519910480394934909899888353417782697477765933179482400956646880704849388548417714663974317401121932137846097601660463192997586227481843000303920660134124433061017949228353489805915334546978290563170258683027661103629552118375426349684356815244796192448129638385223504233246467323631900737676738003837888238688835678902481563751899600133423529902869909467366025746577994193219030004560422924814111108722276925874330279285385825762667140442084227219647946922231759525840394270684958669417652595862007069261855704687204030715177997487300215470845582895122967772815071602996329336434335687626179841796503299530625550920082350731757723502416835652691253327639814022746261015627166970012035291153785956719507588553604663405911920371828934847753258015535462194116706762755549487783119134053597977519122588755401645523069752337817188743568279834231769529349483888972515603450993409978697514010474254351452991252129926667082283074028101065348903862486980998866080946810909246333861859180368678231080540226435013240157632743609881667853908884464603693417918799981744925908651137561816200690332692875342029629592744418662978911850394835331351596244665169325924223596593242333958641522637432583661612230328692725191308186345767578073932586039226606178703995387762521026128358589861213313928017588719973626278675425839985630754538963263159511417395292936684789608309418122608315077931776041601449751378587417094682310720083148462235402483639603840877099240061794712755367971207871615858815273144700125490219867736658005743707113505407164657857641384450234722450510135541298400771565476334889894556363993680514350659264992305471196377856135342625609373355888728624365281429687669743210531917345469722271468757638949541987574655094955114703829246426529385402356968151310584925461412974549009993227910834044697135421598005858200018618821015348921647131714405889217805880320284632475923383528137921298824667315845491768380662532967352470493072630845008973228760675666255655116198017043784714327775304970388867890463029051514290558632686586270256086555181765090772812255840697131272708669876238998877950708385443780393512207945426775620532483373320070104373817309140869726493972699855584343186451487241675367337320987064718253154227480137233641478399356529754053835623280265738835165730135076144202487897698689722590436655104213267427464720257862444181728132353119494017115408996641614349954684031360054046406220570294940853675242928710903601482108431426040773640537577126323645440694414210361343962406643071920401357483092285031839314236804693349947041993359748601224044174926557631553116587014109792775126919457174430544605584074249610743225945583556115311119155285964598119390960836554216179941952579901128413392680967031081977165368444388337458080865301359858376112078738991404944905485947067025084860483095592288555661380032495747188589244811136830709766727776558313959547115138722850524608397637488697785562903447988501645716627757467961365624899846182088794264548803452642936239134123258576883588961201700894116975469040319809962186494650427010424506445759005145647943058493479720292678642162168355990949800063315310403399535879895819910329128653421115345763683107054183657229123173015401568374138325264999610690574597603308213740368346267716576252884385368785542544659204414715252161472549901584080716683838762331018964246452597765653308568593917150653848193822274980401826236454603015733087416023865829475175019912614445834572406937752377394789334110675906941619890571814545656402180114832302901547343338622703207703499031885485002156771987321198228789964789577830795558448111177057897869534794688584559256698021474979998612458474782707093817745724847897095218047893639052678872813034091853762327442015898602521275655669915802933386749580840615006796130489868674569525111003628906191912807926493853733385919992232222368932189326877031810013590750389959103533497796581674363379576077735069440177438619781981132407567114253565344666791013568548794364629140141933025709749641416548284085977023978733611670164477587351217798033165159346502013650823530322597651256529329478511298099272269723439392063835768564606540866993482105639919447030362089947848028844980728450994298564956521218448943064276714092625337428746527108509314614299653035704313406122900845452359806659995680844951443636472314411781411242172126512863037557072476224155439707982572319089656912195910263903765621387068057372679837474075053223394813559354339746689976781003758248712122837683586400178193142294451959579359719369569516654782811603852998125626253762195693366241257558426631943327317366788259841243058267017266390261436309302487112118209449097818522201413284862291847085898612415019217209493041769146127467794744484625574083766738537247362729519710992781197949150159102411647061808312638662149012104437532654667598642405332572381742012963912060175737631343392939450288070016969108695797590916781326802945706251738840812791855378927037713570265281867718738646908293810453905324598970331193168634265115198477012226479027061200896861225177804004019892237984858452202917531722826511277270056486016805944906680594629570910264127647226486944921739074157012077945595753351077414072980483981148496739757159258936774100894068245273289681332805959940637678434550134551807811149163960550619462338194704012302042295959613576718316223526290694332199395776967229636127912117364914266659456063998072866454696446108695793586242445432937191055947552461085202244984613736212686850756442088940183395640695427227259823507060843417644977984835916706611788803998051495218759650797221558603152406528229960760567472409444815402345212925451095263197669745169847319304441001328391527862533522678717591045624531568211856882204430866276860578380647150974502240208789377182838836518174725405653934118198583627325917471845882525818122232183507850524066758438198888835629448605092064988911205671505974255245149401081833925469038508877207933176692733648981294491724807043300839120683179167507452701093599257720634768391203754152824095761871551762604135757242310988071985980980231548017313540497101310691437074998770346544729151648597459409489805430671057881949509174786014947696420139831112938415936526277844049569755194368507714437755089575044699328546739671128518484940406424088755910019619868557779227196149480661103551472697295744289838027712846095350550109145128329249216413151478424685866502271841331563381041071418199603488737062893616403125415726696297658095031976656003171882977416763613265366607407222043133896941866514357434632063453967362105837318642998740093490154656953646801053303435254096724990328128116293511794874579604466601177253035691544331477616083181525222478602973492131743783783944877380389311849400928201227162562310005365095500232663251407362078544848146771948725525201277523906504893741947484809329962155806789322228425822463144355830921016316502944293513223085218061258289133917457508558911138715370495795652225420298554880156834990904673974901500591942169039354005910334944397268733521043791528634675869691374221732488358324070017178114015366463114196455903400264647265846941575049144950073952730802791638484986069077071365319322737812919997474289187245561823999368158880150052865184593834571564432888058307126696202180729812960555067411651743129084440483997596622288777792858104198187073741231059779645065092059672597056415235918225167776341645075769857306028307897156489265711808409581098175995288708580806483867551716235947172997064409609041304174248933024253861390397364485476338900641832458500130599438271685168496698053086009645838844774712589157532915066760342090025075781854628012329802246975744282384155506308157585436073536819309445435590798713669493775250310462985297073465318850098464105788848919578640952662336527951335765494479254394529252354686893316621154137112729718735097648907421432572516969352892725295672640836959993443870456778291664024208905194630722673687419667253820574386884331639133780830952813288120947552766465471051465306822044138360267783411930972128932414096629937008755464585159456343303368884437050915070903787708786762755841223129107075930619903969220102041082084578413609143992786056946193483266919678128932597493356672842023326896490050424512579436441610909255280862422267485097102880233635315214158782809544402240917487076880860105094016905715945212450275095293102153618523927124508745421744484919376537309997613079356422427927290807853462229413959843179889668431848028509205512036713873291343539197703723484048899566727999346418374762388435413177129459386220835042785991935644577544051191361413271178054156196340569371349997059406964602735135051584668708256267072041006309599159196924687015886364006776077506147705704648871278243936390788513088250847397447019350428264440177975859055959437529436273233486046575545766102644500725339928926950430936098475570692563653266557130611992267591172272472747328938776697815649614171217375307190653790000015698460130592526710955881016059703238974706886464086855841323050301698404682907566604497436345466588411501075862270741903013140857655475594315889030796005359833024017370637977389664742758108285947748634178740988383365968841612552711420987178998113006822096140245230767194937013521130156931559684435050946272263217691821898024413457183182266268024999035372722059841268164489358378032043934611227628446595150744245718023404784438351280499026794662545242336917909377366424107648187157151326655501666095707885132624343444687443763933300033478233714882488172228839350032342054851935123209857965249305863042017509472716288465048202059652052515206527567513817108178127728684328068833336220848820043092875397319160024953627223683778098506126601678303140411168025402984960160239841322187868191216079391630860033500359272806125022359953405727230529791055072101413460447227448784763317077802072768861919961241132562659906524995045598389168332837929464960007397830153167637777874874132199718828010432381070897351883964841106502652483950520255328675977162437144116818767708368571229458607794288716396337860608098783497667628170606784506712608989372825130666524290295485606799297727457163585676267215451800498528000736557085802140158791033549351890656162554772941534011232669252970016251320143962793646145980411809264861604591804694887238588181075121930572742343016478560470213372073017794177284664999899119272000165781070036277109723578015377904438976231265562802490523290442156862095299013669844076875651298371315162062620571053556970212793829071664844636830395278419975755640362400740784605543697673461804869110586441940544127770716346628760113482076427486751445846751837662502582469296189149491279889939824957789379400333678802656585618698976154515463251186560966170896139001850681483810312904552984066637638951366932520438603325337116788785702030180671684028047546838820995627429443363214121315222453654391520864179564228939659828145806393608593441402828377828432207614684683219132833887132526001246767231326723337014807204046431140156521599330204919638669570390685020912630848120168720315687464979661013933112160949388875239907703189068747499486474275809466754494314494496409345031417034868020934878668167131598174088136016072651465710665417812304168144316821045782025017862640239831230673576098797673301120630666242588079978077481002290310082308857045787998836728991244827614908998095974912378650721403339090351083742088992302873554713618779768090498037808825185356078184214248860827201333039427606194362948565178118819229787267508996025373939676027031263887071737244019582277477353491263487920649636075297869000163054999930566711047783878676943240813527055282050186909016881485718351692957609715423310489141056707408632550680876813036106187288930359896466817474583229175987831556944540592598345956657038786852033503152186616536966803259949780855055528679402946866188922365397625633169220336143695167811351664308174740287137823607262300573858727702912206571521287307866421049255299253907193589462588722136664207319104455048747234947434130188007106402630070567120157508798316190912186269900373282468307142875937963829795204042321654117062986003582624585116478195582505358759538552612691553903124628956772694393686786593457326160396880661632813273761680510858336875607379739356898084187273292356022519704659356979505356021212290387920065689228372512455490389483621205425513864298896054801931980476214014670160946030705728568182458453189009437279631468242931852709020329454120616160753499542498775624882392394322785334425444304128930268557851401248119300732136382135086784852280615348456447363246517270372406555534058749672299342134424189588834684052551549873678337489061652528001135415775545336418058917224446211217473742759835243782272169347264812720857444011053300200990452413781059042415940911165993587283760237889706487453263613438886621214848694276872404218776735936447588451114012944109001704171459322664164760118945617835662072137899925673683382474004860079407403128843418767331740621027096482115079769472009863014947731737656484228211351032333180728626249967051012189970250694682068915919584823444288995491969276681172525945605054627734508831486573333978708091906572236851748567076496315087906371647058024849453639385078862114653316639660237605605228173990773510000344589836439304230654481356027575371682697647789355211698273373278563195158815962869103468048644993744629203929697021853568177985458059492344224372510968102559450262670625517015836099614106555749827028853292871610151455957105769132078341889110484131666262932399305177814101333170829726437346147289922000074284738903736986896102684165608534355599357159393150347488020849260213061318708740134275688465865736161785039843436676262089546108958286583614379971801979987756486206039649578381930503613748831154932340208965100942232751958283151784492504011396360099563087093028611910737830706452602413759502440904647435673244147337508111741054849138833361441887532412107931839126430974660148594779465749388030790308073398857162078170138669323674014337624636215895130423678067909741619309563675713146945296751439314835871912483062534174174506301217116263290502069454297463549579063680548353804319638049414915517320680066323935955439115831601447029381839124492824541334999595367448387140785140634315287954805651024172580375276147450450104637390117946509827038049962815951673585301043674509427672967646246049995115034389923183663327144383328226792614428350425194320158730557296337084322183804838578374258469275582268393500816699192062397223016839011782775822357263505478410579055918048768139215927109182706651028156203579399813634276481497333448824229148612177475463512152400553056675919123357712138391725321822753589320472071672768009603008637788262717474631427995449663771800598879371701156515881039526040054778214239632753738199370256216487028993166317807825565343752773665404321304274124717726470869224293118286581611516082067969072858369038676731831038113642613204551264779627267969314830379476665267623902716602747265747694199043829548886486679513588410035485528456127375947950150046549011430837179663448319828242840127486571815974069807338985759832851768961521464431293977129736718171405961622392639638725941678260199086253759924589446241446646848728520426516960109939461807254639739580092802825322028790634575749105320089711576339800803249718335317492078716062409701864832551734663575379086400338373952788995886229810887739121909916789005877622073821286286569337406676583667973154092932056823129352334623392568854066837610139801294366301691467336319045096510805228284156110638371736010871602899549387911333581438797471636874544042393407398283993036523037554305708225118699859270077949852691861310748092109866194745024627817213257846880398411575735293114122230320565075757424860130193016700892365567867469851387570285296651005670976491519992923847723111138593767845146367238565276342198420925956106955440758654889321786494275788879690703600665981369053226548459369686869449768380322790403683481606558359409877360625216819779632449388461244644961861256604485422514910406667803207809089026984976683049615344373227296891067208566655684864978783562141631205899389275500619235142273827553914844413047697142366320928020712264380830074906234021113669899186553805799841793929560085052311202475829437560355523662446113015664662320654556341168382068394511231495250269144109658237201987372850818205126398259624339548810109567055623112734384492523667864428361852931442347544486577112262485543335314054853136464516525770909279376834028142850266682852309091886907455354137950717391245905063424875254637098346414968277076827813394990724706487484072563241691830619609573711014725659764960592874063513496803358583390035172678721758818804845916259087315419646406416719599584359427476760131349015801092590088005006145450172219700294378182870891071812627478056062724974498243912632720386717521089279314556354990014664313812891319998740738666632155040978997891871818929402707067202088107743176968488557400254416288494935826868745297382687550816280317132414641785960244915619592726765127183504376054525428162419852184839115397039892761651989246744192576072599493347053141457542584308740304579143099241208068963846829685939455476337058274815687658556869468657423090229937768978098157104801036413087007695051855719885705662057109962408212553798853896084736764904009295769680638822823306039978048275926259618910007513209378119308042029651038649381439415209576906007410289541817778977233325916672718580562194484674152933889984440417134198297134988437496421160311120793681532911458423004702096129017919059998342781606062784503512289143720794703252972763535322553237231084447429151165704249210758775733302613095512958357936726094112040070647839445413780656749811762223437835616815396290314780483297302577442363786297351746444351151801992831576717501272070078701071710887372794981983608493780355042897812790264928092046875566788240633018198359146970415061076691153539241089700032073490396106622619523673559838813287484871668951688926953480495807788623469190247325912627623985598046009296640728845508933119800346321367949156367470392029918891899175051250980753709883441491307000588072994765009501307622264457569540835212979467816568045060378310175719887841632198864918324353357528893237077407873542840536318393401826122340726194148609691625559977270866218686228688244620289778088149509597460640566590683331573957446248258232476478058041747119208599125322115919711540865867566030282708207553479999652023029901832846737555368287902056678801425320279440613701623176123615844022319891225035683600292664295289594895173509693828743798925760157116024881533886186233400810745551154210907549667261992403626941485919943509047562078198747549299559800357739649206475511923620066660913210648943383049694052330053455943598372730793036071868782214412708834253411054735643613666674640092480582553253968958371566450997532035816807914687010359100655727299646552881760080912298475935240113305313492665774131853677001961596686506186197746105595157691694632038846782487278857865922476604338907380344846526068598087238661714097314320672126752057760397255004859562794662137982995604754393982111722848548154524264123292775081899284435619372935593133563676852381597032556955526317348168036100422326230047235184455981713418871254536453570449453403066937322808091218073557283962093681538819227263990896898488139753008945530173614671963971342920712422135366165734568834982863536259777980811552663921227193186785301355579587785999260335530272534015542299510565684907010063208095459361688308489066666286941592953481165051925084416401334574414888132467197840152511595347635563558192212074893060562595262062253849982413028656473832234935195067143843236249451062652280518375470530835001255815574005561783161398473174609236363722063254450898482598098495691079090557310018841329827257435907538993974268653760915567110134292642571252337172108075872474194037415063194433724663174511330734035592979403801574768552621694442649105915113005166006770026541131532148095114840676036072777463749056220058031183987914981003676145741656479882802496705124030358895534260922713816681009328012359924939638785382140844820745514660968363241780949037489293934229733826164576912779038647693693762876879412511259194370852556561029799086812898195034344249567823202229680393674478792652947592064450174896100221720138997501188147499874686919276000105241066201135195393417781991436560644773966771224128986294775202846135616681671597790823197421108371930285129063061337033743978224263028765873204714422220579695572779593994343931792784659477340499230551839234866322676439819460461348150398097555651367984753888591379904091549082036908158239468648598333400839800626333218887918328614266078375618162491273316535487375719910384996350374852909771542982275062497891531982496293804183557188548185954049012538354612534044504707068687438368491092510102628430991878290302162639183025793650206059987549746189868377456929307733674627935139978222776644612367008858204334818912657080051529415638539197055797616995720172712634755472554665126206520698265729426124365901901960654312983878763167876849754611715088099565706362991650134982023248145875747479533302887543547849152256496100502804163825571199119705420592334880048463774630816748678120950717603116991071287325651333851481509444086722887539227932311579535931116168636699365753921945983618628347659545120696734383650599206291760170456577469175883874893883058599725124507569876940878338992801475182489694182204349441754629321188687997157230299052020918450519616907742660374672533201696805705912385668850304205045636583497345541194415225014901089885342125461922823782866520874440689130693935254936879381289896401005403912014595360325879325626595516683137407363050022300860123680632022375096567699587079688972874991807499457868694509889579502753789816279144063188223981863850472882522842352433698901966337978602983811386581590763354059471309822673294776440780804711661370704225449659245808750210949436178941039670086174877386090139293710707717082095409197144428696891897821143929251757513448104991166166552052564377495824305424295614390029875876343443181384102638261548390974037226964694602914642503552757452409608294728648179230264503425120265319873214624856770131811065575751218684572447039224271548417813284437155770791200411877862177899766950084602139912106239530545240873495664500122256254652787726355248317843702634597239498466207872271089585683828007345182691227814904778689085290902308214408629507655051240747026123781206698539512119397787653636768241430058217344681804897140041332312690226647010390369640608487384281623751624721567210878403101654734852568988136758059258853129235424853021033123898549786955069624679524437316547431494022573358306777418633460883830753114996005857221267898324636994103902990344291334715626031967636207696365025702399282011266388523208428668505348123278508615636862215641207466427664346282811609415832352588272003322979409585513940477212534456623748900028013276001481298702782024107718999537784917711017809425627401324526014953070487890820656012857718770799082868250703063754909512109366855500564984120951073389795758758273084235679111728149041053311312010672222598237611745365320604597996705364223356149188780718672995622395587847889852526176764292595755297249173268738520915829727869372296208230344918890595337769164500467174644199208375144740239522759391402808542346996663212125308863408766305287227181550792508058727499777660968078323010989300996450093313901974755514881407717707298847485154705912328959393080925614452321180610582941069149347205051381537449236589066473377019742507736191797751704514098758935226033127397150523337803884402269345811698863364656421687135708091832339302172230723609517777178543261584512738654477948670659068355109456896344092159787005807103970426668171909852407251465997971762584323799139359008109765084147272194369539304017395300699936292200413299214705404217304932416503433133532794308221820010815505435880150740446409135430840468979768120643642195905494149899457875858054233562776447248761748282389788392739054617596730858437614879234074945139692841526537179310849891438574039333820934060916515292734108243264338605178767835012026662988768798970622495116466662404690725963699085326344350259624284275905743119562543235745538115071429817901963454922284539875968727931685339254920499513174543127335180054107815260717177914124534105282769165047750934152737401439475402605547365051240787817070673204159510442253877773787787302053898510627667442428352036683664134238330637960214190863338213541896767754685045264933892821540389465280344269696328770814850719899878249437355646185989599510576555877301436898181606920277135856988438306816648016867233859101596595394528396818629106187820392981940829645337654930031240075020150826631269036407078648985804986873291771824725201606596434030702164707720634132649439705288857970052805515182613270737434628307711469397914732583429067677405312835779690686470788056242052779893321970785372672943997604318113765233652053446787888444145052668020732874360741630588718877664312762454317943823098464814369555775362542620325373878302717337625659365766249057824817723629661252924815959204813887357683472783683532070247606253680499285960908652727795730931622472273402931351876105024839586030684097392214838270473546125193457530344661721652565068125561421248207539484787141179674343087259555830574624714380527501649931694045926340236413149307400842701346538759603546149664014802616497299721385873296992405390932465730441302223994199306949684581469150026921489372208702079413965518102527766614601598919262130578220123940632156246711875686855978093289839321712113070451370594557682829047181271321518015495466249488533369629402120228985151281415625594306467825901200918313234146814297299694839339411850058500560588430187933650727132851054365882908859893629360651756109070377183380798295687895600723933940758981323943426429998711794980288808352103714996575850801657358937589891851115406534613896593948470713108597918833838577539350515130992385639826128605664254786107785551671675870141342021699396359474905848627843452390311344794044184411995689010370457067856545191355672634813801882293271053142348965525858161628739706820522406029353216506548734371936598544608471317710628877329034465276900209464821137873549906797453623845958000931029567546828722604010412294074694697346170065342105021949623062739008077329150863356842125002708324511664777136784094957187154650738065572625992309136527984456004098638538800888113495270276325659267752418267334788415220966463817869042507258204094001870811303267979578716153157951796948153604130065018075288442651937550780236318094731166017464229212223061604407659216224557331772319597931352648825567553872211799638950931410411717570662893785919046444271772469737821534270782621308427012369691493955336660408590673812870579038468698585092380472514982994412139229250645107637088697407233837969222052825260222108536376479432653356605279916612654209919828504423880120027228250122844524303673544124014304889760606232502256077278906624029191460551927059482660615573446395898156619828789850975572166317170436072108658618846724597663959420963479478137283577065349046910042435499385407963893701338630754786514328469729812762495178718674768148931297424314027359576498125456203431300106174161366071352352398103236217923373102012209659965916429789850912200413911601072758660613573065239026358023450123666404959561212765073447069592439583818684985119305164020548534281651269470623146284013484567393781582970382168928076746045485606493088378491281675745226599748877973341553606455825637909252002751993046850778727781780094941229502468356488515429630398515245316903015478345912165425561017654123908393241053982140918108269671879054655641103737429256055847539521802436122940153811960763314619778472727908392173631060603952303564658472453299674950972059199209378816949275544590422933042664220080912510582306514516509800048321109875583457542139785295833507236901583577799405630583532208759914886134046883992478419984763936035596794404650875896199473618521485875481468512300033096024425502280701987565232807567924605070067503691387279822529902789837510425511959458846212238215269352186467673761197603418844364552699239635024937709095330012821636903922105613120623199230599772814457356132061567637843580821058345184422733933049583628956642590163165121714531030888461135261993181815202811132561279941801181384429699584746314619434299599134877718720607324556839246675185983107172702363959148421358471644605097619556895258288381581479152994768046418660477661771623698771944047957444165394020600064494283620071199747009110186151867158124373399878052389142266073944343350214958742960216345142886450232588145845499344520190056073953444803663755278934238360490940699604018181852265104161168032351406161944036004714361004218669410607322813211863187565691820812526529416657722291442939785801741878571497968953832280627111839179036176765834278942514198882158372158035574963394252620246029435689608671356954515372203997533911281520351921970647743896121143194364429605804504761728981865884524225833002497113478454911131851525744833176218790305096298254499556157687832765043358241689777676504352636093061786160805022352905157275130935531511533673259591892633000806045203751155705573343610426639318216639199108001582171432837978187395803372803789068248104311517162578159448812853577296102697409632085671308943621869397793549515069606099171096599378425622965396718247891867661902386414791587628058408423844361016747050700254706119776713293801264082481311781744038036952581217793976070030123168857333795060518500833082301475713027011276590897684215718906477901546739401670416570645625448698740936353280017607999408526244561667267430401689770135615089731216367740856945907668215296045628596993843160493241276048425588503884704449048128951118633644947250018070414293980165825382362196774296250232580677899397282832618870468547469192493740579183403260226394679796198863666162323364888326374032169399149148871530192890724681157380092945292180037458362861025050909825527932496960326416894986594040402992742591397071694297227593780275203750969504302065218887364617073197229645078376067551025213379003126649535593731674774349362180641420422837780659498210698226363099463845151410254098969611768438660861865996503359666482230663587047521399159341695679913863065256074380178520664676512767348462716543822117253870261041252471442715603593902203162857636387734137869278068563572296244950863569078272850829779197246621149656105452237590843303383073020874414059475464869534501530311438315061707788076679127218388181045445800730283889621717510377626833106133254357607265754014082430395101344380888367488787163485826550734302797287309549799175262333725171259429283454944095216661253603637773263756631415156625931390358394924856647282942586424379689029410019009148328338709241396737307586307075662971584709829207949628804094683264857218518248490887046857983019359033398428987728416075191099022745398167231666227192338637351512870973077303488242056686326580582490631450087806237903609306839034638308309920276003160851772309098215685818117491499151674965943483670803687068373016922973503273656985307777646298837988552139517416754662928088859046718695359867967152128910681573132145658684528308875224124036963112990924294431963434956380055013333010143374773659105281301730216171578324515546899277184012028165214491561459668573795754415285686611685480459731302589344096333211712062961374311214462264603481475747835515775762732040281743013005113111280193797143651915695718538844390296079435609748716859481723785841881825325605524073909865185313053911050844955787329453569527799788796976332951603547640424148037405114404688735104546943545562945949134228817475637466127398185542471762177024502886674154176400171288374619499404841682334217284780131262369368954578066408318152143353050039756806951650818773624009933367772322365495104313067280633357037687691315128268225833076420125411823247233768227987076040746552455696752506255757613936066985900556988723152446046334788128747368331495615945223021188346075160324150495226067362648540406612754481047365500549466817824558430669452636938846522809948403426903111436194173205054382597632834509127785465861510467793655799912619531568545247012841789847557943658189279388432891438988673974013510392906697369064417158897657103380897142895648527064770959924197021885137967847379863994880314018057744027556507364605524843359436996184817985287065235540280141758549570127508507125438561195130570370536297856536268503626655548162097593649414260376763989826941690880221512349090398780631772524564391402127339199561429085239150141075231711248968499790279283370423184856459341711046651162298499931925178467711964488517721773824511461812060018654358246622569655381952965919435469576753267613958136100246706015645380495421528411606038459156050528577550539777864519760390811462858771755459444197908917681235686278475546664633792688244457027375795022704052187233267235045014654602790389639544336769714141404581809806798590692385120495699112912234738976315674188477149793676961095048770970154074399365187713156814002761705283550944975880382572139293177310131694269026795766093930752732658713657494309399750778134529676263434242858014426120513940245671990233274585390829335869556991137310770036173452198678934600672260262691500887451633791731275374936850020373048771708795168423776891679320165658501453461273510710579603511575144576906252069307352847024167381307237658011100552288775225176380837554988195206282543901195182639383905850741882913546339805500601121671226230234185742110682229879126869826217418316126031248244249307990881090414439285694322652751510543655785365039104294747767816730285045606697458705435964695189204372234963671989004226271319436205305800225434824354205684780758213529604454033692845791950744117390823658377384283707689105487840265329816491871549991158433915727701708363438440502052333261592869928643686707410251883152346269777786965022053105342547359470396016378245635021000931749213094593557096892476665017634973963564763874366853998422534165051996071742101285709144715834882095146316160746925532613591605771049912237973801061487945333284795337904172134360334365237906845748021952863593312723671412554896025790366804108147398654168466569278132794771906251878926658571044670113261066053474753483790676966911078339260579439570133456707474456890240146767515363609047469733315482981544746397965889846279786380904995370373977152093103791489311942422678774754266945010973928122262601120257703466347631169551672834199910632605083570866625903252986534536246744119247446311114043681791209874902392889844696027115266829102308589033009410712963781428637496348661402702092815558394015011505080800086000998515581229084097079103423726188143308962295635688100171810648473964622706773145202757112089350829132738496972383387899868970056877263991730728909597066551998559170773710461768766110799468700374285138027157634835966006992944018192198787576110395436588207407739591703389418919278700642143581900654730542615965164439301971701309636392760936219306287511115182083136380996916839157106738941714621935280677638225855580853672390013147856583322753184248109442414492204726606172994818649277408036536652148524387709596265091005504087001424150522905144964837039779779780814228058083184478670162387063475546646700836274861340493018158139463588909056217940727127418547409903569341116951072581297906055694224463613266956033466398296750687392084987879035617290534784125201413613126836508722268553882492598216032753745462920734710877835384436475842796238313193858624699438417685247046933157433640422563488039200031995233968253268620660032911392152612046864982249253389025802364967707113603470797839140705676423227112025881759197336650774207637603455185697650055241597714200067034563821059195758323680324678855999467525517936797120954059927275405074704337954151427135319181914118815629111616583825548843334627446878544130960640736328574120413783295039445651042411427239692302104298604949247005721508062000439270811225989831765638778413066689235777884947057022185547510039035555038752002923231318586265133301930710734564660293569415905528608689141560061775033256126273425502486711969875785315248787353710317176970184977127267486657571269934272038900335486122903712122326819092341766790086405672473491402969445497731508570607666898070694924957393923217182889533943874692922103807769543644326036743814631286584915152515059719094631506736507144202757002395576360261566459779625173387602951552585448931139720550479785020199242089542184373234572743726185618161288432930211196587622842193784228200581612797774585290815611138673525761750219654310063528900630352955049699363289458721576416796486612756372416412007490919321173034855265264584243046455664501716587592834361912517026664157660300810420349951818877096030622859410543184328044181835934472219552454136865053825928929885607056498667764577094049430235361581407349877792268266566339299687909894835465198189334507027109343966081849630619209213717185870438735129493417904971885685147982301545893958967180511611066420908827271559413316116773310899822760099965350214834519127982153652249399246128081264749105808400310297811242004694805026093815323300301451921295586819948796784069377770290728935374459194647403149228323006931222583111676898840388082114319914353072529208625190728721510391983995563894912572107362940124712944724463539875267603931455364866202495678373573432406027982514078804744437856454465440545040621178507045655252819781329591945226016677706659466046157509920948190435542037437805220412583135218209903573386010721786900995477843576715985990917998258558779437119085564415627876729723330753896909193416684492640100200441432523193429236213721470911185711286170443963593471574284369659657955712616380069004854065678793854994779063419625399609714935875123889698863947718123101027074215030747233449018598138028982848185664355278779833807088356375032575810882689938695623344397929855036594813329304845204472631302220828009699330542444069473230955510983233762099118656774315732659699981504226169060981294381398231323425093026909497998248258319102818712408638957476727669904428906114335904790509251584474153650119604350447985519195702435768039717815204253309401375429002655134191765138027715800458581755654156494105023146266850644508836387508940626582454890916565599588062772096619812084798544849254909696631803360977133956401319483354483512339607415697357921297646346524997586503316907678479337373184511600979351809436643369149484905638189368902943666154889891199055321971437148830236574801960324798491994675678295172901168997728020281717642287906628308181520330778103435369178172746239831354515922746813629072107691036212793439519233431854839824415566084489114252719262349061568768167841650378213129665063609686547450134310510646080191644695686112902611723490498193678209668366646423039805492840559570544271569803033579266122830970541452189197322162170488801415868762919932730161197527775324642345029139544158232192973258701085004461335026368406003996231411914093601971618172074248760917599963910797972767848462526446526159215503848648364645466016055248012061747515814483241145238688190126508148817788014064808353221326161326000494170373238397796972786957287189808317213537703400233620664276150045461388986473927507932603078738895673734918390992890680349785148003461631172582622446429267368203007658086196793395667962030442646414984926965647332536273361525515674686394442275777221236486288844856809910278065185275023240810343325942116736632725084303366052280257675249614481125205709230687034535280139235434390374902186581134556675376730035528599594599562522715670056200828905629767917784973802887560329816630846881920673930896599692404827939599814499432001722982025283685060731348883686398570986891440312266418198876961480511173135057120322458872238065660184821939123757886620504523983534670015522458433560469069448267986520825147811940651520425964998125593876297715093627667005543344726656339252589888630951307852983813180591508954696813417080613358017691572868284037168190230377464796851553751559975725547471764201570800510506567475325272635932501536535523188238350700876217310400861432631608923231768866039277709841534429715862201869703084359243495602605010076384965839564481847005940485854789882736109045963655524665071397368280437054380637866595927884629326697372801734633452795635897204587690351461606828476152213851476409957707438772762290549336141521107573399417155344297486727356906171710698756788727355792207674750517837849820133905057824551232436788032977428610192621293462450706186204718926990595301652795654308085492331731815871729146645869207638857706683513549735723080099729141393902143784653151267548517305656206645792492310641790330133039158409320569916354046532402430110780988827875124732646822857747444178873359587413283336968184004433726635682144951941400463057656779576327688891039752811648048628610023662605599466726516171661822156616715240000781837510540996750361186863870143547388634733243769647305036258844069644363866232613262356445277733037050039990112505226608822177089868800262789023563122936207841847287951986039876667486642551100629572120848586466172012903880626332374282275347034018514042884675664209825121883911414336991893543151906682462069239741192052710290164651758721683583116200842429019610627722870087610230116477061828555500384206511260788776768430344118622712675134169923622989088202883514891502414801578641039236566137335387939753892296021804823793377623635462109494384736929645858308597220095875949675537234857821714433533462368796956109542860289571471917144682479466755074402540878143425196491294709457190112760889176104803848131051211691210512233394061557628169889483802486669784945905557225563465683020578654663634049917265335541910402557652788318222106005404053917023891850024980319495020170691003890276357528574891612573548382488754453175314832434245611725587609566295049490938698356107258117945542414237894983262700090163333705359609979600001277691831302055867450139687691113654736008733379263009552856235470755786342850353546159352948993553574622909326721604221413795520768714865191035849715258501164431594258985234500744011355874730184774148666113796135576494812310613511571725950331525799518778236455846942986779982692525050569341128620139563099757242967408640133529878093765594356840815339506422821745522805283620100633651262425007646676804377579494894193608588513271770770418631255221469431975977171616390052721179054202393506584651369835375389750736900260403629715427685085775912692173277722997642892628082756697948240387491840613886626231197875869823884206826618909514938317999058396181152996896840250242904629729389990928199155751359093838728755742367306183045292916392657835707146061704659528547217678211297329321017223204712807468559336311508451214403858361876273662239271649952958395060232407416910806014116618863909802217671800633886050387273929967753099076387775224242734932943162029136826062364532034616700878135408806496351989949773639233757674066184614850504864136680560112699581233065826114252234061088631015543032859210923157906004736325785342292123766761322189966927727352442919879574713274998281400519172938368530745568996117175536487419500059708365036487059328204730978728403753927182375726024319662066621118889784935777848918720164948088185467280653326771334056197642533875064399101587918425889478956041410380114458169524878897020776998723242681186532386918602073652396072782625264646265915147095250600956223688231159970912643836433808044734867780574932962736199375395595360157881421833751835317405415691868360894440098924486277143446655697532564935713244291899106981768852408998979716132429978114973095654065067617119484558194701927058439628372683955858655761160995406680334891958904358608312047776470606829509478881491816020436510348135196578619113813949577774960639307762527602231229243610035521260023995531774653512148948798878553357907544204347441467947509006961504387028430784994433281299717767045500058831542718218633092772342213912763756486948433507712439015121276123386761424507780753458155802446198841470916305316023131885259873196994723823277996709782498241627404695747367923334144653028920155950701588541913072493633263031351216292084638563325848892670431280985355098915868248284636804316176581273655402892331993929734341237083397381846418995605458432010206901861057632510189401900685745266203757476249754774236767292379569584509318331506211421144742136038595385543156342000142510805302728064218330623590231808157992628297577356391276851608115866501736514797438559789107147662157665989334155545598417499190798182871793975808230367384632897272701278275915694551493062653943652247597124080211833033689682251741877137579065341330150533546011793358795817925503013237667488520078595985473203781579067786851212802355566172469459477433116546914523807637656566683088961979071082734876383716334290907666388794435315104393659257695443860531993410572363440761955649289159373494410223650248318621606556073927739165526830371353234384665906653514563053375902837262619503491618673120113823328108524254447544993948469569914710477201115040602359427740023786821271437929118635276243169420988717176821062747077468191404696255363458984311130847753047156664314828164156487405716236931618102667338215213379817267918631539926430533109510451706640345851961341271219861077869677610227737537420952332674215825917270749960175195708264628394373595264705219287957946145913175149422609247136161702653413185042101393261615416998859378221299054290829152402284078821882203257681227271505205790230284560920210543346516004733659335246335969231493573973422021491167137038757287045672366088964355752264434465799471445223611257526160403668449003046554337983388788311682588290148290111775764684839452267094073360957717064724076015934753747093387585044788425219094497241189431498365957945359757266712660787107334516850190234798757176274694047209747951193822855465764164254673969405186933028646275453902008360291592678558105850565365475512360051113710371112503189968911376009109323409370251281980641240724737989645908833997677389483150574586930922607926515958583424113408033412582883767721078047133746241616359432890415425492868702135627503880124555920910674850514426369071616325680269989278484716703222887729345510122589431196044296427328278002517398048967702685780807267711422775020509987085831223910110283944872367635364661771187577978924159691621558327974546703002749266731858017698596275418891277557003054964823681720616345838367231832010694500597460888323262705791598030903901767632250448052968057596901582359019411552197828600551252949440060107681370179623817451700871986161340772705193538754007138324521971702449493585659212980786548910330973158399053651785601032955809112238863874895228187179439767419051608850925194888849804555351533943725246385458526785881065941270028138464631832529980430472330318037372131389028052126278232685891574471850182596544366316962961284223137890269135648877337931402435853048031448278008721617765776296407422855423241570603794688684315086282556197336994881857904569223638526461805421410804239890169066148550610186543851665369703781072274471538557783492569137975713232786379218643864146962627677799031892185259110294882498153858384003330210672534281343491066950993528123059518546584167430679274703848588826923782359964730473855950658470780930621846774909723796187672440962311423518116333553062702444351780802096882997283051894675532388302267456001479934222425553211740744417843720354922621979486864950077137709110200695651825902959052864479925392487478268120482310365468483548381454567605134345197366034902612193906446062952741358093803362740003520849014058362763060301659917729834539189023588346355551362454800900718061301568045925958851761050318787856512655968314283825285176992456113287579495320209203948035028637594612227514104820951228549334958044134288162845902944494087382910719564738415865404353475172557955950042512563147537966773175063277615207959875102963782933044400054931196233028647472887390830323702498942368399546959860811905353847437378281021922336097067164173938099947429741803164285835557139743431367392807966691766544425132983719577522630558452853881152243362557289958323327462164133646022617523319430673296214223328917080403881522592697249039496583218692928055151332163402299833586407700083167003556446211908768512008307744139962072180088624887306866212664206598163960264689717247121076221267526543182627174742000316009530277703194656503356402858280183512029776505151466479621814448917569393120327303586205190954070306998506071063308045696380979639532717663409113143544255754561853584148361759338668278457480263142378444233312612221764626432605554365248485634855660400237458148590222459879864116995345202294535227446107775207558863391562769167005854355124947793334154372776700557729034551146584568715174381925322300385852356035942558794584833958417838005564794362410582209276797062761893311663445920955123730497102143645428146785386120896290740822838958179537061814214007979651883497864866227942618333873248231496503071926630716701169340823664939485516965865414190106400608789923172876631143818740929264048349528004317728209144011801545686222078038660233533812518849909787017445524910599123947805410616425122375584469627025957459527629753073373846599813600670661887351038713087611951944395513326976825250794128392213184755895690369679773092041825929509463392638542839759849992113038931824192287623797132956137634405247324344221073752572584686908379815890049918505318952880909016261316846971939228209354475560558923354086924341145395359856717613050469660948728390078576146323987702304385616993567348718656252488089656053728550801559236541356517909933909190885280778975119459224524999175219257366846829192469338630550419977119788515014336686959351663868008470371854956201232326135201566619467494846217943685912438838284864016170786170136232288592834053212749962598392790993159966941784723522141977603674569303254050994502468565774383759651057730414758476796862594426608848299351623817277762749899507246497372313565413860473429978183436142713019708986960670800709741080102560663400410935366015985594440675830985268432667035097443965271406330275800941144970893934319211599077765313722504657830236707243051420557168759635288158613465231453356989953208552881490803562767500659300093372417611680134135868254049274860971111162160576795116294273546214805175492846294741919589184392101790056689117930414327246862058283847916300961779793276256126266526992743266392715141437271833811783954453999534599021301849089584331747855281508888332507259954572852133168398897287282759871305089543293987359812395496395536242062864025212508306939909227939726222670780797275216312837123071183335826159614125022792162949164356445593264803186677944021128988737679101593212979171854031572595654140495725930011376374561961285315128013627525617273455138295878179975266866212970610037677839516793531365124723694066837235109129721880768808356684690926346496971088522696811898398513617476005689572116780568871340399338249540707238320982005266748751691544961695517175862533195683114773901243452685863608120841680544985729449779903186095200048668556058326962436556632754003324870100885430929969089275550564723635622435765604119490262437166634601655320113129022303093096253935567982970525199054298875229147720185255129677693280745635692567673254049706772326149962773596721365608224678675980227372636458956801089857025353679360875788820545797425423091443362382045037110752105354101067469156696935193987724733469093810971769956165053288516541478413228515865013556343490281400394198861203063227260392704740004586917475536826269106786473032649801265456763577225754386096869170769641877195859518598243024581994632304067791560386130453933490277800707288675658477875177630015457839131863141783538988193385452588455029790475821727771621674629135927847347790858156766569660028870471556966398037545826983427356211323170241551267473509486539268269625932806470311110355597394634798450429871158214618160412546252998151837891670778759693545943108688949824499256737077237042787111476224873353929706438930841581912946140088260876456754417140266696782407179620873586402019187365151768679427815344835905836413853642902327314309999154582590621501173939178910963178572015031037403238086797512321546992147929281472633265142431013754137594991602116048234222590175114217226246237376452324672695432764973166889995861771341546450433450520224749075269745894133548894476493725868548274486063528470900344832535462803271429983164447891592026310924127714065216086964837439897570114383851865723144887867373861559762164347841897268509630196068946828096874197287981811463795273113534791639894053681521685854039476712072955412629367783345884994573648302806552720772997802100747031395728570159525275081382872392585627904039652453244909338240986851885438966644765053928185791068801630210043222586233534178982713359459073247364440294094477940826640713540427820299913985221100471984651564666225237853450262641044790399746078295715653229721696076253107142664940564251097045932205642659896109819423614861170120249654976809307954997137939220930488792308018127926264089058800787765077224458926424240870250864431317717537437963527819982877502930347864790537671212875992408363288533493780656742748114213246682606711352348590468598636442241360149386859946151396586619985512109894439270484142395850037749603587802006935960399183007305194566418713610152693905008027931290174046073895295372405379725360527365341700115217267201590919531172400980511013533883631047438639017141307400412193497289005189159249621696200128190126403041475704304324944936720627657270158264456801040127503425666970554635933664463141761682093411892115356918889864922738024322741550019615545722806901493779889042562508822392583826969242872602092244009865404239427065609345704576419718289334433392219370187687956279696209665474173986938600361550036238805585054964544815745897929746279391865391182131867467811843781781924167682908588654323666285372635040488614605423344353079786159510600481908842898738884447042531848084251883555514062265132721399184815121366800631001076755380517012929875276659767930384734344933727238583330069567848932345343994665695606249728185417057137457887511428917787424859327006190563829286539128340626315174790409116327327720242027519131429341434447707323040538177372326353421035889242918348004372110000283414009954249041278013873959491105169653868752895670832405679476383819177083049836199698716809893043433864421474090509648093055574463932980921287058071527659105026004744597683441902640766413652462595987964289919645543651803603029806868086075679911110336258432901305815650404770919918469013558004378376639021890439397149093059457291674183404551061327323394685699243228778744946189299536133669707550143279774064151545071132215030722692779418813843047554258835533463984501805051369372957430232877325480590626130567111981006542294429955941410365919976494359294069409783590049540162089057385384360151825480003592891483249599810589208284008772507162470413401018208540222726837314373662851210046747064453009600205072484273366445255814523193859166521750712194415134204372035946168526928321381078061917781379817568680817796648427710685328565993619368696599235699401674386149743702961858248883279142767974414422080109895999338511913887276206214699112706676015842044101801834672468290269736273562637624069820028405020498471031421451836343235110198178470644660455551042257142437840893693970356291699860600819052899810766353005404878180168259750235660040405611779475596440603314713903238825764216242088161411499545837956061724692411288425203925232258648572171589853093353865378786996238731785442142312226218504938582038084778838943839852196685752580236582663711057419365734439584521461251598169079734364282898801375689414394481577402160549989567602031475907035576651863295243413574698478887456489119115805618880770739327182839195598791383755626117204692215359413736409551758917319991403328142040369464360256173885891613651881849309837262849715010358472569347949353284536596821455307210207270066874020586648610215110753183810402522551888724862484582327512386619385382847699395486668050525127558967426734610567133229829192184411462617838014302107427798197582994284830100745875348495937360288521201458570132640807377974347844614611501831616096252108914102680825148535860926673723294175640987776583386367762149709366734733294654441145380139131340208579953976710915113545609466352846456756960864429696553070654529167952952635938530196477868261626151605853450639365833063874804251154841162844007946785344192909407543116096823058938181556061697643950736994195656793587570532842566088784992402712615114608789178676162289121832232752448654396822445673623311981469243462777846965371089406003374525695435759776750239005113762056733656572848234065949212088655469930278835664523413680355125617491124073945884780013168968124632973727461630667451107715988542476629525626346208297447352227629212674522931985791284272245368144314899042979445742946115685771359227463180765146555149071771850009314816121264505507228727503537677030912544755628129871030879227534618147118615681181020464159262107217688825448331745900721429030426925510048996649378114651057192672442114482841184549500190226116367370552740975780339101915611179614230464732876962192850228433749081142353715016578581894455228117310485397215282567537203547082970575558226612584083769355904944172226105100297836788370308651209913400462568555340871363751326095559886695438764588743744417841191592002583447743159597284065730543173368212705529136667748762428675165904562047882218643429227047358316659810123355677742383237781061764624574862024833673263748636074468402078282764727076312961920322495429639323970977418375469511750986372143204470221045237655602292747290346209131208329511348922507623293454222018611915700454967206021283463810980951439140830738370470839263076333367820241412415611366552361741711732988517294373093783823209583766390367042004282468440539261597735786009414444105274540557324323754020250318718348929795461047741240310547851511793208458860146843060009436188554144128587432768406612917130794789691165803454856076255999796731800741147073009551024950281390972517450547917521291954222679638629979981430067490147094819386306565267887846245695304210874030233185838080973048850305994802800023288298579443170055312279333635330778881424678644699534024456978763579209538549114086096952323011209538939369182724058197621609899681016936458613252803901981052137329816893246955941075185565502288992437107881386282781888698579610401038474634089629521791339851574641743952958162284039462988346219706552891915547945758785339515755820180191531431213901235593563845019503184651448510371890678168983905225559180196393978479946308335295004438956650479464826585890266289943178142564335313917916440758029980184569399487520541499894029414872835979887880706905168744460294472851253042893690739269342450204533992033055848800280064722959177507764437805343978157684435738803424223058141607720889300844769726856777029438915077819780051999267630898271560929537096378444928333993298447438913723646739768340311526979655873547643846677218546324259859041236030685039435865053931940699200439294949166265254814145856874774035541968237338386697156680082743911049589370551706019547349459079860518030838529555213006596269212175567248730855549093646456675717459580912899849478549872532600602393922837432361137784396562613232470849145902666209302859310254515944286514832774945043660751711712347430116605773673491852974873885971379300310634892285185356378705123467559399390061600819439428032298697913637343439650996603682249591201753194939307604304576996550648520726205487536304422692776765983780931174857384232324117486908896680371366123060062724696396543278138349291289905558603755879853470907613538496048702727392781421140952824058241292148550794672761343536500027605568672548831174341475944832683834956094905599449078758161940243745758547928530295826896560540582846162798162944217251507314897749635776805919009730902279644276480911534405084780723373072503938494207890101284327995272300086546955540011733820674235283836710807219415119325365442721144507895985759329773452930048054176707122356460100966712050671637806188780184082020741916286173889920544345119564393155674978718503812810564524469580927525161779810795139560835886476158578456144216163225700122376720547611939299671198126344518499585129060717349692994319368886797317630741824488811863731533177440095189155896551332030379432230337536646445325624838742849197900434313674042414326561360035868135484283799673640064109444339880369372387156873282380486573555809180486204677692092004079514710470365013114335247118505270591162814455319705688778421186190691413475785749486286090678223094071156753810334067924252556319861947159320730340440519809854566267591897429634366862425485634300598580614194573571021628297207785768933743089083449299305395192174346536401608281663621036255474455752165328319861431219960712565607561980256203395080728509967698818075355992433127590000483324457531152204916967393013226636110781928014385361257765370028830252386681684124283405755427075905255218246175015039725594814478615145430515215722439794891298209652561967011031153866939688709255408563945472341611025963900165371605376470434919886734680271612515076472513416322062067929223894893069448133087493831870022220220661135932034707033123863840869591641219499673868482217845020475482462748729134436884603041216096909218906746267441903704908727612813342606103191914682780317822122562555005719728007556528946913768391929840280641996519273565969224590883725103460388749379608731185749501822968249844595328722615271166848759897671388743570497721253475024393489861159607375873042016155302178535164226585038992994470809818866559128304844002594755240283940212828869897997213667430961456741160569885676930087985916338533406934410817346851213037944937446276062792554724047901148725982555360539668753300439558875299087434688397032639980781976623819427761860962439025928853110514012254697844812166894020887108246530100272448422788428399173343328545163494842238399628872025015438903054588540756332128395055082777851981746119143193031570133536209051358902841402049461271220700168599328828961005257033096448634050821218457075604127386128286213186282555153869348462469695671384972270054567342179471909550177240681652975996181054674080592639980274496614070969977438679969646296503092384014286447426783601221912425172965041668267965559967922746963046234649165504435953510771958970681288242581499174063454796532145069671790625927290638671363864826142906080636961202107781909034723967541440665584246770963397658455647685043487571717613250812050477784242970772751588741678647521734832915489951138123253002796633821669762823523583605688643670358112768098622605099156337589954860676673894207027503168993467255278173144830701333727065999301609871128959034289778120720311079193602354397738424364496637308922136587615130634851623787226598464062604108360180524509060281798861731322725157781475765544625395397564963009192052110900499116859874054081139781368175862140123701665806126739239781418181078477199675861520013504389723674063227515735622974340898881530795290582046606305677297080252692230968026061235766216739205883279802599667499415419408940360897470220311267722189345755692980759905154849327436696353180024820829237389642417026321511906809997372829104322212827922976823031421784751858857207422685435014106523743849639716107327763208072427805591039926088672140420995050300205786236096092120577259101596169827143704786819808702636459740411631574335247779087554764788327960061435921509237305703362536091735001217485356704136502276030375328880324573022598423958720609945554891669312854069899960876640242131298482102491091657941264496685386605184109935958248186924085548214545872176809637339041829427598876854277131436269130204038712777266821896608817134778318955517184358658989777495853161022174836196974080066147366829134937327765354494653247040349905401561433530385319177951999803865606782959305203154897271235477245976500330743997094257785438353872338200815335731878940427436647166261388237845354731921997554909756158267353027328053388254272502304981976042832676810885880396695487514638113376895969677419709748266624776994705223476348730977587587857885024315218438229337101794139469214991454943337673785068348684176889026792194726346988247279151171612929688227637921039135201581271820763697505278279412377681790780390339805110127382082566331526043767587366840393005086983191509278499520928516953362027453066585378619537147359259970204156516397054659576831413911560022520892602362467779595676735756609220809810664282855401474140640683272191203866833669051462096306689208103060405564123615803480812261706156386474007718559806698081134391536739433423870096995963630911057601040986881699431852310290927193569517623241172158992137757884039985318984397456070147177289063739601893200432374733692854210333478255212770735530429854361155589116153815635131125217172159541489969451599453209798579237570520964949308208699183546430926412377671440392067809887401301044093784716879396197040728936748393063412603112492352617216889252648700949414873295986071973150599165313540274762730901205809959090128143176045843952144717700380272797005619783653898269630941025214443839764277270818697865587926663895217546335035830862125635249339041568009114800568808832595051680424723525485090624929886949417035700130115494505759063692248781079426410603330728935009657254112609897730452003453373452088706018188973289672276755314286969914983533989826205969864692731484204526088007722060384964444980203350728418680291682631198655020666965623935622942659437758667826285322724484185615393549501315526486439786956795660007434534823469924387717736802860756509763216414278321466137471348854623901595655890029254911575045219534675999207239235952321104241052514058300656361219113457803119392564802809606146535014805218565385159110819705601074155094404911121340351774883899036692357552826688235870600990132412935901892267199680914904250132512916535643287807124868840970473154242385665456865614738928843944270532053358910961636849540941965494234755542864176824196979951234347844297477819011754097759274002687607165363226313459013987226593632992538995977362141283639944681732161820136490224715403668407598429995101516450283043336090603446793423508890381430483138001142289537056330412847381111452810394232681617244234271559230961712353799279126891632756263400322780289548551037015365760068642632814741068105307933198081683110727929982279626072674776848092508199404116616968509640149108569549887858434246374865133131125053592708097831251818133385179805631056271107814610901974616874451094144699655801814409132731933554297989196409914413749642969557711163316012924009001627842022497161161319861685709228474329584285600091894210370771283352218455471418810725733903535415061556773290520641623234846321568514382109662786989416861835997765523823166273742785576428316743935025319554724558343045110852160009101623092625850111787900720457846474028044389707841795216175424272985741210136380353059359386015534991473145725949411563671337599346656154211850155603385920795365214460978790110362884126164337497375246074390976465222595474578574172590771120830871530104387612466525988533506411185231534267674071358178686497151082843870960280782917814473512808979397789007291168019979930307165910472590860480714312003352300179896583155681418962825556957301353242222867214558614670130598391294419755135502747597426387784033359763354985214253173797746858961373175739670273315776065745045456781928926813435620747427385732853173564867971244846758818786533098543768661470970829466662705939292320365177308316487095220115433360273903763780548499610202624024177136702057078568684754042018917938861316050131738825058101589629966921139593517883379082427264628736847909966805717973125952800722424724475664237897995455751786158794840826307516575786879455523469754809242040433207168820520189398098012263767232415773719519669394684584993907377226034820050851568144376352474388178318419160311614570155553910147101468538209736015714560705547414661982215678551217905977946888872698191280622134287998410064073041924265687793359060768937587204079774369207743503500090964945029164978705027018556068704280637562645672756881617442855562800205270333120370274621509572399470773361307048695822699567733301611817486297777401516852949910753965928373719019628016692374032734626967417600706296474454580013596972267313539176497918236504897472680932155156931733799930945536884442787444071016188005811289475145123555671908451864391305708117462503184721769468483306799217495268064487147438932696483885663648909663036456695513329791243066215890922793940968068147571244068609992385502340988888412961598207867842889417083049953795660483746296658501118258750470007196689702759205182070103379518690986493758472357198477006434720146412548108883295132612948035561217200943797753214095807486836186543878696611506821730488710449981767840630438819552172185299685318335899419001606179890257372638137561294427551322291125734346195447504805878950320026478592281032193714488894960636100352439212524246834827380194916289013273601322205243408748612233597598225704271356574481492088626605549412396858959916641479914603061962960721609752347100029229190862774070233281958381395020976079968273653869279357642416288921874352879390364699530777920846712523599748855529650699681680730740230770431317698056529576943297403377060399134860672834065228437181163035098216565175551641693829086375046670439378350112815981229445560484905235503782720365680189050544358867826062949828129580412398853071407397388825518666711830129281748274803196374197909680541774435610554900833574529790181138760945938635419653092040984612738438459251692042558354846071449738469843862242270592146434903679638615323395754310539917375608386123520461396562288917230089551595072797314305894065964852070851646769344981746662842090562082772124621814046425531687927894736076672797075475640110342833269680280823124535440705649235891970901820044754292672567740163884446777476030332594843427040331928728815505675592136691719678860859509700354532189024775952386055137018131474490413453438095893697942917673118058537124993071869227645661991281945810407513539837930319463867108500756940433249772818698520390384054247266629209636318106698553018555789164210252018237073143084422834929082936575045196967247113748594569042702350731398983379938037300705997142762456794835008890065107876984012441118871639269442798151598028346691165276582572022945751462120912665311916421760232050263065287238437114567737078782046574434738105763078905712508808795647041710198238046323945741059041792133306660354040821554000710256630670597759893120236592268943102330460985158834668772968998902462812715321854369701130120259485871744282734796783173786953101975630452800912141368405291644177559394930278495498096205384925965678548257867377834175538250447436962612327189391333364477523472491793317765420268470187847013869155939305989747975930062124726798031132504948213650015731266351189542414242652601122605637836349695305951397505187240832710889345749624227947590954466367642655101359350907271601141177316104521274940858333368030075376180973370306696884579652055932677471637099741290067786237168346996441876691269574465361727241701664068555730916402814582854229477206197430204556809137499943227097198042747298707933373545193632375440580471664409955162051850613978003213743662571501079899400682513162331704251866700902672588152647696879284626302430129582984410276206685497303500199239376514620242915801175591749792181629338111328866396569222493588506818184508262487522970279445302526945168629108156775140904285463497762975477343657237534806165121003938842246589117619102636190090003790769942482271289939403616169632334520763758892205505065766574276551268490708555415391862751277014550098090395911235996179847877722084228663651668766230957440137540392620642057933794084372176169384813009075269541446896026268817070566785298698090485889538185626113277017174744345628957053262384630641193528028986822500063186177491695819177914711726930261379170547157931819350578689104886203880290175867655625104173213505818457622104213070058877321999861771221485980920530474374174808767172529898960967878416707171766150171033990332975387431234891646997806319989723816114744352521841359653531497415188306605035688478499579120807013003254323620025198542366659667499606338488147790234034641604113151949067176715213309493714965704954354731786268302647586195883059200192038060538701884827506420054466588971615513970020164446065255037118292008629110266722468185687400624360466180084005391148151886659752235268876481406910765888584772210667712725353410361055727402083452192977806873116574617167378668912571454904457815947905175221884789860303421403109555211079851862151322670052534928279854280916069687575293775329900680235470625093449108098562340848444871784692676376129500030625151446542733273914086801786729377401334614289976562705444064518725518386646813873013794567081579653178478135763783710546322043130224529815912737002255499208726952205509229798533240176462956343840287733697383641928312002855409621852682070882804037560718071857742943779064281344986800304837456906532140121363616383068573700033788213901682971886769538101881934386259953711488066298940603338606885564938342082937886543636983551496903944693139900100130796539426733192569285633261951366637859892652603148496479241979501742919574003226932173742810912894328774389743634381799471453577931637346834712452143452890269775006914366004132648800753274063219348385775340867893170189487567256329707001622993910247969533769962330838715091291171040829540218438763631416077106120300455053161166818786039902048153788411966540363018906815308662571576515331312612319149120599845284671779837662164219402518629866762289872501461202081523199622690020376934276283746863115498896609451536696985370518588778502655445727771995803140144099990212479333248053069390856267223632794404152213055255058435418693475632799429555581173462878050743070133884554081485843709262426007289673500685744536342892622399736669691525360273075443245914127370503989512857210375252975467077684802042724902593863398227930292602633732776511270373691865604222512298468466895360144437253664608551129871253004605801021366972144285966025189752069351080906328470820143808863841290960013987104501844889489896564903391957724178574797901644933437590407696613911922030606563306060959270389491357295413871103921862231987404050605372685531797402202581318705765358937300210465846355225518970049574923846821142379869469963052894351336724359601263145264853894265189334519940259761250617031778122344842499977189237541967470053658433958876199520598406370514924171250464234405522580650453672789721757172007667789592214383231088798438145959789509593016719513929449552726061661768101159474706221347911738712860925305650187353108481439879104166211697195284072052816118380219619016016722958257241643823592992775620696548356904106572896443559106323018036794875943933361889261219056704453911577452210464615769975432850465478775086581319687162159446848857653488398528482386542346053376225567637434610136032929574121187005169871804288776355743493984594832246122047812661839012803453834075948856097183302041010140393147561388080217711844999540161910210753998041238638776652096161751636413881467722525909103485048475410812502645583016483928600281943293935402951773609021409734142802585051014900418613448985564054026757238001930508112762681397437889987888778251857057886552561432071162569266115577079874475415274020908248661035653015984072253040883585873028151084644014489397888673528791518091957744350922069187777715455619206961673673413644238469750508498993030179996015449064234294840393059331254235166269900842795473310050091097206018723828184113729904750191452264739013422928727925121841399037764813622286366134756313719383751352315790037609285367498076066067981525797191283683485868879062189190329544347044896091211598816718276374128621817526406860450084847452602852819919747176516961925088661910634898384905461219558579175852743515222561989827748170561691888607418246497322761409801494239702961916449588403985346352405226306846141546904711057677488497904386524611933684305275675920165713107272209982664284174116515061018346732317554888029916435666353291791339693414170171953210039516563491059838272570975585441644094318122855835775953739301300131716533382638041738496994596844044179223132651365392761843535661202575569895573540705591117509430018025536219752622409717842630132356575957158279636940374155505065964688226314966452287227819863188584799210487388820053750212300055178227991015735571508673699132879703150531377450767975327641455818846467127139605850146996197387822113529464115306048472095113753609046996305952017151091407101698186688088798702596332001924230205929453450868349476778033303933478041259979929619426233977138201004139344778360049912913441015735938553506628288307109848160521413387701018921291875971026265408516128056661772344334435586924508219910219280165785101339705106989029367299358737929424580487203901232691494088687472432303349803134233052003896807582053504263363586011703921223715727912008599057960984478362580378132840647060919169033890208723387048810758752817300525595109635129348453713498487432283903263163007804834243877968868136370481382963192352658081246402251235978412687328323889951940603434701376885749601126533164693966923195583715186362993433118750880891194437409610398045001417359454543188500778226982784714622525034275835831715861457350942629064311653618158855847323386330642860002784290187329208450255302645869992324910643289016765885139062973233171978206986621682773107452892438659826840167094726932472932387646888869143208893789916985829343867545887188768051900935273240286043328837820521094791760084163560429281750601701486162104217790285097038849986688677307835635139063733505571370722572641512903305295636203502817281314843160360939829278812840337873726613197234265021511169515940433284977096726207011436392907025071389034594845758306621464699735678515781980327549918551323325194571668305253405302401982624181016697815632540019066976120858022140159722031497429999125276374888874870020642977948337836588243467697671444484662295601299216831295596878365542183608149634699831826346974605376714114413742945080079938817571131857372981452522187873905191385721364943436903900919614300262798877613687781471980125930002481599714841276362158018178822895049012360336919373573471833777228180781095751296748382631091287225884872245773319197109169728943379289574139396017131402550837343687390468340635962604460649361757403607777234433997687501957749633450835258840774774439896977093305620550759046692455528627729987111519203745070591307993232399675388578807399139397434130136135233688208682178975861448622312817525865889052832420084709886391637813675797981618690057548707189994033499136152092405382402288306514358667239561856885867869746844800630462384915693681089225714080263480370294544134172569672545687144581839964254086951638118783806867718732603396986370300478072959709574493588646359057529612379237618800202868777889394381521207216794825992404977331196682641961031602751931595114532632911639235559533040137904324160336570899689443823356234305308268825218872470633652745910195553819437724045809007313529824064774506140519646675277802587206619486887940747934546433517033169618730421367615184001112634099109463950058793092166620974682203847133203192185204810899541059756313394769402195960715567689603415180199157742678266622586039394654596091328207051539278167657889544019950515988262305864155774834441603348681473679906729281802957200518031029495438300011539073879239734923008716212874859033658400063827615823109988903429553498263831941069776599764999950290241478060491378913463603700339526288067762306800310584810162428869008494571798440129105325991030409910569534225439891901548304758226654950122945436859073152768149599885962799403638244152650522354499071591508810888790335477051263359008868301181477523972253188368839968167930163653336230694761199914669932424013331170720965725732486176012822804933331666089284588864768007714272755193878488009622342836299296543099875574035308753143399614899101443621332654467514065641865781550973504249150700711548040856022666499119776213539957557583606845552531145081493355280627316699673698006758645906036219739200025069987321317287760530967628820089825358475776957786032706147070551639299489097526631149042860957954969489663523700471288561284450019398177686278795460352347943592521030239164625103012614255530899562805236333779831219904291573062565702516257121614437697593209426935068948234850995887709529088757473531568633490298363696640338423927628200273406840061055843974392966651208151494728565516796650058423101194667090900213057867310543182528794247017668584376243710144328989053550617620563927415377501422921524216206452338604523174964410010125995136317775674055083482863808992746435737302941239411260064655210459275114905921232133184095099261519167294402549296386127204208109123005175694155753952866215967074307631570641005534331415615811656944685072907763197516878869341020032536423331319597961020240267228988236905755290541174071358684688008850265315305838252958153384552991693420881407486342846572888863827650461346553058298095601612209419260678157821821198982609790098075494191176233188228489226567915489527962583474074885153829773807544878787872483076639252508206573432831669986910926098463840797761569500296944332046672451671549895702737579102755058654945853964620062859497909563385756339868682896230195051368660826562824115339709346832249506144058740247198559350279637019567769433002670767193031512759841501855702401855696246187340997405352181619455416851218635164596044335957967388635388580112308463725651635025166652063679049432278492071081209649509013488041268030599180265171763515400145876235544591197487738296129117738431872664222755100021426991763674457052824509005858218966194072809171476816440779737668811878721516104396993489505963493000956685073692916233906068159566177807597602541702970538513094847485276983422850976792939215379789555121393586912317195602150726320210392442318737873055422420149800853541700915719472558528605264893610745020945069335138153143629167800712861494547192753684111184721152271868205396212228332621318862253611838966662416473599568637894659676805705677889839130229955543041229596490392470308687198477591156262197998777198678862552938944186996399650270925179331550295588119189892989644752946228392558178794943655214224136336378828184911278656009653277801035313394567272244679031280634645012302080549416897294063518600215037489052800056744797620717971569962872729248220995628541411619329569249722669284783630810330991614137314539620936177318844566483107587058512553879941830113146159100918367215414708492918417516580523558831411207109380647535372490035306541042909350052644998619195392914671306382070532151342182242937693731257566388965140463652902940117028194672044804714701323046777119938342082684586884477354107445613897567890364647924691286564619060835899021896852350631643342575309411520789009948977971195745153852852670763700803452108167590439141449841125251000651362505974985364677843093011363281513653162346996521258111597694807361640885818699917356764473782978525227467833366634782056534965569770325630452395456822384888954297621096797137991453004912415373783781233617995085133518598915295509234360794283221082266159243945902366242260559333675330353933472128002740987716471848827506253816097260673367752186855012281024651692695683249060764505598387368514051255248466052245628620790875597221003062914555747715091932246336445748202109236483904266884638557504298672379230193059715254564138093287473834278219327172772482949978227093721216512085423567940651123063813259845824959893588787442742446425144916320311233029468186547646909701425955995163426637493350650769943148661032201114561420997549016845819494933428426059034312756226708768278273631434653394890527670398727732102643887191641062552030688867188077274995722279507462231161895907779044650996103682490527346720500633138222894181652721969197884781114493451863163848727089366216192522410233035382219191660490281151998752003779783497876680893202470966417835293604977835313526892260079428871467211837021154354235769332731299108196027955607694020079235399024656811257196355038601712495436326926822611464707485369132004785235616110646464080828775301464539976488541236706132613813837864745280727193517767995998943229996893428332059531659279102474966619168121637949835825796756847767213745217127364581578324890435966481638844025615547015495231791923478420032535800769306271684528471926586621272186108773501325723835724108196410167145529687460696088125365803980566728362121111036363325861765280404492870240008500279891812676043263618744391407692639024599622748371580162821542676512194714016208712012777276834854307732088644624928601034554406033211768826202550662162211650820682798401064803467727766064823161160413080722947964715539342760670445546655364097055853102875142275879860397152865073379867893949902160036338847963844163639444509655174586065694800161806071134998435333700822793253107695888009310739698173983138447504058503743394981132383749821572201814491102934181189287314845078120990731207964923312871038858242512969418766806681314460778486200369917322301529923983113394923411779160777715758294620528936418456159545480472728880449028424255790710889079445248083050160791041174290758839207251769092904574155626559552233173984921944506211619205121732366436302576058064121833469343923543557832010591701033578546901160850347376493980713827504820792927077417536588788686239199038388182695477152168134211264115155972505497833390088478474501741074661402686763183399148524917417757567658612237040039186015885872088429435736374576656961815902774622641588480689542340691756201649892435683975273659580272816496111298704170194561075645060274694961036233647311782294401844526229847867654997489895417204088652213119413087731589932961136357299993032308890497781412568404222268405602172491180524354402664167665317994994667259853988328238554694088843061473478212783516258757092743714910245616671124512394868155844414250208237171370242117045336034855354547392106436576119087902694685514891080954384579824782859632565449711318244104886869503627721376575054397843135446815183096737120928337396885771673642845310713553298132346305009674732224089285304782277591988906518599185016941250838352892044084978315309907741020672275208612241900409125939178235816405983258722638411205889649492394974317830907399231442001321937726407702527021203981627412631259118027246693063856284540151204107481480986100593576534914259545165526788671515033655706203622798050411904387612406878523990364285781341565348733093645894973141656068383581163430028174712237465220331009829191638770649035602911946634464820964438318152981249155697081483506859824395184474669072463420708841598503376222902577532629749478642815020847363159414484300079318133686231633129608095786052515141811984696757890059448909382661945846964885568962323204657626610654547867035328859234854236705089607249434112795387109882224416937795952995876777128668242476082362049006492227084290599548451204491108750025246968498238512427920347290922461801539256990657474271677036074431961111863063322513759224666639821256701213171741963966958538038240703013961492183612016148219013853897550350105031222382794059971428269746414088107528714702250365328125851350113409641928246359657655368605686135361393106859728570136034867297537702701438264580619086870502646089494653675230463916374966854376765485576472029912078451019864234340276427844247344577839409203684256965444146754805990097660920625239207011445052995631891921222863294064027954614197061933093277532303851402880432151651634080885028252022935584181470467369108757622584696079961445514524513904116515882949825628346478362289983397198851730105163925817211274040245118962840015642386964836821727883475769800382569351821222195133566874722662582250896547322279486043597589244401386216906612124668389868584851455599459557487956020881519595917646981035336244357977700738551056270441512973873255772809164979480932382550002451228103441438431776820272444196652533048672367104601408454419174682345086867679070537322210799227805731910930546177285041397218608760347877787721177432626960958602158058176955804524278961413989091127127035534828668143356508189055944862474641048146733168675947991562578135145652974074547951777678848590162824660433053524409336917624079735028766339815745364517788548580264111320419593672321865075376264853500071390957220432638893773670677970673056089500508583336344327640165915131712308016104668168167329610024198162699952834021281529804296632722707428149457197236857308622815933167932081326476241673754872282527099540528927919355074020242154156185174632623048647911982560478843859427971537744395034724445239404840114097684242888418497159334893323593255060178517887143017340920991061808011236082835280744098819824106549788478392329433315622810834098570050361230048417330092357838955503461253403109894988759306382080765929190555241701620499586529076662553691989851718122830532781691235020186304084225095055989789388987330121689733402250818091336017813069850540185555936014420345926409499329616657284014213019831344906710235387973268551545631003608375645435590945017846893331180154471337862424927708995875019636155669230681532704415258247017709571049746993996448870795326107614524093581528023921432248142438652136215542078654509209345379767743586025984924917280131788241394441172931248450007064291002151654844620067090889559847395600640749637283084595723573389807918798693203939276319062020215084469872841027434012579506966181318189995560270645384355324415453108891010625019458305550289933613013806762612238366052134851775253050865485199093426005679323744113312487562642583668458212675467935083362578183298783690840495062880562523229805027033048989717868711011456770899215922601700205514516988011266030350925722497740897402060988647730475741118917437798559428885425686492672710209751565409169788833287161590005141057074499020492069832628288220824472477441129955510012570552265998016647030455164077846685479155596956097491832715507682027348718222323128839841318207116070097763349770928040222516899253612337622306216051056513069671314912347254295741443166988464668274506233432894821150896590117089121214605320242764616793624147161381692455141825275477854949059251734820621031238417616537329829805093670561715670170365241640728145089612460705875871231920783825555529449256894328501732553687231238854773559489661685705009605379279350272463909840738906323017660983555445725608536405277532038095678623468048866300240543957123388676917187569949773100015723623538127913108588220898526544568803507021199936899033058237885123399223956931839247409192032069451160193703669490877265600939586941013661137557718695730563525034272252238262987423000358948828149657129865924812781775916968070607655018939758546069744739756755471553031685419425077016927664916968815883715482632847378462061484061034492230127414572944516024034478273798767754236613388632439395445968350661811736970745759388761347633047108713757214760780693441623028393146023393966165180850395936708675701121902607433656014921135291278223180987213575734835992880725405815776101955701529548304955358191840542217311298486142778516259538278116149222734482629800827711778730857273196089500658513629434435792058331770248557211962348022930677007755696731911819020921704391741170890638041731272867019920811494764513561794552652716638574129189668148482414797983931470981366220401571628757693885857164209818352727637131233642981845009693081687264078873617334167175320100101957484113761392084120076330728796473367747299538136168219732368200450130494034043992487414020500655849092395086845296347238422478030688746767276483677530716741225563416563437303910396762070300552815868459427672894692363270883274878966065576240234817991951429217492216018110856112531650307343330913142659310916714963436821394965500175859956932482595775654390589720153897968071083919084043431203874013065136280437812997510036194573614932693093832701969706596014356546499034547206484665507668895933440395138451740958603552713003942748913664085152832116813316848292446739587805155441466338911702432976531366748450844223396889251324654125971815576784268955497358549952661213417444793628974983404228779346340405601058820841886263860836277408905978477707074230201108382653363372907985971907145116555874956852697129758197312149550056800108295868149298921897462125874724743764907483250501121273350951659749994026622099229669201198577223148575310626247366824338379222204110645807747000034141305984660561959961269738076327034171352065863201695971072194077459132535400887763288566782944600095393235890464286188247567575024745667505740040436205657682859257286182576744133195642973059618410211627171174112468871055236658621037391467461245336939739471688957441937072780394057156284596761030316932331054894864032482579476448739642361976710214488461076763527996822465997527956475699321830689793632594613160639799177522164717693196166129603479830791756916236533673227565509525943216846354310405672476100733943834064534452071411632908511520417414116436822739289302591706767142553325321613154620735284852047521265592259251474359337395555778668301684051010859831853830331256743291658326071625665100226166853027499187013214329714774961051185013549500600537050575234225206578644430006938236896236070759884367490073730878849944317531192754693943496338160583872928165993410630468690879990153930697032061089224596434109577700457704148030773485734234176878923704534757532431064245967638813461019666079524356269244137793985685748161276242698129755582966069365355064061330778985412582345731634113465566851495658321985890268102765908381530622806463090942217092486221005603342745352883616780758232167381389616967163219481275285524797357972806556536605195370656144471636508646207121940011236213070066627806713588770096943873870985459527255469187852697521352733528432829517334034166119392318067542883456529042105491488661438121956319813742191470879658947146312201474560767769152502413975338758356348409607731371458591661052864430543325038906448649702160230749834102940399692244370288633135402188908994414439078840042959675567135069174009849599884745262151803947929775288647390073791625591556136298872127092399395671848000920465095073396742628017519289409803022372517404921020148700623911758163414078930355665170958078359782378561649039375145230476491388140734293216512802224366640672999526223828528674647052224994779230173769611048133181246805155873514861983619649754048887055875777334291470268661928996003710187595240612261875193800947407159734624671063766295369302478614956873202314492855332831222571396664034277858232165939389947045981964096378828006554150581122400717958367186258612387646217809515481285021415742826522829441110159209120102287201100701202418913903283447873182282525322959896200222742045580490398405860614186933014650921706991759961400555425066326715081638623222642827994887221963454664150994549519018432569081477559543508189835638988112636981875449921955131830535873124193965125505561543674222552909968584958359896431862024383306116676789497533505254965326233025953942270340963178035628098259878688244609858694212038535144941794228150620911543857601183204845499114048464731444959857721462286973237298296460965230937179492290599882648398081837294356878388911982524269495336383516423373871963838664118513250403515635146443970422256783394826465840819620517188799053085071027922185197930302839562301617097771629812847928823695193886502776711434936702792005726433377604530621630676477353125465912306002626821850052815717709512077703472980412905006443278441192866523157704926853200864423761157436395982081779109201313339129696050525805167680169515537373452229690369095982370281960323210226078949468520196127731856455781557887256738665655740072729923810951966461915135306163958356411829860730483767627988034589916256010333431436359555555787927473462116591528280631717355966099181767367669785079670274061560393753047268564622748087015524608115248067691791888319818976796319495846451747864952995295063550416788762792081498071848626467949132704032607670882472644734346069195059742991186507958529643268817339862424021898236794077610611725236669406189674674619034913924742897817733300005741359421237394086343786379195579922208461950343327631939539880213404562530576522312668351596181745254931866706659204802518156378498517739323689743577479242474455097224224745199007947200556761835401773502934145171862737091971745218118561255963421276043932292001825070530980065216909737429947564946115342081239226139165821020114841394489194761893047171069372230262622431927952619602585802072923804056518909443078725864280456818856349318177449330615736842535893007959375678662257407903186724255451355734296056952608456593717477775144516837083383551950297271282727127668712805795942711678566058767859925887622709937079933012732313334834311411334916765522560795498791362675967430082477939695389603464051549909972545936672773345003571868574609133086484086872343301005014758581192185430034620552984094428137757552443207377938641139808177103425454078516047161764670867874264908498897412650499382924536027783551378273014383474842202122525973380797750471499345217063058269404692582918583394961571010402137550898593800969668640364316316964819210419822310916751811799689959665030560049197409396682592024653294537158993044624102942475530409521415903345940667262941239136787239238256105000874176840893933392897457940782547542348688296369090766259059493945476192128933461870254249293523375597898641958298818431922298536600295205755598769139588082165489807485412177997752694174725940013363713357898406572471756601864513990818018289124423271981613821034185695386513445843920026201808110189014175675799716265118423706099758328295154794988607194272973248945324349631931292024582747155066553766581245964757943621811418947279255924149898600293124997052181477350912036089789926136819124059944584372646923816618484829943748496434473093995457708715853650934424861894634413711583886936375853595470616546136518214581565590389678247794098175460653565801956577432652288202767084368732512270238046597957668837859989356828194749626350164973988443206494924815417483181206077648183502837041486813924730391628030509422261499918817604541011154113610496625362625590889339761861903779867565943104487389150164150523816535484797860538724448736478857624172277150497706470699718711265704175387371903145782875278554636974011582547290945544310868224028658940100208830849710517031335584733315282601169792671945896557601617034787909265328013175498929995932457405400969054711391329165475970559582883991700693217508788664546925035138264427666656593045282633175950272910235146070632102112621795043640797859210850935125288861964576714928150406360154351578246799692517380857896030176567228204948265873981695203285733728436472047063113725661227732756368108565626487856662244093297227925301268473488562717311126595373506610564033870812834764145060264242541649725503900322152267716503189702735542395560310274828930422914688595940368581296056049782905994685377486093816216774791492194577861599304701555823666798153091159903377208392906352439118277249810359213009225851501070688349198256724482291667621863758178137871274934543057658412642902589147875517971707566183988373694747247887125187932871319250427141673117700883747435022110131529855736935715463901217516997903241891356336545622868091650063482078179409155490852424012181248822110677436738206110191446344200356612921837588297261263250862567101822867120675021097366058031478395520010320789647820447248578266599434544471313651132128348018139142220179121163231607315570362467882414253621130810870855792110305606884934966264564223890870022021647872693157135921648703981945957678086118262778439861680096578088061480540628558663620444016294266268513378429383835735783153180512112506309339508648172989304491859727836716217445276346471772319816418656723486656795655989247777492178353012367721609512502510927816981227212649818526624246720911881720220557497460561892363483390716587020293291903206513290170237285218910806877781749295167366544220982656173472601396965782682778736823567969370635819309272057964077621337740722533976979712471170893026051808146150492962192887685252864229435861424473217962897972186761467947151772182854427823937697888633174657472276895079431698717045227099814733962314730108571071652846103524879424743259183836183091935226914726561494029539174582108106802170865185362528590610880431689467673448141105539357059347358934079456666800683531210105634583062609306910236895220595904487465763767970661666817547943928509375064198446271950895164175530786636161531471460841961666461486320010440942128315543354934016455966415791761061914790579345451985315482051803132309678968448717382606227113788845550123970999613633688034960095213702434727078254642775869838995742708676218897847822529981617692806905661522379516797567941495108720656626143874281168490172528086697844376546491928436039581781294795851826916241605863858103024586469388002721044382727297461211355397425676090294000305555332415754990527159225873350589610683238072730624084783770049990948024676716944866664487971403375534295672337282841628866631039358223391072663145745910205397107415610236767729323701670353172089457911970655330298977418149384191048074366347436232609406287337697955772410094175237264624018801190512571062420389029161673479188940588298107491543148232713444556351530556770365171393787146668743917183836283677812269979312960315096227823103871659452220969114639261849370998730569281283898097050271345014681352242514995439549371663579580431894519843843219639209534469694895951709515668604745300830903631997873676079660068010530659053917861481126555796734107653096462605188865390385381613741552685000809269589569739526901426938987144449407318897215464827816734268648761205296853209999820749006249918520953858091708332236571339612947184667645590030737909306081314848242411486434703952448147927494377407709272116758525313576086945969298461279141825054007738065500838091475640169680821519866118768417556042322794510785212428470740969926222726153871348554626525234354194965552552246754651940730351638923754372366423510688830225986081162360175012494431269225788062073905764606288773826171076220450319955032929838541853977594063345402476223280471392603135000294400813338611313592843599166195544375967053639349570922426438527809377926030757722011544336610276174626121517760924794293258063647182769302519708786705813088318059543954098979096280215544733388257988233906258595680035848073742929341229466070596858046860798833069100629806447961213605698809777632072426855194537076268421276436789907111782755520011345232372742697541832399617914660508397580208517129245747775890199174475323607640106378125465836533899791887948444318837425603883452870802055610937760710042101610747486575934687986180392991304524869856147187435713333386373564437306507993722490959819301420884128596683168205638343163686055970874972013204867884313844296315414110620677522601152580135352921294670022142259549052483313211114360048208153571869567802060414817407640085384917822399679694470547082542605939557689901140044397116265971659336145663956291119311387343270679341686442401231094277105343359088279625663618451109323147176780031885594600045608928641687695700181626290408126817292594488887859203168756165454227078269230030788262507501649961749470894767853586932631688981051633672757556432720487052309753885642224896341392091296272828973160867959546515889178733222155395576863525280232824699823390327422396880074334862693822203310754056293306760476363350342467279893930199406824742715411159046636495702150013272377629984237730171555658100374625404028832398726241109417384412293200222390283287341354654825999366569947871255257684737672781809539068882827907162824437693678027981057805176673495184409854495112505986893086463611789685755901085390337495158036485980490719258460108408644302024454126415905282092522532686106752665446858350205397206052317087438133484290616220223588168081802997015788140248609742091651555795036823620439912287434567106077482579867350132128914765559649251881879912010782743435611119470315492825872343357529202845785113575022813466189251382292592997495720292416776719615289715686494625403959505739749738486561771053303327428185755944278175360337021831021775163833296644582418547863820231583090996614919937944117393881803167127651014664959724532285269540357718604186014006981403846918746239694424722702656219909175260185675674957121511509482120502827453178304503889711067340300218584724650770794296118249404016144018079981949228270506219534101000779409475648498005631303486650778178097772832031562180521115622346352599178542243939070761390539306048822914609559372176624888224119536984333493051344951273033964516619586134355787959711087817004988983607808078595218247263454664810494681735794813751942166020936076352579062138685399155720396119709317074474835341680941525307247599959697025955669636663537584323211060972330492068814202538453886729878013616706547048309180637977921128903113709327709254465421028772806537323377868415796141425940848017941513120536470290971432876763185665302425595747763178871614920889713458896732506660428849580215350295008480047228004571691433305713414501011017663395054407300114819311988002722281974790512361567886272889433247339821760982433210964598408994878362681893230876495738788231345255078931491818452065506395200009528669746919640445040827661248098362206771335581663924297306524880536117928547054967458812605288045231188143271009568938898646026467867899846867782665297559286223428036201257529758365823156206563937442860600015995362982108879884255195566219275738770736060853261554111407395951224401521061598618921475230443050875642179102711674877005021643370596769638702936777247516231916360300335028834007794342242380828788981533543482630343460311879746350401852093542992472875904428399865242780939912455983474860917826383413324632478321737435099601994247362695424769729335527212529119464265696789683966672136059435340720700729642591089102582291693150195078854400231166725409893394328977419059142444296890847274831749483022411156311486316530804663625063519736443519321509655955776377389974313875262287784040805711017007830031903116746391396720994028084741108024449050417264916961048458384453176057367935694062074033694598063597713838949633540842617662350048891207036754417213627459347214118531897015002748596553539014914285543642348943937794666607986139655941519412965136113296173643724350341131083767141645863515806027097612574105725157360798581263552452809862559233424199532571402869954661171129237180834161022506166504819183058448930177351961291478948584761761113438593419126555553849776394519549237025925828987298833891096177935654631733034937914024789598578811243910293400673732972208303851676777405686545344447817344025988916283901749364657908153626018012438384499304020488411120846808131980508238439606586496285974519306321359096534363127012182980308921180115581846770559455209072189277107556736429960056101598918324272803429315875710605525324459367526472200175304594761551067559373576194545088316918098806728015082699450439873596710301848030717197554164676855730705875907621074879443504555179461460606391826612479998625295350130522607545726874864455590022473162292037618203290081595523176694349278135980566744026229938503675801799222972641630764753540259516632359494209164140842332475937438609144413675340695312227812401691040004291242580282115681396713015753316438391831370972592977496556822834149206237305785134696571388290535589926216947983252351787848590811461366864549712041161557807325286222224408546635342713160215087004778555465243794256576264607529272149885463618154585461369502112638800450975638742665363721424445205634811911797647309334752718017213870124375340520822645242199041458708553753741760078570917000964692862479347437051387518692091095207069629698067112562514184607687487593526477821264017488895277021779570284516749467845366752706801780940653297969458230175755208451888824840749709169333529556855299214993605320749679558684988520599095622609853652367841837973519748341657753278480826275926129027033620651213177952375679421253915972771237997335748806928239870399201732272549079390668599335206064746721627696656527329731280311827378990688313643827843229814920950275141996341527031200635992667702797946396006473543774559033396922361234642637978183485347355514569923766055077547159426826145083902903281672614271964238958326280973042574081851330793416462131833079189695865653320826786156137848236292500926772647703645187099856460584070329723626556958387524607989438333195121930769355363526226635404909211937274797786967450318473866027189493886528684009515094526558256231413725953988695276185155447326008455337775822513977755785559517643151383180312270341318623503666268327392256237214253861110459396257721206634740124572046813794457601875790313222331732736996460516421754806896843231536599057857694266416741149497912494336827384352206766674722352904132472104075767889614734360691743320305712062854651892048251111079910178654142446872431394273435814197037899405405089007996582080247110582889438698348205441305362485794011565334996770821214444995712019839936442004814945502214386030866132690740892195680845870135508341101999149572251688890379220791180712486811139721736820481551364865603823617615999760560373048645237114553793863100554605814264065241971220476652888012358029941345308216866323941179080556510450319875155008865539853206119261930481115955574397689196051496355554754873253533611015220703985878230631793133414029262619846200433820145615148132424875508818412312165648202455002100046011061087061905380449560683643686228174550896397627879301403554732550452129564523231494965802820242778988220172425587627425151811026506243131920730532895269961030634022785067589378577150274855867794436139046290342853408460263436727729061798578842566611816133646313739329080987930024301207768852081077927655367347003376497977248491622015381953708998106715277372802256572543073731307641078049672121002424076037372104905843588325454458129162170657673378664700002557573027092839098322595742421540455980266072115018752319445997230892665097295501460796709157747325833745475835597080175440426407592494000771652841099469182517579214847233835864772197406043779354351695516013735412402793775861994889293644204898216377386196157972684858146222416054032205595862603206215294247377849349733354967984697524971242487106181556207290680131646748886419898435388109567875859897174053721737091250921734664007907972389014158565057913021966682639957047802245682818857200015592945591403000845810468993291914146249597038064809583686988012614216689377048434278850823227796419765668141255169813337981264528935834329437730498791573066373665333309631354532981239864777008910008803799206466416327513221096859744950613392944914130912342200879215394461890557611000334689828711713483550494712707096650031954634598174111930383316516266742414646880878411761061554145781537168778199999433574818205588883485932759105882795948370936294098091390166521305987042075702153800164629641664693501366078827739681784038103483504694553381693109064769944139132285129203382746687148333836804761212637256873257288906043958941380849486831832462190588276338006680319815114753123498235015191809492201046334703931218017116644321104714132066671355748508188083916258561118112874891415308813993600737132176377811996440040809775567668938018387111546372117137603728497345436183648477055447937312200257592004732254210720631301407888990301772265175961643992597226974131977258093252054073152549355611931962025154668767035401237765642031393606734077081697013479690044813690322000039080183405670119651441796642182104448339830925800321410849675524172993504812502770045250406174631930279946702768489966835120426689718492236148136054004629347833800824952628913670794472845778688450184976485486340149475679532889748566690079254883350633509850940666267478766094837219905931995996657196908700286676255219214167480944303701997301081327058777364661424837286450391066145116171878556392752834062194586927593326111340455104922033308192409759487744596715085392335060933609284056182519434443920204004323544027506091504974178884913456948744622056612111693727119802129239031678139025578545716473086773967857812523301932782629169410759396731097552468550578346189056445001211621714459381792496119817607157038076543815468907335213203634196318464624210179956700208099586353056209120651737941063880314665607451245305790593817469287140325708279632532944229138319810309665066088216033658754141428468032737987826285842732209772785399012648496072603178241565428918428394926152470793315397252162427865235527579677016611236865648557484310726031781768133072467138396824183346173468296952331450766660953407780602992652074619799943793899741903746767466240556905575355932210259916691620378534434659031263165594356429060838839681433893909246328866712994721320653884931321399401985830349390655292851781896767959361582984594728864496869142747463008418805576239602390797878398156800229985141107690914773185508382114414581247013395192495270844361868993897265140337847796956747684368400773326543357028613825157270882771322910712511588506556722661318911104991853363839172023372032607715540118707714381665621309307808559933416454083108348710244116333377705342204967626448609676790832146533304793563751366167889361885388199068865851277814859074808242558166300656926217300027277221274960057149557363899209380027323689229847486976152907166489923141450179133715786183878815141688986956610827320300844007919626336515490318406588446093354867031442364987676387384601894826817463584752918122610748445731503063133919787619202362180514237834627778951178519474521965112691708994774160129480064912598715683562488291851456522561636239158868181224506907298679750332610915502354182328484301926634581016519433106958176635369989523581176395530290429914735127091862554664204796171821235479016918623205203775367390803527090575462032577272319573956756135716302300472693642606489650082996116888818389208156470349446255909455808610321779217756628714342191165976165483174376958533779419787074432916621268403651984496748332746608580299344926613918369031199258984795449819166016164058334719094607371239876500919786279400966143123600987575673885406283209942781013963540896390222519250251398158711984414527199313998039050444139492887887666920269079768146955384193808530618028925784032122932289417515662470683415100719735868881947784924370524236930343972348722597867527994503868661451224049327509886990256460293721845316418788517962146145977657237870269051629787530083113607439711629271985658843425541159544799161701337390028468053789947933165770963404956362772597453717345383776430127524867247286440383409880302674131663523273511987612111963510728045503662649662179518296498700369608738274989999152677388843524545274359871027314220892491075487444553753591850803871210449061567120105504403083134149451006691369530631856728702796870797937753284724296667199220318667853921560497102711903151992258620554736770183689137719979083052546656598978175947965857327186175026311806648960317563148517957076481194841253319241125987115385606321423516458324601389696997928932978244430531904268799081472467764396417443628738770434338134752008444271322633431243586210264188451530163619028329427711925293073294462134653739923627092583239918706571813623717702159466829026429402150111242622537881467508950159487422265176483127177271313268669892385672795133911555704149386903097630000648174037172271288376923595900600608250297737355885107666352608402345984212918005171607521365234449560129928701208491164020328489923991308982688507389888160422196041408214792333421462305608979667041722620284392163603551122206170534474340022023545797731096144526959305800372066359224122577307091119583724463219382966867752443262377403668440516233900412871500143659250314179582336221007974749903464118922123383760958287704147666128374395754886107795408381944961806561582972454851326989416368143511710817515836184616074684530242530693371589756728852294634865959280072744644291577795810472879962753874872660681493169615720628992515288314679154009824895126311113483386949592621027373604415524446253845727655458733046922454128365097758260108266638925714450647808574873759343721624084558244316198612555719121373432776612959028328696805027396241813316232658534062207347641159014838791347120677863051227635366120803457665380919581329794234286395893736574131518363744753933938646502112276459336049933124111014121237828647519229490657907287369667979728530625190613517187487290073969477093393849377594166381921951742370007404498581762198688794147027823797922994964840330314270369008139689097421202753185719699533191618851613360820892492134810883870326635532970933792966719467205553629972341623476897125432366700616759288339481383757344354010708976248575709318352285046031132979933201642530394623990329696727237229117181282039129123940833392232509832341804625504279139666135181726154874990600421451436136330126108160709693529434767824259065991748945343433159370584949442189887584446380750941605985278561965587725889023024136619945310341024933515434621965349698671119840714708872632791099000206253362945969363391803169610432639917710254957695344439499311911784517937695166852098350562524370087243426408413818352321484860665124212548201676430483282721731052619802924782073964416421531357544434958569403074985605668902602744311544503121544921947529469542085880873286128985701057098586893413757593031474198838513017465095897752298919242001110041955998475845938441097589140002131110479392201051158874025040721355467797893843893154676385882574361602708996210735825492816244024761875016468218510393540056553649876940159771925896754425139917501074334901694974361078536276774029603211903524772243110180146712303079695730475099228659451897590517168224620972156426129570538478553714656980372400380203141846875218966706761900814484254497160719852339468075701887619694089770359380807480849551871441304512147390868505604454048803248356258133239537442117960745011926862401442108412859548185362078192681716065773881880602735040856366550531807649103752846302907098442896239147948524510948667902073942600006150123816905626358717183314811357721859151105204959760057545120265733953382260025879497107799682412230445546898746183832288350252828671351339345321498092093977315986483977517578935597114486320824407524999392987928778978020886064588898276506826702359744232585606491186664975750470852080272365198815810439390193573433563332891670635098372446445701208060981947203391395077865793663701621672871885860134639485237434462880505739961966445882593842826573736460061378990426830156320207010641886952909698942870945945850694231564259023799400456755965519270405371046747270360119002196339712858480242890084519255376213231454810214527091724608551758612861519102536188832614412770143979261312764808778859545695904030828786546378447235138128331219540389718197835556547787698408382098588965517983158887562665097340104761948873205373523188037059752798346308662955995745627058185781465694313306207893950520556821027245094819081662056785483680490556263168130429873055595403459670288413967042430661785921734382361800982256302556175431909827954834545357675181072671840295066860743535411947177092221142328722300613453652198062495597416004510977301000599270863970857481865529607100649253175780683410329645873799822506320075202831122887504285865408869842930652578433539599151302802326624742910139404529934597911495161365740720975952663399043443362846360580678263224187414423801953952621481185817538706536156418257034567213784587352304442672651331354932227850569303123159489631515143832096559085268409887250170048673139757883283237970276694990449800603005388620213238893887280797036052688040044289081353003737743790993725430718303563309676625374508404467032718493064564977421892500848370866172104852161964616465115399806418533126364791486427008366492989833317197155499416238477763173106978771295560013449638155239164011188292604989980166641084335155448402853551497672112345194322932087891221940761497049600965483185752434884211839544065388259350677424775901200331054131976271340429451581715012936778197054803791614501682468446421347813068345221030296939514369230685368275261548605036498784541070210281997608483238798166812451390904169524416745284249690403641762859836101743107172976350677636895759391647590139194575647719040729143803642360945310790615943162416751454118342107985022741096884032051333475340523706060960870579492580742666521675453837788648879645781560663203682523580050572944464043378550897756962299775534092602528754318098133320166254369777752283040264561844030959977866677904543166333700578297066775442383096670372387401941349691904559182677000951577277205248257369360600038709890548805168520354126637741933479919398076900972789387820247204390755152396610951714307513864451972300118802758333183376202736465430222252450861192440250131659616397917943998057059506201529405178969296561273420614414613611339098324682822646013991440885563300051682922045897191519593256525208330310905653256875093260339001779036705776512860949944695509367444646469231677064549525432510715517534210540505041616801274585662639386106571020130701694610816249717807882516462790469124013073676354849500226357529093259354387615585803861995904707691960498415914339773870786369812685310161126790664697925201431400416986068768869282584026605608441070327672817769732575193985722635718115513048570354200920824324925353917806144611942779603554469136683815083138676234386350973358981163817981394590747230680007910082879026202491815996293034322773748316244232758007488208728646142525923783109013146642230205953578865551693458043148346643831685089581219249493409824374069772607845790838325727086824500734973978426392681485877165489739294605305552044210145725314668681603040652432145365112142080298902293406317919167826389936012288126444559526478382375945041948987382764156728689273847196377760937301817390162788873930500659814140880415903226445625419344050993476799364275421634211341858897704721050572465915857606308816253693556742094831976538894368756860385000707449489215491741670888752233814159343403215774413571856901470258357696028264950818125605341285433189904601446000764556429802570793030422752010243341674216121833353976229059667868731601981800046789537373195432401117746132827143261028512865226696721256046672745994132000552139228796225222588203896940406605710546601727159390753905351357627134495917914900217463551350018119535455387894954286390976073166448931765895242164717602147624245669110224662228476636719175631895199583743703779703317432550787402387641496653449151285652241146508610018244504501985507791923901014694305658371303744237794364527520943022493901800318269876948913737586296992716575819526970649386894521567845449748838339775705451308113383001989885241656694708937697499543357288165014801096064484047976087845491132262807816301709442597649091123185791504436784582081291410319365603535125350921623667548797434810688996573140864626633250825774896501934596457126642838867413675950666704791272045683790160698689890594593043759516909669414461492654752595076750607703797294587848780052164042716559144084595674094461036982914472144755247518899570205734344024838204631779807684944123035831604932730630141572946908624797636753544513686131038695747591498758050000914272291824461550342368606985899511574022650666711090598566198231833633335867876256433639114819316566266990490274160822389196088404072452946620074196318905045595961422122070401382071884325416803081584452173636485651267102402211846415739043903885557635171099657137156385408542685623907102122446254278527166173906768107908636858093278852456242008832767921748050888700122070505135677619154104962657779085300736884900673150261764492013560196279479925555876890679532103755669234617285076617448500535740523254914198438347410976860740588104136167432573747507679084874002714620125119522804527644958413478415726729095151595759819917840419786696715416502896142733506704140763696666247587888492346899327411336560958787332533258740055932580323665068171652513644911587476496473531927609369352332138201939667701072649756979633817158480456642809893097114746067091967286679418265014506298189617100115273042062827213325734239201065181967960112720463806321306306313102012349108777699322828954516698001421931097907105692936849021723431014699330653502253317789619376547113162389239930828372127398302290303155891100261370889211416740265512852289968870605910673671408536582363526992754638974609158053778421016133076235537394702349141475499022448340874105894939007540584741595649977326594850910370102986605366755465842869469989307522908641736137301671890534135608044973945506465215051786953921185046950345123366820115674356516905389061835001978057549863086162704141732949896769947553788574749392598523947650292387428709262422496662272077527653931827283863743403618046703373626255704775170076345048559341517992187770893759579313765575730871247954942962048062594657891689217164484494820671357539303516229825242108398405632798002034912342214077702726185931039312702991251414807943242635713389725331223650345106034906151553356955843604060489350026169261204622983733747410219782108896782721383970318328516674818379816792366159115953692608766806966352362885314575785010820472009304645724275398746561902091618983678331241021771847324295333117749732690093161809993297999939763029010265873520622572492861098822085813594907508510270071124184729505202074931164505244234678951280645769113169705924980594476960532991857136304903979394068038141657771245318060295705072438411530991171905638621774092580167328285247636489127668179124640187135069931681278663522118309387806084519251045957246545714452355192407963226137966757433765355018986131651119350678590813911097645041056599809858047067434014381343110320050758467975774456617231208452529801079591736564711060579630801664108559361069091455193525397362884790515319706321873179645162227115818683993854879446464801325517314439046907679912760105328271252496492087749557426872404042539808106660428013118779919476625413382920256425897783435023550734341594028520774744602508929051786232596314433047904116810125996550358124007815592401756002039511361794173166377147950150146390808058592740884619297248513461350446082203467302717708909840800149391593413489116503792788968856149357525024910018481813410329151889247141552414550618676252594474904094567021296198808463309608061435108365779219280788861010525044686314483603631265275573206687264672781146717572909354952324555890522053146982141248641127330268149377246935635278820387888632027891569052793101395299746332097869720026265512358532575079339059068001626762355367605247937412408953208623791104490332250891682246311331004191709802439908974540578436401711057308015395973072573783957810855786116415196412176758536623879777778157433714210176477740533933676612062401797031560007415834502622277527299063673476266706964550136718427666478539230857022212239372937617763468708265650961625031739291164466108887445134725599960776502722213871233305690289222696825455361690833872070006537349028785483381802485302251156048322618333332805723603356998040108029553926059570733905786656513952727555666390794702338838782621897861582998339623486649826808367972241387972612274663837911192272985636101764074971854561950850360778257092362376259791229753014116407658998507339391369706686834629226035804175724350324148135790805804935018925358912950235540231066037335911619650329200313016800887838801922843423619604277336371632332972491722782279288480471154454297411011663135172120720508735874782884088806916092055724299628154631891841867108533806362278874438983893383001459406346330931220031064029524441291255844281881757481408158803477317530504826076095658300788117140449732571446179787878046908334703758210810728800205455320654774256809589450705932113944833830891300450929795413404819380215754115633265749310528926958797915565137893349024209317586845726198589593869597505859258426470121595898965079907264925074880862380579721354915414300158071973893404544616532931925196132410465771681048179845080790762513823295147445212210538914571337495342522254354320644498811628093235778469502445525639239672972994870933027202090004905052330837849593862989501307537232078155681544522158505971705328499861395220280291209300956059432251210934865362597607503063927343142939001608879841215282346922260301245365273914152793340527206227991338718721219840559166917273038508660053133833031885817199247738793976368565453253809170279136231247318984522310136780498720446066568588772893863730205294999392189226820434908384755358808153147402882753575204717475024489672527532322671639966402247332512097035083626200816554392573759964978734684979818425460598696644628481082880551133326787446899872030103631367561706455744226113851105782927352560919542025147440511641195297471148499707422149339105279957909370581671522769814241458431031702411495706458696372842497205000702934790579347050976798664772469569934682799251661868398312767283335864959468670411756040841199167163698756495852434861164472517674939380401738998750268724693402218590640900697294509110771272104768563736680926291870905762925773274003850063359109091471372233500691348436977541217061900744955944994114248425203676618947981450888999342232576951143007851862218775852816495298992887295115650101579417136534257074189528472596741442003841349919997246657401363611643037744806232136561151447761008517239805021693860763643182017830758218773774435787035395905883097638660288339955431670604645846023834121101941391903836287096969035635558460814057695126916378245991097158564350806604290196239367437042907714309636686006906852334623444106727572640911334003530010428682435425865986295288660374868235010189443814280868634932774154926695276336536225842448233006492878661873034832451451682513032205744799287404793424522691057733983912223731067981910728246902179839882890959140483564417627026831176665187729235000229308422365550996037765158724921320104294694720259864819752976062048520028643531888859196626687197289060745426713162679083702764605157616887161572774677283957373954759857905244287496025317639638572848660643476546090867951944376565768277087319841753929868520109379449909108163353360126155601558898863202487742578970331965121746345327968931072920729034416403108132377104432817375459196654561933966752503479600762449891817929134026374255049238251043334182273763896549447351880856730432738873152268839748050291672626341589897385744129389931093848826423973508115255266305423290435748293726465151268691430534501225482945623845362799597005441846958957054833627821164943515461918522575153045116855732573542531503930953657723905058250395548730711987044214221288135737131982326292966969410599514947770678846087583411324595529202684018614468901177481903531408537960492546404070364700620940376593817522447023279233117723247259475501863757739036172997223845854956167023100827419781046288425173951839877386852696994825088023434590527226621906018583061353781093401545565185776494271501721983306515909971620929065433601468463903364761121856623256396102265072676945896214745197322187205814271456269524734156450312383604839379693537195997035920680222931268453671111809635838057410526508003487420069938321733739998606476588751261830300684211997580507251628797327706610230501416593226398543352806645415502044907560305663267801661075493806792342952613007530041665754089234979762492531597184885645062592756086869855428278692444650899131734600116158844913959103931445436860641238527903832199177152813172214112435695885884519657247326470734906265367966389749240748156284627466860890925925511314984779648485424459200360001788900855014220799127862408733831367553019433369587149667181316893195038342901872918666963847089180520261241677809535266111996167851722460656084005980211285822438953014847561192617604058028985373881463493370303382350219887102361319732361464915679640205618316905046613629478971009823625725930313726426863821838063950909916044250361602023498060297826696292604679565003328467946267367200454735851302145868481357748337910828257684400591844488106352269811601094766482371026347064685199950537766854843121765546599162962099570984198232071401248605038461764475627786927218275607184919379127989823863289149448421498307302030911228321656826904581118905978250133641281724231916469093762403661279906889979010643691472554975509993423244791266615359820471208851778123290161316407652369200491948058170686292228990932996426707815821974461274531632920450647632950278105376302211808795316766628731652350305944711491448019515070756414686014006949475457569543564584706456138074618970989515892508201538850605382408438514967285449471259422135312815545431642410275548071961549922139611967057298688399760568215892034881435551373247788736473961039435610129696991453143700934702251279833569508983165912587969793950802214567920034949845158141093245857449711656175755722669938231149188939051165099849575736163582774358038235703403790826978794439473166494115790136947860823223923471024625454420178618229587537559504014464219077616750376650879931834156365452493290814844375037680222247924698477956403062666545088017956822407461531097818780300399505043368906816208175050660113584689760627951424315378340025911244299742082737678398351905552267049649079547655720226509991052409421584716925325433187673935269857304916919910676571366934570232530788858826349148470385477439368392968415887472196062367010906445813367279688637857814421680272748883976642464286992225557715919189575348406656262935909774031503234991692649591682993062483557552430460965691310427179976491579086503610245741226463365496009555579586211381010641227728338944969332168960191513576368096221983035110674328821649271970108310524311093817581420655935452182182444039447531125934079993147021059786222033358700598416213393013980365691644011367531680824844150285862714865163808922251523176189328093571546465333747355759599232174529563883478975487864929018232267888709429517212859047757676213889103770192177260262415023639090480576964538406618595383585363466743163765881034149387475632052611325642357462927991667871241631972217537697404182115520709510050665630779438207339513855000623237869349962287930096315844122004518711597372932057752895575605855076817622644343220592940310668610409016000418947671630299520624586662498128886396891880290150881996646024159618610439696773594348679752533160607962484255777448033387590344452111892716095988619265924442671769729334680978418464992859642777468194654737441167143511551912661693143115657030268897711425066154822370465380750754417977533370407201759073899209465972528654370017741089147255894500504076356636378755044134267980911246421046020621514029854070333304421744905444291749124904368007655038501769278534307103363099564877498480951164010556450748719892296236173572621107180398435019235008658431046866436783728572242579348603057704520775419568927122385494595599912129046522237928223111204580882514853794249999682955335778293265862035716621352206042730840529823745662878771072552678157740570912154212483740251393844071906495404004120363490483447423384064967726041375527704500739747114365413913918925124747692236291326455037298204060142648430294623301973981745825284435479155616264103306374477966338197376328872821434567692908465160512579422136072055398951392573468377190232144547539758125671497683364886810813616058901792463802935809845133070077357575456935625121893408581160230244403171787924190852612319169045323742416538084263114889237946952778783910082359713184485413127759585741730813893476560804462336389292507479675340067112004083871342742105428760108786766166655828376096923384011881144420369160499575515110262972763520081116976905331230867687500031212715656590322318302152265159822959530990966291656709890884016095843249359626154614627749969793571201822163459156596768176936919138668664934449422675421924266581170229328812327622691417027031056259401041218845906650990558079797354945093512796161464759603795103817967239349719839244474514586459702636128690063946119420867653302674476788453128819741013867623940658809042484663523048081628965901886343332799574199980273556254116416742271841197234043599346534956177989597533386268184386976630477990121334550715316462043071335471388441187458805452379347066075459896635610175383436710686895712153673032166254775206576276104368529783329379661531576149483576991668181495090390385283992255865471771773978213770395372080086923245775042467861476451772656625643834461338243093650552821268520926828241596940844888281700844828475316171080257735345122500652127697453542359808041053188633085790593435992025545711094939707018406776807692279418031056781797670946053231291997151776465552740606514130015485486435682603128699139110805423219620461995303589237953510307086187215878340860140101748743156468912194229211169068522237239013904782095159576182099572810824043640517167819742454188453564704582195138385833339707531489237164714920172648340554224591648615568561066689568756790557954874523074083148078149200584801724277929536567291956830520275521327340111601686920618323886814250051905482232618079033149562709696955422379814711718422946910598989587358779408857137001239593982422398488166068895021224033449807027469383811440833545760351683324122419980517866078304817908319760753258005948719270292323416353014982009767753479669244494392951493785083143383035130064558512694181347400620067732390980457348743488297123575017253594467626982080647441996206131431050074680464227012068366525230192867693052786142824518975234103105112926254775341961273257960898061459476163504893831324568778360205735867758241014394549231268687443386468873661532166329012034846117134065373142682937212645948886410980884293351355118092058655689385053389622641093968150714977850723591292419591081271521964663071193244557173330918743133091104215861730379024343403946744690414398267149487678026231183188485126850376333897854016386216654036487072751396030425803478590596193544306016864115638183552528926722593025123047829010567664947584061046307488435475236436728374656884788356634515056802711002443559536098837166849647642892687393220648041732475307257111365618790318636551731174100624637834500524386763024837960199320119764169289991520578584642565503702256501982848836016937527828281557688249005118100911982038777098244461331602016890025233977464914646141791311641280478345509655813537627358486420380639802962432353486710815947730679204726292246647762529710417260736676110630561174725417213524458068347639062394214733989584206358258085454616546120331130079764825168540359404621889206955632249655925741253837231694851577763686963360126538792571923045750761770873148664118503848064964273042300175719191526412898173190309375053370930110473227326151541751688527596087020743471147915271950763970586846928029207029926703938097983324086219607963280367829351622867044697522393874383410507648317419312647770068190319675779683179003081525167243119791431755014214570850239709744326281255709931462123733921291616208987156598753236452093150938857144245827927347084471011127836502292281002925553193693546663770694892775615717634777012965956616322291176501171781494772397617750955700892026256880621791675501454883006432502964326744985305583436728174318097937541056955311803516813549101684806356766700500630880807443078552994765358104647642230446113555241970890937763024175159179333858821229021542313921677356079068361437988497769909989745107835776084386159913821223184514019376092629831508686309700569116648412309513217580112301156656874677409325793423635732562452859971363598566895442386013665042795981338905721405243819926831515505406703213530353301744048764500758234412067240229286725340142494298228212340550246555325876048876573155832232577280733752037634299175562829182468891884698747371300410519911605229519464388635908923346562957253401357186597537927703491406513826552675681960002335109628301525296896422816075018930919638701845694458731340954749429092846984883708671538363232647085684862506689704530308100442258507064509704683981627059819517629162884366492240518162463187152920314088430965878893764780069152839264421548786069835850151373989754391747009379853459030076871900111742892463893138222640611301151007746957697426193184509248706281693913084483936470945504547944414417776652452843111885945639754043884386380030998925306392198071260655674990378775248210942999059649651173332183195464008093585107840124552456419586128395635382724665878219079750572242556884175511982631155647087347993772550000394500432998481973016545936173570967134015498325786094562170902329648798323572788102293827397106894700707587236574649565635058724184671726596297975182321626151318653557724071456990011973923640223644008525814940221451879333235320632173556691392506603855522020253527685470501354622631650923756648199958662287478989011200060409360709377084298424640817238052778405956861968978652588452474855546874560455424368865658877133583865524462035013000804806936846213849680817136159789584470429449423316054862393368463679392243081577308360026268395911439060272533192709398891966354635263459759623745345625650578320442981992322391601871534611986032604998518850766042444141244568302667233997252667987958222059985549470572921764868819947787231576002696740950861876616397459745548913060060717181692783704287427522709553436072307311182084069962929045217623885314953035547143244598313932915540224673459757172272306561466937766202671180186008653796538754061196498875217578149199522508575381957555359131670748872437234868527911023319763993780722433229523059478556690479968011762581426339883464982375073304474180033278007045608892343799696587100979398722730442271106250707077977907501332094790818581313532057214149394064816087776767548528079277361566141677297802192946947868031504854523633742591759088262588224991124846363756040851838943686657708327822919813842879360851652299221856058610500642541285415597142939750940916147005564019671283605690772363162995126584841666066140894526333891522641213227466222336832782230318180903076252888919501613655144751471426293013881780719280962490454967900320337188717472432658858945104060516633846540763800458385674174107538301835995865087582210600272539790823004802192217359775065760217884888141019348403311568277603114298048512657935528145354601481623591579608808436216898203688066549482546980146384809469177022881009135725310299897370735427754224374463555043415774559118104191972861125494082071124838413442091194627818666400888672838492861108624368465098575360115124324728892058938859140541906383601474816406154581820885895517165036934813817695926915066586893457443933426620078564342223222919629607108998228885728204150827111099111770949497248521579326556403421384683282651229705415984479537816721144615964747343012289055696681180279581098244966303863123417505404544300137291432484317650745664373757695010115659961829451772684843054786585207751240804833055485288165070217242194331678712550121539195138358090746913908315231366461283045346464414135619020510495539945036135659210740531685183925738055685721479744697120579789564202092891397982362990889984260206513519365845023576669910807022708748017533584586729487649628240283297482499535840117877482558558847555126297918919607535944940068519903147392517349158581335501461611655040882621401976909151404427690812931787312863207822262355137160268600040253704549570510583137542924713792581739740579692926365181894632707743937235267267239424219896612596898301171322148364610236200384011671817507118174584098207917798345515760212830519172241206259906106509232928225982913591249130686010816301337072541555736465166363304222826427451501005341409919554962719608733827707258758594987797509019142190612949359561690177213020250295162671131216601421315698339727538389060833404131847381533896815615129290379580359472282053635930047346736089480597838595228299903315022428909824494243955756090656182590957129617224701629773827044945678430750637010886618310590550071235033780856012037429469657047557879854890770058088485318977047548950093814470765146321474093178840165944713851746814261698193820925028119830776198188247972309296825609550526996539983756177058382470866289772239009889959438988629317005106116258658114967415559846215602747235284339157415619466260004509298538829945754529961525801892147778222118453162873844748686701157850477555667925367816498010606437275341980978152087166274335468708967053329080507733241607452764779632717675649483608444048758864158905230103786560191481747440965619927358389799846177099763260372888028964566627275572184968516492836426958946366971830268101616918301641807823613873849657735319259854519686035471209713563678034214878455994061737879600399933718198758834852198647373377527779192867987022170762883926790560275387056692870892795139092034490179325664656758355534755822514818777804653481765279962340872019165672123885739349052272867196136062151728926158600578007926544133185930483603202382457061263841359634273647902787551535035432134661517529091395291054887070235963198625812047695795893757627822387675327854903423048707140376415185443436848710116300499301309441297097182486073696286654010004834348187603568242006228825033772021828714545708471232720196599285371202559630464196185252361115469297435881151162960797597670923806568744581021642099309390391573517845510091103416779750384513487082244742475376371645658988473246800572207208184768563738769188998856533454113270284644930633618139896895178768362546461904522376215323001807912805728850687658099731237777402465361801789603992654736070844699219145520918407543686066110460583154750991357563519297624720480981916249238559284618782419861598356715258064865501770084286151731282881532487904422281072030604015785422611000271240759247749866246287915157493100543024294577036987598766841628184854456216683200753636506222239932779051810041013841855128218182493404313990176665510736153234183955698027431881605701079194207176804386825663101286186949547124080156363906385045058659812920659463193202116767861834801986776176625526056479367593388103775078939818200500899488242698195644070928257683613814054599882948333837421189338458946712954837627430040266499511473556851321672698285956548349161376361090678136441804453702067616006714066229948408182894088960360841054573623473313308406394757279688754858783928836280481528282965438004117059601434805067286148978939344080485728359978782252348689262005348933337511673100245144012299738729015350714931412377195647986081910579319204669331431694199621448499878327410599055685848422648838666365477185737965040385425122554342620718613914570283972544876848923797360051366226139986150672834252116652175648586261996065861143221800385504986772583957502877321438683400062818625078109936976899745166975675438255625866495001071373073425765864350651941601455861421034849632462213211344890969130652402170947708900927656067637752441568223883147970879788979299066082785615792007159556368014440921293685015657271159235085259861647406432782442262710283603894604383666721148120981107942537888777308732028563531646995309874353062908957720178902996062906571495880174271896666957341166762765052446496185901611846518586560239041663146666588392910429959809743818880758784149098096695935868394953820127501096414926616429937764895767060272098735599133739757461629108376169981769038651627408667288310104490906198790851143548348423378132754112297545324990228021757374908139770881549578018682486167453524583453459997485482237124002875152496221336174739125675883708015307738565783687193107180690180089820599972396503930920717762059408826108002664765939494566803394320716686850874837284098309855746503368922109254070753492513928794990945295650277617473092553296092594217874581155759558975196750040995278706361610837607884588733178354981810441084604741706367859463944195239571251631664313603344420487248884745736769262638123757340565444432507079254192025018584183242526705199012202742896215508047080573017351017782993973680826856447797447748294286683586313779600895143764588110052905982653487090852946782621689783994015205792170217625688062239147506559142813415883061824140781122390017329545652847056869689640708344567478579023078431265791547088982857512399160392919686209533385013431513531471943078708592341669517586679229774430264938623244180382026198084936989722329901766036172371191050624467259269139459256113525502942000773820279189404016849033333211024823142415084743813663208896289780987204271560813765973947167741275542107259387015648378279951136784495316520692221134731217232052744075526120529208637724240920396395885321235304000122758366758228052177804877931538738399388113126783953396880681213121657516814151538913065558457361242258880216501466834450358405516496077153690647254841391007745082621717087012919545185656011519848122611395250865511247051176932751990235383905231714342541381152941178465935012078046454597327412257822386368125430349756010735447199975104245362131334028447660412655664079490063902028320761311813558909770307116416575040170122841532293143086538155033826001599002778883704044179852856256361559582200518647522420225294409010146838835158153589707439173717423839994390258763118040900662848328130736802428574579048635476349363837695272675286845662253237667770812650733583598126584894662914880320529583267073428844094508864796766321621011556630262235960770460957939244913798379745393511949709584017162823928869252368610863011827978693498070978035251087533393688558862322797269106537619267855682486499855815033105692325225839919439196970395323406815915153294985004401755423991405033265750333841970190406403417257207540496833124916077720621948029671107168474110437065918922013974436984302249420857852814447807534836887301204174567164097858802408588498388723821948762050501723549611812281061548749232262701413770153649791865500443237742003571679013346168381827210383119467962652131274315951355854481311156074191802958372954596268380465189819833507315877737942758923335585101095027472605746921726540020021126627618371133907123898344236706444698679605073195413353694976597824252198411060399180638915092316417389934057613048048795672539767092328932180341892376218575703189483609347102654699468845716300807430126326998407859516241339874298047872484293936882355250559541826196596302334026679755263265327441862713753785789800045328448511920148690679642558463667553435818185331333110448037282079063857244726985776006349938266761393171332003969365452072435966780343870768016815244712122524017214013271380352784657271601733424079441580105153686447559864223653750868384661863306336509334418620150028709389531350882004064867243735955489669563104598733727034859046011259800607199822854159686591517609990188462201240173652277248457640279443604718790100268245362106034396949002063573123097560072134020394687614645117512701619720979509533147181334254852426900780493549751652141022747398803570404014453797325425980023984069193743516961318496691417170387304817860533457217202624521289161840557202809639169184598004488955785811460697754999893765247201371504813641890426787020201216923372146827119875204845577085816651824083287053149966027011429971206307195521811217818679768449676978354710239641434453139462272312977599436525991385982352765498106723938984021635019454673067429677504285495538750237848562451356524830170091835939753857724473350588245177244731358776201463781338326267018980870218683930559396334785254655755366510010199124474943678880137968865277270666229976601095583695607180351843839166356287529310564394725690354580033788849858448284667972147020809834084149507553374499729937190227573435912230983321689647984776629112332408091891910678669795747526582306855621198990199612026387966215303698250908990234320709956618033915947757879621131227337325684290650646555773844636511929214979179116389741401349404514575731297872906075002011422117207266460370473321904284500150996901224934679615084274164241289010328929023836065404982409697066602889465011654200368738608924637052431415539529835049028584094682142967742420924743292920502916453026033347993292034618063525079856306119308829560185743265106551840232587292234318713413232701622353749101795568735989204502159993910744135468458015583232714135866805017218452070767479704553622059986914369887000448679283504234276516267489720983674102897167416738315890297151072234963971069912822912921545542501649982889411175649058195890686436705009836446720770689722900489523419561092336941862824291661422687312847191695686699539666178223697994664090622783677229589154734127477565807434988291064054488953327884818645429007201143099107153272045984277918989089399074201311219539879655115435009771924197158868886779888387292426883607324083164707161260242373509364471835929044560997838739459633611692982654128951491197228718888806159506932951527018002775575570149820670924185472936831360222179257822343038293165242565150846171687557409424137907640983217712674999806096484870220831721453839105952092791948450793721465284638742566218892727869454427772155202750987572215759818339416128540658777080430729387169214954503669210522097354371253264803388250418115624635998350255558380914860115201984857860295413428007066561506701213585958931382274513206488756526308772821752645033038099559600007934941415240766467401744701512692425191736933629094553557069359885574431752928429066952409687663184997681410583685720073785251042763870509169126519243307891981464664062792288303531898118908909616557508374085095872198162014456684839805665197994424312184486834939847001928379989926991983781656660559887493137409487327579087465799324727649213162266150034794187087601375274495983073550761656804066174332575684302919169056977377513775993621767386747238430010011457613546236386609912846424651844827566700775155965462176621140179521247522394378012641858025832362596576742996041566596869679025240421105189503033743427176683223070137734592081526564428680314565549224053249748867235970635820294247764426939454284950065732982641636480589344938759516601749180339745860182837127131815246431105648200807941417402298804904118447698149746354095860594956364087017345795381529550299845370313867231545389178673966000258749739927906036620693002519701296995980672315909510100802169251455659415331135983860907419697800488799111613192001343614433038076396978294592304506987852753834223773356818840373160158318690830078450523530802716449900522166023641035015537140330068357208939765414905481026563841246565384221282202734676379751292520372607906892319764969428027742152585647361650304418876446521173550975802037596640671294345062772286100379083278652279413828235634211031453813079226223022829668989728628101585273487250220658075933923480185522697403364887369880258277962479923092593142508878426805162764376379250770526967433966733883329084366539148882845516450759893519112506684235120890149798937593001363016770347734855592498145667743474020644290565015699716144225358966784159704515738268058783187037213507417240793512739601595081996097659557590040049382410005609613300445142213126528236744464264346976991886842295107559543538561784047061352237592821928128769217122859854563927217841297274162187571133369002497265709186982466289630804354129933990663332468783738323807599783314658019661020814073627805648311836816950608103496036038443250212766781613615560701434057459198827814328088533010113427642298975719895368417985785261922690326755047740730346952812837525950530832895084016600600797512100440065354294854266494627010942114639308429006921720771054766159493102781485705864413919327625484920667634807008120570350208280349707302624035062941022807421818446370067097098466309176076136428032084270314455248170167729974924775762693266566681504955109816374937577634974021322738886385097707984805161995713178022926832621188780977865780035561085920857764210448507743044078382267130300879226258629914005480225515199357383205878294444789407727158919367639415376410663745482174918524483789257047402538816012341305562720506214584487284552989551050157403678281615370810960646123359178671979670056071829701955004521981232614716711424469442310479122130812997682159069027577125625949768791692722879525123391584108420927946729540682867739822477891872908082165083667243238142584207075141373589208944015824548896642918911301335864376100932345390068814117286963145718979435165489580568587041165675692860673995476014296963914787429450083006853095275500862064615525991851667869977982240953826500827157263067425659849181602636475270736678521737626224159504133418715367754529785933859107719943187041839584353940857619472517013210906341032675329440511104537568468052636969921269397424670797864595349233822194519506557461139768949281990450527297155392836140755415135209801222748249007093536062752150534817438036849491301985672123408133654874739064518200492221855599716554487240777262554507514536000060009580197109646137067491401781197318471892746704492797393101707806400408313181234767286378553643951315769758959576885526590374740272152343739819258400352692872915643519441640304708303099409891438233574414642247110964753480635825507294090835955560314067710355523923464349954254501740824078176800111578005942730936681430409714099925841766804234009744128173370291560688036246132201711243830026872160224025936534560290224851085995987116249408941410388723949532177823315714259522450078608146616258628300347762231273541239926456465750656801634873252186619804616598881697239665107097043669546320336596118489558394643369435161991094484719756484088679927426131096889599933270319519533996845375932166373804719320112525553452122364099122124878196412681380011445327283755062057127624674389367407466463551364527389454528464548205676749125801456027135360446055997527913046896185925989293049403734354513435600037762963524198526576633790179455792544015956005239903499129379818132682997846407466693450969443251166136635943355861515040789150414800753876441779662396360459297170691296819796303380471702002134247326812045241137939729050899775849164206824916919625380900525373627526738180972674641377666073418154134639396232237354570019490871331575398772810285964426510594124258282051422111447883552052549295339108247300596618529738376454319301558774253164006858805650101606063208708849915762504606890569141286867049635834363569168727879102592811219517367136840660323745292278733865204815575809192372131330751723603031379249700139422030571699689068985569645971178009682222036197372449842765330363249622094125792741806637385019949867366916983377728714254638725807922401279871823420710193326372716779603814254704093129927363207970936667229258757401648118250301152860623924504522390071850321989515160612067679015009833497863013046687500535678884835895411720197713314738478927290997398850325720182928573802203206018966828474419000893425621750465066170444375433725460282404268312515946533067983158580690503108532723552878703077920358294330900538172338731318249383657308968688266947707722848635282475048427572358148399119396935843010789236720699997403679381376477429385486397368701691306405638300086051501931310822265931111450715295238455422710424651097992958509972188699966148027259669873140947496202529183533294775332854257485389347006365936237592081731007628597581424053354761491478618811372130640215986633763229862175998193009844933442091866670405137410276021958851676085206441181899417726985433094056159701015641119086169866784639095625672781308647197077151867557205188867289469192691129262292732167748837875946729748077899183773295600271226571221976678863507903691456173494439332680129579780027005211434664687598718465797639128601309193424082242316273657242479134596969801357517696085408882296639113775661496554954225852511474176998647909469047448213569043281902496839544388139098254265101294890841135853100932359053328281597633295518431781160697694245224548168810160992833428026965323194442478865273882814999928642901761144893772492737464433406218785937999260786718608128346426559140630890275044856314437369471486594629520725572643401672777560972115795954557594987462752285124689515564870495580729541457679743821668021080880907742667902675166640669946340655722671934426142165567720213900441442729383423178155662122472342346133498496330899264399423857978264660224246159651607567325633942724423613103585708264450526358663392827075117609740651852702109242012492398959375348140747555036475543432051819495225825535881230684683058579570428102848359939363925091974404384644977273358393081827886070291302411718290765499754367752263458048824142984666332156941887519638833592103161578586255499317196167540680011035287654232315468095301498014435842321348804435797079061516237395684320134469022060327340221988628876542894844460860947560234627851226179377719934366407964679640315655947517808057053861414186387100690640713660839629800906977734512292233393221473133567051774338301439891774303734814177708334756148807887818234062901134217411722218895486925030028436505632940271149514669817592352905005617627204507281838584620316339357994068964313535927099921254324900034726669223810625253111210677412529297363420811400422627687453771461638976762116796688175582999528795022025109210581903438173468567233030415251671673175417929130725390003116778764892318715514649083268998871968752882817768672735491861825301836796990057608914853701404074564064003087954119068777941594239831806329748018810540722393892228347182861215756352981604052865443813338461344746792446950986881728862994450457435427652263374966896918423723649517066316545784205982521869496197257598234124122697732364174175027950086042561118623468152841756832816473257261338904607852952325831238864662354059019326806420894074166514272913949210047714578774409706278326311641633801277912147845899436597155310578369408160573646799863588631607533150973701754354400749202151309455277910073658160135561302397308476755809194572781013517822579076139852740313385047985990739519391303277196554670927913583954914708989783932207394511267640258918978744528932423407043093113726505791904281920031505305530037880637554508740367657647249325713054685563817706132266431316070832884988313944020383658223156927998299849311461712468626530979618830612030437759278253105227998055864258179836470276298810535992741329818982673565180946016427933211303097701087050335700052433849016403589998743660445745631057277682147536728145475414762201441444095727642930011906215225888464748634407511299960855902565493200852069269026155857628204394309005643035652793871031974945018638701373024887322306327878926484162398806513629201535348831694879463610780101066181072590050243699047555407775747005095980047509916893249802306715357612922336287048063254276278891282739975473582891638730939977933504279558929284370371607390173438601740022823490928136157997656346461733020604952281980164256650722788257348974411619965948000104877616290317048097381299466765256684394709729846407042360975961479201997392008666867841195953046300463872963793526821729491070769285846472533831045064910406452883715147089550801876817729908578456251214186144489455870290521689651838336948753460533944399657668588905792903002785955187257474156342367830320037654560725493115667598909705830424585108919430503579299852814794383619698059881764736897363188441688186504788398019085413210975930836775022366956882920173744849911111440122367974111020301203531180716717390199284260542428088074141243155883840315284138048553462763547470011217766777235469883562525125491419853350811491194442061839716704464716179783159467152581537138523240094163741044710006331044345484093879486645811846355744734415850017950553353238157579613515058967319164474122644131150069089491440465926850878512997995829952347392491747986511768338838734773404012010872503084057672989062234231466093017082666182052244116664384700630213406151201104829030226043057158201686618285262893191053491738308396739909489768671469304255034833240669993123165835939204728910960873826855521582637386347709703332073486519187360633283850345120762753092944765902108861044613818085187146477565953266665654784380153978116286309393529072370758963737134488491213694084645363629497268788597728696228705508131590967057243834683337411339432355874452186438192796655093394313535919565281502176824134169475804132210418138653489130905802915687658773815511808476563714206180062862949105420439668165073326487854647528071336653343374751960281314298890638113144758668880259172673147207985259144888738679004750655828946463120223786917719602942993862807567861673193393389301319209160221811289242647458455938078285310080231080125045242840363624597153863119876476407220616876405365811194339187704164994387437345720826480583149830418931782683784595001774759626625471347051042536301074428781920351485162972393840686895935433256250046644665023502913727934342274196179099672302463617586058344883362921090824111784224188717344383179436274503392835262521283168036301524138773164918495785078191920600766493808638959373829036135449916689726878862257608362340074768693756683555541507668969503685272849582824486154616908456624687021103568323542277777203078547567307427137406498739193808305629189296755312322976613434804433137410970635604976798113309779129738353495940943722210366376719333976152447807153989749770465353077795417192098057187607884395301079874578671100683765286151305561733923575981962438273629839950272489542429670824259591075439036398903392059175341837036647223574868867694321076346878395411870328912414204215766272346293253643979888683570184930923993621093774518636286089862291391490624999196252184849924993701613637173258182789188945855212149266026760515924708822565961150716627535467110706682274305443957901959064439482763114514955293735590519177192071070914010010092816483709272305760224268030545861107436754815033945049231488719258543248740373921717831848396456905310221822058396511331989266448263934024652413277746261711433903194944853395926836037927723616714550268463886711476628626762464181882739871367605436840475651916869103177388707996022999010551405718494088524731599049536299485471733735836597999198211603103259696312913590573369126159970440662829429316503383858270814036965175285780639272414037429692397223899097080624555024725398340439181259980420801094683045144591657101583301566709362808900127797650617090388085039368589177400786371279604270968647107799702525808389358195153907887340750265375398535365169950393967329033722245846089744492475823868790955462283040898654096386572158127047519345701994135468482627715582720806487034949691331695985517230560695499398481217046013551970872611369730303311609359359379900164067597304031794532821098941932777947810876106020248421688664437028890706365465536779463594756173637861506428216809245755158929363648565243488628833154511389929971944659090451097033707264608922555012682929661830153679706520269003485529123826308570039229560109701780668308469418645523631642252907209829607656502081660666484755086894330495968612811668101097275616335682527859024537738252358678652473699349390509280275691372354113586199915437552079304857895459785852190865764414088318730322175856983224416940307232033610372517016283503068366307200017678409194403311596782187959114447862306842552022813245167490622191103340152166182214968046826005359151668202349036378663652570229264724029666842359575654793769356881694722357894638041715499632294385896020981218351279207980619439614538451116973429583986423460349847738971699171595863457821478393657650859832749519382482079861615394654692873963869781927339939527378976176022880611221502867777240170343833682406427143902505961956157831988287779576169095460690280634143884424379496456726622703380214741121054327280040425788126975188294881032935601416649259827734618469416111618396949266562593714934896915842103387704804278257836853450895014755101801002012444787031849498388122241327545366855044812648311286650437918999612520203330222228498479012346064123234984740962685197529954669605553221782681199373967914550346861496317990061138648739071582088285888767596341402941750382357013301642308349780390838345438102439485460023761158415976201802326581464526353590174524712026616207204171335515968050109922029119873622990157388631558656861282856456027929463160660210108871620928938492229399722629412058660309943364145641017789138892972878156445498150695455452652983766901330283240386052560842991641969100857785662464263345981472558288488173713127038615299627713219225148219076176111138899081571512064753341091364992602812293309588713525627742588891909618690858037559814686901530341100259529143463249150033277800896411678699375394118231403107921728016891883147131395127813810406337253964189574272512178057957699287904402404848327339163134629832297109359572311675747364048776252244108925995518358220485686229629765896483714895959790884493620432696359546021192345123318745360308327763367767931481532369626937201656965508583966915627866995476109992984483138605227243181232068562396487400664102894410441831923638690311130427430464694812775630485692200156710515688683164479395845463939499620837437057524544099771227813686951099295777079468472820653051190280355486296175539383609728839071526189243425034474683355785376706924272258858323910860311773109304951095921895818843050933764546350903915210772597467379226752660777232260431691688677082580555538643703892698379753150102200316363832279382534500431315784286348084664891013848776525207279129386321493397793621918881614352326488920949714167113997767847024682194553912462978392946706991488289236742664022386042657656349165846934045715828918803571842398627761547958266220929036228291609528790495799158692042652680589879244656128412999238643910874558309448411570675944794983359414221752404697378073834495511528344658660936356949826205691980241992802613917911676044221860681513753651650764631366418674381306435374351898257039344361650388626466532488529501151159246228788774296946754273777182622118654729512705412602978540956356868536647231986405537340698673402808504027140589093429608336159849873731370906714408777222755519614272234795527168905034421581475032088366989833108298757070265222123833537567512436541903615614416670430826277812794632282390785291193727521118360852140955779995514021047252186565917135803149738579698537340546767453818237119232979433887439820041608252965814994962523371633786721993509100309722700297751756465069841783288184641624240603053160757545899534591065286481851134426022899611099376164457955496318007980278536874680632027885774300447251875094830222120641679117723826134567806750767353279163920072218460156873938469590151070244635019697325947230582862453693600499607825507892297975188179234927108309451176517150412203720092708767575760915554528376131946339633938347989359857306576689573013446461521610116362763892745858419897986906088716874555011751174390754143230766389523301421292320101552632879887921626688541747888044032542986522101243172658570689263414710558600845017363413284499274014411026071631010468885625204874828671515941526724438039571682299072317851613144236238019402882036370378462539610863395692830387439904766659223089046432898187581625810865731881346967739138376490543713277205736042074110481947725274466868399536234018654292762519624992100271900236123720568485026966732233351173577577754220349984747400527294497042424878934764388954820107944339465682686189910365333285606576918010012344119940490344614816573691678068412254746371769218889787008967883869382140607427691764845095865812545544271168192172339887080571337759439028436704189768667937952192773004280446509604680535401588858054413927402255388140300271335282990145759905951456040355923665126969985185261452772803321979071230441641759728376773687002876067113842471011008269917509409158631707471556049757412618935332621310497181948487040092448539576257192263328795133119077904965203993954576564553089780037296021450741504590331536350357795550856564934729319332858540296098421304985283473884018047759730718615411219459326407481043303298314573375055927657490856711955210328120657188359967880301623218337570440924822953822075805786110704297882492904443928193973334985120806370821363406491373348896671732408055927920464692303974205526915219989771703505140778944693271208813794924113119774258241719662337489775290008109789442716201878281798605357609042013971369216380369051620580922148263347572148073804220893607126859023149809103998548316567915119876272643036966680320213868886135387636692670010053950958663406739436746020769890474836428289262493510752220711737378174629822691368338057565921735455181430299195241364530854501507921022927520586242786005521241000774108940199694889527348324152668294945442675227411150510001711903382178893006052756146684050104671328431064299741757293662380596392603240610810628840419685609035483261711155406294058738554121571066957302064581168553315531450954712272054808554228038651868797771129573882336825114085770540398710107133409188788403497989046724131008856635447301918945066525438793453255410030132262246434585359683430866588062296886951912958607572233485571722909711998818647909723079175447298808901897195435511218638979572490315086573266106356860954556690451282171060913189409748471982901458122950783018145414921813327871479495402121112944600159576214596519454027967528878853799461928274481150440381706497524665062360201482711819932210964377661330168677601625429360745857378093602972621042603968118922662555672841928684314011308890850393447262649056388330771523019940584911693153497327683563083898697870922273083372692092225644786746967245175884420811627374817294693673206475113027662914694799117033392913062815399847116114870856411867397326025810421473431124182449628229792645747128200162436162766135760030533234647971094522925616778361070917977354455746213510527274766232936095785381217284063524658546740023225717837920432331095425708923357708674463053305346670827904410537360207134487056708032395051323406696594270121329230310774100050308776420813274718237230474548287550359359623865277918499256905881166647044284789514010511094146831048352346200369536220744237311537364727472493301774929104198904618211559174531917201163743464956702002971143709589405633999002577098409075733247077341616335398522093044467641531293296910973970992569456396678891066981222852461503714521951622884121292602250218611914010107622821437624416301675969892008345775945514336210403609532310363824463650948646049336654646615281192461937299963419099365147831314872992581709740209352246139235705708626852462852263056783189144234101884606687158274124895717514185999181868809585729852732452722272470008745922529743730513242611247101131764650571330690722250380514681159058697776109673851940119357225702420134889329090947843183164538240933871275536192763392553103687391449691447759858412212221934163788704341535935041445225414474965970994783179817076412944798042997024482034819580068252735114458657155921906518888686701295666424715416366421630558064192830992975380165519889705475483868546750058736411535876225553949294185304764038062727350698259648017578842908771762612470329246481819193333867254669723025715984788655827135216188378866126138504284719175083274621347595883480176035654473336084929786685551944187789462313190990605199639881231897167657431558830200501502560011790021212053406012662638344437318172776361231505560810046980048072361238237078093370131734846936912866118492711413073057407979920693842596542899550643476033904665349281641740051461520535974992152122873564756758821386159418525140827927642823943181324832211149968279257039690496008012151951608886411756638244783588617030957443142460538267741437661305874556802077704964388780324671227736460364090341932601210986788470168068102246879373530994699581903579326590446737709924263025098529674978844342877929853358656532020926986589515698210715898723336198038951436675860401824064925688355299928094390281915922189000739212027553294987855625039196960587479072527379952884265623223397825058534384201535372265722245334613081409092481907229103491723242032467018938502214622328303117419200287605236912434743727675801657373168358660917686107233704714929199060172901333535717463871425993431412922719878576048389597117499445678294581597262744139709616598344710681905185844791491593692905055263899805044987371227227607465216771259522540673468533011122695196167421141606196101903477034917574922050268379862530100202142706591250595809234900273881007900922900186069723408797979213093081170992578856348217208456014801411438716228124621004520977131063314814333084607957738571176740400177692455951689241190346033038684261171839002576812029346424013533216916992669335069975834205847068209155090276917504989958199625771323984198445699855727995248732917154900946770121044529320188560053267328907402033186361875422101148015932950581559018320488616121420668247071989651426393459451591560372813815791609237844066193297916868545063548961471792579008156123204627017309667653027137153008263809959907674320380024753320708785984531739395324564324841573648719971379030791417617791843657114171369068637864358173308066836635398084973474510734477005612792030652691206993843628610388663792343628530060064121546023538791990940133958816152331674969221713643454363875775108323204868821020508408457921757696483794060098803123660847067066529672692853750718543019508856009268550587464315928591184363834650515863268547657906737460966892665707437721292460984722868457846753216797668067087567559979007767672825070048290726260763533731243286238614351499378528639906772776876921698594425482546523244558571183924477569723981274453357985461349359057590619589595995212852490934025650325045727521186902932268785951238352457057506328582671766767876559084841485117091873608468162906580419429524563205283617158291422067696039301134547714713182570369262323888074533900205262370939807502085365774946786076607783197213450171890844856027565410147731156002277989988360569737481850423743498828551100667525423446348951953692851699065520447048925498397343281759790050196629470817504278502685289230671650242214853384630494729700847976479825114687422317452016482824465182668508615831593889435088134714022152869908187261807460731019988945314024150791615466771580518801897455551805410887092545153369136007533971892307924425953704214655459486642387471216474841276567893553450820348721171216469645430300433194412931081218890596459908325417324219243396571954857022042511532662829986111610153713019570120560716740153819028592693613000526578263180921520246374847011326373601914861066575893189948625108161459226537347507568950178211775614502926445583322600225863473309862911068585616822879487662041929229932185586148540392491904395773784509012957166700849646507983972514437962828101469048646912631642787631456821236688504306217652516195382427136777553938256288899757624753364699420093461217131416780549791287376342145703513006575469495703778936225831599190690668457717190141218334075867337303299600157663324154720731968586005604040496560179293896800636302884336434135711549049378002970913589614304386784995759994969807215330065743395566384663589726920256207613913319477457798367877935665590019070655061905216451458278151219649271314025448404885920626981715433562081150451193420488387705062449488755074073825747373632473221805640867270884558828347710871504005633441652110547853758573520275019046208924424257112726222290707343466120090810534561266671549468140921412140262129452408769256663308412766537007795888279810166983190203107223545908270319209347521811883616448087320768657365420749250723069555306413670841329568125093829903818438137935049491863015453127133218493961832654581595284477018728065626923115909811689674337347186520672342096283096556925674343363076371243785449451071411069260599876942420237232780097365553030444516749279225822129107495179896467743738682685662131624188690230363864577517300721386698441126801009069845249040775360977772110372452160350632095703982669487321845744541189385158145315295323349568564392580069220641019708124248154886673189914879699461741869138845460904700368871900667022078251975031636594909619885180918277711596886600371487942653805709682532887338055575130389992673146971797915004579561186838404564455193135149780598095169796425171148814885622459087674787841423899459680522552193537353333259264766468311213824738286259153663265500658774522031007529573901326857827881500646655611248271755431018797120874232411042416620304729695065027090257593619203215521587972379534781546960580938569241590898505564089651757283247758823922880330735090047712244076967289670297616497050738082980504250898998533092434995901720718843059214117165517149565534729983649086413241493000975441734291165901013653159331792427615475524001965750478856524036685819756845835321026635367205467581381804738144166054068440518067537682603845191764665282224317553777369105928521259068490510301295804349501367329908219082617800608135071359157655903757349766927978232412591794067498126325449173876847319110689601183028510651279907120088009996791823586144549179451614352077812523562504611441264814043628229538433779485981595150193320326606015664917959579281932666600689065502674486023764194239685321030221130235800859690695058874532076412306650690435276938760606369912597594970247871935311125598294957666966288198794733561931216016949350520503233120720931900701422221190049967022841086229977401917570714979924108123185683804253409581725139347994298160607431153230545006207679983826686977276600288466119568397830549691799307567289389006247751161589989050036376971307568784524964737025386664430250571955550054677484024417946411345041814277788615656701503955774290013130110164753554353713362593190580588421351955180945153879827058059459301278339209081419637079698259232783587696401897930742192653667116805895454760331452022029730653314197220512037596746224953882511683308735994155167407492072709078767026854790538127326511549205264122082960331886639046867200490136234992360210449524499538273372510570379023829004805007358892640677654905101450749349310583594331715670419354210943241476372206011753626988278561790798288173486779444811365096108274150338841678325932364284026754107631915801943321528946933257622705972477707022474524850601286752702573497830589549799604401177317383977882342114537700697849535634935998638167180073429129934820196741675356534400667146427874187660106592363110582749237100572643980841280774329350354886423368281736801141696034618858843987119377967703985241098550125885544359408480233600095796581651071005709027951254247666856229348946940947142211180177410604323246060941056978642734404661111167386259939299753842890411837011319500823212475714190554854798051287203819661074823308233745382730004735967659442044079174632063910366929370281925743003755265180398420158165696963000934394903022605833200540681511729366627347379390299355299587128589282801299265050337430179104562834055014769803918388416698784645425486168609446325632081991525820186944320561088304223838785211160107764685959280117593448725649510982230476478440640616569876079708444532058769759096298582312503884757165689250241699745501133753062619100366014850455005061818448193622113464593599893852828282967709051924262498788360369970063193606276336747064713416782939005442712706602642439969176061292885027725379884923746538120312841852144746337613756456807155317759030497114000207346999793443960302571781509022932357503814338708556091789789542093963992450633516373084805879477757166929780462556755516518426360918309073220383439330513005100045773275250316147365243021413476474662390436447916436289360462908089443742004410748196717755295464408556512871414491412156350228564036576528585665433616602371711062032935284116726608271646258328783386988049800487894981298111936291601095198999110916593948871412471982190655350917681675275752860008291841927983773350637550243775863986491592358000220518712802185729579265004611819392788091490009929853938852255776216147886062908410222365209033977303457047901605130450250473404517503018289684702200765972623099756563297698104323903585006990206838228584229875048252778214770707903786819113614194264280720083223404515920972223081670999602004996474522676524777119811539867626030001782860651961355702760960363588171991864936924618959020476518121176366595598488753935125925947258920519654266063156527228612765382404278319272326661133847326402802433873991616087327701238299757399898868907628920934783732074099592997141128428067065911706508593155080427001581105101018570523500955784047477745759428797649626260586967414524543347356036826942951669602452923695175887292472929354420402207730702470894446282466206215218233293392257393308840153169150252794136633762425176622611026563081504428582637744204184625125176242324171130349988843479321725450058681197665938131717589986290858841951017664527459358362261437677820142256320273706220305136629088574904959645909055167078350508590343523812812046020183937830197774954214369803672943361566442327881768140905326273566042050471254926137287118786542701428461458931021431652160484275471664365289011315320320850223384230527610620764071959164332335482258145296881651850087237007657218697957670416055376424474951036939313808829154568534865638609397430540010149767542589620035053575744489014547839116989465466748116055710118996325498050049763109830428823305421335468833083282848684592163291847252857966222336856651965613018812888732884044078325637734902776540530879925742495976787217901104117962816116568913612254337244905730013930227380078647506371456511581632805618025810932440161867400165042836710651117684491332931627981155829294817439238779531740524783600952453769581946927062624777823452593629879116071045315764193710148072523948668932254821877461799475727955879886503248278317711121983434509144372745250361201153968285384615588915175478519935124441299031217638356649704015637604727070185165639873912713527917624358818194290689120294741516267457323445895806953932557765137344642658057091221667384764444688640177298005369922040884622715369223461746177661107731792207239367026086175389645807136549875448973163638120190557998035847529211100508189436686788596355690087836111658337712882891233696108419289446960324257216154802555661332344268366790109383737655212302015313241312128950387854400579238559894406470949029119514800999040535009490331564495160846504796712336642181837594565569404695338023856717089627470869450250173899222498484716572633752656809051555263741623389734102021357088338249740332481290876837499197491822527247623191404342649463005145274116031120980732337512546514687886023662185517312102650700341917013006814663490033630958885850724865492611916362046414514862875936846134506285343766870471289948369434516480784216827581135178435400858323897476897570306121594436552596937725736254455485221692070787149152596379271764012804387687059013460140080240823584311030970716645932848603032348197868436181062965622972683693542287965331355276278936643721353113550574476903879641698549361450750901894255184891836707939062597833245644603040109523926343711219306888569894575640131801584550511251834744074426342356606598220346233643079949265286206486740077593182731311897008956620703454382187644762455416854021646795785540682399873111162228322553272539561972285389413170289111687631196760447623224686647518754306261792910817780881382690435706101793988814900971883460552487259371327212361053436256644398740390436249411712328891471148414058644109046965123493042740590005114380965499297171176048145432630319681904139028107534326935250430386685136022422973153595173139472328386344369445964883560194241577738904694617630055451991090542434030518292595228836596276034797654930434777260399271777336442290864541903218989584428293161306278449232518211551806719856405179050116306991492271821429609782676642786712454568091049738556705369636036972750954322037603291781786819952372111499210409737642323921683869241825604060512926237806979814140732274656764879192211733689811543466101024519664946319402464018027316310189975684799829445260054382763253984684093518912709571875830109822154403550694786452796449663234956598512416668405640920506283264245329327128219394574963818675200336928309736507275137945483599524119496675857337923615627699577702864189488087002568632418417574446723145434951841109725846910620821689842634201104096089886552613805349406809317286629893088448940121468945565323792054920077661873879458906094748226662761338006629494118411567703526626195859761738661684529639599160473498697828503234462398089276362927286962281831267022773055615001086093073237563384310135731199149458257835595235078636439742631919397768624198361383393261254418082582994825232425162144893956651897225068656520996921583986505706271862487626950371561628053778656167879356450293394264697682003330023325673897434252120258681570714544217359161898004598698026578237775970781582879356903302529431118166644010164378102085810449067906226970241411674328073367220718093335092021849997825300446932559277401291878384189502863471828052301965779448957539010715807065706601131551825525115726359257710687182797014639777042151941869926962484989907213794922729304244686457226467623933011366206136001032909439595869360516882053993260787864692369313237226907101070691988491969682696439043725599087894506159248276880447392714908124440407342010106144946108401265995275595492141286107424138655744722938868394430110572257894810744932863990487638009527056783508016849592916643315849047750618847108704588164750425277163061911861926862907906128904114187206065581221853763157212579923747458294702720347711851488538852278430046222319858572885319649168130255985971464429266840460423383089415179946760651726226053865517667525072779065587446692325530223009580433893938158942501282669020698406875408289268950998557291465374175667360404763851515345969590514298519696763600447745267548534486106135737982427082355251303280596109314914909815194890239821513236189420897059089961282858144028111581809439802848603217986099977592805248125212305843138532969256525406237554039888789874109808823255115119041519068048780564508699825924670248829450084143068228017426927857864154776046715665628658956399725187685808676591378599134053164223580447026693756055982297498979622652429301870405796687590627802479400616116044827521044846368559598611861879122856279459785256873148423472470091096154809668973113650208455003472163820537806315489584863246176669022149233712227103207326697770559954424798869906698581056941544595385268027585712859601259435048218645827266510040388863256041725240851869578659188740536056088181607355490294395506754358944752112337053687390184145537738789922519043537243323558025098475199824221681419306456837188773546057054819048718644191403479537741610754611405310088602815616840702760165861161248668376565387843965636253621516496345138232482711704469832954612332876619547633355009597609216736975463631756950570978859494278520615422958605196877954644143701850308169252786287131864903474694104743395537417967875814690879276069822285484617862261288066866451378046514135383322786026858097317584987890134578497600257479486596402584321545862309067261004357203745251806590861429381533121122821502327038525252902473935466746321263154380696943327832353748945105186484950546421707959669966412698637953583452282402023152611035376138972659991603455725819962984514735505532354260545320155393789363333217954031530578596202222204448654027103647538768358344641595188473377704237572923730209723622971221727600815794522731384993441853402546555470670234279413109688004567760500429484042508083705140114938780334449282254654579589080493221427373140490005028890441812552160121451278393624473582053971424172105350377255209000675451998019054079181484397819523360659592490933044033272433726031595134992618422042896234930537208065923792470417091567942695296390760121904859074530565110313204328758852051354742085440724949344573134100006904854722523603927349433202821341062965009111489385676499889321751833741214941806085426208747771594988691637040359922502680382973602193361420793819359805589170303050991799371636725339708236252008835728402905208521837912959411404090785403822193565012575020855514748820598923326846524608136734441096721053868925800712507443044886737165778152600792106235024848888029633037565056004794515348767669841917860443201832878216843709204372604086312213727679111358697478685730791709628761398248724477169084415481126296374557789331296812572649242125644965574117248340712541670799694027403767145721219065107269669703186619811921036966839396099966267128571791371279825902444522438570933456978385553178086590847266764761530246309777982413839450462586988808079477857614853395865374767570967233894461332330099730220278574212728466807343905062157160292229042480583722772785109151978006075348592721292742682027013950887861955081371879906778590277922680865775231129944698680649578746237453711976891119238425510716742910615382740970601003393570132531005656477194452380477842548694319278260151100468485920935081583167165278783977042450202664180985103422128611250731319785330901009868417262956960147145982991288924625875964147368095345952447461653770548467519049829271311854640979699964403328070624089471236334343332840271256343516832575579399280201943977712485775226320787396624209520010370539530455567902437690558286653152360097356757518650614894553917510548126352488598373256651835566501023133247805211767059247118829165932450588750180996991536240374235449487566964644724225763032078883475307251869670332272311517131550297429356055108893593425894546316208191431499966771410692460070418349465130050564370981499302515899571505557745883044489166359869688045751345312692975262225801785050782533901638704248473328490202234546967619014117774820242256780659317953040362121292553609310140160527894857491113150700082834396234801042046261872490430412847152358600561538362954666817038668196311530752870958929369494302778730640056982684999773086112953620590049087708254642242347734650850876439948800928445428023517013735292148340653994944082920757041720154189542768217184517384945396605950136703767930047182544198777394894628417701602148635465970499093485089130015715333424189549959253618472187445516655328221659022718746914555077610168418658341043335223595621789673619903626353398163223612093175732712290701397511642421630354770138515462851816198429654231583520001992023916527577479286049379753186654556080106300400769302999157817876413270863043138484979035860387762984461647050227816874117039919066978687300395733652964116109464530103415551630855375710501163818820872265552373231258536081268468659236237082354726417285789684464327468428664123330617725143633191240452451432992620448718503170634387755205310556654050443057847128047514035664325517923654458030151565175859155162380467033245362769218759355588843602373206849802476101477012881497326337598919889198700449899402870576031934910845917448766959427644707593661138534409837073257670570441674281921321194603103946626646577322802385494625393181536766709683481381187801793202210862784059729460229042961567920015796879563531348162763723542901421661773669074107789137563649367422646377272481833882100362091699178306310108385840127023546781899005560278250276344039151676265947810910514169999471057943225302449245002099870110526594698917398100731693182612865038532849544690448780724938074126938408269150350847830836855211294122650975246479083237687898966631248147027012242229447069732227857488468851413096140286891647692765921151234428480676586143851607282644387453715142426056520405210961170317361072794045221557552300609513961609145900810458776187081702725496328242905432233209567263310509693303571798356332263531026849499811165839254987968574859042390054008287386137299135167995647472147184325306456631092177261125243229781269560132576119129513460876283985692867443569490733922164831217139712060158203711288700267332300927226653893815088302975046126808365846724857874123352820412434942674098085190523196995336496397039899573520820605143174368159531385028678702107226874153132850449644852886305353145835455435515455924043008233294221009978354548090568671009274008782279765559194718696351331186680024983543481723432053213699737035740216333251832647188143409641549571262322614111012701063786711427496700366741072592243067169552792213335979054474969594546291278266512160179775244511942168641267903736398243880805251979593754976331235398578878463613992457870367549876627163757362742718306801431984679349155650990272557402026957974862792569342913333852606586528734549486742350216129184352069382762808717767010100894836015517907043858227681439843564041411841956530475661512822088720619246941263987789211382335759577048592600836971619873393611914385442782826154175448795720884765275975110408846228516455324551107181969126830300218582828422509887479966273979192033354977999763415876506754121632262564676190829403851387208321427247502916697019656200101547016964066761256241767977365891041924469784285335666704624672431838127364136487167448326575776085526803405876844243821283708875187375704398961190899938239236428514363403395954455300558842371423842688721936355924517344161202350080077257321223471845031685112536710716404304946630755102700586317302815835551460744128966576422795302066137506406282481815388302674774985895685338423315700464018361008993156519197012990113558589444946379136022347577443973952307962199712107232398577549765220470081383012521968346314210416267323421748327090263846580208145518396830597982203302567483111758903092900576049246738531708452454764456276922713430128084564477809852199016910471977019215385418695599435241832373128864525041883718227470541450595443307462694357099172437656683025098771749369198324940715011327833151902387494892275131123374546037032830472853318569558404283018526924235485797287172605813629329706270565892798215366181821377178247089052055754778399130356980665282694242636597942400021200872826719932177007169089778366392569001372931859777741910702713836155603873034556983822617264381457293261534936991895155079120068231577650556067318102189211304743305386212926570550727808138384484078804112312203133231994056282813953909402042959481937120996854195895025505037523300866796079105727298778443554442569120456836812208512217317523016557148238508616709856912069491630096171504824786731788905240587213467406932455679854965899457270440920754488661294346230268622157832934363519474926779685203208110141882024277870420347843481307261682065161268226067832981325461621220156857889489897801635653617954840238758512431890532271778439570056744502001653934629206475879326678280647197216644994874101383253127241414707663202371678856110443310114265980881231164823860114884094770575900346921519311357555999769042236259759271324007434957281981482915366736468267679416037658284676095996170890142769320061251171711743613956226634385901940229105555682039780932944663471304326906465423156100965802862490888656313084812135508283863959878074256077165204251510658762765803038184492745377228317203438430894048482432073396725033429834650907623996772296062217331199790455609790004144067267973972126785623947123651789591877430966943836631088817345608316226083019710231741736820170594183507550185595337495688012181125019395482693815075068726174052258800556526788443231835903062237996103939284468277983255739318043798733376839653560991751978189112898014713191046222728733440768635937690673232668251456237648243064315949146147468843241309148052494362913161776421933535649794814070820841044878950202499244906325904045918977797320274468615774057050645701878690344345338950047666592463552258160652310731920156158125311252097497424791755284345429599041545635208492609502593181467295153559478505617338065434269943610471237131239755086757873778630842129620596957080661413357657237686681387229479282229360340659707690495544840076631907846590621254614401943437804547171080158635483868504566367295339945645136121949092534544729711003592134660524993566151681397229479814591360442532917832066072792398241948523999492771757107396878252194576071642710278319205256972278298991112808877841356672567801265564163828408691862019077232495896333817207841490985478242846463225786465703334940991629433557420317183746876853578699632007854633948761739806329930697425212228409725160737603349841251406426564657110020532043467880801054566850862372891584282269107592624904829244645190899906608186689021151736614115063625286631885902290417903670027519913693349390467745759965455917653295981229970491274015632008729547097020420040832717800998801069000745937943644308091438248664209195113673015981405329628676960136517892151010203326833651177809682278637294831040860520277237187680716715339028221576174015219247015241412477403509679327415833534307025797863785441960198492649640820445159852475370552319999035158533629633411489100471987736524131090798319788194060126124496458346910681618650683395239174735507638233679634266094408423158313385073847990800326059015776015172730099838016951735713005835217686675917071795532662155106890904229355178303126486550801720140781196150748861426678422086297539553905693144723888120831672661853254706593520186752915851646914385216486232186596348327100159304946185952786331085845199729357325705750793046921184892465058327750733127683838550495007398082025525239184916072489417558415715044089084862639247868757878496357160482632867029875568686077694166316906459641880965049758376417114269862420865374147485465538898256538521502461726292362123436107461548949839940756169801646920107059203020635139721059599047618822233609257062665398372653520216219051953416659857764764726169031491563809854328880535104957672937472515248758013976370046718521656561126863511068860949372648362468313579329223911236615353100448372847651960137615178463223991415613822585664868080455121032699914675727695611951392470927760096327129898820155825084616451828101520997015492367925959456937420883417680987233884542030234996240599579452591237872290354346147595486553672747471271685192882283900376425086462268701598268338232667483439530229936010519868323449474998168405470318817366133314507737292276700902181650097938140386530164209300113839478718566523739370623162296206061128515247397727255679116262719156832403933610465032985002711290478163112821030776924481094348795414155685452278678620795312191345648617127485661843249946290111793267437239868800947987978943833561641056519940148645734795369472808863341914317568394327182064741156760844983913522651286395120346487861900242551656349082916914933601937510374628454971189521357354134233955225101095899158936722518420892442147805851412060865287170973521062514676798817475130629606448588444910234834814392164230672986004801371518072014857764430554682493691400077019000355138449121926171126926546382209022136540059133979697797199474678226929011188325060029946130083146636798481690416504339557779853044859591333259192654750349810204351831348222991461597398581981049295278615160577786129069345505747535937311154933568540630177158657989941741439743892364677162093015142210465365733547272422945115588457760734803217216378676336262085601943829842300945378388925433807137609380933627713399867447487496595860247220199250296619404911337191106154812551163904855149283431772470961790931833264882793376147576655384482373415012432625429013392982001698215957381614124419873928827701828003874796777203623304246698838861929153523502127496278601347427471445096304541719887694907098698886551271814412764074279296766101577312958612596187164506333727429220846974134410061553985790647484894567199816069553581073089536883156723037765896757467543617663345171234831354206568952452671073747552399787661059074039230994620045599788006667890972769395462074337137070481234491158986574297288837135188351180268622000795574155798544093427624614494571110231564142065958265282748934315724755419635499762540575649968742285905397399120164757825774991056301791407079728740470899562431537798574198518106844225131527978093153765283307191284094347850169152193516517330786708210835497888891216050350656827800452528404006185411864680573172936963745484142800613215961817021722479281058297143279187063872390665217314398332139245755276181499301421602006080677094196722175421770983091586834333633632233524344300674409116480605813321128843220818228765566801379167318189339203861886905718879265400978422285017249970695825475413326637229976420724043639872533296656607107247284060452280121145918792777087602850028474882255190028647595239643109442331746338197955653168448244002479903525544405450366126457883813338755922878994396787488357554891785571152954269561827686558665158420826303780039789203700175132953702605063781571672696424559204404152614433288547818317746031221762974221481823601799051783243019785130856795013409216884946762958271095947418962674426855448116195713348681022798085905843576654738234546096799646666067666583315764923652055052777486723650902028677090284642118353113600567937818642931925775155635941070320100932611619849127613213680711869766036554311519012636044950683624271144358030629459985689820235798478881854129794815046597330903141838941213349478421067949352602796759730284113022850232097496183965477676694869593344993891211955593337660718493337905619832046088936124491891967056850697499137906043484820638983467197422520981344587271615616578749808497798036669234358109467777780151832606647159987249047499895284997912041156101040987632417086745368295636674236203829452785125409223837058817643915921045024993415988611010405328603997296060028479515282347962353698721427625977052811468235184089122531517690962084833116888388963144524964177236871744895995524930608989004172260539907529346937584814430044182105504731775285755345564839690721928480061788620152025196442073492709770487400146382120884349153857090509076209884831834968558878693790120558863470073761235240399989949636306903486136363287247682269887270707420695582123258721677287082217035651854885389668778220417474029541747969190332462903213146248773986756253139952782664100515347972669672136162890359683810983573521789128847125601824565730739069774617652359198761048271937633841322820550034825962149181415970921643961700035441432175882990464523347146669206514661080539268229491438082968508180709354461297090294905239999889667458441671997188897945531488267202940123242942236585739480949032064467025130612600517692308307520065873141290156376315460547820258531979981787890947016902489815458008462102254043091442065375696711146509564801292116843444007215301070361097131810427667640668486548107044678922919182705792100989684665660464902534934297287410136409671454877077125306622379428382655551477614280959587274665364309782797427750159440128314512076439568800923690662596938757021167584754501381296081117805555292973577103495044384795307230582955039471149085458438777654580490607980679066348363474762579734487335020225896559253304405713980873817473793157995398991443015673982991914569150533608467169140949722460655389099256039606300307000826028162586200553888286930266860537185082123049025569983310576587028046636975637167452389663409448220002039466370396705929631113839283620772322626838887774893684891502204311446394556344372068723808037957852048220312712522182457280667052039332125465555613551833390061255585542782466856214418962153309212075549495169215849861259570244145563132183516903371640615436009841561712626753691606886691687080380880183216685428654282394028878281887814427443417299089509576011354293246882582589943389012885133520218332059106160671934520982090233172405786442681695501994206232341607805804279661285398451978037697826728886819148067274662567137892142913802898276244713760028806804883117668627144376840708075021410568980181256969461830931329235702214365201292753825243933864531067365080447783886959617715455085531514917904254002903822200438730875633828216323813815722896671978123097091523516515764805332754922166485206340474833238095033362797809723651023026773211136653782781324896984683432355753566597247877995832818020081840446229055415408793017181191932185642471944880357440260239501685041226522617898574987677339643895293848349240269359948365615575808201736731131554419296989237934361603022598127665780143591735378986741173325760775518749639017533680372190625335454415809699417494256177662723866486994769840145399877738179229329498119300388593119584379281669160064240838490652052175781705240687386853990547149722355017986688066474908433453226024193394395882127479294291942486207501849378534739170956597062287637204750725959486673150765041147088124157770318808532997479507539906068589674388627761488188447376383550178229763780001987637318590405199382641194198453084511049255014373165192687240452933559106164397581986083042470143856851810311958860524204520920845480799469257407013886675866048608654464981674829828847468954463885639203101269378283674192947658233220605520732129045947822599638963377347682388934878225453611362513414412401970288720767556707192985404963662366743341653740462348573199088589528093377371664233355320251006255183431616221325482511682513450598927786750521238579752198683854823517070156474664948929602828336205683924226382808595057562836385621170187204520780226103964599423619517407997960987656185379074616844427016562964784622046016804608300717946784062540813811783303159086457811386811372999229494567242164215319318888542390286978401790744447653207263775866777286072949409928132065729034289042838446973310477961990813914064863302491212947242337523249123172131029361798944928244239271422478066813540593524198732232488285363504379975492564562995956042519510408819893904489325843390631933670900265427237535317964370379590053043036591924216669550936419809758302467003988561394500877741361249621625467697686414736508549430305884857759580780367923843199447643701028411898739748863962635440937172497924826463104662946511862140697288647034712075017318401262173163594504939753270211781831148228307733598280578899040659909616568251689815555346483972834525050916621712334505826815647025330492781933234661788588601252548551013864590154594956080251669644367327135435970902845265457683252613395522097362983096661344881258525366263733046560897875357821640515367838585107332819831156061222523498883609578853068196079153931644364473299127226662246041240390904859563677198077667587540535019217128514744312736066760607928541723223191778828010967419424853192780605074039823045113821608447057454583752095626746027641538066172254668942245745993568485028616667240339851633158919779322597598652422457111213056717971941059250343711081655138127422919966688382092098549139141334385011242342694349359141898857345015457219004711161484197125484418842499450114651114023981871105585601753431908248405168670772425333871153227044092769042041321257516742068843311435897606021059040278083632848019760160229446467074971624132992897041080575499816026888470237070818220876367056978595138372983038282601173188052760692932194585525381338003705521643182305466554417340959817088561622716388369895490350676794323556356171020870208500419657684778658425845691886151269804797282510905844125967370117999825288806014104654584915015518117136388742008877472071913583457589995625314448328775658571575263173120920188341339112156819680684817950191418873418309132835441537563562162965159700539463597268462762214730613306933652102702617878378878735716430579273811725189223433753245204103058722021868978057729610853319024211307950271938899113410676520041390973005130210346297945917583370659183892929549330914454561992778006874891647054307669221681992772709258449000711364608130239252547345042712959170114002328524122409997877662645910861387661638871779996801830621682860578213958008254015335552714247408335012251582265600655598102914092298557731086091919170784346453863463373675206093728089838795126173045658136434036791684681521816622190561690696192934964306005806660411105835841078682600218535098432840927625591999262946248515933212173721823591911818614946559657471933978006625245788000846951039198499731170931789643593097646900320540028946165114732886534368163526197557984873593271675178957037766366103482986387217715206744726821625174540452994862279760200687245140137132248276836843855279755522978570725854407224516051178720321465012345494058453685668669145184869656277355944415229527577371416683693179592988306794687062752069921683839808705677766132747883924644015204544839187337559909453809707325059886099072880641986853641741251708552911576500229134862303739233143649487532214349224029654715630063714526982805484938899820118183934237925962220598223387751772133579918766396135999244195538593895072949037758690224721175998938894783780903838335731564144950112803299659718903841186894936132189654636176586088305663390524565508724342169457527800807944475799274865862415389576353533905631977833331767091377940719964755127770168213501728953860658310098163117199814758490331219548103875274436805745366551489246193113965882272724759807879548748671408195323061635517842282179765815098818773040258583943207513950480463495281976407176128330822561954849347904461671737299402740276946184444389357505401971279952172433505621107711999469819542227674166355135078237832821737662366297165970285070846824597594748762283354340507766156141363624596255494533848901899583881333774704613322078773785957876383049324217998818145461486248833429329122293257774891795339841292287007960008516694823699356705163865292146446592267117703664778394942136415080571789437738989581414439950491312974049750828535737593482556294369370939481003380632330020350133290254348162653140283395691230251584448491951079060581798950968979850823233726133794768241838090844652758804255071652706408295784939667982830886332319353480283533789422384480340526017899611051940868811711094250223659541063078728653334945894828003636891383671970974000836412993718139225493806386086583694075947958803482213059897025394491447565107343897280986363021490528281733624841518373148640156125210259707192571668701093178303338731769587987200367259225602329439868167966253879419655756662427441198141564989275686795808644970712412332149305202525574178255920498983809396335844104711407004918041243727413449597144724580451188109759614989786727512272785810865657582006956547397221842649170965586576279737050429674253660075573151538856468304797449534008427159925862587179947669827304925240557359908184264961043114011409879585884451657200324024737080159325788818881180864854788278279039853067400174545974948832350535442781843363796157282657565304670639832011332251009359960234679629115037374220022874745878791344515966852805813118861066904480547710835067386559791538245540267385138122007296607160828531226931550510806392000616415964669325380823101338132567991749730714886970504348273725411782254655949871125337811359829896310541175457132795519276993068767403286258097556212655582828942007326868487910270033216708106865940474069383502003847173578678992274063571797549409556771438610398226222113427067397171201686794248531747117239206602435255843517930556514650226478671350266368710853132823780316483823543077967739974203735904689690402352495009646562209159806354130404501885982373171731690387381224123808477116832537253064023750249082423303126182994058288424777708978765253322452122349441754142079522184920146695832618311679791323373201272385229224083099023718085422680458989705218021572355738764623360090280755886325501692475700317798024565081546364830825673778160807269123620566235797180229965180100044990037855426078551989503426347385304478458790518403783757665046481512530406514647182319314269656060605164752232033440129223389489417640976918058700554206701567118510860611848401490964230217344232999329735935718316440539296442367411824161928028908010507772765588023125292082907460923911049909828943397101695160200893619560784144073673473999823725376446409416573154366682801449502374086441753764793064806711846272016241439686835399163895625135835110960424101934442509428655798308254734146540681170487833876654642005442541908400422929672303038064072704105616919697432405823125928677278368251791236151584691368065808666527236887634141688788548800336561701118999771349198532420170747773870064679200741199334655159759823854728443412494994638677209681333662863800980516532759209094299019440042178696976524897375963626988743713187710419372520333816766460079834097827314995766732701501045771521992661905219513459809705108095848528112083380122755594526869076453740384779189776914422665687900861635882680743759860591317822432279767641788697501187124772234844304918428103283746048123055634608840833319598307485612235919530231110183605547620223417841048944010761120051249042493284711075861348800810299592905865032440095699238611097536542172986896491849099501811997471520131743556619944584413420092963736308188813743043085608875662671097626432822406295748849804259906809306961072716693062724073415593932118208218346714199928726015246276708218663008177110312271329099679878469605160501664749535734586632091259637249009552219580366776783971062393849570161159323885099292576725545564359803005568442481899661488799108764592381341097477060346004536747797955823538100430408683497060191313666304498462097707413794347930308263763009368708901219769151274638555809393486614512416312016531833799726009001795754730080325915498224278194675218119393042259329556548183632034682088500074381362424127747068940919564129509372004239815619260607549664759843945820795939032127322969441978698005051781099255737309894336364628877603336281603062940439969403240014749552538571189654886027832402880920920369504470219104484574697148304074822810050582749858894812193693529019004109216787068486422274696958624806526671888984170759067699856303400234389539924732606177895350953390541016863971368030879038602038849751604519374293622724816210644726034926339542828119870652511018140913410349761284353670286038379491736371341173989783285792667283511291008525503599875480780075626127429105060543243842562403997437725961125218902008197372866453682750603508566352128086352943201833855385904020316736120841538969210570244524697398130493381519759467010408342358883469357950024754429433599606986864880601178370175231833474249092972729639632758179502874783639680346231736026231925876011897217973706451838984588258226855038248970849069563703893888848322002999412780949459862242013642340644254811127186768476248005938750482326797573640326574553095117923076290918717871062081249651300386544105521208229787674790646455183801947895176060729355356133349147867124987839165146480608828219258182714413910475804542459900929296312707931731130857244084302704675879334683073097336001771434997421604794204897277433314722557838043252623822506752208720419397686323030765651507092574775433526184795675217421453661038173820325311600604987686014548042223583588404203823195298838806682285823631710004342911027298865239042364606093197705025591510641666897027720958251896492051210112547377007402456940406804493153080095831980037995216111277651135152325227927689752790069387243449355645405232282905982255886556375708056734245191438157892186408205724213608675693308738578742175597367612603142013755717640383917300791755590170359276270964771855069335178399891424451421251789510714012182557607554460054067400789989083594821678733233823177616396774522568489940609504593708825416803164427425565142837164350107095945786120754677100022237369345657279963257550078220146932892356315396335234711916671203610051007154654686459313425066917753557174830515987582957450178563069317333558152337609459797683994443086639992484267207005822606997206601276583953043093854571597330464343212213794733940323830825069851430725745206786303645777659267797182853261477618377477865529704110086088225761151603212832002629418582661855191880373649111351694467632069396706883603188327111210129676718812964052419455281168450368813926100305005677099020009958802351806391103864893047253810785857857545436095943567791963335741531245057673176768896197611023678313064737367546114271788228742095239001017009729921499116808276632071207899845659549433136790071720537254302943805963494249580994206063943286709773114849724858469319586924641206993068993080654952935436417526718011130966034440519025512575943875161133252240069818460667248275400838225032704211010395915112072670614143847294837168836650875538083379215829431920659092603304795337125395066926229784689739645851356864401162662212804530325462022448074277634691434448511423363970214441706054934769905160819300994049598422689594997575601247854574176595284958651324050776370063060129736910767115112009727737496525782746686775510265389399905157916723081255530484518249214106556098522630213681642563769575227077131488283711026859077275632064146259189105147944045028767243112445017674036735297977303115007775850916750392978505799617550694300745423725008554482029212814567827524060727839582202353855913363624861209478188709625002412800401549085530082006547768478930126077876452355140925975603424383540275007248566853379186218625711544742187087761972430775535018798987981816017076647441643340221921448848924365897119092388125948747711681146822454201169747224466177371138366591467652363023220041784819031688267626686248734102425054945982500102046735951700546321342894908508388541255716702588776859555204246593144485960917968134774177635439301009758495852878719658784742213182041427728088592336734513242894419131081862482984634328781410528036350385624753976487760800386417928707010704483469796128615508464256845285796496824038817103863626160468098978340890908654883941227848431766059944911416350994049830322077750439829762896943205796007530667039575560488201626860635158722753101132169568277900611491429176823348257393175482063852894639949656213673432047416672227648077566184968443483844598972633457989600976582072848773252446191208180088944356044937101573652132314447740327375805044579573321367609875876564236522438801834153574333314389611356231850945483896399779415389270553742921814749894039253411910233618871954438157214268001730183367466824907838677784979106138734452429357978804745656876990312745852952949694417912985389137830008791966102671654218494521824959758121953932345839935481164983070887186101887688848799829870641745197081875413305471754435797653293622745993814552822366920154843665055050936783267932441769381124539060571227164045219049523382089575163145879289490134869470843710795801407175669930896200246435400181299673048426406637297249331526893350506003433264936744826297476319164862617099174514437764616379420372700004495825771783321821756977681140234339276025648248490894061194689983408494271001812701144684197152006096559612316378540083178544063245374679326422665263085679948702326605679262470339097362915138756769616294819317562374765621999485103434915440605157528623149434213443268829240882694769833222818453027170248413290322511035984002379597867418100337050136532865928982503633453907529235128313223241432926216335046922707913312613289788806988262921042295941388083939476523753421724455542228314273939367101980460141099419725689031886640434692965499779547324325678614966864354918086366674818573295203238237922185586402888639059128158203690600105774793989499933975365928250268343898508851228314575850163208031213405139408172795002825074724907663596508495770317316303931382304270263486539186583950394980963482053287874816813594040913632235760196985135757602665486230554685668985398995744125707023761028841528049569728056300745663756070248991457427398648163003478789634145848089821061889669170871121340568667157177921309494531390167016074023109589457920233708856261966961629519613670728333184496679815320390660339557443848699479895950364998371903557335678705980687852649234345662794905708952992768657709945462130750383906931103410435068193151309443834263212902391873961326911591504648020457250280822189804886295439630011419009440154115153347236373522751517432736326256840216875035982949212086128817660390650285305663134283707520148467526727537141998833069112582682396856528823095509305666993670603699174146791873086512392421910437394448185772981864177524628739241096324602262384968450852481607653451500290586702689130784639140126105049840073356166640843105302542691411936478201054011278223783822863729795837530466436853192842062986395748302547400365800038287280050179736841865069107190988691671317052103586234333835463824649124011575710646125755906318652548124228896549572244634293538729937428432457110622773651567425359372555916922127406506252970387381622324570870976704101186598767607125778093310891004336626578298180188903902894104550663744281933640019551302868522939077208588994520736386813872040009470994317788756545054744042893719676334088153036669866873760983282141290923404667863573210925621766425728980730791200888491471014077826113991668970232069965074099083077869887041857557945088295275631146899771576589686167023768417433700365222775593456756622439540057912052145273508553146945480397626807200318878951135736106104399710235251824222520171800530646350170937204462530895625739219107544999751737477591997423805739523336249338086885740134108098498876345968455748667619843209948268010613824855785465820707701377952899779397837775789277749572422735280311243330375851965907887616663864953022528341144773198140086245736839438520736994964109119018972293488067129730724162359985987723317019507033950888948049535595544768362860513624860444479637427214633924561958608196301510982327934599603456066749410497365910258794514728088746398100095424118906566317702524280736011061498842740270851926216796334684752516743489937142078346303610444210501124060843262796268409532969316654641159213512998657126179874396470127574290621326525912842938948233213749925486635220200932597445603808775604732499259180099810377918382844570656325031205155487174132856411817327572174989057099886101328217162661170198783158901364742998974533376086096401340889213039180543560805976430180056454221248494861443617658730401971131487567396067752748443168417308858890535734786477734354529462167792872238901523371934349349373619654613794030393277244922556003001419136438377505866853987294103736680493315682763250837458801410132153093637686483501260907946839858787453567220842926857014558771823124069313107940655378185240586880924028440676821814994369416354622916319047255312617758278068742028816614637434406045615899440715035744781307439537598786483125623653405132240713707582383413572524942725575565118657734294022789639896682982102980257027708479249890275375191632512978142097511712612204971533962281543229455983828278525070133014395985457967756514697626631228757111781384659559969134808901256837268180299520654067233081509573434709027006831709633057568476476529917235895920980266273355075357550766869201323061986021150558930788761427344159507624276547251010243897553665004721810420510347621135474957766477110585050586929767520279650896285256858766119371706603446394940366324630493854300310324261479754928914591310530248282863971281459449988609695172790882751443339621864337419072459957510922535940126662117661189769861936593460199068836142947966617378712009352481824568071659850842173438752067773840908569824367603124428344180012253482990876303861314541995681004218777422705603902671056265448646655196832878329906253262433286639742902776380146520857494584518490816480153568702358401849977034217364219286452398856392070188277575101479491413667103691498459869066834923215159918416635278123578257405072746273349809334273733953173747130354942500688242214911865348530441528080133405766830824776519972130025902328886799648741991325004692563144287489292046800311243738462677336119500584423771688357209609981728035156954964364536184079016484063008479994662472073122609481415290662161279937848202841585726805183019864426298211272189646535675145330531771576716160749837034036984729656282262910487306231894042078741098195473614026214156121739894634763618768223403111941659583369332629190720385943332632350958748117864523866272011132251449347521358922260803753305567597287885187665979453762240695430383070286425969590064865031984268448907822686480992041379318926750733991957619397641224017161422279250764273585006427862094140484229774620839973917365993172136546529954517158345617369277542541459322101829093795519418019012876766718996984175113145396081417639159423221376094126659918523775104305851246222549797502704508111192490635049038649679254439499153557740105658468416101883387985117915810540130439375200363989157672995929095209497015841626268205521135016991903089054910691655954051541849665855071716809727004324410422472697537827672423379046329568171183951622856570290427794636710177963967693649964972847766408091815087280345818957849663800165171016313772811143700559785880354433692738109309642413105195970673105473143709202749464014726163389476082976853973100119682025795967231181336824233157125160353930526221478188243502690612406327544895251823683987006899227043931127156398223581211488757623006371919399937959570252978972101018839821172239528887621785702916814271720669183955761195405327842143491418109475638648853022738645727518201465044058247318668968809950056020497969412169924606801115545451732162541639367804125820713305066455675385580767725864297203430901829308424070189473545536384082766960882254228526588186163289093533461708085556835007272926398211712151552128131239023471805316871779073762794582221452008252713008105942003103589635980227631438130974507896867958042751506914135479368701975191531405184104903720579727404682662899230066943775972493092178920617494450771484984153140061461769955995729271367298728313714281256038403643419463842515811433431090745084046333683522253084978132428230942896244105245498874400615893006548072862825170719363830869247293183110155325859584869583185033855188216237527426277030668163516196637809524786420640315762280337440979368236258816477291505428039747615158069239105321127870020429633140008047847935963419459495587556960056907055924650870405303365465463147985119854377364024366005046364517752164654761335646601488932718883845103586602374930202947454045539012591319808414070096477965588344948168542032455126133076075412085518168341614985477004780203324188401474286147415419171704053754711702441708206081671770736747764703200004667704983919884322100302660383549205435300943277437217276604628751624758309488756906756961431626998099525656921662473376509193526924346869649703119393540826355406376707783988934301758217813061796793236172053837630823342768834948178337414884247643137236751756795507931236443341556990450360497353141985732030287342958248782392350546761685037020177384245075598730402889966692185289647528067531364302801274101025363797002955130224177445271748875289017775681489935204949900438875859174099030748315840539467560955088680074270683285707054922237160778034618897079420844882320164042109527588362202848823551957464240811746788394062449086145566338641028337863859815482487052934581509059568564847036124601317764763984585099338799321508474173897896759875835520465804028428772234504888584887186117484674323878610759037949518812504177257816279456554389099572955423516355903250205518476346506509327748944058987088453324422225478060940260086144123179772023737061329549058004929708586705359618161547838212480560033550537546692187337573535870661788865136251924290324593710544783872764266626806110938883235260419304218551440072588582051938705938918874902884337701191271555174492916577319506026307152940223119256034174590606699532710138051875323955846122843732197407122094957484784843843089192921722294219847705509794602353082221309888629635423462626465019504266052425565691455884296253093490908514488171139424168533548066128144917644967222664178899190872582467542223137056092513256335732636990002710942477375626716529706422675196506011888615355514841597124610408728011214278640198271497201697475304593468820323680900460010148266434699837908063809543045078922737246182185010688570007893373597550158694108075066756984283996295537604668672264895548041922179410434494166013225190146645383099661380090169268448235288329850901978506780024419596342357509139142006138055815441133524600025432096385451265937399394482916703022805922702432152250957524521811806098922909107891431240742753360018991118063275025431980766398935101756330500869700773981098136414384318338597634651976920115806073079910324423940904781405249080527809756586274622625333882309782124521416602440621516097411132908028439266433778520189710261024397290622623142872420242610505784304146410654090141557805274869569975463426119085980500917978377205683408607908570789885804714918712906592746805336880306858952618910497199005110251184344679084598053435680098807086431742055825390467376730896004063705111925712798373559104244929279488865153391796831187837613289561713714682473191881225538484494793433799544954970557990851221221129173381834694933546463853755611174457276858379473579051995853407438933992458092287959401531389005526351433640771578405881156597378527828086602910978163197329159350989963293543986827757339603951132303534205752984762150888951349575682875281428391306696874975656709364659626882184792221525543303041428653094045747122594411363177627280271639358955092159095925976658170974006095782799588910570260811200454927299036246052267288843269061226968812312469838307852739460968447823906590775096496612446039370303802392427488652789606574550778087285594569137116129554638175217201379980273011261664594891833613022717372473570523567001311365508664971082486823852216139255221417444920066978250218419686534836616436435926408383241224738709146928960097001510774467006016897244631769108850009874341546572424365431197603619954028434878155842429698145424392076559410725748804049148616774134941290865730867704375826321766594378094433071022591074445921336881980186802969623986119735823341927278646410554964713203170211392517568153616755103017466232209267366141926266417615561056875100555323487337595938232874843923709247299599451805078568055350031328136282479217188220193576562334818450818294132464201251647668679473560450696094079884241660766566772148106926633050197371518953662205041643540757004213974344353904484589576949408289657273524987165359775689886928898101597940707698161585969989379272750404815441066687866586101254361683034598673728045178525744581126480307206017765776077662058347676152319862395730978236379842090175278164223844362200910410935416025784395993676421584796852056164576518442221866945544022937175748269584398301166168161065022576046479951278058320055268488484801989520288912590910423872981838205138896233932329193732416244363507601382726057822359304081842710486357005870955821628647251238952359981548134754652525906087508277273558888679489979847300521882352213801116390876221150109463473871845433667766853662471713078902150521331109592554198347278620277432829161496982546927213072160849472278914761927434066947073912869602196395374844828692252297091795095622649800654966690941634885545724411610743395794393553045447803944720663792326918809551609003602736685831281463770162268098752280592558597302876510750015717772767537354771341086502842283562700348737501893022321309661548194439501223452286469171366975347703369534801476509044511483917169206092118637517231202582637794572953990514124704866345050604093271592516427544895954278540756453168729813394447415304218133823875416909204083961965820512449704824271167461055338497210747313711277282759989492379993209227688734163647237925500967519898127740340082445388846869832286587380975183157392675584615453929659327069755612143962662708470086453759845221224927978704019380836190833376253354515919670184310661596252817235940380186749427666530299781130308433624319273267801085996717023992857190343490471787770789907297671406425426404728577720567959507374934173054277390721333388895247984110453316144603786168656114104766411782320231081952972371123772484642742718286191321951892709034225183409991042696249866398670079104134144982925165939279787803853156863239858686505046508172143597476731110869332251587903047938734210198235815343540123490455847092325215837337753125692703613875486960752015830414142022907440600034560127487125987923168003988076447071509060521362383874806894671569224796012580386967990500720868058150921604441511884872541767029827147994087809061432414247329522403590007463398037956804339247756469836169777460303656608878612658733319213831457441519367533835293128931019393380732256522090145924198685404245926415303004344942052329165241169577767607927094764200909557140649759927797184093716294985021114224967412473090541433976714165439186892576490711930325436787548374056802442707466192188162990061848284901543441966903966693334825445857948904408498012555372083646052092275210334908191530067197859215786746810045401084274775917175761129716995892462431406574391900615413145637293241714793515938149151952628016420262705956556812866020151352565592617144218037549576906487229882369809686611837297619224945524864167523335591216869415319633883058840990661893543093030971157872579837045759430505259138421629056685564165172500335912593449002622420083745001789980749891972301052521712625547252160356348793520649599832027350187481044840649674848831215179910467975832585373776888000371985633637227320397936002257141132700377903106694440921345020598436745103388960720971411895824606162688662528217855259552283621808693523970496447998155930699498866142589516155566758704077880106230179877163168510029723674190162133859866709634916291874688605254469213341705234142220234104818859821332222119558439293543103770155546819523787696359770791922096173564691415820297754589349321711059032306084419461171282366036811892354369485025082852191479250565681004920070689731938691465558599935143321958253282899881452297349402024575399601797914143596728099622967553496741116998441902385960829261749039592878116288886912119826132497947559013932062416143032815858159663233924100243733372044717289157850731265568931645432833271225437721904647902616069079867911383313243741874920143640934141567507931206506463664244326717729602358453094711348664770663908651903544121940741648521492387817199106449643612376361282120730409384191308371238181856634861652969469305266751699062362144110829799980450074162805426416917585858966041484805454521115355702431539649773927554713739170155017228709308774018720810426314148648797793403845506147832513927015958036324065420802804938788586814616319287972624402566086658759579921461791186035188137049055778441828791707202981167102637880644754902495921158941163183716606195339737147000725209078675918834745326320554972622153750934179009703119610422828111961470707119275162509355419027525244484739695001577940593114109580548428862664589157279915775927281583069418457091431866979594513420705203015049667207145450764026807066245676478295817531162221125766181224771548245857788919316794572603039893765931327656940343892515523504096437670829631771815410688873972464280905482389804159129362987647774723493171338753197962057613979315111769886750003298226293486442493142305667515552357278082317693811975500788761074499965744328831427438135336806718054776507736343482096873582381092949095721913195349238812655874468508788387074534344054392289366352071037916647584121669923562165038555143210803221292266088043936627855577081461805662885347364583271431832483689947227468448969459106446843374559534874377888601529240575023072029039372557626877703310635658589865476408214857070062712056340285793096754994359740751014222985060184771221493466990327700882698581165211706379863610420116517777682956392997948053808376930764014628694555580929673361059059673473901511234680504666289568043940986487817294561705872200859691417334433690704822510096464602644738912020287188738981299039921718432580159631979280295457091847301284784404230202038663770396654723966129097751512076196910500930538502120899210710057830527665974878170210519527882477769259869775209118380022114122245859742614921374188082172950797829961144127367075710265539505378065958272816500118335315454723604981463903858548213013407127791021971986597489314625697979922349497606620605718017794651030672514727977518069820371194536317364745496439334048546028008205642759402474144781891540764255200105300603718821839625877807732241696253430342832786346959878340996947358412969088062759660457588767131154640369629612287483153017186031580174489338626094386955857652397104229263994638938732798091850451433016128928597348613947805503139716019442857838830812764427533076880809576473010448368870570772417439192244104593036459426446650967434221483706721962851206547130284542852508451310086559663222165378607551685767331618381018637722954483736828484001386315078884105392963658866150170825374400799450990727125529140648019490821089033140867370674857595158808677351893281702105212847474291448379900982495265053166726191272634549715187825244905102924319904715395599083084087008238417689555577693329623386704852918737820369918618971279054629289552456786437809000828697147340760488830625787543825700687420109627074733775165012004130887804220309183878763785630391450440525566831839695637044042627866660773580585878596098352843879473897120829024913115460677126933348096143888635798174298437638591241666222852217324082990463243253199559447362959057111101375039312592543242157034516992421746992457055147966706441194903593334810005948506766645006861504422476195730141748224850466460893891946806421274463288179962552942996702317698164995768589059720367721819933777943696645507830690211517380424652932642769287445268688588739653448474039755133964332536483715145762925988093930237965193615333339592304648784986831184008922512474233251368731113410995917916660614244702857561586792060477984096500556173507832060022281353642686288473859744665216705488432933404687361397746700271688051766261138263537096337407902387554138688761420898781910079516527487467895687538639296568492053615148913574398463069486800667499886557010029186526978123859367653286752488639337026016149003373325525974501583458000169287588459264186854344442423469734863600882777835237497842690340650922728666320670327617594698154654039505352184434135675837744685239800585880535540061321381954699199574855636864206961863326249233705947182354932855529657329463002670417657202294067787478091380689757034268340115923328618092005322509274550990204984455347309715980872828580553400074868762786145058222237394280193522386735744371969592212579639431176673966203409248002248851794551819075154859613938566761518013062706465611333446545371256816349175685212384287792574731782713615897682112361723512772989009620007494586452857762177016183220142389968346533924413404000982956579685567448133793397140419154682542289770550466803748795816723153410307019811461520922004100807972934253120568702328359362984872631557446265304784753748849573594579196308105204296960847932728817235927441637426321967072222008152254360123774452498744749521908644838629969268795520718845786453615344775935052073234482238409152618238521943283741575236482790369174017068035078445913606296551259113945593160253492885201911934154130906085836738813260603985457179782166740924625591942242327056537058075938982779258479793939588190319027273097004198131511102278886395386451776973853595356686904698911969106954501861575609837774398149025986795695900976775217766889860807691939444478427319416994083675992590219437045150449470129170869464149283065960886569315522726615643335316714189600935674800982156838696344755415330394642192506290255535265121457989350524638216800634338916697972786889307797335931705868986800183112981771037982679389157768856366561747153937438812044733507755784986824725274631741034413458430300048311271905110326567950634926738479545838195273970918127166210962908690249322409873825494759879531434648326018677833456721390133686362356416232077888442916520223401136849634950822824194359623397366209724584293825711756981278687739434445732796236952056769420969910609580022442112459257303611651188857106649720051617777662831141137970949237591246589753921534266065401786698986565403979652350787105711193227821092585722644330940187677511078286708632253914885005418117933637824843091755277394082970700834769444849132731011021384846004072429851616126390950716296953283150398857839646472775537270405794329950531884246365917792165929851803724908349453194126293022165638743161884605228781495338469383669575561207598961107394257508331211821370220128338885319569118820832938641043915910530726045137975045049464842448892464846995346674990127527637556490621318552679694762591437462568000361346203592483841870474700047116624435779716730682646834748232769592355479504692532578851431991998805891203303893168236773216886362183280933372324996316241730115907708154958786516336312634816930072649283457314980180332211999115070517412890800744519183532708521734560293539686005642902015176738756822015522673154724529838614197173217873194601179545251587526728291080260560803885982898292898655875714212631667316057439020885376339194599970974297183002784612132690076489273484689649034384515095001434409390200166227068695883642518104798120515299376903330158689070411374462854385891817598319938018469899166720851581603694242165852768988982406861965500561350589733728951244836959573445349573300658867589745827581340915642788079724220999424068510864904256818206109850629418619648386458664569457051318918493360552710987914822946255219136977811305060845188539440353367565459124149427363776579082423243914012686687623669232561001043046903538063054155258768582717775968041546651321906023767925352601952699590989848796379965587303941937325232183564101570863636425112344903319960607744265189768451868537795655934922746290060190923113332547335113105056454364896820035950251013908712443231975575678041844975115708324740313559262998995839018529517026465815780935748016307214098253072620288052974488167214407613131835360023955127829012160485362868505479594167636868698785176473778061213408581673477812951907345556481422669726509458755453056020828440826772730148299649438315083711442261133989874615287570026098592116609597520205537214770515611367525326511940904959224827848347077790270573051308439221739756333691967069695818312381621026477153255519474527699543730321399329344475683425378300071922099125146858196441600893623741197193331105376999798914992120707262062351572325724949457609549862276643416726590498159650654861775997000493620055165590160941046894068731444028612280380341166236330520610823719385688701631380324381224751381649602180213451181011693521133058930697591243443474410540992166075021053582244420993538377856534870890389771622754616936074339110346477965508284544984244972721340183233634194230863882018515539645296754971823880926482735285889368025097483639279147032096660187339653101175212356884085319374829830581165264901881330465782119941805726806316687944526508224020198450634373156064925348300132229325898339568023988384000244518907261825053409689171804988541026027219035772899622549139226976039248194573215088913392635600367562679538892069739510613744943399713140519487104685555814105139404603411251898176183071783413035393547964693516116726604803356484155104799487806108536149403883494377648955008915654501754744551087813316554479520913661040198591963203002041217580141409697472511446550744927040368848974874681344984351563046484236000112444751172982951986328389108766119850467595851472782140732666958244013262089581645333223171979034437306996719516758722912942562100681467314282507838691053937720455371232940671501951165813553172282705581859079476522082261065091865052353734884327385650497044795670228997796281243297004403396267361245066147966336265574849476333776193156399303623904257445849516596978236764587167431722448362997208117835086750000179419759197518870029505242236349846734089178090701493176933584894122449817482607513456567409215848598683495343551296641443539411325029128434190581063914851719444289591891265312589999096519072942180144277082276302810323584461940309155700792551324642591384094100078404368693983430446878438781686679789795104790837910770284057763737070256623990165707555659431124165508759730981635975735235015818733023606981933601344680125122095237454665592647184402091435771615724134092875633886984285391091662395027403952261107914414701638833879342790009473091405308581185613559825030512164856936565469931077263731523068440844525118577754316407756647694290099394634548308484101451913221751878184859822939366752713286622987240422693479680134910576827910883480055520291404218469147141289354489483609205753527473578129653557035426686444402414776861080824536778580840658046758785915372500761250402863962421926950374703740572425792908784751405656991312178611356669858705485767517903438022645356465052883829515245619754514469380702798824041591973308417775252879044590138903467942356544809401308310237847044878733431037275504786685098989179085073900732480322345174532845471481737872817431080913632343313238858304598939414900398942689616386676093766541689434804005080532317228245623491444716266054024767188627387378650149335204720311391017091280567428939116707469527958212650303464706390689496388629463314518569394802962011159703699274463691562141353316984279537616855749053841218844175093945775369740110022428086036273944317803310163577282878648617782296179752847154474356847349706458654641604129983667139838665222410677063332226307817728272912653701544434154830783730655847949605412535495123814188025430394327338380789255524968078440200881049665883476991232495781920966096961039271252270607319007365272576065466962993113562968280419338044913173006514297272767026673641677759637335863199720880485481407219113651266414759637164221666507711485750506000238886963841310338630476540145444872864854059499636134132006868340346274257920377537189554708441497790275600880684166223884415144747635836912888960538584992095743555618716436161111525760362958988253020403954898284685631413818483896878000230651282059576673443753308906638613393260210135482669540381733424219099627046327105952963350268285492941244653905043367090791729261356870642475127346243051349866764415120801841507630413966070504773201831851896797491608221944413706193088385023189332029704859989676835318719628502675872634204951441450613007277073828661813119633800221734109968625293539540409782779080517860468329472574380219378825053946688688769224343584691043115427848003444849307760809836165355842048602231646293306269506901289960161726592237532594927507415891826414779355921194627287271940384144178099221365926069936226155532218383714302229681398197644818156684717867760268688030666564110513685562310775806212184747236152902767983110214542174235469796040181072944892915749175949624798744098889088053239433299861753622153101515681612976013871526295128482441902980297289576592399719189787386949598912156708697773060323512449354823964190312635977329107603891562241413557858888492973648582999715692532127559582531197411975795657776072828803350568747097008418365790237106291243831383301871340405333956363125471026067149644170297569451427319798186833049432325742477656994083781899482128876951627795838487706845047905684586415508000158830839088263002070290889511162873813760076146809730154822298282408772252427460522066724506225539526765081783661906484608301457264894408018436738695972496656024743104219935745022752432419718120521048361214680976512250507301224986256150556640923725094924739538595304656287086135175232005602989542103819979443065715901609071078787662803108614909957776440732690777691894409014569857796421168770426389712733709671509792653003932342383489506881674227510417233897251183177038861129380197406696670473652355189385604381249415933826317743585561614665641780440449731071090705925735786531029670771252652763559773724296007441495286496385079856936413315731262907764537516985659011839767963792175806044454890049432229193224843705722207825722304276200912903157304411490282110588125491908120725162673984661230539669931350089926733437259989034971908107209496207085797303654213244753399843553838006855370988958112534428267715559805061616895203941030182076184294645629595780009199038171543007840187094412946893551648150313938862356259226947870516417785163000745260818683985093653460938626985844784437183061743478547579181359539429803977036914431037767712349575698063225364986696387859871289035384485503225066440564633453384442899593491136597811515547419334463713051992206815028232088372748870026212302175832696614577998263614711472796218354592783540191650496797178277507689555465033410175967245609389306019411397439311614275666207525009966335334891529627345386177141865879661490629692351456292022744536224735743349709122602367288174620924895142597875193070085327188137265026641126211296128133865207074295330108405197563944162458151785637798375502905470752673267397810474110826206497712675522195792876942271199546752474956286295310352499462141017969387940792284297182065690108447473799048423792556728296773002413174958812579614270336980715742084031622719910392396205686127587626478342925393068403921153550420605667739729686764993051853190155093641661977781192634847207728001747751333551552327597461685812462684133053480737685540664622926034182921053699151782451767338788599049050852885531198909605821834482653647667982919452132007111577126225084346716237377574557065205454726580756110227360405805467400361355326446998391944607246164297580396795515235546645763812593593240120739887519576855324901490166730554038337321006134949420419217634586462433407879058307643498294447736769465598742334966748872539829031754515310667325460186594985467091503024422569083285339242700768394685852120427233973305847954452931229178452069706425045629895242444248948402495629877785009765426818478510823172326344796783663187965356634828042435028064357076107300088281265699278904584918811011691653968288579074914906425516421043540049171545601603831355364990566573642681876293369674573364689358302532157669877421121309564976725001596630201377089172691862258083777946511446906683786603009070727144201167940700689299807044883302307063706936355648325768013155036381771118592319429737295787153516187352488130326998371720474946226288693584830533619690308609132488958231506023946073307234445525788527055882889476998640217398902494961017061865895168132423764611852684419912667899718888372341309460012479158538475287211855768295389978852992220862943198844437187712533918332798327942897120113113038440361788681906144217080294085821878435767314835771696033220100042674641735955712313930638532800151455331452946493951056437182964432871201694530285225714664930739160919818003305180893654642375250103731027960978324789489338215217706222258511457374839918714475030210034538879992765026481143290465998431784332033547837490519671683197052537919052969844874551029129521622929789806357183966225196007624177478118192870205589025969524552673051864019215475514046775415801907685135216264649620710203960816258530587056665055603309351851499976945731838746322234808062117390936939404253953910877165005766166746747869062314283805231642080706233194312425620766000790803224052659268785006546789672786172712496835930005608438875544297948174144874709998091563903999856507216344379799451645306475361153736144680811550729460341081952334942841626490562825327203669733834950369154310732173544683871882768126580269681361123450945360221067159065560410272112710354188059466764734260822753731136575573723959636952173724100635481118665666157661320518022103242654227276569976103505559992989000977997513636809439650359451521234686331404486037387678298359950244411901155471030242588515160486411282467132618100524244129120464385333638283919332764413228975419178471401597679999995021921257082396383835319069021169423395726923736790731516321931041791724446135784330603323244676048193572226769137778693682354015054628149002890516384989250445096961803655562601723172113928508821731459106520001663399769206958067381217827241488527549064969095382303347778622663231886946373805245066011604140362857216294314330387472704044093019023478337418165704746442179960341140223865121916152980886020558114947169169878917650307262716471608713898840525915621404364898240683814054952138407152824994354595275470844473818318035258539430973516139684261550288460305198120143765188720421359116088047306891440003317417265035178135333926971706376017359743158361887969871194582868528698920211085028514161237352644049519688185876141519924014302969920315987653434181544160644858809541537482888781250742081570973795348317892850669518759820971584808023970676763416115714015641133067231469223966958878023824087195998494125339002110061106640197943017929992610234818771961677865089035102953998798566641504609093792895195550259672966233837024146631060451515451825307334421354495194030398008469888773396996016363376574727145624787535357309933295114357973309568145658426596650498920499391187033483484184270865723642984042714879899365182880004015733594534029567836065220040791361629151532063961170039990208790448154486176499250457716830752486167104895652276400766764278630559359934189030740142817434601001844068612767287901335818712835248579474157189376660643700163230140592192069287297165823023620444771399852928799926875542742025440397766162245720450232109365668071883970811616627756034244579345977435520056998342176942722545669463773121442170359146371212324947219272914976646591434494463916632350608464046695068399098667910120625177430452805528967987849363372322776520443940851054903879035672480594613587057246340405545496093926129295915807021137895928497495834864758865140205610502473654369758309325377014825618357355787365011261652617562804376996425874334220081947136608045426447686874926937391766634344460101568238293797336960222832511900059914908896987957870866750137285430009595815902325620163039649702647203617284358020893854346668728903230939993468751952833720034947588272335489789884760748977697458567604599130955777328426673408997182778273744899582981055538825593384636682102925849969531361952354512918008924166366228469195418997352284328354490847018655427887812222384789641969342656108585586148724563075293162021224577156302148913595228627103335667018409930474474792161774820470445787546590618709445505962157069252409547201147454707362906146957262086962549542097991733741063465882341239673260890488101954012450891849930578976301958781761884527823633283176558225197452368927076114157105688480530134121153816404688061648360471201734323098134041052626222470718821627963114846755798828081809396318077004546072356112465390406178106939407777508789178393343486954241743936632777089443319098600589768604450146889464077052267272851131802773180907473253947381180246052401249566264458313964255359452617620428772295059888605225128965022403305967853445507615332128802492289968876490587748477392264562061531430168481727781774059864049264071622001573653033447884568011871184969133979374851296217383758181373740101179402033944220393780201406032562870395868566134259638798332699231434453123721514835087313191729502278176399917503058725368995627321501668969363865739291468267829185378646440873184272836791336278537878233836390306773381665778498855855160581796311533606172578484766005708168024928597233887035994600464431494694138989548649454555633754033846447645896578409995491873953090705713554647496889853722938637008943131001264993492618178228407826511015391636773489130249698901765151970800674414480082991540405850145319155284192200460294074982008363903876550321744956424363883059082811272822423838091128494204328695822190086525940714605678526968559537200695214726814589157382011440360382904154245837812012273485353740690127371318420261597061816365344735748767639324135702183551913276188040967792810338769185308788700676692822288537716478753841566509573982742276438171886454193749478109193417503225890306346901565493820980387260190892432110628768037334101939399788690601717185212162038414757121944402102683108102236892447909512914391997125235517984223076475853392284577808424637630830842681005802396730163136443913052528104792807055825553551321999844852391057342940498898965893078971782231406321091406655631147371887949803223493753592181978492531337914003902383774688420520231925666490833364365915325596419298593674823155657614985111885303241026001058556994348276697818724235749195212808134872835906156180739453241750846547498340950514111028722654045607117212021804945575870796406498619170482883861476474331304502316236340498437748640055709339865111486469768189519384981785247311296691803694344151010753787069963647246645049529799729609230066127626151853474956233205970137199771097221590217492904666149870966825469568147719574426520659381365655566064799687204835417413825891390966290601200048273978686475027170918007351207552707326260504788295205585803348186802032244848050613040376210978432491257176954460386105522605903181339419882039071997106091338425549257777403717055324627577424137485405040486551804189764755245138438160286624332152823424832733664644852057405814709094149907149750386079828946364869148138701581645470748059269527289046082034569725874233134746234647518130661953571226619118401524534163368782739051816401679296453685016967496690055885241398997217944234544572723853130029763198246518913428117670418424426191850980833661687583606744257069535895658279661520412223430730822803568951422569011998838072000859446167309152049517139879205002172077736969660625055230569132879291819606734820082065969460963234653789290741360369522082672204275858515572419235261676171576997350443049013021856939315419607591137738350239487642777269756520605826566691652523729995910862271569106796999847902142236438047919964548437834495894711903438670591900523370073924969938499308833397081746205508668140133744119011048045704140803849450064194975399705022830716510492186025486654932327280731704592712208278879978440689360676134572768621797396328582493133953373243708851116642307731064225799108172565419552523179061021587404582500132869614024024343111763759256305858188477378541916653171803782217578866586077225794995711649600352590342494387262089440453957540405223734750090908382994967865044715869635474876208958246083436682472907263549530727552520999536547867538270905858719629608234651104442907131016982101452066915056150166418021756830574579084552448392259140057248135866878774330292462869042999527158946558446395078171669777688819354116123488729450419334687225302051305363759788258566781880869246834784867297825502838374346364613074182218808965332625128968044355764164631158837210263300891905943201770316214321573444052396012626368654953201386030401252462201335660874797843441527670498518180160099355058532780106659815906641740360923530642464830218996544651944748891992472797029656294371371276718893106138605953835738292974595580338620462042896227028847685471241331670630182736515538750423342115806094152741380821055034188593629132105418570105062289483753101043652963588211269635465950691520510177038114323464922869247888668611540650901428180316568951829985621305623875653931583271631170653419528883231172830611887813709737874721061619602341233288893541112781456075291534629938026864555301091113925689885070191695132640306299964190067135177211586842583007167950776829243365625660887400656317790958174486860910323983523627159227094147421971029488553259054841039558212924364820731742126108035654096028187199952712854681069347568859457688220501775976431887031776966488657892510765321706556420366485425110324242341312359241850978700786737209228380283293993562320822605182133086719354406163521531240231801035701785362459068973204837473655330989786840513998672034459607015284865569941550759423272360866753825365124147353303919778411061013881333548417787381951051629238725207928128547491577985825564119442927630516482005923221261705811879205407781818131658739519546643122968223904103170801604026439835925483952111099840013869063303910995411193486882163662081066925048527252802157238165828342838555686813068983616596892859491006074832872934967669240183990425078259847487801725461027694565500013404843744107813276655311413828252586130413067272317592579891742635982985416746851371819265214105179690658524206806321060785631333306058714551244490581349588046827250276001961953112462989410209539138522887387695414138276864440826886370132857619532623807717380832263898141752378783078005301303985964978154503284609894479494014903332608425009095208381471626969723643767638805180280278163855537187085887227441278556113985486288158798659676315515369394150075082423465761342954993955012656573597132179253005324017877827709458516934425812702077993809383144100173035715512119325199045694572658298900903984825759503709718657080241179000793688614912092985771074282666507596061288277232682194390849933522047338429967162945793928568607075680704056603949639107999650278193981654579123798945453127479605737351505160818890309449822895706884999630343146801461752666476045104877094493353951382370588822499407547371467512958638165592853515793671564202213028239319331023837196730570287540169907758276610239417122635243227794254990891219628652495131775921300331307696757966246191307641532628866700476615366489813507587491398838394944098862476944681252764859721220311832152557064263798172123375604595736831898130937963806974894105263354305389872635507603741715609334644266814456647172223242799232489727280777516416949801715059895851045741035456867208346811912615357774276364473807794259009674176014591997303574899053194107436635448789460190384589312158848162647023534337235231076771869247091267465721870339533687077223301948511667624419855608745860177219617725034681017653377189693499044976046397281590718195371501888586390940503088770220246321399369666195443935131728158407801501161630692968707619131820350351561735853509688414900497716032625908313918047384740035187053117417469076075177300595637186379335971346370157986970976646523090029183015745260615210822047490778198498178503934433425586440379834343807996443508545558194334934646270725411098658567816661837623037639042080584158367849487842195184366333219028764375436634823726263655179709012737259636197544779378626656688011195083009559571301409510706593488595789319804162640068526129997189374135813629542018054581213931758846545203318639694298820934119166871636855264925764396817771143881019019336456354944824114343297035988840740790840823560469967873289549053130055957749507392067897586111318360042772982025433470515967985545865968790916474419882554443144301760652610105590612951537499859006505844559119739990945976667281205742789054368878383210485668676402124266648539814112081828416043461105728556483200140088255567023325842353518893955166632336684425722820557793528614169263476051308524815510936515828394820825951500668434976721230008064375383664386094337899495860137380959422850279158177683932212684215013996360157601870330230931018408674579096347097411951975036829923173330440386019139147183404938070474210702385311051738984592366342458281763682576340380115666839025657682622746212196400757208314340629570227524290965263469252404800688741793700371366879408859040321485609092082121974630691588035781929827357663429396781458371878306528857230381723685358568450333618450345650927368567597814535753644793484487390585212783593528819547945386586499603635753015071033311847320267257875023928420743075756248510906066818906946920238374975900327458888308885664562569527535752879490227587989676894839825440004808714505196203412206049416927157283466331456274164337760858743874734634426135776381755963772845156760313872297765703022999801175914266818194348001031025440792929372906249470520684037223952605504239626545015156225292507376624321305085426717310067786514663879099183659803576397520649990188106383152866141885124976079581095769004243660720260515904445827077046560125734927233004587399705100206357470762263114974552702856106742608044647094963535009809684482901989228504082260760686894282397301306577455293913184858825694432116102955778842315654729589957477309074291696209897896029779101942566960265999604022897008751071854775759600890125175672113803509038531814042920556067150050308861957097220833462153444197501710258156048121131437352735187878936188209699780592490249854743750251835903296077097010231265093673323342871787221434749580870972391023815671501725241304734272621061870495857247247134124333876055897781828989748923565675602190072634176304075169651138444327304555591174494327604396647374919961857291427125740118920433534895188640624744536219006096181383094276789384111055613868024978035135605847855901551536954790491966746789271883674615077780615818615036884778837777871731991188607250672655783112339692625347937670161640556807927217652666256879056704645107608841920854362164080478936724776117233926070054884118264357445211385459555872018259046344945798760525545280549580066546734391081641476985243990495949991104093356514030549364551351201049770984526657902097128092441436469059832214129936502177559913575968113504043557243935441094444914145329775784017191663959676717688682024692666058608969699301798804270164423257271563632388723527178307716454614487579836392811465669076636954129023588423338681136115062954562616477570540511226723943697516030161574253549067439708179049887918585578620595579406545098394950725224912747040334013418782530530251696540341648996503555176801973356838942167755305993224386533566887002128975377979104996563823669483595487023311095675366972621788522030261266361801524040566185729967414000703746866752215387555414632011388851999388382653177190439274051538825918965426637614721129954758989352712327504303542528323909036265297436920138352087127131534062580548564706679540943188877175594663557837379968152262496203248849136704209390112395558988058066927294225517291878673291071622965048805651388377524706771149049850177238929394343722113060812597498797718404606235103584623119314920917229599719795860461582521799538211053404901052531235392995843884729968419571443451923021055378688147189987295486479263951415574700888114373118946574111653714625667431558121439485655810894713165918571721591639385107366530103263244716338960123913584778273446077251897197397411628940742807101068560868088819176779835161369622257579551497697809762672749981677386830826447117965575387382392830357040347602364833180463446026814056852229145349222531536223897737259989264561466880905491489123963580178089877323055559407190472707274324726680089737345888867068738565333997415637542047126571397964050220185723894574723478642451534747264798155385194772420785392542239890018533577288354427972925341582282455459934138904206410729591043298323386577329385168674145733252086665623999237410380338957792447069201223961469472053288778059212516115225820604218009550454048608440214041998047785291817955216501400517672344323318422839818402999009022236638444706220817750906837849004614126380459593584422670639870201695780143893624103845061397043831048491451087132160693249718345248292715051792123034750139592878387803650343555587139907414671497702969312002338767665172039878943784814345253671605981123720226321582350538336987628711260126198908333331876096825138592525150667341370755432623927090805105053743366394294571654630339240839135157832420943005422345489021083568429022612739300216343629803789588365923120211244729388233826288803977665104585922649895056448766075193639293439855577132195836921276923040375662876331079949142803422621980418869238131079191372191138873713092871745492939007209372301159947333453733176669082814697465821425552378392160834651240590255439111444580487482305035693082339874839165267287105464203783255527797328495991661290931896974387466516963998158300933579339256303492711033513199053513850815618904644932519905742881187678972758456116150590440593026418764443908289578088169072285685219855906350674040972228902632072987184898437048809516867239362002975889643942226948347236872358355705355747888386015255759232140775275751578755629937554420299166896776846929650281321066802268408183316039264561203290704617258662178033392545608095262039633826782830280850663390196430150388807154910568006653145880009274143795796172169794860430957162328670417996318834778452750586701066993539755732966141371275346687948351818791947501846836611895344019980438744773708221656284160563145821498566749845198303688673841719945807882572099591932754127509859279745477727636541252465538978583015956160110406886920105231946530192273269188077830370665302701718352981657197898134485354420205278243853592047977116575113410609677986265076167444162895667450981461322640073232574621726452811285377052414023321257763154698148772841848210906915635547360536107214170949709791864929029411672241041157272752500062734093759216662592657023327381222775476788334851379640929223012794610860161435182711300183071649506798761489456645618222327762908189160798507693983834060101250837700835896230444615432717098141545526231670379921191480087184209802770357165120768754184490261848857840099450317838119868469638038576645351852340031277704880778618838547993378186854260598716977638756976751179378446869351087111965794147307483086545998441609204684457112289180599286271011328628105923492983300006979881913164033372378116432794362494677108495179919488248440731634887169682664245594354755460939940226838197842800042214101018078188762880230522394650560355226973175682118262883805200003543497116057143320574819148520871719659463870041394178978193975091026774626043890626290345436624748894282615197143730065000467881376990922550007675873213115849910933442121626827446183168813013933888779811592505869387064257707083626797759948963570073584375398002387568175931576483358160572803594958254613936592218907088092488658399726992883455428196758904155575720839527999655911944590410450148101046548593995231159867633889807046338488984203495202278683625795400097605846403880000192181039158852480785189982412935215791881028780487179166983630137225362714136264855476708404554431650869438336859235974853458364015296014645240333143972313778601559640520210086460353294655464784047805533754247396583764339798812554668762286818981346533210228533937609103378431941214807238607031896072287226432633923078804471994523085821262042504587290638519863492857284268659809545866683684133180673836523906996416199492658919289917849035703609255342930141136362726466189405179273574352897118000258558255473829319625127962437364662066027512396226669775362732273268855805172742212140821615245305595765265469551024897575465389828151233401428843157617558557600438898950458985249499762074530769374304994824757856632880122691907681222042957749970489669210682774946255299766268623028328855945014534635273921424885262958627859429850797882867079014831136420968500527493092258496250605863570135611771874870448195352569578959928716375584418930135871945460677939076231824319580930596919457235825619345308542354813234314610783322867392564516623994445440062062797082593190987531048103618165910843232037401635201751947292940371676063324216783579966167401128737770982495707605343226033014451472205540955797628763834967104179710939279732371299847824529725272556677037216382880861213470411884738739459706990624232995605707810806373049143280403900253237196294411051176870131605063632306409239047969478007827491694148952839505025636593869469992474677756901461874947913900822945446185201461693790105829970979877732278134048395817861739826572870495806315124490357619104315545266251146229560610102868806222306926601421080577697917010293381789438680819049066281275781909191222609391017366964019413346396457933717315869402527439223417022013038252557938797180232358306161179985618508287042729820271365037316704097698337944194811656511665284123886929087245374828066328627690490654425445498049154190833121398335351907823101003774287772522478847013882746796489817922318302407091323900849213619947317934248150367823865331838865097145678740981490713760404649137283678518251163432096367287557551030165074048004295897798180782316503202339749940720830995667173219155464499142129247427475143471101790855294186792131863216238926144072687024008490026995307978540416420526963390059644225187880045818392669029407586358281711833978328690252500673305883328203415421729632556359961580887255289679607472088555899607540430799987093295631018990037137639700794199618123534574706216910971766895491689737590213620147614062126317188111544988573249941673850965661450778075724629509606024142793903378497621877072131023805210113427420218114207281221576217758117590537819261941333821349685975045179929285423442864199582657786359789140256776425863459301958891704518672084570223646078688035239832211732290985168293326381101211445359850194128322485028625649670238601001155052098996558284754415552961622549543749266614035091696620215862546744492138319871979130175493057899041616362205656652355251401231477273489151520062458897345530498405090476304562012362938653591593495867959617358866750173590307886221274949891522103953726151937998419414117784544807769231946073830954076092484727946967233747328773156072429373182081099378620746065471646856204837407810331333872676013885827616567884280366688568571289286828520468157022957548162729499591511358330635628059157347485354108854489356930439650062868254171212641941592096730613370261047039170798095427763353660558259792112502282120197610708094430403641390214951026504853657842450669306581275275120829101277900704097436941714117763869904196822560719525125391247903914166192809567066917478206738402109106478384895303282746626208709258333965270991040654584160342661470131631719823706410627289966842084179407183404004957874189374982519694115568458242913732697664164292000133551082366782409334636229134001607313250978298419615241995296448159673294580090620077855427441610263588200632558949297018398095036603956644619165930547475895957782609537638070657689480603138636333204067923058369767544289093820855008617269574507551585200809655932397971428538984117328179385442510005624782093589429438202638636978919509231254077629675361978060095995764890479263639720815270287344371160109005448382472753429407696120367665158429990817827028084446158797178705854992540570052244738215295482307476717373222257417967333236100387353036755477654062828599523112982021284456536995193579897492707175677294659292280202685805378426005245285407891448282746414508945709066510661905529901730575732469436946838234527588549587290809899287614208904433670750578507490880567835032186916759915175731300156217945277661334017081588117569600762883950558596453851845118568024330167031718318658255808628715564697963324834191990097001238392832097606814176809498127498299778643009688585298606969108699673490218934982951734137255322517513043955001289046218484422774214644825963151659573314904821210073897704183101463195576412656977952111181494590376186234836941686168811606947870053302002672384357784891559801925728130590905121609190872926078659652361814516808695460607695412057243052223350120311849843556519383525747181378283184506121174506996220650624880963665793199814117090450628973239061525558876051264041560832497777483883889611795309686667452588360814927313712274411584020407511051891694260767128437467548766942971570444517522633298314485445360769678831615256318245227233870305888997523370937072351436958870439906431564018653156742513760835078746721207282417033499617724787722266834878068340784013881550360556684092100507207433819536385824757945359637892779785153210110189228096113620605524120260861200428804538378800373560238273345195589483322663700051767642070015606801897553321435892610050544604079465267144365281856083007330265357854107599737506419472601561399565232425914997517086790376404355852614922241179758043027079361165398046418863165186126505834277002323841267005518020065394718226845132709197448078580695210888306051537170985293211086932397348191577687406285400404353054511447441935447542740380864224837525499077618023910065150372721353767079995936438442543804800799811334290526091636733394533683662053398227018255177825622973712082524944978406343875868566470805059284913538370617845490430727833630719651560776840439936519128415999198261091128424030100533160117236815767447649323495529582996665535431515737072060703797543775235031503808600598398866649175598820656081095212670265511920292969699676596129531658338675564775661773119303442272938885544670580335356624729082291963050463066941184999814787156379462634359979021831516226320923928507725691407007284076126238652436755021617945005748857496209239001672106153196571112095276927501490555780165512473962771330278717481335592391478769451281521270939481339367435401593356275501586451143140617531406895310832986944668558405353597536974714807921457872008768399199905997311477144804698144111640388799176630908629162658297582957934379730488749256584817163639420367407716158766817665912846950689213362602461420409462802672753499139494152724047173940800464472142507824724812348742463492005213111447569922783165060098928758045868278115493298995519141534160056705019962213253513720348137416433848418532196498208163075306272516741341999763005955362903202408561363376115971605826181806805778975585404934083923280556278927341130504300937062285425725462704289654970645259893901091058368533818785844828327533802944238585824593189308373960310034472824370421909285261141701709686634835207969332401059129975909671773886190063666859090749757299589066922226637707211675521374390010175620524360568694539202160371434775687473709382763039469628773602963973374933683358331082821564553719937448474624449783561215815328178702719416011858753566242547261173631179548114455902446026074354199658487336805743385232131158142923342506963970823211975135157588601784878309909639222997512471025636679726521656126138669328398825114368072885826629382710550197480507969307254733056256933841908917939185029257341787222205990635117241392546860557814808348931693589819347098286865937764088689591172255313575158693032442786221400957336953495099008313831969370420558004840871007459541144954842362261273953420291501488855071591960448322566624760485484558910333875244216690327881475436878055539204288127468544660551945742053509138969166995651803868501757411317698246311570227657213194307514105682975044201432742816940964679071670012766177476839669435315918429465615460701508865618022979475559970165926124500700242446796434461705043472756911355626842459126029849011152710483358916261814898725679525249285191101408619090724067149584785167066308706301116962128324265431177899138305205457610274087269177181924615345709726508150574518747532530071672552813232921303989153488460194329437766950603299696219028159984971269837594578952307714764317546585370689051339932061813838246097350832971901163664618012404929124498021139949046897187522840893716978290915281371674572303751460439490246687628397272808605506317785049030051064307005667129696494161467400295849116558699305779219905692128509385256024420789906436988906007552535611576451306273046508302079189189570412500465454411887193182414730685965441154478164470622523977348083349327466022383548594262337866853171268254403898830661773839820999210902044057519464754746575192734123879503451716617545161721981267961646273694731553093791391242384196012707048881419326052632657026561206253386090748705157045143281212548140435754909314086800045806217220553758838092043921022669290217648363316107224275647362047817199020023868684185010063753347640371537538057497308462418076212785575545611938409620775742643669576772500098850687299195739990665668464153514455462371178606084733572841484741957652736581735077459628699250912001425259192144382170337636510236798874823466747507938831094307683442706662811906786555225875650075458797679119838282935671841754339336941200289224542384432160279016410055624625594408250855957046862450234213574387189735978803397711838663074473523449054101005896145695891884700306692966336410993434018492125185141248168966826470703042639715702309915707040645555317334513659097944368996680380585555124324541791102017307485187530643771539557880166788445780120263464632066638332059124089984188283183612312670704867349490089964914607159752436504990662256905213157732414610578211530479677209562859217649277190957334816986895799367713064840620137371399106279960781713491399846193562855883361484012726263910853478197264050302698660493110621383963599162217767018719744039568247871916080303671175353271080060804097356547246522692722200556828715087433182445523413890398167436800707412200507147719057911128261200979518976810705443188833634252368762356491774472146438342150072592931343781723057875989280839313284379434596144225876487093525406027136896197413628638520620609878779368514228247448219908991257865318174118840749480957837776227496221423001797783507395943660826782943797674399255922506873676663802498154067563998884590680638386336173866785195335626145801511671565656311382750828392011625522300665680643460231607400247395723301799477466217133591376344328482328275886746648982293400582035212805045895560178377989343275355572431520885767130862459005202754380870694848240969079575027051586459069125653594458947760027860426844965122683560311117027296142586942865928000692868882025075402553789637538905038157299312957005233626687060719179493751340380156844779912800597487764637716269510968400589406142104483184004812328886138646395042767345859564180682033989753218132917774954522575555282221641203781367128059254186950236244097795329442117621611622043190488153795672996826219533177607530358325099045622370062539637714464023145811944172880245868035698027306493287669798647606120010991786402234519146111843895096446273578906209586780717948858109147276315191371733180651141333299206205453460816238614351382800823578739652019075626902369327787609283907032825152297121221672887453447672267212482701604531439728234641019789361338119349793203173918986168710111752499820628414380028364998413070629464943820393950381010219028707395118201867807630539534406382488322916634035219619449307385127626162127820194027981985530382937384973561785252080896937717056806932339017944919816343253478388658740560903575164070787377243864825303797079333986262012321204158616932065824358068838639589001155467865351344314565319005546188761059099341386267020907482738933975598792515644887586088496674515848198524271866915494023744352740688737260417514604198126793565079793852902190425643186597286140110054756784501416377067648021241393764390058389877370089429951634005905522589138872263388843522525018614557699194752293464504712920296838807280909191645369636542759226617719956484857226077489680660362375757912089366028638035028485600099239369633138920259516069428572762191499025466398366842583192759769689590770622759540065475624893292467675435589641055585435043566821289344180436751352372524701220180702632175625924924116645864410622101997743664880940254634099044639625614865543468384618725642873779451250123735567217109892252801964701622093985997407359437362140038099289040589549428863137029497144174063645237296761050028642349117013613430866789872318537498870232787250395271690953571556520720722680656466184792782228041795023259209851079910989548044226584658179289811907596151145459611028780539704013225752880975745464763487960845979600724002763604592776504626196540971746817354348384575566854672318517323718193899540460172188134658969601575959016841286491893933300809198718071524371013270778413199057321770114664325225255680129698113542241143255004085276897717797442797110249907306985062007821482461917572532773379264387387539817722117834173058835595909179401539625855680370985765955652082254627286742650419121223411277971825674902202565674298150674506866913297536193605723971654906012563325925034826016109653110097343559497334272361527188362814591012529421249883985034230665402295721607884667453186623980236307524016523085409231951950941620118714234815579567696870439086919869747972026140513602840770055801544018388103871300042873085193706075934329345495273783767133762121674712878889184152355715809023759208290549496974151968374926681312700936325906995574760713880555950600755598986336056767465227395931336452677964823878237803869051328218711554212227775197796426783605598436901961632375035681942874054190495252545588753526549722805004276261442630794544634572487165046028901372270680704024454545657530706889057047529490110155730444315338797951615070849541800273320521599961429572872784272915268317739231666361946275936139411416444674254028232877894311132821216530365553475813575057062801780321046871037073486354662398426544967138273650278505014604669514625630812599205624964892138054255499756789952985304013382583889205464256505982962316020317608292496053874297614026789844144950747264971530100476932114571580147545739748630216709507465927798236265354904114314220081684808708276565602666540360449817601650319940670723097208180024412408900636077013079395820563663072966121874003640611142275795800718159490033612739422796495901936855399227527641647024528205619288614275134598342663300640224400288516511657954079200198881843779421238714368621407916153529913829525049012705444950675021682452392202576988694054159245206465934228699581315991692152493837972963524903476874748417242252150317142819093615554123798105075790574941311723273734036717542473653777248171610792714735555405553998511580812763583252241365065617203274181433752253650080615123589496653598149694681244504042766734491875756956462947125319759939270635304937187119346986730551174077657497750843854366384873128438394530825408224954120573346013664406314910829533767930145721193327796764165390283216190435609320941961160447174526180500802649109846752966523812132776704402732151372836740255375013148613427007311023252914476639729047351147793229546757785457783666260681867792773499592888940387976994957010624395490190079093689246416047370220667699895648956464362830885538654795364583466586460765230727581110820277094484499128558718256430098175059280906434817369079004168377987965571956568736149845197445254462239553760293589695394975050018354947012862548243468772167799377071606320373318513416181209026625916936739944132760100896365035686171887901124952844073258841910771899251102820828187370743753816692405181145305734455439335504414182835084196578538289628142750500615890035587620567691511356033810111827075510577878551787587163040274377732658160044980538880690212169552754035674214063277555106867687386705566605183690792587884378281107912121533491758558356230602465408442963660589593959704154420371380914293707920206284539994557227235578120365592665237228872485582604071026040894470917550992985529225306731315825908176387010538904532333290223527826301237788511625533075877348891478728101944183536229283255709556458931880286220858477867123134309454780947344795693989892567542562449176288983696648960440714008855509657396062530251292816770135419658589436527745228557462525158329370750897383652463367182931566444452695590121777623916192735613493085771592663878310986765684694313948040695488023306211790675454693084598770994286242878214151290185997071453918950823742444872052929124956258836565644211719966965279188865064793092398445823685454304861987588874195744295823295528575092821803592304054023174768732994479975573618455837988397345204338301239956348135650563888881782886216925394725535126290817957561923934736315322885166642005289580522233120342164018527023475361958031475772717948109057780503032765840607695763882882549934191951559289328939681883510328006971912407506478787004114152469578451232850378634392670081773126488019037138093988999209300206803215858664446344521236062606488009688696477072758493707085836246236873871525059480091178417019987736129671687816256551370029640225345185618789271067395881363417773956864747929474620561400012427880949157945067056065734903589847591537445478420706942767621820363136728727025703650823366404196975571327845911421312381391384107606642961544333496546571443153687394625721619600271485894878667847117370538989705891256012036256966964154190452200263923953267595779894289492820468287400234084555898060660312345995069586182205688374007863918061547863472779610894952277809073899168533043078709644543181129337691056304138773022144458566470778977389114986324831026770047030705725205255230154490687388268473465657876953644615312898749364500967562288385633909976518983325041558115695999734937422486895539816825228125114011860287367616378674831787306232661866539301582710815471064368914711453560554051798549784130799832526030683404359608023139344278118123348633461644435510809919869234601171088652072031933924098586761155348046703970858344228748949782782345158508660980220482549013898633081934554426444134982950093435861201647309860047638792110434765870116455249234538123655477114987278345725174101773272769150227488123872004522521483511684069175578247535025206670790030533727227550402870556848246401496085066378142627590099180070220221627764023563142191835119430171107314973250171557282907494823491259989793555626483581122734005392152963143056443500573199599774912157211963515034910673860350282132129371532024669898981097109080559521365241881746714644299964923935803629707458948091667668022041290105717276984367949228331345090438982998278696116069709756820095299274681648942645147842613377770713659586334149533498205720395122469365779953696288768829313697258137928404275895304381250969948597661340788294105442379664774633687233571899458522356311001506625347248778371366952161036500419494667794505516056099520914642222435251614229361140844611356668751397918301309888745043612558013861577328503664322206849174457032666836205738271714063936448028656226950419213605702749640626745545335667267679315652820963520253571151843317875245366594581732467626620231653866169539769910849220108791451146160538825879340453748069602271214714832693533213455715674617888167243089677769640322650344859016469300426121471055126681269235345436219688105369062600700088180107004458904078801535495208647497082850184318828104653992092204624254412631615993838527514848272828432371140317684809914870500410012519544410443206626764662844275441651481444125728458857334529837829651465930883838148822963781439233902601436820621625924254049729627290310806685389265191565516524050762749076867553296786890545198200770387772655152356729573031816708610602638096456054208587016585294267486516801397509733968600046118834734989275565995935837082545121768848918809082895822904967595031892003113695866593918121280339724679215605782471449083074053199509229053447996967963031735013555913928950540139253928986815615133825900732008361688471742031792975830110746331681578028141350726802607482836893755388052059346307330175511604214596505808785997473023868042639330320790689984369360760630233306321601173054903496788801010401342511133804009521700324173402658642674993142821519346616858633853469105064150125421338863021421461258382675717065910510164670638034748342176859917595894074182281227841293172618291547205508122350660732542860129300090826586210974092028996412802715454816521126226248695166381059213424211312610336427519746561103102889724842566067593529052920338829297890647022787238828467854137664836088007027857133197668938359058316512219438708501756274593712319652566620546220751299228364049386125364048844796589677995710156940906939640693120941038229021359418450095137223479327070109704863583299026791340185830290676332422467453186602079799253333130745108871833083146050151139933494394744950364030769626352456899050824995427793100457907462810328375242666662072166020531459144584116475772816989421392442623043334354197734588395293479033989138286186908389945363788476067665198961558373060156068959717019954296603861225613238872709276399112289126016997237596869258612362381907304589733439815698616504952874927557497189253527201911430709030657058297703343823423659704442595910374817487388895230066976386398853315017497899254096066424492716810293723879099508264263122055773243697783568133042612728059904368719321606197380206552532260086064438973570245294741445853846341233804658375543464798183404838863660965194264503504872656944106965186876656450940706308479787399914628225769210163638401905493459808723653543392052874032655396215232432403665588735838344472526710399445886461476388447710158966357015876113847724990059710990182127240361266812945070614050538383502005467033892853671317910577745240960773158381763263311820177756785090348707951816986032569630832538674059986070863145132169527702394063134093395304319142851458094912084270313052662988855968242315280460385844536269298406593491910756468031984860482127154416556166681403047843638846745312863569824491107533863822896050695900223527335568064556387049655295295205813624751599661331092092849884642687951028547181253816297628035856817062498172202733365554980579361590085680167926727136214640705879157531059898979673465254231165866088955693584442107010985533183350411200572432904444834422384547982540424924755257007338437994717966815808882520096513424284927011554626455636732553640848750729081711139329360747928284150016717609688254787659945144378383806778803204793538717016913615863969195837202335741261648335270095695463293873708085386793144917845820704002440994858099791219273100105189430452939494729018290283122865757471871979555417278676907074370771720978887548116202300871637500160831115392584795872079761577208873044532395029514284563931180081979123238117645528458652286007548899445739332609680167450971628071095120648470830693691687602799151801581850457996538643751470488138744938862295123800999507772441084786654956334211736533428326860485165431780139868941792722090249587345964752380787930658253681231458669515705291026702192343256436033440142354643418719101115566450602464946097553222509058450815029092689103544987108937908580536437773896955015869898561861451920270406533593910758819822840794777361109107926493883980616225832634222354573144411390197773658492276710660101513433878730191237378903597432558460924232628081279305344855669365767719523015565762673176920477078609720765587783013872213522193049339723900200298253205566826265949654798000436831654993495781634387707994901158270543747393392391078342817217939688857857273591418925497157118924701723245999318207280592092354288456132732420778256138394513195267363436664077521933875626094772496577833909326240782193809611912270450299681836187930844950441410806385050448221878480471903854080481786051290037967093974869776698012421457290452008447351746299001205955042927943806079748569265197582377963030702274768189040405866285768599550487341231750831420008044453399899113625380979820017073211282066075758912471268095897867005693759198519835685709129904178305686540061102479535814816234735239424259459023146547502379702044014931355288337060526552830403984174022918901176249620064925204838263036681298232890650261558594407601619795238122904211145316285187259354057676892027998546083283785305342950635306194086122193364470775060985834869877054247003163741707504919747863346104200241157511448978558522523926349068094121108608101429309230537004691367643409732482184739657635833186522821250893179791183145707713209069226214695755516525150868229581070815574611515090575056564413522978604927847521400634477359483087198046807905280700785863358200265661984260611989509271611110193584937472772987750896790820570394978630567717125728978834733654675946097930517735478318412805080537234619183638971105092022399015598189770706416169743396101710393664841730159124203722857704060753256305209149436820323853700222760201131756021870610238384568912087371517819322883385163941624174267050234381511475857348983118142806618201741865461796577813021769078769071014494667875118634183833543846429341952923208603010915220536561504027986025829181172533826087085368139064788706354381658004410875135296244259738758966893306004048061109664091037068447180318194161991145421738635298582160335263678521132174419957192768344016613830129245419376633295898590898916641089821532829152350460353804665554048272120404727284390846842766284826125123849733240213711479614235615334224814708023107582701598287402344692175288498287499054310353660275204147302613052968652265749179811194605090142468515091028459672484717583951589534075772378775349876112249168369529483949521345297024007330772563264711855918407360095067577000389641295141380757512992489836414211024899516243611086725529131795440466441157191152228793156242719652422371526923308446988735769892555464271578521703395703950001975783103364253014106113963648970899239577452875077691656598067955976372336368022019886197443277301387967855847982753622425823084040154551216422848532250202924857879123271865666987849369329790652654618735211167062353184750092967722339813421254169832331821148851445872375871282914310143007900221480969522624876056320559563445903648864168698319335672227135321327232301757650708032273601632571183762163468815047410451138445735665213814198445355328303859073779677742880542361245387432550532724582117583313250327331027495508573794178605222524265927428844809175883432641577401354477373298714486587089191855423745990005439163134734671588664648826483977931637209838135564482653909527626606806460511695034793109787536209537537390583974669616354187886936257367729757843414516649535866682398302011423378575401732549788149982312097004672259536732203614155044776493381700525948085878941202662582810820808389809144968959801266684147045126089517960015607810899731519688172001271410223749491107999756087273724561343546415249090203768400127654677846814989380364597562739316686482240636282829177521031211496741715772057733264043450009746964210778760725856051852263355504066200080534068417014899811933299200672343894311101649739239884457786154438484497865678802389945138829627267105178412874927187652412453298618651815935902686414457969149352689055265860375776354957577523065311361638470608007921548169733041628329924159190214987737467428228305770416481322533041884149277714506133170883374838615182742111238130591652310136072268693484047455791228726376001699814704689137265766745916971845721193460106079897189768083490973557982319092613805709629133962081822162530966250620079484839844025547947078848286060123145397061719236475777832076963379262947949071240733580804644411450479379623464302097034942710645599539899816692958223391044228551866920581414048101457960301744685031301215064296607863915314084442154220135960724726532786677290126565777205514955013507120742193845385635228972954835659388621661774200324965815149305661251723259330644219211728805378400804836763659377355406727605523793770375599903031209508821077278925694687608525699001583676873760872194042281727126519854662737696682877155542682729648144593872441339709427074189070975173491290216952443308732457392957430126465336584514138188260359007987458878825216626706566559541729701691317921785563246148508683823790971747906285970343112330693727341204191875420790911919701366425757759327709823082700308766997974314672543303341282642062827362896915347538251978774673587859576708991094563997141600496750377500958757322145907319052334958800536558568719499674432479525261567755783874280434287575164892469548677406034925772413941452127853986951472837537399974525067519345516088047858834919897884091745592514346367612380077696126396771711959411721297578714305430321007146304570036657178918860985218421091114304946485337107726267285260137536679511824354468342459120960073003571853874768085646058268093580186860055454188547449935434164384552953484247212300090417756967712484635764470818571402088598532228584019245283400794195008188528078540303602665633511074221903626294080871597651487128090014604892533735848103364942480314710426039802617444813636540481636680636334808021722412575508099199277275095623664424775704788640183755149143413084245488503576001553574964977779967282152827705485600169193858791331647630374669788598772570485089483733747921344589642223458082069159265142640511993946528282406954265414114381891401790133849714472945438626912482395349746393250066314871967868798951680142669488526147728800281905324937757956426689790550961164017330205867684935025512487694558604519666373274059899893246392599650854495586611137529872247055645092995109117101327555087882138368260899296218816313787701343014621924579089973821070893397682984443247168294545410341050440181414782360720643581741313891688567766651750121825780132478493339102165413952519943331455490521473739052539673031211626371486003761975427616408100246778656911635205063416705810444862935268238628764764008000352992830388745637956913463999697014789455993068278151644066875142035755402058368287952239025875342675266745103540511520575530830158268831512871940769521838168062538860922776961622231603158946402758553781059900117288871839483711583347376343307773843126224523699991369491025730077297424889890635203173635000782157460837691338312240119479733584628093488415057752422375149901445170365661165195045198472345345565783772128863035720567873712035091843648573507713763757177710357655279117842028277755546724136399282922458975031393759339760212752610746135252697457903954149285510908956832805101288573531186130354347290801920814920587122999282434198417923364880560310653823592245695562434326115090460878908795573133086115922312004514544905503226320688605142503585543328781981191928274385164473659980978584021577957537780169808367056149726890168350356516324624537345219029576072823124933399489660307817726959148609209641981668860918611818057305980853811119956968568433642230988256168979111845208478519034758412072250758212952316894472160601238346146678741540940515634131519540227456491553486449455631090251079691683090058250687108240134761122401350061180572016766791761431557906057088206494473617573474003104633986673890540386555245568649066874089404399406673907184574395984891506964835125145241049173182222296319373942359103420608430971902230199951309666092665428539470784626540970523568144271737644838713833375703594125925239175447226171852933525831038879308404149694857572642134956823137927536732247779147920019175014976573054156179036280186687274436555849965146589287851175963322588482591430331778984143608790849917299824411708593948678703423421572499606736100385126068344112630773895028977925812793909958429640712460272752456394159116824025201806887019447436912937687147465190249950451152934448136444861798526241867754415849282719182907746834718153924203240449859163316817347578233279552284840632339147423762829613829795692409781150970204420168809219133088391685197537770867027334585151148989949700040702969518191352726874928686444744519887057956302023029492845299317386069773538880999741481224935178426076155438667080425750093173974186134942927242994400770221030584411074753408805342417788821498716678864998218320562877068312729014750742225661241080770926152755942531537949371268579989558542241834146821041544302463432154839585251141418352278600558845160739604790611128433648128727452025856856462047865801476323602712792914710763347163657052014572993423315990344565115317170984639490335312630041854776928893331256451313496259390426547825609950071659141327485565833560515841226300679402971497020312810173438396466498299687084964095449914903913937365787511085443195596158559590030977121964624608576951425112572807460312524434417140386962386754029622988623292026637981772426894720314354878470797658699084515454332186640115250581071473279949701388614057491029533641998031826684603606570399376519335194861902407132791985113320405149983886731260666482323220164271641519693154734204125472028369333882615787276661014007657425690825758660343904096149166355011989838257734566261150102189021890047996446479693281380392916148525383125572948657741120671651309405656015388804579829389726174597461683049968815795714768175604989743109348308360268855768818324633948068066810489567393443972156395298916863577495451933387529041913549660506835751593121188933919907492674724658809292839577517417081903986541958294175725752766447256144020389311568945045309257250043476899653462539503104043624815044002817757467023287062930611929324494347869963205980821216716278772755230694971004995600374519737511891329563823543644513574991217606632706649239968382987236018582607991826918312462416711286291189180649828334946754097359105930813483289699300996638682839334046500022528596574458953845231927705869123820691479990892821187506787673521065535378318341146758419561704687575420264401805429274123567836940338434251929532564810595013704140184383863653843929958558730997530747156769532453106660513963059491354930584198366789444147072069188406197161999869283486042492221954986240642116306809457641949156656123615976160214823070018363496006018177499085923324137743785036357169841455934258102985042475887679788347841312070203201687082937323309371575663767449823388450761504868234768115095733617114828433678201939755335241276107255850201622828575187044167055905548597872850238030817682820461055822193031751397366067471025868505312848735595137931148238497578255927974266885327639259424328113382851086957946089797395025091775355441090681908022433383019690481603514808031394590463422050958880989919924965401581392684401004084046889353951334457034375069351677825905473375694630475899085129828075359096354890698115591820795726967274156814063018503400311506306341325609145803800697406084836164637021633203414148138357901363939459908123405637523943825233807022107240657963130045512857380457858510954749977129393436278112527924747801482260382729415385510550519487167696893473155602985755858794558318362231364239784597122679555302649065699836530125258250116706104410098835345209987475198085027187223548862588465012140930937233183431900148577013755302516954965567722256228797808216513819836098930204314802844465711801731174371581344846712010859310093954008015934071907233512219385832333865391519173742588594584598575771118813001057757087428857730710915846897538533211854638151158103709317900372290796951737078368411622183462832479241711069537857911311902508112391444857562713169221910400390407089219224603486855585416591413847474345236814253702824954155218838116437459411383866153900966672133298842700764105690880086965526611938892485326865049699360701331975569016900162052347772091635448315330823432535761184796723039205331953641902947767821541113621893409833010573609349920480680585162445671702272408628508861283431593251583714709211965236919928264233210286182999340050971832270308091569408755741238949701553980398934411783996681377145168096379994609549293244278712102766058720970897964456131677115521602135889332018132290641301607654473724688218152950459220342728803411584126182432036454634411742469941197912280353996121814097455044964147344275588367222022733991904666844890564251831575009414579197707125874349992747715590589996794163450996038830215602504586642921793236540619417735223681954569359277027953425232828136610284990028516982840731380895200897664438783643326914234236716265261971052963546253470540441114840292972283333211896434521026812726947884645223738743923841823261433869282379974042310187375171645843968859205284558813899482704349206868148440008356127728857936860883226331293874563865393064556920700534391171696233346533950525555003791313906565619681913397920301117782957644379566543882661950159902251767038729834685065661215146671488936627488848608165334847233182712154697454342577855845766120364601710365725856912608532479061934845615991339397445698329792395900069021071811240566503394240641185862959949652573719097526496384831803607273706629992216877873233931454884450673778978473313676471756918469106188917773955759287364579224248186935643423683725022107005933712887743845837383939557108793935491172557348614763399372050266268574641551478986388741400171336861968588974121281908018466761051368143931748905187418707221471705057058398942345516377420998644498210633415155057046734360868253370665653357980234684701388852435125744738131685747650874064655893348781177303628566009308880517971536189770674222327598906110576758306298271655637885456854953371795766233828735099191253695090288444465793423130136253146427322761801114833934732213915242499499662749613956148513145703731749518068804989122591747986452393612175095221253006437719990607588543645397008468350803621069090865017962586299547689451274218357505618212853649393818024927078301886852061525860726873040395727218502461742844404738295144018729672071623545964616617974124491341482325536974101140196509508345758735850942106002005709056610406561122929206495689941458531063788829887001227725955757513180973118116588958758292105916853978141175511913216121452742525709791310377032294185832777314642450009073797025447378339518151539363429370273757553418700953992773260301558210829142103724798728838529119984454187215544165457852473327344656895187502454020936941374760339727986728244744699753564280268814000872288354744201641330402911983564510905222621898931466556716804257771497056559860664629148567460834022488469642463347989531761196579672586215703860565979506816112433272403104022136195505853151507948777021420288173748189193823350836445226672917399571902247957944096733582102091738045742488961341791764296934084250867510795668137250204819776552005534780996249295460487149768020920550320004757200157017853427199765169961713508048628073633654227961738023281404500725718649195352519823237988518127876546419278156496439488327406925060106234066561715763365260913461294450636455113743049077868428499836941555159999718392093496205930010592771376383384194668819347791250157523728737197285623080344445607101550817877118824199311867234099848812512024036776504861991076604010641755285960560888385036974110692407595593559405417739657657412248572577717250972230801150393974718255199886952670240216074354106048593992228722985959582193058731482104442452829597697215091119315420807703037077370052709387481035335705651844140480942860404511695591677343560993402296793087747681538904273507497274832002234567350498119850452183999484890658713969564185354108473075726318236560002175541945411277296456691173376238324592619538465318467538441869887806992667034396949530051742700578864225915385247191503323649202142825741251372794738304971586691619860686012092728844328472732927540666500443947139116305945656970191976647704203038576156072116752274165164057758164780161047105457280556290779589812221421390411343274180060052208556182676028532852656354660384599270018934397535256852357881961464815938824006831471330364285761556993753420765205540875015627505466478426398334532730312778200446498528778495391415023920180907729959189088999639099858715330877065854525306797265592355504148070783293116806765032790182195666506818990864706887104523539499412750970640682836378036402946596188199927676917797913190527741619437128718637742069031886119295678761654324038654639451623341139134628016011878539304640821056180456699933359063794995341069119692551610972654824008196947884610759768138112139410414795726933883379143782778807529096612370818082590640620186334945146855388485928977954265472813511545121234783854077836295180660610441387605713298944108972733411068127508584853353526914557630374599605058551007804637956002829670187621781262843138276677658633447411412221566773317429746035939253428654037403330813947173999088602737123941833031599828930616213457686995372178757332374286510972152986235655186631577220484192184688250702930856036262629842453137140625788202507458396432700821692247162913485010144112889417096034796480154626155850016100988377262401564970128314472342357912213583330828406744951077254794419341101566872324822772635709543969589282208264326034789694977236824657458928560557029508717900578495165734307658336870638240394441347056229051296482902861800414023040375785917260675225447484351847035456930852867990977875340139348034817396025656253432766855880339393233981109968844029302440169812458992806679112361524132477472837761039483691650290500615102038858046577638753695231022689215339262671807529345850559951348223324703182570160789344744304060145809952260572221499433958505709369912708949444058970586719806653628895983001254890071739784672891930452069205840400655565569629063976492231663970824085626836369424629953065065032318480985024475685227631153764307986434771055874509824421499038231202829995479049922185610505776259360111829281595602696200988720735889065626232284629109263763003971942147726168256749654022145960820218620094595012121889265048973014165800715739911442112270346974009978391697172449966139481314737519939920407149862443420461359811141491719128203109388478771455966218784514664214655665196274874944438563597043476833892451404384179404727143095732035535956030651774833348990563601786123791413918933408432741177869833043056973099399114080215518348032326614291176633007287353533182879372065631898006710498444883969224392062901929665010057221518528530506339272447346349190531006162751673879216440441358485852349490795472179564504205583572312393968023043384131192844102333161688967987254961361228104362018430941959143185003559966968511216527284457984381517254358656316867836614913223909953784466225615530109446188910196826514118109880184771422839610717619705651126851508123788189361056756069445778002609667076702569751687503432306004756614374858968129455693642819102093259791640526087170479316349680617813117045331901452489861308971298586909932804770749392345167730102561427368699662260006871167153357160616112083892393924999494847584735237112119394072732765903891607948655922597763288773328727376512190864423279263813206692488208973334765560864738842728616514693041310216357397304099704845746275422292798882571188901988812704899254694708141464627506674027282265201705745902995971247946978392400352662076456588987384636555281715048574461949867293779921373606386409079842683738083363333754424605709278522316988524598853982804635393271263925230591001316868626443682426834628896978196601361129959156066348384538648645774499844510902722054397020941365849425404449710334974670075909598081892603293078755003394834412969624499109691898308073518201286712148991939801128514104742269388936302142293250195201559850434056777499471624610293850315326812510241037505900757899413095208712513691566399349223209796357149073962126210220899203507003878695784393059576071198160532262776263249014187548034697567215562267360558709411202939603889241943684920941455126146194148864301778067410536494198321213461808823124504338972898652789711868275193035798012174932510895857265912311911639237215089720925455664091655924225503222574964062307662691348694751504115658807821868333448119385314665087318920840569186901256763906166445987184613872768184587228591554134680654567260246692792177774183286984963320239351561606362635751130447857059841917334902060227865228719945001909192641659739084336202229934056646572223871733635366494740213903292598915407173643583541248593456157304376071278776703381091901209192787783111737894299598315527794993578283044241567577315694489187860674411550493446622322435729448943695945701653648104336088513404957973573207955497060722373114871004652012616211095888879437188837098242213570651385545710296688182327300302633718204399015929705364885567585722181710028609419348607350631848550891927349363165239569235740436357760944175840602978405821360571233741715555630863816559037158018786886374380699966281894244891555556345684447400787269035890884066347005586923851097785978892102333538863683770953979273763291511944644739125172330073323433556651092540207230729553748702028771114216205293355020643470451226501300363091116664736447205620396417736432816407796968157972446829061253323881834314658945812401641174970788300054056135325460373513175372903561375014807470852906672241416200523075567303857983050774370812458778449071371806935127430594936693192296157724082574239741372285831825135319158475635559931929276898391814779569501532508508671099101144451620434475267459351198620078841293613968122245268699345661155120046405642881797934972624929790709114131509398880592398064040493227932759314458900898096959088766268791321617986548023672406084900063928089223166042248823417019040833735744389717897976108461983731205462920988906525434001709798240253602290486385433337765368839228390469449069849089045873409602273865990266562204538506866498637312362981928605422932688902340847814062102725055005947547990442913591086037378012465184000186299390491224183005903301496875325432065649013159181850748886576612235806925213842693666004422465650159952292991968604609859160788820646813791741236768786006425849844702310348178198892708341279803780574102222475429115903823783565743953244265665809109283478603657669422695062116022879479380014824788742978876180407299399470937062095213209486234202137532251198777158090327521622642980656814405362509427594513632933294334148447270826641404078809657336321279316918024133088248868079867600056907320465739937521466511609826905020475723245398807137701147440250324463334684077529124475776440402161255145362765854418857673027045299930175440893388594860909420791815798047915615125376644481441442643002014812350521571380414234182831598835447799374102753142495371388529834230843355352624644932243973218313636076912735493522865535254989598242385226092415571561180300133215830878041049580988510117977227992961964311366685385236270277440053147068429125105963512036916172616687514499787425491969628314767862600595558303328866586885972524757663922120989454472496254083852233939989721809299452047621724614145389957389400841179635593057719228710124980139415581332590440155224723083558623636794287126392284467354922910887086521232106502936501858301895561965443732685414125727340690504859917415812543301258689758354970876549511505101261881200541784709357311320168845292616935180157017810438714515473602918076457207237321842184164613053218437310554053601989644368033443035488177564122372441628444169033136790992067275884210789012475391501647924652840972951243000047547699889886626687599222124984032062699994411831693267795914853729097519902263186432278891293762769422559120313171055539556958896618746058234530281281321148949044682370770513895212010147985721342553900121425699354970478458593929345501294981265075054978360228609754796731184848926416844307267910492659976093742173061738045799578704298849108539829067430447952762364644565840944742732384960038095944326097392258399629362937047437939028172730422285196965495675756829436604804628899351650246330096578921005318810231723765238138164325194604839982788079153395677604247677563737127533076076725999397582052806502890908283145615047076181711522712553567701321495597116052306600095508788130893070110077655831946544179586033484946038994699982353920303283390695642768217814683160939997960380468101157380954698086321664237180747071885563476717277499997490989466191576877819906038496274911500581141967643165076393328090573752427431511978341405804802785629070084339562561218595351939197415422308222210978402666738130872085307159454135729988158055528221697005420416772569208121002390226444538114090942443491353768671649470931777056002276066654823721388783811161024673668147842414192159370519875850331169956036165503570131707932134474745210618961370145519936711056472012873506833453662595625885135924861369939008347257427563460925931204654703785390404634821374089665134790230451414592521898260678747327957103401958363826982076321063106020819728563496698795347357262246382293409940328650100463691512140961979003528231065278873712190548757646889604133577698307985331738838336262205991758122214571218673235052403871982918131360351966055130197609199323174222408485910658474975896767603175426958404943218848467129215969841016632326290744238027063179734438701129519058704491609747861353156009088799434685604737858326808215525479216699021593279322541283280100577752509823927909226080455922042786760831073124287090157294390308412464336378285661162047458087992658636114579452618585797539900003711476964877436511733461911455105824184205756648688577337658866085468425731025397550882485154316218539984820070596595150589863615017024612784770546378894723729938748186684074033505235840875801846110157754476480754876663197083468617682623206918921963618320928578729172689284176685699692646684731098506103530629394000649367088143685748444791785855587684230665466716287769153238363707310354256654721070347111041340239160900304090829877770792001935393941867317561598605655775882644789153585539534858994454835290365043121477109940773185196839625928386722419502231127495580715314003245603240042881796932677796472649350201440905082428685311652309722671675842055044401845193086014699759712999974929093938758620614886355588225167318828022789857381129103028571406303731884966543093294414616385868057098874800272354093519171714998284924657516871268454926872740246214708835855348818089443486208566541782456974287542064021667531371177508785831753701724826135563604503192153524847227478520969896477254212226882673944841829850105159114161118920297304612978199376931125087367551327432040588535998342960283421487143036339964118568657181517998713203005612572317160580141520307126831620479577175067998910495659636486496964643203478381980893891852859257141249404344843978959089054652034870003971596399550885465181961437122388020820678146994390715974963615199861899727917096132811814978703002752178656929643861596364079085333748531896899776394786629913612752100982143451368597528830118525808697496573365732005661740698887739022112586386519520195890555600852037969487284085592267186472130261463517062449070150568924865576449596929062056394560609770545020550110125310230548801570494046675609413415287427484685384202526924261794136318660960632167219517383170066241067102250211310656169032395113736555207448383170273601807693590484884902492988397468463321745550536563882516598620446377438883503173386654014458552032630993273478570960224740173758595368201544481000070506556540283901050617838903105802245310475388376852455634569215833629079461894578478009006191493126361455936950892833227543655014839792054780352187746559596377686073622648896535093508562562289218504484823333071541133059848820086487706319438426614677485508679742245734816369692075587353327589376933903847609631931263904939150688371734147271355086553476672868161115597959332737974408755765319191724198089304482985022850043575602976697523195228605716296305077218929042794857484530201199466695586838134989878596909136181220510957957418601623465400854099240217327012337897682403597472257765026548633732812839023036893985178203849197674107188976744061895569889338051001431510503587471611609447479685620631825741366927306437501115238757310575950036728682706752810389342165082628163077610282102981246231077087660976709942630641066233820942023627435118063696809083252613601826739573685965189256641125702235857992479258704072788672273200051172000665112598316269656275570362406529517389840735567719737668607796545263928046345358643818456262333625887848114551219359554624711767969230835947293747837076730458378940836881275484302599851303738986395385835404092562838689725585874017810140315761618583726784044927008677857266017287231118646537836856354579401815914426992931299793436074049850227644728154791737934856635331686198257834537590447124871273197117143890500497326103932145514043717658858935253781515602620925229136131914249843297998558513770623277879508086722123418796660456545580111817855734625522361756028178194117574607491597526679847734150625794566967228500307932389737604035181113425466373965780831515439059961035803187642826222181610043033178109759880093815465587334444582341444026135919209180277880173238374981549620479241877898182608463788445587003263379150699123951947916199420034194302739641359595879987043978283326595336911034041137712247316953831638320822554088173835156678617037387321798324108875213337688224123831644458639637770558944440089367017141015177607326236494963279439384239184710134783035481996438845737802925775735615412543010522863609445073010981398939684813173782207247510953300572282079878242569477053642856686859162318575776449492129331460689553194303823057172704198466787744510774514736096706287724765379282787478324197024028369877870803353639064797822484754519734347848259835951647972954895844097291947072399791812482400065062951961764924315708433888962784333259194815588817852464027171498190744205532376944687117394458800928612730882668745294546055877148901347608613064023451567699096691916012632058801401435513257467164642450964991381608816458059330800197228960182524983474347350872941007870270397409433594618997142432515539009265745057057318802266050172304898560415116693888342378294971763579039949646935179674606479752674618380684589287603960504885849054640439038427856710772476546105811638452948551093484888072322553459854084145141670230046627169838211544183477325983125100656938977106809268450502219377973772100683711811216322190128068744053683053679610196033298735325693324181466890971971014176599987803387244239431787992543094946076294340472256165055490095116156138198119366194867753170421304885363868255511557729933224481270761878873722206570790299825819012923283917318008192817655107009628911886850021980684001654496012865444515847110896761917924189756536168423612593275356640398528165921871277732118502487056803016788145067744642062050811209288719616977474494184545000450897906628588154553606524021686573731507409517736503830601471874034577392624954934514658637691423312488235027271019339099224960280620712048573430357890804404940159259480633405532412996744892215782979634867577560979301456418964688990343089613358563549079693797740461122168039994089816134158053788613601486782227072602397823220383979844370275194838465709229752397878015457548036581233516161165608190699654607467118970587703745515380513672546458721367322506259476826990737714275546452932239411977604632489518663458649628968289428418565788484606896499082388448392488812159067152379225376175057533651252614455074938322157849512972232812004452351057677450206346081410060303015424084002820259160814905344494020733340547409359522037330287571705197731357085497404290403960946157010721786547088661861579868388025012328356579972914654275552886073092693093805581410206706526098114980228207649936625703699847742331412101828378160230804642464283635865312214783894898040330741687585767540893469300588245260903190060240057294392006920104305244343045387800279045676242514349955806321792877618586960412613923525965938861279260871044919402487731431276288442564728749465897142054677407619982322325195455091722553771409357260364365406024911335739121535499293768500070262055853400697572459432320595236608660841686365427997620541690452695762420913296581072110767399354308690362550103769456772251403775749854238409568418869934153951170741319014380056632928246750908381143556965982638013887044163285298249078951360058416843979463644176202074632891462558305338435740199212039108675282443197434459812148927249798720504633258804857904916706928293308253197319447900099820629858825352761764451847653044566838131296793862814433019327436903861073030686626144603148699010579823515450607525839607758378490306322771571997371571719351729790353907519702174212301688554259494442937404553807432656093521774930315502137194005473631572186012592173514612264051350084397687424509547862384561930362305094954192178705577570873758525223800204712602222859542601797332455156564127952934012082186027224678422327031968808338320330416133729525101679230525790177935339162674278102473061470748164733296964891999320332622629326967169351060566303905632012897067566398672365045747641093583290177101178744548455601924782560298319921548078754434640890645593544068813132565620043781468736597451320895582420973568645530368031616081046975126981632772768341821350763429356200882330149755121523816878090382782277420368580326768271369839360428086563515453735952833434291283717851561452847346845563467936171684554469420672946130810714318742357752704972129544310156768948509156227984622721340512875828914179150891646755576043291749294344590784943892629691784625863811894596193330686012538281715089828675176278708757899688460532191992926345243061477399897899745373908014178969375953779206482269104045404968156260055877483423895180813340965672860654722019498818864538358409608005741259602564553591758512097361355653857453452285325262449389824559496055624265606483285695424783629307838392918149258759885383169295455770480973654391294392495653047304456938402800385400888072814984246980192647446116924325698411513991055544805179681519945565168235973179083429845199190816557882692689909283447797359090827660210952740922905923979503000639350105330416712259674081922908859382245754853048588109829847131730716945131664186315876109561029581072448745881006778641351070362120748559894754920480288238269903795687751916249935489727384225071633995430072650450499766100481021968095369805502482445699480126778145999360552870194678230832282114895810756156866931238065143331004977925927045480068751684201098704643042033689989215197152463311859581906202567995651221474675368523602362142315375243720502966310577767335546377050678816192928257519943924249399523181805417486108079468606688659674863226506363439913425863289080432990740489129732168356507834488416855840887617417048202967244830317724265957302327454145309713566895669052099241838612421089660183366793898042220940453666125451039316079657086410433059426270296456131267967580940896590522281116875226526899311146790495368760687322532478454612064085242729280447669360996563229883467932451367452191268161747227231872573119121636511895493451456499177836539049995248062327215784042915607126463572150441937792434108989384170440826356245673848472563997274484908248116094829185589185977766967878614369746984571257658536952386197105505808102045432718939791880741897191290386588183001624137092936416702910622910635318771163501082427355315471646364943488618549629549451147008180023747102382323900962086674311675619734091850396610963638014746324293399505676392099025087300436546585340807767724540217367669801853366178339820697191227476082569152955478506716634030063268345222575128983769649269820435131305910531244242538560687860018880080566438407861817641393342458098206214529554461535624187288952811582602278735086991279429682862734895522975678440061288554637066785092652306945757032473896123303455149115789940631004498315409335387794251519894219990553403868876181172371494372645170342588175596153532270202590154935849617448716293125527738811950749575042337259731281795278794305630445293131568362913414849272211713583464554332037363903745997739549481425986008333991476919372935248630468515826554363339314298650531248047295958467481229929416359690390725504470264731652330324678146949788702419756221607241058593476938086342168480224168578510698080932884983283620652375700290886435230637066124867473701640700150957140147677519570146847016836303408919348389171417139476386055303175098979857954019662582011873463389479943529354709945457637080234102922137710603099684348441966428930465693776422607608421403009511621447131065915007057274555402417213337496517349649671311738813267968356986107414203988808270938254878027596058516298514318721477572644274393662910910614390157701388151931195806768014542854692276168389281272502436339859500947756763254588469365884347622802377168347837222883257171582022742066615002366803995675982202774672567142346440895079319422979995388354366437492108877250497053965941154114093789250192093576544223820512937901344278615128287290576429552500060451977745429009523432523737092602901310429598449873056468213089851337062809427978802704067280953159573477698487979824143749344862045021963199073935280785495348864971248360365920877197665692286853090316021378158554402984610830896498463682083299732230187754542124980026943005153687614031235333216162629375021536582736601705362975756452595714287371133857745776043738143357632348813331662634180614951210570716212460801612724725632273411449384369948743037274982416823678967453243295753682901364471312326044867790241474019021473946229153706060001080254777236729359819995953631148819000709480427220553107628864573853661178503465633746450666418768835749659141928475223367558763552076672412948089786469968804075397373422534155687770691143985830256708594012999687637262379274152317612662316575960650548772233544721923405510969233194666226124654198482862680461049089853011311285238371724498411659906887072550240979130444316328864734052230531347982456885550993678664029260051056220184643646923182156026219085588635532028755351771038484499003251074151307256238547314573641673908483435537240325840783105769632823373495659534067163098154793448730888797104588782830895804199510155401145924316543593449387358716177465902812529161962959714893324705288837410441487945317051936012863068124144322677609323821031151876675251006453818026910249475749264093632670948723492296159985636667315625645400492870114781009869637541005322902549796700378647175316412374087513628461312341899346691775708416133715398659115595060044222598199164563612992781649961329148764174125203146301656956628227662914811915409163518578282492799401790228709174633362920115023008531201989581094633560925757881790131573508185375728802680074659036353712820809950056738856285040081019078733069623821361489062249120666185748558166676731514160792430754026212277723754644235222080381510182235386182971270086541769668179244117210430954928651056585663363636908137569599376970535119764994298743815627911444052570597840401260088565676818568505460743059844710588385138704656610841946333277850446687793565696740918837915790422442387055402180295201099650488004658877172185186928449315052650394767571584464312824066347868291622445726588148659135549737024396178139701956257044205913327289581193855292842426571796522346141118695708157070980498044808094808832933451962817244905246390771645979323333249952437160386932224760841911421257542897735426557546938602135499339835923718151062170968450117076430047017119416341804162191144725374254974239448648208553340554094365834973668524403922965531872849494133232314114004669984770075544375638599796709686292107069638683183956669362836900132975238755631313255331108858749043462787361793866619565495880122224792479416177474072426410242965879783031656258374288487542728580257599077799566536966819508770489756690764765831254410185877795089519874037122189359452841727351053627596944704117983881501007149563294418101039463620588050171315325343238878976217034954106467874177178531958807522435783915874824014354138608104380936200945937202430306678609562297251330296079015484396201556376959061383901292414269826855258437706008495828064817117513546285379072572381938384880892211904077176622387252874061388101352680550190458796549710190421967074097760735485360002138589198607971527304382741599872897431804885617858545311612857007445368879856518674472059776168101189008069004955638212839539167633314299228032074560501212336012697616741895147814195650247556610504157622721367923715035091187304548420133243364744806644344975195539583345290182476297120062688032564995702886936905861592155642960713583020395350768303950694390316437153327541226653366540671737547068086460752337394185103775817570203963974545290244657216600079604880483946194665275607765956614914814065704455623721310719159216893747154905987713013938747799926359525827173360387132698573718375263867205350466890444369108695639431526916833632769689613860893757037049238338805900353644874936938897617069209773958534258024039686884441193214533341541030647061978103839990362765735692643773183267321591366118951957534483496000421488034899355611103400166086564292679621922656351023630452522230700061884307976936246804184045842591576747127649936027761830575997526533022051275065963268722563482904533709306934790401093639630196516697972463127970830256273103796924873921432174000419576089868840905578143988071945657690772168777920413134557944265338897677223001589135863473765996435667503653946474857396057191695262621795660933396213292365603925011907105384023089466182894089029572693023014193018507696709657486186243589217283861908316227991091760668280099017031178211633557260328145287504129114389197907863354899542780605944391825564568291061334658253456084209874369218296897677189435995329179529209333273733627854143136671927897177389619317546151738337306217024965464271037437243596161222725036286304822787011400533541827738452906063148027814361888233956115566608799880545793200931039331683845294785924340289112116049688509345275644591369204477800964712481105142495977394126138287595875112309008062995709123884992910903189057811545527470805734873789696267150789898889560303990032327584767101373740061861711458948329789546922935429794147146213183683009191355008036994731055890110744256174299310683175254872757202600961226562798406577631600536678955120945859505289946763471904004995822958145322663472929986732210617473104193122639234902387397759899294541745998828650005973308337177105602658028470052667686988612648213947866052494090619024948531201782063327217517450757514293599496366553703541362125310416452253626118850275438297648579156235517400951760199503964261263117583621045929023206474956342495918148820902973808800737372702802447843235268930626725907419233540962191180286877103538819765481854960476198186149955713889362064741774340310406740116816947933766547918796891478048672411179345678964664670478665435539872394169975988259469523538764494625675205715347860380195497596646974006861715942044304303028403786757447957978514159574404653703074462739845726299478108312048780645188475200553922705648102041617496190393804649349376758622923980160514759134416669765403769712448981691478265051071937097082536789915161989673557192388020624103188051965212893458419017914761211238845332957630019158372544060418977240819954221702197682943925401687478291478236937274796244180785543595357717261235587103856393165013246280696253588628888469406853494244832747173598171163486597970612257086061300277671041275619460245283853803754622370466438464661688486049943325120650016669844427379010187824974712344709116421094631154964109115825653068234994523034226186015859425940483431319290748769954836367910554315281589162455902812867669167858258171553182338118195440584816519078525262943034468927746970071690288616422664772626181883137829353513364687078278718301538409028145845940380684995705851196271510691040858484784703461497974857581683681051451766437231218793052452541947170549722816808567684241531260853140352742675960436660921900977230804569006784676006184124456378780648104110921490235213119643729191143603141988724690337401015924374393662661854458730759977041633689636819106212597222592311159356179869321630437977235839187789950573327657417451801227743975804721731273578955314567800188129610510940912857123793633615291272994366369548413000819764397659968733787048574235303900055547091810827989149283915562051865709255082920718879065737250488089149019288675355658467601499166337030039891790690641603083838895925321127983365117880302641308206599541819692783085252689648151161382322260046587088452004954021474829091550421016663637135942330036373478961394719880009484421180184275528859811612819709863121786185897789649612803075042547280525293357355931135221174650041276136730839822805179306769273483265051792094985041271227080953567497990785256867805942629097650414119010390494578385588138602086432497350779177160171766022937984010389409654522989803944458149351596993276672488313508001528864249769492410020701637690377054794939197859565020547449255826659513146590597287410109494940822374577314913965985634248041223991124929543896362697283722461016311270859703530449848059127452953651623414197470613056577538599878603665256531353626750854538096089000926867071354775071189864449656422194052790050793027792080690264128566330964332625755504727280231762628301988695579295241023440596767815252813813032415994115607653144580092191121628237461657753721053622055348818034440918599152004997032428597608979637084547387244424782885867219564922546409221705979425821373852189193096723276145780992566710013557660116355640926959047705480902140257128876573493200958347220450607588511257332029926414015194807345104715370805518412764357248848272881574512749015246915767077565050431509131128079435442533443467878385739960754475609820212962228166225729133397362515227726886758041497409792911122111097606985087841163470441384496931367397151980034689061557990607687878817768132723872438536602313829198313472032524270305840062027425856098071964659867064860200999723324921583339551333732333236453296715772740572741459480660447476929525441192050611920191295457837932465165914231597495985386139584411626061249182750841945591057625930826833333608191015437389720571843605428579074706277868982635795482897182622717761294324907298566901538961227063830794840056634129246657362733086543309111912803545350203256598975865657204797849198768612974300753093218724947133273292361279618020948034554447479857412397536647991683442866151068710565575442179428000768125843254501311087474530039191512538194788243057887441255915531177634460932440091938079343576705693943531592300488766541138249395649434693839296829344114521636039989005647361260100430005506617329656185298019886516668702251887568976603158474129112666096068780693239883624164129103785876365015855527899030378640342905567584267154327806430217541717440612946235202087010604281023821946187946229199636297079582329111475702544181600968361086562568509996778478394949936042020981100288677956764833453155321218575242381296164211317236652746454534311061244663355251714016105412570488374559234570060305428600550106604005012916231758049751197808261579868108967247414509679257971539388134512813717000697629778892882544727588913708199742327844433370616796045312562849599823745318700394780951888070020622308068886439859629369147385621353142310632085702190981572620157381482470803294765510230172248849507491688040255113022576587944733537806283739171504774762042047317370085570844189454295709561645367298019160818436165363600234051375929468282796445424945020288674606573902683798806841979728620159989375497528955815969127025590735041922283095106664647588168271180127281856218774546658330656967635455947123301592768252139432318312214268690743221416165833209041120618834678969293075870515276009857805832002838173755913332512541427046459019845227311640804360134365001516237538413502388209572393937902243143940827748833553970997929398406318097933624522124061706867467300793503770619624601274710444867155753239457905252705538730317474243108958948813191254173448826103930465375092970729734264043073721345021439026067822460625814466296806403253967411676260603243318564884231626988607608816702531211356140283046648784561417846975250721467140785784430812369764119654679873622607150774658858702713647359593678941647515133976386714165757473289477614944243218943069242034902421926703878455640855118474671171912326146016729123527655485810150428196277486657033783420296416638803862492896007066531730324483530741264228131525244468205516437295867768176669831935988221480553473807807672225669609075499732123515953570717139967401400693978689500619294504311087785086175257211768333643365193020105709476295424574100238785831576409406189897475104052183741509722949272168189371981877388183962760610481214502253330749214216600992714533781923188090611627022827094021887122548721091792766546294125999499106759255492159724624728644177932751867019962452792615589142786294149940321307303777569600919403018199048803346278326093653456371862202191783294145500737967276860651325916222641096835034434729580429583482185294005230737094005944978567758555650275566274639440532129541208378724026596482714078273276939141799747044682503589609242117586657249056542719186695832248839588588937324146167894219531215561853070000696419087259523717842296483372420029316215095332066816927884340554338991808233951224747114977955120987482851178027698107799838057180467674479682809000130371250627905281243576568990392315457295835897020814034834090337689416648162188501955568033120020780323592923112521587190624939815587926365378838618470694837190422018200835044016403976300674540385461516108677654680047693010975930098382825725801037366450967158600310562471039965592744630988468687762506895683247488353137505185843191174205544733518040183014160728610760357236250562585882912615190588320945756765533770220353248825476260844443558654030412299163505081870035511994720495161848637502045466458839992726804271523334761206707085945182336675538590337731831074582036049350662072059466669411402687753060373467364315492639694013502901515980625830226241186698222146821947885508951510101919109682259134840420815603329475284142426080137886315150912333852664534834104311501575369414849436814028512523507864069068661066786848021982591293091500420543122788995323997481012061331093795670950976956573594388445882001936721120303737771532603060552802746623468021767458099286639131790455115890924555219093859291568772329895247368709848481846603888751352794565879496726457976122305051463584667861516016378356285428897500417121366958181036070264339625099388119519171019968337217364125421602484822890609216530398661230550899526420304379431172560783796494769592237954537067974405220757462296842505219856069852620597139146946966101468851551292805937512536410523357358657196691699071400622268330426657873746482539987038293538248397837925279533353102993941690714520041006429529657122174609640655941944275556269377167745178222646810784403856628195631219470361425810094354858783376311824980424305913232973768667001876227363701780468388592379212067931573375519872525575043251472221326586576810815068197499971025063489254519761929723043173075180350275061658325005385725892892732079856403167693773944467735184372716901867243701344909844214907870077626621382134121190931696436104995288958310260626753349299901442719481253841296075122228607964590293391905927176552795853120770420156347111599671665112714766401825052467834768420703896566014079231195530761515926237936561203429649311889179827565612143244164983111145192880855773354601198935363957034355991269696919527262187560880524715797391295706932519764398202655946522305095137987270356439719769351490826621085065184736863982910317575244922412598868650066037631208160554966364832087894331271157636351414518995837799784152950125578872837982812612202935229841968404197728354495484980077853809434086523599265804386904218752560362405794422222952047583834598052631953338392109716269374984166333408504662808630987480506936012987749542614124052492047599643254519680091625618799405903880893151867223287500590035575693580507049319209377112392351334609414079853875626563222316797099099066031649098058318834245210633052209696539598101016636728791057275891347818356712989490640916753022363452641961480377982364363680135236524908155056103776884145281557162229459036881300649075311874549645601986288317572087481463941966776699179399384118798881689204270339773205495687879178362807067563909147776868358165628701671723727690068419038088407241372976190564973344130119059555291905195465460364933960408847689824203001484040878556492234952799024464643618710649199186405032071861348783057714608287017709344450001362130499627994172532292195254458628849379076724374483490034241145630359947567800499572967578351496596906411163141465528574734101667185724419134205139525026025682595712544163466769884397292770354505908643501284803946900952360101792529977843150070720737272430041878022107749796106991270698228653049935911229513869151846852650278158185934316025047589038725645943018984950563058363277708246613732941680002081030932264509162055235835914799586582200962579258535256293064733997798231586691689435716018064372342357886261632691838429869541337050562621152731369804917135714957080490723243634623602996990328917608761827156899574749413147372449060194546515192782619922892016140053648770527064119951984180125876477455661899699195687776285658608883735309654035712977372917390652526754789759352968492049394675311109356539639811377386246995794778232350721267353064697639060874079378928831133111260545473152682153449343878232263034992462773366213480271202686132317902988950532448582986424422137960843086420214039950147408851396860510555861700692966872208131867819159705000019354552947559861896611290000066343832178480227972873084375012837063753855056727096960700870153744085728259147935241562573521864226136187591120850716937300959768684018294580688880160154884507140346130211933837419835724676033551491309954911676251282954844551994398069584979532148542785182350261366264992614502007019335979895811126912764019759881679251879263551154634250135764437933516241045271064450737909467747691297928668113220195725315367452956496054740018927769786758760422034042518543611623072967419201466463457640371543767046476228488185725363278704090209459617783290081995122017750462659935314022583625695386977804453797569977164693100010186344240846302471635901979863732399216314975866304588275874363155471898623134677222949633997029006429612658820220338595776281607623742155041791377343082862395322982865733121031333557275506183852256920018280515891815241927307405024297417268820260503429689283662567584724593780916536396347456114727400452348229389914048326213061778520519942249549433416063747230818853880087635770430633411678487621216025270579834478827314692003159963105895858355934703184343064309081830364196898509871477568317268112705786688496602655709850451034417607748844586439141032825491339938836584992178607556785403607419945416954748816715498918051515618548378210424473085066445924982213552887439567119897243600004426368811055423417669937984219051844487926947940761840237501173884205190545262187865221921306592842888194418846937354545550699515733630281674447798244421537706679443484533262143008037881134896136659900397315781752524566481781876510819036045296078431721343459967906529686293494235416623817078058910486856793640986160833082312208643204604031406498609418677193045464377840930611431280476995323679446268929805195259263822041207050090342691962184134563725210794922657741560952495247767636060118637262062373984098191517199535904866555746756589522224620091158900776816247848148813383685194784637006261967633697750312986402700830485848706315826818670568591503396020260357869131232867773898035862872442656323536283406761693952393687470983047684441825884370296697728036039750562128466075474798003050474351740462776602544130316083029844808806183874314066635003220325096479592927980406400019300118678967956136001284680711066388609330026397055065892639710297056927222119721371473879277092686568111646004672551900257091950190185285752435709420819392982351889596966920080736615161528992551311590050680752212901110606348729760732118257786903356288070626671929852483309422635888611310057625728315555004130783500734390000546875095623327716617765970014852561971727759963602773732641000211203662557147336192263328839768627846057674235704083023212203992996124583790080313609805423786198853644531979995315533847250173640941284092067219346838961089448278120885039271836722641184214136435936552947980236255678134410306519915178993982791123493418433878034659905703591644431135598470414693339566229048437845067599840534237257409508765011765946522304743777048349001055137614171785716689592193536382179902097014087857768505882844978840392994974040485038409999810028452352889901334552415295234390681670408875110260918385909526838937644365703433316533506391469801293522875780771626472826231963480910095974618694493124294908629287087316913816650548386446514643795078807248917656366796253741186837599623460295790523674175048569303653456595920059513471090561346868725177419111859306530220898900533530606562886322214523078783908192237226211708211569483298869416401657494537161261021555439269432711413889038218985826097266691689196102853164386377742928277106691184162986627790264567351288925563359311819448134914933424193243466053736235757650881278608090576659007464980016373830621370769763797786358709167210391414951658959178066053967330724586621537877973809616986519634567564577054373620517699516950095497276703425415683002565540827701260247101140044881783647445743400904459260734194205175708916381741397511165794925020545631978598628071610274854637271257749536855576118114719055742483121392775952477791581426454910591943604242950380296490546641891353929232602820364179992083258751365170158753529000923705032117241734842657681605538434522289208300926672148866401188454042388479488255868493611779831447547223362702163537189288961352859815448485539992728160124446715948110938129346860105032714491747206953521716392121980812938444179191812354269297782046792007641237413961792339481685916858135492418055198034003150158346716844086635396284497800901955132302677781063897983793214824717607322953586081683801454679134905644277492156015527672169822953448518436690143732970743600587969520821990765200780781822159933955575395813731331267799589188019195214114623947810603585385289048394726847492272809460813876620689339427720659149502834552900483101610446276299423291837372916905172725005206127361801571806114171308148287661520077166524184613803104553445461332960786187850848894942956709958491560777289238723381906534528888879642652850642903253704081530872148761926681700792694286509847172793226976511131348335522650147717746925532535259349482916819890897699683586461563747056659804975552944565555616474518758638490494883913670979531254665290967682639519402474044931356851857042307733437749572499702685264896732069943159657857578713661294607042459771123733145818454971171490481620839073900929342865953440908003795791240446357464922334356011044601757156378057003100324831273884416501213707351149854850117101222122628776581692985115985960494590890513056739486317406878474791661504393587882548345301156288018713615508571295544785925451843327793584004981593555087184751637128859770106137255453960799648439681810922786474775100961461613393646468595230992922480928443744214010801380298632071367451039499536781147059114375560110029610181089468024517981751618597302972820125304903706854977930352476378255858681258727560124814362786739655174947099370009028127532090096613234547339277316115163074932237449144087890153330743697753761688892196080159366555511225483778793195968835960505057085411525117186054546072371734161422652752304699687541420659752629569877349280666232787695237538652253566023752406181752252809497234972201726022193322130134319509308915311359351520232248568696119927613389883310821156370882147137575030306443585509425961074278204417102754859567219127077250368451662173019658526767765424477011253548517799529722022903733447491690821126596994135129846622304408129934435553055679751359445029488703639845475727018350116378400813211710963331711186289425357614047764590306158196022808104344358129238726246847042397771101987876330520465538247303948507399992079506234166107374784746343612895489222610248205482045681424940557882556639535499172968654082933634714994521870524432303431821143062988978547603310427419111301885795875156586117280503955546358594048393239187172276332940349525941927158160198931657724164442153485359998420666502916623689076040066545296172940133301729870386677705350453585340806476158710531593146008844923363999046123025146748371452417445135012082890013321080687885930162545277026247545735726200992451952954030922864790401720746928468232882245404767285102868275844839300808509014142701525214132796639455519175145755999575258649261954853843420159682578073271796477610807653535960297449807887826796670445560409879936856723485236025633498159192056300039322258451205961780541445038937062627376893965316858097105333996276154318116413421519285451273800069223246345788137899909115796346026427419700551317584766455062832821772675175999962008941709373025157884005998023210041395859538258188326027060687851964685412518379385690073994258816613523229826639635595271152891409363585535672331851934057984328626113746013871096668909853990694865420119643368042973161915761928144125939586162619119531328345991112609228023917202799806651114395766749086516693872687137105598046328319454533025518837127176790035465441147120186544011279373398996759060001684391434603077428581223519106516172142411089827772104196902877760233037693781955656315704762220203770562882029740114080991531528861739775582801286441618226672992737274892170233776212638469230564921006066341589286314477298824965341465605682073918516154939047426816193805066073940644871041095283925216927083030209527141203446071749302506875723528047061051428818441957284706517664920531374734758441358700190250973121401689070839583158020529050259894255175115044574213625079182648855704073489510153597945308894128880424952635164822998225763696514689288558439105559824060217482928948641948236061691475527704070467535734912974617108820125714934547183236417915350277966203694689119826810441484088914795253147318929102989274458967944128646826024114229328439564156623198767237751740070277078533816201752735091644242966945530266099595122444583296713011986189274291711778593015843836341220545023762066181867405073768871567672401365709359527414091952562227300746104059597064876698601957680463083138023279363069674796248936533842224226083822741573702335234274943708776950441801009051629845077584687669705897492112021601681472977818730750186377382225238502861422704733136732336496004254388658352072600744772393264715429606460898384683419997754843399968876516472852650356323998854893989390048608650450954863361023604262056209468734589501360353317684590399131094961525913473622563783932686394914528467416841504035978795639019219662540649952756363992473982135733140683485281968506742062636562982409652041809694495037385552199263631049535244844593713485934085015349747788547575221007522124206449743710904795158698617196001352842833632186033635247977350935261726850854641586355977152115827212459462733879536779780867633262253753665796674413928954858394569624566821820893655893811791402235103404668055172452361805553073110348759050836659592121072968833057565421332744398378747348212223308979893113562317527531905460878432469479620074220188030981664273965218266836105806603911945201570033079261401528715710054311506458197316633952285501350215948055858603390010237840747530438081399037532917460678192519565938758735153944598257413907840614838132144453002993616021792068294927684931977529631208016992662688681865873692230262138894191064369510028143133599388733642129308659121450734861944258803261632374247262458612246576613459864432629747541055585726020564936976562221154722761310419114576399300873773496227182896848657711509997870718821522236713186890414724391169004707909498946496818411130351711193877504060161094231539156701508466996647918424259509983195564629833601807585675545237694151773180373018475846310658001970495814771115139391234850010455275101645992259810287808231012707994659046372713502486351343760878538636850442529649419444690224253190491952460759047141962358812964942267806943119009044959059597415513853609806158379270623441192313286867524457662063354687795879035003640010496558600692769607500195978152488607111242195335119369014718666553471431236367405576417305183104261116695779624297074973879264353817533959016446069591428592255931263046636431872391937453983451144954583377631881819018755694300599662729554756674937335021131972466992239145132752516177683683118843141640360140408511394989841052745670244466930507810568099454683219912570918427115544594906424639264677670738182860514019801458540366895303087936798756903908978666090230148195870803405563867180407521689762973346611452492962734333828271856180078855181898992015655745171299158096000414998039189262199679362576847297305684186106479140536762310782723559732258487597530021387275239830341558816092301923046751732835104674042123202134513385340942739809674699817670220700749912635254114143146344147894635856577850601737923250768428979432023829263561419353039872188727258604351934573625262176229232327844938200305394696883477471469482528739667136839014341645834560861914200890896993441166780633457229409445500942856221755332773878257056508569843322427863367498545696923599099622267250121670230645506437920829815568431918916941221950981503132616900255982177184321922824805267653084945213079685091882362277395630270215901067502948213170190432046586561553618740622629491325547752093900716571939105283871265550803498076201378256210939180748887230113006787453046647492099941669549771651371573382633420624567220004327555636067935812190766881358285613734543368644460287927662317203701942136201267003963986718271714344412040534901147406732892235265791461767191770117991647289649440786906787789837091772011719255856688298469031580600867205696970452256340477619737000541734647546174143560221046204371954289892804437674412580699175480763210340033770658055114866136616233511340777572623958298892609539414049064857326375597043849319026073001685082846089290556988822771379605536415901244817534716072945018837557054124260034343968294927191662384895244200293190992023809297906829545719167487280217802713855459234046541820393944124058594192689531123408596190938934661762151140374626691739128168618799786068042399320796694004716412422296151429893385165945273115250171128927359282027702758642935345063562243696532355311342291345061462884326501345066200454256120994872399593729347808503798453883163757520812018836546516700593310687341649383723267304587988518168723685431183156036159223912179989415704175628496314683517134595762399329027730038594901771628351246412031743618707671225892639278425187990451481190135484131702384471837105654795752491006360097930319434458773654597291663384234459428411658850453622590722497201121700843283786832246802344808204133473362379306976303422977551010832397311506897407777193936880616491759752720554377676976527135948091557100007923916582002209040530311464292300083456910404187539953280429189450355180952111991272062072876702291306009496879592848781078670309594631013929942470814100690254069077022696004924240311014933342032179209894146099863708550477862767720086870447131319680877964532433302202323745602424833773345905163681717734432274464155274816342655803960459832979615034279409404505240423234547923972277979833532652823363234434094033415384737318859769472144741353638932853412699193499510037273939196859282167762118726824165217476914772907093392881670584751169477248351222750652580304846939730487088518255961756165458890367994660947859072961108995099229628634759130712600264959673349891153613682535651784224907413149417094891694156665159508418678785582924380485618923898190606044493980358057583705613248937762718173288179346210596476434139932994776650168087743530018342994295557710616551399260317914268539117885754065628019961859356775156891906044380213460013590008570532299319693990826287450574755723377069675000033722831420571757964881629233687515691588344409142751772542889629336980301326428411944867695651110263340008114354539010681490813284352128811618972296946734204120359454084489509364165952369149410743886540707192384345911464414338775417469247711793876526615823859376663847703742883341725806725752558145010494186352974881235937501985314118956943426276964346879678993735512162008990160728748895666113121945648501235497750321703744340176347646817638654039261089732003319114163354981767490592954899543767583834280945754088617352909744939405030273623511269435050821186128182416744198272484490518758692355970504087367853987136862095935105480485013984769712267109090330186868873333596733373049581393333573288509328135477403051451520014280841277478588388972087771102375585053237654553908499558689063875168345240884028474817150999980301244879412180649536846231251504764096732958787629505027077991497252863883654545627995103946829325764271988925268866195261307455231579822853958880204455661339053968693269542621170546513052818295699437184737327621300695986902053718677862028788029218120742710924112871048472755368978236801087451734887907092252892079933177100709080604960978693472092352205020501042426997930917454110457314320325414908177272114239440463229150868423530484202015692871314924432215972489183954513318661898744721566204581922216345748628812987743080505998686101927599134946766959477371121199759252489293969855212018549723766030540162184989308807438199613572966058809840479753146206509076134307585691112986575474289036010650903745255176550966910598122142163165164451661174725132203555952712951139972265582579448083994623440411324994160305467570314816035156578093786445835727400820973069903904035166243132657702921337553157175687044797042497508380882044006312444565151515382065213286741295697080612420659898223648710525328446812562845618142471985106156316194711814902909239094129722194353734222452294822810055616821358544034176304181741954843446414751075289663595831374217945703262888990730028299066336967723655182876687206298926528821485420512294184668331565858352009722301695287736202375850595743898915777204403413613819817247418056609979828155295175009690494678315137732333779535016907239544237288381895418451422862450473785931350945594435388305598881988565437215674558901657598000867550495965297404087657231207836415700583786122552231051454304208071543991232330332815721427655332054203883543475852755395829647493282958118058157892993154573050891119447143896494471886761961814495105401099059294746713624641001214855119269595811288028313710556682442725627860994042075883926932547176488267567484342999788116500075148522358103098796831917568633636813568151504374094496246966278472967310102121983609144316564072114187140662057117599234371813137791267426523499090417998475741406325790313395669382092622161131539720607101410485154912090814877090585829307809937070330620935573552939802787360512840212466774709307793328459064471203832757376719934206186391372147487485057353984358871844722365073261161104507158730913281871761424502197606899755742578215116688612004227078348180206525600394243900119142736262135755623993138931785925584518386560958671162482342304056200591044508521698921845251956844005607370083440640331216859506942113342515186920269346311322917352952326710487149569883530800742602271395493133098929793411717646801357315626739306075971422044809963850141325999579175506769925517782794111588865317671774775632199861247214815431817711071756682616351672838064809180747501158683987375498462278110820190990516489681710152292231405595455160406170288597610962557220289270361106997094991096484626810421184526333571382175994670020013430194341414113794460326403020911512246349001081079301003098333527367581277976064350228425530934771481548128212917390300319860191767842277807539470480243140406017879074348190603057653680948383109423560836814165336523159881557968538252305427021320624450975014163732156957465503897279763414307428454080330214752765397124777419718077352901686607431669054064454418849204115080807426868921810747146816459558680588440326215028349683499393211238175881832973413865921074538602095536928103713509738311565605222679385522442533717634172861520136248594339532739743857197318691648746654207139379833019702485771084901531048923001492456496759074333292911444376083382029856309542597124968035047170272627061204731808823819394865091491466953018363843944880841517092567083124518054634428373556092095487875226669411156617814309591632736420667802656109728885774425110592283244766506512827056441673825220217950303266551525503044842219813958977899491883891726391983607655894181326979762114065997785621753591830651329535680547840615814954737183609558950281661380036976869886449506297732056458761082325891598184417732040253202333812007591089830429353939250215694231370651608732764925517142487338606686241262518801753619887513183625535541465187024720959555091490895627573463916310530615028478349487779764506630162988264996340581754428010998298446290623662463811874127873114084595718826290626227178149764279212623234398950842800042730629112077640412928667182931139990918989456929000550445545507766025053601761608090185777008049528776124811464284429439891266104684543592473757915983148736740522531710861070785956920180112053435672714481809204751729027470279053826032033427616069853143111974384157798546680850194540514630031599137003823750306317329447727698871560951631467428402983358292113568202761407249876354818667863699640539257302280338459572495088975316157864625833314165316974908709788781055313654634149721936985402716369458926794474982978086595429337747867679961635319881334829441422100523074888936600576739966433327197704573120785048843281734995045865533733413333369659580650269572069813027941163022230163663283702856899891804093262441278335284467402123439545172208394532716681697044158642406578681049262605655985422658259124013278265241229946237617565173802675537575955456777204557485331336120792247237458589057142042311934871848364534137492435851081171244226142520941272080858939056773910535671480778853900212322685633944317151336760983406358090597057603722083848252002414718804359090810603351145170171586406543543907482205699537218028099084461972481156655508992827247074669313021568850971458723968268644298762263161485226995647992143256274225717050081960606589301836885000326420676682622807028411106625657471218500707025732368539743255960231360393841766307366914834662451555830769313115009604086676794391788687935592531341049850505618638480616008105682243032750951398817951335578598181852554344986497559180684145427927840107788630556524860151030313998737348878849474777534809891647856175528725055876204270327881064752470998442219354707947547716060408528110678809086202939158091471152171313719496985502304953148004282807661757032072081819140175982424113416657231427101963771417861697829109663946259939769978728356417094993277640821156194328709323834148238620548831297945222721119317661475977365192906651059331509520743731284600533089215295489431368925230095261472677426113698572205361561583227228870687328671021826925003422150681805729060781587140539031701161708058766507470720870782068437688329684526093641148814848806691180218757716132294321318287687899112315015962686045242615847010426494557920926978353558044789330551758572848634168190847652033346723920783999039562382337473815466165617052005617706358669845024755421331038716733343242658865556566798662364989121788768634508668629641411707825637104576871934889275697673177410493940295724346022416346629187591661500318053594679557564780951936300799375252296440835327245662188004860947163200623818478926034564867103417793012024190523885299106289953938059544942005751216393156275886112596785978958527349883757414898781009441708290080615353634996648558021175500981214035829071877267999958207826105097487677258297495915492072194062740269686191345620161977452047166908688657190840483483689220942154213595479045829649993232699605694931696382801177193928669613611248421321096572304019808651366722724585634996490720163708488586164017252467935821433148455774540495380072327757999916357880083812965944191236361720496741480735293653413418443514782045802947198778024768246309143629971558708157380168929429760722582342188841166173753992516319449926003380527720459002531805902600252130142713810750914372806275320139304327313011045541917526421964770766127327644565265325742331236342260780723259922880416004556091218695420388861763494374952901820365103244068341732186239595372596251641268765719288549990366130673112855319420594894154939134256187072816751927995483401654407521441038066757692178637385593612514890369830416511250793888524104738633664971826180502212311329764163046362583120180689145181440814946583481806121305833254690260152988631996454865489512285130169247593361546108976599572016196593309450366044095133262622089370383009576110591494846505026126743689634891215242078425587983748442744730777159279031965199584324386133460086379714529224872498835317991526579736925501982724586139330050164084854788540650731102905252018217708052334708953881393472760031513766347141486120021624209622737992030384634908584960284787745027898228909306169727192217894429933580338771540249532637431598266425975785411447908489940980451374150406936461211478482468465168549511903817631451791158149896630612975083214272415908752792162580280540786033876354452609687071711012486303458330328974687001428988753354981812180620499678745553360963231574218152143231718347050794929141443626996567129613688639235188565405746218565018543858731886344606218469551659576877580130312387350319567752728906013341272638632989573477378588065952479644227825909758736744900786476661375750905452831620093723549337010131378433953662250378398836168470505903205935100203417740614046418986894983772004741469657845729228912250109791325640566853190680352604234090041129285305311595146434590235673418584771519027380869265513653413294579156765614751400629262607216251852150229036214888359935045808844747619490704041055123141723720637209849871996828481288819139755474458537511903018070747859335827753423188885439143724761918450833467407204595338771057566121372956995085179995616530424958983193764926700418964691564793923528210322040356223208262316628779654324265840707280338774133248458123697862013604521524891145880120008902207536912831827590497138888757189485518602758259301223263064224364655169882866840613301290687704930174783752122715369209112154210435609344801214155946914775780647683511783957145510160861965572812477952538043409293002946163257210086573210919134630398263018632776442843337531326250766496196298595531956426935743981499769772509558959518947494848485376117087023865086667867989190043143602463527832009254473529123529333045710304484640565363762758551093929594025266549199563839609121200704897205768767440214941586086513712400348964145910391872985518824195445709880414762660433990704285623064241647760101434681966695831140802929165133985888263084595413350589661773991373949098083899046091921378709351157080885143740512425141462423802374373614185650586727024669127354442278384583112781205551170579700506922150935154118403348962665781598165022212424883957128031628775338003662327075218115643319077908889049241226223637559874506906360731944642275308109568663911943217717607239830544462332882768477540600158849568889374071003248518296790426187003765394117438923734568015787132441693623972325998192325168474769484776919280911356261272238140352628766041582231874964142341956085837196752718538300647961365775702559717679644769730010906969780808314208941926511091242921356494016130171256501249415760135303560982723438075557528998339638280221866867384135510999876615806569406085990468102203410488649998076880555203696433799347988779256245212726785334389476017729158257742622545345806730775631233725942836640908655275185586761328423240382627207254442978784556993141144097187151872452752899481086525294451670525670415405466515468806954851890734049216753357432517011288627857194219005074062056391733557471796177393334028044945905487634049596029705373091089676753732503025594140723101793493248456163048946259211473879979608913100934377402458147462560476146838428225003913100600242899566606379423919343107602301797680268685799748865112126172827331650220673358545722800151733406882443585253620608880454625978677787678278346223055970766441646298376359781284279300909107749507887817767900272238463788067052127894461951612794682803717635699471747934425381079030491490318571733221283619646641970946382689246108469600018278828974925209607361761575192184786881218978304155000764214793551736920927889916935556649787762119210193893916314728691677347221154373346842394966334011241095335849705581106337303971930835810932803384824215096822558488715107981231289021098836852702481260591569212676925814591381378565276898846572201915509555350193049273244550657867340159657415607035978183006512130200621091146364309318140291411705565773587184506181539676535089127739907981890657447643179323710210190568401775928064043606043546990544968818726593797806297143377498594594392315007339371985541526353605606541025763649312015227960124198434687731581313751785054223059598199533440349485869987196867735699952572346209335101430017379412425914775787194024404613616127014649440752806254611363553648089152746689147354537922391459384629252597429455143889483118635929277625436812980757497236818356354080794919043972388389284424070291505703109262367741567476855778940340255380690666546146044205565596725340804028085583298565801656418461036943853202758345113369247441628640307463167234427348383762197955629783874901658673065749314367680312279298446098996820659053131603258493783876728854354202748622329792896064687793738518501293714106045356385880306569101323797785865973764721415843083882905384571979303198003511662929663921080117333359676063524104861255081101216134732730433557811835742452748931871889037615717312491346303103959783728713218969640290147264515277498716332345795266494931258657862176625498674062393146657246459582620171134230409771123613004256702774884934472023322138154684005866144909027424343779365917157241879918252079205664029594558098359877619555609299802267697994964971095313758774705851182268229856465640132622822995254416950334075190261543607476543681059005818698253847301227478820073079428819177434073570506512730331047946180877951277448543344530737139023506645933131311699351427553185475393089771446915955143935142236568131200315503727204797408410482976433660157749337345903651879003064894435619260200373010910850369824644857554654198116755594301555417209958502735256671926991656379030494081579604720214405708100165058753125317829720993047602659203446527527026725234966052975303506537343708170798395258692043115949620227585674800022012699348719910169454420204017231763545405509082545555534751977457337162420321426826540579867185316920700097938530396412178401175408885963210076161923065204934452748566334888563967069001012353267959034213774430308188765972244454905371499089499155624363007608789495118094863707870043300679506567631009478433589687990669016016436877488727770933294224495414063316467797737957634398253308048418501547349446473151680611581928000951054374503337816394221838704042922173013111437982817163443442433584166722683073828779246439069373051529756357457502548493232689421844309527896354145029741251394411360581035995533579026225636168564195194436651363151878602788240174795105015850447139322532834087872720428825120994514225469319718725354857867595609632078731752144266479786884645047578298195951945067094323529350714556480256169559122080177898735415623632322149987286308540207800393762832689199362872305714283152295475124150960742585028507164503087001257971191116137842467028818690228353456090824678489495940511394980801008725338357002243090167552515200883556046291682800721741242064039329822854187380955372581955422136696543861563889477354636876714552318884463852720420954677811979617934359272776669849298287797855713039580890037827686608267431606902958721226029536310316809235825978625702375414067303610250870963329271392717042209475197184991996043218903180117799126553024770316558794215438627462150107259883544928059805962189581084676927962504817235074525378687852301482809276689827046481876264771666644193212040650429794491729752620007856950962498811808537009535096870604563493542820950103952589416387963153366027521014918900482812236339234384873315589795708025614019779429900089437614193441682613351703496100818648363803608306321915795236844321606289603803919559935695258272426007832951139725879702320374239864953257851533654168762349933221406732714101009576041688414761311026193384485135156509581000084065473457237816820235503165577470017502931685983631272055971412372008709564120424466259267667267096714914511465452768860736081903893833172332704571123435363158979139313044504216371829008752475613041734576451395589748692848453988945903982846360004185519423991184622520356774287799280611053908753881318821844784987690885673492357227313401198673517600383079069813050852188263223406139168802956049058229563790881751826747689996960797055788234603486372481167874133669060760417024410217373267826956633857347091902645715633227665403702152445635333063879752120918251790726900429353390495541683722980150612580941314446749983628627058385506841506167342615179172363571164506974123643880697738618938306209826489083025442183294339833482575644502566182487971494940178382618766753790887928461075090892640712921604863114561654593386943828933531112749868687989764925362459648936365087527004938302146915619125862373765956104853872553552624662292027193571347385213935184098943870654457487426768588637123603639511393795563225517584497456676898791225614132016591745945112177779540974691527094064068674541622347829319536688833723315307669370834746603234834113866894942843957167119457592637445352798363889636562481552428439035052191067251874452950151094605509733581501910826141851550820236815937896462572097635166840863432249714413053715514432086943992638601784977965034880010085045803020260339800542157409233655670746567344430576585327780887356738826654499809008168168934424599353250576212213748840502744410246678166076814748757829731047320694573408297869513697666722352279643207684822286062751774891170976699627958318011816166961593028554724801644013443875899636866045628054221055096589807307159133383122268957509477755153667171089635620281202985284939151017537828979143489004487767918125904524240526033227082218178652314503711669478630833373271566272498469009295845160139666393156288744678366043885258397069213380330017941445256299842030518336146087044942434099151209964912453455309404099245964608716086100187563556670450144215595038018091820692329407985743134487637746911998186296549644289993040208790708983749776502568489212535438350034425627112644876454600577066181100873703287934014435736031485705976852695642690921080540861554674853835349938427010320051495536137925193830066980095999894006495981259149166785830872190158928457095890246491644310472859781895825260889671682222503661250348118777566217768006596602023826790080820111915608605072833040843691333592448414522366357103462112572097611877891871352280974616038460523766566945837647927317431686929099061172080072481985167941674169179734733355120844091903782652468089539737077008519844208699030863554211813136645383748198218808706620278255858365137632135119488775143049520693705239228295290196510025229789386098510977555892080649693571641412712795407486785959619866311279462880540078134147781146341067858473108055591218215697156073200681872776937322452471187617217511840091250736708387954857429235544619645147302498986339410490640635774364191864451312477160534218539414976857959590102407301052391597419396330945373609480272686922592730856175725597301344278505722174663677106984744254492255861831270385541020122756034228056458507006469590097613361222643197814486426938825019935220999280052104242964117319486554662945189075006955007808987360135832228679256938681986145747163703895460410099338875379664414203890027971141646817813142649990588247218002080641713130169343857084682430614621579473253027161822329638923412386454206753288710753397309097265917832831964175750111963882872820585313012054449194177237790793090320662831441659336479291759857702896320112171234321880611756649308573475903744238030399033658153111610166570916164531086888250032905945782892703359650756832331341324327672461811880048662135616215438656058839000636024331534583419163032570875953325388823427683110968587615438260712534299912293740073593075684453840307913024264423149932847916993328811592208148792601057561079059333557141356720038771136510333156373111746499316695655206184077199040243575574395165812122933707895896640868289905704255082301427156512993917095209313958636500924963988379280845967463487734595488119591321363109956721458750408143853110194385075663713557992881666978180403625320547485776438697554261465865207418227915854028951586456590754710906689910920828316436299401469121248931383654765748870485009605592647265364269298275629786350032986754576738718990592434048852051933570833616121727222283483079301949934119059134857077489672616921907583891697277165604346688308057399703909463818505198534985817908308064526548545734496370371987755327945824696475094175826280142242435697915872507973101568747472221770824645453326391860340380228786833169710265132525345405290481807745896310343121083508799551171261126953215908389136868400051147230622986197088897221705809115817245938975717202257309127496604107423376356949335551871135339959880077212992000017196835353419515820513931569552986782122154311018246550742409675194619530256349043452193620448249134819069127775726608182893948434596760652129542266669616115103905775642645308338715987090009885522855614070190278545557930579393814823987890891696071523361985889061376328030407833176684974331888624186474092704506104682383620512661314071403932344716127825788981609068288960364513691983578809210324644085690046128872847735424916399340434408376073454633291680908215982995284253400143416451553390363023046475187799336322540241708918957313748303711203008030057772246594606900237809837356136495572483355929335355646714250342471486594837679792386190619046220134658064383617470691833504268873696898983351641901759178856430332193669325696877424196236631817153803883771444031544327026849619172049714000386091714241283213262782177920659461966703424344416445299568125338612200948612316540180317996729498683127322340201187349977891422576101137308089060789043395170670260699647671221801651897323106068077299246595093658786729274093130967869346954215634843210573587217506089557383189227610454065565059288630854914515624490900094057099789572821353064025685958439655456995889793608263469143912563045837448515315426397902860623924911643038307941612776257785443604736503887532559287887253647794921317893390792087149273950571508244900766214695282488967839218495846398490758801569986046888050784882818844074810718852856145731910566118827702809651370970732729330468540750043563124359246929334325163448912827208469975116939577389719584630430951156722323225135794303057823833449739896392876248303601747984612759118893774012994870163246632692750215953419420773651725786836661267487489261391808394124977534411200430326450138199155838615879815925541025465225994727851271102616951032929486935926047483883340077833674821639907388668640808834682437248140174413345777948468704708696979679243617237800235093695187549585781243378151832789545876204394018576293415470320336293055283223072912289824993751760358219009883893887576704572917100055046994490823216599816789731201958853471737996434319068099598710666500931471108610435666514294279095168743535727352586357072827356512468730879818435283400497388620319207785725138476239144459777674551597954799628053147549454064433723597686112391471121206687698662186486502822250124274544050054699795574651942318531181545964044980459347865427721706872342236641856396970123283173303033855460323718666386592317109936731225738603329153180392084681589261928418088482036824654121161643262891582663387921191049448851648582968520768602139784403595798453434201815680598655882035895543049788285090087910812834061957571539313402254740678285592803852346675657819302374359958862973262464259687149753472888439977331763113054861475707195744078577535467857890704979333259841149346112499135441544296900602118276655193122822523311153484609044370984971351202247553535818021244439533667672221748552587615527542878433714296904830351291548595189134238143362771631372514091930484412193724789376232049667683114046277562526420192440039677224956976874141948437487516533065549235772148699958502374861617589312325549606908194017563883792319676672415189957248645449691817387278524839253521752602954564151289066585304551870237332729635638301383304203584439994727015835424912585252325655385212729045331046813484889252984717700449071570578057033917855242781520221191871570934625255670393231862027751388052552922460625424031113082623921690355129840379734928064103199588954338536222594814635629310952871977764312467033924514050283220705376705172453768309387472303810450954787819934299698237524830239989941775289578036545662555803848637662766623009988036065484258778649713631951072952992783232911282711039025100202129937433246727523258176642752231416919952774583505177300967279685900566582621169487321477603304361430327231951226710583158466140450228664960499122428011490027975680193701984001977973193803968179312914905894835229416946461559150758456871618077519582495121976173017239979842687778326922008827230305975404906758706080486220970100051956602453891139621218822894017246572826306938958142637716432850845279449104382158336086159688766489623030409289083833818374137282568278950051334496550706993094265959214483462960008332001320020471231937423297999590258530590765760294222893717990739868306177916214935604594319451051551200204410932906893302504282134923157060750879361427852353194133696273243311808168451675825121952695271591403971656155599961664473911168150842698357131728676072743945787578946703855462917493364999093365934620544928112138083204539935187490403827569568846126647750850284501332164774216114179221373594933696883949437435861177979512135046148935331262374713351435705729988595255592574522156095181085354447007475108249234078125908960637640988095724568662247779569576064381091613097682242729633639858892084355741276628466827934777859500021256064168695481936462238195645209815378804253676202287858801997950287910856932528497055192828176235172992723421761595571157570063650532276589325115258974834165204283863295012152081955445642509439507002466522315781447334000555498253603009641062267633937141959493602938589449773099126476134623187048437579408086690061629827101696580314899972398472289367179160644863417720226256775441937300091035973238497621252346530873446462657404147733304024091921913361873651719496495191748723750016062219364735397293272806649956635256950563214248868050779578279180371696196799496481794738226041712022652125388013041358326697418765759376408863350013384957624141938410957980458177021741116130226942342565099582075457191227991642099861201496574477938464695860690412457877881803121249144020494060534716731045966647240527506335960396116571842148487459249167548463422782422508304170339499929611283404443988010069991379797804785253873610686904007439710206539117363668810509335100777042503559949693717170725985026576434242843130413810669104318152206792545851693887410240904400158592247924904556319412000100381499745174853316607038613136452959677823435429345270356998835475423735040865506796941747804511642853627773375852013842369829289878956721644377185747431590865335231596971285305063937975936107723304421588069279829812903663599600277852915192015911217968679976276327608285787786023044047347654740406537710571005194632553263814374412267046144934014692725457818256570647199395813118546848584660847819955507381699607023023767256639555544654225380071565424552578497038449669213007402795018480659453083969494377439505483070927492026356039401846464593683396599795638025954424200673107029711552518829346848902462430762319840953621576629907788161274230218268302809644220041058864057198531733594073025039002697947973356100426035321059888860690580477457496339792044151375990848923513882622207073254428061381333898997105330163020148877060080873055140045679130716672128189617870309883885090281883382847511497919304714951339719784458853702859505204846803181082116261694651502615419880731212057774671079994231652580761647274461926843566635875704101428161082311169384493198121591739141982100146200779978709010030158737092434162392163989774264462253059813861996275087317546105054853442082549185677724433197087627573247642583713656287168575804337631831557878314887655167188651033286271649449419578198138841733343609189046133200034080600254734971252542438146565960475356195704210943062222637967990946043821473849668869493802603293895582270588669205616159956315250114761863641047530580988133298535161085117158372842783386019104277464817886933943227105314323019545216342975731592836291435702782202916459188807228033106550726699768978809598994836658747324435401803925707296936238395053361432485924481772207139252228189546047160670465038407367823666850447425053832648825248980941290824043671475008988489933481678186254422964949122385972152578358895661180009254904346287261186225834946657166859192569434854054065554857214227141186324674550917456330810638965893680072416273182561581440976283262237722914887908733304003348875389407192280532610564757111313483469990566291035816937630113275308608131286740368573936069365021264739543053848223580839117698548871541764655230573922913760769842431580214386004060549258928234601400774432038822703363112085553862010140491923073284734786647111394188649165920096452893672827986085261076217771269484522294012649878567371545596197073839142040508243850051465899593424006021830775537384265109697832255149222086906195058767280861151927398291795024549383106921550464914383725252103281087249644365583910621317941537300106159550208831311018665044755011040385687074002789876472547000255820266804927017537822880628681618061055592172224027004551945265984205603368207099965843965635304135634203656585016091675564952755276388397973409304700543391698416075383595056376316942054006029311678467536211649839796795480351599106165848763683682659221607030470957807442974290638117946551539760091309797155434594031428676419036494403182157152826346338376327645085531569981150827773267617580469722216963177005336217705520822633033249232217270866031313604500362228999498808066108816934511717609052885828307363126370247192129083296449740256448795640836151539889865176660888893626316155652613507063041439812629524216003456143909267008090989670376751229717477875648498426982034491438240855681176061038620266805677074936180707264158598758383341201003916875682364287289593842162393547851314494503470695947507700885124747851617933769762731599675696587799136461540381985426104710025283338775646770876845043996199058427380906521976903277281542811278511929783586188866438816729162045998892000777994465501818197128728135347769652443497431960976826038197003554000126314932848029051739349231848714307680347680950399939540025748399434286133704677196453630697432711483530670682333918929948389412896706718279352333293646878571017784996587133043871877202390004416586988730366154670704591390762475876840937014424538033979469990002973218027536443141084658403594200544665876778079914381574576926874988558331113426098812409848133596957398193511906303231596424448804542132846798771193364084178763726230117224123801548995679740422187587801723165736253420638985481457113924957058531264860499195611458915908152586779965771803673813340103873330304986201336971304381120054805531194873844597450220592385151187683978023281154518711833459271523094720107656858666940900896430387919531838744007951659193182313106522625846267758907915940089151380149689819917675013977722757637419055034340632103251818539793751489379577906610629388359647612917639874287896461393819755846884053278385497226957178829414771078793161093688928500903044917372168492693555344437946361168563886708619454693684245284472711277280763848370249169022986431708965883183576400426540797397943670425209745500496774857034249525235797927927340523509308101500436334397632267291454265101805767840165949123351317737258844227781975158702220176519194225589303096605442594418969065062447962950070085588643514988968289836425654217001237996795585823792080434153024107728681153526915579226819175536409849087626364615795895856285159918462624583666884508004550417302817738223986344945476358642806061663960049162219658217393239799165069943651202542576121225749795768563156811909274584096970348556576779513110626841226070430641986295103943901916794920236526015061304345526241413180105641558606266809876945805563190534673074300169427983787573812583858222307096608835495564102760199502093077563799115485858714428479354400336603344775545912090613112477524331898290388949473378832151219515534658262546649414245739763793190873289355660961640320930705685017745623710912604592144563205192954194305714528776526001384121800047684522145655353863367591737516977946273872003185746655623637835751336662478467401381727196646087181310198815077191755036921296446063899837591382791846319610502460089737416868315874552301450488413835590220358611057971823081222296295479698060339439390259461690704762144538683665224537721643898509976456440725967733094378610240509098595256288617888783585953463331803531807478927211781884699922021253033439458338183407116066174900540930276661003109208840836446851213883565294082803788030951886972462540868026293084903724175308323818597547800203682543060921593439103352549408674645418175828724454843221783158947801070222589009647407152666784301129945060990827613298513140293889861521346208439136748895946437739260728940696860221202727543022821007836510854228536811628963592436512021933645219701695810426070673709088435477665328981961913218197471217679929426579317339608140332635390807660997458167030346850254617779614792436680154932795703044449310700217385802344809347091198954360964281721840056224159046297761328581209051652210098956003036285073124001267298875795182266990335564899170467943611567591243348438502774019606965612841955467063651167958604148751529444792910978064399101979159139230227910330499729131008588502317062861719516336202334264850127049136743529620002899502372712867197893297748736805963060962038926668642410852869254094145627389150371847319684907023239887320951092360194300653330372600004057686003012234972434202183886622289930153269609126696235255033717839327266979954730164922751305407464565719034340177941220251059966033172481385616378026399167826755353157987108651086442144033904998177413190574778313919415133186042331106082712613068262251602700040121189265096750710470373305618003433926567255120354863405403298363466226736884428108823591323624229452199254407345798054963579364910375060565441239265162723662156661450798651229101155935669680959762450915876310943255661015822021869098008013620705084208656100097168732009987758243764825827523393741436465166651288712232703416263634732456323296793849109398867921801881796971035840467387600973593792673654302114281155539230200462560272641082752372584659898732704281528907037339119295117441906717051815909307968308497650414345851736343399986810084994553759758390310141961866051030388111460641286185512832951767810586230428375440039037061616916264731776007025485730663256799562316914653421879508028060675654371843445291700431782106767047115991321113211999627978915322687959290979250772693207969785576994838091110142006934475525567668250857564110858320887928375056063041465136392367778076551369227780287269889346540499182776905789067121665328424586287343556350795258972043061021700327959019346592277041569993845258506307993694124761849851422777288014353652688292704012133174704009492594815484831666756656891867193965517393163062028302959465460094477006938021188109378057181540343850387785028019861101380116191305898693803384240365076010614556396132312927461815391258646933724648323823256934827577866536082374395421172381977708871504284915620128856020122229646583031492945522315017945127083487379435901191215163993963459750237018221642080894020307525034960038985424950220064404699345086779554093591054197589456427876910846516361620632195975178866532253904457903825956200132053857017297930911874192372560090977602506786553539534616761080793066117870479965404361891996385282438273310413748457826463945737847520555647215698395719264470852691604146123759563373433876744305534555279334023186382885421049167756146621529605436466690450719274398240828041048686949652604602202444902108907319169750755228927267141912480180112751042060635947204177455418237767072776336261755422237852010275453735141046178523390055200012186034473026197663872315453680055983440071916051931413370832578516492375602473585318013125068949537848714694021357478758908878357619269563830517528733372779029229100927648763737104594001792952594814518696528492188113209708689567890510146277932500731469261293408632048517436221769462539665867738428486538849543740131613564602549477923233504975610157645119940222334103724683992354226930513084099063655361363591805597865169959633206552070118771567825028086411680299014138635470037312729955371553775608215992241628423209590325550384025277596127120228632329885574617306238355099325433727778995120832586247501036026086737912370755685894750216929456284594868845547879881188557891847572346934089464340643128989914161913456664023739511693663193195511454880026133066101276144148688778880066802874690251427586726458744964188759399760544042483168512728746727226615367193725482161789647131321589765629239617004353510177457492131881978023418290100145793014517594423088044869121418984193548997417917486161118064417746396308719772501865469146815469132616658211042391509817343204962049451329574215557978270264718732458445109336709086482013524736227602003575158680660658979601920791133115571538785837634483358776727737492663810670782668156212085396619175347714219660401039710272939757064131828058258123103449528488644198994174061481099423121755633772159579135761161908643552903085975851528199739838908296678218216998172524143226527988861309236589231320453245385779005332864498784979040600512532488310072169305413569018714882202940167467440133134984826793539383467766566067770965763778385521162177823507883479422778591671521085855653889738985196383180287356323146808834247734071935571021515091841134297274127493511627574465310547170610289510275929186321459919749015287335179834490387945514165070942736948402715533323448924775880033917386543896451566253161139486287211319305740654834976494878321750862765525038892832284904562298998165650108306628909073260554649843963538740403208022031367167464542616730564021786462105915297418901817491242765728562210199852241526023601764203064832596032473679667349954666393865745423023139436820179452637021426661075616105107100288867641734614788488172821915306382425073029981178228097153490051720522518126278635697333838669696315847450830582184527207724676021641130630097220015433859167327445136225617939616190268013037855402383946415654906617394440548742149009995355453435204460036833535941591309441606927140750682034046074590693870455361742373081783459903523985634085706707301344754886842933249414058396194166158624592612451248351454512153036556439164753721909938446262732925343272104550017006731533009738150898176744708479669400060908884126027098663891808579796958619969617378251330621744365883871806852384936865536588591548154390512285422123011549351172443597483873808334399907785445293702446280779624529891334315900450504595517999355305706141713910554971853161932036434588822974217122036557109106211692176784355852668325011603923785973243928370970285919536135762516682032027309052368504876617284802601070205638380615472630579104291813005474342762135039390435403654315877185554877883114684101241606328945371992186773498746739610578559260643167070736080915476657516170985668927984333281431395164072638439548009297749547353446121070881401662357259017307461958064563997500020300035647720622256596170674212507286442028494845146715543388496040088591017753331487385639818373834816471067224963581953359362062872999261183799770105687482074830289129254213014227302459458976422823122505890517663607035795965870416668518799357132958802637158770572730874175312278456013071660086007201047955174475587789097936360051226457806252467027813918521904094835771167274999279875747866188340717805711621618311068234381355368987039995979749447011006389625726281127621833905899217566972963461437428096409537882730912997001102801661432112903755477754349816446375059670410330670007524366390449554306144412910335416464632177074328418652961456214104104812760273619606204137443368016579089025993636105662332460046994394721134654089158294210673133305711932169531285456983386484182606394165872323801954715934971159548171425194304803893581844188462155121557926866302017283057365808635393304432287685370692135476767283186542246694939311956336268887694431538101085542976381018899376624994598808509041916591583985164679644812005336453924890271671931385049531172334093157476681593154753019256114773312802134877090772374157254778549462127010935763554084337528205267515516310835491867617941118932011123100950933600265013500286556848380912079183247197057337442578917961934198168054107749884731128548236727037283962117840977834026772490828306524840376754835868880551551319931408417366030400428619089427069083732838428689817036734021928038967798307766517592744525825968866439778245451021491472606803240856970825259107982651200336486270342769702022800954470077544957446121399383771127112010424978934211258329939922860071993580533836150174637799591946768734771142433644349883877800009565714459506169766622651348812407938515081684451255952616525675333846033359464167250865016296549560840281153099800886965328436261818648080029978373695990530102627193326048323749604675240589654425874567280970150072145943821401217474488523199391891241164080020371651410468028311039835605577802637976158830967204483672773784214690844248549144942573642765850122157836884674342516299956692108674490119778952702361436288209099833673901074587014120227959106713690561739832929702058446085971057777370833185923424306656041494562637798249828414169201636425709313225886358839545692124796954385206520585148503695724053727421784780859719380249783874327411585137866982823892175051527891947577333589278442278230687714145348743221707587640256080341528961465320123363669881564723590037293514133978712941614074269994198536516728364022271596762868662543683843336662436735356613670298236499121980570435076819303889538384047741438843732819050302071640784716425407783104541977683710972018319272667846792502204327595113553950618088491879564922962723577343042192987724240050510003770209986067128260996264373914210738655968594627893352925480238331727240858864366878844570174255173478026904855724362906844315326830885573433585854629442134638465681107302722842149897413342669674755254248278542738785912629110300511591873362799112001394362284818308363163986471798596820756039036528262847228155513424217636836916009054665555299385933835731942055821421608085130661207827642752494534946350378309506823178124005513995430038018798717953369076953665462753126572667726963431630673203012617827436894393825147694082803448220855634045241215686339297159005533530314823859398829289122883904776299581590703213039488684688076304295630306940197923347048702054093236603067640237693063007106993368078131873005983540138634682874972074357899092730335106952536726140193261746354492666481839005476242619523998731391356715270508415883536740984743092527638084714024547691497162427428649035786730971796940990731990349741079309393384308749683146899560547517772461029250093221955360502759431780719120870076760366818401554007231917531997896417984090440191135548732659208426229491609214153151041239424367262866614026974000576130061023911081197441946807798896495395985730180530071762537597518431110077984911593330891210528931162629754498171935863421399001901449402842744162581264103429528807082932636210243882146946431342659767406621307301473626666830846250484883326967666292775529657939317132826113364663591946102370003103438066310608040793384106571879423340944434142322465768089203876322312801340070170091827291402819807975024132250608159954716623365393692439316325447779787140219067877461280740845801553181716976862066632188892788258427975165942969879743851641541021630075604630979193139981303258629521617566107151446867038632907063119666634464942794421072690675401224133347353075119910966671608224115924692432602385761800841815983020344525846572150211583774210567077415452168891217841909740798973765464480435793419948234089077327821059441897994986266944872258057151255833522922302193018856574781297238512453619362779596175948774435194737176320876590087560776504181123996114695254611282391855388076535193947897960629026934151016375086854155483462673478566521214043981613549235876303664328142889188660816870381775765331397904472427154653824306976424435290221634530513314640085039680381844833839529089994006819419478879817644029679836730083560374899656980805512910880542927900294992139450761402651282699356024451092850040664016473782687114348023635645553087521517171556090650785917246753827251666573778899675385422971505159749473535612066461067103528126141580538691342634246515589213759495247302768430717963176347992529059568496592739123377264424846444078787183273164385417564058312789627978651952191899867921940902432164074072310275117089836431650453455438348515983700472923021817721440383343602296189932843886067707900359702515428196824407990943598610233340888018530029393772397687260747649396900641184700104791139193490691575183925856396077772294906107954165191320484052493019127390155416480494678688003034601392941303417522434060155594908632900026858329179572372237387368834775967523828583560193627078332133409814776628768948423196334860536970972107215239952047915398623857767270143100177817202075040563588366226751817265069077170849925471496745966031926834128091902074085624733677547366032468893166653692762166650864532694926633617574940003395258643832083077479972678699598648651619688690256877163108758435602338756932934429464169357639435756540593846319669720401024854421675108498260381737478622647612912002951394077621757409227849330867512134280337696841219143299609011123009676353178035670982968203071857444682525351915517982963799978665412482437559929981939800364308106769204448408675651360697297298303621705180850142019969986051993401253932391433774279266763216650963864780469756846002617696690949082226259715974900859860527267863816582477116030622500782188484869464470926282235870131458925862377955724383366943302751307576939587529661096619644381848298115772594971646457005237535670128614222742213255103466234225879205678198649450345632223706655667694791741447897688939208404286727566150126694767279480362915807943554449989832016919835954359456162470754729619834291907683283752050909093228781469127652958262943686425793642675178559158959697692636203339445745920077463965868869898279799832825060889589457659683306612559676801293164902681249451620056822012726692434656248243347068192291434952610332505261048280092962207993987210599672732195622145733723804659239645325899136053606905870478611713866156258580244739393369831196839952898369317685201541993051486434241317189356096502687704070452472189601371054086054101788460310335124933590607242414565752448530767982546201061857095797910704513871475531222410028266390232179460129279215774212213038207246871715030768586086170787782952597300620142974270427537491581369198807656350788116283509612642703610708164091489095529731675165726055235325559356486591753207182095547636979638725063512011499444916008017415987754570128585980426945332089703345662634059291817881952647301505420239672508087134387500534100665025939170591373779853150892337436575776630124320878033241321904341460281538578648030883427352779690853598415475421005938531577347402438484822553874562110171047714554258739576778517920414052356218243597084772743476445024816396915455936597589938762806319344419560831227906574157251778875172152631157945940507852303632933059531823491730590704392820469165749562445123020904815272396268654933897502597283803560287877095026166958981554604569670377885468888296951198691434041242046363338104153360441627623893575387057922258332336065400298595435911245557517772318637492832577341616486175983566046481997271052884741401063683003714627504764470555134733047910146113415631272482377363142243687905367483525328575625730165683642736582141676996466822938689425966217481107056443749555994960748633054320344486951543090329563969133650911899612236456100849806664370138145666182478427633792659463174463080393447095430880470817769255296551286497247208702089603376076090947246494061268943940282463416843285859088098588020374136771498505029519584659143269560144564077753109657819502908356822382683863648564247782063178114140517743497525307664712908375848392170760313048698544342876708343687141761755701637133288108759481164135528019348102499485528828073433911875964667160101768003670633697734634268779914311174464267357615615512415505688883429231776968889210203772140542755691849620292033360897076911819405821915906091891720780427159917571074704742390978357542788232318443078439236040929663407765546671231181585174352029431610530312875238689135533351385150771926569830817201964476571047908497797881671234617725519325758110467967813236122125362275993700249786151492523892319894962244266443950366765182686207907373466707779502009462423294763234032720208486998775862403304722199001901918731271956985500349320229417358366252345266724378828636489052748174741825366850573846256414238997675589787336091595031089822861870690962307299147142741796027248404562855393088920430552837444053680213516292342275523132283152548094773190319109359790943052973538004620502094036641748406923153238016524223287810753531157411334377589947211758440193671133116140692513231755655698112484673167410002217672333834302933540226981703876235749229240332271714842722727797379091920976351544124571220237571417099978990563234041711155811811066881783251980301920242886794608721639933866838284025827670069468723106818583733837434553958987608740292042627526454770473234026881749790049348322388193337702273453748235753044504749869887527358265182990265653096583229070573739932291423222725258885048400724660193489759650709029518176019211692117543992967990909699395365554921034538032061514911347735835660976331476358370608519803651225419570804438549097660623838294261706328738822043518154403124853736136804303109232270739438485131193362774347507151039112223721262964005132224798907536457447985007827173137540108580845831390851000923726916404153204444437075665931904814602228962311959045609290550796410066947230013564990908778793895648403589014068504282773899238693632458424075496134470352468857554210594040033370154546894495653508874539258886767285888004581989028763021711163218567523808337776862390376184786716692572946939864664659977587945800644101933962319129777339736890005880002665292600674161900538012382282101825563396559253915508225862023920625711069053161252203945641386029505107283541289926749447992770528197085657179947050620180907785675394982931442406909992107035187435997728698135875204744919815751754479731734531116873241290716007526505472499713671207099039038491936024297892064833799499985281045420806309880680411454876208795426574825508937232887468944334613739510656664881677689089189939565462657831837214825619228030053035098616069309287527523784860362100158262647513029893042218869815368730816381912670732962127173333224117611765516526175935890222540641865584320109016659707572192559643773660153005948483551462481935732735685047174286614564812779882610676947114480403458188092488609719475003318110001510614983694083064054749755839955454956821533440598147074880334057714298828582831681516254541500112161004991412704920810880448120490558305162714969400936887777858666389412043376463169544654409937758880891777019545798893591520941340661201337907457498793907448393331255287740838890635343436782635570065721729572886110644200528805570799950034507145451894538989222447273948140677752705395323794116224768567188903972899138965379887711667546934463808860743553811570038232272617236643366742923008344108979166383720803480325792500388714209598554122960718146898362455673175331440293534933715220804245200940597037915819521970706917097861045873066374456434886181728423305210751802021261631381186249514582675536081409829798690530221884390580320577465934242047545249110185551836231165620135431870903239051490978282490410446633617091251978236080217623997626686111630950595257030731085442081023413657974662210543069257778040507711420073646674441222128043126323861855386082859707584912890025861694805410335876659499210998262813327164448279830418434775988491756105958352348378966503221223483686039362620848543154205149251553948371181170631878365546649171715591661923111468851054134960944361871239813787786780148053949840056399095463406500999856177037225129241173644974908211745233242480021609770737423937656418420335523097476748688803083008676613255877613509258289801731905456293348424805485743947487946195655692072440398546013555976186882182574958250442791939313086243046677457837621136203029987973937248120424451440037935621679188400210526649089700325116204647598488083141600691696155904245198874712816470098937045160591224216959848908038351886318223090333087011378049838348331209089746642110728051055741611419501981396203005695941580802212196143820474739600993186337902156039869099134528404768160935006108708640455713518356162385097358902218795697851820959989130685182420031703961059200618561877114378772795482560258782299716028676484645892822177311761519313302351607722542807416054637023439965312930455037730205488275034959290276296430262354301908148298014998731760729341048615156898417405646860109856043433324475134708791891204724174497567355288213283097220620897914987249661135687330000267012992334085693034951933216596541485094696073768959571353263778211880872583217320075955431464427255872735210324441294301522191642128981519876589099382243099979542777165602314370532989892401956680339505481333678507575390523048407488897962794546334933455380130063842183855353501097957825857093967241607787689307904065130635718264723177544730337445488564599016086443199447792358002392705963868489630426360924931973045742145424671157198198512858200085097177124563659714700174243462355825732683925401508831813759592647671570789558546763373411345986810535130300203942530232501889125658217565197089937700785744613571781622823057391505653300802788713057028832074119670366822356053233069464943151799615665046890940009095566744908401028204269619114485960055111593509969195668701697722360458249772621843958007816218599821969436076944099948948703297215790125665552707515271313354483635619516117293510964801344832167871294993496638736210745770551000688422542973489343977242628298966197403525575806732710391390210599682497045918920966215409343072401254779768882232630560694394678762301083299690821452890063300359440675047844822531744900006413172447850143560515768900020079890529384863391682727365249479584271635149043370254155679953697492283869841363067811862634206875710885087125823718968991802457654857104337257333452080950168886143420062784775156164313628781023992023459885624334401747889064181803445158600578462089164010070879052180993128535785388919354703295968640812995587794481538500600654190336409017426911893311067732750085232020082691470343326143808139344928659753519589353882762432428472960041935455186163506964921732246985833064789018804136235791484030991163197878218930361711885498269109736170233282198369476355355169728100111585295027306445848910647464609154576214545856034162754271774091966233805017240695660615245423998273092313962113090012901658231609128971716986767918735350680526818148695605397406850200758301175042634366627755926863380775246562454910468546297963261585412715888870735838837152084870858727311129157934971448648615821950186222005570003026254391914244999051800305681156524750035161993247851145541561419562005622990003439127205829365243267127104242055875625109667907213708604017509319952340390692728289136056746546604323311255107537526250329213819316721620872621519561710094635763174815979941090057484546270170030240444694673268526534861719973089829843691098436139737163533038633347161081426086066384161864969241547921594788536400944244746721747671172742566462140428615921532115695431851139822638938194247152538041740564197022054453415510599892857952923117921991098812176674324005939968870390566410063344201973497936077661850538625880206578313064569955156758228490033945695368953602008060937940512180918910541348343411298110268600036232090143172180606498467801730347515460921733432710182451150629900609002203729990604814541441006368601443958186095612107844537751151076466322670682975089112387297550969476593460674760868477843703564674377864120479770523600560849899517154593266515261060185556287599516660938487425314719316022717327638530439048874634676074404417341221652432098430124791136606177396537826729775935268958663301976027357412609209701275037250444342146577437934198653614706951353060748229181765163791849996416119405527199106712922455165413911119850034325027357797191950624883202166686006096310584705754807329975535382770679501676070487964190984569528820753671217457774468270591222430472659533273861591319122362607614315748179461910256780060520101220465387233118867540391922012508122195457663820686998330444686189709028801690823024153646656973796238669748478922086922130780753724930044777832731500216653367062869159414976600197188321908128693191006262131025337981222234071104065209474453875878392649707533334742426193747003186260794788364611457763042099468220490536602520429396354355094266355103217914629116084350274714619797307997523022135849698312788714990744054034330421851506166616677731047882063661164181345139898483025450464100434461406048377576641378379780633589658186147642229181576385166430213588036887712804770421378444188950520924997340348990970200172240696692959175376218406162872627993679313943511060176641720717104584463370644849804505053728208781824507061456859941369498383535990266181256986436419148445225739197284716088502920063204172622727618585260243548772569025898114367774166588768382610688622720317957316021647325841831560636548039602857206657875948665521151138106953723692817533779558148999078027854267356973744673788684941388434887472066897222659244271284879396471717533780540676506986759398780401826091664089425680283792318792843912571167757387184143405152447641760497994365529509266273048669269334087513276211751172920039295048511586721706049746239501638554527872990068114896055146694070405614320037378094438536190402689863891491848832488842763873982496348756322469783174638067208295762756798551760923420726404770491153533505715963224287433284344806313803815446232297340137514884169559657916531317247202512528045858701859383965014327733493347101857531098107803425890142227614121904916117352192707999807881661220710261457123146720842759370035482355434476686460970349039678306138782280780292549990615841095554132024260330201816897240697928527620771001360277407006973911182434432059369575264178191075697702459004975280100972074596103385712219094298577560416825679782606483528676995327511610210717800778365912439444735979902582733130417152937243072395696456488958899550576829940503785514935088554266789577195004381425134102352094362622428333472822940602874280868117696012216242305612790726924116003891358976855521341978890392676021604867790955831246023484381420047848760303676270964656442889933689724633882107268840569230903936381979110840865751280973904191266175816088307841498659404810359365545187823620749635484705967025434225179791059792241522433063189379086593813105381197513722541505862574052261200719905702313293211496599664790549823766343142042758364485074270281247567124536721285872613607064690918196710726296071025777398867926277936071364973967158663807885162159137892903029301228279773226004456273089011552033700918455435891521266924636840179545570846450339349592558665097065845454683787410419866988174872879950497377034581799718071170125151272293353824581323851514742177626891376907677500612851908355716053984055118946650132070626032590278667045139383144964886229247789163727229773363891679330706120314812209923312151636061848442102826810010857192106815255217038194525955954125184677638984030894795426628917173205359672482051378262576484907253191977593467687602304293607332327232951497886399648358581020018037430582223009972679098296002444439817660620214128965280026615597874612548346388995382676675851622207118505517805267184262860876802658412707401100175438734367305860584069600356493143482518698210056772641410206211906040110356644246564122077302901899023952506058721056906260373307053471213807111014355835731295798756102269303179348412323718875779114624661850590200811578877336920280704945315184853474996515354004212353813018225297640165373043123357307406960942800747048889385324611582214176207055281144298423761767163802971747006958041261777863479230470174738757334198172487010784037283877501855460445131401875752702452822894086206724385489176819230952045976093999031537387128641962798898749006994622000269898937367089551584032847748513211134644158153819358494540749215389657887722818562393133654212604987241432162996689398784929483790362713869259623156151150522583857816069993942723298164753441076199210308664779156347514704918820830431520944147278890536257757644005652971325800316759390693144714874638422814477558020886461050776151950567482363723142208106878869662410761788876844924369067924210494527181425309332308049577269948952334513073764055755605838384354940695052252857879556115186743266752653741680423235975939695827927274051859647500581321006788578614989581838875217972642722000296302094010279444205932648440269154778430537631989464141281268244610030930626416967400858349169646533556517202274203626906056753751987782410485244146696667717297118135753939030921911041173354011347644992655128926035919136252456992308723323898594558134260960691862638238972457577262804166552609673566239931066459980787951501822080409502768616519588815246107477112253698402622882538118515131054004146922807439405436299053838373005876551980405291663457463509586398599230364286511305872423798087759831712469374802423998422218547447584753459362726423171698655838522004344168620684729960667612116787290989543247157590563670358359262780938134455510849183740076098360357340769423642318934283999689223648998018444210547697779987893562383835677030987580569769366984904517103952252675327465675492725757138237907011093035260419376116408331420257822610332063222176347089860434713921180144171355773181215061112935160479668445586596644432895674544503306633172652488838419190292415882151770814075371527440375073350223824997279061207975326583223164281450284335397898737125371995873509419801274618570133497990974917892294291464663084915475117065286973025704061098799317792880157846113258664554166542347199720724691827425879552814670847558086641696012274839449335388085464764559872094055674504838495692058041272786814420770243787561064756866773051617746190518739191987024795447119586269643135274672065849401023553421673524079273020494884146480989017952748071132219916058938083514322322705697402309267584107257320723024213850698883690992891825294835017971679978232262189226237662728182001320693017421896384882546214632339859146025551202904368800939591582392639772743888842797525786194295389429930610215052694241735480339063633614443708746353565287687513867619984063856429660077073368019000202770712711137318588784645653043430649256317568839528234503785877226042078047216315712923842008266988851829201405894883555656488706744825894266635634401103135581822152604433729818718136226000010159967702771361986905744010916119140671243457508850133703996975202720451990979575255651651075669237986346047118131060918342469621809520075846686426521353268281385660416502557243020383908358267423688634630073322800266289120352438797379535931946765546271015050077943609427932870836688079407353463175365813687506189583202768014456602841952409897334122746546658580623094115478493910427799986396518470033599214526860915936179845357971780061230008197204880280301619346097538122090914060252891127903788815203746508391168316487091780096856551155841995449789032232763214475324301423965550085670982310952801164944866791533437171793572573989137872476908082518151641183899722173748875022331370610393582247876652007012342691190972467432056827370421123334208134456934801060123292634970607436143076247491951193401173974766378531614995336179283048750751953458727678797194189267669635653373469305179676364078634475360410958826316231547173088541844048668045430567507195227103794185296508658598115632946280857892781984202900473055059554943591111696215214840055005194828309312958911405158200015953441102599496777568574889658763204636874781913526807178763144001519967593059751569862664316515988035761284191491615365125609235212337620587489631922330813411848087823759008017363574680340447566379230866229536782565379923273263706298477458697294620503186312934202327807876946805567482388660396038010619372357315144210020360102845397614164255379137935852223294501956125051052267457933815399052000909077079683698725835650993877314420796839947917259592620955032276186556814124561270273765177163845815214161108556438692307133018970227537675312907681947470468305497507862517124660066509418945197470453709084307999475718416273752337090798495271268531972411220687137801659637264278853494381847722850417733441191515961890988242433934010918067488820855687379176654432805936502192002256481074946199288878972956163871458592448326323869167212021011285291179790325020738923217894904980159977185609687208690332971658584995013006454821776452920364809641490142051462639163312318994488509273299594197312181383472858822531942060713653029279142760039136906361986793599791640048789095637968049274310327646343459462836280456643986884700519483801783532495227510994673345545226123091510170242195708488865601175660944941776961973324025503297246423377675071001286278514234116579145307949804687728399203890189405129271567981530212728708041446119949693929365297989168278530289093524193158035380275436032993336013318807563365539034906012088561359218148103217480119859972086055179245600910760807424529895021524367898010169091841420525123189924559396942896185453128115094569985657963165645510354048907581425010212408381191551555532872315692925420708481621615922438071392094041705128977394319701929056968123166559220763423429490435275688704728277811137446711961345913310887561689386256569931182175400787288115830225532778629435897164004504504201000128558094097490852166648356087450556973689165606638191823511607957262802309458319841644246438811548673912674304900982275962969537626334480048987223674818383310781930305209620086745145059651901936610204244015188782958340545427003714674634830922805756080075333555492681105843220592280308464990485298167132589784937722731740806803309641359486338443390192009282578993359600230780300633017388093303106471788482799919047628563673392033850355592109325733695388652933432648381012635398752914468024346039404502864389918988377247245902294862517859684043717940887368369032986571298852041583276091348031577257211312533532793724499600827638405682415340377444219805890942089701725277031358304607568369064588631074306468991644539573247426175696824346036628682330790512461618694567160191274071701358996663289052359008740793211275549897291985629671716396547267692377633655453265693916004070324917337030939009538237459560458705862953631304661999840612065066368925671873503346891300064443934441420017093103350811624550273015659522453513506543965668317068924297799012105947223204114984420705510593475081566487002813460857940838976313973239731580548140504507830693283695646060828484975462087859160018756256879430196501217111499517527228838705835660230869258447885089020938592054453117283128384480983826588968429488118655715916406284018301037275538067354549343000721424709052223410142271929678272042460104035385256459675581693003330176568491990249590191160937668376032812411379897634224098056921980007881455564910155156165635947152055170276302896370318521981079999472816613572511492047930875776081478689135804880706080289601887145959914411329086685267646843171946334896244319631681268133305309385835112169669726978474374683271777201368094381411669736639821486527791962066983821047253418509407157497746077590013291868540814009622961123329892067154780579116482146880582258291554783846235123571693171012360828662557779525460406236071207823962475621701289216472327311827944932640671485989478841302249474038206174185897268989278211437355628060680448715095760910227914569744825150109068727593026946370379831737215271688985645106471271470612395696183494462685944576490800111522503845198285564774153216041445161239915150554856659226634043659348117546711641440051109957718558387411893208086132989395535640926830107622243089421644436510272776826064246292675690762193383990275241467284233044811372215501376922792424788594116058514530642956256862406281499144010690320045956367431689664688781605549845991504422623983634962758408222874035275578796439479818678582305432978779825784664419507742606328172257395657284598628908526663508285204621019461169202102808111458839751106813744937914841096708165725338888948284409588560024057364832855654196737346669462565459943381373457148742818855661451515656215235373824748906263544594884616448355668283920161930331313264351983866193287762339300244586150237533598849747805663338722770037356895287208795824221715204145249993662840583637343629857333676861408089464578663164647716555239922884914493792933778393678444444512914239016201366675206134537738765230116259218342811378979987408566530190875693864049729047025766845466306846950285286530427632862289438613280546598151610322688268345820806224176726998422563170097157351514264772301406178014810694725955255531205773611669356385981074824662142738719446328091128446740753391115830767750248872491556812725146236910120223237015153583177672168525074439906156897566551117360119933360048421236458117260223310710600804136522259127028222824480206532920551277073380181021322910999607435017012526197246598785684826062361210401837861414050455032961751818089981988645964672676937055222316965287055711999519366870893401122318414129049272159250080883720482108694084384644554572232646439181033459444552831555635174154445997852841482253643799378489523322146723288851802416422054293571017968054848837582673247133860560126962540129332790707909954304261954446092295280163896951424349086737009370010518802293577031017213576855464371804555413842593606322498856325337157511534177311556655511106370877841082900979654863775125817031162778267277565126004371100618939599532240369238266317361982352608771202607450064536461454158447237199780471638137594672514125966726231421988969721089240137840929392137959777826664879321686720532455572926610164995594843100499036390886452731995805785446567322462654079940793912866156327565127990701222423395259531845594946964691349213008902024516422754901247345153910560547436913048129790644614762544009848314687468964851646795507992318059816726689467414417257797472154864720504977723277886458122462687410925843434249150082175750106135885245685976099806921859989951257727221022291799127798601893509987054259417627348003469193803706677738585023674467438902126501205545843951366226704218481755350705765519756489695951112017909950999651263814974278034061662628165357989568417021866939700395778048621484569467754353880363971119781193226907510243793651859821973641408481309544424812354198560488658779393170652592854146074596141203358993737484107516588136413439958240844123999598225306659697437197431161146606378993464856730232817099391034209941146813865042517526687754119340973596555672814839055608954294008547514921044388108740215397586171678691665218636693558064481699132396268128809140968780125397487195761906652270361941618166628447517628137885634564492254848114221326910839149143257217599281638018323528567093885433355149552153703886661432846255254917000146891736422409128934337516302209642213169332049349537557727121666429690794479542406977432037214082545489523565954808067853882985659698845216744765514880301904154356656790522491150381598673944572468685643528080760705164968472908642356179750619978508002726890323100988992236822066816526449846430989028515296279484995399855428208177175412591063018431552799890253041740163385157740474705819300495808049591280825052444153238479395966342755754340727208486453756406632475362225359470456739906982862375471161639180722459130096416569400619637463928588817440952089690635003180699251497070911193450211940385091653006146960445405467205262437592573646573854129164454755158750738049396066875232203763488205315078856213539237530092484738633085112615814542588699498894627125711098633599221312241752653535278201422523473809241676227339943640501737759019458457305605528260665366646224051677097845550602700076095602565856078643651319420234287410316470526861249851500237606198778363338262563791272472519728643905900179716079436520605563499151768050026689947296168949869395141543785883200430917222291373274098876911308881136526680355681867295315587641519127135966624524380555847803531180181934881653399588255165136609758111197549344810593897623819247865387965029058214507765102233421539592608493070372229865310687963789390380747067007996833090494411340174032901077046597363030180762849403681218866285773702759743312988806288790006752292105039341621449077988726175805627458034250490487824413622282856803043487950705598126404478494996094100874660415832509693139962656578891893208396014109018580301420711969798824998250879858728236022048453116617550372081554520795164008037948928512702985432910041222661447234940221656084554496453777738426204484147951207233556225181216646616287715907241675680267864388375052034914325850479995723087329868874545292626011739738320128399916069805093763687838504682370422076569525505636340380956810273264600086105954260230616079091324871183345345369738479957933338456483024593529973001824751539832677688017988808566241999058050280699872864624798741290115829838155585637527160727233836309804910371359657129883141907148613521220239860217907804995639162115032847252273986660052636625344979418718977450510331456758351627868381358548060273182714333928712748622624629284701949339024773080387126079320603342899953753416781397063245644863197614618894145204446638255537893138341607606850692207526641454656351147885695666753187671128305267433461638736932753437093195582342193940895589684141316313631809861571183587880239619349667714783667149672657154287633500165000683326501863696028761207815486533891124426030172943240881445112938449724164733565562636322069039330665714610339857379382627826182475621958944362170995359914553451701284086026527286800969157372606222683188698916604795747886917844674421661944145082167801091064274050005111645514925812092878218227587141849189416296307603161500827851272949815587083186828051251870520780997152639541708202729339700668482417779697232943127160203359936790307382389039095225723942375315211437086652165616366049520343033704527333179556117352531847182492956525557490043750283075228245650727137725956322892134037512906368398598435866404899444482681730636334812721514141016291508735459850960215512751286598800610708149763484175266123326792074044588974212693122892245083475523791801889929275858917734256012929996442703652921623911142216310184705808763969412360693370973061699080435955527784044713434881668861942830091568646603219883529083485143544914251653009217466670975977474900342712401163809624144230374351861669623480112653461448813911303957807163770500061345384101798370344590143422679597105931439677845383604722977013783452678407600689330555504388425426763175099085116037960125594893245842755905530748601519686430290286232061928178352337985883985651676382725396509176120794703750196659083334926426648772520562493738617110658912154492407076538221284195403044917525519981329444734074506006746416455267146443556878516900955702235586530793528917536913801506973943910289836316302759694089524426590389570397529366938731622005318236829409698954872659474509019629945516127002530193907799194527133827765680538835111660448905756182985778149794329054551090618630405284414697333410658608413510453664956158547130027471686417900078312111317307587559238693786549447440862920807492104481603442005963586541132593739987352883429351539068753085525257907378990843050961236678952550663374510341004227201932828701504833773565952590293146652773009285225818235271030481966149035723276064599040570006081549935445405985678792969835487953695748949627839942047619076183578337583016111020068134484568286620626306593780568459182374465045401332731670451658602801282835696306095442073666977301159311254167961467340029747133591472103023779436185789034381836485512837548505190847262874422849770775160912959759857262922947877739327528357758658750912391770356025595942030998446846446772534212972880466027993502530709520554159963641011959042081829643875413131272574465419915888866447537362296553912551432279949121815715671020114798927901492250921249355894108774000658713934906055801199163775023995693024583102877967571880671242738950445386576930242292784715006058214386611832219520078107836402027883107502460120326137671410475541440780536055025420487532409613654510069668503415948246440532385545721293218575534407216321962270259996812914545617927111287982664682037593315348485024109401937190683861544793915956460876644243068904164546082526277029366188059669173176455223856962746947956598970643338170294017174118247384150925840548066459728430646171475900163506395109351050688476882919236725027426693661441045704715226876406184259507437807714214641037605192605447574251831055038857230121339628468396563438743946005798715243782318825915276197064222260147257200896814277612416694225462790299903016172057318569747811552286783873861331002081091254187910189532502987276092221699156725148199161815237658152801218089182716256082089777543208811478696403706231371264448432486074117865955107935890912381309563676100782484413181992376071952220812043991929061055418998636902872746070771796449048535670406948932986968650419600345665885755527929652391847531796333035035533019067961038345983077678458205132627770508268065788475499797887034860366123164344333611253593666844356188456631921314920731854664465154022059268394823047655717471384282812224286926978741756037979416611274331260433708164450001695272973287720224924195661729943566989093484481577769092653865846573377101337025108780117818071169366707721398343566614105060761364977839569917189838542515731133025294273390946854894325437825215731008984026286987145609534992183545696925555164898753362641309874212566802468056431817393133222959930800364612799039435213586164687312094787147876442774793170251517773768815442746987179871138951506855090942453689231897246886985838981586784219804277728781360064842926512890247704717702637831507969927875319787423487641858511041175496212916165198882449268865434424476069750994307621997151851282434155232998808953797832357029752649512957030250681100836438307059678667198204964839930503000529509544629275452118079343834753147205658631888402508177965380253737940950040347400611698641589334274751218626795605852862493859133574585542214830456518434675498450502742421402569101761284180867639459364992277709142098351130844618191052614131663888699004788223937661823367583581031988696859832747963379238004725715761416023725773237554873004058769484957982146412001155303127568769157991266245921375483662824762060826234153432990490661955094224756410669224857645680810596455863795119610994449856234442805076483784651470020010857960069105634891267214948989438653627713371350578275875850854300127786976611938943642413841868841741838279708322153610230732922723843935473890473308967777380637345862150345432991240393082548560823916127781309370020289492966393590915596432066887309734168616728691224855023309994940853354602813912039719633140529413408630995701570173236121140978804728350598300919745345587559078586288825358798021773755986985744690648492120943059266967897289633420879922187519184987905456882478265648799372585919978812648336955851322190523227097583189446153312277489209891933441705165571652710686407812825354990103511032745767038793894107990312974863326299073954207777127627584935634812197771609440704753078430265605617237785247817285022128758876094368081849014703479349094771769839550902969732695863680000175693337753726720369778620385333030095550186685490071265129328242914311402599947564698983631442770767851814936181353559538001623886072792797497558637400173098388933217442665145788360751577239917990252134462739730207519609606190324686063213314087552021363807439313530783408319426030757055300284405820282947047642919542106076399775786584793141689861756973465057708541199352403975813045126745070042722761544025557784837106537186189635003147654272905690239037638647229025019148715930321902332957992497955637473960199474584861493489778417052211460014308645588897005146849922288448055553677236342194547348622640435898481470638434643762333507012630846164052438638480658215759663259740196038073856386935889701117510428978598056731512872949775247206662281834585710647564714899145042263709139098611000829860461881474539626270049863379474786592177323566203429201220111562999521073190570937059812341819857374733697973391282000580398128705939287313016556983096207948291932174833324533729530591226809928928635631014850322766683256140910125614552064816289456603540982533677165122769554004798133255754580210024303507229411426524957894484498907945508808793958915767237422288477593672111174118746178517099712611409506790467636455389798813947805323499057269376639401113287363144287548740888895761250981266282781536811196882352727703509654321678607290652393219636188044922964692055834076955523168007905601708754360744018006213109554780249068081425005622374125582747517451231234750582837108193043399983791457036518208716335825104776374026653257027365982884621989086418673821293062730633904332294641977746060729272697818766931306045245725209548622979307570379025709833358577754428012634250032198198799729620278811185386976622637236057279907337332312695283559363170138012305961116690787788499400628238393269710246129735353360231481287435319962084025992474282260531772674120366129499217076504323434257547932015674194332414469436211376472749184676505551095201944827899387086980179979035845159711509856122417922942355756472600052483325037100851185067264553675909976353138648714987937519351560673554246993438585546307752989765582644774045346263734865843449447837849993506315727954211303489103988054555089592935648393485486866894905542948955999916024251657228997330262904482547130841165341501128187491832958643432442135133924664562353892249954886092111306265309854588763354146212425507277625089895144740235003297713579111541764726394200470835380608153189833171089869593460706032965812343515095999464085387617053991336306438868079068151625381147549765402642573846490262566768975482682849737050412860550823067447598898018364888376345016003641657899431880913611783220844145821311730381187381144190044728999950553041481002752364168605170271936619974797912481735150575983026074790483544251715354142809567076390143048975619090874074826114579935437190848979424542625013822417448782510906588151032249218362214968480444807921014351472824657095501738899602938003519697252214137268799100120628606299056418963312542483254871685779277014214408843039031129217550327210154125017633726034817754841337907473705233121739789909162484869907304958526701255280466331263507425422976693613150678555669949584389927502550235745649831015539024731504919660562823744988602151550297411707365907082828238891701109602486186595405753224725099148913658724909196985932812730693846487349198737657181163660645613926840697970001192924222852920142206916438096163551024529210878779138366887626444075152724038131615039666386197147602223410667879760004799365725769833775404854375331520833087270758411562067565689074228673463066100821474969209587815048286637187134319519936172819640052401133904581209568960553501112911825396093432909920646336854592727892796545312195830028823785660452469004933388943629230587223547620348463037626184884005857615742513155516133527494046146243749866099264144807621601203721044630248285775758938734649355891671572015786811333799105691857458084098278049129473267020654056868146430538531989048048710011860962233159324786013834197457342105657911760729015136174015196491411786142331624158923526087747211303754131689650275111154193220009107892738231787658818890616877874153922286523021385557354325413066258927198855595385004179530107345290004518751066229391246294604260511511474729870291460432020123102451218262414331126173432931297027749031860963762363954000046947155243899222883640007213658752088439830470877077583346747465266033950826205941644388431316287693879240204679145287749883250585767115650676384787753895846627097670966583633878838509331852256278352733130322801879763910780242856193975193232957830154399753139925045339327843645200227502801552614160485673579857602004938073301795354429461246868941586032904513683298803578514189733382334822184962599000478995427029881114334703552963919055964380971634747033764103289342019816207478103430983295874492855346218812158462548498851098940444267903935817494808946536539926424835895506159346951366397701786729462509459184216243050456368006474647792603505135748065166556084533502911251069241897540654003081867812702239832240280906690475880957529222626875826920097465665662589381913784771194541814670331142953061444688133201251853156308618620173081515937857151828130148214842555747377566860872642261585332936621675638872877837606409541016870177364644212394963947842105497315082556390678448674041406817147447916803699671073539862436647769609307947873692865034678846621930235032736534036697985285024501018918107651050946250787616597431940617700335327707226324421279723173314542606449750842043725897835724872991955412517744816452436827795311373950489345035220065906971927912250024430510315971918323719849066983848743461373934375270845410190520702549160339461178865001629437185573570277643384749404119710118653326832672617441568246190548626468484111585898518429032405645581781072854418474653519054773183895731432276793600711926841607350205920826261216170869379372672963304034061863850753896621686679980604887130785047303265491622983049798032694228355980852512382513087772895523777752365609474169183046739941550060806537338118896477606347631830194318566513614321912532194201046532244833359801981228579382728643564361147599708351280300081593142309923736025671458751242491301989422021938564837645119907820517572526393132521912157831741943608543573573725060213564071963826174316463448375590437331098245656033135400426822765728988775145560030186083597116992146477333123929347725239644209226495075871063980343100173727701236126935341267466677421376701955273530536282958806820873692265979125377157108203867965330836861873010760570363568222088234848420640450068848019720418030055093925553481894427043617987474122683065988110932331162790776653414552380113042810075614112334009413380936184860929318797946470873709697020856578960760100822345822058741526886551848519395656630581491866021853716784403297895240472924708526398543835504429908991617279161944003606983375842698252220591434387640772576629235221804535646129701383092833444685033853597433974717658732950387346558259860884783051702759908910610263406786364457232060028316600225677825560923653583786816083515824120232162727373699694267352629246792233502942535964198822813566479777746427536023616400562876319932960088776552829864098498789858591851173006206521431826206769857775579903796423854642934187726638063476878234218802155240876585806575560586945402882451419737041697534669042671039017805347458092577053798408380596316584054720932297520770242308643298673801733083227363526440071224858925522737150642507353528241551542267672807701530586620830992018352513554340761660252649434602751005465995620767045799679394084443193278265108760607717124548010617969871753437295066012769260732499048206890100184570616919684278824241223295023259186276211457477138018453604004457961789603501555944538850181604593840573595492630397287279953726746483725618529031751677901563802225188123763024462037576186997688932625019155611266326937884572802890195679728272356933071473299887812377775588895227895277118153858827281786358112465117593841302120600651742030818614074469035549180244849649379561759998265665549844841766461835001218435808242623242649540133088596283631288795173728607245742100228546468542970286383974035326022452210225037134293418079495842837161378575588479101773635809025853867995210715574202710388285190556125579200076428199942781034619976147039919880381974143979776415287320234052793029768886116694328150693410666667784086687863017891892721689934985137219401546341794817290571537699170033847457292106681706588761803978441357323314923183169718245028898204204637506027237012559048413629428678330081600249049807814296137065793922798249988992470843771686881314764500163981931666307927961846805375976226616207717578818137637533151813718016967416096062078522534060581421041517857734869622416129962522675985471263258161729687835837064345279916121341540420514306373247314161014266596185133166625715609327257538823809147102095526027264382175063283790512421553225354686751552972882472834427653840029125750452774904536223941707971882674789176897472729021733685519748669478577473718416451308985313417126276686887775873147789597246624168769219060934408002918783943407576201185215533257954995673912508517293312707268158066125730197884320477832458533425796637518319796201664648352584957090228288324734864463105535921885772286221756475753559467282547640206246813215690145059212641132775083879983422219690767384098073428241252551209931606994292557246080015047729002967542115689917193644916458753941368364517314733915498073048612384018124314689787198010328147531238044640683181712747384451485159209100243042251936028919815655453572982171515265840455023768386464869145282848610722289669745408760508996101188050401261767828931460134778489222757592232846950822968440212602394604042616751100880889004719569531285230417254449309179077413741764606878848407669480413422606071677474244269125534412792616134111928695446475062188325654529565234721963355606401272028389041613623217229113853068093425245395912853740366734667989038591589992991537439328002877136515668584918592602559474450373249323404659001051972203929603642197921509979291316283911243259023862425530977657720524359385018703866112246900084256771342846843863737209319593410674665959491881973928859622349200072961818271794012501921950497651254554104755909394078140390675825092012065489973920848668696957333067882526038038285812441522504743436039500343299935178607854494484332212727290323234359241176839209788289729913212345841531544632144514297157452098529924855887467355930728139372212164060036428378059550708261406468814267822097904318001965698468678145379841942627208301517064884905389799114547875651709521888275712815655205449516954766671711816188211104054498431557789843058414905974227880372553990456840840167191058852165809069974609030166533062953203284977582904414522132973914242110604750093299173110756430579810264339075647591769987389730123310297419061488715313851852568091581155606638808054486593537442703366350979266016099858994267209984543421261043588771902558880829099234634647412356920750422519935426367801213953977177720962175926576052778579820233413625777772654572722674630194993028918747037843128655398059989669608963577061861032415451141966055567395788683466339253440854955610504359351000343952963110017789915828899716254033482011856332883769045073523351790205776403159913719788367310623285651197262180669416625158403929518718507602632567665160468997490980627129523570848322091980823511969646378923598714491074124833067898857121582461782931202163844822517676803300527303128116585088468186890985802573237591898031123686753165128798899226176734481978576475640204382088241988826561767345471760489019726479730862555245189905376298732205911294449161488477419844903654793777860979005478626285158270806487255613848080468213783570371242627155861726710882433198436153872907605469008240189553423534045598795137328606008174881376292188020671853521936960539093900666879912564716720120762956538901523680032521727003863759306591647762189108834581015874047784980913676338643255300587127279908322814263890574249688894964595193292158978453463519224349304453440395228852320194506415040603950097540477652951034299457470825995880973950365719931270615278616976136959801282149174042268667754875904235382147313973115604122281829253158348366797206462711264732343262529207759714042550021196182527049216307922467731564356277153762908644225361085045421708752512496467292456639611183502066993174224283367298089677246789155040026157513450922368226502474727436962542645693133755539953066767849914004331681387050105973825250587200428067097672995908485291649215251135622469978680219570471330120816561575106084952840905326294491172147887732156593866846200452225723472552399288952101800191591663816595165598293704624755860776151448203846261600223437107335935724198268179792672123046472031200791768245090394681400693805398342239411062590000419141150273305189087237808574678537931566451879714235884679836624203420936358690094071041028831541984460560772661346160543838246052808115970450075477506009121085533834044000759762877153812645783787769528121163873157272788031272656877426041774747158809120288731714263605508407687735300144810203714185921245003160381183141868407170890327819100834506930369114481002414473441399589429944489794676525854366685156071061019390453881280642259773265266556185079821775722382648742493575094502304889962977153861767541326390303128041041277980732921847632025569030095410337328083221869950363552220357552697540587964720884863810987123162782790450356326683459037117214496431464025969194819947449911702774922286963387873071054577221075536948504744021227838224319995373024098591405056846801899018471414689498665776166393008435557466401857041213021292778967173766139790976045544296431608824474020593348022527459110373338274537725628132702681826949592055915134138354940468913451866220652589105145615174953702863162335171764609997520033668019031485983349637944074478788762659200099535008074676758842541889195176552193344671553841795303217621614472530403037946286334073892763124598582899711231967988177907369930007713026584807785057382427467289459325325251009209059386687348232444865424818321643611711183452398754711344741902960398709826704047798443703917794189171321872980194153972450194886294250042131333501816329098586265864490353075323929389537567433116549853509022618643760905510604110758082391748936820896212026141576717182171741169421163783027042283245442241139741176914331460975783653721884166186706836866637089677111473934010781081984782076775727563937700725991902638410981091871959935109824685223814611463975948811408491789696249108224958109051000062803946243261642281513429728673184107851365730887693668876776703893604242171948389386263413260577857206990340591396307114330021561089528737805501586957970163754906163266813567369131673360105590823803531934435692153579747067143968223548845636162574734206565596241290486660257048791641175612195099893092312861845279645527039183976329052176411886491379271952144869842839371791214153750578342399350820577240958584961429042665004634405582468549169258089594047952211359810244914744292333548017066825303519970757554287737424367414528914730485734140604112237645304972782899369423291608463099563933336395912704563727448590541182602426846519765035723220058620049086259882853826723487771831121908957522419992708276723033218323011757306547771753991728837685930079293468439064275691219302203142185975375254764195259626110925746727845194126622289147983639991697229253460892358873366303126516640237057937490346695758745822713638045213740387466323519592402961715940026711908035099997522305131579667656583341521812211935841858964086028557554728804552613190178958934743383061141591732466789718770630135652938168419603204689775699504437846776887046951782814662768637072823773808626559073709668123674756670685606769311152280457048077969251936635909679650459720429837090452110297701431387485596918767972792449460859248725102650818244497189574170289027478066390231928856967814745158569740365232558525821972310536655032244129383331007257474172292444215022727568786137098485721915979136518011836338187020039111037493848872647013080604258464136066030351691468745438808131415530902018935605801608996344422812881612594231618732964211844995792265734496997375726907203495529883687869652157521515495748902854425665234436736393659571708463426046460064372834933573740391199672121944776044388190053584226557190943298780913293983161972675041098708288767406467875183387089487911031711537171142834847495053077791483625593186399094467882905706826847272744209188243964221845376388429856140033771707691315542525118495123058426407144758486448040710243450946966156458078691106921582876070138123129571262972617598586004907879566494411254440937389120949109730541255668933425819457475094354640272650322836348291943454133848989649744101933824095325390845142950048762108723569191110159381277552598262273523876993477083427703394831289312678513656757853828185000871777484301652519679378324733172095480663371622342242817851411977292742571760315421048675897454298547093219735344073470686992648734511939830879299034853229315438208000895504895923954969752536326951017136224852910108751562543656223555042867556620398102892737718452021674951053645507452335881896632483759109264604893045012449363495903585257721427055623585903370321035170675977627944412107636162620392555622668657284871703740310948046747718129970534827419996483404201330994628714669972235597833432432752575774446573597765995141822739332594491276743670446498317143847741096341869320118039761910727175450165142450493401870667097077075552361836806265807201224305870999776514714732893074806090588827048132440559697728837920833338439444722741601148799253630229288162293356681360321221725583646698357838914861250690790043557908177122683215895284491174087546825217717360632692902310565728071317400957164470304373573730765161346505811401132293001544594385377542372988969842628447170300642651088106275355508155238127036572952610353054178232987093470708436409764845531748592522959275285153321837917445258675070984645636048755392181597110624682079305847457278643246327365394122609604842130050292605163016429891203601458092964646019368197385548848057484781786808347816246103374060401502568070514828506012352388177731147730371602941867877658067492090100172415214411725155743553043495617887876702970407799523884154121286667243096616958951514667697008284023766892208076769561769154818444528765744499603879625199783606266249659848566620894353025129682923343201153134267476492998413862832243371225024130389331239946046594139181099063093843309359144429147114574998768700644545200867819896481520907653066820637170817847999603036671824234480436259039118942777540879021399436703231391269886253761436083236305975783664010287798457186703214973725982812014533269145704059505000726713797762168941337811173302387137368372250090713115553419609857130441822023349447768312315661240877583911716485769955209788153601532089597843727582096990494986305863508460626449508514797642506520331773645859329379725861871538486751759265779564469190581474776346261891415296121317136676628669811841970852040920960762408813327908706201306972688206614535021598919385771339359879130217154046339932799508029480185420422337987068034039389574285032238340174546702942870901515433654247110661111032341581582099966680924066191837015605256176077698773940495179444169574112682438812275423040579006953051488079079942803961100638993931871829997869349126432035025526054172818157639103607025842452222961757026650712208372155255698007326017811103002877050452288561585219118189637180573463672578047699089925859546220484502084596030938510626997141806731773519917021223275451543114547396234267408066597589784823252495935138279072036107019821217910157460833385413830686364918177819824111627601245866624718384022913934309779967213123133753308511932463250554230617511852514769760583053680196687796303762580641740840044003859658064758567718513699357030580925055038676221220033118406608561817638805816546968709060431170865075938314022496081752451462591089100988937821484152171050563975922557014168081064882195231225421063031675735714565499044794293935758007108065856322739625909359360431775256311183835722933179052887126997647650847900853051903253753356358402748260544596534294912910207805496008206727273681787905715802002546527349339629270881554357569897871909530617829883900158233873377402264671203393680174149708389911058931032999302740340809246930420390136885279150594258059446422331831714709697183294794791261584807277671054533376697367773232266062855444503514223060465940962575822703632854795207962265775228542613436498584984079752356699560941489029995156341543262560507369707690500186319912704348202157119819488543359333195066346111776967955563684687064338843863837926909734320668653289522840476426214237510512713509057997986657558029856374982859550192777717768400143871630431821601139266209508435695112084440266173676283723963018243241749032715448230450282406091387820972071906628108363704095047293161285060525867017912503032347556536381238796749064014131529213096544166008849658331446910119264860801706081359387326951953372176030266261814026199376863577002686804831802643637090116261191139037356352785648309825088539380047485390510331086599514541003627828830838375422594298327990415205077044926873136035685050117323985103529668436313814760428022671354307808792456258760416643947351503849669590769014590114590043849406167060306519898344919626674960332423188119096303610487552937481002760188589893948493448831184855614783747359470573113578470080708617074620932898444955423488969745580130663937578869508915296104918357261367087641319866547552523528975534730367516364886225196608387432850133348088370103688372132906966253361157454366521470908332152920251072194429105169469371845803032335024279056762367017954323033366822157053904106330869919945878109440022074167030809668550939282618994134366198782111209393429713875999058630733824231561907330672611342605115206261242694040883048639812868409390860342037344433081224414299649510560659773280245154426855517565399039988505121820594874671675977185754985784526895995371964446816337508759308349272968799136092631300200804787089851150476725272142899620935227104691041406632405650434995863548659364310083934440797576470934015273368058400598633422114220544246935922893554906880427508226317720784058134514287978656216297929465722578828852159186160573551863197435324128255587870998235116096964827766965560527877816786719835205804699224967947134835095073912020684096505615865619714874208415943438835821490264684120876588069540943714292082163961230567103023765357157803445759177212655064204650814568530470459810491923424406622695730528810793165643085401648731047554439636700091123938482244545194160706971761065464490213831033604480238684678914997900035673427564357204194322704389276923490462493692171493737671403626301594259357673561757093804239824808278331739110228234686334326818021304148046259515508858902384808662066017220848015681676003276587529921253375153006108080663280275235768416955265157935749957209446890216317782665806777229224295125262408979658683511773728145958447272197861306940564002059193278674236194077588181054249309674705158849547650952516403436806375392440516898584241952579558137742154121103970474142580733029225276052740981740344695456404989330570006387364060479913962545608969986731996848673890053990901103979882700166970997765446572224311036481341884811868150973060766172993352244612831376461686360650688168535435500912922257226314059221503451136018646796219068897517825291443654682580039636281679845176703924372311549418582668030570313748102508692888589990669750714384493060167403922792115695090541598224380141177896694262114737045197711294354243144136368941506801401408084217301579421914783051737045971847137673704894242574123299206645887783730281325314272265834288964145281191007438122536378913260976188301872277457780911983667220060094084257465812270559588625699705452425019478151100163108809620883013747763397967293867582168729606104580668024968818646436430381410322818347149601706832419188920693069882195202545778801772412496421350693427292377763332307786383262220129591343274888982076032796054650112201470733783587613328687148962837138743139451546574708574671872699692312110656602412605255579958546621758131408921292274061056519179623654076397656828494146702650938254301153500341084448338748675375677905107061214456356959118517813198593229669812461438380815521540010976470515475096175793643683757343430443531278950022825189690228763157637357679860082778172634047920612349073248351225374936868003236476201217723676952418611929773615883642348706975336343073246165949767009766161972064673531811280248951320745646509077018565552463426823176459528176199641333932386830330298055621207746272606990488654830641842062719218538243880903333832717379275494594868659834640221705830591857847370095074559273313367651467618929444934120981742032021590707619826971900576615382054191939536718898470043866296634162031045283665211676560386385043138621287484995432219957465670880349781070025687264183627349339122514331137008322304688009333682421201812343159002580381635684333212107386667665334685373303817828416300669127294341840093964755101234786856384159363766111118050403556341909868682042782380416079514451806538419926165300415828358939415737478656387802968325370223436444978363289646922030366815322884500846314162900236009972288910552815124442059153922990332490861880709073814732533798480950282385484574821628653064108662667830781265120044258746823156792873788500500318502804844654588516360097913587458638382145595772995327812258271226064885172399610960164074835865975888188095993306910607547997298488282632555385082479369048295457121268713408661434213018498196146618257730989637250607922283488398803886155320296224684158437666857432747617806768225644776832976949019016307353055631335206044340718807328613264637197875451864597546082450219249283914320448132002016599770254872209808376947066824271881662297017542780224785576687409449833161616368686791794926741019934222111401179729339334158372829579732467927185817489937303862571350758818026240063055670702856184547080973163360831426725321736642337209256429742791435920338508344517497809575185482191962287545219002304465752099609431204622394449752262369261212647689267971845131209393688814087322434675355783370775307420442921758114574958142500013944349465499671764759002415692068988624873251633491836835139082336646837521451492379267510563980846457736640253416349437401223121648107391433720704234237363993547453552518728419004646549880342170023428607820662301685599570521163967091697025316616020047457927498240869751773265747676203721680536485541377176768122272976259772365464794862108456337037953689039933282964328969610504566301871843218932685450876937653252624744902374310751463512025349356584129447834935122827793458606783942403052268482595309873098812006466098366603495366906270589073296875116073679552708267322555237889530351977054116571443100864979896581034307506594264802795380763819429007413533719787997829618236752234837286908613628474197466287712856119821658030371570553203732352742499837614144012292931212190047905046151956531868039301017443337967947325863664708195748985481705259034326295334453288005299089375848534747843691403450438648472262529839793952508586645131444120110338321240448037699923677845880228724274648293329238281814983336123998956502292245983501577996669535848724482258685954045676064934405659755774197583732861827173915353910854124955566966090492107980058664624827309927552931214749223691619018632191935961005458636207808440797202371965533723382021863692758302701294050259321906413775911754283069814808092354753855265489374942681400950011532993007027697374100908667380732117182833233204722304907168836967105844045078880363327860657517425507645165995972365743051809705458267168985233144731660887229065041132622966555756216172963395961956091327311464132076542869036412663315518337745448313941440556488823237866420878388460193816398017280437963186098310666957298783336390020880634935466922065811277764075739972986104818954253920651210118921895558547398857767515723680573197099291178389653565709489996563950237727200339112853914397229795690643005514394267587595809821102409839969706337703115689898019289201001484738817336290932989432985943484386398743687936937471435474731107248770107285654555963756759415420728029123533122148479884621806732815977038874615067552321236005894854385987685464888314706176803713401782976606279800878462467290453481277108694923569802274540311475745110338967136562348753988825392814125659914906633902256127229994694594752873449948730289079939418276569110680777327999277890145382702563792159053253522573034210649351452728417544383042148632774174074436009225967583813300164290606878238910670103098684930959901099481378520659551146627777885760174100465514067152023117203137112589142008891487864395567659798433764817982159468601514320044993324823563105558243308746897557835420995032526298644673267222895700651395557933215541257572915873195392587892280944404181259610796437750359125262489781974227985615158234533487196916324304994848229137624042895623465454780061894140485618584666092788318655555988177770188007923000096869153525085099399293144288267071217965712045931325692495656582925702622464262712699338973901130243399006990166861694344977433811290948407822192298780568198686713896867456134237605286930378756938764813471319612074673225816423580163757178073887665633162922401915024792849414899725271418772624470437829243156059014071910979822159400275792670072493614977421228981339804363141502188665080342733581128252838497233185249970745870026316641566026285858610617110500848750567686678729036592982098265498888496056132648248286647779081452888695916623795889678575689548607848948496897582385208613603366534229048841914390631837656578195523292020400527751191503040058552536073639090247235756573024286965845239494061074234795066498666492593575410093488028305234571678905101522541737499844151068346278980631168451314505372663183956888793196127602987356597502165383757707936145160566988004488170313063965413440734056900156877857452992688952286166611360274252563328154118013301173139995962247910043169374367543792229744135883977773585812299258485691492126950402363645790469670933052823063068201568802899307827809026032215062058971226996400428302726603112765620146093719552074575092253192576688122076106407027225016393134512876984496052673572990540460342456753801236169540407188446254221145532090322464086553413229116178314522511247016465769177272446245377301229048186364673333077541968902435982016914470913287012531674087136935600250824840338186969009238740296562498449589180993563981758841803908369855071234271978654666631418278121436166328696706923050762041195653904357876787923383471868216251689484367560324105190171665988255942691937891937782624354136490629734352910611827025216993025648662872971900081688894723056529133493150427308299982702803614448345667195673592842361820609607473875369145486041312565900127362078122027275742653061743017950025879759728384758121545083697694801639784052449668795116205366135162212796976685127624014540020637192784208561338363256169579474576072733114704503097386526071483413299705377045969369465577899880194542262351718285222210310608038102911375941625275161530895052630018390127485349347843462424062077414221965693155160835256617509640580570138464028091933488003331377537885067976182643369755626373133413589170666202912290454436127412213501792064905325356292452021166448035221265936291912696836600249849557579762421365952086235788676581578286005758707886380099894235990721943067473140092150570231930279137575876307290759603680684051828804156374929915715440415221948632678181470499475600140945202199921307625761694840459263774911499073758121636249698860078867887912284530560565498112948231172861687772656923850293909776778818825733960564327731561597501495786949841614329289950517402829220355058528463446695187413246942074743637313040366740266371824400504873992519490760128641888731316062357399408989545392073225474135757160744096197757093856323333936155975935504511930875444690990637107909784848188151714507624000417516975716233617738421879495292415622089272655152645226534245721908772078037238992060848948482468120142963188989784694079614105196008318461832440757970639472224157496473671108719236252481946568263908827457986048430347300753886895954593324543024934208323186471890437021274904010920675474544712939147985063927719440011756204623599896018306298536067657161305671247346278281184203782489466325112008283179253001765734208876595713713171240763586869789553799253326922724103211289101874235535895195036415001979165205950127800324069539550946433527794694115096147385562179599320497521746354036129195004018616881994219627353685248218130289138169528062611754458815488138379332471277623902525195748426001959414952922161434204596361531281733820384439846569625311894130788079676758714601406304896346477334807323488300180814425972201151041374818991692621770526545250530469546121896762551051919008647574687277012673558677003157751083654070552844657503629520046741579497801723725947962939187922730435865498243934581181604422054585182134076013182824908782764893818196508927374254362608540785559560031278790079760551916925954807228225006231467140199304983985053306261809260937435932817618651706891658240410458119569555702282293391559749755169647392286607043008842615563767389887561361043089260497099432165578942174747249892003491647819220667451876616046453745380431951012387579471205106096343825646199865559914791994366240712246151989628611254419100750048837119374046682215625814898366936119533844938997017595327383938464617734162407992919318590086152401306007100018379775743642284287411228310316157559431618382603213010718195720391246326265222619142794378029810059266121734110647713136038520309667247413531380036241342405370309313140823374586332966820657719626519061469141807058816434347699071402836886095838302572487068646556020835169570530659386703053655908605477526239943327794885134025960859491634088908309561988378339016968542437285039972597040916283108260099688587260583581177687189420232639135749295343387546488740995860584520630896252028742251595194264385004746559764486746670233381984109127693741173266146915214906971057656300363069051928854566511797379797622476472606241386338380017636547881736706856889568983672875393303501015810419459446220075856496900187802716417596995108662835219545104365459571575236449841635731317489936261824150529294694499130676435706124156803417652361219141014788987587249293275709709637325916663758406833187064880945132558935456038916834680009637199184728817812623712817519523338140959929349442637450286941790452634501905200215582905357031975247915289082080905165514274897168445834845963990277921609465890155944370650129089150705003878741615784085848316925916500131249478228973237316108859116376080499659447623262877560996956368703419905525680290523557149057098023516782717747214821241949885049874123654675496109610852665551092071788732457024064949639365697389924674940847978131008137194698579498350218539913920435469533211109046439092534429858430694632310117441646575237882341395493174757649595808581649097106708513446410577718651651858486048500303906098762571408728711245392804801097577921112582944674991034752923630924141960953575227511818510027669307721897152585832532241678388402308407760110425985827165669832909223316292761287170533865408549032362382305863037914929141998417504704119437545415892611304885466288760110555094076536150819527052224094716096655684944819392190651532531432190445529307667909231623872249548768578802548408805564961420355002271268201329454964059839006959149549969180775209597227321963766201716418186652653779589132620807754867879343349359927237419706388587626053186232914897143378727181612693834862798254987927227522092547117412950330291701098357877503323489349188107310221406988225088285038350584392185638342083251814137336398928572598373883683906092226671763745934391908686130080255079910986255398975335108394416885986288929272222528044109645292488629852586499822574121565631561922709593927973783032557925355859359551446299140101169152806129390941364965685975009796585046836628107947722275182109179148861298757544534369381882136256294366466943081374187951590540176677640008969912253254191284323791728728315923952061809690551599765829058407213922769153282326767301814050859920036956108365986006420550981195461619161420563580168072417441764707477993672553545997998384535437696036314520973468473417344075837432988109047020809389731904883737873711793610141056093651411204205119210823005411842564811547626725826464130902345044880636127682754282227580529280177427415873166652409856605084478036449742104317565741635911523670120512493986906736248011429433514818404022563543052847877304197914354082958637859182173892168483116504861903909417774296367258034431404366573615657602822913937969865406448814514137039196493087773445836122175962319198531724602757439573372557463414018297059508033152077026739235339892028745686010021021629021354556569035455323957489719768814262398738338243949808051890104929021877820339563967648066443411665909992627239043664991030517874969166246644701638104315164587851687839296765176113910649549894466861641777808953965454503138342900325754543702591299319324190560099737485443857525376060684817433367556910795384887939841989070241933204146834799008065619185420284697489197287854193279585246064783964123313415098004967035015299536801777401634480122451504669269552133686550268582972033623462137917034112459621257898693235812148684896121315665124882380180571611653909185053067498135732901299335841307923432436261901408949490742398393307108849382540523734501167066287754239041252092898416962959391962931189004500851835820837655368682420411789260896686335734570147941415514124625170225047027113812311832963161796399502234861819124511905995364556787732247196148215049083308067187235417816665530667820027370088070279963125599648430588845039697074144388577800849820693972178307539791047886589925351416695160860120097348346566406222022834195058698407670946983934964338432322754801668909319725808042614075089261053672821931717216820914644159944801009095356575422585664851484402308571331961495336332310558114262955410975270640848951167035691502173667832559391408927296260735976097768080964549072028377963662147172566300104518409395080804520370026138398074220134544127599594577091737422079219755997586448263908051925224298040136811921885829408233750597978875628120177606756270232165342944741012794240168264498420776562216472996603860905157493640448470036924780940593711215673465170304288625368875160986809266447122389225529212849226934653020378810117032072786885899496289691869823031650138121709396372517201789004206681223935495192425868075481103744011915974614119551952472117198670744291450738361235963203326562779589459888907551039907851378215995101848016216328140421639887658130928513965812476972198809689571725068020556080843939897499232908763296400740063087208102793934754494614424856537702237872440101390351207511687278038572425435592262950465931192319224719810669518993624726713652220901899085140394411285743162566347396828143688079382949941524691816059927387391817319054131373460983024791274103427337587499956147625058945984931220911616326499121706626320213027910807327636987824517865437535405466160090413007920581922009515631786852010872602190593358163377671065312006131091291934600143192513222336447398463671421502687633203087029107400239693154879395429687736171363214176112764802015707176803495528454882988056858073032255212232894902145007595126190466016438008819643934157542002212977611993080548775875797084271719155883049460379258844208559118850621895275085521490275270440388967438048520375288298701139815097938580641309757957419412149954605804688962524722678508429458592465643769137808086619010989098280589197495206241196002526340144460165367567009430131686671941535139009038637975121117081753978058975179028148165799982754734018084081782111002739311601880600867638797193892496852925542102799970361577706269859937184783910622312386897404780145126424032055035267699933268534359676222936652933121576083886969169565909562037969934497777412911767675626363378131467122495513068919275529813754376354282319561473381581943495422776991924347864779652685095655810531691916463097414806505695020455525580869443249286822086389605746455696728471121694738880824513228092442243489114633341735653324015094452782119354836652352509504341513510243506684255953583426906651048036677352618882612042662053770201311897994967572928154340261736819178866248192086720841220585178482649519161087330053016709126703122622428111840684819724661509177265942934667611803681417507796980982760964019713394294858417030447259160679140812660749177906740070147001458490213498798960141292108468262391528228991461774910030389365934884959520799117901524074490451770993505504138320179249094620744705939215570434082396737048950524613214546591468708490887417920914780525817718591096885293756073061805320531413293582258878995520128641699242815179046357085337814612187788247874496879699886634980662999518674626997884682126566099574081764564386808825634180653758359152486233638101300103609711308205480569562025367436284010005726361140620164639542633001805702130267156732482653307147573094329554894782494076581202776109782150360106307042588451780534597509079664830938515885646735587477117595511621754066935199988813296758225891394142814118245138566100121691800803532392212301412430298674247492563415564398474024369703089925449994381261109793197574391145568816830762832353689359165644726228498536710425494130296934943674131227472019684468327339963041766770482050958656990374736793948738416965446450742218189877751499547399193481020878905085196367335435742829250470080708447698860367001418930038102089880764547726576314864925094043535902544751109176344276997553136632452742206379525920620206904220256384319273289640090528136901984878708655654698738511682773512889442584842828390418031917780607857140619561498518344859969469613842267477950303227363905675868698206092532499435366000902000463502371577776360904668983224879035828691213868699332385445071756713495784769142712408911184425954472782817406467023338397874267684936042612627788975100982172851643016609497943004752203109059601196220645002643690824775670873135634644608993354084703362687376312820034424377266696252719337806104296728797151661608442518649842395359110106867207312374897201865387504135319745107593719125458733508066445756820435322145913848125172361009014231845129792368999335197368219318763577253616469739166215494997845575981409885881026631195072895536887069554571788269432744453680929754414939388239333562600154697093917551448686535705687855564399904140536249507828429448635002803618845630390307708423822265678528507102497493620690376670787327465876866103374138727677956031526091233538081798697792300309272857171768678474753230044662704787655496946263876142401682227290369007726535283391975470575585854244396443668805084827387069495300096378935160579354804293860823840860363053425010278159432367836277924872226013938721251539404722720040748849528298418296393361727253731969721016749162020082375591145732765416018121112949352619384338746327780947866143712959372616566709406854129626746026771400430318156624843605928431560746817025160522988176387168591017508753514431404050902942348697876858512823755618100610975551674606487680051059817524820702089464034545488736369479337203152253882212621757714857264912873121654975080175486908214321921533318995937620644020791772289386591173590545416741022358126930625694653090386920067017497126945326095259607955521489499669073510097643596298455157485052150324586817070414681912906936169010152948744401950696128865140702959153700710023563061902782864767791516287772846576481587549938156735099408589500133196195825803915738053186006919466802058058080109666265991528847173618903708848684389206690648735619202257445426455229155658244554043650228986848694745506054715239144942853653714161247574813686793935298284654962202791620141363735632906729151439251872617075795329699105422685450840732299558546880323797578563752617649353045304456265328105387271304918222438628676019570507544636208225840984039222357611055609209104658569671890059048138287667350970177991629559745496808815613148331147181487184803070277046013691687717389512147587840424678344001920638138252439656468572646477268279654292957236519934826984577605250193666198315298823358576411054673796715020890785192105723801272263763375139665013847853664813556977281909370135106427042685485638040581813733236719523469388483543308759407585178820885013871623717933760725252258821362750732619731341629102415171639529512471692533166310549087507135578702006593252547815677495275608878416591285830856341822907060574519626945748819111988140468299703698811680792233121470047836554197113508133540604689950722011389576333941285309113642104299757120213933189352034322044192726262548303528304972627759964195276190481311050403390337877516549204948981418525907719407954702519149659186057862982487305795504266725193883995331583611432649781185936471873650685311874091166512118073865177924735986733971398978535866180110909942289390679092964797342716886477988213077249053587385324423006370041780063195840266458275331636666117419510891506222933594684639552787537358852443418678686105068665782295416715384841088522801897234580388621722994374691595468995515738346744657487943267659753780147469101327043121188600221869912946027844009985819332422670874219160430802018731303107506398946817644786255311122352571082341982542986388506786320423179511811702873332197383589122617773452477183767780995220602550983190920148038172032274497738026880548656388102021746712745056415936552253017839150512020458860911052177546033516820599785167435210622645653082760555191531510703845844920121531486842484816165074164600622651932126694833359923590694364649797894187347278295282590719150218891085128103542521943491965062330929484037958616091876517273845923362881089787292565708600432533942509990531117913663415885990438083632689100887308309122881686983508419463957887672859036747100838744938137733759734880447540366663808175700226032329509045502341968526189852009855033308975428524380258594316528669151318919293137561931761464076750643621357854197622015068751821473609996043825477966691948898197660907636536210090967224567498706318999035837284911162444378653184146128991398382678897142796023634174295923892752020211518379106698844709461192247811400901426175444674389964680579941751951080152274683193563271982838481391686520667187679352061269739949141047916822986153680748565291530987334196107181119711893347650856510267525394420309539866636992084750319746488483979198273118023592563935393513132378194734588403461957255659787496234928713161088474609546953418802601003007593379559851244105132618270521624415475234572817739251751307781995797548439835742551014026275436261508523743702579499327226942562148539209710203753349227877199545451852107825490419274341764299081757242838495821710663116902947489562558532266553718717381523223901717197586712158162921489989426936496545599905879543679868870014400283835750018105591008544159569151262827293072436846818256348934951331378791243510549413433672799815043061562156604906393942466691741259830263077112308469482657565614422256184851723405852965743563409572703336246986321740721898917501793458980795554966075976089470834325076224039428218330139770891724801504249779691803779045634426628148371535024922828576485776365299949787780990839908725322289144819648760809923852890271943130012312924534807761133628961196808387908645784142836515838628841167240062748839530880997470502811158745966987772872881980517037914110713469545512303360908279143585653869024556694971657357227387266234603687276983969733896257970707102061485100434388843631148069120824451105983050668661235211630433821231536192359411257844816271169218693543196335585637424764774115177452103102595566430998521795409679337675204974337293581509594711512282770753025993932007514212728374995317608910560126604106647485622941951745860582331097941357587546353884479644250568490142699084261363409521284209775240798275034348337388374470049254299175259618108553411786100944746114942428825190452220325246563000047006030110594332508374728347895413496667627025493719319073574071962307053232077161298487833206906468186214805736758013044355283750081786972744327494908224858739390934614697087001286780058237082762027722443192103406791214827300675551713255898576999510486034991805974695315339337427572558273694373097329597301718295462217363017623422211512184185915093737249958747155245319287529759197564518102106214770261110633013512685623026602773744574651029161456450712021650904043771974728215873361694455901410911163115945134715268282028180107816975516484310753593548621360039927683788955372679744661131943682713656611244855227548271356717819548298760909376753080973197873513265000757841143537021436816393439243965049363763042289618907028036385579929719710264013475585392784735137696390189227627094883067654535539816799684198187849571532894886079820060899546945555300908141796285650533186284000167217023340167852911717584061501961666345695840581628840026758197708476349295140708368412753082281919609510000233937899343603760364263937137343063098619267886359611881941499058939410208110384978016469914800964583418036995361700892971340244925925967861940333279883852695325826900484854335745397027040699925500374824579151249326281344430544838477083821771717978313893352428875099843895798083996080373605833647942742091308544048016317296917100390968406617869740100826792602405906600103872426430309715074928293999298688616560533949435109654016235246888128004363090405120998400276080741842003758016483433637925683267948192070787365234504569624222996562933499017038848784910351354717485842426439779754793213489850982648087779633916924006941927495339704765572590555080845466632145648323615979816096133707272513480407078451569520792480196855340993037738847475689392281574392481796613277195758970946690836527554485419198313705471584363365975721852754037879313487305816277665965972467620925242579230477897738175520161031872347829715892053403369528709549784914604328814977683006100519076572787987263708267262821626544417978545063960174942846172715913024660937808135921244794939605062659652632852768709980566771424203534911135557686503032534943341309472085128146407542023581138357346479794631601139893188921505413955161958513879545362751971162269152786834301373640588217770469742889738490235153791906165912497070999910413896146788425746433191366963498789589937780249808652945983396665507526111464587388334770605181055758274836970846889329438011257145368070773693347356172122675445172567782291091530945462728047751334660861995522609257203848917476177332798447139770726361854871624004302436178254313918274698097373180619589175937445611368195240683459660097966064025182108410862207875869251039561262812726704613823738360624108030427906286454516851221895151205933298110502864691599651846644554822386169379517785885719519873714614898921429205248497388425424823589932868477381236223080513642219254925406635698156932205530856257307898826285716126540229198884842665680128364965415920305146926472278036297386378324120515606961372576190277949632631473451075457387450094066539325501566467960536553145806632531785394168411040438479256504143486186799029145338727670237726361316170684962641973328969210700536634811700111561133143264173968255320667075335580653977074490094029039902609398399859327037464841637263407518799976585583073126644211747014340855551000524431065809936301540508666364586818843389131089074730222809756434441785118073746178908708788616615865078365258805759164510799569580554855333921627179400580847688185416085933519880374607217525441983064808596840643109931044766661231953148274987020147496736230504405959047119509802663826700885496005565933548482378816626440797453832618133136813658193853550115101423428221219641610071257693378434804815029307526266731315859496220621504854141600280291304355882791464373811844419837775792059875239990740025436422704329109070377599762776557056439359296540991052775154775458533378128177183063103083346401631912971161901723534332861439888548501789263526091275451156772645570528729095936299254220982185176364417995855151255952883253702478490953494975336792474347198910175389496131266720639756838626042721474320551031508900488759372225959365497840165103271944409496438303302963916219341713552581751617061282493252775358057008785191642765070843314515712937213346718651331223585248007386462724442874164547691059196059900904250710412158156419457979302501963208943634214072589949962557912129851420011957100397504151021175099933618090299694216676575484476452283869648592591630969803027900731176495841885067210102845304191820196756676153566244390588356417228997270301704803240659541426550600149626468066487472821174885178322157769489174069402387521602057837524278539830402068591556449383958609916807741923723439717936297152868116452870405658375441453105397732865470564420688218232622183100056124681622014702934058640592771143993327251286573274919899269412269886275527600909228676715415662033423264847057931352187270722722046007473770191980192194062004341069317757964710682869491945449001598178915371823721142569035801786519991989081200509988447140070391311027692465906415513421284534630837812847365893178433045624694367622207461582571252821020440149847027531427046467641401902211284559571715030730562691007351264670810348782652868335929916371145356387529045972794143969288119765773287485551589961200029541033002138442765458334298964240583961613283526056342808860227371962336853009539653604021380076784957081185904092524134404358707874257512385072739418080615308323809368993326784968056075905175234179734210908665438114053146211952403748697565532725048486440903172772340204669413211341896969677527301019705577814579456929298531853512608479369262041054593263132786853356486078293480195448923131044696065760542380280108767294944844353746083972331573205696787592073400341823954745068439684981403124636922074456579510784798484506632585678362538173642608306722651724687254739284229392925386136643058829304248689649411938815760066008636534272360924716842445154927800453285640341343157419673246032555304446268844304802093398643908148229944589075168967870367519675330710299352540160819042962704865776315710325918702621535445572379498316356784177852894436889854715432759908504286054305030062404357383683154411161607872797127666060316180337068539668407798155604663348677584248320079091671863226334486902902898494602923213980214082561071316980034900615273988870608604536221894118882396882720990674466677379040565116656043399715576675185374652117471493638354608928926194373253870453063224475123749025222448414287377680907834529362745127893616056880564265475452846258842607177870783537583393002443891054843327847291385053538239461558045622530931494986803886158528537053328558048573793999695410696755145033071276907103080824390667839032362197244896754102787917728830128433177366644563528965663223744365454800724310287728491469696026436970141457732256051826858530120460407231360136770613869113493482088538498998659644624170261196198329686339799090119077324925637638692743412542930956402213967771581268947907614586618778454844819019967558038503184514421885708195485297415179700224708149738595895875529095730656432912739096621224200845003159847076862080745380678634027613009787557775377689777887806306472435841042693937345187890865001088052674179835312374532594955268128912409884710911539391462560228830941337297904651273306886428790958631638951897460293799192195216575231324837701565465838032048544356060514168435561143861451963664544737235054190700393770479457875598225967936819274969723113017968912606402865213598020967472098137554275254441345536401816428852767494031250301321981860095838506191074980138390802143610188746636669295862981614000762490945233073346186508809433742969101723079376346972404543067814444354046423658609028946749572876344926472999270412638423083957540329436754338768885801190688051129218223033100231275040713103981412405196273849770205652974629126141962885196620920217252103770501792343305876521540799073552910547377410859788542306592746806680967714448887905774239591751158636429399146909471247755347631896552411053744404460309644424785277718244671819122032536928616823074114095168874655990370327914291356440810569694112769145627853851192902978574784707313933128004393106986686543992765956378020491635714898220467751640031931831678388995810701575166297307423411673202376396635041034283316577865948171952555056632075140218665743162545103015787383464758931930076063242411028511603570146069039744347850124048873899117846209085064042737882935351609635496408459984388464022982419405140629486410213234319500546513770996448844122182918598740722149652067347969223479115865617822531160247347695427430228025334979474682244135414391723364595129489606973461148894650223492430005703698530518190349776137153187307702550025150442056481627082619116850983714048250695069756982318271078184083210147437230678374193862065603824725166161645761599399428215089797070494134795703363132716119983007582871556381553340928816930784418858010901526995636167331971158645324185391905957539517807138775875114202490788335944519595587686526058482399097376668870241994316949743818308297223568663874888779842674749849496376734000357266109963336964963271909623508679525211067105996596863749149149516920768240902370948955010793421838592343992163188417045251087721410924312605772767879091194081674970585843135167033345927753229629109276212808322993899794773648385740915179440854351432740413934261383545722905018893522354302803620339367183207393979085752183559472098511235637026126392019956350479751803636443214629272013197030962352200801450345234872951635061593435906120245272901441661358595493354471858831872856562638784135073998258773885947760333567100646313313491361467642846714172899884927874359645063445203646912979102064280959339222633776515244076194082475868551734282306401457755161514991024158309684941079203077842176973371608197618817753961344068461616648001932206385809817123812012378095068862828531286865223811602409262607206506342220134121724466694717282243600779122394908514059879348635190580703728200093669381929831108228656847363674031002969929206377804238178146147568024284777765130865715092478418338719949366969391246159272911728950150843649396525028432793219193379116876496609068065165088817754179101005623932233641193682862784723981063065621751644586485223954246140138589839647472773809473022902319755915223647289523261423111220236233510476341086198403210126898097359631411024409061560934774180613519966472855826626504884061909034806797113984273047408688937320290288973569629246694766147706333867113222260719418559343032708790585350931855594964431331882567133056045558755742154877339292599493000179788941822510487560251154158344416511747693162071285721517458112453752131996070267457568169306672778840394379246571771712974903302347097904219468524148632352318320630857488993667560571781919095665336646157691036169283899209318866171867708917871823081431777977800806460431355893290250994435495246604228394282888581806261459693401967220921049165599740870317493397151145809244080528586203012311438420347518355263678052521088825556607814580874425527866509080736876191885959213642146673657368839214639611361943142925236147641363418764690094203731429316282320408137641619561124630484231136032709140312821885637057343695628640393413745953106719756476717578003236958031090045720307185522306902688290815990576035344695268175973598020670275480759430865174101974380882667028278080056107618704870462828407589672273263162193843334447782037322133761543242547899178460094279295461944994863418095586471939744517316046398162911933606688158799352544458363242986583051089102834054190621097737629171382473044995529013393950503561950115239896996343447678115010987201673970572326664803425936324540846107797205337489775764544171962426519432935118670045867234674979562194178828669722541527990754730394134853132319452676740893105251527369640649345271861948222654970647022945740684649367406374658340306098646155577264991347463922179573291963830466795964427190379553667691242811401241555531747076501290421318824311308561074352041591238489453831883668239525633640082756094466350904018228120426094510945070308447760374288648226305115740148189320845273571406212238315835952220608815521067190331142660378015342709791581115269003551592031970806538436025850001547835483282816290618316565265390832558743800834756345843517849413303780484654125551216892358496728176827898219688447997458668120745444493441453143608677893698406208846425672597935429793847143296999767829039709836379940602866431698921196757600781657552243647883370515602918892392787023220237203925192447101579156369677141214055476723977826723873035322260579861097033872381628002099259202526601462596814067072958914723781632124474093981697581663692722005842054636794953975784420942941181075132487564372124236030512184768407959953879103696351403831059892866124162119996647917835233598769718965006862525046792206243303859663399012920287220776640556130483492392496833852710686180620361683995552275695618728748331175556169953198819522399735271389582313228131635503529607582827623754922596830953114763381080713004740768764607318143370945958995877142928872572191217656336887315175574544786729581410612258416467939918575719730087514175728384439659635194818279818074455470921779979315474809020406846987344414219044435043449227583218512411299404122362130669641887676923660301126590426047613027188626276626921055151497742766079322319991146654925962697195069940490095919228887451842657911364602288129697773910442736478568960599419990679492231043819519551896441738167941821346297150649996085765006390320279936414731856830952474136140869594830452603305645234182822192345938950019428389154532163839012436266512136853041626100216655117823812532959245740371703332234541824033551946712257683915094087104376542494042183677542590765478541588030583668248722657384669103527248954506377090282905967358223764287153001913918308569491392666773557000456781305703991869030678373324574240067598939713550286849641999140633564980663260744259305177077812597927043284100085836863023999321293159789863769993210023081319312139952936689200153291001574742431440857229138201640847815117341481120853941288359693924510338390550175591314218687022157919034514006299188127767921441044439911637264806703159177856000874947364659745119270765139762302955649358260762920003059443310352881866346300551670944678243607991070088120375339465657367142259099747556799681190773722523100152197958768578342243086938248038426936077769215831996120810325467658665189620874625330714126050667011065701205514602117876708911024599208960786691496041145428653277422169994240174798781043052426100217969053317407682167768376904558994149410185310932262032752765371862075348097526184518361207950900470896008426226784154694620363603155043529998806577077613189903015363004344087092384629313034444118260706593040657190159156637892677949063825325246619581288328363667370935058278439006152127092191773686635686882470113669592879274514488189756344235655146464477630824786623553670969247245975097164229608440530226409161803054517231180154437739267479576320009970445425760767200836914692853719747821014198975939817702875835636932765747864923241219712512565437430117767546260479484548072115663979261756743894926482024922002981834476600171609560598489902390063942980528962978305562595405263225094352568680163181561632422657012996538152318698829202733390089859379886845584264142274783029351455065268926270988365286351612042466589129006241049128218104316689859087792251716439408877123514648110742449281432341972685749737486471818227804020257881001086447543811117515642392004617256124148565778995357252085515070382820252163782611578013940206853740752099312128538962300585260678297096924303561795772076789976907143833869274617468448689348255374515623775178063614862253372683116306605011588193617209905273333028030110418727633136268657640353215920991356612231727133776992043963619967243691909441949955818087187112440053854281384596043699968281393590175093313782635033951142691687813028398698859713037635252882130987926190517438954885285630177515362394936277734852780434665673206933640918019279430402538901461318045935262679349312465931915397316218330076368392168025148451491737461897809325642051257564684572371823515078240046842175720069230534251453283423593665393237978121239957697586074636769102851841709722506691171581191746827682768158115203710792316807871359155562120472430649145862488428603054310817542160837335380121350004459953868330941567981843625696889839488026107893658163152907130613334251345930628838827799574884748821892571262797235608777770798817035435301958347001912284270831104040723078574120135977385640975269959521672564994272170645598415658812984654050181101977253850998543304785999236284300396390631129063511179512566830789467262577917260434773521658476632650537927821046565084324674883434093022216362812950711303939723960100773200170763833881830877278991030404178903026332539775877082645991981522927538569165151316221211676429557727438294056283923772620726457069194412772235353956769811034859222876688042706741114446803166518708058681884301366207318250349075419761695118213684523592148679635641121984932528308686283644691253529294230127748035659014198348052181424354446506581609095641495650475973698125714089004282524965437386434389673817036822793755838782747952109262098548479099254267659735610110679620360999145587310819161980933868124909188164607545959437625663578955832644227622582784271459705212682379055455992665253992731232120631702893456923310222878214091935356938269392337193646174184788072383548970764226904159294937264745227845340105297671273876637476253112051958838545957861248122261265251651433093608203414309516272529824575089628364320744184569848283221832006412437123990105998628295117835630190545612348874472246867908792199441152466507077668226214972100001946248078734053049957911555015684709314467863927156765294586950552036179835815631397924577776673742552865643984025080661843331091343711190323602475334275853805495206685301126032798784132326014431771393783421592405443101728176562933476034802084372357249034444218201166947836405564183036482339780687601300909420499990758194361613925130826452799121973429162853480142657469207135826676410181514834387303919498186400644749167421044490800851308649513228940585703147066729369628930230340122785105057541726707045132661853533295599147168428317739594905241632498008190926279881001548144790715469232051189802257475561384819917630917940254728698064690826548450124755169515791019433975645540321981892886237019497844311902763095264239426585339444101431127498672264443002662143001652841635836730093736911397406696611998863053952697307698953581906628464119183220605919122240015391971571711432164535199127569234416734564663945190576117539238214790917070226799880733188865587760567599665639825186574917614443229258106208097119711633850632793784972866561892427091465620120934798646998389552546405495099933417120295198149454095744501166550404807405540664565635805027334557114481708738773660432442632365126923737182883695214568201287619636185805218625911669199493103206685086849435689936302570430673262095467674486145389169972672691370485476723643635856415653230210183479272572929101934835848436213430051845666233395484873760412507942196629605524710007699142244107373342056760544283002692019016559550875809644707580048834462493955593634247767949882309366186582765762340848933012429694473562117768405021239189310389075371605456355342108507941281588854816854667906788573801202172315134796799622629833199060763720941885045239805409629238869536474696783048828589521523261973709832683276146866255781157484036970980161845761140528732395441730664344685890920221295013640857803042842182745349763845452492683498404760804336741043004341386639936190850322863376988987479333579124620770220128556149648000309379908253802003887611975428633355659512190558935115132686828703411398800256910926080782001739568574140479787653043038060391449877893016825129895979353735915378777836890558538230695331516559021748754400618038493717873522107293847504637568904480572613843380894532043293265633345884382133183224628386387165231916731463613269261095456118947740034365800822222636555972671280623211626788635863522579006654990578091224665399120266119580612261677912136308073153827201054189266838314778675044570976203363933133709884763784006300941582625794436817310327410645998150712587436038079613076039685030018545440661634450153839630623414203353595905845160292867009865782735689202385156678074872937410910901622361025244992103397492376796591256234440875336720434422150161281620371854577956439683527165087504550964665039585416307365027721985575434110294321394161105683262186582985806856347004380702820707247312068470363011219918043367196454587849761727181617473874739068722406878911586321958659389856887158676692612722006419617003159017533719987662990958423610028676082410161807244530174725798746201812706182596614119620403893340966334547788900566299333948107205359019987208804852719176933938855671990234177902085065770928143123336518919335411260266223486598892055101691159225400900441765927987302999777976865993735512717876961632196283701670491490231905588989035435841044411117979600406915303389447668829186582472781050309495247186809139926204991504531666823754029565386462377876331302079705684811555635386058760789804038489489305688320079942657714712706927433087330023757197819061033701498903387815987179821139936087844942649771556440777393893755169117042727915672482298854984703719435931022379518728791451370822588460291836659684865514587136642983326665698374297029107963029022654520893346306427362289665680127934001132823592817237891327658465361346651950464623564175903648161778136787125313962331307021877411512739468886712844448959930465004969817764008369478342013242988563117447977302579051116243043860463268875904898040855018211894218439128914147071629959208021063743816633004499309832608268184536165550362933628428925614841737122739247060068391962300233568127114721735062568957922989087135404677371515101818458569600357123075432085165407030813176330338435273758011428089585290938297754272645514893864983380149086116129492145226139384023649903624346200255847495050457205418497010338629637395814629135212741771150185049608579862924147156845405730950988200018064128782787768206122015070846059968172135435593560827544720514960506360504914622613988477267774467634800305231823193431795717540063656729910123499889056744869029656035066976645987260254229850553309544793463473373664090779312464354109383846037552087396568253862351811529569104300822971728161894025261008435866521260693744476736124162368553158826662611162733525032662583570815364587098882409940157236332771315406124119338480848033041245897153480338871825547455662960150439646834450422813608907742352863735579947491109192687088561083287271778052905538737057794466513163491524374833803843596092327642043769688170357485020532734062480597404104612968784959985789948071111701451550393388401316130078197457459209387395352144745103456707358371045840248616082238841891029929107656081962788002924400751533911348211352384035791562387651332201010140923221473990212878633506612743525053615376532288924958396303680457821731077078806375052040402818443699111928601459288350201463395961895276551435994394268362113275669967392619461699657227714797510985807875756999000598153926610762048466919902192520072266529305880299091346729837473582459353151959911642641748533357396893644307275783786038313888827901956516147765207521176403486074274500010388138719505920629908362999486517299374186125753460810606903236626584548312611720118377136228818778184321804520092798239256636013034387925101039093919707720604882757343998062838072725964015235873522125740024011245993913414050623543710727747957370567632010546668020371378628166540157910948538874745169311599395413437706086404387280317847608656415633562749396446895673995861897685750658060785928274524482060443845189603262600208855587670344386646724731809307525213888371167540972355210667708376540762099928788771882912765613888027016242237104355016078303729264136032676042051035747880641870088048600633034576231919557132794471657035405632129232441059046545142450272991537656014194596316162845841584027051220321095381368196376114640582490999118766787515421256752183042524756633364695773667190418541181433756373613922767081246451242104551710261049199985401519469033847986172646560163636011171280953996992930433906432255478555215622036535381022987619103456442744654412399578857530525281320962947777302031967064377951578340238333164090642454495124138956667298387029880482944907435053010902509358244165698840385944517395959380459545476153636166160347139020885960128181713248506278779041188469451124502263276289836835119251344992879992211186738013116646981095400505555271847591599359187881099538881071883807290408055538166979818620439213470570319894097831346498379028040620609643195604946396152340716637624328695716822331824726643038680780468787031964863920816073852845140738767212092184809321210943123790583920332659058745184724383954325652810201555489183724284896308114910197156424622826275606777552889012638177627323946100295668635244034952926522460321095985672291638969301115682026284275922930326087039198604196505348173759926339634786057310670186939240697571740891204652663265527324744329700029543098927955034755827447395230399055801631407110359150011388518502248496524879886532509242018095480536310020759448188380945258219063777265332076365825767051779795470250983002699228644085323191615689445688646703425859466247179702087411441855077002606580292397036471967002494080453491044362669004663535857243495630515304759911854875063504797217720412016996273273957168972483309177294913485632888952844145118361738671159241458603800537778240430020750296668621433123064424035345628905290244500358062637932088028889289250681740614103936293719608659162884186626507176435530314607786773888034393908673029617347852093268750265241931586576049647968145254914906059174306064087489546772855833954673025849485419796985138481123984725609154477862909904805757613103069040325041752742071558472866881279747129717444610244967819291431952747538824293417535817171091415253522443437986355493331432607276449815155150779270527551962322516541069422260036688716359667745898662915344818697443766854184311342778717636931651124736156618296904294501986962760046073452810445288711152907942386519817939911952030637929308044834922281302648162666370040707857159936242919436199807690581966075133728061620530435598244472560166604635273603782747623937897988751924006397638031664812509812785782226485811873864235967810647472088342658121112609241057028403292399183975493742403913644914061312402359899306954814000489613415825433709844977350624207718592021984957201163665162830408103584962734480715297689890312898252911098248891323813139844868919711004448669498548991200371849906803824636352956367794979815353869641588107043667351456011571395759961207071582721916162665142220874420485649084021559299308995504402999471270258544892586262072659641134673165102499886247319991608206778953692010518706700038398440622892438123133594526354519472491686927795103419989411208115830372877693627666941261530656253160747103096614220417100826983300219600688452115154009529708654260216213729206507830380639671080602844131348759264396115688469685330703400072851248382085430546011406734902979539629424424886574544625083354152947795016962805202668119555058183001198885836866550790132797670177400983013948222436831400305903890967199450776025940661167064284011283489090676715207127505046605447350030490340056029279050895336157238098964555830890464471003362649653716284466627810250130693143600699409527583997083525679259983910829135470922311973711357292742566897070812799258474298454038243613732746916208985089749334429533380813477762622393351424419875463609591243488695557094809716622522090757851943170885372964211853799628729337544759278026062052668453654587326100377897049910981812052322048397006664402793973551447758073180420990525065095990786967840255555073794130155741563491144461506257657249444190959822756853949972489491750010344155116053492624257925454308332981710932749262617253661754490404070180661788568062135468515043748158608190430032966780898634023594499919329050216061546842870904176391989606996502949710674265108357886090685281554107470760564290619026692633720633690184633721707759286180745594855094523423870093712328149655519558414378199664498173506151785163960313542308995253741485452921874170231599459678456547855175002339135881802310034669169953947251253093552444688704654798126149268951864000220880786662927587754519308422128511115751474600556285825644758489424134004254434330829010330604363436248064217055432209590002069127252610571588021551710787228942921682616026772727846562548568573486334107300972418003112635558616671287644753621891354557652313906003685647556457785395342362335814270479826597193449510967739673430110901747178683817226800090952004867652777372880132022866036425799588083552209144639249660721461791765756928163249619023952226247975309894872095459367021704451233695660162524808151881458429012726545341323812471194338658506502907748594911773793095019141072070322896206478867277938766757984177991878313235699115439921357043755809924196760432799917126383492030350768270451827109275520742328406065458031821789001279733943376795750185590536031249768729267032009496133337428760029518729590193189054742984699705486311701779814612855605364062389733256617927321436565774168790745607713519971305097738852616344417750305829717514786709631809763600588788357463618915291124627348695286541258526726347569329267105546957333376792169275665103314131382270110991625440398047347500070090550363070571664026566632245455833320631754626123101026839359153788212402613209798893118934664242663764038512511231919349099008091326969335397200053470968975818095405206382725048247107361555307482651006871364811639202341659433444272151120972931470551609650240167061394505290403130452355314157827192140744057927166320418796598121045846427374440854725716622826271189231822314566988825176343444432264029812079593863983416217981201662052337938323138420802065327175667703071534180693910095928907114600478424190881081459488854840330433395161160169240944921717577678712556357408134673412513662487868285151071984702607678060081136953953230840101779842729167877032359274466530379803963592232364331068878928795803882016729447691523275132122438277871798901570361284724760839589040337080143417674366177828448127760322243041446783096492773678392358531523363457949976682941750472700542835736298551336857483240753641428690189207141900581815413832050964265437726309394295146937967331779482066007425548303753232768813320917520330502506606578734352977487157028204480260409776310585770253587819950613080872809289783799728424856176218031459880093824059965637440123428538912798751205745028648109465640747571226459008528738058924218394958652110469907731134232064042909707089159134283385053803139158361853470092287854810516023241219285784280288891958353910383585302733357133828776590205242120156146968907757271350479097700858896484616736710696130973772942699114497110348044633165752134114615018823926394509203265280818601607852038520837569730784234567575426711508738381185933637740236045376791977747352567363185689698496625749990342108458844636940311467261198994875398473553039137794372229488524243659073696015526456449740978774956384952327902926148624048028105914417124090958012216291238561212889116790906145910753761910196944432672782639346101454678235175656559047815798992713935965791545274661122106952499488018992360434219940030300904455673203342917678204056291827220167403821477231832852309949046325579287536521374323709744780046863757561334350242507705100671711088226407533335411801835905342149517815336779693864482918647429658351540325552769076196594181099029495424693024721095327921721453472981221079357293171583972204159284708542659132773472649625510020668648675240414540902382054635633779799463787658787599336416593992407852813281311464747428204713799681957074495856249420335449995623877471532407650911689643491867010777104665298701964605485916362721209127678702094249268416220572931141684449335714548645729031665809572995102180005826927584883910997831342741445355204304307523606230544570752356602222678753626048870861009675102244632226535198050284787943864311345041950379736174889034833212519479362357630160856644557807089627931801105987944526117697867778720454536545939801981970339064341462106476088970901200317643246047361435879930629979340239972489507512152276422171669779867272953024633766361345522051463441034952319119565185122151844113582306549123166562857795950051309186004127671350585064953310308642191656090282411865373320953193258726293998229319425865591639409602398197651143835194126925106381868437489281191483323055366626273792694812628643866869606376385646524634762390646814718049269306691494984504015143093473013535302987950926727452268943273101295559751989020433412180013898434431767422504142786040430752102924625120215574089911767188766931271824176582843542163409745093736516493943979700818767805355027668605990114119262039747826351389952404522380766392333582342304803515863289141526572716219336655720245343829366957917866703256077186548159537456518449034280259265292622987857830727076258221078582065083787450977225677278488724985987631922541316132758595422047099396748431346078123845053047058351937704813395844197989555572243350886510434423102259296261641513133441579900784390457991063841962882216131562406778339056209628486090311506174839276770515383037265958298373260634735900205625022501989847349022305013288481547958695158841863829008779326574186698175232181991100540004604991364482769197416356784244427073985929562236752088797053920015078901307414483493857286941409527689789785062814542171376929896839580666124267876036273517732091222728324729500024762732711032850911888752944087789499256835481748156843651458848246820809698606550194390477725550103295190346449665454784450542659695717616491591449099442901599837016939105448702721074543673685507633230520319846781695265246470029694497301021149623502003661346944982522840147732548553908524590804742899145827235904010953792717355444342027008976046575079971315590266860316844385773108899786873479200650269911555361211466380943131958799800611727737060755402543640332279241680299581575427574262488878243243816553332710431722068060069367623127791969421225211819044909858880735977346452333505686982226795702821312884099694112262027082962278179510497380472903633675926194538948499150135841762516358512898200959071435950195343981742923033615721281190878436067764627931182330895952859189992240926090671698141838941434094018247003348097050526584386100115660412009293028894686993059112026789506100222599907796739719584974477172362151499918716480492129862393700095691863414436656994769421923023148664569874703245959316419894532853115633891800892321616224041406955336500716605046837414514101255982056270545879017603990097564435913081200954134692338225099982244717993958010622588725559434909860063106809228235507000240059760742820698503389977149994842306260147871896169993986020414366882969889392713910748419768147381177565105285633681709344523373704035265326624970510938811106956953223355759485146791596253518600653839045211841880634732147409068552386073553204363884535651995303330653299436526698194402051431129182613157985278308108688056399016792661629555403864184555613940489428594365864862817420884091307796409830778293271901899359718195212294146076601302526463226007709169794429233354892914693929629046408721505282290277850733448987686038944652584902171420325130863645068016544449558087835665229212946982573848076151893068144009073344970850459122858286826913329951221782841603047789665644253374910088042276977274611794429966156457493687576723060525136746549157311115227959179383864938206965591602928968986501617579335993062770771029696092856615950369449367170146216130595718146792519507769682433645377858157274936652581375185393478444296571536607873061893484501183426387177731967128910728965456020912853510339112470760842929437441171233328014067123971311707158877967448653511954742735739704468098923065581370332564478328124251628411035859982647944654789323294477703482284451277563387618835591407342752480007842271781387932487659022016458984345407060685466935510961089525575770347898386624263020046046494363906392880546637207565797477275141752862446798115224032071217881060028597790899640308022054157064033392324130128500737051455353984554531497731315696965331897002985423805146661028732220236403431441784481576665457596540594826763941634389240020994900607541581339864677858782389644543479451360768835775122245385402652442644114273628587760186347057594378826248378610026949901367409199125094688526612343652855337658350165910340350214934924520292359215631671082674054202896338489212600803153617108576454709773012494790016181924687384310730064278783442004218301093370001905122303242590164204343794524527344312418881203593705951584645826903606960400596590436732568792335084173853381957378879766106517803555272924569104052646244650279786246939271186328650720484961832641459724597508372246919078457639187038280883390943201723283517548014172787542785028789283351134579411811059111257537777727945935283402236829177492463852661686472507764674984836530469799552987031769821103171565921056842005198560202951797731438874792630009791714826787813730646778007634076364442688487992094475657395358399638702983451097736190336417719484322038014318138248248625533093615697163560502218422687333818706494262548641254645557455870967680748081703189487997718368532886570341721651628139170605854652873590472538341499453940415047348837853636561092378378977774486715320036264513495118618240306528845208362953751376442021723588662202648299551165401571038509244364624214986899273260945286748242966577771902364521394653581350390583740943851555881764890713579817436911837395766998799854967632246053415099196126411356207361760903860789043124350443714485984453197849653358343517046403251172483657068162523441380953809504885174725718987042510798786924932104524203114762427037168793158730273829511411916390789686941397273859913279641164251179005811178677874411397308238322336148519121576961597178595838467397318983334329885619067952087688681999054248308456358344228171991000840860270186310287920892963194919268930545858005618481778444635070931401980212028423295231266781494662624741230732846893784173744659720140246914891398313356880591080441020444257946142157960499586020027098318180217204177709413823249782375576419874323070516739766916781944234281218692894231470255134865004844804358739220203244421640423705100851714856655159389781925925712860158972324208872588255846302200174926892940929976932252446902230415744841215819298894815223299623392036622284632548778534116364521085868856944176789369755962117637722113112878405936150453689822040011197449427789431163373075720501860473886910688658362672460200330523581005324461390122023583733342516005010283199757108207021580070903146294691981469622259061656262035053028560296880813258611206077941002155382067207744408064278970929250012957797789911130722844142485838920677274763933910955718698259590437241514012848419554418991068975479582847658413735309378556780255724371056257804214299061061156380270369413991670512430075931347813015371141670641353125789714652927169672585073414258090141939984665764975401829337858020413457401054256421951680248171369611591121790478562445674806423084147881380962308009722166601776463636182396791933356712258891424598803364574730886665543845025006913350245780981771511725187992897547845230159647986169341044814622746191836877299717824207925706869292652031919739417118575604351938350343699646622619182110167913011948707699092753230386716585262870990999891112467801785901608242659954242150428192562989734463947926064704312927189360389412381074868670519492667178433974886442062189910782526499519474802428697274456029292035913495417012993047528445858542335599696898574329787898367661486811673952584439421442014463743165107664381115246773139672946508219782269324752368020577017257062436309255643878358380793982648528116650403604495079590777187865160817670126575468449029539692410429864727873298812270688374228179729278963371531672091448793964532171351619662012584679706805972019840786581615311272269874233724176903653075717233732691463486127773947336076596928265747362757284520639300402414978525938169056440232327089475980196507996475270124276403699824561519033242276491439589612766440755391619934786018400650188296630032235545538062808623785257890035069264717772597936422131022872212132446604080523977719199028269596385849386017424448183322064724980405511383353568306838600870473012116013868226965770215638875504980286533509465839323155264446129631435714375700012507247024080270851797032337077874632158051227272650985982669211017815347832578569915897092466739318380343812365848497239619284587507596902558296903878625798314844546028658451095784037329301289889555476539867649745884352521115712617962545034573372018557355630475363117112173655810726321080127933383709594295905796929798379118598725612425043704782582336267293148196318889930874304726617156202535564504880697135252466432449412434912581859546236761422839021519626862194987635427738292536964416374620800099451397856628904825777246829930416312763355646767972601965470114480303814721303424026144108647562406192176139289832110338694961569407296800485281869558407492062300365282953214357785595393937524587595131517623030224166248749416289497921651513167573802378789811258646772146748531574748211595024377809700610184631822942621115531639752400978845294192681622761262583212386576050590353144689643466587916256465135777715703678312859842200138113721754999340985424217494459094128498550162665117558973817689533498661354055020584315288845455563519777757497179878454537410020735468401382161635414732233701815647929075273669145650899711910209021761466424027033600598508354464538741527214860897006382860977979104568878719202557232242504970942188930558875437805359990275901081620094301554154566744810286515075664631121134962996181227826163198665419312190757988244589927867960678236346233873529470899147767125774375866253904610706534294493340327791796738424843734449244212124173385916690632216586038687732177532700856185627838945669775795012912653627957624396347022666569678483080056307894078658691570618760252368333105728626479808471641023425484042925088557062694740818950529128273950718297528524187945995549627420743089938561148852550227944018892457950280691339612045808071572262218112958561476409608297101011549679652264815525186703961435899508050869422940089767863404749232196032310528934717320830700829714811212687195738828869394059087203642512330170942138450648220421444802698930586260653530187449452392887272120548241999671696882032891123501747835103338547843444970442359064420852643228074871730956100761648136097287596798994709444395810482122970801012922844340191834567289255904640935865714545275665886584296641596331029699240404847115020509122735500216989197925090544022266658128041006322842083172367800127089836993717081090612066022362893298229856126620959447790510347520744268690018209827885981897479710137369669185795653071887319309142250703462304619823109026373425469153560721580936757199173448514963187770891531786918851260468164106186659251508291373980464384645139546065397781770761323109201951513480640860811991290652478796459180401632851373482573982667855452912859832739871170047012037054923665844614867072924733713684232963724821759388440778737638476206289077640545768830804138158332664928153830603895028734080862264618843520481429244397349784507342411217556783509008266385737597642318392350768905961036148363646631369161089300948300473579539565930958432475694849164862008986353869203477367157980982677779894086447293385663445361443183663221403548033358411783838478986632590642277319502639220502517917745913015333754422918541735146034845689501658648521996139363302925513595245267824254629639063592609701627788553212508550764171612834900475964209802686205700388070556682850896584443717566019181357529960253233274752848301673165097080329773135232834408788278983094477370539220928823212833574158485409811877577540920548219178838789576882806058774932050279075616610044832821070900179393832394594567896202358207145288426407287926994329938422585252038160056349589389042600448400352631768828843384929393359044601792989440847325349982786782776149060243130854614073683022085460425897957806113242554362773613355320957579473240671757677190989035007010676423502953870877587449855850870334142925695408198299675992457971016037453009358228116062101037982378213766217620453052123630586594370904289170869114495550048916139195719704115332029772984308622366929662466316178010497202363508762979632242714657471574747466300964228803140568849747227768744968859379157411283834163893540802232652172293375072136288068406365233064050806524077112071590073510193015960996575903274443897030676052461164753312272519502936916273982417428542770915263773648983137130901217652197139565829626289488150180871575526109545963190410364007720017797457880575935044403439386585271216943505439192471838392833434810474182058809413576824485593625381344356889132391319502564053828929595185827186832252395020884205395104733709167041414732312546065029856856503585973853891057415590592531790679978718050788321928193091591554619677796316224063198960295437013346826687759615104925026210684500829313681055098017005515266710540654967702077453276146835403480142548005383439921883859937466817199466704994079883635050985805007776022187274912277838169202380593367854936348651733911437038513519939313715993580110777384058821222649349930898288379736347537634337034220817454946186682501959531613667488533909773370853473234111667772358044672110808416628246098497079104550532828643620430324324315880089484864574811739538942800744378778131420064869209713707704102604774985923532037332744806685700447472886260573020890570586371356149171251389645254379591267914409919701833136553257692571328714462834409836165713667077864751925646500898636906456370557285396727568397209329193069400192529871494177475682589920360440088541084320909010211745214990513209012863139548741504704272549537008065959585503577840419319497410521510266490431731917685626093495105549178383975334779629639518665868314655146545934660472146559211762918127520950100946605125350121513077879137299254130494382862823676155147735193188445781284650879506238326604244704068574440697100143812266904879655600798279655095395499682540610947669242403741782311461797143448535730532519031043301159386924524582225306128996153301815843714411445704137151493863916258580082508141903303372992791490751597864951904004290358912327518628931313822258290574785478813915641946801925256033983754157009272145744141669994070617731154407886409065138852389259679918304827038654667098454077374452631843547279699910867690878766378421183802648426233805711499901350864300706914270963818336407040306806761626676245354086145963503951329098751235715334738510657412419244066158075003058063205966702892472790815688065733089606663880881785442057097608090270970987462431470850751518138073199992111333429408845763992257309415320458921998278606476685046936968111835007160129837965780213370042290767905949498355880544724247269274052188597015017743178479439985228240399646134753387496822375239748216763549534001021027165817904072618008301903817745486439529752494494473373301942786396201471876272645077550257001514620092950269017964424804973852011777133359005027408530385687620428379404245794325575616151028003132893677346621547483334274489681745566320219769529455857783250115903812284173471313606217914573877148527487040710306113171564978700077032987980785486119870812917587296447572713022721652690062677272635097135402937944630499852283561894119228243509960395057862660505163505584791247505563396166978621429062188572942990505481381551301920750404453039783261770336791838957899609425922969483265137960424863662349829306090122740293808284916097972107186425439595004956202182812507454112784680628908557041059768098875177240776454131206100333603575251659210742128755503113705699345276876419449430692738831700579045582428151312433576823594271855917905520782489270910925865624160181183042750931233898779521658972307646934919936333784631022929063744271008765559894410341459070847973949778902066064722060188782145935453201406204545070637823454753958078323714211865571644666305355931790987445327596481549209042301031283810215720158653670797427156075343361637900179635036375015681526284394172518930340933183056385811410517589851862328320050376248002524875391470665224905534217353408401200180852000899035552192708660126750539117997187952444931307207509768551894761707899768633343964072331820964287832282160512629229132747327663074696120324182352721517076334720802873853270020661178222424635387901394285721710556621435459464082735233953315760158847772753861734350094307295566141142575630678015278221616876275357995127957831648156232440249235192754214172222321522629831952528240395115724639853340424777348203855046429835680688268715354449589579028665462066697938085535947992001156422999628321059143505097500234850141823941209070831433159964619535769338069306628777897963252627998687689626636018763898695464244435536868142415652265775535692697740693045653131263469937225448122362320912767148862606083273213764301932328238646552209872880602543641217231590807351418948148087569004200515171799978513336792177187129447370166422039633981396231137512486680981602877913061625327972149921155927453705149120227971411200063214526712835259418894444995989163258840146409175905917562641277257250402407934261923200351806601458130603143880021913848498580682137574795965465930570141108745908265756549505780145626789206802640230727669222987955215244596595784285142479614273723017812671998724301325052172340570266709051286829062471791741671618322300129232273110795457668000842238314334418689509647596101938177784265672665413477471990154560923665038119362872995626251460813255518053890626733301761978300069610584547173308277941549084504591241778493873210221262266071487607625300696694775641284665300890294780272511450021895309307255852328855259932554845271703668671550856194053702137394917793737648587113275868374855319371905525680453624791217230991310141593555018908341028701092854620760589022635421791497613487455456350733950872468176349144270070034373538001447436505898934928495578644484339907224869094854043571948421471438854795954090673395426169308404983219234898337911477483117254068092944487977085798937463933203173740512129658580471596008322568167909466742306175321039846389509324280189951857048962765511626597122008145755649881018093567126316724988591479807226468738968093894717198131626879583875065669549811967379939420856929436580106018837796084955031594277084229644905456929376504811644453704726535279496360494223421207635836512247454316515267882561910493530257674382725248479659998465163323391863329702447862283097737211122842593852805425386131040634901476322872264025865548235631547783922171128760199800588726593067645088219687010426165787735448070891241772616564681550977202974166078652039361248829872729438567875827923505303947452278684759659507557647779488349890661920898239266970915517905615483140958300458309665730911675351831537699233176883969339929682864890977604183427340559374471192755538426049819176527736559983248887929906318890686173440819193095361196281024949409962227761642097037755899866083718077720753237468405901248635823588126363773506706212181731669201172973730121130946073697116880199693750426971484092856484151809829597818308744166067465096932891188482444480075464518631108458064133692143825465243123302448294140048227197769953192096140338515059350446379490573440725698147433338660319666910748707914667318028590335986150571974729528206397677460363764027994496211232703267203910595684554027758898325532241622669016031298657343461063133999107096103256444163493691354086885419213397399130918777235405364978449318431660589182049241522708780823266643010086242291567054089717541788391727124944603578932711433689599533974509913508046725134936108772017609890542372127889812534209690863127406873810333656310941556605033525501073271093444675343507644179367539582484688956053484313771380818299999504721744961471174269004362549526730049583820951944440516796298248047726137411931253437758210807520052127433611877336128094546600527799000562234910303679060242639808437004252841845253724181911940184946588584440907949570561202564654722545029526581752194459595108556243882822543964581410291973546867655110106717323630961885737668442372056695231968953030423187084371257531001841402667636390290629868720990206697879756666961157684086733216022150459163812613245449152299711202185454505491630345827901042566485536045429538497998175363003091027073925450034320551710337303015225531797740762163208533356869402302955812530768963458600802496839163055662453986528053662606601962295732332576750436011796983304129696102108140749503101789528279753902296924871193000062369791507026453554611385164255247393423398327162761117170857719211267514780193308854455259311552594082437339631982671474888020190083714537956125315910560366377806795552590011606934948562972280937162737520216311396701691226928608120658796445573261573472256487645373887208546399627153798050306120199059682958182147183791117425259338254447946245389263803389276994835871532609350134030722631407660487487066614502703564132286990455854738872347349252643892998729741413711520105682576071538761694994302288293382490549436920069106033747352215125988066330197747661526029942413772988939863218059156757498845350756677070988394981846537010928099892860633134698717700429701191213526610460998911711703175056844834017712880646656806597258190280220014499496212510062191190020566631757648427121713318090758034332956988911151512262993898112630530043138499859818351668096493947980950529415923468152559756538758691887822244153242397187227735641299619804629822060191200504931117828428170895478783187787356954295472897898599847823549660763057175852713659045459365848346817783499749340656712502479540819274114646437820604696707987209028113659345694472050973459248683924675311104211867903536329440479503426937374127957575816162478381922330569192621770987451987963731221255831578618595229169360308638488790382779609733382931269674820749012985982795009423951546867899259927127879911449269336937153687482321919834374327178143823230417545141526746355624014348206651643469158729270302365541711642199448705709340928106455834456047117838034503670850187138331973051275123630906364581923217078847453844929047606645008353008211389704170356746707666351547102588067060306942617667120034744874885020469461392838846186228573975197153783273383344576937188287452591052739242051690915421024453511730053448342688639619619978293104349074523972191431968569851920864226842248690614426816730593394922185128659774611533714685986214063868322605649877334617549884883119179250083673500169732780949946652992904476773224067815112510314031108584669711738591653894643908772515023726422326841742045047796514452185026298153247708097946716706477981296137259480177075384710311724327537569308552242112072059392575137448042456907978234420184139523139600346964319727515403695182320802991878691181103662880169311725128513463508949086891388111160953502705299036986453892366991020347390457809273540244865037600113461273796693753365929373369831046762067074440306983677743118673275852745735373185561882550551311060780442311916458826025065926719962541523075602486248871270073037583636068003435673005526804349161518901416802304385157057866970453069669961197011324146328482942372847231833468227888087070952904927858558824538811881746332558252031285936411886623565645248437597856584560702143551381353684506659716547631930922794958362126679636936275730646405187528097486010642317355395640216317862165330248540570548389925974968795204104844720509907276859588374307285702259466713102106449251545066538449645680412393937953379639894878382438250994971776205252189563447852724808054312273406837987227551968700394886303939256151960739931156600706324023131494869813391766986854433921372816267030484410766811061746675071342651922756029793313791556234442231486661017934228083212760408927818336654915814665842933720262605694372210195324440703712994526701947335394679446015569426086595808074493611997083981795741925118288354374717189634504047078460684132489092962005064096504056084300818032897135434716543691264657165313225910874671987067329171205278571112501370131507134922595959828790063797045976837287267062292318166731692708297135297196642869507664057369057868537880105711833291422533512075867046967982294792440541271705405574231155372111830462601644641914888685104347736824912689525386974711682191599240617625386933293271576832252171944772366453798436078743263704406918711273292602124774601876341819534429439127309239693416464952728049108053932705393052245879482606706185089124399163174495128597188228152492848972429519194367129409166633060761621061819032143040541540381997562021784216432677556675103596111719738526542858433742601937968723413444787664041253416833135029544446470095842691482428031560989575834054201770243279928367943568529087753682231278638392253678534049895194749117321309736358116417889798860901161496091774552122122866753037867757378173861538397872177671820398936447683850149460837181578498321208187256639040667627358001064759469658670238089431684985789373094968326786184767456895511328813800183062134700695470651767554843364732543442762489366667668167480558782202456974361825802505429767538080050197800420008256356116458597543643015960330978344798231444849468150730014903036862111902925639528011220412123734776297250641642667725550116046421738978970583703741700795358392629258193735926048965528515329146199895742379809858975797782746565110206091838379292015274480436128164601012914100313459020491964194043511654507183578326451271573643967699841195270651015182762199745493300778468613045645522110562622851599435837978827625670335970037564068350386864701265181784582998669353474504359483325831983371506739425674035714105550150050491669437229487593636766912241040101670891939424013364338483374023498220652553859375093973182414721121976207937335887585685973341579960595784795280944648475378637254584288243355396722398550010873417077580755002497822551598372877448142555037870081214960634298256283730684504737145534339779767886270910912725653696601046703244757932584064873963797104243954651306048189623436569108976443278012057886154008192618226350092807482964742475049088616053538160089629768492217105335112721829133157001333068299622396777280052675532714192457075974950967839107533152323212418047833968850885359439687563201357495113008848504544865535119136286906612453214362020976127941081661552270622546154981814329269420084589646436595269433124716975987138113354860851444016496719735832763359830866278096473588823607082017643751983476811794835907912961327577831951392938665808009028335650233848429137149821759095301159603473680205836502408459764502434571379839013645249862878009240595589042426068954129524261947994169609328786141083195319642573911119931593070926138926137959306099478573564159432255050718529510917094306329574145734059193478847841600870679551679809565446757713411337826067712591630083255930011266549295336957027938409757193349893505494985312045399128468361905096152686926888689238319603166079721936966589977227387833087293482341905825950980123478611892441157242610147610923277690893359114158830474494415091778496231141996577916569873349064310558109990574021960405826558962387399048329496570280391356205064615979429292065991536884787876704404332548287154474444785487583309817687792174114773951607677328741547112074133950159690355275287526088193235565131223988419334417015432934950138925618961085231102407222019705774015335389705612137145185150555631876608754857054831114262105050962875993781634358566073129480445525048802825781105349124579019146135691550247501824089537978254987886652167574955550142976538448718858558307707681173900197794886255930051444186174762279934366181689482760182438255025759598038752235843820028937766259495394862315150685676320412110410714314207519582806220577953372792216239205541255229933365105655602485065982999283357708594897317145353173948485015823555935042366907319574505103484292986134204774214264689412432146454775160264528820700385982627129632344544226616867072659448793463959992726300711683043064844798354119139320991395588307540504858679732308425105497123036843268837264358637957837544566502333946404937552976702566612344983559696610255265423421623637034583396994832972358963031849838465526653681686977794156475110210172240309984160258130081150380169563888615779185116687896008600741448092943354478723722788292682365977108347048690920045791164703182317187671439401287433486364697071338323632459124447968257263803582570229275109306434590920068518127178447620556603236331859070524928472290308397691660384995554675168277296445740998223314133947708954807995788076013200686693187878210511553128619133890908000442205481682207250380032379063215928808475582226457256201113082041245300683793565393569332221096764631640725286626614370285406885352541021604493519650372765774540074954086276502103971113166955564558262761021145452832043577689654233758181552949066589775750303066147855992806570047397482813344697014692540540921227213891122467882770575406336160694870008805506349190641027729264260850391056795101008576536461862583963756929559001561798599539404454511198414128606897621713121830864517803256387968313308479972901576668260314591996643086535358521435937201280954693424319913335824202492985338360153197510919342085414830136833162318276167110822686015307918251379371471178218458684887408522046942243346074550155738129320552291819530072396582376090869999808921626570555219020224247832353111176961714681528918377967261487173553261287414831157986671525732594263572865295493177223312536033624102839983174884302854657741945332328717285155524016041318119698070278984861224579978306276618699470555847724363728466870139429025973672952873578697166162133550004888933505241527827666847065023196771805518379662412449695236448972946786944616403532339910395515476019541231074485273321220660006371682771350698877620336525990794100556810888595089541522779569235298313780906913404906291486650563937839107831440072724262765790782904883695849512593396141869425858802331141249044977517179738453930476398654986247262987426759024037820069714184292677209247613368992731007623884604030031802691136830784210330768249705478111196202729904013902438249548951553926357930173482198500974461503709854765559853632601001039673447892567928055283928150741325346961938691781692919365811878735706143968419373513614928635432557463040632128034919216962348423909759276512124449361802304479432521081864280021682053952619298102141284397761362472096627334837105700503642412429760029989133532415967013629973906310194054435351506900659924206728111938351113088232672557244395486007255089410123281074067663687880586434506972310609057054269720774184668632819721395886466552842786634540433906979820634675294461075703561611270679511500082186611851585874868239931239243202124058914850370221881872577593755325162261993648160533432189523993598915160267476089473337346369538459625834093336052211049528629867576693995178219851040499712391466808090080815668922934729339467567254764022025986773069015190277818686807798920107238676791617801192895589650527788984592560274164397277916739190259127048709196716986636331771084602479024153296079525089059773690923350456744760730362449553762592732309241450357052110023909301611993491188731264321259506968571258760259537941829286014162855740804125082527121641406482642066762141420962727606488732556379869726713308339831014906391303688048057281644441442317214097231332843059781502387353205888327227328756867268285087461881769316565661007087972482591325886800872835140657378568310177964341302352152568281629323381386152893115359687998331383185607230464965114403283458686945573828688884943207291015033084769918365411005343680297495927667762353431456227372592838484271815583742072098750248984533914484828396408461737246573579676428145613633773113664184311632998947188929947360382648810040530801550490711007180290513289909453150060039733077039597562577995811827217629329819261355784208607010861810708443358414130641052190242070500329701718759110726999846101418369958203781255025642541937724692476449051191239469660450625401693751719538312354132512297402236959407887951634776790186490961016481787471032867395045985094630634101395475812701844880720584404565679015856172214579245952693795016763574386516772644928162454151995345558006013797086370785983701706789915431457441352821283338144340000824831641085048661942959780959761626335366828640101307538433141238336458468874510156905684423843990273000424736095951489546039618277888431594340059398986433827281352865781210882315498290817950022080403881639349934068346673383141906589202981738543600086965488320329202096987563500398132600046401849325533798058725461907350122955913852543148863889654754818105195431236120542649338157647946444352095054106378260641687068139200994131963156880014306075068884641188960159997583603424785880634915444033289415287242429651436686310597454694957583469821876766234019119511398106954348644058291944580818709411765712582108504900074607814863308416121267914199135752268898590199029550509089292560594150838081447873156580320000754104829613597031760930633865134410199120999355198205794510155509018232267367803025204897071767570584227129866376753394121236108058808938512776140770876663877213592887621472720904158520978055477538538445293593078256932426250093423618199397830956627460230130587007305415347346918732406428143796638801806914898643160285409467933202987502206034170184840089932318058911120408805987504231042132186060380679552756657671163993891045441649713621733285110627130374489606687358648322452729714043586320449662621485256964550829331027372677283816147504144102134885779005934728459565474769536178928515451448567829175884214829708743295143016479566400670197897156387363586750539326384420213821287694144821952012769023851163142269813274581125979779914996920392635308608117876459754745170341951215740219098648868155258964480880895380141216932078691170524648155821256896106540248338437147532086835851468996422913175185873261508754820089720035591625862318256800219770988821692620529030558376089277802043648179496459303318611088675865098515481287330891939570378377670086311465718961738416503281014735339327383718928623239273425662616256537014564613777846837441366404901738473257522812837577128157081334616571294607798814383591154115842084674387720617869482802977772469920221575600762395899206742445704541760235560277486183770068535164036951947231504163227386775585564880965897877252289732023567785606601396122586708437871150920885668396439041727174870680394353864262302756054840144458085579488975070305797918826770164379940844959359347283613127148659338160368414407365189637690064802201095026246445154315936735511872879334699215410373088521744647950507769855900302985616533402953704661110056472855798573425916315482441081191069853301614212602754719869511439191207776981211727723163798655767753718291545157403140418199584734028343745320833564508049599778817170530630612382415041720561157509669632642522712107726096541922516151776523446912850525726913255884472240714237276649801962500053867807161966554220747127944449323231077110383949955009306264321966457468404988089007827314621330709355053108257411937884480589968320190230929591614213177252211027252471022254470969393100981430583340153877024800621235601977241709662990977539576187474874552109723069127765123743402923485260288298113078395719503118407489080624279068463611230126973111141006757175484835864432302523992502415402551047962016872524605870594621446379839597845475743052713417093842740429411464411294043103828005069700498657696047186306717278934612427749012408664498426085405629903386190114384305289116300601180844609252227613827707400896749467839018388097054094885366120012835506697694597765922003930103117164234058120507845105282327832229256792427472749339323357515294751999930872671727491415952591365748948134444889691556634661829438496528100516407085580385449877151011923539223875324337909959621110901596220404706286911564947627890498585986059534702371215731051680120680623937361483127097564696583439121720114959734879399837418296559302070707811556942180351492345495936743361159369338159510207880567406647603505315559623576528373492469953246034448439673032106732512648207209276738105314816014983892657587692353074355127793150219591102416531454145974247297899096520196699275691946273085621857927839179618241727474071088331632051033743514148825762811782350994000728760338124881206866156789713806735614199024581890155639095892982768706585644424226744757960785249728864526199935771731656611018808978964772882150624946758284451997812670566837649649953485353425257935186227033755359603216750319330332780249916157592594687540088905927488110685660846176072076079287019509936781997859223868769926242136540637905205611682747463729443246176735280370014221679184223712687838154843836376278517598237234695728819974823069348220075941690825575855786737980524731127873160234695941628963266535079715356087835798019215678686566305637306869498436689948899886101419964248728041453617288298039504120046079924292635481561533212698900223589596928815472129326282343887331298115252494569462996374968815508647067145364494911243707814105293387037492981176666081154218478309938032753023903484593370973016200291539722009446964894594038657688394376268738565598971609462115022181257136602335548642044751709713242274011403894138722502791295870562250220835857320839143080104288164437699532270115589819175695098078452174078355035213169156303963464828532495610805061662335614659623077872203903719601637203575315373668282501908280621062670799977241397080537858662733824229434019616048290193936214677931216060852520190667533077370474136257518970391644078807481523614817630460626645930777856134737353431443557646779224096864577032760924297300394722383360108243347089864691187718067419316298017351476445963467553444448128089656102184718426829528238716724249409877699631123782888761450099030481649742733889864684137280164203786153979432879655586827493134937010321298491220969841550473918479774583276346128533502075400275523871860006867214677679121507290751872103529175908207821896883208472889171139421243458517368788137410898300339203735245207894899180164945589757322425096410399033829923627419759824779729746480632981268220813894591700538825340024106170093886381214014801665568441908003613759962706026887960056356091009070569145874268894898117690623446154215395423345766938199921030342940427808528586399595086122559440724551513241258122597298837187070113293588126088077129637399950181431768397232905221949125470546640056253922467857295994162004545861370821645541401836069851278417398660799768916370533769711836873862597494500653846253427733637499896750780617998293205051366326096072046525465351615297681610818153672581031672728272445020944012843306578950522914374535263903128638527377160306717273287364561837647496606302897523973537531170653077855644749214405110529052894309844379145693503647235222827940167510110002853686086981064061703859036763610891110120034418297260324044632546352084490270876898154899242514583858930559413887546869346280303550651541987474804243966261282209766441147455145779782697009264822021756602805982506676404518194372688321824072987429157789520016273605438932642696203712472693827463000890646491127137774399354980553724399971088220392818202822805244154737668835490695728686520217921939369600498925756717944017201490447157383992023880790189959638901342412190813701618165157108234949738851367728757360297043035219497410152701853323791240965743394688772112711694138976868538872432790441346594154433087138147792440719976174219443680632491800457506179862418065910973056741942246489252255627228936402722412440208703918754143365253236302016778793315822892115489885937706983567139752533696359713406519262270588124776058613902421695708100562018437684300737222159659448519156854812679632925198064175190033475892044953603082037660062564168462179423140455291393811654467824548693076807835154727339460373900035258222519179343914539715823135291157280430332827507109957723694117408037040272819797790076770166802711446593848922186869069409911619883455323036276088083744729637252660483718017811247348829438494656410176299424238333743454754988735795327704818497623527527024390616053254795139100142741108168792336375946930029598143120201025535995703805983917284838109326897941179938710923129434945652942154768901460304065452742338774962694194343469438221117237238957441010188630080251022580051561966649404966451076655334091873780936155080975283320481569345431140604534492383412623317853844528530564842263817394898307365063327572395573917374952322169938650701604543390616963348070076837650714903587817572639192947992754171311767374493976751137289714255962899141577845374338495085811374629168710738739379022584423563261586709395423367807241302041034412858861708495777674021873539708655614761788292278066577753134705556792927109455023128682503902363171733823026683420269487726228758822082059172922705926442513334189692139672038769129181373543609422398474017670938434011520509113118079334464219300977623927812533392723237759177286816098350739500634701341349274092137980676639923665027582072592152798378420872368281425059068112006567147598369087697161401106808253427230995557272713817130148986942692217904377620713713292507197144809789131472211441140099019177502128859684212321786479842171783403363853239548792829534960508870292808267576996361563870349119921874154453605229660426117361651419049364732805978946455814992023067058812479136999366904741450003806566662524603113612864460136282386508172443972876709928008379991317950340410898847105694461817435354483201079647204034129888318997581843727294754457333204759133263989833310206556841903325280620453701337760922173219823097400056140769526694646307132430897547615674571503016967401323780555821314694310518369666326913037532812962457970141319315555193255534265146316084311236242907597784617713213341363134687619942612199709883835527257734462680113333259175779971680712718224472304708782344733905303526162567157226511283128546874823230713417803948807408849820769299299210862774134363771619114084445637731111179983494226507282802773690282824984959694296009560795125996360416841945606648147566979940272300246221222439032416641726919725636782575668169787707780440227182777443378390636520398928037824065051848427208005718716997820244614509613436841539708948995069906930624370909240342172085198216385883788772004051568410477473433900232621054156821622501230748784944358711139325277742013662469983405642503876409017799907030468389974844848722552904855620406763263538174187037788316332285902248438384572969990970300993934783795256585949915819089348630879230243960323239054279615775596336896280567912282926439021245061120255698311206365975736441356221976523675247835767576836275638456432007359758535861529546509449140882926447390197695965973463906877042023063343061192642892340531222394270057550075339523825357041495275872977964372735462208134123077852630316948202765846640250642201106579026137962751228831941874768908538816201905532465273464700878440207533094763773228061688348148222799110273161447549694494905334840560711823749524056097558779499636833360988903742446996046445714559925873543157418804271447185708461271893169383406747909762711729030605794335559139161646505508810390122916151611049036153038061326900482826827634843275972162002272382717185949180573351686227907872587910043558749356628828721431215681442299956186713224759649005465615498684134104050318905468568118412051061290551727075288529096120399080410819294229653784261309618514527026419696305867944595990037445381645599319056619608140211125109234488471898507278300817963163197325148236572293740847106832553096184328828395712869026542786562833654839388229217445760131215243209272356662752776999874136472461462272466012332556316423779288997357826479949597157103367002108445989985474780791482128766409337829822759808481068186117474607110951838923062197924573786800032902258006911242918634242373709219007840611208492971228940555336295761022703234675624828441639843713998076485868803247969036549650344192410155915208057958770254203316677183765827039735860397147452113714977773278392558018559889778332481278048545028511468916090236776744202323694274285335221422354987459648986548693418959405401729329230682917951759003866256572859485433857673116346071129620223256870250512824382158132669390536797373443132240196148882372563973316182343192420457864600436754898304405831115988331897883521384475115818603885849836694263379780016345548831918059020984986752688463911430449276734949978446700890805524774405427642972427006491918123223700669293342910386292599389805673756808034318690885402926305423318615176126393484177337844310893523073526633264936600313108045534842450293288804370098591938307236139426150532702591855581573015538147788365687270562388504686873941861671275982316040465732709442061139591289540937269633840880914571691044721090903080601212171370298956901506945416104278974781838188619904673551455309486594675530352581675333401847267020546852980917655011644182760221007314749151611358599118033651849586692517020645754192568333048846008261126232675479603773933809604495857800662891263033226014321521464757809868439917244786575696915189635043934990252579452051355387883109728548003754132003865539594313234564370256726953699411031974483930618459882679575710376325112147366672267507759859323801728055203039249978026611016744290206315652277910392969181984327520777822137915772429224965961959059546498650183735126326880182106319468545582629381623890472132298575223587771523557909097297361129027267230581786829977957827677649555378485539615788478779576044061053905009255394498260871565771905568108878471165401339104061534507811074464702464900069799900352266020578456832184546598651832311404884119246728948174951786332470039603195096552386377170479009637058276909245181965588794699048393244971599355446594643718609457971157037529322705941704306719131943380023245975721977850463641965281769494129743824672965649601834909361478503829094005503860405566266819462078135100597082095166830881363151589079020451222289438782817095277557211644373544321290204845420447604695460307968806470270669189567291106315966050526110009523878880464351906452939570098052645983192277859271346537715782743867238809092849154480123284544810678231832263092157496808239893665917402320778884802071087412511684710513259281069009728113327631628313074543494865052448409829174063336929138845401903590031159554332771855928738656472411399222406959938783707144361780444420583294801605649900030663320486546508470811829939634334301561215316713825272389363462831024964082094048921330598991964326484751186558870722591599456410285358283709861413034120086249233047977802175472901029920615005722249282634938778440584070021967721895933077937461883325654730845594380913897625877450659183025771269289511243088413873058344599469418110555461549136613122296963135351589230683299027442290616775096074409275326574192318374713329199048156869868155352301037874794378803577253214929021172456603119310881642548758061323871288068572944332063326387011688369871969296929749622226342651778415391334892179927580490175658766268903846493626604845986641191542246938264147074907162604323504923508939232808965230573594780882612208342754314058774803125815646309557454895801605874728116652727946264394554915156224369353743730825171269070201739869951301947824100269740170646171706978794451468302696416181216576190444354584945531473722434907534847017009782041992860057575690444055276559539057446180614399005293285020066922790182838975104287237240479276686179001315658440825340115990293465043080657454400445936435620337256623178972273195008009475790597441166139524361463565372211229842098638622593620853907956401239036384473783107315099396430791789958621561911453287445200355638913091953823350603534565144133044511397808213512686566886587513780998421800885993185336620001708446415336506403759739332552573881973581028505308548148248675730928996876100782919541054591692865918710392163145790384810686264891761085121460317271354150747691275508945296633644893225652943262750998385810759417693794772826336203715261069299261834890395170092442769416940212775068879349315018402723512041118559657444862134385686707448891492032309606291390257538371705088817192620607566920255922778125433373604802378704633656130440391483687211042321221337043032274768581296556065721044994369930762562662294249949960800437413363674446699911686606921227738947865253716980728383609249668582507477777704794225070260736567818367576362127832845191637395616090761752545211619071280995510580401149996537081265953343958394608893724881319240936194577410923684104881074051332913489351063069382903560479427992208796818941089345420644617449949041189132715649679884595916384639101654146872121312861328339409016321184345006804907193768890052173080498928632637521776887672971412452893652119965056496992673738311172373438513301326190930704737564498002069970588371206622188883303305273914249963426950439720665958366143419904590971586719146461979658425251174643774987569517491077774628799487266790426985178612939915733748169045021307215731515551267506284421232418197822927659439315821783842642128314128687725221110110517952628848365564051872814896390105084014289886916317567086096260795472376715594669654147386287202473297578782110509959832572563012932709024778658781756889804522583518208318178707619285357332270876364802577823282078471987701030753205989842556480502053764813174900504597017731789393528818013212777866733007984179175880506592748137858004283223248742405228769217110150315548023374671421487963463209557764038921813277030718632080012036539746889013312521867994434498940025404127649014978014738820121427604002249289703326985612245569900609539809054042518459859298206714029921394734127569908533130349571345256777639980616982422900811048788499121633265264307513106600410781114538908556508077728991419041418098291230876350319278303733363621968166843477034258923318427993812670672921679701499342733694434043257136455657282480725121017578588458589725357434091948164569106377062814764925736068200787949859829427048538413738769682712151418854903670945540402907459683834849222262924875318590407414793400385926379735215206368124600294905704274883012016467350614826525803257553072270864524630784123655635134025027676107996111950559372073952449086017549978551064722286088282944873592902446263438063146075088731086725681939124165698069678000060116767092110238069906097672728367271873025897225273394219732020265590449015733781420502645976362862656183498040888443786848461988851345631706193600054632183940933860200694298558444830574018309770949925677730169409108982961259361028904569098778039503826844167009396117249844048878851541408353440980521467563740541736414715246724255657440229985657209192555262887913965833878552940883227335999597579297545333347893440890618894589968282396134331685214155872385723936946280382313772966055509472393609934687424148441904717001762686468301469104850270506404521117049548285329048732435566174976624186275798782005181747124564370905925429166823610448885950816773914250247962192230037670264191027495205462650989701349097567740977445492233456984876740687798383148756416754992322846855534448004162905911929613803164134916327909461728739141128534206196714184836322594509194263770878640370991117963398890557041097614505549759623077660434872751733625258744988209888151971173167811400960387435179184724280796066511968064531357667785610868473067234790583405350324012794446417959745052557545031328123190139764619208684757685321341076476852947725424837018355034031629934699110236149281668046027159544679470635667914911005490563038104163046299422230597795126066522256787515198393020131810851912437766807928151257286411643972600379278607398355029845671040107635697078320939314682983211063721839776219599664917458482250457522098873452186412905377317682319276705812606839624939941255034837884979503889557536674161236624664913591905925826991375810457147653338673190685374638926658004434816502886479962643177798035003305798077459237258200760478081430887477495838080800859524728756649379303743777378746717205258210159268275259226182101560673299439690621275447213820017817184288449168704910577516467812812043512871416845272181255595108270404500044806325031038942750472414934257166235246645529477976998581506330524031473356390936941379828995927413518121386013245180576011890040158830995655151887766375454811495174409523657081209602746606033109493209937199753106842106980525893092635552499369451484554660751215224807829045578656471445012574974629729645534460585398502356916580286222167142490092834318904035515495600306463740423968318139442444364065549965637037793132450607016553081093233085481371005776804636052447474659394809634504207640440872515763589790857853293129461395673995254180466702941755049525847219222124882095164284366268235681232756173058587669062443232990999290842384494499940979152990308385445144018937145476446780092293734967865609970908288965170462209316619971715124460627188439463438337381121937116425904382815203194230757609238860098833318304045476622206363421140542609402793135736820512433823945657120240460794492367247353346176248818869506725344679089570739151731023680602192549599320544118190948318151132398849620079810515139962566284604294122945025393911328786260084572151590083603678928540839606142977850539200949845407396922699367005950013724849235510058310900261783857962319244476934019421954118994602150646206284722322561038764232499809407790213205592775401629194615095010808465567054113166583634512896151118430909052302631751933488399826153942126802129010956465663373695848116669891413503862418950987933228746693541240154841304415888404435903539096713849605463961657108461143085088566669846751693375395796778874648658586732099677193757137803043894440652434281800310424268346909397947080078386052492745517045476712334245739581391665109549991833675164113053016935017483859828188560847305557074910276334267673092873490993455624445514328514611044464758105519830430932975330771758417472707067951810124676856215047709845362306768662838981710487928671016802707283219757101053604215082754268233384368031830773344431997625811379313839980775453786844955829474356249530161732773593870450944854050713437552823476848185492070378015574889845773875910483488881355400708527976522939070490843751274743949011024696740576534278754854645399141775304182719796525368010392387835283675645608668036380704077870031496980126892510603732421530897926622204565546154721100925853117582706056324785872839427122961100255606466845844845296915257606496357342424731976713185286057844387377108466987864508915390562734686021427218889617730782798484698508342074074189184540116320852864160492345916834702960860449151136330395935395859141599517913760078760581464992691644001110338180491031160760628553203370709205952891736571749556881819015715364672170548810669222053941807192255766629855663012456822046893954699744472927494279917369481692503521525586910592979202484762904860972288836489248861836195238664516038358359596880236862158515471737792241416694177011267033652462921792022207101067428815300710138547776707911600325051593852473253615425051065801868409512608337038362952794716531956156667234555539380417799808668547159129779309074741450068113816606848305501075337124578434124325858136194739551171339718898899375873861447741692800189121035815548091053517762736328943920967346651164936378175178909649767730483393595177415040547286669835168205019919177250317539957188190237276953921949655488738067398455969548320837752661740218249302787694747553172932195323006441940790963213244097334153888191432797786962662110975740068905737297988972025999995228438671609779691649019092945415996561684991583758201368513473064874358241800420293565368624625930902320596811332189668399189666219482137945742827138520822931971202665525159497799044120894598713534195944289120981133591350496574342135131346478745958972967799092266322045880742941690747021370810616997883990346849336935922471970643589547750170642932816540555899414334407299327552969381880868636813790978594991300198756302375114679216720328926018103347791820773887992645331133180973438423955865893774004152991288879823314218135874489922992604614381363102608722081106975397681255252000736193700722303003662860806880174540938462599053127866491923243816750616192589771911389870001266661640341330781519793862460260412801721793430752562142874707400546448303233009720725201612233559522733336885152487153811347229329984453062939183189396016157010039413794179869158600352055184924586562832827371086957361105981368092819186189001994311201457064615773439916728232961756248041499548643500955911505501246069884662766988000866240676130263727485297143455503377617055707056924257986733943064262844867604510054677438309955217486365581426556983586802702457782267693106797140530140842032997438449188675175779326139207438325241470010371719007945374508959674230321907242203278150570937066700483716363927663393706503311364070784670850460203802582207629331129217504436719642787833427391756190067402063070170699704711018352992600618145208976702124449346480073055702747894857024005274184938069553124996920126786308485428178158167906943342448728824313252749977328797006158551427179029519750495704866405916498606619000566221516925645847078070629375784619720312948538787034106018633026419635880056231988225577450547714909324721458398953333715178433885064158683977325746164570334144438381675662895007569216249327116382231002285553024903199721763340196685567787878156464058147159085137671014861604120857709702079609269425635681437092212169812627625625341792283203472088804859543441629908875277717661800850372303210963487618763393676947655133304007794641382658400729703034199543960882104551692364329843916213057323779341836270135984347423350429900980460626970205734130234767644840267407433468154174617591616721008676784692301836419707327317258934822256550644311039294800919487724915713138718306130410440541140145717085436682381316789202481195256042019591472735968976865213159935095305308777633589942315751023917132149621030784464075203228519032019724789027876448533564967005992868103764862770112938899450103093114195119481312078608617121042781602978768678010537984042426841272388368890083881228149468548915892488998037333306587714155823610020317490660084282869756732885411178931710614716869540585007764436056333568341848979950402478795810757918270106992568553752734285073479393702829648034139794869710244663285809562084651620947807177705625921992569109082118340512131709053406343482221871918842745810164400870521496554814980472571978941678296313635213344000077005418330727183082838692355760949851312125739844149450183093578627375963880082122389778399345005808992599253919656740010951440343085414479190715701945068141465106520683311984821353009665871010515372672292478939268780145068140783039047626384932819111381798354074509755388575414520090902300243486199717870014418883862528303209135303922882868723753461813052000501524286957040986002217461311215153441912901162560583215184196745388120294241758415873286781181972702240645573549807045159118040637505051958762787147973752669488473499719716038698081513358595321050437094706440795156961916915971060324574429171835434782516341738999353752645520388253609431528017555711613834518871971055927929881256411284544670091094304532640310261923581434895703521321838923687875203803707361213955175642680996196798789583753409175869415268675774746240134854720833929928157626924942212167407567654902006863103101391650289502242551034087559961375615003743064070305624313281854160055761443254255785181341040987107679421861811920740866274274388908566574101081073953461987723470953027392001588462228146778169196580775957798092237953529806954067744017959820084123686092355119586709750491696905028036435921448572702977455689595903106713418298690360757127472362112040024221513544975539071299291439769074547562486684870136885680329256998723217951671749820198436132667070682537841622709275332809339971893189394121257035178078237877481901571593519990307768968659110663348752535613447997493821041234170544658358709057896741388194324201847660240446593142055159902416248811726372182857187413771400809844880247501244989715245938985733326664657039850910104344810040611900553215552497444741238931710017593246717244566254216524437121719211537042979895090138702385626316245934982763182142860569638314946280342202867404783870402795379755597553997753696814396673193806114514652713298550327891618013823758640848721973512844878273064149997717559400910993213221491228477021238659174382623907152925080159278489539380192400226172040483796859040846185527181668755067591998139925022460361056932551802744185531129909426658622240079185774685701357518875749550286338692445569067195875561800027677059797835076971269157234907563182149668914799748617167054814185063773060587214843301261348857834172278546958616304701480029065222601700660147634093166689121000530236674260277554878225721478252679599904712475404425211792629254899773233478839694852663082720361257023491046459658082940193666515552391812971667534917891366559865036868272431515454998670449427369388182817539958829544764530455177863443237081458902196133559958831551269446552331828286102594186957177897896648581954880994182222615665723894412303448243052819094599922530843283800931397282849086820850090761658492765131822411660092997747359844925932056701277035577038227441966715341438852863455586673196862400953169840633907441419019957026347615075183502301776184443822834338836582677062946095654014040455921674298339910670866025792054555617732482666102509062523844349754910841080591291643359103013167465082008888938477149958274102072346776314156766216668854588365774523305864679142794936738670312847433550415458808080907650241910339183918338836323099879564341252249390505723067698641258182726152647838351556902343035875222449600714520406975151597703851805752911551024399776071197336451763052006835055902732318619879853866252586281577069370730047837125935917060571270610311951116226040995603096720006288780869137179958938703683952249282681177200073793461428141183697193953513995672743572366579812322944785511977527272642749915735870533882458842547342269318156319363800500633136318460840744634305584294762854308713305519417856678826677977622825395407635466903850087254273737856972523796138320004480107516626830934021886160871747719050826650506669947856630712746758004749889354673864779866412196991128322739470686682452096879168245831657055577377571502719386900478565938580632787592315879691501644343258088107705418047753617198567355294493796774737327969723358744791668415655390678540322380502111480541878878862220465107019311270978202404602737618896546442157630298338648400403389123565607611988545892055714984460692610720192782846214729337325674180782242055666863718993803370373206665827704033521132335540922237178468771913376708769889875137875432092437821390188187718650578115968620685614588304174684065374664884546787688893535727316081340958685813325756933649077050828638291670633689802035952552233828544528153193995948417010051619072965703592174432964473714387552685397203372351144398756476445971120799720076699798493049596315504044558589240195415115545591973916732590691636237106757494769592568751372326787013116148055004527258247333628024185942525184728519143320297358654247949459944838843447196007177894733380463426442839384523336386081595681826955541043343280336341839246488423686424188150962266737233146380703023150686775112965041391770830716546458953019720220037174234350866504449579765157476270289641151489738154698427506933589897724769407660732433564291395062428922587305403672773349696534442191120536451858121837548490998659592816943058369775439255264715719409639668794878981836470008017012133764050085308367551833190311870163318870600641216170113272963586498383538196270191764314943321805172279602138031140749405281178040798602843352982427830866165733595706099264884556950128121216433597908930291616132263574257126010749537037018969967325827327126213200515628226907943265331986327476532689425961740550319628055532165569156208114400441758699485208136228965572935300419178886114804277496105916242467516307394156303708804847991890906605307613057655379182923650616450388419887538479321727873322737277066752488936336371738602176245934604550607694100492348888487144001975487026432460105192875920505781386259032674181108437765461594047893760637705228370975641038832040473180269427442047909308813966593985411895883902033822842887945331857533909369140037080447623557271339288772773974825896324801681593403275086569364186158162220712397178035450184401473167488997834183836828798150740721454922689941414052188622816121972350172710413456207245778414264380250820168251419978929484844118277476722851012843136492059148239426562041601273856559533855089203720168265193039916054887921219506063279100398370156390068768875612780104670310271150719984087839902205162121268450600629257239751831781748411626906613208963447214030787754875303393255183204026437262986141377402377529605369306398386663805595472346859938534206277468266555937391937055117087211853615575594260251156843279379136666502587113140781629503304959423362826386707208871922481013922111280447368861531291376386628609111439342425574593983130812143186450975724062234390003649677416569835439625695753561865605045023291185594950879641927560923747648001818086202148775317381822503658530918667397049125881741836927144618043434479161714104060738836185984004970672884850467919226381960264646622930068648129736795095203275128026415635932340082202156005601823856283209632647161899343603228067247494696288352888655827362053931749461623408227460415910479416531055594684893565686938990638928660438614850583604351458422194985079544709100127376321998952104327711370249872896946845124513033725216249775750814070924898694278753710814926284034770230584219811735429645662359252528727991411163358296941979425405095621042705970750987784490869570806327564791286408475903084430958194403101424278247913465517995913535640576227455569699545372633876928338268323629527549369898551866357415498234186364883607421408112771601380737859164036159839547741430484737092106516521486888157800644397251582775835382018985962965823159694685902524697836841433010205008125907762956949998276819730542900613947305649929548199730069960368362459225765644367948396957489772729857278395625821700574045844853556203524816764702156776740021793591493928199993792453913862827079151686813481917411989148742475326878358994805793560402956983478802266829918190245948354691162377128259774047155657669769137491875462387285443320382970537558080861743592916570849207082120792449311937207698218333453907686443999364127844863777395807915010956426673656809162325746710115509408225203634044310168200238557255864144814224774379314621640946953371386069452860327041540140746061173504202863732046194485293858268216503292348183212394914385427256271680207830004582850831377981713886283557920618456228764154531418608782135587214956176412601088642537722692775597996892154168972047689672528745954292980279404066285868013573462797571115486525870526525551175732609144030924655272839684512727031555527359754704252467838899726968396632251651483428905479769788067061126755211833227417484452291560843318455548289952070876377496922467483560445650775318872153517925387740234078283651617967144957422359466215305367631369585833824248638860780749779112875290980149039382284471578835464878537474179232846403757550356959616551386673693827201149429036752995262275048680309188168005850858584067690151623309019416640586354527982202518710110389815703821836391731356944379467875643464272113394328412824940197332100181919902425342001161836647859362866931446156309893595325489676879028933972877887589578253783769086916497114476018952908518752316724552678346136945518586524647787975748881277745029931503651395008578470058067518190648990798170152430384084536224057795651630550783478450539873704269306751602736658683959646135962111964220082141334845267600411727905099669244010338500181871213587353893946381119140072371737454517764932610335226641567017302545549859168676263544132226822172035532091995656502626120302590851759677213035726883205015767159459709877925545294426908262007577895233251722586902731921781804329265520178626930842503817877669673442899995108217940024775248897281092129869626060973068618837185278590063920761458473515541283284593605171955653612197447668039447175445865324183475073390072744090130241558222200062000424864023184321364090598667503554262705703608088576865426270736444649651553314271389719795060979485558168936116924343500133174844525548235886213349056637716786989065826254682293310970220890537600552395136317414956430241319445189763971506187752034512968473812603743434925107316658052248900019133326410279718285253246887417339591125836630012835089605207544935599469448032072753453996860907112189617980929739021545011886497064216226796840050142098546128606277742818693330134746238078167498489252415034085311452691816872475351307195847310188298616340859678606366794827841733675960348368467816870421570856589261735169726830840764461556759196531949870806260901629168128780199600796660881740661584475877268761113220220315328348486175959825681884759462353405180669529660800705303992159834975062919619763213222304756866206468722181533489597254442445566946336363383440114076634912820191432907789581554160961865304446630598311773094853426850651483403298915197104872316557255971286254350637849055028314054254861485969475964474754817504165834169684477218733768453167957742729595347998784435107697599111550338586571758753032200157806222854033231867366475983392847335310179647668751882530227768358246334083676153618954596935177567219460730365545013315600180930945762337814957540435345302203080199836444916080921897984296610619178838480584898657175552559379353585847787345914341996193474141552251969685236904814800020211329499738480443139033258789308036285013382251447477133491275788743175647704356314676872325091903209396501289887169496700104247347611765400541558183161969975188601732912622059606895689881059543092249114037295927478125909519075465194516819100062438083408176199429198494367887295881829440807382409708238298058231721616182269999933709896525958661312356493178640369026789762937937638096332458580067529378141755635308423705522600413715351367282291156514278831365285342678794397811900497882874271147867128489736012396284725164330518609152852887879784213622858852489574960358520344781023250713440490804170581263720239686545586678044701001552715395645275302977754321245555086845003684442171724807269421846361790864805685203713546141950790346061872894144782973949360519938606185140001627311581913197731149621423501184679558200298494519378057098960126418866339668108520915271909495013922281954255393809792672902612063037366131682279926879534233627744080304107756316646606176807863539502988773555792899731950509248327613025147685268154925331568944281800857487381963533822377029714924254844101349722053730720692064193199884530374793238520760092362291743390102979317311799649667701071679007958585291768889052266749477382054868324906700474088780482115911317385358935150573335090250684722193004648888045537303139169677160061755449798965169973924993698309857526484449455592046035390992596172647564584078831810561024858307341722688487581004056745506895811666574588930377872214974663804237949772624873289450506534938476323699209927527973309860319363549487694685427296850333695220611450382206921043216163696898441567971272701468913064747582134433013478966496823505788283437831002371347892801772262016748261508998237156060786764014063796594697714038589721500291229185010814013490891295720718045910095034701668770194157102910285057547282276645154123078409329157456869034157284746203589968999530610372270730074283712676597520207963239221912630460041658186668131751863241258414138107190183223218111759536688730269129094715874731774796411060579463988150326250140389370895418278476111063481319958576467785505453766200020922920653210315501781654469239608566842376674059604722456054678142278667362545579172150193395683297152729733162422852757404980926441829577003705428050086372108834608275478846568519632515805928223752564418413405788371295942716101577569301905338193083680712204871445638529737942418308608073887193603232906140224660867299741903460769372241282185624913393780183223801641870244477127886598153081549162606934297795796442601140600167283720883334719045085107342317523299845654561170222813518750402983008701639758617100174878759663583987975122956291852269019890974516781632895520275230660713972533056693700146069827205546356339342084005728223876090394204204313114077418717042002236912393641744132288040891792752732391079705179711009472407810346303129294724042320853598745400784301322746606625931911486958055277665570075066859109906570482214525231840064819927141267165661343399086327152382993687747040101871911947790823897111425028505496681470581761209823987407135836729897233076897875677587189000491665310789674308032583575750760601338483035879702975920304782923256856116422436652754391626678492939611011493943101194694893584805881730891555883219307709371856997827037977096934797600628724915612918294159849972760232103395753871510278436744246629977552261679840938049063247990704933562570590920166103879632771719744802501439273984902395462096877429482688580880536243762780551421085584213393759053118936201454701090841567488557518821644416512932934000605712645349596827155434173505016510280557144364652050048330038809803228758121717202071465084446901813105035520837518574710677242250819490859596731760820706896297957675911374845609522197465728286615034622141971991789822579709382720326762135989898662071753200231087179681618664924825030138947438784192849795504550069038086611085421720168149072800587526304725264543368119640641443102987861546806964477585878217166975969247866945816897262524107392293916515346516931759647902389869601194826466891147279988822490693930143303650839789675919902920525092816128478781752833828201730947820264716896634645350366177534629472861811658785916316089488775529761098516560456525998049229321851024772170687925173853356668409529089762990583721038749608530611898885358243072628566787050796426907828693253141528997875235649963884016159443568072550541177547354499966435060992112884584405027842990356922353099220756932759279294819742253502716488049682507240375090762808631161908171401301035952561543069800173261335949800445449893089081994241330449993059724493544622062745020098151463991983996365147995372307420178662598555393613908385278024132079968079177620673341603904906257411672466584287206896457861729347660900033069869775363942297171687180456839369550380629682620400512408506564559248122749453330542104710465742857096963029086989377466382417310900558591277316962483997381780154090316665586273732164358217832872295611454321339911284352759181863065904894011710794316000224828386594695730456168711962060442179519998463767225432132366112698687356884901037462533579288564949293794210562228081222636900777875525040791861034870311877687817807669805522376777504939644322844470565449794300220199060781752127834726863152453627323300137642453886556751022972812602014684177686197944079313747822990649638082221527729384220799607919173928922466922373249645370550613713032859027851538141277099108509349085739755005612377471543015039791070903809187737615070150322752977822997084151842775899033104928866140746081049807861421903909278822433159182079942551421809975888521067269302991156412206322610609660698816226215171077533826647537538217886293425531865235640200846686916439147440953731866301193086856353768770584964637102301537601557889403395821796415974663921330921165067874430498329968960286132267729773628159351142839958986366332337885472710036837840704064938231318463328933323452920602299923149233711075116637581562816273068242344683563514341509731662546501606374133320770519447170602967863613412942342830694880732575384016752473877539111607592977361974367164189314579838848723287600022630775186571368547134829605231292581916898777078980234976215365749205949560365928326308734237038601291274014343016710743014354584916523225018159122074539863594113497124174193817689503680406470018280786114380806203652325593545183823683979096271521750326420752691877078923294535811308170420983726389654087384830224862842205809076517082503325196358733046515770167107747887986801736836394016398956067851288691758153180358914706556568323723306451657726558709701737477026780951110069065958265372512171096833863135705436878690229606673333088331211006325026190323360353787886617526450224674782471770941564440561107055782657559119914962717785741606823621360556382499179550654487906076844409222156410468592397422378669532493148075416920191227599476874559875038901615133076269245531940155689044671787952665004455794273468997061658046613575469879170941705126453263413656959817993900796294721249090036012956764913899193492147500156322842563834180478969949894020391155264585329041300563649479221088795012265350887779267951488259226887862168394043013363825767299586645746939205646640096942721715475705381534810863226115003514822842284387602412843591875684150140201039405982605903747301767039073333684299459789885040695845529707658592358901003595801692974099043323919914406311060972347931201924913276468462712596685554373905881354964545450040089462170473970498809359691335102352612475047458077025968361322115493031565768732130144418434619326674260797989412934284057236281962565136838093129786854729572467123916013937833326726170916830198869812062939564583397225928177656066421856827711883885707652543262792559825626050482805816107993440918082989266083807847595664260948043302379902208808067578567359438673227605695222662763206654457465320999089382730042170074508701861813030442824294530980408797492012213162362439154157144100611987362790768560599494578200505253096969406213191174481186138932436744934771194906909685520630529861008236386902379106741947322845138717545706450394897450221510114031725966659749049307687109256753260210620509332541212481612606051340353044114674694605232852840153083735552325979972230965281356174324625973186385525722440344273536841888037447896103502523888759258549785596189798900695698991374977138391310986980424680578813581515654126304166088051827571356513102920750905001266868487983111431233953403896841200016467439856656664097074671695321534987725968129789236460571542610518486097688723931394274919942635607693591298667648142242056839944917600490285868856851349863521983932028847380337175560965021469810545492278828752016991461061968759887268153353855657731005031774913731067161218145062862353512863749283836064327822715523180029108357702781512694727802320265469307756816415519758094029926331447558965932911808635590482013495095965122062258829122518360691837909985677204179398774083195914838373142350252585371708466962237584541540275543256586219007871734439446087787782098371145339565417580168098855035689915202113462155836787623140913203418763220930187249999834429559052836247769224506966415007059611465126195454455651258811120753311588886938584957736423672846127384772830623687679049979964243065587700774945961387214527225565053355012661284429024185166608336133878778417553375392842355565304547783285892998806733563112564205202996630817876624198183110312397898999060371335462032571203448769694111419794112232980523017349820020742344400450346738200418214727716354941086618739967768059356966261042124084321045629871576682118002149792534827228572062245427496260443449727433735834981703134949479810643923448996077808559749267061208377875673105968603539678062334220275898303941015210734514397978099977567054742866340717927811058499028308188664172260580421275774237880692518286466487112014164490220169055279019758576510855425382179165341240923006594654956299966414978966225607004734177947372951432354220251667919332557758119610489806583650575625631969045945789122496177062619920199279760414765687865260725551381533624566715686401866502711513395782456737933985179914537300531887869412038951120055474154023210888675394327092181110446774729864059059144321568963113388219918346125943723507355435545600564023307748165386514771132181624848873882637906746181501590555805940863816695083896619590949941469750368782940438157671794927512366945569783573114010531569626520209723051399727011347325892464437902704270561053007164032030967348115251969782523627208974431713998688193266211482175072595143385964025254031345497165733193364297484726607257933090045992959818035842010407530408324995920704285772493086500184188452135292289907328536069239958318357381285453288529201828899732563256000025632941552499899217402830699606568934452334083189527465764216570648783994273143330441358463135174852001989962054907540308356049887729537141856381485727457315009064943261949550942027015870882100112410119107617159644871226607416146071600760098649343867599057594249333199631139257356533504169424850022295313698383926846575180067356366128953489789289338190304902683062722847020798282939000638724256354171906469594740900429941241633326848481301804295124678794938769585646137912503852283723196884652375299978107607440521184280858715014867974033929457055474153473598650426936206791055046476140990011703365213782671066831897298644731821992385270294537297790402588240720533713834505540263381800552985677022952071113128473079649941355818958974141663146862688208820507125856720972875781759779841671244681769608951581201780633940073166865396923265373210708720710492755212740973117147510499539491473909887239978750204506796313541471775098153637312558812850654638078954373488734082267549911883596640960848673706085185967432504483696968222518113924961591205202242306520780493961151905649758477032023113844770475847405328298956418560672987229243948432937890644792459180966437892356923710629706393873954555075459385636601116111339330547729621662625434585541179265746902616219394136643860291496850510071147841471154479138820196290131931071593382775109432548740523036293363312105022185020974655038417818468369678590502882767204017138200816296039222743468401056222309424884634544947258282139980900105179807610060214704764678158221423613017079315352508333129581375615891972662806466233048215041066410486374482041826031546542906321770064079727300802191994346998978910296887685885112508440244561444111107377498831735298933944266150954583424350592102881630944127703895405970144237979739797902340028857146462612734405960191110081696040506747487146966119918642859855905411430135834998488601350096065988192606254269381784925680110416187461803215584667371985708254564956111597664013893274192942892929711845498431904635043546454052800945622239125771178020775887169670418299571070982519778369623124658872867017131839583842693832894937019349778475668383196447727061407289546459995855755225602977977684835119044473215279979275697253725878968158675363218729878106762960864002692407020969560215461320070349311879330329943626423341150904701648711430238690843788933190048244758902132473118720621446830651556143276663812635296799242734167524427383331159509661776298545701099898625376067865690328210222877903295645705689068035106759056727836305024620045719733397351820758407797387961558415170744472086917064456208915661565538391482600069366991176263166222328519448943975474336612755849356032425631792571620156254749277667063079496892370617708501471243383729628583825169768974391205861710200498941828751233203729477034019498758322244630038888315635893508299515161809684163113004664002253189480121375083554326180365483083741594609201826238095442757625019054428835101691671536774397813925433829594974779832150830092820077318929456718419517087573827884024880722504909217523034911563792900149896438903631127924139458215597467157745955936007287898566377612516613168202093040823923791805422139141121882707788144599386028381120457455299447001443663563833354412717613754286684416362710920463559948628755617853664428110469728112157619504927582603071165033948130499608621959956703686502256704359280278333584838933472859418672132168775141531707689519416204772172513785921838914729657451426174678116315562409958683954057351126779436067031294247018314088856471544083421597556938863785225156905957556101878791616036651028300651125974268216784999055695478055325660671961440390523689481917540290279723542953449847052947583437257461626363172852813175242368227321713535645901421461220785235146605936288653192379410350487422981042371124301213206945781768802969016412042656896366944930947665697757459641364160684344574645304180112207550385486002979099454144519099330787094020447822792609492372699292649658200177092803776802552390661893709668190240926979008536489299926955851300843969166749880996297103761077468114547522116582084112978915357705982550982230276891135400195092907059259266316719731322137467253991259055952576376700111357311252100324078714616383880781709584711568363993663055322355165511673235389556485460206445793294509314452911019619431787349539652050627193461128603153257289848321910184905651510600131121429577580999077929694432700910253037776802508973293256896017932485452284939816856068599926863172229753140733493419855592467970566583478761697839944472432049656426001409888402230267256381238925824539250829168934071319012127107640469273145527877547506420054406220731122528851298815790402267868149711969823982366958452093300850168915104542505454285292286850379495150652485653083285802870214579252302410918631159300367231208889780825215459011655339996841212506436063689287613752581889327840009483627956164855451380234445579610687900248590550207406254745321842397142310820934289636316478591413884463342583680138900233726001991564657539493071590262638299125712261609328620512537312503239964410460423217371882541054538061046993032568736686391388582859385995092693808059865609273966557453734060078071438051612328096214139379574422323746704070720419761499452381505734253338310095200299033498221545372517875177899178838898482480198914130913956562714056624616276122267437414227466812285552952684962233328432542938126449695391429270105482758215265163169720445200033724099765317366308247287198187388750031432263107305937239955895164581449654437744541897362288744508859833809230861604385271661972666162555287750380648491855953202182538703924871224496078943651999608839241626749632564511868950631558612435475423769643088682221013052078042975851141791781577321672289780016401288230401526842873250934170111691890168851394913009599416908515780672873588871164350410231268343000646380437606176054825386852339039925604454226630746630369668897268331218103244151269394715974341291079447541427013674806899760426089310259246815266138403356644570480207834184096741261544960747848671094303737278318682469595898908881305576171885564754055451121742758521664272664665896443523509085901299736876094245903066082374736061341441854822225864557343832224262630782357187062217555927268460901630527565569781097908664687339082760569670655396415517263944676038124095832018766815927117911436740574822065877133957845837173763313954749732586171395611540767126844484165609171035994501842418696263829013431455473037814644309033923940327806655877124123495676527275106077811046668634994397182411885917549582290627856488459468990071780741170048108002821121381099253044576829457667579965982394048487224991820880232420701618745173386907336278407148363333778252227600473710870493986240615655394013138268053663639029872656029059927288005883625233386763713937399098683388906635008287454843757159551332179246081276419117828446452595956205491590277990569638706904401141527280728536144281465474970238658477832017271073808687129451982841766080505645834660182577050478516335910048298055506519477914173378977859288364337776285468807454980476649522729431283316645521913910729915233018967741560551570990264973570463653591554343662282058952660333052617213197259528493768529990515046049497947078892339545556642877715894580894023421979430999076884164562933352921655916292644255407181470203818954953264295960523145525516501894030392118364803048278292285347416755324734275705396696247276130684875790744341495214957798906214884267412206990912414940533453637148260311871207461992111875893313529949947008087891235369424994993612120205069726799512726680256466044916190555011938591230381081293522005196285165801702083615860420891651812491959374435715107187431234136659698954483791008160647789352576502144824277845499706226794794472727881598688913373221513432113337849426203689291189037412395136574247036828882515962319963322402653909072402146464806881749878656341063471275072696427970745543211162027787985914517561511091876444181889885162323203788479120737025348649487551010045324310387617800614205945166311616234966320434375308464222691917168910821803474097739970549731725409159803103296253588919645565366721689162848148870332621620091489136559731002136619851138372181905941990596826219068716403705355790966131177514634323056027350121284458654302696329192511849884435709367013119735910502974492195375226340505263442579473055231648074796540772552250625846724613583922515021669852761730144114650110885255484540073318821553015712282467521789765560670239790954602110988909572710928736271104058139864330388476752124636586858409018588598728549331697772311901055725619127859379401646756656245608838002771847476768145344361705662327091473909641180635036084522083211480175976755458457521200723614347613586647578318071086801934076224207476310677728283699997407674623650983145775478910840867122059880675211259230853127003386782319462546563652406272745811527806805984694230667652753643551898081529899746141027590815080446303571286961893262540966510206221511176919757800523650120099266821284014271943488726399262668891675505657173536998202360932001803498507712563724421230567930259856431366087849463638788082275247233431216190895382246848243690815652227483741679722778401974209754562156054206030373945753271440090855628553732601680115289059474384599047496422608643049800411084762584092954853589726424991761781965037442793204716824452009775390826964824182407598663022721240590120062065509866107115351828987272670819367892879303063120114129512921650865286065175860812873202450956482565252633421588877801788817029303813433104090758038240431738377012399690162639843450181719038514412799473118720586976910345352247395880148446985275841029078314340873987061731011705427311292333636731701554939037413188416685163191280864954488693157394639341341770852988834248650134757892769909144956850167659350801422427510728145499991713125763855724997059089239859246599852524000067554067065274585795028328309443707908042572155397178867891076914890044492994836014223813126836238763156461576295995208975943999212423214315891245596156173864299079641188243285325851407279854439300494464011122459113760357108993158117232984244833540503303199492353164319143789707628000013188712021353066671335332293173707022344533628718436967540261612443396857416558650239847529197886266949724760229421088413825432818670402281556941948117396997782342356423004528290056385242819597083850793827189567389770485651988849722650248588799341764501826576097269601682783682658939516497193208121165555703866890221502154523132466101657792596867009783746456371182280241170933473434450070740294438575405176468831647078256139002601075730468135257612774624717958698941644611881327889052121521853995253925757034150973144402177442799388931721775080904890304616639743944978022013085230521842429326043098395103508638267481692457660633809608476732494319661989173556609994677913536030380766661210769297111564031829545359565146934599361133865824224718403330490032928786348372119052716998905926564913108130631591535683954752569409474101686980030310849072731795883254449019491643922253242128053084903773665444187149606693985293874793355366061733574140280804975352702332821366519265189659067372229743199868298917965585042444988459692932894855893842828145692545849880795384066804780407196264132633312360724519375814565059440817390185671311364874622367474207244792255607306332329893651615678047662402658900407910012660390306781817697533024425359114812869429275546170838283159919848076008777110975422376080703750465470536226487241108815692245284759804389955522755964150697227933556037944249748391161446445876116099492366170400428115233590419658347333882061410408055804956532227243421520042870837176730076668394035154260058637541877116397270740092416222140440155736639740804482378134235238823099023482008504371802609294702059942346992004494648627013026182784510788453316108846386501582942215703005942692897088292886201660299860197529101223386364829757080587964765434323372958255179109806014798605941999039942910946229939192560753268742891374989657629917224533969943777804511570255403586831445080079956524650063977498175039985332860809137449668465280926918110380753771259172891988810310728786472769395068961528605706892005947744124321661204252941641440404824059715730146366113480199863432732630106346612687343614286505009413411337210725555885669230712146152357450564588187276943294736825755836585223602641446689112178086000360336454923540669300534033760317137599611455605601140097854568108777943316198927534517755709726938626773022501593110406045625048315309784575203860617324351952314549947536835817381659814351518163430930759383850782078776828084468489137360154941860085612066847360094749711103244976195062694969839638195562016791084880420824293377799267379503283350807405221259201126942382861664299066532281323933380133362878742004768366936389173035662587534433580298992982887706278158289389884437156907675570680004139746711680286904135452448130098655939970914584104349777646766150458240779249692821632141326449832390983791696593738100879477880643283733235556291419531645204815530363473722936919830877544234425713653005802695040951529756508441802830606082180604360890457917331533549583496251888274748836353063409317441544081207772577790215904561354417398218089099163706745424737320245131961719590676500951596305959831609132043984567567483738655326150898700668160042673450532537654445069793913843994754221741897320017478350629881171322780387649548286448289604064894799129479789882420827694811590053067823300650638779925700917113581269303187765720813175329421599434649751386738954434035652006313737472228870975411174621071560665537027925333619388486419517455922325375248142058915646330650988402621109054006807088555111292212410027184699902187860132310807171910462426280132278450624372775237200895126428171848736102914260832848197941800254166410720903089355659004434654573637748078498837434685906307713306782454973022315666678259726051165139585874301842186941008010947376074140338880838629208988206059077723100554631582190579334169514731935994873203670452509949316515687509227030788306484297462194089173773691991459869624633153324462081942540408455380272160924352029231113556415345910962047890527249377921361387292860566458835878486243804521394837490283936064054635425266812379996002816743449533788921589827282723828943508485649850503996488628166401934018819093904621358180017558697207225558255183623215511307867036336150119750825381785399580870943832802024919144337883515260661993052936131280394302863922904180719708474909870272366398232897595107626074174569275087942006795003945191527646782776819125446330035044253615675305972331481327984733163948847949039241693695844198315625324406545277734478299343210004716763066867168321087573215199337506860216888256810675902374059722419130645960167149005729884711668149291969349745593948593979901262150839787101878804660484864120036364673779833334344846409641091311644456496966053222546435757324288882482710008283901343320519262050750579346160998805525354947834757392181472209458430898045056520272505605261721484205211379253506621073045912648071266383922648360067423303498667710054968040480254641780705554528522400380248413773928486508288814681694251814698605154533149292627694477485181703589851214465949541046779444763794547655154180067518067084927597707306454321808750779954241773441927815695039566828415604500066939858727059140714669752597585122635228924919277518215230807342787366984031305140663540885785264424825304082218556429251419820550837666078782494181945145689577138073663355490590125144396058308006732588299854873120300868097923617000623031990487186944466471709689083136471509771522447086051560491594577621949788124168639176825595347806750863500093244812444200089619635813655524234478158501445841406626931296545318790371969634811246217887015742598717646361086133373719513325834256005751400746661060448161173498115841546703235232434690841573114303419638396635268523971408903980253518503036169468588315593938534246398368951049461682639076429051554205058763723973529914751139597106997347010149237032587332617207554433429377230851112055923268739569439470565296552086271349275579326700652833214659193770359856284834056387642421676281470720002038810036288287630047213850097211907914773293341184342810033442389429159417250442520863701167567965111378462723124825000028808355224989361171155086751550555424842505216330012706277468489227661058618822235818785942013293396777921148087042710356460826503128509826734949790884713509324594434054153731319412613590364359958664172908331540286926336388932483024199333533892965636078204685611476935194870093815309910342344358772865022305108564494657420552018123879787449244694301691509611439274165420360440990046917023035101508552821278493520072151246055791478363032138548262516218743785558752429055668463481044424971776499491982579216681292637482231262373003766619861594418291186288847685153612733834754229019187112048533985130531768247868400740051053353751795730227716771528235305742341220756158769379956201629735568034139999235520224393010926160659569503660400399681525107677446678216475816930021553192460871323872578454313605915246378548008145146142419638044983624245407326181034309597587275297018411477599605470210335138607843811343569247658257008906492076330586911617372168335147516709962070520980281044722746073021887684700921512708203187117725000498244990106630204182679171827430109966375268950076411767956952675079526658468726384240395691483027288319158820801266438191053345691093013783156580505663077357028775267325985042686524607370587643130098520453474327731965101471423803903265841049594982960799023379601865431869363214536605246446021286110296212549727904211335620697533166144661394461834532974866845442021008341866839612315661186821690980133022907087085754466935037316332358901655061400919382146937624205092031871665543184053611569749901999310141292184888894311777812210122193128351828512761343916636261001307813272991623684267596907849485960819668021087204038549820545385372028942026952949604310943660508813693191377366966704691376247461444858442923135691031409275321042405205079721951803413920993374070225796678789733386336718740422613665839917301616707243344422556233976679201665223304857731505499988995299208476726651366132101911500545192035552265335868903696814257222898207347323416092382900416560303019343899899506532612071289077867103761396625238438554209363299599433922526623335342321340738169108951895159626174974523068696656369179093735369172741070100226703773757823166315008844085198025701720456935075307698005540633471383833123011565953130860136355858540039272375409832813971590571362310333501260843060239406781571384572499019995273642957779641023131300984760986943001699298367217935637105145061849282441977623858624878668147113691353925638712130684711643248128771486932664482352615010775956108646272480584045133287066932240493379889746672297638966023137513669925241920108010157494164321077063806406433326697208779943808803521126038481938289435364749572057600267527128193235408703726140073204108072624988630731893476512919826593062331405599956644103868793720395691863128237622318447634051374855573774542478309747276077113317912823669324095368405372870087151811091654877876314776379335429677440395550780980062809515103233872413191418530744085714036501625993830065660335907201661962525810949015642910515640091035053510979626382215826481235125149004151486673398435377727837182465706639507106165132231636995788070484653614223488356152179329014599289506898744753026269011917206704007381929239468353754072243657976932700623307586345926107131110376461108658952315319352516006341663289579908338386886654390023397978992905693099964669205760154681307624871629041998047466102113717706055552166854798599537396100879747344530271898382588134930643562670435589714056038828343122460729775277680420547436842111203657177805496766270444914486146883075711890088325214043736346922077118001551787698214913696858026165213172509876535149607441112842356770502140545881922654800540908706831369364454092838477086396374919826192947455853404343276902965249498757675114242902553422233166992166320125346923545197465208218330700647353525024124242686577919714135778535936213766415744335045106401534817537339660117789106408067659735991411070969465201452390805346295862118165785353007570736404625618344354132549672771555256047962886706508048207657273937359263040776342578928841201676802567240669591195402716668558320813058641162752340370130180020608652202071303769057104467436472516887220526328711638997349379540836337966152287400751798296369752162045796356537822007136524613177609356857000879509690127858185276651537054439839022787025828932601586640063124874913611027345847914596727954359126742247930470578353830509211478210871527124111798990546843019315620845174007869810473486692252560560930104240724333199911363466106879237674370713201878988454386871732092156187717647180267805830310250065009659126187807768814971865765786464101871634551985565594814155835675944427520790993614962664811772193166157123457705850528959740069349375133463009285274484560285716937552831200759993494265952275908263919747054738443533100096084294362383222627308482780975872470599538635848055298754467201317921519882593081143023517392282324684488095451360311158464876380702647357892394463300951313230470438370133378782158151312889227282426558331030452845033820820529260240827456137698200212691492827276819499451990766900182095211313887474523247652093593802844825558433894105382691902908393424842344352328328800184424571239994915208946598717904912956207411643661290583087624994085697815390301920545473299398988266254497394595933829291153392103757631529742299803871765932149633289504773310345535391995592426452518080824611730129412992076374368475561078001326806052914775363390785856140466413223107721459194431162205363850666578180970586711132768698578863498167445104542273112144474601162682586975020862961074746582945234100682272806562414568826244018114969414281431732805013377328458007109655744261184856945746918608649105758833350826713659978303816995726013157418083080722111288874092112755441262288058830218913065966916498993232678909224402311985870720513983274008066601871793298389776239417492859996110721498236637560469208012594538460085066050246369999669839766816317627946258634003762872956827908223466026478699301430973705594258780321501235531094898564292243648058537243612604943706342462994295678509432150406273888444252321615339783367178472852986989024216910649318598119434660273017074660036871377276033294362731072413680943912202461356372580971455983025368547165217125990711792691817998637751320273558429928075559013790984613611740929812802846992253713417080125829137928804884073612421671354445798804653706242640630326786107461976271810426566814201319874896428630972543224297720866803048905854632113361424874142469569165207415440986573744609997087521976138571818866828460547584781295912603927759187312865956743491350791849858804165835946481580918573053201078862313840050606169696886671901170895542104879497307654872193673497219250133964501473021023805863371468682374145718300838825417683848590679993192322664073535111130893261904549720913299670554439599926177530693256710610876142904441411329075178707268973787048892698411162470307165169076636568452553387062698738009913285169104750722735692807975223943995588047000152527346418540496389409978641577628269107274328803300186711448793885319173722707483848814439731633708667716847794272757111274911542109071174313440609440070811900888535208166655199758715953796059308198652069469567408259921806689030863810427139179397039118049081369441285858848465745587997422713296187829709660221942385613185264036937264362700626161983401678223357892465854774355901057995138078513585412465603246583290094239777886296883966379065779389947408407914936914736178338414484214562114070266735862571349912349833861806664181949342677615434145553081800854923149603407199860378854121460821437021194800737670481619405478244709695536801333298921202839283843693284329312750537907964725856295739152383827363082238007265103965798095575782627302557846374776657825183319900574042662137405015194377547024951663438907834614683465102360985206573160786520342253635237553274149956172341364761472678808037474851830136985571927765409880301731883816728904994661314062606499659653566100437208261040187103101833633722119322307724554422256048877232317602547101220276089345742018652534017346049351069791796635711756757329899212088428039808584045916794162116212035434618167648780118945116550220880105328084580706232679389107746633505804067268366128769204305938043120709488821034683985070906529930474397992726868163565130423750037328961462362125388947681234547756999080840266024393752540840631859950762941402200447519668924925234728290097797813512462744103567709668914453838911268900288222201723141828318633627361069256910884359015174973531941174722967628787463086900886061660774900473513322337901160877841382373030186679538637357492764873529923824998915319079418629110360517474832259465059382339920683011644810408247531343031263206467377540680814657985508260504907151735695930248875663346947779338796943037988690150486915662548700134710113786421150627840955786180259948948116820344489919661978983320829972434020194486582668857270076472489752146746783112243500528108258589817142285972119819766624696568549928686552596787120678821367739714073406035719614463473045101537499793399204081347919465039226676167892647011063469934214234772133769731373276797393816923804551211708809868535314113318466372771407542799290129420082477811729976928978938840259180634825862176567039046891866108563850259574632550975560550707727953503174113796826229163256289056785535448292187564988804509803013853462988114657494030743118158961573982493557862137271606295647408017090033030492282602093821182740043568889563902369395426545976823269722483378714861177750837004865087883922690136563966258365169099634187601700135714745827940067771099479117061831456213841097259918742476153977918159081442940356360947557965235010220421716698584222955132618863462458036623831010165049905830941185877565413898071019803476064815197764937241825050439443701033943596427471237651271664425248849237734165447616823351937214334691588254085276091409778176249496174870256611060749617681061764540462375059246526338127679805570044202764995041937295431755645366282503495535361114341273103412278701585085908702789627962611310873190696594518937574496575337706315372845499277314593401230889721128529642889797169018999816267100480486136967843608967231109457046480798946394438974658296611732809628128582225461746342784999552907074002695805846490929355716993050362328773451808964601078653698736088720225020081781071436990301136691352527951489755997232359954576922654150665851337366259079447192415452908865375999522119026873965006226611048978342264830951275777919262940222654197320534955316549647064571534465368660856272484203187871896290823855160909690486139333149688106844522932311450744022804112973273852567688532023035996574311392898155249327223145304690206520065177350601320463103306445455409246305702084161175262757580895166116457780354674869709692312753146723526318608826521068905024731218111787772843041639760098160266572805468740278772370372078659905470639088131411809510641908217172467178245225917725383123235397083449789083691922161157093195187876096003138941780930116690339848921060836632243690873444628099005192636767569512972009424168852466321434125867314484490921332412960308239055523722490145560483262548682637515455260364309704841167077398682755328671165110284815561146101425750622571253497026287901265528710411832854476294027039921864167590056910992235136608297506347833477104394516661455379718891666841736309778973814063917286142844593846589907270912761080672157166863536449226041871908261249878118230858802732894776806772506081688541367624844946246707523859886205707546661758752103324121422682528695996004198068702281626429743072220603188138141284957560790092521350019780703967779111096904479864800367146246541812595769581358829961485007224368495705515513803564933022383741829690115336091376353700459213032157500517918568022419117380161324713824899251804934235291888001001200075104059473605013166860783448296953208686650037589134729464847916305284792362147510232466169983894431358148469318968776714452931337522269640788900251822300965083623141215007192234604425102254712287218452450333457964805174035580947245481989114108835329572088574246720637546587041729590112211885150879029935718304514190990237053998961934758695901745795957504548122954218051028112347157645506037089077796983040986890813690978926646925525194943274240364795291102631626528729817933410225606581373729190852322677972858607977020290779200742550285660856592097617512691293926449122748759341954632867122115635829146843422938243496915989846851518477835881782968026316586993678554037635258683018142617367907071736170406292062301332925978869893721361497985903122109131911885029409442130949162943412626788558158839766601401067772933342552798178340306819687709459086623181611308187929787493248626974343936767841349946282209648972295121336410729616864197719462944389922930094528620800690751161440663030136257607246490474510555950112277205957525588987045369616767868991720714256631814525774085385664896813412507267767740966343616217217644502417826788727073372213275114683139110530861173045021600313930591749539197497788675534551537269530801896351740165892681887460487944533429337464189718719258228971920588243255980237330588657161288436036837957114171450749337301964702731544450140825503684318747172162749502304936103608312676390266175896242280395659289114599045698867238937865656255622158897619066395736120067935153834056690151690830848421233782623462966578179240662907460178265959306506210565991547578043022940664270785696156792828350499761826769057369436410348479933012401331744507252383621965527558430353235428312489150976118750386677805112558602615747131203374509990915768726559734699213899067726184196639044240705005381976884576153506486144826894589799822762065911096763618754806419099991017147785083265204095303810384626083667974007036184530200224400871629935718808534690114037507029914760317683529049671641673272114671156128397669404806227317128921711786319622201543001305451991765008265228528364297549771205470010785204785223644439133342532272830200189770615100953550741077765934477387550299716550675211820124862046121260417628972206069107945759377444987503588246682198186412572306237375892342358681653806236750979127726908851992888039407911381314652559561276675634409768211377155268217232835347097325212214594626732955404725786048239966595890134165960015096869999836496738800633759499966922917201509891056506625791094791708074891563503791448157619777318133919112459244470532533945444712890588499526379080791761424818719592584217966760634430028125166866717838904962789422287871866014113520635710919759932812411356103249098784130210371405283891454204894427064855111636954396838147769558590116019863755862175758095887881999531877786505277606177135587685624608258261240885520930437710443748874761482744896817877633956426482032774879379646799771718239269395563329270871334527471448328061306091670633349180082830778390352664143880187944866715316337042967363204030094008572463244490412437577940414932797559586015969482464865640180318161446075046779970214381677763859467354393057729082710108695443341339474450226840066555224242525933142044941034033721187200788316129779006584083426277687423648496145782152919637091009694724528479779770145644450769600522308226776966691351329765497982985055017267571778509526584022715766485502746448521777984758701560306660813127380157575067944760777832322480851093017731247332088481787558477284152925574625613883642526151864606754779646225118991424256597728779574995955239260013923941959267690483259586644032079328261919199263106738797165194601532708939807984230891323774730072813048304629839393835246539292847198218682802694389627502882006228461584839998335447567607143535958211165387471433867028892663223437171190627772695401076113810771338123434100648949332622317239145697572264245537244600972402047944987217518855931423469429984841559487055953172112669726200349072964168746053169822270730806963682033672663644837719752989445402751968341586570394140696288567269019336482550280531699031744104218260466209597482625089766806128937580751922150199475254566621932542281366862235199448251439857513062553327674150932247217039297351796749585136260509528378983493454846957429372641294326580829875624594726795736525204699265002030961809261057456236124017116771557503102012913626686356512591781952141174850083237045466969118500510262689327155955318613981771631966414468343277109589766072299525096089421914708871224121694313372997467150200667071041307200022690461252083022536990224309238668385201772296903062456679390266942096014305667717735517444582629930446869080079151599167387211371864945424456100676371688128228348232139240008851872911903015658833897658478412418267906074024312435329823232724456807073797802342419615682516254315618063294188778033836125295675563664192497795846576523535025830481788854235726101922602246770647139872152191949509255477103695178868459426114354755246105746636970129290937619976357754599992387817548030698557943656049071543760067679590908537221503388914475036536814797015976446627110871428971135210924298408158090207783929645929981771125380127210144747734185061815773882995158853213165721933722254939441666972365968807426126377465161462628615809687268375746576416541605066558130238369939881336872126405641127874584740465394531205727799895333902714579886386112301576741685476845187454710140350464801370081007376706039239950417891571991458007182694731580327574454974614664917850980969045456855296202186373987532077787421891175355087737559975142134283986343322503891888399571476355917246509757501887332329386017331765068954140329710606163608666344269252775088639949637123571608679051062990253403347609009901228091793260944755793480213235406206070278909342206212367930482871431629019298442577575245679603733909217960537326580720285447098544423295719700055685629494033249089271034029326429865911048276843359824446666706716355956399864059873783221281775028593401452617160352812957591321650119107598443500680253116186351582325000821442113354032779197863403616806719778673881842530048288293791845563844712628245896046225548405601753911413573620234843665376698275516526939626381911995791792119533198999289154500719062004177699288150768685697136305341547914919090000024169182932025169832192433717718832266845184743521492924656463329679149922817669107937932948476645226295471849867731227058914755637400101145489985900870176448985001301799693286818728565527097316658628276532606328198655012269633508972409275403526738141229912598356374049949950450443606295923457614468586816323325162036717089738900894525764917904201095899187489004149805831438262100615164385109096370057611172974833219454942717265611076593493975679112901173042664321079515939335562088344998861909597600197118969579979312394537903819241914954940554365868079667013033723490179748300300668441130604866232988013000894048864809310186999544006330836162125781655299848955326674668052313519078673536772632251203447073148267988006135499990318211844634487295419189700991392495746163709863154132625608271558105935194731952027643584764611691203852070225702350426529743785961428513280868355114626119900254986937684856866344952714802541608965128630442093595441524392093675102793259744982575159548256023244332724154216409153946874107211869455185046683855086794914912737886818228525632272529293240198142089246515084504543999518499755938854074796635343653750693661977596695247312827305511559488963476667338818148661087133668271284784711936231198778772022248991800572548300391606317553660525547038203266562449543874260438718338068627056123203752354881027069659465781425356474286295102860686779878409867932454803631873822302514903878608042628783473429082401510408671136277705052572897513787927919277630343013774878843231340375815955419540858084832636025398905090365545446744134436494073877865069204001762225229008437266181713051816242086862338152949597617516842280155733335437046466784164828447421752391944950182906262593659363143982553316538311501925819173475204592604379054356823767584533148537488150143112713947243955628327419029894676117087061026351542947764036715427738233806021969060450514246407116045647974815512768033164039908451327925340850757054205557509103080326564830047352086160589184053089143602116591774531414229639085126206860455419493240413620500861064153166744277899947274276982346369684644729195779478790614999750067207799666301713892848900762007684374508796853461736660131715281510550569172139379098337905912145464446611954393866390823955563841375778145303721789224288352932802607091460043361854997967131547637291393290529788248641822125335086508012421821350942996829328498710945135671652212515171249472345828939139354323453815064144567621470378927892778040605932265992149070527991869764692067716515514035733271257750252603047096953944485173621993100645183475713976884560122576009576567580051369358004860834542781356731634881128986780309698031627278741826683190996342801192225987406453917985367993443433524771825549235967392223086136178930854717819000668735697402296032497384444855937050613556313527627532072816388972937171202983429656906741072382237265425658835832956188429849194996820315434752714801583815238806089898499072427329469319900850606960932957404159227671615801687763680970230027845894330109874272295029958533415014114581741265320781813415020780310091209884749571621592747829423168390294828393797079939717878931348915216684336601507407464382495102481607364899891526064801183230162468782436451193072868988171278196986974710571376928540391079676039875501150833505702407600366289237928612228968053119174270471671760387802980502014373380299104961515800930727737967660042995699948017408268433082126937411849699444974914061611939666570262046567011939044432529237590249406875970175902284883003229986288535156705890758630700614253737438344070628078035330191937903022152910910811025440233340375529138330983349968337078733849535964945703741226256396086228805786524330378773926236498677330325427322945445251768487308233157991576163393696814261006598978772661518017359506348530676760820969067736897095825895889625537160791116189234819816028265774783548654832693995970180277037011934811927480657805494387730556051855430044334673233120061726825728591776069427093715674248768317651907774497881803852230765218825267693218145037742626633226982000974671764623918543109735423023903852587189786199122119025692011051543642716989989497724843719370146594746566117971317580031188734449004411184129717032622344039519799245895857991290456025872135272601871298097288122136243634829160385015341295157169475884203305737186699548871117681175980129637790729638478311551525132816028127411956921373334464282240753979147822752636848534137602388441677815803280305280940372069660076996664466753817160047821907016213885812326543247272985602774978835673240821299817062877235585542990058355092290099524297175901979850664844403590653537869447194176112947712892577404218005081560123658573290575354231552968751576641998168757688945599051396720262573726881070747321823545620133761949867724086018806185157098668349769345441965320539065556094863021066099761482292405328022447853809431421472567485330335879634840613870768526657861501295860479256634751269380943766218255694433001333318822898311531226637096929330642451034717729842240309150178454389056005412480089544774505817047737648434994869659153669002736241314724070082629589557138970086380254480759244907275619915824761902074170914761598656984252872654469451580641206194407368058726919621072073505301721236234890597360137964891664416679526320138596944945752201690584621008983396509170810174130894692700560368270788512067936847563613057014537559234137977135124875201890466316640689969317602904891009012830059194648499743631359550394593478826974683450982409005894644877044397774631851333684755483582455782139833094330156885387379290952999338166205483530425459733107315310796578944438826578821279988059063180502391973592808712503002397239734279231780798705150813127889057200176101757150418936017734902441315825458098963009698685140025321170528675274424279777275665214127875243974230781001446176324730874431616466136156438431613620162695773601884362369629949546930985027118079516679369531484399059952671437732240584277034837484465832995121349177951979511640914286405781760333024357493775272376560949504594412912121153043046971226717679642285196271006854720805439932021460106668133100181047642128849205739925647030344968028905537423345740159418191993975029843677400398549972542711809779860288405655787179426350574242815277347492412872448627328648869114493910959299393150560288487138643478957550930955530256571418796275151813137147736457793521548239796813031432041665800812891507267271779610426667640810740086691796152912573488922335593385679511847985315599724866082598365527365351400223412156982461809849108066109577717591494133393899588788179018323644181495641918896660641910746236308171367188419476781531997016349830718583174004096538166637394670974877297973954535509051333765762202751845173501924393900789764092149565555010816882212018992391996046513037690998525368484361275804226655320640408397500078422936521905602714084208207761220699784383114397697055386268775486752389169779000562816509886183911395840677772315167510350292116821371216139531137692017403761618459949350988762248009948817671197604400862066720940487977331598621546278204465018924630810711995628440926238878531685084231389617842714412411937067157357940890270766875452510775977136111385889364934983646134585437630810818961731493992467686125278958191961329502035847240235431261235766425034902817192685148978389047031965860441074046871759551081935881859226608109857498029393950758915252218167676682385499653933665871488616719174710819959177505809903217936031205544460426472190280289346228427888933224640583134622314861206032312660371326232469534108688668175234746652469787735461414268827028784812835924015011135572074902695408660833998818434225043311830622731631342588745396425237274195621119206545865573363173188196378144577784431652521098820791686671112396341109581958108561915950847112125737744715808512070236213241648782015063194911640795152890898732589149149356346963713274937091734194071195624701582727462798773751751470192880694366874807760738520570419873909609978198116708646404394116737134698024222080539809532550286455624558371533382970643172283681467156864980348467251253666729362570610528888726940435791878669601755624561624969176047798185880048463860846734764883603190970321404632371559525939892091921061307786044137257247006094165188807759791754839880312006860482192970244237453248997392810362175703077306382948801155302262256728286334873641581385547001726932887796866047878198515387216611153688935280764045511834849291037935093189207420496139279801149489834490832824056167241494955502573350933967660135352275669760649768097376806259886961678776476988873892017621953400985164631656981056733150003617702443890117924685316573411648112492216158623322217401096368099690899092734596939261866732139947272949410587261017671196956582366625935403968505496358051089047470713636476947870961358544928250661191530857468263132396387194795828848585742939969133719110088741445577669247939552016026945551867108341808691022022321764707627405301134350094776788591996744443880741559119785926402663700896084459056255630833756562964146296011957591536318786988970683352911597405632495153915206016328154318599231824465907390274497060709283896455829368556395590531680755024789055462953997437336119028159614418510180512765699774831648082630763771198626709680554955972285756202252874124528637587287651075573999830796585079535580327684794642838236047520090763564657761138237296132360950431054505013531799668887835457451292344947932939043687273844920234900105985635896099591515232831130391257525827568077760943349818075915272996896587544303936721125857960098313010588902648328058951370023492414398098514788665633171127128774586947002371985743384574229461760659838594037344084731137784277087768881298252705769219029279474731451185622955938917484412754762244673230899143903742121574057070873159819149133530200517182018298062520826276346349038484428413807333938530022682605433010711132102973672905778086156743008329412869417178772818324432121553139210772255026170797115915503525564348529486203051452791547172940641458689707253936908224073941128944226738790193339141556875496253619585726465845424643060399544818426634909278235800969598768070606723554162616750971359083835755927512091328740129863451430531493454493004801843177664150221640133894179733854696371348461735908528785514791992424915391223136438407750148152942778165695789690754515167948875303238920548583509082018780374261158305925993525873920936573334420036297195574148908892125136900913157544573789589066318196363320025628415941948416535776855875386294280882792921262987129706808885387496050438882639965424935196084750640155990628073557083751268341071292693987860905385960056181286396012765245576929583203768631693081201797198916776943994257840561014417682031666045416182033482895393407824981861705449902254378335892151492870898140727321154407865497980555800140125775149177914803719360368492257835428859909345501806241931300332039689828914402342895297471235864711660678644859119361433900470740341173166558310779931468446464085212922227068121893515397419920084670644307403977890861318981377691539829211906023974027751800809842522747046493354022897917605224251754680178250793461503142398416724954162067177850082397903305777844746144611445380993527411652325323651801484603174459419639137464648191223790221705395936360972600093998726717600441776190540528410480534497948793785688169896663785288223973698845482233159052802150250279567743600255793713356534452874981889588072736409898436202759661911445916883494568324096456844856518081559397630901658527903155161812736331546433717954774043624580968180104487968035770990213845454634409946301174246091573530550043643701977617274938469517714942948838465735969869942808117025019384229572399777098472009704919911942498785582704709386101058783273822238546064037088028968301018310101356441289262912802528104474355385088211069120279751389066543263759142676460196598762363680804136181867878103671537081475029924094908355423291236649977262033495027579545353620833169907443662354676282547519497399064773793700619261053875436942414079455339319618436503094477383911836533151022131704322110848008289436932818467723020327862448877540189554530973313316065062502150183366211002812255627772232518237538859036053404119263691413507406405325728446979186742798371095485987335438381387379536453795109783970035360688074582518566953028914083222959019556573562798008746713335302818472532707419326737692485849074559910695246364401232318667042359671362467708010600240745127824687386270669652125135145912238095314223344327902933839754370026941027753744590032959455212659531749017585576487362131517985020353915387488774849767623251251169917545139169573377907617545133624722525167246467084901152074799486968955460998880703338214644598654150528446289947284006834210712984890327120954455722374935874451062468878520779233496297588515162907513940432571327639639729211880255771801160163760215695333194437504917000010378338715446496833234117088398916042955329913044279778269073795291088016764455697571488763857552391420168873392936701473432685576658461146781923588238333695987464036514991810749304129678464361666096215200761450942226273408645710595289066715996666903156918048140466762720951147862980909877395796312473127668725594853997480908273756335280377632696576645171119868380398927723882509183977876980879177362891835029780885711862574486406650460542198494887440241723849539700665468847638368638404426584227893424248078873711409176727285996181342346461476183985060071247459691252043563720613330284733020113640995008030894859938666346672261838240376022884620755439618711269864043958141302940870774230615854277212736046819300317075992777515727055359211974124316624481490851504852912372598845071711163979888445527252617881443914086013413328307345014113090476413217184983845976254732882313278349435689352831055863036041722861534097771277119045712004224179100581433009498154562789213615253197394491781288460201975205578164247396882463598693614675398833793934738382891467450596936980735346890041583893123654564504540769516626579842253614522766386228061340832066348242326242341271344062085631823843075983752955016468852765397256337118575149956105066038532953765237170833306934003235667521670778686532487485236249770908129884546767760845898094743678479119418697136315872732606154976541327942662200455928021585026555466816169387265987157657231419334425740871544853709256877812577852489054833036118202567838683387044985581016560817747458187209094928458882146930141731899649182128751129014031533640000362815753626728891491777500557625449878046366253569867633837599077641607686063781422117468334687102041631074933950995844417834576338221298202826320070185318453749107918941914946543768403272041464865943489383380723213775217142803825458152823903977711999412013402231328329639418975715657977189096677062520432596909276200455011596974661398272114350852719796240327820312715567083476700708389878446997013744320315561779824678124186424273524963707374928989598967773597292373044284890472020271982526388929292599386559419423228763995757143107201178818279452165984270511302465686711826970581344434560484813674181561321301902696877928068868079706092064841872131746332027966070220679500008822314170198363418368580931872074679600008898184824231627763706168553473453259709567286745397245163404751085753358799619284569064829342332998264126800602872122762973755793820132916566218800248799150551433061628671035592449003341549999811099625621514154686486943925415617037982462025910800424402567851943797675940929270427387947438363064003096567744260532202037229227659428180248184859568738918950581938161309500306965146954856900722639577946352511560613756334157794470323508089010753716341270951746015538318212277799781179040836805923380874671634273921710488572037266332471213257814607909256474792436356235028186058550549342389898649799451545330174079852107313182124667254799630984693116271036931256674338360964159444686284509679178328472346964896185343545371563981357981632861597622414840134406238176243413972674026497121473877723752578731221594015703422744854549841585470595211046848962194148044961971139351789844573341182664727308051200978388943872666490251999980227165325156490797511189126724020774753554699845783633150246726294339455024083709764386257755949376985409419391756342291409428396098567407052009840147751573478733473100964573192694392770446092307696209609935525039628146211524996325477678749524820114376737744125022020458300808463093337700118889717295103777370489778968533846622451068754923155486365137227497235638770697382578396607918515428586673887168177132644803840882144296439892236822909856320432933705070501032092997825293815943735144438833453290864266211066363620276776940660012593196186631546131480484448177797791751177601869237573223805178178041218151029299930809892481981330901757307226600744806454839045942279452505693098417796232943693315651948506212594260720220140213256199090377684152592207251551064968328634021338173428133340948964357670219192191830325332752276413111910188126555986278749382423490076902146515925417543014848765889769398935811282083340044382797214464450058997451366999394386563082212418794987296655272953231385814854751600595166184660260240050668806831203005013031442961059561709975457221447789416605699883600937847899136047499215418474698783602843075771101100975600369453462201447263528048030442811997536469896675122062592264687342187771896775132462962075996547740910118190813753638710085163304288622394889961864595238643759981507302466510154882891976183944020887345017172510549498254214368316275508448954132638082549962104571504269035357944372621127402083389578615806946072870845868439628174401408894117918223004622019429917959824042536268957931283572741305981021752165183176680286576376824688521278448719565667076451036372914497203854914997531703913085877081268392145873841422332097675059529634107860645623449751971150468098031253838573922594327495884976707958989006095149431056476659842782099547349680363026472861443967526604344554405161320409265601436652289460803512510026081675997366179217708590947043385077628004567607797453781933990530888734598225844533824970206542822762736537481476858349893603366117425776423810707446566941186525319860641007670621208302114363116763112824876870238375303844463575683275535097666658274712785417338225023099055218027605096951614522520475429589692056995174422934447400712890425394022669314626322364527027282211383734301066950819659970830733973855392422048194409648078301124254522115870533207846240020117577019032540951950428826438996069227790625318718250269332933211279607497153403690808567217518090212667684861323497552401084798260991850207470364394191062869938998750033056428125279491684074883991679239917302776787841708647200876959823985549025832088796932207889579878981139626678716686887781179975234357377730087030072602991238479539882971361662321427978489927784217195445068609900519074401937672932832153300045521851200473576558416327003173988724455913809687072035917090002369942180384753414321794846923191410258931777086348629234307647635561987123229430728477540277184998514544497858878767282112630953403133180912412979334521332351050719913555373354690960124116929863849749961667146354417701997801347913850451303829932129521517498091745904075108769747854045442108466028360582464329537448058352000815401903281623740646907624872019605211863279435332723458937020367903280076710521750893556332065386735158353098728168742749578058402268644051351074903605609262792594595641523235985609677257661726189226307102921866004672878186158902687215703702280504617373553354172707823789185868528608595647152561857507128141532789462140046213726975199484172163424295521083914471637951461496648415864155349772846940760758477107071287679973338879272429934764873937659038204558612033966139091067828900602827801877985948719010804520756362224944116948379203841584611543615446565489618598053832407392402717138379014507344778385403550478859428556588387505017615294085604739439867821001487735732601361450912412885507056986778417128273667069456816489493661578224611072580016205273544224366909569866032636079901509566283988574431069745012310973960703176689557163597654031547794395424185304094849449695676085107675831460372078732415651007547678447091235510434128803683440215274462391852496416947099573486851748411585952105233562075116912091775928181271316701816221246302456294992386561365558765434412702922960162177615841032501497589066328693260198141764721075787723113112883135881291807908930845625670324111896404464750298302571789864050599960986946035918385381519899546044872314942167359910958546984982389193456915047243956988521705970509053304901940592027151027301016726208282333680092433865939680152441386954465471723390856816497007644490207602264413127363655943297974433346684999265012164555228024919978963445284962174445493716890391086183336219801541685728600115230709133130298621638285141355123921031406592218250176849863775754596609700039035563670480865318830795599804824233722804131678465123032295224850508090334232571512646714288021030327668790812169160522017267505014481608168280071639240106952890450044100172511768853700889449670046659949206185095767878563808990779775927980711451349767027672051223864512180521578998463726976433107288799573111518806877837871487124584944617562122023555226849297439831685375592004821267866108729401661623814512355400939120080698813234807502783626917141331643131453591188258653416683388689426113105199068078749828959513426534716125395779189226405350821082098526002490219986464480900561337617737448136676719962902610510003613347951805668448732456681249811476875609979025043575063707592462729177628938891705069234077914938894211524718984240937955845026925865111563133136990736707846978051337712268593124791813295241077471916050161305431021383709801980621701764342293674970522350599199497803918049477666193693735625802626367648475753401709996162980369385175105412003769273905429977945399009583693119042010607098853250422049305251925054450308222580662221041829669651930123938942834716700056738865470174298553683026354564336606301477306453626466146290302730140525252539773466232576817231090854616487986217590133689150842282302099134970781704014924593762197959288956964052599947118124229871921412735239568274477395652744375109391310195289463267928868072069121212985568746159565864661849856906364525191926538980541196049064034313054859792905128338899047996621346859452911577321920871223187288521153079985102514558463736953415611717445442735817426819123602662765156348434876789756928420294304534705344251413819585114471716688092651112849235478194965336788549279601531676474024200124000938648793501225330817248210971511643291081177166877246660450736335031795076787398614489586204985766019098997675637016903262797000368953437742795181237876893244953115550154180013881259991812609485832728068579506149147960884988609386215713477180425269209021148350662340234605052733882744150617152875751231210407795998761865678941413821106064634475388548126628854007708569311073835514661604285099916170469469539899129568777510717762224754010181965966928738223871612457398409233260196944638455211190162083133951388417751062700338288237497378574656140485021585491808034239593797911072200381797476363384130408417957193779524988601963806915460209456013559893492577273490798660955894256600164371132447105388284634646343664411003596416906360565543754308119063901847698220823954315435246934397684467066138074186183376678429300271256442807036169781209446393631944225750941597860530793594129407082357470251594642937706907078102302414743670211624594982781446813701598180445417588143006922866294308803867116411589345001169521325976562005745217960453109435139968991315141766342808071050739602997851037521842194449285689550925050970117255888424682933291728868399879175100031023867827678049415850313502677816902821717929990132976725694481629731074146663484369510720723028334303528688206337953355663030307389270894814042197281127487131659125509283668724734163432380957109055350317665911287104331834780154452307578500158619004542765161641995298608741498639419245590998932579270663720898623355167424641346211266544703380931157922885229695442899853431631555986515810142682913174417409157716601481755919898259330010635668553136029471175928964267091539866377758876886007444157577649464271279467942458419687727685304682921182883533814115282733007096643082935335523959063308018457413536924474024562894298777669185546891411944499870551232914706921347825462756234171780523102776122178292286743923514600423865702656381804512899039384732147462377775635425046203945917676291254484012489786616875369052733357964545936722322699269870568507410996839789168063413932080912720226674497988320163559995369832334558398487352285274350048670039499162614199095947930984650123185772319415705453843964065492397321302959385168272512698676498643272538681487569066906011901181222003849116750821385676776655856237123740216748871177735180146554158064450008924458434807737876268360361053372856957599454505326391491527308058503488165313664514653005817812609295102482293649975660249537777662508671326678791763638449441826061082347721204701701426172882000533951279094199774996524382496577491345629843270806744712343774898402373024956501760250708175689189094265945220519012659652216030387495278637043485352878422265268968728484939250475573774978608104269753738905908345284410012034664116060611824238863153228482921883220689640938491654140543440698488033241092681733103281745329125270748955544681557346623307282275759756511557804369073813690778854661061402719658931450840547287776856440792503446086088963998778399896406334371802524201524176044202841941505454904122615121954499363099418288566950262254722137682780904354500473149419656805688557045085354838656144464029734678503095152074749397963780039433261416906076609447856240074313201614046634408410154994543625842374435543085738971698411938704843802798758282396814618901170260465570192641100465034554322687836041970415304915721885054160637269108794680487931177307681020761520127674271760423161269885351086056498102684584030626204228209510923164826096882608291217658446014772725933191806881406285716326340124323055732751253698007733902819213683757392500804791517997804936917875770808458979726805007606824285705729201362643177757561941810712152233194432296311162895218787043434921821711568203141533989534773301120913722847939193028732594112857893748986935263196290116261179295371855691729275896948777598738393404897374793708275822365620971159312953613633564544091717608139585026935397372796509132874713975084316460015798651844097480007328830681765818085146781678476186825195240390248879674995524483134179125521192365061196136424705325885975006917597833028722637472402929864455774042255160638282389126060520824782573602539959067047041895080623286275030434961322258250054190660356131585293205488020405095741147608959050319910851875698935310249609014091347630784199559411384384585460646704849241479350591117601143332274367188552590105784436165267142543880756774103865224687169729684464411415617856193938019963031133974359025121883449230965646582320141075390968697445228154890774035948831206533618534181738239363225501690586512910872816370036346786518028334954967415383554875017207019095259879255542411948784637003121582134262620211555776658918215745540289032969573172078576319308934451562320122596806514845008662080562047015956126186265842001425551979254195248448711427525147868916405776205882240075935786453298073880622066755120852428049990566715012513738630397595626648389786229596831682425197695813703244576582420130041496946118797313338432718899358307808832522169317768130345791210020490033477401507787341607592393266795843297238898309222261804320001590847280541863253198023254386086064532191048963564395073214080243877536622426774989444684651477128731397999270312697868942107243476507958986413213764763520590876641169123456705054852679880176222112818070491802625804682849746110927570199903112628820104001598795964832831830086258467819459031799052917726671831596266453441265750977545147728931515445786523039317827217456252143197602656179940890078746315649480035224408082886741172022735863264972322508812660620647235880574393779501681219790537595809125119871422184683363709525451057374183937934132263622069964537916593480176858681659149571003330235823895300074160593226855577722263493936400787100728655062075603637103440539171765179445197200747472418294090696987073046533558310977575350036990932212801041130234164719625962473878802374571423442404255073078931277076373758611061890873381249670547044492514825403449683274330626190512220566055424538153905163367560283543004395784434997787520785310000385178861274715870127424091553887975520247795747203261658706887708174546532464765609165852284866069423137286540136316479744862890339847590318417023036693544267576991873602067587751781617719996870025250783753153335833608081997924043244267873690758725437117111491167053415410205655067202467869815826365969939082458718233692830955850374478911780646573079394491744930552739906792732510367502445747694105780733564879135850607362143566251311327084602825853880236601587806221585583215928403862195489824230058441396149477670583989832448303741932760993441465884753222219518400302810467320786723147848654489550184330966568512124851797790434549393993183300462866111560806267382475354945953583281937406529070470436769714841463357236245042658097424276158491935163640045286860978558180411127518551489418965584932116659790258385967735519143126471977058211964932543372735793775734598601503369071482173036412431791048672748781052424126645861817427500088951821391173415726785925176362290106363690084959932374093996289688360084041359749119397805483474546898910213446330237285629166632876222994986245886762326136304995094787636618448422932148409103775700158904233697435978254184772024604956789015545493130209767641036327102558120142019229812786444472246713504909172528216040787106863215599269997422541555358252479279213543466552411685136348343177738169611738357722777857162104429607199433394526140943147175883393905220504718615873609767898718123549611097365193652288933528655591883857959295493723430259560287201097935765322144388469225175356971531995231316798965586061436956014957038819136948073599143730775883853301159234101610298368808548134229045373966927083926381555771573302032863569036515682136409653153182588068764588099574820068122146266726761039546884021534590500402142075220672063561025425871697354301080385157723422880760560259163578723801056728479983948832533680184310825460237752251588101404547341132753767757294643844655365893186091291510016537117444912997463090985283336700107656131361045615492462132804009181151482615162573842833303646521743443654609980527838620077152347066721366691326589118685703189496870939902187751325527652870841406276748628459429150184591836297567779354846592164367767258260190556138358547185439309715353321263385244275345300740794356635821732255690672530679886166056434668563314543695203457988452887419777354159389767216889826163488792602015542794034370451013381310164217906008958644732968832318665919376262693945697973312389488218561725081717879731731742708899654877924555062534616953944347159548192116458121712333594849949870636323321756736448465445323053289697774180473744987614424633335700373192289726032220953954119305080339040875034492168907628803113567865101999461918093784483671158511002906490022896996858622282093315242851427372616709507803750766713765212442251402288665332992049907039597824959061069338281969665752679402806455012351352015229060635854226339750955673796150268703513239891195298548060008624481705448449544717756298045686417809221089075041262313657740710360262383972791390156383730457498326315230402357968578895091860758137955935462423170294644733688260943477152558453884936174705479371184642929414284921055182381376339835519591821906498284305477728189462065636195385652036561483735118562862223784220802269637174672314470493008581988734596933663408081828472488500674538001336742612486008968782797420317088307299769264949389913013517411029574788071462981373156155341821010454019802113807208207593098976183508160759526756695525065973942167135232927360663297189293952937303875815008899398426337695064198852234345245792176267697355499715588614789010780772421070235721898846240229041378694777925712405325763154611360542031873348084507483449587926193936187482709438960333847681087400202481343182291546268742250667057906138377623104516004329092817509065743741056721072942843905407880275899037205925964573573264563751210447400216445573978689066478333466351197442820154987233543433259814589079472771620188476046047480566991103821558555811143650416605140794281012484734723695185323578090898212357528905003983319568731590275907147565373144195447657572138418825203225277727817725248928850944455459674053491445303028018779824896278912488939857097184526620861645533126866362511174548548390518487425873898733540107204095276935209012597630717441285468423332969492735350618988185281109744070148316372981393977789084026551014619914774921300651759798843586755208040100573384830316990462039171821800948172120714126557871174921932000263589997482111589056113258962980233049783066998733815010034548263119934889727505035831511353424277675769841311013715282706359539782781019203616534125845522978914295099940193067622733001222882549436185662716814690660765255321197410865611550199414254192164008605205029661777541267660217457032638254565773351269760900347005057487402418550206627235969550392140587744374892322973827397260758500584870044098537185379671801984612518369781890907136184386659376051062413402331752640863561809887547144317102875652447491761050196801175182318672393609452190557884479951961405366857273157024544777344232574182352030810705415668003218099138800694893724998609209524847117032707921486909295739597538402393950238912247474758806591162738126402948198148997919142268097691699548607250826615079159330370411387883367504927786286673373686088329925180322757601595962505137601542050929746185821623998175293276037141921301599588190831789076808202125666206684935458232436063318559488741251817043977758739338246536163793584169770651174553112444959188910973640813006643834722604389386952042848206563044975524120001951200059097754484454690071467263506664945613932897410369071725213870807695966893193421722642808122444546485531542464447711088763534442848065359471226569934377941603649541700896759116548162623147694205057518171086950222917824620398056509043617259841605026337923332117520529493991421894013944582880451656058357498837139718187666686167341725573110219786291951262610079759999335049894830343875666010333115650838637561198973837213088196530705513667509700247472511787967558540214659377140485183798627594091008188029665742163519971468296401283866707493553611865316199170624107434265839308415183980822415764206657871719121270933122751335733707103645683754321214708451896170596995141009956724819903125702722125486239975036086404290804915965553529474601612536202681010620917604830511624389569911283179660933973144348702404210378048657570383413618305359762303729446486043410951211611996826304133094911885725975630833689161508285601091285392423542118709322555365688042248942927291211787373460900945485366635895936642517016911253636059429637589433340482547120194081595725851704946851688398226843755488473530826355084496527349926159484107380819443332065527111828409566337063043169904934151404745060262968898571425801554921971758394293928002336453532815116590189661945214638996268372890818713804897395697522709266489880049578005035449028186469182963032710037283880465651859473115802712518660845842267733264781898492435500098873451893439961056863335644281932941808578407094801388590026623638375399273659046446491496921752681213669352972303265892806623687423676749684167454694421976227697635944613648886123934180739536296069362584348348707514055904605488686679039556458449822327882920929934497154903306528222508819114187470065144942613021662259690278433837866897952204078987297486154853314095118455373564627027469155298390999328411137462732038369917956114125374275233795400111431649222724710583903713418410226069951304293211300676338355057189980622018566267845356061343785693124491183611237536410564510743807013356212262976122030707693594619003263943893278884105844181155999796519913111493504845267408134517091591798721282596124200382207821983078675270559009661717226886778386331700845370058839720644456931175282869738070099367369588795198067066844899100618238728485657482134612556137399007212276348348103247789832571469498763599919510289542758294968292382946955179718170444493282540194237865093024054657465947014799941306646107445506043827729418672231917325802613761661279615161011970237237127525382133728193840530676336967420370143994321177227935159148822250805368573657844000401175883411753610005348330794550567444953176240209880533245384569849594659261083065916364203546760755229890075287138719959373652912339237753712164866145562780397958452575287192178581960344570061081263140786015729962138779500135443079207851387278948609820763516260415080306773234303794552010677157762277166796673780721796719292429430410244974867099741534678257244636138991681665883556338147984172857676693767117771637304125081089569807614904837623964336772517566560621963587507642654843317794660351201089541278437082363324174495085085875936481935566991422405587236779667923571945501297002801858670271667743671705902981060857810321925532430035802419083302332502719234165092311215851147455331704000265878961933578042355620931609833105703196753327316687624168669460263849134002193411263855863903177633036190598548776484452222572698972974484571437212261850786874219597205946658429501507676328167314268031478557026413738176968105858330044942716041804802944935290263832229222011388615880313298557414485830891101459096437605093539290900137428381646233542161509751637844156955852286714424963289642199141522165698561905006212648911918493375266865559022541665371225139264038520798886016627552518947129806381718488475379966747238236338749753915918086702351511480577999001874379504087281259470486516469109103994177338857747641429952200753791686472280946235689466190811177510601158411130189281005965865211980366886959833629365198622197058437856467198672621299088037722848785311132792608504047557771745659709796565121861701783660387280303580058615722643032693117581022623511082584775192737462799048299604296904814925970315461733503963251114806015621604906343902603731724398036820039172458182494476398061416340495875099488002240909494639074850425035010372404928739751473081724382215679424773602218555874937032489612275677334604825968646133938065594349258231093025493973275576656116817406076900155091436406007766473815031168278097362830648098727046139107671953141605488234181932542709040763844893896308956872645723920763232009987259850069918984537978657153531059342015480014111972356880299120070687082682885488193319647001504358258446505686796847133429866702454677757437925959367545261711475265668881317241010494711414776701269508015793676436801036552315699689861125825656449076394396441572515847691983214022030388655129694380243131868757554895281428650035362471519270503323198612477000832366123959113716617273993702588399163080107263554061148694054779987656808661931147126949762523889336880048578911943505577167519493056744258973208986846450341394420910438869338868582051521127777511998830047179869191279014669529491233253425632689302553663801876849033795095951958383419591988084681733031557736967488295494110902220144554360395996202530309621074749001135080206346909590830646788676486385974272725583343273721692283583224845643468155679608970567682614092165729612837945986862226233496179735854243921005711672450002945974217401781882164236704570117565555740210049199996206513261890056155240435533075122436488013990807096225605414799099436787683998916698496873780436075539505944766350167302978808246515878593988683964498358659451637885983904184354814463203284060076143407263494754097758013140475769752297098077902336635997034081642975481181246595627506238850550386237808068580867108873067099311361609408923573884795652704045103060654753238354324423267071769895868721029562961556675124566559466696361734491984069004887796401543916888956297541094096810784042058545430791455056827131998251709268265875481736626383825992770162049393223686112724397971774751118753570865554113360182300569635096489664522992612014911650571499892290028392418103780821153024094356580440636375484857751865033953964564575929950374317847851612204451922860584745837451950479121203785160889915011627257425145729625739755491939053277852362886952114519628099534718491385947347840856459286597047860977298139753647292158103264837781010887201101418319145876202148487626431109044609697791726582676198810418782497592682466216481959836337574837468477087188849214869078253223458414398058801787876221981601441933886185316545735975138263037081967343536071301413256594269946096228052727017377997787204398846283624650914009819717628262294656208392296974651906005206569959383428684962945393013141520685077330368384569534435884882956654080459182326121552965709649392224125134187689388944146098671525979482150012574423941097466898369940007080890780302628648858655260078627706287675893139255192196392174655631407177779906476199909072286002987525890694794985739942993128443308721063568526831462727973982091214355046542190464030781935275409601462892556428827631964022187887074047905967898965283554370467220812882512102639494166704767273897009865740113546177855721894563755996906111375147832693166056673844453988335699870385852533350490945132377610113822652310642307028508689689159584204787081431828564709757641331721439333108529038935672581839815308077059163039013867532889591172167037557403721312209107139303391843755719544190324893285923509059322647249948894067439447533068027170405740056319134865962643246663985086210211233183210600292906289133630329325362499192437803783681415076403647364237640446858577967052045078868756376215718984298306755022519729407846342335823840256018886573569639171144465399892703903045430575168759919427340087195272781058460949337262572952010863240154270876608059531260584013637194278781246406978652443521047571913997207882225355160388397241130730556105473128582955000030020096833649981171356903049138788339560541812986114886866065560188278952230465495165488860846883171853996148807192109803078665089899018104794950937892106599783493249816701293166448614494175929653486452336220728583767178678197412405888496649291155875433422210938992958659807451564498988712092089792478737202704673352040458651822718727253866331855318537360555166210025653061473201014619632092882232386664205395183567873366624439459634746629552478419525837771059274963729070502905918679876328136970049335708590327550855023068388143458524048359613574398462937943027717687169599952835896240904700527268005809443854122454029179123718736642929155592705685771631442279666119735153804540729378142569878811826313805654707187932555663411579637617521333450169559025020306697619440096718864624891164026381852905778903856374349279733606535055735065439267562459923218254259358016604508311923165181402681424925418607484841480285420500255947647475654968376622181326042953958065401511302735201696002207039242871522647787951699472897201063500115479847046912126471506691184165689825356247925222697808186965302545789411333418310595508407297350849304128523034489183979872896573553750159294066684156651212219909845692093110970592466758248492700334848616360726393232215111200081570650280265188399435326344448886120669898068977748273040729335584645327049696670561189023087514696803194257409173760227763968812440043344935233277467238402711351309279284255295756299416303715823641441114665945945137012380834736830337215427391659378876748375922219509056207333097368017920798084383772569582825884443960977037396288125087354779701421489646466206898184833762637193216738981725172769789804506633935767661116765571408722007287381847654261604617250719461668351690970377390550394896455073374293026053050882863942790592968144451216590457126132788488564336776478714528940437995342889997276051172546281503640198974386937105417407175525792499476991018826102061695795614933901333297354240714844966495353765575209736819467524971065850412988572446851457435080353065416572859945492882458383512964192336528702114922340969430595646534405193585650254916486063154343381282271624355300236592935664621737895209278008645126281577130155929288022292221475653409605347751268649804929300865811548552876119859683955083165134989150847576024353753300040431737922601438407558216331316162144015065623247598466321844581943895873491103474175625223730463316390712183014422973625681891312583123179520591322677596602279427977751808974706583539694025131043934311338946659682529670738770548130633928136247444780980386648779318216352535971694123549802668320726811615674158502325005222021531227518299401732751626056631871792337794793967518738458959322102278505064076284083817420879936840424284595060119318862811050651202954466065225972960895769639790140414139981695193617169594384124523316723897752925637920719396278896212075101413228979030903589980936917876867079702700480500370676889136743028940468068801628462505416012691282235165778273191966183008272616571706116640408633312320135641624421390122726510240629324625573890239874691207218835378927903646267001206803448136597866064067955539232523847347042059958753098900430011618123595536875936649577648865937425366430304185491144238092164468741283077581988673443349244781021774536779367552963577883850297183537436308433202983622418807861709023662676880269427288267985802534141852343585083444452206372812468972313936944493291969801165710700331459583630988769684538790089560873141445939887618056420836762042599485521987402341893635100554648116647192280655911372939075392765105971270182822644084002685993437378439086039614552568683927805094392701305572746312426162374370063678185741584266053094576146026962282015207222452140935339638351615905878912599443691551114989917022420896065637225316675728512086859528370997898642366703213492276946348555323924967316089100977140684548775070288444513689657614580144920410282155795292633648163171054407749172657569582451769875967380558510297341582529506996890497937241898293549478255573471510495683080137200185244778828671307793168452664939395818531151327964564619178069773335894346975491808666494866168864119345275404183042725286111730370637351088437267429739300914428942866146278579679525589985089248015290417690597151574346822656469036646326981957483763939216536468892024983386275770862196550473308003698118287050366698795410620071854551594796905689109956665181051854556678049512341057137090380495298894325399783340097657645130651009882691999845511541899133490890083853666882261693230585773994448857057464246981379414547829691235322376035580829822906457805717596466681557625581160365559343335406260602668674960030411794201590352900447472906343976432947752460002036944836185355780936628796346259031685666682306634797162961512121440272444202125369722480432181945236264059168743073747317539239585526368281865318241608169257572607940883490129173458679409717454504897940752787540428368630108047937731053077178575972709299547083304616115324225602960920882669955659328686064823776961335360610361245383189530092878662965046249898416942203390417437147039689247675916869749497852813155371036628455605322697998789106390929001691930719086268500311984595214375211459503631634303933858515798938605038461237244591270786534746223602207418659458305887819499625519861849446615451806818295954080814006950609910475648257261896194752453240844852607441780342202370108100792421323189854092129105156102371715850726744672442343373238141208814927793998621426121207622880374536812592060627108592076755321975149549855555240719691538720236973257172361251250544179162832642750935647934164281337179117603940735853704103402693216525927964060804425049157824267932106636263746179667770879396798969960654151745859577343534075172508966600297531279704242618690489515248109234913113672323446346567453601018799767359349429284087621938473011690057387183434799222795521749873097627217648999799964460342572377534442621836269143638069932799728870342664245565595458667702712241913343074283104589723511034129087113438815027770041611138035642936653503066092394191731521459340185480099712291397301306227852016156404481945509023526587364861599131542955829045067775601706294813651440818248452451222373080472242498967735206779619647144637971128847772414252435749462263893421824324076432203183496436942897625404796465998907011246238369015124293981363323322117143756927929446420528991334681609750183015196980998174072944449113605894454445566396208784237831843303700449279625610735861633929254204638248123228851688202103553166643020973037129399318667805878600714949867980357687085526957006403774663193607715510057032862566621147688787147707368153622857294615219504974778535469189267893690919029797693866959054436104460522714344873826453983451985409860666600408807219129296216671596387364343108682313491258419945849082134670685518653878659073812700741062353639759688308412190616474008717487579058193680500555584094278877217013719860490342195880953064140703118934206859611865211850790632840401044150479536851406397479763958122648610970305610026932887016604581689275941827480888287072225258015369123546185361121424997335034460663466103872589636326776935796300796262079370568277177040236214802193559370190979456762671224030621479236835035417623539798666294616392471194663269629502426114402645205116904617997470015444126215402782095551340788925673997398109609235760340263913330250285520794588470292110259413599560232287740232926361656566127083933680600863544967717241419678937684720444243056463604525714291220317960455509494811675837239229819567879053875163892587625247034351729111811232158283817535461102368613962392099322985901006798647950757968521383466189226461323613691476048788914672779915369577523186732552280773237153972093663738663287476116092034813470129104515291043423410136567115020509820429511516457826960146849416892368186859301809442331925097466539072045368402580930078224750821196019485984576005854917714419940094609200900898839536904475782836561441733953553842455999708839063678492404207515535578498726903096567293179141667894308892286687290209557994288203717934243256576331947688398654457402576232314735717094138839836370516107532482189599768310268401495736552248517867305595270349245275571900460471580940922257160599810624328391760952694001629192513443279220113347485734103767774179237103288547706964653376641044286119752180608164489559714101726205026843292552503432499162755730377404261619470874384920617306423988285369894454034898345826091716761216812911064244245919451676407482093536830691846940714689031708429078935725270938307247011785015031221117512540162237525170793231693143069454092716337092282071855478293554671945174663057227804810044174185886218279260960471664623757946851752819927765971905475492805188766513234802493551191324795673694457234240430213133860330025056902381546425629044942514167022824729295667545329296081954816324240191274028497068097822597257410869772403482337411662259227812588359679726114871794113856512999689289198797601076845909563860870401352595288166671174524246418150013818510744311341951344384818900168576775131218545147325595072066622254774522470225027085658979197569162967142402856804406601963510180828106094092450673930128614975467305882434488994075540791864177425396007294389638976638375753098409876232590899761966575732108044302356732254009976575085199478686707859849040603692265169105101679086838483822729178534250089566367821230248492071381642754286746160968111077130818568760042186382325080729323562340012837340622404754794301338870069914198572311681182895581321605910503663845956464129568718671363832722902761346626446308686371793185792373869641170768780741045728959007603730013537089131292451946957890958200650851413225927666820674001139441414283701755724738133465950896738521601469671435455715067688188352645532135248708537057143897757250990126343176094472112806668610602107229149951837126372376287962930242078433220796737980338977831310380118939465623101703642095113397479075883047528337888161750472929278672333840460599263581895661667443111403640921062244260703107336658763855806200900947160058841996212266853976052124606115134799089674703524022352614912433422141661999783010028882662644850722008516062448555493065432341218308092548457815295932304686644222818770113695698568396612323225625926723781770969920470963383423491638284633354563977135971932368447954721963143222490015207755072572752066211454895725623115479771190435155860112970001680778212985162215968041842362512876676068650787672120352128270044563507895051150730033031882764196541283949718740084121514441961396440279684911001454263131922387744575121226483993230828956135605486342435701196847318169249730148785275597962851991193121029176286881593740610498486172707320817386323746153568337138102206320003279224573896910857011995337664247066321697422174050636926734370091947400834196368176906110596773295607491841348656386614463846367004448280655072270869986619869630311487532220091049612991484252753918188376147290787495914916514619080537463585504164506983813341696781479117883566127745200567559922492425399669415206988356741064440910034091446683191276447297084555467313772220760633913855797863872049400355694867515290605283104883191745882924642805742630454924492460397853336225195134329033303718974039431918867438939640821929682781694369597918549011396854772782124841014788573777204814842319144589765753329627401538434079628298615235651046816913437949384027693232292455425553450232280968826914499624934875454168490018901807924279247691813390722505946299732324274588910894703743593327798813463964939794578404818336556908451867400927461296805374104651728881516492549304401291572276361313597593392386722316663756785193722869416804268039567123146393493664644482966275714208751925421262592049737427645123305565852831873654745276699817500041171506513100332475553091526965102557235585431835024117298401679126842540060490339056504785738326064489158113084116312503102698119311653326821166787416458987553940704390323390016808563180652404664376075967425406537270288497290595317505480551848541689920946877082814513466108190426698038863303093978615599476774420311595390955736245928968101278020201348915834365133938703055449146537187520091893346611119521962612271862443704284339826617643375857725853952437256651978554536766218863222437539938030684921224768653263473478726773089585687707257897209576061854673648090123854592373272849891570118190019309891590900055134975110043923014352346710110863990806399223277333692719850185477272698141631804835390003791914555987376759935420117164804571690967182512803328183826481788378911333317807342600900786321214639324219388302798995914331400249665583714930356025129543599385575890405640339000438961523861467256485082428097909412574608072818736225170652880363955733965632328868659411365096748019761368938303173539572803440995860818328058586504283891274527442547456167304408307084968426549650528440084426532439195250838044888961018837019442877899707280898374713477743962471135780806069731075450863805442898387382015798851519447621311701206817290983102367473237329071321290677598002751954887572697426687136885895077077575734759345205692253516124977829348289621469910593865530921545383957791195346362934656940427973493327462902711641658411062772907984029023744827696685417056355673218724820089010641785687832274307002924630827991036340502170949212193314851110645523971364154965867883484671691993587082756957855073591300322668016537691967175136669583898948033198373932025660567215834196876713697982642560460278879809537242335789787350316918014050604281057989434433467856937370146467479956010304806413625982927235652564442866394458973800712204750670446334698909967343909875991471067045729856412666731528038939354679773758890319149747321945519317554469140705738670225317597238049022146912320772408644566891645813583002479192718879242662414329027601143683589366314628762869035563945977311961641163407663860478084184936138295658498288456995491993516688897039294055498946339825316886410578602940524398741639574813580874411384197518982206630315221435507595040838457723484760198688873720571548691986573114846698471476024468019324147596888833725970421924058003495357641789827108497777629299968930609218926360602619552684477136028781034232485153612462208813529626127041867195632259919886517175599769828954050481432482095844943410788432931033656307618811308635269341612224831126572204276673392300711102781260505357399091316728643763769990493028359135761147985642340278858525556134206267291554790568910160514096087549614244959418519790814798373921750419807211462358067847155295612400073720386491709971982625857342561210145096982304832928612984828426397190324771343786575252446242651673217542432755380323227167499546033594984201443036757926697639895431413788263695825425616856257289247957029642380577763274592565712498784342869667887946977422955757698904514797000683300977013284014336132607138864087470880276490244177034842233766640243784159235265266165663803300282416071914845590925824905623723341038318811417118929201144200976296224037167232797592428327378319504825504618845569576743846028530436998444509118685626365651619382838747239917308769922278635264804694510919888830222641794003539548097742712221852654898038437985997856403620827188162693628062210426003501956342652409683644789294706008333952979952170403675638279706750493715141499912758843096940400221717140266050635718653957548923855022583197535136657458817962376910371133630114475413040132751936675520970316684830303883772244132580499083490617122419712035849715378715107835937493285451887273821188374763643282730454647605733388429809485251381079212365794694918619783644239276125822384123545401165509514915936737152789169744004790178479962130701567968932512887038723581372085485595993512183102855189756781520117129606035510938680994604741616722814673700909644570684897782711510409488303138037375887881152788670006196448817205321496491391000419450814500487213627312924071793073921107248210836175272566003470921609763451676778486299481943089886850799098837726972096042334522800296929455978687784298914964402236641799570396801256576419105261300532454184550299383317027547025458481259255456063306193213831262974897474019427728499743121306152912359012941044898420307390575896371522183422150005834908644898695216561531714499175472198819368675012917235004043856841809131402729207278513330965881110166555807313287427000960866046093628210526499408224823742143528388488485263270589279222431757850756406946629160788475631518629677200231279042277822678691174880073831093975053300958979944729404256128463517207180618256495888799867199946716647704325829468185522646789784757775521350408533951591261084030657430438411200163581640803161644146733242522748732333798527898902885992989160825085466258507204721653938497737516797385091138356844480645716285176640859973674859720259922101337960341972462932762172069240586641463707726001277169593080559948709105965104142941600648182948336126415212824435213995404456113595651267459037248207770703940199762423756382733313546114085769388693857367308532276018572249922800163186737558418635426910939325835718687300300742049908223501977393441562443298625329337628246849603433900284418692117196345230852907804036737858486142856239769187474558926383034760959719983690895387003733403770718354161943773272455820772064636532127275398855540529293813521028679535417433811790805119177157462213842703482502240973738226988007508988794251169743985023113871630175426398749320206911925420835364575183674246823420872880283948315187937701771443149664015212360487311016589291902696236699345605926204042460906970810315253736658131916040171695070660532636451545831428368794417291172380438866275489897193980736007103931252729098160601006833642120491878432224443271459389678542595530912730628660202827363630301293914677992851372568980567119548260501225381623722292639797773439384075275155892373171519086632818721155702826997365143480193059937144992094037594811843886568403714382451061136404130180597227285980379842609332372628082684705554607265940337271434231503434202612796800270835254735907378222893097682291334460289444184855330681105723475983225778684575991245670897105316567651778215538288034524974343168935255041033486748758777271850865727114800505573217597718968061255430955381857291330298284403792443307906533826661591507939454070516037425542719091533589298633781049420049236113458930244845056544917961453448218823956855166119721465650687157403535507501733308551766802734973006867662335094086601805646252595462554146485402744811400971101650099282228957489492113182938443801069076603174530610557678408054003931590456216501641423673223661676672370826589093246623468184337817908697868544103149134692335333470552516489448988481739213593767179483462602631529428243218087222304900961270188692924672305193244759650722543341406788031611658384570553443348388225389407958962458863404108792091945378457113368158022768754438897078189070705343274604608413024963408677655123664679427287228091961817159961632509735169729871712808798278784499161953952039100184039637733374968006932333308650830650149485441442307582230306860775897180596293914456849996928361581172202484882714322100235388326557866484219993797541586562424369386801729170355242795344193694943635255805265454359469462550310662720101174196583949211955069617385659650030110071555228675635088552304786442127076618927875081064242170150596946070597711972894969888197638525073818155723322225194417746307267124186223595060787760160798383609537727714994677988635624893399710050496968197614122769051747626862925004866063186285366841553299958815008716370001546656420890974796477598159996673030463746611831813844981428797563668163152459885812299198333425245635032496236980243911390464726069393207278623360800985636368841493110459040396832700427315434457685857828113637969305503784461574495022392519103761656750223823329975388219379843333105829094897073297251649117027362631258955571991704972130638186386483004428275407728580117156135402422399913519236261884820491957544383978132325114888535566998680479374533241595605128718591794453306436221387719585060510162361285761597358443747251418352235055590640081083549728167183749306564293809444891125912968112528887139265409674497212262385122498302632401666965322612637011684349664988439087906582637005441688538912590089599174755020822543664027807322028592591464990191163532065381693157718011104983252735515067533980811086827404330897314652900160817706479492439373528693003109313073112955112956550036252525618325077151747834121093020856110130682723195286704269254242500564706287724424937260621923890300393803512274908587904773239776236886652367124397226142197834455366190117681237542759699632920062637327762541706153863743312310302787092210451159114979815528045246699835828302143477734678190385556993962662791366768093509039492400321399180380967305581735685320039235907916196859465461311527293183457401930843503253821051380349856570334932709825497283486586819025829288832237036025198570379464121567304288069395685119187479898006591485864874867796222253354757071891479871122280920749908867823337841635829449560639188844738859508706380743713436556367515232991537827772799311300768061064313469642885400271733602329600196668913800107292074302682589702998665311899375552411120898157880837268823951486682662479425983890451720035714449996955330143144123970500336834230589877709952730698610191716721602281800927633312321537010265060925155510410806191311035537274206129706292268586635085517588681353122544089134413475827442250169520432632362517107817342608657125833840094421965759396253492323340434591500192602766027203562085254045436790896257362350383390590701933300496088038074994400183415209641741475085120199883057657155170829471691726111063130724238501414806442686304738570216276086042638456370155713695198944209131683171831542239311765168061092796523243580795222882970788291340901254474708949296982025287464025461528523322019451157608750056294106047618934773925064708427695535765868791414329580082856221422159032989495970788878817508103847461239972282175485810919132412590989891498228126201603215692622295645762802779607818494166792312149601881965535756044847632244988989137764878176714979010017196162368434040121513985509106003797746831162571181138204589986743332583987819699072425122638703270451926972974173422605263598908515259884385302414435035344457771939287411484106115443603621174651441770465421253926640602209907907586899775395725417263654874063799561984073466715643278887088670584529038016009055416521435020495858556427273406203081272478346802713911198750651592984782367947046741203772614672253436833114562373428199030081268681644259754877292630836096308052724635830120039425415768192245143337127032609670105334693041820911289602564607770978251937571851758696193854817584530509626776632555623736718200956553037984942746105123084281753052058115988847167451754822493211040968526260885181235415872091135449456480602726422669889413245499185845667273503517760404193183484218222307921610468657716857635018998955652445622103870054129665255273753993170178134202834786698059801143122579790051256058402971689432834083541771573631027406121020633668298361395176515257195907748711358322043418409953370187813181682060982917089693235558709046181867614579330865663891919044487868202593826778755812788625422144305480205150672374804478813622316351695551123771600688658341266664198723379112783099321985121686028803890702835202749487831467349439732062687821506831496841351389581860382551114651543792342402322737789579910046315150842413529531571502493466167988447046452927408221426549532511668692163318940079887080101999806490047211617870409170245642322877596598436060176623491175451470734976773680882719231633063474338489012464254858166833493232150771292508644482230156524349185789164071961921418732157710739996503978185164608804789100329836852448751370194962762679120699516791868508393894245182579848584946453119367074834725434445344807404772375115315926729667652357823133480894783620375272754296802672630340952825249071897877241040534199018325410021162908593671267874085543887602319445381735355296316797524985508696831778072046408788478683765487656345807472249973068838450115044827538030825677956682111470559251494473735384880282884342906921040846815231608433572442601677006197452371034505441094620946718663850854179646616055764399986374760110048589327190512891551061539473533336531762826289322472865788341853603020458687070848827977062048999002857242933132432037013589295082631666806338989258570597822764646413783630701771680727975823315776764816636424042982198648094607872363889833795950043142814240497463599242690050192704829108540599594720385338018209217272946470425791560051612543991312437064510331794973582636345886302206979872238752427634315618823974974266854356675687124811369873556172730883147388877563479670890316564458301429349343117864482033254974386312868062424430036129771201766952928528698334493485056217260275605953491476787354970751389768168868531309810473330382092862837322701549337104940524743561847808297243565885991208283359630959086399567104085237225523048654612363501438002404384821979406360642464657704567437542877066916497200288853897357562264565874416561900623231254039909990885809470175817816455984813696104798352557781408865430044391189711776107870221638355602383111726842632731912906050964870752360975884951289265758185386372281475275937516096245936027630341386132105348172431381190738655439490073901394453045106258796572882013647720474989250782923773109905368778500442572601887354563971347165961897213376635363877284827066553280338404656793391217982306976418455855883316201931878189116468619957547890060230586014717970405829776706991502545736304748888424392756007627235632710168154849122866670171275152838679783169172555699730696552058600936155773037542105664177170086628028202194450217436270117547153228258812582757875255476051995246888119765615002248024784564428077875124864294012194308515333859122161787047741202439647835678662203469180035574524523278238517652950420949048154765770689565139032195882725035094146876740819967137533928036806233951469270880181771259796565315367739957542856939360544817676598814169010886543169867314465357996031047119397259004103586472627866580202498963643808052569716883783264306974985961605228459996886875444914823813804218296023346214674917970200661191045263046395478195720578746022726732709179121915809439821303576706341350698805221946206232789450516483090595596655655786572847131847143796573651321957594386732998599299544495050164964410523644569727349137428660989961587748387927885551141296348596062080847384794790496973817748850865901110752872486099726275208611067399918816420479749799311119478213286720824840550372694870712099056512621466405023889948445816327581014332281837662717620466169310946801372145974208990403180747832837808038452612513509881051766181354034013921436934636711231640462666072809877176183168994916663840905278998603692644513426676224157322699994907496932415456771222816527337875549278305732362965985928891335618694603167989923266832467808732260552409706518563198386069719784578231215996686002917633578395118354251674930343031712538946321418604066012536905104434622004143810933082297981128024769468065914286528364435715484250358662915850792217420381583817578036395643988100914477360334305141950289063018748867165114922548949458026328802288561970782418190324045059651008926217413385637041857894021308677445289926442941856484439611126315602661584525237159204064873867202155808188271516903056546760216438148660406475418622751302182664917160825666417320116606290113734698942043418498158069770110791097838745826755796881696889953250888849646474892261675003509081254503431907806270584020681841990048713675375632474284918771456065874778384950361835225892437381600537456066928129994146331938135793813221085023428026105293237891900144943716867959238305298257723398256916572534030146918653856133565618240437819311274986229265771466903273227480297226138998291626375204609906040636356757475015381646739770078325118774657869399066725336813042370908498339585172559197191297230901115783881711253842395509216336826603943372680228294326104463416017921535066861424959478225060632737040134395709937352268188658688744156141564248615266498389774411549583908442461461763367094326788959282483449083565183309280085451740451840761843064716807737281052920225697966733006920423566593215673998099271277066947149111609986565090452540314835282534065419503904711387143538566796493586981536884129205438146532622699138867016303350237891150494328620401047002929344424208832007390503405085630689221525765021158271961789497750494293422467417241675149687798972554675669646640329842843065349231773468151185456243471219483513177567987074231125616183710206132117466407668491895042420716597545623002498778097955906828525401483309872747209357459794017001388701706220190989829601335832056603936172211641147936541558196523390709649678179222558274694893453395533560228105223901043068015368775870059868535052113465991042682913469456099692388979284810075692118608604440306342843237375566629508675223667429471615904200951595320769433706398493328322567398988483040027806332536527770887396474021839370457743409917427231759248241845691875401881968316402739548590895404805159659559971043475690251055495380085244312899889805742674245746958027744272777887312807326327110851695235334772926353788481045605140412476581558650799931221711211337259390872646497506268111744123276852693838022670838230601204341639684740266806615308293795443846364732408985641091834314420391432051321621163790914841799894767216280600460806353243001972791140966935769955619895091720960640732982686245320914707099283310538495692926347279967526204147193147829644440194508620658524373980072372450333926408772707099267406079374829688943898403773559181997721692500503187721743674923352320922813792152047698763106104426070594650373208562587473661430054304481294469347336853059946203443358134670249099749978315657806998791173251956713566202696865346150629944426480565920791262432507020811172972231513296021066980022361614235835215035058479067320439147276868409795168384215663227672565031686021529842060128695843054653143881824019923925998429397518853300960696435679901027289832739979234001296721636386687826019056924088376115292067292419466001655733188430264530982681107405884340525074608470543178994445497330739139597374640361171345901199807934979726719199146403817086087512050761025006724067960796605420349621911544523083567751578665234435301741457460754134116058706990835812507600227997100214111543345557307354672985343970373604052690574463548110862815140609445309271681970609851322304885892317730482980070627953077320138593557859621321073509334886139283080697640126540741826933433814716192092852938061226555009799713894336652093993718015557128624190427702346149003688160233430263382677155580711363820144921601298933834367969237400344295080098732439300844142433444585955306420499146345511837947080444786994423748058575131780737549330933673081539971069380168256589411581204447428904469928060671398471295623189553322858212375275541917433209872711272678035179550350285123422906440414312425579263245018382834145693322004114629125074262365285155629688435940251313666798645419241376541113125272475783731782911973003383717865492683342636140908842124801966829819160664568502245680436128491903138785946273604737510769123268498816037121281041476562891947911969673510537367849470537006985712981966588317260821826318943657812277365762368933410997966588374823682613322802191663090159959768817539067164508573721720549501870596489720301599382841068599750271964058409891658117584534729750021827092012235001542544499791453233767258096093000489592003705586131102677685543648720442492242235214589723013136279451092796684438823866592737032144056850045248638339729896864972106544298235306979594707253258240945219143829209161592625114376628416535279574070614438500316792609000167961923249688745986217810662766570273567197731328628511070399420546184424861465638356616049786209077901570455503347841190907028059775632264146724713161557780630045441907668953431817764780148559192191861145898760757896869427049931700922952915870973864316136945736336672110187792266422623162316492926720312989742566166313250248306103158352102412105914658017404121525873924568689758686672461619993721418372994268794331482971409085082097769128230505994461899856522926901524367218557321068041119671940846679807357893406450427038642309559157406625884913022366344848489283236511051445183287907130587853898566636291548067972579345214933554922704652703594921465562029956489300777319635526193758475258809060189864455527902365077421378403199224670130765050759428230719238571803677609102736115896758597406356968339649151595448164318082664876616297979703829780319827677200840279354025042181277569097787170047767724363587544551285393276828500687836937412837066445688923578887692972665795038175913637536430054904851909137223559263954491956650566482912479018261000263524763799199212204367729857049683214201364496000817154157134761439539224053011157309791093124965938331084843633848181559010299400775987097023446682364919072803373069568355920946540420469186448130111856100597232050601562878244591209298504685086758976882770907487653092858804858501119966789502467918465079501690067092713609099784906529292365855246391164147533253130833010164310374156354857268821182960257191908345468787006453076198947442991406412595105371131472668300943971414704709859061591366051255395661609154648875946527558053787200688144361137868488768157697641897198884261165860958384023532652387906463900704507103181561867577151936791483541337425861718130793595845733282599903900731575772146135556278760044148871184981961206442246054420758490542839283663348629696410780775020037092085865957865318472429000589368363548310907388198264363190913975922742538648308774338500311091901705427582528934381374307604791163875236507857280328990259542428266158699582304227356391143778329185721478210423819125228466382608848632917679265243212532257394073663382223239880755339898841708849735371952826039528727312134241819299770964804857032514308012500265445305009507343458349098883592368579093471166534656447217830325042650645103657943899541638592773433594605371940519542267641699385350846844823845660894661519548953687918979280063984910519573344453091338346634484493699983623351682514010286536828801137635295988274736400784286579860883127247944531859359231992193638046333547412302915825837416868961334114031568599708232321501170736359700336321891123584528957102790403087079523202619694912870066874050455644902232455239258043416720587407262151156337362226077203572340037009109551558247427706901035400163872624329192234861466024326793386197817519745288363054587255208518720911823886088124066543355939977738722570654243487533370002527764278210123176451280791777241489538976701570056393744596531757088421628593876459602408270314906001393530898717432527819372805810040375624293402419902955273133345968070217808726591967062365789604868607183088048628929356621952349972604072501418655079392455558815517662594676806444997146581098145171261039150395220195334280345390504929168832808958115375928345773316418949319117850932659632563903343693001416236083885043584223973384184539864650205127085138525326437364274221170527659485181877640006619075732064550148599764853907998447415585452173712922400511655043322996180221121311313418594550075627742678685023782588739655562259270284366880931294864843990528608039355626028320927003525648436188060260779466875225785825521543670711534204469652419980255843148884327670063282889864638847911254588136125129001293928652023424797365132781520766444447437300773825349990272296279256937476651423832130991305924487231116330065681875470803944445117907895272339393519259666639121125545519046368549149647341311755871805350274559272670896631934269178652862243668889090608378800089024295736697584833668808687145995650787344246638451305459720542457674177276250718912487701479865315915723642366711121332257660020962833793876498502652781679857326516855864657245486643624147563384014505232045184977441619429357057579884118969464812698645996352283047842027046207921226707265105449061224855243475462850037108917879971717143245787215107367096975189914688870321332726214766990418550351420087133759451952583885957626204374816992610515329250707306519400267156018726449039347124948060394752635347112095794224366497264013738619512455445846129453515134208521507542791122847527110813627836198920473077549362393610369299743403704232487201185945018006153397042992505138433744775345082391404690344036141854790693724072632636501741873750626727158953766241800661471060824614346517203848868280647871931778661913001262953420683751717345275186954640312852779553799218375651059306985927623405748338673064837451424101881076323416603991980915259188863541336973642722210738653537118137775144710597245881275379694244369893398762239586574465943053600828462442524387081309449226018945670796121959956469253109319885024251151074574851982729908997108252069235604585313317681213506437670912485131906466825063015878982431227335054639724450096882374088818222851698565849871239213692732400772549223500095893598356155186098308794010313534347042862296981702335466512404963842525276238048443718281460593322575718224339393408822092060084477382328376853318117474723298058801192850020985661373199607908828892778677442366762467778746109071203338531686843495876109476606889016654226545727013869291830296376788769782425823176124666504780558050876790813240022231820902141414914082060344905280700416959698992166776731960314749556017380509501339877717304917173305715200820769122616130479559142146030195096814519673424917513090094030736004375015373818844985546917807733150361375581919826748461826736402626212909493615564204949068312190827805268355081648411078649335317961832097954627664527397104503433126387852021098810759363882683912394314316497272831671685888309111644718874925817453091957135342657533943961521412914668174718424491068895665565043714250352149509905592438314993235174216526804102471785498195452769273849544434910578418396190283980281443555161761273850723620709949834655364551200196245814224485713743806266724465903819270181174471311247359527804544247888511331049191784905056831657705502527323796648884628623401227338285433738469794208853183647274576299712281800050964380056261064140433521041892565623528923321722045810701523979808459909155467322360630114405265684069491641220640746425213413561221655059690679925351977625078900980172836419203959192968352023475042078173799390827313607113607778460413976836989885398928376883379765493223651165610324200287478078776681520169552676998746792911524788686274713711541681879700695295196903028571747665365121275854390299344896961196735802612752508855441684734723096700639856556194704495668468321473097407469717667894385754119369610552028637452342309186080302422263240506374894138320387995102135447910827296907042823727035952321763414739398073388578744103723257047909764541487452925446665610823486030349996202908927649992171169190010971660966739241805703187976456973595774446417254737759263979364389210303146996785521858505463167096933496269370438377232848089055177353342687103574896249578787172591644572387646926399043738671595734498475564484974485925224184093679678795390528590575557495473792851531499514348671999426779368495092117268557572621076144528442704714960247166800809148255402247158682335012722758153267226275519396345469035060628068376075239463298838505261924741746758197179491396447984932669475052375343487323184956751582863322159506969374731685486553497481085985890495550764037536937001296808294349748308540236188823183453735350255334727044920299323720390074915426133030129440605906438602719380342115512539994890670080301289338022305784163180180529641875193637389317148209177912405222810740716867936212979890001060477700544285103673094479759571724038109690211918730825447140853503038174251243468132359811322196279092279360892838791621768622200526551489548802238626944233543276282134106718974298842551041503835004739554421818992471203251655316090066431324305218765685250309165858918687189578042297463157983004175452976907878306241108405417893397358572666655218060954093354668808997795519449391214755296973387214587844729587299740621407584267677095034346030368970333836474482518583744992679892447938291957291373585994530426474806108410618721553992039174555503705746845713391841510813302890825563716564892685765065427338786292674304323905862835428234471976310862852036212610165561717908208377263164929850931339591173935456527559868311288297932808446164438912435365241543398736686594879898051163453023509499170806559172464149458696524841232050050812206117881931170284950694801300579795072192327848835078860365720941956807855585487611731411433918112804439590764363247655126174945654262071463429092561625215900012491179548209821529361657742256128451072101651037721187874645481437225873223489594987416098847783152469565466900335382938709310464284535058624084039796978030343151334471017059395328708471416713481480186099050949433915827024039236516480513724831452454904334212918695281108365383611077116942416446168208236451236306916586349493070417780626505061579649137419515642490034685841210270269325270868096571800969842717423458169865685148680665362691165742667385427516841465887491096169109068345882028293538897834613793472982911202092198059603516791625571201475014085925376514170027133188368189476018717970282358386010831374729002752416673353327042802676946356563891896673035662845695918074520247892062227700616374012544187483015845505557116147023758602079676372290387530747589818817968491000774043245952504630131206942518042714426226937552619863285284797140578699858943814053410889146355775183182079490456534326138650174835242159978946898908861476835200018356804046500505125722844107212579782084187791662084558582863077508835000417655068537718264093848043871313083415224936678190740604289449453956512739753694785047747329830185093781615496872855732441532671760563783841077319511076576126957101669536752356063891726848320342859137811225810497089577725439988620250452541200763627492078985690230912671564967982725326464029157668165488985807026091743531168034129912615141894373523395722759621726441533145923578465618921045942191368179248605508746320211302060039892972627827976595570110977912108414822355970554529215979331726991777776287323974212543777741037055883656032670237656246460027944026777216734391102862441993068941543083175894904987503546012776716574284475605414010324670983358554686643306256825158245871065527565629831364837559672070461954424709872242493567682184810048469374147954884232880514210185633925422593477802599972443851418537498811080944714974575416674222704618145295661929183690566951112207657975478785579721494665171117502858233469196462585374712590598437337238607445990278874423322557292881580752881423113532636938704262075124940117562514372007911409505912394637653027273496621086170873892869950924999486219305757786114107820694922798504140864033034264783564764254168430733610670173074479949709956616612506269404087164873109366585293853858128131135090195135374297022011412446293425364852968675082874096588968552160148847604504187821511754735567679013441761778071964280032897951466253114359629565366935430675504497564508060018599334017220484448488134865623334363545228607962420394375009625974700983126651755796911554563587746091288994621810363415860729814235974394756635975375151497367092925089010035991506401227058502385102212114449040049667010475883514345039099820654688114621844343845811246772768206868787916962439567055675790706705625544252609640624905420205597525587663076590201249338750322700590084635002284119783504482927774284352404885601870020232251062774884491176555148440652318197184988914309935702556334037947632566780041931827717944541774120419482989335123844274829048984847153727046204442554502706387534265692101339415639678049805876367864286675030509733919698784586810029613972445191253599451162431824028978808247316783477941026661970340443199319399815062002662017321525906943701209645802014807171987294643137744210291477734519975863361953796555583204541808732495959609414743969663541395030737918118526765419914958724689786054286471833936143336293648080475555016299680004489531703237676512226481162351881298712355990060069446625365837102038441645360466142431047760632534162366165681184272137228165409354623870691173733759409877015592343876851189599274746750514582315579329009212772170780249270778459754720524795940108171127143398722012517856593765654057547164139117214640034615737354354937079140886042257702147024273504565609821098839377302450525609268915644367445821538814595892184224224493867226143499641986896218018210594147261824892420330988736616265110374921954867349095486762193277100796272787862498251014145030076943399824727742108603744222652556045197970438922953362642508941171840590439477125818773918262528433202303535644420573243680641249734714639697420626690407637352507302153445411988071869818843577660017795742412893464664313115678016786248043218446684887068978398136823105759634434042104039134728432038689651833857703974991463411347143950164063970354060398385738192896586313462261233425511423353986983409638713413972192896188041018431711608116966327139638996779220980811198363521084261459838641602473450524904407398832537576050761326451643133382194159050021949921401359432213783728108452573823974846096678853668632820779892356325165391394784549564733913993330300613682584532848893234804339555090750116810032819187344998007006181736163661978399075824933793491944848426409049354003811845814017395216724742835530703432253843235853638904864438718043007283980482771937770056155013298375276422950716362666293711872118769138693645457425195506334855020194095060955542352933083349277410818045717779614250232348614967987984689730581661827657140207486904156375449268299929223872609078840295099609957888137829600639216615301384121070214406460101236528462048266516376166339377759436371711783824937108658032256075545861924837047422435260801268202800713647363801166397857702880379254034132410368497597935513018733945409308710236341569914985180546482028533272326406871739292540265367568048711135266084329307029929419084426785377638712004363887909211550035584240037636634626333830433272897712804655697750339376385172143046056931320344062088319520288376393001754262072208553094395006776287461376719378241123185659187571624737174167151695953719765989212771605197172545014433656909854215011723244328398046249753262587883831994345175634877947544463663137121583913925677503662031581245750812624725570938063601023303577237152089529745796369179792578617231192114095357119224129522078475202712686333609552305930644253769034499798711805701346037712777317184721399648168901449804007009783179309577697651389802830989497748467878220939965248120089755223030800183278371300891955679370116006488333104672375502521973466206035666791561440409083627568735511255720618700608162731650868127362754647006940419450741681252320436737517925828741529662392738755654383364096649883504197966715166365350366656735606556232744399218244852252852460334157989136698022084326772700923174588695640201915011328379543693581670343332201942665294766586658585940602653299295676017129001838252198934672603467621842442850004830853530957456986638396964677668139095374942185561319616179944874805406194863468930909330361278277283963887776512993496551707671930455699132952282484102275351925768271742020113863456246240015368384767767862075619206186543784912229577343511405375677858005095363309099746331618820955003560794986546444523477453496489765420171472513321934822592343250379409261380852794923778812410670509022495599631723416867432660509509269349639272660581638325428194931323932935787148041476519092842880426002072515979072276749603436984435520615117321284917799185130469227287065664930738005380272499506404166380561856328299840237083593976679951403911766875750499436376987625116157239742393258050611544057654306110391974512288051793683037618017624025504194572938713909795689233300956319576531044234667950670165349128380272044011272925296396142687131231249583526786176624189910410628704336114601850792199792139950000073957188473979975728180064250450868561369276307548897544927012774960984778831610005907946719862901067328466822099541609321978923088495303258691793418771742056524658150078206053091518866359959898417589896793986150853027902783382508110701180430577458603563249495711597979670615799194668530717999306410390948371939217574337974961292672893259905470072378306142150491332448713203282065571403362841176689137754584377615502921158583072521261790137309325992129490095531074664520746718836898986694548643613381879755935868895190299254535914766990772819988187596343117505830999974495972787023445436114677431423537061073700710808872274103493112764577622563171908321417630965926894274778921468012392709501213401302334711191058090321258396701805867618566487636846062648884341007047624034796915252723086165885767833623105337171642901658255269819096604553680018372417983066261827382534001164984613525681358730093807391123972724293373824707763886822673766720620891068182283166053111813031349310589295259273789964182176976623907507015466081801714480334040584446777304385026466890531186632323335337617622508237421913603751515131638708600829390212832722254306190165139644512754452214084239229686316529653511170788431399726613985126542191974174944484122421406339840670491078126056151011435729438868169102057604758024440490241209745719545387392858395389592875095199019708535877407943987456990628727084406860194460056945836587719833306387417306031097072596173128389878635912111070488731426502020172988422119077687581459670959701921672232733355801237006156700428391660413644871650712395671635451345839953911872323074446391313700376862568415247255133518414131706337897974241840085408206942039561507399416532914572430452309296412913452415608791048900757742996610503652987766286975511068092271157552608786802595283916882042334992035897498743501723373812546908745480269565370039975443379235451328479320253301864862144399649778245833010947876667880878780459066016886361850581616374663493520579483919673493240084178585347432615904336465027435295864217075269311138899797991789325973209924944490657414610326703330590544022706700551070834773693966176841524635946435289396327865071461774039028751815666423235317668256379225565126936645435860182368975848597198890188718804033089437476264073102084131026379682152159392753179424841141125473564370418723591515004152780173578476819067636941447858541504344548997299922015276678054208585622212432082836661560093230960871238527611230147091166498103287629274021934851284050502026564192971777148320584607487867956213926716093216098189037740590665145393830629533327041813992122769741589142088365177142432969157264700607424680396006519389290716022487769620893315008824683600175696794367985172745706101008671440419621781019421849597128446924342635803215751311287806158822468081333474513729914154334637879702999554311609474413383746711915405940410424966686698660522899653928437694521163844267873566776331922923621112466296992319808024909177250453690212848337088823387009541699882141493159279028224875605003267050157761321599061348784474689099208521061385506721613267293375525364774232239083946687295117228698973590727309548904397800731982306375196073741415358095815962974566544215658633057500408148172523283452803597831311553551331530900795973257969148661960407097431141764472314312239840304537846169759671920321539600332632726466729253730307552482091905919666996530091149926874080333945079812743404975723930897192496368006110520447142442302413533589705876542069855033720500570888573621520235511549058097130626410495123931782688589917786228232875293340787459193807481727958379298061611384983331694773688567514763326870151251148473960937925743818516561808546043341508383682800492319628311252179734603202896744822919015169264928823739875965039600557804144448022983049353406702416807574536710013111250428574359345499030066326476156734183633401640965662005009842399889324505821133864272720544508954273843869859106132702038925809815983091937359374149178971854716576576389103625424501266458819509040269864626010618278586565621037449762794165760946338093038830526196381431098676230644452814732912430318214415026704705715676413033421990569238866265003181779839816151562222595614081776695424022844966183853521965549611779346321775914387535041893154537875122298836113221108338927222210382548266146981417292537937506498356653994393592544326063138808360267372688709758413586045921120377697506436441786384938961499696548094858073891995310961876649836021521080585881176106775405176415535205786159277448236473018925118947435628083848686044829263727277759611336686378478987646461453394222434892703371187304745446762940187730523869308086959148116249138318838661572671242631398997449254171627483264203533235188387295816985695720519064939469509654203231285643846237499779255504934122772834219199254418197717001954330261151464427706759775988480466491327850701297091565781265767136954280855560700000667863690970154765430892227642149990691954253693599168359599956290438430569855809787514628644812956447806966932005045273868851330079944713578545239689775537629986566679998583839546961969631640727479138491871015882411271319221370104404731426526680992149260293564766354294395313291268794939812804919722961526743979185981963973860634930760402901625742341591844313785296267968409717106370253739717282748624581758400405702480511830711356098718424007040543236157494052299612406045587674408656540713040465381852030991961195886997889696053424218570046771215774321848780062686493126683883937114289986150840225244408227457979497118296871831275904549102277407302104870916920082442635661622065926502256126276228014003069251108033329838296158164572396977940748687927713273869395779825896932007342332582485261264855338559484794966844844701901128745401178820612587077106875176099326457889091131770428629653851087644505381031934743185604871279419520309798678775954869924418605188150387771384119383063089511309144559660570976046559093791992297408608858805219193111883696355031754612451403173474500306362502545111799908739448841421464174157924760342122448959264053820811157419569202996076213183766254471911680088308900362304381539879958251179071514930395002409078908689197777292624931685318829178305360758988999929823258983553433924817091929858140472000432474541554682855690447565031971393723164510145678875811011496795868312230525168108279828184541524342568964054186875104265606683502456772644999726564068685415178230603934577364505571555124576242529740996857784042465236179908599132477849944999056919232817790897243159432270684671953867870954078111286833385673242109460489134750865629987799928975891797076130231774375839189303666622291709519605165227972943723249420685952500508744402371239390146094066348192887749829340337177452935258103578676714121009568742993196671648060031071517196837076571612734787033875904953925310557140893529678853826300555008023562076916997608965918680194911989914197707977074728931502644712067104955860473119608012361516654215732454282733992111010140626067822721403618178323607553555050423798654821734944091461744414228174883044351128734900769630305376361124223746123116481882193264133969708516512951023025446201510801492284071748528917512331666750776621099002380619700382578365788397966738306877603153968318786721058254782086560082491262735532650489140774501673940770149999677261103421585255460964212268453857559900968030827459534751542369302535574016696332074999706954101668679551599410522676313691239708721055889148368870826351963139062259233176946621200428468000223233748229720982666623401329300987810846634035682367189161942027322643984211251176480736908599382156521464080713865711295586249762852807736066816554123382078553861040775552382924157396872384989520832634542340248922443631173213412928042386837385548336178944539900657129057747114353028724291406554534324414378728226535654788967908233972987276050522673886510635860959954346133289260269554670404949662309640605265159084726257573826829986272832865594548365298845321778935206816510693696461198741256065007757797277020134899844820637592210697595027752005056871024376013145739383603341775205163419646375687388450128792575750122469890626773345645647818578863185601318038427700574630663987915378547116342462861494691641301024902974309508002996893172307085603080812521317784168313419136880812727494230523198179409743708838906841293972099923524004790549980565753579238720882328463278101896271639381216240000988996854085546937861185863737878019499562025150300038073042389953473932602739981643762055808182821951907003618304347484345035770439834924393765726066780714168279390157849756932861636577831710177380202010075082295328707794785137792801237643751201810451643677421890415168631159301109953242907527909238534738306913948582352875773577524221942556114432184655726192410457074309442914942678200459024274632721841820492459599007098514644839789103114027350192165690054427937671796155156560032933170182561217787695903309736472336547641385696013680837630348243803114478069103851033204369358552348087819404874251700576526368833316823451376200336769165353852717023973817972649016674867321209496297650004662634418814786206303092366388122896000963766110315183469906794274611851600511936338557454896885569208548772572874274407097864117803954808128795485351217275298892136774480706652967570186251336977779335251646605065599204813046921674588433143731329469681918005806255438713560652186976750090554263223911730016973692180875003917154628553149918669210257580069149451334247790543031618486895940629899712079881708803879982849033717883627077910043423153309449689164266311992558797636166990751005989032129222912003781905633741164675388869202349549092174072421623826867980588969309952446684432627583469331234392320174585509456280528524568787029180919411894313559429300873971644631028693761084535403421912550879557891625035856081911630094006863295636060202352539429090157662847167907986062744353015972733760024100888004815982181404845108926029752743381052578072613630452799430801299557232030456887520457585274682943240563417352525758096663376904395015632607170176251763745258497470102979714428216645458065143957045185204537864893126509186507519212718902222015799936695954151995749835816595036586265926713188271531437023728830911592603346054916019121924126950183575676111962367853843184477920872484514592208089138420978247477688926280620808058562967261587557295039609353617902952006936241820321404097463480364656243044919134769587519515608312534148976145353149751928909409196353501753757945330101224677884750704295664950943150440434042014713797826817612331531732522875666573767041958611391498024629520046616613935765549206194641258330509206898391669214880926649228730876509395156688944672871185107763847504511450040541551346881181491485770709565125171091190021278612808983019399146292108218042809841970701334994613951046721924013299643417868213152059438262666765564910995180086111302651354421405559079249972158442386387634939228995120821680111056593785161754046349552339811819415128977003177558081225175271175056581121397415069037439288963323216633527596775964831455646872207930912672914908799373095602698693992931390624545129107366112029247163620940229585450793251778345819455148905426400404652729204178435597137413246304547273726231720914108802263227588060319612261851794229319741502306579163074233690198089562002388746413797434250308735493462293975277044448915893756877021297839085824939226877834189819853749685045146358255178247355555492390221002365916016558107281394629408774520200345102899225509692680662361179516556417607505364556507251222867729174947865861651814143116877124936639539254188031712066729223227060944705778893946516309471339568875667918894143435021639385419397157523220618736210692355979711361617692259568989527451267418729208241462692364449689875568172771525275917922866030386647493493001150502471389239832625092798196837267097776043696183261929000100372406665319023065257935529629380735064732147115118432720602081014752218926477561002544426365337150264002179384165101859155623855354765187176025890549616228778657977641676943650659808778863498782547591207453764767025159587402842105874168258365487012828220225496347939372079116689138913159620026690233828292686393580617852772223380827301941423197867289804249155011209522144470832532607603799636424439585299278163352680893408066210911778317562389728157098699734891746069506645084133975572755426744845305627150960202551923979404260207155910614057973444698548980259978142294226175060717306476129273385997818388053086089716955300243975357274948559980784298697815068238002392821687324725764248203596494747977056359884639444907865971219523906754077319899221010482356846138062821836026950661928461664913644261307809743631096220849764482172638461310731883923871328685893632833679558492387988277542783561557100007029835270784996816713631679476962809706743888118257091749497263670590673341050721530028948099144277112266630344810934882494195305132879578928293257612325138735725393943334767568253589288691322607498686838724570345271512920652532926174129419478748257239580566860750372602030328640259863086589658817452338934913990025125691499221383187880494658055153570401726300994726735346622505665931881503747015475693051462763889281419923079146718476861794478619505130846725300111762886957138852372804295716089700974990410602016858989791682227827792264679828733443947127910270816431678056009114228850124451775090930763332166420925453583919203696861420569285856626024258538958077725779109218992715930286469741284018291763553707260658379677701273864315048473983142774336770036787393686345433463033902570124782173699180555453747431515748333956235344760187680493243787377797560912960068445254515069504719406132506993475139233027283386120687954881160495218910413357504815683219394882269334203534879530337124800899092194852971724761411975566253603790544013836458915222675718453006096049527541188657222855472987304117659510318233078061311936803688322108702642439199321644212501969839573374699681500990256907478993582012045826379711597065666599203018827732439809544627255628148057069045953936561392612959823965123166944310659316746159586369312979732058840552466216500125804858611801244713854326685371200499486666913034322830246901510664300826554474455366137083360895672120048394209040414578610513268962380680921223338976405909388006208356553154166164712122368388603054544456212498177954488129454813153682667966029704750501857294021571304432800937659339407420151467995908158026912100569762631601868163453589628346630347887331927920243722784757828155674743158990516594460469179526001321193408231333393854113860763346762599846154047693154081271137377194340983597037205739719617387863695924352178020572381858343763981739622996056648627164820573802842312340394344911161564845235367581428306803093367417109378754891178111191204589437816076916156753209252491545701711576653789166376398150265473623687946322914251527675397481588131258566930178748203695398230522980937753869960378156146314650938822232623147612520065657677561438166276526080504317397655456600832958993219857883867826679922848858689791447013975664851611072070859173140728591660016732226215924197040159007664941847588724289141308374085558168522932811505681062051079748381534749153415840516495901798308754572528013504547123830616101128765563988715287870466668065805323600994663561397110901891360618208176680471491688892619524985850626939741958244151509796782104031307742347350957585241702117517989531835683833605273918421290013434220389625626675781418786182709186415102057150120212658434200110851939133600766754504536493583166338629482819806951367472327509999761847655749505731965754573257346579475415457607664317375508896300831666803018108789081879606188473847504707466823574653058721211391312806559183613187237503930012970556159260263418373997399627389590263466216487499116127367159215111464357840952190455055844404193610736828800142082673711739967200419187344695240042689589208699772864976770580502272226138041150771253537106692782525372771229850412638172108305851684423011608650753534602849243391069028855946109084581100898177421800322220431661579660648887917309614989984736754349425631031771189382069412375955549654778443736552708046998759367930575579742655114855570238969588358882676273822395148685190070018463783310086921150962350393164144538574349441714522370054506954315668050780875467910701418388430986403539618783160012700642127794857061162382923156753970250774873625047993181351351827025875830519716446855432198834533571800806080706322496502630756212399987009876476594242430193563501159590854858878182280990650052094837702836591202664481210596524325405927742995362832685195509939725957290063452554442457327508201720796993020811612328364215207443150460695713375006942101442234324950066538653996075200456918269138431517296533826434720629572290162342141995572414518960658880977775258354694748181090986700367692311851838660239594037452247114379996948162983987336935627613892973899067865830255782577516991749627956031485830985153587318112244801882651888196249882858812138200907195643962718412425499620555366189515064653778424781485143813618513155408207669578471464477808490375200263398153435632305923062762290856361982078916185158355966750759537168508431407643589666245208235230738256062242355201193603535210576250133192760802848931197521051433375407279370413928852310071456739630683438791290571619656934004681512187360000119789000478979270426625183586433179883100569798422941962428259578917322947536790804666402706109111575787086689418103638721228567255088576116606567654729464021215204682391968156961299737753506860328229843715219423141851145306149944990805234319821959643559440060913013616231212734759411842593161685918157568139374916203785902593439268365633551107487678769321444905468459113695378767048821759280561714125990351047725711125011439889833189651676780385508814450519345163060053982227708924863967816424353972442997261774320076391598130150178759339511632867431358901721254035536607416981272247605055760225148072303954974301722415484434998555039683559102226412511904260346737894866642223066501667301494221685064654837630871105885897888465114214051171248458038394197051949076914631210551605415321449801538836629152105566718745724062249838867722528623999103900296584922919993575381391675273480339426922873511453720518209677809842713493549848533371706606335862065060448873852283739896148465011869911028019461797669441482680414291431825985684968766533113691552524483214393424828192272831823356658369370413105789289323949974210169957074124643070147140040466695181765005795799705411155454620172700972169783254924336563419638808767953489639060564109107333252675712714074288751942943476589575067164036311911297826521122167873697427452742789487137466174921802622174557268140814631858050780014654328603078470396835897183190981674905130658091920772176433908290384407753290360547682013258794621891285441705085831871082055459073705690938813055137583772957179927295958282318337656356136174144972045724448825413122772686586424363894600176814818348945954934002513239798301208303809573634281596623317042083993726464895897452862158190337519513449619131709148563134428397629166564370008213912115148203923715525116536974262734542111281424364430739104115987973355199788792573569425203949515611401560138749326137927377202567135557764708216917209299304275491687553648308454083514990404024076523555705171404012824653297847290248983462747392883417231985202591761443312639433971084874256521140784114823989105423666264287009184569347407812602953857864286068393453237628295057598549964938852285069939646459531254070264242392883414512911854227472790350798346193280074454032776907796784418632761362111643452424867781264746704395909896953348429057986274145400484963663379297683070136231370268465137469328179393441611174568882655979902131364163664805476426731648103895132835920529763666786730654362614791320486485171935388297562542797954701490036804995141717468134536989865707376286159715511140248342691818218838452253270751357371117162924121298537859442305726524040775448399835148360648682168442919415162782486007225599204646782736465268165227467352983926996231662773573123502659017787888925682659180418091727212562843324585287481355181087549485681087597107759873840876350442447655007325888608032169891223375086308168718690042215528699980407354403184872792964765082099852035688097353799477018977061260436893183469150359924725720970713917480004782595106367226225036767798821069326330161203139889897883911490277240398919836607772106334482474248384307991906858042863820818725782744673840301611443013482894824978562490978346408490038706584077082375694058035479187086606654354340898101369386197160636562972951764639395081003797116191470835111201722128714569075508328520706803685612953487561677030053681311806333052548361443372965580989338477771666748070301127206439079270835551113123816010608299914511396948435183691171578642575632678578342635598778538069519644368931444543946589506481221639120548401329459175092700152207797537952149498714270728435345608956962649217451360172551243063497189321888169457038774555393061626572332024098799227419946194164669160864875614217516957258021024748115345378875721323311744423030450272151360388620658764329271689715472904845679064759075020111657624352771836684312613194099201056031751577272649049124260702258754281223598845688189497107505727237010406226858216459212906059991721237893658080960734930554555231628274030156570989114432094935444942205395160241671587803842039282303715204259275464478546020029707462731113135603122023863541439760430404989042242007899090497004901948369854168001933756645987567078483685611662311488495365179270404092901800196204714493493566181110871923809883759440819515620995448656578196300776167705237610770669469374353155307400499010334991616351569713663938774348493672988183545322570313533390579902834228946174649984986534070488368259196238648223052366760033967215947202552609188833646195469605245315705693944638243189435854659575038169812799419569723028077759519514948897078582768516342644598243399065286767880889470938069565046829023973507373296905476889942769392620353230862075411874048921761416552815227297269675631231674659931045381570283765748839937937008875895956593479909556537246918079727228768470076702859140269381956990762260860266153679278424173809715729598687599545836547523186077155902170197328657375779593639918939033710787709884727057637427477121847579858197615415008451178676778972112651777611800345418384819428667980675558970314230055294385661225209738873858020806243309156114806690201211623285357184148166331216881080164585847327590810774905221989888300418727370343729371014613489746414463490340092045918067781226765545167132010295881544625552416061606052167058780741167424011789046216523346208337831062422440748892007795647247130840726081823294887033365142188769034876387780990166023487923770168683103988464018243540978269967323006066652342010316123661052626271712491847474681997351996878901253889712710316983560324361668249239702323913385636979603495517771546240631542012009236112134831073444237840152390766607644382623107705850234936356591577076887454465687926299582097413665250546246433429772261414042167475669686024043810892546001525155829870280175471833538025905354059109267818167171427092513870605800843485844584273956671309515740314956176073106419080760618937823670274811728562883891006186915640702776742275078290754099764842049808983380719587072586791011943042637877077347181527398523823395020634167575607047985649401669632495573358482356309916015587498908913369419333219305052696060240959304473946288338136484723791606142852075693698857468354578527513280255752474314866560797051961383968132999206407732618062627373592963931046674579626224356087155824506100479233726609503754291335800966146974992334440479162342001715023434933526395127844075221899279184719379934332035335825120612623642302818998869801281033418996681876277874739289576063401074109708345665687305205192525264070530730940069285731332788791425382755810441654127716562688288899278390930523054403407215376862819986316268021267640106619400834277334729607342564341279292161170230451575946667277891204032356707726105199280272874452332546074689163986877022346957346125523442005087473526338250318509626128394015917338336149537837209026226543372331057593232194500392168415143523173086004009977976107950301474582912273975782059911820894747193719151687768127935461174705650542527593125009025597831499387652010911998613824654219615440795426795671768435401630013009105404280225695491535299786424427041494031557557951448345813455753293550915882676732805744575979272580053575146087339992635558942008862213530157281293220305125109652347354782449074069315217333474763084040416622789709674426582234309448721979645561539839971497549720620207596554735443277106847822129657304258444585642544565383017412335139852884484059920104903258801818796961722339381902589685867571618843177900926788136913174780222101684920192781301812807547123808525137124659918374032374147431606028774223348494736063221962545067045806876066965425803027737032335021485715464604360856813187328457204872210253901394984648936236840765949680575976968222110773836499678681632700775072995747605780139752010404270112590034586883183014052947115691677296055590327559634588231848838896092967638233403035572865280490883035165655373616829364062167987627613598887093965215548018934905646202722314197319143114660464382943038000743622471611213107930224284818855661909715973771110200159145501675028992082677440388491340346335217609266674204252407339786469142371741243740164354616801051235974469375645924436161016423862293375638903909514789577718422448609804572232174145332475599454607139695623659638579019537758851897975325197922137380315362922971601116938319869960665501524299963709621559101950950861826304697672469487404550664062238398403668583829925724160424434492534976496876114623214872821540718306369715171599275574518804645673517359623290792976651094144326460564760479090641212446355873946318768984106496415344584551571039297178448841329288077894469883363397724162382817184772983619696955172424852719215456384905549529051601189895641515604783045073197624077676400904307273414812812196315784285975102360320612781876814129802403392508872448057127173613266482877506594875725111630613572914187537921587622579851343251197642492555595475631591980092823786161201160140671373561214659693749635365758321908566971684845113288929683659302931818148747793843166177239321819412186413399622091279842174208723712747498345146477074822617880058016981787313152353159197766471682285350921868434979973599565336740834552603472351050494661940350230997549073758878827288829173160046213539683483259299371789916718189499492801213836532197206175307942953491653357268263143137736540975204251159782185969861935546929564340936525594168965197492125203336078722407913374564421051513687767349072310635310186572151524415372320514742360278197153915236387492517217737407082361387137678624635252782050392371088545584921166426049249033989617355102155157426813924134666191337550409488208495015233031277184616434168340740752400855694538869121010970751086386964264260100822004904166884877309323873083518017238194552086648856754612774175888687254211723006400762910598555921863936076947367279353836685736292332864195215905184764852078433271382547095454034714161377726431721430267143344954632175642406794219972880282330495671189850713766951804733337671600803219493629169821740905116144424816934993105924243280217905588610130168066631325887299285783847637246788238515873099118885073438163644649183599251109504351533795522496425511528362084273787426981883094393642700562637409266744624623992435113070756431636197944837959510319950088892381677408689706247496071334913175021784659334508977627548940607992950773616482893555312444028026506908412611872964233259132317139546030184287098863450252239811125281801547217944006004132193983480482454018610462870380382092576966905830055350171045028560102447480521468635014364952284984826185893111601859966655085804249566364028698045040287806757997614192834932775072308536012568648235677992580970886425102793806215464575885680413391479910653622973987618057676524430229760548186652890702973687069180644507940878374772554011383468545872819533491106201109100400463897827902422261586315360529579784334740650534260599775868867899580474612407004262868285968782528342488433272543961742105971066505099188954933222339725108961374910341555295637243978006932709125368122544262749643074379118068878406668366808450463509497339147011344483111174301001592295649994870267838731151446506677955454862624418768001159184261173248972114197885983287364459696292025901408267699884390659990899762520108113341296814405531079042431934984371168328116021174158259366282161352855169740042355799176346716957563054162710777422928600556407196229477023064846120997058982652090118537244422489840864991592666047010019945071550569661632036623879184418027507726983048195164788679301043922352819179943904419729379350137535700559547777369953219200199847328515973167222782626459377111234580880959486184342977615578731984330910941078144406376716450187316371672517588294625983827990917376638080743143513568346570245579433849823229531187772332567627329425999367416844908595450446280772740436580898505051374959495122081784474918277595291007334651246237666633193574633613258836185234032947824645207682956122596119750560482910913597221341191148480751237382962005486741301621010008362321800930502221198814548261560320057412675671842891825022922240266249721332388439368498437939339410675458517163509747769275563208815709866253712596478237648927225111035480026350720483235850946093264399241277615925500531823703795492737475766404775357756272798242596537867589561148381731628238311056379668613085127016203248999945065565260910725720955039177433112152150180184689926975233317015951340367451296067546350532061984843579103802629056221563405601387924643906111811075699657807806602854105040703890817338825971353780436901758640823182554642889691333360034833281880838969058237290240961110104462020633502445785647109840474766187240456339643419439893676430651472709262053694863511261011272819293678635010699349085643593155521222999173529594641233932821722435585947827004979122330739288632205788587411208634339058213173858057914976892674411080950203111641563379206749351151956153850440700728562426123469386361237145009217972242447891016878921357577238544300713897773478394463714041413419782760187483807865139556359443288050413088256164546205975749527090585458162719566624855935517622719563784076703355251421153745527970126961027552357528358719820495266442444762369462847592672736499036713409749951096558152405670460126207110003162171596264853094374111174277105621876399363241214800386133359771957584938394524342012424472667564340647400205337068471461074931353157575594286633573567205661663072083579011539029223657348117193842322042864208338763149558525346712111218000073366668649773874604813119007607791204682487659045052429899843975961368942329689348845977262118229899341436862422435246045657385119894625684905811516991279887699371785945405412978166501432770037128328346530427748538251326622306464370965107186339111329645768279379508020544358328355123574864694454110177433890620804794393677599180066292450693841173130367253730872049068646965244244303837507373709369969122086558714435603622438094398072447009882447119844671910824778167512593696060229389518175320745414117476476667301873930827631476731275570979866259347967651906564080803328731433922929936090053261302937519977933617256541271747039477078401886536896569152226940267237421594228700300823303626504997373523733469561422750256354913300426257211777117769428568861061266727885804857533584759510866645366606149792242991940986722304447799747990128561817548228047507734906327998491238690293243066906245718694547665901394106592823499703188199269462611269293726737819857232658591160363465721897529721679975990640486224728485857750384313648410405102422514098396488522517005046084570513581885718872956472828995053419971965688077260159152754596316222710258167832688164450148718236171698367024794479132841642919756379632747654181265508229037787300801313362624797267843021810269330610192486996740489327824126659060783018787531111738485916167187229343430303848245247310757458547441066214701176474139141432261316379961734727362020120512450146862398506472692748189623534157795968902125057822437384515014786833001714389956280582336442785916512267877391994478875400955566897781528639831851366358372590773790607329074545722285589293625911641392522556838229760505215041794204451390211570528270902528592689491982783922844220336240564023127343755057478579540761660439020835048389409314243974888314290497294169650035439758172762945418358289611330209037060861828575052614564197640078544679818304953670959396292831470402306647355445763303819403697607915290511177222739368068296127495134086912947939977876422325480969568889645089768917167445307991793141971862168261415844635954870644888209061935947108472704087823905179602656446435397267402181329398896388807054367670354704526692218012229763860639645498929939579905947481068134973907681023190651827582630111024294916184557472577833378490356093041670346111837765787277284549666079207640106583186263369571139223648371492891228192483406841126895138530116453590478931822772892434131619247323465500957453450148924284444426259990626597648026857750331615156076434379445174174408205261130586763306443546558194104983029585064711083354292725239994769142407548604828670026811579813662866117272820869432444426816756496958131922637998259310338970415390083032632408606822760421010226546568349131677550891489636610464718816233200912482614340215824840980325158252951068144428387098299503840277700803226755068380366356748257567370505934638788236044324358503210417024433999198779771874027284263623025242525201681020196196620875537959053932726942927203988293186769431729472521202699628233777644522354224377466001871025329144382899711303511557873871520094521776709768600636773938982912341414869040282604968124332028337023939936068101367746016124329918653660150608200444479647605817378704958420276752948911237555573452375216785073261511196508808789038870879358832956337051955985003521438908698690876693093618126215860943676131087918383006071659909196449602879984675404826984276713905656862058962109232776351250817963915025146597213882227546605946290258604212667105661419846574155342396942297262923505247982075596043097389984138311843774273990474795339844832138543509865229318171184276665707909772644351392701852709123162914683295451958422403742788769018832371588610553617538163179497430884532221369127397030340630355944338206687913134130475656516712102546947678309400252982495607157148607295722996193252209808774853455901159965664850511146098355804691817850686280780423006598180581642717973473442013071159462742786734048899756866723036458264445785661670754738643492229662253861968761954490314926455215897853239036769998799090294935452835965407262800700524772004206421321720138461265792371873103031627869666857499695278045882886597976569741760200675738538343555281811243792368805802403636179712406239860670638165581801887929281491526351687907502645954397505857388470548329690019146702151050774969374418236371238968602014251521561179933256670793895099927832591796440162416643020804450271153518911744290452137392254487025071233080724460382966943641974019742837433536420139805502132209101685681442273102099910719513507765149032025512625298521597293198912067066211345866202701134109091302873204107039036896816097623185590419298592211758327444502620173705103783940194614966072659979556906760864612102341936188270105728855518392391825130519468901615360574989782036630362434063183608744301750563179778474767807203467446532354848715401720409274964884834866492704981992079753611885077882902100514515864145457251349909746321184384208534770456691311076429156590549877401651781075571737373949627730062633620745764511873529001052141516149253959469958813357368333618520942088953171350806801616520238297196922372608948029951501611583389414250445250829033148648519281756921893074970746843810388865243434529237694521699534645208972408872151986798278568739159834380256151576082893717964289840772160136213400776538160028835249427776861234276674838777631803997517413799388049273114594820729193925522236505109962844369098250835652747945638212858247477987478589396453180809532040784182671718198754192019685830070165425952973616556515672167210038114460319162271258043136052019606138946681477589835283301684311030932412045136024835910017022448090781217701845730679481156563490049870535859954739886857355440287783802680908819648638528334819064380884882692446846208693783830635933889200800450699758089863229982585211456656315438279046712762422348941797041160863826559244685078525944462012304694089656632913050738770080414568187457825144449142027710956064401723995034998794202163562846473524425778260660362391128720967397165892821462665111647270404189515569834078510552568331838798313549186979127032263567556835340407930380566147450727400648944616331382588261118133030316908347710449952554144790854455086000994846471045146989737706950060357532224033777659412596383936527027154313660274897858141190775801498719575178543883335216555249261527058426750836029779413560629939678847742539925997508682193442987399104031695342266219712353529173024449028430575217910070559657308789914627709607737949227775979972964522264325018941581969006127369698748251626990269199838710043559310634123583426327849362542894596008135974358274882537115409198970193770832896096205077803450551876230128764495105916444683587784537888207135397049926396752343573257858786161977135129485917862851563897379815519047555891943377776456276516522786114249019298419250027978572995615715820786876320402667888891291903179783123787840159299620638480428945893139201711353737285271183998590194807421840296514069351430085494478668543047117016339624931596684420699687589539204368069647645526143536808358046334784814227541234800551672272347064397813981494728321130100885775555093764046881700212216233921944641965030024401790707364908736810425769876667259148156528291383292535740025967328955949863728609681024963388284004872038809418480789417319421116972623378715423123945466529403440177925347243559180212713124257489998077020028818992865376041497277673767475872518165824211969873480034442698754880299673091271182411553323274974789635133799288553486800224416303768156289811395307785978349515419345252560335257378829222474283860518125558819000917491404467895036155570035002146226484868391623561453519772528833020227671400223895506423837085433446557255903917277618385474411272184060585770328539273183781161457576058413772738835193955181103478350530399378397707311676987621076830590665252527546741834362298396114681280394198491049257718700838480732106631721135758352458966948085500891210454851701430076458876521765715050229275764007503987546599382236889391077947254960924243605564417620605935108318765372854504540737130677946201218725081860411749305354786202098872543026652909583684068989439003950441530406087191001129247340880547361189407085156242923837057680407922576298793244843902432058893245863643932488139554172605200614470728431931872377293375110639207963917229704580814311913826384071335325473389434202125247137063001785473049774699813418476033953732747505074315629863477721165759008407224428785230557321959687400219231232330501381067121461984013493164099926629641744740238804694126560248899222795506212385549477340064662529819641779829576451202795572298738025589542679727418411498455187785429780054987870328835447320532857282575163913128872820935537371308032190718606796879185797537583427837504203923868049737792219961253097282581730761121757396124598363606811835091898165716751161506361330158666337874771656017613227625450201701368050546382443991884226329439070543142356681729540570868152272704480060528258842388178880400091384564805665631466863635155022914074072025583909399353781017837936715003267641508284353550599001131708668496677299418094195129823990529516135565033454598532414752440106163635686253259179563211884858630940463221415689352127063249696828082826611062277153816368959772333216720788974097075469781645678292707656454005285357260645980491632391037637191051020008966949609999837979154153552260647819269837634515455707115373263841234580167254602644957006581521201279518468825776017874097794139026387184316147956558086831487914469255834732096826413442500798624133182843212373338886512546196418299381858438626130520146746147038142340467051947939028695997556077931381996081494799197717806306493638544458485656115727588668455416683400986477718017194078413300523518635523546454330109721265069272142267726813075374729591419228652899936353720575765883168108283329052533175262303165028383214736444772360169995071003830721456480426405622175072810463816813773021152757800819414117932324536856538952214239215969532766516224864211349993741540561533170675234597061525684564832398232530750160398080934657334568599780811000357530505775804241710757814887362736939636267778055124169772843133121784875893128391396719075296427417432014241406951390041059610302015519019407741233983485234459096548924307518380128589807636969175930161322855221066505130653359039778980566684297275423651921251215682182613372032806331775135813411925328140659125063947303043900510728168812266563866282440668147696199046937382992522631616345978191036895942861547434928771678288080105705520902769866587842113667052979848337178218361508846398937310107705231248710632798692007704810136948253584271057561697026907251679294358922715523991544808558897226465375836749186982602454707799709665268400416760968444581204756594137855791243382015562912285509161327251430552017879306082670906974895683646354507168248694453918541824553532495881235140550699560091615989586081590968729626986521594493084271615153194929369557258697229052816381207511831651419867608052675323042497464366775023982881023051174027008390519225875020293018620724893530880213815660409462667207315321404880119611716250159933766652689646909510998411081212062383659917000979030018220797601158544849599633347168456938246103889388112961284507391259897588362376330919218259711231827190657297837204033200279843393826279132218914550949391551976153378235026835471481249470411921900757627811591570499146628846654501202213882783005911428259685379998265379733407559359524068518539041307581218084062176621217874550812901877351481356594829353797165390647998031976935016543498123238162696531961945995898027422611178697315111678890429750673546018858465881951583352786818641022922450494902150169454926571867174455664113758662899514223717566014118583307546020815129546038370272367808363074504496734913362818999504845777756483399647543168778932099214369026950762797310871587228599984635207945670392493704813721439422536592700048868947721083009534618840495562965366073038026801294196376082838060215686404420060277939056032211106653817419399904049074134332987661183557073583364462729714025092714302602230568286976146860013240857367155735786063563462292068612338415885977971629644438612489227649574488009096316403764810303261289352775223364357149560675441250126624969779066862694291186982493437458565053547656735375225063955467398879212078402822509663693213083722881379652398988361794405905277261296221402615020583132476061577625184794023718482558089896241301557628024075350639514812569763524686251948135319559217269601429661053600342517113460661808841707237222312230933495439872435088918370358481216303083409429920137338279653774331746387590233829877970240695670253708121179254154918625506501375241473505357409958751003035037770792344163563523576225638882377432677213400143931522352633249776925540837045265420182866814190238585883714846665010914025129805359105160564448931298979732176648146580018044219490078140883858526127161555040617937779441211124340791891243320132078023660117334928468382642109858349926111452830410379650386513940048566474101544839527396307524991026763620099563127949608064815118513059252268803454776568992700309950168637097434779241352155478169345321227025396218454359560198931342975072984537767542934312949399943256474420027622036911918212344378386267824684744342214335404015420395835112169494713439024593771768979549760495207749671007033370608157492051617295414653213530228329201996402211813569529206430635040506154921848788902489780754196411143520343582980643806179766807037099902592811665555031310301347259739946236050445376689336059763856687601725822351824202561518680626814598046651544708482068675644859344045991121815907350984377531225749814707843277901945272149640129022877591658520121928117540842697100548113996144020950805713110030450174589937016515382483420483859395908742384556877271564439244809980385107622153703569568181519651952418765828627684632941301741948175395791042755577782439944610624612512578666635295278576023149718958098090172376787042066285107210737463875896524415438398286811104825947204998177750659926574108397464614788297404311150788933890884755389435845786378066505676936486449108398158795091308493892121820713957308308047485954023096409261871506617191441070075657962900483618227879580294069543076970164760102082154231484013000224318664111027581513818112423325560051397668398911042252196638388101429686036117506104492874911223304059146477665276467733619399593717555282962674277744592241339943656893545744965480266680767656996351616039802845309520845467081559004961949549050836342820312033833665518984685500163378945666221602681207850857791616966126341723488104306990346520439066568448055050352326265503293368310834444297482810837456042679671074597760359821069286340397790746760268467004052493829382634264861909874990378869682149043426662553709076870244315745721621493273262216172878467215838796067813517447029311865390813455237717049638326952751417702805460960437055527608178047105639954246732060205475172552144283504777490989740960624660555258029408309159419958656090116960431273750689507052220872864808141293851008505264884003939459335681598163745190762060100280215057834661995311271612449080747686241036462393347432873205128498521573503422542203333267295442651535667407390449542800023108316275485048977791298576853536550963769826043998364493394919695449938644133242641422746343333845349598215145173243672287703088630415438533585747033168968788114771796795439479918620926217217310939879557471481558654012844248468541326578796535741733404756044069536712149923086830867472893619105260206017045604010194344497489420332637402945964785662781817630881654987510596226107981125116327371546316178404240871801567117097089239978906568633816236953860016820523108662979809012918005759001147748964239710317503969600330968704216256100770987192921869276500293208992075061164712994758273238426003218267956561948256987035595946528165881366458076498936016978000080864178183998943125951888176287268264112963461590383368282443747460084404659688257293487067592026591094486644754330034969906816965338572009515851268242982905836595550314133005701638440068640592938528242118838991593642917403541460268565098487827737028469848796837981137471614600004956805759383425708377294069023354715316900464937298541936234344662767303968590057134976782969129464921859307895151016604217754311506235098648063336859882664716143584466039251300580942488662525195234874888006343035729218540099797156136731805167387573372616628935478043610096259160554834312949787738128840632514802873731377757907260911880283683616464413888641085142588348290991419331753872658429834253914967142023228751287744523436843325496444411813281289286524667211131603869778232774727660550497752152017174803758184601431589383970921282747562220774753135878058012042872355678274533676562165650860178521403989795176716773686564045968039458296439768386667536796110562991356635489103279270514148859406121869078100125561762393945827863102321917224091689046334134739983264141896701912704180504985319900873953890781779542168511074547444600506908665697866358108361081317779406533539970343763756156520784005523132030145632379611932561860035224690791337216653259084155056743345059286047740918598614973216105319770594507234850413734478701714878745683426044484611183730310580124601947080991994358800417390795455940620810842518421167687230138252754204614452848472699650926916785184585984940930782490800390960768123766943266944863454133994052695801325041105770478389839157048988611190145356105298370221664546519165720911009175722443397915784221124674925255347578652409646085075891798769704897843049213169634492236359516432203548256813408411354061376022258806098626029352957639889530777685703177052385548022390767175103193167098921718888770899396258839327303731638494232725734560214175474430665177364592615812665006040417402224461289088831094869382502682739008206224338395925437598490903258819699386077499462103229960722190512811526420212804832095985665971766112902528124607688064950005094620867751904107449697716815241239185441442317352882155969910386398619001398700448204199222386883719291613873960283027266138241431247714410739053087200969457610909785848562379808734005569131285356896009418595997712810282944980576861091043693286341238465118655179895616049045683277949104183670581576283174506231125519115387806031777772032887886764851895829199270140223718275724802424339850918381909250139996316169595787364201905253436761475825132171189106298890344188517767653332339501212184240936767863612846934520335682483432307888984299363573945548013579681297020123525103323449750553278695585217924756751380839937589688239997060776144951462244066170028218438503000867223597216606727348282643860045775178570598075022630000658943971896221138253126283963702414355707147548289352168163448592509389506763675902294273690349490508900246191172087892683160650281582294495547387804801021099615720970261401772520378389277308657207488078898965747979471596444795206705531585797826649981902880854254913380502953739995909809397160185890073248427119693965273897241584731270196378999470343702206539368200310267118814233180991333140930696187252760109683276002172701546553586011718844114848481440359302839016836861216171191887515692081552374371203679011718602157289254883532749576647978612241787875623037026868395274313807447457533725562684997480027481662944929898804792843049279192500988559880376215311940890044645655363858443352669072546327966012588202787155267989746376752744217760256874457380995082966158999763147011614582423282028925632760890065048290058943667245440648460349162305098001247985681434267883780034634967777428360579607201328226776079916405033930108881879011626526709069438138739188084595541308754912666476315880244288133607250763074594952960076280386490974483408722454865505752662179413769557005024698455133928145613888903663502552481819354454201495530810562322573552501463946548053662736328411133776998896557029745264467261860736083612715647742915076742136887122643841246886943329674398555345399473263838381083989403683660907185335747236692549699891085839718772226153079172046649291953333305611039648379053251316787139267983500538473893505975088188546860533758561485630713473502643683044491289669448034642659608172285203465788504418774515241751550285529287036016202694618583861769451600196186736703802943499735698989475272372970270968870054224243818418130906313765077633087644172606565009438004666071935698657017670170873825368273438660577685409989594616901445738351857564010959283884798403757208488451683577721281766986345816773808519205162530976232487411239046788356041868193450311690031098082744761718108071291426057537737644958625518177176245366436722706923696169837830841182060027456279303536020821871539625710757941291250517323387246832986439292341283244946296364376962586592428121085720954173289681990484117215905644300762518655166102957523874379583809494821219836985439168921721523020245230094882327190101732454415587121788379102930977687294122058297348091544212145045284787464245178393798326375046037098139468546997765869760694574825072088504043032760903375915033245067246636300093622692615563266825633685206467936488350588944922359908842758994003560855921918230717645372165966380813374636155940912908492576945920069904834545703768056427845100301008033355406589174605910567269328443381954126431289767857648724902563731674676809860090536028951717405235178796977767867792689409641416900290264866190718760680311351792978892684944202529315091024624673555859891175831601339562271774754663809089734041998985720992525258901790456331259138832891327351656368479998093452552343546358520872318954143853563285349501008567674911401809093752471665154779790867134759706379134779394407457537058830319495314689507288237555426091386884925615860851510822402608361594074402432008708934493000712963785899282094042900704887963508140242933338523751920838226203431920921452805886040494877597996952786578194223957079619284388796448713173421331283731213407960031877060546196713412064229589661921544814534412719486997020123659677857871898311756874422099282079732721756986041857289282790698792355083171409170237367891211211397225367392045577843487010560494681516925563274278635041115462232172489363630393868022683625744482622699450980323378721696387043873197766370334624875919673855929569538613518347856722875948494913828650842007137286530050421933215595390162005917873598994547005396079842999673899069153405706669583472534752060945654658724460873113621513369872344751037806801092967175076808245094053213002451585199813252249257797854245329285122725596272344569444883735801893339988267495106404863337548820104383073968474047636414717508627133185409633622287433857946711775019052753345423788057003482403556024505829089127574345223257539918674617042094431881508506132681347490000160907320582027008684573657985665506591006508274311600531926249870329358655542764308879395344949893866851789375220637121380628832829632899593812693747879564120977535792366670325381566918518245786968737016310984581847981738784674720006339187912151691406888167362303440047934922742136705337926830043148195714092254586183316139482219993337813826672617903988168493651039845691271630097802070416128664699002660778977292797082999353178716393754669871829661577696551565191853205869185627344209456457206177342520727575793458293303968811589451738083310569290149581513740983516793686160099947076338861381807137305467687988803413036454999763829615012758856867701387473980290540978195264957489901823859501957990843448225805030709780337959821553895622683385492356440440714784826106969634107808802382465375599616447869175272687657437922188809818579758922903392164760420611716523047642411192119519183091726327564154464171495087850059392107506818308483094281830363147253159548149548140725976118330617117555413893354036354055939322076974368419398203870377484733818539422501687266378704630902220201382212161206454717679799412330499037818569421158662400194682631707363280951647317336252070801653419878977881168635872205096397201311486101172006388824937564702810523640861808458779289692516313965802944905560388185185957149084784541054204301870094866194208555842773926302159789685808487049111541982882856432838156370379335985356948862960851312864878978402746260862327058382270923379608522833799209305828746771540260894781638841725616185224790425908162088686252382985263392723047381121630154916233726212327361868266829710187373272908934191640090748173780571701383530933995405331203755567707475939409463552535338452076521096500474407404280820143835976674739720816159070049243384595180800501418950184144506257034892880059035542228687766240226364705548011874759111280403688237931133037376607364719143537014812903497091444462412862388634870157525050005030894284640275344809528134365036197173654211773190090649043780936259612423129116810674344640005061323279178124916467644538334716115862480807394194466761614008091179246129861917973850590637531325916287948519047608808922431473769042398150880945118672139316686013294124588384461113236570112596996383085934709566484890643627983262352198864089695620038967910941428476823281950213904003035528793669695882418931430274408578936837280882952055263896851911413729120438176959905658461808031522037674765283447018863272741900875214209831137010069108368448103844909302458429430944795272948527473131876213373714047188672823247152837167901069669465954945538911445305252642820715411695886080625796242497893403902680186160067186130891100015265244795592406722305011418657425326026214024581212107649920663048993500166805370740581770096123187960369741475758353818991632453513578361028753893782376060727846330088445778877886267265733150589870384375280614710514904988005837007245847347201566708423613585969009833225352140659171595933458986165795609944716217345344648691628858130493927565336420687124088249281430617102805829140112121741949401083139145843362095886181525147661356750115476896396121427915552698059425504413021055875881723073665833686898450910611994407985424648200348530398120705516371405593455288146171541932355607460483075229281593350731331003114680331801326650928661385131400862628546443468666228048565985443626228253982277323795925178838143995221306305126004908143060276412221709234161466417531513044095042999247371790617808631419054773250884707378848856002077593919896163566511984552640999731995443783206250790487854042949456595721022941024036333517903714901804420207169659585231134528213203227255706692250621616836091953019441714573360774552430959500147900833004667902845644574995457612130330427301310063471371183745417945147441421519558751138872619446614353761483075237125228582856872214288621915462300086784585115805682850109011227896705272938716163598608568354746321415895626251903418745234258256362935680094851669496881594181541179936172457352130119187747383463490258840329823234731414961941590730725410268080096646196904833358588187950044308025479199660417374080549377861609080315351743813387355812006421534961127290246046088109261269093020747809290239656821566367054733881911389368235912105567028995401441573674721840203618788415950956297615986194743612323636894272923099754534194047102439229420933085039622167481311048652487785381274043815515256409976560483571496930889563726372322817859386937659913313896037922138387714048281311192332117474841143188683958804380878128851541431101488519853960544894665832505055872114157774851197640277157206300835805936616050075678909961368720468780229282644391016018826471615747687418144210768140186686157909334807465213911561492550833128100239728480569994891561630682288050847166922128303359559356922223852404130824862263045987421427471226869320033915421582429821060220358345776271128997183172946214047737987834279072973148744672499633042341418296887460856456829563840136548484407644522368727004492550804931471798149726323064337148409800468447438813533557887283229844649467438098880268976226723513911088838313182750281186650944886300306350200580682884217478686941582910548090463739007827583735884314743193892951103440352529096742546235884107040064821420728071658920115949372667020109840310681813611297566411446290753707523316188727885000702172751444875955800474406576797951875788069739723928643206819698098963233022653415686260696718442622054092148480614125981842562829837523675087134286501211195668500182386527321379538256304372365157945386262376663193549781433910166676335650155509884175347533742135861939124470863360392392660894179879349032648420972506136340268929757659032133890421286263775704166919717599832121392525865431326195386010103366864764001166884426724110697343841603971127608731409797842576942651633021066930733233419252744799229028172189370800178181386387185797214870285055850090115017779583833442913455712352029783546242311637188760152860856694376772014939791265969137098914083961970660476258326877814467151201131114843983219512628093813249143782847473231162257992586361145636443554070069757030846742995445669073081490002175818027464162938632422041099587120910754114492660861789756010916796403514779028874979226273864616025108020226505760403219426286704874504938126904706908748578681783590448613808498944206115751016918988519882068667200151974999562084223554593679845960755059066177988575815160576819484959630295336933024863693884591444610228233231114304604082269474388798748437556378345348081607858355697054899191437432162182835037117109896221051152774425664108611196729648054967983679813451823267305717661969200511118931429188670242345213485180282092859025589635244454860849385333988383706360062309108404478716463805618332529961629210396617758498641239991065654760022902687820004404542851972337489260008575204881667961968411268791128012771946433335583127120336395492951800894040901982090549638237673530709269417232961730054835841995041962839136529108142659884143278119398896884576138977412499142361700852523931242651333884062228942682594736560687408059131612128904376799068167610229148162987924831991665440822232633042345024702643147833051338682954849766287016940515904207537997266414716587610523561246462744165335297832691475299306190492762187814521137728394372239950334251437305894540746777277265716015505315759426726983515615273540883575725540884161659713033911860495146075560185597065559157554903817378359619426272276924530520560919356438543899673877580130126403869115192160271656486357495936142337453293774671005482737871808402077021188738549261712616451570684617253899367239799866151630975307717830469963318027644029868461069859866186223813789046150401028268231665027699279841076798021280549529101609383184720893772562834842952104015512654623985892733536886272906389784628025386047914408229755593134484931136640586848377367023128802291811759769117977803533079137942910590549541670775594402676377076732214934168995412957045108781994617869571890780031362479970751207296019220684969353732705010821141033732705577820763946833910089416290724323069445239255919426657764839504743890586007567720350610700899264494168066368954783183792505920601405020335749456795306617958468902981449920023758437853515963453135810595026609776508048220169360423887748067543349079526458889909240464155039707952770397531387425040972497711728978154116870304953562260693447373281721805147857754130238036173323733522382317115796898413397974527472525918383274876746717145695931529750204849571085701812763226406907293620962529052464815344482484668776897311046719089168690577285419594654003671900447200693405448368685148552166294877175143837757606131083400851746184706918000975523014349963494881997446352344529116139460580931559652208271834828458628461844281068658888779267831301917136325271543625817682741657828697181650358882801166081685712259403924227432791960280488307590579167366215822942757814028018706692566011031154058733659445368015212098874508534778567557676185043698604036967036188185369492630043928794817094523408024679942127942436963758358630905762143152280534299547881741681870434853237450754687198363316492421623969164346503271660391261866469385263952842961718553217286933437006934659777119321902189950181533120847971004337089943545632321966515357644056905383267481133024839017999195281779941555591181438824279505164630638271197718597998235013469209108486557950693751559643936589715161336957573161098505255565451559957311151469075691739387185825153491542121917172906959496710079585276791804886114052202140595185579120738239718150192680565449559597999654793973373106483814906093997848192153656584055437217657504866814296447902126123288393324223443990694576441734682630621017802233217649249660192897274907103322021887237902965873707726797304936830740311507697038019236964598004811828772411490184483251421878307170387025830085683463224420198136428599987327228279844182820301338966298363075112841014060853691489893747464195352828961356481508992103295514343530804893474058132806892474693289447357214773967958879248896902081185283893093201975640564952219328367018697923518667080280017400285218467927147948419086437800641482454582425566484060538277003052964418869643022879430858816525030878606752387316907096202477056623974475957851848980358687743133381141351762809391670238079011032271794116783236568377935065248387568913867176784123135555188905395960155995608974692058693784774357074918046266735498456145484972632525992347455156721176299540322654727718346882910489861534127507674539570789370417995167595287955933036083364801257927113465511105965210575728858754901494235790621805053635436262708500480207921479758033687158604646429535641871648674705839230586602633020806654844197647884823619472459982884166829353246549596467933749605600776051928168068211440575686594370435104656217322355344032937698466087987195026893136836246228433051440748797879680974182667833501152164851332024562611755448436515465189434790797065066027473984599955922832661751606423736858873072176514670870374772592680373706682659164137978459980730626737255897870770158944813811406818317536743387472557219711419641700158035911371796321195699048347979439510327845829874633736609725312069415041237857819300849582069398511105428156946837658894261504033897391031777769650232442826274868008521926601224862876822936259267367635714676997523171895773670153655078277846317639384724606327255039642628555973474159599691815870538197606282866446408082614835403629403117118911241174726603253704847425758777902864516237445687910727598396353640815842354954889870212618043466320041809744840744054207812034734257512113064004195736031711201333647291390694735239923168426151554736245132096679853604180948573012422899198704167101083294309598826533078198213787618211745622372059774890485512688035241616360788663824610955425872227273103758875125396049532599460050409879350817534498144462460431885012279506487439071943879741866092474217826355792681815247451137523575478546884013292920471794713521770708218963787040469169397949654637789092351227605216769427953524877798161727149633974441349398390255933148849302106903348005654239686043694340981308902908374182081707048999696462541189841771864245291753286578368971374541400360115940893287700539024989737025763978002227289330229437151781006356990570602599644159595728124502292521958117534226665361558077647360750701809659847015250392719220793893821251385267508461633359294655108200982284234170583533767035410008837955797545687638731659847919283498755095541240049814199017096592098689994419261038837372061846263492642495641922544804965504005924989556161087175226404810775058445672388570390091096724341674359905297385042754004651830155598735093827457825348010703706000823233275972684387896575570090862160484284772764748738194433601316116256319026198224289164336598108098738530817791786060854671257602406123325499884208442940424435866752815674582726184803114018322121076509504722295207125241448067500991383548441312479037743362494208385327526022463965573601499255430043586019233145260091355571984300530501333483593617591020544165644892836438368361802207496520151939661658259434877966796819157720117028278477164731170944884997170383151395683057773093984934811664921656920560531173384846921350410674030667784987411148406419732223035615076535865115519943210751383661248947104103033793898825940680316956140759765237766943640792013704027214500410627176652006397593679753490814460412735206237359795057923739240983812526837519008449539570819415971221062325105388994141881502070606112959003761800033643951464434301232617229391899689818731213582175798095267051654639368165761453492924309752428384502304876494595708999717926065246773351888498800690352343561404672158879933982146557842321632383918747243406312453019590841967847639596771507418162941798069215844285850513513719558894712112459518347039362804316299579375774684901360398024912248999986437997726586802615111828481985332627797734390737244406357678627142058238129694491551545281558304526929502457764299160259142182465193628827609754261511051379971933330725109249252613125307181318047662332935962171270295588556363676143926006775208502373004329268380263814671634582890248160610022031614325581122262221080972484250565332578379475868384308182560827356406751314159420838332121198627668505265409789799102161351414803789018735043565128088235694972699785607305098963328200545085408865791780630034569898938608748043546161647301789719681394417615908832665929557233579384512242686323813372443886179356484795639666965958191905149899753829907065774976430127868179931231509568421998911408994464165244912837051801479880963621019897782628646028042328815025932136131948006982906545104374270199145910993049623123321680958436287275330317374106073706261781108531283342264316584328117980999047814192219635302465935016014202435779620179034158836812110344091407328364754865085076955449315295918925540675975344828020821859180328024871617012619544774775294769746596903248769879956141576544074689814008958944361803755791883520028131651801294291535741480355588239102377507211094947463050749329789052682792201480482624002471858475791585447638008072607314008467282172235181744719552541782322262906034002522682490054800526020669262809150558309745064338530885091360050116589740550890429463223794476954547855911256783419534246092944622015493834942840269822033747537618840595074512610993888426463108653409095396190351804829835146641085159734094813104200493394324879178347269753668213710544405312429103994197648624919658566458406135852826257501596649833354573862495213094795703830904211584193244989474944223119926068361433020944574593279648960234322566068805392242714328595305174770962414332283867119095449381351318399967569448624687432441348861073773461594705040430296148082027881411890762537006747422413821325650400895046009599522382407366515210508824756785418960014309544750545069994211497493593370443951310144489594425828919384738381132755501257746391782425211436470973000190734126871846224493324754751234985498873166106067313036930034079654011241743102688834674327264847038258216366848098732030405264589619239287243953606031193626834888903826003429780855713398715118794486548990935478491689740687597975548571980298019307691208099408874391816263677785743428996425438089462919233040046618240903387973295787155147138023491693125536879432200730223328152577558524321001182834988017274719504062324111924021683366566983083348587563540476364305916416145424407183504310421462083757585152945055967505036397492135256513901747157167605650773377493901373001348966470869387539156803732994679386492551966532484742857876219656168549331851032880126551044456888676931612361761257264371807682166652758809548165720790019901176757923649647049804150218270057141758723289490685765165807452332450820649585767980790454627338965169287441427896920788989602515195974405811027915955855711712195203790200864085081693205545754584874665152728571678569461183207025634678729387843402775853099976972184995692505056590060898810048954380628990570027448820171886645651163450617673612536141741004811351413515262646946231378436131875133253688800868304105431890032052370596415334137955273525674355367029670583455236867489660199073828661736390447473722044675012706681807251180005143125023187165997005428882161415825494240061088786018463809294113234839496477369110727148401299605362347000900192283862954668994802361263738176678614768772070426633433384569435871919081808792596851006114482915739375019201319523676261015459863227416028822913863270051886083577597022252048964828585009798633130642897297328449491154785601369255002185376668778824491677685560195306157903016208575376981160667938971859644943346640726285496228971829645120100356056286077951879292338014080359081892379385898245646819463775427803169428178591149016443398516238681710388975954442811418182667700241811159298371730339313125814862759878215881148293282344618286914623951352204682630185492775860835057960378778216908938918299801634861919837112390410149332267128208103079483436310965588661793409074199271144989992126028574319406487085307185806411825004777269495572200623935955538236288071123663401296282140694253799210370426091547459275636717809591015275151979009769161187891866643172761437437327371597354256983051082401094439379249035771288269710888586637774876127954697141947414414089318961403938032918640207265529100229668266205669852263290175171161986073671264272587916381384844097943385405017234862831037995149191607605429576208445549147884712384617114761815159683407489244840321109802760534581645052773873597143117218228103450841321491510006021921857434385496684745697818379373091473362004711193025704033143546471437658611576929265767806986741707513212712261757585976826398496279039828056611597745769317551012016078913779995722173503308887890290404070246422690818899747013167198950861239384747774751115597505109967406102462918888201541037540151500379027416424865873627526617821287741613371508081329927222215059157592454206983817745150676737768118650630268087974967811240716143335805008429406142540116058615530596729265419492755961695210061472299807559069360800683771216170042459555694990959952472149868347123065464999239716089221394303183879525625512269435123057192664722442811618595879577193300774393311719586333965367651332699671452940809612906061358310073564016300142784929062250751896115650112202726360152779081625759003632873675659583169049599773260618882503913105456951824342028567518273336754954856272837429370920068387943967306852669493627334781159080047420772951856800047022685028883050361846953212095645570971827926117772294972186378295465648547061378611500368851573793607766527492951094665749838338352838918418726816620502666618519023977064979445771381740595705261184114704241492870015409403712211935239023559645793024682476522438243648833727707358844171630348735054283861196482609145272550856360094256922773444028348092909816788394072341119631208172044723948928600894909072923478925492124844378731739267125623000006253938406005450603505682377579343202996908432744002274552108202915814067482498957653943381098210351722278358014829023253940255601562881264528653253175987556080063774327498659922104457443737156396296516140246546224396104355890655411333892776280584653577793202302197421906963161348112415841254437418152907535643551663445008777411391972232906523529931605362623824872150716312428111054806004495135801298200262712425487151166699125189371237681789624154135369188260730710527418746885437495455846294287692415679562144931814684533010781269734204786217915720994011641985297289246663713441726641665080190565045842401358697758529462702172914942639416532372616010132580576808583941062689602845410902505529903632354324563676886671344362338965982117095612665657324489606288404973188755152789282638910613356710318716301996986998456567732622682881844853554993168362333181885655460311099995179290943235929324440640981515443907733055805146280280611253445149539872686148800032945878948420902040675538447756938694596656401676838933323055800537185605196094738046323038207222516785536026878131600055212676400479685763383598534962872952634760968254873158091922363504619693375922134655088708993561195776124912023788998801149963125567278453547044991269164146997931877400205402754360168496637185178596728962420304816419471918714802116688137706158256186552511676240378148085337017931966452193769915048668949076838472899507558059539226061110600325186173786271545571257472917667981180955684664954931178021992448337552309061096037535297834169434365029299640708662521947754176887288074431846791776804479713820066463600320152979072833369663966518430505579708152856047542438133958836597993148312102168243707761004171314173810246784990322817112398708041530801140807837354039903712045751773497883685610636576227820315344802616633328306521565521351108190742339986756363758446349358550672480329785838475550595522920599784825997184488250867687123096446624666486707910031567371262357293533602057691548763938636771359660249612801772891080378370653528266516762408592399813554140466635521320088925694692792477558169321047400537681149396187044359030980985830971734278003745606083542840193753587560638501220012115145475117785282547431587539330870600588564626509468423713397148633445866097943647329028079880812412947315259177640030378396375090323255533556832494441212132089715756070670891571701572743578023374639365498222163360475496114330093476272358313712607264204364936950842304467774166811666028354274962217355998277075436025387875873212264959352514827855746540023706421799320635692311218673550177626625268728395083446948549773504772546028855641321554689895635945305134399897176192205879927741585681368355447586572766827865166868576985038518381118712085787974629220200447411676187012853833702549833914078732386475510489414600347558581956375346420642690554225211131496076201983976384501649692167224304732167767855122596051713001167244305991890690259158072014897712595662532026574044052282007268419450885996447197944084310773107722659616239960660367231288166354917217913107793247955884162597368056264142152143144331592845324428053750332665330387893457243582201061949422094378157444516259732159242723383784359130442813142068145509874029427599430969267558585336690014965216962967819771629189817261909947778640039471750355630262378993216730113864936662598105499298404605657829882949847146839293571287523887954611063672785081332659798567786448231594878095617879967115410234455908600851870688322969156279135324079158180906998135073980214056019583337780212832390519084042645187135086299751093447637169359736743097614446437686577575640125460976499077757868976364695841404465962612862861693483221283042953515842834466185842986609144328482669483035987754249493840891123679407100659015924960845412924944637127471907481155356339660170225124479524410497687772511603639486487585381649125560838618223511633625413861924959181028340456078908356034209183956748880018497967305284636999212229985459199558974292214610423118654105357492720758750428050113503066263850156714444763655469671975029033104542672421775925806258735483190845961120989971633459289186960632816455027397575952336864019961484767664809006953344536591467758761075043510319785732730767205224599539099335956322679577523124602267803230947031415984268942712975563218172241297917488407753151103133769472052816491878742847097150008377080236895499526483760216697041631520675072639174821312393815994979184282683269850007049412888269270965742278427335307829294713615226257222219016884921429211931869457693113577430142761263054717793493759137789368155265438160721158384238580813642452625343615052583730016295618878158930636007914706879942391345437872370367365425055091461071101208429777567639689811699626122714167492523008526020956957807022702877107894525653571295246967968075335397778477088454636168333245542761121171481258212263912762011715015722529318647302797320460980943653283906187924366999926805988523049674164778072581082885569575003517379350530675319743307783429850000087619860558919429507341630223442047254833870777136586718725483300191276407897959326509322297521147819758292019661391112741819343075216308912876464840656097476325407704752348641366632231771095667215387982941031000823388538621846597529094012009634926748305852922813929410076388417830836421074907248432272889196020308522238783985195394984596621782362451991911048080783540470042196325394253314168495239508198006848048414343931233362828309485556727075766363677327185710230998135550360883230197532728403463679681560836292912506296271843811286956901004080470487239448482852233593755641589566251586477395657738028890799674773046876457426510434749405436345684490594624363167005667242451294020771666065806556039040256720962869770934825637707765114554736564786105616752209044517474228677313130904058813146859928447729808394741334016587482276190882641069094514067820324407540665824302117042019160079218553967778768916163526610561841596699715400912476408028296604597776994894634422263437989331112175119310405451522417943271739262677724455132062841071353769281649502141959858121031673505943322176716497458803613033090380289224513321111585286955559131390653769588973305738178727084338608950587159734412266023433328097403422888005269616675359849448313918536566149667092745791977120195916246290616974293499386990660531324656969721876608019951005959766771319392838980019768451180375246775372079494971549768368070821452760577394213237798642128686023425075550469563820352108489397182569263779091992410381656121939497018836496134855008834554587040916627495862200498402174105492787275565126817419823543480176992924896583544544859133409068819732467634433794895991212168758618217400543060078339673240917890235571115523474913236183225217639645444801194270129186721857312911518229390808254368489320188904567323902344590647462534655790199018825156155241789842609398739042486705224185941112337511764122250754285454736767532510329741108567773452447176055190002378674668181229767653695099450729158791439266189918431280719202242584111167827596264977989858676447058110866507858266495658983236560417534101373431753898533407662552925933824904992784704869407733716297465448964747188386542696644845658064471565226037088607687913862380932897708289594864608308679190794654991832755967181349290544439520042205503971618486649740884352963637882243947422928082552436883412610108243552173503807064224502585837488695897856006370040394936071697463574471787963556519708874147551589790804543272560688617373411558528548116083549563960447472695486874888525955373055064742994417776890378989575704477710733942714285886329518640094762197899570459018370705406478267950873019620669274834198474640950213310053685065653458842433162869860864394255555505816147357929177712774634332388056545502807617135756428274701795254929450389505440017250783946177833419814833412584253821890770523987902224695508836028507821390928232621339353017713166921786393867909618778630254121089096475512030329680234721172407574505540885823755799098935081984039283572714483510376249087455001856141096153443571166751992637115696567904714957589458833081158184260511618296641660644622549081131423052817393968148349366625017569032693710398181891814404102314638278466047228973786499355908971458111642781504703988420078523844423996628864985282386817638003405056126455673608863444296445665199341465804855360045443851388385947250260716721418996533192852491718931809348989970471530476349703069879521125525854013940236050209661860671251127562450878769988536624666201238581871949874726292739056121279912247510980715495380931122948496062391466335321680903567086785435644345220730361594536566207148077211533909352038207177893689513243074921801491017719884675563576807885617230422425016356353394241168412389311655069183792497558900990924504979691965357810562062334376553823382012389576546639072559560692264286776933950576357085926037912452493793768567121500635862446495878650627671926115653931016706188773930889823633143231986943494632645167861059561463572339448546881559375462919275115330349370907535369508313809311386936653110686467996952905544055912634518287242765551514078193951622015614976854789028233182513331930681425349141916556289954641352525319481826464489304788539436807245480808442009023995294936950036248698754704871789626470525885336910652345665971151976726724183465677187768161672928274361119111116177452520197143366279123308267010224055587739451943713303262578857725616069915387202752890583011646107725595611032362039892028625050097610853754252791142942794605130311981560828377663540363665095425807410815035520530812985626118972455191094584270285283128390995373121899973896673015450034731711734457203557304607223147118393067549959268336924552435851781488734113735069581825311655017864690865557499297367121694152421745157575390953241231555987440081720903384436334963423134568181118974736100451699935825626653795227591362111519466929129273467079918817796683669465248163936443683912957266225178388240573702010307987008325374655681797515591213749393883668692659079207173165545745168803418493534824117227060342689255249884869685522296043633484700359612532490770325300606622927120015288602787229200256591711254082286370089223479619312042634774135712687674227779779811469991118121633941935570725751026311702841226341388646419607434386626713009316534212024677443812156350182373052839133133047398853415430434429983940904540825811521773765623192522538489650080759733590274360622421004178952515985344132548114065877616633005716401199878290011512977341473091643110372311876422852643446682561601881609904001663553111334943926128005215839155681876639840460572334667810164879486180284739011836398529014753366658640821443888981062900265866967769297660635084518158913715836364986977462355925826881494955665395967141730047318643652326955451706589751106075904652425757417569530836232270971312177956288917082459047987526376302311883731787735320618692576752255348033253058526357487508783221421604645205836098472856122658520647586987541634568502108959133922911579649145246085338984129771746137985288960809920582057621684446998989117346114943072844331611640646287877073703235084447484278743863499624074576796248366347313173355663820781697969543566369867213928423820532037343115166159035347277644022101046907448329283122056006660355462747923823717871142991068782415167271861659023067177326513024741639960290067666752600762186988283318679317384045570492677536185782327504201543682491249454067156227267450453953807810777752614891425775208682473742358619433930997106694004823797991583766441887727892663692155026581617293243684618315849018730927989608701088395407012114598925951325403536031997437456509759786933806749690257778394376480936389549016425059123362769084416020087680872291983680386147721233320028133906362152464452777577809134914849626154537946226202541515377143211525484449543815603135870940185227454286173069406273548727190355716699089809658127284731343417211162172797776204129829699487084605572432249527639074077401201584870097129203280853272848912478355948365456397822074041929370398913921782968397258481984611020329888056427519290734004316217842582793173533760442899334693990854952465247922614220371227196573537864384981746718759817499455223305508384170752001972411117200309443414059348830006637435127348796840392284480598916422751758468062473164976287953011835965101714765426716828985130608298803486606585086929111524147381268112316664060438085901941384529837764876139817375824661397254332781978930786275127704116348267597288796460333397260122856447943740208899005298999914723561003212380900141764021696103155263827554029375254019016378824800583275777754998376351058396737312719583035626429182813078452622419975847265282301178795751315030266245793035813781294010308408412496348713675433728576233555049373539876612553721646368311314865428603708691685351477401734574142129654260174488828102305378807271453440413135590642788974487675817176137194437920286946416236589945183770419141715591599385338125373634933197794826671693809468085439421309017531529655618940872269755724195518363641064048829718305522846290393636232756347173397347017018077258453468530898038435363197683630830611640593338664316618351002490062674671797478402141983165516212354477264253884256810336564169984055427708547408481605360032312070919431367094520914027433736224235940631888408424622412551526954396409665576303908903725083103134726090536209245371003188495270312483303918374730760378810406045281909388796004804284236787691297392360062676931252248161736392520445770357907724534238134396700752627681463266217263387214633436350659447379216898457911615775424885943934786428449828527022210796256022842495926529894223881511857374003021144546863691957428796733424672826429293106938478394443589582301198261722782420790795049239137619165809401923469268880387257903747477072176254938698157832124791777884177477343349648427104866441576769904748086919951077459051862828528583854456376534044916607641517101587789735694700930204127064383628203144215988749782860537259507153679436477243079692030340449588461504192686513984941293215093227495764226135357289263481104579976755261615795157247085351060767555986621622157976214913504305350757898809730665380011810598823164124576256798080151440338042162987755610613670239478144995999974877673670289113049076585667285238273338007553059593072085017956135919315081990972250671391357334383682369938670626510713454013883526624026862629076199576459525384668599832604781944806585486445096754154440806445731863525780916427535888924261328800330913577325902985920159971216666607511216575094516030585802381201996499062902619143485016807153932507240678933328977086278888838528853177069667171772950996029903346286154511335519982542455317166643245577829136431060987606390247039144946532499283520708394552887040815580897501335835151135928995886825084961810860544869475975699323000948650412424071559152944000854100888247291811319913730521833120992533124311150589985535958295826355330541320074472617643766390849016771852109315049948575586919010925921406414279860055741321262733371327887670828006224926304609931350770715669133958814793523922382836339760201692702051257332487476610845297423764620869598199788736637587353125012157969410380576936831559044373575898997409582125568307135110740631472599939401311312920370012478282533798465047548349445428909546880163549774801795593071194668568553302251089870547308109557493646999180218578974308008873268663316004119697357135113169536549994996471549001639806443357611788890913192728719770383878047718074045869882211737865574566127511937919170370969746134506647125289145779690523205864441714123827128822765769439492873546325725096216596398249725884343922119804798199285062489894006843257680208981871815688766957767914611124095107757880363214755211767300336834237829410603471184858091544844655808497946565241373569861865410415614416446351745205002070164785546601717521550289721936907786644514014136793564579941739157379663017600575359517391315088997783651129510035458384591234695597911994593841895831178780455826389858126134174903721354675775273448396816044478371358808783588275604571940229760730556625175990199641713873365656314768635716996944248501367690017276145069969055081762227221228424171862792583262710526228494624957414580711785220524930526350869008798472665100036469045617336405572053512081076970723035387377598775454760272785534928921379538653620713438071271761244623829280443625859147986462679728902738329312770027614955637747607266326638740919378244132570240835344741883856530311705375219745074716671104176975460540624637070784334149171400462872298207036258099990721544098191066299533352143296006318677509111203995628496216390427150763910090756674341275070633532868900114770124637161415975979052534632057012762503638602457720858002805809318269985915632714686805023745217253462472474790163722031919950340227241599296995110458739154791910253851296756519602416848444027321500354327857741521252105315628615974175698734147170263165002675487411774891585879777224044614352699057163607237725655176981482268794436178862851580997137769075192111609111807674484364089433281124138203944540113432050360538467552159352482176949717918695975742427288819142661982093731050878721916572820003661758469249297267156376663169663119842584055284287736381015509514114091530607899315899951834695021053231285907204457470491957396105061782740799824963488820187468934793912081988617009908213448378175688175985977888268566977036941698037556668284349492033384321358598204424543876284367305947846867123578151618656358511383158979629036462762043448391830775333918608121153040673503520963314824644965606463562698289184606467677292054654372503188573762187485506568478718546100341140324758514383612950697525931714784527720125478795886216146126398744474909984384671850161295105588864149919917997365023002019259390618384554529506824787996375998804238514118208851438930664112324248108624394437639992920785548639551287343396663808370344415868528865760092114094909670038007051042743122918810233135078817067800873510589567416745784856126740034925057963041404087193155634113970568410821467033433711603970433754488144078748340942363733152988515861317123903357093007913528707682622864840475775862923689363832111438186214265900900783395280566025017921640816895781951811855068190478327166824433381874808125141777174512944343220456924207155286964111363690325443005780374543448450421227980500773940692099547975983414019718465480616893468706108205376607753709143722824055805712381257464471926190501087433014174320733738508646167569219683480729552842797432746683510510903003328642541343658779444333010948404769617249899029954666947358989429587773926374127047602737847116874534013167036200128214870875357494733687656198015153454945685477411777593956531081353297719421798227216851439772789432214004079346237615763192758533751884140451041929955162775070189614269266375046676619836614077091266072074866628192529242663224429972092915886725303180465939697858413962448441688228071659043244309817967509282441027462555761659177415138278359869977396055096655607224672522526566594270244555567195745177320152479439429105748750302406080625382852325716132768101707088039899704458739120376399232167835153267314375269779550591626799073413413569517252728413296011070502324301417351739469630110521719015160465931140658697704128610712346149722392830580575007528060876338798035646262860593691616567563351580261671411348392603512156206457661756305330769773889992513663376103933651210034532918209614407045955333972483934959493180912941757492642904733226829187322406660931038757530768456535216854783690032001055994982888790449255643287045949283485883220783534682757866423537698981311336888822190459024399514555419366667796355017071255620246904792609276354907136720489952676416054057023252620240733213891125373035454802862188615043090982643000663612364168044164000227749246654128003037703852236646271817271308492942965199520540814501908069139729906078588196634786644715918640382145437425523024416541469854156005645357508050430329941331826055072942612105022099497154182030206894908327698617453811713144158696982491293694568538055091396526067998183262609188522260757501124674094566921562117085385547542145954060226877421733216269488120083083277371720163203213405247851584245571511386171105422423980998110516104798461779902134536241287952145619907732820864181823078541652802839292263253560241298279577207824238308567341695614537118384046007778439842559097200208996838668119074089405202189726589350983381678175387660008281634276842954968006268043099502496635629585130551685668859903655776257581864877777873027731612112954808384876940082882304543090214679243918496606855808939471562442669748789389819025550033672495474251576249164297999152284165841215839334760657654314028559115940880611917997606070896332127553051817064321320816180450435830335671441282217204191599111845646370652448632842069262389884422877303937397185351946387905306543771733062710540430846556643462660858156635628500499812760781309509956493553528476107078749643554329283521876230236117333426868135747798023078056604910390149626685570095311220763673958833897929010747086971824840687198103390717623249044924641392638842900262490434330906881360061767005894490141056666195386203144692056887817248517531773167857651097453200195093551151820148931398458381185721056595108370441017583357968078077929913216906228211179612353864167309405898171670980127516632860861790286370550289872913519788141400358566286477247357032438773539614521770245871378623931341743653084714268231864245120941687001345092077969745641028563653922165692352832264028068186805305428821276896131362269143295761028254958292877677641512987098219572324957572325544814501307010843526561151549306093972705430406055851836128715433914905519706217974822105649712682855497787125768264148959797562217899651190832921060262409937664014598893468365235006493830261461513867493345969803255264707276620635091523718672437313953415817442960918652696969893629810165017783303510354679594805859622794958079919538983919834002482652129106595457849756204508283364057095757738484088421709925314810439068261415534002250925684125131104401231385547350490624465101820023645106202067671580157893843748177408548605863090031753347141394379161771366912247819008713473762093694915847776244053579292458946709578670408165138052441910289978130964979465896948533149126299926382265425759299112860188399881514095448176745290156312826076476582321225094129030948773967962504331283448121192749430512914393623684284816944170387822365529686591497264815580481441267146479797124689919673972197843998373566980822038707237417930141606970845831548684610381018942787451165977032338688744668352764212999906125913543260150368226749371137743355866363232092626117091046734332041291489716264437988792257558638659023316265190672529391705009195809351477834536289095893210074188657319205257065755825568753538648188444034820236138799327759966299425314820699566707171900397100987124436518652492044688580671452137213072418882720109527603013403233900156479505194672734690594455980910486019660474809210949733238917061746996440582091807302878885332802608933264560422929599412831222388987810276329018435799920964107133324493939942672880137302024706828030923321954672159041798862800447717400538224203017214635703622840791973405916393398265302263651097403907683613208341703620465688590313467356597960937221351466731862189820152552050127833200274742963556581263676035617360319422654905103382842070837989421151833426990148875897836619352163220823602724710868009868140202663113746319299464758404686545485671447580246936097332400329716764608169721353465705284301051473214819558279160967253898511889306963073013766257044202011641395274948968309375594099237457339188481102914310036703944297377180969448414914496408358268390735980377260109532120027946088751740551140467191390651270050989270074752017192139862735488760105792475511984185524248982258421348018448980650594519696341126269136144640941807366396424591584714586005338619587275190870741280793081758424493321535282404624914269625188721003238982962079577081117586088683035098448847987772140431572346669240580579031283893911592577063196776983765841143033079480270694216828195408142269675284540332112128476634051742328554960561239707778664443997399410709301975666189780300987209942244583342358891528822191133530064462825534953547474371374610517926760322471288578831744866945562945930367718632447614261636597243831693639627836847950942252262167678658258622217066333850244571334218498329450392396636853415190287581649762243599579429832560908536004212210621387183731278623583190914979459858154093627960035741174957959861337743861527174771816009311108380408617790202797758246023958107919931754850866839368055955900620320628372602924011632993411655352645227407073510822282952542151945176203799789496362698363027476408308759142966487288382385762301831234122672547362877200817205996398909189976167806357758844699422914913143876358533065730326761422620706660021002113445828659308686504891149533293433181120435708027273437274390025657359223630259961672089870013582612520984560897920059400593779401467695418635272022956096702050065852614324906600877541997900865319547875855443504917811250688874165021348407298461703673367420275596701238012394382827223433279535624102701251964645653636238229652673653379693939196980469324786164363604914446134595028048842588559844480479658385107236313698056292803493983184537329473803543896100946834973292841439682797064795899450254940257158205377088050660109309172196717235945883297670240589777454873511141885396386880349980919812818983055905614713569363654814644207844026989957796049576983117045931754836660991507642185112021731301430235207654777597052122707561405681906659519167805479209743169090077918127386778127573868328684029499697357279176988365007716319611249061421847280057532246179502645958173018663096314317412845787301334059986585094185285772736337385164539839586172246895561903853942127938308064524274685489008015867937018335110210220330619622218105661634692717211261191573998867630848943702306287730970453890114989605282528605926787148143051899024852642174689867507507264706061143034663497199740323806500638967477768598504629292623804900833664240131252844026395520279620284153320919217074575156271453988964161849198313978334629206107059998745600546381043488448913968093594439806366556488821325067157556771490976140542478835115222238557035746574174181899766895577464564198890460644068379069440688159947881984449608795090221365577019929389534789011890581164245178814836329045319814134425583344023526496678551792860886638449253596427672906695441528665703205198781498370068268908088676191929162086184693895261713108453238043941670759842743775627531475380363388737333538424899807142834015950963260706940887136632748737954202119410080449341119950211467033762171673426580797892558997524586703897465409581629978534496819489224588199278867798843290534736994961325409521501841754460588341156593719017221268785456598753112878305145307949862646857226679903249786960267887560462946113817549159971134660671132222064406980698403707035216260908123018709628712839160166565512368355213177034205575102224457945674509832900389214578265516968652831354353001408642522517822334245837524220303757228260804815331869633321344847978601813654939135805122273162806624773640068063458970739513487851954678476988497075828291435975117068390218739011365567619014776725255837973659598737312394102239864828218766517404221133640638898131943695869712922755863402810709194637057054051403938545351904051765894366987668026757526849652792056352485220446916489141629870874793491642691480746199736554658467972218837211389257052228735459863961208535166270213212275265076314854240055391203510659799954784430721790838576404017379341990468032357810786821320116567091697352950071555137710092366773759756411922084405934534369935630542340401358135344841277332101557949309703014215254915449831972355347941998744298501778467294176175502853507911217756950254608393817167633659649683685505246188898493644766758652099855813517299236517315181433287308553786977218913167658007632650217061187783543733598910594774357242501155236623408172797033421671365296168105135266134299355315697382393434840326568143512690306725898610157497922779019284519078766143342379533956284367135294537355361026543648190815616954242211240037496942669475400132024610019351425997464175665248805736062501564901230468538927529004172011290985044487042403699625779148649527003311750046447641830756118994735160477508768789385926178041076284325403481005938965995004915696912311164324254252108138935067684400202960903632720995887527879433556320065125334592315475170797425406847152102101596939726828831962301870583611863264897304214294764017536357568820343789990413506487899078015544556041625581971329418679178063935195924484509682695465086692183556609797597818754267840784195140798561567386670138578319659870542837843981834623137256680657546708026010836188308451929094016870721444090898005320608575193217657571854959550635588338608082264588530911782258280969028101972134944301197590956210046208186811029085373517188897109896582689029386996462430546482630469958120328667516743852690572267441052972659335044176027464342947489696652906433429466140006196966933916095426586120381052884564760822360440968441130424229657100537806304289618991870118836552222016188939182709497311852964141980577196994138169927478022056412212254038970481297066345543486004918731037047107009841589000900227500756594964110585383924820548320749073853731680296799944790921017149071621452266035752217807220867453405962114848837235645719657165214932817949087580486558157805498429157975275496699586726440414386208833565218102858603643098165433651236212244189872548706636658512365507235034724996568047236475889826556551488846622444889060304906722112037555795132537918425999584439261291880603244875113406198312525595934696309527969060135862632149587770150592567546637434238096875623513739796385750887761158124030536386315297362610542160250734818321323872431686482955044047873637932463958932007095161367045287068953098427516442651069978873363013509038965937559363587385622520327063532615706546256683080268050297330146855099582170225602157844943893707497158454281755407985890750911169414394881013864955926870115888989332641050113442747405018492730937907903665249223549885813837261786549035181501532727993315835341621546788957277592163428227120689019997570922974415033571087616500942965834834768648549669754898905430723293020962464071612332035809463465509173406895734088674418492551772080634738773797271358290142669745691939054368497360228687122014079102410482839641270988915970497976893893400896920238500297639289459614117069641970462177824174103738924365733802628963543983478331368609338999119430519059444482665893762952244460344650748373112167035045542711952791898689837835992246678981713733228788600186815103227427925021529960910939532719755158903622510780119894244925872614270250085293712256758210587431817231059473044245833183568201854268983550232489859715359281727644099037971563622307215615253560449217473988056879786480377497405877731333508225031170245928838723795043264078184381442752784128090016953282071670117534697847113412188535288226629725660388687069314200768248456281235305120664144223219688375923656706299271776169081212349388423726460181073928479771855263073565001085065434867168992896875118704243865001893752248726925414169741229508131349606073839661243256164810152591334397699495042609740977061822971039137559742616516075109823368976728827658406799098645893354511055775952650559540577372761128599361113950747111147344620151205593454373732580175775810639761061794549647369844811105392523619587730041829770184875956418510798948160432446543440545483488952482416458538886675975642599637987809928264894497528789301938666284182444707283722516906221738370010189432758443263880387150581179384761751364944044451932334295400979134890269778791530091026087556188578136784368269304839873415599237566125665986437553617799763859400019009460918119169301864259066876764480538308901220778438794514918334188073684004477458366271833220276662854246911002688406860173912024235792569635530721774070263819038710357567108458770931253782327686077899583024845874743906467879187317167722259507510187051366718148190024151545221074932286811065072468370803545226412019193942344829996267785338693898253920730808737530352697685185839325063941318773490662145833691502990861756809652395646238014175869966706562256247336257621324424545702000611407071789827675706370702897958676555042926859685414780397741145776206128808451659732614185757327491397755102796561222313422091261921466192376849052476125681387396506407730219706645476279437765139340225120998290215193317074174083217874716535604843579847798119544025006199942897049528163550031993175819175514291717034071030404368074405827681787756528268173242751866531302992765912394216407895635982570118796070033731200458414438446467782808121177429924714862207240948802153704391986921789354736467181031626144582827055558230902866056649762706837251409624614975494161495148394344776984935323218280792961704787579116918798510852799125227354846019213173836564110080110139342499123383680976204850437030799992323071544447886180089178492798650390218891358792731553865745138979529011403302732087089073777351468213791269346775030360736340739768814785410403547906664334263912164434666841441497396485995865915742734983311994173693748324360331111615168773088408976335261298592183230583098939091044297912854022938218882188242846469030424649390800169985024829515809096443166692990476457190035721397449604727850131252645753036891188488232224363698863420988139840751211773957449437179803198303554590323862237738057456523160331685730057224314553210707888005343599980257750655938611081250583031280230746399163078522588032710192947704145546803321332020337146022111779302028737550085464686193103050877132135092028507427779532094080830983699679208517823695536028194762470466518595727578569734320089005922015028866917505583096489658435644530658593182540781040161912950711046648239408072942781986552896934329003874730978591175976570454578945719491056566390348431904468919466312449776352650921032660899891973304789093828172943792120064253874591976750616720200142211977732578944694051858571384165174662103257131313833361954546520972133109169197129384251619298403624713000489102281766941686707702519971674307890537948389987526044532362163176608654575868223543678595927646643755452387379212845167626444395962370943145876052960450690303400313500207006530629273038741680286560524183262459426986154295367112733575186323120381624192862840806152403315605636422424373627325090046294806204226415424763089600369687331912534662682653184550987067934908638217093395592573919593303629785536058518745462001083612671913045275378802230382097358749244842200701011402597527715437473234075339240466584116045440622918832155683009118879272657835223522489933548715432860088141256543159640947185648627043640729602665361279263493725478883144124684503056825680381511306902801786885939213293025981633498310135813661307595945291321018061758388910164099974519470644429492225321243738844844353768041081703861896969930966935694963887604081950161763718732603886996393211074817128419559337551605680616780011413913943881822630213747385991613567734166485850716839486979393046460993621166681959809549754836284367931039762128788083959750433485481493125365033025112344980718057628305674338012741778759558216114626749055343389927610440706427123087836248987824681798614590125909886274400454018636248220903000661357441528844252196095809188927379591440561290238060327460929946762173879319342395254268085651205391278570167428519317972532002145787491657089231029676315115456008364124229107668942788853195397730262096182424275299277551954974830029582773794351747928020324159121512790109162315816536098762690028188363612175793091471298754525107461844171600774210992630618658106801027472464779844500194547179022436421353367768851440998135889692384378174203002073185319164235486639730700921073005754331850453475674394401078590885057750811674801934693302445695764688284918353930522753688777239275774925247477799257090591145551732988710864559306787460155334588337682576758386680316006209429194771410880697923247213956415955674856566664477196014068683566484588886718976135344991690012175127174966134133371531148512043810683796622116225754228446968985782422546277677038547109900446217204780150865094420511583450200606636188036469200600266664850045874619772172038032505825611055528274279844614193312816363690014978311972013350241772397002895515342044092509610590224452608346108889733364117285015219068218207581153628863319966703558131921307130057822906722917710537440469495362804947859778708355255841810837347281421406683419896731877955101557791871124700244440926920310523101085453182354207273459166560769549481797847782719340537871389649143222703773415162478043280939249063536058057625323873332014742203727446979265907094505924138707829897747605051440521131313155916093491746632334427158995479491292853008633492413440790633334529268733810651530423578249793263049048134944948753352037009337937326665566536399869035563604573235964520209878939754059003750798726622874301289313218503404796067402540649674805547664449052666494057209741265403395553624470750935708473716554615055380010865871911284843595617038014376196711875015484172089387972416633829584896353192626494858544182750048038879747577777053474199830012131552058726592829424695131031646444679983277594668613024499242314798990643551769694464538839078396301476626752806099681799218269700419682664608653518789952845269156185462539189957914858212643067750343068785814195441377086991178914838876243513515812993893843336943553712410109848434196095568620758088326230868224132494779076587014643519106199567578470436230773112706661278985108052503249385353688555822086992449067376013824703007709595862021476808415620209555839369380543322383844002332512462696172963799181226711320282007912222296594102928311778964033965146154159776418869551904207285892968251634487543583990577819368214041938656231635637816249201282960228217205967829078645661263662937013098441424290619643540106902045370919441800540167696834985598113603489468222569083303622806138391749417753567518141318586282211443930390397142165141599574732741732957767278905514028307591167631966688117611284773618906919566881747080035804246161551609734299748728603707888300763033025771595359700528583163025120294968689906196099291515713969457980645085024353236474888026835220891551837355236616552623152856871824590358549706357391655114206374835053780419799910263616002152462844464387961631955822430722738974041055930785602859129116298588151154234417225437167761702748637290056443863425885470765668975732151371517125852551668893193020024025337141186676479198263829300139750081315029046932548194975131321293081473459904014693704594218376747175780491481668593430414229784028303536187463967819342612518767635496796493779753131094136225668991132082251307955048858390431906675433640979109434532835319446922050706498374201101821822752226534126995880270890818047038025540732342523005939282391522670316053978849516806439010184307140494703095844344791113941721887532382805334935067569873534737437942995772154811471215834684998160735438400255258332855199727419907187648070359725685582301619817305323842603484755081279674034165384855403906429224360922540200049392280160886141118437424415740736117318263691969870429159389259731082847163957716172386433830600436444560478426754884486158879112362341633938480465057565805694398458040126003842177393117913060422089907607713319026057086927339342982254739440046818802463086554540259619935506446091537961978992676360932669816431954564730400927458648683971584426610993538670723990159006265581953991332902161736118837743200665677601094230320747898864116373726553991997407752129516505604363106961540209762429138419057734525709549824672061802156458695220704852801153210189352677725330907571634035164675424835755563387230033029758844473559867781453435395310544003316982449897483041002918014903319265302481050471759075411221467984215677515197767100651818671849970598228255464741748183652226960140919412446528380844480797584648977316630843558763098943264514792128019936458459010451244547113264202677270994928378160114355661328127581287175143075012956356316242412471185695042805878909434552379972516021071832092940308516000303118212327825897083097007794339527042685883831369297772971978603798680432507274568006101062186420383947787364209737480249345674321531470498180947793413470373819491663372702675582958792244996022982001507494014948111194361836735087729143015207748796580400960468389439961132632885545986299056762367608702102510166010834033145897133086452581080503921484233181551964902924811517923721301570465479686415114108536996324544720995275729966867613860990941892532661544178479798337620340721333001488422000384297109075736030167606437197095852778347240154116319508041761549666096481164065921127443035076957420435477266551066777696442312172270167303587959992502561228274819949519491628949071568666385217403855192795770657199186106938657233574156759833707359023991161557275474557002349352105081287445628614455604077732857971128755709283233215561241714122306320309959696252407143682551106867968767753266199766323246204160569700960599756560709797954470341869935891372046900948228485151681219732594195454689310242683481369080964315438200326723459789216488122259448195428073215735935848531882475895365922645442887216867021974001485865298909098887439946201834650734267164931089921043232966637264642197381681820159408160777634721454498807329780487444950717079680847187966697218412102681179927077234029729039891334198384258983542902719166323963569095894391050871482542539024106324773502593518372443163581537648505811914300773517068559758776504808187010726607582258264632094352123405915011863014554115104866044727846811828598027620045414171597878473900650458093761804657460286853180701602950101563617629145973397086734845676864119558675024463462581726431647660451128566112525063388198322777222954471849173665125915602231639665829812123407711956038157581946579535441605907153179051834625183845323204417876544323990872227010759930444160076951858434669779224339722195576899706439847450886837731702973120372485814190059609518353974140841794961541228688080493434889365803225840352858062060737904172233610324946512873186862515689387886559932002858219413341605331571108508742224322959691577027364449520953149436792484746564671314790577388293346125439887606351693725066856392510305738586304074723470763405836054897060707587580516146206289544880751534236803571073059254030708614348232486695098684112071863422563288645821348884071323235416056414106400464775823846301659568319355247516590646778501866131069205927078451614478140382671755685754253240651418393858954391698415544542901076645794180332734535482708154994831799032659666338906852495701818804190966506645633343527535518839688382992808118587346612909595878450880950713137225352980010729891549739267109893871319334312274410857253053307514234469317633782821427532805302509865388385934045121481127346506495602571108116267277966049261996573062328451941119362036111429753594992188332395177580097751487666101928656159869668220248714068394449727517600501666826103986899962992703763772107345301355305813269264742545104659025084610204256541232338458236255450223183431182273881143088210821415607964349083375210287327221783173356087778852344235442582253063670969387558862950239024952380771649226761046253816714677970148138759444964229875314247452377568693500715698774135310737878840619724108036041066495842119177982290920331831814213770990552039707462769547291495452287130235533242250061732722265927154703452886571634340427761377896622335477776296735322434750648256899153585032044046126248081269500023027969525517644194359110460904168120760175380741001397337665836388246279982317982027622469622517186870856582770576777926407948862499029454479815763021512852948306624172529379150397549246010826471907710092347778629425506121890024558483985943785017625872505860762465765557030120117094879236177376122251291043240715571077072314498709980251505583136013145057928850307946810856293098601421560522972703397703853109573863376575332471930339599869310041098866456555413365596330317425999804651565072365443303034550124406091670621687759483239257144138170034673340020771735137037813743016164845844223555107070545820752184540515370952506506278259786511830363828962880046536060180449322619894370500631813559025768550131003416820152531685105909504303663240404086182499580653879143204934402458925737979836319148622175976029822993063574050910645861915304535233044986844335257361399337700235311585630630448909986529408365973408021412685293331733101017032417349830971674555590708811639581938743029415166780968489026881008443614688250073704999900164351855919067763806939911025340612929999340341226725853587989785404406182138209522495668280385593080119839590093883949637282809634032605027249756662290619548713229894012639307601947826341120507296806361056671953728363068979683930766292184005469451172760941854163398004966708705635391761629229128791676958955224162121703889271775292983361574903394548998040726376985567961430691246663952284367229487466209433748970037601284070290964852233859126254815617157389025101745670795872632001596106049006230617950764048550620934794230818360042059642751380279785978458307266700414864945538924772743343279844322870588428817748680835821898915385321126681873968355062586384318861045970475261347981429160697021860576634770857802850384274287896127637673281631870357799271595374179972034602973498330624446868635682329577980813785730149972609379579625425715691151246816172537074630207829109125539720840710290558432047559469641728864589640197985481429353413055012342252540186260136194419706207877612346966575698130930801385791273599373858247257466014069742689145477828607411921265752159091295442158029912438632058017882703191089131858659964879684192348718804647057953091706094112734376173415241344590281358084067083341195066462041769037588901849335357417163614685987617601836947699209661016048676146086573158554124665958876773581960484312709664018752325834908097465457791840987669084678029028875956805199812838781731834350379427865496260127956661121925426416562038857018466570294628749388040877876299718310302411007442231023566639642806895842463185777744296415815331600859336538677483895066423232682526269038925134520071998285563284808010300075176295768899937186735437688138822722772001706382052914419711508688506661243580015647799979558087292173669897848823234234615117519415726846212168077784283848338813302132699058408160805620419917862261545350134224936498486222292455483627622012866294011373294039698778443799365302264700016691427255700244815600924359628823121148269804781990283919640658301814874534690812830691149229340781648647256601508197624963727960193277218237909123757435703422870504358322141999329687496660309165500821363848848808157480829134571104576509202405306447807784004197303384278768793592971996357592642323185746768882798358829494432315429781188810746411492264485781285977222014484810286554341748470105745336487373975690650183269499159574110205052192970234144591718571584464711117823059505937043929845147326444853253118148761547753819093880254542193708026994625166591043192485898814070139253738381861830345928505336274018445053516088988638167564767893536662569225921604611374507768437558852382081349925860640918999791820423155692297591283370381511682791919606086956362141455702202703792543755049419382742331074700820878224010843319346616686309333034078823299514686303033973301390787304056067356646181011368617431076683810111172719478228336624400691589045116928861462854822680757010182672927492974119162496943070595780733016588493121511824260894139639147091079645637865996214575123147278988938150517451741023392634795591237714125723970988327189663134206044057002666956580655559136280250364248597804833719632654809268408918785909793285683647862956358771567668585566852008818484517780494811799473856451027485324742055444423116738898045352227886131883613262943980831439541343659093186103542830206835660387014179777283129465027814697511262655840848119295778572367459846796387848319761422077584243132280291765037539491842432797891928824536539158515190307478736028855027670863411558360170466367386983704289135186850872228505969115691977922094855762797651267815833194567782237679391999649844039204185881965185924103928985711665292378720858363197647730767051369278480221667880865912185677601693385537982870469118509422918354902478424591152137708596186765324177582855170510669991586676797434932980469482340719856099856852375040275758003980695163713280476276390097834789522658834404804523070241182704189989952832495303657898514680516676783724815103933371257073127831858674291479695071103019639780265031122879736185583913284352235329988939958482692309415216285040031994346394577506746739685317232439944197889879719301520596242194445476403616724665283024764793312909631078057145845377003840044352847005428447588156747879892949693999842563228049434165190827642342712192988140026040039455063430042023240711693755223444836022382733762087280763006711169632975402417342354667464959793165130658275025111572275844760575164701116580140204801161415778125038422550435837186723270417150562382721351906866981035642784646663626604435641109359141145797785999995156541043458332207598277094611677715675701726552574402399916419695335805633613617151684971918787562952138475956942181686889762747857609915683130984402990544141746902041200471807302510755135050500626310951760003971345828869350888448943892134771431789088040278329008024006674902577701487773001695011298315695555862329983720548803569167079046250325398629991194385554061792141935399834142479757218946362290932625402710723651295661431768971390643375458242431769609052158103778875319510521480402827430055907692392914022166618645827652136601328522239853389784257412467703492735575765581316110692283158111073013564079255528087261747697774734836307354219308116930526611633767336736586848066148865099666222025178302478368946554863987666321080123080331517011272384664255968740840448629985878392638681792510132640672198808319914821495048065193122937377088122333663067451676109519190108490699750532931749177508184634909095326110543352013974222209903868453973026916770075960303301153797193061119061687808975677241920356502977760437370296956995705938937604895197850091328498586434880734150628608290485730883606387975075823973628745286516895651202601996686535988440779265597714072324906778151787987182955519528138040032463424603262621461552164370229431028690220211081692028738119851725494997132111527842740996200118448706603320180100207586624749071952314800541850930141388574943120303673338385295175395704212574905790231812568501608775196811285611220489405915894724160795106317370228751107421699635303679212313548004474303871001134332538229071046099175883443675834408547902842410922522254937227697007635717128261253911795946290919929136062688329253356100608366533374839034327836708632933601966735186933974497867813103467186799295472055219109574744365126914576444852117957541188251235797495496665224217679040735312259066230975873028493436606620564223845696039356590450130300876685209008268020224944385079316415884427749727235597276465779776522541845259300364525867134128354883119294909595429721415776344191731362289812578393933019236619661641438727147695328707927770939657723135762931695736546123025903439062875793217379976791149481848355628722533177449921784820704084187061333630028086309332958103912342008322513098528882162814252635934240694486598334474525332195583191389125086535899197585742526739302157454696320840564645998268717230312703369974981184789801298074402421317902541628434271600643838548750106559009127232233095175098265154649309829566591530230247383429653239961773909238389590854309733288053531524613456626766603283873725896370001598809206204302513495268243184529017788436759212837087508889163479037627957743721701296596823448098734325357049323461048286413311844830903214555231504875120357584982038830379646077740997356299240221792745001358862727362685465977304908047415886038257002231676036392419259654875840562208091617056689626306129419147895726176349943917547534091263883928356210309925705256992695652210139219683866936110039773209513548947425834320757643424172800980103124312289552470111399787034529373180769281612762634651102319768885185243465599307855092246690178033351067313595929853989894342116429233351391417905210132102194613652927790562288373715999317645434548574556040529899097856128101858996044965091159647792335827959510118016877407369775371688314869957711839670791773181544523397090497768915010392507007625461062038051626890713261675568742245324388084526513804011936408204392618964689777233898852565868602853554630205062346983324654924926753924750557226459377833612964362554653191319533637927952030345885853312522663112051087527531411717878234076835497655855734581557762721323138950132683024410245332165700448289124193850684355823952647674157354619248767642771260869622836292882440772074028537330098431624240728060817038523250725034836013302669734261642827749941182242961854407863425656429143603889604867249912747974380251048367814396202746432409802661262509460095924851346577788915194439359383965630078792564827499277744716338963149706704824046800420944129275799959052618670967315541388149979754902256435039401451869890155213319437906200581998602004173508734781355118509992710318514898416909079675813058182398539437186763128271526991986383239914419512632499108793113131168308223925392675108389742737016554679681341803230005264358224532874991971621972188895229559728589057755303393753490056079763507993675260454031109073035964972551823783804623386443182137694886315261925965478204382883548409225597727888919759649173740739030979643876819385232274460684019999770506775459074172238720234128421604598955051598008481845823900707888768387833419706416101242241886203073056502884296241097508913721206840347901597982788237546440104064541309108831708084519630584563757854392401630840636364611268227322360699672648036306553472955713375166968247014111543058196244061215764837673819500995371718706660570751568332028044001161048270879392318071340558565581618729161566709228360369170876829652756227554551344865866378255240092504129891768115883237061982503626245159658885625206925504593509108499723324611608912135214830670273134400529685987759969769253456743322795615053878761245926894693004119319637835783913946694936373876834401216352025940519041645894864561710279869107560400987717992517989503337788796270676229017420282650864904319658566057916975821535379826039611010543468672225444995726513723895702678730766371268758904516240108713196628574600495156892045702022357657437155767745341709182151397967262449566517998185931692334298096404957106024387601176827348863245281973318647307968235997433095198790324167345224952031250356370352473042746353666346939358299677535311443117477305404619757438866062919348614164614406897419468233619507192013144782825756775953991124392692578057662361756820617831830309677660599052595663559763634056013514829504244438437354278375183141934991335223850624249445195888196304913635759530186977546463389066783628519610590416532328439100430233431615431845919060293467342968539171263715819913966551876012954907482037262977047596412378685710643359848662059584631298058899834447792740868571339082478744657004648286218564452338587725654641922910005217119132066694640342393380159952216353101769207956938379542544011655005333555797849428313180002729517997197776869880390084243582724423060902068439026513352976939334590036672833594227833545155465384140023587358517149081595377448969179797685814088949965205104815383366604328000904813605728359481230325318777215934696930837044376014133411899247321138336134441595562206712445439702163791075352499144158856283465105676474246867339395789927751984237601336800742209308403246548543036194735108268024608644846757515747906650443571269811591528372856301805888887311829317366514944170584064781652643995298204525133152426123329930472775021539142687889122833762944570534267229001039952232018432205032968344510316235976142613880173782453440747203693075412687750109087394180680831001213814104124711427497422789315700754040484993103937244404510579000805434212202425267190949618317194436169846737292938522699965895665855352288085835778185434320845700370637867176065177003481623907027590696430843188247937900565930908802789087749625064186217461893752316604796871438641392851689825864472738293179026790243433058396933017239653906135831545288957653513424993888524234617459577457323885001093250181125572941572892852122413055124304739294126042805735823709050265996448604308200602145297626785264554086371617030573989746260971501067453122734181247723968554255430531075373053321474052417080169400665128015570424388905372829889150138394026871223295403986400296688068356413806733447451543753580538252533926505140346775823354384987749293028114521155872751188961567684680215359941005996585699598506060652540321803666115432431548730732714260860008786164666645609012459867977570303793382045473180256666845965109757118963391402659785514740628990230592157767188835045246548323433922335282917171784177917220583559764666499288717763116144060208104093892975847795129235362415289670330660071136091867762634462281210063784934238984987494163163955739579113441981098622480705377614311681448198785840084717974627769703054305486420236768677534203217857621464721943222488782598396717223646139386413440019849006440482664249962528235277092211023164632981051594055020232970273379539917335015362926410645432040796206000183957586435354023766162899260266623632206647642716971788266911395503854831468058316927825740516439231192057435166981466937847072883032933126676194812483825384277125925178311314835380500810577571391756992103684973944866854411206258847983842132067063870407856927073630172094465737868594571309481371704971705093892477105262431550348812044047498415336573132282923592193887123181002558383523721841318412735845321695138474623990883317087051845825480673264142096267932828964072090900582117830138582550855971637521388148006182536046802177209616422679661479505319144722150575373767153143329024015327081864799170810438441502567317935499537400522319324294042440662273938619818545491131164870442781711466419140051780007096673645071622445425951686761916681226239875137935652174699467682786905348787661107897677571033623289073838937877956933876520886755738525765552950519470090519567069459613836339036290932120058135020024544463444942301163431185161446654623561862753892635905407949817279973289862310146303665597802251935604113565120175529964151756606785217235735685148457062337137822767665363300414894379171245522280602924020114310383645405346631706860297599105997898459724682155209801376114882648133694653565478486234103032469822813950812930057252743935685982887642504412119696169210254716640063787307983650414259671466540801473463239044225487815530143841992874925906497943532176360866776634929740181542129733710642517507405741661323534573281721275359691147438492578150047494013313180881800884274934434926329723554654348406108787597173525979307971289087003777872105225163249610175647579598497606551947996782801684118556164682118710684252010792212311888980154869232238481083809680118032148148289435435289471997757314880147018703233994026183157970037052635121283282608959775069765739461053498052708154524763310995140338995765105592872345718046475959215144441557148511263334772212495230642998696822139085558407855177161173410194344900471499294556769751406168914687198334284456976215039702701466753853721840275583059562634055923309195450188726838817166647996666600622408212550633341801951263712610746378663184361286093667271662433885385774004894925918202347357990810179293519851504848633032461108219213839853666745141668796575010223259671514412359640115182431410781655885260177021538176015465013671877837655021265296056416352817661775527614684214897104183190162719032918256003431212541369360202721213827722059452470687695923976296905811903471501120987508904662501771626634889105837034797522337380553135986151095963994708764971312862313282829813536345101416535202194427060599717396152982251382446460824908050081043247971663280237858351043840259940223107318822302360883643746801563306196987125194810326254520214027583713475331920645785304993378830173427761508291320318748003437517868381749683863880242913387589177608133604425748411362793675100784334374217511966904606790256565497955094155252467455863171059064187452816701990300631025942312068210747491724310127276445646355059915008638510702056656860450833865743479884189987052632027805360211562181724184044064858191431208724883093747800170206718248444015283498002756806868917913528393044855849714162303630526960159044771734647987009157675881592004393158368496607792790054980521700639135401706943649393448638122865369908849586418458978052104244073059729431557072456321953912644495813618959394833871149490964806085447395726491056486008964660625724511641718457475219786062408794775703505770890703184065044713289748896458423852081061778199467256066235848248424005160364768234761654292924378812460449048687763611956145093386020423620852392018911812097758497855872810457892721561445281231024047178847964778341750576018165010736328074808234459757857827138585045284232751883997684898419111847394557228520744980548499449151308580116402929984114010149500556274099977197094351352352988731251847462627187113158146064801714738917329166937823103562591827828925016866184658989773772452945276023834193116159143215345357579294665074040782451789477611946536145328883243321132046482601161128135853831690927191952817421882957148938481403064827329538849608171254659332334723670465704691759155754329826224676729302911786803518583160312585941916983771029839445734893387026054284589581137337725014179345082878574152286009055840747677195126675948622088132133527561925972843724925516492554744932495946991250455618221262520292050090195503477446012061534703039998583385491393064839440732045763364733950172559827803833457865912353513930532569450451907977220067396533567140110437463884108642219165867407033772893837671520416568120591677003849587302475114484582046813823472898304449144028008749008649451006953063952365915200272579204549066542732107425603702454926777376358102409285580015715269244838324017954889023619334269282411841088379731786957020648127505577982676415993687410855268729513780527073112789264939135888930275371408145735856047760978219814204343815952548193497315839660171320338264200672627986775204752816384230565977023275265844596836862402014272005334658474488886746804131584788168449492016261613010794840314357387266754302419031376473801434031970535059733160337384095385581508930837705131733261027000030378003240002401137147799329136874260029649150281512826549589505411569541967022034177700151147996886484763935095790927233634641269872555717284343475075410238356091532119674905195004398975604779244955580511986060892340262518208290875986861259329739761661862964724109642651850686617266111619056810478308296556397643867319755154667019990949310186753829033637629989566836129539263280695863854663957478401334042152395991166055999568241062862480616690626186019780778916857478631190256698469879552978494313759403300541900575011480570943723602445960203125696070158604373297755551406416629082432182685717677196067906807365612530240733430855591958051529767738180819918311275187404986428068018360047082355164048863393332211832394871374267009318001634666382012540961731483896150470987549257429183085609911793551051005989827570478289417373512620542427015326199983046579230014547175983151348204452130277924883208909120037175271646869709032930341088862133909069286777968444207389267984185937070074381036554975377290213994960421132564408085415852132746609207038521369644780075921534506768185846894409494343104848769723077869832168739808082649439257596091788186971993132558392092689689418642863336632108653625399025911872345035572278337130868575767337118057459475918728883443443636975501102822073659776700091373071039124090195094356291334608440496188041708821504291287748588719325601687071578590704783937679423902814968115915412819013781773992849707791201091888724436181729269457057934563669857523610870258748590804530933913051645489305192306679270180320235973276209944633300076617841714574745795226506786033610090967945253714075968133065127373400422945989479527941041272857410882064719043986148897924382079624844718258985126740625250292625348314011087067308975133851945470527945178411448718676508909482339526055573058820002680212449891324372734383240539118636879333119631191635977932716809045391395991834636620141464177281405755911009347856757146288692276339566151019771631271170307101732026551269860323784853460827966879361306852048544619404738441692642335660679385418360810478945731377215561515369175153324633290811122900961996207667741291494901392571038631212148285612061340090852071205258310438465714092830497259567130605788768296319695412377655872918668552483423709411348957867395069418003391519823167763183958217910196204897983918820268514932746240143413987186527935428771474924861176684366912591404939400072928833491836424370750778674702715491434491468928670288942578287229453071327872115212544015727220708916584586917791395119927469490594842132810465566742568557274013207420825935569972016988536884131952320834133331209628832151962515563015465173538079017089008019723415926325370534451746604896927584731919956463096921384698578800609545402636531211399902015849215780634426238297312910833622481751064581482824947417065147306057616946789577274505166504185146020780212261657043532198706789732331088377370357453264511985590464573137864441773753979522555428248748987607270639397473252622872352678181796119175652811101203709282506912227417235442095223633554892324997259376238747227377491404526224693340431453423260881419401588553252740526399421432730706754748954742568097506465369920003073705928318224559494910524827439422190826394298351016075068138178244873450740895534423583719980983446045349145282150943339507265486867512100427543586858607660495525175520660323274382468828012464903016418593499226201336614724992965256652912009712296328234997389150159468394573376864713456434296096698436951335854664715785438992343073884544874166757129777920769044375527025771431547363682900112474985979929129234277088915818463565405594848824423997412736452934497579373489909152087616548793989374409886198390927541446073810556745862586213904786357298030294680578427874129361326850177042095510184159328476309023951728129014961843762086941028265911224441325690795478577507912173060337178594762814554074047775044729582107713881770019409383284639998021947690192007836719116412469083366510821825970177623513549749858367042014735934725541321178293187254071222871988033291212959537933538392028966451266721939248398556002990240333179321773857036567601633596135003006877061878748083892442412701297078720554902505338612296967820413097462438710457900769931779692637141072516016440311759493475021955227835105564779662411301899483506928509832404927162406939608980522666705767178758121332981290461380080197127413835871666384926006818011222115414523539872112705345022984951183784819150434450752434983277344269217510434503505686884364332239590505446390125825347000527322045066307251776818606701887461518641353726466215930952527280889957533511781111712637853379650480324024411998745116620097448479909397201979137844391507543674004268844779234801110487651872955727193853348313056328851648250290112968018484389559567558498881256301083448189351771549343294261831076689238027586026073899425030562336228931730102826997237520615249514925138833147951500961491843630684960122022437261691201750394144590389321124719686404499861806275259520463479225609203696412737265775951624634637450504648925205083966169523369760010919398165975876438767363135318971395741516531278067081199925320361636062869886071946491313365989878911484348165021401997697692708112675517558976819706511210402575046781719168212292048543819656497617765646633777087298126463482368016479919317246980868490014100526365915050771146771609812114267849775124433857010839456859443418875284851930182722280972728423809474973135453327380960096613119099953974171693022637908648197130873495128600549336341508570596809473744985117878656144821862028404969238446402693307656662784279929348709407923324089115678327811158246378545641099442430819745840647166318674295415273253716913208324734370529336627701685856033553412397652550077036091114246139109209959269936891011259255894811142385036033980952331912231476123687479999570228659923685801836973921809602402331399557411240909368477754559247554528620356635419569542569113353981394912742526640397993804154490773630771947681480212346664018140129598391302617374613198697355333780183900113697183692336509657774472207610867840183287828836886024201706560966703279781629340178182985487548786178913246346397765686553581138022358185462319663266918939215161133778836033695823661169012337008368501950223540799119902618075707105253958415610653555596984505835977505951103530689416686230428634426864273500850667934034100817857051807817223696366406036664197799750059348399416162247150967185173894089461956849845891167194246178386671956819721796385385148713761941496614123897732618221567633811212110676734499722856218480993771175733504763424039572339881732593608170203886675684476098902268057511525700946354372659075240738751507617274232195922149382970708717801594061471600558031100748446543460863826362085320833642141937463316919374746462162394684247287970689728770087697747745907079964817994689652916545322075350976258114460098025753047969064898604261091779703782262528644943693757555494024878536160334987231202651169996120625987179864593426531463755861056508525632451635993322784729793418023793170915252368970760207151183485480801899261795566761510991446401474755205260452087914533570327171174636208021352769730653916657810636848074016202077124976112386402167800777020776568595170971680338552238338784822904045719207360002760645906677262510085625809347689576031923830860532134908940182649758147459118777229152322038455016374293754379401663156816357299546865343608134517551025908578144232564124479989409362092681150657658163267143055713126381978146807257186865853526212010675779929091558637001620465276418348306386864707213981373824961788953888096810340378903242450115295431023844200624686197295459565262567874950229461381419553643001286671418491899049475738597859153784823690302920039551046812307802018719788077316284725169713148981419762058471567032444240080984887413706641343380448306662297982801178696287306027772817796498125848289092574903588811867248583137097536158478588042441064631408809166259452504877680035232553310400309505030872689565518099631658099267036068344007763422026636695427462070231048414453902523545939222600459380431281027526086534251937416256461125282624309366104104669892044264583154975730821680180675491317568500692638868125691306007846292928841466550254069078758558459612468709685216959803245758490460083826162667902053748611774633961190977382945397601903157158172197202957920834266861295327163891615789937192254853351912178794186599546293301064712651828902248770443247527268279024363009932926714468925770566141196431433703446482177236574849135690046573530561692361439315051128428757708151072017955552428695867365223936331957033080361545116930918502102654005370476553558799123139404024048127174170561361161126648542121698177440630414318904665565081845476873820577462282933292705098148339289845221209813911517415447596510660578546316512414066054679471253750280417726849404192303249955502073823927093718120183851988570959392780823488995032800418687903521227093731619909910806269532203563292019539070729544066254381228705503581266532286398731102564994351811278871930962930814135604281354808160334675800138937216119995270960227091045459470690530667535611991393343214298748364238577005348493419546100944619962923593888229160641902647422533249899483285267363855460851180340382153685542214314023432901043864641023765019835192949634723516551969575582992866698533753913865091151395616151559152787131879528882450688788343345380268498364385210428201268660918822764057479718873722134604998121305210095006499933361440859854682919092626105577764077162591419166161558172279560006498778867162141955359927214703937640796915741466754287806715582429061352239660421277393545236197361271942823525610996669702449745998353100989914037247316856688822420677161200542846476490782939551464991429622460583235770464568676183886218398339955666317922932159663357190030067309625900988699830221423201139583592694623781487255638459698815528125015104480306951190288513813605038784282483036786396376707362652674932034101932281134786266107493439411427917942129412340371573671366407306273353443879508859744294561928910232948697543969482461168150007440345895989790087460394404013794947621056885731514998992152795972161046335579904496113529742295769159814439277877804774396427384964243673086418681865634613242374263680516608909370075465695199822487229224258930637011514127165404355521030985678069333424178547953607523919291553295084595407697776019171868294773264192282796862093479230626873916709211558607504441272680929666939896069417687187252430810155951186392842832471968794727630970491941165080337979284371927328129763031673357165625754883922410146312833528710742137530258848427889578565572798721113112740265507564150489710031000148747226820368671484398067711861182030158541233379041580244898359496776894563418523261854982744037722523314821922195483455216269564631773063109833802166902404071655947124963993477777321686862064440320550420622476466515657330998057491767711146187199679274611841320333773152473279219231332560280978367455474783981955717453815317419033267912515396219890036918164939108263691889763320183337785357456323200808908539486938277045861372174282407904447009894080273567060720248992418551239370776721281371573585117599615584878824762396429841088926935862722502122760299677511220237991652216200169657573205876087992680925267873293731003325704768660332686664794500915972807337007477500526594939635737872908131718885989863436754241913760475705639922009843340561315979479801256051528833735377815343691849835887458757419214202911699097300757291917890834827902424793112361895645349389123031613161508647936390735779733869696611593077606734466668572099289103228591393428672445220523445647628537569611197375421672798495406045266657767047151861502118975140172158312202775207350098587924179926854538056426617459004463708505787123348301220681569734223828053319845908188124558628942607710266561175148901255597911920559035211896606934205882915200201532921694686632402803844989135343748761089188821861479135982810085109724687281857681625378899449383978030428716108769187612702666055599302365255040855878790796162337724499580793406368230373682205476199205494349850150786439061472507528989416838098463207562586958270995520689448967962487014623779617939085992533979235902938384607357472206666008140396934304940660677754384912555757068762674821395520073219993305867372938263337371686466954520341648373662832226394019935202531220626004001968213700628377108776935162821701330555331392186399040935842530635752671237788490447577367596423656633074446310349685243261869672806742766908372387096720113772677235485648221107741581386191401565355315530702871506805008354183805059006495357916571075598853803838127265751948305909075601201310956449812660052544198304052201614455010533687449220193527294940038087550865520877095421722516347684179361780299004849661150305830045933348775465759696475743712568939652362247358811629585882781451515815886772088166785647647845986230852494128772630135290185667810062270703718691494743721945974355306922267095786005267294892746787574540493110702312681317330513307963245673904101129109319565811687565991039959765387564010184271732787661587929092164946863576897904391004445107931504556352736837432739739625867479155569745422605715791197600157924876472342355468336190490590674893670059215383341610873477839305480958596061140541153918622418189927706369457660198578443128510941359679622089189733922477406505017041779522156325179772897870969824779776069715817537085951993127034067100586576062342534001878871474838245589311022706064368592190871822412521437790091031807624785004162681004067261740676191987059407763806484210373135340090224059229744628715868533647730921891550439781785147376275657439846786887713950923856333318033421114708520518941264368357040222711894281438351001469741990223539998954307886265469090568614377331195254381857643815917072696179932941914915941397815841841183475194699627583341926459061552072493762797986673791643491226469316685458050025091574440833926682978506560862623799932324355179705424793007758532672154254410325639371486092097456916608546984779049922362308117642432032080226814241844197062117702670115500286296016224454330120057491912868867905485658046859185462183877012218575500921697191049371582057823057288015743092170635243233531360993232086899977668235655804172699446297178295720013923385863995361627220231364880761469962498430283159532663853108657173193954117666049633902624650884882175293032853388892406175814598536873103030581899107441731637700893244641350972786102873865255014620217030130897636387326194955991735404687475212140015848934261242237989029710091403838647311864730615346395887266649079184687499469272612949596256292320591910888338716307061351861420129390713513702039447276901963394854306890633402971611078565773189647796937489448021764203015313733176724862435725967101220337652652960177086504134728890674598592621511818376235764164902379145765583600324745752560103808708238958513750419710401100220680650611519581952045907385761503165030156266327831793936476412927591264490667102753946203810536026323402933313065834546132497998974963852499612966882260415797767578465277354665832527447890521858490609282297594377370360864281982800599530109002343453206874152538550323715373674551357915674460587249674780860786392020876367141667542259247294532889722141615560848253871522558707761115228552034021041273188185392486565988154172637327405741678962383513381523609618677625024080584914129136521647532639036665163308762305116353796624743031975868510806809662704039557720317500164646736706009440121151519035799341461006542498258886427594462024099782066292843269607858990760849286289338229492112152245430772227780365791481384395932384134132207961274636423955696457675639762929979158167658023330250375267562469524933430160310314470916072197799082184994402226158635512029446810127614529922102867267905796417294287011148743811449395151048979438540908923674811529540976333266431139035576799544812968849250351781036512259708575176065934618089684961495776504700689967730831785334759659431269278350894066381699890386894666081041630507992410722226595419546046615043235482826928543635061356765575239490842625774400237496425726509864634037205588432793287901561480719870742528706085288757377111584165553713880278869606978935869862024321475738095038591983065349067367377920308547294159755124090651601008743352746694455896425796697344078248140795773204621775581497037527198186220166111198362734634846929111101039982141998034304023122111239758960802210228668297890375858955287121985763596084701985172878538511738827565994589384025009963486165050775772085610919023580860590234540081555235460392563283203169092387918287575278744729788989434993323105743136443451448074411302405570129939983956358519225999894349878177197388965611016900488327214431930095523624775077959248955475052198910476697746654793710741155836634270055368985935413482872234070998336775876148259707565306184931296837159539262535839374163409866896696342801604924375252155620305231293662464671564003498291642341872816147602250025653801271815637483115702827998695487820777518567399869358554214130973442105663115329121009258227378645680743195241735956865892556973723115261522576744514726212260302906249683094431096589151551360527444242646089568767314896554097274307502471287208822050870504330959502945150072109906363643480893060057431542293843613457263192286456458732611196276103320399980724439413411235172459253686946442119383132948908803186596157799534330387581506807291733586752683754190929165703118642117567698851073265168397834602563001343326834782371583656079574477575185150203603660573665588709867382049729811097963867654281563289447226418355959552970993299476132906612510580048432443337050611686310360443165358217853667427131559666921731261949775512662915457466875701522519302245296694422412869308000707580641865306667052363780417324983789766360134286165010009311722307645643098471226266442515474400743107000251555315125749811073974772974579035623430914773730071156570197151446661914081640507035511430633515253201298323904205562647898295786664186295519397430271583422153606851951248702532892416107315227119351409359754747751939701546847467862535624473399748317078045694535443343078052356719089119288431418032434992290069214875974122824496876934483826047106728656978623476515986903951041615203404752393198486895050026047696543442254421711474576661182699828606556327366729477543680502374644600772278705686783275688252474834931501912943799525933900962763505252701818617765403626402429084262572848313951920395288127421145024280263751119669798735049565440102784176090913086109952699419875786620027113315131991602795188553069173057463921775862263899318005224970815132768534012295790461536140347247921897080582454440121194412181861916499747106967645692846078076302935390206678561182157115476331406165730066642053485071448109301397130899567959551498976669948333141941837359790371721212882753225859820441598006033510626182800405777291149629984823701220150083563124078321400890132412152183341803903092720624860249175716355249832982003632537021029473428145545035299529277265717371975818550972639760451710208246913626439037247635206682238648389686179633346374238184574101514960376915054591601816331608765279312895727071790299907827609172621116926493487535195426340062825537814239484172746406906542940897664793816356108658303944464546114111233132982058627568219280251909800409672492302175848254566943920522512489410505494061926579401499660540060018636128959415737976637224640402283514661968531673095701254677284384912867786401207877833920009128883893541937390925484173759534614578403163899754529839020925314380350380711341774631466208226465357004794412051131387822604218224190995839877805695189606944637377886150254671968794302864392757422113783974040186207691956802695025013135910336254046015856949830535753045598420480792276926640262630718452431670465608726593037690320947573623148960936791662115403249265365832579638629063304740899774246367684855661527598127182515404030658852906431516167506069842611854210019844507149491141201165644801999905249295988150841204992413335969065001558377971918121920512644186100988211630782250075151181108743479312239777178853477682420696319106206076484772234759159134481086155148383339080934784272698127697788094333687086299844116837484008724578767295735372729295653566987416545919488142106406144347388613935508897853238844507422018063057155441356050471638301605233943842770388554692201878961714649019995882123651689292710944948933862656507886028496766208707738461028089828844563760701574768583937796812750638651980003474718259401024985191668386595584287128952577749143795658980713844720633209123647881268092450617840760137971239459322185770133469490180337677419404579790017903237201587553164632209687058435767749318182701533658219291574306740517658729447927337255420152576417971555734967521522019696726906785895698680737439923980481844655721235525175290665544527501021116965328931897838136729231885366511835354758815339758687029545100629909503745240567355838667198862293331647494675954414806536177070744453294015288064250942625142181326790613691831963087485388128212363927446858500203575870049172810384052004784846010325841701199287188254081339450577928829359263033370812428541005866211018939182603524336644096058211197526300758174681597210844832982627265794585952414809762982064985516297025242254731815268800916991654978076264280003277713959587595607956701600637248918914888337197644030093020207029493594248397273541783569797812123152937146013346237440741225097607990011937623633113040581742935403240233338055019673446747951920749316389863494342591396638030711408526554830801311568414537736075115670120143181508928266181857311324499951992616361209343188925293827538929871336156998482447016817191502835757299616726528235212543219192083849212061405174514459682023596975357136524854361692866176936333247623305137438167267673624843833647752245397603741599428372002658379507514259504058431784084265424849947084531033558710507651761716818112452064296127318092928513572706576287941221846292980749818800743459863810231138552228865582527297845024312107012896375677784296943196715164463515077545925980971921683150508519485584704213425952184470086245569750871176649366934228362257149173379583835470269153491969744744959955883883057372655315550477078659280855030570999563916932091104353636384484569836857945426657567102593269342562073192698573489317957807201519815488374703833190424804769582333853010200795307874713131568408777990124359378300750217665755124055760828534865132288948312957403858408761826728994049205502163811570671388564379645997236020856628862719499217417575615898909229116693845971538131424301311670891525184423208129790371115038009840374995572029499085025631960103432482202175743035764587144446053573698348473793422380580558774474449606439736714065220432783095493949039382669375439470930383182543826130296860364271996747029581865865830011495325227990078622129618045427196632987186800792348760643657379543322785736160407646337487062443734194280121176646170578165027739733473013816241152868730844410244196403663435863813781495051854174760232200076721107284514778677999378437580138973697835697129340283991673230745104485486479958997868444970487504202165525118350557230256690098878084878209380369257609649771486403031626992688356779674846975506162536296242683226283409443695644485923490478339037805259624514363367482306314325472077722911222374474916427073743241324158787511700036588869649148995487483292087621694712137215172219599366880657360860777951234132428887835536226759845645550663398990159773185905902102208231951461812111430517117866129994276495676705208955725843986370519146982668269061504288464957947052267186776042456590206844417522919422194597088414686914144386851251501991151704998940983286470285017394679759448640780606132273436076806757931242097613693921329937342834584839777453057134282212864594218286046474770778737937922097267502028525331275350062838417959380528751590122545083801986759476795320891246350073974393892318296887717262189334756239046404021727342214721534791655544923018343013191605084254598143704386174787366485930211090027431847537361492242671848644077794293412940743181504978929073234648612937543122196028556111022471798166250459234427174506397526085455952068014044702997917893611373408066233818312937966361975721563222250447512576613389851984232649598773831436278320606166302285158626671409807569884114295703177084314830949847912406308376040061281329432464575460534838938555324314802915564100274824332026215982033235189220847661951191958897991077614652644075262578431058294000850721393139108184629204143944703628396141740646382775285428219970199468791797819295203971618398405985890097525259582250570250047965410299484191870287846987855103138931421377351610134872012796174752190716946515074961846545182015257440923588417060650976078972007678526554939463778301390844826892934483553644135314543159512278137359563318553457289544092078541810462469716894040628653339790950501262700127734276984965135032874511560952517531585818132933892640017095624752890074120478280538168288652868370228652286253432458850997660193006418185547365051046648962196246805389351368487255651205689786492943858056173568497467379748751568318716048294959587048724567465146731392860329047429924508809018390787502908390759679067908930115712450911851821782415038060906622619150860520180428437632195976140320382698808889342852785416850409832024787397636192706278539417934742747367980633911720126229377646761787491972013910979148856651702271220546044870623526728555622179399101744202704423167617092985456958949625228861769047081222636956024231048022943986646099879446357416065115439573271344197800744146684325349385019721411745500311631982229280196738809860784088140771849011920020222617059667082299769847074960253341828914608211502683028532489048765538956753448263514198011957394952386713042719636054102071662628578263181970673571237160285364124365002235000823851359398841219759819608309697763921459428157375122227334956520549628123524214452497647645220563756673627376387268264454398606161187473175807322548209617525697348386126848409254679272880618696645252066482013234610023377477503282448715275531462283040604426134224018662327231310815965946722636635850898605447077468895792557434716611480843325565100126673020670975753094333331589162712211026981169595503548751681616681398358434756476100438526824328586238426499844751935747894265069715955084790830181304291949105911847628173735225626707165856492963647744567024050751173343449183369167695959182810788263978884882062208249903179419155570787743130211182168351948672058452108466748530636477134680038358467393337778728847516083953019533335499539923728198992966427446491902215876698751262139088202443473140424461251686063469608935638774818476308115343558104749235717892614287445011133684847170047596556433528606344845543648356569184283105195495150711451003782247065019936028614247703442638208198961533368654824571356551652667118956626551177701384589012680032418448762140863307508066639077885679521649256312368729202056023138616781895341019214530943854970830068697419852436811709288044881885672680326798410004322827283254770731225323867055188246973594684289917721272953276260392896927788057966161168045595298476161748879158073201198713859676216871540717928240522189279921380681265845605514649773494715231804991776261741261705737617112151765830850285185794837705805269874364051166466363333460198026899172183149728610707028897289215058355833292716710557449008073522067409091419578254194648919880931871131605763268078639211523447140012171656394293736548480270841360567327636399105905545289905211719989786246966505819922785945373693455499935225559566033572151214028454682851496484410034753489667004359167570983846567595853320114124316148103310926652576135967330689470326622598091662857531063528667294245008175279257953129621147542971137987529860888652239072984589045375617362402515933371495225176675360036100544281798231096456214664708493158723978368782406736186063544933580441539372411568384486950103284898799806792830951542795204836233446476022750227356969406997654652509562449079946830017037214936738921052139594132605844051855634012488283098765754462290693345465862491713479231510859987124451849306515626859104294391562365496232092958644474753303428348727321311637266688198950934719239769583118626575642982540564799346833938045734792162961664374847226175868776594039528385909053104686054268951971301000336583648990917175965891809184292579017440911125721978587499889507518565661030362737280972579492203641546742742430348956906309844051287168088357835688312290638711910049730251116159855045764218065333613520729240799466662122002609021676991746345807995721674963853903425456282486893767755488877235522660674208475105380444971944044733370367570679579263677162182057211436925560036415582537872354616569515213728847998417876388394132557499642547124265935208487187190455812811287927651640211737499944710858153890164145324495616672603646653294450151287269274962574296193537408333188096872613024558006483576526232832465190428971207487978802069600650886288232584012616158626804938404479566574526134922901552530526188677657684634505415592499993184427400122353870373154074829733906264867095003685928479614371774578881280269391254528076938317406494550634456884267205110107457729952696541426430029381543358300207765560627773191405601360715264594021811234012922501579920156399645421621714996567090702811291651563013018849569382043890572078137125121417383697344489760315184378396150248292991950833774900414983975213294971484953375663155507913834812386498369110768029557363379442624624433011137023258481809205736374732471951806081141466195011642156929937761161070891327018602641050617888601237230522183713432887704370817731208016155407486275039259301142408985484676733693404625954698620051967800924850946985069819357858698238315117151620077238582827715858756327894930317694218781794336870206619033301952096833322206608011648801147928608385453514092217354351658137248898167636219076134353448366053470993716322201741308762425959249235735814634296937724267170227041920670681117981513307200279795411271233642661036765679636883237444298464297737665954839793358816667450970631112446238424726575253241703633951715320427427925853755698292614873393860939998011491953809465232848582349416805917251907275387512839438927238202846568152795922831453829749194584771911490222035747801830130895752166257001511441629760467250903152487488692740458498232515879112427814824273255507623620453621750339648929763164740276457976076477599729507482558221794865074961573236264570297034379890211990214155788542676708096746908587898088052587645038431531503532263060928639446292403277035433929789977449350275626640242448704421743640695159332192451035058929726314634287203356153175092019798194016425577327364146452192900464041767040504663850870552292833110384412045933457879075616956961830960247918689156492577933344875968594931373917347835494094130535359843003285853875643593902422325318928754755634162273481093237259436092593573551336369100018726364666209391486935054409314353184498137884808062874980797298899176309534338563752219478944664143462774010856160573957027331709204111872736552869249566056740048345582526865613913689534439906128107295821959960331794126019962987011054899235037003829952558934859915874157046774049468047064508013450556633537704129205564448902580615206484634099781095741568718490647642556370049340964337612473262642515948574994201194902115176687727413091057146102794073829941725674646100192918229551419597485976540043355178379884109218498065695429644334608843194564895363388787660672022753408977024278750165260624320622794332640186792293700208839655169624495753715883918875410407168374767906204590343831092133745557116366868763307694020434651506133603132939314495192241722369170241487479623886993382043927861603112447566372438342852449582788411628844131058860576387312036523899073320704602124655572831027541061910603730805143916077053285751538509802855447499305978835436398621911397210577799111126257988491356317195414778483917090894820427410285471755929975593789030686051120306809157891410873096046448580427951092322689736566913260171104836155215860586981790274625679771806347149551377165049872569533945488033232575460246029055269764993137641328455630443530557294580150565511524032768029068532246075215351457006916991122757962022135405769719822595524649287769395204042147506434636191498042472738153260054933199957753400128780785396418701084771578089284367145306300929537275657150200027070239665642053099785904594544819587901788302709713191400070979476328245175090753069555921001110738483003443507884351742432708330418185549367116585348127413949896091569667266363560091676773140945497412916360279729917359162167413291030462701805595795866408685560610791898930470505555970527033486335584742531117479691140353958348992636472532969670484681258959317347925084454124510362114373875752027450264571748338388404684737562294465753870073970424142303949529688856220421941424107826749267991342665111012753158118345430905921336571296631527944992290473956316560991847053377640341967477261221347056853514113429281382892735352100486849988455752391747823967767010067438512918802720739909237618183577959707120655722593810496353191985897958364805018040206451232619345354038962853748173788129492005816567524719948946653654301396075299637842728288810369075260181122455019488813577550205192376650184751084996037060820619887241869550491833855009686876121987510075714783746369423591916568020662633581617728291498810310269990378499363239399609342192049266146623976799316698536291781232284756193616649068731174526873362058838877259544851731572814282327867409862085949568293928854083382986488554846892718241828798015612863270060978062747677023407107725766116567028103403487257238007676655671588658383589999357296361519624354690003475569216307372091582750508319657439382155721400391476723917739480974703785297299621418121958946240100783434006028996198775284018455203267491729123063205038323602052767387249226173707810475009102503532236637080614786234463484486239579300929275740324130392784200949905205304708975161616835798817275121303737136900759701437952272082007875362140375362892869832349237601118352350309913134543873473938375028347118268320443392349031460766042078462610625620368751073614971485401876650902388808736819674767699057323573962770276476946377620503699777089922294538059889585961451721516519060144890028903552045521846179496201959935716731785336195823165166999481514006081603462327325517023165057939947511014590362077295030784448857107708982598861758007514075554958798114386146226518103651044312789032217046299728120097362878212159939284427701782515101015092616280315386705818830216600643370049397948795800079424422382479007615261979753211498319312785198920237898725045918323082311296712997638629224801375006262761108059966643367246425299383413722956490644226310482944812104069291213407245543603447052544860743017087461207223347945465175283067190530274662015377901882413296580280514060380085159621415772181760845691421821146153575408603155350183490074399558568262451016373739558607028620523728327232622957560473836468644672134350288339671110110154074575053831918103101419262950856154849550132886359345371879831379855000401554961519869767664994393492190407818079539672862148862389658702989929868216344089362526301362753674447010589900154696448220056182365415743803696230842953825068799974591649547491900639428488840761347082913927369839237796903084437593344903682088944730283622764383706573052403913523298031056814343884004173380408654713366490105514121009890433116865864138446852177835381414684262910848369383752859788755097871265054760664813201611303971181903265702382386905368786485712833439522487180131552792219052211203585368401460109195982240772172930277403535543417316908376294205882980379791870312283417728675122970020636286314352792270751210292752818880326639433313814799832867281029785430826553682069042107865768099883211755308777479823267943423198710433400230126396295776848542226010481193045213522725790068345345387712659138974020190500014050770083991661922258909901105856841143352060580265532878066998108495012553101733704470866244098917616908870122313987424336281263264563849879920086710515063495905017899153929343398727444332663448718257553244053169057756882053046956572960372044825451477538542673188016904900716438759964736785276121813370880047226988822287646593487122040534258498734549648625312225594498800057159970364924603384917482202947597980580640473089936709529237212611842849445793344494304511265260781762888037671403051408852294449313664065952547837740663158129572339765112121173315358602531594875764578619501626309563019670717335235811472125611696413840939726440953669584031994040811032602108191984741547453947186783196370092062524387881730691292526276335954983560544932692450827924807237951033698216136976400871669515267662823047302402992193708664489529216199307186691755967990673604078684375354884220883199909851185332177391946136437147769652525737824101963998659901020800818095366734843597662171553652603939888902066700451297321845087804840053749658997164267970884845083814585308424685043886959271246870411304753670406105898765040769894724927411168002378226480921153834586007257677849804487424359768127878289495803172404738762707420919334083215836315445617919599138847890692581713387416735812979148771771065768395677715367080713734034791996927111167772227023671823512314876235491637683261265626927365235262228124453886019820397489091281593597180349350454620142157116669358176877429524326379116069140992606980564898888782623774157187269187977305898751965841351597795035464546704393660722384343380952817940934381070408400363414637982452661791564412884575274253207457663236540778844442092518188200491385589125420161030270072209963922943277457143787245348202722880624137763162502726065883179055101215433790931744998904152389127237147099149177186118871324457403939154536970518394045559878366907267128323190201282337021909001683644664330615957049084860359577689728471317411244717701503779820790163130751053637049011897416459529993898784083919633117808013204314070338918529934351085581640042862739276793757240109038436218212217761391233589152523728321437694734490998479519996063287285001838316758851091540113677550570503228555004328090094890982970261653340015140766442362698206463682332969041255813525748811950709402147883296723903532785695516439020761511046917279566701362622975310297680494874872511048731748496657266399071489609779529612004927714234117136368387016576414199875708634096811716662688708525881469812900870023775093199402901952582001762763065920926835228295231566457863714958743405280149406967221687305368635508749769621158364796905691634706310114931887193614005086348306138632735752304433867663284537238422445474007299531214782414743643306595971252409242699507066879826938355780487375515952563201312079002949035715317441495579108042860440080049397990313847713965939682790716971855328745748875066917925954264032253589127591596657532260134417743376293301306732670779707539430169104595774886465411682454087068801404710578907562528480067632647495175098244474828984499052087235521193103553909309253545856810962439654144798141791921493254559883048478286591580278254001106485827923740173760838108255374842918430560961581664436347983084342154095327709287325096184413514901300846082811098119661897385696966727557754091203432494994477162098961856701201890815489686685071728242177076962239420929863031876454116078706622548858170736305088921562856163947702768498697348448729637038258513458716926244114357874425154833315459753836212886208462721784896899344335106991481180486859327811764547882711950156097327840662923250947994749376293251491474795206681097962386279984797086214825098856491631408168857502106792267556607916452778353178710198548779474292073737293356505794611071494326349349223668360334256255735534940276148465259192385882655272682360779690523218183781438415059715500480778180589693506914228801930342812073858066865375060002572437077812514265997499205393554052970462581392991694232570338597799015661540396643008855320960392218488095159790202229068927373818036363838189875259013675819421645761851453279380847003658893672204660568409592960862801855657412323082588738617142226341751073980019545945008513635513670495505065029137301353797762132701160909287638063240032797363449130836982545177420640184952154398571172901351670070644276704268459501702372281717620947642438686119401384253641266456008253833205350478188752939636146377823619486000230899572414343253330425907657289958414195920536287761181767300714337513784116558969674202138251090771296853716258807247749951091564398947204407558193086156571636793522755756046597717623237056124632354082457729369814440309497349655124935973182111245688921453808908951977259821595433601977666021735794430221425493031853624929279161733233996092569992196924167793111869438549384772437320921940779034912244087375560366561885611875072407224074520086400618778296366560205274321632050818727120248064104367553153093756525921975058191821956530155901594956815278377495729950066676051604910686585957444114086501684026353155111625595876046765389901406309441494969634976640081376314458401193826187611509025991876919711786024973537491763732384331552518079445560951087944347811514724949824721067352993711575605383833722097435850809445504146377836247167918340845274486513694778574353136656569781611398277780896442410192929242100103656694748933438667599116890841377767773150625513496575323525475658065477658297210657340571082213100938814946770414306804130175477013246956615428973798234893754398901125194386131094569857717266337669371524811050813755118191548618243351960278636540541527510787208432005639067115518002593184284152471900994099055795600694160347364472446498326416366243518205840613241956500159687306127841584678547672222152179336573193604058929403846223511996979134032019432703994203533710082265250732736603411095021185557093346507640356338591937135216712631946907982156035024526322341583003071181996997698491058092587857802870095024882394984983484169492649317354975946766835898480703799093435408345103874418400622094333340623009441826029481524067599708723472901955393313145281485843076533382960482419795192679125268232562262511749369450911380731735883032296472644112430587716626832749125003398038242687707498645618048900645938958270558386021357001766517625311074530792719710467502502174243198246713308272195600146899322591104650756523237623886793994096421670580522474085606136807974198511358643154984995800103540180192014897322347434149381200046634770223438258669280643235691229574397432030068800887036439025758047209275110098180024016156164053629555119132939468892716465149380860441784850114237278585094804204432709653998386397747246429325140483637468860615463287281838768941075690765761731118675394894261923792617958630666355685983220202413861802079500550699589098622692008995566940720342144634314534764789529550200734853677434714641361082792858391336267862372342643646326899095718456779487495101901404522044444355295486501226882705416858639406901064101393866680945994194703378901232007460593743267893539862964943455785969695985160674563145435074231699244537716167038748608962261515447036490033115586162813656630020503577398471598236371714479963699665282675249188453586293990374239782782816595805430661094451641632488528834433698032361657462382570421587730143505693132690484739982828975909179632688272233102870267204375247262606379252619230049969070719713091281990914595060619414186526194418698013038807603119084449257808076290779029526452685205506475773898789452336645927242059369422275079228471054081154565600774895111349169596184992780129943467316630196232132710659139726914895111670118790770016759004322211704407367427451449132369144310317075734774102903264142541361448329790004893477255087254020480544138327367341288407785364394846648244076119470046944303769829882781971028298610110980418893957559913824374114211599663709397745652841323226449148359019935878764942653833562819104798680216375521327068330820904896413297253954135240495214408449430714498220668791447778720298176229197923113186935736882585552143675701694560653562176328990048400778279579040189908251234377910668683447408553755496076646641591062296166659469628435856006854814350890120606151227241302174827998593393700245428816838151432437034872506008038880784992453566473322678902580842102495159254384225933336548359674405447226015754762277870279139784696377273421654399935592615914593606838917479962153880773002673175662552212448970808425625137720371680490015821808137365587476639044042605851466688933288501934928940891759946126667938976280091570757248418586024861282084368401537438114824860194850438523737001902004333212380178831737832498877210242215428016040423689236183294931523188508817835178188966547837720176792431310327120147944496428246386544720359308980273259524749353343679951210569763516892331135222541744205442748230091619397899207487622435500233078073071073515757758228286391037894249460480718460292962136657658242310495605775964170178920946723947721220175189166463022424717380613665881214614807275333629398181232431305129802709509544787734655835280447081535731512431160866252458727974963235831044483283705782329204834044205505550941485184265514339624695601529310045827253740192416024204585448453245559039185063331384465185892007416346478405763317682739040440009178224117067951531618121237740668192622626316579805909163066841443095264924850595059325128174860285390195705056039389239998204133837382653585772814378270403627870468818421054698148863444092059428185054723978219003635966646023194361855874439127230784669070956970899200436802451080829427730504597493945091849494593716961515174184206376715477521417074903492273225879539528926092149065830903730591849294475974172566919259756291414601559185530428881417998463617892642343483793402784658126895651655643759241474679186212270625130604387689615814096988459533841369411280700095486913671965254344634507297800940622520757596474363802244207513795916933008855765608648458712767811553768063804250682159162853250623894906326851558331870287410358751335629001453400705738162566683243707270756202932187602384089034913689733965380054376028878538871662007423940115244168033549893391882773499351267242191605930018842779221547125915748696798005007161049386669086177121869908528917262816458117439456759825339745929330012291888738452571486872551108467453008968772887467709521816384925259984333076136864460473431563343342595085071175001243741165882120311847052111165551525976038042712223829778565751774825462962141798504320762792353041105487327385718082513722580238504496370146195212993714666522988867535323405825824490302410371055271580510487706450176114878294520560912767946776440922962269070298811445605662951412624731769979866303699646572879212134792241933120144947482032826566852998498643048079125115417510966352715156468699201451282282782106702215186186205732354515716866409777929830140656391496280899390360164643963051494757221577588496674942326805590120170749141719503995027465947286245032395302354723035387312184152812211261600977242271477083435255351827405677945900082966791168840516705590534894296446757317206908317919619778892923521729377169278566746311913418318494912694607658335713435839228387991748936718627589589354021191961255937697863506156634507608643611969348196232210404104144937738049411364099584320670922625867913663062603494461745516422199072379978536702002356751390766003934925531367230034925283005538638871991593678869892236334187028940442782751719297200554326867923579330988810678626562763175846223647898165659557085475207543016276758638685024358681172283752091919483417504724996124903598742464930003024805362075511001432243648931357760284423682387557031498048608037178381530456266246018826536213565448598234475194021267426364191066285923422184369694824680344404947874234619490888172211830425795886318995308552781587720728432432734839137482886888528065849007443468599757388409419616468815715702550836797227897235982203424676013107435792151905923076526838512132271232149909346409179286430784519662461666567082064003353559383459619611239721892779744914685017502698596453180067748566002915466867525411437104264778366788496267396792767776864466750604272515506653191521448053361026616947430348084742611646484821931200234929480527727588090193799600059244605535895987888786194252517462185847563406558661509469414293443963566044854006380979789935371589378175919583634363668898030671351436283147812849399642148120875517102344342471931910283119699006462580860845162461364861359261336336780822370411284613443519145161820404113290891188634378611152459099692093182677599403948461533693019203887658451565167832363477020160835766760892640898281598966180871464377415383370545498210051490153384069606248935190702205013986415604099209694580338016103169084454925990520146318210853366780275176873560385765892537639724215023846499875321044150456109433192089695119364956342828998116318034543640495064718777393701820874819264837317707265740954577561780771500695289730078527890679395879792371012220369662534509410513782344026036165225633207480436052915057278456812846915066721284589245395989487676267775660650307778790803828632247981393047624088558072512683488392299607265517974536216420529016830109815564499510672694377389678842588458745328499001330276003276144676529154511387711488967250773869278129695279566945750584987875305633279060165888880612789909716834576733071718914244847277301530817748591131682032690504567101589417379870583945406651974156573822441858520414007030007685629517120417243254512203386008984199025002539924769248091194711140487945861187236797089213080807360138775002048733329491902090329163888007695173803933209216585276599885506943998427762880947088732617535546332086210131754685243930207891932924787189993726171076652067709596071657810115327722724270156889855224550343378486194385706265874973108321197394158745734218225221621656860539827235008554123008540197072240592888309407474788143588357417666541418636389866743074506877530939110776561979554949520667182685144850736088357718916173209490007064573864212354831698036226100834513514608883401606976990737952476860957763663428195460441052886314546710714709107887248996784132119139797830718452440163620850339766878193135757835843736025156947009975519883592663930372657092271093683044721988566029291717212858205426791583686714491386724218324506855935803348172168876095738493554068561437172826580213972155256109875734332555527591948992645336620205116346991819405124488265691339966648735529847951619316369343597310680690990863722061541377402081991539980023619742019350620885415141314228788355206605741041067564158423444641919752011597091589055823922648216899712596750117378163076660542681547478934729787403591648610171238687650438352042340536118258051673650131601391127023260568949860997525151305244636314205910272461475070528139604526423404034887932234546090242616377105627999340842651051633602541567029738644252297960882195072788807729701430333282852848126186677526081483096212621599073718966171667838867156111057015287777616406284754136013502413466346021702659808472315471927087585876255614581565726494201377167248779814914530459671418628685805416511918806263828845551688828106588096429113338662044589616599753794424690034417598876845834357573598183623352751286277149644946285445863582662179129224155093907673889383035898983869736408662998867039151524761894874056436951376963987911541469937804858610449629982175663041662248851193639423130318321561588520880620150653508681090988848143258934891003876685168494121657641951351168509108307975131095416411965235090962278530710981831236209762495076822003798520394254433065126351097925339944988571893753670619208994563441084908820496891568552788488158795271767798211611898323435299253527301489334372015825066222678611375854180712878179836983574610171515817934265455282916893555691517021875789304867032350756865111699242693194160208742177643267708310437859299661524005258420614800613890739277402918548621487951971127824334524268062396847253319943725325518567640146802511581579511581672506037255970816766514568460314838752603693974068619732716608128974695396741130220662385643763723522383413521164304412140476845614537167175852842093811709529519514188468988832273815839602646206428031186223711364765049679004060778631612950083499207422571505356547733458390999072808265822365959336962177924631355158242560288263900447306171816902543195227981046450107653928984736858938002518730037842007605567399782085965930751494198699080848888035754443099081503544394933716019879365989793401353496204763026595004709623379101283698226708949018484307115007543766621321971458599644256110725025575818653806081630275162580253965408190527148946085169717170678243121798922010829947972765439035640327745152725772269090103301006485711796478335371415111947363637906238275019761722753011609827559719751745454796461781539871958026765039328464960352774562921473675279080158256081953984245779630083800999304173864913573733567729090429583241083040552341588971347547838433366232557648012122295895894195321145205999150555427294676910411875228234544265800306715992142188924376367043709906359757755529214390188198961536616294493054661559761815854516607630400293994700705294622482234470372218702116180475226220143929472001866985314426505517240928823306059434377846820647626694108980367446347549083997373426443742131145605921265627906346378354967864471228170673466249307792807623237917710369599670339223279033375425293137651946676368877748908210631172104840929023853306755899176369341325045435180437477771992852511285056470588908916775951839940821370608128093492783413881185984156766269729608044150130417549477425442652404383607448749939267737833451840065055843663008689989034208732637696524970245175134775182897828182199217265788591567099923907492014281201261973392798008647898352547333251194463978892000024079627854220662340849239915227188650697286567278692825725973972740890480786177113178047284221692076566573937288432541508852851009391531505569758990772315975823370389472693666547694246299073908565220460593371045030548328936749506888121112316033802817395633721709352641220188068129161239157008428999145953608235003844866375688218938376342804036112554729810733256730361873893143131639873996929433119085031700526875786093669392211342018172561138797595711842786950599473744156618436137857839008360348532240943830397039787543108346617787849954444049844672716983497554128552782926913688819721093666176066596619275449120385405783747175959750300661386875193296408295343453147573347695340524940961109822199728353443979491533479919309123026886126784530845310261945591895503250262273922108166415602717919832960748882123675151002925286397349545534144137129598204691374720382558913512920680595804250049466267286749250915224753288979941344880492653777579756332989901714607229725701871444993916928555980446265528392195983153106929168544108594591151011111931948104893107977272102477750957106483456470689275749474607602273565717355082111490953917237390488328358460583479831843522349088217666713746848259096721697417250341230655111860695973864177084664738650368640249421240765911381606097664619560122846348969630656917610831502220612805902285699251417061080002401571125652764905850823606982855686941769899434296341462763160567305613957802453459823760224853420227727432007182367839241713243858999072665413662179427914543312402601129414979894531809281168620452286745627855608347063280017481762833805129167420021521486065445905966428325121378652942604522013670649880144539319953503024951030712368185964758561049422342556261885514176071988159895324717036076354704713297679617906211769828882827007715327104740086314001862623782522453973176993206013353210169816300260146486143355979330710193701517289461260179969595754800043504786672051717769374159771281462013515904462327035409954063971622926244899982467712785293476480773214043227257553422227473071698829784248213016135972592328130550521566678491024952539596229619646982653186836359885952234077115081137648943259975966337267096354973046979957103403338535736891409647876739088065570457670261439900881926600575560651310626023067655218290281713315155318516039266239013393835582310493508332731624955331771166526963809902417196218374402060384731212113561277378914374153850746182640077523346968785239262470113437246173672462764834034006119969424531544020283979805757248023753924069223804169874429854556721340777643328928589649797108867755323051017981029801660792133771287593475252825593209485485269948459655733584445398348571629774040100148694086857165775986822055154542848559754421069159388588486560606952623927417938385277462858771110145092277893333357745985071130429899881945324813162537351179815661821687808782283218462743775512124145717887060008228766700762180124485411914423820028834084789476960639340812435853947171864271447288086316918033553179128508919578086227949159250564009514180818544034291339536989850752096869475834760171560840414828973975006725234876884649332594473657398281036675814462573008809230415780264415111572685745342623118978918873714058565819018032591368939663352351602782936568457772405453760824774474775860792615037030278217224242960574088209199817119683774879943543513032181056501552224151329229570163477822002867712383518321082417653351783190008258211314106329695556800401492107966216309470287839789268625998059475766257953991449344895097394366538323213874520419673902134746250010865897932790092417132486315798045840461144040603467320786256600127486627975123512519940321526691104714301472745170014482026494494959073706802721988335426535849479245496715511168779457043233628375500248535588137707368171491151697677124638190538454112220531455685560281886507058764097582960835709801506388603423418504714841010477845114696454634366951433573743914282695452781192997245220700208162787895486760342161764665121667361748433694258960958376295356257674158115022412742394063955546434819292571046857857687807364185683377611504608499402749852130847499993169571783313800020076201778137893099882650670414854496420971941876644095636136841337211705988991750690523544199950141289376976401449561198973599336102948747990747893540797121987349564588264177173869068257497996640435684395525378251511006455654301297261487307251073795735362891653055514328834591646568635037371137434035383461989501666045035594052368557843171578382762119303683900395872226544725906099007975005591357111166244567640169995741939758804753282567939473037089011122841816720130520315468673480328168941273893450551179474455857820905846469200927336891769446417609383982263536179403589136543246080622730751440567046361313510666143983238918891927367803600172116807468752823481755062727310024931649635941257598707458167877088624873565601522127935046146482628225179648741276833203782259267955912589972950901128581690780265734102622377316936619907830706196197753737957246688999778823689576351550786058186711368358936659009803371076210235383828643980488725600268541592100484395929450459875823270148166607062531422520057011771716856855756527656253318309960788658619026824405280027833964808979332345490860735577362077924934568859601657655667653199159794822316646727688566888782078236129782522796143780781213112141624645277491849831018709361661576439998090791178841345546004439017134910890759384940617102786006981936473835123356867309770065162337041903406000219580380453147414769964021465795565291505495405642022028667656460926729514851222776162582614584979287549601083458916493825170579547754367517768911090038290988139109946304376113698000745248672248360117374375616588697588823830437815441421901558973267987938349423437809950767070224697052165295925492914318049408615705178702564414868767904120737738356016960957561259265056665796333837936829291667062394223284103116418227430210514465206216197981870034366681715198629079960811977016082763599010858346763213133557748140692794681458920011580133289404315214823757116305310164281665382668425571050739577905414287755273192928866436487578053236035748427940269547805899145175505488444954774650220448661448276088057763507127953741563537816332798807915697775851944215533145227756604504900005881762541881344771937207576574637599443323133413131049572014783071151946060545271323711167289285328502377941048233024477811515261137544614640411834842049572018443153045001884164875931238378685328517454293641439811727345170693697856229357438548857314807872108954346064858550531166014910101261917460021499589638904664784280432644172250117423129561184725147249379090881898573949618536966536998932788735851380124228856137618008506671639113776815415487796375265824916687219409367671775781436833961614233738971648827241119553684284426024695735667159796963459635132798265593060907736906008790406407803916012144634000478356511923085032811329684837489038538529670525799795027389262887876856140359148138346331700398853873633332684340226928516595034530760099409147213063711238667778730096522297044366852106124532484505080211068970828231374316091026560074508480299940852360069566120787524175224942349401528861861464726010359671763362666296375226138661524472141651622038500664984900631647122386068278328377188975843314141925896542817505192928941728750259485793334269951190834582764050766013015867045847858602474930103234141704078301864016474535463308408336427232861145799317896268173494438957424613702963698954478393306377892264205116511251059040197415786125470374483191765068269674589773676368537595263063875501921927258169328092802210941368818074037464214650925551729973549547775776930212228254092290344891041345059937701438801678342901510066727323760076895821213927487150602583066425057308856139121545491918269643770958893715456203755575750009391549519568423422449293734959718320190267770850458852857978302025655184674979384001823331238646848332039727757794858701060646080732158120176403501133557880109166667167495495352408355981113395517689564985338253412934756815462997903420604890291311254086899911347317935877555193402630758834587282430513559426242384839261522362418421357025129592810213623173925300667083231880243358496751970614021497780412134894403242446150464772958333333659154705707972688681389939535014315243699224881403882978126916801446209685428829158730734334491543922629595208807854629803239508265992966599941046109112358455220107862136160353436586493197763827239503407612153625573299435380710431434263113353983124224364150332281464971763173168801425184687877764862188610585919768490006014905877494327962507318241503782891764346380046383708341515184145024577497933788384648401539043417463768940687807376655152595301921046303357345555876241630432502757406223636519400300193162633841016687472996220121728271958911982690434108937075985454140750148301827921861140847134966368790010955153799956758337901516387406420766803734504949761571062680554613905241511850782901154590850453446358737270931695406684911213571352507819880184150578347322354769116276851478717801129024056150726909609865063779060861003639740675393654524702820947632783220115663353167034384335269231133271443968623569832452836455333159728413671418914732278189071565708222319036594963045592989971528649163950547466312209952545942287073918115222964524932445811221572498315907572657860220622029752117671712965059915039568882091215351363877216352327449171168675881247020529230595412776195690676711725474193111283967322716380870697644885583825593516008144627664183418075706388943754474887890095205498418632156763174813913503385062885526515889182822766114262870292104303882868773183291790327556316827301133723755355358626494897606309298105403670935297124305840436632447781766095119859547359927636857114728753417357789936871345799594859443165451608502596459823347015459154288455861709314814155134012770544042162872059430319754830408591521139449595543970558987704891766259815557904286939018786336733736058605059907476569295475671610665601948457264088352982392703373495656616316977725043136499410439942971058241433930012474772490070842156789387467772600579522421436400187077293650173848024867373002543804647218181406315300727331092738663019382894941321106175204426481385288010841594089665987517989948972743366857140307928878307529266781610685365096344910770422807167124027348120331070107688472858029680863930623660986737349804417859015326109690560753473699626185656956568561258156484912580762091464816698919307474095132853674479641495737053481050399942225496500979125316367385385445683411586569676888907000434558621756422739409636569700473740605608454704464024976930881088743558217688129550828483477071910024943304986090930814950573665174153162693343687341992107849850809974244747759566544219857476060928557931920992709108441869721690673498388527976444215254226511788873749789688566716524610023422583255543847966036877689674858888221002629633974823710776420537625067936067454366895797775244629490425272440333181945148148199335623835201936748864819534375368890911210259120566046138917170802093479507384079642888759782140552550789654120693806142898727180052150288843150248244133408462515472017794395665456470633456912053544476011855945675837894797105720272740746488725095578925627436742985258786704933970260688697023051196330870922343052920418257020930453369612985445013070283698638509163896245937013374002233081785583465796742844561749779142294172994858143682601988319067384586988239735848370956247932159791423694396034894112877110249892248638055359652049786543386231065392740075421983506102083074406387250282749820589707671733120346787050638740036928362999921801615617989969646280002271203922238272917645503412268910789020957358821788389924755928493856851273862453724767608738215560592303338486222223779197808609060254211114155728373908982685195131624761563368167996189597441196694761637547804954070835163215663502805285624753562682530633125781910602857846405137808787660596441717260193718263628465384905152051525165247051254508397634693809338255450489758638187186099728889679290696428422056299232509571207285396639732983281361324023472805840387209302277956437776827494404563928122633938665163796122155693125933097977321398614836637991792348067764038552862739620379876449482570505493191258365199400707917388712570201650845470719913613090615813552309430305715047669411357747909324110960732867142608246727127109565663939579594329597850205155476416058892000521017995303519610774133943479529809017465187819311808653108077523447469092246829634968498214103855341309778046376277305735467949554129788116196657441523286302915969182885456985498122382171175308105386838365335725231642762767268412042909778074698330484390185940893079150503379198020021413934183946471275607057900091439870388600979913377575580166774256851958631637311822350571523245475035587774236978071206383374273005862835965201012721618508224962396447368253281154929643322627715082731960422844700526478078793307064767677437908126304056897724124464186023225491004625644729678177671019389668645775425591777782798135671315853138494654480606298003290257133371193009502089727617818249109781686655361264240849727949078263362332373251991459243190876025027504871322060604761250364713484269389728186105766491065306793918617058382884980945223395958911903415643772459998441110276884215986551124458798392625734036284503907453448207278184125225783576571548810415832489596491870394332800958230868835990550771748545449605658620911746502498471543195340992215534443196659358481895283869713977575188446057124561954913375394203084540918937298897472857712950179805548626423247261944353311091715978598318699768097186952062568228296049277973342782274371179362528973904139906141659113573155814444512407941314204940887586856287491306292846814816871238756020236192666952560771126965303417617365450372726805151550616225644455321216442602694405100734484685868491587020232980720212050622622890883373344248181832470448751230064643462540162211575069852928039721581585322110182182051301674283065540855477931634128913906605353166118479011006840872630686034708699000953684445685384427359735115450641144109700607887204663260060654210344854584076291043548866516796802280267662256722063579279426519138465228715749436808549107590657897934852426408967678935986813553097619659926307611259662378370283450627510544574809127959075040808753664619703828872836319303366659904279458987084221955848163962495464323857618339880708233338634611729828863267580862635242583181891268488786640553010553346340019274589103102277927894551872687372190458599701519349903149283318876831615449997703376228401036265577963954634424658008441200750147489042832944607815784714992144903241685709364880360319461568451710892753633492786474596733239421840634887698136759764021502689717550221767695600007855665454153191786100644023331289084483914608493508878319902397038668239375828632505443646443388542148381624587675645836115977173360267755934426512830807429708139752710429993189534759911092704137498454832371080213844657134389112868189659761176655007364561915023332121423762104694723481380246994408852951287562552752857835493013439671320913598959195171614574609759954202410504119755856505722888072019238812906150608478356022090678005333767618554672609403351330299176930904584613636197401866013292748004877287177934669032072636289386896350076645272903542950912298359419953008839804254372219856800539521431144756174827367648564525357485209978183706347462985223874717638312878943230452862195826988049614222173818434553751239104423221613406789389708322348781099138890163941182755840375859121344414470524183302330722333042259907272242094504950304887807023161307700331469094659314171486952000487868532766679619890664876068233102342865684369175442031953455494928997622409802631740943889152881147760847486788985700972545761036694478573336032783198346084052494934625809433701019985077777898981774305929085704789940868966621259875496095175493671005302768828267777997824178355027447593646144610402627658578613369363773265199399208524800182320873896094962177106333072026688086166312877366500941366727744244497786570303679337375922679345368481862495951093238951692870800462718162470695244727672761284562014335034149679868546060124245575642554673477945321428838184164210142066568377250621036262163002640265742433973173643750000239921646166146385838407009483836311780556347378416810271915586514362921723230705740981664758565739579357540219927501035642687578373140193417691826075331515314077265120120862343208029054024803141345261273146130296339530820687851602272314443725394420245875284408051648390779482144837415555451028715549237873951117641853812942191129962668232931923600048966056229622824430389163399662570327883783922254402625384603624933894124895830682375971433145310493788444031927538336008311175270697618594204212038999970320090485740583425841269630707416249678424599999126013811804537919291001919927003820532250780554574939463265694007532586782349139645746846878786912078058421082193414065934104108343244320503954684644402482580953628974477254198000432047990631496837752542927191326880896320818030367570263239196248246387798199481557129491157899687081184293186865091392356922901647013206616917679312348399456803261017056235080902248084810757299080256405970528682429870918140386126963234534253039174327494859590861893823282203417138177185999259750752104966333422037710011172105560898274027217408591910074292135596133716704743990572275747607735006247943561043463569282406998292734581272203589565092885889587689618200092473428121906144696744387814474098383810148302311905383943810221574077040676308458033654935061562153114159953832956756431829862872974984660946399469400997194245690466517802205148498168975621899110775118579528420123463528968071207363680596122899668595893978548941983783848786001397704583709199888442010882547930291286062415524301331153279014458953949985791289532411420647649707580025050993288276714094984580689767371988526930068321765837871423473024075711132855335263376988048381345946910669834070281321003496309546654121791889938292631733005454930730038862177079579629979084697219845336684813796117871735277030547407829877114298282855461905280350148640931226737756195176302017283931531816687451323398468896441365988459244464741186969837051549071480558435526761647303893734755359138861778672806378568746204905655939363383866823757952378758388941131442168712866193709853846427430777619171425794791921147119986587028101183604089270034749268285904995227361524236063144697447667339116088426454836231779526004497776642837458801394054070023482924475144864460670246033788411386750597855983676931367523607060852378574004023973295540342481591495974059518767511268970865547305418854268879256723616987246922765949219457808925263298126362593339264973779702989136675080932280085022316020156606185232057423362264455843641639683297110191241067255568703417164450808677683833854669145984044973410233301947358462540807744167914894488817829934015309996738962624331388035325268278023198769329377968491251257727612575164041776484381421771747924458188982897478991059670342142151725020243913395933248165151697389114316078982848012862641417780168436854867275091925256001462436664539563315226235338030793184163021384883313161009874996617446992222737098999402645989189840081394192790154859653138576932368945320326573839902874235059310957878830135731662014720044384013291398129124167120504926405864035417806615515328742602214641559456912544108704317974668736293258006399585067787447076955378695042736023846055297866984453012257270232087405236506673084855579837235586175480397476824526600903512467693531853142474776068825700684937156739980872400833775331035471945068638343350206440159221519890369539298984063990785989788421942794938713853665282461111649302666409925383022325310170376448505578527464924359101244124144391491690354612022350751344245728563492406658958265455867334556831241253956464452607806766605655749484177038077562962105420062374519415186136850444061075418359062581370280675449358642905168778467756528475337103452861864691384735908081687867754202952289673902651101958817097855898345670849689441689133873601401298178376341505537194515282944570375211684841488041330099933964106431155089289537992582091845012458862804789405176801340607382408169406699434548695338911602117264481331812706484235495186230537343360299984498885529392379656150698046472156778101435534104605401238088583304785436906810255559468094150427100483167481712402512958626690924907938438532238355177975882677035006397687207777054374721868054944859628980114789573425588732396886665948255134763107199131396447954410520857066566365111186698974782911138075892987851642624948210980815255814739204002167296905625616200141179288916221792977318288188612748163935979963126292393851729257439928898034243520414356035334141542171824803124218015472792082842163791009058846616709190573041726182621518017596830547194608438636431605322522790012338248301642689774442964607862795006176275622560090190184174220910281406362069017068984355599576795927866221343544392974925781917113289530378273800192507080934558177736368733961410057361181673006638537832318020129526493305175724095540411909441297415637961291944243144836443141793721551984945916027555515510252367550986969124933351403903891989453408868612404458569661421132491871367571430753164602847964031210282370791948410456152276090222848453187755886230931542701986613802905468969327234805850697324776600520288564868853612356472046975600206794376106673110170897796894642002135122513014096434611833190788051570505080615297869516780378288620747886389284554381261908996463304406182389043155791054864090642483758408089788877099888480516925692932100520890944726720898076644982634611332083748791656875992580405246598652576920304148311412596129336460032135033243667233898644571468385704456544792589762594669913673627489513159860545278337512042260804888145463563506028048608833439664001276678752096633849153978998485939673385684132559375982535084694162151426117219377017166884004100373874622704826686342089521775831883442233011722294395960471944848755610179200304765087960467770428258760903820451040117428497884317489882331368961133145055044890907940972598267987771568687850691237119510769024395474027139558376004878593533800407588019296324941278501032872094679897758742790869248040100295861296664959135336736876074398806578066422624499832171832622895964007483573844419822040924996730057290921977534180937000510929487195335605581616245212207437416036267151845831852220913995273790125648781498566097582746626670212317285974010949779179901713025033477280459909792736379908469843261680437705728155320882798463721684324562012710459222034695650072609967204765538931017155228848089381697272918369066789553809104844881364721285353287743463083111700239021947054094714195325029685314696939234027930963808453495889369348712308928199249739119432905954201071335654041535392369195774749867613639692291731756622502580029568940011219286125479462934083413761498010895570170394240060321494418642789745472949827810119891707235251211755576968266261492855314895654565867573506277507743103417533661715303108809380023174739336826718988418130241097867327813657007408996173653988889072146951905522836102667521404164848742641467513289403609266261065730843764128498640315464772636749046145424093361546699833946725173735414558515601047679533645926086464497424986802541924314148964535525263180753739938032377172483879048783612490409963837956592905268620121751442770544814394852185351612036666356915082914112329066801039270610677042864588019942600163140148533953885135429046738007859338249722469390412026141638601999277609977088227671295299988483016636114241483851034759381689775037284539090706430250006127371750351589472194621176780703160711298200737519742600291293139828121186668851403864133725656511070394284788579714197698107802091556437802461226144230603963465375182923823845965929030912819811271826547033271975362189566979011332232945539918635301470983744003990324575979186582185488962707367716184352150721347608446174069438839910393514482348203399209137571387474030541087926509579813185195930885349082655924988191094442885964913691392905770146325036281130053632573828167747329299773374681454361224302165302293685484378066677951044326917224703131841998202971293108541244252742978741980272092239475234006591486795470650208006203132257122066800894765824180607380885177566417003472779402447005316671545015014146864908453303750168623827814610265043964240842493844318668546048599833125884140174030890008011355916178644283108055880760550198723761357971499296762210944022288771019043995409313304200550760481836949369555041016059328455678988808098680651749970000026379410403779082463194591023938928192459786126544062055741359967754289364811070041565003484319170555197855719669584801729603631728943848230643961503522198040053647975230311368250598348223273061815236400897562776480687607040481123063375889526621422530811482372850947478290837667616509013083689835883595279357711541361360410228065894708936428354959826757707571595433772877344162524199461984924106000445758147527858790782912939914115968443278891321428723228128886739101385694662728798326533441651648351211727268468706685231089386026666560998460981438083742052132262101764714545753793489189096075295767000455313692298838672542816717318691868549347347074023755736413055231773514063997600158502537445851299916273368182711206574448751523594819343905975242843911991321977202760191829011689151205817539890991532801252702591882682235818515391204422611448489217131013930343197440224977890928105239770956750405944898422519568006915267038426663403553784929374779545431192539321397905506405837392106169129090924787242425751457635957100593508968098476378389368553451535416227032568870092654940934847834437003512593936998002241638906277954938480016953992516604432008643811027276674285915667967154058180053435565360691759986415898896610757395126292017615716246959860079325761491531294280731685869807675358807531199702093276550597385558241980742945159795177299784405558124112244027574948448483732708159528647127254207576269472963483004894646560811813012787817630080086209732735015465068563615245795620952733416745838525973868393634662967113879583081349499075100337366706579889482354747227472444690105732165989347156882386992475238446579095923189453943563178240596783554081514789166941574745014952676248245269606913044206313792327630404879863642583509309511762390690559470747709593633918002265466119682764828023392700691860948306892043428476121484425958705728078112636489613367117031081692055298161108546633075687194577711433637945963999306551487152646078303182319758259658645582328815172273171679275016037976848982027196360901831807958488679591380758019936572863838193459471717358690548300077488870612702663206958275981639936435582927515236778284970940593783059728182583062495219475824139746999583322627931334938157945769618427568121030910402659504003294937316784019211749693641449824972359638123135576335710315161630854954803875174915399358978265162408960761993234205025985664027356968205533342945863770758342090902365596279439541159105159912402625417642840961434059230826261975448131267253831798194877694652902920475201358967222817692303222929659745412419454698541127631945115356328948735040612547636290265918102346372835883493836366834501520801833015970686506133681306023162090769549131905305487719512462017588575875006527966959739232716586787106229606427732012994546895063383277106160949729169449857163941334579941505843694085436300644247997006183057520431326147971328255834929170264096610834770772539958085215256558896265150615626507824960540352260635429698367288943731448334956833981628701327098684631017369260352636475566260793131038514494844286604426456222486942235470845846032447550262886115907499103305737060604175563789877469470064887730139412795511299385040346394557804244444685981300923658535018378036245900901131088314935122846325932982230571184457255326618901142792706197711111032272200745246815018351410764974948882704019377467835757782508384378611348687194603835465218320492831286995769025171182587510808534004325968628632551662581660088198213384795699095193533144222645748590439874980652423939287481847033368376776561836257846684185631853183008665988183490572918238539542678990577991276395383854503176587243203436141393835120207247880749571824454725921787254414293094287861634612093164378728999355904512414693463435726965099539978451100910176879302247374845459653335320289000106482563613556876447489017783918276402172898290347645633477820015717698987918866683599353302505182497696644583088819090030702702575267031463758413398355413650235220005070369418870389537899583466256427198618603591676966379160780613125633441108886903113835444451036173244868438285470175438862715825367271184215799572305299369898401301294900318528368642134738502004941968774934052267039170171004375546158069451687927731681892419146172079692651761388634768259378350663598288049332196877823286991461065270625240410010949956414144952803314378017072396498477140579113758744495126182751267177333955382497093341982666365607645210547968830644402977317824938217147207267904344230946250891439374559281324812822485292992306992166820577296935818512236671003029091715378617258863833166855294279491333100044331016669668030938411069202248750839593208559524203992452930861227142531218704431058361130903234657469654001023232719670964283475852935099783162808725581323278979892573524047141051987719161000890183606003787553964439232487621407128310964375021097454428986276984900517494433452801783147265068471850457075717726027443905530898948030763431323498635789396218857320567433680569637651836137808550423699279704312770132336138467692266126374758869098248080055130081817499497667651700968061873050790024512125259512405795699930337204276946832065051404052855931357618174709225122032990535134674473271109617662421626756857845700551315184779911863732958745160389833077195594953237616428684285355883830312591982930928925757465799129740354876093447217321231925823253432659966206078618911473923528214840005120179004745744424715726555781047437345194350911536387800287206532728571396104252969509099970433487324387880502479206768480815292363127392234933656998335416681181168206929525076712851864166393908147213740393364081219065061583982082691325958189366602053512437414843430672855857116092774051978644725225191511396032297330598936789938851834710224169077406892775481764375903223907101812483768980648582787403306442843901818911504777666930558235597377458470526255455924674975923703374647739348751205053959796507631314129028355061422089446600187166662497498406159548062161096586980153467429322662259343837060081528881022683314974236594033239973640393430437422542025751237655481377579062399681082387056016329423926571315512022588879409079192509666662721837183458110082948177085280825504928735848637555377346040297388406075557354371330819745498360824163426477957240643518591105518784701579365836981474977937756495091331899896025478703251482475018763627422664702639476215544776145505764918433726295050697598484565957250386456901774661466568842106221857048973624123236346498701769447885480684266963635025963136627905844070341440638115125065951931638986586343628339685859693049919201238473942279720517227953401117275018901898253401032396876381702200514172349159680894579026355362071447571268901750149485009026769922379683826485854376165065701825135496828317206715461095595671689677421134358046164241077575323344125104598795007103368490294752664862215184341861581693798975856517731322936565740155836117244487026391928356340741217753936397278902394727612123367682145268278656815767247814892688714828096404152480377594416712244603108719581997785744997658279959137021953965611221821095338489835741696145585181011863884808851685676088275737071589274061265008051567584331583098443403804081906541976849165215182717293335050617572509701187946818131800069690058766820872387832478747093046339913796847226736387186091425055201189333460455154955168221313589973769809192618734615450676455860080815052990508880908543221534430815360886822581328624498332152052038647565021397215808813228875354723123997570234402045539339977494039913259229743392288218043534960703792242901371899819153478677996781564358292977702318830418801634426281657425820746360528557544425284343142766383419207815619150085774930949033507863300834392471780538560268334590133122829650483088537023504950224564062790928101304737817156462119300152483459615918901076410979995777576305894369312626476059699780265767390822168787705527941008774009798157333838264050041982354240359118599310210146857348253451321021012187018015009240745447412338145979842609960383326114257036920415540227702270767817173040081217465806966158421933077967723079221155531617381261972483930054624111880657472358732939099802714748111429728126708211097472757002944327080935431348335896986941809318453026476100616013095403339260110340713897844055299363491508334454542725111111376855652435553741956123793570566728989941822441560033844302573057020367926993150385749349832421531969586921627017349874330911406315216551041419685509941456827933492022880754214733707465721154879418369550503698874778250945726753150101922829967492057315084677475328808536509138479329163709823736244808937912083626931356548241729967616668029680757115451245908609126108334655315232685826572355025032278931667346573077593188942679964870584999471561688838716873610219328331815679299229611220612884853517616428572143413924815312134392849818704415027541635192807382819850477480912820687517526307794186791433747824507044408560607359747899170445083659424435932470203734359479299476810757089968890464284522705586905418044624064970416264414255667197634835668960793489958528283336048409861414722931754483140764906170481434180075475314400295369491744016174343714588163901485061675129009670608437665291155446280505359015147570601691233684465532700159193672273134462926963778788778008364987675930073670657885893996996915116104547194024091418684356028471604071727513860530774217310449959456274312796612426017489217702834017542960394729679579927568758990979369804836455463766156279043678775941593906210204598516581287253373883430165152417526142056636302309457474857535409666932134743650071012446077367541821758194966588919587343486680086346614650066268807883713016665652216816947907188653241197124977354899218544101649341798053210700158275818333675962544263542193262841050641145905995865353460431947695713724410464973177697288580213892721168142466765139057544077955140325528460411454028623093461751622729615720943831509963273665735841613738889541317155585785985834710741745773276987774411505232647538869022010576931863246141124106316584282213984372399262903692361340723093449904586959631551863774014221772422030044535970921301520323680330260535641714106448540807078100471394223713109273161183783732183969784902500359164201960437365087529051827170116234383182835636709780825546610677223643959546916472248429220788024231716162549029716687188869412456638214956499903357389272251657754257203399476890978400881331948459841015016584713926007767960475460516245870206033562180911060731417455249355102614417477632170276942888750169787523178444833992871566506137013429474190132428723679410757766044714289538540425113619361762971370076035751770480393847223828925154404352524277479659492091082042317604721759853785642954100490870538809432855743366845005330849537391941394478411154681783419923551045014355208953088942688516285505492826262468417035312372623111823353762068779789039851491335175741002212050060261787488086630710829474284306204838348371199260526556868366020296401943757875495957417838587538517596721571204846718450298137875808684064985646997440301088061315206947577204755840331201581879784866114792860395577804627521374986778768905565069404022441243879478512278464974373657811301232008437695190699501465694817495368246133340759795863322598039101989290591889205500006980712754203919151090829215019514241717986957041481760980537454990056465899481749448240712752678238561222323080102851889972151338065065934196762292448876825023396021826600460504635164379591192420943844233942152288508891878611309712788379922747831053580644386737302732957864142148132794908660504501312958562496246114305648621937182722276196628805519723722448766687705938454471838210027112662903599857074079221090571112770936091188724350741475226287344053950785662611472293484717922928517892928796814057960891300301209730865057224100908603048114227950298509128070423695146957514853132189543900277904921199418644715799186089066994961866803149359110580003325963166495045122285379424485625945780053186923660844344354264803645063951667148138664610937047277098796660730921390663323709643308936476435398756319533067630637633604596422038228580582430104915670487244052843635220731205735717419883600323865832251938223284016746762366070072722375907816139677088088067836417385534548924645207846985156727083519199263993419728189265120764085679988773489734150089210883642380243737400404493175495338078389707251172712336739636166983342736668712993027661641623455584266567120724095485355434179977821765550686797518062756600229290213749350448962973782595753662406898137875565135350067700532459070000173751887242148590463543761242951127224786054954779204500177294662833112564974452210699064775034237820427159366754301255907108137683000168904043842306312191631998429693580490350396239881059564168771379869408820509799736573174075049321581201061394973901939682194845089693455940034298469733445978814088361385907556268210665996220509410319975039804896884391564993123816713428352483180005273033472181982723156506852791268221047142680367131370772664251887784702514620712385235662355737720177615721824090118285974441974873831998730820106627223882508558097642680654206553502527414870979236631814036758001666669972995027381377906585878226864410739893595581968026059376672946545892663011446507344704992312082703149451273481697313682343100748467082283286931561521212225974210671359069486262902830013651536148611761654361780557808733366902691090177418294652093923143920841643508486807608377610929545271682935082978167782407451049097520468396155327746021750098298196491999289280540804319310610887086705934870917433477255911433615812631430760360215570489817643482663306723326278962762975548911083590589389990056102627713282179389302594092484689446548007194374502021777472596441331007311966286765460344589831535904117966501714002665804301262700317596063418259409829334363777480405579073437677709721190025939706535622573915119922845842969774701455629829351831504379444323997841608147826614759816369211050688915381624231725159219986426986756768609992307101750703220713064785671688257381006096952050496969891579368369789941494902711865195401200347329990862794655577665129923097238492280184552905141900578765329534748252503353611193991326102355206046939121875378260206203801390997998470241944618933676291697651985156634244157634786981304688665975266296886597894314574288826296600554568426078208550966322759654569717028352146952135382064839488557815395586666028131156905554478802912662867583540555408100965298482404663671384842750959624326119818643532540350460688817246574097040208269943673283128717595732839853494285594865943062173711559861536242457722200557248016361614012189710776583350924184708787629468514598525435045627052666839822451623270930290701283765342747007684700833677441785764518200822358915934310786989442747703640056194921921835599109881133263889320777646728248446135472547375182389723043756421082977231526042038008131564753078981848611769114029166321665595426226439647314514272361313187425555651347660241192703399341022162762039276463272753438748826061283788738063411836534761300522503652446123552647530070414907532420719041421476120063489996603000647493215615040208204852484804934426518079596013337676605657950354516032139721557944073063904328522937208709292890840510035277013718956782953523895457247517640603394329797032777601891490374580557003310139838092816159348807269698216059574415330821760587391934691635956657344445630067679435074464917303604250718924176795662509808745247688766230886873747038249788438523153135434990795678354228331418432888839053104492552672650633243858098658054348475450135045085468647005030922828214679885345398924147336404415001103759531613182188658227181340428363939584527504733018255062973878977336018585477055609316712796127838578498391159480318572425261553362962474215475349153500160643685155194445299691512205011842075828171460460721468251338124592011007695523530860146590243223564333191278484948986881427970154258905531682844856246690660414501849460651806214429971654576695772150849540534804408479047798935151214088727103229985940138193954235833438361529337584949051646317149904096944128373210489162083653716457397681707401917230518454135330760528870926678810179618239824009711560056166224772820929710837460964205707050021526332947124874512354735975180943612637361578649090505184076871074192759433674335919343701624308191651938297557571242765908322955996716321895817994521015418234532054305973387597644086602639118874730385567487470744149273769317712754670260158688257812627898350633751690041028661115358587768390037393242726223048143659642498928779504851901561239279869990678997476584486296869181210848548888292101334783994946616756351512489907553522044959526926151184894559692947098738685110518889157261040891473777499402550697926408687137044299459179418694442402162341284629145933651458497061178871739611625838194591015005540420030117502637685772404067994114529052726167669737066134494080348068854492741741618522351943951389964336276190798475845097123448103887960843469966476230392484657009304128365922337027974844877223997203667611554461488960125598490964943468675699111349150221137566048911638397481602406082856147079589251706733280707446393331150331911558830369409692708842575696692778384123059530614854559907081249553382901551935330957451176285709115046151037358880844227259648164120803900025544803636075434801267937350105734694793768882824499772666636038569749572548859474474491334236344302100371792760448431419120598770090109202358274147283432343203551292324600359306123180458807753981439808897911011853618440095901264628144610572418352185307588561821667066469287406108581919958299923785317498451930163123473702256437750655890089212919176696346654616924005107664331299776739884948732589254479532285019964003376891921000532056233311890271773609945343185612380886008111645594864882153171274714868263660141673377042673289532391434401020511598751142648028329423011064043282480857732859314948222057006965016269220058475154742521043578665904188955808165747129960185113221418549306380084630976125465342521536490470369347396903845233276010230284744404003605093414411860408145603389167128502708364036283360230312646158083269258569576514737960379685350477912170968756828668652439728562218529127566552225705344710069802896729166203359296924033144873821825268896343234835948990784771263019242717626658607330216199378246198450277554628445495863106333954519757326398136439307804525467436015994550858001459403139073674910223895569276721862967873605322493473867164108552240596795690690434936648892384702439670769942069772592826208442924750541954904592592372575827669155426362477547590171804330731328976243379830877668066176130121224693389711046573908043991816999518663394820653116696363912711938420758745740980570156999478399162612731586171930822917185128355409141845861444702706481320484618638503882886597103622395791711308449872537566523016937300759866312124205142284388187580146932282166748700971832514261209221812946065051913270620359885683732123118768834187624000168032149477004332527451013261310041256928933263765854209281468569574446735529613287427566982633409715108968562895162494574088964439409582346631039454834429700183246835635823083228553986782320484969153417133202975784536611959414101456744818118313358652694053654031441304519465421251100936067250702511834819129799940816222970618894513286993266715532440740471824110482815369097090335287009198725947279863315094092325288103585354182910413459772873927834794709291993310118054807927229391204672230046110402354860854798115940225486649951912334829529089381201896699629689407386053494926984872806371054761326656373005891609415504015374977607598020397882073299964450738601991717373929162278097403273004467624649824806454875311832748582054182001081136805837346418867700574929804866278310087470723246203449485412245897175855022870294174767520873251907294601985823616890397934367932952249381531061967126597712114391088779741983189964272941815040273419614468086051878951739201427497812476183705001952043698295346038007979442144045254126602190843850718325830077613198050511869384615220383154786888465479858369916434953083013658098939518198730026824254391319079781436104451789171824687250110021663810451677172403612342977799704228093883582939231549509767286332397859403514100212447798394525344598789657078881118549372689829745506648603366943110333306938191077246486565925222143170091804665137660038869874867954491726920534246961342833021050118622311829349868910227305021011643673629821795387661116436235429239778195821686914786625213646998851198330590321877300401200751718374266195877449267907203748970125807650178252467996444157125627372076783048982340376609293711862976917416406239237550031575422720429146868624527095949045369712498005210413792171570661528288902299399571992242113205175768141399398506727746542866506979192497128558487300646844519364548854862713906693157896088242938604996714141962270400168230211384196225864394624612525878579782652606076662376524112223902783739214877099314622587093099643650091596036321256500371164917663836513268566171309796583677967785373122955122210127875462781369676544462761689910080369192780268247163746959856446259769468903487617558113060415258555292014311515398013220668596101395033305418923481372143642729399278531215997855039113819708702158265832837831834820332865426454474002352723043112220339122947447979112813148593391471196503740881134935717686346952420743346704559428990816884174015875997432789967386658595414788262738792501218487407686156332736129798797538987962654610888438978426243399316637433922585692325739392161776751831362555578524382547821286404694072130456986673348566015414361617099957596871483516556848318910842876823614945617742692906542159990411418479050496089029486791673436292289822962189164726945267158918319306619711375757366013501867659238692313878788473357437287346663039810541304041778023452834385428260275700264458272770725705922729345100013729090169190556012918054794306660129998204354104996895826413457459446758818597727013422627837375061340757022174927356903568428083058249246538120917411880849821717420114755121244914132990923168659273155534010578233863264984233890652455654699843691919628243770352125904521659973156487384031752637131138401087746327779937429639787289129913108733977807938441884247160827963379491676773933580827929859774789707640263144075574709613173216594312816405638343155091827212423223994900169244555853003387685095252846360682535044814803280180565828154641415678968482791252623905489046335728193479211927282714263056957371893962131324899853464561546029356595534681023015870591411200935941347943917775135383304881562766674898341571071199626972343680193555170624509955822015653740692263413742739094693933060984404753760693581402211569347784704944554939255919416375931078513296408628114939078715177258443640998697577256960569770990013426197998423834809305461611109108998556490455546535969064616690117066580350386663327368383283225675568180007094720550629140261118625290251687535763678631492342270279472398710493587483382806656788866369415546778469207707484802275458559064195940578107827215992640727089970529316486358061739902032780392655481172211561727860998996919495948642696104266197090335540125767695016006540816965678360107044687080300200705978637076776907017953539320436996554997315128294710335628322471890317152085923660740876755503190418267622048727131905879320283174314118692330290098856730982813048175215723098403926440412004560838150118869511338776952597342374168159128721699642328247020142931374867947626507215908309344522514113915344879229895192633121676887050098481324612039615610869511435621542355285219482457509095228204188496948775703156160320065905776370804196238335693391291319986304012200081451179976145872244864747790549510692529098660365531043612450255762557615749522765260655388048505527149303197537914888060382713036011008662031688138824994659532718489512845304400719707442318998483594235949266983760721651063328496673039607299877937259003196673996168809761191027030696612490836005688705898632693369129240575790923121175259212779410021641904519346873761570269743492749864517019159733423792953821558147302810510568723378595260667801416298794883921596341838397150056318926129194185412705726523351988962201027909973281441703824732908856553850667280288846466546997130930299620832988117827817360537430966506410693635334449509113301722126179785748926564291985571922637901825510992678888423177870817953486532062982148500938672393791735071678226926479867732126004111696456255763682928244035674947833963383410370610380021461339554645315581846853197479610602609198995841017468441277553980207537923540990010927205147665312737681093754249119080416907017098347750596586608288679431904986691431643373714490604295770841762542757228254630327192239833966568302595385206372489569852449284699142639985537613824996419303535676113669868778262070119536431517442296699507202645244626783148953964043336253814177112041512267044451161223258243444734858589626296074977748909295245611045449837449950033244162238308883709025678433202860852822310103171518117934449787181815205606909339502571652290328565848660423302045679301587089036816537307216805474085290840918335634910990145053102910234370220737759471294265517527296268091659823262239922284705955692523445932086085901283143139343556004123125034027444807350752738810498271732261733107639376319698522372762022239949554513075257274270941646846356940483677326955985566072826393865312832113300087945123889997196715963083233336962287413351732514374940512351192103306773943048502569682809857227157041679591441648575085222429777762428550070595167778238247182953062440677931138025193056254969936938902289109537661631299098983016746559536940163715725292420027498799799308085177889071094659617686522793442296136360519337405098967433078590666368540302002653097521523057797340855802333916318064446569579895093324868603574690091211393632630729285202046714753999372757990979942726313288811312071780634803792289397974388691734205696921343702642347197879077999248829802233408674719390204457651390750825943614712144440140485726984690677954472333625929278750163943843676247585348135609012420240531047631992768859967934228536083049923477370121710439478612969522861752644241166498607677689777422334543390170061157712272269004982550515413389861612361588148080362645629760752726713705775511744599172472639085825171843045756746261151675491310969605199749579883578764302269803786005855300560381685580199111921009367534424380309393549756844787169384016090179016031885357459725244493033197394763364821885601337367393901188495484081149067983277250467228104916773569043971733306682322713954872341890877919447557161567910783179631925507961974402177851613873123471741572299518574309975827748986575358060534455129941165701533298273692619397393768403924241478697430709550300908258616592870776677973277792258378574337028910107891030958364156561783175603551835437228596692506521096494262944755614392201078106327916353960730932719779368909824431486821205816819175917280994183348714566145696072132385300907772737304628416474044774449027968645621702832163450672386371310528650933944572910432114812740574230836677685699366884986551589311407121157050229945207979475053874031282244066522363529038079181765057509838298130824653296112239918469411763189185281476009488389895191509335862318163728607017943467288850709250791199251600052669552412198361888905990262209392153522736682425885142312713364851197665728965870306421960947286523898241054465326027303945290323585989015155306635119584511305854428176726196841104159219522813892576773995144873096727865144914326350262496313360717676915736344433182418800750283296340632557340303191031206447622229513044235549300049537560707749942925765541462741423933133315841862759171447623284141118380364401136807809137933680303900071566901813860107594400227787704540810580997628620523256386629716398337566540292082920243905517546063947506513955223594856391449308347037177520028469295116798749679736812529173441762504872772767116605357863640640792660275216936973192036113226069123466410548831712841604861372848209370990682523828543630502981974778720140279213406630650775538905025574690844980730155009068875285954098196143218494378066904714700523996444620657804993482871166123325639007850589887230511593405076103755451644139032744419863720945482605606657724483195289388055211135531169974937705098440932202848718937700574871332172036346150797116147718442977123598502243731514471736626807413336226113923535365952162676709335725785119189179519564696359762416015811068105237162310768510078555052380152225393643857359539320783822054844137972700699719842861644810139409696709448585378267654830685972861658556206322585777360724207443925897612754729382915251056011297678486627741364064457450456051428926212815503355147193658255730797396896738447513782242567045333798311240525481667431571542295503189777604961212554012229318941882488686079680740468323675277813101988989590638595378272852205972198204171840285762273874480134392532334796523286890719653656398982639268968706262365331973602011224663484654505873658323270800835030197966567020460738478213922887368484092552460836139840773652435484279406943578880970867246156811915154322274915442778196376055393527039351514285535281903988602960788704854799666689109049939684448795928914066011720212482565841865030278660304079999042334713174730518944024184735696480378566843559783243050005793267853031139041125881545948461250738911462334725993597897081282330359732911992115901958588292456942823832566327402906859389623293699608029430587553113673639633315626973967179413818588168346185733266538647613558400758677555361500355325072043303505594258740509561471064830580507405271629778524406630893757887737138073760489133780174782600138103496705016156809359407371719731619124484600251190972545045461919856291287062379009101663736849637652610527646169179781507910083794682043157048302486268326382375329820310129059596338554029847301259130411984372217057516800115122091868437604722209413398531410988021016859529749461606132095332887111638024755186872933438769961372929848222566307934305084166393990289549665397329415602216382231284469100918820944878616227302422027463084830284613148700530531943113389749295153430514910634664387822576739242448332564266458359603395600603896469919765128267531241106795669308418705911213476064297149610594462245888973755984071065839254324724569193981584530550017598989221190639583256690227824107597902395374015127703285503103577360064556759914525539167564886112592631681404511555277380066953107039160395231227763981817207166475870365068304745472529536764331191858391671832527449567152761519771622768247598199005264981996267347617415330207745996905660170899574563071192612432477771011508411175523983039258867787821618989087619964256480912884943879635805557082022992488563495522037142487559034664113493122124193097142518466223615631190633209143088958059819760792985233901048784370301800506465442129335778278292468582737494568392209361091829194911900296976676751729151020692813940454890631080746508088266136635071106736528044636719529519917846192282469027845449896052205935211302354124659374021765621360052097667683718891071642318670976527067614948670578604814670287411048672272635129973790494690623154196989220534842483233993278292123874946933750442468687405635595294741364574288579869811855137796284863663109644466495967443201634746937842900927910857606635075927215485727373835705169267662097079958595499368411952066879932210879407427622249555545111912467506228588862750104788575175340810669996193337130269086650289765665134657890132130934962439242578886964499898614639916766294145787796803717709055386577035929276507107367516379195496450033117346609227252679924410630673012964084376431402905782435399074884057277316682816645234695963949758330020903546429956377259753467412903077863556391041234663305705419464945068857873070706976519820453311768041055180183323676345205196811728833531793220038171445012872431155648184908204715964972389127730431310378377544840170461504657500636416103583844191596328652412765384033476066964022356658533158551647506255802068471877864607362965129730365291803479569684431630027239336334346927751283120484048129055653201769620282767250868783950032728508154327165527968141851935970039968456625566789720882631370610773725940577064063917508668441396353021805462421649286597195515803874244940451846467020389014589388752351754463847854018620297375378876322491333169461119131498983173651984195156247006454238597806993675434918139336442266008908076242135757906860555984458859918368745749722145010955136259695809953847891502908514598932864886665237591689579400643032614362063322036294094938425685335214619686816950296575337011682126362794746838336713688346182042792330076269513510880281423354456927871339605293982100547652563864278204341674000282138984330439680287050321053361630655406763748453562496666342241977113353672201066408307338127614599089410062003059179742659757436658290027810137696912517024038414284163228621564894285498962529640225365801886449393378242967014622326940850853070272385464898927807054155786037358183493179635517683732858559294485309663404784561641210246610367691803548095336964445292108587953284300356794504166394803974669017497876324582091441036826409213162909406414608460300291018607350461435260067829434761561734331428900976151296673735718691727326968342804474202231092628863585598443459113266891040659425708179177911126751089681220420610673480876131133549609404683547632208787264982371253855173177486903669183334261429233725615268041079663822776300498824757554131842026024223236838308605031600230435301738918878132029597909740354147232065555017634200048232471439495503851270346542998265490202823004438733889611829140542107560740773538930115071621065319255083670481669382973600467674955187761743701584638085364188947402784632744670384963786397372782523863443406656645609219146915371951326356896192037961764603544302588651034366401034618851168725440036848082716709715325381154528376525500385934424650165802076647982393766763358405337610346862116054524445995752215685470715553563060077215614684763829188587448029080780046621548108048249048538645301945836916867687023098672358179432581114908511983776728180106692981537217417532554073519147929041482922331214964224762397223569907652378655585718081068268039493982487078830437440107250690850539908382213472885893616437785731802982317250181477525148840125858604404291686878975057813637763123876940891635235320093060354214510019077271956014211074502412821849290883907113121407085898880124851170350682887111237045599422364476213748727697421200940353841469551607987981187357438452605132154457552630577284917556356991241159154389265656175184377201040812913888820372061099739352101286567651454840147964509186961099438396987501721588554014408296824827311649951048337230332427335978273667090185640519054837209557067714406998406958039212996661407965092242538700124384295255734989103448898591640367095329741823346320106579913492662195157395081139969540715480329007144473068841545960969755756722878196226431964277383475942319380462931545079798850041841016067062961745791788719958426479842066847302739749963656577846837309298465879800075687694156062581185887482679537408181334723723285681238187217143866556273339796838784158384158163249701164063439406751086307439096940799448210265456499859072896939121172359114967380835818024067239642825989985258054183877155859000918046343684994609058645043682024118199541801087148182706080445054065556698761580742681834533959716201931316059892908142862811423425315426920361246893904820957749588237698049616098661938733346406705740688678746197464454806157145181771308111593526201964235811321430576181415159509272638971074115250958706169024416043926774014948216814820379721478215484274484396162253463715686128458601745710405181028510247045536895040009619942794577380164230768821752782932183159623056193480626628072876127941962276546126504077770141435676771720687709108447855302857350510894369748504358153725832642453405066460367147087161049613236937198492665243859212240527794515957760679089732976770171876900092936805064739793403351541025569451273631814300701788120011390964972296283082997024887939162507276140233242644603046573022218832882779832686378242759507567961265060605677193139075027535176896961562240746199841207184953936205081944923993643226155834851157039037986648618650898308473602648410115582879448817238653854641625440116087834582075619461021981762709019234393005099333479235159009836785724850200776795249215304676736013263667451042906390404101745517419063169799287430279579944970725706667985000819604127834390271176143271721466196152677306469673051436667381701036578359742665772024359815016326645068375989991164797455662718253659180247416691189359311869540844671606716216993296399324917049357678015556913764696113737552119045963196644970416569315845228207130334472522409781480324145996051809047466005754921751869558855720147031518955110612802843866988710111468174655985146193805154837679206645179267755119408471310555930518245948707706161632540985668184196721052130881362452335344777496423895190039486351586481509200045294730902676878600052209062276776061491042023908032208158081724804896236350688905131581839281499339473632063851633040641861285771714401405161897548521232585431785427095698301257035982580621543417065465896201318955331342892459098420879717069365009120549640183895845403122868283990839201276273666218668083249562535068607475840484852754589061429861349601030197344217923548615228029862588497091336882556850328706510449435880087563849435801486741836464471575382117138537874209695646827934046823821080092871520445044519433335955595323646673648357045139366557335156102435425622866600217006192491328781096369352198164710677321337664960152405176925110276006953949561844156585870502826202972942120880571377027644133150094330509280072344054839368049189945999019730257113513272922424269885191357473116339228471827146133865740924351585773380321492170451336972351250291661514493841763935575404534245710077122330808431816369796130854793775969101396089963521979943774256099644522571392312773973015615557151960499540128491412075772911010613388217183412764866852513165656156839266939140591172515871780198864604778143506928588675355477754296594238309378799774213268479355283284066073760373900222203077817611391360209960683065932166034040586942689776981947814574472717254225732592284503411893873781166968142053419601594743664326297861844126236744683732927705979879440510235730711975090293707377213297348831039441477213609753497575817126823533139434003317613647001385293596318068534028793064690492751617507601907330997422979632700257007580103045592975725726393812433737211732602857861422447574685190018533392242506178879985774382080215760660561265882114506924403470471837428292728480635786639973283025256319921330252777404056988507748542964902976906524665472598862197750519679785292799923611834070162477106202045648135362418188280322091819100399866821907178514767085432099909736886132980381868275607510473476348119397388386183794422554542519643424376985445755625089784251420020612663358779018744692182382334850980188515192914680850964695792317983840671384798262449359674712338648690732858305797611902391715933753909358459689891886362448929319937547550722952339880403205411225510085964613718196891173721253707708531315794722126646949881769319167565949083440697914888554501128285893980560762366637821383245142491850890628859844636252058281582947301148838065334992085105509338668317288757415636899342964090544963120988649496318586660136060262500247944271471571323536636782659619431417974766845596429874885646984523403782492245373223364984928905953751038771258582161481504771515603251458430849758008306073808678218881814548440212944060041187862550438493113204933064521134734519378289684114965883777378481776359706158388320570400815122793583792877341715585472976492484398503739098912788430488936373526276708775610212699762996582607717844726795695365141999580570823148039874814261238129525779623941752000210612977064648275096819570565649077079522625803779288131529768774310252536295661214205564305856646915945981475630431692149347477046680896151723019599375322250603291978007736984980964866602674555629392977663941321443409260083717912975805512078563425130708881372077434200747503633784431088009477581605189917377164544038058356248352718445441100157681615869954996504902014994173701768306616279223388506552220806711950135131282577409947312645335986671757904634667904574571691907050272069930966932746073095353031798588544597908036516328157026656714990091878970426187070029906811301235481687794753490852397398618031281834921282064813349629520269122813594324084015375052999050178635286374169789832066651725043943808629618579106539543644735804588214918881771232893646142946103699136941190494445369112688486272770051964610997398106454437145391131387824133483763243350357240779049661613647189396632317273670779005187523102640572041476416064938533291677278315265134492877145249281375746545115397978264766019339747433891141680582549718541603183493076674178493803964936818838909829627337139194429677052814813385985287163223906854636830474312438353153180097530160396797896210153657911233329959329502018930517562580511925032136506761171727005289941272293165030253199843476933835244390308160902890417762674321007692200650759535442253575185328228400723499878224692127257129188081628776399818690183418044839923871531876742524015175201684193701206783910420471000682089557671920341364205763664696972492462319455323696367185529791569934210377701424945425341009053427507274779384888761746479610768397897819730905987720018805983165442273398420363731499744153473495131259885331085572136164084163363767175117382000716199881364680653747120047154595258682506437229657665933979597004480027536327978673699888770256955679167016204699267418132122957586552508100626308481347705244554650260358305112040828219243395987798226134990902995578402505679392557217996883585333738197734486349095927717627630183767697885063137351647358393684843472976309028585458823053345761865066640944076778487441555178419274604583987057753786453973724815349122371469957890509034286984809598419976367238006207939156822229747154762064556753183784966807750635056384072040264381149062853573062652193865266471777882624686118505952888456516241366099944631696961730298472934070281968394790322612960716444801122536478928070557284839748094033097550766709333772303744101866938812348405862806350159720872651510779908864146891831630607003971444208313824157196466548891974833120110357087816975345742983825867136926779344140595035066298386187960321092092004124211366093112861260188680983136078306879358556938955731476056095339879662424704992817319029976578603765557889178961607530811163225577035034438024404993697938618246057952783041664025730127073841226325567166359107239571860290334787374169307683577705579662588052172887462163859982207819929355042328182890955288467412847882319005581267114370058088803865092684046171300166729378753135313943684734746495482055866299021660509254642728427987409850733145201923952777844574756386344963335827403716362130561488146388914426497004218067799685230468850310628924100393997100270330402550836086678530649479739313373096973076703674262062032275001683903061141941586413889163297767006182827027161175322466943153808247937206178331200028885328015101809737806349305616355348758482989678519537805294521046042418713224035677517651288592255242436753984010454097095666389853256087343969619896747536421042602493401645165458253133380990879253770543218411858491617245394396976477687441912131615299034752701026036068138869811359412783760696171040269771922993491628803770199747693404928067404522684194572765965583318747810168377338919387157348840209713476823662263369680763960909869190518204992285014130446266146904620864900967512645555933535052186397100163064822881828407689485684488682628046309318653506630479326558323080673582705284584916061433539628948801509905062271688973343049818487741596254723380307946540076219804597434448082352927361948891183464283153689848338459850047140823955837006412901449477851621653194698979853565123897830849486086486512867717927477696696943508609385614313000359484316076169954005791810273170275256060496408247077373894793587697536331407624056102456645807787778313019827927089054463255900873586872093752421930508835448038799316388687817360521401622305592700138085830834855870674985098124818523244492377422832363631453768340312128875391834217015636047784786274044958861777052065992015812882323431432957760448351144788534415235858779012430307804683745830868716192438432801294746673252530756531262231626009794695565648880877447252287461483757018639755456888640128683827567952053965911104575070655660423842071609162122383783476786133638537813290280018854894263390312546879480930001576552726753638611534121860171213406300037709040626520967115535436160973109965054405830669838356499252790052219415035575192151949105236228120145029266336314579454311302269492004449407102927025135897890747582462149723777379975512627205046005088427010263452870856146319279972754837413846605638943008362990471157710309374449653506916123667752250904634079310498996330064797137035309066498871984819934006339023762468748884059543407016723492054406212973083361542268812913964627880627713532326799689160688045988661935937615672243999575040964636435449410003579784364064639334175077268140257893191155765968895888078071963167938649819218365018487650167331092213591567386882900366570988131509956255462498029428696449775436758847802650764018195976426039336876052769975510078632499675437856609558935676682505078919890017137333483474411136795672345502901692095644735521870660054945978762087212625444538979246498913039341726761533659607107778631332539596920809608711644527682485799413770031347535431958714599867004857171818939276109867822905792229528845555012929313840125479958385678345301524133749671583924356173734376452681685575352649932438900198823364770986596048444781581666442344239499530818754188251772978920333979841278389700620200734895974467118745348717224120879886885741914969857732678801552561636447290989196623976282671769318851773070092227116754919533701434398421116345961364440347193926687256036277304147867114587939491660701356155413304419021389029674479461809006994151592211063942357724698383952497151176177177304249630733767145060952663293237475227173006864770527185226950467340580898978775827556065432862885040693433820985607104063691696532553792971121513485495432206823712995096998024367759123962568081725931042486041366075548858333551371708697827241472141323343234867353561615262164077919615611464470365460962257708873179839947930137714776233111647562398180335032251217966017715103844727297604357913317196768160270222687820360068747565069610594166434545576740371403393798059521456914638452392608389181801527662657525696258447375376787662573621713555130615878940868384577671626538972797572923927033353939020823702402487552181768840675354678308267224848678467289144610006849670394260796120340470741668055513949907496469645918440324393453401930656124746344943769783541702979814540329688546472218208019203407792479240201423675516650572402151345714462645343063922925337769041895123580695238852232015307153817523853481489960672333595287268465065991748727063843158471008665579937793415977064845062593823841171344538014805094415155593744043622678868635226953890980835639660405027916041645938359978250465369054476126439316977095133514905744347946795525530447759675611895865493102625407207107043364768158522365547523997454515854174964115353433245844367421510519400958357882076233069317940929050233028767419306038428073678605923589351805056931897913396892007489187024012832687125728175163577499439652192081985938429687124191030634505957188157378585779980811445065993989365649174267668383550300292877220238257384308078667265171857504122335641109492081319334952184267849856242639389845860993278661775510363019402725908936426081616195094518718128900643318859181004912159287221315032641922862957295934823753938119545657187035485013391906613954151086656507999746198904580907762206395388764284220111282847701918206724699238149507898776630646455963742052803920267322093002023587744991868839282241059530655469639547272727368882924148953733487769913978660266780141005193234528052626392321601209777857687507917318611334174439862236266010012001072682241921032240966887564477201043840857733092562753894836200579772529287739255330735686471669050754878430188427930204482599367361388315464098595136230200280050274227661440548272199619943006423085968953475655679168558909252596169502047109937378434475180651176088355131644670382527100766237426433723840494508185525799026894348166400516617574969520887545169520763065167730944055018629848100618201336875351734556256118863376474575160092232913446629443280679098819301855577503623219159872480963720956686546347955482255282037604095466844490736543381527115481484765563298219816358234178955546910645983162296629209847425173814602702626619663760769958931800901659524406107021879639882371279259040267570069010293985569953609538598707799276211619513974927236521345304591253251123878158056171440601857337242460548248742934209560844880906620058181454916912882637105559658098342259206433178721219678876094583353059153689872344015271084964790094682099557855252071813509708563045747335432791093606057280282672424227336512066785827799155513140197366911758207461701450355919555437503738421031830908510462686095200583828555724704445693120277508342932047835531600614441942546246074799638020498336426956247593601564996579956776721902473113685402337723893543988512477700753844877938541138102303698284363160261963387237860333274247598489331573632861989886397870153315230542445056139190781908705891725413963210119075886854118953656752358514127465646018071137616753192842747574059941101636114720612833819481927381296299353534464133002595702726818544034103494619366069380687269727666429362103138787535631074458878531620991046813290796832082597168155896854706571749417161233334653110963717275105405820888170792123829696108863087533941219045877766081941217363822666957557850577962494601365363559671391925533721968367332300844122170725675608308906089064382684373131312068869364049580160726716263367308157615323233698850414976362382212392796686790496197019786025888477588869808823492652662797089343739541275666792040981158537379647624849521498690554568077792588888102841786168096739203866373496894402538756780973309556194240113209663448291353116675073924082098225392442761222340088796607068347307244540254023980327094019889526587235780071933028287129730350967358468873718169216271114639585749954539459349828881905128225782977817458122402496545877715191250923463700762017421070612309956515460486373914492685065914759124290687175364687307886306996434066294834402498469811621635731625683003524092994818117656799708161130766899055608387188085148961163658834660838421358096103184262457062837226325271087184861433448160236256356955302278462947820855170826038118272960584706960774139316879174426380510132982193771844741780693562719794338273529960941936543126232770323197645669933077618977931030334364605779881554168429153136457852490420585877160962013011066792610406966491668175298340299266255428923948954452870383138880762228388352902016817435115509969238255732866234408242753768352173248249268769854511953262877727926878808598497721309295000904529659066793818831669343704059020071536105467509339722637604532416750525754695201996239096876516499343315003922168141387939324277483505250537397888717971651207217272543625414558812057016060400074652097083971875483335590906418417019007446727090725533455611134423890640909407765956296055830874534322264590147427866168456619916249868319877771357712584162229509287964973526226869580761944289439180934241776412825284740853636321749399711294769782505279146107838254816126193828459000884112545224306255276354890871065087788043038517769075754713422019376556173364436492547624366560912208590492301848595413670526582079929786742720541295872199538902912703246202149997113962613713402384740596237479243452506680558286492627854294289656112594702160910237077459077810240672221319420816974604408840016762210874784611777763430999651794433756046175333197298304676887849353923456045055685999997609856474381170519529964139541028751826937410162265011843363495486895052596743406875424398309838523080623416504071255159600926363554826614557210241519627157575601171371433527753749356095298548060316203991173910952909420862289829741694692163535943712051277791452101479615109248452786683326390467546059061921375301689259665150492887602999827966714397905003416483073483565270771537206408075970251667232334608232934538539346636754375818891202583218378723517271767501928988346220513884401919449730341519084513415983958820746728835888053132514136343790419969751406562456444130194529532166545405148324284480505718658488085631675370284931432067539824482396436947703410776694142704846825367521089231254193057806424477083250564468679831241261275631379064715997022799032809838350256882565370125158807285033739185135140914323306580675845885987092859462304676238661751271479781490147747004906573008723402081528964167155785048374260482668427388640984173254705660759964846605315548198311628639727803917188217102156080772829835017504961428661305482137932165407338245131750307064923162171652026909092920427696988072509513403792482743028747704628067813065867711929734495163220731626544833718961934552124383189641461551975067383118235271621475571072489351445197159194672504620070857261799015011111015432410525462013285584120182492808071501289056019987486909575622904371280363416115704359873662768011993969025091700323500733358752945446140590917681131615454182492904549931971467696877113398843682230207659878565357319564879714062081587280717708749775044901077962751727674910605746312438115573231627218215376739961972174732446281280790908836326347212680259597678132151483809162693174606172409517015615378919264930018595804710823791393869203249820739368644227307043970894245023679617485603326181590378393685600279203377200923972751406380123915732998296699876987892119091294106157317893645900234815047070599721278822025096056918505140128373334785567115360658762157914028315361216513145039489289162656434498565605005272801589328738700224015774119637699503088770771659079169445131642138996656704525646932975321953671392653613861255473955884651944289248483707480697339136146771139206630289528005167868679847645102120388983034497722976463190200537541854396661790667764095930841802719199112634595787361874606833851614571592237275667814344574510810307908967634227443848857609452661471505288717871024886194355294808507688365175221760764059733445677791605614301798098677911199817979107070831149540030728828444551809668885691667269518731049349835296326378642946481470483588623246437811525888151230548650169002215227783121936732443437107702717818791290058445270704095897657020012492230641515332350895089368869924207735008024305664728167628073839405715144999368334749804210577205606838946704689242744008886143300342707706927836914443910633700724638934654020569202374514393663599338901443363146831830453155343790983369798048005714999580244938356778171990067298948234317640809038068587095968546759963805157910939738416108376064736589917492415792096476927652568527171047171883264202458202696426939327845634549491187523424010669392496600122555315240881674611369028616868412141276205135345315011896879915221740091012493102300815584920925337777227518274278460342840695222486743582180172807442808488490498654110256735686124620727679090191543636114119474160777437745444325335816437230422289955692764325841549810280691190474656884568463271624095110184480945699938465001240103416058834796772300418529073887280284994677534938908404124306580728099585394944579897099868892592396150719584808830096830158846066448468646576377886987297146176272047535925592809653308265598981728126736262051901943944470249086938301136800204607334887888337618610347503284077433291301283678974044240134444996203217115196604024318470250361448717555857082108862806551977566677437316702883350888186238898369430422177345669280588033703609742204420299814817634994802305952158479840833346656548620953218788601173193396687582505736763567687113640733252763431841975417742455694080568585347518908229254115420677862204329735509579282862654526978168881957575374986527587958432311222651639518705119511768215535572145834399622729482734515416247632450511059024211909444167799570843993225766914553434156773933958076269484915614919585612197185718592050029180111784729138750118236828696902640842660146052658634101164698197128221153580448512796937482557990299195854194629123462646852188991243754800263740251922477748122860971004926870885744964308455753473804579778187025474279480470269912415280847812455302579074691667117927070511445119943724465516044051312348622619237898650872072860035253870903210684435395785109180906194419875120082575199642845159428566353445400645508900847439964449684255347791049007395908956121283798660028319274291671192825944385076568383234909112055661627998867584625421925977554510562337323487701563034638933537516366375513408793919517022400683661227845382315566639261074045710813775703190736253562753125706369835272931506084545468995137578750856356999575030042831600182590625808194776485185541812275400956529468466775344570223157227566587894977838462853691159113693928798952130328425088513403814756498788601179446716465940254392017988650954909333975328252072052193132819110092462859410381673575922130003066864037801284891384988827141166003208611026884929513278357466528832671366323587043909438166530948513770315235115017124778631953868382434257769430078353520198939780763012791926749809383700722455145804597037923945744810921102025332631642521344158091657621180455256259842575256517847549204840600911727330467883506340022193057292829245341438936945097129455069276039357117300920588986316274782297797029968301495448604352962638275395709576877173872861995249825985189613417556378106702200648868362269088793967627716396559976773434024012314784077452767652441029418670260819027777232653665439733362318449511026068393926466693450847868000876005205564574054973843556839959766953817887644681470520491192167576719285612314066153076537864424959831371833847765525797507965686955681486612123103089859312136208352736637065049336010938554143195717859001043579011284378409506144014867164961344516307415466443329868700945623895332381438809225379679312953315801594520131907756345845661564104262912172098073598204781751728620984060373332396331538705354959796470781561100920558484174598204667636950663230630252363819229889126252053877844064426752192712668326384329643188178499847452448879595622424938583574479820084353270433307776997078520532552852628660567068917175371253252255932435315849097765735049789038654183760338523721895179146127674333612379066689163815359796244870815368119210251674611049963404049598065814591842851614617669673392162621353693683121306899439658406580309051316888246551549174498448159310757177533073160484264960279077647248147033342092408892548504206052517144682549127615524136424846376419336442688153704535129763403042138425261338037817135401247395987155328448898004154547032605036946984852445201363580855300933306552616917640748008690830095033802996946582214612734559873495616720723919034648874596058268397645721710372619451515932730411162232493627144574104870098812713594400587936010146575897201847926009696257804787294100810477235894333945166311151274641009504178880923395294816810854916127398444857878211286636729668697447489216550118553038289922618697666119325020200898735418191872031160882479280055880077881850200433735600708630899846836201609239101841222236737263898143979979839975096068748874718723006528524309467047124055133927011826416975285808964812145427195950349617961705275709937108693208686639383994924665408290697266241446405194104473600088338220600831996101181763866644409730918929031804151551679951914373045846860475545476330086499539855023685132548620732005243924992076321969604020240409607035156323042077683545226047998245587831931757130538026149288772935437844084098338593254822349216453527111472684239606909015709996668203816472927310210595181032736400779687619645910079436270822897931834139177812706322596602505143491112697228119596687265177722049189040840423882156676723600097436783305082009137616698933267780570493773966137686903756984137369378298915071391595658521494167413242529713827332974172458731355068700181648380619438440938598634249172538716728021530491864184645814764956311979043064390221097508142402965287374691800780146062251563332563907070423607839913574359165918155676102627855232119530583452483264174583513552149528647668933224330796425981726140761161879225545691906192226654563812036622429914017643221406327933344523709736111181627111110933516660418177252398940032575268273747383770239996243941934665833209823623607133285838930943178362866132679673523704329624626192297694545768467602279272326092720447315454482261194914235491126257928371382974324774213705690737203071015295979934267054375188969209774864680399972755574608356159165580704044359280494683294120307746284927721025543600387114442465517656634933281204361368841886410244550827532311091200177897861450684864086535860686596193126182575512399414917592980293778621030071563671392429208876184058087529221178176033124923325726090238804230391469845888502231652887951435122968355461837027768950405087214507127611027137222090045114320843100855989839535311384716490299645229559100719924916489829989459830550495409837237735688786201242075436257319391046713354439958140650842095557613279389811980607990153713569036700176917335383357143148700706095700490033984175601735145286607956310195354857811415331203649004439920061860318333260124295228222049644030297210797776360674467265716532365702179037948700693811563570497704193410713592932331484271655321547408847386972589545761123849274236310085174827924192840048523317068926859535558349137288640706672972132562963586429762486140795085889935970918100905742895822420030520046844647691512867495617196404535309027793969771986357494778383799652850901943937532831669993325316365537981848849055649294465058545690443719502677496179891132346522658455415033285203980160893981658785732873744485931135055108193040169822481201893643991385012959028578668819541416554924089565298024777000196336429995496379470466414003376775867706727770820161968887132015158732409913433168203072760540683313975187480012953893956627384200315070779101347008956127921513930587058412938808010566332302390742698909755813370482175304390645207591180768396260153568556771896338691343518442639439310762901977264195568540944179734773180876435277768426890502161802788788457373289771494506252417681575824336732910419278769830069991520924670726784624475655873731534668278650224101068975674632263864761239902980258612215194105142910924690029197744683939904644502676427339252361247435609708459404297910539960692406559381695259102484588524640619916588566146054674315341157433802051864414702374779825905341489814383164934536781154600055708824620094622949435676985233978839045485978470499928139934405239367790488605208247452288862003160299658740913331879726346816500939214044761113127222247649732400768665449009545315911407933255281141496729275374758631769692559934498473153062733443504581115273113506770978170238292471610076905359052297425136473034295775264136709877102116617087941618620279195559022808219669824334919630262321485500101721399717408581935455136070266071012372214233880628001220578640608953839677216554380442076066540859919077709093738032604023468444961016268431993621388156076292185963329867754837880795127853234940788609626869038706113877963606956870795502961266928318946734756607382583688496231279968151957245832661388697085925880337085831473107997713819034554957604927128281659960996754831820179658046935100516429607535081539466004676981160398980626721548469521992803035147225261882458131413512259966226752517556550573474514441958450695958409003990265584053845915855830286896855215475718519457480978020943973379709683966031197665138696885065974392743670785490126899145010231550397274479024019247563434604428581600877173877173131980835197738525365261133342815408497679283551940262582887967298655544585338731201861544184778621964983481996174105664577196321514381371828954088994599429018482349400457746476548321714311746203133389126297499475637369980279880238702478522801992719080970513812999997302284216090072821320573420086179092853080953270096800677842435293393404127139590334637584165728642766288298497245953723106398348447979086845032334617741954974633381149563723170622790593429446261298085986964415561547302606767926693048059202270657267147350388529145584709012970341755184408477683333653251574617915923881391790700749923667956788819212736651878173808904151416045282520964880291072041613811548907816931655481549786791564246183741153726178152530979377532454608216485848749058214499989241039729445612717256787891826281505391223438653894963079586392118832904226920458409002491897437525819631200456781464062676242296649916005149380646038228193924762963411408626475809254975137173503204256809106674726728041493804440675648180420025806736006915488970061662638726520033095749396755140323984920417049667013863900239869818391522707972005113475011808178359116292632967381734433130263416936575816792075241564134347157120192641556367805909401671881479738685442063103930299092822545168824841550180764999925032293800965522007590335629049835582284724317403100492035987764021847967056177714753808612048777922400728161853431208845027822003665564546429268029760732696794211202659019403406986516149094084103173780053820338755936120056274823865108497441486480446682448187632884015449182639723695321874074990587656866301051053016106513162002469633759132670185714585079662080138126519016182830739754375339848681644442649661865374517606221592792016633859379903072367781089532237777739262286235456245085981200304343272675155149754662160663556310405637272936775955797885617163084914808418225223754659990064326884776936509167287178197690342588790051393671742263524998387970472850797563977577502891720876998077266933163874830160496850785227092266438539789532585844365536972342162097486498808776658821018197993826321736060898113984200995758982601762036678823233292361253333939124639133118770089977955750377634269481384095257583962087800362017725951917007486765133856469493376470310661060785859984368148922871684741484273939215446847813291658957472599050151097384880767080222922590066553198577947187086840091434886218726961578065116622177562630446994835134824338382330742781894809271713723107349177522846255429837673745963277343665227276935290500800230747174339524291186948439852169311839065930283329910139275831933556741565770765086815344668257604496917706337630978625751791973250868660971766472944940286743993334835905866121002372808511798965126532997102787830350274168028905409797953306900214823170498642141475221239947449049248623666743350464021835117710776131563852384774332964934560068083810129871840247126866175426709620751523974892701377650781469217062491805495811025345895460926640834614140745588847810710622813573323195892659866011331544460886824802793356069204778076898618379479040232537943543047884223053677435948796493642681430392917804094961434675741190740359514572123673676470043896854719313028020072584804817382034448911767939474839214810489391546813121396397169144507254509667479485712499640215735684461061999652742589760048786543122175505061667995995709662425441407992265038204974481913774364079005295404464294449951450870407813105785741169865818710068802628287015255741623480537791884921380251379203587076240803833325899839348794469832903882616765007792362403210967073697622182336408240633333480046874077160269670417157378448391084744174184910443142889683700747888902692655961363203533981549082328396754441033187182893895574687354940626220113730100686005334217396163731261124767875939997841521143160932154061682980174646468863185923901604914774600628465194935319416192308790726005112952045741405544587317857815097259467555734831246260801348522036231059116828365769141825888743957590534986535382664380165583006216041465235885725546088751479309351818446742609562904015555958819839928978068092587681141545868050138445892774192872907564723258930918808600436042075026012101905582264370635140230517804861298509899750972405796069015721918365513016328512654874338976745966408267158946321380170419911321395757427833911507688054282400998683336536884279040209170117455594730378989515807990265635723190870042465219501270173036642103254283727192658715493999246751489946451451431407907565602569849711662373206457187103067034033404892592427545025953033324324823090784174577743617098190301242714055929261384837698020065704097747716907352177027155808731363534885936564255195865564383390990178230065086211198692918906372740008222169231758454841381386644006929163787939350344405138032993394964061055270042103631312737639125267984494922830489735541868981426638873317669842572961003208967022832502999188138425972448080327772346116582456882308720536912783297016437859407874092920008861656108591505971702688240404496753209822159853340251005121720493365265506797845124512616391292479202173074855763329805942371386143357282672764365110417145965267034209086273064164109224468939526628770320324747279752111683378054958922552481375235641105922083099428582857438111994973170402785985964316155668373805396323874913789367482750648094825251559400852488485952379400241907362018510496958383205804983434223858128163005189494708621186602227129464825151681028039430937857075769240447141161504083577938216186943155199223690630615852809723746708037342574703826339841089095080553624522290259922675267871189760432401767035852839349977847727885300871764847873259170717239270213418675622633626803879935764146324851776715585807381045244248089533241127424083760515489527322675856678642836048992139756241729614454511834299022766624365096511698161795008828168371200354125752261301833949339394401220046715371593226816697120035143360121995679047229705664224022550539878579863044120203443603367846716821126866344952163782658985536339587136099828174824756417782435564376593703927318848929092419936721145945959033324845949978830342557026512252423444445643779983003282458974396806018700768006163511564928316496062602516359512371084641341171596150900166646438787695138684059368784791172824452462340384213284223054671944944338926283272309123509262280243334455411842401943387983775521603610920866579562549641413453058400379200026781055546514343320456325532271093718494669733846872972711730703854462339098218751611726466555054949590640765231115412270437574286156031312646875242133983896970022776818705057262067803675970993745924331678047576473188885757021045913732349322454530189464565457001745885002067254954132895082789831137551405622640777402621514858172788994488706796287907339960464721636972567021073276286718817076705195448311555127211703426691779229119916034747811667120237892694587962339633132680988219078030459550593805934122470409325498595322669870831519181252256946736920419983830324148345002196942661154385046894189730904409216602133444984647591922339506701437512848200665593434083588079254237988819231955355687790450356776797835562746113222835128886904820385747425376016430669435279523988162679899293223578002845451769742753581907304502338477701508986675195201860504130791813016820397207955144133611281583898555588009219425572734217203955146101200260821125422274621983861835980377859357470195113189501610701664792660484128334484196135280976486937988121124825934688676248972364249918961203240706245446806294849216710252122426028101647109719298286103302364420812939818045959815733198583168663956345988789951002792709098539937810143685166951722041925602121977968124073913197012864057262111909666083853547149412159970245839098465803167625239077502434956455746366614022091042986686886064861643946356579184566893545222248342990422533938117252308710871088783563472580192037441591192891357299105358361370658884569062312307509679558500678097532207585002861461173609763242742470343675046570082310266388433842339255732069787800826589857728325419154801678179435679693964538441723314111129496834152152347599280075632031860159151148791841278627580455920810397606157945052197078708285884467950369872728620229683159423744792376283455133771062949709798370723698379484063687962843017036505353024360812236928996106939860571729922268748670640446503242439657668597996763030733719211114861556091152253119428655641874334869533356642243268343081811823887035289041738236090246679438264093685793928498014921882407884152022057427292830948471772436832202202817274112304427268453867490732881813211646103258074236448018228645369302904943689000727962429192713256557167744600964543023175453475603404075551388395346447380833256575908377818453600144382090083456358402973704509829281896345570987851014959618810910236474203820286000557645740739913561860892407986711518560949125894938282307837672525350296513586697453942372633082617018253114291089478648357209558530540211933388849802577293296104367093025406690191024521178978211047322820674073662345835590441519779870243824709071561663113294686003902090516534099755132712516042173659177201668381736494443757457397622825044926024087248912454763816576432585845449471642378904783452099262052479447294130664197001306009678277536810378212727221674221629689454798032460111375520374394391761865541972754783553894453141693884756199602603058174939324041817486502635381645587627892659340925972655530168748561054710205474068485650638480256658318611632366638991410471701863339508645807173083637057815783280968333719663446656354244492968502401591126596140630005935142931746338779819065155173357407314370597673340868779513614574402676025017737596149218317881951644994167230644376675116889892792793201982415765429932271465768829761639121602836513081425541832570327338220831057407657553548331551352345764282527298702568694945965973298872884483903976710959172335976156678974363630713567215508373611727063338422685223819982242263916794271577706824644945206792762981279371507850731039350019841305077310331734466010023602633081499550017839054458311890420386493680269526561299962582133718387567231843226265055783171655299100037483406115867869263591341177399625634172859482040840469744015720171581220192629466107128454083005539604518254735373674240024663601755012361472117857793125795438158533572206629414779076445789305282604690088547985812972113474682833267751481248581289382697112981508421448709923832322213120744674238333131735083828269860855179273604904679190211126991477290955671645929243607601095376661014674003453553384242198200373310555579773480614397400297131336786477121746529759489487706997650505447781809914515634298541058698911293270139062932823460829267315057637008655424040488908105002837516311011127171502341167660980669751056031664959853848794747796205269451928837572783174995568851255960712644500463970384362496420783285742783796845467795865670731890303289045559876042471583694057152711455010618513801518894641382818118659249241499645087025887110620886645082494966558704566563453722902706787342944755424498870006322349612001696125493279706356829729345482980349445528878569470330940180696081616246637801429552156091058756111235466554972157171055021159319010334454964612686892876447574136837897245115788100076871777189027048470781761261802189892987752213149306544695740881004466355951294535070941013182870257479436528694166198086829266510909372008470046609262986156732747080335105074954316606917199253081611761853318847572879687064590146088740493128283732235358449417247135769216673581217278526903121471854999185566376417690365264711344874136158560162570767280637525934015141465776010347760222092996404533937265182066903200367064259668140752981736879455903751031747907141371741871662162068604679262168548581323842156802185358095277396205168300345060263417056593935053381317233034129596143660643064656164693584093799810583503115270143857574388425706619930593541814872178359046661784505671759023905111099096029529436067377243727776206666823746294131696058034832751459029060214284796792896545813159117556752026353536958027785384742362097942788993964914420167431099658544258252423194703134149351777149247432072281219477756971590682009936560755361271542053170758500847541360516422475542156241513683445988221468385943092119411909323470295577074271360160224301682118102015956791043187816450778712254578134082759784593284606900687444755302037267694833968432380360805459446745771108454989231204867943014171022291373374759409665712080405919156146660208174180820989197698526319757199051958252801078261649024373563987640177738675970410463547932670116723221799754873730710471858697257262255717993777635641193692737245931547775967851474273427541462705149348714557602212053509181900091330559054031514259849631263242117982651837504477318253928782128488565151793964769500003550964105894963062484649632685961120106586947232095913524147772356424577755076151615329801808636325532289067141924006967665303406103647798456497251160305331244241173082071237199922910614220435572706957949903324528819151237295174236968056092594318655116451140371815200971960301217745594906288376148871556244768168045430019890152500987181256162316572694473644180309552969669409116206900045375509831389272295317396815107264133492595387698811803846601780908042630653925945383073038979068358375220021925002738138733977660550205138642641257331679373172609633148571586639725316232077017652208458642338137604861301776662711662571534483867627640597581512179145892295363788124098487415826158596772007318081454895163216981145899344742324573776150338128934261293854197274295591434058929044771598792685917335267958803124190106137803673151865485844415723348404095726387856413780720813857423745034415616091845265688351683969870759212416048830917908865155939494106497158129945889585409461252608503504255699265022534924810744287645345871243068678081826076789410224139243834439610152598150470126989755237160141453255404109025774093430296351675168566625912639811357444953602422449793362609613236361292092996816456954078143116828372500057905960122977783225680353627892703781432221323229149790622884027003910210837589067178677957856036051777782352430158526961821752118030676463238797341156942197160492088967738736106130869350102214696072575937948359636433839738268973591173204294376270518723832122084649925973235157442529842574533125949637947701369946577081390821410712559195815098413681675787858661685182493603851245349978057124088176830231527953672433556430248614926900349949144607912010234396333576731198063669592847276584183803509018291238447654902310785184463245786786751862179712043819798288033171643611136547147923009748213698543550871649821133554364073053539237288423333863891600036988470076598940894687896090157465205125415729203053315610327919941963680169563430102383125123010469286601391517827214612961916113558229554971352951307074646523301656756390843859251217362032082261868883664031485077422218478931413848919888918726968086789743047591702689959378692305134102157524804766444646322507850081870750084163715006533102135645339721052684837612395587589043841995604510018651272107307921774760727771663149373167325721164980679746635843355375316103030175461419295193128355768845235298149446591341628464811708079209486711144346117613994252773065039272380366814814342019007620393678474811963802211382103928843716852200352172461673345042162805707532372522220649836502974887252814240504012260343005511973568110118700194784582103049758402552025043107126078542103581718222179335428339505166546798973269293379560349546868768602122550847516168238811426408101416225538743688890084575292017798156817470164803230298636517962903579642720636535415685289855119321079443589199895158772114828547910291902783326163865666118230789242512996423062817127828365655840384686578820096526069957806243905609505012894136716812797064261859803773208699486728314118885234167999822398384942901003162234799326785773553715982104542318562985317204506251520446757183405305948271271300002644469774553503265303764560523426739376331851268586274582530815377802903800353685389069413586697833371574395274765013812934823192816271919878375772059190834038222323067232699390232865081320860732076845964923915185237812239406437760153927995402752356323113401155790285894263946286337649609658125503513370919631907286493225805696955666638133152040141402567938403177513280742962905502190007893718057133614424782957993362329982460498865140440221544993861912894114428920359225864125935801649118890670441129863098470351799086677366358724249963517082538348149892342217157227603823893701067324192110068707641962045848903080910613402277426459811602584520397498979025763370682266060843835077261542797824355880043898704283247619793400589330156049135005290045661632593419733006798845050326241902777916020482721744879425381024901234976925029686795041894318095479545548367276151495246420211262406192091009221119471487241237028607533721346850807332404456200631300975846750026098464698821184088108945700659540946712366165801192298062382657920985292685294295334570866158650794918778632986014066178824745487725633492084161503485785552271549407713546704416267588863152124018120010011685080032136345280139888061438845135631259133940142236751489394492796019231125432880306851048449125829807425554004779507263647759793419662933032555364104217212886873582639599068550055075885191167217086364257438613651522011403936782868187156818828606428192606713222032902095320963880067329596000406303902655172062013471728523552334745348110747181269005852918223131756169438341406356277827397581406965842155310787434746373814636163248180345443745886666057523262408498015377605806492222367465724288453045499384632778132676592694388477525226578209834070631972307170235906572416748580802424049714994896204256841260062029100880711492288193347951372960827085614597813322863221848947412818378166131582774800739765156539209567668584071076481470377816865867429498634286341440144675432150943924738807953398404655032918556122247292948276685325073934974643348991794799217197210635088778215287496952652015151315957815817359466242012673064788427908296340985137109333831898798007937901941485216724733803690110816201808050946039677430128656592238390215496906558144390862244413113972428484886216509566492812912375796666853522167536981245742017862449022227961889242428323297781482938055591090593624403310041792382129039514140011455477027271000093719328243266438138444231897936549609661631859098219210003844279608598775767501896469599402945199113040324886410657957985658659386844512369242499481533986550324284914200945138908222210796069456267512580418962796609247954168964521163784142563552937685949839509576654477233769434906860278821772908961238374804083501210964189953007366851767731663397919646473943351724207620743063188652771279716138698477705266954414419259021867301093346722099995427314425438008221037653740539350484858351409950754439084474620244611413329924903101300300370282502453368531500471089079616813870811833274631297896945177113194615396731393190936476056056680734208071024381503540173723919074400842714183346462864409763777695498965608115376500659200597064403551437805705817680000043246350557412870894639765381972155066511404661611566540693371179001954693428597018791970012954873160717868850272538025248767599199412827963095819440092917094119777388975619657099536352276543724918040851469551177562870828592251010021488581243846658186444998953292646557237670423447967425500171364222540224199905153117265385045385971100628691818171628289215372267411918609922816249977779728369890287992956748519558305453492810703252614568688262993223155482805712070228617035679933721494997840816565648064279993304027047948157236551034443169495013198666777713275115681299688914710600450992394704048607658174736755614522116829992324694489445917093806056546304334972610798644853563891826306075057867087521488102626707961928408536467267122869561185782268727427564523933278195981920428559050860797672155299922541220840091794144512075468322405423914225141165205133352305206905652264837074954381226107010002619570378077997426787425989358826674541798053944675984751060884875294964236123250201823422960927355034692295831958612520901904536998784996362805007431679814190335854214430868633945555283873514061036211441555448787103932385049396082269980850522965285141960237211760664088145360676360279106668705226045817743983049249699408583648694359937090539846947264397155708209675340302733747673586983468444346453353651001564809404362949231327747040788113147508621603061339996928528364431985318529980113935391869923293658114300113684745365303785463775074162028013722022264520830504993126873207332156151273557177890169853738213214437276064903258714078695132149298780637470057621499934728223750439594627433402416496767469831866107561013713070606925679960127868707967992105393214162329292985447618411876112286660349298889823246508899979855515322481427168697071237146132482547160838265845876811201314791856068544359548308412182701533589366548720496960121360874771700830247572458547604680498170362102887317846828166147734223733400695117785181708769070409209487112955545395850030824202930564509727744596289374847018498408279602881007180858931313898214256728931045775909334662535248208628373910347250696934079763548030626088986891211268632876072719733941668941009776615907757055603549986245323132116200091452708446728366948254927731246077949917914668655729153691158887910790213515986073563943683929355594827871012111607483032172818642785114088964880526273391627099306141678110444812388042659436446449328509995404211155692852698119104959630739845769826101523998660143735401155180032051822885373509063157052584821414478471522054524428726670739386445613744816003137159508258572625060800775985347582027183896140338654464161413577859080086247161776702000274795648070657037791281888217211016557245083496406299597294313029722274685765355294020192065063829061047507840822235389596100257020738067401965774750476645331821022487481933432258355756397724954015937756522492413654993229375867093618145774058659240841617401823853880634124417274213743505713119829386434345813721756306215481582835624892697935853906057834136009668463449280265048986127076216156340650284039608447021078460528645258515444364344649335434283402077818457100745740468734483056781374945933792339632214513871422396172000853436245569519006099537865595620429807738013414337360869140730057666669542637154645772254783037522881375701780873659193948296394338238640259885264298848800571790739300006725632376712686464708335552475642001724914685178763825467535280916492016765873555184383971264549317387726126487620538808908267058068475167287983502785820442222555397938173012090375045024951858548781464708074551782884389028311310154672789095962630918274681115084449683226853272003194090464441750633884991075480478953607314659383463852666538230101873215452938643292235722454573733533824652394237290787648195766329561703000274088456145343027980588830021200923763721840984797179207389479225464934444289043073807961038755840340517645544235685776399655970164501688456802605948412955485582426147175632714337758125460095925880958204372762262118187430140501134124382334292893928551141029015345648120706377172974360559992160166301533809603246611903783331292671770661449083404443197503696919873664584699854055322721695668507410230516548875950457373617098429347743426187199602604104478877068237035197849593524542067370891270057027270412150747364517633153665880739712377937879105020303747272249987826170872311936650384597957706242153271011176162683759625264105320842284417374737909602964998502338092877879432388703617716814231916568123120576288054659849327947525269259820132444869220160324969940095134863520382912893435391753737008164971066617015516499497527796174038191290020324523731213366339750468206065214152481639698917452656234139843385646179125365151455947759848406438792540933503777996513231988370300037168621051231898515265020806447720231596776916912671421228017394502977666044894740613458511631064118323287158110303867035525235394399045934528868468265460104933413064500467391973999258557378413536174761983652607731056301344784061047999264527492926506700046545775883172930121744629318546213047351998151872311608523944228793711392504234622656061673678463271674698396764078171159889239281937007168112874891742806863574905729446281505002993776619467559124267488340917581973682700736341700108159385864338520715537352602648970909872324218013360395479708618256460777657093943913668704351889084227636668660706443402811904802230816341986231874373546481749414074191384806497710564285057945448620961719671826907312490221925468423650637124286969890276752489967840391157331467932730674700125884259652480078652048213733270527872301506402120922536654360705235838353095214699112402627946110849392421964326471945817460440388456786818422453694240327905589381779432699582149662379750435213215432751820997255649044837914405660561968455366694810328939103732391038046807443307102048697993666430223919663401271200466165441383351204782685337174294372157783674301514157812890208862646712375418936957907228206183105715789657866126343029901966883872147510495789714679603159059276215896496480303459706301959423545314663465278507369349747745262684669690746938433798807537564178605523108135674994805781065758277424684529573567494897370906190566373849858748272552610149321860976016335501838968864046843432137880093064479477527307941987613288493149818050496783193000779399983438906013192483988826080902178139631215800769100029145101227293908816883056903676992748312858978823299191250847396164579097218476379808942230449578917010998959325882809841534734158228764236569505333926235756473853029067283283298060060744649756397902029193349394104751197230165268950108437782883525766373189602959997442826294627935555600938060271775320414073030172447304282277267124773835214942445192497166386597515384594678175895149055286891646452385940723405068034961770116523918747299798478034850370535852012808877718294048539704740438381056144009847814034823657570672490496890934649315790575488719977539585045824906050088780678532737266281460120863210554129895489273655651473546664800381025549764634515368596936170320847354840224973363001958789273957817870449298653620738355601452963024558175847888818005083389173744784567145896752719954198807271068029394922711298151783638478457660339487556754818617411556777302405248313833608893504229996659151023074926188597735579854618307453911788468623619689316782299323774254942151550866027528802089672028839172263136725359882869442437743397942978244655770120591919905314075273372475081661704118909818299620873920207517373950625028528531415852897505765172068583830531945693883895807364147621340947663380488271126290330779980064435462841922932077751627954306412575484518339621867881730735324058343584526901483978198695998525870927166155271455632130948531777764921770071379479562147505849570811610223935365202567233914276204788198217699209054915061081332889591944966537651612649952825554430136692822511457366440943680399094758063016962752687738543954063044625377233242389850871150061826536187102185102954891060670778891774006233646137297410229963543441294085097431578726782542624245927762362842425506602832940941821494868162995471280147194149815090453151406318806495707404288299253135640685871234198256924037829379185435732259674397875114483842092470889298519186567583216758809057076546419892763493129712024830804984014272541260811004403906566761443559913446592286292462109532232038384437378943168505387186694333832839909204709896032538192907073371082427299878341601261357819995175639822271558964452368365219329116283595134171326457444705261388644371933820911467764073626778957762860483051384241464384954063733717107079221055546427198475224612716774217767592525760354028181773901642821048600525041621618876734046055652884648267551026560607983601962947252774274182946004099532039148869140104757892440572682262990369960112914414434884591682536192140888904533925893384343744081500516333697855752676210125868349579561418973103377747095291573713479046071043219849329045889913429656962897597820362077290202174770314325232614037609291831740377668548244396640051713955818062724644549076225937797217781611901469620094987500942705974007734782474441552381088653528858408242731652432838318971525384595314743263205061701491505206103639463537789439366601937075526138475206828828475331195035726842193206929980029659400424846640271047632215080712239577720445185804386219309256540323383022386730068333132390810031687802614958069360745027155352356437010906869290405196108986651778886494549210874001011986239532699355034787752023749995808247077130338979486952520361833120153291231586232682169964063925100263385414156233744015293226561974009478692432508626593256868009300251349050317709390291208387937491411027010618770614812925339096344007459325893566803892064628807443729758279151846614872962498690504752585261219624060035024781235876040541593598230270744793829907170338698677283494915258462565621996269123015364055814227315991079998395326542134042583980186668711756609868914433203016027966856592150833530821348299785607068462145531161538365100425473474043164639583599791490210850104662277598449398432170229478024508157467617270688867141923080443145200166094216366536633243297614883708810152379118303521810747327056579434323360378522608373791564492224407152281147269682893905766960657767430633449113378934823517643015941227462665767654886992874191907892386663826931989049050448786024157817802457097004636464811343804798149933911605852274225242194793912155580490588705691341107319492925569924911072080820655879136311900996154398660821866123784206849761965320572426916704160806788244666195999528778264016198006353392256985427275161482662703395420741201503204645736741394006551862897124828125714945600366954816868510130714996039707860448589241354627272263037799331685711394682722060869843038933285696059269207295897987088223744306198147444132589336160554041460368254402979096687868780310802185901193217271973642434799566601079739755714470291918893194730014248144036380661071023186168559330320061326272704053973247466142973920454460081914964147823620237720465928664412783206004080888985799359884401497840483359724785142495145179475471610974303194354060239621536475547830655573533940709808606292490770634489228299392944409571639698786206281746048450334428563814073341796571739176159084582016770816965208798830497448317019728279708511095798766344977471095435928317026846606471561179629584048367744763558503223185110247990740967601292384005842019650695556405204418545645433301335066130366355242086691867030005700297761784152779871771339430060557814341578002603842266914604272536983781325402222894111931300234221753815486372628715781143831936006272585334495038066751664398840192975316326670436845842754771780774903838427750047275149802888136293647935514181693913424885828467799065035763373322236890428700722416486821788419515069106282350385669605066022321774955926410634424786548704649604797142598125246497474635662483575824648750559144811595664908631612646383700333236007297633024500447233334053222718676088741908080655095617612042632326814344451778332307547116030572453153395150216601947468721906152424426914907139079225345755967555720264514494498437646968968757506524801379457237637894422699719688554953590101692611876224986422539243866039967827216711198605012831075988813951645822967293463065900956955131221743602165491604135488346322176405718625373043499558819113403697364056829495481050521168004020484992781611246904300919904870322117470002663639185175154557621524486376497098206683372689354601016155584925934990054841547332338417114713007916229636429021306796265776333128582493809079876820130143842121943067255154929505474656007563980516850067726773769402046825062184547517047596182666083311743282687314423287289348985103562499813413097609264383404483400134593697877554308192210827670740147421026520042137721215727299020591560594281858997275851434413603502952331480950859793075389040365241875832716098410930548358394970061011256560832796973745279607727351227954170490296707604761610377239502400062270586930713080881688824647681837606651102750982259047188318290432720936684181648077913297695808006483592747975519580052634556300146106795116445012718249158856624257112031517473357006049654114648462456023760989511561789191334411148946937494451595377262809033329152378235064944454916205583075744906449239385811647029569691948620899722943903541268871559340219542945664050779667265042584455766922362177588103374270673888700003503101258584397301709763207596363435500392823390311459806084828061452966467572041937887540259512974473015500365239865328250557105452229377028739751580419336268259648742658161180147604735839117976972472638075970585742009057862446216237433914425033458555072019831553919446863031143322921136082503308178573264389663536770909369211788894350929873789081122316245949997547149299610163446647355361368517694237400497482756707473350548883440201303429257874340078656637447430280850178800268116460515544058848106847669213817289901858605980159610547679714156829575178849342250423083453978794816357224883017977017534105607644966548331084892358448713205819438498249003253916060596672513807065535034714063309187676245772368460420479560071802747239321021911637416678506212988107746567824209631247625027090272139562153467486547506448781464450740370352473963820209148689263943291195518869280950278714254166145841983713544779885624208597284957004021951171037903764963590740438221932409060944044069550396327078812464190732160955761248234017543015895711376016441927158450578730908416516956774853780648762002466696806976308413887147550158241218331959568321102279040972207519701773462930051474124904019638979013874749937043947786143809804395190403847615843983223638265141857658465189927033401804522610102423924637440287194211040981099054133450194121966507488885662382695843609806487256157551677452670066055491146474633660581225293819442018117569694816693663836871874371348540446645169210303132472910790046876157085936622418117647327144061113822363990421392621840511090941146729588247083249265090352539417925163758706612032900117700813359422542946489843810787393254448178734211892392301759053944928620242951161957444599125275515255633086298073476957181242268662976280946257823386694230414688907968921596524853009618534746011092785975385174924993633433416529707349724251090295413119008695217434949588992246102644934223350616883533631977093210245589296360812264462232990564434784647657887035797287739819258226978908365897302259431820501403355360878702810867957463742958437511421850119839443492161595708022095591406521185058112431971889708307138745018326718913210675755464001030505052747252198096977208522865718856308861737883841352312821656163367935237775826237524081222686600690081571691748024611967555963135711524687668992892140367668564819157681531153983619326517336212821538783444384566684382304527081576660699610305951966509667931695152154819503464583734756770921411770866163205573066763280107722849209379844267358390403886191180530561387994846084283428621560383789321058249623221313202228179901789901332468340731872320053965437001782004810898918229615909586901569381979904813195755608329595506681107066795765458747821291859266848818340397084380841689021994285143502784777126491375877655422551754553487355756695695607323554866391046585361098753252262349578648256330813170065814604853445518517529544735199409525425938403489418318644706506655018724241658624465209410435318869357644741192645017983916383650238785770809840650259124037728997837966602079622991537497771879751596761708681271232180411918200151268955953854357741525762653059653248364584439307725529292661161514297204500977813136506055413156475086557856428577598481295998760386175175538595023448720148985294410306255527480031063394640064910218296792803985786772202404787134757826171719097615453175709209390907008869559728868877900733255256824961832294440921307345555541852812073387427215954956591326587638606213315390747495094080540061949531233347038493317820953354767579063332912221638508870958441193765834096425950740687923574939574672092608001450946843794803271872044936287940643358169495273543321346301807641767595645539508342788032126284726548111043348304892609715064322653876993844476383646433366575768006053938386237196563748178335230868709540723118842984420486046529675813617799672605586434600671131453439526649651656461139124089563060456863001651478313532483260313157661569571312661076105061831397953409505936545896947557705773873334936548820864941914551800925783862012790058522391377541062382651663472617468484309306037374761498633043376089685215374163866366803695921867624871938767061309735021767964524423118123440658615332766446546708593585275622296584467562032813783452046275112450151867244937806253902097661942478491402557674951496505626372791551393057760452034781186086928206285549040050875284423792662327151069652179428554509839098636690898979489359828966766797030184478842199355439770269612028027523947606818766650155987072289651951976928065493605789706874443453163612846556611707925859244323577345782259671896413752720479384570327521396400019065453869942949423704369678370256138899077153606432119780948989731969911272698696532730011878053907511285917847625275288998380030534017215438437760216245717117674334216065025434286293777169882482367980498036569993348755413982501179662375760738746538054404354096979048687534144323405128571724528126516866050938734859000206589561534101946257989202150519881149306627073320962674658973769744146022273125652425754378111289514353305153895705690452357514351428250250486873312530609721860986345693297117129541213848028027181589465176014713325142355961462118373876016222615485074264835104630397750665048641320377626820389325329955538055693841312084413844448294897654122545960167895629317160576609463104193451171446374921927893066371914026295351422789379577538955007589452880527465495126883630492539255599272656711074924855209180410552761023918499582515501399989106390857458160483147273458141340070783859999602928705909501728302371618555420483131157938152666980577792838464881289995132696446226333095703332320186996153380956706830968168158563542400981320391733948211517930573471575287007087874827330236015963131284332611845364969416629189663038579380080289467513344755753310590327696043203112650009265496708972371479521070788762585676848766574615851534563136038454370256781584169415078160620381609420374244862729688787051311502059332090437568479203487944874448473606327926532259780730006992671034704885425155726688332390221935034777941232546630519601202596336769068288187511259294009626964522691056589129172461942490690320663486349637457397777669238964151746877835006892035990852484745842738547604705029117076939654350009663638276310178796787681159324218498023058631798401258250405692286534657773640449599187007788192793907908274236397984464315132148840821805326735747656603102293109216097579562489775432495240919167981826213863152842268738055408306811944700899138637025635566799003771997818521036876239174115905258435443000171179831910562086578298365451643636465448536073035993106695827596526290449638962494175793598770217513733354681552234397148309592719078971311098001729080835847624921436698405010752495042868548853721756292534668582869047843600910678167732612756941173249045280264777948715617910466514745623000174985543756681453383818791692106071691145215771610513534189019831843080705509432592097708477536360236613853851535474926967256693466232663017867250122092242062936018966800807853093379532155749847675521185010150884968737861321414587973546950104014772829741378318180233985845341533304588466262057001699395343999074621232923147354536783487682672828883116640735300294351455184671686160247644444020057034775251302583317668524401683227325547823051343724542389694964400425919925394315063830071527948008553540999394149935896679460672027629916686244002747255945672063292986053878341987176952533293087151878117193670257714546115911553119270773866350049836055852740130888404171662069202099240040302104557365521944487166106186709903215574606045173936613571698918526366102536439407021559204840585613560561060499176980482906909373810374868007534614924909751072307866141665356301407038243793861537583975385813577245947568114753739250305656840103506980958592319935632722633813330429005611197618041176416709273504414076825312667813655277258650053010113604659386892444473077833971376008394405149312154613921047202421960416820265033742240168391646429066785067842178250802444494814340268839913919302630172907698103124974885096908520903100651142532700648553986932550022122529956333279741923646803014369585729420823540153920858144021272423647046207202941959320802732106819192302067106035034700863602733141637044378436277564264533239766878089026146264016665729659276160993450028928771398592668994650560698132137167987852556654934487605156125945942544160259659696117005897790476474352337136133661203596482764154466665282239867525089712601341790816788177622228768371214863520534427960359996329940871096356546890591842292813783503194005660940090321601521125726178708053103407650507176652708068201232627032479660238234288684115148486220625165144167165507516218572103462115430625175644173633681761640508679453277454304722986222199827673639016589975422345320185433304566919509506528638192286538896661917322737359800290576957214146189166842455049783776383601419585550674172595746210722802013595853994802026892530434292193699230538310610822872121543344392930800553546230690731407826180134410134809182519337645634451197531571066318120410118407202665086252960617376685224841437951527616388933644798161462582347034698419322852481124820303899810916549742833268681764112772905417185526517564333381064650415468382377728021657917854260513111471755091449238282794578830744703274713522936589069603623543245409363187604205124811233436393351929523290681596589408924716922500454667651760530984342323629236834463378830497738847642807963733307350564976962054135617729132914297668760799734987617070365622860284910378322067160256810360023160450712004874922459104635216516564343504166971961361823423452716845002999854153005629613084590551726779727852489351338274723857867482791481083229953725594881341850046311614047108008792915555815013801783606645185139306180116929366380558987951460799672890069252926944170689374714499863856306685949393215443013589845366378089924058157395294589184678185173786865628049693851735885255430587730087967710534633480548436256065158818008213608353464132679770830861416703241226752560900091001784088581624019152570777996232877729432462789076892226553267327450077815596631572181897736081481081762741507663561502824906913603845309979532086907633766790619531874542630716685927451212905097906130793174650119912271430648557504697841252308481473543787442546956435065988623804055313360570208573220808281317966803228226758101482401028032285045191586436244642268699150718324976975214589547703349132595424327133151849881431452690191826557555029504989583274305442204328681595764449597826526973318994530570903412334090027177454656513875465490138064137273635096114555896970126351030757674061727008275374639610532762551018043065303402780025377810350296914370788922049058074403855603400599179899897218018343588359177325150626091751733581256780564706959680130368751094415087105766183565824771909681617303363304107469017983193239358299238478642878418180365014713757555162226769034170605860963373237207738798795133418948783604766721993469998657675610505649873190177313908825815632974372958810884064913329975662607322325018308390831879577097830614351391625895124302687699743378028643939216602889896504937322707939703542403734102948893530153269126484479277483373296182147690520544037769574850585311548566295116453160608880204183217909923177018050607476149654179202859741672201281336411810509653455808250862742318685386779830618494041915850243623805591123643704282105694416019564371907175610600757467315503876013799232431829474073503480493881161638470968041134206192857787633196331127809550737380468426097469234959337759584567308519413540599107634931439935811884067780008722129853433960736995347019100606035612491537035489449986071706462087387557298708357275059125569168804681029986317700763151851525550050714888674623622169542201991673435852023385180748934046672270370456513340995114958038044486797921421873089848165623424752036943553437182178311127501038762482783119485895637785808812425225195317995436956689601112266874729680340970063302258269506936299417900859731618593094389975055703140942255528295947638505769146579928658947127400837889136991109222851655792359274755163787640292126634791004451367488829964120177494865377996151214048249774349059609274294978161924294096725157391905674689552311160479197179644552068840197023178850542872676447429886094180233705490471387778906420079025184512719068491999909557370607770404132039245572905347336039958183024026441340574972763122385356676210346886265464313564235922330204786496579156937599510095607086779889903240583016150107949569547248750980840254763888766977863717855367981431150239170200155623038864297253092699351002617056766691129797667952809418569453511464044094456679491103561261811231686011629762006861026244810931825449205839953607379163109666238621061157534129907380444087623221745171673064282594340364383085287775488200236085624135096330063805586403599465803596872692161915443443902935389186505030436684923146951827583682278464043991339314714456359671150994528998605621429920643662883652426041793245558663259001655161581117680386217433610450903936954494795561778366349933603865611740596131643590574847922330075935699005036953402156411447888998216114151440061799174473744786631909648502211373086478187016487187727430847836015096146807529808723150179604275735865430521007328218212026880535370959710151299822734701859495097979984910841695754569337207959187555840381866343154515946272312456037205764170725140371488665606868680213370399881503379367638646507404604422587249365936325246301347086905017591841428871487159182339007126720285709434473040264835562421080074943729519384899924522194128556419619074218465057284973824052208573697346756755231308280209595423607365536770825931204221843875446880926266393305241635606578398935612154652128208841319028978784491139899953384050694723407772963542312404858460769305994150264426274556208587814217888199596493586197356881947805183131368379816432399103912822008220016116271682487579672830575664583855703773184762511544994415932954772434339868493801324127493963777276874503842820220966496974990088865199390245707758039891257872071394955220566687771793045491755123260169219288465990654668772557251259273349098973440538848527895087859184800188716842572765549465033265645583599147575069534484930777552272092467095281973733769830640976893963907563496895367307535248327110940573528574565124776271799724309505335836905083795310558269187127676527058467992901471379773747852746514840770778749415288237521176496666771234507578825847271185049263405417074812012249026210446804626161994392699653765857382670474036071531149976357883991004973433534542514512336986395430892831146390966638305670781963349280893419534713376759626200646638059462610905211166331767212295043529771339636780048870889476795146453154001027128270675227643636764736018223896863417847254560465711910373387045415495454601218949674968987980998531881256623908542849237994534117964674203413996591183627255487783376248659825410188403235208482209124047433526328833860911877315476581199832866517509455324420954272653634798466476092309372923981119775553961286616722293877030588464000489974267947862409342280674247944684429267762209840399725168057576297444803365298629273649458488900064662351685905079909808683419044270073175555942178789545559012054702383252160109821172475703850377731269100696898951888755304666617912540337822298112416266802889089190334631459955249488454475490881300854156668764083033509291861704200065919610804954160699300335897009935642687853447490675536324664822572588994199864050930581977720977266692320479912693930127080492454613240097510454989492457389702764350225226958587897887419097998649462939303096627717583705847400122509180459193818930222645752958619891574814729556549361465809634552354013491584170772492879811123469561638176238968976754052856552223688850902125694857064185656439752369556466231130739672486183134335759024676545064252926384924202689311754173241915578751877166300956096653755206373254804245062631945730133521375828300523448299222044749316191219072447701214297508426327969293622781706442664545202941154768051777236064053502148067065759367760836364177820285209306005099198260643953690665814431036035721587416523551186928544989786047090005320025092313950718332867358040624721632872624147573091194391341426550550405414078658492641384948973845428724599729909539653667249627489028875544823157347282090897895302610101841001691124109931292643635903492560526144034049995956396409418953106961047042643283786457689711813099294100347726325025383198886353559323042935786418775903973711110508366951865388223673234920681818588159885996568513436756442658892596960586117064979193188364423536060805395314322611650762232295036678291878403526049073865394768913504394372368969315590527225220869583028786655664106218662380707734575369323853961557681112924927549336882287737855588636754271390793205371413696244022860475876353837469840851755006029536313740276311009778857677109603843349383972223325197214781059742331640724531616890728242844475836859409209273165128728411003263912779764057898267174335638014764990127309939429791532952858611262357559474279171784472814611987032105657042494007905864477477942305453479251278984083317295471994050753778204256826815263826711121893754006047804312310157357634869799308700640223853733067164578953358778675918034790622368171479364112997864079662456618603826131450525668659669217820156307121455775466135379933297253102249908346322822482288863544138777626955326556767266828798999396934252225547995129718190777758610890008028005144449751358061717712803340976032195227015227080250408069307457951550231243237595421668712660473853263562480155330559575440024598402538838450135951288452731078714913375383621940698288545581638697545381591637372492578122840177420301496632621910805089456867773651316111107272643201880858027810656254827989284979283815979924925992458186401325388637672649980147451822390945728015919601707413672600538333545347016533040493412973102899779628200412378533160008520377210820008236752269392473951593891503311327176924434127372150523370947779904447402520995172715983732991457122508088526618516712849665594059188962055257533449524746118549152070128498499555769013865067351527754096437404882776368989264984773299679332468379891220201460260704864228434543521763007092022065465051485876673180695388335306585890096907497455276661467494479712940544086128344064178300426813690291927089216048147921672283602886607670927423097648625641026940843015753361620443402767415050025114263690214364474671364104321272416909123341043418227526721474639623819410203666317345164011536040077074886102687118964181095710899060896719064710135457474260133408811767503792896846909614950861314177188237389236347170590987567170645972992628035311418271327399255730373085950273529527781329104746568729292062039625650179485613224620929431785039828594350769850948738075180340876826901916388988492551363617201300014188214036050728467601738778826055766604375706178455860242272281138038723431307706180693515321794660503174957021244430653377786486233936413102852226880909475404724456181697686332136370544014586409036050313057349775453005858206977085276850024517658169361463690857595329936200043591832990295164926139044093459729933672929316511579151116862084520925055895230442789805670683563795093210998199123920421930188986029393552499339041651704333498557218058870420233265781021514421701627767854771555257758907193723717291487285399813339045125921620377589269116480052747360765081729625722068651417996866264806024666817732773347234251962337285485872033245048294517736609685453904833731502911903897966153744474157242901361718117400303414757438912798478888254906573919581704597730514915887785899370703882697038060905146359599601450743303926527305330250475763095561806178296264671754279166135910888994886701597782120942025077708951237996196023342994942903571088202265280472918258664201012875818583961893378752217859670406202370019211432904224130599130049835719577689091010574720183952629585346088216297378157308872500719444204929333577725597156590903708200531048267686893092727712930246687691019854409977887113197030474230104021196836631104044338098841910587421683725613257859767494129715253782876410586474973383108067335759768611470480553746176072294846904063473534769298491073320500190896434546231363009620316209054989979029089383228997067825450990923682903346832675181270538587662651350819684670249290027952713217451479994534247370101697707895335271494971031089151954665971584713018662186729596914281679249738379251890212668424563618472053524424920567290502597238449348302186034250126026627508560652855225661228421657435967497186748341870042174147167265888087961051390809016862419500220804418762763771234604907782001859568577422527066569708843748248403461941535206017331630609288146038322164618843123965963268071138837827592852595826825855906805013945161147960598431139757974022999990076931761654332203642562799346579949235219201437243124376803991210955493531944445600626968809684106172779967736462275979370570905979396938304190307177847211907639496652782788640873907211396124991449591525017919071590145086439263748553061046712856437562676132041961316851084607570208573860395718839556330258244374482535056676763141778729175666754353542625921884138746579657325333957783252792773714734471907093085648822781410597813826770649498257720163120566191980509417601481683721358082439318011090517665996905686047539302284689447668439871865819190080777773601286010495523563631513885537274408433527834131674911174853786894310772146707745548272042818943771002694187016068566333012838054845324767806198239882586137529347764864010725720224020248975989978371021166071572767942311481293924060813655402599027359978085700516555340698049612221520064144262075000735833921166587916385055836048673741175865416002059768000464449249475682797946955720319976792191970571014405995066736591411695571164914815023110339050068031008590842670741815873807538746447741462324205807449906780856832529601171394454474444780225854479626243895613778274069107768313864249710855047713664538130795912040687412575871099316030026833684336690802188596328250304291884727256868374303845377854860451684684003883013722886487794964846815276869290562328442522112576397062897801291508631080709994785052111337073067136068734476696026546320245445218337599068433264971842442234068073644964120757307863272132798435308397152834353383631978308887596149754842356411297664674182884486261099163073448679349068069606397257917484522379053342304080647922538685623156277470822345588145718404774730530666332901206851885300833960711458444092336005839306239685088402065927475994198488344564022450133821842530222170035157494987039010493096905415383431641778989429276054591653182304892049227053450765328244249213564538199718479032214638865021614919375895012736812825065600286969244255493387013321755947496655538292018183248813224231201142695158953962518627569756312360234100127305008982771883675640224030360138185900429856068588874734212788995933837129731213074568582741910039662008200164124196664154623246075768283993672168735857943300085765390228350718601072324056845667611488812759659826312707670948733883185889317719632561292838989342238881660695590589688117235172370679294286090481596162668863671726958002666982853292992136309524855229723822274274639681285187018996076299226501664963354777105160523728880445421671422798420861207027387944167245590462897439647669000267944556057291012502255005780255144916861417469747387457587619656678553570555816156699873391232498013930713163011342339376895488439767859064818197219477770434982474954649186372488596739643046655782031822049548608906026235767760297330888794840816431340082070194092173698079253508675279424846957312235286984515725297485660457758155115829549351355724247835009330322544193317191446395268644188461714039326528811774475875042173936103049301765558482875156449974461131670537484220241980221997390209724880390417855655042203510920524688056009888116800973375524389613465598576461950531212362993129706377045724871387219251865764015272647539882900785414954547628694352157659107520505844998931724404519016807366284507500614365506927116790644808649456912752572237440668975018273523051088571508120396543911903391369564452674343208049403856563633358000099683787866567817989583976474468712021054691095539057132591917034504597372983833574891078631718079225668230272165477089622477647495987432351613184890812572844547825435920521428613505265149594154228835071156116566827431548630792081187345931899932489221763424680166920397406924623947331509851976282525424402056779501991414247528056358199939285702515848288805729434764343499699173360714756178827903770004033949462035785518296620560637932140518505375561318804425081131333809148418457746970347326410200297035458618905263351195448605427075527525749284168926767200614937904319719797256441073881330808074479771588463439489379830365984833931873420600228104418326694981758013359190421986581324916836749316554175672667610039648914935991727709619314375618478876820509774710790951837262389207878882912909062896352526677358873398225382058364888585128887283111454677710016342249972577309290180333585778756526392774311197558715838209890722264630422513177681972156325872034021148167962755784686168966623360608721377570411125110815857640065791134492332667840328769671543677552081039624648835644663436742918974524657667481674458216138548450498595455986914313075514202153403597558480914586019053598046082319325356567297568049557691353982741111464082489133827339421405914597082795505418479097644278787800581749402131078776915643250236957226041931111275719618404954878373031658451608501958950611552555975787116721620937893883995218958748087055365962318241598805133033974838904433717381270991680077532170143945208022030279958243293406064224798208393035623224492987041144678382100675460728953021076402308993650307223741278570852673879047677899496774915502986364859566251659470316776580218804405657082929024817914010295239009286843907165279765192430983992598848341638016140888991345245916569788684040115222015187474024418666112220538067030617538537210378242851329570471738066985938849364923664361198311489819786698026837292508506862434173225432397645037952541000869822939230533088637107791033952457167709152492822503134842971459561264891238457426223989413964214303263236614459604906463089356956880060146594918482423009042863130583608754985162311133478178429287059237434626965407081761443976853671332149393655281734481007222867508881307743283871792791891026076623028894684062692964005068129779690150564466229324232449461323682234219151847258436702972939083722678130306969537834524727693788797984752009327170568283012043667420061851160835034532567573059022068853006607431585620590746167254128940212682272115444899557852571757120043029194752930133559020162792793855104186216219973125861453241017781497761720828306202094719642930934357626451763599622775633565596652473298832205821684370213044084921783644090504845222638168432535599319105394776497376403667812545311026286614438984939735276919266480272828157355605455856589830207730799149687930280031434720942184192635097728837091056392784079163081950229675780663832150406915695758839337705871130538896291690566756924314046846299714339614376969914140223623170431807992519602605678025312785552644007712106583816481735048666367791629073559868655666569442400973563261957573862612218741152796361728866468462849059638370634005914984924607444914200473027692790017707258358320714191840388985047560350765851602105119475017421033904545730361125419773549312133625466938226329692916105612342125692307760527191371812643135307233000158714474135822627991850594955314053570505155701258632890878717629791747683189679061602153068576713458224712407337564685149015005987583996666945417421588132487290705918453055920919124964536568425670145980039358571371702073671444280220878081039986445928279779510445195200990598695841514916234906230025567995414904471185188859783025049635681504971095040616066159753873617575303712617428328304117852086492063783470150576349056736574540672859975970705905594057217325634649414890835615787055109386482845081218477168123261240164196575260932712466148194728973086296092402450318893670732088851635155747032962571081813327701426838440171584567834805149408957558566108124567271625270210047045001656108721807114822062403101486582939730104213833242505508898943160930249334150622234585307246289908453511544822394032088184315267833799890188446483407985290912899672014218655118147170222797256783378968592901773627869022842336010264904036383058152616118818543999315603037451757831196210106529337306828029515903830810875669435180224685687927466288895954615121266427476384526393617142967713048499254824893876259874051557705730652071902044592302191781028454903616221492728100929299035200526835706118668162792448121467063663454799416127218465206058560863319492378124459619461117092862761495271565870481219630520159162278546515065566404132340259467995367068090704179635056144308848279568271211201210081121984781893337346417871028950642199051647977699855107003756887822482760297026456975108980152954301526838785319304062278327785194429881971435736513111974062367488183037347903231238397460423762991164189936611766199430936697633408077783430917553521605590966420869354483501061383832150803361833740683148509623623532892529616005705336448220891664399022817047083335359040433040572094030784343750738280253004824135238922409947619452252098690076539874772750883036572294353280109998046695492742410076093790388034858307411326801630797179662698589918313132064175493021816867141017938565067528230350666743061343110431002904252964575345197779262273565086282025004795578483267050900127984727245560893418228490153413951059561107787933488697914407694303624591815923840564008984527510534573834801516143415247601707956350279791228756160877796756958653449295772746882894266629358739505709937103266349318602802745224044217744922060061942464337879972490482081534138122561804303376481780000991592267156420988143800378778329995310664946203879455611060580705843000867003620813222009308571507031329205516252068681163195083419873055820340885133864784450835397520039831495246562281577258327083084885107570887785673013703007481400060626601903454145004675823585122491859547958740333712102827967484494237793114569178357874263496571826281948891006291795291029102454789970185888879813018372248109880823741507053450708970657755970371149184312826067729558394790820670935872278633579473763683444104485261540017468153530169063932818107624372985464742170985352790051475190716874470505118519518550264136127728928312915771460646753875663294062339749501987294895509380304840127053375725631391594557681065415596224950202738323483530758140074734429198745967472579568022748882241373700668127549071277304479171848612049684282772947956315037943519044337929835497545045833426316938235223221497262880230771990888624032753549024200959304946498010414511673221883361245883923385077084257563762859801186656968586081278280000665739496346438525814779422140670945938530628333248206293643231793086660738815321291126284267156100091494221625276980140223114251537343927689257286137059300665494842470945419435987096257562409439233146758921344350392926317639516940082067881644948801106794042307025268563017840761323696786618259552186355908545253184717903377948237593930783387922282817969159312898641324384865263716125801652774484138406420473024427233045620302975260102272817095280042471025582575737715707249165255325925975534993388998407922301732749481931632080360830903638380064841556975272065312818724768808337708201300986332856851810965834140680654482739097081450633074387297010074221871677583991742972147408931916484378437226796447343326707034901814833156084592309554567319992536342198803979453037815246757611553890246974715143284505457259721838868859965204061355747199257807289390265219544293357660210166458614739185730052705087305851504025638770527524818649922856928964715617417685302560895406822802927891145585950336894388558368749240072145924213190738432329943911342272446803886973546272690718397372761304958888452307024241766784296672560428127081675159120939818177015164859368729898555819658134992529631411830816977644036288022668246659642003646259426913661806676607675560561578691672190318394172691637047260431044873094295958976253064268379493924551973347424454692462489865889315980459748189296937895491761184083340701570927060340390715050538661770671735334883801365118289146567840735085364686712776920171908525052867945428374074406099683730378147220850329925016587899232306276501572892759068264558246026311485882222616742188917779791145212100979094963411461983454453084984379848869814274194894652547387427935772642069691358497245532492792481949676120573819439915452203473317812954475051800960255388000460544811836594498266151475918966899600889175907517865660700417549832278942217790046804025194351359789704160993457653049301893344320619442770309528447647644025923398925362872689694650904910754382940568643935042564563601620754994219803432496490650632449908110168737349934818449650292461256949422504678719392870030389535434156159961744592359123348243828964805937895287739720099617716925686577668216958503219926689632385369863021741843236062376147080200752829746370515043723022194541101525358731994397052445571563559587817348563802093129818158380485758460430432399052280480982835493791488594856295732771477902126681676490721359595527249679153916764816210017504287794275876761290895941820010165968703984805992555362930311264630512617839093601384136641932938213570172719932645380780173955633374612361553083298356747479606839242780528923158786949825547262890625593192187289722165872996249609207688637500088615511717933788264317577403842565935529976962953450017149263377165457690639418442840126029934363647775989884768763453563037648433438110137355404340190718555107425212496219736561095456417956865326273213837245996211579083453034196095473464290650938880587870716191389254057262709764960678534673309741667673857955647523949334437426994030514677389686581582442362792401243361276382241336844230234461013437241801921942514844489040343374079434911577146144886517622621130975605522081063246042947752464362900738013812691094302829652787947703776109807646503868532943128646029257006939590045438290827204405033856576737528362390585080417223705056631795343635600624897671680656721310104860445791285158756215283361369990268500696918547160527423258952052977745284836500088278660322200975971698579887686511975158753064134452661462985235264976163556475434743831318097519863447487259718910940166994470456426607771083129490526314315771064895480572781468937106074754048224822405324335196767624655470526402704345463288306007103397716496829980587781372870798038487286901079916628114888619709997643853024393099629965687546322542855467892357457031412863230797397410794762588832750406406471582333349153671092716617324170504141295587805654015452151402161878782567145755465940861294682348020725397951401706486496930887455419691206653387986480976314397066290957254667047439403670398843711806957130765475398429500687321774873671697398838251833286128965653064335713834836423366782285945767971431198650589740707335090963749363073895188812073139813680236281031842624819593975925412954170357035647727596755751024643267721346334042369050519316766649203725144155234689203355433397567505475233936362995659577425073117221608956277728484527598995311261056120257167932394148080269720622902686442261692631215753587521434278997601789563148946280776206798861909450236779402055265738314916502232769134346581275077528036056936081597064576801710063988685989519222783712026840622362715599524002836826585451719762990092813944988872603073279278246986960334796068625158143985969329608639317435010203182723804826653403903280092398457616690031475341092454101474844630861965718239186344979355819586906185159506088844847056361965649929180925581029884973981318531612352774945668606513213056716957851688621293528113245794147355748432156580089562385572724155474776236249883583697751080190681316191010109794881321611517542026066322231537234390571617737292339400050156209877399899958321237644853619792349095490277245495472451217195726191868187178450352116367377743971682627447850674662932129302075061867727762091914006272205863776319814474150176506853779091693852046755883839787991580281377117981369678437343315534965660785140785075247875310911526418900309248509602847449891667992707512339930248442082934909852099198860524765585513607918175827937123691729145857924358295384368459971879893779978249796350953316398783548902633681150218995462686880594258674018839996993568679222499310097358690912175371964205325672353625154401398831409863372096865089626389058703653238369314844044669516230899631833210130480881738537848239012843090747226808791943544967821411094953631453270057808804028866538034083374015053466783079389960483741999371567682093836720148667762448418005305317345822537328494191618362908321031428819721226859900903354471746029728409450771789349913936980223064913200466550352275406216863420085910095648499444378059034670990754908369942307014423374226323605333012706568451542539503654636462174744105968467692330730759309580329034873867104058573597207210307933953703210018637054940265163852436305130199129619436256846827067324400778725902723608776546031817618709319468568536379204561006576848324128035922825220160581610882824651456112324697733865270462804150872931796180361599103702753275274489492331917999469912453272991714985610883542791565899823034784628356194282885221622479764180983709867948067154635788907244813565120799909763273463767031400311206589561212273363434617537089075721104600053650748112712024636423980709060282138045686205116854005239842212269148725346063266879671488326294738289235102105325821444044765124406453115471859396052270981416239038421016476686931689631224797255320663566080171439210772245213566517501423679555937721123761153695210243191910321939945600461090252711537206549416562205899789964154672113312484133117816936649636027093116415509412095593365368925861888862719983953027889145902287086387633939827174450583440022192350468274102284094594275098394053204563878905601805152006392561034801982415708299115355932678382718615826136270270859252391981036393269073341269148600981561717013639362729241456578012064062033867110003250242903895476451153453908223104483518532817641477676728582946009286514166016285308814440972841322752648417163379764330516120021288672935282917414240495573155052363382521403587958793502810128499993622970719498347548343037334856375475049266836375717146684679625220941263829801534830958541088435044632964180483873258534503954184568313222397779637158090494875468078560362731676012353753342575744052841551015753358559488621661770841487762955849573837393252320450211370722198550426312710807242272175001849477165194339313184624610971362345246837743003705091598613387103493043777589890456960832559882725238683498119831369902992877939225318983973108693455847805630464564879107087119753866070672537573855582535372854439449321388604173086265300222370360953993501704176320202435760668937403621247393268992080028275393550705389068249461967589505386091942944209286388450398772817300787346771261547809313659152077294175562834671926450306416994664173580234507962836052340303895407041367360646453287782875255475577776266716926633651695982446745701720752842912326695559663120461632752776255090477555633156672688663321857506283014179997079145727290487442278874552093759654278631443148047612004928971829107090018714791080750629120177065449479840047846943723492115172881275681290348601824234440378964416869222342855489601792300434122795252414469841999171879738379849025579920086725400397299919775748969838737287870835854965843934226432002881839599375727570403888673207633463143466776731913304114747816795659672326679396338127363728425692221818896739504188672570674497125511275202741414711528063858593949508686529724762963592648854343452517184327239684891131284153977565977589015835907240367546874782852147418605251668369033048234428567429418123587708538367719013257392549417101573886747796388120526413003203546635749897192369605968110460175757674283468737951573796381261678300847179175742116202955914259176068584501399008965407626384698313897007804011497301544099954413559442051507624193125648147844347066448111009422858903635589447953883485119405507833954456635075480919335410161871083405871550963621492561521067705305066535020452754062191883383049799767464299796819221734715751984728696884545357611793320002453325850813110318804676500703916225202362823153735597017054562141115989512278575089898228811595171705636201606129557291266003111469239102149228977189550895226796254448221042709925923468714850541229909395644127161489203198922942102140150662335651476207274995035508320522954461375433839211377021163294171812039143810835073333280721250258301004179934530853949147743404563733636083926829942560949385956499554095913864606560746960425573399268009142621035568807525469276821489013196789619859129107464040802613490544796239103991253317585427261860286941074490053275454235266680355912589776635489054867955226245373380899322161303957046219543880566941333387560325379807533070204282560833020400757630148746568071243911314324769382176669474700034807180935440572350200355823474250285474029891735915163642347233882827407315935882589737627613400597009814510408976899848566730599136817784450648436615797145687158788782154111379039322854370080543730537046641633096814790204767528529194529871376094543799937672336582564606632304158640511783756321452204404074537225966845814307648939316886023123910125918838763941991104047559580577238532747575263445180331759583540946556921012067988540242419248505842641524250704779908214810408579953826153613416721983399789066458415376722121567539770674493290852639873130130213283142789348320192544409724545032635960854632494534916753227804903948060026415107390716189995872996265008787890977197594451756878463362926216451805657631320943195881135556411343493606928203541243382463901731844181202973666264084651627346865596671751853992727744143390421706461634732820915668969341048175634637748064141068050507284021517402296511976435057167327797116831765530648375191270136533366350269969317367986751175708309607546816251151852458828893495394449833853048762474000198126747120719316222345345503329317192784749511569741689954476329482210798006984367355720264346899809308000539816087055374904680371511348332945689365302496165718320824250036183810650994646714752868657648973457388518744668387381793944733750445557357695004087302715906518170390791093905874949474851069845065560392306845994227199263953766742644695572620416510889231439927428184854680816212891897296684652969365552367608136569603720505369463295136775997778481637866604482418600673815482577411866615334717763393884592349109126839537563837941591293953504819461067645753141161370054516921086482620703509064843596588211088603347915872293342507121935587744304363778798486702092729734867810708323950884257575190425401004024869706578585097331941807342729664318790063023223694165267204868273887920509426159651259057032814971445386735855797676220488867210400412938695243346083312865345407259794296827201938028271949169338842734224208289867688553161412066596368868217512758400703113559167243889820376322893622458100093146193777637232559551279098527952092583334206805696114975114639913629172336147221613251661217982596861195722678473406487900267888490891782165007161228013186444463580546117736889647310962563588224341965028011921404517599910533978436953837440662186157769527593156562924858681755316701059388484708321347083284517714499867584754352811562878725254752834788630557294721063154014774330878768033523405986609598497680505423630010269586297598242380839809029515676483757576733718176492065650337079672574143781090910739080640715175945424160775078477460141780759985335489315819095213865703668083893786446627357295802940066342327328740220825675491962769250859334700354252637762888947070878623669207016749844231830295679364244678006812401041475794800693437345057419351135150839592658536681820083537779614213287114204797379758926002292031555232220019986400476137145988317627699839536571799314804179841659384216506033934298591865146203514212078563633854868390891393588306443245134209936256223906754861709497439416514061490396935986797319965750540678239578357095430398918197811111431642746311287980098191403231704833181261518192243685702797395713106932584621436073414811143085852783663910347302092231957525501313183526362845278164739389125329610228190628399707991712820018979161505783600961579544022514462307798974477158394658830314003352596430622153917388667125052841466015819272499679606194564070175887564725910451956931835935868749093740631096730526776662094554465927899268988222040340040130527041416396120995768660573403747882818174555158156492384914835201150183742727879373864928022775883986159427364989631814687935129908455811583353597053117963986380877969022748317504785168491769503782757138535578761146240829058137002988297830066310492722559809549571963743597646782500957441960085033812939410525860743967176964693387354951049376374709166213879897787924135461887010612361574135662884784647594395560198945448554508110383832549101508368934043186799176542083482412832385972552040267964444983822867578414083878691340211502827334446945898418358025415189010928117578078411991446744753167126724816636173742971336799993422421723214557275057291878241317622972773584552142984188605518172378848395108369141745565786883816469968490076805970614174892761466854651973355097686789049706762126207878129969554215934543507757816813055931843432381696801230590905552828497242192991157344929142664149300017395765284684847460025994096805519538734535738026469336148208023292143897369407002031138722165818243039549054850354410032857319338376497552182591845120667480667278550116847905209056396153533451296186672360298766814749412761527212233321816991978572662067167537722039087268991870120894281474272945095222127388989072484932870861937790922033170459828650744540313584311893189062304469778335622959281619149445572209213562666470266353944634545104851753789827162199003123963377377683901625640246488431870157913645111751711289757865209761800632697293197979078589859246607506569132212230985800550536487195308473589602495706593836851436796084519447356280038209230770474395876144671636479864280907048689329645019331688348541892774893124103321423106170342883598523352736106816123274509569957881428560486282980885124764631575557657249433882169788074005815244136713580733181604309338123215143307528572222225300823305540257585850321042100042903116636658465314993221634542949205062326730644852650066605130343693572187098097589717348021314354045438383571127439910646808940224815003600386775112315485553304154404020537303437298019404661273688745483433463983250495665803104194545557858293074999188587459375857238650540007756294277669992574628750255559397903774354494827220688503771332158352188753442609662898562410751296772780913416803822451163121449549016216277761750760869033470421953267265696028667872191877014050241016638630891148110998693524013860267365554238404716644042234437552258927652873426408688319534483320565827128326145811778760643252619738492620547631187849521863624258227066610795777521944706366742169656325509277892150140842287727962666632877765312329761677170918497324084460059161845231905104465774817529567263751367691929892654977115717159401751932622748895521487466961805102571973476091841624476623633254092902653109336872208095358841432492492848260528529160554754586860422347023396889191978302937648255526586939015296381736519489202473111378409324140619562072403936325850529923700798383603590910389863002511260995549903117118509499511785796698039601223674105549781225976432364588347636268900752444450301393601681614582548463229209507187899443618947541246803842947007919071408259839002394348460507125921935907265719357802941401629455420166380935227341639304989436153120924528753069540240104564938017658185516096293896756594154690794912279794925889001194306206150850532995096139335053990446809973634059120035058918031336130256143607614651087822297353462992898413578794881685255482740226874607232081737435576918365508319938221340191431582494592241244877075724405096016121900667628676073366849114101285130472769099607303441395475835102029466297193380484042771904641701432180012638153148548294226915540560662173384554342786053121576997444784417798995062160061121242204652133781040688642315953577928899441654003384454267997409227995709988222809779276224592100426158449449827120174678265487750111914193759197532010804119661517573111285487195257529128969680333666069917993578725068411740895304665043069031896047489808329269323337273650212313851035312436890900413805949586743799576167693925276621520678999876367501184469551620889678758632548638776709857579672757182309890887440512099879879048332164288811623374089035595250915936879450659239624104301133267637401375197457274311247513903075668267835924158259925070998907443225385528067760701696577448773702978850106627364735939239909143459880514453632773637530892649216273224432886293762446857164668422233283405590449829668819792242012347635244078790336530885008216753508634176081038418492678453566605656328067939603881868887523191561187835758792677263696154971429457714924047263448147670221518940466552500978002006027110709238673702891655150988043201801690696969791380209268133329266595274093740584378577763639884707254787790148420245343627913110712003972441545023581864180229377033046150071049966540640611088332057453716753292255858303245289335991165856525256283971260593928878831656588418270511098055093618732072176214997586624548716456685523005318035836225528007858628944039989923747989118959614781724542344511270416374231800706084936635126853721072885744491692689944186353696907945206911591990777886609394101981501631945427362859639342401080505004259759245522068070696319312372272917617572447852362694856048453827435378045173954803516939789623901826411131596618255724631606738617714894099808585874266816181847366877489874521315425667072616277249866367985814665079477493307515997040575822034751866060584195659105077585734015741233324410295603868888352104798366255697192553932864174643330198955578358118115068733464363944534247504910737817639995668374577739617777336461126055328196312124869238730588179755688235681257913449524298699464665884766327049841687192407885042701585622648809347015293830398425684835532997066860498305607521186733626932763446921365059096801808580864254845968606707697314233761789610580563654757371091341222458953655619195917096912249590019772850984557910662095399028136149823427646745361246483005808235872704937581090869321859774437602005387601858697585704809746441342657948563359022510048047869792435498994255712858404136948580574932695022886302817854776077117448819990401370622000789160495862128642052883929210104710195365805367629365024994386698937356621574707980187420427551176366822626499266319840110725816418817441245760715589045451306679140218401015738556475852472717607391544406508409256608885780014194142231306294696192495764797602678818233854460774203650678971932441505872054571076507403346783944114119316690928845610140106390224337517141120468178350435173431072638342897230234911361492408407153909838785675193731242347555806770140809065528387905395260403178582838685748615913323428607980091843247708182695206842876398958722256227606075792172622939974655685383238977475100016029016521941423102373047352595681453931990537395997123554216288293607565753268651314369503086177412921463539591307949178973184399933436370573367942603269371953714374012051453687237490749945529181197117389986225954936509343463163833710226423240352728758404654724359212076503605864792434202766767503516278429735506935803182463490466704983353555448982387344705439554685599693223543089095745902248242715487640903770057815969819842375384788479001801143079372475045094485009915722348210104041609831952130479020272019840437327030960319050563558801644609645023487746573042576842642010739054963694244592224983970864613446716339327832432729351436025713541150682278576052368782075636921341920071859305305858524457542742303396187177843466515539156170655153645173249303763494363721318193280679752334901842218935895429561383905675856313193489929646843481892045193215783463423948215754494737109470188454322975261594894955685790131681810830497311146175385644510160874696329396708242741467141349094520356750128504243017316832791511671180530363948112585453525956131876263018533803573327114861717478026319809196991868297964153703045888627467198298120447488520113684401313836700402510858725514059925285521471412252506024817718141482998690014565225281054953497221707690572642483002383770244113608202318577040265802305320989798163400989121275119307716173207975982114264814249880971749566143494309270705033686298083642873600113352503858115550762240117000353053005172204293653884162816664742674815488962930574626359686415489948533735052167947862375465496867571753131249563132282226917060971097091643701119874342579247031343043585569938959973661808630812308034032313636254803682199835432424314018518450721458996073809604701758168824812756932007532371016524129584563652919397783834823997069715506933266539529027471674486762267497408151925935734352692774823386819834734444207769142053490881675381262257806614296450520690706482151589518553976987951687336247997301477025679813903863780839644512948497105120316370518143170156032627872284366873497795874328296602177441298650741227532100374940874589877906706559081998026567298463629148446429646541306513023959096056151115752293637161859110581655401806853180738180858956201619914281261162752279935479352748781617020111245022844123656610148925624170947218253563058304629646492274666426119643537391396651692455989676641338431725088724080702858692170310365944051044100011606884034371442430564701276499804601743456423891811264379723344430105234251832499734628670261618126017299100019503095612431414580202781214018994491727125596994826570795772719626702615041317594837754888366763850927741996466672862727103837389589955057356853956689940553297424939743047999421521666323667822614963336660685922226925929460039951749805527026584132257791032552480164320619897779159757369250982747024660051968484212240424647099452407525462946740205609679208681105019752858614309163247881386091655185809825549238434589314663553411549623249131169844088870841986953529826512051034396583769101085074566659289157825012686307131170833243045598587750121019976092528169026721357898475736571429662621822228568528375689470975873349686523195848823116417898020345261328919147431084483948917106243652351090855191241459433609095673136813434243533133277596808271440509637617859133418953051981686013866823799789852196888411880149334818679788165412854697364496262057297277878711887837539287738745877660588535084811794695890768292877193663682002910196587523094332057224782608055416539349221101711329624188308452783201529567004329225080069041268189908920362386241487380894942179385345002450557934723932330524786582267717303949081368054503940257505515260903514637276578079183084072047639407208922459320352795246787941703516290042451277085043002554205791923908383159907602300388202924467425582827159095042512302814426275967457563944624950685443090295420661180785567705558296129325524593071287452352013970183005125181473489340398911317302177335507216078838555975926789115852023070202590529288557890733814558417041962710284855044039561361412628138087069292505668004131142898605797171402659766544062833520327200645438863960721602956434928405880534686625135614933520223105577294599277290298043769718697981067714244375220918385351517081235342719928636761630959432290280258636603389398416835386940971498741739974939070186566909527967409480852314577481986097149793851099878710827733987011299762666108169058930937741204545516821597474518913432391438509875448953274097428827595808684773379932418290919581837010169140029853147563112208749637449710548760048596164355548172519532755649587139007990341361464729539664913877287197528392395534718415633709580688629633956017770600778074271287619657363685257037494736215708833955779646454161201487616375914620317179398380166717182133772133895928799712802898755507224737307441336444522780140543947433657164525138941624369998035007317981777506958294843886058062013691462788186361598639727065613950846593201320753286640637216545026884510495856511680595453600352338127176976247401507335910384369566075746193885142174532549668230672269249476869125923052229079327259029629260799852385129358529005777933225033558437168979569785714870073634273731140221752172730294197690197312924621718732854690248945911108840226867473020576899459179785576652726992488611071703147492386556118969472500687163593952223002100878488221632533461919849718198632548254838369671069168821471627521939098195636589465211813172738954244466438736876609422103381880943253264647593514287053255623705305784240779782085770039771629234776821891024130853273264478805956263589988932956972032015862602243031362499844447871788645531508292489967301776137985976557028886670701835061000955306743734366995074366537674130642577735682563366264352920023841432647957608388934063277238377452072618233617665757257366386686575750529651042590774587206925308048410833119366614707136724125405273263092574569252320965958184124181566362535547543356240189633434271776809262002370490796159269461390025163748009629847135746692223159093093694178569499854047202694787678157840103669896073627517393302633444979853134587263824057245883209671020708800275141669803507294956121348774176988157497252046643496896641531171963992289260077424434796330580407223105606157603185145408187643265031498112860465196578841043355666127153395007933514916791449473122274770646921412442307162458096088392217782833109265459803722156153312845453679262430948490044280269488655276845431750027805695255930990163107073276226701456931464401511494666290067381039123517064028775487654352977908560185656067871511063526658437248630847121935185122893687540002762323377768434851326580624534234764209817638725909378646022114538554415994072435182671510031359520817598274818698427957979675332199532604832922599971347098654386252297159512529646547854101024884384586651197964751442473374110241638240420629600200250251088015914203530577774334730844780234344374753941169099219081325716966296927968460042055876826388083003959728960954279317301393017772914125630577623175722682595133211370072030416584568113949957886750420629196488639269036451672281026274308051605041113245946597363112972570903661986613358162485804958753015080640001248723186910320015622368660814122958023454249181915448456612245531736889022895780537670565888602962928346674186302124206984572932453994893378844270341202729717628844650201668952220438185339897490187655735192637609721003749021144103096462023807538465692709827037580274500693657619824223751720290264332340628973142421478851406135480820072173152268692418934523785043005813971586976477328739233953740891372978473550156257525122373371310210818918551875858645711553370272670142336914230312243695564137962516560395624573365110240023794237071568979307241088739115945869693856457350233223990115716854620298142992242001956533564338389213709065897886008900471091741492424995289605316654995602991248855132244019437749876346352698546318357039304939482498659071600356665760397695553249131504900705602938093205810345402841823124917570230466975123413728051803566537781430861001008598978683643361637833896913744047655598583405208197520330350736665548593798038907827035239803246978595860246802336551825735132241066535767825054711759595601670033836662928823085649716968651873236143601452708176639710176715829890369220353484172286621936000186112072860732396368872482366239829888267851850573868696067647754541519450507415672683205882583930391622401718607612487354351486720340813643369517316751444715699042946217248973013824827081873105783191349575221390843509517563363929340165573584158175566672677098749158442112520944444337633808624764377210666530084600984561777741513431645253274865677923643267989663239328235241191330204868066657522055139938935464899169394391983218239304322387371201414983237200085670174933632745882748592267074523296060036159023534555818965880986074495855156145478947020641320153850863042414733904043344076963411710151261598377798159095766240471796750987105134138196915856150687489477984740501541336440910125265018217408391164064302273994693286892432768631945192341249436063753288095793073462688556085158301695347815469047470125032664989951151325492166444966451403472947183782009911052179315205095194244003736681175975973587007610619231427838887467345633347115758777537668097780365588402080484160649694182307008453908993405903296993041626139510292710015012743065180305982689351254096045800695674094315175282073514557841884049404421982860088660703984671187271436284801378977104012414695489432812377819363596649563201937114324741716028280950621407735985872595253644397053775363795790039206899866782246408965226344808397718059278485384633623042703913320458148739104732268960789760776378425587813554265539076323797610284662046559598209798829975076542751072748354460760413804867494524253769046486128797619712380732184795408151271909113378014815171905328050585928807550936870695155292372318557307263847569134931539357790642825618495533895832386191275335912942740483474389187278951152897543471285098184006323395869493392826953996805958013963292303327171042619203622635537262230845604780609973493464326303866384395223632701283897368830718929196452052997775662808402186564468697935554441369931556126595665864376297213614324166120144522451839868250464374045551068143871488004880034524128996937434772591822881817093085214806942795534348716040142968122450379641646859401064854333560257678680126077231074084599627704867565807818755190827671984368063884590537024801850642161180895512682741037125653374315753915588562901672387595100423490122304493118083455305365239688341835302198052378695208170622612303251854203634519556508108389966195134342363383749329670294751852602053226810724360707904912948388788901553419612722908492269761059183538252655389266302958444340771992823658695065186390629782094734641343803001340279869013423802347917270536268567495342365193752005799861209771463507009365910665188577901236786716064534162519129506049642746607423744819407999317561457248047778171931954532337757655831058265706854862557739659284769079956349461736415822600053625464585961140116497077891394130036805764272317211634069044257031919609326361568202360896250091420265601419333432145084636646361735216237867063759313363031837438753282979186954913003017084644172628356851325019532453719071836567033320274131051461701506125153805873685643767696270447158827331764127267173015299359855629424943301991846230181064166024054494240932483724053991602806913270435744891608368668568163413151368509870104551413209798987960814965616880278535894998939069952891979406317167546839150129382746769549493268077903288956094570627036665716574937968920271985885792037833835999721451280757399630277329572171897085386279179742080911079552452075181030025032959767622912715033341525695006309231852100013587637164119253583131508257238809880742787772871864202232226901710061576003600827672766521871201732307143267566882094678347266577606322711467188988574405485127682491852967190064088007457666224699250001269655414431384093664651230641695922682989562047942291787488885353196511694850820543164030308425155951127172600784832657468168070385653975548565746812767003507920782710193474229253038469646736680815570989255322881106679871368294423869557638966646744427580117816898292432692616002489928054190827032561680644260286938943108683982018215591402270771337133319118502011198028350131190513893653644154371459164032064082508871697567232779810060422788726738746722149049440906996643250048884138764780377492255858211603861501693904367011234642590685027564842988076584417439185820528872137434306743387477989707793653199218304441155326923529539572466437117221288875513640811777225698458954974962621855869890949770214731615909481785660403260758585742777148964986369182865954013244200465746026413204377588688750720749145959149182973876820721519558580808080737781085860148320932773449091754169948049404533082316822539598257291661818659046799659184713074786925311119445965727244294571911825698791961310138901892677451477359848885220698086285641995748033796805671804314691354021047384162496067592661711819163545550765991332981795868246101119532297559878828174877803587582664699094798400249682577194708152695585092687380566341898549083942881434409052047838874049217637390425983900510558291945710714766508178882463767660301919293389024449805498813357673091090544552476185309235201401984266178392611705928532622639293416697868288606880194240346906831109368442929085159177183526337840009968994847428793815947384894434498604293973973184542407125620551846860636353558760480475086488429999321730393560849664941038107477773477079010611955869642097143167604713768291386975890835608539003076094910930541039175929207379338165520563291785071440911258250425189541106029714835308976376319277979306965614656724099596452412928659359308189767627759520405349004816066464943638543865903732729728674571772674406281330340283384802725632454572143385192433260137909799713721920735033736825468358136543051299637983151870796168751018467879064770935640945916456048094624001866808239779325376518922017667430202079739304048719724020437467573540172975819532358322000308840016700218668510660290915251332758536494112673248568625439440373562865281655337493062442566255273004535900271302249087549473635312937061804256726901831524226759511019254691154470225070402860378210161331674280802520499558925148017589993516103799089592303883896270140377802871259540618360805658869905757029165367819004167334788588091693171013552409456498929371525893246716552181289055295697393263370144689840313704323520765872721696024003405159643879148045138309951513209629185494991473041881073174365839673848040071608813418080039468502745098484158849282092023679061820390025808909090183453066506794227498568989455946654012589456733795653005234082520981332096459149862018737300035459514185574165284993723736617625820748250200926853728418616549396079190147877646113705989166541298439561052083555385654430448407263736869624043298426211863570037582122033432646380830346500448567522555783293274137688849589465924188327715246997964449642148421149368615844807862835770494581683518018211225418559135099409114207594097511426004060275698759241811186994493170589086998400079281080721603338351564683282381832869118636249972152832864121841176477629500246186064577484864017055476086291128817385461024517139512938793316717483395088698015948547781168649292837583005410906719474063741585688029404704769077559410908853321895698736828885899994340587171634587238687296313732516967328290191127476797425992508159907231882338122345401143516833589863643740260305725918938968810426276116550980984323129788661558252336454494403326632124733687098321587087794162659735067573875812912299312747778651462618941005391537693869914163343070771629284184369348991070827584869998640799876280033562589876331044938069925235899412615891003460556716015681842724230504299925782679045270244422776811316544055896360871486510991655833870520267335071480893288355606952982118519401618160157596742888102555695211351944787754426348160832022409056036926177246788231084607501964672661882443664977059140031984304028753987159324896997018004665684099996776598674479284863646471178493679684062105818179734214477566718527468978354646070765788142218048535020658987120294500363994760214968220423756687639052844808303016821794796567709449157977393096619937072687472368751509623218484168111306786512340195903898477238873364361885383813359176562115627874441215269934770250040178870002535227167909142069266261739014266454498591299437850876564503962225882358166317350250111285657775908219376026306927799749784507586297671227292926269610952808514551615636167298604454662791912091241836791511725667251412525740196072644111401439646455580776477833103676674482459020940477464430593219542778241685299584768519779873790794155996113809528692079732233713384156113350924662784820742123858900238878827128427671960057606658960258816243687461678179772288740493935821954529110698874332539981689990614913578193043571646625027810338115391795734185536835451591186662833401419520792118016452121387193251727038688422849955882513207472071357166285165969775827561037364824738775057793583012198030087260144914908184782322732439396243383441632359995552323295987043274909019572387419638756080732386918540700073446107809497040232724425696885132985329339761657088165979026076163061744305246900321826718113452783620885346858342728604113624556655152497946527321473919675371747835772132454943021613868970518435077859293111275342022960283156556346723156678067703397646693388468672564813492667160757925285084952095330478730898242734401500162901356146503853578198113887766295789943134731785307879866210053229634922539812871639898805661864847743671962416678715002663228484607658158578421803588677473910375924792190674176263129904677469354136508590062295648877356934859209391427836302305522310235875763925616149749147590901928590465978165578501732273001058661273163901488060766135201820147785313892848573952658848767358169716893811181021298167575858572184569726175946546833264844345038651940777111961000529031165996779966707976537683887024756914119059223058795135509302751993753526350965432892471433431297871077612127559588436794126567159270465397368531221582180645421425400493887069671276057711351535227232497735714918029496051259348497071977618409687224564400540902378050804991384154204314472626738882116872712816687851005225227881466561014623790960674620414007458523820023607524771305868501787203032524427484839144309923485968771372792501296197721855725310219125566289445014752822701867012254602908025486833740023713758854389524622457636662621136243490607012617277357512718630161131421260340057027935870610030223562895334622315793170662014342283404999295053002388142185079582928235753155865306810534024668821554983021518824611155949497392601322139534016852875135100909992138848496060574272691271408567418931752052352401036699875868817743096242259899249829760175095496628897427803103226801925731479077762047995698997611248972125706083838660099977069438066698935989554210764736494577187748949809362141379304464645333901113446926687448798734405746964865869682098731198501044818038171859178469381490879972278917733177977368362604352503113621925365953380497940182258535722223721960061307084804471567363547152095845599815640869383955874054398766653458225646527704393430105712549751488142385679347360237727645998278552024692937698897046341910464323825923131978406423946999895962097382425805384700204266382314877407985334531029090789567854121123936357720802753174177477827759402862911826331541289102506617864821540152373419655258212181966679620395987536362806569545476101700723414866545872947843249136382340834294912116653169168188174036534694124054154422369836119997897327455006935112774353604330307717782180787884401274698893152013644795193136850139384660545224444178589248404835424557514103307577476224781866404437606840525758255052741167672711348502782499661797044735215156758877476199501326485335345195165233209485396220162894187180477235692775093408842722281033161114085989424433645390647170507780840333077879744178393601437287110966445630010321505462181434985755445047262226019745644266950126852544809741136556129102831538226125341667268773571009717972322305190031413176390515490924401789856254856629426287214284968700284274841436343871169115461258041543118835285168380402008695680452433818868575829664324490672327073861685231080408475762336963465276599130855317489269173138489357841249282835808537628074373329008217906746307839950427863487438839529581833888927245239654394501031141210747381874344653616946712098010783503084108429556198379509408060557158163030904919386207193287349261184931317370193501842852076302625523665216393904741578357369162604611042002739325396462444651711430669628650744100500571853998866332883500554156714267125181916322886245308298857334000263750480335787562945371818080584689865916236416513056707413594307321640624268019706549175611146712953975232457791503523319475561936712122690530187990380137021031453829254777758657392272210015728834497372751920312385480316691139131118129840526850663842805100043913592327368099086621050937983099218067876249778514816152541168521517934175959641634036578591943531271854248333475688411155457293881467128780539224318662937179566087187651748038088210540089337416998350117009036487072835951846532484242910077083815360670891127887382739071672229623131344389621367320332478810108700670123288454362029253338037184989080062571584720847296255276770943361719291327730760267659758168418586038866673667898937497463991848796513272098632467048374030241304848689482648473365894610877559723605642669542318062682840685821915368465469853228284833231811387929301603096166861010439182445916279303686455842727031690393208986828280573460790764339557735568018270088119494563943925404477878123695598575274922426623805977284332499958744608949565325382464890513314841272666485673810783848701896267859715590576229028970811498667810853443644849729584347499909822318959058814013450141335925847171641373324210082182163457732480368565090604034182262385321764813767093056160331768105096497057656823890148270251515620786624243566119647668032874536898283987014705705984401492760125506048781152142853277920547750849059911119090907991985086516608745725044641050841642131570451735818030315265272595423814462435980289557698794809007370866300105088248052708308524489420416763558932958575898561595226160895184459825681240686168727420871324953170827923714618804312175439459290012465536642314849507267934320662339876625371473474767560432944263207942266921960052635465727154601593067747811210516296489730034498139918590458022092945374241172960275084949122403925788773714226583243002502437583476595822881333414162061741240394932460184372078445759342930244786990076986133568330603371522505722685854131567995945932769455982680867262633498701399280972975793353179005566798022628315579508798242508684155850682836675557010823973299602396944336178189087103583227647128241751592117152427213165542629315036853561374629698733796382358432765462624994389373710368735822691337330517828922696007250108845237968975153646060837052088036557159030608278210619900101539047174173080078729516779683657664290466973106472116371796277608436970376904851352063370651784365031816469508505265414941868331098982909403379045163671105747087196804727913227794482502658659907167363985462255574759668893090565901708295831211940595775992511008454625521184443396283399729909190126062824362682838256188737284888210547928449698226282707395183998434738227325604224608736294880063189542667855842176823671866360672713321243788412435647735539653932339749905103585052736789261534600987959467667376806631456450230539392001135972263930531503779183318034393313830325801358649248775822981950219134611013299166978326307451151181762351319273039017488679196522226152769341030683124364517035042334315283685122612056356455091257223463157583767187675022019641042500524176725986041909722629406206902103661341365594163160668437851606258117540936237314072302486720644929467685866724879477302025805470284130098492484608100062891401569061738166832650184640881544138541978108901643349918214264512858557415329612853359746694109393835503808041334872444456207011099477865601098180787521734478827107623050739792901483438364856766370279279171779400792561128018846350332403329233804380389289861446896055724938396596165693373072088340516131244127224595718649065562285096380451885367475896256929021864800334340814866912929820972739584855141741991497264694938534535820698375957889726866024441882359894068229327797135517595906086173242928512933438855337177245589285998389024210432761257067067330826223659806864285570559866370387348169773520964902375283794449064475862359612060580967659211842890155402522909679135528197126651130535408351007997845789678495986055412619766365416292647525007941475751771019432489266572122182662203831737103233385951435639746689279755111933686741310214194379995547751612583928958857268732303251767064458888463739510078744244944810200984163393297517122936498060258136193464080819780851176410781222446762532431153656288343798912253185299398436706204903508898047254093369031746064433094656381757241538084535504552474969039128375938649882473191244900071208670255023565130974286076959687700274335280943695732578551461586245374203688908573434344438447560713508274648720077177928635678174487310404144355767740249499722209327302759222151303260219540183234671468149486823159583153049588914094835132658192458406983161414584521085930716154851311035518897040529379326782742371443654966388573788483046012334156480985738892072573859454792007269670614301740794291394344812117527501271286088922465325076996235950281812991231910525312800690443569716422944061865973503269592884617481780362224276497301948522492904196353550775719676258046628853202561683320057568417003731365689331936684288311655565804142320927317138206168098897244844311544806968729289058270234288689245803753551225153329991389367946068870213148822323456212406776874205728038099436809873404206498181030462096225239435179354785288292006054747587956743237446967034858241618187733721885607778965795856144870957033346213589487915233843628634861384187124812454811164465763557443212771796146806046734148001191125570186723970131809704291738199030016509675301728924427818858515886607330361197089965583539426827040636331097497656785050416237072906300504221380040103967763024855633925112732567506641152066733435759865636603560045464252121125917701189335789579404431167139088077416120039569802886751468441787650728588929992279059982324532890819118504798659710207613295798584505350691520962950108111770501555029667806835028406543029870782368133369560334189623491932194027756806039647481907745423156205633342920694337245559543288252902970187663952356812772822265756381776964888956523379119395708254234805879035533148297763791174249457835368533809824290175046165541764862180270931402849856625451487743829587081926726832670414712129601681249434199076071524196386014898401029333493831359662846982545737438341966413310880064371743147783367966596881839385132755507289052704111972169137741380033652159402264755627039095562418108495893852148117200244648233861568370075639281842951095819006245125153184204646440767499475269492622306401524586874414278849386484685732192309602172519085888447090642474274119503955727844923819372739107934838424687894725620205321556821505427337375964461166038445806454737713977895128564816150859192111465953372112871738713068772347422837657682086553936844803360884826759169449434949570144461341884993666134890371955556190593492679047010745139158699733715518159249006470067218462139854352314479568084096955507055589969320682450769063524464345923510848706377756190984132893685700900448282739823716009219821357098253101533520519472087121648800622325347514287050443773863296837913080233883908998008806032566925287630229299069760166492739508474606210351177028882645870767853049440011956582596049403878000435907120592718251600488963258460145136670558680747540896911218516973354164382607982549863650040153332385575710480565610476925730675192127468439944922531533199706519100948119337453650977834754909254127202027771929492886234610714163908884324994612854160701510080442333308311603382482518254357000562664027301770970001533958718869039209368331421931609359710995960319676446626949828504219339673019676447146831475587543865173689955661045379800439127841274396542744269382699235672900041956822331789603988311601442938475399051496710373373983362070355886333908289089173025731525542870252635057414867836801581850689841047321332351095367517336658622067092543180647486650020871350769973569823131120725474075685528350083243442808587341123616624070808519745211553784276987685707672594700426901800340327973100525896531893543447342168704740015717802372783415474713191768702695475278075468051350013414746029617991255472149604566216261051949366317700812135320072207289021003366761202200995946268862686067949020097088442490275128134107340341442573433258239656786968386147270813097397098446243609570877987247523003541946224002879234675267936688627335959619226850418470775493683355808084971876614619830304249933575511855027127327717615349628174114974176168760941705911499389448131898935653948829710225129632452027903373755467276761592107030449900172356749917178509034065770600516277171612072388618384172146928082868538891958078046652920238260890172278199925886094998526837566843319240683988083111867633404454876316503851832392916167522506302854383937393775788392169137807068041074607264187056495191535914023244526308150141293234866191124917982566958868031219956088590419150102870034104202122818583508133123575241196429132759085776974286719056886092860126664220386214617024214364459234975150342143573792169964326529484529688848753977547614064986479073406699547070090491282540622675257352799205016896751090469347795172975408487459237835344109559730958719700376700062338155565183850613795957877178360060576818996202848514691058469081091068504077632404121091680825735202738403123174783645576477612794898344329288096988586179222226013782668662704786032780119855793065447821928388441713742040690038006932798579128313627006978917379362257883018824243012259757811071110519537277166330743818956245733573700853060183503149886474759426886715780640819072746600591320952807314196092813634243538394005156528832217780811627678486452673781490827376016427513390895780505974957878467299605059772219737165026763884943301902018136045963016936748991690863567747198372509659150296565948780213628785590393811547127487908557083603220027215282196797468420897338487492267506223816487995553531079970772076842587502094763292462585608466273678687593076538275945262399305348776097741266439220788156173356829057430533360590695599707865847357481002307022494027960506663828376368707463168391961705989023977780119503073798908942488362602973459100864226348331183356708668409969620052230761681735219943752234860880467383214733587074195416246433582194102884330321949052516830578633167431710105637023480742778681130704694202512423865513680073570977267282035872259265814607130427323859404031457585460865718682777426779427128594675725831328311135666364948170971698295126656576548894705280389576922259017450583604358824458049502725055263740853865044204248010967302271236869847535343287811573662963790833886967419995166698531962720999423702521950460013589938865973068080356071284045114814494832260911831665800115590290483788236646635179249672884049638172766112290083474220151367886038863577260959510590234580801140078724735994830121648051786591128878684037544879120038628633206194822994856262550789221752241997379939363206448942431457129417279482469873485882270472785252667150792368494047387998757583000481744025406315141204109892675259235112411447499427143788811327664447874979936727464340165418723477375256061070356095494595182850389956243618431466002507852750535620133165103465125524088499183310694447584232184219945932399415747127432212155940814469370743422808994035192318613782457361803438686807953692436082288570416057258978494528216032140722089744521864408349720190299286976844291161535372273131821765455128765268254717659198555909999286902666360908723427915184052983382808893947081231848354853685558448037534720824084883990022721539575322789823665295545032709459902457553190034638854466262916686524058576936843164445321564993144642246148608586760337076585576561751313361704685302369053723388575883273662512233710902273537297146218282991623431445899824260379852938132196522958697261829218394773481541932870983739518574154253659470771506660060097742204521038277755869821348756879600650591195753518276840194807512642592829310469832308630812402246037160640068086666183154067925265095449451337802624199405285155041653948520349329874024787457801649989453957754382622493903227375093318623834011280812559877005276865706599260373972810090670111523773174209847311994121290304492129297365026015590417644766427935986429772808988400597492277950955356870344138816078626879019186288047170210665310648928416101102697252059302170937926527275535398495366594085203440599513489887444549052516014194421053632810201283762634990205501556917388099359050523599845592623295449807767052847337958555472061629332024549693562518227456759785690698593940703720370227693454006947530096697406849340226130479976092729331023548301629189888265984305423721995355891566515067544990129357156334349105986453728167587459319527377627391080141737976068094898805125784794808150249185812576160668746399021081624599240561281678367940895611513698199910758983185166057573517903168814123616560540176843538508486501771095029829237275327735413775100822631680872522886826085991809069207820313009753346853555356806684910296407760228181443042596402210863133839458109839631859644740178808744611850334223110154832511974824092604966873595935215952326628666909373814810400161363525349328442916318088208978206254242266960246511051440944830351006117313092014627665691342791583414499682005370412023417434635463369387655976775670389846387772807199030936915473445244911712894098723300785521461624627677942767651678749770847845088452615446194886651187908864335992923904302427566435313861779891994156236632369052434949481230245027764616750590860386066845573216796042461272635736506691616302559970769855329354868563414194697448899452350847349104937669904636448908328737434667431549178550535589646785877953508913663417097937650601656787177496269347316910102977788352349319938060177087840736835354768124449559464494129180046973201321544088923694959734400638032074407035572627462721201926421719221451421386003732975946057705641415832915061826510555727845805598552267795628529215779747210620726579231536815520115891594479987257532112164121640678766277844315632372378682775292245178266695505276604965555875160550618439768931791165479479487972436856784640961257014814068689034924396570585437741764707466094577878636054052889354432905477414389486266616600690099274340722120704953845579950759220163056665290030218579575287171495427286565951063529032327617786006063901507998876143327630660825904320392427011749661959219283793828967014053348588529492720445347579541680880529460722424920878615747951575874959524636939615930255678774000638611520377442040745230219431228319955430740885923713840678086047273133211126628121692076868649564450482298804464465128416315384479961450437230673970437291659666265868555618722960187703346008785797330489549493603710916284867028370108272282937369101098711893691424175684954999794389105385797439601322284492319575823440250227435641258543608275679862339587623376183914172895969801892850731272382399254609096723125311315439030261018900417032873659072164717084126106652022154900358397032554899744801158595478126213752501230952480231875281115247398343524083395740324177125377471310549852661793131986889284700861420864369091912317465369483851763592832051084954063285512605094157992740873811083657898823255982329121595163574534388597764586755723749718520128973213795758187310679587039295730935473462590911595917764801362157569273253085621063077815636420167271896309980612867779133644597027065836861592349583905036071374887359010094558138215148104094886663498291313972588062449563140807164945579195447194253095524804717095363182989587499930292101429012079241015347305479886626609157173832842363489790876913035973694931841637222235717518159074487663545204880212074472669276288326750786562968727395547849036154650688474443393796815111907168533481560768085539818244580056321706750094589091709188364447323760447039801338445488823873470571680095151538047772985575953589047107026279632320139106032290370008784296262778483845574534412792354106704938211316787213035522683163598915988121051585394462611353605023066957231805823346242790019109160494375619138283772812989412370266381719178312724389034773886921849946124070073433509181412473180692229941572397273064516585676350847317647793003274043566365291893760179567749021373921108409242025412076765810209722517611431156012312003573719819213905922430993008160512599336362544779750857628855180046402016889447879557285209183650782227114460541194770912066677727943719664252388110954084402135182080397110114568910959692565263227162484765498672436111645227605598029071902831273390541149453101580338716465022905915852506584280835325900224199298276985286156301111936737467897992750363752970691098115677647197151981321852530955908066049733671054584452488914215429463165663183743498383698195626145200069910879017861376085236822639753745780608919015666692681554869229794412316568411572206634503026649996303669338203304686697837024771904328818500064653387419129580063784509439747399288079252994056728992355877533721409533802266011670631916335852914955419717415007490520911050549767399224873356239524754945315934714930908944881387287483107266410451368596312974131840446606299816964572431160523691791435252527111726764112218092123928814240816139063181422022920226184320980085740561719790236056313227625046512829459782733020618689125393545486022414362220958240159043193812274074850406648662974347430118441928415944557426688201537623733037494286285981032713626185885378730005155027306006073316508734444975861296052977844488648385908772913394023686514977024974463992097083518838774377998757558667618343115043292450372400712102964379239976826293518668313217766716039018325128400074335205611747732214496192717153738959138645667190212371845912702002822100493045138459579697796084782109630248315514280456432280114545526014636358983199807881134028549769502941540304803159348089975368855393131141863821584790714156714907763896755653885405177576113808055702158928820572298699093783591695143893383968906084769037914746430949169227198419792281237837687422686567246525921135039774268251576785482161466114899670363782029387128743020317789974458801141363668914350951740170132247639299535461846158415286595927773603077731609751326692403138240919912771576172740264958407160790995343681788030622862078623057179449705295254687781910226200859898013238129709937847883173766203921553385892934825114232313668291933095199070415799386114610216491682776973404719526637771049732920727905311979402371941907141464941218936928766029103713223224886794242961024591760469595123227210323500845604846148013700463700704270343419287181929697962113115157510314368180087223364504184532531697537924295930373262190698568393577071613876883768755005220688647362391039736721470133671690508374637506674107187790262337947319400665757828473561110097141007178848076426600833970707697684985041270778684994115366638149433674223431457372289776379723276916485952032016663831579986616406952621465768823966240670516535171162858651993206562968008085400984456627311318047076825461373005756654611228774487730840053235956019232003528484945889416820341809055447372399744559989565336210342611098424579411716400919840027581277814848528485054353768379632159618773670640793652528993332996423829252031210932890045995525092387091444638937273135473054305528005012663819811776862947406963567464889824977871058131187337272506617653803069360797868682039347938404447228939338089281535723687829540656294374195197565266140796790872133256352003009435317865056286392265565334323312280067444065035740163661365623672858149016141393290121695889606646949434955468265384956620884614174095820486797678683828263081486330805747543954346489317702398428597912424926539847215233587871596636062752247155473516338319930785667405221669743059885944295809302495795921724848988056272012524816637584083600271387788488690554720559898427587065339757928017179413627605315515922510816524144703216992566115520374749570765206481532472641036473788558148473271256430006821810215064143993495774494237897253088286754537825629343952092837043544822592434295770243722796473525345769274587068373904717026431161707079407596871107557678839397388626763537873584671677603595941746501463365989134276525361563478314496985103390903467305347769053383642253441776947687254456763974567887910970472882043847591053263425584348350310541618224180917110687728965183439825884047556164232618269848200203325000201884687003720810410686575515065593661811505764461111558782545170541802172573211796044664872587666259106659120285367593097045453462729595765840975788994421839233282370687003162282152639294119508178818144107030329896949938100938474763076042934800551958418349201673439775141290624088967448200227657340617343338807166182024879319770163231356730066950622683167748891448378930232768564275493575739398810907337477929047028933629212943521066391843220245010988882289428245299184406932641143794800416948562741579900262137861238138334427371127449017865417410663202619811566722128221338313429311236701859553564918671823697431709190253929817503830590276326902522356782026791694826727760478669295828725378456426175647369732376731051284348915509198077928540705745526563972387492766939496162122711029041748750373965664706164436822376190262833423143374428018732103735519057650523383593548662084823935262240380961589894500063632474245856459105257436256086063700182987757880171860604395196697397304866610384046321096022542155439403043759416989514156682273890249448445457807986877472492835534558492224884834016623742428906668256283551994659788380282560996180330615040899606952812696452666690477965325091957881314501502948533715427448015644789862484838001886773776737684772382543043232650815760517753684171768815070848978590890525357381513420532711594552731332761832415716426865045200028886894260701558944183785824032311863356562489636007653217522177062845376139062853060947161291740795098446467271782671724466623624911170647707103968387124469290994684698104141948010422822959594993566250842852253801858930566031905399391377923713577838160154847051770548768944445935186525534695831395376992607933915334402096278476359645216436624686642193488430657337880173059391822609667891797923471652048606376184463179184114614139070174288070802429416527760948930503916561456290033192185959591134082587602584611294173681727898946717703931017745507835894131694953092263904905096902924797641370884633299519496786080372266521218103542682613739412646943887427839639768214219254273782371493102300026145453299287355131269480979949498497981917849467091541761255499273154731116880055023126614247073990330404595290070214425395905683146999401462866311461002689642942303811086643318653978191478425166428661038994444933791847436558141765367616549491707110976697076242748366022959634309693658647764970010777107582007982601819580185155240010552487190548234435590825449910446452198252862863181667766237816885416520078281428313932951488443557717970532008136723993361199850867927018914594646530008559804766171752441921511533890039742013909952813909956099859859135824872126538525000467706451851320813089183502645157169245718849151892082640392034065145586109708332373876832791228250803001014997827586502301847553694637810821149162883318002051075766675103546971084362707940469124325644461288257945996917742572256318338097690009935162379924638617223247428562951157616857388272497891022510196079304629855561919800833546205231652413348516956824036340706226493773086722088698080390879866494495617249839458357618204611871616006566074598474775510704447200809015252512592526677461106069367299658973966628152290539267758452991921331903578157081598214977114349025190055539083530026362576460073750370273962583763949933192224544487222917019005452312582330945998741620956375674588466464287618563983597556671084626911938664413173983890216370094379321361102286582806591331955064292727361052816215812016770780080382696382531553881237786874276496658203262942742159739572725226464847437940557344905156668750021310224360362863821855821710958137586238400666869393205620768079605894719692073686376070443107252473369082808310275511049243291934707119985258119608696184166689952664659319394269482134597305685977234852874979279581557578872210130301516182336345848273201158064442828915534289502339475969504160816448261467035349771657468389120495455985180709783527889261113503581036666995788850128082004744513766793735133407371432135337122558630005574928808875581230042864648481682485520379364978267632903122339239007124348402426698320841242762934493805697756900525809143305625248037864816187414626516905298177002618382283790794156911908248227043847912748353920004610113145226028888906909102856730745550172542715980195124991891632484773798340522290639230895341703948844922026375826439478363975903312093683635059733455437234846069522655214151767577035262680189471464044100160395524468971212169031346864354242304303548181839944007946502582083299490747998256766321357823950286663452975245929686721323198086260067201144700712709714502524357789809385034135630887243605673164993517155944488465011382953800232986436195941631807465255410326631635309756255954357066535194282301179434538415888513065539678291829124434207434527683335008829140607492272121623593365936247484826356506568596319145952632962219610678192844733126304606689814468107125247140141961106842588816680097460922440182750603450845374596408886284666210141250765980448264082204457436801760040834575764933714411655561705977843643887962493841088602228030894954726701869940145898354421115852693073446182581446875466859877355136659390540157043073186110957110233089394644423211657317010277424006210107788062305244141680383563708498963888164923045815998639237926863155845836889492933786520128000296985746409786270382708503196659013283243590765292293021953310044497515924248107854689454784605001772555923552402245368807834313905380269048533023844234618259734349979604111640148881511933677984146687921819892877038995644028300959604847905216110282354197111049060191871319701685354582587426943326373460976337779615422743082669266798780446647420924049493431037180890191497577081842176984384742676495238951042372968831893089266018933420976876290615872619120662686772177066080313241897703565862743361447435644502213635051121613571900015841746685385088047459235523087928240914814217554059514518763347793404594894218700014467362595460894148449168199703906653524345070231105346293740216676603279473849751229001007760997876957018156186436126556882714567442595702428863422088227843676407273771685791533237418636033444271796784744897234343417826728898257629204589029756775878614950818874699296329190694704243925713137602952576978169009106562913572228652469070457422819048975154253738492836922588989901210842434778737871267412072453879040901523997994577248933174731376987047922490641394470614153268463606192974741724357497443569198583595679469099863428965224276534717870851079964282905210058303185046368406265047796995516252264534891301555342805417023507737415632080116072510631183148346217478827157334261013552765049429702500388953331722820852005388296190699770833243515790376106582719674605707388299222347382728671346730246005744417530243841237396189995169808177481930988709299285798222213925181938522924942044816774489972219937470876018100068294879402364073070368749928858800562543790810894619725720306952865410607139503177916845986633958585911010948450466522957531873076986427360460086940500897283310840628614524874602822427162903342383883404088681355960063850078383671243804671898579992991964946020676757199842267374872221282376224104960329713189880360186371988442222796016571571464052383338037448325928749860847929480581525006073338065977628423270629678219147810866850572773926678636251175371427045958484549881055324063642109584680696749482926369466266375139449193075655774918049838697467874610954798449317550521637160144308327076535575158396649081040132673526932864642047192951193411761371509898742300227053056903433593166444508509781024614009591822460614868294259685539294441161244138525576399220595777683476839243575971173398251408068109796617896968276356654931685596571598216431164735060119651521717642298602848760451921901451249314169546938906932650083993912888468949313789220853826049670983567511610525353114300566527929495956908746036516350401285022260246205108269085513513391451798353114823295883973856106657774235259632339129830753063444709658383560714039420813796338776576434554299713031182261001586920856255267308839142483423600032229219620260130682043027085220821512226808269618828229979830617488452155391125035171823756887242905996030908625274395883599392882991179740202314962333236385088414740038505814784799529956157383556405849441474544103040178008170445876259549288993832634184480589133679315657525889210169998082415936291128641299860794904088526798578108595486317927896162549514676390505697536996011556355658348143544134220159151177331548899850132676464486203855591079155269664042875757340287975684686914537908520501888239499809908427009959525483966441360860807105795064104346385947824089091432653411515296687061986639466172910302302990956421289734679911968610748891933176253568529357730182978618127297763425657900961810375548799866345319942394074719015726932777018805867171224439272795058770075434856108418757062644637387612936697487395448112505845234004251712964868224837882778190156142766637078225420745333583767428703452782892866557897250794155195883685089294799895918913126274307608468799949951026839387293176493520679326215719771215590691794241431996772390627430538702502994794826436901330122144706061888168616925760121018905243894728090829572263009263644738115577859478123324891723882933984291681410546681757538119860778614373109938630535176834731416226983716431701301891760143159422882150841806962374770135975148270630728242715378425823752682250640268249298570310337575610404269702620452258529963202755407066940884793302783507414313472829424245210761174321304490077308363016834020368713942936089553387532421515216080903374258513030642395653174879959827252215311185736354870935417390967569887077694843029054664480344513056258789792956266447037903556628475377974530057333247129601690751615719634339850282910714936327657759018738633696391271657359743917685519756496171322361070238336146179304164332682163598324358125819141777142413710157217210782740271106531086057505997495160265866362581050850188768862781970296459333977277600545229756183718223126218853632872876126798091735885098231202712853060534457331100529270895331465064350937956601671335919009936149108455673241433491126944809912784272612398802263256541826734520771004374121275082196808137226019269054663579715698888798657097665838624808765971740007811106477630134184439702046109638259766899054143009247398016798351841142279996859290853013550400120395540506416205016525449418363536045596536990795135227698218050165958285399607026901395166431545486255914812133617906755059857425786353619181957145882670098651242649075253025787679061789347288799395150948590605201066310691003556205163466251191295152386966181024177491476023851015135454894670439125617193291720310264707848748682719221341086782040497670206022211475704932005402060646193537618317046944603952891841904280577334397702021585359923354384601506628307819977583954357222482333844757698626346291770687918546494330561886777069894076583663199807973614809517073686274677331020365381476339892771388112360310261807743837453979487362874676540675890911821116728415933382165557157810083709824877232673885107639986126589135170310770121141346622641059860482187159184627248558746760343475352906671806983264994193640399824641935327861105287197509717965518295125650463153897265860378176896946576872483903408487907782291396149589829162735466466107873824006041035597838695769318206387587907755382164410250902776932475530781639828249904729194315936811668966819585775352785104448099311548600099713843433664764904474119127304313045433793204294569061633908415001119317399685640971957671260126981531079307204728315680543703123479323253744991036259910362602275533775530140584959531191122760758089146440825072737493879584242872530876397834814076983596032143341560737571897231525699223001364487092825043720446242291460266303635456779486494713702345536719734167701642053372502998750116782344969280698892268388147844957886264336636022960472087806663654376535315406690712903918271564525366589361267436225171058097374627627846644549081666842617635154505874949272662336768507655753340590319668271805496965267239212158564003255441159154679878278285024784676051605351265485533725003918024522814377173838524852100349803027671787987599405506791131009768962019699222493311133266542114024357832976072805347666688715291437956213575013552777578744912529745838169943742176826220757399974430869778406940346488233304364413023875173743737777271905311941947923064370102006354371145520488577862672591761132785901090005142608246892065044233256794646888297538789734249875181818893275709463772800831647562603453855410656852079589749109020603420679760210452503221647633336700244651912131562867641177406734460664263950955330576361338258594891397407586214022320661936765311988523355620721469968991179256080557602446323057500882634637617035152435726376768822423982638719714167129161979672305292949885590662537519037936781533410049666964658398824645294025191463128237147721807333212374082203398842063701997791691607196996044190938874843689745667015006634270087167284462175026035893208987884892389103912863178308565686261684921526464859979700139682666460546582817431681754335284498213932924922473783208946560645419541319678482041490941372650125950087566564502338866289635901924124546252061407151308960875739283517613003355815984552011881843580169890840873967001706290402573808408439289955023624182604362172942190229545089597818864374069595582166087648630252164205161333578746655100872832255621613434774864404257733883659094369442035449362920398058749357090283126960986980280532089973354359378401850890742882769848808147822449329800641265605601746031250399825713189763202088850518316674880059900694768348639032688425455725085962833615866630424354902257671779134335214663418084464512783340384795080098948512769084291650796752376917991442211090118725882683843104669204216569919298381292917552842510106841776339715819981431354236291446305122355850384850057631744444014339904820002132047354727869077159748473696521682374465295698877056236222542866000153317995210324912740112019195179323516384451498548613328285415643741217088227034403164908020426781531806798248459350985342020141520970024525490342071989861352535509574602951995665286443479874789149054485696129798162648637432413787558514924881686742037806015366688938747082253770699796635528933647598245888143814080473662577082617643733049567459247436411516556680852819544336487800887593742433060116171393724760100644647674197619651050587352145806943823795764491172051862617902526080505833981495894114712022540594612946351285851650885456077602852613853433840517041556755383993979866555444620647768584776065861975347387190511274631725462141575591782028308793958910062307072503840977832721747277439221148591707153783086396294802078186744646334090611198498037757302119136626599383750035491131843050136583878720447947097247577586235606642331299138672028511806658003205469960528692242029332810818819955463936617333298362850426443892819397216356723738258354680530348976020368682447595590296185223009805217646651028702379677614036795612903106158507852827188489377562152739151380501927460801243602130806794256285758732815526170013592172707328710275480610352173382032946181210165460038154655761846468781541131020202417330038195490567210004800141257360348774522483052206659076478803445155457519318701512020955566855738578010144044199691172228504954607359482462284905097473722833234815797670702055792099838253857202123255925204965864998013931647448316073848688956405449707969863986456222843748402806227823040248262585604379726114072154877499587065658434930753295635847448863110782585286390889976919773627147270967063335886577602899680971816522463735274831440079487117009599659172972664610504280626662666449082297526738523419000479916553498803419803477502292415503044696112388851532883005836522951430746731651680455497277162341401795214333984721378108285757265603521918363239479956442006351035458746979413724415519542081457783537688519044093503314451717394869853246237366337049208656550028358278870589205293411095698517257078390063371428633028745082555622286601898206335974002908691731157831405803547279147754689465676824347138537260654749445827317569455932005808661354040984485223467505850613074178212387589202760097636925062407431891140134316327984969239196097460463759630685384786266038600055343487345266081358949432550580455318781276992062440460029642954648977465042255283272093756351892955022510840902578423867725661119586578269618685965813604147754222266482159407613561489109946612295444033938575160492124535950095305486906621763011720761877609411758843849648023808218365742474167914518083929657165239939034737427158215059654080755433178271208496629737969861380084467032312373611608025596008072199913087538337109276891609286577360945606179581916318363474620424085546551055035541765664565893747343238142592237984536145521691041915274815531243833937753578770741332047555209670294902958586579826659013444779144913282225565521153403530408516325952132462444197355773571537328313975874839354738826903763830311827773101942584472394017271445850354434209011339656776439900789160822666375157047432853727916155624963237460353560626111290817434061909167231261422837801914089373881874699586641537010800354146288992188366308488862422826761512050037778020742249002945375816674986587035216198427554590514089900434310142877075416674609922943882867791414746376916425735513705838531090977040244767071049630363617675073072537161088537385080646335919116858592927479227107393269637105010334765250991134653220292492124282592999592001925363752052461334464983649344690071181512978110820798397269183166751036511535905414302888051154336614285956639158555664532196951554397769862927212533191694759895479861785113281567030399337947026338211259106103435982614635153552533335562264039065404494953905384042350899031829575879653555823244056226715904291506912121624759157201830978023289358538771750123126648411083537783483519348108519962673496822125391440281402195767557101175151831732515060428064095876805236902632683493165430757356172329761212927434037130946177609363360077249873587050906829597247479639689048322204978586522808665177655876609815744660114772924433977235527439085884991750523339464841769969908429907896722216296485833354647421575900502955640606783418137513228052213812367102085124571264302368945537954380763874809058805398678434070964658455744775004667484794060797197071820518771221540080182092995953839113205633832137273067671738198195044152912211323359807620379862753974491833457912823292723734544143040066810369702357515882993684303645759642746433324319008927404407607258848340260003015885738975708704915816812387772411210511126424206782658606042333086550157661965101473534869598510193099869076315580094511483525141837458436457274688436346739264147945284193391072720698140218666311014123195935568000138077580022128257903673861757559276839647004969627159874326121354109513519819972237057621000941644135275348408022008426505215539311959550610202452684798514824000755557629398641064435819436860672086498164519679561198371363639397731628091131917409338519833208330302689320278787968446875578891773751160556779193315517542534543835254355158086619704300141925285165361427818950114792192207053458298995296087598446853038245661404476900009357824577749380897860247181337515541258628106033692137396728067814634647203569467543114550747555358429781389852947216948976830201337544561273271921351731130515527522400479091074719450660060798244831184857283229901203057943623830528894792098578392294076436584900079388618294429817820643285345731874398315385189853106452113193282860424494329041432883126358656573642299761066562775884043118178422792652870857280630412851074715959920241111075728839990217956512020200451631420493802665831800487003975820897339657996102990544633494061832001024488344214255407585452934078638373621331213278213569891172936133824429576130074106184503371976557340568420285058178638086181028668724895549882636752690604938801534867340037024956917911336747067076298296633622142305624643085983873012557410092410194325944028955840232380825046149745310015284386983253616990671109360915452033237053677039953899417810368355196870808197152750194873685607206209358827026736700355796706078068685179767175985046373985574159605385307347584333900169889290377779795979986573729281174244172521444051690156543575807670282241221722159095986812577141844933673133660704283212650041657949524821898246346768162646205379351063829490330770300150412371860733311095104462925082957502803871542164703195531721049476231893755007695552862476113010245991736508234397466066315606754514082393806384302732634427936014268480160157617941664807401608708329979346256288184546860143035930501879559470665055738385407357676972631915754928483977723536550133065786277212665312620903459912924194781621508965836859059482603011376683814661516901204024207614050624059044902499164278651956087398735151575638563479127205233188283263528112605985682379014910046840210954257828077271372275844954083329456650947364458798697657875590685250885243608700485033937571447234985576303474586136556203890916180662986296829209715973456622923777035124651845428975990252539978748876832699382114511724203030529201844408954737317439464187406415340790837263013363245332125867521301671032857390184347383775611396044736805864831578018274280487510890026418936238177177902397292780133103394382425110769634486618947514358496550042084758516824930451137218740534267647791825273582808452697708658785187871456295524332329084225469502264095672431922543506019851220853232611635225872845814497151458951631805097987078359881093737019821754424439954915744471129795538906594065066117035733885206798133679393117892109756806873054615998899732832373881214864315351052201312838226142725824493709204043457802173276515413982782441400866305525585617687699475968005805234331009071588252450100159175885427325035554361560804206843087082727851985476276186677274233612354547405487840753426955437629251397472956576708782242920316343828830793878767210395726990719379675472570673647816463578212212897545478331196102034389384392894361212959704946706178586489020605884761177909279959530441980891199696513719280999885921315537307583215502558557931211274247084783727884407186301091101488172834557051090881308928958140158152574440555914434721963127907903844225983400666709455754482729505078425878407272512930459326022099627168476673319358246191938091491563278216013520735902560305781616617985198904632053131686483620125367464252653846146924170967002229412709631670571120079852930307347955454860961507322327145630968502047853876633247479293659302097105412851461254147721555087317185518576757468965713510231692980475526737629026362829064565278847113265236784648995565471839596426230537475911379832265440600576016339017158984728109551927135162773737769559860473424078321479518387942942735940014205508111161881744244944534218782662158287041796678812142073589670429708881606205168271831015511389123408989213118033048769832275886032574257160123584360374283425651419920676844025272639244345044616017207173689882128961139576160881641816498586977228012318444286171525943426803136985399193661604604877649867959338641920280107518276766254163346796162123913455109072104106473282598721898892511751493462049047665841089989570922052706686523710914909697780566038548544153210576417900457612731383255652409580412148020636387871528255475197727965461783196126574623020654709421863247503068391787004987768960685541071154495287611310559633084137894585915977283741790833008582303980912917912296819768038667111085781621890629597937353736999113074666841957062255470297277962258512411534446606452888079802040833868409029175544906897332231750434329629931057574988414137788489070106748993810539816262946832368348770899780927618624034652680213081262023876401523129519503915828685380661381261324798362184871986058620068120634326745213170267162852233936631289023023338425068481686756516490120881096207340519213983906596953153334886982726715255555462865692262067759685547672128752568081568781977059938010483962051058322567843734889287497839815447779009777668123093392884355862517018856050100573612505054440104902498687747773339687758006220495078268453250321687388305936759387677306430529194370892749083726539583858544752100611498761480295073624535066183443371169201094734081277370932313743495132096998883009587231737323274128840159857243876027567632746154361466037668307898131187151723353469666252906139778956334683073239827772129494001361568857901567290785017383803620089687304542313431627105330244371428992912637154130425098654411696683092986074049366690453267760368124142137649724495618627299194678088537718671659413952048354191163610841915242421937933372785255087451704635646189166715350107216132731771796484087636518326958771543653568196969494505498626223108076493543623115487966526753644423456890191087651695855646849045021983213134046413657314034883985205258685568129966919895008195753541523388501708357658353715634119456538843718114041916857875435035403206200123591182995287913966192958211531824819728562343794757574023653529359208044748918544953301000554655223802113400997797147702952523157708710053629318794777763486989952600513859284659443938130060504807149868232305106301369884618218749196964799077326172629439459121153053768234121558041799904820488466748042277982254726325630052169549148445794421743542373834528712581918937236980444044424420112490347567821494342176700113129842410028709732680463377250374851929672191995818589797672474087585253451369947052177143402047047949400370807174903779779232635967971312809515659860912555745440786808271493209607529267054123802480230838556067604953626484660252428650257621913906885889059240770498942060641558092794278559677841516435253256134511126284335644857974078627000451410895719349309561281132518340703849745985087061134137561554340251910634518251654655940858879314628257346465277877694699471138527799903719766046679292142864869485449698180522790250126019836792639278472702655387602721112760548255154840489898537872354193973106341216788007138913098832265032796531433624434422924668633822761346590170196627820611783362226040223450781679222162669358653745889773323195311986567702496928758353862572432442213535189909150346878482551557543014450703283171808222521750898305818754545112314534869321257434295639324032485036923296641405303336662384961663270239719936485037458748648360363000930298605878540128007427789528738754321282807390951665924242296145063755122355079899064455505560645547941799941814750522553871868600226716311353919075389537592799906698444704036201735943166047206823015004490247701408130818418360949491695271836331530143804930129219287378320541484547674100066557967016548412668401418162667296548104707815479073698888295585320957780206864129091323708921006682737440051201382201881353948957700499664428377586503474448864382784199294128155313682333492898351437789983720614280568949883506023801479305971861382708448329704297500618489881012080488900440141286323178746101987737157496285868558061443358778751990053010292520705793272770311112083954568579021068124057441688051055867679290630011358597115713216006623509486252864118394021989538138673008045121814340264041749577271663240552935390673224091628195338082669977325618853074782438311207651519447760021519315122169134560659888255438181232920279743902392262673326265329083633809001105511111325862279451807909828867136125465479972131497268833158861135981533754695096288313584559271687780887968272653815126123107808346322454493321120621893047157556807192137589354884164781407619714688113160017033968533662297652853233409238410077124423188786081083910237276521713871537745265105273267788891772479329099484975142767454579734750678756502209706755502981624473540263252771341930545635052272130638025170887079126769508117723663147115409479676058310394072290100019127565681423927873680300590439905377775317644524103609401097538243574856888647799600971784319498021114383818204189320389532977452221896616575568003776603729863066095159854004566736585906686366130552626548264471200127517885254645554580081043354610435762402779641243931700727129442916608334056793321464478810893215175123469118038104897988610248866474988188202571440705609882495420499374087395066920589597552694164416898863053866913054478061630802866750180631485061340618868052479525292277669552813230355921779930559268862333194626791802944889838445353203394073069853888421184460427130912749878554662292345872509866702068522388831090867666448658581050262136251856165086776159050846071154987759047522941360665669220901507423044443500929390932359448085858819624284956009145120436336722232060707184296251174609556288075803720936141992078536506201492722380786111240363129615598935260874859452362846736968039496579581949087979077282308633181447249169286218459168048177096106001623640474007254104627539254893693401517878002602368537468796717843179421420840269544741120971680902223555088121595829696973352369139672250084381610590330031288231081028555625525862642588595924216231529609516727736564427439366559384226940765389739532543274986667501803393378821573783507620803069395330530597878262633262452249003932654599574105356407957291899141060909175520707623372009826660241329443100334702286672476981292664208587593151918824957649866592918006136603801251385166083660204200176199169368202590434451493778828644380350366833085412995848957347213493988395747752292312624749059957829218978069850859116454920004285310373706514165832694231261110969133962496754917837799178359236205913929233034059334365789261595068810195095438591034343237632863507079175565105185242602032234711862366959279153486585180860138813040657749766967792226728193352082224559302879414845555262486751322357611209854842477655920968102825309760071691104896285404509794870828859337010413677707758293407117599426592683364677689421417575201433284997856934885420023151025014819935820632695757945507234205189226424259590992446686922439174731349980343981195831613370842698194366689708261054471984639181232935104529653762328149556974980748550366365288406161016771631118504685590030760005901468692289469708222702250655112449135259916983752576453530944559998930756908434535842302129676835840970779951926844043456121702402342662356756938119455296106736979545897931762569908716125821340516475329796449350923952193356346110168710038141866580263793624096470519389485864153126960156894866904384846014758054689315294864968266001665215099844203191623955576784288817989243792305173703775016893073773268891798728586447657767658808588836255584592949952683629868466595031809431588573270042765263595434481426032814486913863842903399843448309917842785898108465389059365084408453685311788590883901744069857214155448599850344168510824763215717070252143095693816449126346185865200501345294025910962158245100676471273231424795242136456109048151444461119355764978139505817734898518772916669711475281832958191196750641420542179298552685588859318533460397949601995682942793578603396294025525863994114996960519470760081648645082001130046669001920755047555336673621018814287124397648624951710526543689534419357661853967006854042938012231235401021539816998341923907315209394970267301161392004959939419242063693733082047644985276877139361357377439866866702698850589064528244072262732003469413196581127248361138581677954837228733560557062285860932216798198955334524330354235901526206754138097481524930399699066995912034089466906161766851701242379003973914621428395344611242503146880729322146547229716726843711569350258175333508780379649557438449088987950970850570774759483627492699461057902147277574066569240179594859573586043951311723078594015830896148222296924991310187892161496494121708554977501131006298877280050298805324880327370365357917965006242335582524995301454513593260009374565997839104512261128176854696664159174042028680146959152417638342346117347135974772101390319307375896182547660926387685713007552351012288380191755125577695879374814308381457452130484530253809245626545841816622300480072303570448951503952449376078380822776282540393588099787283868620726924330845808884396442836521396617848312184133089221703898972224226458891857028397699504154676803309280760561800739355453712794585934847292653563158707120433825175975426431993977496298450124973750888669951175917178031540430750021176510226443607795493021124130483821839096925950791360868115926532559088589192677901990974537284257914280271453291817374910466332165164732983749093954316354646663452518387936848625824155459234023736194729537422033248189376705637687212131840664223370833968906324419580537111605882296714101748260872937377724203190943322770778535207510316309253892927989172660211392205600600992160901727465457971015292955364984531392318753912733012685087970931968397388166668001245061757754609090223941395623521154527204497960398395510279675940341946397778986235413203795156836437876201374947589435325039009907177725303337702941921509737906728729796712800395407877601291574787904538686487695385415114412547720947751813422152811276041204561221513226528556827167160974690573636761556851018481902256531243357306663060427811858768952736125086696456880005821661687363717621889723580328508781106249694644338273020333192455489131290929256342648851921012574551212763129419704152311141943271478995331941570588271100241877955201233961910537160787581239705180185141251408312135351260118035142571803288277786271878084309234685960446117752390128399002312737473724286166930497716470854779208822402509748343628219725978687327141587204127368557564620054225940990077240809753963990727720153342733923164706121240388978250576929612420359480591406361716364137713270705044281675647942103864666593522411955879675837352640902184622736728213656034592589473664944050290116413700374633992569519327039204589311164441207320067758300069181252579841263615844643919684336560105696110163512394576194899822798131990907159979095645047172652517548751558852153616235014861006012527359347535183970341415653154762767147426675562803058189254892419604767767515143849740245287663740380362558277962144445401899450485816762027863541331300071361091178716038518029179757048363017375662349014338559590631786096528719243734878826103154872898966471441334343968324460583614711992975844403965231784080824956299455464442254479760918824566385399209123714332330556906343374129339786809997151617437287898895056858282955857936721539638012349057714226690028932710107394309314510603947721390896552856534631111013786819977630303408234869295048427892681074910341287138946540261387509690228177065074200280927324698339651912350030562480253110868453303714337974427184251264792640963152231103731505876716744356459884538920412059431877870048597843928098754170828219144064462922377135449903593907680827067998913359045822883691002212477265225641104808870887798633124561032036428850710779209506843421012583646850784947567143638563381185772810267853263291132989567654891156107128543995672978360435511146439133978794018077985454087611093683070341373297008501526610383015778081975692729289364590253044361543083415193732710409445252397228903441948748985069272634481118966701263949245404939574932439090681402742237983418349474420225631992611339059720381868562491520268077303733463002049096412788725731085489923266548926867526802770737823965619000808869587257018684266122151436684230992420964511113968107809735077541682741523053071332430167302508747519925134548028650723672176888395490732277061370481819585897976723478277266237974049990025416612998713842706496135980459049340957821624975701652067336940831164238381502617635892647885547953567030641292380477511049529825493108352031155065951859651417876685122696472238354762512951801456388348318646345297736306977293859214359514562211717051115267465582502096389412564470592508340746262276419723288331630599521869182106908146953383813437861488736428366149258332960697481239266135063034890658883778498951188535922509807943076447039493212994933245864612449883071829135471264974745468212798511163705873500444402608982186771705872438053866801897338869634480354568995488620776651332526284522788405425415911298036205488726149383173560413056690042973785833728927698060974225296766534614846912811086156169933772231921922096248187703899752468521207568263865375836612953885414067294566061155356421590002579801199607124058647985013889666524114785591126772203496269410432915241905905096510719463583387729074532444240152068682191824709846048290748272427356129998085578598385057501355736476917561055541811726622101995701357649781176115150011861885593653466201360133777730986935502019597851419478594736208422614857819612331650321832689669787870370470276706481830498422611594933705686322673191371494459748176334439722539344933828458778488263851072500193269331527274286701122349354546104661213863458317691972745668338974653796409456986448850621512807829998543250608040866910959708890498949045087543566787922815580679146767931272105825028269518630389802306011999735551811950631254717158860496717943860354806323377637580547818019498851767270648571717968924362828390624238439800498125559646390981444574964948531192742125689401640883442892643357007580821012366501396479248854108782362694661294464978998653337178821074246703216309284881937660827045058118327900387586338201546673534342313758547901792954222177122442807742542231680855846959164507457461057178433173982040960113353787246381932776057936003959136711411689685691516326205784322061011577378140890275102021423547495870838064034391024163572425287473364167186575081565071255443124876037666165758674142275721303185553906320639311049272606159800630285076258054444187613527911018613793893086258015726352096021175032901711141603417936263899067631309311935582173021663925624057978120444647853991736906480992564750755627513374537971652145943124501260696601696875371601120732833215424549675729631217171429658494688045657478025186721794257431947971205153533457518128604975740036504780120782842328053720925633147839955147819018971116907265478285547291031154695757849628124354954251347539825849649681648334010583891981270800729762391531862554157258771647035730751278255973343809833247988628343152450891743900315113406352616001945111233829892621798579363745413293771565566411372346599202360730694166032451056515763755022599842224081134926723344739939279856876822695615814566543644875893694448651064768979728249052591715850096686763069478850429150195758259995575092735837433431114972459061856610450197872916237778445055815349487939398926691528810713994240323899695243947982505570319545549447731781711606409161672452871284979548466871475489467188077563215649017225708394650723997635199976094285520353997317691771862748113841579328988418391482780101153156692857761911790134372260198673486416618855125695177800702722335892302292101699617741440022482534218468215897750400261109160220310597351372022606688254208439684791754384028013807063461561548529550155681186833204648556802264789110096685829782737340262919224277555888046758360709699733635057517344669523421828627020168072665619948546672539211257391169396304662251275600838972643791701486701002268574516393142015240014384944746107028611333600771084594819945743713174728586781263152885388842856940263966535917099030658792748998395794722496135450711145655580309166697643085929238847976719945738159176282157591318700975991688986556231168764296627947951988110426383602749086977085989442621379815055582089477389152138096798630183995046704566956499771856720754084258165816553420645422477734034149447229968925627323897750383508376056872181597641152029952354718346642024952767838274243944198620023185973620473360613708018406169264278171303912939011775310046903350368500096884074615042437803892106003813072500730349200774524192081766290146672527366679398644195527543126880177709254734924776862865650937235546084490138426370191381613070973512839954562229551298705076237760989053754205111966682574697538753446825251664478766357329644483079388540899559087275713595708288884549421194208739571931579168267165343467821507190831183326885679423080851389208252241601752600662152226737203309701107338671462958402062623097384099767261104325076112177278740870323275696136879284984940375441399766638707621795335926372928496424311692753029924362295747802736462922748061981330566816482514963807834857456893942067679282328268510096445999321803936505505700956963095554878936393437947917503791439980692226570259360588373139020925922453050185483240348319147151694361823616335025520406835790108253456229782378493112326884378778409445574321939850634952709900801258677550485314415974491788916835989336866910937672490570580762456085741467109839832095871622432384116759335136830581200975926638981681510714455742841181188879420536083358475608116507327998406684514557895106574751892974380935185615829721578392841292399617106120597983330512046821387682779532827675960605555215018309218832174038668660282830868549262220193501550431415620381876620914391293209950616487034955937356842558784636222090354079556933353605623763037305473347590941782949461171923987870829991128692522194874290478801441745858483625696126284244636222393098295861357606706765251776748467333250276102373384392025782744231382645346161249667350977751399012375507596684358251699372190192400952822545797010950560668562407594560093947421005120175276274098118662386133621193399412048996853710576336560021747821741000204958079176941263221292104638634771646668059211863430159427306031166974913203939601597493314284180242189996313566751493041391741190506637876271142048340094074211398217661321830403334532882406745676011241228892504917416165607156417128928158412048541367598838073891894805007841956753324644394707458148103893067044175060854963611241018026692523908380638915882073523386212149768632539885307378637482870652146449139554965838820222058997717953860951672760268647578371308425734569647429460685317594280352921211950654524700883201289098562120385721658321379200746878081284511375551122983409103668252127024820010011922145454408401809173143768773928319713416643110409048207145442281906129194341959194604084367612051369695871984451841673283693025408355436667123860278659397379093215485956017349028145600162323562946803406970803975217128491224812451069859738921628422537745710250877339308222666655920269169988759877634365961456690465298623244958513983037969725020926676425501041257777205475698254749791942929880523050429709894591403480579440785889868229436060656825426961241431019863908385326414816099635602967084545018963424032293379205997500927227301592008194501490116293576183493331652296769818546835796400911494824278769698160446353773237231341215523684361533115244125238691128381656795267557964594432936457805210859159965570019539108659114140442634863692198647383933677612194766987203493936670655082850453101456829527421921362478142585651759450445407125777922875386647889204869871177360428184847951411363717408962512051363726729301368630145838520617781222880189920840696791309059872701869485205946310958351443931108868755990626626255018322202291328494517658892505578652395760341584906769809931605779308227090959785096582320803952838657030192310483752883644618240144891199371528274204716263326233700809266263828495131660665238218054950150851028651070759238163423871045394945153309210285909370545504526979302342457202152657103387268708881358818416894880058115875536594769129259692636463361287969255141155810577285468955819280722475460991752464855553325620094049109646960611769295716160236650366743872713088557170665129580703347380291748865231936942325694063783409087496620290384007496679098623223440889068553171474027580088386927166278036129333542350760804006253298534993967548580449926962236852761292049605525330121518462983687988658417404014001407822516505142743519551942491501929109785311452601580932083168843716576832805584345055626628716646823836950459163909454426160081525502034687757860273072533223156283887607524281743898337789793249902352857465133346723141218974732011534870318217311767875008514368142219927057595199869790238092426732196926148510912212757376689581895017500421053993780448647901002276723328398906214896388130746275559251039738283916000569954487102443499558477789722897333881306327956683806438118039430001196578599075392536694859146136261175129447620029293803633898927143190312773362154231127986591494239641541441236661474477690766357633307330464320749895169879128214566847893711485409027886106359228077724919611566371773352104563282591855539527566893652817022327399972812147723436856777393971331274594245853313906733998112597564815530899101795759373264052101522996662734697918612953784062562178542167246930432287271965400571331296406091594433964017576312685828469726254160812675595735491064461946595670662731874241878617215532478559620731482580554329077981915146127064242455274023672804335335130617111642773823830000029167890880198671084271986269835970701713000347486238016044752256936509078524931121042285558573470096614180232529983864003251885598652172611528159105792136800431679363238170809097468829339626093642612169597346975257662281791859234846997176289151319327861507714484582698950350682066732744960639321715869646937685096850918927166620317418967428473026532348715507209486470825361270531535183840096052429585756234072386721323989441726259821152050464479190875505822199142418525435814712110758587093560613384424048911128125444485796968747869712578506718169038608517997289652567355349183987273795636519079451338190191675068538865508002938673288204193608253425607143189591656593995108221353325346327656014188354397715806421849947912969225621751559875589667024292079824184728165304649331835288777958710955831741431914138598175104231657461030769680090648281276646249708868230775177052638169679241144552359759633917959574087247849025151856037280018979138969965071598320592190233596656710112957553053516448608524685418631785546556738766174319330262860411004977397469978678555430200562466539107593937041769382536103475140279246040154405661106100326185904561984695442206638429360654889772915100057785303063355886477537628555936046571600442943025466633697738230391973747162959428779550515543622972608057797779265412248552026299953203970572480507612772207415935482916862365768136331346379836923505912073686029896485478123874955599882603380945696586207487197594306353360577619735926611102386568205628311511428721995234679527376547171573080192351300564587761198537718088763573084108724554345922682298067483813724828776419551756909090255774813512804865510798144327669791528620182945347675507642774064505656721415149467552466073503928824369255780924695235399286873805259424815895215537783571021526890962273475115252614390901088314143297908512488808613701951310534628604898135648585094125943100737782642496266707927208319550156333188878912992206903049837657605828326319825407694968653172831637120453869660412588963974412139937494975962901386985626438297788094554759126260798533474258143147931693535292768044924587288468820702305596449597088249359973226928080539433298223088587605808879181743600905700795495040943756217192668179401115505164703613190200594601339837049348778031007316462912511528499953232016230237507154645879862087668952368478144124717216717596341935286508398194208590771427576014351547508185185739933235731899357917251582198567057248056808184257023857247657081224641053001512021118371082370076563234903301883300623275459246049124201202416751033502639520597647982515377816311423260018562385893745827874856410968101043774309197500430704343960133394537838775695200001467828862082914003037844190630491093784624433690468985324181879736140400683142200293487488774109205301300961684657273997243154886312347699639501291903169708989804167753759033298742566851504484007708008408518230148161585723489762047622716348681724632403867001717040088031270403581118110576971686342575927646912803531293385941843713251366913031497263359449204965000207247564513975483873972669345318396138513800559217831528600196304446591076421892564381708704218331816600006478955617270952186146947360331497750153880007240870122158420028804717073131050158697384984732877829428597353911878686017917224207033357845214329052374002535926639376009468862398115000368197685569377530108693098697142539496883737894248006274686359410930731156850374397549403797357928640554237944939696704340540575547408741018864831922226347805374969303290775387617235430838868479613754230570421988003483298382922347803667277165162408105378479930584699292316913590318945233860814982128416808871886614665556740597045049289686051672745564228404477669426221295956234377501021771239322091427800134899755043531890499123736565325841553445251527146034044954090261546378268663188570511690576207447238136045915072277204058852331383957971757474965736501062915291410440248806956645098607028417322951317777298004498745090121573117912985670352204667705574306326586883393445558313837451058039646520539404901912116341707482642112848322367752053707744311336662591717851949490165799650381364270673775986320568984263938586202115105878351944809306258569027958846247750068601067239988589098151429672538291476637786364989312480110772247734603346080629862169483590034676274612387782671348987664021783651669879861126522107829277529095573420492537632096678933479679080065030807014443422133635714494939039366450997907845335174079961443834622346950245466942898985651729688245393564241730481673153005547507264964216482382203983173758503227679155711917924251377696327137009210262269092861732296083583736708226179194293756715541855196407325838102916149599151405104376512872439679646111899607417638891859154035682792665312988174159265802121656755096811247558671756659875953492212117975264078512523523873484947590685166933824643034501995704434048504569176898402554577817752157176337385312025612663269931664806917732030642410583948455787340340340658726181364718599948609674169232977905788626774882843129287512831031764320523023980914664490300854987785331176658753714886027426896683065305970168297990026375562102957882566149071277130133907535823532972515927787463443028837399816131863356471330358473267963396113539709370931291783567870603019537921253591503196815277840995800417671601855650317482241837158222976197231367049176552818703682751938902523710795647175132500488739991069919850603450083771743575980917522706008565811168743179649817061051774350181204068692008871669521812295518108995984147688354259888366801355379614861920221906314849690141325585118648259197612062071605130633055686299506273765317274192671608778029662870097611149413767466365967164725067109906899363490582617768615664207301208941063211495910495067944883773048554998508326979365420688594965346787792472049407325157830225062465015216829577024166834833651146951674937672712992037236823668063414257878088071809396942684036902191568043679381573816986530725541320993656845058756422613047427299740690557339518374574531828482312593236430388130269825010621084491649197254798926742538962846618649318412475257741918931852289879351383839427673124181708834618545788550368328208629867128974627902856656279414581705543017280080152901047030103380535068820516448815009174966977262522332991189966519556606341388591557275883590705182846727978930048739744184774346728863809157689191345142822412345341885544054811301658191550773979425555357346388002519595257867994064869311533367117576172653698356051920681147582004776520712416808114509905284772217301953544719225047636315805540684227239433624023566339456267555490935896316226109048236353005752986939727001849741638587668000500057059526558064464730227701525563897500152722135383543240612193424341226749672826253333950618465139024903416321015349325462846221546495432274643447079609801548948295283155250089670527105287560850752797157080737442876435821449610521191552617677427315161600124388991977404838350673808977887978649690006426627258230379124275009079299523146281533437747041029426509178564925712525532919814561158333464491606063144297210182864295751454386903941751720927700441980774792005364097280884362207927917685151355361132274309693262046156329914696300433293959695084829955356619586092968983302787517243633662230924953755712439765326483764601118653661577470787370893408600496024831075992924817166221404720612827913177613438165448220478882099141083251564553112690691776912718770993374157038429802568098055183297787407600997224970013281612393604772591735315386801683260386440020481373531171915255535255815160594800168078537260741088452106158050201370931464376694064872350846162060707052151371719997543485560561469602685593108705300162950288933481038101495845938820351211264119208999114013713251076307882308121564307047460796556935661440746785988706774292400561217518638525501257034828658715721263525435848873059170867702245059040847251765850562099053679663322278966471307213421814483809042853344112458994892119096172591722039001750323332796310815100831469908296068501630488044579227022724973827015816556430883618754384507176881477207017223174231599771128853573415311417971276050497983247731279299951559405742798073833483703707895906135094278512132609024441839848523477001265547403036920151931465247436588824990310870045454139445577841664360600982278058507773817343460345494075323892369419936447403870220505232294174875284761507562612565243700602037535569877134589116798101094477574124654045989227703797808651157685847832698823391401787125180637373182829866045449370350390410371611414908873998207261949621958164029214821878828441330604849673800906487468141211460511890895434539355553227052674852990093136621027141826234976121132871903680164162588710265097276345224315883584203469710961985327448791728337674566283775142373930053388934107267110038071309996056808318386053798503044374328854109242719483317154830447980465476643544403789396317856077377379118407651099791505803968452638901372596579484334098058543980914444397706214456677949045682167230920739880399912195822666642030458959630451988672814530657610279742114379781981231336565849649669126831530263191011044275360136737443321199740498107722007660347879352261363253471175886057197908463908980264516858217377766149550477789194503354246609360219069608550836478999419957480918593681318673820149151145516326976691295522824134404154241901493192389896412027618813188551181838888388194319415134001843405331362319197305125823849180677720441215688331511861455265871562146979198344813539672538362431627689108184348192810783613748125523495845993576831526485842670735939070720758655684073319974872594923142893376484026762821029427458116575744716336250269013748766726125327717425509024776013682351949647823631832442016345978461329805329365116875131957436934595801114041600306164783781425162077653494244189889158570242127157585749093281167136853710369622458624822663066326354288071980446115362128847919090552066030564232359973160647858249161914018277160596626299349361378266492019798566515578144839522611282715549073561474883661468309679772829228831383246704604343757335524507786459322946766934853863706571571116243795775588981263862699392534118348561368030628949618390629649307312907385428511765953957527682903686408842693336768626081022204664246080361502001646052010508143290589735234353501913184969097062867420327209412182157565073657167522612700374030617455926250075360495230736044992237981170947844065679635783529661277968355077342808451755573301864250261663914888801158581192501708555461782277050470144131375151020043784410515007410416060558639463397759512924181499477025066226412731798237678824559274192740126293239744258321009831092694099191931956444789868562431453942895101595717306883954178320066002990741204301330714253298512181283947072925458852958062943287336973836395236915092731653733159621943676218036275960710115318334449507085254571920591888673768596586382674352128758307839187116487564909296315886464918997684425620533823030005856232837672301196984726012650507916673347425574224684006010136401266780022261985624884367520245922562050031604813655101052043246372201797164112055513659978297630236983680578531416917369270383549423059943845579310764538452681248222389576629597891348953029247951792341961773820636426924174024070622123224912985114533311514367943348019996579342236577454842008403317417413397142534188582038418166954397753352774290937437274821137043381900657544050012452050644145908630424093270004605990543334042890461189939959504499878638746312701866679925656993424112856727813481169671371717964706723695592361233630201888588044381915426265512783931986885836363937233287817962681478304703043778721208986563225314874783607693922006129560166368612679103515170656834911707660952093023721210426370259628163879192897601187115503171979725850302986446072006314072754163724068207004725159923156012374913610368626184759127476409022977239417078514384106096978202894192411368028983447211431708353851571794364278884193108162309333856762022805569834141394244428814986113613337533130381638027912568060943765275675029749509416242312741148282332553202788273163247761466363803655920631050372052008854119332270524380373587162796430643023000212462914178196533927576395151999921379948200501126526475418656441080804570421458247717190602835284727358194366258838205003400485521600335841972463893874431981454004127833848529964494711532043733445072724105850741288176713426401613471608316372134744568411365883743812214210841684664716076524610365164324760615483380842778786288244725465256211722899560968129002949344045814774930578555065224113047554359532513829543087351326279046971216697419000522624834677951291978200208280758656562355840999417683153009438397893096194259981229264140566009334479505610542648207546637638240329444466714493200797302337507577365790563709232201027663960642333473645872362381706897901238207621851637118250240049676734057900371413364066104791185773017126691715042859815182092893034521381910931733038456352671900533783526526379265449012894193920434959151231852589550449859363708404092758396384368200325662949971403770376433954490987839131584541701466767468149915141039499981370052085757214710988712524206755840339628210708554791041503275522275280116796849445873204127244163997825302880546695894782713841436657786919027360100322729520384800100617259665866635083338767151077312089474212214974026896432732185776327258785121984256322514982449600902285153712205466580295961815192755764612582282061541091635461365232579794262799595807566428452360971891281107248396378081770252261141733695128078194698017696809884789399860988640472529978733320098437752885186188929324351055768070907706930510801374715056167693261040357056354688834121586977589516315243253652557479683481113226866860347135126362347591571254519131884096714728654114180267030885525280285232576533357347927576050204044777416582494738783598860092202841855887034548530095497007532770039876096353427671843389755611803605021728150351415344287972095428938185733559952287939943478513780360874959283098779149998405391914515119431469608846801502042559216535673556014321945900331917018824930734803300518217200546920066548135587702279949499645778312271824355094499165825611173341274393307407679489451867795382232007394402472490329477983167592820395919462494320245206516349819543884651220256716625739334995937452987055561948228420484428684291539945713133464910842943367036742985859728413933702105047390586931526764909209475586354857497868424899223341846029711731402789275180758699402377085981290812621872313417343027371928887303346832182888913802720359013115027639585954648419586670751518115599574019728745802458013805258994854477634053880288922355171941849043178069779587454258583531965755238283224975769783228297555564174880509845525033817914351692067793518104962578711113636256125850879612304170561617154890428819596846631562376899424318633995446789228213208570115906068420934947122238718099344329507293059922675301197566366104682873305490937084038015769030470662025642588543743216617179985240985085263825279073976053355344290719437961874123211608044397376928732132425831344106543777964896103941154225582884785079151843292136219669661556139626278116160550500295761803767356153200508063929625360827188042496425562471426084886321867681871528226398465173910759678741851516845234198953441555174662382592219280506022655410328154995266325675360532801937848013840500694795598000246328217095457387757166248000446653778346769433216443685803966279223980976517634976723583724092463041494563114398300922808306261875907621866129829608812075560667051486066203856938970508416798862897505745740020685670004341919892586983491944702932375329705886687846263895030740350023783845018325303413507647759334316563097462767013917756570670400820488296340074510079065951004607601849527131096655422438378247629231966286000025032937979557437168534584847740741852170835851979213375912816826064802460918690404382407158307416164871907498132425084755917845317782787632072044055011140842196926330747839840958700356784542440221449472638963773376075234768268146387715750716214804680831787373510338139925860329059455659421814632156232477599264104827433987487172356533642733259820508933912450362942900924920717461211028277755242417986868532617627297961667481245889546086256514768213304174123461496830019746016775842318185557904703393465012540949502628142834468745638782655921428361077015147752259206407397334748970070019291068667160937504740031861681032202553362637856824271906211236953667929765432187187557100706755912652005938444632640994371224540916774797253695668317398319205135417032420460137326761650080750221177289090543946570812724902850992020252533622836523618923307700898244040749461607448019743482759802502489181138994051352324935183479236518925337135428145365366357965187554907257773043548993008548624095289098454454807224909327885956088367915610221744541926836580957655064403772806409729595610334553352564223008528798020278725251739182524528123673436585819820741489910284730506021564849625705620784907603296595734801901688127061759529578790496206811955486941987900696201858652928843109621544618080107233136435570273205411122766222095788162494096138165550960655701570169061895096802358179590964336254438671253230228440640302693448698855199418148090238802158785571967921675334024051318485408862242512543223169199646537058278082539976856751745455664966935685755663461500788583121882644077467746802507858242425178487005115949821996994356858259596472680942572966183041218732390380630432052135654308548660235889985719561106412306120966548037700433831341572998865873821763960400041543527425012791388043646642518923359511553570287605502486920656320513757646574201268128892404108635324722478667468230434728003901618383308032602027483794432644627636451610062388529147716761689906865713122620173859994591047876812948064890037097259693910436131857055268261324597899347163260881823659765434255543977752607655629129545133454027338853518699281057570537234366842715969292674921817006492199071200852647052037290196893325812142391094839362991576560557242956285083195916909299825488868865614650084221395618295549134645780500994649055751267317938218969474403498446277957391105576046518027188326063934089745342866937039477182390243371673406662030203132342163064704386373429779861313961720384094619381946331843193957515032049242109679425399448894493063932590404226921652595830067688428522060920153260432900137020145194051499004670824939992647774727808822657974337891125762184415604335064862992036277118732926860555015274919301887783627294114116543639592835333115832894004029454779274277167524780071428294346225532197616809580391146288442275705739135257795506342371781782974334101559949713619161367857888309116118671687974466805552657127543854937763349855894749246323627801914501952574611692953360020935688807468257995711519425641553612429123410573737368387908762069655118703443314796644984429052263149780975374598311534399587511444484078827383708351654536939190472313886531905456050351912290996872092255487646261425255029469258986314246320930579512994571244477888422931882208328268098611692050265030210382746378622949989011082851443846137274163133662991959398341667839069492180897588420593466006865519452820638621945767016743372794826010770152252338561293484548209794617623121276431085526924675023128208451708433905291539951294143429928808256392847968689710571746788686960268736019230982067222470734904507705818728896836501077814781354599140694165022141294967823372410596797785993629241427857018987151035117570214463943856307139419991568844686520579339609754567588752093618275423472307619433728172518478082876164622202624262947377710097838594878129695153908469851195696884400004510592025994605780982494013298408885101389105784314539050876534854625258637937435843228561626409744543818002725828630967792117383230142571108190742282619739694182150983589925759798280858977355843977704239532466239128779866452383834203953291618579317646467127134751298715906173728470673846196140530556247032503582848849569216951511137064180020820266767253774648339900148885680636693214553742284315092469431852355067363146575662304697424372056943957455963806387746783400599900443132044476386856447451098845682039741183995708886586450485116747167958079275213404504284849376322402092138535772641346092659987774821111081335817641260433637169965010794055910390838557152230340581273735727829482801551644287596402371233902789018798708171540015656021490172171305150724910166295558952652331061904193713419117794484696098677082636766500203672805825794002568276997369937293577371672723441202838502861645333505161630071596349533402652271175368741709907884670143419681755762528647665699062630266480553845117742431474063947444192674596249797299183231792675204970798724323361742646783477333952188967865727181079340596025852128012421355192752361865135600217974040017465105272315729211682807654630623487659266697373804056502737963964417425701897839884361878946162861038244091795100477071375830503082712476923380387964992517642481716428473884836383437138141127642380978379138376079757451088180099640164026884190074000096070726851725810342939550048591957265347158449026397250179616843120787043472212537055704540899208655928821581304019560856934867672445127211446608623393618365439895340434216075646842334224929483764546440618953066946412016070934247521522871127289960667369292101233487093515872645567962369684700205327975777886091126644476906908205191187931457494012670573386260283073951124973833292630148134176855704071119267455770209546679432666803957320837429840609037206669840732830562160338016032181238726322204885028934767367218904961439787863883596737292917106902074755183481705448127485868073370025631071437391635866746710083008446769708610738966108211271039499203708002591276627706961301230560194872740536192062220439076640565517284455671412205659496195835056306788700197998314514973327709907508279425338057491266816097744984757701418568673828166745528379861422887450357453579910404810821789137686020029299736530384052438419025320460789530596343799445021346792392097889120980806047109225741971557626154581482790126584647057406312758334582579333882385645328675062134350094501349290748720543951766676760958032541193311073081795107502967278679006515342371744601665163527423550552395635177808991193648221507400204511724882168653450019819381470661585264661134638271789663148602452988594644990853128678596338097037395223846989368924819531901575541890489206127305989883562954816808912863145777520542779174323764430742005635131412558440707501200559442037518349263100678867764503218487595571400250326298524158381032720931735130760538460004252323012817013746479627739953791503029001285468830339916543139355616495716041194365345501204453177283415094195500696800200189185717134723522900080803620385853298273296531846324925682212985040397419356019133023932625002992182981930950721520311490581805233556856950614319178956132301598806213124189463983044325054347806637422118909795532030002254558586555681196992876454014011426259259109645588359322098602884953999705307991306411302193412101306119852744557439398261029362416889227171023087965844843476675997673535778255015310648015473075355819811233123279688967060440214989607505423166949620470217672306106500030322195134038904799660560793599894010059660002453010038065332770963830490302312047523242437293418121332726254251399965413985889491390737889142927063596643464105536968673520634807685893613442140754004229974492999000431389263178802183243543841305981913279105896033187284717262656065825945062753487790016097261585864685573231836787028991589198348055110044405312223597043557768031128066380692145252730673855007037830477560350677967182281947675937375610535197725788853878495529487205022396422950104215576518911326539066219724745635659927798736284894259678248781024318369656862346254109421654537125414511935263564396415307125226496585361894881892115500155669517729666614844048564662442436812199253272956229833399347282675499344947561791807748829886321693819848363329652276211848597436215871760557715756568640424731915123934669897056455572605310250578250712128727915046473618261166551032774543627004586483390391151956343494735487193725340249812534647386374959957543637397577921952334071185270389608702308953724653432820666320478624386403407014484285084582576108536197916228544033076487112984477528254089402809553462154293066788919764099368839417455559486452358738806004618521131087782943870296142724110649842519682869613654948676863857267952943200818920142677359015511593355783991879557509744583031488896848043788151720429347673972723917947627003691439009570604059833269525800717745022283059564097288219775233434792409752942752055785060706838926836408849226795256152734803381945591831011917609679866136820101357569009758785277356634155982006619749973213729008435081259726323266851291631175014619210184563379641059686913875591819520162629711934813472416660060222878547792406419606718655229779908949977335939278829768164145812794349453431570546183962005797213757906381735003992210428462216802584021929069254732354723621265844993259957823467298655851681313270459545283582318508830918281910083266464718660610558664536840706280987791144510916090257448792877828157697515352272417103620382815883600983163311661228500303144173961698167132157469376872591410946334881394638886950514267010701698642404725158397847422459085676747008570917359344898055142232285483644384333044186391494694387381858370829306911919289850617203286677253573216674665556484818856649705825133115457905731695113092819031236402676306074920777356812425436852297331353418138485712036671617093988015437862843908012772420169649873626641791550094900922076591524621013390838472521087601192441973071162384140104898271775441752157026834420857746539034796225300671087066489753009129717353339060692185156033656344328711010999645026348780573264642927775205886406823082271338168622966554731143531611380004264281982541177007617517378426042888396324234404088471929743032194524397640099641050367808247870348412467079310448704808090246495528366887738705799131305508232393233782098583025198769543775490413240420834437917331357368147232727791766906176138899496922958997661868568808144251256726043792583530955551181702151205953197619288392737048472674306286080424297448768050446567344687631724412521194645156144161767030185407631927790175085097652481438705196700823772542942803444911405735390190806090676171589232681965630740221748202072984634359703365267210847738438112851915498485717746942565951286226997483605850281051040908142400665327939858172899977337169491390727095092951507698141055014971538456459733533523269523314715157123038640551073616643870369491718448144749212947164525210771671112810725293180686301117042479704147741319267597534822091640004468536072270238601437558318378757516317151050706119599672490719465423972187720408285723610270545412394553658183910245306688372544695884459397809745544902890263896325293636031970037813858590638394932642002353665139215171200164959539084820305086960318791576900579437647172407701875750662852890070582834937742612069142100739574278499923434616080517713011116535912435010576424794041618081861927517243070936512533923555034821791078257799876626582561664365647223079393541935599580594711821090475150724524089481923757325716387710657815637282152609050030847857598079465020958677413411317243688314092238798003061932043303327255600704537437060681087279172236792348310420389943693877725211337097458077528864323778587825382459244114405638248643828212257085645264802254280167773109068628852728815010225733649141191171519982499021512271723796784373817507156067293493078016285575596439084878543094844267651454230173032286195495897054075105841638201935763181200696476466025766857646502022546449607070023450365752057426022889684527816849867465213871121293654868840042964920906518482793483049506223756895519372053501292352390689049607087639859182715853753705894095954282748509165313866395577515023899823314584805096589526680696878022446937733003174500037469799338695175660322200923321757438221001965977408925893861127497540458670491557183256664878775518067873937646203171249040170086722269623085638858338764928777806833032758697863939745388780249055402225073032560466835298138316008601813111946329369053969103808450209398054269523906537679608735426970215150455119237679246193985335865110604544717436960674114503952945239516053994326759866372350293282719446968554191787276882427512380720131013757719375830915754712662084875375462913631474468102081246508722605034357485514863936513695606926291235105662846690957481473204248253219540714280877635321320875717010134007625266884723528491642470835685922039757613024924179729717641706666660802682803165601228616112889537895839210185198659726922292012603347060345256312848523375428281621341317406948282469127489735102709208110593198431471816067791237523966521128512262920607388434703833650109431541032826374953546001989930258333434104292696709071571680068449147790793871255525770218462091427026088952731401195551587548687512377225270572694828465793006064551583646022065627256883505911269381452825978274789416779887444385903398475645722741822763828591971096583436698000604781940542654228112238491561125513277366507801848771178869049533902116381535795597636927738350367255297789045529739978982084712301372815400320546067010549021916631495931418885013349756474537612091079957257250799330178169882055562251248602936791329832192786316030904060194347242826257491198466165269361419438401547317508181551560462769541884924001522660862861974932683381140228683740355837121524678861930490438647299296491426588207000428873021604292211470537904252564540335862782144952462279956797294099733836471781651011914319321297223328130178672337142342282785106097753211583781342716360661590746005743141552796448717093696571619956069164618760964283803386381955400471147787953282863232120424871172040603246019204175134218216208149820086166825654267534924467079089989402113325439746811239757207496915472405688234755087324019168903281592076658478677655758985675606742430604679971090383115166849796212724797794331554244564674993815298816096038889778385646565464970075767290407047412685297309952122419865362431372821136506513131338508073616532186140494060409581707526981404578433418624924654837802070785884172265858704536604374792942744215182367592829248370394479063955632514118916030646294673865381487607289872461467703310205384125509065380430214179496714101759074017761082102762437202394490970386795359310311763712736768830558290242337456468781890864390113572897415571980295677889382969953749055223983375918813076469300599615911945898106026538453945980705405913248927235770893310204503080802756427344189107361453758239101591426411044483348353328466501578226711500913626535571025557198755860056924063206591521558005509637895960372325554934667689420224384270891597278024219398341888797826496248342679244544843941302126968510834678170478946102195382541502441551310487751295227523436054973705825504926045598413676377267182801075609526894720328264195190725379050068047998100037494442563790068293704196200274529913216718473636066824127290814565240851865833262671256437712668801520135393131192304753741512468124496118901209147501329048761962419174980566698915692925316729793214526945099710184918373666117130044792613193633088041041309231798877318382690918695457156850719453809594731489001345452339628529913369768949068186279638134805988975087748762240227189324596192350262175858248896874182865212399808205133350969357087492343650150498333481938023478494999455698839161866812569624846878007358006195849988940442989144325951238369308222526486801094643263529111120590982455699138410734126937540036098729904523486815203919602357636035791108568794302253993496830247495475986202521026623187494971316005205301468601608080520010651712552579355306979066716277242886145544941505691655206975936456236045592685079833712171915530870403804927596411589613464778592495777328553608534872954962474128557013072930150422473323881783528462721630809207007987060486621528234680832230568816105844923286604687189208213581117953288459902706743503230559957661910482796831886780626620101718761756732106675430730078619955883431978864131343527436352914720944862518266698530349298708797734762854184396837978625795340669348927114247288752600614533362116826958451254976977512435416349443539851146119465117575052305946221273542443899554105501744782898857209503025877128591486098425352435333898019191176415117532039745248128479608861589561403761286406993157525403990423082451489869013843243512333537042284009350906411006419336768155094664357154377488163488029461773773375806394391585729758041680831616847249721600041324066671025149456317158537330556483372774887857108355256277989319253166061044598302033098098614880512695380561190013907411740228467004609525733085982330656229148816505363086944216126377386338486072239766203188666517625009090263384709164047154817539922290010849740731505490880494592757566610094806198965976615052602999757705439613087878954280170985186343339070969209104666474887262155131725589082288879831175878557414500726678889148727249395877256065193185848814473427471832103770731679367112412616594461102187499456655192391526140965691233427953353246826311659842584570691463127975169664854940040460183550227656069059848933652183783803760403884422710171857131436117288231360147002568461712560911218599188362672694740382265525186513509062535550847084990668859523515259090897084048712777447910652216902946605058277543882465198792413786260089229867785726895907299899258521107972170272520464702892837270156630737332124810864932771311384945980363833970191059982522420383289958268946420428876808176674190791592446915845817271361847699091118433769843451015969363411503406829500364123921693784307026671520915192445687147804971397870445903280717108147925031959487278388088655642267502498232274922626550999179799107298742372446119153853885199684077000328832968672787274370420759221805172276861894824717362503640532482872531551969625006234823906397455448220795351095258346284298082349582527569935764627454377368694712037881409951362483468819074341053569508708902503670204502977030468359128035888536475891298316969991973093819778138252885732898554270404502979932977094026444855194804446236547265014980893108857180741162740297261289438133043496534700627469032020055058719621415603484400221568503297562272623770724083115380278930234415916804436042981489263513431387884118923150879008197089223731188766839160860701981683557090099804971150332539447476993518876784730211608568031647105674357570765610272839394006662889364874541435545623799597692508490926072154595168512733391579498404487537872616232468729055238226827895884979480770391719482604227936483438508210678520499133178489415844084632870937557384215943688409292762541278196037338441622002116336335508577082045141579676730169920641060056202487554472621675695203024216009970359541925767305558323027318766273016777268150796524862829507910336046568127205590407568499986393147847365474701901341047454422652559150008397721473220903060241411965721508385374165427035735791634869003779691503660645203198929431391981394832955225381063897129104335980438887822546195494004912249350531105336499031056318161907977664008458977723409533650556996330103042557212216659946574530364451965961916297012231843662491343258887796333489672298407042639564208781416048081849958146560838754044764688079175181532856159605634283663098390094088676084334650328638086607640482518425363823070560794988189603425358032383208306816862807783385690988060540758290617118411518043964189081505852187094535323492742083726314265671895682062949228744759700771807779164749655313411292625562868953504481151768845095240211669177668828432827588280117396947281904109804599223823459881313752260183650719424782174647552460369102932799748909045420473946978212385847456741221587965198654129737917513315520347012475903757321851205909548878987140823982129981954583024762268391905081150222247608483310631999284874569132456204415909663097996770613532750288908049323194867562501010022612963145169721175777391671288998444214466418297316259781278713358752013966269208287279920474134567645827326712880350685228617031317704202235733999822116079745046959336333169673577420780752758237739943698198166653989618833534769368498701860974134672443342668546803944770467254033250208027944170712512501636261144943875082370139540312176545884085035056809518472159237347173952220841210125278343349321894975078126745491834682710761184115724777980037072311706370916485263833640639812180107153107179453516603482491742197042598570071693006087193717227397387239689820055538897133818192716600750757929334332232565758607231322637860618818853854481669260026027494688947348270583252626927083100657970410225768092762538367176060111950074872099062583609958445229400535955809858021694481384723060829895248942122995228814035938171941403062080847718038553479330776355377444506962992346018036160057403268268124153115714147257089357241252990429683577627145697138302473620481609985280349949700290278993326257034665918974598102260924530599417352548311267525688419096845609554155373085328440037541597371851582033307122594215284977704242280858396477103157502387887381653111032850899180086393840898864687327315095179955279015398814935740192523587331404450346734413650752714281600639140464434536409080435103452148605243325244942243757290462886843668890629240950592830089288889467077502018198748570709202797647624047581193956645499163595199757971114676004733739734655636655195234475989702655389667954505401095817123682236372435898124558313791387131642314396952767316495473545951272105914134210841599068683011879197157938090311680154374336364918770521797873269330583789603006403602144329822129329373509794416623966784781776438069534990691905489444205258872266022664436732975168829361778362618789672572628298789219402370837012399802856007141822534507126044082804258608914117873897667138718944871747344600267463344263354304648734465013585235871623964643454812605792952140048505404771689962828411911024830834906387167058715362948031078051461413807861840686179871733866243161040970594968874640825284681078834507251541103780790402070537733733805774246403651312697139120274820254345308209855587114530344263782350429959411078812217314615960415380842087101953020764307273238745431026959446364266859644894039883860042665596897678513929045448409912902459525597024735687298845858534333863091900944739433003611672333986814462089046027907894560880640216273999228398265545336934940177004523242445625440491407403540847930885731734693180498864796061443687655869098345836224585051907279934546760536760073162980926582180292220521213961870490603489918528293233651782485276213779922932418566312052015527435262065919100734089072786245029406413684002609020861140810481047327318751572703042656780658558365944639121647644340108558719235504307820377821275780673765320157478032267253099384471349705409122488432479912576823076755030474310635595526491712313217340041757728301291320778467319933297097345917803380773001953638563727712549973052645789972903092601925027033771238821962084833207403941269030140985063439995973634334508468156570900465880546979090468302678208019770770792145135406242771997594594991103816283377084803008408185517040539863486889964451847834242424007325076070854654279166810789240014118935564110801107126708652601038862233216558584145130560715602509044930108156817223128510681511946814736597151076297901121256069001413585128874194094009056368158974704835975051847165739368701054520261193377628639578413995796515091106568936522117812945730091314746068696704406571471136651523738136164117714380473956939343021507469061128453727588652010787934181736790510769305799749866470959755770152789059171241183735861842067522989524142497975572977315973605983117100464406425799366499675683626709048906261705042125390282671353361197417943788203132247037500144034087185685259497180915330356770870603232315960841418361760439472323762785880083283491377950229925382759924400596569903426410345829366503870422244149945693012974025790305809118792244830476421002040214027134466489792950219369512913819489529637786392529324079074864760933669542958924516164735535364347030075786070105288412753106117838421993134472093029540933223261889508911687578076216163259830581607025354518990528387067544669509968384931141252723679332777117656224061302174195077468346874719064420769324251781150181052940476948035336453345352529981949418630231000232809040263202521864194463241421066539819881976772674606289301282354337527677001445704263110641890789514800550405913944235894557896384174247594455320727724802870221233803015882992352505527727467794085524795625409620022018392420442017391621002060483156323011491919615855142549529529484818822874734718947672465146705901151649694406083517582166270029143376614310026723872453423435338906829225568125764099531717184328940648987636003910676203642016382464264528455267503886745066297009437191069645923238273037837609667013787223428765886869370689981212420570088649973680025654154939795387057451785953271014547641231868938680770137078615316122861113663612546179624053295951438386737484033502969748756068208688261164261773459072181654072489720525366317659881604671240459680113008766556766752272315059170409981019219468924671585079711016364017582464020272643460645462408004766084035386817526031089011182165686988210103013006099231524066725301349477226253661194797734693992641865953892278842522382104176632574644805550531255430951383866848516707401147375880032307312585276440900808737609268931348098971022204389511445725492768455386860228076380048895073877711942279975702502582865488766327066643439619265080062320113114822220913213752624083624077034917652512364515997037903122626826721989425491985183054266465377318878362891205707928244099906388189758874197952433747533407105984850224110804102642658396452008190168788579971700597584055026692741571707349399433335072939331045832150834535438117448266402462739354165334399958537475927209125610537912940287019436272255008017112680161464472752007837308280772540375860516985939887083091810522866523430606246346313350212978420868634444280099062524386467998765173381626317597528753436845142612674243326762396534216615938524414834804902553628090820947801582453346392285357322119412301907712099247005105763023495721842683771246605184406623676160010803271164785406103347906134013961308115267103923457998796858766409731099122611081631205647998545413407115037058688398932738817028024988846581039355874211624902150412870068554213962083492114134185936613655339540693623873393077123079295127931466062134112954932195946139056051158712057238405194435675090231327474413622823027770476886042062785195026127777890968633222399467770105083632296297035184751639443899017678655794533908293014705224236029134273657883046759704085940175478583033326442268957032802261702921926746480156671055341835307145115048655315340726334335352851044768787381194721663376082004034479829830337916112138271925973808989677750822884939872115276399132598886002082214008194570884161877379745265591041987565446617738858057088523998125349089175868564192095283175140047948940300251773729695697725892197990741656584760629436435643233356003446587595605399813372478097356535842198548734019526032179916177771246948063506295198941790612601138806063846850791579317938109858315195133678796968388576057600698855755729310060867893847350632534612260937114437168239088704453232683409250343599463660749558194791155988783272119188082248703895143323082613669686073840081132159637157792495917338354688930693287941782151525040983733185518350266150030052676111244814714378125703407710091610776232303511837252671306425507057718593969633119229201161655401526713106820339235311281955175250021765441510585591254246389599224845570875515227413179876490032058987781596335140820256374540960946791354625897002086063448375287083787957414898063747161373710039411191241504159679153273991742224044894317135484109216343790032959024963147179477194423120873059873745558557447146678535896678990030505707558212415168128814112578886361390357559619745196972835780059564114628931657814279993728382462668123011696823571454437958275067386082956173612902700868945929770496349177617542987995374001865885519717421347472933625691561168337845262095442861296283279940913791858199281154610316492866561186761436324350761932408960792714506106258089383067027381051716926964113080612246484013467282964493024332718093760111466548249138775695670927383932645197576814787047428479071491274971484524458129411000372946381566766583013151566294448498286962610114917020221762476774318867790097891899707977241296818091998594196696891938746818860006802921439232674047752673728301879489524030083340516518870386814398181353812400906762307345104838938172195810330403030198814841535190086285023729145110874421119274623312818103530257508687352662694401718438789030919445127897251789236179202075774352536901608985626763866926367582301649118361526370936050141780791734453377047322452593276031337079757848143289763439359528529772103692120903035338020229910021847393003645352809310866013502193729385501533069271689925694971119835150302390532732095544403198967044698615826408098013265008684467397423844779128606935403528913559270190645341350946259303180548565730589490920672194522890526050364453326489780025967797020246469571023405661991751158846832860456249921147166308938570998405048647766043970417257413337054493026846544947231646862844241830203446587011487988717612319262435595374318841321171763416951273826719097807920189209754795321267514153691675627258048406685138250879536446151896269813436330129552794916989895684419100019739342721738514642795790949949713447449245679505727804801172545600869478180407608909177371127127101231862052797303716470209827389730189482793698199570927224758573184430783858983096649515170221730025277624086542384826177001736236162231652421434942075413950327348358696392066804411183530930101886927182931373989158457192376651151860967538169735396211125573859662636473452213910191610341814066997716615069770459467046696949316094454161201722456277483373374389463785082692170895847885413133635481512044615544548472504026875310630175742375627085994528846658687569998704573882840752217294450991455304745460241054486014710639907640901996198380625760646533698884301275711560604372086491271923155804785808836561748013485993500819740530687527458710643750500330071488054508166279111944346852885720546833734086392393310614472644303258459950694237936528982644506151804852843230270595598441127084388173511423176767023381582844207170561619519625213332541937254683240039355984211648498538492382331186569273203060368393394484865929263315574618165298587895978377348387998527271501796496425513343347021270583473802311295368081886361328710341346116991476986137398790209642648773158946661939328151666609475798558930419204463008120593301220789878022488912344967083250649874237815145796718561995710065403587091315720672118456741419065024449138198798949940239384319368302001943103689742406310659535977468984111944874078262812942783091345334383179957971445993411852751111459881383722596167205486263504241081217623997441334093799481795480522434532375428514119823464884528777135851786926425987052667814939298135540570918401157927469006607741949390617524579685910432247897623428976221161210883461025789051208654298267236277394253009245109976119627935253242734506619307846950015897726575601639192752592166877672302917484928920807822388110742319024181212769349141516253642360066398080964764095313675695693836098429207682480109093473580688468364203458891180655200281545559580705144803570127955144892858710107254467313328716909477016323200596761167612424103452530184577510525260244430459737797924455186214475765936544722877756294538155135765982971454035411903157414960034833041812008127184522246270559011070202629200233724992711958937290720183412311762913796647289216279249890421450976652451148175793191638949372815546911295176316262337908945546898682974489401979985725782702709671542126384821710414573621767452782056502765272989482785120434466925895420514243235588363127890215744409833926450579427921182566349295037287576507128082532575016740734928576290635179929166616924850855378192463484223062125616054200564542059119909921506751955466181594115958795542622783122971699618099629500354324673887031444292063093808562656062939950266687465341816295603519439113411909080818996454289761939237718516822052114098764466493030184914186604940223256867747365232510518065530486820522482241979324811148884499712156249640072447012005131695737115882091907939557593010722426067136042830292632981480704394722401850685102420266243759430456549020295286575350420324905189913870806991317905849357918794560152923482160596151814787386266346935539590650379487240176923597172752357915162708985592295866499180018816578660542137628744104978983712787496297726121646564482325937260402982811828112507181871012020428838560388726096836329335923254127358890322914249393976848749068316397742778731650856384744254241827467442388268057127901365609114378892727170063739270690195903317221736570532481910868051409461016071196935448155577563121548047269076793459304240526431039169225406865820461263672503245497776883130616107441401740205950911204644682424902070929910854641210214036091239980406907078362541245292839720475181958861914909529054008378632844025706264120626495282550884614428665598679952538200173750757531712156134384527345608989092968529660358600130718656930602851706463677951716631952582970672193474917751354040547575941554248050559129807599310864191047351584642827487850902367435781998380450875919498686006057912830293153288978569599485823013336843072739820034746132613078874330938771938907652306957791280933121472338410817205760152590537389673014983049280489216409192913929041513649969248302205895046537498481298729633978219645158051681644364265395741723781904757894315754432093759587212394900337455672368766660204860861352966289714778400222145661901151194824076466330306538269773459287158773795178319031513791390764653855836425614867709721708294004220508768836568984557166312516443157512626663331184322374859453381167393920105270274623044976057697258642336971235237146780046813626611937254551942042517500915663859665098349456734422438897072275887100907112177528541339536808144914889948946949294119024487433846900569963942119976732271004702918661615560084249700249773043178308326649108485801089183934578940051597555238456548121893783492294569164810417135107758019217507494847250885388526110469133925961889577761930656762785892454381734221173448378246865661385019154190379287741824950378135592487257918025695402696040789314916367240823269640243223834844345470050439083295068364832448505120253582941455532374707070303659300462381786083721567773566038844971819384745304687405716755197223495857903409319484026366396399297813554287231467871573838658213415132712083529025930822535810540028037368478600474051689291666503750693089121683937353695142602487918208288789696357621116870124712905930288047125677617954637387190239777212353466895346405978394990817286145172193490309298291004526251406494016351068392992320784507057095005629988793102310786885725372173727074702456975940574029591689358981556377280270841173544493811409749315863263824962330036281306721753391000228159821284872959414176994256775163241743633747238611048268673926258712085037229138153378667921006926334144662015717366109896381807519723684519780617484330965867332226818050032089909799811469497806898364207780630775022992438845864732650670469827818223351418419142974007979288367931256977363645828562521259924918681559656695556111592814698650427000246324002579518007950631904495950900846184834777304552800175043489985056737248533432782639105530363528260166170485744498399006997622625072512094361007834267885418186750367339233329966333512455386936708622871508074612866237650259908186755392357475172550731058667424999339410061261398034030753061556571757657392011872520100552440467769753554732173593781602074368197014416071874541889337900967173667202738555521888278434747565408896939476377749172119496213530813345556045839628890184424948482954962162701562337030203600693183886030247826316339859491098201852495309518647529275098116999559999296679198660523442175943924308719879830846548880981308422209220554293622148145391534472127713303184713190228654067353734493899888767280372286924070220106457871380772847764501489644468552516250466543365781066036380694578823375168274905772751494896560817265680056418676953169057680887927331566381984738717393112232190139609313265723432878381340525567549066085186513677247536067656817929370208775721563978455395856916026911610546365760295072335321125182584122012658423786430170888080939437343152791124757369672921861577483668573569887556337874827749423778150199390873060301979067761156723737180630460393991053988314835588430806576086856825877655924370594809467309282649539713133167784378184155299250347645740794386069459215491896257889938237934576603994008119041403848994596627995714911201755027027950407912032536779078761720880950136260523451188918597199496863438507410268334159203935870649237325106133576760848199662676539295955556151977740243976249509859924854353022637736913859167020196702910083358253949403466615059415689038927450162900246251135798426229073904993139266922782212213585871312525408080067991075514509830691646677443688069596371299211407502176165426730997555515285351550687412439795977961783254718654070872563704721302091748729120459330138596473476263718963781592933885893927851583780892713950389401360142290793198179635739414881360002493282229620858920742229060771131324042748963785880068878794356253645859967579099697474090542894432653737500780825691681809113074939594216657990166979224527072319953881547991280236596031420116141552760213407672162638269185357957995370228581963625100283515539808517803728787383121023875183926764772497378269729719162783046165287086644769261574495564415223260002708072787772533516009298202535208968506768747443184119736613564860658035012456327005297887851450445062652994804574490206341774715976150342481529588550195772349332785095023955105454633837834662497239948817692268949581534499038639709508561876379268697880166887910770251522733423085598378749581055714676095360846980268910203673204614132550571486499946295267350746965967575659636295821960184270509840404363272768420367168667130360448325838529923880946862901110708332450840462763978306046743704453144578815500954961935359922574401600128923697669420620677702922628585674824721879577890521704788171137086804509732912719530990522771081214676597796134123688217819964656874248589524687473919121200929630825905926038889403734795697388073251379366573899318148023562657115842826588192971564988311552601467909869866795597611371452867068741785614043865436953475526022509707763128332512311373846868487430648447783520012783282001856040255464261900187428059044195027276335059388768355127650026395020280957445223537366195925938293994887156778789868673175742632653229435253865022785954005800653217478955948615662872186187629495601716914025113927633523639327715357738557853798615142549619544386209425721196496262533340281249693876033868097781928243717988663659315527222198513126530187709904765191739500398446735301515473598922035195991204715802088702651294443189174365466834209488454040014399795116598800551250364724020204324831612546381773077744924803516328220736352659053459650932080432712834752885141994695201296788167319781069729777933589079021074909067977155187675302682771136305914549013744753454058644791210837236470077090186086476985835158138208802710261675343061835565300700234060725339391064236148286775819076900844449391711734348006829031194485309239248732858410834294511477634342096524943453979264187342031859637061536001914506052065008045422072261634109753650708217754109265531581467849475923374467654578771335832203409860421915672891852969857692606335613116751337938143203224971458232074950628894264158786118513868951338808777500150683949710336110269971386306449772823077826952701806391718354732413107912541841427172658252696218137579126945395084209496557967210738989122566986711416392372655648460743876964450904632409876001748860494565709960427114764885073127540044648693885510236114097474474730944865658425316167267375794972290697135781551766094439275598491306246225731436319687621410656801294440575315096628271893890899060432838339009904613082539510469337979716537809739865755401947977242045898793817882477592059106740544437248467327483864466617004423981128742837006718468830655381570252977250392426067284936759241950317315748212480193109177322296700895424826646164513986455536638370049871735791544163468016861243903202615597508770327357517906790643840495730018420113162394329098097373857564927253663319250313753764249206163203200776087868143302046915054860313415470819590192209756696385170562049422027345497779106227965718680002280837618332505546613637615701971252564952885237594709658203192354237090761117169299692491064114765501237516870951652283812597487795187332207138051890902282194991603177421521525918321052439356325533623818799358337434652653362207795500224898117276544459138773180038346443595254640692701394671708315441179528786587752968289083430050976097626479826527128109941516676838091689379463784631141053412155731357326689767926121598961643100218532854619876751412306935285452793241097401636588674068015047648117657383331753539755085183007625913936293614562235234818068684805816274833387837816202535467582867646034414487685501607172957546338495695655762267143028588454723355645997952722305450109406868825237495555011900865625848109643127881492630095692371108656516958903162264492175388271784830204182209831147593040711336177473370560269895932977669360061854781862398240576446283116023007578429739507894498559889420688790385090515692747883856549097776205962824068869217857279007587149533668159853095604289332649563398116670356829226207917139954207243252362634517569091608815431607119438922447092503275932952252971057756367920848760939877927521773169134262160139983873280488880008252187698802309434460976839849512428873724079751673307123542443600789985464851039094273511048575562220301224755058759168840397006854136479135132859555669148618004014659699640774998098063005027507836505728703164264854588116440027543033961194638104545571863637712240937084401456187047837324335733226123863294953269376224706444651896138196630224966722539379747300485956092917694667413237376000992010491272877030614445578251188383349881680241873102740011539741511722179589801129396333492207796857314271318205751167168022352376378730630277929862611973350159099474338415757833897252131341948353939398508954560917117154246617303392210396687714401720205781749455346696672867610847946218338500950578883828193784135035877532157724762589013391077114369793203801675549908773037165788905230696080072263196568851742312413492048718800126966747294153184337056456771669830367032175567039803370855973116018592515359217721573476456676387530216854993067706791453870926986066053748059589104603557674996977829840925726497140666080245959749348074209638907656365925154615090434042115149537272465558355396172014824764651913878642665004863175376634278271225464239703864453664507938843472104359234760228006195805880424411360951759134058571633859030435662564102345780973520353847150711487819786435498796962401478678179223185671135487031592712623465322908847404336938247815432471928851027768219851448762192414697542698672694868795835589693309168073546696348618086221968347378489336756829905553463123923684438735804212497716764416258687031529857103309513600062830305397877984649254095909133517164908684543999308624108480677108237530474997792320570774915380014451978687102380040528775610159881486912642325689645661489455692910488177977644868732070627839782659293652549812535130276854907051135613152239827221916263021427264755750885273867671902713739669460498623330956198504980200185616394610943089541706525521482097895265380322068199588220326912599910249158937133619915842939272712447153305870735276605316623678512735798547978403544069398474653092226277835570454331210726992259491019075931344573088372002191965292375083923550550569956372668698067899521106325719989990004329432899946351386666981973259091443340192248514396381049982148469607539546760991495570731660140611043861992190180986023916759537373683196672429939276536190903941868051409624701727419397469125949122070076352283429559683184858418300661371912654719743002724202981077171305284774078888781518274906595492126409882767915461841248884813514021689379557715257668511365215254494117928778138847293389453115629807262489369579818019360206718846974649444089582821576031413653962055707263591253861011854997605464820132337730315645159871542961997249788171888886602163436218618560057212301721832618899891626897119494766654725552568031456997714079149493295772821906000559141051171605013868433591213202850156249408036519172451715500070742223062876569981532698001117644772757164729824752005386072495782053017000164887872263436217233253156772462742868694333589175508137444767274059756061478232108339456006982236018107915887078787949721675801418763553867083500481101303557612240415238992399390006251233118958799760230268688310500953068800101599864832131509379724395357115923754122381470409275908692054280711209838247143936599802334142344696932550345976747807535509538871596312590277111561834307035059067053568836894410652170205858657160643620513698027309680268523259751707960015528694601968531351548179816729732490670209068520135317821486368828445401843183524235917945391034889431473373059783641355716780388849025158843151951178611350586767153888382191342247093337841080489966253102286381558052491358931786060875913467043206135421475986510339837384949113730152578205292862037484678019654045099454735029746533823762906868558823033556374271200223690102442532214610393835074398826114823429274779685660155405273063545908366898361197077362893920715968541209734818987819543240314886074555507292964963348896835555085531373564266082272557810462575961477814322289145761481050862346727241928208436992597427899033215609215839011647252101485069061274150149271627855045244983567152859073507371291835306703083766329210616190560604995992640746383804359241035726316100707075052185316191747812768225246127517309682752468356198097604396674674607303621102679152862285401848219238623883172551578318356659363715079327263165167383276828920616144933604759451869850602686519953167155638695189096819015907615006799552992776767145822288084681388586953216629381474059351414325572762480088981185213655582571656588510007893691870659948138012438254786312924146054369661362322962399196269770309296237342480817016575668706343287017394348243162550872959794217825184639137704832897999076982546994013770290200794366802389166168316220862310963946463240601642939604700082820511961096132462466966236163246044892601640887384665377597013532310674909206840581542033244787476308514281681561127481523024115811535192273599509421838840063631624223910839009124244579969529745649856089513152826366989656611176854388982371869748713086489275431634087211266288458635282475322477191463621073853051120484790735272216383769238935456301456907438453925960489698696932949811636859193475238988559118773284625691777862476027396455628171107242014423570154117887837817399544001691596272754919478918014261315063476006339424169173081783432812775908042959788338836851864499754930881417582526904538969688482679672997510603006031883527350737504055526765234306741649107309722588097486772599382218542297839667228302839715808264758295312788271296207952945085480431600221045188053161343213184347056895311231713132099604323553140406107776910462639156771229938524968603626719439955867638285854278725253557024350133004988372925702103541252569095977229859850088499518058008647564442954530174186190293140472202039915921138363728395748556140806062124711498330074443397693003996054763138094786876799800289948491786016604240297619846968167023696901271695001301497259637803245099433344717007384420089798668232340431869288427342256630944787679550332934036472560899169782505698842793195585173354896791861066527700193392774439072568905791449257681093305844982082301748234396172407892349312994812469900216124605587261049983498322194390754039500416911478539546605052640985815036027638888137381367762591089146770487517923145140438050295901678826768926205399010445756805954146963027825881637666928387776236111965704643318566109977713663304983591289303716040106027206570469204102240931526043693052541732204195345769283028812524634661603198204309380069136927544623311607385750480521095610770863678495532092381801988666954163527741767294191840532696638681977073742206731495255535043698372558557355641456088258076361931153221127577999253594925477710722625395571423552467449218181957067994225351575315235524449883267279395064198432318500057019470955133150291992668756197409001869462010452063217001537253546978813288387735120313614148451410891945814143987146120053534155418174829613829960729891857232209833914767742130860680987927833587835987609617080112591600842007581572105331395688204774472282615555166854003851497172666806569626725077994326978266811114459222551349382607479323688055506110731565572897459472114321050774165172444987213623761337532311380032862059954898529255370882934334156815472485098967990176606975647997637287860355624072183818806285266912662742594552628828128799935097144980935227567920659639425518799735259018860233384616624136503908736854635789670309421620147429667925935026788549436002042674339142468288145631321983525714533173716574296342829286574853498891490479353725332854888286616560059800555864523454775277789272623588773005090928416679791305950329004979964907543165407731656251881676117961609409294759172838398300710677346042209108625622555089718484086876189447761198154377559258222304395686898274506514435257263272844953434578128665107247190759059325942257345614715905720150698360234655805114261028735234530772937555314383342480406720047751986989497909284689818582997781140916501065076204621185711994407120879717982974066373711268204425437037677499308753722871818257349865844396614136349790053576996933521243991043006817243499919186675946555020289925762019350310097127693569665477468020663003705530135480725610859710227803425921254491726113908438365707218685818146115269098292660848203369526370961551268654316823720056333691757625072229167757745772918197408121535745562929175134958549560019096335600629785037180658823156962851970796039864263853019579101011971796084229876772383946725748613090509165555089370773017470522785501882460882461208923696276179958057144020804111245657153387784443001453962190646014954019892925697902864561605576970896427584670144078120662842178167455691958284574604778840036907583393392106657457329562711889214193205991847722693931870367281138005068514486006279739784482723908864825276805123413947644650546911743616777133392225223038461663095890094569425065607077859052562565459866853730692040136831831398392231636334261514902895104674563415757939303977422382353369923003929783327479767299380419116218194848994219988844235355631961506411395053283951088312551586098812454898380505524974883022556683271188856931453004247275271554870382487531037873284631836889301973744419453145259205875681576699806529292938930742289361743896615887892671136562358848936487829871617981113224135377585744343056030275836157086909052752203553178250429066774251403170996413736722764639479429274445997509893501432497591220376692964220015683287434411383943193507238889849248035774929902837577777784521567247586880077800444219823235620515976600209022292718375671592437207791447240359633695538186720240447857390833647964412220095613903754645182060438722440461926972133420780953763930312525713842088019950461478995006254697902686330534733144796637199327696156181042136863172994943563214561285841141038728468302768091033570868303145755315030631114741389225067473205361158042215438078182668324922716436706093938855754850377990206865156943571505196312770388922032338939714735176466670469172142776501759236139174379253038089650715781098499477048425738645748234167143953727600458850753005342640175378072369365538078322734946858891206419227222744324311477677204165094674177963273379360042228949448242319294953917260993431859733565851758127767623164032266380339871116011849545349192911035887858390632001444400409432784945085963479350939036682283815802126225962641612304810992125183032576698227038250047043939249555115642304835740669210240969956404817045266548876582147978405866134889312395995461541097347275602119234278288325687665329700838026013412865329882007010190210307942118277169429908329983226606426406544769826054540243189268300419681434654613982725283993543129465150341903028362171790978402322581576512412096249479647849419443175832018894761991325881916983652571662530250628834836712383706899798612313682151436377673468457115275220869135435807920564982987122376810109078030098851384112788040249089085619741112414499926877559934125398899998938007158310096692773112213785044098728680650791728069672997649484071750100333338116646458429058367967229656463998035811129615071994070160630773080021039323151108092651159334387211544165209816437275037580131547957308334023692929379695909550887949037455587701123160097382319320325708925189543042613967409907004879852279828207564013944591847421673425261762023952386683181689747551444310509074936840384759556590925484165839728869301202698044743670816922454461252636362827460301032579020217381848064694046772451410658574773097968662913084729228876081715792404967656306506508109812001707928624281243260592771911886083475376393634483309213450077736773582872965742858913902718505932440997825421276251373123897213538509220135423285304473147158602462360281788915267199166311141148267946815513450815965325670844168793797399128046825052046433656130951811545951702901883835958475084935525204969739636478521279273948306671907789508249206081178645654607414260366015518762892130128627724538185972214905190021466087691042382655855924845937807436091933597657081211937840120912117589280815633183978302257953324356079274149788918816264049179274469702642978217924730704359547368411677268278200442743844736682607662056131786501491736555421547605089255006157770028319374952594840257641823120846279826625580893512227789305878925583674025498380637700973911028248328809984063686931295830091108292680121941471130992066748866907371879827709415453415969585868399002458012799798974766238428218795151769000113391330064837382302760385736733877748122383837131061800433156495780386102872068115250165309399303804225122176686477256967985344985328993006910478707544102242333401168963943200588408169805359189537725130112858757051812053868333038956285842771394747538159919959139790579867016679414735437065461468478932416465515270486756102964785426279744274309514038798819205568850961980895647485772196532822554461375939800847363896801586432702332604186893019995099682732372759306154824581277537310674693577144403098537240069696743561043888213061569900975358052570707388312732317240450442778714018804418850579227975625402117107526191666688725518173700633031723269839728059732395610960946066340124071754358883738882026133795098682603664288764816334944305956441076090722753169782679743115175929952080251191565795661536342954569669777354283085610643533302866616134182453384561675899432782309435915327866450847037394448519130415456753718229806586884781411044659866040133492237966130825209718185682386977517018975050145774607841156064589754538503373445862411503261057946008996707707157989138000439452176761892288362477006622816080715477132455130505793388606605224731614059320404023783980817421113359380428299165671052927187547277679180557107571349046832932605756485942426263691363740295943354754833422778593227055736725172824987653110579255499614868394535277535772258791779124729471625728891621641769374158169162042132675307366893708705823751428974911331660708917589285526758771106502415778090176938837179205278895948226043919570672100865199801933202458607912008250651636553146716737092504396282553008894967763476927474636551692244004169515517422890062296995937541745114392177477433423912250079298781735730327867298985213778236652778550766400995314812155617198440333467061480306470346977805695503200324392217289737501983966935457163904088558002072516390387568489957635424426976590401391979488246209122658476068407025563311556089265651054990386225843870866112546592838154470528019929892900458426514486979325967424083596216058047761243280770307439189682727030706037326783316166879424165631505562336774444425330050540033827904796769659158578406463665071718424583549314209078243267752236619412780888412564651728772507840253114678910093442644374905079910849765579764855661150063773188026115229033183169906881987425321191544028081090163650129594960865945213558404451512091896817930451183309843395236441718945897939484512707776518978418288362644372589335377639076228770798093418932323959295750106911278502326838758079174165609555848349137894113538241901397824204712842185422703671499944330414739224612242462273304806176786786400857471977036370094049711997196772824180910366065408687949025039096249319633097527874601302624737158001355114633200717384463391136037476071673171430424078510665228920860645448592285738415597957383411474547120343559445917391158668929259072110158997341769221079494247009757237682618257064153800696606407876286811600367918150747959025282562821793463432884626143768681939033550681525815730036959241717179742996493890652351441232193108763067061526886577343328411497066950228884890611720553523564491900473157726787712503950273493387556892387001583896979453124030546441458387669841323965798639462383938225865760647261301773266114772877797659924304464913229002285119140857756812184987703841609461821496428186601894521511608352179212984328300085882578444730369653049013717857556277423023953311455172439433205068091837110691541620236016268909398073821178667332884735581250960526602073824107266305242208054948900010511369972670701891404115771637000138002273015627990042670313440422673055794918450133451197150436163876273515335476184817451827200335226673450237337948042696583016089145566105092104155468781915934580668387469134776030799592129137204893290934077497146917797593458513126770044045184481403518129948596653242883859514757658637955589697106623283417475148094467350790278280380029593896949390570528508986151861875501265555695867461576881041837031696410555935709786305366970756903915472757993134198653716257533763440024968456043152945260395558491374182929786474424368622255154936747821899019539369018070694717822200395216335772942251314363096793167620944791388568666245881864151054394427449662138970409854686951052754652705928151057052304407332828813561195070820115683876685299582062272243691919357112224596607986217184186205971404688820611291956793658248750017042119611294823458048288942130724343118997875812151956838733007729879387397106053063831519858165914832988500887148329261334642972019763429267216575742397032616467957060268412143326578164106444067747138701793246777480302896446805726574253496277525953354292181908229035284534685929267756669378127890752425738637437450216602227361801711669400810927647460731378051072358529384074462530086165441502934686001882604489879846704017225124307623772649847503414242946195820316762060334469910058552908188478197916661370882166531432093780819193715134662450323269012577827369153019900561568891046212121221881973196549534834005159460856893646712212311189714517986144120624218021584597936539898515694399159085178121594260398651161317523033567045812899103876954156101100454987933795554852290747288199646235570608515318370849389380011369956171004367109176328161864744081164887436204333905038260244127174834972974275525051471971600187838538877562287117543454001737080709894091538142638155139520992904410894242369333803433045156789218962970159385248652221152090741573966062908650630122581626491796759148715155544053757882978899476590354345861834849241962970370432433847639835425754630232780765017615675104921400128441849339545464482591309417456635745723383206331205295528564346664344243152018201807163412706866562228662615100244856499269906700460839485748558707568088603409534332279883658677737514185113086632744635684075476117073074566474835242854127721738657669038885576512202217370306102261278882375802485139254931924714205437927857415441019561222857557293209961815383459294130936451656815858393124045677501447089375989995617186145444877958536738179288664769987535654032950618640534212190742875928337931771987342994258234479649848735157122552807273009447358202815364809635297215573764332934140219291159419522816580041438378610132079027339806151977856722944852908820541160376414948732378167170713430340463431860593232265002428148588997110482263947302211061957736072083674715307191523262173813507884904992201321708200779152082293874855373607450068966615488675445516631218541338890018039790190440413535819958108267685733985109523414929944071374537701826689363199060412142000874857514465978970466484642420410918861101790178690232276245347967893601274187948726156313450669864295946153542451177313328685830717737116378148936466179072180278678621975593287233703385577029792276654631658204301511090002772192814498494330938705815116884941049835491181642813280484274492648862897720973786844125516933004471415578553369975734150265451635389782896534602764363674058878325433124695920782957652649935753302684895081199464976575600670000634103253874605045373859832719669716669934210258996226987086263839506040623574210043097822637307313064756833140432685540623018216844975331225535591746972681075772856419655741175169675635109011483862018795751660817197108795155546866117487491984078254029253442871384383659715213849527217258534915210024206019028347354823945420433900278094782293531201177721966218659218916587729095703296695106042749058648415261812087166891816843717630834068214581290050448963445089460525945697888335280776542917178347754142762921769088648024945804483439722597930873308493179319541292216746727412509782609732076740615604175132233440690031407058384891641963607639439951878672243913225304063642876336963966188569545214390922565101233813493253087305924257577396251796069028906463305077773095940317730476162101589376665871394496209338018697545677633967985957684200391430424288240063548864551325038635808213996573196295777459720031919955597849612526005370248105107457967558665394996766260093493069912868060251932328358814509305201182690607512013515096439392268010126339281428498625881439252932470886794595753172097180561725060598254473831272122882138473620042565538911674578043353811218067736438298811545626606200612077602605312734118175738946759701311570054348604370727762578818429658824576305776275256573137404146828917389080950618107400829113941824134657837492050356268137675326876937993102307048841168096569153311345595060285149892266337055058049484808847925557515320608567323600905907125772179537501709567028108349908063328164515141738567014238508337409308025171599120189114000815641600079753499223633414420301506481039715922933090787761226083471081190657791234486605812071083864195826872655045727100905444963924020942118822098493962519912870941501184617031558549143958979460470992817503644796315814578550939114332051678035484888048338332267402831781004977914233399763995642571686016522730707936351609158757137731994998415195026449523745310210806789341166244950726232549957479614339764491881858629489273341701189156333777281993353889150935106059938341741151087509743747732851984900580575816008944271795543578269764081211150993723819905200556641193419393845478534128663822702547187530346105985056735486461704113085601119569244858031751761030099730089342340342571791926119277711161474431921572944216141941936577164867023873952693266495697452468445685893737002099895714150058060036285367824160074601273841863541042013646797915345889842751895028728945971238960999477006380722875440394180341851355800129644662876245791046109088500040491110745600919332558935522790149381959268761019819132463751183263049256831696633900271557092543532397373112292995917039667017613954544008299378889263359788131525648791329736755710184002075251288067729730286839867575235244720028721441649681971434115030129953569875393509865522519260310372074719407607516870100226282379714343394911994856334319754737115694332730250775653432371023549745819032418113446286791682260348182155549582919472754133265994194162340791167335106435560793133777573963403212305133513796014928700871941805782248395846487330831867969975064132574267842059097405150065917860251983351789756254459382579567337789512799480243431714264622844563083658798401096839540694783634427152832632775668471795205345304495619159801627950078124509166666484600908247934692785096470897655488495028875179145732453376648021669046968872668384751366299610564891944460528696025347035383629604129655274706138739495505596241378639185576469659932673338137770556683720209375119607828606796427769916496716356414940998530403741495710504504354451591830292868530305502111977713308267906221493218725294826893042998898785373456389562703782339929811813969553933614008567185350282420017526441126917748715571493361090399809235398852159693368558331501383781994332302967390326150569950595400747604663686679534226767910551468280989749299005536055627039500803069693900677982242144642063507740292154641186826211034963457112143094419762488964887594523702436893939829226491559984686665440775660432126604335261351825287235383583711449824220478734379542120529762624566537807810041686034672025539472958962567765808018681220686777009165155943228192283338153766221236454574836304165583296578823489885294409154167547197731448422509867216936422393815399191151101330414878701021734551703379513220934899666404806490077106837147128605494727740987404168841490760003053783488712900500818813916237619798359345383300724816061622484294238257141849914540348373111054844638982635418863404591920429405293193321559536448088347831693569722592001603154357915159474101241936933295322177854597656290486903833995792504715952381353729216110524818043208093339534234050831048984050278859268079769819175060039704082050570162777068021928551321407482491614627658726986781938704934369522856908453777468081252482363043253417876806327329633352502236436256749260705135582083388286834318137966938902008466015994338851527369432916187463768560944206912293258312499257673031505896842012319341616609487145535364548090200636739716122828541122120470667898360641945797319588297473779180720324388241327123520776428766400351792746859676463159893140797904406901509151622791039743933508267269884640865131975631764863332246889142248818437743825175357691498769711181239176579902048581714926342311839075856494688039073955182872808166634924260907267731115333401050693337148785079508232930100641980943679558793487381274875830753059497808573026901250075974478081968644137731485686242884765230974573904400867094667276760096128120535912237834407389917835527176144205114271372387414585134604934991421793325895694727998859520565652309428242212436295200407003285955684597929573386334354783254766442752508687966431974915510435929236959706738546855238428255268027747921591848209066623890376402211227759784192374365673979521479575010908133110122011970640856156631909155808825761125124938060834651209946561331754355136517638295434088573177280660315516952418760381147578044964082293152986161357648581273658229065445787140168011429994564655332816755373539224923764173355459443114842448122240252107821549784834618125597191074515456182845164841772795623467881576489738895239540528353759340341612300369148643175431659248517042807268439698905235310371439537322484736590741900058821046385106105534633297966484372990929988699133135063308219789648169148526096108294033524068684018503357869459240777190794565439212879217528681797931727281102281386558505731570216716344280938870528475375583029346179174193398599836242698729170456821076531487701913855097522925728908058102057808771964019503591377597537480305002645805812967635403013657249008074681230310909172091131027651381862636778818663103943921935059729671261136616800004148635038572199792542085114831278119815754412391783085675798766181370777509218108321129023896258265690503230753501369446254423676202356126682171558450794681850527298375615398798999848516063204619604024863214336543186344594061042801265188271591763465506075079074120604404869420913017018646203114046180900355947846030079371661770551533699479344509061225425840267971052039715062932899841690884911233879771290421915240773466086104207251716440359266460650168394576290455971486261791149104751603935213483250650453595881417902753109606093755555010428544503444788067374065945133263417595538167213407812128590850932761001592564545313013341589060617096664545011813329542676872338922161726490777438501181056568373748627795487037657648543144030477681690652739681844731211284657516288675826430409416698716322948697707666899377498556584503274333835286538231319437316631328530861796876425416929662675446577575750059435567924289114353157042333176991833647471635258364489312710673475315720579668068080618813520253532423793843919894283462924866011837809596548019670425749966624337120975723483891226973614438556425598185249097957067627744735335808186153174072112586345867909575987209479186726377071479990987728476739416732497022486712200630435396123101248210438262686652387297613017972626426827127666732238545201874592625689342719139155529865178613409387735878669212598434134855042184608490387946880502120207580187597089463498875118237868748868365293263611903007494399705950721711982954285351107396206112971964065695544326125519435821563525819831909030735375006199623566166651772627422508879896256490819773153139970111654833162952478080249079965959338552959573073730465722978884589943911215431628821333179788356890649176082760112310386239134950158742034328702417951895776372187886277202101002979663616367589460400778005751662455413472226305422781434454293927084659248723360961458552501154525011029019798376880245667024297207968185569888316218616489093288951735771687309026135869278198965919318108883967153047922245287796576848897052142791425487425197248964792841193669418254519065354075659087831255740602620566779622514949135519205975365616027853616324375899698811633833321388645070063969505886736108081326812769244329635209256655577894944247049616199716074498118991613369716283628286064429965994518785341334759260845018146291881118479084973011131022142155529515211412379413466921457516653002034372338899415330873613504413313810717050646844090406928325144052142359798627638741305973957393967282239888595631721848056732282076147722498820436633090024350520796320926788225384540686768430594211218135140028285761923295886055566235431028252859720942638806189804527681149520908397523884706820338214745929421227100246919686254768908722400286176566251961032288079853973189757811363521766752183543296986133724861929426638829812056210585632652740058012585910146371852541026175019339270943389393182193110998585998293477320979432403141500761731986570328452801072266393134051722983843369108988095800631634627124871714088165992207502359776903214898247477993468989085465102193500835683663597289547270087911182613256106590389552114887198286559296729228963494755747162205986983715642881140903817378409613999428533709252721068052432424617153686777057669743317838476571971306829123050180876362014530826033244573353264826072832805014870618466213046775448533857529017519054295716353658075309103225167799735063211918557127055476735751623897502511266861891675527491242505698207312641081893257169503816894891530139656395510472536502440611978454926108589801869781879725980121370618511849929717982441937138316811719340233666417104245520689656555119221187477949741672296778083152100940728126010705512591438021455213945337113217318111686378706722807315457266760457273422156695099315566540053115830420057529272317905849652780981932082448997880136013591103392150818925075180284464333866622260241714866319295456524928090936606484741431517076169152286560940725633504836178334801373122075943927219874885408170532493106804764652092601913616064114698166827512131014762855208459076589457427478252916847153832217391387201255297692996988168897435578585785820283689678687543864321454916953078447965768509680988192920491906103220406385671112501542898394672156799810904530913803833540776345340677278247963407367473287397547954582266166215208702734275549479127887632257556443944803346815298169963523425710989448200199203954007691202312287208147407051218075259394045511424483394722268428429633458212168617800057912417640961854612901556253333785100881573651036598637343452916209983780526807218181163746814595357528083246486940561019282874519583389368219082829383976050790166288217473370747288633019583401900660271524883463177287687634193092323501148615461137384168023035663702643439457122935244795858524163398094964266654955945538406070555418481221191120179323489626907595511520108242426447057015391821785627238015243069056182481946487912488042340606059921182207771329771880932308692811502985045238073463538634365179892077159264115303046639900251723503249645356518147072247154076045988914361846701916372127759326926772496733873761574518299840795600185804410353050180788306248017671799783734548937962386531828077771669174095869519637401926662175487536518339625446932160621180533639203680290616895631654638747157941229342336009839583633630529864491402140444418139635840959992481132948253313621292052310098983227979037010124142544080395854487156561057697172200879003164241028603271261291755101664658260576258574021665166097947683190453518616936724046553939350046406567678102692957356841883626157768558693816020958392484625946112689264847781391495957443810719965012660892658615830510843489984492800144966059754473493779078109635323681095734513360382373909655587328473559796412886515598939280336788710078426666802165502134793766600272968404576186573245426758342003590585152950506088949115218789122840814310510950033679375707916607301323728269056589405316147026611214988771113542254450234731579631570983949446679430896362183203331594404962371285845133489280564729161186503764578288897083697207858289471182088816622730776449746405915627967567217076403609450372882803357482277143700264484702623210322982111779492839003979351793344108814582515270901455460269987864866258985166762468962746300701355489186053689045371801376701883982022148959789069073044371198832572733366123741129490005149644500542839032507388519939758220833370572961015728678233853555239254100747542148805703919662534264965103034895852618770942180775177614847723746968885435996435514745772116749271157363165423505639687982777709013450158489552565619655556693369217510902343421554484279711918441285690067624286309342901036097944798379587712359082460966755453256209018478983099819687889301689362083303308943356051742762139601776181428067788750071900536357322468488338435621979871848067314087773810049474340798347799377262615549356565582227061874720096335437851597922498777291872936965338069934852959576957312013378813073997184512021597669296483323063343977039305160036760674258747664980826314669277357316118460661081797176257461742162572603424264789756436244572677341983231775113972260583740898822301550534513211574079761689316874305548990499992193425011919358131367000431154819353562267476581633494265424001799365040188739562169757550492486871894255227040967342770649582936526966795581910418623232417066910376631074459445666531195634728199797989095493703502063053867296483170820061438656958276446923339158890828850979957827210777050752275755624226977450203354819387583567798298909963917062950784040038056004425914506174260736237315715394684269091613010733394012533888816362302718466202233527042765292002674572859962019220206507075150479726544826600515798357353451426762806125837809652952944919084738921341502845735747284945259325054225128364714420752550430432175443630017643687098975925113524724677290603301529398842961870278182455070050080989722015631649402884249848113551901806001122308774574907981677197032121678471957019708030171218495935532960718877219208857665722905357895702830729664331031402571472251023513063067517232536506316455549996433453253653259054947809036233813628061596433102528224499554215471139194593915259881657649148741097987386502493278626204050690331193103845614195673021306824977485278942990595113423608270258023692629735771626800055817490918276818408864081363126593115825881304188637703750502038839192855885442204780750468074129278289223278735355125992387992184657425527927071761352544837931094481440353447633415629368528470802654124770509501452276552043757937621110960885383632954716388459707315581324368025064882718646867541421893265440323061096922759685901076688000504340361021622927967862003015853175397980646478334528391146387340603280669866821355500611536458861610235401336961262154494551150958436068612637448924086886580385337124848215804762471532396316931149644229452689383629744948561899580295136400693190276648492962412922689894940323017987412647335779884864521113157098033694594578397164440283366788539903947049675243156762669616336214886844030849960796810675594704342247489635127863097382384504383634502378625376846183596437448353811372928697699688769895676144114890106451156801103587270292448069913681630472646438483913703688983325618666406123074645504314333779374753904410221439204441443535110586819267045937237786046888015442460237068387305644403881655509968063377053580221297836343644215747114729117057375869400228147980962055259209814019347638654001872661034420489528414360801844676429409362128462066072333448127537765583334516495641838848753464124435165455359525645547671193452209630378450493216977284676099433402781780131236697370661501711564508840733417046751354383372353706920428680062549611355262150824995535288835284046162176770768955409716185858587925754294026358241333537908098913313777203904848755493168743097544937869525957960734942869495309012534097934347692962445317789145465164325448537850124502777655121228115580643061035326227061262400623585605130420284489541060827115935182523053025555984704873161839392117824365293984319254736395730938201714525023654336088320875724300808145313698806845004739594570416073217831534289199804112933125617251139311940318236012821876019196317633818747629745716623376897414630846814346929581804122861595531890031717491925423585284630888298122003806852419511524604301447272544955265153478323966193200231454358566012959516843364924227612146137469447471585707170809883781746599602757017308198669253293291530455404052708578971330091705251974379051997126900394427129195357443170667721853509521238221145508149201044049716645803267971021173957119017692002546090227855012946901130499895441777885387041675154501095476660921169298013993540723075974872717124997529882347088114750821842904400506222554638010659206194769203919299463371275146757456191672296765166393722152785541711565935464869090799552798425729604010019802935714272497546029530961682091744423486010562206465050863393040023079379686225722806080078813421436996379055983203920789810087094066171068059649959748847889647076024182500256264517674861517719145255914760324613241368328785068224006225358843164475776656473709633699440494816853735987633595121553238538101673344486525803030422839320567994431960241301175380298883105573160034018955753132088162897748375865018040272869122647009963489924354366457821425355423117989592293356822961468849211514508009964365901414661959312944659217374677949734964441936285976911441877642005872647996446490310399180294380363323207875849915074013067852254226690602181943782089918549458212826904380221667892045764254321562696857310032938595891329317366523660031858178814290410311043417843077149366748451920306745787416456217180157400366937705216678978666971295752721063192464606254870431309033730131960670530697174895675450354415813774987738871487804057965890581356489681720436417220202021286542536333494630015448716552461925593108294507555754216963368804091471467498913446637705854912753966216452171758478240968515907687005901495407873127180876334366088097153762169524338954367326862655133019022552953024705758673292870251368810757706247145726560617907904571054379700093333911720650860556214504958620262779028896652687445577843241348735148904051656628429863695280034900195770330637766305220054901826628481960945599036622731123207489404014616899327403027874888918450383177513954630608023736010314169252879778085615692705373130305769271866594314646813798902434179897505560888106402125170041987238999061747870419959467534906322534599543785479523516013103240533194899448362552261174150329535965074952070228653673626072396702904354522997732351319632995333941777382259842998564264440811062246135290802720360927423886462633040619933197663240308242872783899299261284485330026076669955742943692784700974635205027159689904964009597353514935908119461651617534397473703690200723467266909915850190443670381310571603666147793237387666794164542908492280473460072718581011132988649757996952890392511992677109351782155375019773120408084604252094535187116389234676089180803984708425595478492974511388725060514559422657912003988630161630398312502298848589016248606660961464003770347553619126166118055948798570611896989196576941057613390369618878084178830395158245768025155538549429383974548910033441855191996964632096680073282678152890784974769654855778906613869779776421795722585599882637346640435860221831611910180488213763193546500492858328306167418502777431279646987900857099098434550662751164070168079114441901477600285345419771178677047967792669259153148883261553031209144678506408578644710352139740657767320214801597034291364810781209400571679284256296103367880491340103534938429774166956664651969585270880992929043098502252053162101625221240678757031930771254110540535781814267991958275762957296117580935624215697767124926529166515603408220133975660172456333142641408901559002948311756071583093823357444083834941235024353101611871817445600857387846791687490283963927046069955230339415381328440545918416544113805599014437272878276640326952123868285381638834880125096975528443757856111460884533706659383536840368213646435094036044424722292041764982965723850672654285335225990007375518911566446951416727414570655588219713894660396446238991044864744751675198633331902319411194953477782287246631874828966518791006001391118172025513361142830313113940799283748146106542581352806004330622541533602517717752544501459691558113075020863708052288788940881062599176538872325006925211032750783083476178418926595185865490330334709765701843829446300889727527215520729238381086762311150718029211062374049870524032595745280101937360929813059300745874007182342159797700515526003193870664523982742002802220640475691886257584001202280086854192989041321092595649162723247037509977151043481697410547867423502415710590664002263107688919610376300019475781766650337131897307960886058701389940990676675617471488502073089766742589400021127567982307278894721940572467449161713179446936880109076809741273135291714704811669149779393186921079669079542358898787510719537558491929222447627800088125949106983051474805763049283819783689005253936119884907724824966974148311232953057330910311668389569716059005279614202889537921082687574322076527659273709701554244083221018315892757838564644932943874997347950515408525403671934896796022994707901918346118979409814287128697911569400768761380222137509485549926381589001757659705889738035966361164729492993874667878499299851998761029714063616488638842997429147497127832036422367600834871067363108860707910590073175661157001533831596007805405139261796852678631480544474642423862051382321608942939177446713130078998439788655415948260952245094727401091957494562118725179443534163794829260587381907830350239998111440795347318813261861853426632363599082282805675819481789785633653165071415659157369595517929417000217910364068203671360671149454464537685951296162917409403624512836057828618061788903460410407585153190931303233828026035045058443488081024564533863239728038995445422560850513257367808005415535292220392819095243672713152655612444655172130709305362014102353089247495015784536763090764691125856804552032141743958085382774035597414965405539773127288260922561909968121949221278119879535649442318565806179918045737017471947834230177089056962492570182206128414048173681770675171586428292285153899407215320894050930014823762756779283471578240792194425888007424158313042908348811986968751059328988673165078166088583022552479869450998158974300870316656135367956157587456355013856096701566792588034644700767516927337891677604130642111211584452494345000766571708207851610716391012349390306362538069204520793483418041319591353987590401682411235783754979490824534143148117357050268182898042485198639278260280830826150147090841642295302065705190508177746166268393860159682296682972697066285057092630028299456604695220047950386784563209359649574581418018944908556397876089718406134574361717832781241219668738429850160628107849490466350250674229762187273727906071030257503227410285745922999265949833318005831468342556513872169514052029979405997119710118877238883805400547383533990413816630859638867811338159940791098608734643651548531711064441341874305736658277541390002075783005296425619369958266722567802742331325279211257464656340266325794664991769691074428085167859651666479006765752783658983770499823461626617013673437944319219279868726749036449825312530422535648408199830438167164130491537615197197191844591491302149924135652453060992712934646665002711429491108467720341079043623265069382083289787342936219720700248469446666089548049172913181283855666718729326173361804097511049976655034341156064499775683883107141814392073731193666834842615404483013561881779533869116749088444807079329124908138846173992825237891050857741322281016168497835531982813042874991937011181645689763900612687718653609654914113431407802066537417056372854198699275410891885196828433599516385956871817413300899327285297110066394091044786369038644883183498169803162425195611718994739273594851427329987465720262229162455095870431119314234821707889986614710046112166199231245603183296794866522861581326097991162300189451571245406747211979013647970706363560043715125559457664529601237288677989032766686752877191613203770451478641378926782600639558452941677801714805107337568796830465095801489357846989024403792614375765478450733658936996479518681096436015597949370791714986424226485464450005597011847955351023345431928703654019416438882463103576347205655804379266695698356682338650799431040485049953605971979281950245552771274298337250142069259830915177582110108239706986210174077001073792342168551323916706933454080755315531889487025742498618975893325030834334755616756625250818524056395767807124074419845832741593012047407029575841739412686195106986617826942587665262567145915197428553496252608830990549667400048918471585623643714428571465048046734934461098382834220794109851886026566449466127794856405700233522350298156568570446103478878719972600595819122261327286859930197344586520112604235333327673691427795982971564131104548937053653896318874946677359604285511364268688332908953160841260384938028326052951501016634717741028458107298779458148969584993143959111134832784950242830771154335089186492007478077127881433380230537796706927838567017602743885166408246465708745527953571515341734648997375086572673311558170704745262593929128297265310303928163450567792533899234772112200825410180467817414441045305301561496535751455493548327280377836927288757403854144700598966401221191098023415252907730521210590104644491971842894238924248727817313719421614412091199032533957789586696096748182032066577441026309141042059072812780809465927351486964806319491413524530640306117043650254908291828732086123972098657763669778559693857377756422301030066672853868241427214267197395603471749463353340833325948616693235547687870017920081404622855278227253042775432506593576592223784353371252992667777030208786512601704792781944072104270975086896212507222512882743826859828192544173354377589063006656644775525965121483258582511238212303705409090604579717860277249100574602658370464036365155628643892844684665984390975394901320606461329405438290127911357886979273978846973461418004139971344938545185333454364124387330370926333558583588064631197193404575630507111877273957442986415658184560025432569287151872329417572241155348794909735240150609404523582282408989076797496942426740815924844247258265070835460670641718216180837057023760501715207601243743878035086068384282540428231117551876403233159211032150774127841217047948497496344490034244702780261398647697346179710849359113337917706175670602176987377804691275332251075956765958161875677899081603464360037970800961849316171277272451343811029545480218927837017375697511460125286726990591083268191109354490409532286104078751642824154555056945804530884787751324272494378266579228373446367699039284549747454824521359934753421310413132443740694479452557315261185240555724662107701664662452135377983510230740737882454961669128276156650637550165924339614300979689806092082990478992579841620524805448005411299732977184445715902600373055578747789925951228543304946323801050707403858051201836915663404033754649635395364231648484296073358334993104090251803544888801481494791209420803715647235878117603514281300639345117854316694635238387917657939385354268646030176918552807823438289237212643173450554181238943437102076681364513634416465471923696838612178652615884655441458575166447948789699035517766449949467205125581583684277727502031174669560602016878955926315747768989867342626931030935362880554717127364979832536308396043566607080157537862154095766689780268978337924238029475878472651170412283366017934817786656129049866661100738417802488485277530437992757831701779611651626543034832026698168555515457929793196768844789199125996239029182365102328499220473540433847514193485265237536903679289033230626669837122989206703897357542465791176227746936072137609941675742338664853388890981987137782149063063660911704428690546186306645348702713025582196522362589209637871062166576318726753247371780178279185426515012543366980720227327483551688399320413247398725580731485432360450878260379648640631377875466258485136226561654432866880007050350889924470066561661311032481667460124009757216581046110008742301454459771179691393994986786133116256053894525561378081718231042622445372525315491417864219468960644307277474268890013729981471017517937777887888444206051145797755827626172259741352840070754507406867251990845167703150659829914760739705065792005336915183466301481811990960016020518300587768153732478708821857411034118489405468901341400784123712087254358026871486626990643793657889013697127943784941454923591844376148055457810004333104202985338536267241723046675987362833078135412978921317223749169843591345013987024079399430205972040217110528313034466535821597472675257664355138071228900149463869712234498256728161543619602344738398475659243721180114966940731492240921019445601552309024379155722534494306655262743114405672190312390117262731989231101016486116829463204663768742261044756650197634610242148256171657759570136849810390620511247053269683388067991156334281126395255549084923267803393374386045858760271346280808911279610452615589245926624619011709121003335006928035411083908748894354096888845247282549252944301955305822943921353032298109256169609540423929424668388864659845532195054586331055842359277908186565967185477253526779314376083199147170812700211087967257958824721945953148404339530708040761973908905241522617830662605714340172436389688421349086821971743259642581507511265712424836383896578487048346726700108060994477464126818312372546995469613468181480766832527106348159661713665359741497335867202893175063653920702964439649013888420452680807996226158951120733608680193802774880922922926442012227243276740524248955446574517598970565110703460206939565525363961869835072225671800227210885337179799066682436584780143953737719422413693609067699442384095398059008030561264891487943433372873807091040790612337804816495793752624138738725146257396157387624632769055220007997795890693518641788180818955089115828044690472406298882657354741858897097494009125493277660856100304995650466718103833704803008721412015006293209541185342241391135518888592512033664912047443003275567365148188306077036457640238523079722291877072850923596505417208626356399564070971533892056170162080809658211595033276723964875199477072865530817504437716514356958500072694386004422141769982831976476743124451329393784529099925156136731088644324650826636639298667242541777782301345839694838782015676771117616208414545181939031610652147639721984453116476412917598438871995988498847691447770357202632923757650534797601024344811609707337370545089363630623703506937403414248135577382593947496502449890222231621832449642259399630725008691618585985913045593076051303560252495858262144216490739913364748935770351721728844884608808307967458428708590556463021170760435886609117179251487318727683541912645430235183395377268489831171053513029855915742954942631347316261317367327687925128246821059351726215448385721711951179400159224963159488266132234180271068685457491943726237038465679532983531640287330959588213472735851499749924812145590213713333164696939998998542916077075935713159683218498922381102899280129281579768013966666766408872782875605607230043483525176906491281948523076924578159987792129306354971069400190389396374456279595326383118346723296262454481828470053981261796140043878906715071455124679957108044229872396576233564641723832865894611480584983174816632463302299572940800566387669048291258902601234908817159489212222628641739483732604818833826483973157051571619472658560221443514891203830413956026543646140190429629919923270814099335553591861968441104830173901588672216455430219603926664277329431820551729767484974793282708041598291660569680693184585298996262058841861042567525292567329583908807821305761435926394347008639494303282033355039185373914243846034394505954198440037045570979971521036453245133908759937727576175014819223370675501561948445065630366877333966667470614882719570749079069169285980054740489224206846639853030135165745863716219271796032341239523851640491945998878345448594039245960241950511251269504732414464101488600487484910546386547471534489608146221366591543918016594890667700245594711443541170589846192878445422318837315023615876070646847687719507293343801404917410948859536672653190699561378221708618902947421932194933107488605152381413675541071287599924100378058893484361135225251824252636956891278741411118939905268872677618677970085423395268596126888110318400950115751416261723028928576036975931918391363804512482330911555920270794514702798590793132479256255533722348188744922159134963097286061735624366130270665501570507312249734179392883385251225504127501377138473309483243740780492254083692590112289851038933582837205148033308109513971087954258235309496034033598046966426405377910530801939231082484982213536113157191208797262520580975961131750084106103187617811609785405784031664131427163013098750042573411765635121183389182964294154316835230979626899566506385928582424357514780894210399911181094148327309245032785579850577320472170506939300711074441840247529987236399902675088300909288460017754561284123648353113750698409352406788775090504564111452677667549247477377994185743488859489194639769681267358273499351060297576370434776131194660977468514146241864626277823984932694964155612347362206354001906143644837688088139047071117131883253033947434453602061793630787861826029138853374335116341532223397988195871960242437195938680206807430934229182885385856068280172347884699819999856617839755519681186921359816467625667615120179982165744368795569994809981970127594135117472487786176246092871702466644291208876410352281732843435182150433649270714070036712746795850249713749149481241117872669567173624749173167958395286016232222315438145139334472435944399788239523428008386165368551212188822410145333029794281845903386411053308453187290246638015068577149254987347303120324401794175146069473863021395245427061976281587979380094532215999633435302550926539867344681736664260104416773563192361299456726383244073787679403840254628326296277651456429484060834176397316360590653023783068349381378513131514151405682906627239174413481951780338872888521304640671563043323097594881829187047928818748163638410689838329311080120425039962346845531617490304553699066319026816418426536123074648791325908287375537027626374693966127852978004986501016970154786831390414524504730126148986228291868865382170533372358432583784313310028051593036507666072716678867167105086655046524044443993430720859410340588843389280069487124594877149770345925416455365720871288861504019779647588214299504450227679205533016944044143322892892841511354250102899446875087093506489869119810656336520552844707341567548190469088225649353690262355867389759309053329144837353884070098426405936038581899025381736460903570963645019016267231556496894437600033261464665250569626121462399007095941661740794535258666987549489088074325610460460885167826835157378986566145211089678589901684186858684294041123685442644566602308383608828368542197566818155881714194496155053035428599905081177637249676187531025412450470128522787569973568332209371064624189430871030159952117079291990643962047155249081486540091595349501618180839076601286673173054159258435829270064275873426898217994640090403377781435395834330446228095505242263287500420670222855387392150060827621240625935188957296154649512024345919924271497504157754035957491411247035017490221905795937564514102002845898607893164057914967693769539878042449122701142448047550255415852133717245843811077415031384406963268497431634386382537731878460975971171022002344488307300086822295187924787909060351014543841825668614328145920309091867829521714953493310232278481839182692206965287800814102962712864483958173735228892820388925079306504337339784220797496246292207043524998902151178402686681176887477416960427245707415061639429033164290319786988289754311393339089434073778435372540766112488145955254781408276691992531811710317738181365334157949095522964410649083754970696741551838107277113692932233028010873303715685732528429034232734874802067967737789057564475117953569662249980089518870588498783260299030789984723305406278674449214931647947169544435992686680010790755780699117271689587327384183085311271939751076231297808769956071386879279466994621777147210581816228815375633658976163900549106669699756003384399036958130924528957709466731481364497662424902605864157008009346040091865771165247175985333140834646987271583651239932100303946087176641476336808358106391508385141626680289271371139443062513275388546582265376815175199861947903627312339125538789558894358576428780536113842069350403529234316314355341224423045076909438277749398518405904906269835329493477792906307321219310242352272757587992283252121460428279156763501270871914587184927183372935759069372985342748703968714795969183864292257054791426103521204319624019268428398541872845489994484092488250846509502038140435904824286756870060655827545436253673377554982377525501844053679046163788013013653847551842959820532744086787654046476455808208903635763111809009022606501994241304977742591656544496568949529754816800170564625702514861151821758702506015841653778197357140382062324166012521836797556672632913888021318467130280353259421380197173409134693951258852842040324923781978587504233003544068089919257462560098186136888600404865868025145708354462924585466786612209843358292988730076380193973844842389680930420333018429289595988755957106945588897673339264009385521322008745995168698355879090469190466711391714558194131219545683377141518262379229545979505450851068961489250760001706024679585973380286810031497327919049098585035462358837882766570321059516846678711644856337920817240507146558883372089002092140779389191031767591803927052868973605408364450180744118180461880237528888890590869077869919635482438894916474652048728713603821996584439003369716693142613075717742483373515557055191632001229441319627697093704078869211540261515239230211873440314313001400690506870635771019285786729338821322662065293822223700210763356499224079814761553535041552076039760037161541876488606720894836448282692717722591645381995181029103640509119869917927420594009692032206926815453641333184230402314631854378005177934095728248848813516862577591596880039729754448197708049592347141468258931439977842163855233522365817362841916681198191621660086967899739776850215619901696110179188876346611441509307481165425303539734680780108216256449671866789886189686559099426780155371253880809774949746325775611068637872611540822857557434765649232348989719448934974006014600953113526749091858061206017228259675519526645699286898766111823389468360130225799034011930288806776861454564502601348022376078423906214857102418271392601799659156050308981880992299479015417562220517820046167023319788500788191355092911121902936794254132482844027606785970962741758437348666548249646080235684111790816036132498774334522005149297732621618146488497465453282974192305313075356342136242411534372617009307836431234265680294094132438124804235164230528735010356115240229271288486390896824728850031911569723879346152714444666455646745568766130119115809614555198785636621251726670720070449825536144415037986142354312483535000701425191179223478510104720323861456109409430335575225196470146068403444078216028057614279425728343947784915032033628816518968435654858169721962596917087398119843647861612278414043276711396563589919383909564206270662484062451123572163079445662207628923484614350499896756806477690661674781947050428716248004462893539683947475206999182641098995414797558319476937952843407555901709559109123407317934186070952425568674194323214551303572063308194778101881844265361862435649270708824555727578770076081709577807167100434053597230874930582455084647221120790595490595080363578966983529045446588205727092803108243878713451778625460721115560666947172364311894151171138526408797785898619720653880780127156025255866384648074042648216709289685001553426189882024975184647012333104978248773835363219613133086941542008852504542486565849951419704641782154231711565685305006575426699172359025114831116829415973101085576180059525962746082525876514799997807673469568190095297012831116957970391966420341086451693718479776864129097094265283008489999863549143637645799559473345379991233397690470596745902929705335782602494503971377231794582011616608423125219766240145266207712161604125071514962042475369317007186988186401800862992685670268698004258523269280518684513827939060910300099400393482039430520959730074531352757667294445046675119049451798324868815916773513480948675583116834552058009501739446657646623989826513320208992490644684212143834607729723340491038711074276900516414864671108220922318461613441833972139070044502743586421465000602340716737143958835104491801422990354421580852913905171874139703632184924245718718839281754375125940143074943112601510445462191084022665220389661911898949599108169955294647735741237278873025084403822281962659708148406530328972842881596943493797195359619566521004072067346337889043228818750497071694139249762243293686468575537174405486521696283680908687432666719360115866159815635873669815338543746941267375989220341353306718723788304833062262483516673247197460657768390308561470274706022627224930295803000297069676194074564910212715837940143512698695630346795982105331875120717203251300869337673954398442462661784884083549954547016326684764505750650614829157282398549744334338040916300747522595411393796345583752547803094616895764198935910252910857745700647418384798546207780030375806001406530209574716905490465857158047044411165318398779290124326300744547366793468872916840841770975491499630756927165872475265282533818438538435493822950850685025188992011324936346154508579944217616768871271927541084442383864128963428163118821602679455329125483157164242370001133490198451269734031249920945281774253647921991334568511596604865236308170425963040533451883736355062311046359536317510698564971240962485444348680780545217314620710476138746579557237462695049811304895518518615679138219758375816273192077436026650878166336334930175618597913307961903783476731360820912446484046228614688013380221768498246991330097171225633461602300088787230493099461681582419855825439547030740104351842103661509453838062113472829160780679837572863328586012051028824070982438864866316208499679604081220525150586536392749391052349252277484516893601547683337782982253960382934619119877059973856696495088328066206866854580488614293428565061432756322761243051268451939688858738051511228609305432851211259432250189964674014153788483830347442456409530171295259002642415332430801243538699714558291762168852371023693246018998790965624117308296465361866356536394265927925750001718662048009146572071465475494869117617617702279314590666162364747204058716734151493499023839332506085173381168622902502275462106640930521122421045204748986327688639763950511207812186697324737355473378503579071066562780724555701631567118376887403269197835227850578115977030088498485146665997997295967098894352574682820638639634850385043289297672128909612353530925753910068156915938128374207766347137686360064520218319186093970890603701264125209793659434617102777315673925399025323099018160530490142949830344434666917704821898162860997128903970033966146953607149688073576712012408547167219346041154003074021503832486778326434747268469103414684195720189250007382941299509144559755887545994871940381717579605159008747058297427761568444135796104466528884985338677344274018348761120091877484419075426083145182269414083747513659512646281862674905564467423617334837304465430723387878018553073068439412301941763618888063200397026696497214216005666081533211053768155249077422955742157459023659865881342512634860337052978744665456199790147118071273062640609827799283424512344339879028726755342609065682885152155647523219821897402716796137949739040141138140475491596129384261766880204298002413619060663716421492457556262932413672021638686890380262257079240406220349048261551838875882344391256263034174331943324477654920635202173205832434651779235547833934406597455897067716518292378873868353170323016991569373679005015381581058385982234808633323375779538587262155773424647501432410967595709527052854852537980955739193660956898199519899926332369185717957756736622752876918529946241928024575929779087031058150831434455649550246495813492597381327362515544039692112295458987947768381999876365925578839397663285985003115179725642323501184659988290542929966137962792608137179821032443312518347529437446201189652559184639213553657011742051356669029527974264399137920862420905342064387756569101872835279434775876956781084762262215656268101529871716591714227708730352501646523119224388734022336513033569916163136802071446099232531029182664362214967960226287200139222256103506887620988546109248486138720900619905516727277141282623715967841018208357014006229153939713526283889371583941467185448402901523776014055374115558028882121552917408268705505734298768659392046025365001226035483263344026587807549068417329067516699834693212285113419713741345653823619693037321837671728792828756936560083968705726766395334271530856896673694480127476340367763164093510207790424024573812291864598100016081089484802490344754385675665507904391052255327895412836729277294603697273809733457453631589187307598995632805106383053966323782922657363110031062798417244808290747419720787142604442160075467624210071446514598475637254223402692232474706222554690891533689470923462974462171807468641839876975925187289063176665998568625442651658318019042741395330865786509421212225919613116872694220255522801072095262843881162821668265141012058457783427028754131832393523451611057494332854329444773478557304617274189998741685297770193292356853066206446006442657304413859771707601915739246506824920046011086107482344608205788365830902378208400563836173620633566803957474222118720864966581564519347642848955442630536483836009408635043271976497649777932747752251873918097710653030867432155536330831096961233794623939876014739153913495608425275768060064599070213440162204448721580205406186331657076683527740097946343041335704229316002363866085131614037077023390035087335784001897492902401355193518138507987158734574126626944646440944147035832224640548746967630837642425073168272045946111791846571081272848654116872352723105584958954794247139019601599667667190703315477998104539655076179506248631382638518178298116284640632566102421857554131640473960746442407851473242722893724203675634143684573505240915438045071037323386782465079948274113379364126210687198328567780989497678603743687109406171799204669918319330186826723954662385809570651756935818089588902749266528310309675386894349150643221600886950785282031613461285679559013534769176303230125937232663730752580004614568817185548045732746316069043668294971090923175740948657613807351974401185099341056462157257190841460007402077512436551909204768348117531946937819829225504270362785953398746046256369528315764126006464275523975109569661934012836681207577860853030198692245475760277192472028678238530272556940186777776285462803718378438625736945224982613880706353630185412368820276108405505747641962626910584442993776291804300443536601143857237894970689390967767091406300265600031487617045461598056825327998944745050730584135178664545872306281445255820491102034144984408602628545524513544458395843947846041932117603476120667866123608690438312737627723401066935713054585450560067492839421029346141868022990176713060260187055981791409423312412318361500987070804646184877063859096293037228758579408268073536896956866809832002698543221608198393081839888704894318575731091699225029761457389208310924398866254951841335454130849937342048567449893153848343461351408150151087357330374748654917535181861323567937152269143216180435403112299857874919647461949996676630706923994987217387217544553130743965876982513543234718064657134847910146992237554326750944253824001839239842283453962960875199104602660687904741391678384601860479259084765155103966330898687417103583735932671356778357010090774021908659047242953544690423480354904604134685001722136153121256907468404974574635925817741258540498504496846113598920733449958759498200705305203958235729707107755224147363381179310507765095767654512779613901277385588795312666370926398852351973540928642704170662983956198202331421226295293968715441640112439841882660518373547679479147887346753589934352026723024738384502899770447895114665697795488347758487917345284457369167576289436507431044589030083993287205862046962723011088725961467894948319855500018974788705648221199169106548518581010303845314987902618191975843807793767296650475652052216497504457206027008523819737933621206038986443460935419278943731635452795638621769350167546550136362247025260908889387646534376716509966933935237673099517384030289212674286622029924673494710700965002619980374372664532420581781385785208263759741994684793290938480068007636101877730497736485916709583485967788241064297422205490208435736500962717864942805623699502464533022374960865072836040911763055479786213686689025466783729632833388093307243213933361674082131821038408816553343712088261300810215737849342376724539257984209736637040376084589673361266909956272234452446234384064287924617224679838093952602282297113163407459896518017144169053466945473727211186561128792414849797793798851089990002087896586072398654929045167242911139329991535620622817727192777188454447468495731407625337341303897006822572292080228550943950895284203553058541256425783182448080619451143469885846349637007424847123680265044781303796261610669965909163866673850685051731405600634751596387590772585194444437290918808738638107561212823382609168850028954211837144810574249574399844928992097346880346107509046744345342818653176147077833551064501546269500995603256795717141782787638977558447735227897236042494245885901969026087968620702378754284398208566840593039016821647731259135888124985842071060622891815119586639170156520351256445656631328273212100364727599655417498455371303165285393002945140498142812280697041041318528413216449117956255893865272108992901516313723311407650177337264105467629972874581730528069773334228451136210811578248460901903505372021434975565731522811258355829475400045174106423151995700667424991852343861874726436294133787448072306172809257822080708910295858097455265213051482972101388297069244763011656243977966205538839700414278911941727322720949838947318441419569386935157191911305985791307906387827798555928954813124529135507061780673547613042668056630075618470521049498177820953950532515174842592821160622834294011167032879741836127027696605950357098757690801925967726163699593216496217661267681151169536875776202799131485765661716131953986180007449250635050562593883622113291228127500668892487216893108733027066371430675042064786520036549247776984988444754366714514670451077679870041150138519524179291922942788535547703650200380592631686516841873410912784468299881607625043348340564279831701436891959718882063384032939276223936953882748502090586616839591593884658942813289749563826229885091084731249134037598376368536532167060191882770021420316375180104144186669369841626562520288722730295337624052588616439648768997116235937439409847443785899279280906861154340489006774297778918757332345562320943908513869052336393234929156172146514392864634712457476185645468719306237663533866832269689872059150812984918692360386036639690650579751616993625191893804607768091632404091261522571144627415110546563883661474509826482423991615408192402224592537808049801420429455287130100963756498665690664774281872689255099560193082203293675164198231378701922166552506783242776995046648047353677358104674106385731140170306178277494619062625435396147508404533712546344509490007487823820880705552907512213966881220806695649351818674362653394226323289897836119906926034397934338642294049382423480791170736248321108407935497887646699922764479583660833498783666223297054214592127910114460885221282991164669032279303030203609211850333340002915951268992650859799725347293630666010725997595061772357116654960206827385761077463531790416796183792169099152446575120887491634269781189277220796480744440819873415949955179167859798629646981648951743956169819481742155129872838469504756255300567852612581554573768596419076452595088667044822711524946978970896444120563107337363747577906658013008264643186697424226969324378347678325581936562624370601831372858252471253864073258661243881795954660187307309175177356669205130765835847900033346380736920900375854758481662252169339335661749322179229052703555644585780348285723941380363078359280688370287152782307547807568248304463351312225979716620009310688561650591495453505960746622187147677979410889941351483560077260190706111899064099485784501768206520820917440584430458049014832800587115310730333575880465614980213836280832939056387008408061077285900961426261808492673265859472456171071378493978340660447843618478960291019680583031520654118451813997133139466015189102368958739057624961179264491109144735075276516753511342035919165659029470535160246344783350075736141292241718712442739138300465567318857469684345194721259264847801026198066909008397239839630099795193326209560331496240056715087937915814558391527390120705965848079877534322753948329365949725373031741467409801473857676459072230537114105250315073091108243097177765252034100575687509237002270470412216945743733177369583869756866850947630063946249831244754106170713621336943510483817125738909776144625995073966094852821345449952928702594067471138970682669713613660592941211861944161586501055167743087524636245054543385812618610870155066262336349108431772657984412280434334511235600664025976928819359125800412491474011402661576214095800131018592390357092574970352078787470704683032301160530199108213705264262721951171694819952737597684965317774816906682751923357043806938263663308588701433216769835893113323768294583428619140876655905653380621099737206461222491885263664818750528190001711562832210186227177759962278201808714162414300404697532043207522670076128753288498464653375639466485214271370022764722627181631582932879838261898907889027791898394165839006823756423437643800699519042638187251767197601595665870926323602615117549211830884753886281734661866937015058789197838892655376846360021317293355471572914816734313729548661118988963207006466783644210509274513359471619940201112016363403735158254280855025592080272155330019360131900040342949678537090376404059924014325592425408444998581780753096276575043739442888093859302225768094998522107501944058269556007838311429495110850331287480812493626864717809383642786590206928441607537544095459942337526001703570789920620861335550816615848456120788464640292260814343941850297242681431738238749979309236396440321247400383001858164395611784506445122758995970330432219722801269388406300607462070591905292622369624554421459968027213164960847389806437529307173675286361927830933536284095915084498258520219456497349113239285958858329743246104165221561071433934358572125412480723818289072027025108495895232462331114093245158768424797816842507349372147527823206908828755863338659468578633781686327544355175518049799281101104414360836337406713442673996090552731366413826978955268157341512369941240867905361800474072964815868565833024157620648154024878087698507363319763835437211792014206644518097294638729335252818828414214931600767012484391174579484561844978754188474158251739487705827982642761187742296520246045476252477643852640721656122710189289371196582821564466355992319637989038820156648079502994883257285192711692842269643033154288342540688166261977125954646690438595241865897831941597568742156357595346330577921493322043005506624904386689227827904611608804085022627670108318988542985739740491746900786305224489794824043106835841332582001834253337897851956658484283328410021150561158830457215104528929643390258939926504847999152901309851820856006620827462258972967974742719358036465707645893924762335206364891976513832489939568874776833794427672576271656969658088889334078538073385711937620598101318512148658541843165611744646600741467162124546843692521414714674724816980983053005220123425042133429788365082079506248688712855827634728071085056931520207056393461456904938542037422741972634244383298176916752498051357039428182444607309056811777368776820481103021071861193153212912155963079063345948277086993713233147182570614410404393012938851105160704146122190130210119573713042562814970093293562048214671490969286471764600028788961288172909975350572788752776097822771262567306520385527561435775612664535040638634637408679113096211209340845479550675358311537199561790714226804615923624391000424718258439721335526802241774718580614908797725448473244328314076813559905350837821861651804115043455856626376883727260924762187848963254158909224098639244194938923590119906995756237138139807090176067261092760134119650683688910516908685618249312430445612941592433240359942237356817863878811011212213672397728261819756156157495323325115268153464783598811351896179142606346412814889927408022843758960439628314936979062642013677638622580298723237046783080066621838875634896675310684083909607854125317347263460077372360402509480852310984643475978486101225858024871751009891461408581648570169100422280377267584282227751291915402417464456956750222292474361907924257593695373370115213020198498206370616860173117751092611391640020420946009665705354964048736673160441385598050113614532360248619384097372177183038518281669583377516576985915468993091853313452805295870561911898019473526387482490481523837573488154674432510753264389619057275523824404903756875749919445006657611508637629871570138399731118490692540802404699821640667401499725126903155911468351746334778088143041931663416632936094342649331159490252689002517290639957842763592111023319334813244346226627904004363967960885077189765549591292320785434236936772710906874090125298424305103640894958552652501362255218490822824370140511937051702269174515255797001143953286082378370710281433894377068382154114682711483025755982882882708953929811378487785808521987788618587657300080718947278044637545138905707957089671805568869425205516101565524479594477111811792677209051133204147550317834981920911418709219118752542284095138854852130787339926691626855490489581122120380452591656908914118433632702271308016206661595605504607448227244082627965818569800632278206842473510998793817457220927099222507700335738025737328927284880740025623862948777469308233782309092644839957679191736484781755842916687652187588269214243047806380674979745677576720065272867896340385958323393889574646943123868263794333442793558055686107541074655258547882297110559880648828416097764123611476310972691036399833083423090073964886228427101798726998107799798003973021064158013979631759052629203982499102052599510931736485674043032966988801342314619721233614845812795852907614240940080461042744121569635244934610860500642035991123839217635900931652785593820043308091893290615342146166232222621668468132312278566001540452576583978372863330256908207524155554783543837923420324440236628398744332959399877079560159271577582000399942705262520436543124187999527562219237161682299112216475758820223805248914699212982975963703875313108805892103103544592448830386911191465965279670290595426651092978198216711540353522814310090745943455698885791045280094269945656527273822642890347691701520021090993433831796198188235414178054998382810733038007193871469759321034649089402240538788826504417907390907062215204729641836081375999438850827315859629282361009294787635763123839492919705135995518464429443105864720167179689877227922250494201105003362676287360975951464179378573199504925968011135482724279692924741963808327869821302093702829494688320593595051660763362516888996358391188749301721522095036920811936276800667188913936932931542511201044687495969714151700549222481477130093479202201787648023328045755160883609144233919619499264697123727389233924080899016746703324016428759628567293533267388250368411192833443107766819524905960495947498807802977335266605899913412343865521104661065592134965846795148357508901648275285004206588634520612118277724238440060557716281274554957168565677015192081436786449031765852099299129452221980292596720701919089875623281732293852085142591918976347506596999012717972795697071941812798478510956089113553933995049786813661373145058744119864848299042078108562577417985574519803832735117322713000543213288463868494600358394448719600866689758391280998112360039594925567455584624564604378074196574814801234891103507643626766085306640296210689790014921782271121300761254953267291833835159980058485316187700739035090233272460194842381401409501223725578189226281359338242658855417133612463687283066914687030930683623078491240607325285025823460464194063522929270168544933208603768437143248142999576892146016369370810995676458475243503287154962901161897716231687386385510556810097199223911833255267127931054966434373844801945026352566061216139346879097004142050599798180929792248510891349080425030536469817280618959134069639171393926651439752655953013003817953580711516183286083428833528979008904034359186457362996538188108471417893372661976985885923277609912557663191346454235332685119209341636447384624950325786445119489371854381584325465332403856703160688283983331191047990110606435893058721404845535961363726392175770410419572787733166174521508975090426884113905685543100467144192794325650867847192148474505427622894195984709022027439755462497080716135975931648806727069268950516187805312819348199791404035364874567109487194698287166276747753806831006401093313763615095467327745142384194182435449166777145637147818588295033129627052602319299686823495123686815534123238868567058680836198189328929581352994594047771915547866932429053629554701966464250022148910144689015286330335761785189241251727008610164399146774399734090202363027449709761739841648025821180940726153069261991107203944410250604548566719862556950127520711894537133328568443982953226574483071627080780999456734333784970537241048347418639785398835421667765824489119354698307960130453873134013291002266779643187315454756845986178331139060936256587840665371460177033225901347713990975487796036276813947027223643560963239824238883745656116745711683594569412830840879231097801678099536755233894280276640554131483651991523359909069940696314715583821872001937648313178703855952627822532208248118420559597872991317052960114202892512680513862652099527172870890569998004009432737944701909348750348122254260741896273629062993277901444181976826871601438097783786505533222823456367466897726753111551828075399320630228761477970832980153392494848246351170735762184584668824770995873654916197678589167375486047573474927054931623733737445315293880976295958979363316157127428147037172638318281979873335418508578566003236848442415636529277583716134744398304082877929462181505968566296383988392391494760374282588534099609111750664764718692363066955148763054038500512851110993277255173576866109493695323441191846327561861053566142909563946743444706015500329257855238307414775322431204926795921297635819081395330770101189969334308234507010417838936612017518021832684352903132042254380632782432711798076311140870662799221188416406882512303660146828177595183563281913917328997507685009317870019857418824275721425605381922450603947878705191395244399244159026406346441821615219240628721755996449421193191748360555381021323461572918148812283992297462786550173454383291746880876926007798956829797610094592306247258719822514091922632054143250474755454068228437507710575442391729467662791341705204732764799156190379182129199413896561428961127658935337211022260524639624953991903171991683469644883292830517488119393157550837124761727369451301753132505339917011347150784730247408971222070947798701521007065839452700161752072708650989393743929573381216245411284334163262528180589977304355979103193197139007435229899193671255012722106505553743649702303137427395225325813559359716184089101338928887347658314606084603897122698073880793444070075285433763237729547241702759811648800604650441060288485259875560714816336246645804880253604890434743374596960302642948800193863461346474362048077600123289368748168265361716764279114327666961278816915572045497710005276389392071975827077752097120159996107075251956196018521445760975322954616930007604603260973009171761425592201810944852827590829746737349284165900658517099197879153784065542341101225463484856344846531211868974100636585289306855846617430213942810428318840690125480122373578080227698869420256317349879304912758023651917300274396057336062272918458384235475885877636235567999750577141002606607784349775949415517626239196047112302308842257892644423240157465522051328832555960800774493142323875436739024213178410382914270402723366685566912791279201953476924886634359366898804052661617027403965489416009052558280819754284592614497467911459235935650216980127599573694665305973063317689881635848573094011294146510826713089424691921701757253823604198331213828153691148662678713046089647725405339618200281681292591944235188310751554272336486906357041882386538145399096281883752205535430334851152794665164110666039000974273112722192112207975605365989283773496721523022478890912812272145213184667475594390818724178251045843606957163932306208799021050286656347556556101405719182138156759205641680084788149975362204769452514055679912669632002857920449775235538140759153769313761594110814273151069582639519331854819667017904596953797967028577567819637920161745438244328842440512336117288734805654558236142565439114529764531363817641770898010317954552191823614041177885000945293454006300080528349775864748290531938108235581834978987778704456435567621831572752458438348693039337507334802274459257210109386614763201733653869530591328060092198752591971145114020013240218703515950928937825411869197707364506161561146603707461145241710755819986177774108080745747840482359220696275268183107514825262535626388831520458654837464183065527623726070885610493203769180957689135174564941733958937831944618617420907876021731669137788023043494092426638328263210190824172396372537478529457988484242180356743078877804060910985417941951251163887715094138705330524422394054642739183934494982711700581440884629473712946585782478501125072475232528187880068588047870295682904685207514437384518083664607695197272154528613943808005189420291067537086212482131827042514658261431580766635545285281975118100361396826882651317389860920040054278529287103722896850938820291706876449611428768708454390528608321863052354482646209182948218339229455323543802943388567026443243679663493806235201755009235816110034277448054487401651060197837912266162831178760987667847962564182531190432202668936358192590969321417055944083345216899576945808137902636642649361924866380983451936430228312941977561929850261028790639302361462522685223564288998257921073506399012341920441440299972541590745223796703530411902204351434885878577451317567682063774012785901266548083876661570887116023699175340324632497752569341814875366764096447416352388019113845136109321955230077226005346002239360274727590902763346562142808405613247628057256157327613232995200743646291582849769083794923228249938602959243538913668967820740004229782574696692329277799131771768626139108706991612625019574802947840633849887079922085668810998658050305772703556742024979066858455833739730986310233098306118775087553885821842148601222250431797627588551746799333868519507996896394544849874860642684791695431324883728781239725071993803442576764246458071304564466131408373419700762401007268906573943651780192007392352761688337078596821755479729379121251205831978308839736491353256677245332735107625543774515587584135347042306823068653801760642275435932823071672707691186590852144135868937029683613489669673857582576556184172568975100981271126913267491659592122201040437494604239176647494171729358349916776103178992930063527434198174256710587263466428942592498909705792208108128082211558407373193649456767176764058067092336104326972495187209961126619967906025901693652768395375558634553448849113584210667783259664587536271160634697330669298129867967033338811064396571424452036869662576105684790391726464606236268477497519481320709246967738236643425128179227674295292683185662464364784033792662482065299213419836341545973955003526830110186692879426883551443812250440419309971408011115144364736777121457712720775735884679126210275086350074640678445963082761815853723197294988085778362291265097484159953316107103382922172904178669835750247666419800368229271706078162810910066651662029655261084486273404686555293872911239332212739166951108045031910661343067626394763774125119225173771455150177404456281402816522086764150555554558209054864557340857193393766841212610361089840120395962019806555784726021572145648086875311687136557759917355298345623217798627127485192424337996789685079771773645785565296946405141539895017906537182163858633851794406550996436891562903554407221218331799702179768945185235083021122826208878171670154895679908749946479886703877860178957068066317405007868092675561077468268061863439442516556376205608942902636932141230750436173527864964399816720809056569944484558107004568714937194818696764046809722985587475094742787441189442455524754381686660295005500264268391122624789464615475659898316481518303402587631158919363200026342649446259842603460428754648916178385474638199717416020715132639470037493239620343736744456780934072314254145785689447953444767182192742216133115867200207761805621912293610847712432098513206208053226492240273908690154564795353095056968120443773779706145239739811281297822732833427646031698936680247989749230252441695741039162620553941098197265480081595591947797074998458557993850270513271425207805182235632492726548011631964405397566969989053213915910668667888828727639732576222514666486838083060538611562541972859441206880416415093326090915331388101839068317755058472786847125987458097302963528811375894970127496255408982365266560814549667482737347153507876629075476896441033601291442505050873904603902016600625736721210065106890419000786681563785990008113485176372194714802556582975782119801886269702354872240457986721103038897702196277359080096593577028441226512905951016368257438078867420690801785880336028534525615357223516247832735526528272430382998183512832961790316605634843799466509818439763783319751454651179153384982715468748129749166464419591771226382951577984018830184923953549659675696132637372713254566342260863118745581687695304741221466091008713464545203736351851061307658762215150728132368702281261580945032750397622556806586447239387611595608167325872590555894969094431999343466948652322742689389717180102169374050460100512978313120641007568315846841979996766001056379748004514712636295436562953887209044842964744423349237082602023264490062944549812246015635759041943390474226081824814811350850651152714372489230684558748166870908653540489616381077396542538351896869211064048960529879998602941903808500879689507525561997013119756178187163092039390128212089959953129946723792520038192120557958887915586882927615099919145643972106811242675419417063070078813892313923807692325089185829695700520775131965730376222877158764528241435128104870370440192398614138830471812582955931110073751172494176260255201091803917873069892237155987380220864131428388358162522323849348799064832473326295572439515969126443403977850121099601550078466414072435519428115299082167345935925105493117428052546933265101262405848372119335645933601966171047604079370778595264822256470722040673726856824256733823006471399584552832092742290128719178141562960286382094556418899058450081665591742686615296919487903205206102240980237404605071144855400136770423088677214358790398158128774013446265092340455177155873740983654500098325585052099851692976490981243257009501775152094457405054014031669219518696216699914131203326461955751053728292106976089642505657381599800467179377120504952808882566691801941183995501114059401196905792924851443342080168667252023573673867435514009698835293788440009349162136942832507177121947673932704318451851730029908870304762805003794105941071742863946128620393691314754313845594655383692806463101214512309165574534778142571768442278039999283902580439332575740563248570473446882987100901908797797991181248722461262426454427711102995360819697230281792125024002261642424440510507651964427678747404884392714597724518360939508145219930506670847254731307595182567271525266643286261166379219001991496274580902697294505478514546647984162011944038055280937014615872310830517381238380840685837997985958811940834746734183516209646815068439985893522285950747008378324914910272308986786521814004648080507154160468935467326475507326372401318528786727467926421866905080979850302182058172545150593898527879391840915990255537466084399259947675514778689564186923272683568536234978014667728444989965296257582404218712699076850308088526875574926912106626492539122976168414984171545833403800705895278448033761852575303312472679665117790504285922120557414527249820962402727696355539644198394751438051577847398608441853415771091559193190723936167867265962629490029383178499174365833011739453759061288638318325817516267391802229225524959486912810137919910688612828508639969882709944790037791835576807125073187489148276292956188659506865869078618680918902044750854354122771824079318537912136560298317991678114652815557949792294151071429932221988106799315876800512056687493702997606403652994900337412525705216298381361621245596299044642450787828140262484194888787013710829848906529250068228241178147887042773976756591805710851142834402287369505442244217578140718934687503209693404221053271573871211722040858114079418340202085290964634840133003641229165315128477290099390081501200750624183568874257632897251001586550974180944170221566056703838054128475359932381719422957818264780464661900761949540685484351345248978903726624372392285787071446616455101378350279404370186504720517189945444276818081290776757369321241897556550517337842257022425832161698853066462495024541706351082710801654143830552697556824531574946023106184957040665731531621558062534812033473105842516037183810912683747666068800074815260199515787666356067883662332861059070813341020598522775250037803761880437674164422002095055620049768052473733824637468145574191367898545549812874002628808205409436281179503506827004096160986492452481267041358369839776573298502610188745325582580960698931625945671246058974859999102536725214625636550221367368181423378814897727357671863673606437119534182784359587841524729200492426840270852621171189305606963347808013295864108212731421807958404362567874119023817963180269080631178778833028499864983011804539397795737971477024416161200663224199190697563285050607747464217817839385592383447842070662032743124465323177106196683771167568315844478681787354690123739374566505679067473835934247027841291743814914610868650702751669601189990776565238585855812062288026571089349398582987178470867083798151688232729511262187842679580312596863812725266066028454192794934717228922724026726985034375754477921006760700695444519736920975764655364777035777684024520075676648145966387154445646516093597987555618648858641429128745274748318516600530389838708234156161357006668421202591142163092435736905434516028192656283993453081484084982183845931928765093515487240461002411453717397713256511171731431144693419229021947878893615400290562509233623108324664718707058317578871309379268054586762575037733524339913418439852345210801851263569528809231372525184997344127257321373847404572382639927323485358528535460450127946142766358440369450851348029820415246766042125157541815457914172538654793874119857165718895712768714969845694633367602583081835701329068577166396044761996671904848664963426711607447277375012473112441657830272621563273323997817621090012976230918160606280453808059694971416456335441337905404966167814352339208336405967490239383384307149822985789170163540130402094862909577737037799238802985305871579523959630924665067976751602356740697944664730756754999392530700581788715115375215798405777259386785839446349212777988127145505451134468999914703073033592348157105511292988348701782994230930771106881797084839070145098721094388347974136672056881091151241390315987350199663235525345587787876291701512193000189667387375073745447049164954848727098824347844948924394887415165189963142800504201833948034882880680870586404834734296680028713147321299448042831662140152694090270991380173190248326074795485114296609789171855924620320073658135618380744424296455799592406979894883181955350074842198755299503976495906585534027140909406636196331851275919304140513080728193600222303662411342178599330865573238931876730190213120154829115169819974611373968338519356944098896525969626844555022380691129344264850556350753434181432356845928821189893173306479425346839011645964729226400322056946267494256564071140572615961947273276160037041951825866732763556192566671598431568114909794212264259501985881062178382917733497819114474634207528319572551592374121685811614474365794906974895835823684162814612794163076756665402972974865866647584900865713236413380477357699256360507775379364272209297009808217321598923922249496357685269325909234509120114379444684836168477582230749366985013986507713762992634602599391513754446747621355906927655271755630599685540647706427385673695198337893087858711555161565885090946314689859219359988799922767033094397651639666306440002099296661318630784970151120222578919326078356935685375323373689666172461351951179238756030889760448752770657562134563077691224679204743956921081936991424141997578424995834880270876195336843091149576274596402944904997595711241970713012641067274901017396355805539988505140092862547399340258510135586909774845470582183844036104195264630149483036660408073394347838658871942282338423232369065417474106465715693735694875651813957903346588104163841814409980075088687217468049259584408701352580899261129323427497020300505887045422047869419150796791316272426504222512651552513645752830557934986297736714578082301958408150084427009194025753777527030519097534140609264707456972852280023818265348230754070556858740434423576626312525652353678826238167342308753185751645174922981795539605802685927845936184674633131245008780981525562264175935651794562999725799134630572917108798895430318533654696471814242460511985549636983447912125266218730389024587286088874093026421893036549098579956313739288187120614742430335576583897435974968106581296067618561841485370973577442138177258951380436546515438057496503888825939260002977903062215740754184021998226224106658893205789244179873293734960578857859213159965936508149995159819201485078033307456829609274228556757593366618611757317609923307895187751345454734496407361405217324276009984247523653053692739082215834721832918140708884138586078640129605886543733072253500852060173406654671794815479312102126969769029593938237570586384266518675015774812633213448719627296539457178014800352673885142850191030460367179121259603756948582876893437506405909138383639040341958683400678512850913797925392669298805109936143840765349343280066171514646085444009784886003899765263429055881794795777301362966220352457663108248020951729354919125302655709519037175080193523111259477475301477988925884806297318412053650720033339535684720488930835181367284479670957050259709466947860219731504169769644993406895705301184941215101546597576759536263374781043981068382312057656453279624034037196357319923373032160571236877323336073268675689281639836827165049092125359478163450956146984687276606426169919745275965403038396371327693828329083667789024545023044089210881615811101315727389817076297907366916884505505093493247185587787567037951177898098028995851140299305723372257140778482493151321886730107232525811864568866736403254908476009956953043865428008020556859368181591151969605940521353187597794459236645743502820264159723212832071789870278537858878555867972401022108169098429522874780083275237099718004439890035329462867830003786213808755358000419846666999894055433294592253357975396482528177346810853710400834023691109637419291628942876469373856209089447970576418990355886690987093033989125329631298449022191212310235812183569682932205974218864459182182225051062800519246771304327351906293051124139769554239345806784323947874908515776360563337250263360981119385962517809386201006781981746734397567724888604122592143827053298158266253757846173263258083636562343330259849095525761083214378823262920846534506600016601255538235882199744904675361537921902515075572471934477628356190964975446279034731119849849253142347796706535723883318279524694612280953895839430783393978022197495963058005273205100085384112634654360227817646784243804890079690981059708259430171877626030283291324541145375594432257952355662072004094526201927347921479855326239022146079675047473257720461769225276376683540217619250257145776323187779273456404715539558867717493290859857865249878437256432392019230714064697312665304781853829729451023890401259877818261129600905432390208683590052160879790206622356062454201498928293302336846312236916985287865700382059860061822925057728258170804622659515340210823136004976721139320059058201101052417388743126050652807793439567876841936651296110617350586299785829455831341636650476068962927035878285488296653283574887648645547972022363224851540168520495892199015354600576621000519099722814721490963873759857944552991911845035499741943937072950260303802315838241392431251840682790503978014446415912542687477898630707801240748639192580376551543094445229467248851770466221963471508531067519515759400429441012884651127867932255787858603819985407039387186139199213804742883825796738503440271580678743817286443869617206339084464515242862638012550792324665687355731613933169639255440579936743324359116765437417175460933076872703474445951229041752164392471249559712842290500020021527662474142138031888775579366805415166356971336504330070910829779551685176537070823223191861825262602137197696781650058626306806025583525325818578668117240607189009914774295576065759896257005036217900420475296754987586887750247381196071847742281744255632764630774664031926702888066286967591340895847211213206303565436383276571033328947040337902067676401764813455143011952049475049686504174416999335110075007016450250307625806325907093392201339853507508193119667089967132770902013634280538765366920038215472609589358237449903850505970745076792834917995201868966698047336787972126684264934759889340874610556165272176425153960119753019401114455377790268923096664786047745937280039775190418888961273347192302986047883412764815299838555417424459808343057501400555138279791655780594508229235898808908412706720194662229105139750611209905761586776327409074984830215158616612656534033373527598943410406065188842797265637700110908373091630096637105195530526305354613947287445562646642446072646312827571149788301217968099061190459273265224491497554700616148114828536107910683145912909660469730735126068737439869769962931594719559131374487616198442873519069948419380474364112902910753510083464476749611648431130198609216766002804322333351055441926716848417272681106913132018190300206587208812827230434616233107315689591793856701403916764246957763118351303600933173916382759255604189414187592697479350028698928510945601718594686763002602994752763129337107294967349464471240453456394484362724349462815152026446171017353645539826137639835916237711586799483665381938279294759399411914731961434271793333396030158871922921550924251291367434126311991989058954896809869449609121631081136480234598407539889303482676931752397787270603199462415533405702506420915819201418092062036761772632659890983628061113354405865323638808292422816539007096073290581767400076286355052443604870634909817705917002002815019927677312991350334179778202399076107172272807652987007222704700705026663961158551651902353425388357276503174015954435189578582507238503133939466882487630543373867323948338970231812752039099654193604441711902317318148615339219779470382941347462743667260938447507468299672256465287790793053690813744094926986082150556318497124474166788780399968774217333603607117924875249605346835493988386386766483128784214047491765300803854290455428886526861134000965211363361569230760770273112846064843092993148467304200736430834919926830670356992050649197749244748690878446829436884525954236745804819240585857194813150655411009804402592945557964887495580166413880708173854838704494634796504528633730153827207810104062739188090595465255026816971423452056304410873668596060886647365422013229746594486348015301337369430419376916819148186737091171265095045495396732097584129897931539460178738682017946355966740460262553226609059042943793470510525960022158716330566089122240409064180404874177534824267134199391137949473028611532586312887734315417372287960491720518550682004523697190480106709159109672011595357779513464056208502172668664296705180002928908895998314742641407741680086615898133764609128884100539893906246633528435097054128394110474831223008943368516106604749802900246049153549323767382620129183400737978953792659975575931805738431642319906569632450041084169302386091996882854441703155257468537255166854710814541437215010131604124422337866799805379331984929901354266868158532644025338434455967008651080066528255362521729825261063156064946371732962211732345717107485922524255613192266304252894960123971173719340243200603366176085800046190181686389380625514599444058867811984848422294353659837391597592199702548258756748060566774565332498237485870256347687230211357070058417593975930248991569938194728580385779683382360362985354895011803487798625099530899013005157601355169793300403978683784114430554581641849798120212889077697246037826439472571336176218569073895259735123077548353787171573163348121767657935825592179424891534376518347982157980496136367726915119619368695675018008716011800318001775717472094173281310148095288384695996977990095546847871325156320609026121791141985212742926102596081386245040165306544013599441517060703744319405076326531041542380387382500337179948151498590255346171931051546163559557643755440866604049239090186338755168642083430644967223826458508618270466515451366250030550636298137298302944143851971037188718788871631079632555261136824218311143331053123542633664266892104502835872810674160752063567142617983519737996636751516953696208923466113235928318216600582556767009491703493529648323957106448693533942435513138421879218767575916722301694432705590276415871802699670625447340390495281399810576070958738847381984926410058879723922657444377271425490817520394807592394296287610452028626492818577470029107370837078894107609170652081329208771810911899039751575323493469705379423969392965875556046470973369772941285657882675547156120244948231669084326563951879826529290911094751899790753251105396107970633708595813863982551379181894621181193404423163194630031767761391908605359221347932564617075830820361332404643348612831104588947438355729922220345040737569094935726352652075445484864763186230825356604791147792020872371873284844692966959278358480981298416891818594167376609638408768186797451790620622418658491401989497269010001799064664323524138205099410214800269800241447332313029697358746779538742039823873256128770618230784842107648234713151138904943307621822398805111691153694673075041312127619050493419158533377869997479366774794881855932782109712184790517291694816097498741211470241991536056290666555200599245177384056411326728824518169813494255111672573217066115548006605264941935309301167053560850888179862738454696463562170273787049884596085884335357409291897052198543788254156601621847824277749255953586928164828283501463593870815686241049769762810708702305644917012310929644407825174170467291167179332141337185393016385565212826852334709202523624210132228559219538814922218751635199430415409289325606898960541044206611514506463174969513685070539669871429963108179088650074510852780194813439679030147226542752059487787636111137261262724896139489819679395284071831912056725205499829016346558346989368110787192216793656939025537369040789000812009523656891542957834288767051936715362978069121627333473418098221765948575140276338320823828800990302885300195266388611087980553699419757743974796681345158132981335187578818583600332322833056734003733971915684517601280929238021072113871625673858725153451263739610628742983212086028852152029487301044056370255023113425505435063775947794282467227696132200767241528517656350835763328665978425728665465764282204748135071289561367327031979707939160333532652951709753051330921893105948015058667306262040081442784874888830771786837363526020374166110249945751554373198642557357075993935090471339930421728041835042077080591835573525575412391515405754058455161300160684653995658104635451842958385753026895258088270931164797945475501870944607225129401948043679103325209600263453710228291883501897622875763940373380718823328866323141531719868337942132655709402533967970934344034969959051354234916335420542772590872896308532362315012125375147304406480305330048151476345581357768378652314510921600842896374103660162941897230008080203957282500771657300133534802739829838066520846964142452335733042057297961122051386177022255009591916904544770333855919086583113983991237441209095499407709694109330555244537261566333154852472152078805624505336367763368505472602776511197169582414229934211308851291243349752035194510687079920119634224977814626917513865522634367286508878082989489736143848467900320427321775518562921220015054573041664560844627792434565435028835075826783105282325657217175262172163029645736938579212116811373835322340915867026379977392372297807386697397830652478925138402058965968196650774355958043456560466743794148388379913175797580843584215339025232113475840270176263461760205914610486072766183139903411723872441788011402020722693723871447378635578394102077099477561416615612939826795002203870141188510424279269578418243854804767563195956483388521486940576988243863545037168621025886420974132225392046944104835471594410921128931724496423234373106613190260017306512030227773179415355957233794155804376632042945387149542897639860729278572375997553399145592923373987285851678635741880883655968321831216142740440719031302031620484301600692337508866521118348875543535246441469678115125764219175807429347559241419413242481273919564679467293109295995335123666775908834428759822389656766619056154843194529519721888493202152174116662041473651444010215261638880364858279819316656601749579939186727047293609019537374691580049078075246676212494952409745887982103895348015724035260137973144076276369417929197500733266740887382548520302609571188169824427113472478563413693004229711633829625791661525242415022131191580810543234228179761348018649439336202385087067578631288879271398208165802211120053539776152481836620499671639178606861856898478449532813499883691452384377046992339515730199416348452199750700534776909929461705388768330551949426156181799828217521982101986435082209598511185606574946688068418572912139847425395905252392115455968350847374348135127338904131100395136387225761564959868145790352344269365070417609274931884876876160608207387954409794622260029592338909390130727240524838657676226854927471657732602534784235687752955128264310052355032353731857364035575543612487675400494246662663277997151563839322482391026039065575015307815941421257353196605921462472880241945930254240406304127838700960080253848448191805057099090122172772650177038091482006815402281174577508903233613674524247066753110907898631860530867232602727393411161703563382503812600903594361231331113617582247855861052463263014957730374953557548397645017677823133830586312654716132523509169418719066881554283190087980505285605027669082614689929759978645488875615047880817004880521156914468662636187832846345343045262805742236495073181787153916854599284869485481937230569108689267185134164305954042981527711217751018837341014350773552889063025968549948703150922980466652136795983835613158930028574147229924590475910036311069109525862926954482961516665576332342166527706863512313347567170236057219304682333060673280096985149036171359992289311709157245619803524425782755450621061585735549561158943813508629155426912725601415130421891736008023839097791144881915635823009882190335330249585823164029003416007746275529737080976147939902799152392391500156281139286224084313518270466004489631232421128141530159839604519434128578522076854058674846124275249416068225304022275244898429219033793717060388679003120092199696375679007807061541720374655476403481079348267159736513186312816647024399930249613036041565429778245013715786007525120798912977500161662747382931710877919228239695803230217837631440531507072130242671943447665826341452410753866583319565419047249940145648981362008030395994899260053359511118229205280311308191086333247092746661735281560128034770624423172584801826950660434593614023687200354880488387548582040461419521919376440913886036686146526278200143929577341758585711376926732423320369687733182357701520221992492679685210704023116698425122190093589425732357445479472788725261479158466747921412496576127485218708275335312614298378532269634341661937840098929095754256606260261851762270053111508278617634021255625783412225757041979829107189342740889553860021186559155524512517771249257110623119357662082506497778547545880778426470622170612218653048484888059863347722053276483792500641024840994178474488034398804111037231310254674466939980602710067265861102898607504473821128706824123926397464699933845588155590114850803602979582438811418091520694805994098245134331464672884829037209624990696009896333765613049322286169497299267166399987338785440055856267694411496198498395317124634603171871274906301013002192854208536404058350232218920735111995559351203691179510155699983356532934152230674860334790174174190213772691724104002326499237154396188982174370628552224573784934619500108199455998060404780508697442937559363939799589732273524247472073490749155320583894386526270301619677893137422419681197301603941263786439788907693014136273261618797145897511625316763739876600561015357361149502761034941771044986825754147187803469914864415184455970180456554567066136959092205689977863611971392241763953542547881476475107832528662326923472941712467909326979368040432331892106511789091405424619476189530751242275662844660460410170034887664712321404132381837613510929843022324815186966071433100293902762508735415291309734150874876371752659812876702625464630262027437598331541816616880716812083461117450365242053130992262686022765614016236409156087584045204763397399508494091759040314556633836434541778464447717278869951275540851444753550063314101716715135384210542203775642462269997497360246023489737786674136540886241340655952675179116762712363184917976529875144465694411184844578083211968526256282906737108175356760080142741295799692570684539285943815763345484347555638773449452988197558130491734244361547595315195936590659366875477707887103450462951777540773994087815963757320840047092362423171808581037067264675816475228391144385497161902927603731620309795746138015031743326874764500270944794317317919133050191762066578825112081646728587635740479254811326102350314303371829046126368004434156293521636988202360400966670054800189212637238539439714717586300464096294465377203517721791282591403247977668250263667532962785717388406443533620600202747095165948189789426982330395837788553744553222468145535967751482672483750168529141608966417295519974555741704937712771097280537178111174123630567589742372945317086838854873334319040123208546928756861111377086378290500249565605578018862022035502613770306909602252105938534934728654350412352761775955203665068411915246675493407859048228331970251735928068845568221143917377382360332212921451950169551966343804791699167131909175847012244098651786748058846242868794211369205833998937021698438659044306074970891182472125407434780731873392100105449453290432563406893575148816346006012572098599484676472514149149590631201798077926679123569656502293228918718170251986927597364927576794761120587782481699699315746820914364278312889507064376924381187843277897580885098474939400864416195172068466234413848951935109243089836414632536498119629949688740498889315099204149619520545448684958232137573002856930309821059576944314949669332838519773320627207951060943715746620251431152667851955967599943392365415799629660287653240527527001585002815673066431606071787429290656000124691265473159325589955162679001866294891424203845458758525253618776881503830177237502111391098378018729099593856874901257838456739276376390369320341892146169287045419685031913278240198817252370925871906612857559470176032552932955031619352830574490671916430871762052360980266962849067264818001770813488183939441355507114095635969108124306742562116917008538455863888585509533823537288305932680208553578206981701887447286935139824022191498574275673241861203660299381254040880775377755747038074136347557165584518464533872770062937033306780249801388734903118218184657069736387887805692993944396065942164698591619185797279507874512904721428135687330116210110692322545861722855468900536755480770884429453705432918531761718980410992909100103561922934979257245936472348838417563761267330342561402896167137858982682366189277552478570406494603495667198878788058261090073307674228923234816368011206688596337594674426146183036029072232548519165930656772913919422089012877411915500786795017918857693217989151965911597632070095962360189812902663906041573097321281434739153505532535331605529555531423266685510374160104118310759454816772884623738345099409310468077945121632974141759346258126888838775029801725315889062866493084751397312499082202466784168126510118100518956165659964021877875443183998315979817600144427040511479108238766655246019771722255199481553167999251136028981954995007087730889385323698114604766331469250062658858048247612200385454968626179194159894791337893833402237551895284285507871737839598057997731823980956570010551348046806558635521599825832190764128758695954942932918934620876503704105042256935865808565941622785786835577990170185661511803911058523025334727525217204831856675421706578179508293654829361720115964471152279706192052396170652353556258442416184702440996063774121739037106603749382139401746486221703362336658221682166247985583159080727384923326013100163060348138435714280175495658482470110363289636762506494453312696534440389448520826567207582958892808400435359676805543755376428854208572335377460199743668141083981117938468104862090665367748997378479473412063752692181228976208136162048268412348903940210889250341878164703361638525997763561743047075184380278345625259562319849432620793436660265742061624307903059612668641076066781020177211684319955112959292815716796994323350678558999131953526786890415787233646545247085645368089001547603287740922268330205074929596336424610498165601235933472984404422873062089774997179151685068770174545728554636388124296523621168995805788155675237412861846468318912819296008487874914200500182640118832198224780552754381908554842340132122316772717823938221575499327134631904726224952078941685994121742729564538318347554648993970115397930726985819455869030308055611953413378410460641973146899375359529952671610657271683162788918008401450402135492835429265398614319955359678770191373808070197920624093959814601028118224576782564882351979783958567719894303707500881979876828110553811261557316847122419389692660593876133774661316275978954692776909038600056191231690439820684263500057088980665540213648910895640985323078379069683698066043384357353057218430844552016451869162144190340015707032400503243559207196952152521311642418646696049676394252072880548277112281613049787495146356600877468753695014676585656289851999215721784919578568053099242629962920452978636482137183992336516994683493661749031986688988893521809210279483176977418601711824602124829256971079182509904991424563784917563471524700750470319884540917192320643044910107546108224092526824469227121914066668977182866177640851757617523937771156531254145072382123891377460798836586577992421976023149071670528329737455623666784976283717665907805743346077380239368168978625631583914623044873613097618168037856873987370130253241228243657963966090726032846189240545892643505070030481715666976651690149769041760583590370263248270773711256697091319758015134985808465477761196908928376956838433213275643755263450035064289210550734513377461151289456570103282678839072395988290724430104515799287509265872859196740635516517368876061197468704524230843103839206684318699767881054878951514874588462479758180147504908789699845001750543118000939233475341220529837254222293462472340995801623210447754513170291425793572860366937799391538032597586189588445792427217110089846109509730088091567892524548432260012433229791615983503555209359626688474316463474798406707870942241055978576977006625819382944782353381323793551278669169414803650036555714837365178366716476317126195165839016718158759854343588167239837942064643232819144603716550286369967466172561696260744981573416810432437944373279547106418963641312437137829334839569674067392295962038276349337433198145758485694600758790673895077584253462333993525591096800337704979005632072386714075052417748983125088389388047972406151136341747459513287397389319228253016410011113831189750382794748208210993862200917981300395750876006098712629061375916514703997992907383465682784406105508669534964729588124026918322159322907538956477350889238685825842191330225905038625653270321297307776295835751534064449497209914409317389746377848294120307371941487484029682314397435354059151160130828692438923185304528602340167298253855555701667201452731599541170478747306610401733574966313222239477129765972557263010314774933776642401529158992899724341102896957432375651570782104801305388932765845124365042908134738843368479793224004978830674578255961599157703870131791623387234970061456226461765282583515930407984675546679045407675056683097353013241343165305773646206704868005827746040607434000736402005992988746161970821244965616944701332367514073965249657492534915488654202826647584519063798383656494403320838349883722436064901882246491757715386402307369534020751021372787118398116544456184114948540710994795103235024202976391758363391056007765149649248080649258173561179498397759367178800435971901665745248241043779663827942393143168364736248080397530892301045564363632147960826187658878965802446378165133876502640001858219038997680076789472289563329234017102299794138046744754807941255557663806718027967288376792974730438813104935986595655095820949650189798503572185544246159297951408314162018128557975823247547008938889443280109943119220238376534634907970298941116132652426866761857499306409885997829080168383833187260242807888557274887100978176312666085303115568552035624675023847352964220324914712575067715589723225238053355536449324050858677562496318953443119546370215089854632665682088229445582163355822610343351639538064404053795311113192685288087726770525483090168974736141210272722741640420909817722212552634352517492117246220327047972277563887790536797699048986670476188574784091479733431801975488334415431868298290136314281255958964228066941427734375159182773507997837438653450808018250172779335991084946120195687433089074520498006190383567310699134420949322882797704221520918627341023646189464472983636748200722851329520206518663209574994210286291689623680840623222959211340618701057399648056691776924644076524031030799030421464826279946865761361161593644938324262265734306476588753107727567586285170919117673383285315184850666870521325970798191740097727336678934270418066637630534103201457870048023163625594213259021481174675054326512924972823257897382013560283452363064566166355873169681662407806569021373871045334707055302945288096998305494901610727742376271255734267386453768978383445214204913772008455168393093730701617074507246623030298793594086609617025097261020870135658062684284673387871725709745903119855587522893946273201383368937206745818744375090599029143244313084148317203469947352435548137973915943471376409150477341391106196590425319565712235116130283732624644201186656534294242034318196665950004511532241779319908101376741057288451332274399475413344092138135342435108592865368935481898428711737135350756437393553572590410873508045669232622867036299042582807416208674442328073007671875276020460942578598398052811783644482461077605528734043648419244189346397403197102584277985154711373456303304756088380498608573269383279517938174243455913151891945429316316557824943908174362795829935202471342724769666850502812670788907192424933888289183749897146315648980869157149250904653773783336263850437734974552361851374866358013127623125172142543696995280663118996520561591448801926907628869959746386402730995608873887367850605919626333211747596582523981554713272574063097099223802464407172836829323925806848982823241465506004692695745172230254263658710904828396229556369143187664018660621083094807105699139862015270112019456025882167543998078695065910651175787533430920575350243438419258937664900369084819158864055487933752908502520308682747616781527188793086859790320553792843544761188979940103784807393141046295114259481247334586754286316717259575227729372319512094244093708158415657130735418503095184041114585700251327404641749431108237406628734304751032800533873346307846711794541215556665084794160435203646627466649507391748196510573695784753775850340824587693305069500669793224925767672389608039495552943332638063705595199515730647585486498920196501021478927383852248880692578907419473418506388196725225637349216120838006004317844626533884174411645384002542628140090533717534369440335092560394770860062089239306664695124597763406764386836708629236059389704769561227622317663208274097817822145458069723688389137295267079333371153366793702948895338718539479057961610177137748360751823290728853931611671991634531449919527977290840499734281155351012519535160405931219847293507053907496533854429703789351192710753408032025316032135600606765379182367671034971431723530294911540841882911631334157159149364715455143970799431340381727108759421646017035354428169699084324150250603874907735374476580743881949951614198409687937842520537519069843563268846974177253757612065750075440148893443718747282063705366027758414308767817561052673199692893686570041516379217084502922366248133635260618914825509540299368752415423142095023820113160118608349286673019697859422674684302104909246681658204926775800580819100801420275583248653865654380258434991103527499071509277139240154640588392126686588737921827754571912312759162333977484473034060627458922551956545179975525964759904983357212613220169042115602303202861187553418751001517443632651131561858034496919248975490465522849445215530954222813848734024493490527277189295947889604052931376679231483950778105740941323434210862947591568633607011036837047563813902109030768584063406864503654032996345273454299957758998404241553025583290668599971543236699017745267904962453047574719658836452312119920444994818789325230801429946218053851657734014495123874961229857679410492844334856730296477217998439012157598852120582924796299758273488929649928467532087878532881142543503663466489767761440011358414332638581670353566566533690916781741635932146336254355554262510872239776849855835265046901615022312384262404309033430776360828398564052088089085841979569144358582567005759388492407780863012108818701406180846041675413192827055084889296171543622606657409227481484161141665409621131192597778267270936424632493401773490749200156829951632689144800455216109213519362301699184542956397844309284670637461705454248922453407582122884813661436867893655973019014548645462804963724233431150818455726282637460814120411095064338788439291345681525389962496468629978392394780403223552536460223461966100847218561902856558977120125905212324761365694168794695986077835400375535212485485895011314809038252025358831618701353107479787256754706864342163851904648351172292689882059821561591148407964789580269169608834041195074263797285126028199634217256782265634253581793987828961645231975271828513972849186688327140579519982391729454255114531516862104764874686686430596636518974531542961094884423881160096601228725400528104499546365613213561920099436469124048601733101575400685835934235625281324207618189456966384706757213956284647673964557625658404947467077449369436556051465994033205784342624481679563575388310551453469669424086777085057574970122570864766147088415640151685029919234453089243446481282417644576266843346914439532726333626347888716620855306363838297588560726571777831096722295593344509282521435207138740913207672671247379515134398553112612516261882498511170063302527234908228553141129733234527955116937187077963744702576958523910712086355638169518024803699665326616744142113631844219127017574906951471522079242004586789303174426176148173884353161467025021476816739396093990999886600814445033227937329435096806430508772244689937042464125581653585223367592198245510934537679812579972178342837621457534797164057251894343106796505490739096024054630652684496021526416310003300624501675861850648059686704365705312635825319852016903662477100992598472407403665418935937118930457160301519845073236945872510442939940503839753494672410372524693177691339081641430960831253750582362255564381518847708470638570076830707788676341313196831478805655113381416050857032126107045487253606051836810436425005433607802744533671801770207905844833817302024736063976127822002836153590324197289195223519531748831467628269057117041692031023512072854914933553051937987357027763401670855539382678644836311374114005736373177517296538786637725870740798547617561530949555294376499438112162837339639583037134343706811006856958771206401131566803323843264839121762978290078050967406322620792387767997091341031509417378621061165803164037683866190608845589889641570699399092491781589259331013153297811280890161630408645154637806432499901105932356057049563007850786577568694664265688217683133000652600479128375748149861920292968128753658945663147021599197015373486723140728420144310157296706691647826815541551052864807864826917021924961675958634492213482137318471321350822349041910813223593780562715607539646691597432659985283686270942422972048458563980256045138141797968734019709546314209180360046018211652668502562944041032089871413671234575746761013782220095226443033823789095009901217224065314033048960484299599788650602440664942608593927486948009233810312704500171287049325434753725442642079118104789427250299601066272598454113995645127089433630861944488913090426062158196298843227903239823551817042567272603075179704988272348215219108762919021421622671035893567972004433842985442691566795963461786262708998937371525467103645586160042256415865776404061847713463792949012388973514376655754501721585476284142868785252401071929181240698071236172877611277248266014405480508097326245833120544177425485355422856036594288252296587423564671403854911927777076431373010922702396844400176808992464069626520310954048431411329469251671879531794882714256247323600209073917207726130964456608392079133970152871095241372315437173557336390856952674828775005358122191396180907355673310296328013954074922316422657044409672433053497209642831519763800168657135925857224394218217898054619893506487564216599982349573564270521999729375638461218467217017165616516574155652353071000341682357245166845059204252765737009627877153381077644864318305965115360480470635217486175423699243827264254109665451262894829404206007412056428395727322193345489350404630137478125911260199550904143935269077885465195357390402223647601285266081516159713872385770404916176896524715755242329841021950925474455365953344463724867570735777368166926183352138492609193192365180512990830204493980550665088600511791462749343114925412076768909092993226171186372760475947281989371525681039415162304498085744743202768353598721269121381802777898627717721297628847200685203726042488191703916674096242626359996187081242954061292049236502038983789801090778920211389016312324540953473992774254720340275270849117221828995416407140311561785756551005863233519484595746576653375678556126973377035121978011852241384781671379832674783437237273742117078309389400879903863661327261851417557034457689884718028636876775817643498011751946618598646077681715070182997664690254601588209058404881192126560461839738158004308182611155073290491285915103275073426562070442126292510113319099555311285825488190785846196548733720316757108366797581465383531366423617330818523474519259146298379406618166418085272480139312509702468918738941064469547574346728378347696193620043105671655065336089895843624857130132047345580461137063260472404452722734588677887182211833457373637181653185556956590152885217821542571638669910025982326434412385915853371288498764560635160808450400203638160975058342874325956588740073238628068981520822545141446648619063345717656958227871106674883076332789039043168646074580994002269293534722273037511079696370505281075771650525689183717668746059990992890818109264103305391342218380648184216667067424738027476406714910094924997102326067800251558233019623333321322471812322743867258792990061159801613354973106766499415578594768694177902147698023214489833939863581825789202468451091914363000285626564447126306956146460365882246151855579343134570432427775889852187831937648547130834552237190800762991132467814166249029909140532993211034792957810072324033408262880022315373841079396186115878411237242320621555530904017086361841640391955814037617822128439831323594972437449100303322800709215239307628187023656350977813403072350573545037868152034897982921378002866484362579965626730522987929507679088103490811003776443577644734787820881289997497137444588486060696535068597105886209037021175790225928487228581283286179496101398445072804841242028989746244166428181891417204514654111569014179664957429686263309099208997907769320711508369604932916511488299465986451121529195691249438156655485054161668811761280805338991704101660753540375378755791997831074091856272424025069019560009861227789585648193291579132111945065170642884861380425334867383171797904878754649503147532375117082195136773911981393086321603184600355962482586200629557764335050768892964470731748401257599493394674257242281435775393908348367658843507344200253638897656906297581242424764541162308854446234241149263148924451480700715496278097236374178448881850309737163784844389515599059947657688022200405835568804835883524607480682734855471365332963404167980261523461340821081954684152608609798928664655579206142068556874668181367191978254006894467565427298347028361633895152020455261738170404502531630577890261569776039104172668164231461261238311476588636503758385018395582465757761336696507678131204567315974875356313643265553055099697982185948979458285036913377515143389904086503534365157900200933974872058521565315766767951668606938831538215560662528272154043684645660343387569611678822904973175426807733748842977119757901230817442326676955742861308536917754801152325366881232263981440278014094341341345380691107607822161950357136319640334188759321518658604425781725726178860217651567425664279843269797893505740292473627196688661837441280191480491224049478729604065279774084464007915098316970268672691630308281751712450016023943164399968882913120650676787138344910019249194930897458158636431336174763642400962367083071543581273420635818653137123488281719855083394697672147787932546575398233118206760192364395356296665123164233912552742439284827073425135747737444954609245090172564535922168305500848568560399701407981563595124491172687593640767292767495116638880180126393642221425726201350511326008783930261635525574276744639243392118677901557581860133843859440505829974583699308673754985478014082325058751344399792482039564884432143501920489309663296932721038951626079643981131651282194704562713369098345123096330758970410983030220932147185205245410844791325171568397122960578953993754318760110882738695669389246447082316575858323075420041399405645980194309855729724631737888615576361016569091989221457890284649511147264153292975926323987870517398459868040622208232801236881658696530005296292063635342144925797943972833727762207175856722748420160819780116547714345805826020532678915610553307762497903153565461012834386988050120501810809070030702198009269352966248457550555844539357457109278910896688085921520669846614609420873949808696847689022858859990932368683437348127995618296687108185025269373448150349688425677811761225015310070513802214988522057194705725837718012274315146718950548475505470732453211614715018125586086868130494262993504798277310858221711974842932620690811138130445515396976999183836911814405380435745975206206906766810645919805714326192314066592438397904659216651162112349357272798871842656514293431720568985253041303448413226166223777345995260784370812904759447788641909215909317810240921731420512071179212908720441952090167682946026744531194413657161649123370921338786475120164458699279167871813672479726823701505009662195559160375184599057249943838110037917121107174471905181085311781445759156535417962496943860875423694978495733979104752198075903240608584118072085556060097042756418954814513293661191836489694120368513573931564923701361638113643509335581366563833618949959381722980624615821582648407619388841512340999570073263220221165579017293904181833419626708439255500074564577920852468932095800651402367070585765558563017722614271859129139010675201739775949171214143480006271547069576986954891125815240438832262496436561586759465146831354952048517735748964870660172356981916919907392952797152523080044453133467246122422961450751353002187721805134381393455258967757553815080478224187108291435857561478980749957070945972411132725898023851521444243048207864781822220974534106970125193673454622993808550525679484068802940744109128909751426248704592468677852077140809569076928045936267988336569810576330569698188504578308631241034878839757218980490612146347714338031039642849535707769694746820088536252330345768958524454925022139952978101601796722777389537140210907941956953214298859673631436312864313961546527446670900892837084614953487701094290633915551217277691464966304708551369750055957341788027172684330344622944158652203673757162084470834486079609793130493039927046203702222572970991665585699253660779661924701077485470018367621060969872172141903302880172291218972259603275719170799461003220699680178865640020517935321671808861248423530542805068525324716839449437448687779600412380039181019256873284350174597818996682124309531590179188155338230519841615292365099960865378040818919040511554852094703642017470891054540172722119772457400727638153535209460520946067603159659182004432382121232406873235902532901921543373431666584449830989474955904133459199276657356592040277066389433580889288711651475870470550360824713399665614078107096606977062646583630942427929175150662109981196389524430405963248605891172470162066522023680010518024989707386852440638248829032120764298630552828658151604052130168306304001528972633096468157626310810506326753413600033934035748283326130869318790108505634381296064435766579528588636452878559162818235016982205666552126486739195398648986861236483193437657140357014203924527464234824120560607901171934957379578724475727239485167074920735607480276637555047093064119290761147361738663987390914325781204961751956251951038384747189449039057346327566432910063983333646098586466754245973290140222779930708059279390709185090979739753179919920748823998387729203412674942885211740785159744640291702836364669936084328123251619425453962873133494865659775354716610844787954567952779664874216625703376333046226546268993162423196604177230253486341634110150069492918153149477788639470014045171814023822487190762095528395174552651930428116687171338322317013417232310037397767736211354331938419517900685699594075745828763148653874239300187569327377892593398884675946734115068771740398194970126774255246810170835974166055381402176059791041450335830189494103418004523270447077311285521407839204996394796436221672055741962637657180303775079645156616471042681223594310344439542360366642163257755542530379115572627961792506494395240697470060739111563193350297129540482036371415122787478616568378214052687965069426812087489739688747737604659805599412496801842925658274816240835904995177561497412733496681867326238928921878577183841725966099192828983393900250075908193509698160452896923507529247806803385399492321932592175694621111184723586423812048426691627739148774324903609250773365443892135316272183560747595800434775959932854350647633121665589957520698666183689087347909183700113579389096729074414442783439944675143012407789523673309195651257856933729051660151936845637269908708322389029036061628525018717657876144062123900110991439919982226333217773451888246311885084052480619498623646287632440028349130843563910273519610068093507582994736964164286907819125747411240800712231264165460151639711208975396724039498553029848662310529073870868292402010487790365393672546737873277676856125652922481314548462067230464023599847110669101195376858117830403503207261502985579127898364609670134622393731549240038284135333258974231353501710791540975432762676607546856405831642197841692161496757898193979632388627003123577398429663343922882848028979129962370199752607056828829609100875672738070251188057499329459622076695731327571465114678764581105244506986989198907849011314950848358923485499976121561571712404617622343033687308151410459394295104157982432151956995118269371401561172486481540830739947964623280189483304782978483359061624803913832354784475479884471880353574930784437562168460935008702380324659944703358440173572238023307241905975315627863436909234608700640039716953897468187761680398094875605599874081520518811116004672625582166780192265465644093401922740084367996814372740805059172760454191482177768602685818112614353797093568675492355688249149426347132653239607358721201426207937941336546333535445652691514013080293195196000132008810927731862097815730710770156426425716857903629933154393237952592567743676619562814331327837219987220951310914283590274298158110582341901136878554646217478167007227282323823347979854780920304670449884708892189913678048822932350022482655585291261091086795942760068055662625274780346961757184673478203060725693963881452661054084536290733783074695871546950966992799772353249767359356662352484104669398006237834382785536479287151631313271788157892120641613720492018051559244614723501714174285284071816313018070705437146403700164930127857640258408038010297896691621635059343944967798982311318713651696178608205390979513708476279747589221169179862798852887895538171682644785186307515725410741289095618951434255018455386423455023160907479456922880182019628603862829570915865975344820122492187333690710579038753648624022578551965031023534139661510035332532672016602704210341696717312172831403692684779300449984996263626071124247152397190206155397276139699429074457285466785749342809663330245969291104153983658057886008477357707918416833606752441681156348447390157481615891504844374807830452005891003613000451408786048972613974414576393072104784429641575919228591406992710802213427922233461141806774674066002709691551778220666131578208187271631889674124743408642631097211399662641169113739855255547603515453011238939809266390973804976913804287157599753164636499227027579532211057042981607846622100643343712113988903984304245890098682453660013145858478806317304944028276838263423393030062728012261959128182207125279134261960892257980186058754762645606794681035183168470689156121716148669326197587099660893377916672539231182483141816344543220747696681416107146996291208211736755570451917547651973519855958548409794698441134667067400028156284412568661515619735982962296406747118021416081916801967899975562606229916203377468638187940880854855027386796033124392595130514426189283427873556524711576933453307883523788278976435361245672844914951885499689604855666421530705218716158885863314566172548019145401907422539649794918728185507116120943286154024663573256133486270330156353831370029151828207270799988177944170059401229354703205462021721852989500286604767638217561686645499715556999339078424116056711010580498246890692562368316858126649234979718042059860415946148801297480140143602769617031987079036351060304278884139720172608615777226251035494106414225235568936153254320056307302266491495262319205913184598785628952825972087981336529726489446882736292484441513891379649286984355603297993972208775102639842629902356535080906585743023776561114701743844238503850438287971538687584132094722411438836042907299260819445086138711161549280693859638053809430888970903170751145942029865436766220542857671693473435500510475959314775165415999588042224571976434408309215427302592933459789777968948919628758468734612150752361662056785363212327954259764086228458043716318069849036419068042742164557212872031729528063126930822035706335151381774671681539260033693774220119399947838930701665179648081900305100743512551631395381426777221433249465371478831463825058420508159256661978227162316829163533100652816223205769841160737842323489765196436112381817052419213354525683755937544156691317710242688051259436257766306493737169176878906882095304189364557891841838508834587969919722053503723858098584002225819548722149051261774211968548839930195787712835105411866623295962606707916865127794635248078376608881983067511203149033321529164764012293766142993851016304614491948080993623423638526241366149264628909989632466377635551234855162341926389291571683694880787563535104248355867328322938732473672380638817186307103884293115823792883713832996557132238142505533124401587466731885326832888286262085743618247908053724079191818153332859856627577439507157555010623238281713824841491263604051676415970736559387542666582371568670239653722660057500323537145974178782070784878702172915028472571625537910906232875114115854191193814047909218348062657842642463852154743446131292062383547579727144491199944937376467582104267668564281959514035638750939657358853064288946413358588605825567871435272703694393915514232340390773907665050732516098939966271810024915358616791194463153524066486473692972940776547830394106722667462174860260644511617457434246802661463799931464553704107376164892285816226337531797562031090333935587412048755489228432781625583328199989793157223725282060361748282123499773700099615445542342569108662180252994442725519054810248502374725166188345321034304450571831780216204183358971161318542255704652995129083786473101981521315810623948694296768540453323369548840174878543589963545803459303249500625064953859579286938340031610125032833652349982867029945901279172504299596015870219302358223830834049049959736086635378194707877810937842686342178210744976259871547823236974686836990317903765556970263238687782364110702268665118469642784982561794773523527996966368144163757544978009800228777733486837640874256530192559046503119928378721899313133825399413080354929734921157297446779156175306662010097228180151942877848599832264933889107684877630516908491359434980695954746391129634884823115733347531406497918174376586693779158170653209143298038887224783679160922513892754861117810174790660344216249368985092957830590150820771515204988074000058499899469317378056168265271732659815712199994425043200545761147682505209250244356782131856539118003041353877871505850738169314901500248369609819761407925457340112860284385761236212741931292966665667977045677709776191645206186333749644358068193052408802692025914799485255157037627623103599784138825933915616726666312964967825220273243992744201627594017944988790440409393155717399405076224152438793878584363945764946200892015082025484184648284532406916952981150054641218423067144075026335433156514219151288193510769941810592880519954887064242587175113112592422688644186607349314825664021755539599716569686993657862339031622988836516453049289440018508311436279131335585694546445968051267139838659107761572376797572413310964031413883375829953544625298662763329013446893699459139168659938138025000248160113902958314935612212525695298011326672039837236759582860180146247171656029827748066447226881421067125540125682447357012971129741193727733174067737045760212429293698538897882563357107285068741053571358647967720147073731672480409592457644650630141870366060641112865897479773127588027933828615568521271752852959472447681474843876563407161656748856657389057908612070185931998876862384795968735559096856739315147031428392824715965226843330290078537041446278709895078028104767622469054283607624475302292911822009203713528118638120222753620433605508921995650145974768628552056509674248425263847409575178498060703982847041330452500426863869276493579149172950296259709410241942672685073843868432889987279702168080443575359723551318175957822011528963431239005791979815721608353757625766061176540067744301437279336637613311388337119167514373815938416382817284543365157943404673842744249995234412537227661721780013568479165481052532826429983096503892618879150854323771793772657586151462520230927141781100627969974078049590619380227493228463661606266794788647824591582932458609381408774601236473460066954719636770625357738876230480582175173577929183582598125143603484400715774289222308155814893050912558663868671549800363066327066218930578202008923937430006263020548052282535165493235255731154440211624533795262969053254738425442172931136177887742187564941028762687679693478005449920725231308551375548061713670623120837858930273628129239010681162005929932444684418054342779285162312814723914177675420095865038703397325131327124743295016475957034155497505606435797508566618824525704602923761982009333380652802415522650948535115782138830670408559203793950606230147746428974399693306643251849677809277348721181588822712050770794247318402318405608376872012157827957893958265368994736245353303860169326142771532313277841980331591314000487871393200150799247701030275494678095823245841522498060125485141101140317626881482571460588933345627150531312390644504192167555013789325752850819791314405300321964087571799632088039540334527087349609769089784545845457421691906758111032650798623900143852841689711757328300099667063171964945082935903749447208665438103994403588009393149685016837255032879665712609466241558006721448089312826379558893480410325276763858259441234919736574680972397381472538859120158792749858126660856157260254195837131667666262829171084952097183418158199349444707451139044741429316586608670328029493640386233870793891164228012536439434957170795642450046822807320473816490456195468317091156879582402513722315620844592363771582811445743719760961123511858214999146437155311919703617947890388523605505286433023935487649268251819496648621645874194584940780978637678272334341745984310653194320740620167284906911047303683444852921215137463201674100314861642134243422123627249150632296689988662135791158338579663031027616881685324212205015160522335763772914142395414144756684199745825982379575585395984532893790751918221110186131698771182440499539745281390697241555596546522591700483010713166806167675709641266873607725765020215687885759726993397593103819865005460802626072817716489923493197039146542373381070406532630558130988634823448612826404899911194389113590661861038545431461854341734157747938357364945798603438014067164577235683835468187073020208387694883505210179845544920108002186041030835372101897626906192590779404537918377223496474445992153244984163724190972439843951129627078121615926876834048029838339278497632970999930735469895297778367313220033554233057908183379880782261596780590225378441503890110760017154663534523051929005073633622869210515423895085513114879451529666106566875978756732402141964074117871108661549829184763899527953212099388703664464502321798212739105115709444761577280764304476559412956581209281244302705542610645854361333292204192111193248053690304825883608199542774579287319163799695110046412734948096136414186480333174019145504632518676926626324159965378761906652675339617043391264388802458384751154936847665982671160156695612084061648175211544962580972740135591896021620793885401981370036093685100957931157383139442904573434847383967707750336286832263344083154440849616390755109473389735878666308988706830972738361479728504317306340562857960706163342012573579759124007048746452337162505381584871087417593582749997382814316365311528308147973943086160466508995070600789812893322337238227330861574133355545319636030111700209442917280372246050280186391203377051371761141360184574291583345056331863445109755357020842199241069873964780503820368267722693076807713100348507984453944905520137120905604441155498188724285238699864480853747151362964022815557274022241809694323286807500481852915859530905106848345166665480952147379747863705693088080695473577001103448507118236533803790564735527363894919714917010475313850550201994470160887307133148004718702187315748171723421040447023380460824642269314404734407325302203108004718644869963205375488689160630163507791017468362005850471084771603461944842742324365555019949188713831380209418367991164610034743565136824950674489465342963528846950624446299350886747457542757614719127857944766250805749881545273292429806990525126385223768004224996085342344783897434703738014753345652072381811113001169156673213658822943534559482580728626896869783463203816939021755497727117639295615241581856131450228747184743010390448348914275876503356932073849417636392642145406844079032092554330596961986891123868446956436711935312219399802263928077642943633786805042554120417919404299943142436400333880283925004156208923648492272575651131954996327467988891220082740459356110864743571378210024850290519985881849909584747295829830788457918726415806156797744752452165746985015514839940971752165210174856743351900988317538233174550555783275718673382344085449273952699874248219196137091222867037090782225242820226361986438603027932992974438662739272720418536050065569938786229127761563982366480752043944839864777127742088377961296732600648641557744643716020743545376344327457265540793691927115073337321235525796389029519931971366710234801431688806797642934781144698861542964707128631454602285364812901635617022955041425653634582882106996265868022723950992566557779293766145015587438074696355154319092132838895042454124839871595728754646342860752094273786916853656155758813925738645988961554342109910328289489012443210721202218434460587047139484071563950652611595541366774209107735821054080419517883061290084682524163911027114086625850438451008634641947210386043777043130659719111775773393455361254552356278762986328908806032890367020019162815040723765095721524465646422679458048224064538836260486532189034930606172602983063043667511937890993757361250362280858227394921298528446246598186442486858722469555983402325837195703328430591744946162463242001209189042018359601111082869144239459744791671142602194959642796078088490565757051859421452768125028039259126727989099857073268955259243345125594963785175121578198211980141197889972927961472861027884389171558358125384696481783817685791516962810807777880571175954310439025691417315491799560655445503635121254662058158585044737523550354208321559702255064655164257522116373018561061846008417142721766592155082474656368999473893934808010512496186120767166859605621124428576680993957551867799408916403927598864026839758054580215921192100443066964277926427997830098474643907705830282837487940984005751281938720754233071832420480611949824101158096149943857650745841279196115850480521432291263926527477132125172663931288679433464234782086039842154430189726491588997669605315396755923647068536451977826231642641979039950300785463145465359480903911197643496735442602754598482095307187136316562504013133297684011087884696575007195537662947743016353726812419135612572238775923295552264295836383621167737315797282451858466996472672441904185657772022316540109846691010823323764729812265790753945424412974069758255320928380038544024960098684602447309486852138693511727008526406255579891587452785248983725063437282881558975902238872995398883084818146034279014717963992911870433860255874213351628912417147060845946043794410391037756061927023427300236621012576093416819124346329517820404965790457106516853909240764266267068595427480820301231804003939264394633734753271232568065916154443834975117621732926542286573149399002844998061175899568839735008512506774135596714373501062341076104834965566273057470016869748530704311846043783718726406890397831035453143976768700995193627817170110708652608687198135204751920093060821289857060713820554310198367489774904124581723206720738414285280124919361815531781544343974470119840040459179873657131585984992841336314115813677197570501503792644512335532457677476550686475515650585467735377125860440882907765545620588625380800393428882857690720021041040046061135265631167005054720400449712297211748432549051429633540959699572333604675794033906653649783689105067272797750991140576790753461804084297076348659886525188469502248685865801528958864786956066253422684112983758717155185746349999554476623752577090589843131405735060092359319292513376330600516049811890008477776609100817149943483740248665878065291648227298010362973481825499617372356451704966382538082015283517930873048858113302506637057480082532998887904619934704153148217830130465253779190532593603759153377928202627855170843026851931795671880971417705251225229017391609858676126660396123844367824852226369208702306859056901718317800369614656724744546585846619819625811801707389532775334015486363900743625838960934336873309513391598819798073453488554061395557270341332943262807176706507070972051964500855681154690592515775416270782250490614162811528515410604307099534498883267253707741674395201129544409206673823558739918432554146426474687813497259833739977573603714635219401983333678383221585823477504360087212329614045191773813548526251691822508119269382003942679398068177551539145534808582169066685064889068300046905327009893537889817306836749164699859712987405789595776361942322895854968520988083469689877512235897282735698643829552257825473747049615888548910660008032992122732464555735259793565951568495288817047632149881024387659758520026593940198106771688100610445370574134218525491653539321679794436541391829921181521406608320747316215960977994412553815815113561552256172420348660531156557059482111847167477390110335749575727732005470803510855767099049863088377731348408096843333984046952695927083286771688979781154880688609670106439602679094140247385330585544777361688444581834645926669072725939192228691563972751176708563357687069950675158970031036467986946061781937197738634182955085864345460649163205863684061539165233147171796553876301943620881433183031389652063291761186907018999486666111775165615205294587697533430415519776238791046551566673489779234527480454019864407464597573047195817603853886185001903391884665285016822505103709634509806990468493980380814406604579514598802023614756849707565843931579568912215860356577495818743447421665220855793100303105393956575391274001727109213678883151316201600089483135533941766403637043353171008080841464151974768479871527129262973170515641529853821071124533011151803469857299757552907202022159679563735986284003948366513682281074713767457496878699355329592671662340389604193746123048311906929215542954529081731369247757217315281476864747155340689954509735916411661577837033298756047600916185491500223965750159879379190340302119869652288649167985684143110956909239577510048811497414457604325947776532104416826681904456823375987501052770109665631825175160948363576040681236137098802972878260745536012819153680297183833039916467087855745470127937751208019709503533724234861887379234205606720624176680807267198316717649289747307622075733747678715483465916632040488064381190411330360259721942884812361451144369427481072771831122020596605281646593721565417481731775428144001608194160372777806059657503930511920136180854477901898241599951840221647475113502522955501661935493674633363405501464328569288643402917393269067845086034188725896707873701800626018079762250806303477371250333000798828812630501999996512074178309053736494508032020535948302038732601720137955260238051194260197843399138496066309596969051028594100934165095168599678305926430737812495943754602404997767584327558923159486738641444204069623903952532465856802685594453819448462991405611715186586098542486167374341534478420076657200710158953864352544632932601934457926305354120278030452042018385187197392332098956479406634683551806837615517503419329359775061167807898748404849814832834508017798773693222229812568800496799299845418290156604371976071678341163554174331904440947819807406540432892712601248223254752002696276611303524736609281387746338271363718354551752415195255949141103398340672464542069224840355076968239946428242702409147651174608303100306846436614950942398560721911445514315416439021017209734040689008087098407189490561274793478279158436976254022023901367727590050273349543053940169042798361560061573819780899338147233546516611593409096784216706621195060368571396021563818232937241494014489757735175274135293773797561931548995626900591308069512802339947643939955814667902688100755138398363557997308498968154462190755766159966826727998448331754744549185550714336365153126364971754177133976695335011133958254435286056450310234693807459168516970856748129248359025942222331191910197980478166916564706287130624197455307750037366069671657379710224248027820057092828602949930981789735273894652158654762895463780679050383292929378843380336063554112865855632369732018734375707893240312667256178949937079113119929734439069656584700026878521388358141799388051348832360398500728132466872978897582716999953692177066193456930835870803634873761370964342965153320358731119437388614724755674899289216661319656397649435198764553224110151533357067162881880613378592833114848254388026502494446928703538426508995433801123951781133512112521934610719764077212719631689845969573531121117807158646836461393331117373733947293448713880838871108642914417827652612181882406355354873908066196407584643774554599377819758833836978556762814511248243240468739189848751641117437830068710717718820202501009703171894481883823474901708327547659744332431213662206335152224974154023252527996329920749534255826013871241372666365769262360682538035146190451376125196701368718434877392252452567828669740971266665980407642296048157397421785685879939685138930298344239805902595965990338790398088639973318123266030024477364886288044513532382889471576412789295667874397348432066598680448528777847019887536229182325820197944536939576466206561774163085167399069882928192372138841685193627029601671880210058848306788569482452958952126324989451930146587630949394386874824731278458347957199183252730340064487176232104758252292300204975215801247384839458164265614168872415076699875879393735796833281172856129876201254756829080785371176103250779027204300904100553910068297578730403224693146954701992415669573120766767863106631003406496938709812763080407695988256519190940262581781911563633469505767040427857469118479430169011428664042482776286188590418825670896192872533882088165698403051192015610438156876589366403627818775120446217928406841596383744656960690924952172940234213078142810701401490276559778278743613097323427537545919102897625989281051528981999604690091290339900522673079570706130520704406362530339383871190750754477367588697383149012332583893912263438246635999555326065265317165290689518313378920552831600854959691586559096599891644713779940411694982419083549961587715537599075708367854283337688932173558783075860136346989424847142955512174834889240369248134774801698823088338471517394751568046480569725425561331950455519478990965975502839557735329531954220886604805498805649311516170430176969099192002109055233314722037024236240764985526954678663723457858196306861026398851851698243156110792496572668679667173994717249497955665679476262381907406605213605339410498005609913199875611504165847562408361437189499708423340400561106377848846746353332944459917372869727746125849912769831166383834514242579000383217035895031798040459689644235889572952621507602730544910918935722891545632263966975573531584287519087627056757696179835871940663898209401505356962695861668875756623900568083819186833176834380490491487856020367068680327638964981836801555925201355298233772961091468395371871454320821149944958716084923567768224119601613362673144400896773166702071508772810021140657481050908648546591187256419724808887500764315219420692654249951614219235819149641212903890562902067157768751107499849173610953817545049049811205547484204429856609444974210658382853995722344566912792201612425642947508215784700593799233466679947747508138405519055385220225231227160765232557103982304903004042435970974078837271728548469633878432803981476838705919132708684159371288830465423608415929691194789647621531568935534489126223794628282078472373406600275445135914428926963701128974609321212785136249320130695525079818498818729137893332480418774215712019069431309662337035358745216121833411607745736241604091431604049970147949445609646263743263830880565845553793031175091653362341870185164305726519744759953307123522211739271190740782335473765801165177991866701404408072475484368614683012737363795513726009449431693375190311750372483375733317824978777571262974159747257485340317785125266212050613112410945897963097916820299195833307680837485637118645839023885590083197655452610323504040094865003477579167413614052962329467830576606876595927991397081379550035004677367495920744058983297344227214171716270070884273169996283626404372298279362791200695172894425680781266203416614729657358687434030088058791345047936606665346345023353822100881012434591183981833699111856683144433806196082041864719595699925249283058026248002016151427020167695067171102724081641524360568161906393082335469311801806531307345194141454599095017223736388161768174997642510444043620747678965551522281482459724599682273212876384380177453932747513583649065928203696818417906781954458578564131935412131308820271437544597194380423584847866427117440683131735547915415124217540213789306333349068851147763421131787571346853915005828314596354462371617352534174625431897865031034123094950460035773750117676998386285563435213018467595457970970343078907386522517563137244675112071476340983267860091966231346628536134097361570557678069378875975780239351515683917446322933438446099525737427243580643007312269045448181080480388244298055099298010484937415758658780889820060764629313187355646700743908523419975103164867037230946736709199032501376314707288806526781977979855143315967735433477598454562344113544021127050690461015205400294205430321065064448771585169722675363259609904387941689980077207569856736498575158271583176126861367911417414172563445988100689469268104712013079327472320839635047985417556649280446684644806273806317331156472420718321005594439983118850545196210031914785252179299179349927045954368741574506988878418713499964839546908394027297605093542178217095438822297495849038445329539905486607402604233292647784956775320651723135510829295594529043803836007355398662219005373393755529472737620857816575130836658727718148395990414229541839206234933009331259252720270516982729889184961747451059891902326438491741155828233579415582407510977413808573515031561364971084164661076441966975120232171902383546110330652099721298568909637826234957409792204386986766591070725218514449722008020864568523235338583672703669654985936306908226615154255885582876235779489920666350175529319637582800148731010620655418212288574703825939976369786772326850332448865231701311485119133016620225028802995863050077710689202400914773519019557368705925080883222863173202859457572136027614039644628292627940351554367654827500719365017483688195807349716045765238804654262848952726052505403618410253381926209843779614277391788520929188713732986549825199855599044229554096314462142948939362981590410389047391318921409672050351856691104931154661554355952316828532153276987158118263579897281584382565227151784507267201034253647381054305545151318103090455662112203516982671327659724588399918885338869671199849240466952913039901404006634922220537668550966963041186321583439807595654256017149871588053547755506082850343480883209278187462959971900081387628724395751586404845637388324547556010012058571818499394222169160886976332073361466126760778740915283018058076766054262976537164357363848219985017779262228666294737861945727154330564595796568594814321973645845948843106103362123096518907739166001487886433946323866696221061486542308732307877025092524597995006411451460702604806950131510569702707213594973942745236669177615051970912547693737081099160814496456965250702844260284390406996994466688855242520910354540632622961658629017458440189879290046294719007533076866317779582932630375489875689769781274870362372965903432988089965365970190398185409397885625262055906376749826866055796717121444060424861604360339538786296481937852294102756714561458132453103547641716559455826073165370008775374293709973530494007883344928806766135092989638551757367849352509649576634784150089874392137055728978788563384644161512634511622417056036395354397362271098819730522929334708511653213539662124229489711815940724808523831923145637885933958713879397255725751100498797797403259801581438339782973538850137524781787916646376474354136490066424532103900538571727457446326658329604047010892867528403326274396517980280642471325453000298628764639459152361445800292574054555096907737273326906001913112213012846068990695251717756919478815727941024605940842858727102552252363674516690993034325420108721376664993948019009397163903154424073548546061607542502252113779949814232256435837620478510933197035873704793322075933551825194464348790772295879863775771229197351624534555249302559734333576641164906539525654414188006174499201166152494890094814161510100282591726688318782368477105123314058232231152310329230489824002634560046340787950065692427282700691804450440405171857023418274937159531451608018116278580541616182512651151802596930266299996730036736381346074207981650865716048308614350299820512899069300059254069939300045693613464749599383154343525438353470978123555907030357463569347709200649369616009731514621574793306953830587741632847953038013211806251509425138070100566361806274767736673354836974993794874714561178672283776538618142884913992582021832733619935859559040807026897431315436058325838727863893323361916450136949995489092839803954713527080593763333242190920258113405963343459951480653804745794321386885471952195949539884910268684462245617025521837189741830550557261949154523003158127379385996671365016414884306559296670353754163833447220708980351934194974344545051161104203527242809087719522348269127284030027112566421630230933774492665218316822912979903245162142371736190868983612107196616036297295211577529836748280009391738838324922076737604832702665075147776490536871176376409284930673620043275676521539087589765907798926569884074356099147098799217029077359692913000999894992603674637676329201446522015745784686673761180973053449963430093917422357035584615565808409709062108548224641333242930233636544137647495697954691358914650159766274589750278629640886963685601915562114555878391564459035954450822733357877570252578092847786491567531108035345941672219772461924982261075981181603979717221711107658173903058811057898705967785545341667448843850144364164883285273688850753606281285467773087684704301731086952355356442962572566470743677543208221816314545125731188756469399980012009508480459498608507718723116617448073900366958050391572367382724604190601819029327318705430875274496473006339715248789822380153295175106460401633661457678767709752332330201969206089538847613616683227786706904924232557381112496602645909282269683977801528045832080794137047928455377418498402587534580455997737952092372864893338685572672929839781512487629807361350220899924739342611298112307726882029762228959084036409621035136895328453219046777641830959493070961850028910748969545237915311096290724681061725386562446987018723097383275642887860665633331758317993746977136371363173267939924930496817851692719799402580728606391782217698301946213995943236923698415084594833212627142592695931310652846975629312235896498634131566858681925367320551818528667009532142767695413118333798237116519128052356804874446250089248560065651039942569099217063127526020451974922534479171412113248402011104276836929741719788479590759547860306771445295632318820268761401799211808468935317606764952201301707582297156176899955818951694173514706233234399655896185613596431813791761624523050770221637378363377461034080467703172003060118694517485215736075089295674065984949993269466973354027943395057272545904875913190316307338538571264515853810569149292484062552668894992948171660429666226225516408236713505967102332082228380493814706002331343602598674886388069300915054265794966622485095364993818636393666453970604184672603538637438418424220745604917634868298904911255420816936731712596541365243427593419378797193799228010283724665217247704454908853234082611442296401025102944803821530126486788397548940048805811099574173608736700559745641361286530702215940361242870518527985293295227381089518003578902025297345144547909673502709561155581547954429966806843568785775392721472766039136912943533125443835129959998080025598887480455063721887588432687903311552270177193274506733856029032711361099819159505389079194119298452991350285106812488958862034323625973416396900847011928006240085401366760182990640572470797677154560484100179029051091621804582593677887303733918883803811442351029072788260507364806524883836120209566103199669172541894480063833519337118921568016543881770620110957295701751507994785987004925343525252295207883264280447818677271272886121416796640539736126304193230103999949826565422827868255442267923810718724741807921237786127367868422375681304692110564588516326667944860770533360780907647258947765765907432646237794712022566359595606260534715086593039678703567337926112257499235179783442303392467954197481758505567171900189070420962972773975475074028174088814875192403475479198571436583303677246790920190178209345135668246851816894862774825632972947279927040277740824235026457032096708632817786765558512668561878154121819635153874417260876438735232475728075068150697505199441817033236653611658562627302953346886244956448327440949888354267166469098160030724379378981464523828154006241627995411316449656502206290875474793811616822347889893042805690045221915350493998307526671860195345200717977792362308069671125732466840507485501848554841626459765115701150752449317083587119099152964835554131960194470265556040376800468194697674395913941882333321130814195068221965118321569844915972233207388918920167924728763313157872996781384514111092333056391467686333995963167100094886609248813245371020506939001755327767178928684784964455467143213761432328971912380485740080499661580001452222877867497862140713130035502547254077650942585443899145431264668927823721923234217520152622104878115302681098726976723890237061156607264235202842572662084867314157976733088290712154396216576651692795186350764172758214724270052240124636781044643351745546329462811727935689254533596188853908968406815734710716127675246503843653223670583815943953533618495104277636693640826458132744418184264610748198862578848822754622981007524995440562535245661027247555322088117421690604870316489303284278310098024617650484173009525758103258969361337334159893734150449507080603835430851463059521540710605762520249013323242357624403708106148382311235855909558442448940110583894778890038946573382390417253324251018099037760548201601054794538027359307513053216692972583112343514907236159679938841646150610853846591078513186885089283772640115830101389385228025217255919903452490635670984961912244625176328789851067089480391319531966705033116681264873546479155736065798450063860885153803845986211667683398651063190835408211888797833082563167388699588760833888420127858757024130281207287167466078637078602765961022864130907175754940336312302375195297154741452581943651701179228851393179295801967371662269298373448006705378214775439327779746160019989858724814226467436110336670080785605031951167886892141189564488478870908274572552527849454030426503690336246110160810973302605564215757639702185866147136626433576173558921901515075819967099911848080267161742202171785691782745893789477118426680134547738229149104010717253610869512494990965712041492558215762582978728496858847872392556920341525986055343917892383841419658258497243693425255449615979917143973660509021047340337207011234490901878395958127158617909682800058690853716705149078770682200466001537304680293441268766014088891439512728868141047734828699123960909869343242923844042873502171528061329835376443385203789459309094595504570497403820104309724399709411842129158965489562286419378577570752295680400571326695358369412956557610598248860435789053255399660216893983961671412845253541104925738267617056643317893493508319873089517054165457238275111293836399040963264035035359257101031983384742155495854743438725276386241071442169376590729012396059445491110007933069385332231358896498177577788231948449310766659292202961115850108692089874373870019473803361804296195444962507518643220088260179725924451490558545205924204190423749125890454712720512688147108378193132474561143798144963704907810205629634477515359594055552457439910014555631932939812055253557219851386189137501621583184567941954959783795731064977122391986458968018813440972617467710205152568307464536645599857778188294675713303010753091374593864383592077780265879919492643950027435059993122663780657200880785718887803145294777769716174523852835128524960162663164992381475488466315096547062885854794091139558317747391057609432882800318832390866762593525273184037967576914293207822512505630548430765345945087709181770311775466794489375617724660797685110787758528734676712622937187841635810144088298289844768188143848102956587728118356539724057931275158216741626512093835940702833699411895707479232401687872417540600301414964819967352100342382908832191611479956617117977939230780456112351619247279132139248964557030440097051887909452028439003138126536551652832046763514825564171785573101509642768387033370993699257753286964483362685698148449455391981073385053022025181819382553880406923271344052312143512673513297999455189900675232911205411649337690405419690962163675119890817005047854890597425117484506097230040117192380081854207192312876629464326116619089254011202523950684154145065215165259124100159789075803462725010983250614068506263292109485143469680112638146534458967593205016467120956419976973541320169682227184856675720459391670593168093787703322225230383257163330934173066312194049430742902510875055982085331436083910386651836340846856003643748450112110562468127023658650920417326629102420736358717273093133021897358588397404423798527359142885591952970078048933533079778477787986232660710117584529888481846401450071935257557027115200379383538431957120187240309359019157500995583149510252368138777175306057383051160650039718242787065140580328692852379411144677639158694084846871978583877590715599045393623063012259228706836767307663683474623290786183591511390997846136239036997714983516124987510784824680285376040613761522262339556552438330030720002226873160873846152047218577356393896469698235416765649619729520614584433258487892245455370809185507345949361367995982430247224870148487264179956393265148871351512439948679043150538873056444201287963886452949073990087621504041742499140389542698653578305148738688421477867924903250617482536481584565469773023418800646881479506308450403377293160299181399499848166730558140593475384559562009120735798044088731145907099004608048683822374567801614419979741977795115989171086476541169260557391452820494345470908957879390324645034467549056693605414728950176882465916669222371668605330046946403991520192581530378345291868343861368617833494111436800299606160992121981087827994319703028392448573534848885897390054419507666942800141102095569846465527213897666873870370192032825025499962087958911051461188819550276552644517107973601975350341973500183039453941046184709721615490311704510103962567469377937102149103839274296699950655009757593599466078701387680949546628387885102980104857370394586447553707300918276739550619033613592844730942152321487193249278890161947050635543094608881730127280551340100000524478289234525210707914180812066523325970535799391569662050395244028665488941562898060219622381017344520337767030773741592416782086650287857526222185401588662519491042688864427000089358629529921010271584199417684576031664156785903692096542380098732643412030359269622764918014732317191614894554839744501107680057734036619747819741774306898766983952659385798877515922395541662438727732969407048866625798104064882273736013408040730359039169758748799268790494435037509855576108232493750479961895832094865618346941466315785503500420366706337352023427548550758753653701280503794702829800079774535399005145237119641520234795031017502156980679418816654667488350924395703019643620979181883422449415738089976837992284712010349959288542535825434299222147346020881234236844953916372280334409387258952892136097417650437839782407921417939676733121283999611284618760364238468452917269440259767103673941230115432102445282674534880456801217142917464768414978777597446739860388384869283523274588297460079889038871406992046015994784844738888460253651306629305039905629827520582469195395593539813390787851811612147017900108021960784884753330052815495174937801067083959102589598915784114517551522326166134503784398132894930579397035664714319335570738761871456460390930330647475136790216454839757268935838488350684801454705358719822261275844043042859457531634089923626392656185665933322891867347890653720980178590766222136315779091396279416543637247285972332581274160683787759853793425570360857381697107567858027600091175106074663553414218256260056509710076891590332355943115176228421595789688213276306576137320951313077987473373211935038584822593554477109478076085232762471905426543229940591354439827555904252281709530467092433237633848713970088635019152748589540846237505606023991088546729192763191701348389857815938907321166696773453107899728746335769975736168838575125884600399781966042757178877958049424713917949528391376754479823159654487297408574338942839496145727485782431593624607536403117265404802661687846581029305261106436078192119209894178183757151129300025172676493621181351159203013216943808122345115643023626065414183671635412937248066167180858905918261151640037477086227267593367464178684588644185238848611810748598761411423033982899959476414294301957568634301525263180104200838699517767857288640550044547292685040278005003196439463605846326576781548550570224638196031159526836400644429227138316928358291945271420325888137793788832274887290514830977613378765928837016845967751251421569869071037183824443606143010679263855006818944477701767648124761285245341369974141780128793141882524922344269065983736846855907761523820511534639692557467901528796591394904307510016126571253336183211185396098221586912597508670309112618651706752323975737258905064332969075431096969245753272525843853369545804769801313409594845896873563574289169536046863651429399637015074814693476519857909435227531622301671865714782413638420055316086377828750784510322807818580565810662882768438039584908080057261563017686276288019132256756541700826187358202637162888908132043966187427261384631377016104020924516743242502449561869636515590696842676572088737335164472141489449247401678477985209608045982895253639970270856131928629406526251275478853167805622057077367018669127914389135494190542051913367603860668148742716118808270346569121602769399725863233260571933115563349538682930215708629013584933097733700719906291630762377306188486142117469608168090215705515163876571412327761642325690949399824355200055778004048675999290657963106645909493668704935155754399585305955536332336433918946295721274260028438353158500626066559407290241821427602859476199042880573647850436184508553086152268315075099733454738234167763339211680519866342655862796382602195417382649429550277229441827612172722800435325965692007280389417490866308990323549632175423770842295732310080654450028521020502025190431213764032542409891742499585397402548056665390448369151023301675441321762242012047940949346328563611077359100265165567306717019288151692113247812661007384286411542115789497233474402800910806709686856375696851666786250327794039353042900038234577909204386220355365448440987317135872519339440528297613580832298376799953864102115467097521004226149552298837705542283471743080158721091681352062017528645731012566692473889185416472843980291846158135927922087027307024112643267550942374863329798222278578544153070592156830447294308691153214861526092315536537721620808073740112122863472394846504824706987070064386608416118209284258406391580881999645783410870704570484660151692861750922716356168828267842061738173336887650548675116972091205338235261658848466667261555043740471403565839265092485319771092681204583254994128850646884902293040554669096600040626086227862865815862388755674464035424902967722881452925068923300763727427235479423078540369450969341447889775037741297465800830320676526737722733027963431496387553221157677371331258340228192486817660396021937088394734552094239715618385923487802513104064502011425182306595584098681907590330629508982876210184749252234572580150430762778228133256540058166472860543411476552365762529891968629811416576986754140841272151242491335995165758386792508010878407304779609649529208953538754364603038612924132678393065743717846549714636915867417065946126442616305283262170353352410889107423870435223449774592136832654382533987739121491264945359783014715762658088115659630512433342804762546928252598950436971231893731767311298682329432772976316157226032537536017096056760770158308554390543774096299682702163970046623966940220639022913548510678855732031426716263644912589051086457383469242766185965438481637412951378125179212273520337377775512241003377093904145107845941096926826013016735183264703925340786235599101144297050934340069401093393342704514128447975412423459152572265337522562914046044174419296878265803451425522244787030085012996779596740077094360145602020101685233493658706658099253113058320289856025254587279460321907923788799819324864873395704306928328900061545792691493213770529950463417277208082808177522276745300936225931328538852687162825948743548117159930869435714310626602188531689513561090757335509549720458716489588565617331473855264693009950822765021299781756013782138559833615886903645626433465175529870456033380387000292542847325996931538560517493889678406560576333005061926844472329659281224457894670036743828903576374738222217506921622793038494138719861044585609163676797206411473794714130467228585850300926698913473225447293232653597457797073637637562273892191628033472865076244968802455850566368707629117675150004092578843338110405812671777748666429229098168030909827790498172662002514576274329662386181476541307707585356677746718927181274360791784549099392055830465747618640212733859616318361461802638755651346455129239144316083780159266560755303228914944226523621408115035433441136009560187290115360573759773417904529041824652009460965957221038165041109041347199600178762863197439426133657842380503876458149908404626170880823431515881032624832476958492198047255017548740420860354365393984342934080941815511994103536715237913082495258276721780139282300533764453520588473625861371977773356281063313016325704800078246434016590847499599561373499602758682130161844078609365321583991970911867067334999862304796998782503075221220520104376692552264686853424042033837028619595500146341826593985320016714116954264222827277197308442518723624727123710819487015119223361923433656439433505838269783340938282842992117058752007315796534356744176692329450354562116107409992784466124159959814614715815553373298079133175886347221189763227863812696963669618247112026815304450400695123675721917659533723973558591681011197759130315685336534430169318950826997356691174469410354726533834696630752936696551691114486302751955049055283313658217839669012897576375936552024237479242572148848053852757266776902381594049014364987295447443851195859529370183577296324583791361904896239826780887468295378756947496744198060772829629939007687885684473229728912130743142689402061616056581041131093343674025319516095367991127743381168231492252830243507733595229097251493657208003286622024706801889364649865236816961685436186367386439043130839561826757902540886498115629164383224077212800464320574653524816009294466728387678438879413293839644699321691274869839602561397293448466287381368677356191851671794224391453939215253209657693433917973546937843976608066545822713274869713889685440111429158933920130127152447076729509024302526212887328808665575663377301004673264639578615220801965618972546619094232166751141204474375808136123499019031984540358869342674270614484518222539487886766651037539647968295996331085364450362306688312999643686959221738593088321200896614102703073615019289470363336487800893663048036239662921634220328239162802239240379334910985426362776666710653877902447421744039052537986537045650320839371484776875624678478314635289825370149578393094632343967372719713949464831457050030397333500840488705834757324003982960978321522943114863877526841927501862504010611480208203399926451782367839886674287756029513093349211504310517563002582350988991545567448016969447761132254650965263775064783911907705341393059067731876256431781824562116596635643142930096299273418427536936502607595847876317349782456297601477842660783337391208039318470005117223023374283608360461062936843300316716990192422555111426589000832366030257676464621354951387807973823060458023597214243737108283225667595992184969932011869961425430485978218660989663100321509173552859288679625594581755874566743406184201744523457665961451829389544330115777450213941556799215856553444788358597407737070654280851151576551124200907800433185486069700996162974858738970240810367308254108749280880847042196661447900714937088951053376911269304529933810787532035847211268685418504669172451378966161956481290084896584161823942155453546280832103022186514794916866243897100087924560620147672183545473650299354983847147771147647850646183866893887670116975295355464861495433274483374863763976125891255709377486650396417446975767618029250815068841792480121896414537037337600212550364847755248895825107848037593283141976047597328645154579847423834690305414397183419618414754018672430576615592406185006898129226084854620346001971002459087397434355682276247311493784749060533364724081955351536486015723140907868498632121920125702211483595596186676960215750174074494448141746937414225037032551365822577871293683779371681073430141355098774433293489604327929739557228944914542661661102411414313252303781451366852287114948828114017914647673276222434275391833015028897172231353948973706941539815018706093718498930712713437031786843418670806979785386643999754906177541273859724672226149457950631992086251011824412147175859021045035189990935973725811613076705688878257571881335343175560034454252051777676092296334504403337845507490757450290699937536733270914892644782038419043411833311371843030964455588531855009861938581457542736753868704670637474814728323938580084814854243839386343478881253072796424270366859687297851746762573022556265871479102696521068312504570637867671821363553608855002948642713784240439099012317096921142283831405078337825588741317892576954632528973331425710921034372055504878642298370849066758754122650824243344982488686867127541439062655884840961304192973363967133156097295819961495825594258623091425962263821657806351678161999973225334832555829182014899861670880216404207390639293594959276599556213431914053377297133997867549922244593696907511005059615222199942626662126357948673883514232301863671078671464803617491832342830924264609876818854960237434654295186647795240837221831870604096372612212524810178578030027209590883840699350998345881890973173987460730619485191082415412347057669058730073632824630486643606446042980606538568886049016601901136169652700263579853178900017457721468726593249541018727528989528755580205987585065908446608270682271570599295373456274639681850960869332954399689058588468213840806611781707804854131402726722359102974106071429016728522655851427523304682312497163285790450815805582382981789345417424151853252618910625536354326590908101320157279553472910892703756996327052325445394844213765892951662946069727011029984744760886643221857511555428228463447103057196710678612186393248605119242381874610630491038529854468372618737608774364243319501208914806725741084465561155883177196868864057484051811163538597241033382447182709721946140381168070179287713657264085587382921303742360894153892844168740139220561482808456166198946118739040949946099479864908223303030508835990598750057855753139097342873454200518997009839473163990463947335657390631699025025894327143859262113237708579306063013067314441710332248568995820768245488196284390844412166340432472244864304924319652803394827479496804338957335124853660684436398613048323792004351674630001259314328717316929306156998254717119813432759994422942076193498062297683863428900399986248247714001028933428997211950056289063540776323526029124284115571963899521714642576485997858757242540976912791927970383669555308712870696993427617479779929579875650745948047851756962403144072914981371805165588142541807910360020923737922454961858544596687030824055370094546939962444454835117627983308355642872523932668142328700262650493877515768255748495731951696672838673922038914376756662292609927706339846767812324898059445164329570914136247056826380223920270634896856742573721491820025986013495842318600591880914947346714134542536645911137126193640404820042320315617901790852116363471519891255568029596087514974752997066458868981524023910358045451845990011348707771091971082967814090647036844954975380387923124319256893383426577597339322980222956495249769195761408736424736286687857514811491969440869408011264677046598691041773281572974995994870719685234750950021548066352010925951325099960013621234564570581307832778639137572361685610996914486982004917464997368126212540871901140953631541961750154635307407813804049520224184280686697663741379402378465876657670794416864868370353161518799098767502351511871323984590976296344137250888351833434234876342249538472871151741979683697284007508185519015218307298647798596562357828903836819051072459257759920561406719510190358921199308457752450516237024537806662749000581955009769348152698761350919476028538652381269157254078266471312696525732271747757418075600686425391621379484790442665189782479057517864522328082971934272307773599841276704650531441719844866599170880110226485018894501144057243098428998600243822733666504475490279813916211439659106305074948117400245077959647055206284547002439737017238137204764300444295783467850645511742449975798750141630922252534147792747639433079281983148953758529075877511495066448770024709846015430599764863798691274373424517907616321561069995963190058880291027361599153718675085050880295994819243845287541241706865758430508064205260715356316224128658638779950698434736782240740972273458872954675722052676418364583229007448788592049799581837903385559052865656195670420480519655907100120878308591449495034529218355603757198717216209244954568891858245870263907926767423811468402167898416715683457191450579051843183897087041073036047657809421968241757678720556716746281944753994444835256905381616089162289623253215589082244912872886759456958127432734261707876280407465235813475757602843481098613607476859423103358389476906058517637258182558713419951144428237663810536860582126734008158348251146885565334208281958764370579153735075432146552165922534991928270728889944974346171692204018825961558036076896843527290037100700313803250622811412704016422107291498332915509593718042651458261678717539492102669651769756040288676290473465319979605627736607596935863862014211620682814829908001247315660367554807276503978634512840011164205993225476156986315751022747057357736583163465036783466841198644700466657692587704520763845669337154960346392586530127633200390639538041810771598507844792121907987396584627626462010710369134269265748102947266385120450992214785418267426284343988291377312785258060542465245255078232872330424673941391450100568619908629692733757613889101371203354915869098334928999592670502017193781777708832362611546697333974209864665370247290796848982610979683344604708759881470531410388160096909210712481548276225309527832682185673670588589643672195765559563394229217290812320365540256915092317190266358783262887944894808168672343236024393863461037399224649542785302539008245080670228622235491801302568153040799479623106081717520645332787277130590088382888849611008094753300141257520961629240695809325494041521954367739917971299726890124783934604304365074520005895787352625082484629092861097527653887150081245332279587646099741503650662636257192346128959883883324405902786885358085634435181878559309607035356325032499391403138546701480638170538637238705508929275032024995498814228516215319615692131470259021640472974392923426391889981507441208477334334692900287244180142085017912434514402621971602336115715182237983522047421788333207533246341267195468704561166710490870243825668685626442273457676760178537446644800346628333382041333743279179862038961228013695388016112632752115300887744233224806964561433723844001271132353720462744086560057260955670907582992416241571933667627854432129083221309958078471581970473515033587135176910352665977820006591851150643931626252346036274497654726666637263311709348338886176846050392525814677979356270594692952068913763178881923515458779696247689207325511680859166782065095522740606096763500328673841085403651991276049208254790245129937948868322909605054828469179537619667727502296842406517063555685276077979255237853519431145359015740936591997776896560168895312597945930494099599522559563671631457668225316833788878335705932145379152023674329211852336137034020687846685839060279719852263337471478717680057836818535696623678092549350499100884414602281691806525584504660055211586384632382008283154509530569041794539264846780596339230139823066638448380449731461971024372889705437942050256435625003283656762606156105157595362930823130785386991315472914494801429965967574866509835116641274783302773086682841212811615943369819308155576931759551541544412518752167008683590279017067315130292790280909860415204810076727216593392706429142834004687734479265658940183222935314636227252703648729961842677531859148640445329879278231957145803117029846666135312537700238078665596677810193773905539528070240761464283358685350661221198087053314596681146246563520338676411008448607213068485280416603320712472328065512096256295042071822544265645827731316809458574295318503620047272698024894084383632070034876527751154348001539682193175894190655695913958341861990249033048879250131577943486054169609881200054725128429730880893133314752097736266811190330441383705564962573786509260493060966290264275518738256762758512428372651063693091935734232023936437590241957094274246399743569158802574738990100036857237291860939082842239162024667772259694869769491977248951346106283664284863770670623209082600263764570229329570264688850819044170452329254274128481581565854033684550255667951882351131689495631630931262305168370288448398649625181633772721003324787094391651491122963638121423753501551059395687707218829693633009138732579748768261502373483050576080314346627733970033474095642807731189969570758469707388018024850837800718681481367523521728992159439213936950952077256072813976409282987983840126672651329107195137621285185696271718681493690880878270358358016607333145695376674532847689084313761987496845546957882329023047787981348309031854137243723587094371951090183055985886958611035051899214287843811966262640729365357286205151328204640958451253521169238017970812335755197475265024261486603948215218716437206309036887182040425772612264119479187145666082048232025437077868895541026795081119009757897068776084797678336423681278955281764166092242663433599157481622694661532702667188483914558075629792956720735213690290029508003479432009912198399139666158965748925395964044310653343343154392855654108812838082081276142493577561704941520596417432069862836761535319850906683314236497205253543884759612759974798168200540799988097491857813429646251749817506132252012964614260659880047608633314644009721135315610819976812943147023468029067919509795583088584894780160831220827311444933323694262476288596829562367030908955178221019976673185737926224057983196353553425457508359059571491087015824020031292293132676324324499952487944792896750791932114587493832604509583842267643723101685872872839617897945639551390610347008558802602291276747392831285853753715207065036038412086671617167788987246575292639080235774962910417659251144909556278451673511362387632481451366905726429026973029853235163128116747287473337989075561817065551828922483708171908954743676490632073692462006565756159067194899332459954306411050825120465054162528317338177440891490796447983972366097760164603834316107951328264431871357864600740827556398707436446149563873699343735374177897993026854932392893783474516080953740740103206242857208269180190759595263458356742548620126287112989859188893113978330483287228844785372629367363119998926129066834522351757376234905910456753240001876895025777345170461466407334648098043411002255457034525597773419692611462534661269897369710790612044547380761083184471750989635234763344533635652920452798738261440442661797981216415989271823919413769944769368458512609375869477725644163993432165736562700614609936999336552368227189476631370610502817403666940831639607874762146194879309365209618273901584014872598158835130413730976861871016241861410785723474437226264642693251981528797054761083037363939226763758804294294527479608105520937788679717053705763918869525956898834015354903792044877138558644639496085529282865067605871750089127017358013571481411681456033509088884410618618900647186945403843414462857638768511156357776088849908080595840152962025180044817445625052985264121069754742578354882128047034007082520030777165717960293047133707465828275854821352130044662897238536013399197911608697431715993878060927223973147866350481545692452340587009127175762049455192343837642951920612754260234517889382906360820561292747084092647681385997710205095166973516273063179089337047790575501423551255957895705395730448086052970455289628207180813623864064513236807302694434270171055861540985994593309173249918277493773605528182696528304402620622986143385990204939691535891435065997788243120259154601799707482001250273143537267037488474428469704824624570404757454951373335479609393491542572226562385763616089737222627441904715709862534625767949135986119301114896845976927217395836343739831110225280767519616670130818003504736453136669586325356566888310730927429991233304122357279203888128755086143777268678401688499257500757440705824283567557024154041114890649592032041121561622815633671801243192834327936489622870394290679201024541526561037630986878399957087047770990187290872228097338239145738042088979723230118705662620356930126336095129708114919544904370583804798194541251012696829635848913283628386840098155110785862730124329573568325941492214216642280829287966184075463382757991939027186240998033089356835263961536565733287183902923522106214696124710368179700147517988500954008791016612994477503278518555038219247635318209456620658553220148966678294549749891445862225437268170388426895093793711071861609819759665070969188410747580012177096949047066622325293945622362995915091966955342663070733471756725344118951666103099285594875132244288309967283016118108902836059711858166374553172509119027147787401629468724870856729188696554592342757169733195459585650745957675392799547519160362226029313314284791161281751196658584456896992456040979182711466576557570055437038898331674157763610332314410459789911459772341411656969559889411313862443580804842648314761836380010592847686537368467573958713575667090939533122008453254567475419121068692313500488788472297764638532350310873753430802589833349685463153621411083297032770619819470078428424727403695758769628491526848544678961252777726888000868023359521127985436414439920860996329630625830129231075545757277718127632155224625612260401963212774683694648274926901761388045735753771115894976407186228870184822254286655575582752344350019772364366394965779427983688829518546704477561316122494325473560310087500929139994912247401450891400733043189547897334778484993941380344588429150491971957608847845849054821594395687179785072522817310319098789006308720401440679823062197770838724806300530375511510830663158032115148352083804726276535513705156673069397969386079643230412498355281528902333025363836620348581112436778662090095397365194415679359574232252276132750012390090046303513499967279713382768252497208214033482479411099305153716866431066741910085125680149911978112597242418493437609825216254941358683773561834237884870381068236072405699113086155315013163698170813915314966442200922556510589588098226945224053219062660133999737566001626723760050236386215329133110523622472805401700942694037235869196909416523439211829550482760611879201622108773604358386370445563101352185392919586422311717627736979869291453926774777011437671809750466160997508253941453179725152323085963128661012258796630111679495581888287094707499881058925360588751128189359828405871971830720487493945471157026529372900905596569941386892565054348302081868762481416008982090056982847749298050123186893783010429689285670166059041125304781883003542096661643972388917369076015001222579495894145996578371040274074800521950227590383206390458932817975392276145324465903854606457438218869281322385356127690567345238004827139113254801321948340516283882566472566305017995684862430160197271887756491184246204712251402199614365059098425144517341874940764245278798242079657545325271518468190824100760769903013807035073418988583048672150613353448719020180803504381233155146026386064630431415949861464080709275949530932518736940905890113756792473562571188849123344213659352176533789475463005160160792677379664285322745220982371910439390127427981309435039050293745257624431480989666632140407470439102922434228946916410512468954068388199266022302660918501974236443339160962169595782033840431604458413988501725104273544223691412363396567771028282988634184137610207962191865779027984851305638299530371548280381580073466272454112544816380896324055383718263207410813894734082399628981005908127800965325021885322932118029979640826331051673493894914143691707355877521245033959047447239929809649384758285158534345491913024509111510616592016518222076637575295523300001537365110754077765524176647471682265464595573592100028807190164025388023156472733439088026835640223965261619132314829393041506290452235562955761726495166005341108136990335717204227165254563798626767446713266890315401941972974506572663047028404484224108175014621287022194573454363318272965327953480444865089797211461971655189616973787219977392025243283448369251681691394795256095190175318950227464121171769383879672225669974554357369918796881144197030112658017860908960859247352571817078000907912402580413740437839058912968775124505716764411780218304035309902228935177051309489989270306339422839326173320260391679663598709632943929245893379623824792777173477555746319672104078445514612000624219343600497198867146581224031467840120406330850204826163451315405310345549824531590326818052875303196775912368323247437930721450396391032672086248885139476998310579894629246126474615303409869913299914387876799583504753490795272492113593483378152827657824973567207195076701611954096562911784037511870808178205100802153415057246137345400503783535123672916786514189638143762511513978519506162840261432113170705784564663988251922799065341590764954187894857789847924421331946162405040295387782598549501643178582999403625588338245822098994695420693328243967389650460335044039106666106568654541598142480189112137771143977651932282875284121266906711996406004808006476367402356451296125675091461699695793827445321646284116444087772497816975318555079008983248892140315875622853564962543441278400714784636213782982196576010551908664536032596054185444593704306041538315675773749826975080576219818008116289620456177028620922706334514370472715785725465690200460515810558063271936030184957305925296148758563168196512875648354527766750911790113828896448994688670850297518119418950044715877963447903541462574165063048562209741717762122893529082528300116615324265882083199750591331764310290260208238743926040255003501213232327835690891080529077040348544815801816254941836620909408413284248649952288636591136448095963333303119385133294584977282229149576454359048139085943303254550001253643776671442674876539384394080995318686122241965919485284467194083315390369003169402764863283036090706003900080469394423123995244413080255508375497868060439943590904475452121603570519021150318547977868576144735540254015894753783442851292773997293455566492999790686563467375583662811012432167994987850132083487108114286978234215958396206347808566718463668208118433281201006060210882188833037927632016702192033780846978362537138978504658480306159224512879572782034248314432115251094388064794664356060674609606648466381773685363446917373655776273741013026068687535084442757569623806255677690626887298316022495627136462639983424105158186635385929999402982331174044457009608892619610139643031302946429730261183243890249696590784545202849184922602719385328677591977378427365774460661318356097420029828582473874987022201423191939775816787356429542207091983213334012951541186851805045990208263422167295011743275843509899695711293209083385501349720598957601708836188091567047512927727879973958954018800826155553677325112467850382866360711049198157781066493664525625702878866908825440838985654626303791897966105585231681935602844000793940988815087969078541410736128665232177225385011215357667791273026248186108358446023680501837362172606167764477372684054129367301345155941386165531049239522670792690536912673584704719748488219651765269799083882305976446759151117704737155307580779820049031996389761812291346609632009638399072702457675903002713079079740818696667398429726445053407260072780024656627639730081590235735386313682646279081442118168357930479306431246471544733363428559821548205760514975184220835786767481437853445944188668402906107708054446891767586958394159737091584534579869300716752799488347378846112851042796528746934568728682457351283022989523802950632339247364365642864311939352273425562134535122033866444470380724019228744806344666356580606076011959450282101673299373853441441850953857212128131236772835245950454767142191083403069868790850292251764638375221723106618020788346510248134410717627311063013916707153521041310567567857289594548193873504784916474709681652931284773323321886962337180419261459754011963718637868907676891518006152619181575829987811193487855646367941604929632758124223113866792957379387347657734525862979800468071575313982672130867222282423095811493908217423594808653370269923515507609422631610125280789261820625096733703523624653946249496513158751082470577117540620397934860958950639286677833703050044720026835436841011753327297639517185789399859378842228586541492555781430472479916225708598518441741315643608526703166424304414431057691201112434035033725060795995082623459126863441596481792598952435530348205281363512636532241549536809295718998193341812089614209418429573538174312325452102087766998141120731985091154563509798720388237985558762860544472981472706767285034490036949813955208296943054686319017387219735497478912157495418610242375752466139641946437810503480393941619322089863406695687785726249192474574041891558774579918067091674722762249413832305973487310054457503610049076070477681422986672309863356339203807567827681784773213064105860219402524527658647628973339390109612628325927291135750200465522081984271698999778514497889411335171717248940796377885279024291605690214163332859209905204377913039976807997308456632006276226413922760860314318759534043412942745648549709409976961926807672287499831991250845837521857907562124609359190110504896825823084902970176498988247309055396955196031853446645841847517195803956772885681664289961411592672424989602388428237330402738160481777352931646600815594477368805019782640914865200105466542412450957897259662146678966128001320550238452279250299062535785621727742591889551556481538625899957197774667072641938500177757064029795920853693668502418135836971312748082533703275143244392492130819682908087654591950341325491121519125094554903018598341141712244455907421172099917261587084606502298466951935138652040767605436057713950379624826156678947697883932469406743599188068288442239422840884774911253814116518708843712160095744434878661836596215210509203111780605431230007570844443836947536056516966639797304133770451428094919474156923179955839961317823719040759869241061008910737680235242477738056653587321383288422184985461233965316759121943568007514284489083484373789663044748505939754364155889645932145019964565206295558463142435290660912967542881583815909248202268576284881980992991182471911217105701484678955659474940570309355071191365970861466224187228669497554257217479118089092779088771488791720012112881759632047272115515945185926036005028961563430475030983203411348965068846991650531415545526983014865206828899235125091445915743071542059896240455629583224648842819814667795392268314970201865995371765468003466573058771456942851012806066665561373449461687164047643273463776945285739835952011894875093228256878400207534182899978628047759900749266403434395916150552658342317006875667840579097963277652776293003314653677828137474899981225378938276143895499421163679439464701650980042570126518194010513924879394215538084048957276613830015539509884222122510556906262768929795227691787706048156998751713047166502657257533981199364014078277445730474317228251803965794212780330052746053686315611352469861075849367472649615623521793460496161378981771398293277981115374822365783358594738638495778817378795181907568161678154811467744111581187323827755342771264245909843151604317943533453795159539566410764847339695366095210202719082482205846598159433569402427385559226768085805591790936106107119145754489686092868136404774948301635722199313579011645206094126865865824605146960251082739261677860237407497921175781196148264888589776250146991229670103395474706538451345704150870636068618504875100089512782430671230143168936526892871791778350917946813388506523324174411347538065213010621693653773266902321888358175429672823586685598453941741570096660716288193199596728726714536720617188448385215621545743797625817877256674013710617310702818096273762754149550341769940475637942894344082073909353015244086307465731837455019157827597569053428821903491130389235312278731630768694894417381701231848064476500061031491411398725988062933485704165631379340079986023008035851857659202519326644008359556292876014647069200573634616370357241126155808026634760566705397877597179273168626720479594248830275296640334310761273771349778499052695661779205688105925963040135967703842716947636029997544080183504942742073315263365080746170450814970587632560319730380088740664305061934748290569630561324065484717543528311974250181738043879051881654306951554832281224056842480530783202685613866478340706027627596001124114448680359147257408363655865845294250810553674197530904069837632158834966733806660287714209692654089972798200588477306554049829815952894774758214628379162688062783003241437329635259523550045308528176331205873896402494931947822942872190758737314596171663255144168816365173578527016802393434684017600159905301409949728396304778772920941547295159278255101037545179949087766515410442693915476511488534828206589125265164652490021157229805020875762223780249573698139750416487125849419834060915165909214103449875549007799295930965980438580027376365773881109183353380562555393328578544219783321517892217696518974369689495714305078190205314390616138423874556215538572988622082610284714244511812461052469430527228276713595942946918733844875520686327521190083307682269365394673441539898761771297890221917702482960822604827113406177013886323010398530842865551789545378025938316234982837193902536542376360910431387075882298417626269955693625711332559354179146795471983316400404555318304090157081598482991015767193115773327126302871243973144455615197689735463571437950157573517746201844205035546339632560026818618979979748115947773736407923264318711574028698719326756942002294032526387056987115373634648125594883306631658688478055591852012675765610220020726449818330779533629389560635923383312200534791354049857998513965206446858157412923237057952988545633712338855036903865313461667736952343890159132050937617883440917175819046882412595937884508501489340523910548070189005579744268067141553558089631995074929497084227731265402226178526890711057165700759705562280586148547696529908681196814576538865208273957844182830332882032218797932190106888672071763561665746823919092957652317334085963370525062168754671720645076197877537186745377743576862853329718412208104212074030314909310509882946227512350576087023471196175498092079510874509652152520227670725383213337662500967983288877834434200523488760482893721955579631473724538058233052705334634802890722500253475839795774574377846920009712343457235715302284035382909225273195469075892606260776716485453925334715154777272257179015374921257808663548978107239907131725518225009772297998135964936145159965193272751909638328944755784502369696086890329410190674138937877102289699305825390899155639638619496578161251941503182154107487665509612480840416847233076206274384085453530717301369519695477231572047564129336534231381240347472500109813599256168207465142309735723128980006788800972985932355806192175586509521709984622877914802648252142980624737159105658747696871482636912173463158479267564412536032000203226558384160859293236119421828007289085512273854032634865465408508934080654625954238521954594229817787481716709523784989381642752085606518157993714899954295927297242002947389767302781294452980027067105109649038074375238614503030558544277353803509928492443588608579205647166289924076152619206447712447975514141800097667049435758551729215227980445503364782045582088138098541797700420295410050094768909637805972761928346053122734570133815983683718419497596456507903052459765429010669034085700812295574024234363622238603073960093368168127216881031947532798149481896339435695547814865480902282780770740925489184900265352974369764246255865509339385405385089258784837572125950990109904564703155340593032410470448492274520276211819504380040271515269250019319495480084257728569084761720095438153314075477310806056739578847004827097431310036325968252372008891056069839210521414908302090255870930002870446582976459128357656687055862529591843472428814487665329886137595855743648345433610643473609877652864594406099173656383191280158509572575626116656780635176989605145769977806370466848940372718420261523270304209838906569092542532614657753503339614665748958735179725843168520461353245826107097007513869418479294372461192776073898401716676010527285380068927863219275917057681082314294135667636041761261106465562964939140672639419540077943432775548864105643902763625615770533667145070388449591915328970852599402827789524076078377094497334539581041289928914183371504654061205452874291794295850058612170408956944451946320720805684669964133810616000308956426454484662874382117124320463584776202375714132454378884564414126012826877740130718212530326881536796603434553724565251689126721799598090629612643099200090841863226799183280428728510436056658403966338094817590326351481450955376206645253981464384801308335316893505036695344932053143510361952431653570384793055961621735386302534684559778539750439887537767983480702895970802359325023358911050246977727124665575325585708910095330692067819899045177063858852420880212031576284995977414044796658215523355009448522376021935644651565489596883238190456234177446605903215485049991055094308045630029555359527611891918829978110361638430823047433771812514810357665597263663586398611984798364377728510569871648310888964625845961386401094372149691627428199861308236765750742279565726185856187650038930479738882091562897786863401216575173430059825190969154140923712283833319068285449998830914683314398953372621415505815148197347049523768658442791001273673405873935270997590733832986530456990063515067963886475616780194446764896104392753629275908552889892215387083518670765493934649644825682178852873919089428401560889384024069440747704796523738683124183819362172564168188286954748572609597020066298728648018234706873579139131086603541901160603837730027612594898818006947682816778859454008784490893563979680569092617830008353976621749297035537660489414829907601990219285534199310745733122818563783899505152094104265408317339998679957209429153512140454040256268738312069174762423509656625964889257375380143051043028816591107325183540954637794545391601137660011765016987429720351588416855795514178614267262224578205251756123122596773721842983772653861365123704226622248637168413300405147205265411245722713749833723963169681286235053709466143288674374570373343341189864063354818270035297498812648781564393957003318788901268126346288327400613319117325489777461646154202882001374294253285474882496219955111695386457390778590634923517119728799955075183561768187116114510865333674291721646201603327527489296641463802319986570591167071913996552140540859495467576776283297205099172701524110260399839144921893716370659092542603139083847570626443446783328026870430392727387327247330674239620460140253716889147079462367793780780571214372288192874948870754677066460627717675729486226311439577026763484074040306698582203931995948955063373523620370409525199181668515446175030264711137055588612122764852145116829916554040809978011506009725936362944149841665808502139153667534639027020060140145351771568353417396794404670780354142352221412462936487804902364281303759716803214441645449813810562645713604541829867279499287218311745003932708547650666140319240194178634684227266051034422531994764040525818442326480226745423083869186186220631955136567794913609590833740792654713632459645750387572791109628613498856594886526483478821471209697093533717546011423300725003721691445600209464092169760314466628009910662963558526157196154781892266139507286322082023280255228148615218119148108220442469600688267409415224615307865604629669607205828170113349509863946514753567255038321140847755673253353688107580448612676086062707788607560156583003107169932104299146715061015303162741341746528462447887567235647516547106331518381786359076361609172976461558835741199712252289243911699556638335654799425121620221275892246462132356704919981864344186927368727329362147148176334056637985940043116709413545274442372905760544169588675208678501031202277761464979607152411415351864267101358702941424238692289621992261663688109447192654008667401552249819537127466522773216433064501296766026917488061477818835233952356217013777209414562005033310826842840361649060066650897160490170175208704121281738741545362892717388233936833020250112943216445688919769167087048602319030562404684472413092752406078650795366015874301389626414207574880029680681696251855965077870881480056113398986134533151751550601118791713754496552001871879003440223869129965495891148541627485722881263275611873724582820395960221001326553801867877787172927549182975525898225974655197479017525306311495026774727899270413236047775389511772971518088313165546335171480522392907785120127940493704895584109745249599286710962274306853151672577442023068777187827133359795592597089213551060204953237914937678863874930851467909907833989878006781164684816928156175025037062436700726491270742774625542802027149402995900425769879202738924975934999332028501863374007193110385599682895929796986983287349816128355859545153440666241234904900250137633648035700619150348887927130823582325408871566168643538319640847808171629971035558419151395254900753047477146575617830677140304249773287899426527107411782883259330468754383030181967444235116531126113904089103441811887297158073478846005807540777313013402386268077405092311079220410056662319650150749195089791443635041951856083289314101991955014077057534229863681122075706731322015155380889918141461852568390257766044381604029999536336315444577536612708835759829687174477313377694963305724947442345608269939865377839550461069061698384505445405896723796975838737490424924429213219790045126396448546235736755051038333120647041730077875559397889448116685348471065124464046487967296802583309477413843797746041798916425280594071646255510444092472189226922537353656778842635087386294813042521190574120446455861129590122323294761823900936421011916805806229020960527900832032278762257592830286129239137301534795652260670186760350075839946302502512076705712822593783914488286456877185054232174070953261492517080293996283057483149561242538012908730723499900757744367940139021946150949465158688950108362909159699155475676786823429550000202996154251123610350220136930925502064780793691520471374412875452722155158643070742275069939661717131986329326272236345984168802018182618690900806345137620256609082535882321319717029997143299017015423962416029742823616078056168194827190509253954875719336379430825877803207614957147665241244303616510139892877091241674510957730638284843446629116164147394256540192908740966363047595036572954272730514425673437101898548506031749834423062830759452164527320857707630499242012387162682550500550684387149169820952636026203959014519330378246854224251521757882140140607373279169036326983074753989789186973087996739898766157946497489655392990198587969401761189587803973929647162417611004929242428731825763773718478687490138573185438962627582324483394469520693896861987455985511911729219279858929212014726767878144092890036779539040509479132437641074656116795268359192632969134723756787728881686068338562948556942715463584979249797555338643253098095204312807041493858909136749928327527633647860234252588892861833343510375309923379462421746005586199245436611846407358310165847791578392151527481902741415176673316489845758785889389871728273959741327268877812709438460253748900371516857084084352945952949224415094706525331461286592017839210157290075935784776282628820177780917286430190684057771350457121409165812124809499673986313716778808664239921205336877583172567020737178168720013530537428423485155104403508616369969707840330223493934224361858672547784314769461783870843487591081291590709234921545138029676402829286293152367008214869927033051308744803022393556096268735212660044476778437171109990078602327995737369934144922649206448423141071646645919930964110311837396342928139396552834706276546121899115842046850661357406851645549445284704626018327385110474478457920233819970543736542408328682865510134532446896156240504823792118784397060072239253900602936577904955840070536060907309134831292042268563051008676474450893358673161158499421345986549170818687741527889844082973092953822449120179757683420313189303418606412574927967434920823761025059363125280488564686208663720373554929314778054362175518984239946165159168313395410029416819262031822362656273037413599874011187215870942786561255426391759750467974255979180953321556731588286108918977975836722445258322530174863477269137768953685449209332612353053977572740627859325159440947460727038106365370050512814472772988016807728747870180004368908737748045735699326850685392953566649132612818898427570809330482802142340614992481975222356704238296511913009844409256583130703888447643927784377392190920543758245925397842146199548324390998251934146690900352472725234242220802916007736509289933859686252213205904207278791046356448489756328134916479539465236332344558495880729981209796339271602677848991505400668283042243683030247917593720281263952583536290701959388696020045461601875840098657509364476536392850869638018166338395836745425317443465248178260784395631027334645994532041265713363285975445028583959122939143931688299645619383737861618903811296419725760794712259600308206953035051244041858980397879147304039766547001112209522423706223703203294229318117231262896201861095575669191016977863462805997352433644203506885594127289130675239216295215464340737290749629863999274858896492253706428078741887168984212540179465757801703225217572259536210335777716819621668268155872062821817361623933257090365521032757285651997980640470125312067097538547125862514761592028295044805378508017483797353823174825876420888759479559940184177150236188511059712056172579783814116425290893948864934371832896103483603876427703170965761160447518789836170214980914505932434076179924607624660610259750115519480302632750613938725026055629732392209349376504769241745566790187872178214548512707319287517265036670854310961776965644641604610446451091284520849103335999674850169319310737224556469973531641693196842170722490991359826754339078864116482947993281157456876687011245010752415111537323590804107617353661171994270153217192840876960755811114649722725219327905667011576919142263989239624912270034069681598711761606703292501204418779644654581009746201130387016650764506174951847520283896090722023039294396455042843970691901266198382989456082706534175012602199229879790834098517998104702149430860282582511726292778220386951906402660206696667604788702610693479074508321109697828649895273237702236088500892807270422290389750977938116117044142617931526282026748014721770680787876486704320964109629193399134215358890178432469681715306937861380790288649753936564180945116244658643961286944496260765544637615438075523477426289655534542753662148366669933954425597420307870082553671670054494493298425698290892700855775184290912334995041236010379116563068085356427294186616078019474144426199777531686095035602119721439842948564651319127282880306044386671943149291405135841363851644001499247314766258473519130442413677407463196264937541606339224813103384234168387479638836542471924687213776600762926859141598904076009793488259843441798649291518749543594431203636457012903340488762565700848974944550340324583395846533960160858736190359429404827816471018727378214998734812788761019596871495420249329373255213835967100368938343550428939695460359296810874358363083797563741540478602782720297670506647865017080385236346205432586776511614187378611472920923127317646953084806908931818631029365639140068292916422389021049670657327025936840013737069915799444700191786647963578356601230923478193399857406963462903528700441127790616311393275168639262773135196045656848233823614022258257232474788989270813652061013307056685208902563858524721691132421406611314892482155576022685200430435194260930951939770256789002938835323288018519422905373628042061573055850104863378111624830172646906291207682874192242531582375931543230741443887960905656561891883726134532085300375382477817533845959929680973268796570317830827261070127721696390618068957271588756526626628655090762148098881124183602073349398747770565205449214055189581450990930032626989879150530993960781602869773621288128528525192267477765424786243476765399379829588079531857350476113134483501162120663809404132604999045968040096557850608819441578248821697756778090445118842387906514732885950396088079648353375979366932593079348370361596419667326796191845884477879888861055037333097192050373145631970410764566420813153082745619909994237758446774923421359012755490801842684031602829005046523823660699620132258974257731651275991066430160545106582081196363152650428477844582967778483962216229400009954603977278284842932814640631998729241931721103657799839719276373564974378151671860960698628075210824206174455843709049852217736846204806347166782323581526255631784077491158275676098526038301226284358594371994789317527537793460844268239589191914067073463748671504867859940862141573432940673892682888688018316478407450413193934395783541550793343789213999202223471318315609639119076833351739653421200447067049553200523154483832756952383752228746246718114256244307666056126197621919468954564890393548977650556134391832843422208583203859750828423406624809220611714471881860385764336646022443795214943208211578001996965666582437228562187691458669786138683197314802841639544682771065399161580753206982356113050452061589331768409378234096751360293246955247098542817893711615805619093432801633792593006901170133228293470772159273692727920518139059126508141653878492060824020941380410799614095095885700639967780018407066382948195676516334810135199933176207766559118407021686627978991811335665974305336810335922538412260044364892956902852656400831230341220200793019469893644688303104719980029289817326136627171467716686099614262559793773711520905539199018870933145427580007537367618665615740693074962979571345777032419735260640358624063517656731746528660945101102909680968604841860824581945193044861919469517040446842869830615152473835436800592063118963132071974140966904856458879101972547563186557201457318716557465972556396044880657566147352287463507863291139413652028135652745565747151733398690159363215618055931175091778663154285957725072325832649531668292330482975129714957368326982839564648616940212428552567732622439024083222277054470528033982768531177617967143397930228815197632729415897146676334690472497758928783709310818750002710423489398282628985092160354846815909089302289041414925278182040562414540995950340953248434341097367857718312565931679844625287446541882608488722189138685294196122849941114281735225233937874788725442936609500214203969856372105263271069848323415179476606485640950576627124244876155574196957043938363317179872560641593876120395550142227722814828607006058953710073892195352665807156106579340163049546466955100889214372476627366081842951006158121091508621873322876980886619447553601741031333879549183210432239154727744063391434629909120819379292572242249960794379557184429724689870999747908639396370996976776095986775396281572770205379842998341403748382686861155616151995676098902987213944951261908682579765494972653275957221097998737208703451374062311381166646666837903263365855415708549339669042856997106909189374857825362318143160550131287501076286739384131800462973074116567887006154837481524202392087582447579650126854887846005473046027498640568211314174841167247692320580918865830371701625856859282270919985120435999326259785484000679679606614896416545018540375250873591549032944150120943147487186997601697702693796404369182472739126354494559315733395687769608023283527432275821189183945972097059938788999126429875606279186567601199211089484915595667313015894313772380204464570368928083412283844107657139300037553693963956548246753488192828988910728140718265078679444679179200884860528733783601295756331078008584715777902434430206662607536993370100442227621578510017616325758958683135294556516291819994129830097433635800348853578251541047717655870287209531230706861824508577488457456622617748593826742319280489805893765533044159990025427287658140758826067796462488718173818395470892536704358275289244597338590630597949533485070171588526982849458787923254571091103912960974258222783924070995682193866214934810529512669653084277785080575303815476910553530090876466792566414908648823712177230602070611009622900988826406927456067983539846685727263474225538905927713130075805177192518735146039146209107757036690319360292011638398667489607699460062015152468420314577193963880250057483222748722760903806411530747371671826964798530046717573815024048459762895240630665005198350280838149224314374796826322323678153177603830689551715989611976262314292035339574451948847539900922910700018896290123772700414733552357098877052762379108260007703094185834567012935068962858755177715109626386974708411195506460673167290342142831814795312402567082994646248131234700346186053438704655165557565150331825314553850176128531450926872118952060470003616525709116725359771005175589605319724368465108025634683704085760449065719036247195300817004712438953215595069264775510280673983985692405184255683748046969396918942213273483286203954649856254614021181775169176533415770764044952445067885204188893738733124228069887855184805754170203900159993935728757612330129638159616214576721128360697423658479152100800926170285017534186015818577227983290659836559537036745373153898000023557090102834804157512062328245928179575294084022046723448390231480241658711620284619985273414154836511679257680753245556688035534834634306206576903973163299023386513813107558387702788596931683013233084026768064733192934789880095206786519317160527981975119896874112752901247835771494508650044558590056272886152403866103802572832563956057650773479879710142875449910428429794278805042793342296850608913713339334410480730820589938547572914226313611787415281919816439697439266276142648532594460176712628863106936971374612950000760087057644341429826108023436582460894732502058854695963834145399368705694990930725714309820490789377081514562537364200770464985383607129488510267028479441208208531394312577889755375633027378514771563483045782424697370085322659131929524672570381370316743711155524554173387094519714512281006835798718218466638060112570849732001337802464772923400794317813938378009310167242329229509440191083297427160730262044230646292664531950615015294299710433991613226570132863918150457499929439434608369421676912505859623603015499805727848832464567952165595613058339702792042328600961179666747912774286973520944844212183570136817206258553150923029089258181987459238056360934131933354001152237421068029718487377429646024868894335980641768337305468987211888069297741553495628083403238919626534298784351927706121022250345044127459762089528313242718727145185492880013216237755560186582027074118095733208841549375645817993500219145667534574227076126068849464401690300353031315134805345186704508836432487012131502573950949522320474489389568474247761182515177096452040527259661822282486456848586778514646639445041158144797274354367875309782749428816220617601362755242746436950926306453433835699497696223555215188208696795028160284467464652208365921191016119461220122300044305703549874465321628694562711193170284766619846322360597646949913305096737806219339218372077131170461997325345920863469498286804635198048718015949721784039914354944262357550501810750637478029643755544677711187636979573604964828954591581628806920417181406911388033410715967027168499212241561931580371197964130402118052295828885744851276258501666358867490407387983336393402738485961075364672664324971242091107254109711514593458908179263018004546068525327081733445093842336481946152019179205052722951515794556296782515939088272147814237622947962785846551406690835300502502744722077095439317953113712019335712096266898352551976916250671860398538053915729100937751804271220231636264896978300522282825968408511188644458241099871412465200228120765364377251028300153781962143508778100437559334262866110943043287830602794223255450297635095050766335727839682677244762774384801390580723734570762625261970440751108206909563391100868959832467410100767968185205895719004221321762685469907554200409316453507357601347467542604418220761151941862482790399527071471968798859539154858746887314877993697466014822797383228973867892245132100240267780452036662494300545214814789545658642041734017937467384936423316749044154944120151977962716165486660745211104981554473458583541116973016287073222190286414318429697875436954180038216213152446495113509254422117767691351966891237845117909932355382792579289751671490416934741219647680731025367125598300804931081092238736234526980461760019917294883576369815318797167556761993031270246196806781502914677110062899175602498997252836380719774055572044098731124279068429989796245822898295705473725445491020900037065668964744392740288177190879252351411433380297758568374484010545387667299185150661459032929140399869559611978246048257812801762459361220138022441308949336542865259895188746393208719233223022089641482823188484935847034018984794010221048267653812644544911892455657833326635226367513894388980367226656590056078434352875552362284280830220427404576448051772148212016131998077192397458211033542131448135708571787673760131645084363615230300865239184211893457613236987542003276839663037952886966735658013233260281751551284613677794671668633694515169760446570401166055425982934071996066193021899047469005579828414334418053808361323088254327017217662675447475047736886934613633862261802275954819934633390110142322867480306599898093911982348845572472046965122072816147986313711636070306020221707557289609337345746336988994660084733531724622134193281276094716385223529244064483998812526579863767016981903250792608198729100470389433054985520444747512027402674895154680825101489480594047261707829769361273027257346255916937422856462744723368035161606859880455404842558154334868407776343982893051979413987888396405046863012421255508296610032923686694125068507974356520450699090764493707099454277312351850474579068801975570460650331186137374992984618974990798645643920644693852679896539415129702941024585742591427945699225344348926873075393991954831466345996800897130169137089462281280125894328517088578698058970616047538910272728285364651865249194389551829326111147194777383144716426746003274770204326421076881308420240667794432341942036044373832489280039034706427915685873308992716204364611369365017374858696302389692315796844368924352199155419211493606202833031830150588858397763165568757557371899624876190853013412771934682228544550996377769353494771983047979912077595642195176942027587498353945914037303870404651267911069250718321943521923465967551879945473333316378370142427825911807221570206213926158948077343027461845990070342167866173185854898528508658571800371905251077714775048643317329795088022603054537724422294042962288406880475767233450563784311449186865048464571279374879640849033402672045812546095087767605097668171734680774246325005295184836290004936931906676092251779634518840926682559198588512301255564675594874967743487018525342119932645625329091904519699117737537715647800750743354335981704932662817855187134638509661875601604828595789945166380768866974726750742216086585100121224903595239843488674610787671856160340985379739910446571957704634503466939909743471743135598727666753856588847429850593871736675283137296099087066675740381293310725045927402768376354479414113634255515883067707720047603953678065167376664161551028289902068865559674998530156211783819335477355084443410670904611005018143059846197974269111264941903158098350357015555742083461475811563223046338060950628204795576666685821641068571885339840374513757470174187311318688074505492786400028720624307598781570686388829770769393310698332839446064402539419839483436092905184703779313558909520514151638006285180525344836357942957895651428764442722933236537717983231868498772126695998355334082764552116530698312500516207195475317782253889122491123337249169258282264770864637598371296634912573620690309582806233196076771234100829950828861545748602890426774180533497235630987979513282767834784242586218298482203677300419513580931784423080966744295870817486625964861899219047730409748214060879945293424438558083271184878822004856457452806381535830845660005709968492312180952463166811324871550682984922029019384949901090219253294084818532393634780039676552051271384418581667836611828726911396531298214504350799453967726315727511966805261409841303090762467518674438166371769061696896990103881095242019487744936612527729693822172213473536116602709815059427388323839819193699819385433276792175470185405980392737867405814657022345894574309970086287789849063692377419729635971574919972389610878179119527404443884805600218037275703620317631065158625577656250708985055196734823034311133153403804074782989035165420880294041921211578748528706180375012944179855294037525346349851599507861916196854015880732533074735791810463301320013816532293495476641397439826338223073869017730038044828801239526206866486335636688103486497136025510755076726211157752481273388660953096732955338966613425812948480694659994150184378638405237958896617446684205400932528885735000607357705011158209920199025968320611803316939905384735375783080724165808808714593316486488571219815882677714219301294109339987547876092890835952276924747500704771761364324795366929208176887904716207533442467191110569438689965277753706999766174288659569445080290662667360745599823514629296916683242543401698892474398081729917150735464917727226881564032545576296159575602037417721870174723428795468388265471985455494869450574060889101248224954154720770325820329529706576258140216431031640295436430243172975593869096799905627637590754001319958741801283960660761919607824595314921704287347041658911598692801690130796265254781109652318149016755035854538750848785001489769324993588467215302658239933122019413601758865813389906677304565242494231484649578249055821448218483355171263813919079152775853348575870512409405090766945136516352660280400977190856551294873958125464893626093138565799777730169511937199474121547429536586130932905912925389087042480346854887943440049285756833379887624929023856570328045784149417839567326996396096302400678246217090251179702351350591019092070223219623917398951408405234515778176103966758974237438554503018409893584031837309325173889471120719299111616555915065256260780559154775757017229714623109411423156827698591926240687162390208057357955471357144936310154440314899974057572020965123592230704665911902526241986433055471282492009000667457771445406051724629697565039973043505052817512001144952671099555972574437285082360316288557044715536149209015700048093600205213376085195745014052595645353877259957988436501685244075698541750637978654687014228541612090570185028806703128417905556156775286992561120726721978242481789821871445271960403514777841098633257132325208382910558082994109334910829453744871158049512629241328991684387860761560610141312274398820074588622750737070302040972011539885461363162600957418546179714904327944073394177325935804071405869365845456664293412265571892034744888575415280388137683222523515044351706914901437902612433943841983961481842513319329198541648221347488506597277200209035009860930763720724012175196384140887536882135821799210334048702168725742752059715835577551863191391384167049767089818517036313852417231156435871530469068479467347089869378635741342178812336240192338126119404369833176925524158985457164244398409950544291506897702222935018875602289095525147998945614305122951142884241372890308242731819126810360309914212594841237359425621824875366175339579991673835286288838679087338879291248955036384777529558761468201704671274328723672336853816644571950105888307981822149863369726988071612806564675864033609896079074391090082502173889599144685816664290418540923292702263741264352458396603214506003042160396343402536025323886992989072271747916124337415461031667299493730478669213669987520610009899830417930537356146253032250786581855317632650738741123033808472483139525068294352973475837215036176622762187219808021795448299285901130538453298976293163659935982252969702370692627247011318397391070090166828315237444747090531781042230914332248255951286323188684137606506896928224995082985383446696709761737845392099407276115062200568776767611957354951164260994560696656690172564041039394898709965761284589589902852282076609414138082272737640207919688103974858932948234664591955652123840734726139105987212572728976287497259955857718932473950945163171883650964840454527091389472800478200121264554457140554870085153629701023999057145107943350922717805886798549438774921627026949235297281786688981098426473637362361834762190771038377281918394969754159742404137685359816207978415918766303870213841630781897523320324546993751779979847453672742224876737781518809369491418840025577330035091471499889263650663066155952556744196320885581748112920294166761679431925830856880475917869466533792468346638434993469460665440394828015989420283559708034046694084202687188056035886841028509354058929864683629491356163366736404332158377547956836489337580893598175568818428545538652020718044955127635284334963393872573307610647274382640287647558655990717095408346376959738653625723025768853130971473761369658284041162946096194175226549300235576511345418026171900825938161074923738445133877954420810094758989012063274050616372055901510022180864033685448661578562559121932977567510620387893627115086250540914546898976432688668781751699653427366785976569545181150565561843681267852672377001527977473864392857879166428309220497362919989217048622348680353713627338902977393928076055083831618774293233858458415604105575557485960843330249370933350772958501597868147043882704239771083531649528376505375932234939050593430084841737198105445072707144140676767753792019815134756450244436998374354004647322613762878373989263029937737079591878706683155178602749677407249937135329827748052018280043987508966104133593912477360382401156966413183432631946041023907979651905176924724506878079238427171171218380845699666058716890991025868893123767622142552294059849397929430692478461522614384837642641705798445858211570894779926954774191083737531386214120846723877048114952585217170640165079021527545771378886115610575841398975594273381714623885616352395551692140322262282330453040234985298255938642995305224701844038855534475153432551485980601563379293441374884078489334128195737524249535918878106651405086566780558728813906699392434218659714225021253184124762447297921106943454070229212505132920593960534516575037375857289342812697610522167106852733671748858367028662491917277846439200095175769449164246383864292163603049125726697093281022792595390765671083487261216510296250448114920361587991629540732478348921660966063481267751828898232363139109839675943056155298431621979645024541104653972962774144886927533219686498090616598596183004154630110445270856570365361408614281741256929136820481005725350396839146376865149416962519557642123155030019405811786088876587194500649695137670223044287997341644630062930885719903327049962483221508395765978387958198460863380613669582362484236990257214800006162528995675794289055205287939103475717599735421502144087510865213390699531533635443032834067254105137029031192171223641257755988857096136740262178775785152164621702488978901928650613787083758461604503874092770812769549189895621709602274357148737252679107683544079071521205695999215340256926120397507018000001921834070946910932045024338769712038397600900943283075791629686225665816784780130081107128257433745508228836797641070924903439799325375988463576930220419121217769409934461309183749669807877059018370251556716855732779677008758674971178116767539318504548239253521636553755532074234223865047737277499223392405595448295227268827480296635392173477877227297927000945971926918347733149255609703214967047409898426081924479771282210954683539510007542196130534460635485523601905329272816966616508646599631500722129818586758954420361269017898698686819781294197756669133389336863347444552417910704923927107212443581853107818508400081949705729681054101960545906798767517286579147468790587821806780895014035132016430762683259487390335890477228833638465162334336458058219795206623266459885166297714881063005060194109668246917756277385380757339627176911940881801855678831975597621875491297606393399616038612029384785837254015090746595146193567217366793861462779908171034568269133391399920170002584416985570263112770507258646183657578633169864053645204654038025166862858215398714853727422767770063093636908452250833531580580438342241639073371286140122523839434018700483870497957224646704847021755391384439829021555017805900630108158506649099409922685716078703049167427432481367355422430148232189763435747975392883754342382394808637416191044359416440626811708905632248526348928999812386858778990572836430343287892773546734555526435468840777111205674616477071240324998779718600139823424756404422411756688242478100006005307030540063747584007435689270184798178279898504980724537427204223611279578983425889823470768123081548498306458485878660831707857316486281662023689715203071268486938573311281868646769525593872882274260419708942310651738591102552438394988402758627970815254229468962024549489395628446031632958492767361382231884119383851547838446622326710798697467174175860461929499694320301596485174144967695341741861690487295225046065565928056294054111833789552201265027379389399563433240944972189521384122363674411555879310613008174879507123264086130719232552064939087409301719468661557222354563157570109082908219624404466472579342558901682555946341171981915521384632802116094527802842667031242140331238201115346842478134257489181026007218029394009078630400399539039512924278954591507157414446175054324021924060883825690538601495739575815057277840109254316474328511765664242470611800597948569044386437516253674312402736913749022931682798530848262005207819890152295506640284130862813110448260865538130123050518516709758181695125397496676698991364789238582735831911707824891268024937395602644831823753290237938545895281560986674580226093909733356095288922560851599969312497684848097389371251749323040126236807000781927001817613414179077178464373532113418212590734911217101495917081483453738983825294235591829987514009799462834730708886393913451173981247026216330858534719317495910219910005800772318757186447755246102835075269640554492304698145438477999000164104139957599392799509331361806792160846465173129210001219954951387194527822983039194142493599063981402690269252482881780479680751861315246978231082827507408162557963204856877764849429241626818815242199747322663550811799201609472432348627269439660281933495607631818240497759716026795672063908204294947489459770693244445620288582176968517792289532865700569748151214936799281973429607725124281187352077321896253671224776491678692542450013528961471526809311049729071225495828627561834986893968977263595760907431311406158998810655727982320229208517265288691241441080130866411804063134814195423504143640865092525230295601869571284090241226687401059241272434881724806564780784628209138162221326445167539002204996266138720489030131106510597883102865085763378965329723591294329352129646842364044596507415781538936598401677223958927245577651779001387693397128852561618524155792286315314447438091847921166464062763506885928938212222894251090269848350198003871507468848385514585338378044647108418656636864193545194476858579323290960098592844003719666592767117655717551479702929910838879957525968225624878007874125856855118130605760777243552742139768878276163776554513774404474492140113653247702029513597049787613969749091626812119096345662153561290292262134333879429108515264969171052889468195631108493297940290383909581000830819140106791516147404170846754753718233317125111188362100980007298273421449569467039339180767726909161182036237920457857303281352634455975256356559532086595964730811841515301063334781371251343041928851293575792779945659985745615542724429426090515724970140074526025376029955529177934133261769919999491318762640737182339725984376846541624673200264954214836645192710889335619100436172419224554423816235915158560253610186820845334736850184055140314654021052689224114563220095889362150513782738916416125107094128422878184514227249814994374289225099339310973846798982815552481222253059756364425134764107665971708309005889618421195632587784879894202322339817541591041407667312247746395284074789169303004623273222243661380372048520745150047002404656943378253506454721192741478268669686046156218550135834385443400106688157203756446932193788026343171028270737238141148671858523444448965310243803943861585592176607314074467509114506383345794115078258306753180047683987913773411955626246599755621859786401494307415598256425625692322981159558720508285832783975519423831035073555426604360236880814265116896759541590541370881117880679306827273003311901996170362277173989300302415594758967427363672334543894840123278274282481553256910513420563402411143214722791489633634038052635097501900567065097791025320724739704453301463268351484315199017123040749645805022168946422157113273081717688860809290842958954753996902297703284232204798504525798605597641324169699385217726780217759925093649977312458959061973413162679765740521860809813117672106802064915839415251908556747616127106490367325404023534142724657179172305853867786213834911626083476005439334399388317411347273336107268231664503287044954218237876759027232605971637703284951531583374048277760487548585339581913954611928566211665464600751918312692074844409323688106377062478497932734107188191639733311390459663139216024112153903675422058937107455688488811981095411841813038000858953472054487695595590141343123273270702266053262364032846192234652159795156692705921782837577153016201623749797904470169347707943660358021810423352418787076410422381593815835311966908064661754604414267684276290190314053962635162325554040783037125794915865593638768392663604187113801930290410843853248272862134544659217459548259843828363806132631052607283226192701025232466720421079488570170860328268729773285741063434485934995359188471615293496140577913370762638998544202233821165805282872975374266116080978742183545726045945529925622736532935294182599386942699090359352609718131408571661305021087949518008707264568769836875656122215569909883976174946259316936997775466434903998323093417901400989735830357737148377454261291468134118240368185461759519320020317634022373213685753765433847640745232080133677934748245903527669882650152562999823197893458030853818550725215778087404118218070724600545584684996812854423602522297716418359605917123620548259255166404243012622947714652948801576371891379030450014159109857386805157302099133182175983022270532421185741914930580138084410180544982304380783537774785606039550163280286488957993469524407482009920316232087467872827170142429623938872462810124194894824290669855453667982056383537382132400513230868630495548015174441684980394034437158283730109334721915513928654622966153860954402737486415937837929680596613668342805863657081116573619749541201857888553265243162583023190964162984542287866553502127908507462905447375514666609914304025240299036616842831493963853383766031302621315906295584817828266623977408217899387774825896588209752854075343330394219274109382122053957497310777821834188475949703790247395431367969620382912194436332497720506128822866582204182632249465459516885601264123089979666975464366024180029129321716753396949228001706037714094566799973461770180807673480974930844171737750131166580932376561176684251561917552834784537331519217964955219859375387711957492493293830803452150242600787861648135626269023450060439022559454902124970523403664682264514758214413723182334822340457174054622318646204856372348194286621248489913505886300757793602179933237813662119031702879252426996789317930975723247343434310971131266858154603266920298473436705773162287267820703589963282848068385926185228124395746412367139633462772349066894359431151035711924191174730743234190808790888367207353976318752471037072862253329004308077700152120612922670471564981501844176113529591729724080393548958417199440358117230831765865039948716404554117517143887525405935074646304827668091897470060966041689860613619306250973257650859432475528601832580553910527110043063535329938858662961611781334450521424160445833525790527836838508251734406627728247895238882860796251106543630422977214579354093186502298422574395981617385213492795546060721495625167044756502966324754147468474235754116423841125639624525233487487139092688882074738391176303963082103681297320016806803876908867959144655121825519007179058832268341191437407769210650340816421324085891057031462716091488112949356090165651149525086211478631529930773997095474821356338126048402745610698434431093888495225761958158789083730615225291449291674912022774109236724501219342873130646175439219287917117557656750904266048090362231620336176919196150794290701142012347637915383987845864907134116962440598426327245721869564894872930582239293315973842893451484855193649588181402206343082370833269194562432094543282213347497420556337571748147243179106982510592793851568456679817939432187702138840008274156568506201373363752143731810301198668380469330130540791602495546619390477762414612490219595694718975553296679898911454166331660614372273749251570044678501431303685492883453200576532466698745721788674528781181951823231325991688616984873229584015420771768767017205605015018489231393599486152533554227736813567106865944494017820644556022429722250273271759854008540711689784339544489973145167633340636756509272156464531183710733795599682757377235903382385574220633708230064215113892792589105231614330945305458132396461624520624818385783551250638011247479064649131936027028257086021651742031133890493899108815954491615749466467585711824208153719486118686077533347977862452524801741141957363274302922088984276634209389470001357189654128524416376642685321520584918168583889343232458649386093800940642908490527337582155394732626488929943267340423156333312328549117501041235945040372958773342714412057298566704056018367065517453421714011373015167165668793917129027322280418596861478832647477713588852961593342457369879832015505288032647232205002323496363494009355609415219905303085878368422176211293538553137303272133902744305621193087593017180640196867893401446907118084280340452421550168974314994816269547639642661915674155998135627650225016008943054445595477764424731916354157041307496679245343120577410077576621423030398925663004699970671203217142585846365150523160285047273863585096725131017874626308606336439479019655953483599940503102243994847128775786211101084346071842049755066098066617562368208986810281142848363050588046514993690187385862773014254177858848743695750989667099430507581896448018916813356820087554133422038464925080681455087214609278915918557248176005500784644976329769217396319686262903684229448323014493594999734807985103869843469582405534047179122349699976193154785035840005118252259719944871842709870651193593895105575364082137587929206850024869368141978115776131516242960319080560194500727133210308227721722302624683314897453661381354597578902606676140520364692592376564318452309459081005816276934666840567638205267366071834496577111328052370354125620070434976284260700342987540826697895245698526875371363734310711205735530675925724216403024136903966550946974133469152138133075081177983732482579728706068958639797431771585221558134963003402317778325798162886415244020678498057878742011692005575200145779549634071743113529426047999199233915141889377596300727973833847600089619108781503754227108776260014478531713761639494872617766825332190123917215424686864381563314207457189185399250393823434749004742745716765931167685605753753983597959067727961965255368458240134694532656048060120617803440908020549521354787069816529811202123785435694367216610500980297001157730517291612062583500966606659813673102350742271806481675421318431826517082859892065420370998285052244632863393000062905639053819714946205570449758828039269252812758469982352549170467315650799532847567013674350215732598594282016705192805901571845755428570322470873611424562344251139334837962222672399569720539870015526566504271978832261576821928359557703727632403405610173583841100106544460049617884594077905812436660703093403872569098902821742630617597050080574072383357702165510564099441739955284462599998354269479115860471429796679169850304961303989760665188078576612962954053259313817386876966114401203915989539073900218265258543714880320727862238798208832566235337283304938521876856013783918150843406868136813203099701476709959438974658318540193560896808368601160204430878789071943470891298637796460480154732549996352858016248353940799642987354106595896028176214568802174651284170774483562325024494189627589819033218265423712880457401134665108085864746173413270650802391902519782077728999319232912760987840875646599684253855183920196066721465460817018567769723852891749228313312417345054220524101785494473702232220575344436373704947254160431881725717146591484405668283280484803910572502098967142696554204187184542430595177064915380583939917283079513516589479839690317339388782488461921194224993939561296455236825912185790827761880512359183086337169643382163676685556561396767011209437009865935440547697722596148753099486736979190487488686040632314624855047610995031314996689723032702429724712160981928613798898733436342061221720164498051443031245585635307553088716093168153583183457493827883945142476144087520190722296781373454151413399052543652446578719746085121143264055881151773384981149516896038797511486914122127187628522653256824329256269284350989780557778603119075893088545497408171226398564956658683193925273991022474844474078280596040154703828686699662272019220128384801158828921712941830457260628340621723194155132108504665618600156647778527633042554576584424645610826462328540502824677077805406302017624083800706149228189360545041860710793206114825581647625259828377117651364234654477982619108870240450282303485627695823903985689656896167621133640260846404895770449762580504535172548486478389631898731379049962102569440452589912964254371193494949650919941243220341614516743768418322763888269851150987134927740066503416225335595728449493909189964636342446902277589161456383371357163784657088587452073543626433577810239571459419107080392899188424090651452531371763789892367354437874536219877237636062121194017149427027815670876667600868577574535080136322530005669884832693856885316992610040902518215224993080160481983061282625605656890718567180103393507739265671466994067810757946362461410308348934471703288020080558018361200422352683108331004963729689943245735098444361073156943718074830167037095473551807832232188760301863991362740029901712505604863468265610588062180273736297211795724871892761626361920667248694687118301592696065617386740026760265169646959292882958324203874479623100478298739107206122223989735203042661891503434693041828622594076490504220216195249382065207968473370108803441522360123639062715005408591644630063838699142743609081179837031657565013913084574842560528691320875148659096844771824200190126685876347213340984254063019098475341807662895371983939591299322640192763106872283271768790024013007857726159614117645283318837313096379833841515222620538309829891656989692550046029171317777718784191682997777626897464873068678289343750272208524677963138282500791990933553544599205486701523554860585999177679606860593596770766616683325740063137041604943875200013267109248776727414800121698481840038136366771391318330028453508125582623918391887507852316428260910668380867806580393527620767522920995826104769373236655120676542171662233584125511502386100160381538852882643895079705978605354502670739453838138097671972745265326080387868132409704422990764673596117680232318506432811013521791902337323845721326933259785153500958514686759977578525459987569526554847459132152468023390840405593288656659114914621726058671312368871795730076219702210309948998006333753563747289675714870540423146797401890005592622843283448787280921493494218329667048674759944847446129751998107568233394014175419418832477939944326182948300813612102933566386040203729312116983590660856045417538069422682193179793288205673453128184821550430321248101632575942011775655805433123228823376006894213347944890208678156510023943263277161622156886113694634532854240040570147520677074547707732880369930220921316990875674672965306737390249140996892584716855311149931479821484286357090555341725142251151325523494803733455773360487296970238632834586691509182139018756640692516380053971575418741099700152334632174957676650549349636232842280986849378151946662799418327484150296355348042862804829156959501122870691779441495636957081048367718826277869264947491020967841296092014506830199777317418554749116278281946852571181778339310033001311679691118063549246818928895476961601976221780274193092371899811369865930509456801998255904989231680454901544806100771407168747303335147229479317295143325927325064481612806430323399174771354751727753597457766265209304767947093945015735575808457431246539097547227710007076757235939340041654603767988669140755660411890539039736620828231272734183686299159253238473695557558788189475883898458987709127619311413912764419639831435337521437205643287918093707428551174915818823073784903497455124508428964126647039286794611122766949626588989354768364174926840597265225016228843076054864011635030190060638326805598709835313825575976378494922590551625642259387298584801256036786514558120636150525314473030001404250193218561456630151600854475909857422857652686383156968338303645760670698497965143178421593375646385722987916939145427823296670641315910037002502350109062404202223862135622931481876362991563720387843448575927615061007423540255722867171055631565457528414300126651800368501546703805313390364687444212073484413525762122448756652434613761560626326807819525345017769202688530832819333447355990936425972103241747835669986389478557636945216657453094689666345710785645484474790395847073371989368531172083645654121895651273795330243434603956087487053475804888304387878483562786503006386005633694487779427217954313843047363006642282394935223912286820773557332817186265961708688166026127351215604582494423599858560483653239907445430757424891262962358188560021275917743015623984115634224518925145494429384233248221067580545490531837113930758750754987173147185222271174114759043937526072582929393659606603706836793904298913032557530377999838517579530651076003299293014622609948646887372533148918714459983405217240370836190202712535899024238669659514040040623084220133826381920250481799173245325601975237042324965219922080663723927567141691189177387030883432164412022953510818240975539315215753335035783334838539449305334735508998191662921202513618494322465663025114554908266110044741964901837789200926679638045234893883983831097173023137351771552589514636888912323898196646625060680286556999869688818042554879951570645318896735367633568563574018705232789367684206572857595863669466623811496904023697130853567506023752436440557140340035609546493743676740490186303338943654169908157246287495559833952669043314109551770561792160238053318267747635841690931883889720351607876088993057040949305560926260252199697450968190700037294168479571910970054287722296179165395062752791591977705951655387941477392921960254910698182917493158013817748342469948544696844622726496197794479628253224961357652750466741004584418116168056308565107388071589936706263017441518094529869085246357199258261831709295072381507619875866136623052414825398992209637101563478095347704352498595341224738707023937766327493420784798655500459989040047932176656243128117245074421335014834804917903499309509372503936241841685163170824101758497682515430929457245757189157271139395912417501472497333069072685301795543268713423470116526083575010960217352907037183706430992068633828940117320837320072594283669127640600269648047494545582769479656339373339287309929722841735444984449705191759327729992465157560140412728602009933343126151377531893285838104342992906775196478131166528337443894048641484162454730329406097484759683490521527208251081290423112167741324703817429025158881504799329420517699843444350925423157469607417543753768011543136115987191934822748567452101491421985502560237901499063483894373966008598356302325015344934716611702232458877472161178034297606537933313793655683185044205034086077568555775800771913408104382714528027923735487831493553496640459834558310840837413723752093587040907734219691688610549831529734157616238582908698519405180827617703693793215989139478377649582630537794138669440165566349120794638339561119040305386853204219630408505550322754676179090135290322004657541348186048584258791303989992757210838561315376602333941722192443582124795888679225226705561568700633337517986088251764689259039277325755939495675617604139766364970722245014621845125566241780840327971795365556261607013937126820791173073502511239965666629321608658271210402848888485455215457699715243903927166663720384471610632513826780616679445830747986784234967883917404096367772937700737582409331086200170980926168022660187850923084239297259394985279577521128789679976639585868174903777358221174644002520689625395499276780314204789238166576752649262636917228668222128104105258753512739981900772920868234772527087142538614195241253829515817601633199842415804453167047018197603676829961220404188344492748914542959866437538099899121150046185455410316328398905608640226386019291006386390474520283864599646378237008084078550277162101745485965651081045213585816385669898589563488039604294531190913003828506594660185741094444440360230827866069485620638187912290970362362912500474346050065509531686279999991956431012773052388624360791679411696090383459744014002986909649856732325559045118481745343781899913231676161311884651367575558641399855621072812203907174344103827642035438088233613365234886211658019776619742013482462651003272862511164459208942231453500915997605735139313519624421467811865404974167975162287500982541169214603527976697778684178592496483852746907527061586235865898330123289446019292131662761944471372589983834797653374597526532594615135043579777845738166658233867300976562931728560209861514978558310025647662792974227643922709323100120670746640159538816165190572969709784430452809046030762863246715623701508562966017222400421347046501894432309760803155264598254777703810974488651672388377310545671544278821833372094408086170065112538218713085870504065663003105378504269585728786835508809988964637801070815133099445218059689988057332271852470798225561129136667378200958592177563485875447399627109901995922907309312780770075471125991645813520007247811199151679777925920021257836737473966747648510742072366541851226009737647171402574963846837543980068500399890343031951442381466278284541487996012849549105833545053381698336954838469140441232152962583323868867913585852115538436062441260282833922506819644990328501855337118250085453774955891792826035026349013713074304040735372563969089691012514686308542755145138570552357788205813163763073898761751960850769385608415958572693634166014862537846007176178746437507655111036318587722921586570515187530789297687273303226448862595826042823096653529560804331445382123544236395866910679164433587180032340156794642488812279881178221118071134361622603874787610697626685786064661684134322509921179121184298507659408683276093686525508954340352628374744131710497142342361947878635867012727560544743660804415295213243869293475595645580045053826792569308761440368524698533833868390667867405279299274183427224214953857074716598608304603543809933905608472412999477899327830456911152719689881793746782828887088553786282062877499386158201244938996694570265755439340996566903115106353760300408552451217771203039470939596897538797877014469934650674765063894580411831208854681369018738218189807741546525246250041365421844844130759709311856492550381532558815917762228084264257177916820311769049086020511583824254470034635439428313845765776428401028380976707980372188448605971306493941065103729187118825289783213100680608473129915475840423112192223576712561344091226631304219238057223889813652850693526154835790669468277291570672440101240788170774509138072377839432903847684239880236766703958451648619914937585570220628453236944692041249030636673082347597657401638250177600218615398000127993662149584339073213652230224706429862389365923438706558375635102761228347649498174906209294590457365270001797818272584821358828535087785122216798015834022107874848681184261253697073317521193391690025498728339483849967410642164198394033940457603527568654056649705574952957788892809972946862882442219651104116386241565925511860224694271794669962141082889287411556335731239297288038822787854456329057152364682885203733900936457215835963896042988490011473149554736983201229807582507554694096937855148403874260156952834809658528607075950399428468401466572631096217360522198828300658409074655018323900130762313692938258179049666607129464593810372313200750158163683357101772064152996825295053308014247396175124613995530174192050916054180657028753308512707726271346979785706799625187364671266751030452924027973885656590221623759118304581660166714520390981345588117898429408831298606266567011922778016421006762017232517419043225107881300122210969894160766453843012808326692921365366556126112678817334214728927758031702083322178982845759509683319588445717830790467899709141187244454452432876686382097663659955401701704947848022050591678535691127618406949039394814774107928586419197968446221349687941173052437457041434912045381478418635028984302434941514798111667348508550798303145868319880084038728711996820915579187913155758526751257319922107721019692408359242375213769211745041074835395855732816693979935976322321190442866451475482701732558748979882162584641434035958247249459073644996425333421121850083728381908021114380366669613883072135939940091971425897911540487397266962413945522739204951410617666620066762168675054484061286236666576881661615440678406591219045180055840016280824662675854448784141563581586162293471701953360242958236079119551770637940167134583437223114288744125813130143481111103294827443586986328915443447976166903700855697497542950759210970310349971323060712699110059994797071989571433499466155473478216971307149520273074580147431054997215069024310826806511927252798416585199378994170872384093763622751293580869004257401908896048731162796982796382667651497325136487873610153269311220680476527788986766773939222991202178039376589305537578447989558160762816709731040306350425713518576291782255088943904137307500490877809853149893751914823583184269886988639514710249680854266466230528582044787200710805851955421841068584193424453154749576438762850559662103278045771198629565675519218567471038218545674748288000540837475757518095580795465272841979091284672656508432731672746056510753466276298712670384692136613836272794559733324177571239011146986876253183256586941851853336444665021624698514653102731240637413801173009111535759948237275966299250909659220725909566788248993543930089284620607934054729485116136536871985083229423415277261202090615295234420170386422700575850157946913699811557718461310387395117304891699885996864134702460442966859216507016801039960001458837940778376403165231708524657756160547561911502137253483830647933487608369214208999153176474999312086541033935127158009610917422544755728317307147845490370328497626733386914759106961593744805924378481422060670542912672910479856664917833404388000075474761294655286419459556617945314543620083090229774002204618120136189975861517867970725923761220001299989314340158279422921079947521531291718138941924224290751753952964706489126891803445429957366508351404197878780851105906751521224163598874101423031212375109253656970342098293702940766148652602216579525467753274614799638932387866968994310806145829288062669303113186333582813616204074814161086511573670605026314880472124804966108425980515071921566503655351326028026693598802732468898494356297614386721742828870406356758163764340606058016323447029655856544985503291426289220650702897158937447108048815654324019842663703366064596971601096489787491949312179582475042391655330893627909347496569260716484977301718815945600590825700697266003417352905386855179296411753402226179752445161491616433121893344131063250475520590902379516084327346866050138548165764400141350368746217843791666440744335592444463752125005034552243091816911752103078846026472300300347711464311804476782604588228050875381767487297882957628783838318131283074964039453087002271341289304992364881360993311905157314773437095983814358720847345557857672037395217610882816217365588666971145242486264063635008734422150583200961992575361517371259864745082016518833137057603681584456736498270353920019233836563079729332868311390708843722802293868464882818789195075612828339330376970074826559600001132393503795499442964220022300685692283639932662125086074132761869722101176380336601438007387617491289569504584007884830158785833777436648161540644005099557805513079825191941690617644982833735682794580794716799924210087900284922906086159411594744232757371253168520068425547443274675253318853652605560923830240657487814703508229418033905609152101543760410381301516049733813619825501998988917540973583932379171513695638633066282159542275029492500374442620436805389724265047438758960755777126144962689197921407178482759584219726939187106842013840987957668339618037854887264156475070780827796333641331944905124191672677220074042216322417073929376247020401193698638455743883912715841827053203884098810594007015838242986465477820276069729688370113557076557131271660067379911769887218231377356244964498587124201928665841167102614567255312037678580662793532805902304527946363713788595526806521069188238211942878533010360744260659769607115074598275621797890540941775008251905425027484782335414312091414421356400603117124865319130524134650882860004175631829941735856558271312888548775425784848251329962453455913639292071583745685479143990158293153683960613554563789154659373916897167641820777136025601386913507876865906002709850385636030279238399237465210541771594154881933059031835754817866075346135856769958763961495145744453673839412995296904614291044234532743850564585015399755114833836335342793289767521188063760055963929665367846036205300339913496055820249312357878324634833706020251135865706391866273395030987290014289219609478444540777106041518066398720149147683674972232987422416902421195072450353777282018480776683779645752331687256116999593417810285454095440262173578104098554080585466665461277027175336067136144970545182706705883531798137561238942906712466545803701955892556477556252743010233548680602221092996940174713873237117829282647017674389061730717345954625245696945882094184481924056656942666013560273872696071039687733915921391940634541449253194739278842504360739071720123527747779464890069249081541901049119326115840225679462556131088382648077041915414155044424342395527233635222101594436894334111489255729239072271521183587881602583193887731038539662249834015643665257884218984935377156727300968618100883963791827828967735858763549935705567864977235161433468606500967011935112352371608629942753124777556341596973403336564587678559440426978459613748355119216355768837025749612197232778846164649100263227762802916359222188108331413638491314514484959531233309134651310665980609221474513813086686010264073470386599542893979747920497965657690941991996616161862737042178531696298938566066841732476053110598076755326677663896578371881241859813985261889906630323889251429327232405890367701447747873711248290930205970933035893270066811135777748055724568197786887366074487284820406097413154454083388948024021434931523521022315378235000028455800577329679622976227006660009863101509836315355042873137750028995398081609333830988208314871375164010047437907347505932921131233091196003913021203849651862996296701034388546398195048903750306152747765546082903925652647732602465933588908537785756917207238376051189879506882178449709146028565551928695730717900932505873810061561888507593733785440350074540404607620121019294350380239006584580394592135416704711663418950551250181369364215268002313020890624817568015906540580343776055546601465824422395623869475500158904612707401979068952474728075906613806865536489846480527393347141540526228397377121527206638524091349051029496585912221998384941939554995182477165747494264014560652225901335543808491018552529796260275058581007767773027833163592800905489349182474612730364873499596631382969514312101683337054106275401056618091701874613682731502121536895035693408933066153921851772036815478478407458808714949106703257630820650624643997046281833549708575790350704718907666737003593019484059100358121380952731685178867899081668157056663824822613837747842945040578375108958308223824448048550957461974246988032495147114523513125021053640631283222873392209420207612155648042235113203459515103216883408584236666248400684576263992372897475369270345823236565186783230660626296391624287782320183164862532115144337641781839468754208616296455641307846233218999357828167412422619347582208764848659607360303519936257994813281301599047750308113159413082900245288798620389781302145216218862857879035816667473917219713499579168596802220575165645509257961737148093598405177584104693579229706665723027835543558097992608535289289132652734430984712104513016025653441091733140286532696591263424481695347430479049730649894908743382090074445676250518380923514738817759751171826279553337170978321866694457173855606617905163891338902844895705485978705350880542900534275591855499596887126483509729400015946376677933988806252098419869933933940843344165560904132493934040987646089233501985132385138723574949651536392928868506875628063264278462289311422710579204520431879172068433125554820424535904735866217413674298208480571851007150396898880314499765323129420264209118342117840199430258696132077805465633575732362303931351707584347305369509459422876778040553011103653804952116580172934663703681635803657701503144481141553683811341325217250333012826920572634905770235478932694580617052846409135472903028033296722015708995406950869332685873650820430887538500104011731072047142686508838826627792390446098233505203282651004729538393170959849700465293598650765370793103478156991389169628769518980622480096135909010665195767745090420487225174521175096290172807757053706492642093610779333817371201211340104831021335832289255940169793171064932869736629469340769275252616933871306439688957746894501212598372466083848337804684498757065614326694479994703489575623250693228134870860669980552049160399202819186240093296150686988442588208793185822846570839959675292323930988856197185699242283480860790581041389772020118300468080196236595359990734056781444503705806514993738352850583969185035235836454261001759518189241137593579052129096976640480134825864845763234287800168603120306325126356171155526421317543277285099886555597432721632530274030461324569747789585385497946643534569431896064921029208114504782368191825452974701838058596165446797673383283160757902390035663615343256933308950310665375283981651125682518919735428573157392707233238221587297265788158884358091897040074537715564063307257362757991344374442211540148658415256491743711393940367657478326764122983493236481690355016671319990087721493518614754315333864807222152407215663713543661916645088167709547880710608458573169852245961439138379360565206105942164008005256099669419120754865577140547594900433006200836421702147787872290323588365364102574805717551543365239199041785424673935717373847622558535170962570066819441544824991384710746623090429476180880612608999248043327323918371654344915992822926713799682685497304354057438687362351711809046658779071165091765617485124539168657110761540943150778930506437135890846755370312821437988427257966948378040214791464362492683500110450344673039687130315044390887885711248769371678550111041621385053991266663379101133073746488703132378659820334430772164201308150904967697573259035864906441538812094416605581003725348187098455488043953693808716269479822460746089628766746733144257749190247463868845681640588139820623338451137750845807136352576736404753795435645315220525039937175928952501530398880658931655800045407307921447426696057611929572429803499206489527232097372528123762805697317232608859938164703390293586054987899099776139339789550700415766430051404941437449384549883441124458893459896215103627720029433281570050635949398992441795672875056449298078559115732172173388620282320001712008674576317469334972274446227917217529352051389442300650291955704513858260339486723630704730476481346562152854896448501274387918954379343078298747306508034536983187473127840091053374818416767826036616984094229059423073324946111020602393968451187870868919385410962369947574559333720951030562760847662096770330129536672327888205657572265078373509147006600248876061319092967960898850537967015589345120405313353733900525877131966043305850707444706786898513082360239908534636874005261664465791731707477630020766824151730139783889867034331258290591837490369697886054485353696548149331133443130354581225684180251631010366519603459909685707119595855718628856551822958166316917512452629379652977547264431048910775207050739659354380014172488519824145906521031997393401625311687580618480710837723772638185814279397262048697418105904100055219615206734436126165044746480279785969903000062572874108223256878317632272333305635692871143356378662513499708526441184851986823791327402795274998000201430165200947373829256879355981217343093092434953426711061712321858723149069972283724719346703999687296624046662117479857338925070599223706679082623656441900441710954975083221762933822235326038801854147099689192259796542975240506738062977851339209998409344506066498678030068778225064974779651974991174814629176113092028871948886266607837460874871752340517682646083362792092836270760646316306334810287608049793606336676260983680413898957182599587255141796209432874351308334518675744656163806743295093617913066043569469173119232993511416811776126090318418595996205100954003343815925839467124747926636692822748099746445568569998959629313191200414563292468447401855246144478819377644183009444138625901673004340054857735983425100776254634122726560279965433454075772901113751276368274393791850510549639938381678698633884043869995463549870676829295689567228929919117908773839929045994540059569042793859472088975636628641461922814180061800839008409386924728859982406603881288194456004983739542565331118364592838741542700858657235757843076891753870387650216599846041543828483680652111671542539649786301505459709609348935291930899972924493786745923400805106122800914523608894189951137779434089978974597395856538873690885206542871199118243733937020759375609428548396793071827054004653755059399472557315034924470331991214383344668189612479588168850328543580170812965356299013210237734171142491088405713502622704804928649673911817976366732944836100003718206674152567009938465455095053797752953055158405124617447825653064568140676997211591245509819775578165618839943485659588720627642566491423743759349779346690600970925121035355142387342795503752107473494441599860998077444025565024831955034458903672974599263435551445582056395579846490454281363221670847541358281770045652833719389951792626876128667081129471938769933472248263495158818181396757454243901043419075425374305311000742249728659973992823931493605432231031751526853712002319460422984764859011417706016542864905686285515552209578590547328433812876214900184143998242824461777955577006527587579094556901963922927599764478572752046210798891221700240665570175787607805887876651638368677777707716983006182892216214835068379143122217169009958422781783733463353909643963715868158044327081639850580769093958026646999998152115925203814118822238565528222703531103409646095018133126541579232011921918074269523611030768653957989202701798335613769803334789334080244729047904297279144495158663948134556962475071413888944392383078956341090022564167189641707248747906226237851729637420903971862631010459249407389930568821051577492465744275780913192633608303039870977228313993245484614695944131966022727406816618791739995181496470620299389410558676659478896942951243682492517253466973103489405864419998737010747832994095492748071305105688270983884810106468785286552751477890200438528721753045023118155720641930837012627711463934943135459856742336308089933604873037889272737797332396980638591964534536296955511455377735209794272281707127073634849760228488862826127112182720910141377270294679789770214243032368740352756956121462147884744097837500303468640895479936455824976588208036412104059541944638198167680919598681920366563367602194518443056294438491507073255430798064474942908723898498046017762107815521995017260111279617107485768160281903162761160038019956261026137067504288364463793387349505416190315454215284266032076120957307591733583851048158586850266261070424089105723482755960594627440493848559826855650054996602396961189656457629705384585112462092573901605437623359397049659564110387387439373821460344764359840557322128404262957403055953661224040420180732257428592626358337223969695894282306995111474443906533219149519978345966746397890445813032955446814973053464725428818691842015845783594188769826640870026454975593099580659372952304572543338393410061734804666530382978913643284115843341765987469051220777348936099411015570582059386870816031327156251502228031647215289008656772848933956463477926326079797083221575069959055316546305403921739123026244347900714873154166606730988052867276853492454344886324765873036871239778197465502233717059397583662839634735683020186359936584251881151730805694488326066433414589867026966260927321845115583714678452648155166004969896160077304061367401189197727057913226101337965127211435007365166579724368280500137227543250938095891334102132268263011666212342584407173751681985145853373509412967792914328959604841688011097633049989219419982233305790905727762254136015868660075073164254993338144677311317262047284430631612483073125274184674015763605294164267059446367304312788024848827840821109021422146201196395762973613900602538566545262557437427791799877484566586053359836096140278583908838505439314445231129085645917114573937011533617055999082931093429905680827339149517198337032020307955890380774060026713576733921781986007432366278973957680955293832724276554023071252687222406199318569980223566842661853987145736515923519614562340011900550302232101612240546874085600050841106154287292665526636653098347192241964898955807335721059828159329808188023703039166504037265622005215645092561905707722788408679125240006798259627269288436339303883085346399370040010898019348152448228435999907834649414385114422525896022474100924160761639527849327641979974563337815533473392860803534015094110395283060435428199359938697077415193926402161574180014451815760301828078707201392469512400225284699352884084339169419762560646232040595018504343535011045401067749155857658300634364929557104758067549328217671835787622401921936530380052413608013713273449157779589131359437204811713758567782510890195523022522800481821109208425331487106787179461850282887117984111747240342962425656032153061449708349776335258273982397124434785682593554112707116905569817950899305827294761211856800601971466662480226132259692175836963265170509033771612958260387209480966925581100652079887236419263984596325857589616060751767053938515825370039675577524735932158406822799178176924631033348572875932245393269036352509431816598428854058894664986995383404482434839502201883344384039547120392830326364767420367130313479461562128643998585439729355844175927436791588296695355741010526981707382994850754634663279302497147282443851994301519100993278598885923799294393643853821271568849533417154068927437472816572423759660035595103264632454125451911173662760194567373538787220876634921933103580709504166281455190920679548722861988469023585901779114995556876513937454115946110091410825732428669235482630718591185930713393777978419557100248132929117866807359317677095089895478358384318829289934406081771238972121331314354141453970615289014403859940537326444565382109777599387430988669604189148135397667182609034351782049184373753797084877665724016097613246176087566131542758795313560320367199616182932197817356421569909967172180035611732678295133380329600772118051880100956758574773423850691538546051663899318889079412375712472080032367923360920632978359633292260464414248633809571647892697096383280226842438238795478675875952777693444409294687912401217421302316082447451492874456145387529843551684017056135662432675788914106918358637785588775582169803367527327181769042574852376486369640578596854371516082972150962206367285883746678287366721574687050973592184251097264423503105992210482078134595525150834813876455915205574230198583243723947483572033506831007113090094340146825181557573530645762880564517899901539189416914896809834080399993797591521592447260527481413811340875374576398026339333841567701018306944323237765185148180632025994558359637859837564512774837390931912079779219671380988601771359426045788359003030766567860212237463756107287546467518520317351518734198464168067140618075414346650212338603089416081149307406683398270438761314949763513820615316448573517399917662093457339105405062077530349306547751665787081985626082450528458276881543276563595713760716386582528379357475144087991950554423010991517206721315879635586897138697591406979912123243914192905896621987128136100257314485686872498698194146900353031699223777467948413018961753657553927497717051145540452573944124872884141933906401363213651788516991150357463938882551623980782392432622503696497095616880081233543108068711260583715287820926023903571920566612895825214042153805164491911084129081989017008781454141634763386743769896988191982139537662165036280697231352091488372112349213860552619071342664174900301685447526870002067049768445322289866736637828571045181068357865199038960317087606090903774057406014599129982087829580096083365673396862595992534116922867203872446327016836229914341920257931515367258353864522832284027550341814624967797799127018159005467746946181380048856478360672726862427441811476603037503103618451093597775525263389869656762767221476114300835345912834337082417805198484680416329822745830246805281019317506733260492416270890003561753333923181009916323683743682819130506920557746554528292392256546762883908013400530765193055366457112092406126738137250374441823944889429128222357991478088974024262080999905960457288828723619912581235325304551968052737141197594223270335068860210476094979692906642759634464009554923330780066104443982522476119179593629359009552310775231816278998685531619953819569507459405266210399669020534466835600107059202478818368029074687814377827814367058252477966726824572026912864302752721338121561131573195687874565574152449016254681766616656121798047690187431688221851518907986676006780314548885004431366172666906287265378172014298498566727280196751371089613139555812690598692677495122234012778086729882933306328901480280167220146129542129352203787527119960775089910908003366957685236978657071099841515538737677811798339827107771945170676923552204344098333952936010026776197122326026403597641886200495770481271221561517112887112321199958152707543569923651815559816478524281226912336903946540638109045991774791474944792960077220027504400031132241183152980027141347009421209743910101388041587938199487354588960654627613565527858037609298839660155499429619694633422132558719794627887682587726151129361490894560856293388276632045933883403283188602205967882873005413480021889342794354896429426789806567522215691702868083780162503250552803756021829998234389508584364949120471105208252180071513246662532343862861368421626796932649517262245601695770395231274473619477113780894482687234869137786371977440703904422635379948970275494119061478241368555994666734837387878140354789304298911217928994118847105465268155760650594353733050040447907944821686886480268910451535871599968614580410968597862265636507469350922428724121061922710358510151618131470424946227757513347280066247345721766471044077529580782030396660465012075336845567623402375421762720836337816388072293294277281596317267324210657939181686033290303477410547457797718487359345583482700867569565749191348585958487822493685121224618237443722839539159914925139933134875835360957655756162115059416244365081354245720268025806545758294753377595724170860728989916227771258772657370785922335735004326820056295339992877441580571183583122387993164403628469576270805582166806578433144759368576326744933578545411302328459937457482955518677951562922169242960633186510778327810177031582428809036413918937513060376615160591611840694690691192708569493380210910221679822382658626837922338980081913098398901450167505331002338436838815687843913359641402706795285375318236896222450049309143455287335925978677443812428666648161925633741934610337159766588108423058774661970880445263348501201219335271464421054857367091228887314899805633389469625886001063217612062726695657857986383991807492733794735975156870841766192827934377318068669189163708807614050962200428343216736986816865651585730908781025555173535956829284473564136420213071340053682235553729132059372453557884173483767284214036735244410032812094050252716105141972475270307909934989230736530218761745881210728884179431901390027683650381720688472170529310887123803409245669784136767753910396396207797185273816754083589616034021103460361032978687567739840382354556185753379696548491235605181097420953330200880139663971682194776013206482003797923620654881843460926582411136986137366272961097037388583578282810786237307247643643139036157428476702369532751962201825617722976151403400431065866799126184283082615830364195073153308489537479950257337316681137104706143302000543894117315495441870721152364417781199014356160631982805280162905680374148429089502057516617027680666849497384350276465146327507500810162720624989848765626992343166789500823452377717249442231034167674708392901592989605253484455916926379279880378850814922727072685589732476142158038809133330574618091396676218069055154887113612629632021727811620296731524159263700440567762104555710023029116231364874077532266126375964796934579294878793706629484830562999855365655722901157756416891587376575099689531361653155064594771919300202114762013620686968662432199475801529653425532005135373181966497237302165466351194593855841468345304743307450664521707055057572222099212408679664715239731129983759245393437283827550954961069690968457637284038176904605594449828132860904963278194571727125286221109271256940213251536135887431534933128429426443240310577282938011801900054535611696820984852076527878764382929542560103810671065552516016058506291202905290274558508483910160485471473925628185769430305690944808029640739053925439790815876152070720848797667649374409935791637616776349111821923229766457689042290301831619260987529181385873544532274681522973984734658940783255998676869289493502581829466404395802846754913286869316297498348092026590197305280642353565696465420877483160302605269162103851785712137637939555331936530442126002989519810759344630555052438010304307594364405258833969928806097497590435036219361465501466199413823686904047266948701683033006454683740158008373364918402055508590852770642194093917157006126089888393695744963879048156882801441578195914382417998642440259104779177859166874635326720111997753850371397481598432777018213089565665070340497729724791430923662533586534968190932801448223308414308097454939322868031897498525430264970406785058038861395446343187502341433888521310051231966407803559415685738496260719841761250796681288186681503348211760176570589239007682962543064966841451362252557089905005695728885560956478742144769622192769785122637776392359961972947678484921872223515751092336721543251623363763861862602436124233623049257532425324052141320271459344739873088183569794452208624192990000707967368362350852648321625098278511311119432037880927428423040071555285789421780229243095792548073219526411361261925344300172485151699273204353616232586514205025375014884044928840379745184337206771040663838783857433881951225326435036349594133861022922805939210080573387827293026166147742041047018274293375079587685049476949781982098837688734861345375304174380359241197102807658510833291442635047598928620142628015437570914187601076033908365109145403566646680666739825991813775409800945405856486951835841489062418470307722366047653044518739002886007847936591253509043201634056563366480978357435072401581316365584033322727440689455061235622203840710769162028181469324876952447744081589622768226176040339095235941386671070716047561883529196058264750350544775461214750761617701285231682282909052022936417762757073493560880616060292254343863926962216441631325964509741414693811637967460229664646426662405013152585298129715067534038522061334435683299243145350627428720018339988938309399700146870533459978705586612533946652929053157796649280311242981846133899793345401634485986723428332181759294939010016715644240972968332158707739262597046089161354437377833412454159772979850268006212963442177071285215508038684433628736021749247805109681228615619756263426560184154241974996406264519477560910121754260357951603896592163226956899391121771332277643856943034871294973822479047364648577590843418698602819056148573352080241459783340101920509088971628359871978067453241950932079907885309438472639824548497248047529330186423642071874327262538981613853149229754037472012978406218426920991597726051002906124672475886550576051034090350201443241999505368277210086018787155149601325637293593789389771472503121674239807129041959116142379365314389984349921398356472712641086427578976649573405247065798309624735859576135727046478003530517966361938384025747210185195284824861211807126365365518669073291548175998227371121594984998595064270855014002812768429231980998655091978570905300177192068026412322546992685561920173792330759318969895387979377134270844139430283346827903906542567328545033775361984641562810036714508619693055947514589317643562361769236608813443680621900613407787172563987309122943430707660604556308753726955913966506904324778342020328313707721961431406067415421047226086798836490167198055470954615505730761353625956357480167714292483919868426130957867482495197472227743394373086515262340904840988604422086454259071693106981294839976479200725344970606535232266415388198099240924811537920170723666477503357280174993743283908766442150896222526869917943597112354983780465627185869490183099249673997341283880909490737237301335759438997082100846440293496458817492875294572462310959011433905031208010379437725187117444145943865582759674439937035085945943632966137891800528372974718845898254531220324179307299977292497692249544763974810019994885861722063830592790246773915450519327728043302433429805001584791916040520426870034424798114429107077110036962181509455519776887325072567887957013115538281688943906045780151355315533282314426951646816613865453769068077042813709932718086415121968297819905510471091308372830822409409627410436055169360617898758454126457669511838731175932489693116309535189933522297072019613207116505619449250753200831464201789769758374547535178949084809771562724258350713391513466364992391866998890734455589896855053314354887478367354938058388248138324818907536641783764108107951264831497241439780307373790652694428061766952700970460843370343443367063081963793536158915616592121560353535251174467500173582396015613385689220845171054946778595531506561491983430226655831094931030722757117844879925970719704008459847040633023440348989378484510372857450735464627744870599577185049296828334367341596635146842273084118122881238634494258852019725358285624664469267103500150582501357657879304260098218575084492577872159462372066934177794035359352522688189358844690781461196823742435380595615952223565249261228130561326228424555805859412996246042865137943363445565468768179278082588797041855075155056962191665926579640748309611258011970007863645894790415628619489886387212569777373375875324969390140154338248202721522103442333665322823530122631192317121150948951318886843023496251242493986557490822359129749482993831893160339728976824165523074176468394661934226429216232869913798923224653483415712705143501210180915736729531937817898207819660926625085833030673914170958387858166269734410839877339280067976572885794173050513399482013606456551753804248638773005824382318155804202254173312158243658499118068858244235861127512056058005126737801006803521983573978812163761092533849237535619845190910824407151498983133444195705176549575032884004863412060835795466205358351229930484878697899938423473268842366339368726175918113203289987099151447177652480513177722692752751340934600252366600139820181399541114990538111687515054881530967509506516153606920622339150248181407830082745724656507383400175277348606535180290048607547385520561823754377815670151167149332003490910129620807242073654300856378403926446762202421941663197775068539249543358309339550303266516727816598666730315965130152532032323408023834971838243918735760065668867854739637215319793061802781551633101029241381900594159935045049975514598863833577366411253607143076712690322998742614400394053222694608046440213838021567065375902221479996379316898517015812134073790944498235554507799255881136981676448218552120936483408724839063547070710954548174270425049773966111112311671040990085049465330656548867272717218064612578060762060049494370138214796252160747265201632582510255151438619472412170912783091379016031297279488533992118855169742422876113834445758026730339156220943446057656050453531440207624932745574229189508752828437914660835310133333362785389320096641967678962050532608187324179157802015670651396927613383108162614972063162156308130342356213973432338673887210938865155285938086167191576098852442246938625666718453102142533036373589924426649317294159736572027994421920087748242680335409139351501362577191807853099846269516034651277498642613116915553586263401819465958738896404152541771062765589364446773582317906559728882521473608081820451360787225522062572912586816212677308422047818402942648719870889723661583082638729036070541824157369859982690134019727418190317098869313931103074810661222232572031086823791526481688570333501299034812210910428316794934391158381352817701146825432427644976737677104051388549036859648846627213172082467678456882452112307008610260561881619088881342422842072067365820663217574043608510758340046552624530937074700635364226413404279431647642050556702615663937591385359143240988483405258956410834632910609302608483135523031306162113435626527117673077605426981583937281035992436091905454331555891307449599883688050178226625859323785709958047832969255506456962610513424173124574977728283585632966349292000230533722606939983774727444824511182757276647160801093006043128275480250744973941607454412450031198948045246397084327126325946405082235613115975082699823644154801725434291537934677821712264612092263910083445450293529657895642539097475597244506674245831639239057984461590647886125280020758116136784025097591738514097814098167639510653962924015707125826626448088823822464379637052934672617845550289153867214260573952489781027291611883056527161962949093435964289679646231442420102556022588126893525281809513597272732859106636623372888309887066577771853014332917152094207233415617511966814383937135133875532628824368602993272429538836940382030175540551706432527248640611606462445790783056765766679578663592815865465713863730985587154492651559713419212288174095022987662996251732819109840106684833373590906587192544365825371777921175654714484470946473765213428818451304530715213532393456005048757599124979132982100070796767657225814265428460556605986745880777060474968666699806497510523036024835329147590428919667685741925998763614083930378449377645779563804179764642280272264193001372694432707237883287047244756964059622682896003857380274931528376545098983842040291958187411251579631699887771741278095438604694919423937347759640925502391968977733455888321907830583386174660212147939846649805927072012028771950036169383652356845008048156507153897744451170099918097980645852049117835575742031814039208547748584303750088686289185434960315615803183163050746406502651338890234496014966073890509829810542681179370695588271293771880311140691472680222290994319694444340077127285255766383581039600757975920143950985071371982251637725243788357576176812753603466346144053026604706195601817649479513799422532768537876984076170017933825608018895859876301464451790835525171699911985156350590492141670187932669968834774157831398054423411717402074940518130799877376247072813039256987759254218631498880643932892116987370750383025216749555218562897516375159536986106597795182175132769101454980782124081337555806494135733563723238382881057554622882671879185054929143235561460336327037731607574236759698022927963330348339847042726574841111115048783288565190192773088419384405669102291991991636411536339091850098675889172856212160728329763444019587188827864882438742497126614807627652417714240951267936020613749814020561797224733596329557841723874261016266759790125137554592608503854623981168381406755709419939238621137832515559422342709153894795264837139295146464261035468744480098925876830531439179562449372829430407331789596720548263299715174731986541406261926813852412422365443070980214328384530962079668445499865192853601252694259190602376973591417136063815976736571604776447767293090119073780783751085656618336602684649320431399347761066197581672735492850094554666160431331511677689820223178803748706502363143575615624602033692541036334180205676195534085663958675590458531897107251363775665689312661899886034107626473943752248278353276864807209442537238008788960409598270608864104693085050386220741795092949677343555899794914382108366595896953901578469100581632150106390911949118040261535472198502826401807020233924495478853985427746428546759741456901701532332559569415090343109574896019205244149081718365101204435671266422101909063923170613590312601085974356799228651202076130384488507771757400486772883560921220547633476266865169308493214106105629837142447792549608340065913115015806636638571818977246142131724646023681483805090188997606776769618198738525431362530918674328853086872547980701388190943787008782724746832668346511789944396611172519885193658153313037479277992901049682949437019607609135839168507145653266241887716962292115787350810392430198282904207590053294524584606279515311747939447475079960095046291732235578081276665787278383226970073092087852865373572884815002593852969461460498189041099874710240496480287614235348478438675837321409138974481873986813059539897423945848295380902810192530211883877637480560243058282082051707115788755350513334932043682836350781672558413534595389834075503209466099291161927846787175468170946227902438422771047818956310001286126807823171647492559326164681177517524374135277745741377960632267000480531392732220395316648231146299294268164286231505295340652460965865356190220407368374496773195192822780384672726269725363945225925335612250549834988534290163386550276153458662583831142211169939998785365653113928060403579647115883236203590043939736716613609463436315209971251709164265739550171571923131696715189334806544303658866217631612693783149025331121225720142092578907948523791346634746643612407637970695016886921953200050887808083735054027186579197800615617428349508232942941882348249457078341994210381259395239565455336421321676839784480779094301058063756853447161719700619278350491677307312712745376343121493828169588769192136166677335348224836484230834178288680619606713608502013573815449639444292220578247122695770262675806669067468938689668387100590825156242597231802961532524030346666479594791777310368766427176778324231084045563873986070145672184741231793036253510767569710097948673540778677247983043577728945790400685322102444608661114735863834111353712177849245343034034191954608165343143692785152024206972638442050494285107899825326015262513791936404937713521084191944905846366215003006612348820766868136607449972390046955586504981532454644962288176252090527460866761314310243843314286561863152333014792123524478457154322925692284626294003783665055363752496826830855553854119583316667134721005372548299206832043088609388409712890723787711486991628230610474733884790259691082359323002803605460072843943733124199529497111507777105866832637221412278062854151188064524732853599932661948359044965919779853151283840695739504637104047079298622886208965388867152957183754970187197875011357046556715444612578019768201452443565403815884172785726347252152051050177641884717759465526448383910670940375876367497925351363363385636697846655081420069050095128038737450396235460834151779547139804354286718099258407559563356790419292410503228870993359269338152719271144371621431541452343076144883474309723853901634110614877341115537454369179196605984271797353490192148703803656658087363523254315205779882876599724347560825689002260732064534239583930165815985417577052792211444854269586969257995637375362028646599353445659501033903370844589284760319593036772254896911058585461588649943404831889823711852047167587176590630590799918618212334497831185774867807260129759979892209958994418328936231621156859161996540082485621704434084748295252088068056230508669066808455032623948916588246938741848649646658043310675660259478092606049350745538497111922296985605595474326368416176713809252326547377844052078856750051275311469984485672743373568260698490931619584671091727034692559387740034254815593521299506738391197579757718237981513024862597168057906138143006255062409479770798738552549119717078932737989379122824780684909638836307584569082718901902852715499479135366071872552104289907090287403967680207216639434103187501776194668452828104679953037232546816423433064940643969934435102349811010315353139250455648949097925134496427879836129436748430131958100211252031028711700032685705539687959669407957288771627393891439772176655681085821790847689281496983040571725065146618460992383863604870264236283371388584912918230848263897154372993205728448733064125095477047507007086427745638487520351973341956227876066542427396231676983468505311227198226812812058374967678758777920992158484963413358456300692800762036098484331249889065279674623471685146553269143318516346844035648648201195967646871125259724074104329759428930105702054270512465500511636140652372837757485247350067336963859990810797882365744349241925988650653300334124713632795082935402063718140232662327405681019484030416448675987230484856280823047201557467591563117593656533439759682562163277668191024158350911362421544215101444916009143689697348140325314175468272802553024993818481083405200385359282380929522835013232427444779265366399975938124313129810230604490979972466650861973587548676057047453621257607981560057018083131872065608482310704312346441578237470280875818550771979846555772310885672120126457338931865598031652081723073781295263720861920705823344466622690085864565337021328951072717162770715029183709330086590660109649839058208871106098682156970697954308783950044286680592712103995111571253042233851961682403732171552499443521385634620938459594843083627420625489589904867621428811771480056702861545991695479367581274966463164748570244948202516986308134104635460896949846256211013849431079613984083208662810046258794443322808634003580791957006937448349106475796350478686824976556594233880558098502768756073215709674440342004626408452558071714798968486739150127866071882697421255412495808821035774723140921251232718035697906439375695104151227896861281351450837099666299851479200132883691167225000484471909334202209673138143993905058835791444718660473744463770951859219801564518701398791357716632918885862254253099266722407639095781245869749706064125269534812447837643597039603905582463172954541988513451901796787937747424893719582857759425273297177218209085069258544115083593085157784575512599313056679306656582860837782503207093693808401732302454350541746139277785233365237399547721460588867854680338293551126813367270355864698014592725078064094764768897408907648736714507756996257121333073276713643730037204530338655298623743341324396439628411574290601395382437631602985238869406443159600332936423759488496368003698681874302942240597038469721942154470397389037549764727302335374720586367061584763644192922600929895679968891724824175086131994066954486787558030880351075034563069726137931325372117846289325071181506743511498187407941128907578043324679687676671449362262272130281723362722857613487679457009910426821830160878035126182948223239612376927043855041478939469723594811186551758034046090276654114742855001594099830747546733131391263707361333430882046565852828649556257910025497077657748079417021667371791508558551775288403360885691645051408094843647450107587435526441191924296157251822287072994023571864096768736764190740315018276208528949837991621871825542337554434358559963094390101660408707352472558553358970115072877088793809325883234829573675374142718629712618442663659272677359542034403043738763173253208754790335456569006450458486971637515512920415615920049880277101307387913083571129329724987415447061899760260035424842148430653557829199891278951521235880709417815485158917201517565200916552161235071797827881201756068841247906007569688154959377143243341977435648432534674729097194760134086355477542672912496072685923283768190665490251923260503289173691100296510797819890816313933645177546323858533637040622275475021549509718803711146765101927849138101070880214740995877410954045758498264799567301775725486823578412688805111666180725638227925572695573661095307051284921278211569898721164682464981517692733590439420444153079670732092118196779516452447210749049624604134256151739049150874180226577174064519794907535302466563695040838785465445417319677872439539596989756726398375486174015785191048876434904176513749981417965671151511243620805340383751694093376670441711373136549297217759576935783309314069367729278749451262177742441829204785284224646336736072959142859471136059274612396602518964033092660970588144112798079634344872424458370009591476303504308984530226428776645130532107811261101338112288195418880574225713048136228348127954637185096092937380984096636184769842696616846465556787590006557992996016837634214147944891266111426046048900065085745128935225694728626492446900019195961993976568819951151638486475967937898278638408266907395793366319896786850802062336937750426671293635363453593204042641311182533281568408056785385994118856126675371762516615828677591011996247307342296427138523169045909540623010520709557917107759525386018174727419977295327005987156770247943638938641126449362397863246768763305229384387077888754953318652568357547439555934160192465780376929831325913662983620611758296613733096414190944022338178431775087249110988787920761097705289606499577459320785417104669336448830981025857067146908266148198683028609278635664524655384941688683673352050601919660550469790087583350400490002186631334020925082367138724392242334789698912840110635805184424431400286394887159670338934115300743388254390361098778875426411427476390993059231278428000920919523651432085042656416474713770559462201551238958937173480810368692500257196929378961821815912427967418619568262801433371068946027486672072252026590936493732525186133412452536608855857079976519423837131465788833688113143911403393821165372468640532390964799647634609724613156966877205007897296779260408884238373339109528093784364097800271000232192796931303418442836381915659770559144812136640234222950866840481126645573682615095573705159371590272131001445007929702161526583336551593422387401085469131801935960471142084933201801487462133792113967451411136568197452823573152029375931530268299168198665552518063246735179685195809374888607145974209820319450456486984760677721298565546537295563959451967413862630513738017676043674661190607092454449892700327849874539494517196006575262956958809763428739368766024778145968676679173741920689025247194702145781090977851426681884160260234839289858326922405432777991406527532767185847389934720881099420020233371610617672034146327251462343889062814690430920446174271432649721157500198370330406733600709744476220544864355525331797452371665744787813427594014592045102195020237602357554687632083585702035725698058566572698686268179051547235887683440213814469334382312657470606160574103985569582681823584272279611721509614631093771668742173012322492996809080723414896924776789475480582473725024881459085516643551006462367137257274597352147855240594903084166256299928009194959547950537017855905653070073591699288770561070557512779081101356430065023702576120374500381581955744980013565803395091694803129689573939745371211393568198151021696799296818750390061125098645635092319711862796595670591930413028451560533740108521745802591975250208311681261646610458888030067708173476849511111097004425620661781855712393611140068402129635285666558982592514456865792944573758891501348530777851272474151122977406877083128372764248146744215495635012138003541563510994248270838755171802917002230497172908161381635597354561234796997690518305036807600624951649139299515955729947800005509782805249018236489478673308569814332212532231137353851708130590481917837181998053892949232260574154017853624992612985706914338348832327940577369625337698067249246845854499313829537193184983256296762469537532915089771548272222960291318638199130130839596375901472873356692889965217821081582229112733622452820603919314355715946517545299914189865598279938565809582728493200363412946410033351010890944520535482692036387655875544029403271397782071431363446729502631132676874953424426894250304102602147293727547450491043235114701522783677413740246254248682910991306558941471206054589886144308394618495811306310243004204385364604143407228468756036188321408833325688843564397827400612360966389478221163760920873997653215602087039724941780934974713429636300962211074849043088296286511778879902294267507901455645218946758428783922150269663275309507889969997142564250826079130249972459857452374140856483275875061577670280195577922371450700098338821598410981983802635352652046619322163469300539199141452716638254535866689500780036949512771820951361947628165916662936186024656997369230918455997796267064417392115588765218624157148001965901715368134303538442762923210163399376458098579893450912762139664728350624310438115380594214535158997637216003050915835361090574786690693140982456111022795592899957041399442433835933110040384082959146480334968867497863294276150484638520065261778507766484035474911717928225535726303255692657900877438850103014033518825856428321509355726232527476772742127990765869730275596451582961780095661189579779019986212285547663003327278192291053303836598210125628762062454180857136684093261980845491797748824401197026070126790508169242748001388349387044703293495746320697427503896291641876574829392129740961657164974693859067401105521132535650128785148224838656545475966304910101370279025000230726367696694975072533686059812615973613433192314780615748402868137675787373938464234886099345256236770753423958662234352120509750992541133116715515509630941554412629222018330288631440184200599265951274414546792274754064231796379467293332296817445973398803779809354374813440583095430893830557442618151298338334329595274675311343140160985571248486357532806159692345696629373036455483998433878319760445389000991194382721376948256799529749166036315185437623879816484146458282184468769527005510972622343188648071534848155453633343915880949532249043111911494939359712467113674091898159901917821159931657898305530912292755934213018764319905246331089636653808512401152314276451350189892414498360317819696103509438541166134714565966588639822728575020149561302762849127848733546515943178765106810123523324104591492934982389233567412780582354098267403081317601797662971660894523707556552587372324586649667372997201536481872579403833483950173934725445142781170101556929907801558018028929818721878639118402176860606874999259357466190103089780002135062446429412294819630700010960505318709598702579997837089406392653220822655732365234700232472896410789201488197906570657896568579678576626644414730533709503291840964304229827765124420678822457957749133870418095916018307198444703841084961782367893099477948973848623368377508345311978938020683361609859384810022123723605071228842695655280798011150591698698244128631965526287033150658476051275066388078060563386550424957203452772822573195665826169358686043453073714281860335185936057128199469875430716811058594064691105385884139991432193715771101253489437553530823956526640688672706110547845404004166295986107353781001373260219909763624948055826657685688750280377012951042890021990007818702018728471221429547262392547677645086118282311035001321522041104846389618443494987163041233768010304567749203443216645204825906264511245433022762799402719655607802272691164504688066114725172846968087000341907926915716946710177806952092063262530756864718580738221314394634046978790866444164168775751384115122060839653642753966727767675239531215900163002138592302431100833554315635005343777024136122457690475583656593512586471366989990069989380046393280470560366756483549003792256600685531725077799425429405808763893758460230006335889983564725845943861518308339124989644017878599233451828156770420160749678017712565857600766489305562617431498443492653541648327103488599567813985618650090035814520529516180580390332040312961279505245349050445902892829918045525928753139991842525164733521319139146111877709089003112349058422887281140149252721198610786272850188494211803070395158704377537512703054773830274176227511830937591434100683492759272219852137703260852626607552143371041167201459664773088665561282644721992172260197817990516299719025984372735299877271584388723365037788290709097722213050315438576794756028855702970131593851694723063587285734490614467395339557947910406546440088088074692694907352249258546596894352470682851940568487413130801789906776676536920572043875081732406431570169119705744486338643961492946973992395081316442210702389237168303720952640308787676081028378131112232871749117794041712846034664663773995645238289242681431637159585167248355744497894038225996837817135118679438389959157481303776399431960947151062059893688471504343759585287028935995927566057138154487887801214045937725753852798455880686074554918737878583269567207914589286934834648263796480440397335518045656035497913595352167558416502894846759735796618717461172087702858453410004367256908995221206889319693281653188229306892349118948711384224821791998822986594888220189438389551110305177203151881867067644287734180701519359797214407408414107687498003255182122624580229442236581339225405442902956070479282451487876756628367286695269272529170497155039736686172126148920435161130526441942276358154424864248349710766974348700883071904453023273372880320108589940915656751317855981378695590082979752327033805132093313520969616936709945224143560094044729735276420153885059919131319793135301958343195676228521044321286862662786245985186516659020055293626683052323420851929149444171246804214014601847795323789411952539402294962605679801183810954068933016647245923651959943154578074265930203151956759233799702870979528891979453625719437219612752249528020708354178106415898190379759335414003801070601872673570629846348789093645699321741894618963138141942750601716238992812786534097980647252491835336557325504788890285688973234063452608380304758573827916429966528656216249191588581662267456516204030622949943672797732974623795359834331554842650816681311432841028609394902601586852670006363744275715934750479538484701101632443130638732187470725572023356245133125120314206707099694405707867637997777219827401073629037930654913503029656904448545212855918184631548194208238875492922413702445815622117634680076335693632522597972179869350077240637295061906699616878209258155323874499059094485660597436263040308536579824323003910321691013571527074684334109355868694032309713832088282600511305320572276432944476012050390457109835879756661324144500363623375917139087971848453619943658022042884989300868907696301903984607091396319222214572698504789867069664040038363821856915831076275262133335225947330232415608109786544788680541596797804883029028717221435828920658661763762328298762407303569272303213208712614704460675841650737935521149616811244861256571360665642482586200606925268486063800304274108244698829487238714465864203911530979093076788122507739585998664605174830564688272887020644388031530462637865069823113147050688786134644157720976898347805352404789918715350633913734590570928630433808435454420734199639741473779847169723243530925926392828215318803194665666433777851459911697813868160369479830374292502015601785158204644654147214179778458297341103389641499564623389199798236761841178549479512415300201541674254641186750596841896043800274617743850644090927779714775570526866158753136067809605910555112215102789560147832144174478802754916958830913689304536415227468070125509075826196377175923422577919973634438314171644665150701360818057796984475234772170373884138933999562631647061401953347336927249582155916332681938969969300886314231497598308561013120545891342610155882616154362654064952193234295616232762531570877889532316866440109174981146356073075656103672903464704053585552174823966132649238708738481577063163413688972162312110199105486078299315097258596147101833529653889036614659271121601830926251344350754750773968278424552600015588687193880672485386611207988319582223941702120385614039019683095788077534349430357444147549778592318245045776270229608538537911875508352672475964306025302415655622434193053318852430013877132184762176899748228543442095323968156770825152234494955437588955036570239979959517074737577936740295405173258873333783794625452655397016797654200175591962790844700612342174618386255292561008452154680540339752181488238236002192708504448911090693554355158181322974364157826534675663676920243752387560752485372600448104060514811177362478204934949866420620147816005570452114088061738756976246229562985065317409659116119539314696002280549029570364450610164891905173156630013911818364960683155514930623805997020002821321336026063912890639717001134358044716633261605853851096101330987557284115198639265313262435214411456542332683491225906753872408393938484041086072123435165909716796306888486490402599185355733350099579132901049054419898257428291374214422042159810681149375336821638976507212686211237035902215206879646985305824715917730497077338906060991229055969650354706328420792752368914935490178623856252500431756844444386645420847160418441895100581665264472048886690640426277008522813139163500925969854116413002788915542698569833501302093220145522112101281487107152371973736448377214375390509283967269069997168362705448618578370278780921324077700176802501686148568845563197576377976578351327134110618522022214371059154283392527826968829921190263244086651629849803313229823879414802683323474078622349510340746349711908436200190651774640122249374114946991479314731366620825044802861450708655698836384179731162911623981941686639174877241875101905330514271265477996785839583480708368892381167120675831832603038529319575949401314924799494178492530225011564292601942356214642293295654828965039654978627291396848008206309966259672641792599050979866214601006060613723606174665806657376611789920552817742588961959526011873750856526769153530787643390965623760462425653433348398889808581164839098466751287835515930518111735378392483644162571037183566662902791061851487365757382733071661769165446507510629508004300125101453176135178277561890144843525148549060498955740418717209511401436437258470941569212304579973955960660007679639562789958280875609537931614789358096001512224090936936117220363939127831829444188821817431594538060436348696515267983263153851186912081672755261002168557469018370384637635478132316638408953336493419370633706410571237293556960350226229679341858412911254255053018505767687761653121519764642352591269503792407670318179101944024625586607282706558080443970750289103429471432398723374018644542814515572645218611917307857870525651621354372800193847565738114612315202822784213126962750575659640609831113892040283028752983098086167597395487011126368627497918442505351570080230661381009947753023373706446742385559854149970105979501962954466221872385233110407976571752315897610399587695562098463371535017783454422299726098810192806589792522006169156096852089122960291999169360487462796056964848762504884302451320831978378236630211119207742209081546702785606055073014727234643997023108663121453234187726881141370338898204216399852610398506524528173653659025451907079126112353294343909763721587689949815611420044296296921960608955158184374523283261098656266507026318417567741074307117465873666590354623084163967792277727723227058144147063518712288547765492058018375432362736239291987204104009686245750848376447653616529773836899829366866308809600559195269803457232491962160314561626206749942654718702682880818419282737421402999223383175512607869914121658663250242940455342650843777712648615957222411168502828836981399637829245093439618742043986030908856452511885785981736696204955750740704167670457569494589651850175561871989092562239101396939557606426408096547865922849586533103785593817448810709093936923743372575851575768195877108594767689083485393942837900278780261612105401232559793481281370429338553323393161376174214327834987941058330054598761939426188008064751963647915460913639011575473104692549952759100810464743596258301979491378113806560521637591383485481890696587283624048783975077920173200621006677934749043303447767701033142093473370856646476490652069486084048579704485212982406947477581887607722521583989341368490708357958968964921035987832814873447091787545141004830923120241317477367200264247988201080314666628672317065544652799336648941822667060591846688042439389290530245943610963220447890838647599251386574176912082107045686156502870317287271069587222258073728846491501986473521663952266230677458442448051337176261449309755315083805637247197609672260142225733231886007977130168797120518541341824523546034739398934887475103519643227475826733244025801216819678760195674799792546986567871869758950215606937665423802772840797835272228433480377543920654489949273713581316305762634341074821742627373344800594658566404099672276218350937813623438192096028879907129618958113169105656172887229519385165453119177755913429348171266451128821119069546718406763684325501861391155065323584178084752068930319127507593077061944386520707401563210033770317064579059956827362253416329864889907862853930487398111072883961585454114259309066008022148367670709958889303974972316879094220596612469444115498125717872207132504320557456538093600583151288421903635850556257726430219526303852883308933455457275459059294045889957810977594854772863482818534103995661425226016101654526844223603671234658147951728019600239048497637208880140988815101957491345538487798498571373207938050547961040399864850389537135738039840006229046444724047595752107897524679691936589993554325419327293635712661506642281034081640250550253983782424449768702246198066302027592169656929462632762361022834450560709181392572745222513838868751995510285743417877268927128497138299477209248016409906805951862428692365960771905876148349949352394371581173032105623682634046681994199744614747893534094025490683954136576720176340714680935738351728202604243346524652097361772376036266103133398573597150994419498242975886490345652805169942747998056882959810513812796633868546601909264347217731045133890371212342987775867459096515531090156503566696721588297910946466998967506283751031442402319380813956688238520792209632062336600090320922671069840449690080048293097615154446832545129805540232732707435142811028068401912650448812812265489478689312032818070589315251143743298275242095416033834067312213989250759420020767272110367163792555840475769431485814992389813824436633686926202085013179586972274409192952093069714306533819849723911852420047161319556992805485041788642058451845406777314685334394041471303286749672016274562179716184908372778152776776493036530270742455081748388812601408063393734133222171377276239110843391394508183751045863297274787107569514186771889493116247801333223205134967641302880277700360153337565516229832883873595145601967882286955761164549324517312242980557483403164858394348791291510630834061135904181853270388475180561268254653139528965059373798046534202742359354444542926216701509398799427966748652379662533481682282985984319790530779066894381139027882904489283271962789972586306591401484319697091684700107935913274775760347120147944253674518733170287328641528624159749455968365351017090046256065150348549999756624186673229032028263398196843352016721086025080156262544949926021898801957749795122867578241381567202304538881518736537757857492534224094484597385806527432038220543244117772874776871357179640636770945801927493767288706223065915765470896588415684773563640472599281397765044522522091759046422799272549616676837011490601311191727550034719981421086419902954831467925045601524779115583423797847403270525132993984649243189480305460450950664162466035507857873193857720518918293154719769875014892394380230468305468837399092448032886749617523210329305546424351511130692996964062812735831433913768505611366621127002376249480866363340600529945863612107278810187409157492705236040027218354247345892630856398675429940663250861824720918004300121265426220437118938136785496336529755348891603802937121597471196788496202173709060168278872615704043977513741715971160091447886144233462878236825550031321645137523431618432257296655892207257917004056736475976065126467110292807683401687886098340510802706198788435612291897037084557314041325660042268029446274548040101304677144998124779754434286658981466260023746047790903530450944698666078311607670863457657357120175321003183508357492290130081589666170201003701779553871723802938401460715074942032195027114203943021324249696387431740754312381432564917855042847754257372519950943165694216319102414242615152803860004215025162765723144939269444011361554724801171373924395597965123232425158990479578468109093866873946829835219225466597562608188434726503118681669108371607453931952432530399072333102240561427984733436184393254170253092735269656131348119422758758121928924714997527696883303606160989161921360531268443597028134150068702988977699533701816054392371892202003949126727365159106357458004591083335127046606359568617548070846021192820469436151778261387047147256990193483576072475269352365778728632849850747984783259289847229933070658432556661024349435090261078471531678875047656518564195519885943895768916233713806716907434831887741918665920750134751795830766270062824971912579441435240988583828602897646226604588522169088622389521756396335093830279050165027769620904962922625438641591097196805534838920698759972610251938646573452780620214025134406007861272893710382531606035502783782784801725684307712138680660240121198848084445329587381469486874523262003497227460333957003499044178521220242567221056071631144084807423326971927387499396934923349662950131358806329535201450789685100813541040831935636831601486495882096052709559895534806161927404370142596049077085051431901699642643032391127067223523852564461795617339596568421200936951473204326707343634706269167284686881759992064738503720359907315659665988208775469451426132462949863540062550398783866339669208011185290551269984533367142143265428520588948770284689203349035985905168658164127741399590523263621892650773218099357648573262217877295413683593466462134092367349012483449489141291783468745349438929015322292627253011192021150706632776075632123193822754730193722636964992951581397367101889223252648729857672954708672175003510859332307740039520054190317562969118970097830409152067535246798703078832329535033003898742623136175728427325886042131648900945624255466312737853875353578846610431747349791760668745848124821220027166245345164509975239065263783249650865345071772959644210485089433437337667922751883136995289430679177192953643466607786421807944505490721832975534140966797554870532314970422277574170311919170101853063398810219672673192866083370723789149386203009332800896337907376586875766202172526926054371320096413285935523278853837918523687244018356070864189010557567991897239936673105923606011263383747558879731923356461628192223233628831326947215775477465891193143773433179653583772623396465863251635487780270889039650283492489527868982332253243531753460014729467991486162785832283683324414926187743155861757943055622435341858797363698713622386623065933387221821046815037237060930993371315072320842945558564305276201704288284547755693054725641809439664269864150948817617018906020488300556778700001671575665841682258770854194653027978134884965170625773551563666204229554635606331012186004980710664961168194118168635098881196330803522152419686427549474929955934764466610242244155914992541035011504513218609424199578961297892000421544233806947852075885483504909455529555459827915992431728288710733835413321378543869922146099659176318518229432527364643485509589013058228916569154116257297214278086865433326736918423267736235798628432821663949883130215924070008779817808206735120447632478587455321533534728269573281031978985128997762937736528544362925425296660125647777393408905796148047729767085111606269763687162188008752574522487458195832509585820305880830521265248058837717281240891069000477035695530223382165956762054585238046349015058480474712399011883726326461013347079437816402794969376889166232113954371545224334953900021889178467752949847302828252124854678360256305597380276449954404981401354801386329036623687467858507137920897612866693240626580845427438187388278053431258221119012325659711157231979280907104452567284696318490937339118345555076052202481973496974285555611803940489365548197081017947994733688174503393331020427353643951176337085747209134875938365961279963999047547806782106570631664772724128499539243577285832145161014147187350226888530472893413819051012271536103772135291709338734785161645224688831378240345230633125758904251074177320943885500677329826091144390952844574038465415040852719885178595543411677536438253916702662006906896336483627003551388892523632285893334837164798919337484729429655090336547001789418451765835056919152855098011459419296429849951389094055907492092102585211844743482239057688254778440985947440834914965752014920180400759483720769916933043288035394353060321736306823244123537009309028645521185727381684738855293728732829994092678655396673109663992400336064081733985606360547800902310329274970920106157122027457209150085503639270586100357234048988356880146854083159025522689088743291382681245817011622872001203082655295955276775722500215016609117341054015725082075105766080767367493542768839583468155330679883642448257217511225413917012642368842151854357899439374763309667902212223547273519937396952278702274557146469495198936775373137693850424511998721664977175938803348124603976545242650984560288949420340354379449491335884569534510338264933801520458796567208869955770124471002068707623441571224225243921185090105337555319229075967286992258724529392626938237530871304941680375763315842048095875338810436727538336155769500745393302575322536680707852548435562832026148146081895882639624077951418182066553485288560695017582272059895737278964329343026059133227609831669960375999121583243107305315061253282028999633135498848555776280598154258025723688955809429617267891893584059257373352144202944427803591737275882679464806396227531700164883453037013732141680837141108219607245873584735663486213911659816999886477151326735961974296994674263997070085685584587612251676281631143656602026152652199182120782069747765413543247315515893464339286114180795470899790313324156209573237781651253105659632041473941435575395436446345323525329476726816349550098025395708646880789308954343677455018774703536393993929321142113967311127164120318267693102007987197394684218731509324029447037049583748594810980050902222746368277309566694724474975115625324890023939790596476216266256592163319837135032387039145777648314908576453856985987055689783928951277893782938340715182783362214270244203685057644189871625629280224592169856750023824141601798382759476738460125560328089697253116367383296488678227013872259989431054280832153551056722758541389077591941804017704221371107907286724043992142365573411101009991660740689099809081811155384826194548183448719402638409237812192340841562491505855294536674886325393441514097890641494426544685864550848602671855181534558944448543954134034747678799583608105298784438407580735486130237939311400165984887499462940359241154177729167216330192826302822329635812460646037595880792818092112180171652240008280523161878714651541426887354222613830678729549962013049446495780986403559419235778636853436629021420775779661886598994378007589591450632066995033545064419616029187861511480178312709225534280357852955890134200570760924998009686486512585860666875873312934450718577824892052386361892464279781182107175673252146986579119541897076976017911315947897984514906258010368306931992937894865091511975383343750999406544920654599131617295994644881814237952033409669211230693342268677478547169661336868713298897597636323456918524572619967487527742734057290431436482610139555913977336600996686203667333723491255557747002317924892683801966351420774322518225202736596093970328530023440160850544119624850493477204095380030470583694422209136093104232521566099713436048773937028782855100470817467002738776695694145702253566183565378112363103152829002757274495701060932643702009270072146912427996673821104275558303342819056850392793080356578901714971329002759569046159304270581083089431904298805878682920982505722411949125779844040725920418951569194335324532517780965031916866355316316593183224525411847833862640483772931275620803861179352945765893788799648461459325995519090966220798258600686846902260527935079657246171462045189625531442605476072256480782359685420986364966318887913113798352923605462947861823628422801698371125641091169932200042355241429543921703945338477496374076877720300450977907338755071931721156864549420453668532491518990049341096827991505418211702888226089724046054802334960578557842306878875592348201235252215849067738294252245377799240893886887404280762963626850816924317538233761816961756393606917295418241525054020023018630376579417636212826150330656390965933008991790370455332720446163212537084680455732499448469984001177736795969532912202209545649657642126209177646308631418306756149393328660546869184101755526583556688670475147364651388486717891465452698154638032262812774412368382963075234441890612486662169892872562622340822998574565146639904081014864337602074507596363310336045093564781078387504121769293670371413714603417598334021074931867873702038077592548598776244350090817483311056707694772640047050498883883980679743994054472700019608468221670607069932374403018215352307466260983651749513002697807862822971983028420611001092837564148320106730925826752193881687535503721506987728217065530570618939677388663581372291025404232773365793236730233232722836403706230556608655464921759915684846618018727585237408428520733428280357229377120270498485687986144108243064783610355875117555138932539396858483189000850130523327944198739619215350504860667024290046027212981599894379203636092144512404825942578279780341087336222788260335918064539495164899236326621332143461593960786899160493828370921489529198551488658612851536366080143554671486914419424712816295434770008904889156017243179137767497454898549899640047437285532692840246227918035058173042027081440738098997743039708224459863300178178637404012779811991154672548353804044712083801497859830440537325251851670447049864691379039786522280687778586274385507607674128022823589607308104841254785334224662376083866368428382080822766574101582841048744530146149825700902798941252033845257644561811894091114169771841875127359418504077033072948017362656778952162566701799997764199506154473529646477827839956146287998508102468154434805102002596667483491833359652111424608169074127300010359701087339952832257241424916669037969721210335468992041085100990427814531456820564018110639438700923739810253535196807448927892106655470832100573936711006601953578729895670963933138822781035021336182217535033561028466042307590615648308836919943462630514646844417260991378098578021771365595759945740885732693245467500490876303839796106966917664569101613661145576437201164895635625965620957855122357250863205685631379666896605175895252163235751400013138764632893900020588223864957568514905530995093593816766295008810529317915761398007445723550039791954669034186380745843046845651646834711671483084472609408915057011515868015073826522169287358009873365614160908814991410238942588276137073289777443472582695480071588832801551945163341796441899834672016275700450562553090094905147734736027515699276133270429090471621024584440959696666370778870252797079190457205077671592241844369724294821753975967606146075575558646504467843922290365841811576639910828140198051158993758615356307131849294647757853374698009536181110485191198476400451864629398126952935720184433547028245026757013683358272555271974791067941571970333000814281979565510710716095466949451867021606454649904965773862022567130424591078805154889529857570485400991156044271180043731942259155845127976709205737106318992668162985217314710516176248905339025954627161672739579917557521381876383714049871154683746375386543212362448712476741405275495006765848675389271921132047975155137641654989401432943788375787320207418106221067411905542426592919780008756428036965734614175017168343849614586059191233529502408593004674037688398957326977040580870760102689131491375363416767684683779004620131505939733985096210125512134121486127003414857342216836946016041235296611513925305457007230572615288573683584947501395497002776434193166612174109835668685763901331044928428416023240974234239384568805000921781826718585483788527765556956985560993856908127048879049131494224094500615061534065186883845820045508386966690997205870169539956106052744934190236928483190259471082122202246460942324651959892614820464406030588205871502836134763944543988697710587356228646756896427859608710968368588569932778076414566501074020636423495371121330528209228669052389571227712938905760733636009270368045237819214246032059412061762831572827357195704224374972658641609348067920233050130809403010395628920793655192065754780529456416442874072358414981772864697415264200090122393302730540418969680058903425675084823263217758362632922188575686700597339265385136915173202160740421331510951380537167531268663608655980704215071781671480994420105506957929310580994289168144680130528072666975500345594277179816873195525932463032205107734814156832359102905115051942153129754413574083181693506168087381723178774007142694736306112515606121600823641370046645803563380998618088198909208785213575901696933005056597111362860915997028656519344606685476702197704455803527026410548047855358208138570795677444742341352353726619391594093022979112563908463152777650450330537492258420229605967647475521161291092068425524411205276517849897190707233756789568734514750669215666880051829211286652223725068487570231651341701150690417816407789667335948812189910581567758373297484495062412401445464816476660790667498328995213756954317360391734037915919517308508803659902235420056134730495411242961646480753640880673777301671769989454413064230771642032368016566774984720559386866589797318236856205895243188426906369526196336699343915801591706563064266430026603564170738753380877817536316188660071400305558182214964517727885806583885992029738484079707379942816496520169179581551940514184375022953866759230095184931185773190724080904689108198561063345085388871247719266696470705127173111564723534781008045817195788283720122225287279657989227654312033625031497976317606032124178343498916163662004878910373014806591275556340216880811953031718077619828305149989346059589296343499503485412150846032772774241514896098917194608495058621128427042343285577096111561123449074340218780253278722471878994596002505582944076846101580435024726456248364531753622657402785267898590607548707164020129010587814724028065773940572491722601818147792855257193270432679556012760591169880400586010493622541328082729569141064438696848741254582592233824286137568503057475987996776143162160503464640956458591706728235239044528438906267363550731939671469484981820997066474603023427844100913766932756374607929665146949062407718857742804118885025663959121062982450080493201412553666275475654127085513558655105618632026436276677437441033590576442545390719080301254697263072766247470909142655541743324189984395081037684748443959368652430909101770046046548380002344564444807858189219834064908357133745928594590475945835885189347425784675936530161745842218847247872608734555497463978932469378225720028807202812249032809721520551668430607863157877269576447788986198823602952703202522573260640488217339275684966630984055639030373043242346733761587680192846855995630919348975810478157977744827364633171482873345118728874049985800294228011973561735324059182785421890830839974550208483275347579110924014476037509593687631524878095072044744653739289429898736194616927189355802493194240870242793455082282327016120549748325028941328739879434142144894200558932252099958904618350987343164845759824455734354910870697408299449460419513848056903354120146810152708754817068539219350509895914568194744727523505801866300206010023704147143589296566160254594184206527866539894156001984267205549470152033844273301405671052174311935461321859744801165973775379992656546109777199029269253824695799765428556487223680601905742382476992858586186073887899535522827589694278731425596657139790158920660636458646227511439039750864326909897822544883704239568952842137728200982843068892793331119728264409999914674734086648362207771444890932354445439409093853669192660717719147049460566052712430033350799378913975102976589049613418916859937824159720929974248317483687811131969903444231000167451928745377342999430306034516271010612507304685481139653756592219610729626142158960161165394843068036581524307298998586194197058938819565443375122093777501360689900441344406429940679356258591016810239499225030723936386586168211070873014788818551031131208471298709923514326198703482662514177400256827943993638566982633110426522250137483336146104927816391717719768664913447434482074550738840306352784360356527661257408333890533581017954979987713881942408916242594080598741489878737434369488274885221674424948443349815556312635728461034593589769525962487020202670241713248136501497478855375656012499582907027206747849795368981645381810073636731731551491384168923077670735016908715061451642723020340905365251017933417184282805500794714469317936579170950143868917518300461349829249179182490587200745400091497352106687289705537528549912853330472962979806074559894241032792435733573923377480374381541386182165392825729228320022299040683164655462552286540499973102386806055265356002750711126294173192668925741174926396430661820685145131411539807345986152293302189973515242855136803303871157414685171775266689537976272909153941641307602721920396931268491943904577693545028267040625054280909045264421401960100429399941796021731524879876608000871621961559334521264487966064338787944192072472971838259784441555920204523689106310078014977785933039929670133799786040138492643851008804426025152077077101591092816478422426680664706303777344606349772821937711729562877543904708487485002873217133813343065904012597681887165374322751271307740899758677571376973615754110324272643243027647669925366811373324367699619569785379949916668532625299490100983672186517169203805217914592787192129160787596335327576737997029658555625534105068897173850230267664291739897627918875973513629340727390067948483396140914604030343057775827830969785887982734387428183075578183882113459894558169623427330454748536466784004746303874954261916654438191658396163583644708693173655334145837489991348552504804017113328691138924466028711993823589954473808852304894086678372742081187393316285413232789081326316907731670118742228032776067697895542707699668011490986795232769392057288686733805478379622362465166941037193299547738465616164840352396537033308705028407408898794196763852434079712175133814780366031979401912999452510127925325186171361112958772801482067332437648909224080900959946345672948938262712751325152410107758898139604081573354730435748021820283859368859334735734400177236529574815709674105380587049136927863265995974579562417101696176529869676276416347353994708314479617321764338856449302273609916888160945620751412087257361696028087403443216649854925094773907396370991486859609614952465163065671915095707298654772687765074658783304208232031053621066489414401623011416481327397128626623422646131774440959911437448738617854921503843603153665884711877403825716895968464984455974116376499392007354214227084637724151400633664797218779809578030194925142314679017483649382349154467121631074644060774101550990363082790784717211251521138062883341004947742730465586136542670585385593755419097418138295111683938215415824557906005411901831809349454202667054070095751576036026968944222138867156494379578454234340686503312710873631262235886224495620717866167065878464141675150863349119827336567227419723919097125926742592620593796276023902864210897934986996439160577144818394485152890459559286947046353217047820499393713918025487208530030326502116194009571993808234223268876570344563325946091318792691025502568258829813728328146526592153496104126308633265288536165972185246487457316563180557058046857166718983490116279047763132345800878600268483716573983476881085661492798947188763841290706309854505755452098479263086973478823964630957172784481445798824066319645790933599607787331681775904351153195284375002223338370349564087787835272859032105192276925516773264253192204970026354302903270231542380993644163009839348895786821233342619820821573512029733936915510211119961676618627615327705503526979583451684486995945945500607240471565385790343329543401681035077680415429168032337574686863205007218156496112475547521276248516432169635323087993882355535418561688764370423200743944354091438272438516955343008734602652703157731414296810838400287420845771139889037769298816960886729631023711294652085045249771121410003707982375705323656025926504147876925700990179564054480014609115343161600209873183035961880068761616439542660869084901481313520247775020855224775975456897596343728212348684332694053157355861126976136634061565743609711556534565777077594846331740103157430829567780208842649796137892271428743862361328877445092513182442223358564977892750398474608967848889104874469669392905729448941789555102059289394519414937559801843099331998703238370234290777022666169244354644230183820162833247223701130733669127963727309645777210243809382744156822794266768690915133401650013321327070898669250963037312600912443207692426352190632041007667551335069553613891166994295237360767646899249619848603785551604627604775747138227258733250954593732362795326071745029418049677946867780959566078033042530188250221412809819131150653759765459371403079248176878310753565521894570846132729128268045376271307571102036400281497881980504919439194389012704200636434195184727686157329925374861381301166174667380569464253065981085358543105522630274050740643420735003000394767727528368990744320344441016906915029089357365081577706876831527511766566619543451746601598751530367329873789449018618986674706431815896849793125061220013501099205111105684505320833858474377470849174401926076847113161916773587321888551383252241465209992389793731806586780432889256278262613981410069293164620689184569832637166612453354148085348773753177707238322702311469380147105282487814292697283437530970747213171109766078371055653550343637368082540978915916311603761808165786320773978970084393139746113615795644164914094362613326578346721348076716620227394534933344973157942960415878522595317298914671734326055019889445906081114264599900565568365172831121836439346709401109439311377859925358442260343363579362212254717850859273562607974988275183434051896615065754110358264931440859304869880265605193271829097231017382786140952688305390481542865686546794733005556251941880747611141211579618147863159552690777751744905505547024613820637712770872744196260430408523294361106827754904960389388412124820314311564202292537188212945328262769795584470813228161287892540653299771301837827249551826840936003812980370324355551494373005359283585135347668892424934120196770191454349074851870024577289907750673017883391851689017442503643583009714957525789771461020929719721681495369806610006799842189224178078814316029136144533519626583876110887111671189892980081926215377932441208995351898803568576747668329179975411939417577434398829445175698297916074828065723265212246329592472828817082712564075620375459535399179536809745816133745863222310105287243781292955546898368051419596213505537094510707453434047031614114292911046415458657179410625758878634905819481261933105179647605510750473749782943882810643694323179755077091471391684655595673801964062196886727744383949342298144906394135016531480364076762077991201295427147313033601446785100058139500726497311089246926757150594949692605586784455503097031423320516503109648234553318213687680057562112318635443837750721768966880656714974673067678418369817963066159818940783345897861941323258725649077887478091127156330009660957622702550489510218467137812344915802118465469428583402892842049681898143922855334521627210293482609453044172106993531449292003671042201686815118827613331959062612513122209899844718997366992162327898467827739988385283131403931485271792008413506021716008073726495735213064226465307732801696817926391788434064468891102172112596394162931603505608045851026655997219921240786232790140539646665143709466013511057832566081257690429761548887842667957583339124726111318315665809811365883533792219803724993983320891923524583671071838990977446424630684899397334065992835871250755751607930974882256785449116360316438521866790278010990956069422469114606319168787239462674325657875607785452113577728053116075481337331295844391032382381245068289254876827758595213965077711825163165365158807973182555155760692860333844052462830372274313907705099077343668719919155095291184953065560499804322567834766900398738540441550066471377506398115323529709237007746801328989075751186114951674608769562312705843091081216248615371984498129284997250338231790097528228202581507338346900718805171363643316121874815221779906015168624159084198726022294869743271033513887384749854709961603395836948288898751827129145523638326934049457470157404340728497776524888973855327304737262007283880196928774537783236193787788169478216714169500829848660224941504771409482272263023448842999301784115898120199255447956727907855087379143738384324752697441991322692824932367731864611389486339968835508682394766193915933478085028053721120038001549677831008229192675588172541759188552517809611483522719875883561430873881422279921826536322506942095796094455720447150460307256684777803656241384812452757720204912727240133744720619846862868948019424685010079697378424215313620171338500050402304943701144756412793568659792369591555472159517017374259491628075275507035224921559267512102813205754885660962623072458774641029276200658248397902352773808673718397879040237424333967536422219477425778713525777523151055724079854310710873267838900467145770479501690283514169447501232335961965206173988528995195171445022957589238111061031109971452218265366025258138358506041327100023256002691071613956352523213428901205124570424610644915646986409724241519606731651710695972940776521429028583543458651485191192246855842698345338706915994261264763502092688254925231359879007223366964183718195081196339618355082734257772125613781068627851093863921438163910012639113733353875963633104075321438110060456360917913139306730662313396417255440378759499558549068163588216973073587167904830505824813920272802599944657396970694720367438666678131009776351476155395652586561113411595877722472316243127205829934775221700362350087280898434265457879115241347021213620017924753975346741694905825308919999854352469676210161878014801707969933985317706148857969322360600917004882365233212193241250759436037866069224019846060084322481540419617011382662539604774042360403531175570574977021071016862040711923302577797890976618566504825344935519273457540711475432516987761054287228853903743615183738700347395596397851758478879466001923323217010784216484332621143998851826188812618082151611507630395064855464131258645132830761293262841664617829910856820709722761043810537834597176363058153440216199509685614564575531735506292445828732358899426833754078967897980816819797581857281699674884717456740442002930197446070955648168109610534463714527277110392939559136786307049260738203180879504106995291822243819507223776209523079897912169286251044356779660199376783674573609519202097605773412518812940093822346684141561114997417993419362105115409811364484353057871881166091575348389464530836521143755895397126109260226962673694616076816860154581200670593201133975418909892656443876864861399259374307206646661781772596508290643298016713780190633527638725615267017362956568285410671491106769437296682733615126791281076316112952836772764901712142044326156805907339897096676410365589792049625608669301424544272419966122460479157107393269860497882888071440369891388859690573242003737991856081233844950236221466324680572735618325425716841876522001528152067177067703812865281070601823806193865605058990610307878154971583559850335414375400101125327510571299986613079748454001816673462599758482829213971504543491820218488691275896911006406179211097843081711373898479945720349485301277807699097573469804643077678259215069765014301793145694826278173244667463328008313235186916477341343835334214135597068638171427317978977012962202923725598381886353256330848422544514181670195096033292050025079590798587466714196054114894091057122208760966706066288899594980430594277287129002937360946007191461414352303781943118983785561225056740791058163813396396294773698328833100741735230886700982101335820375729064720388745330017292152292082761815147659196352106694688567807942361704697895170875584445709626621350168936640176771560055325222083024600488925283269545054228387773901191535121468932502117129200340819618383434450442112936018085488742876846668798248090219873863878579316394650967337962515524411015176618469164196722116045580823700572736892294780985152069173853442157520931156157771460674365354742975286918516459709128874196719271803753949808856683467218637706704376374171213066031925922907894539569858657772751599283225026292262296266789571865762372017384144037781468569757514079693059133670888584232890311455061101616249838179616642229375498247047171733263895667735734791060549450165475653072538536382589520895449739001518505411674183341204212816507635221177972227661670200378055714355165933247818256158627931304390644273268507842795150678385427308863394164103175052542688125368563857691257241046736711823540706032484114364931180408730208541834787197555076421914532119219617841799241910791899905116652312659942176001252122551788942208009346547499280220669512152006878095855815728947895849233389744658820940646777448186560375632267050457052313310600017915066893621341697733766550791123981559912203736505410881341899103902510045189974675232163828021847382988477155160251764085619107565728997983241026738297453236104296492577912938857455156321767523643142495801430943964745483981920572308292570180366881205333492489420387460452028480370458627055437768059503726458072212608007049894170009206888594288869025255575598880787042025970537321144008102096021177071374502044777592344155982036739147437764761281746600817337715709679964616816022109625337796945332648917881790746369855026997734070707194279426993840889598589932697022176044677816857989306789856066764024718898335257005557357111290263884870468055803882631932698244688566057873128654134445111629734746023487428921128707555966614166540097723561204959571658840678896780406627071762178556223844112166736389764476238800582050691682204633210321382667497970760039027247520946108850053265866644716135650720476418356787945195530464312250549574334776022390841562693388423272294962083440898389368752240724559243635635815471569927023074697233928472182433875639723102031619534935635551128057098898943237167944651577401370499893786493225445269913002694398167783650177613687957256039192949903534399743538563335369028275082897772913381342116120979913537305096196288306376541958603052632793968537773134466765352108297647201335590719465030079314933332030095190921318315155587313179634087014339684682756171026907322237547469625711284395521709379786212928698315627823930018740927035834653126676461024668807290634248948898637027723696555994646556661137624359129270809330603808271393200392046905114693585503527066663111428170902970216826585629129421630970240036085505922197503472743108683177355004053594317593909170209421593005918009628443270988230724365124436789661307756584734187933133358515537235008313940421391459930146519389188652721287462019472348459932545349277154786473677959218791472696735437040531067130605619095819822583495144233644429354892941676118839770960188105023785114934420726387302615167110794587665840622947001816217411716613057234840220243930563886865278238414457358500515082237957866277928827410510491365757811639955288507226757833498201794889368811379577262730172310441497641577059115815577906506092832153859057079930086091176131121592819117962248729964404883332262198744117280619101101072715366379252506365050208524643404503913461548569604926032241458496930425708039796445755819624386691008694149649920909536374970475693812840034603199828481464961214639872520766343204614269852084590756774660823118462332424421703832655869431027980158489055209716813704684140269909704327195357958467995040263058841275566534889075260986576056711359639746879462792631208691975553730972641321075758542290624306351586002362437982681755226990492459300445255828886809729339523809548643869115587005320910280586884162772965973007016448298320213204019039247963076652527710777388384553648319240357137705381499923659094738604312762656393725447885282995250991980458371410101638618618823258484936209560877540148837561127131015784900247279520449776514218567523145514529287895086295296233060637495301262685825846305692129102658871076918122725401366323283446510620424551893292597711606593194374236733552197165201958883076393078714726264978749481591119259011885367265206311724181549739399285598644294229054558151180570480364201495823209234880316183807426241850072589482200165049763789336825664824424080297027340544679550832873379683822602083312182137436419731274610964628617010941872207767743210432844637892483000837446691773425188403130795017916561739231449753012874223908000562991473119079004449310700615026854451417360823438158314402399179059366173207684188670021565517389035789753175885577839292033969446382906851025286840309843045687894074525869853005889196561823394853585516017829574922609955057675021987808848081146496018426198223578864752510937301659499953013346914370888209237830441758694480495720405157084647748845189300742846071972759820775393433540039815846092832640400045895762890699302758390382035890016260104849814534341193087456285639246599377869685117940515861468359776240572237877741696071103974654961283660102684294498386847888097431795062450917771815781013946820975471181392398678073331287513513463122202363117596389397284292302689243465783488948875602975949757108577581046210168171246024969082579303348560819421471167249910550940062752632344742602767245737239966356305113815695254734467321928378886158869350826872363870354224523418212610275388790680539571975174667065799062743270952627269766581676974294455071521953417239614870420523487510358333595738028230629909623701150954503173893005069454917194973117243605255417082672946965074926727745474160106598017896233626996536955129583679864271442099469429508883920397545705203516124879440154586059019762594474188972416140103218814043018304340264208350293734209177591893162344015905194422984173434838874381191091856110117401043084187915436890061000163782822687994075729419763317329204620411244122385346721478250560187435946894482235667690467540061916980719505642640981842590667202176560386495966173134439179879964308106417846381159191810848915576813565260369353504085348371634714328467710182829555499187161667972087201616058132290826847446276684848024339522586919948036229441149564150130637996131563527336654497966276268053381384987360051352262563464814569343961450807931468861002591644474755245554383901606694420413997286963984310598501802558608068665372608644869157768734091660836855887846740849179305736023962153377746732260863861927495401605902851384027651175443741249913257780491441922537600415826597407017642370936095333574646104149939955412622164955194017797330829757332699016291613240777105760820838041410121477134747953206572940589588648304682988565253634386793608347482419660346081041517292669068524566957187746391587298840658709913383252176396823020624714151109944116081961483777620125366140563203689529104066792209557205921811721039484764996407528393304352884867384598801728338200869454973272116885189615161078045092984210500658404448929335676710768778197240841585125279012335121931390254392791117763518809037174961678118626882346804314926683232879747666894592785140339547908195073081730803078558215730530654560554990257907517188014283147930205843655901261344233331904810084627036354835498304062460714828349516543145554614343983221395444800167490413270010141282393005359197267267565397246333183974240979549158442970127317808627498288261043285557294132971739748412080678427705299391024962953732155063965898929683005982254959766637189841406210724998289702209292147415488672897808112446749655771969277080187125219736684118572001369288964064294989109609523041206105158196932156704560293895171483844442884617636952094071895666971652288015690544542130437142257866324085094737216256664918599047973907312419048431442142877515821230688896058168754526944797160644423062969733348397420522673136860828505757693374932662731590050456560779973878214953667216659488584189509464895410009563110361159930382137175276306091780831216715570729265389708567874993209707774483997651276193249921321198079683440857467517827658454584581574398358178026629514258282718369165620476620976757143817413085450765106169203097795604796828991529345662202035871623568427052651198289039785011551586472746054058510112019467146348114683091552940597315698118724687497015576698189376665084162723923028773626018948396802248159283119310852054020171560074978476859325165257537379107765532937711725245873666283209288525023526417516588834433418373141374448890922566370992558349647507797366181188108987652175454385239393159472321928421764628202810780157313554554829789865615551133253852750318615914405714983549195279913441741459840974404676180391805572594607997926501250882555151646252297447853476947956370719778422184350022828104910835839905417242979254481764141913931084710550875333995534548572529857575836203965372527695893613649866094451853736190651726019188057523961455399678548805266510991529157483471978569378820583545262923462781226747328870217472051973835993127525432376388172746694215227130368861478604908172272155336623990347386745630272093436191234968525443600624628880562057136357742148991774291783149627609294017531427662543856927256964440130198468539146870801218987994474356209752110751580158549431769559219205111257283365373701043424221484847946541070450828436838489739785452195841774327293715879116856740574810802015292905041696968060197275947069869381097044784841943582939700671252608270468101246431923615552277657505242454220418233378689404441816522126160458368863794449472965099240101247027903795366864889812025748308439978119630000929474155876450478281035465587133233035278773374451983205416448333367753789093899066685323776828676511388916357291143303136965508438450806388636188970251982639414491300170419959841505839144481966861189409423217610013590277581793467811091576126491684641016133574737216683534693059292755950368498197822767858103191843479739563516109252224557025905143386485181915094894122711105301709952331990664627586022344673883204489910860377975397023601360488577647819727391758179209791123003650262586778625444535001565049113780570263955642153081399816064093291232041846111838437567842415200990883839177990990305076456439718070187279403104531727461606483260881294534558922766776845234207577817496606721097797776635815051981321667850125755232805716142878283673560560035044955974559719074980956941588691992323346533871712293345179327041550803161853646197264302513319863575918778933896416499903634147924380286772664126856295623273625032104542465297898021146116775153664722235300337487712561520331743452509143395255999313164378455881541750078980209777052523699881706445833345277380007008963571975060128764526711539230696850709711848360061091295472948549985744463182458334889553005165998474727497032554022011108592073190759394187408641445397825966559228851321981380375842516170034279746771728276447953231029085579179155815855569588989607647677868088218774254842481004696711633765473082137336886782241598508313662535306395126365182135529411279164132876413123329005977419957538908217284477077569352485322897997832218457667449745456797383738364858733301465169034656235480931412273332227388048844021617400693859886987309539194703143848837189826109604014306963189209711717976008856003954121768349760918785371088050734903348221789811769479296374209226896318914535307667090932202973612706526680441996484251245542676310295958939951888008660832555386354646122284238218156889192567780461963817728587171331242909816244055851536538457356840899408539098478329501482166859678976441194554834359613442387463874744900925190726406654065548685733414858766711724585797588156056055314461494464921345839477501156509435596499379883016702412964895668903328680004707469644272844639058728516756156797303233867668154286737371939878728454020062931562560790542082599263861395008098703395028563191607566825548626771983748130966455383751269901420477431355451303734449150026135507928678945612678281269836757755685911086009622147773871084345533037741185704072812088896411783950469784710356010137037006409614275368027568346463081081633999780328481337453697891572841701067570401137476179144470700312029869337379445671891835687069575042246736156357047395120440690365632470384592825915159721630622614584991374998093578361720786663453994096727420739836237065770669913428449148456720741189113488814064092679338188711109343715514626458142104410011670177457957839357352207866106730564613080593311315661737872868245480208955096278977856762961015370808786932617588940374761021186068624837558040574143413951307295112585948508995773874406734535737367154301462320896247100980773663199090694039530538332045768688072911831917985009008951231575629918794081790693007547605037023511639713578534817912128459215813539658181402671285410315516002856983812838814405262925825614898654726863622634199249272881831638694426890519384584092055858701004693674125107999560758484150849259824456062456876258025468673124966611286551197872735997242200361374895276686593430654284267325240618982084458590498657360996907609147872827775448480153415410056823143720774670544357659521248997064165216735974834273521600226835475126166249391666311350224402724094239586501847831663840940276956192990628550242436850354522295543217251903550779900218402951752772553298293323340824957904202188524312375787101986963751480130370804871861924915413100721683893784279391250103048456519406869415062124968136590593990425259958394136397225295713733493154975137385380206663971084313031387300290735220573656900296604766714687458832818317784233129284372042138133259537145059389589212246790696450741951104894161860362352580262037113120231739181889774745909505379756650581805801236556465815682702924580304295634464593086719639875136298708837498385925122247581406220167356611114897434930141987994220336422135729755261481945945736723658369764372726488715220040291821608020158317255760341564017179534243336052944115719212625719661653700421446177907882036741150189497704302666754182726490678059173078427416094335910100815136113630919893025089524008048135880436604311966735736403785447182911827062167039760555615008299615129394513712042366159720880810541117408524338059519013979151055422829560736544887732764598701785618609845023609228693061264931423095128463009576091325302212202692016730027104128463078333757844412611501568641556141544235138849151929310267594639681517257995883164067825185354327905649565047603043825581810013276272608220278283917546984930553736103985094280296364671925123718193441084032119850357130862526349136503499486573438143533715716488375579773230093470875883049907155789566148517898371460198844230427331437595334011306176811868642513588402625123442982610051010912889160266985111784741388919804386051228232141933605243449793352424314533687978919745849486594459456858523997596860220256834662395690342260293385246297199737707198638846839615297046232206562883479718949503820524367412111746068844736185359003377757426442586881113836620212002044210564179517625564732250474040152295508486704346334740573390746555968928247152166111380567232058010755283691526326464064031281588593577649959416165085473720458255421014920151638938360041354332978517045010081270588936296411922467712393451793291236046335984326686294046585371655689870884011264011007102897710869158632131492705196882836279758201933023996015082915998900188375451351177763423876992321585132068772412006005834292209407840080522771258777078898943039582959911442953450338834212008968034115288800519608747484965649970066399968648686590862607869048535083427672393323648930189829161433705502359486706456816362997284194650739587548986519429275739599280211910957845777362245301767002614067889967268750713785305148996201176800444861475523789658550516328415763556582480130958499561955757453207224621146300506956847066735592319954827497493289537143795142612508521787925584741710162883704007243044646652708213981518719266254154275592539139875349339582633763226532346139498492824828627827680791159620416667192420189769442316237782598023118863539362346656953768434445900108873425508966592669879169353820728650295046193661072521417058469614399428805209467640228885210196308091881731087089924324414939115537626992068883252976074547379749264006266084378598269276603804427346758712313497507458189445939113881038666541481926953885162132169060749336008374234896342788728181334266680994091544936098089711967054305724233952998956888786024790852550561449291827513241469573861719290748625453696282385364628550663858500069294941673637848570307240906825758111945440382423163422441196652524149649421627278158548500554175975325762234620580982879830679935652840038109359903619433771570124238880311690290823199399071178733412346448112223166793461287943001336772139773912907991750643383587381521686717917216264738030375491710956450206715244563687525923539286869978180106346686281724491547581237848721710622851632409053957622284602591000718571542806823824697426255942742949322639297225690570161412809399018253065144712602215486714891510637076023776135049729115096719792615806131474615328341151214395394798878957553862867256307525648133247968568668003204489821961918776436807225256427686686129797034601220883830990890747155452378016023197431849740106124436014005085222406869169845052044098331086728652936470732197390512856060723913399965544850913762401045706656405686466723019893914449977342880222322969834148146234439917556638168267482008710220078274833769265534531400717843511738728622901112261989187287177396738176315348392333725417390585013880854733358149505828802709113334124689234404970130980222539358134785429975126796519334055732989332910885823334724184353426692019006986652219256331098778477761838317704121037976685710985704925190296891361423935914525620747707302094358282948195791605562532183779971549830200647423587903467460916917049636544969977336857131424368047459399499191885913561843162364671373526830975388225555459888546867169370466318953497090758626031621255136711274644885876377816436818164106988449917636440047761281569203823327800948877058147479791272580253766223358630733084733646287464944844450678013011619497461640055627543796529872263380926829799098696072933799064152282843479785787530860099773354291675492767427445074421216860993744168990017948508501417238728668201979890509503306360648701932838917469197560679492555618616481972457394728157089057524846870087924774217797005185464279502093040056132323955086242314359103011316600619801919368264005007773576789603640403050788552780961864372207984842145373970040410587832298721811815826666805339503081060002095482643733195183241112090672312609980299490868582102194976773410033018079892258522715239233785598846663504301916266236107320416712865801121095638290241980419226671121485479493055855703153578645463026366691825358446039278543294899967326722358509842622182074641222666324098286767476915579060117377533154135065814883436571279276663855059795849594626897198097482217648773085349275104490772424116649471443485356162300950528984776430482599333213775774042379122152110831380598027002101423882724886995590790378411678498188504220060000561584662915343881962543779950279772550141721906485246966654002588682020718331738496362131525448787899537265596803702284073660561364895491174046617871201432075470691967658626930120337000559922300221457875877693111153300315371597188071788280159931099896805531990203715218681145054324087454599546947645551562932673893646143206972102344014380794459323356340418274898740238134947850415748045090265731810221860072321579023974753085842306179972124347724668408727770554601608174293942098507612997827235813435299935930364996098290220741451864902513166299597648949723306744198801982447492594570029135105804284089956656016277535265099679550836729222262148145754037248754343726588339188078558564384428735014383419188628018651623761551499051548053807570122053869016443860229667398043141117649468092285303379356720688269947009263125461544621925683130465631738630202017069920687207300044150207026471669016241875796513961700798376802118696932192085235236995818248934515761570428620880295384718787839334241857591787236098105221240822805710393442241112157527151500645694954256515504956649358164481360502112572363153607912338134201040859174271709484766522610893858050853361564719042749006811262729156842620110598286554439881434045952339001916809728213063389340598347556821529204580428971803661337967174901715687207180075166521274247809618359693545626991554552129621816248524230038108521509842293551908438021694766977307804897832373186098841599582107151596483148289168872928565824586099548148446925288872141823399185953156746907954162108858393037382431361644471900920193461763318037522837635758506389333913351163534376427995081003906872279699330355978602320546311882654710934663388232613846292389731280438243332456777199046194306473949763112695474106638767996538508620091573446313136367502880921150113240797012889916024189010001862343092344168333570335874557364995181693901135529255867183938148218897121406731039620844930689321671756968939298706031620496409642363493784378101325045152389210225419189026219634033094314829237606625126826227676287468145054104699103711883863400084644034541515195629046097086346089290603415057913582315501728795855891055562508470516956644116406110437590117787878948806463384129989557226007924501929853990644282785496016893928493844268453850906396384534229379250909641265929892885208586882865631694545001199650890148839236363996566304434815441000425890708960315515490658298063419752394611314047882387731003901077929064187008736465632748695580357655076141727961224789566248808178033826283544535590011841263746528775164275415502066844385002734231625756703045624578862554783302993510259676619388329274225670262082957126592297858251361069151152757535379588378909437963226542268594800825329071999600891691956799618641723346838011892180836527921053269823999283693432133708648555085683371469821822987718052231023096212811414524652264632430020311739849063536079978270392646715328519673204821494095262953814648744205623613704931894127591547456342489077378423781901480002594577640954279647350102976916371416684531980768287956399944186391711561064134316632089938847327907626810811094451256340281123147057945007588058131503303377746638579066537503830040958261990081361446289270251557651912626728541535562290202287800529730075090101181038567041058549920582075343941626652684078690100659055267277203869698908520085664787296847741199201367204853449085097730770308758606601577490047299679506367127349823272152311984322410851147155988112563791945970657440610644896608743149778061367548870867199907537942520657934559408624618762395720502386337749839661223131288174129262307029322091166830649023420048562064847864406988962296183641268982247952471951966131820021711922662554471956177161343472753790971515537854259620569340742932901371152239723867460659764016813624814928835154825297560611757364693781697351949436174724113264538498967659512067373088791822951754426571282880990985999293247861436267492950506009857724590889852768968678870573573611954366453422565688177060164300223807468282952026623667792720823583432682001085636729259084678765433422911246509149467339168373439504036253614785041183764732571613839856593660236714363271882884717547061664122763085158781996817616681006702731107066530779031706642679967300146870698285451975147956177506571378510486962801664369340040062951749598918688920140287908323869104475570351775712091043917538434043994869807340907811582762310003720536833788095425917645591209626826774546312970006942050098561752440591459174649011200934277049936818865197959777962470570925921402878863553790203443725586733993171906839943603818574087997143562243056292676727089210441040712879087838305244403029464520881550174845700052059100277039934384869928186230781773040911330582739287879334978018873546551717619649139840489413430121240303212223615481952865197320402564244130570685952511836308678327470512658216733098455366982826495898026488876910465248748639681933370202981131051186775879075211342307075564483612917279058026173650514726133265825952173546925656257740045972142709980670222504226629199513572794111221938012663183788956719434232025786376109002716047849055251333448033000992985689670088714911381952121167144387337345494656783260821305820090433390653673100672751735965366063399115714185400050365807155750099512353471991171477761399834709124549986856943749567969118790874707765793279338394669758313711098446394427044792308874371247432432913074476082728830119372153566225440179884407803768243844773230607580313546142504891692266875765169705499144060305477206282026337460249991958320801335822949967977574018153537779660466751158317865096735823441953712450049841990063701984390144567436173191733414573071364181456808386820422936857420819989200828759101401551051768919574206767585341505740429133781578415572973635934313989767664473015395306157073107431873574269586980722959404170746954555254102934503995447385299180886808089775307413555876363560364445361595300254990481477099863419944901439298656939397592852485585430947384920939907234255263446780265574742021876053203686525539809797797451315882713392301660430966660509971105572117673107612506955062009237362435190180097408878767994440165280254736657438469155835834611293632282687420864118563018234552355116778605000461633246922507722739445282046366644528219794820432200089173151555868879533904724663648741187555410811853806941324234785036593608594287281309739185835430184341434445873352161276099907757181407348376841594506764083058364479673439181503076881076061506466362839349441433770944608095512982682365781175059597920815158614455011257663769681599028756905592894770119408709204419991177894251000586981444884597379326184492431663386845537163633385124204152819504427668865347574753628187695744533737133629136431238041243342327074048661717610436894975935485141359979865094041124088554272431262205204307943496523199634383473709569156674328342044664548250052846066641548428753561075681756636345456860642309504368844174199027721393880893387484006610534225335055283566456750160790532417263327605189461208994082614272406187137853934725305340456970394300370290753185259693517807562531832544300000204738232041292677336627858684612634543246580320546792090496831736843304937313493898242745491684336009787731502838939704387393860460198807506258878071714062370575721817143091853651256205278962574832447756806599465727484439684355255094516600032795612790737046502178549932973636650723555832082156873389317280977989602000618200294664307702724971258269190687162398544518281352532953044439882772589429117842295873886109283164729030896599042463487569742196386940568554420966950904910535091885361338729732854488949677766319137496883472061613956837791580075153432380517520652491530726417605758554244117793253832210924330379679853611817723841642532495938733139956706597283335500016054665674987550610948528019952764330106795487230242212283308082472795296613273431845433376786076627910871778931120027048916947934548751402513516611075648904852595204202306717569804219117802273903993151014548294215144968411679988789690477449709512687709816232569316113374695548015645313221883665093653570959409951617010677729601714575835701739753627181234226815126747491852421897923721056762790381562531230247780910474097676156529638298640519972416762920881422060065588590305773667357044492425872987929996793352870012274253817322931171216474762278926318256034494898940012867201992455869527883809105387417199584800738186239234265213387289870337480903103582898351602764412395148936331757068463557023823423116138016660375866847226865816848933508762631822723286875512605336508068350742506711931034564675136549795008502483367534225901308730961803272448068295932341529663828424232592438206758003214894282694846523536543818201401755585213562308460355063985890668771193717539989372473054372866088805902110574266207392527141941602799798245400844806993512534814714562691129457453479108542263777923354731275014003818126219139021776406037407162101864985900878406954718593405798862328542191723875655941394786693043802087888593886098222751997038646799672464960784905231320447375090573796436838003509850789999100397581027014698868980891810911197435405532876342792900072529016125795589825887711756401229765731248737045881834849019162559095509459439478174127225469526443855544336649199558178340378189938849528859949134502447152638710619244177340897259996957924439988905866318393489761013061335149986706653105765117919810051914767865809866492251643794161386200372124771392147546032692770154838912965643065144249461223485310911775419431065310444513170790137005313527279855767740556447797496128666690311469574257053963729363873749576546800172030004145957953669299631464742355502548863585330931882705271170007956413534753018079474367916443996544900522310092794397278993842529553436685776338134850857413987465033350234875161641826032060041152905924241577243966529074586036994887039292915251058117413484027008225876332927416405374135186532499983393281734420272725247830348920369782213524124532382979430780894291784586257339660962596495964213115841891423939615100955705364919312930155887492685496949455044434409885840587984855249972734110818562041118179096651483389933729351664367201853825320492023108697591070741590571393410855369763317051417850401420402069763897389642091776507505310766384481481164328095764481350155849589689446386136446999450842826759713458106471265339251606547932887752329296331062856627839681808525909661658089604359206268034028681213689351338902935429532924481635340565400056326108254854955226859477503101787447239525364772932235871658487950523579725612299206238470858904381294093761927312516137774866897484169154685513179068857442219305032183486487639689009428576270732422215309533264331349672199358496126723008823625684946161832326626636309738806244919069134424089990038421221460609818051823067227356470458073756823613784714118658018640030109780429436116686738890972738807023046755605949220673664331114347866400757236478655396648593251230389052722670831371005969244642131619798155577065584471377169604927931293489340535144837132312686472758258621768879258965246257477380204275424169651846734375976964409860106587451213753606304207578407863537942173763138863156509624417008218282346219741379658972312649863392431974104361429017533631974608311800519283540086144346439405122666825133269297518996894735885286582764240132375631127200601378196504955163610474020425898822858867407614305164303544650625078978253646180167350407670203465914375230916240790205874578815349283520789130075190973069540203351607515261936276139209772594559989110791079729753436433797534848914609034867985109058722960943812773701028427156782183186989620482033233893878628605256113246437267905794600697300871970013886893860195835484887287910629847123663455927129864561852864093160571422604264324542487140155741460188849271606453186018034090699249011847352254971264652742801789576390770550080683905332616191633796580371081146444288974557166730603555415590747197791890675340302029710577347378496703347886775613077918007079228677794582421524432301918395168457063686311037668187042708708224585481667358670159941997064479105583693625285530664827078283333920419900505124181724782077977784346538154646515991431773318322320616755714974600167379417575385082875303405552033194521914850644450668732822319103623318265966403056641184565961755808230534462050935089845784369387858197401059487908815537726235354045079725047446064985442211984707890895428816382042515543369980972209333006696960043568766229400365355819381495006420910470170106740136169187046147777385717814562245112174167885625883080580701361182797593345687937073174027928536163769058939131653265369913540391112572972115097431045157442247763020567106651794306041728538324835995862070603236676114123768621609251731282934343004155657105848298455697570977817857280780367439878552117511812433368246560172818670354515453010090089379446231527859158636440157859758761469665167941097100368393270270025627955006429376933821443860082463997921140639834973306845420374922378699212875549879778568633629477090377987502066252097215287859085083053754096320980402610478519775781949554632684716655010656054656377782206336155679757617710449816737571243012069609359825982660453847692200509002915025718856776580407347672345763742613864371814233037022033502306381756639163918948169628843425898418154208174420114720500248610161795537092962448371308571718432991004592453770289102034570597746134921714464188114778773148739975687206905079062547192125634510905788390347479800578624724862630166848433346906818720754680899746404880451803586103617006745108969626248500516373906360724020202687824855852779589480374193162558820596077077693014086166411892299138249445456331669678586785832607200776466634539390416333486243508907761750652872184060007425315092656851914981983351492820285677215670308368638144918832787112549492085825973403370983494365767654103540922593003244788125152100915386662898038635354394940440502424781899295970368316297415672093739955282303922231812753208542243384478272424431665308300933858309919355776759052522909154417684086064701034644794801158521101790132111410280101353497933017358481976860852243930615866733071549190584194203121701848840120038948243990046663049859462297983295637193858580207601471820679271171655184408131144400209015004092774910718265430410639691210614725367151563818727595185518426897594320987153681532311619268722807618426935902702357882851611984155207042338188997882958860499756476826073654623400134504115858840895621669772760633989735795582848877013822518955124560965859670299313057115628054591558979740731962883919492179298564403323468004222816646940670435169360918179131576977465635187146517667585312536919536060057379155454306392804760707475436108776906995042878798788552375905088772707862914557337757870018861083280149994889511627312569937199486367572816809569218450432475960597298023288973539829673149179996647568962367055376912624499536003165647696884156704082669883518650609644457263328898643207882913827227763791026654606584205305019786720928436359143285395463417054401779312111219105136350014749745791038276266557901743946729888751407178268522544237839843021214713602628491182265755836017549108146270440201091186646360020506769127534655807244465783040345504529647990366307028584816507932393802035559871576882609907526532077184177080892937545585253613930252651282855665599529046682495436870460824990351139764962727901898636255989383134859137569295641910369674217542454929457444307680500519089272346505689190181707174108031279555259364668561923510246110195103556554900321077221443972637314943106194078788245833986948051204346553638983023067038696561539617707518720297673822259889972673305650327351020452799587430401067607285926610182542152617490644702085511501411648540290738494856024140844408226498291455100570998922920668120009069461462073172981036210833062228641822686502588948690461400611418618214258429805414012112794603434696325553410317414608780245538579679868108381497464070255911622300110830285335410321334295213691374675522483781084317027645968360466954626181498040042734496247557399719151045194187670321932443947087565504444097183404114939642937852378693385894932397651096344732930955053752725859133186494579279938461214916216053221049155902121944863098338198980844258489360377377247207314951325388538212944866436053275806240132447016849089877797431290942710129875776777375455723203797668487315063064248844267930257411003433364464272293307968124080907885389363819321810250169526565873077967035647208233682552535934655256147421991857069877162612820104666535106014773251876302313660376576124420402099943372625180723653650861027500523089215039159580781795884322716448700697944975528645395176965952677664988076580608476371181655772416600901861209054670791967386473500002362530310272348691152827988252477727313560078844635663469685091608899079765893627766569504233264030942023497886381585535545055274805734577042869086485464380657527289945583451075458616385850163005932925905865914779408862340628762500398911171507834057862645382613302261708886045314949021171692196062007817430115961238554578386527067195806496321007641015425881075277541373701117226718903777786805077082294291379362071063869959575349835917583620015706505813825785841075457290275736761921630146042639107596478518188973496434733057225823587703311285039289185976437547345860566013452434249343624735544147061314260817319175159216070172450610032186314337633671326235888562973185843230777190122382470750661899183098790081420176612739150075695871242774590545936385894452861569735797329686088545514332342499175875792474774386987619183195407827442736131162987915967287841354213793790610298477592775282229860304268103362748552339675877539186359073700006931495944021042282834916192661828801899151668807383170095461635005825848537313111005803757385964833335868169916758326554457166673515234694427437277653800130311574670216006218898752040531766495842675098518531305151360149568206545016809421789781507990420106215163512303037406811537810730894293887290177263693059829848566807479495678071753350764244950445607666656986413812806582046515312829254937317264884979988587192341251380931658452247310299244159947275852487823756559000334356638221145268340042250229037483773272147853604396673817892015706045979189496069513324613128308492082209179236487281330482007033948280519671626683031679165017178190959413781756865753028288551728739313873263769133312044786694752983306409830750750309597654306950310363916375372600524584978095205555097233812272128373139632954054194608967220830017535987372552674030525492214091663743372822068506982769571130939757885918819009382453600922176007734780835151841523824827833068790525141551733458402614877823581393627269839063165973100596312195383015423294201205961516681223600759536240620074641354134431335299949079022180883418304577158659935102147631422688659414482288319950559443935061230705312924841081090999806174822300984174657744667327273846742389538651206801776458831112242580250538349545848576662640284396695015211110678380142922978359188423263641524842629611812931146294120933420179096747922983503243839721864456065205633808955673447609090158335697947389419056512266218526431940747142612138458652771185120963180546974147944929670001416901144143507163569997233643691169623204146858614712987783590381638563385060647374660019222135750939792930723389924628904037508635740755361146747579718557087775688298719242260581465396014166658293463921418386082526712458638107440214933911036476557435821684114623576493641197749768310767497206401348189189851748621375272908154653300909876477648416164393041149872921528437798193758071224561864551039980044899379951507858279058938783977540412863626243253318150897085570041047927506682764495863791390414876704600311053195648404921295336279429616790170990221732235519569944603423668195392537806337203892589193699609687159545083123122230326371192242516826209802019908492364031772635865718296604642803327382420173931554478628952420831956795489888109010619751111596060120957937761542736019075012769491029172600694359778062509113876404273333818808554280352469852797214106627042539651089206810712696285616061862992061331857066542489830805168309135715675223721308094850934460583900871062855531964700635172466148709586851663007435009786329494205220526856274556777924551937247506232007116149875989658981587302841165129565664517505856943583905352183195406824741735726960057813658665984175192604348749868418272436661884978995377725967498780508164320531075022630234550681505770062017914388141797113122064303043799802180402521439514879346929857392745970052403840507329441012411698027969446626791127741761239849843326782363185743324222480700191176895813631600385900394302241390405917965824623793546461021891596106178468255667971747642058086331479160258641234087226275752639209628390630803650587915152478673769242101604742877871421316390101315535510755456314909974303608361773695054546730531612343597589240063115925041980630508529945742476725356688193855373187640637173833384366521153835755637776347414902230145433524172820161593002241202676511300350503593488634950620269643263174019505648493149013224667267119131864241947498164760899893146224133732302224589305747858602920963837121836816262492211175231081709347112550808891329220398201235909833254469431018497359323912341396800443578323835675941558606846869440228317929802637511582161813363549798761853239820367643214152829382994417150477412710975032818694620633157456814547794926129319879272092965728642298071057853270350287598225616833661785810287345089273571810761177834392444293512477848253371429302361045984584826959611201241679304183332761948426419155956536033001057228614114398088761658204843384545131723602768058589566345834341291309105086159700315541163066790952076786283659954735114317582982672231154351911965461274991434091052729706749557157075508387906762699157058462635192905992737024125459000778519378988584187220370721092196476089407235219016511389322911145358926174988123725280673975480275891301350071327417158320384126641533848201580333175882830651423358150048073977364562360591493328502027727482060811933975896891728101935030158559910531870170660291908143008712402979713732698591909945179182047431232454822219774879881258792224872093726165048458183909217425202220207000639783355404027497763028463334218806783468334110439015191589295099952199489439651937630825774118533006266870395193287530652216933597315565865344884650683051504138888114047906038321355315208878717311877205340098371927946661655543621801417560654224247959240327300302068107901627371676564071668237327170537260848140414634731511819938898674552475943366356423979364421601570824266479330065230768475432854938716571834066986219372564801865775333968432202313373786383427309420794163361330719801883278072644133389012120119461040203727273226745601762806055258216196116874999591921693724430886949151779708399775912463255368663137026023343004021615107991684134092921544608671205602262847598696784424258727934821669963273279336992258178002782291647447581124143441386064255307170470720581631443282095815688729957377509064285791866415519510581531273675784233485674277036283854184148327162566437070802674529272815245596824773745218809365681549946498809871011786220739245755511846156258636848823644461163068874046247414226382198499337515198732100329550147317735543560018886117278131205882838251936698402865471016858871631261794725337806075953867927865182484574226912962388263673805696235331244571091208275492212722437426140472976659385767073501325594057158468603914593058699809546129109764199391937003655156924731431144074973681309523264723472194591015223680925296977950955976937410515703073853920977183315317895719276511085505284610028112030518368825298798989272002195340760559352332816839688070090585193676901655553735576360801206796982387562112819903238206556527049318828912189417651968892793817261679590829381638574292931791316242687658649614086719989794597066997018720754505461400495264801999080606820990830482225936192738218393996835008043021606707633897216442088966196910188966987538930145186548327925837781768968875042600768840742016095271169020655065614799016892225327412702788854263677814346208512731282446708616534018465177026776190097659561292069417554448145862821524061966296531362358901527592594994753023083540711245540665875994259520491681047244163805643039309073588999142557538520859972749089557507312070031803459600914216592950160710402250049396915268387854326432789648190772002471650070789605552251762727840025828173303683711295709762746010354623899458130118369546768490032561319839308701469444687444571929391408311186044837656431979447654821988705484715935195385670126080447160908182259741618646288272565244305543128863677354730625175139815151682053786789320789451944439570321006969963039899503508506820024488908496368689257337701774924171044221633592318470255777342762166074461187193481040247391817787169738304941494091478108988151329038527850447587071664397492525251105385577181739030109661010732504549679876453025766688641360600644551730545133843097693543058734469034567650014890906432938064974890918956037121065332544343538826883856257019842670375493319837674694855446962689415832474724253801050208907145516975115342983978575522727293672558326050634597947755351535654144177616895015973654119359739791276416271599143180478227478424677592314954687187550751865816631694878300951283095743676746553964203768464196217967361913900904156005949871384150592586943634302837699291483218084137970456282784818733078458569103846789144309097354444610497947201311430969188082867062805031155405696575885401031049271615206573021122323946882048504909618918888072895004057996216719837605264626903909852716006523314652853429445931364516454105232360801346013906621873459180777324715912832746225312544026549332744810443892189788448197871671764512627660969189789531363229780419766753614587692177944927924245114942862991178920495084858626686665589024552181895781511499459443141945645299641620426024505318516451799389025985762052223612539026920772037922068792122848350342512293377189657439956216366236214819550700745879465202675886058747333479574006519389862818617943778441764437488271118422023990024390960024975704066779077988428469654434383921797605362072831467235016145492943017822310869657142600643820819305530427675568160340081942201850893941582461174530665414270483903631377747535516024164540038680307511854733093947657443469543145675679525366700273440676347178136749346402086477641022893271579773904557082606109246432156351297071812602496324523390258186691967726937495009322536137814642483246415327168118827194120164169975648538367216071919508024948291282637751577445500489261370531659615807420597274362429365520031800252928434279480108889891944930924918701569881689011892825833197530348980566658334077167976380505335557572066621815773609794583630772945171656606817326032736870105240931388345466346810919335307519989990317687115720337363966705045080512833904715782233543161632968188916572309287653329075094482602048090695269545379540717274683022470495013338779988307635137772312847482405356513217357595070109871590558100475483395285474072284471974882369537098404984727489508671479636600106816543992838851167498073393239053032888603014438482039929051106314768504788205940120521078001623428293333929824524363564046050473917653685315334796927676550490005962085330630820460384789820546853093386982852839726323550683601779529998113913766068709489818118723739151557670206586509623617017191285936924698314142792815402249267195742766868190786688683695098637683444288667845914762763012776547703106690110665264430537950820899405783528248177528379771398092761747072852444548547794711360135478345740573505980038326337625891354266465271217212977497136890016649976736347553157247980884357819998210810759430798230313799164069952694008597518565031207596309437605932529359645580328371240942395376351783153829875746362423191133632494675789780590452328682247218989681887374715586039761542946055569363195524845360950954365197501070811419479811676631491164092062548550323565530594315888813668106577967612491499005104674742610768471748801394243759562553030654228882199531539057154128221748319664433736441945048087774570373206078025591623185969351866694444830619750549852165986380203299211987146273746636120718173857736757299787566618818006925058264195267358847570399794262005449233881798761281372028728005022518628717755740078697939459870433645987127564812958885378612175573527472178885227807936688538325790719967058148389604882955068390950094276868986076517847555784791668435677892872866672179032183895121774808204863051059505309166572069435840054897962466700035847106107529954630280013263640015502473412039375402730029855191281597363408232003726720267799829211601115703265103166292437649952029196827174943874454259859350389978440054810384463347177036667499791642049316460867332505262660724930387616774612898611155130566551771185621419760424652956384181905596369162873933026788485945593134278516227649391839830570357610355326157618840256457221353470888122237466447147107626404278981564834216055541965934442521016617676280180297436021088554137533515365370227584811605659425722718093479227204637417647404935375643638379021529533500299317252985484469946156487647253327726210705786934517078756639760193928283086994584182737965705230396076154417575533721698914162583423966781964770315401967881008689534261228320875090762879104979971675659192732243588446436970168386245012094020826454714824113068701875493941713840489030340545480507406106496913445287596812307911473919174291925219252011912565334252940898022875727399882678967004237365338749833771885561552404421114386662473539453272544548655290193660968339230215336700343834483252151539123908419614242505234347576378916465803053665099130537205400527884670494997031197862657485336349980195665520634475027035116857589430825901302030223834121891175761353562209646582511500303488378191505798842882136417172925267486023982373638129617271080790113403759836751252863987211480941573920997953261263450741328433575568763855117070034472902104419511146062172933778469581543588062474652238567021636926757846135779868739568972069230362500327831978946474732886589800690864345178235251633030256984505727623353284352570648461065505757630156953681991262745675550224202365377465224253336039217054201094384118346968554982711937675591411538633007746770923032130524327243309446300205298075697443800953410308078767305010403823761969583499843184566402170272411147823805353147259384107463616447743604182933674809193249323064855239316182466386909724468042418592331426976407933319925585127076490438105115708994482531380329699663104070928431631544127585054492664867117903881219362137831447319726370176957615325373927347063363973499021284868462910226392761434704133583923286031903613013193262750322725141849627312118729409193198769276253663806179703146390948849398697966504724914630826144262716652469931836249701624112000636814843927784840749612821308396051481212587152730070694897123435006252488452563194184150186463656359749192482414395282850201917389777756412082454283080934331430305186028410978892980651268487777364843214284213947624892066285609149062855457704600532384416867605493903390966782129157190494957364083143886115025610696437838573336646203650909837180648126375726780504096090566503538228919148354661636200819168211312617689885987024557546845680895857713319543883264891393322143118979911911548998627287302334149939979352320291213230870068175814513202120202371354120173465245809693254472486778749479607128137652165345402041988281761860838365425430613052474503984183609723658987654620174901058244265078659527112744956521438621182573561810282486528376764967231826818046765896603333850138973923752195260550441000972722276235586332900330798192507374681082629871402956755725040554403901287326836319026022479304595110236723475528590851061346402928318431258943168759765167800400941737802417604873800865425810253052126987025960520980894885516415401166489841645241998379205031305380814507990171097189852335150892280363040048074237174996165152856100915121967256137174932022272747975131495036729642756932334611642678899691914166407340982533328695418343142884205797435824729505327374727848887006683275142420687592933927769455262075312280178830812705163795824007326765002745033615321237800495565548956171387625416873016909671725536118930291726970209616592584374068318640149157944760391834743968498943713024357989508201056370504761821491391243798239439046667870998479142497862869262205142780479467659866870043094016619556499350410532723433675043460270447139859947697828709177671311075341803263684440745874699302501044780851378454425461257098954317473016171366427155717212557809279516320911125981177016321573856626213067516004203180942069258156449075515603037092626880272623809494223942378572177222561081120078781109928124534113603563046609467490704087361046894460079061487944728083761338608574752316620468714303956610075981799977421960888485834402880437136509242978199807067159441428580165791544792918275068087685486655583205276566008383274258413959936083532150921952580095396983714360052539535885920235334728529561695447861150209831593409573938480044925001294761725382878935253489112459605516822185537570357796459153547813502090018447166643712109537901775749486465666532978350130488406668295479647294691597359880327418829408344807420362796633093242820317416305241650346946374295255521208685531471049574226735864360026538153012179464328856149004623944128806777935596836294364096485312209976454824348876161534499009533723589309984806619788689657421594869241071856682907923952995568243440118192590260798617632194269274221705542895278416582378826502307509267240485024986354544728040216946765180729261797710853174390540369078570124085772199166420018315594268417816743728584871390911319707188482309586330436475694645539512288540115053563329207825927313376797031104105747684361981831003958176985319738446863186482307148713422027329715587484596166725050333241310260432485392890525046089569909414066854185856954341507807771197594637351674032604405686564038666852364954903881998448143464253156781366059196815845637189510288818050086753225686976368340007902173915795435846098182726743116946457783852001786731829777650905048754311838502588998876853057308297963722691505075340025749563856934500615617488305913844844356515549758741086368628286829138370477133738028080419812969010659311645841391436767923484029711244250824673796529011068451122423391289797506565378563715960105772908969667772001663772954516928464547401638062558513815470212089913918524077810767685051882709941762076628295093966527843818896271298856592480103324032229366551441892323134483179363195252072520935872117904227961074547812954691988574788435147529895343445972190303860077611277251649626682205660646125889689509912220531339299414366914381196295813215089492419497758172112929784913750645690043123614503086014691002156027060514137641555152308938583279588209895022561688276409457279212922421879166897154186737754421494961679692816676363537445070652487846668706036695153292499408290232259818478638671967868241128042848373895393173230442684680144255613487758155327047800310350302816666099398935041511616939290924219073423085247428194259551196057357283325726045028597731892831642598362899442425047690651520936574807721377235851562132789493940096755443254638896191210565942612280126803499973021995015342835459685722226376179916872523689021803253379980002544218008582853676642455806593150891892645582969496704162582020451727513569358027177108292051050070925510144179154646409379961706868887430699332385651102990589306442895399968495053213539608906488712765462372577767640134113521636098188703177814244955315160854284324569908601552753165163106711120002426567460520762963521734291357381959008381594765683709598471911899208228813963837188457841862326835829544798200697938739581211024642545665035168267080700965765628189814502129556177869716209681355867605307169590787730108582361746932385048936685191056461124532739585373010806869824519935347103295472837278585562958097099295555704174401769035804644275481250919796109720550486789473174061231759381432022996022042550398418780465110404083036484456568255096657266428875466514316922191769949552700423231220414263751714267185943768862288328154730480155964062717019729630075629813728050865733609706178889895626827525202927897111968822969358256591557200373188055105175940668785819886193753650576391023447503360287975353965639617877762748269974199081754658633321973232823658037733654803131202480009865468868161013405284549501450084079137210426176711511126706855414632371659105741217218844299105251482776588793211499546182774714932058680955800796275288818889543207724813166602089001044604541101527155498245922454462330654279376551211001338667476978225984603939557573859296930977378656416330543181706297028749585989345794927486665989110927082566268528599207795665552349472208403794066445750637684511057585695727606549027709408374147526357987206928491809510908340989878536741953517015832402713418539826258376771094413429625613024749731217156439917711133340010944578865577364162745861499930138758746832582829827924606960461755234423658512206087023111226249969734702237251797544720188977823060311407715971597421786391918138998081896970559020323571245844404492242268533498287972723156305698954191512399128310311208221711336736151339481152528771890468727706196755479145613878930184437279167898022166894706167889718454879350884230627108941531387883710351406457937999894447162307459636450003726060279202020543823596471280476845494021011751185768589020043768058472813218634619367388732324818048423847008124517043123669751304979921768168948327645375600856322632278166880289136812028495045436338345809681826941258786798868194226262964575919944653735091675201576324124763612584805004188058345343622821511434643484610731606995226623152447792905841884326034404951515941584849654806214382449230727698799841609488118902971531114370563578309353497299599073487554643144336457228760796014540177161375959161540735884555220528626945781873326555270518118325852225406199766630851717930927911137622690649083755966172933636962203616997947755988769704005266991204672107746031054255328056259176922747826277216259643795162235549158129134846890307617885625595422711434323939108245535334829373410698484477850136033874190546228383288273464018848667329697667657046576845325930863454902651527189840037628315728716320879424278404771331953143356427520479251194193972227782134653954988618269239792387407064885848797046216588905254558625011339526962572278516157953299420048773109322573482570203838095487312043348002955646498592751486431262845720719092414316728107063169382035551903678087532424987141282881753543719010547296488681431174828876669084643853107362786657978455885180807850775616022622071658895082043588087666366338807785062508374525183752693826754250216301937206709749736570760976263727913234241851295985740588002772270386659492722691535781326506860188429457778865241308159966061294246449047581579768337225312835140891133548719731360484384209472498580600176519812149236040516368084702119699939260233569617096683109150979003550342796607102168180319202419822898594025183302469445263826275694117264230274039947937288247563572953053547402970404085704639496762289352510644819257986673924910475121519986943084837916727126842524007605243540317608764774900828869594901715645583280877687130488829475987458464257955790172306472435960430955148077424371286294891757746302515755332343306275798754980123114300895931522772988481640759186013926825613310032378529258372646558272800563246789011665654602913873879026178029407293903120680053549149762755815873410247795927843659315121877818513927210167227213315559108512646697849732355860376749868870291989367336144636441483008759378411131983932535274779461304783434202043526375292713535228393553591305776323443852930098923904833226476255678583513127765273861782942287771940102323290874315712676028134022777332954803205433783194784979958346378772622318228333868496818690236498173322452194387138409187890829962438714924215727111230126493711889753627595688593175149029854021763619378594599815303902321781746626165309470293790603291168158002351899570532227826730223580537996196187064979245184269643668413776547188821317769797528639823063976927880606916151186373676437355840289559958125763003733464196096333133999164695163178345298685324065605585980257906056965851507232076757268417722034364537823455592309492794090577585310694881011401909968880694472883099117213873594992805058079800103819490494306858231351393234751738961034001672027570403522312719990116706266991904050656366041809057012618304732413425822903804833161787288565859788427082200920006968047219450442940758248762152562231718393315450826872166020598180188401696280090134763645213626577304181136985159308028745734445414501010673312140735627784210757985633873379538667189047211536680631677259227101232068992742832421236817296943045990565650162378320333763769310003204719622199321454816226092074927518373657795973724257327535021823763971929463657036731566346842656208037289779584713227652017824734666529283981830383532452586512332444087582709276429650156082154596211784396469120042856296540849246379443163460132512541169218749364736088467996431984562732823088508354761668198425389125890058140745058238108401172843643236266288745432728014684347912978471396875759289133832818096341072909336739128077014116824226898439030856056807060769226654345351221078347696655151276469580976081201659316045879734765401741856983884816451953883968533205700976427328534937832472173774948832292264128963464373450194866599718165189401132180216700027866769338194709847825667660210221176898990421362412775867180683070391502438818219544047890427879209422022211156020998987564395655914532541272045563313053514061161021942714200762281481670368997053656464596927358991839483531411145809421354080354242652602040802019376821236081879315489650835895790405334926494690628051131975737321243679399367756849642286653992159533549031208960694871033501808278158928568633756800667897202122027800841953819259849265038791991069479958142510143985180394013623191116531108086328950802687711348757704703030763550514342797048556130687496259647623377699350118745956171464444596815901138491449376906296463482270584605930474403376298724720330815246794775503446330588599699176739229048889987539565289477665842742749734817877865444051812753045921833084869759442424584301622453931776611638363897714512466170569229627573071428045657035592832191882121389513919555220417912106216865911260325797166529516338292523382883795994555589075592048640608275658189935236739188668631614181758930855125039891469513441785990550026958884892623687731531856353605339745141210785207271971798286502161814750269321138845513949148573168581323194075907814705689737243302389065066155390876591686270271733804811094481317679652040772214373996145566575954069846994952228853433654369685928539864501285899945562192342255536404538155077967579372451212518832529511778451333250793332858306993965589713278123222718286080431219275730841722605813829718727934766765631862228354119268547253662577020871036302154221052098650651004331781339066757824279242738368115636883507172654363467803428499603445289575872818662754256801274178652174099205912179793876370658011227445666072822166172782169563139623011783826379830897083043531139380428008011838484752876222420492897112579788702062119785514519837218238969919455691679380501682981691044230161406650560268185114554109644958476027323651538538236277080617061629173674331227361136737131114499579690500959882545114418007011812525562269315753004293862732483303355518218575600945051846525603574166185234434338917022614259538690854890825787607076717451116934558903211618003024453122797693111306059861975702815110775070965809519427192035929674801005872744576060957564916712953352060151630328850454766756528556123502099291899317332903934189099021935328087753919204820968959518308711010372969136055318875505380914822817467958961775844440458172451387442378175762698015219464776728969645802767297717970392497384326115413194322924640427294279502705684112724833809588521648837249615256004563592780404117192709897199742452610539814920470749309063733963164929909441149167267680044125414680109607196039304101123696089031516057129002788226738734741605720282359562971774688245547758302713066862611081427028168323490762230016125848344537778340235547872338958904971983864535168976155473777137622903719618129042686761369929191566325388645498832579017104801616355682893240506859727484928809897613107667502746003834767086864039311252147635074647182642676133561627448410414969122749303490720383210221503203359278236747598683587457985852608202628500793649768157157989164969572525147460155107089330707476332845888421378833255590421419563480521204469552708682034856091980220429933922134523487116637238224577725623914995389601654866265858399538437466393866078822126812279355520934289119412716936421300117631121849250766868959047424185080780212087986809512169661053924983212128132899292004157789811128687182152693196730543871606620989020183960445657697270158172241899795806555162667092078421564038313036791850039216309896190849568119469390502019289302692488684609347855405695854716040573325039209555742177009192266576337837551734283152642925728118220044235527645441250784008919036036294624299227458917080471298565913678221230924342800102250508886174787315629250923321946460422899948884094711747978531613379140425137758331773294200472463959165259187757337824722782395593991883706283774322102909097347581017224597080279958041148224010000225309976737505959873330317783840750665955222799215501068425280317614875742736298660021454714906514377074460526879992889856512970733626063672093775863338143187625206716366099661582405258866665757947950800521781490001440975266775708219613761087300323269086006311489534475429361106893228002060635782973218944869524207535366299858411545218267558292537868728298783342908198391626246824391455796137238027138327629347535669021392215162250790181259295949226970015569702685474325311677244309732874470405430945042235878347333501111842372676779333901783508871852361543554072243729048532526713327699245741348114521144630067726857344452484049302575763349106346456885939271319888859683058319229893187999906593825162648049200031578517199002514510536282846594428702943626466835601224190144174116295485162005736294246793074483393820993578028772657987146811115187150286636878989118692541637058881920184222010734369822804309109817018745916204828523397687260017494660369885336435161778432177698840004330254091843627553042678205726987535278649801522135297217104570096637513680253823814324240830727520363792635051942240198317269212084908694236936869592798501648953981595956561499019581078167969391649499275199505628874254319159887851981230472871454972810341091669004060204907924543661061214894550779120786504096351653132123925004494431280079605178813167054928755265777229155745124870878576734474636520404379567314105938458505144532291232025288207970751273569561579576883374896972660629868249074868331301349995024505407502589888161623679385787423689134318598482833333015432555930815833076377993126078159927231918376644772590660359049813277437831856144378762067275003183557364012676684192560207585845751922002006838137790948635724106234374849159307453735601259931568375603572387707124982783180911464868831118000335202353624258760482222633340284082832704467920389795397847092854152743600381032158281139914297470186010338603540034454757758719935779261466243747642673907752064379860256969987343380477961377784393556883909041572344123513065328458785764853300488305859351070297551459018729217318332022334556404332108291293663356549234404313428514466087928440524975283334465679865465168255870407791203278783486931010349567409441154278893145580603844996679291078524188996278135996247179050221635675226310668801941699671937430692876503873387414350360440360198945816946245539422234650581617213122821146903474413519060517461050105790868167409897829192768872067427816509289980475083489312225186805700574497851432365836553129847936656951547179882531823055050265311019911155420439034638447873866042565880583932618702979239200309630958056866697044970663274356730235990065196696239551777339096668977024372161848198829489505518968635367252685170176427802318900641210446682555219787848396974465469279245394258547041837325842286243413532908196867115153352852627823650959566159949640167668831308774171779637631642819729876404352726954617670107191380027076878808711819051340642156450458604100589303624652627939795558066154269119997780947284764807247363779446966184826178431815422182684700645823243947950201443804989081728197755562766482295665981923656712472558895819372374429633881717430680193954790570802323244933422327672111400103067445864570925251899649366939451355095516371956409047366227483450998033127301708708257972590814032698394498249904561876675356562878255984895697188535866368905826840552432656253144617416416633433221470233365501355517939278895508592468060272615324205387167623048367559634452530530385123439472727991355517986085132463619059779740027136329075164909864766638441872594736120990718213661426313470724828678003271296990195073077967887096631950150257314270985893036562492799307624205642170548700780461385702005518071057297693285327348902495656671228029903701592341900108161675985211889661588349418357801794685462196970581401524533129577466352147480807708613508548229386410126022536787584177070331216192743377917524858668781789970906752312936296358714543190794955432259824664574780834501075689842567291199670642237107257517619329048893788190310328537080017914697282585814733956168554713103444717429334913452484091465369941553101840381571744375652385199771216870279344421118682850972769653685904040914057505556114310507879900030242354051900349212805111603759076840741580550160239537209349453672640204800531921157396424598571882872063463778392677792737000000865511163470497401038458868383475785537756677290254183460278981342659416207663902851528824249064623641279786776295274890181109154378837129344608133891620388125248628254471614313277945192244353346680869550781001456617039250570598412393080803377270270527937082917091473590824230503947193567976106417905756470272222150019310937751077472432508223296656376927204320175833139130845430417656545111340552273833663946953786269955119149524141074323267958483676370343930686355910102856431638380055834720293738443639775262821620250737355430889403771038349157138701201826165455778234871182707212256379256036750047610628657204770889912473433403071906811962366255253903914179926847090381697414622285582239986281597921776428999143611941812392505817733612633226733087308520394516996397851984224524317388350289071907066274913313955024891577300396194316752174375179614623220924819533162295274223090284819690360878357705748324833702437616173507826695831022664096899936221266096159255313019021882957156697281747004939971711930045208999434284549396014146820487666504529376344262300276823183708251774838814331118553447584256229419417633048285381195936634563110225018016962176424480246739811079417700705002287445978247812094849601593632301065330751395389041484972554230918122137923346195281456324769575255231613489764681859451448406537182465017791665013700460626768651742552843972794026365641557747522889766523401967623883803449021414956962089054786617047460130158197782058057988844099918642862038437788934605477866212673736408991515041467938104953789542002887437254866133872894558379816908236072431275455042359612458550005156631244309454428205167115785326093751694706560873435143909920043766260615945931718256226857516972697805670662273701344367353310597020533746697250173944349435713790429050197334671934921723261410503802239908914566851728328894301643568669598377059716186894020328208293485263124747192953438220876881068569348773521073950310735453391453440663029636141600275352354282749719330700167362375797762276597890432389958505992647111248781210530345687403075819001659165960098892430767790645680879515295007795953644988280148167598431118860710523283090974229704211410035222138227952954222118618626080206922597581563336435846649775674124894639867498646700875060649014226024765031914593808046201595707438462149999140501466263983644208191101333758580893246454701484249817884811927288964944564810728801755909493098885702666497407879392271278210084833106907657952355464305656414173907759665555316700937083587453357831164320074268325478651826866339181460459218893729818295919392543158323950993447927537254449382368997990111464830863329974548397736550385794122976227816421471366356343564349580871079152997724230939183746105483164448434372489275583096843451185771915202150239394654642740860067782065790022226170377563137427233529060681182168752593469578350435887052333243734577156629855656311349982248509842205906193167492196406096851448625677485270741629376372587576941302885937495769310494620431329534339354086110065773070313838212655633326000843886704626269340533482960291099924951999524497215321199614845894194354673400195373092633513724748980436756307340018083308002162499536094080393013578006921530901951460141021568615002779958559579298576853718762226002705712408264744606453571550977981706524546494603329095748411984600689172558099034874446952334861180534331514905676488596941085675904658294586674041874254735129561820338270516949743410748828140998828660797698754734346816636071639422521457371493245888295466739333261627547525821772814878340228127325117196346502919311910656376286228403838159950790742641374359685897403242084589642246642864741281044679569426419934963129098654078059979446280108284929692561779771216408510290219499086110193613893296433244629565835816858679803309375805124223989006282980982403305175308150958945346336389627581176255218347936132628495615710728295411386725835064605866869049429583481817146728070793249089992528119770010833856026806387109707455053217489980126794158369947516404126687155066160869925228489381706108695667692305665502340470097728426498946831527261529679096130817237018643043420774796470074546612980938378199328746738207539677282585011432122971483808896835464667687497440000891277112327073507487163805617288409438755951690628102229646047899926396311203637738967399779621023230862263202239541412310617727986608456231536053433392461085297833180926058604996221670306015759982142054248724563581969194545137258848482459017280669085128918131181520175937354842571810834226815470858376438851288755479120014233534493829293487183384366990737955150672323147645102438995626092140823588824215353094245179758823353206171979868142628072952588924046033015450162187368569393879706833758252041185089566598545725538573002719723822708272691049996103652275361060256727639424715669876899455237728262869392042607294332245647735792020557327304847125636813513436072026874777539928476889636849706567285843862575320229502689477780263307388123852197319559259506460699383016286997303559120078476720415208314009364973178897648629321004005560516687759522877027439692967158878757201903896160257592072230562300190389506842583455779049407810397314080962750694760186589040794022454557161409952404048229814107986757201440403448037686660492470309814598822090082865639012441323088723769681463311039436959001059016715131530931762624094802865528757121669140088750666789347846453819724349728678401776850468794450276749648625114913875286177728147690649613551351928397430430809560944721323564000197099364135109745631671686635105942982228254439093160712954344045009223430144773295805358772114909549453557734414832387340787660529637683832194239416632815047961320317869814101115582808395476037325133828628024747685343419737121657960007614603083867297284915794271724093667166376246690050931585176361936670735544589173026855759496591120944653750341974900526322358685505091900256040360321524748945394451987086934256231922466772970865912357379742702280628334118354005591958377370067643074427152108379212048709391850325738590408129783167889578525558611482564084742789405397592153434517535160910765363021085494261866165755075380628195191729200888708883393687639881303759604553560201699948018510076726555658099929852946882134116933477853243571979355542568818500418422802749165424283093875725301276717748656531541980556047281759955836881500634549591553094594945232061436419744020595253366259460625557427089448456797832035983559576810304025670494470879657488345694115805160895861187205269414277390796033821082256617713724729656739164798584439251864814735030889935260970922947340649564446607454016191070081859151810008383282694066815245653837138620628699063924598293792228177188130371785836907013412657472077754648012514043882885688617407561640348420669451600177148236851741374360069735601671312410774685118595820266569929420622938969161743868267621910449026975531199405213442419056254865649245799920173752964440358132809107947191198804003028594658116882229794341128496012915553697668000569670454996426803101169431868229497643934608860066004687646712641895131587833363634330763338039788976830258669720071195231362328721552513931821747209241610014382346503472253961102143062635783037459967512123224062753150399935300290358558835772941580815145077085115147189790573522629015149613610925453596619842775338824695424547850576238866509858603160081273271389759594748426483468012358734442115905478312569266185840085425331142629377869771812211916150628315830929325746289222329194162852244123114110659738648521669138264965342672998649792389775661975317169433790338296138203799285913230684850358929412583252043441922755879602811589779262354656588011235437400460698047869879431227783424286378554983188011966428194374050048250088619926140928626499287037878060100000686645704721623433869009229544768272314856145811436130573204559207037039098493663469011700980380190964255511477628002046293131525662667680364265963967020583697209612287339489320065437620071262265210943051798974972540081334275118146150235122770115756976324381866155448952443498777462749342184669888938771787427090681345571967963991688967318083312692854629481009077011551014527997461898486664644712825976416975244835377333596932012427138265872540201268283919342828474438715991325969347252796728626896397069758823839912003381619936604688726591517289798084317583348033874872247249137625476537730011340371584901379169022764025530139354585971069610620250520809480479677833852166771298139396770056750097644790720036584351865511813694473304462345455739999815067719954415275796090397906091445166196577136317536114317951906602284715810376833291621344402775493532309605584630381667168825675379477699740235668638634199080829035470119246544749679581051061640920349028534039330905022810299746150040609518276835990105308976497209248390789136401206652820109308134815601465981196791321746687390375637109476673555952806239688477670315350213483741255784453137255727985131937232089258188008732983348833181072379908033153605679569127351197980134321938128512135439328607851208528505877735359163420914437104132163920464230798412321787979565813970249041437671123961106227662695746304860772942415160449775860583944075466151561089772399558049229226671806710843444150567283704615919093566025638052343571931940495455203640507657842698902524729976189668550499701524051245304811121593374302666465385965999959315530358129193831788319312171150067054949218061615529446984874118639043649132022202657675522779061604193620530173811412899820866591681126760939145692020184834002933970653184897183263456802595327582653384325419806092251755035731821487887641373802586272806747815280173719758266553587998606164549441770036948413526766762014421258576413977482470086980699549218958282279472870178612732163109013360163657341945014027864164282134954593390161009705461925020868277183070821873544379664122954557071879541800299978488318622123876954119738492886687193104457137519574419779317038981012601231370488706502802416799874394979655705738863930576645522110371212453460583333344956648847035232393566128249380609272963099037099599803070916166810981944861294735587432802335138824929470181899362316982788830664344320579805215997550628691168313140147520806958671195635091465410681438561079274534574529458825117525099747569596638104023973902054880446656979965810453774612975597071612291030658790112520762596816891280666641379030784237283686160452954638965391255371569782856911641098943406341447678928577454746652665546910732164788379201679930285827043872724522364935009427205668407279946889079385859849994204415572139632608144082440963804261442753183566437351508542989399638512693247381040833943351610220585733956191416520294022877733655681600298318551079011536609341544881510579891140191270138077227910960641831246127742353745291028503952148723897819935088040615596244898297533497092268236179159626334958313704764783700381431639342676910673147848445057381307179439369001317156214305253115969252423412158194808163095267344936180721766725799578418219406640011937936681748827970604468507217114506956170179857701663131641051464758603694204746708582295595412928924726898430886992177749158019505606546231645673351497701140017086471203420831446841371425206990767555311367258020157578581371993080049381034899047325517364081627471292758773370803844452583048532823202777025103877237187372781726756570587805947435314869916455073004261390267289068465301321477439540700956680914719904859512152928317549673631353593861281040793258193703377240250913375279774701590248862107552492204795675403009404875830053270096064957635366674754030404044423025385443119920756407641406796947304885787523710831934958691901439494766645315786278558293620368304867631349601035172618676524825525584163843889584467666269817974050802354032797778203316949231537360167033309450326559521522404982418821000942235629332749926615728103405924087306228316849527908416814443438817697449479814831900724694889876913863717987862881984490563091733615926179607371376963224158223938622967015892527873999249415107105451264677063369849966799134001715678028844044950426793798847123433347444383812507559267863964925631570870244992975528757156352338319063713718101819389594300367694956553723228734237300539710511996500290380502586236518019592894688304729052677133078432970859453801039515427859026321469021963404740920843203836726313771655428863125423428483543167856122157839435332051969191447781397955613455680621372568121058945362608955598716578583734690564970936121016829140835069932073205815181226789972430805701764810878442440972258295193176728474522277767128586778616684852505235562919507116966674156573768913380900185398991693978100492943101318178403965531534562456029820186111672466012417962119886233682133022906466494976163137295776167504351240446882440031313384698814140793425897721759915587546376965533643883100748631334644346813382024521573945798391921045165539938541284442831396544946435129583332934432531874972367313379045866497462691414834609411680347724694610241357302630868006885299989408225050267659364394770170243326018243254631030438958161714399270059182821566628989105990595697468129594957153333981527217191677660152895339151192926575599691990081620956517554423873483485805793858196946744185150667663676469999323630900742502814444268304222711816641977055515428490690591337449799283701507564020369917807606017109754686881092760858166743360800563722974849451704170448442513455110153221007210399877578425585206246334241908967942397322766612127794822143211588633173196153653849770427505974924778287735529677138998034238801316095452241490752421396383783763461318790925631876324148811728247262906991199539917138345996029593580925635626579878589233343290712171908562768665634804118029083083597733171634701449223594987647288429601748829922105009655377911707392724879687936088768981007057284352241359717084677200460362865226985941387635249556525341092866863221627356241433852644342742299926059454841426426174126302236768436485744891493310181344768514054507765033486881521475028924976408082395992140732428435559550476866609176311807210139788038517162566033871252388014086741914400566451588727893096957388841424450900863069560430990240942766668514837931551794630825061252314875638628886374211876859936295291243332596895515987942025044991332340822820500383658717775631755048923442265053820065962237907832781661368703348962786842617105423849388335695670786856101521407482565649624911213565660242772032496704580567580826260915470710549974595301602242443317893616364506065605753683242750905497332248148064491532048881905675151519069413587112774437167636424691802323701740994998008782808520324405437632845603839082921564976613757898983991963068639534420505315972216432197890174336746341728037221383578201987045891514102336465237849139445639437410598556117945803222126003608899728651329250088360633417042027194392867294651653447675604910589762791606314980871661014948070137078248608891074167643344721149992974333011659867944387869692447655326730527779038067290175007986022585180126332584770074984345104246365889290545200472356785736480496700093959077938505120231456653907404727720528678815080889707296663957085319160930491400691092059593955277235184955514682316940494598492885209869094669668645437822641458230806937422533765925298667343879489918881848114385103083904541105215933448006762618588140287621486451952607900394298518630340687410610429903588916754607839010170340918428899352449536054964589546969327046915977653433691717665843704758547202815864652108802118228332445924851265202242902807833765684521162573904752763976861036834121569963503265404337024046894522925230988767638484020716845707833214553360973226030286166139992864021849766515963148901533530721497081544738177359981110512646735773339432346297007668909022830174421647821162054361736130723538798241639701611593635115653497261537175387300005341888068161447704694529244314995129813246988108690717705881477189147648991306257001104135868060810047199757574809220223526681635740228782862632585503392798680182040239485531383184808918741613324105498746518867550548116420633918071265491423149864619908251493256780952919911209162069109583857925864107636698217502755183728506693004608788946472182577762018450193028690878343297771909778019542032119615115390783737261296414748284442334386936452540761555847610407304965487046892293386177984644740078557970312034323566058919332416508875770168820275770673505289081905449852166485994521562850987172474137400608655994986202094504400248600360303928452340784926758863349853035291659877171083585348369510891999546674518518748071172803639083162202394827670627621736327668671229653589703808149679932731649129672089666924419057802172155641541359808554460130841020750307649165758154632431841602111112614938569823378500795254950622324890713039691258184148512899569194003071968053248737805008449249420717083994495458054030458873234962169203999410403145892850300376405969510923511736510011076494514972605320731328034203827231237300225581319841299210361111611743915197959547695294145415672917205170594764002303525840013112759038957998449076011491410197006180480286557214878108563641879751389258273791376358406833164819846324504085520586543382469789639324096691061442344008367543235794826783336054099916179784491499898865362705587948984161594659444318449347402954784656947679334009015428398326317311146607289666266997643924310975680118904771280561661752298889578787231014690947040391157707776827408484992969964768345459612728442209199171519842580321419536489587045088104375478009763442419539433316489431071877485055408104459914156582508936821917053092639404983809298779515327533949992722682503704910681024541441691293113056654094849194105908905684834369089355570874509085537158318967848476629688317789363145407815201641565040410395005837014269111011273423539265562501189382645089188700576830039741609794942307602322449404936195589161424929071210648517163631983976739889630981859574603660876328673675985342210071755894010379163318808971616402012699019879465361082380660648330341505907642802270536756058225605156564314368923743515237966414054269236022076312837332885471369915111595593881226538906270204943252370295351058092768486541954343362909849988800294039038621444914425014950036961952248771515791596825239499158758042215185552381165719685031369340386670186408301947348239012002479914267025414891152703415430606515386628807853056912399905709373444316370739645141111896357169537744462995618197896756357409857447325913863814509888602135490644744505952248845732772805151301974517696894336548084869302944310973108790943494117563197884322751986361343570878656505256286663190010453480062992518194942847366623857042020913605327298981609496157158273232237670795421284865450150065936989702209376505646432808785987418339223119085315220401815590717727794674343701014606612708409820711413534084157883516863406934628813127222359738915424029333902052310535781888197481079906285082754738318752721312311194473492556287914339174349252671267247131296604519825691860593784915265550797638976978377104623648231509152865878823526987432306933670780951176060399368515961651292374354558060208715393268695427083810837909586350556845839411112758524183388729851721490300726924666493134242594595077326370804621315618084364772868521577980964647713844393592226362315415785210345140689036485404090554566047927538032726311649065651135576646395309867424403922693448379803675080919585856993763233386662054680786421119506268618375863487687117003009556021210980387383482173986936226280727865405306092433739314352826034575610105821947508538942484593468635684266545980321531508460258852343557782165058021820886053332882007333801292271100507326211124666505963252507472775576319372928708185353854318973547695269397198699100372834864894324451367483865579618528339775573081843727440336326656843030946878591314114058022175227587283341648968773534258457551705328575647933793416447934689467357682771685432974448269614561298273406083056642813647427922120297712831472401368864569587089953033185724495554710956495721147294822267140396569090756021396135918102350782008853261169538519806782393888649002567346722908985705174514858407508150666105964750176556756888359400883613980060288188025458017773436401435465259777022980643563838973376195902228797479058142090620917903703554896921312840483013614434620809532529877143975048346756333037785435068358869442418868701060043508556243787143482943292585639296518422940553257340160638423510374856917134418322363651693145584554748756068661507519617287300811459201593982126552386826590541783733336614293555921253288992960953407396616964412213045485163225328907254806847440832293361780200687427139480952308869617633660460464147410042406214781687573511275204241845826654307498349177246082600418644180451660649604644212099069787759130761317027697866123039876910818467057626387562597246146095893301209983629021479775073667332835710934261232190685289519634502457205623273768878363908332416721424895972297119878360617179850968737436484487566693214169795848256942897448509099577803021729314885031847771773326297335171677058374687263993742654859126385107437105196410070116251496357494808630335069284585933530642552542708292133137012781532552399561527229006561569728866518439698196218064853230408913221738098607167592763919388718129141221631973304411395389302850848505256134135418811819493344388614625710673741757866561417487217749256806420321672558168821354387495717244287718954891505689527135874945370558138480626026268659363822164528413358777464437851908650059663267673122447764582691442226786589895933397898026970014704577855079561562833688711057762031797214821191565450699741013907386554226461894461746075175239153316932131817345389665254661620359719378059530940555095869726951636439963410800294523597520952251902579698948357426769565465141672639975138889417754552975390158465469362932722002355854977661761933479234687905838044854104897705791837999266349887588150794554796981000869061511614774423552089562582751547645906702771341234670355644040362732601913559782561389580641699964064723677505048914765112764324096435875288771817817262974719629558070137102051177545336530021493886222132874197887143487957840991936096149837290722586248909109532252384827547121372480331458737220098783629148431459135712332408215400508140179356686132685888765962806974028772124540855694132567932963864887549258009116380924760433643328031515559590729609205730217268328946572965283531676473466465015008385942391539819808822032795099963448536926191932643880478377962639889199141270660043989678219166778012163244017209276513869330263521014310900197873477184165085801521209109011831580999320301263455024365293097113351233544635386818547146990473836751048976034701661161961599605134109923958329503347508273785634119961013591323630905642859257220185686535971272844934110197352020551370738017427866693558196895156414993614136361830595262288121026548726253714587716174220578214821266714556960200660854084631985234930451592228375385035348653176274396362203825993072513769526001463056579862146100898837294263290421665172419938336509682527933301467830412499003284525650229627297391585266634527514313215244377379845400709790652778293088924183022330175905646041017257344245642869294507961100713595997039760639955893900230554664482218556120128689813872582489601615364582653012656136435581809282052054179342897856382955258612549401732169711517820846505585146156417244937657606626783063532941340553508322740598126311648536651510509181168130894596203771781136097136346082888226244526177812538946478804169310085392535876698449381721407215156228350922105925689106871737271139028141800556374666656557397516669362065386938919550985998075563772562842110090550615937906134467170643840222234455213545653655624214572449395182944042847889573068257899498106568153873562815858778135483519129231952319344893318687709862025594288179273383477856038394777771260376936173245851644220006260644025470974731944189163652633940028030790515732829791252456089923903900105231436430938481722533074553780061630996540293469105363480168101919039348913941339687404564368587006618633593875962649346778196115325478439331813563656653724056882964156030082444187193035331628875207168489411236871330589031543638759237615107324292618480744522694582314828472243085469253411093923289343549018586265563997569343117759734343798105580626530014395916334832494537436058972150974790209680151055714053911949498864439619564929503625207265974119977313347246953733994431085754068196483604061695633733168750620948449212717014315492307800700143049676143923097113350555499680701526587697987818203928320343551423243436875271856586071006516965795464668114695438278133646662781432447016406575873670708897199230694837085681639283879403003120001407888590996336916228476074106760119016704662606302599602692309572139384566822957641157166811228103352442408700872780872356457922291030342421636895062409643382234470202899129081236929438186078865048476381680187276005580857715929714493900202614006774543772390803875319152489412342770254387222716968987366252399744426477371071228503024550967679217955787521832279043075034444533067421234876157465419791318283847536198230501434382471218327354593668573943144131317538890184245275473959459728210250436177633387843194909937425892371402262948403197199462620071627523660329532521583615530612975238526546330644183214892803229271750032866829729000839003079706914157254192619664183532826912565679785717030106879868214668550048853080794978676170849216732694521961781010651231198695097990511578257936498693946971653115399792227648253046497270639485990888296299714463036975809829491166404805566105451792730166207132361483495292661978583538415792246713315095018779460719998181126299195242575808418926540394933483472406840217049591671139011334036963771280432267072117568685371392870633158152477462556609492537137535590976595507971514426875835020745446825400455882566785550906921133323971321201879861898540286883106356053518422996960569241341828613874693157643827076120985172217970528376501322566730887881926461087968182902788609652504207504539686464765808327612647415404039037530500552783553590082883315427829982603032805070007017740260786925274467491499469892798690664759675790889435736117375487444562766167387831308654830020591837408869317933562283426685888511173031560378375205749439791432526536404521450233478461498547340358806785851240187136888421830146560538115693227610514008675481505111353745599506904231144668687520349937914308016387677462658291706906977377138948545345338533944810045245659712102283897925561009649407813716675159814275693704960419560541324160511119174194891387165767575743449130694128039610773214719676797681789488661648184138601483969896934273386624808409862140206155649570276853802408564792810646746598874477668317508187182891873765338408222721630341544825287025742164130480288912771345629384757211591441758474774308252775593354210492816758634055979617394817714593605948550876094570805856782317095846073506183542597125211195691813762183590631260619810398001413754804707822962899485550953609128314585329408588538958239441702138746428711218005281701385289578960426455481320143843020145212705030637403742805262043792783659730170429337645121217859473163746794968743892612289780900155819449020263286293026858676599152471977297621096325853758559778815420000300355768308620020675181864213392199491831262402919890668915078575307029199059638305472595580871017348573615651455147184355508546772082843019177978712677717127999341626232015240442902193082843245203898644223026571865997079448593764810186946091325711072962160421752910317334097639979645641654943044312208816629835788587382929986220392776837765038288242007041576956057563517971213816330380135045389558000538444900646157943342556566034620540253335684340692974595594471080637395673648931122933536564843978316828942925558936533825149723033267948289381817108053750313445900806194539603678372100878637900068509092896039196038777431079778488484640772285842662954177274802811696155169041123568265536770549567817373444978960746368165204783575638885853219799569405843484129607419162050289062148941338682694107567771495647017393688233381279905003501908701616609097694845826392400695810026653560072028704633281715587887992332463477363280035803252472024689822970967068185972392418605860131517428727798712082283345375244621099816009342414625525925000347141239136891143873470959356315295655649403175797048753373410653389939776627354540581230759297721666894613936351876972507779614020962153570532628319262818086410161046734378808352844092923410792912244934992821095017636204274072631789520641071356144316917356770738482017782735396783491344271385986797141007612731402292787944984159983468914918427292174945818567365821095009587216621837344367685085235363555647794074338526823961668188360446204349457687664055862208688048709409352775761342823326447274746881818730626213738532893227736222268781862009925749855303983204453380764595836194866233011324471165660242545650253890642484143150620514893962706185367017476008344671682421887589194322061584498198851739031310110365733885296797144352394035364690497520442190630511318741677225809804575302244578777991098213995872541879317112882542996361487170929448721649610139896200910716578366141830563631140509735010651546589281108480983853736670043891259862745539349488306472370431497407945701082321680038145267735933891831998123728587545585340419198932944652581685876854025401951267940475790603069310996790584717186346608446618629609907640338145486573021473621751167064775416676920173320288283839466570239553257991522976185251860214697612907185223724405292802595690679736253206935065561486471632159955226313610213306012183417320444026375985418982037134669078102299817053881021890193499105292198666293346180988279597295911619258562933437593639715332742905062261511660039321381202110624319053276431280118822084805031976187842158517110549797151322857294145501026429251615763994071466360667261012513998541349075278061739211614975461635418884898094728281950761573353290815269838604393949073298065031439750508884561692278473574007243479277035623884333791510143467028533646590241443588697145460143930906436138185333602975916953731600398140564023102669906639797084757911026952661066334755112090289900130276785669242125729175333294508201118275065197552528098865283915756394816566156762284488216575718823577769412382020775879329839157584527684876140213812855208603001298250984384113851583412795602484366490218613019550574499597578158519838985125868890543344639988985089576784793045236528321369829726600356865387531468390702498524035521700141636561824939348809299294050132107447925521776698782736932626544628846748145110233256345707159368955034211878630672562528378958223170321900352152367573860073316618100257450577112451780576189292257854908269761359749062776352050692648173585300621350768815174281604333936800871447425603877419029832882989605931175482136011489258006614625793812443298253849119714567279352401603275234886448791799891344709179191365716873413046042174055566772258539822500516188738190051837826497159293832341435167355505095245906002109438804256673935464770213123364922811958575531164836518305181013204192327706249447473818253638964567187520005084935073370163092591160024726159004264175702644503269985799094661191490831004604215618699266041291903870928728161268544351375080844618553431530202901335385257610906088188657240135101444548627499231766797713773501604691281053265526394525834439472839322419374109599374262558242246629502610677041454632984461326141092575119431606699461556939137032066412839726439206822683185376579612970071629636636440719759538096613296689909175428182055351597973675005313312609230720669031173202734723072674704499431765876914129691894439327315188562997168478395088911933613488911464565946787358255676374942937707552875814560635234751374476360480991275767967041453702637756680322972725887779236556000870463183684650993715682891092295936086019072748563557006115116600321606484694522390491487155078869483295862877563387307167528197742634750029512170234879960674337208155860806782767531353199362670033976914935826002901982449507644976257317750693747676336077875936399128328019541675094381411632573337517203589922858669769754287808665444195621348710646348918869748464757059230488526518947368288468052813848705456625356817465337628475712244523675007504043732060005941235820846912425031683433956441032025066159733906980565085810267453170261420931011633955333929791078992206574069156121296104992857625953493106301665870498603307852022690576416760164159152727518581321524391945138385493214938446360628740723483044412960603678954699031238878128171223082244586709230630510981072537349487916405504269727296940041601989075433287373305149892899946897652739413408593830555852625922356094126047253433791709973514049347857946452101624654079421187568468472859312115000786883723597416065800675100421710477279454959591026129254051955013019782502548474284336729990762675969240961071554900076100905721230444764721474582546468164500940484333747563417134363773176672192332593179949640271701955736525925628251737881432832347525668616351275314760317620186370287694760386654506434896587955259046991590952153154983843912678308157299458755461400900697116551192788645844100840302181320312921947819659573778568378668201213991542601583903313918746889861575029368814392943160594430899113002514052632087214209876907398742035496737873758464861377134590814197824449259686733691329131264735782187865923224595175662473603056722383846692480600163384425703513212498977001108251577080207291835473308576254571416560152194551174667006248395459579706739876990755379237064970412859937434473268773825576301528056324137815093248579494943422961768082903560903463734629960377245458988272284301751912341471284939981243949169979832779987635945134062399338506377060775156233236868414817957198368910564212957167716520895768585879510180867663576427341145404354631352885394383311452522280163677077396365405958264227750408418280812485843215265456152480495513298265058780999750793487503769130121745821260474431664055993999595318716395734768361440967135012478661646873411308847375332693401040427954077630217984879217831933802467100529053408125870416389087977625135331246220199193736846392517583272645433020196101650967877376087863692943148921075257785274859836985925731703755757530753714384541001839628634439289251447409488466054731483362829930446215985340837579902844822586962727014044138427219063908450388040679509154766470836645624882633687503444613970554044145817544890099778777523464906008536601285619602116755770296242421890491478154561928232953518459312050248795493327563555142701276863306147544443039163658432904312172866301461807267200050999730695833874025269158187617977087784130413511070972624107313571635177872853653232602795858945886907321956549987351084717001473778074988882338874602760482240328906644811091731976602679578346579336265662687760202035990562969164604996870970460293023603057398337755805978180341881040926403284786100620568197316617648144837922734017045971080979271110143152342113411511700114141367998483450127896377827855686809018809198295460695912420850530342671751573174024886207137357464442789682579617217844139510272699819415585959791817817893344829115248479638591828502106695490004124905166911890592200468958309749071293358235572562733984533863997717490153661952347992809115374509239929868234898585036987357139550401704667449835921203151988688470546193159533844503822301316220943135816432786728966741362474060177884964802198390673342437765000896262391837399118328230436785760435263835482708349159134871372676182509470268186685808826366796408891185817862190091848990585015337674474535279302322829225962164465169327169384103727451433136165253493248876306135553873583556592228040795231513021990485606661141795530806783378384136276133922082683852489857186016321187986849362868621529264895659878187388482128283815531697056826364472636571472302230636748577472292186877883999063550979324004564606865771871345344456864829562202549743389107894752570582055226218786825626910257877049075116685335377527484921956675568944381047038010500712652248262436890908525020495591274164887862006263544151063440233568914478087794784376372613406462287294231806708159630302920918804235066868735144180589432010374801649222045604048787558420131913408452309314868080370910651698000802290006582907654051412159036711747033859325884886937158328275752630212525164413602915107766966765606159334148275060149639875322149426298383945688342794547361176911353101448728966879528840443600158822935689830011676839780842738260407624626940780278144349635798772087639354599544399836644754216569777530296097075706410410218355369263402680360156741411257104502832937787307523086153212727753073075646115073042163039120710725909493383561357317844461492298360446645277820986515804162720742774951044644329417585134872036961908788694825158774604749986318293405189404234139252760011223038233363093392261314517097167946847160600568927212368683236784453891073774276493665998508178793682033050164629002940101087769244858538768937918992803224509648455342522786977591692721675980819298433422051230951480631325081035171258110031394009554112268064478955117659883151098970082315297240578155608437068779679826400795735711413119792505651205959175588686865270598400404297563447329069744406508661540312048666650338796419046452588465818519810746076419045637957101740591933027824426465913255067611657280943904500306825497773158437649053610416919937310779583131155397891564557142791767958706582364878697722090359726414130677743803942083496343018766133958131206010368808996509250422171945220567615643623538464803893708863118448667445889003700835203146813162870946278802155796924797503066520614030889982891592677591039848752734837325911478992081058200252747816192042301305708024805646370071522188228128041145654702916282181523265752772906376627809994961135883367385840686833814878643474065831878375687476333119528187086481842937664565525856061353196382976641104406236980596694856398363259170427994943838856982700230373172407709611830211510106439686115461401703049134830877511195205597167975814133771594473668591560278366991646828078015261672563724777751699463770315236278370208068548525768539989536844216276063345269304811670452027031737095555733982053881240240589710889178733116097115388613061590139355899256990960961582010408116051310682800588671996709099789052573093390262105558308526589678734162205411010588485803679811280419377209237038364309062389020996554253370814584460197439970588628258486820095512816993555244707536463540611570393936939191269800104915466841758652146590616501197358033548946581244790954033229227914705989134752163423765684910808044796603068545161731138599115040292847489841207949458738970129298288278186163613271594907767905851634997979708270572097638036672606157193840979629565670642903888234794443059048919172356410176730986846961696908887791369388028062835767402302364236849991653926319939115345598865777779066905511043391220246606146354828094016551921062777416859073674629582096935543642760710100359230452626085314013020913835291322926847313853447160453092297849652056408928773424328174431439479013182323893629436769129639092056293154793367799578599855542739011385452683128858947454791947207035269431320553249211516823544541071086478611294433003425788223776756871293055638679637066151543572530063036333325617837426376138940958981541472568469489915752202146010776958571786783143778897542365466242436083357872374810442258567405114903707098897371970710319258987940858615945360669021973308028113677996397258479863386278712150083346890253245065074322128930114776436421034812242143743272242048128538299853721055214936257853355378772643179952898495593413864419448968537749962996908809897787787114905211520583603492752761234440113004514854594183944408341852517445156489329472977200728253471901457963928647698968855783252633482409399155006359873076196995145747037649518612022923081122525324377174284126339398825514004819650412098369210477892315644235938749004027471982397230032920685248520512630830434197717881887049789964552096834295104419732826844886879935025724339573203223390343849955452257373372234659191222534847202074089628986094825537868769847344988144304125603727453580195261594832371622358002236974345065452153304712784632237384521678777574518979239357798528324080353314634548163653660430887080167296460486841621527519027822133932161994486035643351264901555674366336501110631926121374389169420748932796360893068065552248908733371871873880634949074034306563443399166245177666656733388968485930624169466429239548107718072352915898325970443912155407399427436874943078498920615932805906455178091882629130712961758097038009069909408810983512740562799327763451627936414514220310349346889486699978000981002258933987229830608878906363936245169906471775208580698922719301443211921145380878696614958596947304370527769310636704232367165946232199957765939439370689024247798674824532241368898595899919885667074456014638990543388224860244423711936876624648813832259342118389093983018871918762779600665819799819783959739629745792504234213915359913363815848559866937074748608174015930969446282099833886335239814224317136109883085737261804494745329683593388210471604377518713825613592820228447062704368602489113933949639167480854386609634724425060049475338163987563414222596651669059578022035557202514730971338497427121028130763708506766470922779607778458839948133254908157013151552185733230050355859677992343957094996351536129338963686017746567838036184243073389046019063431980810724030486321649329734450494375142654382103278524529965140676541437760379846434169448083659680877533528992626902765340201340835309881134812262570297910319258613373383238111414522149034468772831527909024486795813001120341265340795365995300770049535474106068314049179853924862196433138034567975092697236209158370670834937326748295391479599400284136046372141960815100569789745302821704400205022249988117174698821700775112809048037906539622242084815027150623982459121462427417514073857069849420767166295844585843947980707116799225012388062235241400080675338919074767543132871551251936129298372892383643585542140822395439668335269159040412366355723298184548764410778301535487331155809734703303684087522558705630368889060561813052670033098624950007686480376575431912739655265625559150172706673161748718857469679730113463159963533267103507441422821757462992049211745145422202482113994255258097653991748507524263838113739114855032467018807112515702546361570187869391603184562889996385798051548334863358990231734197416917062954313422486924062949255862045122625671973300984056850344707355464731491306592534469718841532896198784225432922383287299967399051064429746525866479786014666913606901308169422275255420344512351156449835353294808895260426543434651986640357629796635722447899011678826410116270048255744588497419220111312232412447496312355414308434955860645524047121405770473869845676653725487590871601204835454366177971326560808747098201726999039845390463310186384189408202058444629890893131519084898209330485796445941689417427053817089045697421871566259519845848869199029649931497889042095595010881940419304033098857935498113681340535015423454379608615149674043344400918810051493570792070001687829126877851030207613779348393608586197192638750208510861621936178277337019290662843158192062469515988767629252004451605280449243974650586206480115192644053002971543121856682937233752922898653154328008194759742709786248520226055063642830688578703941566505186807917557204697650864988015510514781921263389821333997912614424404730039536224664161940050245704730430985254235262611835340576740459623682668727312435211171224002376820645645796665932709406903830601087280248547976619832068546252979003771616763295618719703233372236225889179143670357069053824285529971233109824427902833113108752574464910509960827529559162416237110217610129383172948485254757569724673582744752822035612609874847484222174071696720189098259451627101383736005450225786085020560149561935658401119263302809176494114881705088386920054971511068267347592809395607012213354483282231410480796081822447163548493657368197169227804875633930878368831280276979446357711918999734186786433177365685792411620805793459088323636918876240217588229438899304742815637089592609129054183219651908066088771130128151567887033115516552835609209089938599972314023816490990102203105769171923719482972971432213650948343302852563943056583100586545458513553296167729387904082685190260985789934430403160816436208627295612708754176202594350395409248750208950526102349803588113975724327018867796988324785081541732060939663250109731156598824946311748013014660102201118529037144321886820516949894564603407034536931858543409433968444851766181446463611837254383356203254374086482304981610287473609813025007140387295391036456826010908769999795944750322689257428002194567353727349118371827855357526204584999652603184346360053350819964471507252095069810482919395778281725525405445157540300578746513339605027086405380914087516759617898800431085731657419284838797960537681258795977270218992827281892010047187129852454629320444737904985477758350451629255271150693459670024050264715404909494110412124525863122335778105899977286803199906301188131081539993926473940730602238060798548175401354022331434693818475919378673442828455088441538633139048659223185844907175974342684953134831796164774989751933001787135215791570023100290215736747939043512030393493898753375189885255531009093579182324884171302519079451429930986091316221623646235249040617632282117612913453526310454895690875833742734588575547913792078413652905078913977191748455881348121532857812092575829910841824092935247394639494514479019163772353628125689562479048629084757989900760184216756472942118209966958105452121969468311738779730635407836649082885275572374969408308689388857528614562531697859688167941585517385238509488279208293384430011149060192593879826299850090924237588143259442737204956514283262721006351451090765018460269517485441435462790021553327049853702598717377415694411372012938005943972878349503281557032735683209653752063202299139692531687742351861522880046598676409783844729379874577832110405597321943783129901518274156371128494772481669410559925551342677530819420182922085647066941232301421001304268697922988096448047415129972181007827110563229476328002810680322639023191187718581398894001440282807396480608820944859902162433559966491845709619729608779530832874985943272721355742885552879050835055370699288555741650284504528256039952321736452759336825012573682300069657552989204518275544421004152606457870699831430247440835600988057725192609094531726958121342564555987040751969177660480114226115985630569704726535370717018198955397520117764877987193941849407024236048372844722392075275085807715102774375331697837057908652116064220580097032583622582800612199820601640867204879582655348535964372105381645921829752182252992608503152043409864539143856001958849522032400909421821520880960168376962880269277529139258344592019579170391109411000824321198140894098246565141668906854046945571938210140258269798983241459689666785693081438534132401449099595555994604551739834841672330356985952724288845875920765701991539524608299738344213960394849489509065675257464632651966927339159946544467126884131033805545982355578426250144935487862585776718399240542319580041889050909747532885689133268591025995812842351765128969415915979398019066831910941338626496476624211440306413287858324346863798113180139286830563619157751069410178201925859536007690363746476804211411039722818042873402950466975708308986095249690433483786966413212555347270652943303759466404414672028945652871975470762053249499112374907664245239800728497217357506416111846004930001666698392486818203945175850300296600342097718558175613752812399890709319778927879523973602656974313902975250356126962530644892096728540674310654300180515623900537537591453472968405581347956207527799985351538194580119008288794654179785401403763468944409862338695539785721347480862796126190322914729665042862001205782908306756504878834566187294914521115759637477117586828434115942972534168497529783823972347595644186200251131958190149075786449379837146648540595019829071674303531944988799512650863693015216699744479365420897661896466036643728308635915995516875057705970359833981649139126307003792505173654462543667879825417781067462443283357379038268753310012400436367307588770428600898927182658899686301623508223001288789842438877532414107514640511650416613127585793558865761739839460930445002980703606513835729402346058065200400344541540915792424300715759616238157315763719070844748413973600668727179294221849078211983472043577266893898622441073008612092606540247798898727131054098143272288072548335204526352225528512929183126969675692491415072111956031782897592185503766004469989863239461001082076181737647007239609119940818587376123964418205267372562552617920033244114914337347973606766151758275148677226825632041381488058164039212175601206162998714432131339613165349578482045341018127976409881891352806757401261024707339703091372180617678441287956828632595808854490986355977976807797473099588014413143494284065217728222988480183710946185090984797067025172608040534655699460893652751314106805381180006072761463713643895616122307341352615382273240106647280899733328464100551613332297431101640818453836493959660295646039382917021433152876499565941612794124325425533473070185251487025971629469708658546629994908655796257967565208427595281566228464146498629231635862748239696140073298381436006099667104859137006876244109241045871749063531392191487920306833950173300761714427710625860406046161416967206223451056255636111534582002104734584439804731269660286078403924071357827776767279940873231399289692771733086360107285935775430292615837021002642826863896844812088332387126632439782765404288296275064788174046198405176879138702803904974751619126974089585185292853295699982913013722649102145589813762203501804340191613293928407848806060127906454389927071026581931116940645275966289211365150887209718927658762994315617098414611818987218954387733717219947710530063988036314406398672339986208150714089916321148572956323675081527414453953857774426173822762065378523426502793743087261008484086106638579853080040880057118660704589829070855380613643466492085597645933008380556146950885355027613272330591104467836452997786541057168929220181479452611038075020445840566253487834263511438391033457921056162189581394726241111370291756382212034532579396253037839984760601577795762051372851394832258955480347477449696433691101889271263798499924978487282256100283706792057373727346917201170647875757589401632338872397949057719491469216118847471386661764591819367971618111180029279636162354581906277800452294415912146905077280727325612175848082385026552771761848329336123011429225915529682175686230272420295547510169958893094347239769807859043446238175113919262429786942804440630316187600708775685514484253835775539411027640759218690783739231620964049237575224325229138675215809124724828119665071936531339414398468736903049399283453350817963635310939597891685203768139186332973002813111120784928823710076744618240563277983855571546607268803330250234383838280642519378379872213221789150206452549044072828119343838447851909192793919075070521504218453803083008924849967200868638021540921435825242768357985192922220091200763390743839414241504618843350865169546765386579819972444329038194709614485373354535087330876914534557306586260154991482106658658023615016196665720504064732237581228220383354562071902204104964597472591572945926294689201919692388726424114356934181872374588883997801045362206184215828130493396038178712137717923142934960013478323352305250512404698512097149040440839847930495064350195852222922515328527514516067740895888691662671856650319096340815533596887994280384801322626257263908797513334502952907321752426616309787572404154585834555586175787376254572983288698915519077447418712656000129290646946446784438595770397504963091722908176288920748144441840928136815324643171622105104504910340968918100552413612273790643313029667759582952820841004940510604024662582844553429263942944279070190447685074005564790385994471229457056042802264260328964665697922092368086946896191572767105946835482212664029064575796274341383557537951760989003160664065299815814956453349978884306901881462069107942881053457969381016708882484775315921343701878367825111491507086794698897021380978796039212896904564337606063147569925698171773102648338452948181976979367065943424566582214207500358193565501840624244724916655500830142044614840340476560765361002259352511763484943609613712812358979250374327423447872933139784381997850039836931405005970009699922359878469851238039212157502269891203943216913494350971313740998747480645231190840531984964508068581621363542310666543023881349930251347361751001587864476132465691207768024696050210840463066999646930118609234583348837529488709065371793522892819760579314123977721516649490913464020743394040741013472703280172802097215902011708766956177075288474062630157935339985550576244715580785744406503010983384207503168979704304727379764855745029081327260316644059540965904510485442959730886583343874720585127968571871063402578804975527843017252931659081348943697364893378306384023360554198508276723177392968461248993643233396029961304130054713986095286692591534890792533935772913282634146665401183344637288758145350464950913698132015307820545431681020854219785156103693416784809311125264810134831144384277887734892784145477806092900024236219835317011810283445899851846450200819067183575392994930293861004569863619343845310276109920531534257228279140968005964230349240192358605638205883122260494753574888900996391708897719251698689435515331545828633906944878836187459903214214300605475499068440425711366321840285734577285515706189119021864368172342943017519219200710720761880933181488758903440379107601163299976571369946323156075786778512187573142139558425253882093661372231458037002855481579774682640975929400465902606333423166571843557848468707810699699800844412596347284295471891554752051370294828662268850378297859370025984286893214871337245911085831091257309463301698460933753328241120990287803791605471174431149017518535859738434510855218934534534493064576456315113810036526694630634664182519125570331097167009276352923021176991971867797289248000835100381046360284387306714070209357017555020462479732296649843278527748931810644508278583389617006612053520638634347051323748536321928203644866287223299031096572016951273896811529486756375512119505658661841148619257537215648664812980530356003071591748611512763253632393148604637289483805055960057611966130658189090559424578187746838824885614898093236491008172940982088903104661473582860299228953525367217200440995489903245083989938381909634158984193627661795016808574258992287692519349406868295181957781312831095386881803202608004438478382379914787037366190536025348220664766802746359167969620688352668152970830291441245146604957746085640937084559409311252881219676532391360809082260048276391233105679223705978251651010410353745678804361207289337514051439465609379147216383604579007646698642825532589846927324792051339566188082655859073538120895440536123654317323878402540546091807446959151166511827987337859715168306455671018542616632950699415490161307827885715974180637672087740680442033838674496864595905255473117121895233708965058003486786078000722301076722425720327317446541262027538005547025439207661473177106962146010382331904844310306961926121762306474261783889217455011305447444238602569342908216803427635004329868408764450210769125057847741440165108007973032665287140045129511080588742969128323756414439090968865633409203384108820149329171322838335022685873041807128395959021982143986671676683021779529564690953698771182852459782490536857241652806025099111386427020468346207939689321054851312050415608677845543111228765706141909226218219426580655002397269503875591608730657670612975150734816524376531553361621847770116412035263934245110340493465849891395764466708861171290562519812596822215921590746438336306119600958710134875634177578900934465308270598888268559498757631297800010712854161252075833415774515260659662201601201440360326634650500586946021537151702705662031984161112979142069305224386671493276843196155637186548011471081289056068024533306200899245176506498637138149874382540702396507278669663850675611103215077343506302056310940252435712661484681292740721909884497672243045526623883108816582138957143135257939879368092350506194236541665760980767712959184084553308141227127403247274564968230149755300398174324469470816411236438689943711915958404644507662304931684386574278915894692858532610561240959834827391858978243077936746340045998223865611044830186801561137967217374591904523061261198273596077061954062198225540382247954471909563947386854993515381582926605540589880292596807104103382499091804217550231006458854797595157829342384390282211637614208926446485233831953688798700285949365681467472822248969207124727769024212455895057082155246865629769993676731515401521576547957204206921428941301449057078213012724568630535452183476336524482567431100631450395247734080859277034481084088566862555840478127292308552952909730084297209629196476517694852669804849253472709131533120973742019086590465855557792840876776085911192277918538557757511418921386428859559190074329079901768929806299701085098960044164261011652643902811813482873780745142024092063130956318684202150657300558103141974761283518250833561231960653524551927984670303080828129731134487014348653867359534978236451814670890138113832676378658695865567963409878886879476354371202437987926377423164968461036818332893291234689823170039628824960892537232073493001752980027239511820514227337200438130440396014778218967687392198055020390393492500767798527513521362261389795869299663463930351917305998921103965614329286827020346747105312988244736801080600641436126978242688942328561959352186833167249236724101178001120920785251172260921459100878570436002853659307525624107194671077256610385728078379151704287648432030842603765295023704272980471155858327383046254040629250371188858932491020134034131968555157634769908759963102584066282087971350328758950514343648627779426843025538719225036969864584044211937230595392757415227651172791066577405986005098410881469849953046309230956901744190847979999318696034918779995998760473419559575622900108523486445935712400388135379644213745890670539118052155247484116950183402960285446841023222911172786552973625463548311738202261110173895325251250981624138294852882789897241240834324927736370545936456474742657316028148903549288678809233396057080673948154129883869162458559048526602384704513721964731097643160367902167127152787311283511791888162339824286276797557288641386113236131826981273578822627871907888389042746715710058330298869469328446940741624330913199166585640401554269685497114489048889055751097473413407944888414067300933818292157635789664394449981693652646113693660415338688472478543244611312428060027550238110211437457588671733572806032245954544922346079313445013028637104925464733649558970030620352855807090868089551609538625140216978931754604284135154771458335146333032498358262891820175331974098667443804667248601672777916995518543177043693087889104952145314188205405426103892661468411099433980159418089104235876143837216801971540821357042998786436668199799469766375179360814761630506652662471751348172851965723393239876993012940027029178470898258426910595935377660958994310784386867724169507509985100842592980596915869810582184735938215157051301133319792768089223383620175078276632267774114656006718304165743710770727105139343111265856850381468742947182665172266009731236558502059314533143535031700148767855823803877424277378922380760570529522623691445530268950533611862293794740038895673199076014636712192262145864616875466715658290014538398870314725046800756722770281370347053558560374866291581861621508519736837045528858897343787289028238435942402143972831057779452865610282939721663144684590122154772625405206997337625103535308605888453755179551781877108279872306104935424845671641675986312845026552673544914738090466086412611489049533891941360844378100924535912868338744157791020311904692403820290577242832359736494521869571826142259117925681223678452303858717472565186956627700066441211763885222852872869377627575510406106788806125115108329062847626845987513454382412543663719125925092885468411343662781328468775632700439900942333554181991856282508793617020487886572523559698795229506704061684935768795274875143518495651307007672343871410867426271460233657543210272568080692039673586543122266508170005162045495422308980001764214318113915367776905961521932984762592411165193243542863263671020072922067333194208767205639819717811827242920285378475874414111015028316238085088011922541246647557846172365341561895463455092349763452560276768342163022929231487132739960782120775972663753806697987063472801073972957914918707146031029131475206140901955285357988039796291818562948207131630459927645178659847261338631872495147492319595072588225210066797079439309980391888975734825983686637131039443236251241018153949830854005798159181803472194596884856226267734976111365068640893495752914118271191507171426230897590439926446188348414247041280934546701060495021030719749626716790736570034213922163229122576581607285955433486046647631512504125121194584649961779201934394137116586814942892746733453770307090980884997836691898492429115652389726327488328603904830651340295308533095846830266486965341219080436362003134578908777679173260970211664537942176637166419965303149733863230434826898961542713287634586211286998475936360595703732839072501250525240569726807154405187828903678104702665794045359476147190891793810182062064196037123451599260526481983549207108669139068526808395796502395303975254911520661064181272653001340713863746546126794419451454622116925004630139918212579064481303378458500344900342596110675354486468804033022705075020870447324816704105402951303075308982450626817293975212576031804597493562099455330522639802049103811235507562832161902808805354855416643535488909714041560496769675088312383967380486291555167354728896033697821679171162182699070991558445549033606033879252502653186859993746158837051348662134166201097461881143001146222218051864062772773049032339155729012017093672923287041164095780751079473379658014799256447536271217823824385880967465204885989823411076407453317923180080189278189623579051097884819726650131052183502499995958333382885943246158387070202193703534568486712849171911820390827615636376497183114764337367514183989276477061126585823719958837241264090386632147305309161404450528805227642832276646431207401193693710652272351801723605932767294070527916899200512926484927760208035422480416402587608883804840748763207855418302034392207081047250685076185300436459688673390328621473479981843266809123403683020103546367840777154197875522359500126649842519837374931532033476828769821771621500157885832290782325784827638416463945688773939933069393792995771400528929557559607132160780489370997368592461644001213306543264034539069400229379016077775561736823825898004495798691695060555416614530472643469651500332241650084033719954046943540803774066205778891946301754292990103510057034317469131702241915220460256398691140525445853681908149362831905926650188576772938877632308549366459271222208341406688544412394097406582997224254850252727389444150802585227037717825245523349443416606211317671217961017250433998731445380793126678349500395744278005938230985956974796926633975320197033352126714065936659682141491444794392420837985509689029251762449802814081422882686024709285810273493332017174756567908272122126430201277930662585645064172266632818424948397823417312943184097486110281876435863319861291439740336487144670394610872630378126960370650422662453120935653955420803642078072427594073095735626307786649856152739239968925152675236650485801897609513378691791846435602967736633856499664153881557388741170902236616243278801340452204623131113225923654508454531080968010331196090949988994755275293423940158684505052305084316394174383024861961692554052789957360137048416905078912135468500960906727437433976810094176297537351033277800575479043736304513296634930761492421344930217517789755812991876064356941892383661986509900457015728308807905948692503762503990261351704915293599954099631332370371481343670301551540743280025614570170865422901279794760167070164055297926325491533266958259443265696023670897072403950410701822010551832625624497797561176366107178031132871066754857317314882916965018694518781707908507932799273703109172744320239541486837752506351436053937854687545952470152860508004741892142813086462040677251176677001784542881195133501829777788487864085533321770073787071751853860046897633837933975336872686852085302569186986458947864252868127765239106017286016402954369871942194949883510032038860110131254729616136110631907675355411266787384632187372341118551180332462467553958669739954851268396820352114481916490511325198745981504760046722669428398683662345316378735495623653185948266100258304363625657671586080112891698253083734162408891766201545013212137386734465093565763922648189657612103678366399101227325782353563309592928544713337925649665185240070351699725250016195828254524816613205031510732007887034305128878617656335947192269331594218836218365420927800888226669713855524971624857520599480133578345079263642753243877629391952964616555419799181569546388656847501296072677937105256425160616538845156095422706214077585130047855753824735302874104367935714908442179510759120840257692416499990967895388974393416198071804411001364139071668088461395938720671946274453163341355263076928436868739831390694908034542356681375181420836561901772040255269430326988829905784590542671238222163716738676749010750151852522494577352240157811734838959307739759958095418750492281642386282732859571498662165286637815402037006396135860200423524311487849341673968711151646824477591778105059275586262176441444451390472469630676234576850639513559764255399330883825006811318066700955506258804946763529429656572489303951511136911807074459372628540134239718030679044223709241025904073362484605679075239314273089855790329349467499472906338833364301967909995203392875235841475286535614978790524318727257895900730900204559341233063285604363856502847514245915045106911834200057052504763454035600240815278753973320655582539887728613738574503196524433608044250159829933304813890155622209120414308143626778682360466384777675043878351047186555932288651122363223559098346148932309698815727243859995158083116620185163497748592117598479477983168465708053071133650679621337933593715140045063490677333703258479953854144667673157419722247378647948441206769128657258423239055996322009330949340082017801974028592992755812749228524058936640282877452929679459018604552171096154488086830190117237963727192596384817314055784383973749215074684591885846333260942257290621057746419523707523595629810557598354721194938635645192235496380037924245138029325041037382505868655185401673458788186953355985218454708864798443616893014742695565837960196964204669415058003028625655899671113200444623176788016925479249467408984139778854193870893473812836934363096302583846774947634783481407425130206259728288118620393379902854752493313228068123376979910514729889794607547822460231155160238730832782166870152348615912504490917656228653773037686358915899434674857314453480665612411357590124190397464562563379264857513547957291567420945230579513976224261512617238619822718461499654774494894239900375430325193917958298851559404460474338938452764648324783156963068706048870438445638964610527705958119466098926361631577737509391502541054928540494994337737983143124986332482178813990990600367450649664114055007728261807491594894235584137208812580648569789459359431206896077462002951231182419778854677939232897337031025282797716374133068093004061069719719327053617549735147218309515372208589107838217853168464219765940527812475749711707183576455528948452381499581071781253445139119368709319078395788648442208846162363366712399101694640710901748755934360343922052282307593234396246601538215841754161413595143274565493953638368048065932727985880977648268921174709666334559984179340662300097320713370162403409362567204099734262808057591695667167538107844858060575332607237932911723856930285411939845133973787100949595240736291801696413028739316497334178464924947412435665063360657004074443094488608158560460476151624908342424876902039824670818765005408424718827817113386537277261388370563839261723182690689753704720004595398181550962740323635402450746863219878508915056113847221114596389286402376735857966046195598018470507670134695825813312146934723416912602211045231547002021617812007892950010440599961569035453543215668180293112883684656293193460556569301397240178680741445023620298481278080853592694904196683159925578731863206732742280096866623258397461276644790378908254646530275162532699877739855223269609246202689856962966713883771039907916132562931707573548499131157638069055534056343818436287800847154801318942152723798732813000861439632511772480501738052098623479039549354206907217927963936089030561238444014691560203388839417182105911793529783586503777185457535465838074633163899279064974881817766564723238955413169271420049117952928299437625489778530152028675081434523669423315252901245152804597567525187560282304766260471967363738107989301701171110547892300599401821555711473880627581502027776240704239175554587374796026793994574309230555681496428719493386712213696607725213988923695685730811886258176397277719157725995541469586574258290238290170865879558215793389494729991861247427106067902662844018093737660270288177948646930493694858329448627515267611599637943854818553685437801044643460554547647987374604712599499745094204934835724826364985171418208311266912828735057193011472155258019186859992895716096749378512619596037916573556714242606588064772968621601415529000987744335655478945823331316554575512724153942228022001637447113863163236468126909659541376093710490942094319354402419365786372756976438633899986988038777950330847387316558560345175309850957644538320085696288125843420319992189713019885551780595342399320046174220794280821147652975894363642429132325533501163844593967263165420842286232255935832093297097246377480379700028403403136136388605863230099340861359673298283015891939206765940070353867848016929185414426867019004845849321253957847090384272478867660451487354076756664470719151577843082545955838019155424027148977151041633161948795851331549975313511765808359887113382457334406631989920937745561669437736810012541698733353080294207686239738313161682271737781050826040625950393202323016799761960867883871903675725635699395929930814444562895144667122770364385660929531825517950446729802592499333372881394587301742218005761531370851691095608612531118283400436649425823217204228829347065100214023458449286315271794149192116794260828427634320496294610273605088339381085105487581795021940856854690863026209072702258316519042542472456533545799045303711124681793363614589931258118751810918884578942431155411652045621227654349800859912433609178253688434173695026538877736458132184123184410540248054532393092623700403395278774804052032739115402400080685425890179216264733171009576772504145636086065085611128944917082160601325262015245740063408881053078886864881907699280790250436741669978545368721057090220077820944664285562700124248153479636000858479131462806958387005851268380694856530119245311456700954409931867171511791974711149421121392285335980152924200170265996036032249016221142139585056070447511364601081473691674895270470083507913691679904079797236591104187163366309875654448948675498476586348041515532072250442944842193534913286256227468299694596718694816161978527833598825532070017901846480542378554742885647485525545208592828189459816633843048042452655091766311041290254027047091480256859922961205426037837429240217218595038555718275973572303973743546889408823627049127511479515559544732081332326649102319163261419328093836978490652053082008483736211673608565163664118934824286908468880668306874410006542762520353973643006391904959114132089790511067253529623043527917387167227127257879982455494438805237288555103727592191413479574824196976637071503709307803859780882987544088552818797483623012769888806298479704434327737072855780076381362356117444135830184159202241232399997589810180309434652145721611038841258896934312322752110601830138245575786949769166150992096347326942313617492961624498070687695557917921875977389881358921764893253857819675213642965674608846360645486828530152012461913092057653340150453079198015668456983918248893976742161244135257369156290482405666352142399480294299818246014855574373841729836174375011936584130484991096564022362133341708954050155743161542561660882535206260978214530384702470365084965456402141783977101791168148595753332983714243246145008650689361851998669140098524535288277905977798535502687428928774010185132358288776809444516195640423978675864518280926449135420482798026117437535392318807631704822690486121162067489268236845977671838678584788071639376968177189183726474241153388036476337460996765029459539514028496887370809666697960152513465997971733915385818867872191879233317526457047493813502979375634417415298849805708819190416054291932782023539774326836171813392847972176730160771228456797051301097595609239269017508908179032672421921445461603504427877826927752514695443416482622068931780449713318599118648574388130564795940367691819560807578388293177582630094042710938471853422583168786958575183078694225358708410596112414252445712369826306524903040066553506085196168225504026258202619119653013609941751082179735864178174322895423210122410127089903737140690382107303471706648907463745457281480884831322569843052569882709276191802314362404891225238646987312257857053381339152886090480938039213867884751008998663416205437274198399848637163280934823618487997473586435748723036598202743143121382921436146696823914046389636320013850868948162055250331274959339879089747055106770899032585892121475847264102651206033092500884892431251175488264705911893793664323974401250342050149014426111612925299842819201501703345822925772164585545459951446967520253401308290247027903478993054137997304434799601432208190475685784304571387648730395742315045844925870965884371792530047198252689199961200881761019263254440420266427345372627741495854662590528343744411832083504325337386633007687362578273117866602164065996010611255578063951209380791373199632841081967137246500050830601550031904790087683989093463360751861336243843642189125862308540110167487982156830407365797012041455104238354856874219507856162561046252398214194695009045518237157346673977475885558076855022019715945046118000978739697231304772123004451284435692807062266572429579496008094543746424729170092293342230338642034376767418954087635833113535604266515087379327237754315266825095432638995749576205254836458827744129214410686574646883698286190382910167173603874733042743414141239259265630566966374670307657213422400425531435528603131121539702901349384065897384638538660893113184077395030166189312561988251504930492003331558784248155494748379205835867599667072160864245209520691571478743524517739799584957838285865575043947092942484564524751186119695823237920777111133439020427434655136246396811313647098438172180123491668228493017786881136678644122554242506834040963092121724942928432603141503174007363292391112096421121995977139089970947132476379086862079312683055084974766342929353218159625934204072609017455298538450894231537362344055597989078351443306166807480583478884076576194300475855968391654935420847009258157952001372516731829609137585296001647378494530612683963104196228398319262818249875001025209330576820555572765068227666948888293383596237211320648607359768082486826081169365768247856337609722259529324725097683816722111617544059068016553285076425980790264334250872792495222870811737677287153284161005852150361141747557884134512395587891907677254532122524989417394600013500994645804844919792063831040700353974453019609367018366739126465849989705783181573098700509088057733516253654593034418499111245924576058603362310302352906240905517650096158917172312424148201386417267534665128206834748060649149122960596823295489634718646292358255881434016919782155678431265612352646069449893225243755154879831237397971803639530453833560288877121549966281349449293026408869962786091354364785830049001990369122414622399152899291378298395150331668623417222495048199964351828192741466943203335809807481838957529123838051131304252750638533647306109454211036803189540921325052398042363361593118350240464164141735389935057075686261339512090355271556428276256895795049929229205079371473270552356261776106622064943184939620372581032326953061571735162966125593156364622023816451634329875525864802721576519082811931224014303522639981370820121822145346463232821776383225879138075830226144527974144850364872607893517400827189496325141171696446227831602240789583048751891884772957274332286828302645865379754456641607012357666901263007811883742637605580415201900498900183612563427067269207165669259747514134314453011346979731773399825092317956484899847970947254485433406381267418711647871334835959223512010116441577238393192571391958221249119490492989056920617723994906337225102249901017707719548133690642427763669536874434531563989389732014948138162438967850723377653563332054256543303469733457725569903147432820114645353514724552840552583467787590754152143405263255009747961025809223680665448351602527786827130484634331388267047199956140905657801993048355070194090367419922898480561630795119412328937627901567776048094123588486186052262741013875063659387505947105235499938671691815290061980828313427567635764431344369501565229662076773993122549267049077833720693815187679007637941922000402624811105110205936761454325133270338321950635307645416808262069119685311850759704650762631588985571282602224487948617186927436732697629162077663897923695569716843049081423056665966884477047689353940748768919889675275815763002568376090521638193113270564526047341110799210940372931404049344761048837107640060607984949139466304052337748045553102965969771895514340920813940763190501907791260484611302137065650985260687439834554090181193702591213238150332913639270287892311449531001575916076005269182330816905514738101443900745003687993063484708696341310085862582075287755343130120727321033916259986508040767766547207857702282611266700477400783453591216830505549455520958448979239094696937088603308241363885070696186777752740331839877607394545472494073793442123586870676188190263610726083690029862363047903522850224900862152060040544591679750631544347909898267791241959593045275922193525199372353921971514957337552468185053758109377913002021995107217890832888411677666143056475097196506879275383846880652059241155750942205685952683122758651046355804218448448461792731577517098557111803120482679496107642192627535106032617582061760605471562638625986322488273491621405465113053221144191337530601158427112684170238499324678166248210859271306097253749310834458121530296071544412748846035902102102955402527303356420263106088157589404126052302291672681051813127076963591131658110839803407458407854951049864709316244640609952367070322712678569093105930961365245677962097344588313285404177139919374462139891843424893448003316109041128875853665728007763948092847666874910280400768199956181602985901114775098651631924183400367892294032234152742868175051008280921955394942389574888684929652436449053254751242592457778882963860826670957080157085748869438912422844950226642642376724208880501322423247751367148108260383057981354482768539071674937898305559536098690885417057222123853415333627805149825329586114324090718269376361861732475885840034077604923993536031423316496076513823398303057411075407575802457873138189908048840854026000612712374119267096622818657546892717935967207561815710402313487254436680192748776474692616643435405826610769913686540603083317096601061097265857420642857836232245124398104614725654778141176977169040649412489968225964592472286252302453890757121352228816965212641388121605990831053693738576819318258534124915026190884077955961374290598671916718415560911145455933687601680539089980530949986062000756060578287241363570782000684290672531136249947910314582309515142309301977143921682786722223100998555907576174953959729773134438265558757839313432525006756040371032082760717616305748653501533602669193795904942214873132296303330703016030592635302011730271507748704454763721373115440259254284724929278124142574699870862262591658821706479896056152356914534358135979928584086399504266067530026824523202087319293446765791337664180406964576623281939193799926422496097794017309109965554045553584163460163257374438910041944753128756879017269264261022959664385810456490138577622162274564576529700476535762870770822786049702392764352583341224335741246741055769860020191151775347116248088063152570501410564704257800077189494228288325713391759166907334320056686020647552044245955064257150415441531318573912199017837334765666910606084010608379686206942464820000302935311401958114280814987378546299322108115429226613809241112534882719532680852540239998514471531239603266214269164498878763934552642750768525843819739731768050073841328179390173281086614701705493567687167988955845002395853956070068030774630771837045195596488962154128120250748900832551285891828734556187587779469578941781016776651318712304745524604209729461250694408000106127435631546990299089553685670914846881082643129514858347693241027342220770808475253211798771433120963683376986839728376767651746754906400748337306129955592382349780651586031489434219902284569559676559237101930632949063763445675999397798122569260911699692718637775993963655069510317217259603671614965518654167754022075244315582718500773833669708647894460365831767369715361922998184322103664631835637816214382434820737366572113367375864635666018348159951772403750416753907666758259749566179440755711071504394124956061747539749740282521739349304983748843692123577878594008240820149684067212241102787966079912373016724914241776623296493184199446685886322789047522200850462295520374236611838622062273746688037968746107325533838325611819339836698623275934108781706043090716389109401695893139272193376659764675165914871079673005227402575855592787240439453614359119731426226710282512349917300643807347094422023592160644927185776017958177398198789694019291169247180078419733048807961101742884787079536267797936266118914852121769524153165458748238050376537453878871743037274541345688630715954561475676652979788932375448632460763575281737529257346703516509454925850636690670039696082926323062398496127260653867977378468903850438887249088365532143100457595263239007101027254290294816878179746368756698815023823288452859309001179736039257441296998165555660498948075215595304042855294417408888393328953286481694209084036406081331190065582975369094097573416781379692210882020968925699575833695243196099488325285621877514909629773281430698881984590754882994531635878815228502841995908412264242030664875230744682179809818364161438555132022728981907438735003721908497273738533780995442442279786221297133982817085587585777112205661921389015945161768400641128244295190784522373787656532615271985310224009881450946428597101652154886915834463676953446401847566537604357213477668743048367060384239364214337850640588636702629274329119413570363295386035782009838903119308042867645816952650271963520843823863813321725725000623337522006442500629151596849608732033484933700334221308080289664274042922293431329998963132187086934265781734776598662787215174208827125335142236583629473101519080429981357101905042493220330774849491716424767993526836019933511760565370601985959082274966667378694482326980120901784109554771661204313337917499064019402679458507919343991130187710525623528456180243681408609137108403425426490160497109387764471834347448578809941638298440423895520533676740352289358118183591503934452220515062099983673450308397593254450134872592565437011528973789636189790453740422494789902576141602277838146743356479008324526672907613415331005512531674179849274303729111923057132628436052375870641188138128631937687494667711959699202443065159131447807794153199879569424916419760554172766893462038366125645515246608050477283790958495414997752152750875740742212319530166972860292581262536916906156625770156991354414270455750618143095934608865355288245967726899217549213762047477553698734537778829284806647453041731775310990376946430876115938014906356590785548021658209892559957824063482374037654961415697827568262755098408091692438992265431828519077177849146487078729364487685852322756327638643298221992722825237501842867416720284884531127619453995622215283484424468304677967197261890461048290807342947306530973243288735886724545089604767149422168195815083965411558584346772638104470049338845834000327223907222349294964824234922921593916081007667010460915161805769768350959187664099908239114633689761919463247597488637768831643196566564698319544415292127328476412461232112793395256065486681726803194784074200543722361208601386562835872998939179041823402709780018683937964762313875874742616443519469391534027899244975176125631324121104877338935141163146181643229326135037389314730748563871878801006735761478428077591237960839292948687998490333414640201319989842857287839912877080905964681627860221160479160876279158207354948131693755593696324834021130844817188413171967922170229896256479514365093070025991244155238542629005191212764446078236514018810119287716321155847500578349451663137646820384841384758332311748155360382200476891148503650616826844336206871817707262322520910278907002778426353056581600037366624347368218650398028928960317257955674912541802404669394294389144262550714754450890010364176561044951093465513060522811596671986406865422144890831538271464744078152014874082100411176138342156902394164007619708492166123426206180346016751136161832956749859622424304244422806850001028982497078402853849660977896852103002206246108516002730948112991540988223270735802976413621054759265982226812733890836355486466955322656895561275215748157199657290711686908855523091246493092398813023101340624352860644116881141868071774120246782846057769399744039148096194496707730736970095470090993585256075657304734628036634378212535446642101921914003503709116247117327174496615240180384753367770019025089395448012027863408028806647383201885878557732524174710326025081784454530555324377117425646216032305990942523154328227625568466905129087371021848188826320371805849084246304370888668718915097294760719701572238948721836772954616062530773383062534864361429683028651419595898967993203942387312631661356517554801352584351916718064597132080769301722661640247873777960075187140246326687963330816207433528970379627433656063453380891975771726351287579959181312203422562265946833719566503146949919461206086273283969192953101558506491233250532951391421674497616761459756759417753337360685161710403839886949110013311678350733925707513502019299148362529006378058946886895120898992295161511164772079042496996184469242090409511998971316048955539264841969216167180798277991073927918191982093069415328301047340177840844319031305069383276818079686744432458094599365377990310907399216195823450446141598638939341477693466950860608253525716881817927797030697492804112749292704391836315201208399518416979383191439049567019068684187218062611324967469994676859185562155318507829440419956810688734281973645829756760833077437893959982381728895236690628443662472875416531452969601667794452584437127406300792019330971118397626584506334950733722662588587336509606757259026586806743867180566177311583774787557124807339444133850537932607075474430972864058603642988175114513773265284164881356483308849411353345352992074147992975456465689002330893187219218031720170103356828419316964757014756829464943190966816813385224297566829791642518841965943987039773521476631982623122308567197598437543671458577706713595003907526172824181905324087731555447444778704691018503571332916880039396328086031187218573123563603953032370318380971189833298559520641788065939778292086370720277311339967242392108683359295628904668309345197922220103421329182914113836437885124513255156207125924120384181914496484536028348917028250717126867411420697703507390619053312110280407865209540364329332438214969390021990722320375297775986731166968568504306900428663829133904339264468760276989493071840040019223095530214174869283186589203332813766661623753858426195722035794359521132712696839210590286737518580707509914458841161882549276709657192596231099018598866286951245655592481167950081935526479249515071236247841103030227936767287470095278363832570617262514361205880975928718372910257291270917851698520898721142387803334943460701507303860558236989346768417323560203523629673448153729685502716949013605453380013109418861580779862127850370761039922461380579311090012856638175264280712240705266507993385375633244690914476784807402886346205146434586945430939572007250730889780074756231103253725739521328079273586476659177749851396980494652204440813044069911125710918932201330589475705900925152035029624477078534089076617486122129226914041999137840557290297314661085490986954697236010227673549865390673924743587785617525759726038742904637994381479480556297835732662773348724683009530941791597413581956173471374866808823457569249131373560914005726478585373882431746233415030545509236840262757832752199956547893142169684453647339032031628776004831649147819975975729818671898563957006968620768240089963558703531584400487261379965702643715881082931174520616442973012916200636459316253517625837950146002929163813313514991181131410763996889851010497192383293131568953961186416842962591619158795059086462166847876753729656050538143674555491948270126373781614935196197909773301650384353091297318703226466456690118092698255157175514536260636780090992684523567056049568371725854851218213606705589867480502497431090950756517791900049553890308760898788367073641005293079082585697586616335984946692442591064428765725840187124855626766679227915039653505594551893419915336224925994786804395703282984774777758329593060260254295679641983382623984246203828967447265750415438605959826784566522977673760109144439202710831326584117902297846536736708258236837191584451608548038174265355984994426905147747360361243872591014913540183395064327837669499266601865678163005507253331936212756673842690834765910799381506219839632936672234987108904739128670539316792692152502892689617395906946859506583738667903210438172580240623798851469266272153934334935250085483701819682116774346955428971425264652234171997517410441944520490955929931146595943793415186393390282206305614894056958811129969432705916678091143064653372430096992003499883272481508491783896527885652604807846089024262809803687944397445697457869388946030053943944173591966288946382591900824554476451263600865996913703700478798586775627088510024267061510526804964697096495405795818805456483854848040374402752296319752500470711378104949246821566797212375729212350481956415666104788716156219374087575814116367218227404335629085071470191452567114488026707994189782648443191797352711411343069490702448087262212618627849929742709813449971616144210158214079530446597987357182650609442148478919223589927782734442383419349915411246634673095385098621405024559672601640526237683488918959381493532223638958448840002797417972869602065457733382993629361902188269310069283721316351574276933324491323876840594919815784972642918390880203327575637629461805351445985696489761165478003957661649141503636154553542126034472279897617065634006336503785804590457700158845114955628274108402613925344214501971665496032027898927580105614850230814502443170671975408017756266999255172321839836373763156876496845196290867626772533967407729589148554153940446342453344626205465442641408137689196733990538659420700355163952359566317032057264857216043331493027907317641200749935592165841607456238131524725433822474753816718331287822460286111883772315295503683189091842245611638160086308350127655678514734344211618337515805600314256170298118392743619606939985715686090415069557108124818255928425056889217437182224517761851258283687946105831850390123138636730249599173233783143604954918807452786235478201156551639704134409387354012006491463284210072304967734589855088440178239271617149575565136981346708123631309342116151442449379366635121911658471001640774553897772604224433420429782126619930414236386001146372260404328467422250323970200828694912130695966315197935597344191744958080144353402182428547065256079308464669973051497189801811368874362484423248942468312764254558825937269423748581189225020563003880960450911160597402501416137094687393317232593324029333899238299339980416858955372908208270684599967626587323890231570011712140573229201291536173789692722722695287163928915765210505039627739648495742429763123439415598789149766282237109720258640732915595486935369039634987882977081304478056357119767765158996077358654503899461785366857460969612595265683669804396629148576384325861230293420034881991793228034490520762738813406437389518152469851754572234278675175570546560030741356365837249077997962568978289950410051082882833430485776585265039210203763292715515955149668291059133752623981810708829680865447557016035208880449889615266992669123953081065746118126294560584872361458538502408797840401121945168063177113302882145501942699676067026704699149625485279528276261049418542417743295138202487858597584946579340406582100099274535944637089265334502473927713061735047227894671381485115367222771930254128368465932756465494539210991290488096237101483691382632110634368689741634738583513336669587014219938229380001648921371875583295838443027141043815818947251991887435546163487465177981450819133977103233958286809949740273905294404879973745046888719828681201119154624072073722137392897953369737251788147872243665847572073421809973210619500884628374714509579906604455066131586018958122822779266519515097740774517877065962956473921349319520108483098455060181093344916787076191807855506659050880115812514547591707789640740336813822940563062945456015550556970365132703296044684855417423683382993625389355076303845940826065895766022295146060884481445510563275881462082193489998433886213449439866615046694073613013497358782642071739206955333763871463150798397560296041146206816592954329465559446656280889329017819578878138541064738470260533204602165980556017846893926241326956262004047164061643876098572229076185508001702518138596979859695307257775910853287241267550555035463065355000731531151951541047237994395405582528381759035684806279261460709526809231642132425341673336503034001564186025393540942053547452550437085557865413916451114739009553843650835926025988934566780249170249425492380929420028371390758794885403686482244932371553110789466237718773095781476844087144450807775447887579797623238025400883202077146744366204018848973031967098630904098426277691872267127089139312698522732809250979542306731746664249845114173974925451218747216359606020632395368113424868097115892904951189633458712324249398393271350630077197814132710952630410157508222149185154009109016555803924280917183086670776139239591077316410844473064147220400168903251675843633288155046642872971383447299341919156638826222048023608085930683123517492187027487528705700703286615326366109627241165463904584733464051009980535741153827907278730769887787052246490622624805611534288276560816499415083027951884910952204553998001225976380081426135582411263630862101695839656954474401060263642055712746529401819922723569231081938042673764319417008121097813741557956881888060659029033950347678729533106748611992478099425785146702752450795105040513683115244792805606328483882204627826433539763800928283397575139359642390137832596687016605106081262235007390293908024318599621039332521822744046340222122285526888046226892849208453311992212598324944433988314012518749917542479867614254061617434374617437119570760151528488865626986258611659633219894004699451555889358279565980695262035055915921671714900017746357603892933025784090379195438875732574972479984070290772622329036862994907004445887338776030577291417047654902197526025361095376828853123804144543828273739588141780493196088105325392351371491931630719589714828031457406729749682933986630860284956000388750155784071497086655412357473619472253115452991785156499491162269401042971124415364052668747946664806455109865888398363129917813844419175397514944433656799691615500772736661767113462544494253918335677717756062879411901253811396517169237655470392816767732752441635630520405730610607643403431869028160340005896383780332925470621528718851501537541233584614253551241440492932894683267884642815924092120838386757932779784371828022852536168758608269723797533796070070564676907923675402959336789575625053123472370208313285175213008522809445639900612694842069470842436633216054391989460960985067570027946732911742116724328172797396899234130569542425542019145577615824340496223448711402970428263692981101072752390138545152583920788656469322483462143829000579712732629479970866887808747249228765441221276831725560173723301386327553751105831282869713022065283537393468977867681079484606056010648831769112863140504568325843640356020317760480777429466170244773636910633827250661355946085327591241278492212962682163387722218315240373499695444839467993624890891001092191390025478773356357042430479219970603223024217403022478648888156100093025619077959070917714772317973457738234308544898028826660981458611202307205682739076839911531897580193796473445904850202484947708934214133290377072379570688891129691378777681890426493701852000617028454276779232810891302675848350385756146574374856479350388966165548818740410140714305987842172287724802842538431317532304952313415759639170733339117974929320923830019489331738790777561287990301420175787028987727378448461987565402180907973991897831927370418942846179379325267893526948570297709210311963408810421603526394576926090905865709836541352618026317335464807669765428019020113586116028697382406956818486055864111597604846926539865759154250358480063699942023764553644580174193072990461518913516564017633019363446221204606522382733787893390558453599014000924173718264382479496579429542671786613875810807244436518902756137734626741597973940883096110397291043401821307347196868004348516833610964300803082408163704170355877178691261131809255460404178575348990982141775807839224748122852344081833706874163231102211890612339009980699525307865262433569981304075594024784911916941807973295715916929365049449744896221204498282012272193444335657179681994935682036977122418605201616026648572743711918118211161963065543495665231078029105204304170959810833410819084745590983633174943669606899582635897964666512616801761951859668215221822271050319647509186084720089284985306705273255011107098830057067373712396542415806608549217995398630580911686747254686934654805010438762932324848933082401739530055210672977182672195771509726585556004208302633957984035574945462832450654863442559588593248235577313566507561262974650861519361779166711227535217877107249844633792358067988128187611486391102562151823439357364862663489072875914099337745464222416371793743588140210535435362877954473207530019322655812548217664428905616754076644362839609735199093179293951663888767217385906156624199131844924062082701068962889823494289777851315431427957146122425487648199046848069928783258910494479452492816749532284449715102671139976331284190406122650665228564265611307066930233456818324502304866567860248792415919708326428264084917373898692505419667224830193321215870188226231799210601706913686871105279400749576414812866910077692056125125344871028323062581578355241311140432267194025695569184804762346090120606373340203638037932499305972380816344048234123651930464754015204379599625088133658729135450603422614218261314887931737048863547060723649617825194543525483106811807383126577168543388369241285061179600296920701379931503716326979629372202453190958753404224683446265714148849765706969033578729126130491641618865572333675280705383202176720038133473394748616068675592817559087487651197112176125570784106685796178925783230308992655603079005644723642530656806801604467571952504301089778225805850069034051722242328892527398067170347227241421784394317908699973403599616231682759823597296612708931392632864711533783925981834675238446007549560223429185187081728947290723209431060494268408758615668144196175787622828092613754160770390969673177839924657747432445959496211446499122898749605733676857825665336809491405346941014657915017800075102805983508690044483483729177581788732272596528554564478589896848232902945895654176508715609485211197772599341074081007492286864437686248748588062775008442152966924463955976390193831550116337937733853503070147592994354163549202461370910108673945400719893514396741562845079281781196940935778053708742449467166834549849540513311550426965789731883578443739118502988226492120261403974942333773760358200099816543005485549663730973138062197276340655606281544576582026054183500503351925785547843626153326221201788715419289004230565440777121904520443836797699229881395576826297004807327293893199587454914414748731588816626165820641221745201872572402469058528301236518961892427337531895980960265183179385602980567263316399644892864581669075126780169142523641108065034651717718871376157100936398325834034221544859145073247422181926324464883954849653350894866236607275796588935705234524740567127692153386059159580664550217289695613133771093964558488504443766836588577880003344589251518517867553756993781954762819666820178483185910674227425882812171163573133703187597015201304155198230342201736169686185227810572358021020019310377618416054492320412646751967812795661319403971978211464779434887801441148760286867486818886407230756560339998719158915532988848500045320723698166767530685552742770500476959233553791317816830094032856978722869323104021189638947842063579364790364231919496481767069755309273396546066286073077418622087071596222366399736969913206634522407893153965438370526668408022413483082512640502461666940854248536086425526304263937445055850806149041818149674745899035368764949536545662719640659788073321082635093924769496806051155921530448105308225777372713799558291814850266960770995035638453131395227027643171597441642678134612846162679851561481085410368649031913866781011195467387052520770407918734641191580821748560747769071757534597394124831163469091632309550823811354318377616467492298155959785515131620416302449198433952207065074002709464246178709350510384118919816844435261333116617777749526779469954575188733908075837650965061792967659419294925198925628048203399977489306387554242076175279925765812468473081773612754563550287012624537415704122751542674371081355617640765680479713067239207756132373226275843794789235358753399303206651997702702540599329205018823492275922529492899830751796556976443540768097181116228151605002582136823228483939792404084755211312632705654101209274609311339414850311798170318178764728431404106399777429148150926562619847913303203940818611686382885452786013619362579697592759999971732697538627602794189452540447411180728625045292385245268942347603373390968959090242347601839326753208167828223979893622694928319688714892039584802945003224400023867125904281175784144790331281712503277691806619631141414605403717220841799899680239920699789855072849315742125512398595879263410907717550280603738282960287095395596220694792875444125102444614570061802507882177795245445104127923778583663640961528080379882177704838968342219072934915414466263848073804439994771546398908540341486491822888217075117881723138293367328639242467009366456318494065382279481341930964436730496737758153078056938389344561311800536341274245977975540920125662297542686183187335593902882954526154204440947437798922199750580056067737452970431744496499329288232270748502149981873456997665997172096560281467323708291407801144931090849843963275046437779099396779764185818676909691033982336262032657822095633971837176872300129248063745003629371692120784501223637888837163571129741287477296726482336693131658206188155999338170169110491196387125660571084789633641808817445540634782264260844865725439784979519451154205369661829799097498703071776855790400002190208007844541356762549241559791905773824393462680472635302625069026830687334009272195438399106054146629523139092103152681876546858912221038446205676389305104576987335245635628377013749345169921723413895423797442606257460912558750040391861759811297590970978131198878383952809119326324498907196078515158727402211056620457209113548459198090587663679796939144679808850078999103443627859344563579730562350095628367612406228832305033487339270149367372984762143180895692865335111837148099988300774750194643586793672883358230097381937458915542711426937870883052810581436156265459090371652442387265102691667837847783794558765928678002979133548480011985930948885751105950066699674143114110060803180140755162595907376000029830497991572558242260228962484504961478497619339102040305342283276712787921181871460375563137433564732984982205300074350963304841464018363511930060915096223957298410960936119068402067970037904063065216761738876023608631099413778658635681336617151961736312340389188161526011527395158305483186126013090218638747875533574472724237494331969947278967569646479389567496098885141355646796028403883743895253170529542518385082865582641553697974078016446532108087894515412360591851474017028904352127139811872386828513636379082821963854868753698626668493406667198076888228806249978047826290860346583813819913343974548493724447685748528672434174415162214089700620251166320601238386588756308161743269573924410798931159114983270056478226897785513579839972826480519655447946259758289316426254667731037632099351288633150413818000752964709806332814496185995716795302653957139066457561279755404138838973088534375969207358727798448764629976490829864017953748377565198417054107845540106326542130483679628158953018447471369588081680067148197339535643785468803644082322620315742970048283863194721284582093193380971288372139197204246799551219499728428881899677716837153193955337743857331197440573424075382674987162022476268624744558637214894674345418552593442765562697638319885909865741282022629509393261528311678131874300954224944965241733163654504795904607518218206970908494713824546058340340469731113256248768464080899273663557142326096412545373599260073675514933223384087824708436745006418047348943729603935960458362590524231652263498238996420176947860746157192682128953766759078472462730475933792624575924844559592296269918318591456846995719604509273860580323750148951805642712465796499609894833027056537657742580943660240339267853014677756425318851390720218902147691529469146347270734851868834662794027405511890910909259789641407576400883293787456097181397643129318400579966218794588509409079942544241573580353725735595989771273878113768835797171110806920961056944330718288935869466975465639591661380649324829363067738756353604872006549686055818152198624598203361437965262480252109278810106830426725272441356081767387574445344607074054399095957505196970507100133360484088433419031538573699419979348742090380735795168327986336914834572989532591414763177057060153955358185169580225406795109868826709371997235086349333552245871210773994875531642050912223712704342870636962870469626828872528503042770880352854049938943865832137365728932826505542954515531362768999846713768083641536767934631316386846869366067850366581004045033739987187458493322612069110148112181558621853605465962104138226255193662686104168256272395264522147168517076965583411354172056164414162023730279196051587956134860687432110746067514131671779122644252762702569902589325144364859152702977937400235132818507866158838374643130853558767567599188194004903871602963839769970596225162302505681031770994173498262764962563256647050123629574244641036075481409910394918331977727295200128623291026165991031982583870191415888294625395722105964137986995406435267986799401310240332513841365866748898623384924195275181342729460876635215306785472671342742983965561297294991179464401448144721026526537572815755744240318529558892600409057077191277813994254498613786924818590159163798638129551560277336734762451406453457842520226265064373450582638339187797448045470776024791648805980556498112129471061698397673205081004679764691946447473990541742635607326590655496258404503033938908281343115310575033323000411694418023490660719839782335463159943804307950839143405813496750782123736531102692969732185211602612507199234120340039367693276287735806336868600229157680390467864089019924908120552635202300081892326044989826865664136683279954779860900650395706274174490506070839272820101414447516367637690133650196424004373452027229680877346036048545082462430864821580465573132744668896334936337373101116998137146998643820817695515197576028526017524899782526455230802744357101123991057018088040393762508802853333628987636514044174903565563385840334301271268632749843503241745817080769895612912522344267549142632331834589489150871055920445339866569231213316867984463931086526728533865781676334253731085993634726793122713044166941759591965394427079297770071005428382191780079013049946754137707015374176983906082652485037932065844572748379029164884922260932787560120317817421991222554712762369890042860374902699699697958886246490191102603528258500273679778538926176388194382995969410890673359519986542825273515842428698680602145612608127944596689337583627452492263300567094055963005522751489197321137053849181732754955723022020785375441992391092580750393406979888285228911896114095623849502684303205481626645907145959746425172587022446892819526332181453379611414422394054667031988389439905343763945417406327988378498263984809162457096214231380645279224035001763536152167868731542218503468950213199958596641616695270866042620474072325013533537404473334506571840154545201167950134285762268332743597053675201185845756740102093952431177726085804294216027538753549332883172629298133125273488068267677084979052865799693217711384718597042931168335795346076741064944756272530342106129138641153712091155484406077381225829423712218311056815942746436294903987650680992361690697603622345262073359887856653766740717285242379711556328961673716395734026319994817283108734666527837746036152353188359821363683974956451182327859590115755397924599326068514751417307035527090189698651720051780899334381298386830617190051007554382538155184004263826063354095887892657756775913033308571355800271181933459703463759793767916941231529309437184786444352933982222637730197123223727084240173268346397961692965995630093815746783783333663970074547488757500721820468174103614003271705518031853116588006198003141780987561135777814228581892086220465284172036155803997460813037602198887149377680062861053965436975414906001295548363506555463875869019355870890700306053669061659484969768892879777250747568210395986222647891597074999998604522985108634162463212006960877724400440213955157399671469332257147482964040880902041061224531932344960513500178340317252295028472291478217447430524530315910160170684612138216804429844434504315520204266913534965150760361434963747782447605716537667770348888003096735404630344693317184970034387225080818015826805565391889332070679683358025198410076364478698826049973056222636985205428516287673507100195992484697368705128245749001919142513382589114304748357252946363756312641743569732736540325896616637306724980111586630749690855639131512552647764560121039226926350004799301199306605952494368307587241377288707345427263203962538355998633869305282636264700921357741535616649359109323816728061709302802215991983685726809397044898778976451389079533606051861981728909769163287695308693659187639760218142033866068137160177370520766459223820511563494434415928653987036948844213387704499519315954192166316368989619532999370589239132421457664744505055031851321272744513781233363803943668689988292922769419453539293562457760985337841774397880271384732725077754658094092745221516156516247270384910456399091369187027281192230531473383155119139559570532382273986280171579051446725587070322617554653073490844963023792738547040180542080574834627229373989045281283657060268050395046200119020454179452526858606093703665448444329503493308692518958205441432963477539709911526289951629635485245338558301104915500347989049691317825124102275320896562283121310132328904935015893247048045468979321266376793615350606259359349166854113463960343487726451586378190797534016482785147131282699281760450522777690444848028851915469816291123438090352537774525741612500748869941726536012615439913510169649756784574743682969941985576961028022914798191473253830985560031883341591315984632219392418894327300534824482851122413860270613344883305778802718336897869208778620903298178115211819865710559308776455601258664805471788284556082044010299349155729375587179188420450231435299531235131231829695279502537053906036423872973379169619630408150691005782820695401484687119884698325429089427218019712899751767805811036823441723666923587859091758928909395408388010077727917086310356016000567452047496872762125908393069956213067280282138023458505434175942924882650759794523538732974638351074710738282609729713603935748263713208845031251690310398336676871584776092418150539418395022445646608513917387456293874734297921879605240194850230977728933409530843003671475289391375937650424112935788227871968626576198105573334657937540796532224025459301275068616275297189211329244602842034959362289680054858413251821010497578473388215388239905340898442463119126752744266753802209988419890879849836272760639195593629921513475958652366141930822700594202982091412497151489564199796898541438383955835217644192621402662221316700473152622687904319667164162082566032320359732171196356616742010546278374234861863209736540473530129074888878975919732667902109843888017807307304172433248146330277731260837274995574895173775813462360140632565468609800770951719603219349398965452399538928489440625010466538993475847908878466694178420172464995119333028290800909177976665253412398628459738208609254020134687115324812161217093575074708159301811345079965007889617303342276557183617105482429067075220657661001844727951129029741895628912031224008220265983726731078727785799867172818206723141704391577660636391334471052452663607407730059052069432506914257863344503331458007092273545785323181523763546900963040671203807401290902875715610606478903088383485308046197182581035154736635456725775786069031462174169814751420530745550958398565733811637508429447689873598661193684123444563407307079342137600707994066496231182265760411984103341090729138052815854733626920403297242980384162673410312200956016967607475171018081131946305644487693997891644640164277607518357859973506475834834924585582905794754112756893849570320047022776116261487831872584186825720983842534255534321751567270112788297467992238671618293783578393429599910943909071965050570153429888033857096851195531578405382649682043292193092822530154176478509209632490149496206544196462600672535607227780055732353423604483345313372440005102303325299258757000704140570062054178482622826019354028941704468610168760570893770011983283047099622236755641883024838127353991090294775874693175459598594066433038471106207461411687490612538180122547685846222262549182256418755212798697191253684993319436137665429950874194785112459343810634980281819022701796433864045416200786114071276723443011114913061400142206217980315729986577017131901361862000235566251804607864246883862890749222989877693787900679844699639656560950688602445702141953629236786713270156634111298021360353490809769894339808097915219623820533845745335766795759903095981939871620431307212476655582401976902380921487705668146783465542396149937178155320054472766920276000595037555178624081164546404183774761203377877033950906885817104634801539942728003091050949182739111259082222058010402622620739834017527285638987041073772725106551317064743145510696910042744851678915906545560240182698335608345312064643991039623799781656596881848937837114982634506999693368150933380347159208615965503697006693074587364116572255328002147348972708435869234698642675389342485842298166880753864071065507476557608240089583908898757049172579088048023488923136143718559556460993649253056188148858811350543132164916011550252049350903843252015435276669367790648539572642158060374768242062089850136299208120469530260330630797585666313210260096365602388397263097236015958498007651838933531232920991890003795762831858260947516808049343791204255342206396498204434048250905336670118581233739597851853922326046494834606520631879107793595624098642249265861612114781539583348888560694247522823201566620953697811907368387648639159521788429123280186337800698945790498889714479772966460760040817230127905810460810040189658230236888046722854509745688554044929946286104615481292342701801017898075241009348541812161556716218348905588488720003466820437753617226502759393084619568521513848104065085081514752645653270088964263302684235099910322634613417709543456547912302406639048482375781952617726710292087274768719773902222657265033972707854852744533353921656330517745259772871869794248297199992263637008691784331172578347886801680438879465395629022629811734302393668485200615708615254079620883513003890913081922236444559361447678702108616889327998808709849720675054511430661017048120825827109974162551573334476484186964690980822483736213949478996555976084316329081580571989438804854713241568403160821845244177251384727322328955996544173866853689210087614971866734368117035533406170230008549840977495597636120622116655129491150021647656605268955845748425537460797716789736046842201157289895747089846266450227652837698650558360350851970508374242552169102536340681640036207697368642574380605817682272687988126775483844525663278128553742071710586395384214884976047103849353715505487385341811842389718662470965113529001927316513726803336846353884576022974833504340121108714487661970338873886295934079063379601622023795211965944219935623837464160132309633681527863150343617071310919207712522401538238722143958587842982286003448412255333507559045843477939567538705742252183961089389072533077700289793529097813091353093435705721154984329999870403321362097006133965330837870401225818063870677084841826539559586427596170698675071455758875426201489704675132717295102159749481313283044503885629152373467310347855579193982298486536720628735507005820296870294484361420188629929115960759820326976477343127774507830103631726989609660282008637972657372013873173061652377012504499479445051342237031623389835791452862688915229916187695584798267922134303054964524963508893945977288156193987520166987726252589023201276156424472644650553743885589432838023606715515333819170715817747386128474162578977923437819759322344683021716516596156246647293050861566738780088249386545600899174657496959095125699774395857602326046068086244989132155905781607074735787393670416754790623409385320911975206841906525606781021999313900659239868779691154808811787297410712200236722144987367889990873804565604934317902359767541412820915592942633240780618901546505153738759731817957656099697271867871691753421224901393848590867190112893956785272932432755527920343053834768728449511134970540045875787054132662502322146864113617504011973003346800116675672438635669996833722974804020071848224220070738432391084595465420275231796979378566192586651559894090612836108190297744152662265051896814605442870368357607432343700211108130632406103363335210711895401070923783571419482899447622185308146721152600148220888886076418073445626761746235439684675876370269414324676255037926691919273204108496829935166099636442732435255464374244236331067546683761099611616544529271817778709383780356480639160572657280493821285855653727052993148923047775389059737622195065428224943752308073825115323431882404239016908773860968029199615431139009382954124690632310523537873067042489395729191928105251122147616849586541231089704437466414055439802358589657223646376730880483388849911463547269214410623211659407955775089171548012827822143958942487265964476160089485517450209738666323831944012485857914155073264275398881728471356099431858966864707842561801139930809721113526024549140586120588999614049640232761357074676238094504354428727222393509675920720607678385404494095869635203083684438332285107244932899045024971545577821456682302845034947116960957726228278186053614854715142472520932842752693076593582422933365395658216797134787541479544419333320801853170366387536297203109823852387688598878920145207659120995982602203928718289345226720511545052368921987739089643275992068315782667570977471398177805634257583895783672849947557367156099541177505832406848127644770327560359436845467942706683331276745607410383102600955354860276955778498300984309455902973944706527035078933158379910908384597567798414753207936838201987174845593561803507258304229948773626627548993646650997588060161650905245475438771873049270855404730891272061160868212148048034013323600789968561097074105757619270484801679553978358997086390356244021959277764572916137900304870210835345449085884431468173864509505813853673782892674113721428117504627349512242110170000254262081663295579920319645543421602703944122712815779410062884098280152738732094365044454343734970327893795480875038735430410187580910507271595808080317470140104020965895058910412512121681460084664466633964168801249726828239315962142755483166053557943772706880358779232566520281195826693453014514777163426707543865579770066164321267127613445619227578095436085322542073534419017789678648243800874590579401110428675837864324496435114639690718571342673914864535342512634682849561015112561736730786070829781091646170919634606815217302984968674381231162028496736467703410114631275498457438292935478931330922914327526651864468343984520058592540030196088679381174038853986622068028699469366094599448637204217155847163334234314044127680536070740436321974022354545466672233209909785305000418182524820948500702884600001112736249626058152506146861846634180420614606105505454661149145857822038454369024102409584796000356927084476545976205636013470489613851535585857303217479957497137975300034594958987834731514562263759955022795709376459577476081012439446140723462301545323866027408375791558589723686393397385964979143023182137182961856549353987715547526354209001758993533376206530753337052750856848258307168152751503020578333761963979842797023043393501497839567631028657300492670099289044713359129275219196435441908978718028808736709959299943454670930241593478877617173634514885681554305595274790873591164843722963251179802660527922299373991954126508424356871791209071121769573435957337661890166095536322217136129203642368968542515003418020213725460817539244361940137167880067083180592141968574796194685659861043823036109755727676998926936971784981118968105154910314019525099350723770007674557567749096429045105916599833522068713409387822945886232183902256153802622296727042601927119509609792718849242784889870660014582260158504738562682304637537682611101190143504067423922278652329764928124325503152873874146402405721795486072611481761363625559107153991379853412972030650598275601796138016822389905786245563644373707121116109847903462766952885058491887349182004390987831605866636496936710762174653632884892242943076166223165774487009513363603642185337395700637701048202652674542630794167498881520740005801831418921875637272768424592540006409585002516095846456307971935134824773417673958088392888937835679405179397241859984261684794732617571247694985883883190321771663360578260368365357202370663647483263947553537501789776728627254455030243496608824141609304765892238744117742733830328445366834755284228107014579911666217738524101336861904669929916985479909928963507915760852681824419735838633653634500533987897680770842376264708334603468332220337733690309137534579827955063318840197405011733932463407531512122916545254980958443799356240993278871312051704425155014600185948673613000245826460693548631742988662714288338856308295842258223805503806629763944705647145370361626885480899649921220100379843397151504906417132637161153559011028213866412816209144226621675607523841765444093669872272836222509335909816062758018594990372902630587895265951705240183541201422953254094393733078953047884006954833333304011324892419451789818315161355060227941700406788341277871832755393065565693996166173899089566966576153743915831653926244412937093102578573852728777493627816952053741751274622992354788522645195473580731225509533716612661224133366039393221775631518588353667292344005238779610524109974104434782478429179230443656966744197646466030883275267619833912596144448947950163592902620334610728999695188739118042845597788399722411657960876010952164021413991802714580166557440732281859829416341420384791072635074953259883580677253692514590736500392594869329296754005826290975438241457909739295951600880474673501032044532128323873008240912281245938340953238842974179416003198095232391685271787997945628526208202124007715863619142808165999011573276891757320729022857656261730729335451951752238128941318850799828304877042302157661092085338482879966644528895475926425837218730647020442920609128132232370649612903486878244256145519298762020095225470337704843989505733158131132448969359918856666823471451377793102863879608804287641745527304116842615522041003886553892414115918416660511852017868030598927916951338627106080360167782020609150372004231098177440399978039561013632980138958429945762221736994461743685274166053723456437614644445264078028937026863909191606529795696059907518764140125866400241899735862678810296618298308931088844783489016609550546421763127104471784387499472536185744526365126969907128000243577880881010385589211518359767163599429416222696667977790082270136041343132377394251064822115937608767943725001597836382213288304623379204296676035868448634496121282122106600429379512508010165934444953351787439500904206453260164433500087692374586232006152125973141165720800189246782499309933161418776276613044167798986025885298985646985009921750477620528229516434485482737575576288143139318137593615903311373566906018168511425587082975645322812183643835100117394810547067670836777377095991525513630233282664947006620318722553898204701089874794849567908521987027211419801695046345928025964439240965055045120202205102127356283557712450931330694711822713648872291634763916736303957156006162661363645367883144128203104508008681024550967462393084991817884489667389216158470016860854478558287567611841437765459890426288264750288938149696150734389831979087164280188512915623997978429426322527496108792110367507934301534393197705929045098535747003549750922101030995520000283089071247105762990999691349913107080261198837486644305056148453576890923749431301027191505425491125541944520353729057323020177514610477085078942273955402283308556505511153778894592431740655359831434602258985717554191945726768624024449778331432260811417571884950218789915876622345145456241303922729566433817512857714284397485345447623785796821857770957876636205236312887511996768962413703322066726755496923706364462014486320179992368244638532988121522008928096327624221234516772512855801830604484301240434112080070583438462732725953748665225616900265820658897206137285134519889646317875624102455843480216437788050976156862980981553594079768297670508242571743743011920912073715238648597910973938791668415374974422983581748353991612992386583506361546575690896371159597034000121416724631128554440358641776582916839015458514280069115864306888656547172888394727246614928175837111394213453197773228424956022087231413421647764361481837975142125717617163793222486740725080031656164979801016073177087812790012632448023122176889518887396411913261287832889621508516761073751907345939963587187571718236134690596026412882331514298542092861419789096052554590968548149874709293783471112646019798491761601231888147734788062047127948114617636051757480921203054649816017211530977914733530957796472369153038424278528417346169200415136436419215414610997942384719588227355935338353516869477623648264774520660018117356560761923533036759040357744274385720729343321234286414547138567342481851431267140513717015983724645865578781687923383204149127148280548003147506324829177753644384342586968645195738643595444882833012905560742855669864196473668177471051861293719333289275264098082908122451999950906795719631033408723674572246546938743341059836808380518430386460254752004442411131290140713749340079570329107108158479584967484125801321303485214607103571728091670859842825108883747165657405888799232334929009359218431482321023358511553601651534931311578378320852718595135294549175095963352076236500283120139123759634440339319537608438274447550714837013782889876704293982836969212577380613241466828680208040648900568994906385118317611514818156406227957749163583007269476412240202292932648419000306572804850425723319209302899967323777066510001937323974148036028283534497069170969595131105423349511552301272509856031798634269301298101076565922151510266386757828757806955286758133914158899456751375019718295666570643191939933557719622238694114301145165512671166842897468260278155982219691801511283748854633612140033289707347822341314497571848873174494331546562772398726020492502252515286252901036044518125055650965237006769335663152664960647978335859241132595091877825965899827134190956601854024337965265462142258237200636505262843758002976935524555807457846457360886248584838943317795688240034013477947644936675569170630204674945286226990213710771832773757390796348380610867738107942660942226275284544281657454606735998329757301594612775196986335962107187190902191800209797338796216149781620279716121441280533486048215259096448091242322481422803586039368162181849405445965385117567232481011480553354265788755674750444841581086047978814972917705307083047382496665637706715515173692654011493560617288806278741846437076107250383057100303922609160868822041067228232092726580199625177932379301130617308471589152479060860405049291727543147363047728922532951322564962782835313092021021272352604997984730273185615808886496873835967550476258629159324468088284889777258931121723714270157441188378485978486403018216198292925847688653218530651965287130413432836727133956367203264524609354702109469517272603532734634778615676477303061103064915769396542289231889045387538992047455457209442878562286433494636440022268995759573672089283109640795078176134330363298040310164956674144220358453583942905320058150015151630696973267517687625200506475486730432813800743683242287586447031422732871611777567848052441005470430321472740021151967265879903830456051096186023216054880620335299492477381258761863729438184606628280303873799671949156649506471972330749127998705216233449221796061786128420302720839759576163813267604712010734537941068543930258651753765107150975195954594204040114361040645124733755910812852176794891367278400219568942433766240052222644080479425565622825789492772207044949544598537848638951867101502093708615208681809480241721375229937833805342335388478452772007799406296111871356117565807956930828439021179750366550129228517977048668536403262098035767355686946782698962386275343454305018020906215131758265588033337253490505677416921285059301856282319801456370909958114334122422437993156855910289520644989529910358055332068716015170744159206024009721766268891094610439208166113984348534882322908368208116323024318817529144053852044479199648385279268831864655666443233290041085030980012293454928061050045373098409898665888556301022352056808017428796377449180929721325760263731290358718070025615366805108998847027613137835777873503056887190512594700827045502773085629836729857740235185668118175189927051658318003406410356628550330020344810273983179084734635455928908619135685678225898851266643820240044352405695114521470848357707112975028042697566228488779964803017872973759505091088052865575198389895002426349295488448905964336067042459239476753226714039694809032240837943611734587612077716067170050829731102153558319229447800052928628475116384749071718350873830698708159021220005123446696745029739443386196778263090930996531236196948212892696697978584890874036438114638592281615475097631767627028264565907256815201939543436804924656180405886316519443815486002782263041539455489707970686062667521062155171708477917863676856796566219743795104266002925205835000955079915597731734863782748389093933923266661568865814069379101695732814117334913932112173333764880954518918416230858189105982591274953779243825238822182016845153437823584877308831006835965628317416155888238576855042107079183948246367695248435603795541310966648329239311535393145682185466250107164614187266624006032887536947236492783762891661871216250272096155529920033669226604965321420690787297482518745521894893279757516480770055488694619115126934304292353783169825525865786468413198266171045105458111648412126457486419680191714308157676400845562403780503155590296947653798076062507402209944738901147166231994690532656706155556592675745782977941947795659713376695278275466191458460597164034077473249302304728397760011540150303634563489619350759701219285929389956692171874803096534410025882173034108802080600125383822824032173910628025602842319414361748057898253271274103612921646655784396209938094028186761278499916872378365905396880538404056878461922808306349382506724539034682896394758292378363722976252134797280612042460741454631500764575458771324019706522016508197745030089084674646951983022734673768201111444624007039887532048538504954731734687108710001154779776102863124887216699902298602709556801023863755267308021921517309747845521719856144999810615809883733242738602842439452675133883347881149398551219137509296947700271121042134714456702543275632657160451573380866693420349504635489884458471251382664537640785675676208922066858259409232749729957537101640972066439238523508837286098400779856402262968684078148473305262618369966695988065392402851989044849581669185457670733458354065923136390194579498692227339060068297093746268813453774563719064131586124730320561500779448671961427824984815816978861794058102206972045582039012376532983275787155556559437140103761079681489808140763507410371369432380979158516797480399691194468878663526900611501445498037889828442990052039680832406993973605841456534540182786644064912547513706301424763164725005823967886316614861452847599931467997870596498716933880519175573861657871104808100580633050260217103797220694871765638730072697593528707331919840976532189974363214955214833927081255798950620649542424636672548094223601793445754443280918374913620200735661566975138680139131655198889606041339159729778682846269668983197509919073454917026966893656411870170559033901140984898304999027859736232662068514683502938927390956925320103005929131698519713108318259359512046054337855287199111183306615955808041515858412220923987573302712963561598892276961052168730906881325943921740816848853810247079282904048923451032811908820404924224366492381793699375507286742800048357131418806237463885275618492715773127008526970057324807157550154888780636934377354240449493715613047411137133856619999171651089292257828285823120039624320245582998462389183075470438846237731164439494050478068885889909758219915397433542907227517771044316267915789124182772613397545327359204676144480670893283624498879700804767205499211565827414131751146988182771189304903663415433934897054459329124946892527683571796580919650442471744876798949780275562629043534696380262440492347614230425796806912363994847883497201913875116643143163914880100683864309857173747409861510843589070237533046898481668702623909818358910223508198786623842915421210066498246089682591821625364721372747978494814295469514938433237700167869485900068782764480816348944824952186951620158121380153400245723386401438234132010617076702196514522021858090506873126106653824006041109050152340684279257432998499835757874728070205156511395132944976629549127388407762042210451046881836705678649281858456442720287450915275062265546000511947396577547854655923761872065313710360651864957763309277414137009352338103723379065257397257055134298840105970371947255024375292951390323242265993535838837757175588940254862658752081641235582443476902892186519805108684247055006477989095579379891834749213587002765945720410105739728655240405553975276992959771886969802259278858408810360911116128755182713075703715540453639024299582673807648905490646919688023466598794362257806681232698232933602429683361592311524509291489442354663715674349769081629546690836254246672184592338909790488196233505294536243309873996104824392775929565216863061287294834248890444124103313448897074157057320774880792256971163392368474176971447385504616113237899562712812296198363889817760218936617503153493394986472847821213693868636580142051636149948965810481348612562506437553903207097591086622633681359666315685203903942709214216519524619594269417908752116162577193298000553707207795581760532060631870267784076273042502071684826611031505700603423316558223967730610890029761110543558202046078058588780163387472645897021975398750517885276513442493060573745785101345238219870338796445026408289557399586532525957755247262023077158138704126753596228707081802949058660637464142256227770003156293281812783747188235704045605437936120061676966455593885523280483594614376244826831186642889411380170046685584130232453155901928246036669712068290702208171600516749508780218917873292471375187554027564851074883753663019334216195548930541799690340415005765213724083714341670466230755898968211434718319173979331171607730380372431028930983750756383810704261421100931287935882575230843449679555432171705880219080375177874665044332086427142824198604406948652909798498400343668659640589128478637774441472360130783317227250766476230617263634859218940317673697777591925349496117442950542267415414285259888243988542369608452229975961739261802537781628403610711253791301705378817673830398835893189679402014126972197119707022328997224357943629439412953155759081151358291381098877992549589943564901924018211818295697226053095640102866538355446267918833835407505430845788662523366080874644308863135093816304870549916992332181954202198549840602869469018742665386633955527507407090236316782854458608523460062996632715310718335554440252629929832952146384161684464556239567476529737603994400685422943230028858271822882461396296558398201287891198466161818813203129715159186219331523365291651213678096533759791220370993283592902462891272734761670809837937219370559509579588918554038899650548918794923440739204725760933965610262722311622112257939759959398477503135576719064357599107031100956692066401958126118753462173668971624249281574698990483052545418275518869680101582830353898477650091551944177044524740678131951262517639493359711081809137356497772926570268208434684885354519722808789257781400169802587709051872876475509816675292505890916565391536797045481526385522083235818933231548622923535252065958868354317163937295293479008720575741095672994807827426775403842670183946436225364130558510230392079951286145336294024213068454619863734609299106641955337939247382964083940947850112666948745961387612894518499106151256668771668976018200913502775733884409566902840530492090646688319400379792043135697915069430225135841315378451298510602309868922814044567418087506133879897240411639554781388979601990051975306909542291051573597442816078801413492594726216550044206604339741320762119153220907699194044869691620484298463614957096397149138455666481283086457681125115622351873322403408237150130841585741374067722487788060241355481246305254035275375052771673969153022909637107467216971982359621326931731465437696170287296221653648439890938720163510994582550713671140056925545598516666611990771632875357962633955818650305376787235717394534448442908496986638501764603480214197097506731763650918013527918005363495797356191513479257591113889466786311468828525181357778249529132290772105628350445136040010397096760617354589737837834791550184836956563593407015462931031937413885685752207253669523986541944694747111640361711205832246517582774926804776375037705130924102251871309596384533185217685359062766469907942620979517562494539070678308327775530235460397467700930709370030204110783648426537294249847192872739856422377363310166588095074189704315017260874727341207115803228932532953154023847263062320117472016743667155468567232212274398323056762998308388000167295889038074027177192515171237210576441360858818223458734568744023796577745089030037326416321509568940832961188998660370152203485546742059626223103741563574507392239757109666684522846238771151912249536333719023915393992982536867988106930700613235951700714964079487093416349946496910269570261863988095772421451389349087754840875505664403686369745668132906810509676706278265360083473043835509702949453763310469120088381258707966771583880537263397328316524993876187463907831115886624721383931990166171046122028003851385786928090305485529320914707285909627527099648733364938166348019161022479647682694279394162914759775392061360004280701703572468640393969102934195622887494205286169178147838440022882656234042543053911774460710011215397633686020624262259064369845786761901877391146974510452361964079619240390186196998296032108103786558578072226925561115928441103337834422441265072933397696852196564694866259934894830605480043892900134799772978550755547930571312017326986716353388376511082592379384804182556807450686216015013809587568596468882607521216554794513099846261356251105715496278440616227535803050846932407649774956103267885222649156457709461003319156014867021798818601447857942924212422366045137889912610545127760342046310954187646205647141950471523366700313629817598063930090556880536829513280802408034544735528432310248362582320247916624430365070013050695018423110997479568387182798243916372774464100918052059121850272497603369202859302836855843269776181625832528048758807461299666177713520747112408142504153013768651376272601479776808993796515906358470500857176298834608382448768276593863922307326140306426188612703943854744514904839445215279832029915362865260116919412261098582341089693784576996971820224246270961563138993013814850321401755045260867747271981084555786675403731310156869392272242936800871554194550857031423163647648745117361032265993957584349849037824276810530447890661796577069014721576602910767789657454585320225165046777442279387497382868532316493688246404047715416409186748571658088873211968200119874104393020906905480696706746196269907850589698849519400781989388359867455269622935036015724641027948912945370341375726911149555493044110136831328819966644093229235200997633455443475360532622873222363105818616470570587713503111602817061578246883075129283894178941541544682398101665179499501149057184785473305517670004606065252319389165384487011602045177638858563482550432371432360465575655794805527177370519104013847310781697201963172326362609686877695721117215039260070457128337952081757370529812014057539312045346170375825017666593200888835850734077193564999236425491499393639738639535888971020664207138714040578711218289670409361700226342253264166694368839534824856783618102875987453171953731379916677879897053535431154317233568698593922694532188474945581612400871097680596358816375664549661297986441848476034547224140627867807153373498977213061344313810157023973509324861409347899759332387856508608848057816835839284118942990141993300579294761307408349370174098675169712440755872608813744148997558592361253112579991384645992288102197530137664407561100198231733260466798172315043123147682756420309945804420220115412641739277264981548606329948946269440739206154657881105514981919281017396523921802776013024181247599844391983193049806174444329073605898828778358822038176951777321144258709970250925232741258631531122311932186887712638877177505571584318546072893505926859828783667401685995235965798456368400904888792389585885479264711946850055518459998647090549041489315726781155258508617509550350584764812654345864417666953291462165104008240868954327145241975605322927224466035523570873129352175468081567124038172501608578319736067136011609891799142418023960201634733780920813841611776834547585649495093316641085228636263940669369111519183204533259096888010932317487913863218225530314691851339970070305004062573595879722680489947648608418911908662504805563127820402902082967716889829419849433408332064822697734434745988559096367427174170378433968792500322511497326241165654197584036027246317083216851059909944932332377105060455962656017058480263447696212728595150704622113804809051327535843833660287254702010385890127667525785174374420760112425528656379399204801770934443253381527948806564611389578730144460714832656414601126482314980063581802125848296919064469024966570660814082945983584468941021466578907077352619836846557115662942433542406788372642635851451183922065588887800843615383286620535042514286315918653112089779251836145967596282451114053810486329011921656993537527506173092302486222488179570983032240766605587583348159555560645209536490770380868898325308755600421138081494632827259355444212796918623402848657853195026153151549784520752136890799151356639367729051225521779823360982643240298320025535486268838191165972376819714716282852670958473804941688036455759271022952155929976271839248688550266971226631023969381686113521996312092283615628591722722858171631583933823340213026035531021370692427049499874298872760917531567673712562845223904209688056730877140521108805642169663912917500575287998753586494270684871304468540614092616581873998605738645722140634078035731979247701251130298507163164070985361697654114638498855375481728433784067946878953936004753107748005301275950789996146027408457269880301374736587878244389512755533568218248806658748001101424388619498328790005231021172068378103702967899688013318105797726425456682306734110792748711974114868076207312294264188784482078971036176279661142788067319016948317358355254453247970036158595148838075225703169410576904480420902301614732212919467651715396262818561630944136799068388523859313555029100143950358885278293578571503167030258588015851591172104859482738657330346996593367663460382754642128504586671183507793278362587095546760309043970501754479628839350023562834280701241513683785865099703339670108297347944656989041694176020069445309393282680883288652348247170464757705805515896375197179581395027020795346399541434313632832274225424139384644472351682059558788192425361885099485322091360522565684628790414352009176929546365509980740785935242696007160176530122573083121899917991610798056048155962640806604740541241804491886262538205929219204380016162652519212454323407885483626441248154265856372122614238769070242125952504239526888500404696004010836190959869050629333269616136530125238508521800442552034388912305953228337167865482107196694144629822706908425313445915625622749630275510684592214418703704456644792007555924157264277000056008377282627484123243505097337563522050396265008020308274379563048781352457838821120301031944287732280752174104271111103872542077460547200156044549464633082289310012716237801532498791525150051288039171489875725781087512160281500107464455607393287218396502652533652568911770692272008343980138452802566041902783920267488772856162575898662594109250572600083419848268783341109133344778849499851651650603500430685475454629495866890677716145752624924179681289396064817275436382875696347501283928090400877835351409452361504904881332130726715479867757141448872776025962224770747081398697011663377153270665856208578212121706618146169908867696097476892810702419880948686963948940765401995308604003236124978652727463287819872941222005224565747497455399080235502759932734166062595566024408651120250435286300634094879261903868151670654253864097562623566870988512603886261213213969795199540460250128010638705627465271210860858193177961908406566033139532416082017215869281221316466461655214520915027260017380423231992165510856106399940046891711827355519796696401888976551834396989140053665768644684671840794663863787183157065825300458203596333387756691138833085915247304671765796207986914465365231833452526364361310275442932210898432726545312166027772834104579235445544410637160480461675511197021618160196663569943628129456299425699760985069512402964265863796572022399706924751570521769822607887523942191520163443797681905166556338007198855810648620714521591121977608529139474997688538960711123188483371432476576198615639612690349518235663548462892138803617071671185444565447110488654137319701423325013807129105195915834023138014405935141352156522857863049946280169961043198919419662156037723049963907029498928862585506393595485687008232580972916855582225687238422591723081620642355753018595586669651288777762569690377046584738747076373144464539660187067567389609088629713422428824281350258841624301941234499386061545974469979648873070810782389106264846136162763555013573016506664892943429930318582961593730670417604633226780986500222233933260994633772041078796907288792477387369810068993715673269358607517815385586038774260931459486324498855707845031971258766329297481925775508391714938703552542604908709005568809442007658483615359589640149302363769524955210802364895631393674282076385000927599902923586103668786680678241176398545738641211302458007816661104867819728861462672643508481186191035205854456642686919005306994312115047277825028348439487124959734942910448627620237484882603954578474651182171714507805801119079354411349855529452794708970460417417732329840851502380633615883899374235520526781483476804079253806112141747819708416240084298338110666668949029652845781162504832404603074759989843082187225979208110728933421748390757254537446187013679563206451261317950548319354985156089718677010843649093576917717495741454897255807370395175897718744244533991152715748373851758886808145922977646012132001013805120102914357516310932190031778256117999788769509082563002743190024127202595809100350644479040293813008074353870430353436974595886828565453765921978472978500411525637593512599176720588494779986622149670680909820126327556255270986337231527471331177501135980630965240398144931732416956906880537660176756379292862855665351635096198004635345378839565585307966707746541320193016703289087766757354558577041523824896331485252345073543257735704151682295013106280412959500702228781623693515233782703315153753006311107285954544140933652781836994238497472270610507242367934301006033720158908227924675080273544423313322608488514254904751412792127485550124408288996858385890939750165321022197241021224676961299737722857689071168410236241952367624685674627234307805719958700849995882917948877263715641632963090086896582698180644395798748021415270117084923960731948743196269323878287558290627307305087352999854691710183153156595582529566847898338505595953720671186167881906564493694001370299556881001099097105789847769598160097859908936577801890607706847822375850941775994344118857916153094562046424006685039029550936980975394986401633747091661018063904722454928504350568463830143457912592199183043846711784091581123114042605531380193351721356475716580609193521038884625589005830008051291493711409802169330714894216927022325987197158102111983282045749054511470752621554985153526610761219421776506744944859998610306422350186085880149935588078554821534856874407940499020664132331740309552190576264730507454272336674365201708119549662776715935979125067404389747737359790066605038179596356916231625176407389332513121703456456050395990506689389439996054354022990905953912939365293783186069675814120456220165091792294950955229121199314701761774519058074642333314063751850112926678364199124893351629192940103754096448752901411840880970880077390601176422812639995966280421022127349083681839983259509448231268623755815693573689159024644085640976755538495582111352766448722931106725542191716325692633264540901180762232250661759369491076960036352219969632194945776280019160762249211116489711826733417536115491626139223469368888674856564686901265233885393746731081791827020917019745564421837402774369165662527054271373641453663340676190909239065821105696828930754217475001876027115866818921123692094341831878635688250284286960825222882493414899126356612657286849985666719767284299791751365538078354155706242747649986510230071937586729619209292858041518987486338277121951806155716356299451415223925386920305149273138239846507194979447922567022365247930166446489207214934344588621382803507256571163515678015515931396934081795136061741920692051267204862497302576809287298782516833400281682962783595368314541602608665054405899933020249861825471848072515893672117898594211693281933468627255045324586378996668126910525772679335989637155074254377135636637971343225004443610283481950278864695024138683070347274109027501653063119335395010764797727358629625219310593561746908318746642541552475739083395992562673764543866395909820102206181026760431487940155268841496552729354859670761204793261145036184204268531561688541546512097985647018128620382902117739589216176860157975793488382467431289509949542379949562758395651965834095297122299501080900060246982116488645757357186980592835157842462090481952023410309048875863033101995936996660568905982512845139615801853453543355690477312034968100222200288951545529192766131809388981510333960542974512653728930663516388583205390426763570375716027280209629031286100266546602267744859170430880175290075359350604387304235911943081927985973999044985860320077400059452135377047836496909977654121594832678015957155927874582918893787398187720925486849812934005852155582194081728899712917537929639532451511403229145321672759006643509274265759544794431693566668509462306004147951971543538097586547532853644217778107163461141957052630788084590087862344369415718940836891191503039557109753347335023383624799791975828777287868788285619725921235652762187804428222672476770832667378919801110024608191779417725664641141944999423707522588011067290431927740399654767307117770786615947501261605425597230041581343440192675075547953584601422886677738430265236988582434555364528144805078976829766983731490476393627350620314657036847056473533922387306810380936208159421928400661364454579037651003920849597435312911936479253489935526456009939518172949425026019729194659721950979644174909549643496052165724081109942672039535570600530224484960868959216979843561315641083855911459462183023784030875960634547907031157818147980849495526061138702659169457424159898766493882385254521927293660018302774653926488095240972250966826434303402726149956860082550330266041693835489516735637599595549118800120436961590855878162732513006077932751307931128192409137795886643656002635360224866742181206744430461795986196230489241181717652461157345309394272360882614399468364561108986407544055151020548560829468135873077007988904709871883218349023045358687760893984727024417683209185245971030260959262828793463702940615181763862116734838208833674251804599542897556210862788288971765769608138561257595847478757814435325415110381157443791559829839358209503026216002690794383976789606938633187195209083009201614445685714801133217903810740537738895063231199749263613681511708880163074235720129990799505831413482964410742301205987360451320960255196096248500210279475023713267233109715107116006368057405750844239244843799966536195049313665007469556634238502016192846262263776479856401660279306900702289603810599246081555839876321383634474528667863559083163639369464645184791097035715749299081505335807865462867907163919010849853884115384164227070584146413858235640525496862183441253752646478115639154025314477086093802963682809646763385824685297390138422327940474456668135453287824079348214849880936911259213244577796507865665397169301146876662999523722500294626316287826849933936170375403564307587310745809267883464641458007234996906325475342829288396896896862176397312258975395845677447636850538858432336593793962922271834012138844339641619322711541281106031349161757952597381633273712820965538748577401727585730223556818278085397854899277306036511154643263057007405437624092321363775638080596568331564197935975560809961213780771483078569566464946249250268155159805176697828830352620048814790849514353715492252728942660117346619436243763036685723654042536700016969580847296027309212119676202385234450085847954053876382237710204029648828030214412883596214373030173772280943583936408869078796308637664029176530545817970226410848803762888690101692730433014819721647861800023724628928052746409591621147222742814191322056360194739211516017531710664502490170748660918735171446188761856811347465676841144962913155853794213267407332529862168644715253463212531764655894926033756314694734216047418550448941906124756223105604816023975721038622985921666423187282789409888098285687240890092269517020588373238015071499802392310464179403852508312532108310206553914551263639014607878083864772834418513678614432895354694728950940485684823764222214414806498082640708414946246074764041126238783861101861004043392885606597171114706828340795004128272795774986728330078510751836226369425346919734574405621123938371813870056181831940038858412360548325316707843215127437440387827698347839438189004855631052656486464982065558088935740730083150664035348346191889341944729923411341606992431302016359502901237618542862549927010418211140964548930689944998479237552577945034225634424109793257549914585379159249026746333835497216507501916320700458804490613607781417419951496973364704755734104348005394911003776625314060321307790158478163792394771349411380606826513214418166059823387942092256387567528825342304387841513146971796778179390764563370776208817110983419474651782532296681405274695137095998225577474646440078889938200822107057947324293944335095843355150934083601154966280255837114896820109909164844728787179847376232484631422716842291110463416239936012859476121551430681213058098005534670774721919185654859002065717945116111096112448022644576337725209490799742523967903292067219238272320730198231750578611323682954562354754440818104992527021145784468265806979221450584180715463566551118772235849819264137689424072918371246407586432054690865910381738525572519155837038979824185445148729384476978793057625821516246378879816907629723193215889972598062145129875270349746820511341688082001896060983656514523556165882222500683997402935111887689133381972987877788716390019227033423486958836426104275953722258170344939792258661944722378491052029361384761968938247541835295887062290131904117180149590762142747809860552605766027447883810159110828024282827768291416606186192637012814403797911100255451491949493691197958189493511733499790075004823825371352083729309612225007297708349418121481820184371884885334261002200716775640993732362353140933400255848420733081885618833575226336913943584251122655793812760279365364417441844806142225268560639190977955488537276808499912220617579267179719924313450969694132999071539446054027812107691882037454604320752979694028341348980822997132632306306088219833092057279969671000875011034664943827090562681441496505117722163040243767685721604982788122883024085559043286278896238203832784557609855745595660268561699568948789390188838341652010059679456567098363278016485091475738523385332099258660583585414875922287059106428961699322732582600616036538598670105945704219212111840521661740991741427206788625583115431937048316551161830827127699336015954440299436942503579487040422928808015580471475139355103246202832920552839854840145567713890617598755247627729294769827041629289054019647605724939278315515681510565793581800296244495929811099672540655702612107342714460743747116193396823252613936101629091721709529822759624109355163136023840720033858013115292832281444930565588967866396653977837467212289507242536458784984560564501036179437896087976641252787694519210714206761010371708318152441075194242219726681196143099239800813264872113868463268186510863568622291578591646134528294326491940020853896562471912540549897124954248159979268803357901392992988882804186526721730018660597840486961595035978020929413303961308173092427069127422747456038430716869389986538976793952075809010092994577626896345177939039061792925538753865115935777340744074477024934339606953821085271943209771855304832583664120159519713641294175869361889963405734460748783823428168592302882377943500652900347902608515967917639577782312640774444936170235291738920550894625363338246231160387851074658355635046974146263515657456530255541044097003666879438748390341673603775789848410666972271288528571519869294074339791095277330213234539776607843454693906369467954829725532938073971011610620556576849577245329611501113070542166741101182885169268303759042708389793558136164544571859364844321368919544873376186878607044387667606062011085851782492416341006314025294238856268600057564676978856272924324662837306418635393405600730800058815057154244691381734404722127781326846151885521431254206940603652479864740227684553149902831250300809053350804003677459089710904396862554419075913690179075864254193233710899887456506579159080161608199964816899984628114155561147525537181632577027362634792486908978334577511259009658137271488117426074779060852457930170844107125993853250134250725722157214246043479630934402205037288094218862158270442744741574944714066891049667668342889141277398666495792815936778885302233487846132932454481515120803029459637465920239189032149434811756288293538650506581053939535338427238541772369430583475049428075724345316700760478617381208889210315450534181197493215809814989893969752839425014178169925024846867715791049032656043388525299176469565638073993910722209866390078413157128618173103747244176927389093798408486258456280961995854016725212223884450321616049085860143638050077433640375061823561929821016518311073391242014666732305201266820565403652381106201001031193108263750744640428589829614336054751280574229535624431705411332716061516865430811110257049524026085446141579413512637347564059381327577667492689733871454434256609026036194992340109376896505180274671305665597797261127061708949855856487762261844989222239246304381087966260589296124290412332501750621870246015441312075323896287391274081961639183540425485970475424328344427916000870234290263004985910048904650286787401612975425867605617523949291815962014310560657822091920848828460010432961457068742197625668630837167322908009426399733868757157406353905322801257357408917377105360073367110939335570417658075944831375103465442603065646545527415871255274628478641874641495392279086184712237265731330695272827982799389163386973785890906395339519103737589841581205001272997611199541693566645748662503434578412503515508417241326621648040573735488192272992633093070207772042611149125379487905803663897746990776329721185446802253034584473342752148242385885034994584369152348132251689544189092034745997412145284924932513983741010206528347841284328427002440821571194548799278398298814009014607273356572660899304651071378975488211726406371555811077698976475399483994367072026966763830813255535554084234754616744014653482739031932803247195626977027874949037866322220211778397241975194315458352265322468989177449009375994791941566786818102179837361930527309452765517952261019235543156596259395843966298044891896600294762091445982905115287325310806662619461487450825280826636804751314112936278192214262499763668279561430455699052639791228655839513128149421343758532225316956771136850362337408722734889440978055706188277675403661610313969312320014407825461757506389995679786902844551096904273976740619089535015013146815598031014731511415426762637222818560874037907431326446929875548999426878864562787734925060673728665958418893968817036988958784167035033139328637018992124004446844387848411968851123902021929895113522227836829810962042090743493625537401123697691665715717527291354879413477496721598305885522558414586737646705948623701465401048009343475959896298913350016137555764313545929211596094913785745935929265459255192250675075068310978022444587908895255746024384868052125915553985650692791657081920461794368700704779982538831363863200417372215375439363367861032342796384720540160678536188135103224785414180816687225013134394682270238964708552483675823831979917901645284125351307176801892628517349254106935475928508181589893032104556023692878277354964930380267550590299140172660370409984499981569393394481001519887439962071842053707938562521970605549280454128073293747538652401381254047948457195597253687749199826250423408498215598413159578900313637015091536437443560542478065154605416397949874346491871549758208041099651473139886224177392120967290106997283976815178453379029256521546685282978750969177354660778963009976441608290778537688571487463253963773147806242973940805811575509944418429782882973630981166633415310984745646375350812661233781683427276440260997344933375785459723603151718859515995535295458404214700783035062070135359038230787552760021361049021141069497117611466353803779154643992636562830706859253790374372161285899531805309689743787733600243842059732784521392619555724164000365539591787697355509500404535710988864555689442017572873050095986356786643148998971044820862177079937434259455975138445429139619828608513416711277104031738972283705309282536322667249076573038127062801282267905424022805921890200110166108872182872899289289398848657017303718110860265736456804559767145929835824257138805818707413367825642687531670863062763022419257236558911010383976697797211527368155381025725305616763829189961032183622434869720985404017893121887061747538527884632004169100945189692247786412921676670082107476169533098273534998725320479799743332232476469786080252051372290494327945037171201006358340594078411200810297747008581337461774652146408906255851933925943628381668795629268366675521452365355155337536146408543635700291631327653641280732203032630031682612464325734248722123264558763414437340173366792564706854682485574133008346519121618459264858421738598678581385795356758574520118754521391722668916970044495207867539794746330310955236676221735149143367626546819535096630384911811472259136032289290175178242278061777260329348803551261656039024806229178826509724958259907078381286201459111970841211138565076275404292392669777304739218383945033598950307470976744060486078807216423767119540332935889689313983925552160370246178456925344689116063060092319613450412953397428266935188941942091152205668111012845617828574345952426001686763149035815979071154344485873825104983477683746636682501869739697010358573325356120301195325096921445152291593663426006415996890500773237335727242435957828958395529687996173974371666139364473253111367080632874257539753193953873856204376382756027237896424813507914073881045226027298828520976952904226621146096118912997545532070212029729317183127392750413279204387128773025724870677273289071137137650556629117743536731602768606572631062853993787209380586773344690491139233163774778186881504093582505365200486113436266380721133535863246133940500986560903173218711329083012995981558189804973542806338008985849245322780148911849765354898551338280674284994607940185644053691987480366958942114991697378123677666163987401217038205871701158554769120028448984122521912580213365350194079494963231568243729680843920433761185615685104757452270712584935269611369286666965187721400237465083409200551575509536896743077078458790912219904420460245739594073360864458731515590348442442698860156687610331703619487093137916733149966621225169373731633107912463299900676611635342328888484258460509634356674569133867812273683099504481395316095425508329151092178134107374541687519685821008616444799792839663075301105219185001885927378567664991465416960163309822467790872933764270802517258945690538677493918427252980184330661265250008948337520570914358101647319526345461760857964553604337852038704406261957203946218074871526248949766586923209361920874947576431498984122906264298040711964857265539326985034246197616837223910326894992383148340959445839005407827271340056366249877741826398716466350297266596807882921025316218321448234746751975086273062143278982653633179580013660174222204933954492723657993299595289740919377995911418730260858326837078107000963726138145952697217682720161852736130551343466308918096046272418912632151431604442241468862878443170331115077845569243754403352719602412707564430333040913382132845981346822276436669786290338810742158081225685942272334216557725115469797447593380489784684490007253686542975472638267527066420837732855921520494231011962141478138271240529119609919235798808966107725638477296307072257825894859099384514709226871298755390489019502272003774927781984932840035885734980145402031419075385646356219771799111841629738373964984795211991756756898943643759449812586819120936846512608498283724747020770507574066070326145679464339022844097475422778267885854908901392821338167892443534154722286898149219919637256213332702689587333333136089504956079453566926155018615922045674319414768081833486995981437594177978004869420776411081647658261363770089704322824803380232568809122781457248972730815230916198329397115572319270958323627989215965047597036750434937918829224551496996605765691988058609139706381940559320836847203844684935782591909410238200887908348687494952428570784180690469014388084383457275740678153887179449663081377686734194558510182319367712237425072112062375288245568043486547550767679317358764788527268084902157814521113300222293782183919741468037126675281793474871827963003802421494734107880366645818245296571274283423795248509810855639649766389874751661928122175238058575755459643619853872148804769438562426633880058068827402936775460800506243407352478058590280698719336708851849210534089014411637781550482810881727455549469672620543019299022060681398150835297672987501282817703853900315738908953850259098958737421011406780710114667874623463644187693668852106916406810996091445455467997988862222125951106996976576633299847422511928693012741932856386286117824459619116424696199130689105982353738865839105199900977834254206065609113760785860521050843395715526389641959406555366154739145130395921381781436940208639012094428627429008854394266551377556353448973838765480869899595885854812266022630703479094859996812212907832201248434857577509651183492510313078942288114530881749900363373468567651392502480228513183568885975208338185429362130689438574540585985447030396791630966054999146685588987858425042320061018765255863131698750088931153937396554895937609988123475750398149346050480381983320884129688367503240931642562733677110103030334763268262123050710114271632828054445390521486194063788295344928177534945399693671443328952217874040328091062260846138191516618801600982292296806668463310306450100769567366097349229368163434382280191995170693981206892262444252946735097572652255516630244797733930215616615668045383881665288299155654399249026492745762175845942658291843178338058884533893236047408703959333952468358426565440059405366633005451653151702274057873365859135386959139806145146994010459404810941275813173561948854736522279971170002242064390176437883548923969896778670728851194907215225445235296117488413761617389248436375771821429137747590850883336240359151170135286400909191445027775392989894461884343734857075756809028174733710694618920758870556680263154525850447204925693112827002847194973072923258586820386436107915773405310813200741877946508187048681641262500821373945878579975918418795190954093642357789448816195616121628705078940415299087770520369928703757541028222491023992054389433906354710284666551322976134402875111643509079170074874034662099344636254550647499661050649075511893699782105154772393389435043236141768168592875639372907428804468257341777243903075503265796539150196836514504507550952747233111706190687382838939989134822148226707001666945544173811533825661473480006211907102409394832589980123346802907769677029696248172588671090087228422209378845908784134085564025190589279734331015196161557135152866485265385700038050338989358291982413010159459771685461283122420396512975715821422458591187151551549475924368132839993658400606252018707103783904717255801508211171159058960288399649773915907044384053581203442032875111351230636479619470609686613361491410789536113034915246087100263851306557277208191070615996663599988891344669039681634932732446325053613403522004724027727912772023819046440192554402422818527489779542730239726460912143236014117356080477369740524480716066080004833862029330357161953449156569562924722826869193552857336465345991065032285911317300063533615613758614629868176611503304128961502297511013771893460930234253216166437014182801300285205720482501606030130104780939551659370549496288022514823077545143557403606591913469976020327612038661079365179411567477694324536852944832592199074375983067194851428032984722004189238943530665569712437056014448369921245713093109866916562446814550569645450991880261005215945620976160967232289718118989056045380957312127580200602852629716180784753605267003900444730338440614581125703217537154468913346670803121643296468995871086496526046653223108664809895623499231364412654287954435657471218786526164706163446990762819586819319877445275572125739307325424962263721675917853537734622351535150596843238884063914963794112289616487270807047373879869231713115331724645084927096875764844012050481456214631447180378442590187673926580359965934605571183430186754731666884409798496462333833074927753588107284230999496249781813850661980718714134248135940724976950398601279108895014448700411219347921718944831336884823906289886491682787241712173539375882197159656805120808371820893467851706569022350998154018495355436374655469720534440447986567577786671959540345987425620469186432963368881842838808690879545577747937954670876824294716967508426829918114261934026866123759697703290086612346747006005730010133167091316050325319917719932734306676021014810877700991447235834329193752857350086081730373986007059850547871388184582418433031688857446634328095919065788041024387977030535156613945608270693393718435244439591693857187482127223806422097200978308130006413977159892411470299853815046951129602670555336774218721355600154896598433294489611878545819033506433866946889266034972976071546367851622088312607135421064094915683854567867857505837765701135881880226489558401494140021189533759723746218865276625854172031625870454651363229121051646578723023912796465520395574985627524637812536743361091010051202868277967125796207392530493952102220708646241797724817484933707778810823937894777142155650751183861022194002948702428969745821203345948026621539391368529732997358686234864690279763305841172459410207686080013945277687838403228235594603187428185971696492335397251058106699107990043495571077700720423950836536694944710789978869575847160189791916104498138653213394804682025361109919370542727370302569599328523680860316375631972621573758783213499300303170810180231668460133406680513949376531990767463273709124340305194528120099299092785046382763510348683831297331887959383803482535799424883499846156654804470143919734431481491310428694944781199448482356690479402379419585748687985409480774521010507283231620526611434547998566964636011826030853601480096068708771968206418691789624339051250626601662094078305388760041827274342725005010325171369864174685320183705658767495599221662805545698984634587241532405289929185406302884127848207199792973447106965350513621094477800440267470063153363452007415022532981891689890930294023110623273578677723454840083207533178209398747754289877489309691975173118935972395810518694224154588225766616760827361318096158711967804727221462045908296754268857744848483510091256419650649403922425228450189251934700643919337680117941188686073679603588022791098168110625390317223711417823177635298527791040997620436373300365525463980438458763365818137406069722836830527600235402080253405624418981943702243324453670229402921368552368803801009500099986758144535973073690790953219810498226087243732704777986398426709012193044425032935949406903543530551821030861452934139560140327091254412433006183434104074958801829764777127028358545293499779445481712105108315659779209032434841952538899609513183001205033730432557794683950914913780907009058256456558091848760866112079520818413332368214247535819805802377799304405905045150295795254868698280760016998326305298354197963771583458119304243208117135372044852692639937406790919075643488225370226795362664980949167039889745532711724899705775601186896398611165441700235073857384696197475481024572812798503530407945048104851178612853946073909416420076837030164887717472351981181619485217542491574213580747381155103588751096549817968896497854548697966665830481664779090764093146610761799390624400924725685953162708500512476209529854829959189440761916737337390914884279549860429391436952429396344773429853959281268952463847560638365416162914615021530434734393599976905039403491005011967319687308459112273316046017970764090318091056003303806533074255043288031777910436047086536189796119270432781200933719142558101301787956039847661711085604409770122854805885165486155690337361362179721246581087086737779901854770714848170903735303946017504802228368247193724357880055519091054474977720271688142805298212076641692814652365286236949204253047280123652986317717628312427403687117205828168406732178400089275021253807095358546269968824513507948664883967943289813417909341914583551653619076164918668411827220331489988054905807237876574287365899653422498036280237820236949415335879163438056778545908199359908126912982995246910185607909295573497396333622107033321162234975749275224836220871129399013743419183063015959246420254649806626230670128456303735243032461604428285941208605815642316816121759737031686712454139910896157882772249735786114068195038358788673842001077684605068792628725723529313343384854947458464247988008371710116407540328136210093651567462187561355285213615187480999515106918354346360930419594451902530424261943834334462989808612906893456792325996631052269244091493893681112982912517533863707777371160156127090676477832809198663759787023907580460455793888957953447823545206222684647411681906387334825791761391990658412154611195652404315033443934203606046247026095685851765688934468894261529990707796597331483968014987479196170309854260599666705554151186417505261935293732029906733611411159233772268847194468151946724573254366700445641192889989677627447514173742293858181797597311851926543578632531357021590786315009529256921555532910713010913765733401764435180046577395393565933442174261323960105238596741291724195001373509733588255428458274207424327082569835914932295003771284678482781004604945450924287651718415599422166789148598685151555999149335487081982563710910390672230389276323048457050884638078682594938600333379207654080860887654276963113746541331763089731078212239567524566277347973379305995070320154610229198523159885705082230423349318144769364641524027923282410681182595364681007908549482527805598657111880662357484478583119337699794175870740329012800614536608001305206314624513926573802901539867041553365997983015495975619837761789222482783664315365769831049889084512200172706811724582969905461944455948309121984169001145280963248148895581727495426530186687870053931855518155697501898007046337774190205996865748585997761917599416488710810922791110389259433439082983029199505218741324129472757212228013573618526867737921908097289527661245762063009016175805792512001431888089191689003842229440245483331141960518137213357538324093285117837804823264538392532649783328105566376159112695461405288984128909668131228747929662822355556763925532133325109358923073870180806816317499103681792707592621703071003109386676721397173973383131772124647754210852149451145812191919607740879559785238891701736114607601219731465274993062274086147399291546495150534664895122328782150041357528885026298818532777508859186970899958969414180905476382041857899744734486184897414075202650569573058931840086837836968795838243578962603316607502925460333633325254941998031912382402324640921905733117707341253642317080652391647230984887080948276241974091630602696183620884393777389595027620964425033397817175042571284891796325043686091035878464043278855394507970952979862674145995928627049792681022020337673581441632292264661373624330106321529658789464090000686405749074094658906019017461678835488605077656318996036280712880051497871768482242715754114489049242330258325854192266572784589191769111289371354483087222015689000247947739526237549367157905990067288467872030622448252462009261977552997902819240791988593174946956538290526342781510422735456876276541725781028838727349460706195293835161760647596675876644852623449750602488518083879658371975735447824785860719999692353278446016275990631474898008233699545013074949163894611486338586129484768872274491819342492725573014276554806478556322488307151978993031155047770471134977379209685085544460615571911589190522363240451294617793473295382074314497353722597728067463452344793730614474198750383480449480180017607449835111887184599065119303292062185752258351509811591196939804879853372290767951469756246345088255320932228890508476224175967165449960803787045371815804710344922807455110649608257831992145277876841344839191942731728286267548392506326739408066672426743263614247627321645604760928328587277591857631902360980210534507631301002097798127479902194420319304868770692186558827556658016442478268729259242606831802901486296563160704294601208688424694289863627358155972270550801268134149324592091885163202944638565856404964494944777674527507078454978453569870755334114888266567210051766601467105944443222866255949739773624501598953064391282632373536637629586701609586188650594986073714311707804760213267840295606305697584446257527732280915276936145319206178600233227276605332438777296235545061218647282525689074183233838936691323413296879121538004549536588298274359891060778307781652279043118072058321231912353226695646397563374944247526657220915313076963778200066409978727954537925412550219806783362583241692355506871619188836319918456732972984654894278089876124099943368946191466989910457484905381864212183878797844479881717531998824384382237872527842502790281584275041863403744243143252649395691579786853746045527949071443978925689308296970339718958692734560688615991000711652966200527179410733417101116834237343325689924345422294537396192726943802811781032790204511968153163784611223941822603728953798229225724722235987138081350449472855714035795497148307608435515065565397545240689481711366246040309509670624658064303546455802301613059297869660775525129639930636681059185552527434524459433932433516667690464164740539591767813538143919186571553141320652048610121583819381371772802401410990945363672588698909426964085754571696894050319832239601679337350255610595444404468875559422922512244636219344513959265668263182965408097799056420210871961055599288735758146181209745445835338486453144316264178166581594152033826899764793956503054971803267196667541334662429208177262839629293813875995228728778935566007559280071173455805667705362527258451372562660274340641554127728680340976056860661176623272140210555175797962184508147066101970971916216250017181975079198345762448278138267179496107633540086161828501852233352028686167622071713167804188608281759957569975816123761874182687540077065820136727059283617722733983513848922454964371563665337307102005563072894399540881588815503754410624046444631725256000481771324391294295456247769282994052011584675749861642846913951448424673876333992326599127504714726643159004525109166319462052124800406027518082040660412395270519087797290591296878345468218783168830883727948817512527132142909613060647904516086912649938350624994387208182585226332625679971238798794335926449928684181683562307900520496995423322924137688196846770635518488407360450879960354549567440598631987289183715151475554536330710945137562069051690012987235029871740769880293677187602171292469217224031626553611212383216112973890569117565125158094430966164568693402595912572685439445248373966145873432041955502140311768386499519655061966513320722189573920665572874889104845115750587204774567088317623243779851618923518757364450858662332255358941216814295179631439991542454991823597357293888321653939918195998235106475824130202977653068139724112759335852774588097574149429742293618128782213906035019719307108958140293100014279187107181429047454925749118520226058897177952419339483202585882895014690819831523939609618423639349556311920584713325068329586926591792107118011364137723176394285762000552011910977710545387502394916042427450841263839101865685502259735770456848278230049858450267713397726287574858412176065897703492490562971405252975335176515279422871411141359257322902304852560542579891778720706082625313446177308892863525529622348623393814879443315948275700790869482026536482228386511629902287504239757404429236719778303325494114229697760240984585698599056049316324033554895759154984207526008614318417256392602268489063132679967598144416742452172886122806564151526619399617347095326984983873262306624879351425502153740602216952680055930733632707862164591573991386959306220149849426574968704135929456277093493295138345643629684043818712408406159973387602846379078745214263212915381583064122635463299588674252160662378963468294359071523258389962315415785341181388821330258028560279348061705057271262925239999279968229174488336607820279508123316284857996767842390662753469212687836952856764619669033521130630497893413210425246972011165812864433285748897668563568432954068939249671584845458995922899913189608031402613327822574420416625308767365985525020963314084358262984202252062737894013849016988185141567861500865873128730293987583698955186039413226274184232289320736954185034945167981239247341894617966801625683236880155058257060373314023597224858366313586108473400553282481601414315302556731111216987846401332505142431111956761360499056642588709179601969531064342427708213990944477521521666248572733144325217414485107612632845154343131114202136124160235476780428231457149279763294997182997828922333811259984947730690454411394445060327657250689421438084712544648210443936511980181751847642055354705076122679877466107333215893566747791696406234503195974498657837252002775529984965837384504047100588379809323133978070301704287071072892825774573229979009785096900847467996637595809660043192117943930537170413453922532380396226544554935069423794245103734550547952866741416343581806846798029430183723589908891877710596867498696204197297733034812428204920925630054918315491003613533452118244513274176382988173553021124793678723938874125860315344634284453994802674603064487460589855369510773104050485931683050827377619435614063022879508831466754050994448618877883129162823636588782895696699114802466237341773177918221249436352029873717479747158886241432583139651748019839756691049398956925586591113320910345179086806726925336116342905956603647983441933587144395844437875562412817158311267729087191908268920357769294124109896115757223552709197818622308359218226690830725445743349347918810114276952336766334025193299272752883967479553973073194078727421670943867064931442295229413615321050442100576418734075676797147326223411212422496739151185787726418831295145403579658564363509498759650111301771339567801194894304371706934690513510906811710228801848459008810718751377254046162691946242727840908788960358897218250416876360368297870044321216467780764852349468744159614538046024677484462723215374934100112950414054582628689658874992474438807206718152101587585313635598523083927519880661302763872327656573516066719414704127082768756791435724783745866706298112806267560777516199700824852436337042862637068607221976739850738670518491524548937287782099649544387031422073822964282233739748505432219681801012055651723729806085301108949292729727914531665068626183923527156746145299251467595701114526182264899280651514423302258426206352326710494066870655113436110350820754479408467543164882931316087041990314112852250615647987255671128354693661854588353578034230220956324979915385451842936402857144306072437190726665030650264244061654099209746939961991206141165372038269726260845962064876796574876651054111566527038654294243678608059276360873179752630016826062734960950159717342113392992025491131743495644809270173848374471071342822509004382625211660138831786588622289570492157724563098904167347835918485211516592126860567774099137005076765139239626501119311285693601925376278130699693394104925835795950427920571876220709630990731337721125442689717115112182066275583364949869246601347439494090265926183755665236094787455087989665339357816027825180266260215098756505739902225521312779285597236241583538323813418384428410425160261580660656793959700084017629122272848635314725179478014520246902027184366797458979382194998594572149462415183380101051273633484609547439809774337972399795920836854176857463628374018610781467704833649496587829699132906240534330271233472208891088467520984922619169345235447204198075524373158586137056888550484605118389583283012725786017130764749098871573046434170323487661126902082923572811707215594002844213944230201316665412768862250510689448217895890313524198415883087341400228181419495234736616230938330314287791742961251651832730382448006807176310432642367035210192783061829537956643661382927490688937358519244122515150986841478971977828268124947313689774900461109466104927064549839120721913056237777841808201157417495400752187993856060046864910567033075263563214684563474950245183980221628388610988456848980848823692103073774875266714112973730758605542762415887317465988719781738190408248902368395364255886740544898072031700853739344473883756394928579911106715905102690665055125771288608634814824490173420291549908184353052080662791935348290350310204090638068781213409904361757150832548809978662559250943600105636358583148455846320605341108754186784705413987768750219961346301344322648845329200688971627455178647415647218103904153594171571395293146641629943288950904516815821017162725131452470784776666038754833445973640957131136746875159030565279959008100671615300569227035338897872233443051856675063751252774828778495485115526812100508138422654594899126837511296860465314548075356583193171317278399188642126457346157399744656433390298475336233308794504093126620817533766502445621134483578112603830643520725260700780752184302979920154800691427085634179391617990583325099095882558403735183217975752768417264982354256659085167673819177342796717979056018407957662552336416450932474917508279563471556409135616042116327995927231034292981067209587874702734363237719545465975246696125937637187664365747913349050324021268575779040657347295123354046467245023750744349237415188397108864232373993996561243602709592056242820332757418318390018156912975613328871664943460611560474012490701068814759077023892384204582627388629076622824348337519373361195247679267984572888517314603792091815712869531629956916959020044943783855638973415696097707687272080376219203164914986433833293249150616627265093919031801029556004693233608772092283344719566686931334284502230259054654127018783113350830957626244555881849231506307065951412037034671046340968166687121253461473862973875248447001965788149180669944954844223557077279845500297324725869211006700259422956553538707521907918124326639030269697869039258782615785185111353057903488142211873447980028681495101999283412464613723997274431652119413593362611082172584866559005675609566705778438112698632754424187579651450775558486804796771044905090767764565764604790460359187317636402270258613091030151156238610584668210586633439347874026820906530954269601208162664387605737855848456260421633840232029390300532600380961520139112463263449775267579935356329234065183450037522617712487167951727676901187618838915524600959594135314799771754241389818152111465562425403568709477813255780955502800802247216083860140267419064700488504337220225490947255608039266157072278423253526406129859549800784260643623000177495805897280111327259986160898786558979497091757104404167914971799309898103037291474820641646239091095049571836520545183021498768622226623043064566700957618599118253398245460247822198417594554839411646939297418116173127890882912193174084458292543430070715165357910117623804748317198011733575004012446833336297962470019032696774496664800253430620364848307406509584873489415551657464287555698707688549667041216203794784431692685811565842006027720747049741310015564049451773297866755157810058977343978982271748383641039082852856577832378399753573532628172664784645961469811952272896640483908857440749070865457728432261546731663504877496339076790375687464983568280607716281823001534067622439661576879990366659273967439492542374688916759593876032538403616603139479820853016633360172390800933627217056096858926833574254175312907403006340460961213597167108265693980731082413049077453967749672044877044285470246761407351880366701051969613409355732207770143361664906770604670711803684403409759388930114358270096847207369768568812114476506509559963149168599049085031268317461675329763015839395284666826226845560022871022239909966853616830103813708669925066020227894509567731201004656237454913367788172488938543300731226091191742826595889355657478088607486998118748924966474288137816335317760963192158129648621757134815927411801182954393940884098905015786099285655215858483160701775871744459773969322563848013269003153918967574900753895979663991938745919537916281341590423851756387221999467144000649767499546136095762327186040775796376849830947052491505032883363068095013868643872213020197158890032195049753043936060300420871921143314234710253918313514833868463136049987458577988493522118170861729427080568412668168849098608190960929899078288145116287468667097705325298160723358874395118084854469053011211781601794971214631394743959605515235381574969239655842699082188503416601147215919979472456826245192556994417858794201264608347282743861021871704401716559504447336826749430478207251013977749025118248228168214274119097751510046823025676379493607745435934103668266674507301795064396656094993846462933661154902048057209956637042096137502814505531978401004311334271233782499894538975117233289339541175766498743644987856065908915061562129279517024222767028664963237492306128901500356923588354853798492134109960617084500423743444638719316886483337445763303258635141198929241887267908642779691123952239977760076358279149305699891572137550703430243271140831543098232125590799249138510517848193799879437786118297770591230503390731871528233304620420938005923857929922197848153182733426276428180102568763442888976565717267562009787606075316091728165421677743754980626090067193499832064444401198794714766260820267753336233886296267317250460037250352080894134812208492157577096685019898410515415046277367053256280366950307475769824402671586647119841785186246791556968652443331405727996652374256790187796846748426889253673959364307241713705259735194596868920256839862502610307527693099539625231034012385231644602924327736006156365249513322987187979812393343878678663668507373998667894335837973191834874480343820115921039549515473465650148854132152141727426900627464004639339485630670201923785158826032986423904460268684325036442227922142795373461798934353773091799581907847802744468478206558716209400301548597723228863302569790189583826642989061257811557235539736256778277568268779260425913707834186465700700431220511639699566370631493047188507218328249729412204536449790171016120077771560813097287065950006173862741148098476167133629650454821162885123634477143098465449183059544720499020814161300326809596924684697080725802720361446188964555152759707146047066701525156780598282081273219927437705298197850776108721733040456872387584916435283526811645332814755036568827363420122003608575430614991385270587453030421151345271955749285521611760720255961382714670808435370396798019479190493609396586933397864344307847307074237524883713070543283923322369252017553128423174793649785887168307364023440462158581096192225537084632776499778395999250340306487307562033874827513482573502059005389317052306666712101794795878212468316438094203101072685601630915182229668300150513228270741999222334522851780490385058558891160065931294026834704492156818249329462751968141074711770434090575427622345495237298687523689063277287906016079215394040251252635694773544712956859805062131693252036290649374127510402709463414347349107414813582288320644648017786479749477172875581318779364481445419126313451690416815521665336022476206720586662597924269873448389320467849786884095398171616590132450172877468196121732545955460917178884128509247080919684937270254979334252332633018276150863721138374542773209912288534720733523601333034247933136565104773063385552324520545652164351131325263768523694416831245892026982408248751075230498092661276851941621759077834599252322760034258734450173917770888151981564147006562642653720724084735430512959209235612866498271615191815825567159293206563438391909982245133339908156799437042123136891823325842434232729997644360844676387793682705773263887794806782192432816852594148103468394629680193233977261066438925840956043242961259006166442016028397118209356630922601092083700399521160895358055002853692374340358152442556483959753905548866675561046352684272581725198041098682949255150164497657850445257683402337936151402970170141999848696946913165772775437362109960698273879726333974828298799645422431139020032740190919687689559951847041123739867455532324628148846995365128863659797746636793267515534299286770678393015109894200665024325522375558727920170681903062112275292699433927189209452207516326693282687592320239002385353239035030855952833944474119015109259720398889955438628751291189530336215719492886912121562026522526196094245328405527300832998804940072022101303542863532364171098837579591321729367811960176750546980918267075487342222344004143198828933954141648843847966580996646293232680978826796616078970286882720339192344907914057310763587414849589777208515767320855550894540709048192539139161447692894758468212205294808333863924398996091445924790956788314811352898221663063230235257776634114995559784636917601181792962458371463613903388433151949504665893237887235655122531815129337711009886981906273058384720755121042004755375759953391737921982623515322422947945196894648904569229437615026634809451815458325661203510939950764339273165015692166935831138251553808228564689494204786593744218294211836110433599165561189692133255736020786931293702020592656128508209164874574822469832469465976653567606001102501674762510196609355532735622842685717939360646507701992634583350102612549575448776592741057243860356226734999707355597612781850101519744132432094000495577503002445162390620824928059362202964597868221984482677433182265307095212097629355169549989788929457081693708262901344410915296100180471045914755113003410171272262517565896290045704643670431594010052068240013377535033803748523485463003579697315009755817041023484119560869235135003019943133048872734046501797656426489996358773563820525671625110581096841362710604575733724268673919421248271950777679090544868097922292206723483662556359489105802283892933975351597844528055167175998480245017623367903171208984290006458657280471069218439167755651581391383705464012255215180982194136334265707291377940928375793359938391586027994593389596867947218041004841290994421736975412843395513913878420677903372536664365444770689039084584236899927842484079630588492682290153139989186495176149695376836727785621463342785147204897192748116315904597481088758653258886277765687283776583967270747796789501203380336820682140779857413685999595179503727115725352734171736610533710509404008938138415875440332133777925115686302113080312705454734498009492246306349536660710999131357633004862854746456866584740372176459572323361958433287012743227847764593618540417588452895359443822323068598667877030225075567851013296849959034024214792384356169855689168421761646959455733724236899432664956584252117411500149990430519612059548006710130933289708260676746552409070295602249991946768717390647244080291536208929690564831217243543467404622265459469277857456036444957356849931311175483372764384961110465053166039103245893686989397378651133904582075645465499465489619895092337034571460006495038887968466787792907690572083658007356025658762961654226683816598402094568636348421481537949280183360196961214113242593927198136656482311203524003941213661515145167965851313736860966252102355662261863030016195303558913185018227421606229285471237957652883970854633041288892507401278086473194647578577968179975633478582291934106709440871297897227754809570421299674154051107166205635783715733462044734388875386022047576893057778852724273635545250942576315821503637114247277146024347441389985246892611653262624077192903782739292241122677198090039290014314020881598970436552999677214667977035463035066904407291182946715254246912665513529402130048167001523018929183366480028175658955579179048086954619948149358397417694388510026653687795650477878341092368046130892509252458557068639546624118046415008322960793910202307359733684464757262426086341215849793081748637070335920447164211241708705643631941697473963249062030612564055658287918419279608608500692519143753773788444425997994370710783142733386527820524326380489363412905177173587385161722377217224737582705856104287970412778859027336857744121282123555480247098165611405312771587830536553171912249866322296293765921515686050368072776274958905374334971016067607822365730664493629741189471612619566535053661618570174150054033121011066545773296954217087606809338423970490487272631744117352778391624107795703790028255224782975903028229413394657484365075883765990053634340627198886322356123234907597193533380116435248455273383571112645355421607612558165547357358666511192063879125172170511206664549727046705796592277204311971075996849100332083624836719960562923070777952909127543754439062163224316048179660492967463627167562716908545637424060217154382838290455304300841271988351077008768770187869373779308699144289496338329238821457035793555638564125110484098430960012529111850514982223303714245075715972890351243207403726910060598351037777212519319005882644787884992046706415471601283134005289796060876890995884034233408664662950244730542648175270145948618655699414339343218867009576387764094420780747363518219583751405101566952908484534617858676916059778002191260159261971249624173078456489928208544161073220308943240887079216221039224068879261471773380887245580251551362259197433273321574951031114126259637444060765091084050189711354163382199498467792110618095468472223953844949627000624624275883016839526853460565739103838027111173356524861486358060718154193626638165956987387264310733464041526059673583928462009699083986771074353677012195647563796760449495514183413188302436949746761750534991741354419738882384231788069980120311479827821386288128282044659757014240507831305590791328457055356355295487780307382179743843405810830052007196207854547998200205032408892586936028718292219701129649172207088171021152468172976366276012880557079822951992873055305393253030155489870290066830584016495851129874543364980955365834522055646195481239629765247385730608822768691147301067697868205081131074859519288193547794320424576758746631723683746495623861194245052186622273722277228291362797938785982192636918594565964975455645248850519615903705391723321025163731387357744437397339047266946046761706111490012517419357866915926381254258785988286689570818254068615645489820309374556139269446195412197344552044681107637245305081854721145203567094714758432138452452907210476916843533333783586225078676970975555688314992978585229350221449578502821652241473280615542914243231992146793214315043634358223068070428120065357339087611379725181565999985358380668153133824309529490665940427994523815907726837115940887655843084202463502888690469112041841217892174105096853273721205257009514118179411855155311832788032343967141685683502325066400740805748422481910303479686033455230873114792809505290153744751465565436342103014682604595110026188586834706987041023545141929034531031192525634962639820163581743623583606412496389298148451752200866254305075963519658652523982854035263626497035134252149703114778921176473741119736565894980971117028018613504912608696950965249440637647367827193247277881475715068630642528035819151175121373206289057303982176561548217088828239066780975668405054072647642035869404377262906315451098174401332034142016120898015088395216900352573597325685069188716696667157400142603718360142467634886310857120861007561857159889140919626753527020858208196081350162899207253666383197762357666899886195050285952052008034485782397499468046478785001863390172393356316166754435808567017356844666729702458725571565994723082446501190513940522371487340163612054673561313305215275655319597924690917502542863521363229158245867665058551746298819629881040379761829453501430805175704492890227530308880498674213725033206289252823181596841093816775802039428493093277254594082997597944837550411046469590454749811642395471794428105736711729113269573150374985646339160189344123589755582676085024862185576678505909525249622108944195369204118667172336452859275514988481693221499667598009642886244718097084993879650964266160558207123033686419883583644292081623294992189740727616322328119472366351542013061953090667181277760659258237494834530490646819199420930773615908166772399924035913072626346560006204408320859601085158482112950655346178599613407795472261441750571344477487771541645225926099723330214357498371110258519355420765306908059527035677741734433469901462451436267883528658172289542016386460404943666392369972084303049337450362985465553619123188403899015013518892603489961690043795957714476357126566776321501505067040154815408263666477418453037924218153135018147845216868278217511932385877353422993969368065260666467667320596985048397207171899039821324232098721535105430095317527720615670789484490164919184621475628890897916039280447055605697888456252168170967841601479771482831595109347901313848335196209613880616998518634464378916721519883232056494717490501692566802450976935070662308312018267190643458237782512551338246946887688814466935160523114699841917541910022254937499724108820050268056573044262060775969309545489275470517119873821484667365897517290598267597481043654686064498154227987870193500390081580810788057376686690529341454854434480173386927755588436402261628684914610456794339631549568395306725197182013217853576663410752701566219495538725040512165835491613744418994321171121248069470909932645191680951093595680035195988682168485992203881350100074685223165737031293416986555772359598587708294654814387895807493952824491762700133719857376493921303408242613281701642988476475763374548756354494082494353123531521825704380302286736956543989603648015995962684512594924000169347234057292538460002892009708103330541996769943068137474324569426874564710129480398820209834747429443301755188027069365966363375752706460046320484357617241198749758912685380053659800751867130245431777334793881541153953377101732938784643170909825944235048959136899042311200791588152485194595531371568366906333885247447114025936699729383280649662234401666871343207665426105412194702597969086373949885922815630632437142721376635402158154382019824296563875468874785658150403699849438844019030621015091118198322081457853258008905179732972394443862278318563928367917124754880428372761467493839782952648060035117511580752090507493790154470376541081400281616542459226111125427909861490412121085134282270143669862773807353701378124266196803096563014222280345507707915114201728075475436629262005700683093576963032926031038408003389934363896140275033190264411821264418053343174234175477221458489857362750885186182926710085087455790829298857108608913699104367544149643649873307775972157476820948849047844050363866907098649763634883457502066603128727032777283736489978682136799615684713397345730482240275154501610094916384702553970192278392057103278651671698549026101588756416539691014732649471850988232814100421981027313294117218794361779776746288528885926318401824090906307362340881511637041137280673537158295172751917733104075654012873610946686469851574598835501326397787776869222967458917228391651706457595567489627841194245259176209042549573210370605923188823787685081117902530387945816399504858302174112726870001703492553409236586499155612930127806166124773229280415042256334109828676165566946577593707896348139786051284725286880259563523157860478498496547477905345832559648971778150099719446781743759079637027844389851957379069867504414406378106580225339510614646816552490866610125227637787151727632080514390978941673469864948495877251532989895699547388395739835784659240508140250351709990087240308438086993329824745221024728740532698574601889999589548948417377851710819069132226565451508250624536658671341644077187182352528822862471068600280253748868967058010978185721156129738609293586592076664399855719689990581796636847593453260695398538098799779059930259251206326733579537111968890436156275035714580556846091074843908548393108548672725224894394030273098987548600972884739174597190756583174835219360250913056831494943825831214118916101984685734449250651437742105475447039050220404134068557542536997624904523438468850817112909760957107743421502352564638166839827026882444325351258732698734309431392524528709224695468050493324838476733627381122618834802212063961494087506077411172916885886339676062257709083725923900616029809633573920016454079671663748892445047906919137616695030933070964612711296401096377494285027882115653611192934389155619392301378212002243074714993594932688915948349911432819256274838423910017983955541948658057373926243362481578434660031844883559574697010342485075769479012033039207518567702715810848365066030917539835484739089552481683337518958126205275960235266536283818570648873483062939213982947151479211117980572375093399710258148203168046444005181156373972043632889504305063636908790659028537120585121248136861456244544939114540334831780879185696490044274922661789935608335984332810160311304032974856384070314809279390237826471217680266847406913320347347538057087220040181703153112414186084199414561660822056440688857234401652813902088519165960683719451237941567735975356342742144996582565520457572744708618018729261717747136322911268761911473509695649098704877665311503389528695626032409362296438524726382782063816715244315776234100028045220435393697085847155718468267623384625544286877224230852360525491435929086879389137863720169237449447370153160567418244933681338107505749007745446686987432222692498208228303694386091715532556360729029118990016965753877277552345699275906067772310757632534070173883379873770163587271867590882568331893301043776479960164333721269498036174505481147432289092097887624918445169983343728476550466851957582955232407254373887877099279121031594400500655877143760213036042279784672688210186162107607402175502459675998133378484665017849785460007949078693792224869251836882043922522994230560026068270981526160617142230115030212011629136180490948755012871553162539252082981891628620236798986530969245190046004955194484498134844408752717526311563126162235434849422014393948084267178694333540923921229514227653876255684814006358607640740787905354587138231995753171126249145271375447501621757359372530839085531895537140159109861808323998618987182036234754330690607898687295713027489707568112331871132585569578975614504013503448680643568147494797406258896581102374749163373394741373503263916169227423750517460469549272805579855568685691142162816161151566336286117729592650475689537400375723907904545834569558840604375929557505449913951319907280344453048826868130721154405640091978832864637810323792898315555081526296938869499493895991497708966956794562803051056509077677833247189068162621814767490713482370319437321894126357541662595960426481719541177095526247844391200121331283233038504633171484649226983041394790845351835186579585997783174380931360898995512536917580470520354042054817078059144397975307937638108668291221204855694340434889035001618854784171913332832812688468600043158265505928071917670794779135939530860213969930457106573832529966921749721048436391302095332016806437296108859346903245900543194298531064633402641286871918323428136390899918446175381702330482237675763258843986222054066502545535737420431628826479906901978985668693648596515158459170649088571413092095229018474070228432255160700755464127455638518752682451687275724371437049715495466156553263085373512780602399302854201661040075483284526410334257702550342494824007505600556886803593636084525445993619602203730271643239293838475149249075711085663564415724846929908629397891908656999552516546221806520069693564665264177850504732039450518429002741488301705908346405157013510612095862590872433705171158213053151389814782670076281212438959833923249665606960713412784291795513181262313901118056227196304786099568447407670346640394985263953922206771153639504662962462752355413484361542644025003814719244687931792785033539603390992984840802586193154494066539834747857566963393399426718558462972404268752856043044156248165802706686397995680088779720742280162675547164089090784607595063600213966902685819963619115281311127209954113984438506209016575325763331742011399250811562130536862783432659196606800286735922086633715131189757501866193439593653318835796992217364536733671976407440264741890257215843057172370018274538465447415561192959872178453995145868300074592861156448592652863717416323827511420717341630766800953478085097045932656445338541362671640663011323900709327390353235571933056165173319807689011231758329510624220719902191249654297032062885929822113684047536828192426623032021015498660560534342858329879551829070177763536720054896063153439521831307832350599388614888294720763967850681879771477543049129664981291549836956827421874351338958559690625287701034839582505724499933066159147930417508172283497982318273632785664500737577734942966415741223969686576951268460604040405928794160016833832661970059365438204107699397587910064210537420596265795234433445424257678321871507255471334036156080989341152751534818410916743314790173221416331753910078678664807567976463458270369456684489864253561635024145095911272722508261830678754731746351603633804072888603107292207965956611161962443504345688970648725850295390665070226930077014648420961922909667647057384910696182725889695511300580207565432328877012094877174681615029728718740096882348826354691394858922118899646691635807937726250451571461657325244138130664186194672881510571066245482295241954055592597948029799794329891458620708806727299664102080767150856110645660429206635133345094450458155610127218949948768923283496498295831137706783265886740985653466718527385531613287232326167679305241036781286992190537104495739186346736529437030709938943592715313620174812022507488053379380842654244063748339065032529222115476852258658738132035221831324649745353196534955051612251977486007363776758238526320341861592681957507419281431300805742056918635503211336013989261260092081615502205878332375767095247717050300983840909082547145556195268251185718554562388378725629041711506523403355901596229260465662330342832076054062175353705504332371272252888068259835123217522691483574112667734474200622309193983028564622456803332371693361414357540653232814966916548112911402207781869439316665859754693453767021236677357397272874215651256496981494325261325645407660571823655880282537490824396381199015311001634018579103721880383586421964722898228875398332573091817153706934083595862891954933869211785205929716818101333661201650176091651193846978163121783971404782228316104828660791953070372763113895309554364899160581019532423093821022930168362173736209190763788545708766415224155636309748096768040106484794786114676206943733611812805077282336646161519597117891446895116266934368013485902654518595562720576267408890312830239968160600121848252731330893725393420950516436346319099133516990615477065372172634884271881743281486255661841839210366403816662615493572291741341192547272207778010837765820876996156030257369223309344509905041095686845730416468564084376990740663782390560080952231425474432223352817441360195839817206593712291256421752336314146809243846784589636094749319391560385181263582158523528423398390730276186300656607807105912489505391949853967306905408356235425285089106617342785220702113228668604769783794530849642493243404630996437786539522186397367085275767849967873692640427521262833829675756134156606432362170269399677221127418628605331267313205671713501384040472183747150086916985544353259529058597309745414673038960628602605144174391962659547354082339628810714279834422218123365908842273075510883665695268841668425804490205704930336078360357040314368940528849651716917323212732955969772148253088227865062280644817894182221542547022631042168323912950930699619721179656122081733234629416644886700747744097294537537601827608258106261132198965973504676327449532923794339131523478503686497936969018848404509722901609001961162509165033736023057710074806923795352240919730001528667164660945401333579306044402980712018133244342610342604248466698223724638112018956555552695191555522003977883242887466899606490526488636839504147841093179571430102543140066864138835097986478938063286748653186030623147210887947361941456496489718352009264139630899124681731195659196100183905740058567969173452569698106102306651842723574887016882612262425036526625555200508910575494786178904984486898860680335104863661759208035577713758735086652342427224809517701153236645710970282301838671213297040317414665894878145862362511212374317760442684593715970705629572925111803304607076476696712461404370624394333161593607003533420546438357709643745275899632611153174834256579919611304825275503424499564651341997716263127675006492817341096586682961494801742323032863457537148296058416039802822944655645041709185485421257897926503838288396205867781752455039791075504464134958970524661281121726494353063282659476205303161548102547914233954932046314437807226972793998107481563516615257113842524635499002845499041532157660454824183032080748454084938272382424603625617343168088628681049448690840184757361022283510655820992802858035549736238061018900647126445262695477881204315356312077843460044859974852810671149862469360135039150864135657665662652618981902924321527940025492636608134894037528735731618818823584229641189325203793992812445948166632521655356349339121660066282666749022020153538674682799229466372911230419737887220767236529546161321192840110430670914593534909342087805803064799136648921661911614122546506931867585045217254312156695810714323357419961975476853088056265830170614956443083003503364865304246693060572570240923886860156483866125695496179620714099549632215710561042552147763549057502080023652697098829088310161903555255050202975797698362477326150316828981741732761282483034350860046518635864831403802761417360143408233744157229308748457440278335823874811126508806566404099682573484146010060350419311232169326828323500048263944905722166067660928887706541630893530957765004116890042244757462116373792847353933289666849829141012162720875551680616291554221356539975249819676893590050047798568318546147036910204195109923388058909292302561966778595015636566620112386070426197018899951072315930711020342200153860185831006993104843574962691450579746617613404067449083994493179432637982817386107455040519662044466246747915003540548389806248543116422622035221958983853432951183692062111724332686080256329259096931144943140592728612454810909300121153286377052952859270778383333736816028776217892165708334639573370759605185924029462938401868018826975518732775790044859462104009287920091847513299961070361666866216582462535248449474974929111011188697520111127912126921251872536488291312928376532565380995539667850440175062550632827254311812236155631972232825810175819878738422466236462528275718281998291796425912756019599869529741164765020350246767381139098477500714302651009929015527482150361812155059691464409944923831582826144810121835098692508444357183834607976008950231283010346117123845889394108788687992490487461528108260182318254225597054057647812561661127573594632057845314807331798308445400027807885350029018018928048651055361529411266540591163460138122267651432231156413061732581803701693162425527285967783535306882402478494713651206033448869245740218641166471481699061257936615905944509852785931971833391323332912399707266081102758257123517760549396101182754755249992966788978167971868106184792934124671710593363987867177413695548398199287648966129294304185765937473379652513543916863735537281434264281930335840099846835985290720431512161471581353178643753825522761284469828058937580355544659647737835942523682835463108068396341104193681485810406615051948659719427415215577557531095562894934061593123380865860745102711206608664246479744026920104786517240563025644745469525236436658329788228390517432804526912041158792043503535386013496348217182878799381229334631101163705863094768940822170610161165949810144479091804198717679554457969022297849127450018049904223939980993227224048598604579984487088872934514152315053126152553819567929261044584020725679981024045963940133920433056576922284994834366559208641915983148710307557398969233547165215590486910529093103742156997838066954608047009303564641902054857352097547818982525853556367518517765139831829480721885520487488175549381862580336789674135271381276535675519965230761466261632176369256260730054652122149691946033049941082105007629978733779338615951380501873481493265441168590149474251462769076182376320185998964890945637856048081423109543748877491565112554515302692533221316786661095502096768611114214386327073947871159029641093475968356192230446814323527793360915996539792305583837709373959428354364063596097279386951771629981482431836233899576919129577999823660179557941324692460173957048408286057319491153442675022019721160160678380996299583522394107978473955802181824755669628705300634001116726456213437298138807461275225030067966018009666495606936617833058338554627036303554549921969817326652282176023526217352936569289754174433381121377102741405357596246141177662937029187426899706667044901604246229360024041480593923163978639022743895684723476283766113051587926762238770132679868399972360985265728850066797002389269999551373286203962690790321430157725562138884208853542976820810404462457669066297988206204689216724058339488221783892516368628865749674318946670584576148794507954296236902559710067151906803883278088257605390529486594956905021045412860040670641259962038687110208610518295971405747688480726209756828430118189402417948989257747407619969713200557218119146833933481496576478746960951224955690667736996312080176452082891739328029818162929618549515526400798734507023534767694086691319290290710917825145901657594031732911543583868161213487673130139947911368276668180352730327418592907182474141228794960843035766163754308282671466889724820773471679116094802450911840675895562626188929730115225321020505856356286416375608798906400578141229931367268585990258714558743291212838631744936716554626160937249524262693360103241838722045781033235942188995105041347717396751406709717343453649684596802552811258284890542953091010358131085893245100197066209679868141627983062041258802173719426409512450184375276225939103793862146065586137520649492357235393741062064749773809800282001246699783824436590515011366029694857897340257235190990539847822496488806642291808010708418906943504875813605639992898160638274523447261492546875515785825869930391653007385544526712015585718594450992665812416611748947348454279114001515338232846384416195563751889581183219471862383550365001902464947232578436691856559025074004580779494683769096563498018239119910643544542185662389063770066161667435786260389676543345817826459802332340736768546822576218285445856049226923964889922836303094042763364326229187858875817747061774064670928850720546032373617888745178581338025607414166818693054852892310376086624524087218933381638668200891011237369303942239830175852850869226826063798523589853725038645881049532345021802472276777177403941164666441292178340900180467961185462214147696698548569424836171139160190284316863581141785530976562264801168579784222266365141314702036381642010842728011943555992611893863867151396287201318754918236097075485268999991629198106937893557163970986518984989192109032797116630665151884382687013194567817271522519428984590393295410671701809461018162513774830645355198394680422916191735543656713849592518150288807721681740204615467057078012747071143343116888397228216325609810799993142514706131604316339200118476033842179987558694114373653334054510223953322474631676664924688171126640254977070654216072687737500872431748890755008417181597330540922314057111814568434789226773160510778641530940466611902976128171033687585059483013050045507399890925599680386738481850640240123354668168988301734557310599376624801546707111872212746953486838018451282020820363138728667113060134542170248155773432883797712173327396904946262465543669156829253841192338789053560443610455083453727470878953741980308963846695576903820582512968538320903491626994969932281260789420767156859718084577914108642001107635049822491699867810210977095074213612281353287045019294161849531434220794633912980559862712840069711538312827183126167534382106722110252852603251344096481635628206080097153864456496777119842493216547228992737230361547695249356692372694199897485768549112751663197787718673602821409529350699473605509361258286883931880454364520661464308610653683058141620805082315270342950355839670182534851149736506744708594889242060956564312278614236908818073138847811409395297637343967861959078296503608260590328793836589489656738627052077625147592258692411340299040691456901027183435383851254441652433393302700210651943767537760799882150388374953673306043251151245981664369700844278964553116644761085284848288523536951553765209406470614164866414497825717188315224388693122729583072240117984897765840745423647699699043481594295377223628748119256017961021481548018993582330134532706736036115584492148963249569475897057108788384644046213151553049073211858229800116899908657771163888809045079771662451386760030128727215241043274268459911594616104851567848833015791650795885885293904485396116142419675330014839668176796873630718644344261510842643592446356582594135167434480319923090890643663809467231663321015854415289296949809229666998209403218402835297313754828148012006409023923792560414938639678219201555995433763661970693655509632855834788843524361943943826989175457070739530507180985188243031789293375795437068903342566567934134491382529585162183675986137086485005763387066849617392290413010243555240294149498569141334054272395541997466979605784488993880298926811697066014231480952851458446261339152394644257445229828143073874832389445568649852724099436421747466336767172408432314113927700421466685934252524634790980338874693836666191811035835708558687004194905740636936891196216257435545332640757887085933598406954740940207328233663245298191913736805612211130627942567786026604155696274336236050178007799041951532707878042048773781285572447477211096031967431371901443757848586244831466995688743556583842974673655102821984157421349433763968962739268539662012852210691987260920285426482453504896872067630108188067610733653223295111257212946131431499189203603334939031395534838990698452826312809291572339509381606520857668431294119893309013427041325099325892795940081895320187072258423778288441070072822686197344145611955214950664064970591222245821676718575072284213966132413166885142794164454094521608561236847561479018409629188665135366506921997495241468217013948736158227143003399810589688450551435315710061513899465642388746261178230738555748756968167644997369975735754743226647720727964235738479450985382164544132993267531911715453424808450873532460413325348466279992545298681857813237154083189205349204282963484127720486969146162997280661500421332075815553585622305482679719764880688483484195653785895410371834686102019252366037991069586625129191269721054994933525947188274003284834071810594039504190586521403013946494593230891690663249275452520351307870100862128737162331866754390737896226364308454818790008470402908049203837925334883377877392166407841494938534407439576184465714851330642510886757295526080796480970869099513205484512693508594509587779567641699938651138491121917609067544627688494545252448609696123987905630678606372058664766961275837529547391552597061314350457883232544487376082490074314863490997756449183177359191428504720592102238193666203982447143773492896104305162932705450349946282150014405214674649649137830462620755652943776790789189957177957856911210843337148841538669352054942645617401966977802308534926712819720060593314673266166589834590426928140228709112446329411560078945504590318116483430271277761340109270990122743954919517878756526933679282134435442367646145074841791970791622513431017014160167767202249849231672821278764462431397435751701648382290181672120004111917757290250410827048371641607130467151849932583751137482241398512156029088375920489269424316364046012632409215873968713150755039572378730685011152269898023190118507530830976313367207661542218401648790897949761556052759728470518574764121990288095670538118574812379573770619832807959248247938319437843506345445267573574291153237520435137559151278642158490727905443636865709483494824305927347228393824776892897736904832255006969967161620981295272848526400071600987168989981184292541252477182473492549328653002501843503735645981857978677453407538236078965714433719541592664648727709933437198253403633322004201835713448979190280582681583795334448683402530410782195585840677766002074596425195403569197524946114351506267289223836114781518562743092740443689667230978073061117623286290597170264330661190132286527416059581186921442813631344554507943589710775410529297209277141548292708353101067570373583445796888727514595010054342788900059178375618925177773377031714247995290831326772782763154011515281934022137147939432784200751296825213053051736561899131230504711794167403197675108653279467124279405175466511511233690565012919896499378474996533703887977275911933161220594321386734172423657499140112355782761590929615958977624523686526549489708028453521181351249315940701782478385292847128559152763346441270153045076515253894722512028098438375696324014769946557231621665343512104653766980700557394318427766829082740771569309839801341197703482323776477942079005647304239987590442563300072177364442962831853563574789162835273308323827388253153326243001019665162853605687893828057122888846551696845270350048125969230108947225593244553125377415387209070169324123952929088937515848569587161711331042737213387656446322376698476666040139178797808561189751891917015264304157194593188709809426820909322975439856503056674918848807405857371430267940117610932809838668752836654045112730696556593090403901122745547806977394904262007158885325563207112475877588935780295870131526879260824911952794275573819866999581729848680746062855645244886139136762159951248249031598020415503197811467517192202845081486318720475743976647111438818322968057929307618483202156852788997780838674268985121935731679607696619356900455727518158131447187884464846776763754103427023698624085095051257429657855614028295057826325510815551618298550163262165588425992776124438302535319564783626129820902153093509062722534038678795139396944574976001052083938448081362049565455756706243491968307949013389568531739549173442010781923039152578915142049654429601713249415568655297532765173774894162057420451803040998371374125315190387153780503547259257963880367047496687882912256383652215972351348329568187413819268324900397850341350585558543446010255678735890643821820653600018208354768875113191964851804078739606057975117388579660036372471822878522397270992559329409481563815144496074562216819059242473757523363171851155745283309125964317493779447786195545979328469921264592307464200084254922047195083927633653217241812506496472253598730597328976905277571810584519431521218145917814612859187817035912958339310713785930461883982297396094358634227039798556409792590618742607986669159962525093081257732471540756741109930603511250596138110690486830152262111995658299041595052489715207344041142679370889105784383268550692960050963639332558371758451262394251442045426043662119771012486722013658892194292358805196277451497118024058616825083522993179401638145458472371604033016375999752044546162046011031708241890114816598240221861169274369128789553132920703381016164657938820403408163094692400199767929492388570537584594555370923537631886685853754729424539976992731543629935532658251256458132477204236975270792799518697913677294107873216227341124704009825462244212832310319107616382397841059007952400656292033507808358210344715777120181919425700838840948563620434870098568007841681207702403337294707147220354691788805210635129412831437853963617248785042364508401192756067804857679331470115010947279384843461230474937393236117146568624760026105781857611692680084055901925698964551480907805194105239227948472882293158844270158276947362928047274499077519500438639648531447189725533995401972745863765976930477856754698834889457469563438168008724025846007559878596953819691624703295819766914122564221755821461673282991509662867026514861880135286199109141637455831147102255575754565158735094794476671360914421786341376791381701248262340502414969911234462523219042366913005530067764051894703318677083384535644285390699260647222875950725045528371790127500793966283887186394675422014575946467995998200590361027309753185900794696235366735454542824344988635095124736127387299079853944363551027220030616939876353378880121745712927264856404422860007653713528842556221424944864225469084233375341221490604157285718840280579438028075553798766836152611526709628939273099136928220119385774470758037210967327849524759951994655218615457471612817119129783434427129411482191852327228726836347895953708688898756161681638884153679676150738593131710791816718500830620147813771796858043446362544703277521448758602684806540457215487988245854811020722794109344696949144247926180973185471869669081456852727126238814092856054160029612467921597829557191547014792577725506097694067527962332134468918253105323360943926817013002693715190668589018597232829930651147273486053537146175451687835530886810483305348796530903154614067045486364394619758674691548300136107024969107736184560179758853981839152611633587590025248093779133092498737406281861994573211523034514444663075176386539876212650175381630274840573639017315719934622613051555570150605821841963377975736795687248458355428459103681990869837978477135114808899013389791098505570203500435850471593324489859500004504801114144474404190141698118955949337190159286198960607210688305917902398648764721065945983851802556469503623384464650100624889819038590369903649927400244088613010753612310804303728930054701487442107621231012521223345591176524069736016810359205929356469388441046337296507943283798040355051021828663028108343346865490048999614488971224573468983607276557308981527989805141494463311607536387934325695702749791121826414562599461414820607377537358005242843410309492907930155593521942875339157819274627476131613813022706590171535184928176002568697548275659267057206676645191042347726014788511673879876007195815492977126933497603342904276188836048924634749156043807710582029155739795294907538418224172766470269820434413432560867579244492243920725169638560879348090961543019078482897570018579391979535398501305008882801768275119934156185082021020846037746650778050775850689954703338191839178037053773100549016641040981137388443435451620336974013495788733137027756610567321336690477638729819264874266910701042706514843508402971265091117050805569245009128497485739519322297973192102529866046849520461652482396351311625820990375992525490405106247169168881594348150084121757011607440908108530457577214027958646198948312448290779382303523089280134138428322969463978458026193835346802648070103935359049052647730376027844848096679275924209673260825152233329152529725403197411734304074052178346167561115925431315315566432816618658619823651656967455075238175075377614063187085740837434960189268866909329619012773403959476439438074308553250101632155056698041966839021861855695450505069055565145672212558251989735302831498309894963316227087028078054027142686743145084345962819554017443875558914699173165185371943938372036142287669471018118461021191742810393653342603036801558679495316848537778019872034197697601971755458669506235667430564038640977710697839763958258987050982297383697185209163005115800501839989380819047593577744651620261785864935296071431998244866458490348638485386747399760036985938390059744013285654057425276025685898000961068521241649032770078844670779904772922957489970702280766010162108813674893676839397263216637975301845167666830030757367762764237771002779596116056458611384077446949151132939160036740167127292252756614878848204273737494565110714663320579769762981399670277775830395026176175934002783064010611577193058182414207882897030874348278319963632490677334689494385932839577102788854277106174898883470439232108779273584479527345329773957792181548965291881455022967551621967504464251902126737863991770219314315240978707884930144508063867660278264439573884885093219411306871415493514027256122149011607839333301200240563018420169439627301374868485902411333179630001280706264221925451704188481639948624131825803955439662444534527456666088890845307276403489770677360225715084946942658873559345410048417031715654460443898834543412187086740227216531920641515680175866762552332856470379966685613024691125915815339042457721509353822650899658392637733155963043604156888025949329659363655672947191155294504502624471342771856852756788890147905409533640746498746951670193829555800050636286479498727219891516515322282991906366916557610443975203295410614705853159129115393388266791905718032776300088597929852518916838109599050787815146519798348059126258048279003808534475800066509845486846425256657758965478425870872765519692173321554904146786359198282507458047869865001918196434907960529855437797503329952977242311522827392100122729890032930303448606949614551810990119764274939946916534703663930132282730416637283606009886076867747262607988226270559127367716096658086240812474253680792112592545859331317786526767679603328019304339749583031393990143738193011253188539765061395939170668421339543554124848077565508215254067557374190130382779540553253530922765606330106241666162865686759433962682337455671279914594469445037982990259727391569962906435555855078815206163763726741538436396167788133175911039754069283830158022942541879584420904538356599182006723755650424457575483806574159183861278237346473286544101603253044861272845386691336930317382630270369181304417613172099174062137105120517172137254013475792866265585119542898372549828470658835371122391701506853512589152197757224149855829307861999848144402423301629422149685992169391960405636512024540782767575252172071616479432821183709673874308413873637357680028864518951758201806519737964426209672857150234615389207818786438845779691245090901548673789957079810654242349235576427371071876577119644469225227363660382131178089274417509487203785653138647954279821591772021170239296302117750575291914565833452460283784707850167069741209019155304883685899778689710046219546882602998767586705134581385086637129191118101319550009362909675187333009880185939873355637170362367936051071835682088838328128788831679552637592823573332355223087026254285553360302811379878795125689665098479147879267280712318687871362957595512169478715429957668526293089078710092455462124697032764377115329362786364905029631558552220411401020213845679278243286352832502354237285569715435185204722907499670467949137458117941589809072568452728847252305023472602245511195522525628331424340058827887412090926570334693724748911251515199318770892177231050077449428773595955582489756795246699602684715841741685667722462484168919503278052817132326819559607993604791561148646064923643381540828039144578374845715556174422300956013731073749400065085890935163442792859940343974370560562802636137807373676128603306818074893155066797154661599401791934277656869859398678882396424668077558409462106010265148732459521852143565152220432753856762279285396947907641853457033519365448454680933398614476723611167431548665959524413438575666595533411171659930238513674336032861605479784555435501833176197849067851217980963178459654193939252692756216165570142002168665920021095835043350416831594561031422223059345032675260230445006576898439385626856927344686655350433223756472728597591766609804707746691665356875542909871755833060298061458881685716684108246103814259883367202095650846380691793328410991411944865432953888293744646996644720679779018291673993351325572931580376727832905985233075653035101021817042627142280551526340985070359962544518157298225603893970868969278209755032136054288013904657324154140827441573680211088739814383344650768835935390364937980324736551877002632267145905689761808425771624466168184537651904179061435515131752375009698170707147770405644617861905269700239906583347974838923667295541825158053758142376183922290101811145745871193989041214788509677058149722715574948039770696201497531166816127433548220529468172220108973871456144776480162688421396772450969365899243596383564412032967622140760871855365669893219977895664955812950973869637088228089008871853336812959559911692224230950303815841836462952855509558343656422792469493000573185460261159783232190075215054328532929420859759698018214953481889358252418301229226774967569808508499289263656572822517326938809427794747647584443713483391915661842505648218037669581673914857952851002764159012896581945984046074092945713209464692990537106526761313463723498713204842801405290918811078797563504947998551652944396978585464651006265021840966266381857684206606027042286534155598856904505991378232882638914251442204574892181646257286402850332175820554115843360987411262053825526553502711995752143142516083858654007620470489102500338113321653541839682574600656385016267391032168160269697669428293585919677468350328201151294165611108670588137536278130093034330442463380320882782157133356559683090068376201793395643146774647738733525850060775341508844226374212875982945486101028494130593577377334317455568120637977860185563042796726318391820556733891915878865989207303217817551744909671141037474976877880744754251236746877293948632547930701839945049289609171587237200403363192231407245503043044793581190942650146684750950544006118441321197195371598340356714899482231920048819505971656859304713865227219919472441394010620877233294670700025598853072298891129828952118990882373571721548064786750473406041868165514941412301428400097475247637370261310374015434539668233421607974719753181536490362611911074177948069881295073607796028867506147183390414915479288399483873294788491059116462517803233627181737913999691764885744917512402837355193324771351501360674930026342469525329594792873238575061445295096274772555022240521943020063902346606749240872277989050491949272223936508046663553752552756064571900193468455099304233734612051969966603203651320124062032934691983709859949176619670795709662962357888597329739526940887335873379538965532263165160547304563449591609703210229081972195804579319749239278224667836113624199341150354488129130973205479477553194338978054566781515549132560318876964345466609221524108158375619094122567835794928993859856905152757931213109248361807933531356479018337562375658211428967275179699846035182721119486623919706486664492814857475731968821645821117192137776684108006079791343986177827888715966520628472595551357578593857835344983769928721554342128823997622112878090423685736541795277210584670405179279371436715070236258721007406161039120796655089195963451732128433114397386611430856557001041936053834333486636674890062626333610635526388409020132404630377276246138928912211600337460690859075904917826384410954520178170457378743692066546275310925190182795282326124180547266743208926133637017025787018673442151433210311561051016881160463129171595440914852104477351588555792886517413139270388924182059066831815892432322532065120361903418375506648033436506710388833446719719477884317163408013938849973996192197461612913113662918356279306456538545732570007886212523591691653230765699420520032116767181140299852304104225428995875037938293051278579240110665458056164055602684286401174647414785716164214082266479305385756349337576743531197902592240027830404902861561695751376573078041558179209521659881471405687940327583596585196914163543263797332833303549170022380511119386905840831845571944249034866472580733552559142483954142252423409617813102306979174769500331934231142957044876863178728605340917292967663813099150651473053978356889002658721603975411571536075619687408050291046588764037591859740578957872972030146834783970552305986344920457960530761088320115854602078789541484363649391314288829627041594187369630415531217631176139336395090677812932778840029340172528771284370163745057987406665537720698974198105314955689772037460290435354360717176672419489388707250790461785621956375946356079311681949349129563555981959689665532337469794741153892955799447491810031934721986506159728266188295709646724978214765075915223423719647731846743710050760519952958654891561184390123228650058222157346795367506969069709357963573942992451709085575327039918549715502903187301671415601900347506313017809080254370094953808778470392799804252816326889606481809256277468063202718780412703890914726494922309589768316960366044634920504265541225930948277412995381866432476875284631403991949615168152478237338908954647143211741777423299010638279455876047832498424442754388777724272560252445629817302782534889093839732129407966302597703353588079120387979180025093566559876756916539040450658681180377480189629273515539235660998948110512314772006622742145735896467577552269217222904375898486814168525507539117615265320145567870807123767184813166807858926905701969159144224981631235503796461388666689403135174192458238477615963703975475490009443997183650738139779562456598216004938513654958495598863264350002161460499356494616032507687212604224842749213770037722556200064693273682911085191116189093058062506844678849762911728596408141898615100963934733912283948573687669201000260637180953082105503846342512851783086493954322259696093558214924945138398150006215883771133673294347579219320487578259804768703349770291961570671388570886014500656896977339687762930079808075847475930385414316409710814870287992962647567759321056786542961949487371131536540523276848373430812975482548365527764447366808379828207722545082271340794023390717352136001668289992563147383202228232459783085850172131057686460153253357590448795656023502763041471518655710406194909167566067038010460138267789959241729433505998001760648710881828906632172369130502557657318224289273850122027901798085672606119252262142484215177431758264749512508523117828076269407290782704467708556894144732183254284830361231028045690243898044682901641577117786015474175976653610322333318932215720201256055609807502554597273177360970756152050529507313176373928659216290701137794759343631271549931725013986524018746758423646129285605253928813975558519798064210411961749487390216910422970340268212807883654219534923859852064391393975337671977299407950397715233848185379378901357277057007920544972493250402193969973464756018920081458654488058247676691186063650982878702771840952010815020430180718296254371712571482966219052291830825423762152638562901197416757947035199750711234311500710461015808952057551016839006352900178297651714143183739098895613137263474151158920697352985548149799994087169162878336608167096620301930873546431368823813770963278824919274330632394140532600661484578869655205099226422157405025617676125352306466286565711484357075937024485668218703360446408486407774842701158470474953208058644489246273858842552001537878643520655103152715060007184751705823163007422118534057456231792561968535257227036072099326313397594515665369869665034045176292118138181863282089324906334895199422879855229971173764634730866044613832015490770349143096905007681167221708243158955934686358085405347030552709316337891527060920139054838844620819323376178459069874189946053235341408461353330120635025628450721109223062550267506412431688484112644128984713860632554080058611724192351047475955889918656914610967304849051647220139236272560401980904420601970107077682517941426564919463089488247465718875761282776454135265481548273867947168595197592165701488546841279846972284046890186855555209044241611195071998129037019764371140712806738549915796821410709771304929212339000749944289354314268973129950340014464498191564704279254657329666613498472076880879561214210710075253589250755607067240965090952054914072167281650446770105230058145527147106263533373006573493535911484170610909222740231753634442659086733760248635542511349505036252888177093028978613395767167671011811439738804735579741850624866884011273708748884276594255175374885268458824454722563824259297514137902401644900415092417238810473442402070954835518595389064902061384711661103848035350435902325054894443984040108786941944649424763814432607654255510020993005509654971891237769090025166861585192297416872746072276494174392213329345458606025113284515889502872065607113719275079737359332595990709394918747135324899063176004047568326787253228315323464744261655733757807785674401274204993764724379846551244146760763647075240518560957579021608429110969225770061953973125629171310339479866203747652946444283020209605795036656036580704930785099450300168794973534035776404880643200236382092312346009229670133381847521134013264349462397491172614571228618192275258158320481094859073898876974143517146911847470818880611692316063957930911782537506194909444553822808372772308743337443555232502100012631561246543244213768375281320561742041451256597048382308199426350653465682469782236772136324509904115655247228455434915449309011895727662616092135967798049587641472244653058682341249866149881996414198743384066402028715599233069653391838767980076873282500410918435281208070785253464274544784241337423102437313338605093890788691729230079364918044865186513483181559382846139584328893700845373715844940502574743567200679637956674690461827038139643471325406795131100486255852067220240730191950815356031322530972109952436589680513549964606657889375115495636127473911009756207910216618616672459063277835813937723030527121628939969094821865388863140842197478040364191811167159503873198113572750367955932591147914410003153987434714032529678029621332693593355285153814281680650159592125229705985345611723654381826921341848396568997733780958440940202742159849564545595160152055089758919993856966969208530013618353526887306802682615256558713241765654827531534049013728691095536812121798194513611215997609739232008525741150514163527905593922192852041627548653391146118700257842935581644951331933239258113014084273594399710432758328444356885625921069944063136947913474751124607766528342800133288768046255386953409792266083751439730026309888379692750556493421090286361610195745381892638760741602148753800277199500492118736801900640428313917280699284277977548567234787194974816245228160280087982896000390321703974679080149036606034502362620800922882110523568839292291604750485054149957759997798962423959176251933653859974724777923451156620853156829189326457432706671308190247938421271985184619520434027156013420019443187310929443953904313933429157798370353035141196308177034531145388511302382518948922557580855752221313962979314348977489122099233505388340638428514548212527452540132340543960387220896170203018868558403001234369615429670598185941471347034351682113109302356037441571731587585200824517155290465867193941182308296379644978048127258383942923075660951751289600229333255698153708073290164550335627285081752985036268075801452081731049307024060479362442956565298895506912439364298227020437825053728275422976403227185136521358663104082650209172246031057764599708281832253381384184933331901101850161490094979492453740576968833458314390470404367392485286382222048576478010322320125372833970647387017063248364067459562446503754736278584492783701239458463778815520388803489530675745564025757955014398671574288243147570546204787027777564492408090341916599230609354513002932201920280248107914554385120849350433834074565292850326377599052246242747873509716328318129243043610747986097725361612770488064500195227975265162914500995337173009937172889429639409149515530374723481263317015329559939939816456289794204002517388682655870795461288274623486333084972321583337648049777848640280242519606147573220788115072662361235342075415550391262011150605122330098007838111803682381383691877726409232361089446734515762948119766734861295101925611720521534902836590633732115566231317581885848830439668055084218820717216996158201995591262966817055431263929272231440334649182196614424878569879304631121522025195176856483427256219268804424600301097607229104678197028944573347248486554046726454180101347366287413909005784086523693653548697736950582415227694195794191408574481749976518921271967038749235915537416148330622738265643030865244986763159742482311521241233308335875431198790023748235231128094854792954964656780535073169549808559026001680999102196493070359732092559786478014594797355600527964325796441584053129048373828666323212652047202999188550210909179242501324621835936579352051356760794836842496909908587118703453925585349318034533765654355152143152294373645866212068400602477420998548822017520101726449240880222723227093765238095756899250090154541488539785731631445194052665201326417095128804775476823503142276737173399954517196632599922740652858836626510056814993626223253441162594545637683445235285590160040510196294507606526938354796352578156210532672351677744190333078125868100472887750174566401637776697811413942613813738525913424043529791924928433301753210612042489040824535653970624726259668568558442376893587137787863187330145022599357929105905940847625556056234527963093245193131453147534748678869813004633776610865231905452777537954482983146546603387738418399109646521104840348118156425034660496613481764196380253071765446488295355880890078334515365695403588007165333172581008449449077969117663706552606268459756758600275390096549669729913086800408237521804412259849756535843830848046874047688904138863705150582394362042908261644799184898943885873683053138248887884607010454069866205232574999927502429815396361950952831082876509058244590716741483648477391282631923413843142773858741888802712314958981838978503134997186968297299973698185147206056352242639288578063567135403248374711382766081055281002650074492045833416137259768226212874743868884528601198011416136890662982793872415289027333959738617225984708828573139095077448198132410437581704856316896566550364891807289830269589104934490094539592510099094893993390609248813365059569862326133506794910425268607905528770486238386147935266350980780956829568647297321488027899989473477337578822478191124750203512404960411841547537417132535087254368800303556574343154578415603726750365081375390667307518338541265448155243373919780840413140047334052149145831224452084894304437573019356652502988608861401946337534771504780318779762037831396342255866207140529272291941392977382458106461113057080919855864374707460241144380190612088116330992128955076708311195745603319346285067537616787786999767728817619548651010371226651258362477099145726077977107373586951794873090317227399237963817224318502200897578595596886342771462096419872549538993198936934796827130331249785095087083569136625991271723869014211307757441119152517093267326247976052129790414026838894510091778266041108110639413337704009557308529392635601598354585319530172063859026838039958859961857180432565202443302262792975768172940727629664160536774905497462511546050118077025363566195534274030950956986713999046319063630019158586591042720856525630921354877036555062278013887771869527016850052008974089702689985495892596868665794680022592302396982013172761844117544110290991776473204440624722757712446459182975075909454085322965732566664859583000074775128459840813935913666773860126336431578234756286534150099567841675643280724909563151506904338246119707140274600117421800990596453681881038100035712130041529267995562681459342873807780590085973583854296278595734038678334938302571285666380935771872220919727537249058539067127505504878528976645023308828291924367032892162916860462407041502873653172648823467209049183130070975326307018759757311661809344231103620845726011277586400016136385154563003507456192898990309627034401701175722394029541139069834738162544496266390495532886711505473003685218972000399964115088412368984521039334870074747544354955605510691342696452579834331742345443967687694178142825948544343828152654721380928000579523292029794302140892091752462638769554190933127593288826515820619270111124271646589074296310048710995781540071619229529838823036528950939812789814005118701661072941031159814742542712722742114487553576619481023384786084947239353330511915372645132284025654951231748585274338502233868461290025298669171021396786604954759816730414310491893754023367710539312528461772256131343357350711135474337454821180403540480874297229099199917865711858548813856587688717814638715899009670844372793001260226908780243217480595032021726738952839815355131322383331333674572106659472692676786149592633947921838811702821230623456564748552967192004536993038175853691694450177031445341277270630752590061400594300924477684378479393351712456493776770052573352294264280499062503121539650726448077137569254823400634759742422914211543746035311797834160101067700267248133101805625234193407519208530422997580262207902206739095493325750751734744079126597835289463597332560896452058807184463123778862187608219341000098650821051164628352088606235020651373395658986117595389686410873152471910248560676282245419814505604741889336140220125121868441611213537516471987436380781645673721349765340183560173337198391064039069105156625695252622702873344096322321945942267915917302921767723927391321383710079026560274761743675224538961604556446541863652665921834198752617878548318769243919432905653969136502136674330000724537454799053216219779717698473559624924999830529173486350621660318154477729704144548820010343626382014433010466046321377157284114860819252785430889024345585483164787555262145630125187146565931724610569323359198044197561482578952571485366581921646171239926444757445165418120339012185140527653535633385613301538257253440770204607764871764854595250935843663148103890845138921879436484557145061618923811973924858090993599788209828865457579719189857901862654597787747968206580132694720293203613344691536828687946725594363207580087511282104876014369093821670258205448831163632715871089601323026298005028828305089852904115762056282870046161331510305787445610255586125727461111352144886954787170594943874293758185798600781605284515229719028421313610309735643872729741805321115110227547796839694437626390593779472031618247241213062070113124237283322730224110338832059015900882188842182612311011109760186569437646035304447022892726885592123342245784828505561347237617280636476161362861376707856106944345496118608447168499336978035400834971749192086979990788747935699646045659107189198749311497144189436648736960006210656109352190215714405602494067498054755901490893526631367375026780059676617300017823201775989013787741887832054925140153618406931093268873481096034105243820484577414509765152285806829357325424792551073204816420627172429128789377776376775457207268942987232630557320621404535557763719761555289893683401084022372965055136015244944907998114742091549942016388194991685597256685235026660967271209281421615925370500720113138483370713425815829608828667158820617014142628884526274994585047793809061221469311297929326714912088501893875407727677631204856071127648133927794591203852905256833149663949060175714444657834481236411919253148479530966423168142563092518186672474140246754792586473675442963612658287995385307224464976155893772028626373519585020037338055080186417044603501951192211077888974913283057356261089082869605012394334678018197704730258946817600880259940354594049470993517445530697059425240413213885960862003968419282336584543697016864595794686726487576773463965626769710613135284347674753375170413528729714616506272510974683225005606217903797976629130906827304887301444992099882710879456899162553689744431355772131590610678861805841867882292453958306079837790114076045288406382143216946251051113898435327964483513788278722513276622048840833582743126023811148643330155834406141144749234875883775085737762258174542290101590330254427081202819335758294771616334295600880380247879823900180250019519154724228357993178619932822480296992098111049295873691173725186760613412216834809034949116199598074324813612225523589939442514370916100071464122579467684458552915256150852331500183869832585177820587861930186692084550067981516546433981285131679493757544361185539987877550660172908441563859415549674907747919273526879619809534160605619845016329611149841387399384476967794651604255481771436070439021715072297919730854576337327120979533697098557730237296283022810460308028492535787102189794382838377040968690873964417771312231815569670265606015625172533440959277415557662943125284136774075171087129429134932245606533891943977864494855330281526496755494358875939978610685219652208049014530897232178663963266435780440536953692470757585323737073256403687791323571287936719576029151843770418649325917705896156067568137462247565424862420999640249472570316092487665808773500574827635215825569664891185008087549991513559522424864210589299218083415189740345251471742409646036191506476375321724279991324938251707941689564070582216992669241470522525791382644008595162842759513401974955578766260043329685489537823536151331555918884355653361131404379174422597964158695957350442744877804761828840566135069750762902879292030007919184435334521273978008434695814412215289142130643841885403986344822164905066356658227641369708664286561851118167091275344872418960672994511308234442376383552755021888307009188353496653899061970457914079896280753022985968868403074681587192813135445763636185110056356900519169575381059140628472893261965470402212795876997320730267738299192911477042745341699920820279675353980102768632545095257696553560122591731321854457850442339238945239770484303443359956815343627371933042251857357042210590664860078454346518662055202985480543670819213535852329250831330065934581528145127363840365777506027416831911883550344212239569789091718978384149972530234443731052136128487606461998381979623061044319352375451767831648511293578189460242777532571840748058860177706078047175432489349512771675204401259515102016359162074286293823440011400497276925828470969679427361438759919299957711898500912906341370835315712874780737832656002432198564537451181391258424140767991777553530619396277469947322766551452968926185587482115151820079948647203216795724336902228839137345718993035183855573509440106439032926870356462823636523857880713250814309008132156575822883337948750638444821290171790738249944664976339770297662687122821510321584182813955205374679397119576245114791229769515120690206451525515972512681506246160085554313733846099277557905252576996077503617813193495546072508156137120401220122950625664520586089986077848770189583976891569726635455971338976732160039172937135275859291281643003619442144631018178685988196524964343086267831690679999460514290654287194822531841843195689665451098017464734004225872151979399209461167871835203474884728614932042953133221986733638765659184272868950441678304192411959917854002260822727184009946883067368685323830118067176301341225478908201214132956967541657388879337581820850802614243560930187379678265529506504448349321020701096641035059419298828352575211660787289146907271356024591734945369060447258756990657848611647552613026090710427256801143811046056275546531904818877904889568498899053531278654319805386708893717308328328899826133518581846533526830534105803687607629139642292291451491248911938856709014399968089481784573117967464709251444674409236382435907056679933565444709622843207372825675097782598665596476113158112504368912437148930845018939113382066340352246916159191038304947361852365548822209591945171017503030680847025017033427858024994561664436958225900788035852052213067808846943826847864762596595622230356860046583133998419252259321940511753800519212339654075245212537291104127817370987523380011711619300849378762396931497599392742168400284462894790883280451074356323874694426456660196177085135601571183538562277488773428289868489845895763968802823330452280719508756412596041203812777372906802748032518432548032691678193982666289400851446661042871655150292899969522131384599939336800814825465280915844220833105642183461500438678880385450433564876113286069861567990520946468624279213383662434394137841787831872850622670905696081234043469919520705741037066089919562556340493690896084251072368596412647339137958845920420750743804608586412794631560478902327469659437937805536049744293876890063659672872324094416144928078093445244030648575567456229897674231408579700852733520128176549938804013908208566420655576693384283838348725638086256649948991368930845326714480244630469199845182739482790652591035614390879754188299039931288587713250633407368660547541887389718872597919061388855261765610217915365321455914094864880707940615006646051521088384662075346479475414185498843694783791084653801120172173179754900550199920828244369115585394075075061250768347983283220539105308626521088272589885532703619758424558902437942443369911787463270142074369783637778384456825680624079534097959576279091712880120020684334041028478827579906810823574446583788822834995897220722590922565444379367446879366688494071581423700564042114776528658546721479279019223903027532476475860731443346564572984445533830092181261815755844899392150974235566867930680052855575502808606178666314790365087725374380446953343561302756659353370199002171843972018704937179546112025642749640745017154875653654780370826938397424005842561179939404996143711918306969941763125720820596299648475968586360294057006434652318497876403608418410136820916054263605831429552819952728840431858374224259408357654296666509462437128998482816092364653183594889785372197857864664438732759039774903575866023988025645089442963331783092111440869838268086894546307276467799267431698970098145835066455221197095106653007264534792559303454449387616214774215517944152337405459816974549785562934875970403378196319947404215841508976420405629564631501114919031052209228768166921691415230051082913259954549889524577685669367332638061802447857359494966028794373921373268270006490753775453190773569544750356212636757673633594306678159896115600320202495559112702790653930823859955132932744514647720952806106118836951188985426372591383309579323268863214393051448681631565754826247479915475388006102032946197715759486921164737116741588777973285826910189262993830061915401333168525673622048239227771623311822000465626169470848493915627675529128923926418743158549808142881915444379992924456239514609965384991558943043146260329918355431376175521074258507051675201246870741860207195706188341125341848860907713164941067688049991013117648344676899477781357911398447698109932242790781052273237513345054029818329574496699762254855867120524686472457171874701873615529956709623503663587750293934838546554605544453418720490387664179023400839856164299536723681088785151868442582442197202552653699054371766050040609344212097355884924459790166812701764407089881034709852538408090155238886199480597618208135743626358030907676623142797697884977728757193098633344051019243749813386309065671316783698721511519122119778780062416707958988822121385099092055108266396933102657322921120955299737744006524687889447927859983714123918906211967875483129486531034093466959043271131203185980485074715111503446772594284259810174609548851722726986295758986569229322723647388375510114737087643273658219750815627361004746045426647039154632324963504618422023230663688740826826236059401073649110765586843650020019961185153909819215742916177589891693020244603616460418676800031119355270349013624399446551181446190989460558691964276106202582717615322523177376895070504874033709287476743292152283214872763864812883670773834368643017644212317876385547825222103968391663983206546479119522963860308450133245935961009634702384249442939993439900010692482341453793766715200710078247833212884341466186952137285147858204983600544518246969816161909222758388033951154732305162883212511656666568241718067453445496115097326494885066785466991260724512807033601623702272553027405854660149445061044509237087343702460499792044852574366874095244445555766306502663178261194481509336211037657974746438418809555478101005003990954231473794111250806804673380216478966654984701311252948815147478433037916520197901097493634118133966777516628845956299556572851897574658320988114368981734500206806076945233052245966641443394754361720911436147737333612590995130135827109083808720480064927577460474463463017051782713935034477962933549542139136275859274883844684059092424480859664642374098097051321943480435889048745695771384783647633246499252941582642527937794856974934655263214990540638189090977747260254391890891249183095068666917815748976712619015072114747290990520481701510554820945369281123957589257845019497671359056202215655975775900598721258237165159305124691331805666268048894236403039902965298792852511694780439707175727752689550054591309006723376101714852373195873315699344221318787591249737463145561857409259702951575429352070361226472438163873746213607848568459343847858899801437877016653020379200783523071847481824003984687928448288860157931208546929160155830278342659097314395034980769613306647846593748367550150041188077480603035640143157275390879218777742702559656563887658974820382312384559649563426443351884984900510056101958182331309286703957476962699630552379177312046225131521096732154573143658372764433226195921778036298794057124168718028067086312654427765106729266579188017293198328517260741987120256616432097151940566104750418616028777016586197473018016134085970620775959174418136571519733303035610715714195781188819598474957887125378935095389894509798930860500446465219296956746945121408265206248212318315105807340628668191876195136526176879242537615922302498297614867797523425232395286347200311896224757033427538011923647693991963037473290697262777814047898338193973450663353870023908906296703647716695431317739230345679900408066893365350188161095336396003116455153944870867729551796858862757653452331669975627860083247335586549784800679370281610582156969319226385115174483019028885487443896995155039493259821657591665729588142238841458533933965372063287558606550272470759031086871815338652513596372424412874728420950590012522567598782274383024139235066559120714293742825132041127135762768736026017640160210357226770713523693256141389603347658240402212845838858107963903936298633588988928378506082553268689169462603279751253088251626637053162122463628982665482201481567544548630620762897083180859017193319645464165736194339894583917774177816013316729691559792961615716200996431593628254936985652845758849986281577604024093341098208888161097615903025299897571984133872220795321135883343625477091676115236121872551662643227692597896377796482788410502699202114204835721277413145837234599675180674178209112042363035187203816780596984817047333723204527915354108580473476750989012901088853401257462509653892433288153755563522516553192563863911408993033505149896777680715684881593455235796337844208111421787447979393061131018258988106638015849001483014126765000171857035571449223322677218837121606521367114185427426526145162415414137687043689373485450567861457371960185090014681754015279701277571130643985937795134067212020264881728192778777597373456750474052484338064517187973065848179841865645579045376169697181299748601519199796129604936938998768280347717678476567623382044881240587921913045032682766123509016265357032212646398754592878304198633909805319201661447327441565266320720986465791086518967796237082392124788650653574039034101901152454717715648016566094065569020527760904147713695336836507613617075869810635818981891144949262867651284796890344321322606466372582811401811462422231566842888174071259486279648279898078768545044188057565083192766504524189809010096532808780226814372108713189371738534636175032211981808402728481887840006176495109295688106842102812711296668302112684916153668422579818787601873411620363267651967786301814753867441562852311295360525249707941745062033509371925182406641054529586985571385595804378813743002841269909800716719709579571029845765377437257871211428604124866262994004590139727405296403884154490751026272913625254199709890571314470518881060636454035060907145180941686184406282378437688717318249172066592553729819553022687515378155197481164032253189304994681625349377214595429892294574003848827442118309954950028870015370905462278432945370034344224083939864645621930974988309073743138871440364916214527596440568345480269285231268768592231349268919581620233885084981239254278908575425773504541132929081412479904342232320870055279642363500921775372915728976007005298436345544859238227574568072099833156449737848131727051888052739492711153467153894468081959550758222376850355068382212727475887000046985026543513938450531601951942796118433649380344646055777007301470234806232122968152086038606886600590471365839743354850533396821300348380808588258602418286494317599004377747450378234060575656654497194479857823380030891164546720424891608722567615692020922954277049586111968323680266467814423090204605625281485660485727686825713612318273361757543192266861259618437115771357048599566712106589508474663984157030834650685266609679878509756226987473071803532529228323727894078272474812607487761700452609001219378292786218910362244794462491753003236570007735366728912934963249452330913148527974840160014435572714588938570316001412202795618064358845309287325775981506881180896266054312358929256461977881254661435213984895860309516919691141986068067866303290955102501950964542498896687625230716147668315609406307094687769992489894590989352793182691290538358410484066884359491404836119946858546490749936981699659460637854996840927043563586723987387833359917008654140585497912259437626923947309675521957003206734269227802859213258483857096120350424059321794464639607176439186713100463919088637270807994109042830529088527133367661799635031669935512015903094916505725744443356369425035114967415414032137597772912162614585345821440711530773774709577776029509172058192648304723850635446072880659855439961462097413034715282253744940223822680679226735223738581008743369209109799378484376786184605010065834664929037382126807211819689939526436199186710412378772135235616015084809980162233967505702485031157042741275203547496543422023244273189703881511238141902790415379800786872717720757791755935743047332013325453792673663081108360867541210710818545333769366756332898026505080120849327214448346232169703262185502938611357763073468689285343358058313433891229868251550087777900695526322122661146024186121016460136612202053489891599463994530463919860125366169718299719164078745973608156081895575282509426331413381066530053879544746846202057411147190766297506733765317522784663167364388040850718837497850404426862720850588194634216925132176592241958732475128137148634724881129118626519348848291044865924035271830502278305691344718328123296943395444305409908487631832258835677954224035119040661676700962730090312803744901796031650851101557483985868615484574906129529534199343732933670074370216590924026972736070185746314905896129170122430118729080980100811830285700042297213494295007858741324442326658380877074083847832662123017405632635159295469154692410628667063460821142390523298666729471091968841514003817903717464674987106245279257978145136120972662003416606153160120542979246667787058363917684627160107527608209759402169490967146753866971712948406607702431690704481426690726448837311023104183733456966286502328470508696949125826044862563830910956442138277051620563816231201034537157518214344423710414125822049251857408613564841850670494857286164558503651324248723798758347849335124375773881599249206738421844459115381228720811362981748949181306609948880870392735719691805173062221092293826832963314537085580711321922508831267028552433712499210186129914609378260256737263975938591582832124702251104538141805597379724687214286608675224202560867099650353989947980522826501209079097291334845064816528799440299734025101858150026527292327956160083418389753753574687940046197439595188102084168059357867497723471810185040741053819469937216136681361389093424860684919133391504814491420190597695112369862263133996558444726216627659183037836485204592024270558958323844425571469188051358303950405697160345929349208063294992553358833754987774192828791576947599800933592403130040176046235604935124340470405459210890700097206572530571705398208081783612074712751933624226223296645269142369175635365337627151669974597880684074008838599908861108874677552557073694652721576997182649303933860850784961707620681213764836311043326656269571779477702260600654617141135529033735591876097049072691556949250579469935458711173341556665512060810908813507014475771305507629889060594332105772758276680456405409234627101914816220808279337875158084519149890183818367804058706084877337696392053654031166614415727046261449298284114708932812530498138233845577481998039699885501366937564019524040349930472954119420422531104076216630271625373283292315248706878881380021845230156518580810488290846623685634567386343840474867207054585378963974336772218677030919419650269324872428321461674894253451390798423167491378735494892357546081149211857623727415983038465372108147179519493501800289848374450981871482256233326697620056023529753183040242588321099008579883614766139564466089879496202587605390054419706114003632040633268850872550216781617680841273684541321918407888306730558671764469623541635883435260696393786548657926128104301797620874521600198704318872937181611383788001734635902259435176105903668802142987506457380724003312656350277300794679097376780020775190182597254991275723192242668043385082261160226571070835279197643512088112405083367677582068408094616483338406659881592170428136226180688277160567570667720818360021339936957087656587469982848224927192825587408461317890027594491887127396947496273489606588396015062407369858804647193543587398701610313241722878819722404238716570355545479605984140419648104499071839474880622236063751787943657242755582998699496753736850410111203780199048839320819316436955083186478302922393433966510011143191637572245596039166114796961892006536510004998195516755878632436952886225254247883235153935868652172146811037993371028303847355834442223860945033539994908790794646070366714330284540456266943844112988839007321068259452717178239680722853974397670726506798531522969631195308065382975970821645424028872844391566080155432972143420631330490969512097320183351010679585451984619479570687860736027956589757191997699220365682069471956931432834419709266515614896156997852226800744465396596090207746165623037203692442374603937885512610202282056901749084306540393732515489959407401774145342086242779178099815089672907972248101041817348695508476533683531771300901169288862636126043382299093617599525865824986873507489886955291643227937354157688655594707467252203682066498160551717661386816944164894718556429456546278429786855177438720401577280414526304427402135950549037544173907541585864238305629634900857992259478777147813065639154046166079830676142500532328111516007543195547126899292625979931872966363521161406264648209168248826020445080188005490549596066537538675088036544794432893448677635016002941960720433594173923767569930103508312631955889329923947351517257188564444686940190537441992254159490308122103055598487730274494531784008681577358189676489321931893102254292106050570391843538012407903104981536592517786575965186436081597333242623223515399013315502473076544864717533234273900728230686023724889831025754317629059067845185594011432557615480936613929175637380602215966360388737986358374891023073876904736483097716447086893773099246554692483984513912564743160744191809706241049996266686257461994626279200486871855333480470761762715279983111099925515979589696235274616690298158559965114971997633818255820602183964933274640032926499069683351238389557179768643595692218612617687785844417868134671008107142837334668917571408640691670813619898478984282717403383269279074803470572742685615631335634914476918225173149715215368964186527693258026989436076352756999689021814423541073492943786380922879263999583111563932375865619055583507935783292310437144870947717659704709951875427400707149256223980003926050600280859562921843112228631887054946756276591077885001838187197935680871243394091475931021654439517236954710178510771863306840839537059654108175424799011370435203481675340277900538665843848486132281354213928644286060828833350247748269930957514781762106852736412423974755345316945924804425610450440080301033226910508707471205932926031278799336254221237644592205680070403671764172235698022950207780897403608328792365079751020311685770024651619192742486952197077875048943049763563982842934281426622304020160941334312434618385542844583190495316256328136409456749396061766125578819410833712536700292750400896542804423315410996742336179096559941713768564848369117894449797843794689125180906373378800232903439047290987911430950401577456844676533392968902022589102648545284955052641949117644519487618581530896897548016769498716774802636774219335357340656033210146585145095754955580821389401399673917423436777575871060134597390344647216301003129674795866970868324255014775733695172414184206619635011253113171305347895265697882519998969406792259916663893306245990911225181639452460489928808261416168458526546242081779610980496794242776575059522360236376706116114810945737762403709742167454827534544935601657493049099727689006473743568449789723884947042591564911718273818179034350183446166383487403625631620300637551277140872535729757990869455044493351398985138177329356541182433813742052509203635864556351876663392249120186801548724429958841734268684891104770185656895096623506917979935251745538593040105015994993219455009148031382686837895290860705619713825798311404343339516473901179205675143189444974953365772259249812544496599240569411090770908515205244456405688446399077646026564296759195600796691097630124802625754080373569053761890042036646610970140281050233730321881042802501811380550693368832776544259318216788572676887619209680468799703689227163181189329344535431413776963270837092276513315360001140719068968769096358242955169872575653539014803366711963587937359969245295016593827724569133606366629662813582078782836755875895509393279326080854636979784489327166895081266256525413664067376052278799412913193756102970487356890525787941898157851529766584779847264071116093497281407740307081714452709073573724031661043127306012386400311326937356188341221446737074795974094956347818793367302653830215260307988616587714878907775998698848924012457811826054073399906167862501766972640682083373946924183716561035353887331390091760964362124489426224402250763213604929076962210713454647841737174159426178180923454324394408671475543087967976075917061152455575624865346444484452326100944101894467064465055099199498370819586522224255642536734280457829907891672702144234871705839995782969431044393169147345551059470834128194166196253201666486276826002245732173429808389687830005236458278090300496628931464948844716623973487297300111186351131174582580674316380905231328419183718120807156742266268479999756496181355061564111321211476150746422452068187420192781445584748422136971248297519840337397227251659737306361931637512252900910284234540777355282118517100747753147549728646683823150983600639382462894002988252387398295540554516748035904903027488238406823927651137637415552137893276399048285404585188060951707037819739857869024741842139941126844640159857027888229770978289218388597051756596655100180834970697148488038446295510384047724580890371707916202994132146273572442225120741822115698182123351033141169246466122565331198418330313999042225633523256198507748730052250940185534278421421326893657328313918181464600856511376831613964462046851627164299240703761685592666886035423218069130624397393816325230475851089366657931709707256003944484516481746329124175095545797457151356974254770788018479461851510491707556782347399489352416952262315504849618100995097920410493575103388904385543855111485234708820889118653073377081770591069639065722661936260436704221985904434856904709329213508488159367792890132240231092141902996947140132079630363779216958075737443747090208723133477728966013811681563796363892022940038142919551919202453896441483432873766218600661899093748994331453883814141495397301684568431682672500391035060807134095052706973546310320772271533393148156545129146648772543112041882089615856541347823765071724734666302086206960553385027857853667448000566308928673846347192138524247534639332036970732022548219763158941732939155210043744226955594378402926419013430761407243331719846975423288334734397940310196895175209100798188376770711666631366602218214877776188357903510990857433441463414796906107143678503243471904003482430108158256060674141616276110903251393408490924452797070178409297443159555386894309834006472174065212989490558006453613362800957307949970157019840304295606218497448056186808818095104377466217616152156365117269726206657330258071152373053014376474754786967558940913454485123020884030441173044316045211536828356195349913481740721942228109587562667129574124807982622044418862341151008047767191614305928515194535997187355334437388663426263117253935156390739387635155022578580163964674077581219812764577286583040866000900883409369628910185219562906509558894812588721199893136001714332238882616270919749163617624090337167989955298340321439676579507271086571711155152512192338077697303826820336211022891346424259119094590015857530444467683516545522391507612270320178667695822053821893132903425321908274391363276718831410193822205776866486359573751037746168598185786957489680670407142241804042918178332472889414285199523896321853514512242338790998813873823454634602100081141169373457762578945711687934374032380533421017528432294825678021472837930694766798298160347380995372956030613686785509374833162004379045813374643619234991631723587767673779391655854973612454985300740105073025787820253782442823464933437951719547675573496429744982262963817113368040474945835995462327603345584986983431892722632006104456211810212258155870172314680357844166399931795925024538813457807763842266593657148825061112212810388630789340839989250757176420333977148948452832619207296849740050202526822287091094746873984466588348895512138645545890159497477200227569805902741920181520852036846405565923937252312966252121869661617658549431129529920556503718336591895489280920835959510250309460159138638328647950457623226603541470436577895019217096160559598697143041643875523884081667003551337241762440749728328906421478869337543455493647292931603955656933883561777643821007590435010317926853330897018366118007175567005627832683894649647863776778254892820287248481466839953838257469565918733427390407031070934588635258860414848133896729022019648053967288416852806806901125168796247706167014870083946459053563415126771801762883629063390108343753644396995834752708902733356199840284689082539669652858500148202562830853432409754766996256506874088150785199572413097891330091896774816621060530611398513493471922313714230056585601934623378641794041813740944006530911906960783704871547812681654162630462969340335821646420445364794925435552497595843631863612290819078342275493707747220997260403891189395475207797634813256388046816216440248505993160481508917891427977659534290761999421087087640461539865274267263827514416023123655354275649869565619913320441175207954589396911345125276324348192137466626325647184316709436113812996481192734184158869960435011417817187042443609263433324663638973239091630912995656915447686938557894562035894108529887657175053556778262292172863331080139663495362769346441891538595077026598169434714750237277374420855105082675926226351101579065731839723656833059654183776198335398448685861608422939788973136219458816496347979731690243056896407323299234397411455704309276680513055914383475350083108399244902876770983350427524783760014579991163240759383724216363428024347576630761447015182490545149595035769590036845140945598914350486161809371433724558970886945613532689351009933783573742654951639033419103818809152897593323514033929952365036702319433667407151352036738729726047971790769136536524648116969284941421243541337998573425207670202545930185572013970128053194943828560630956611477071481961346176634268380081807022418807682184580374069530925197407581119616369412585400681589794066068639395729078970809395707630612015222906549628265815394883609233974095944031226933081189830213994137051406387071790694027850206858409795950393643820593050461573309646949858086853895991398548132529641943104301565025513203631570298195144433082512168670636269290486945621181516838351977904606293185301009206095650962309687667124641737611053425912564770099236912489823794487415427275721286902728903098053695784417869951372707089434537043456326763066573170972049046679828125388661392748066179441989044728914303771419068375458311722793010577737426282564812600456087251097301733017835288302981249391869986531953780369617079380537888463372852468154206206251446104967845703681362562848045785887569812785328085269376089075148395278551231766640060491661930088265581477288445738847438098958806324932153065453731377016061064320441521250162947739498472819967606938058056865926538268054279041011978948615766680388995754959928436136649906427293690361953563585999451992120283126948347525971208907438736921798069449256452833251212315283584269012751234327117286089999153830022639036642831466742815253742979051481583012170413313400881004334363676511640285359917948045614137170165829643692457491157319424834613383833575866475034672941687214532929226864766016128915619881629588037019771176414588416330774681750191830848345567326492772668895397287709605862056114583584878150509921892117164214607125160945247280015072505519015955508209840950404733006829181915666657207771302952372747589846220942596489534934547930081866767825945189704592042898572715037479768709004225586504266300896522964159019490771052166321576856998285415302294500075896591340839521578304431145123982543728115337417079034432000518968592082147976553698907678056559582449061449121078965065822677773655073715457771344568595797536889588732255839038261052696621211757762048868922139258208045554180786917287883220345713850194008191767595818228381740645908171497338755907762145611094894798374778679449438277309191682631913511525629378399609212900543819577500810142119120650582960509978768732928249595904892835370014787064133504047389345066027128528255141207309629690266165211249505305864391376542861395815537741086633165246957011282909585835668402904561234090452849691684231363206289053560625944983890699323326957404675547738668970137084639480767895712367913236676986914103032831632522006531683101211768471686016672681469548087588253235340211026647074416189017880404365614962395511472244546196172337167799229246064617672283262814411049695563985506454973786817796569041322492495689950881833884467382256813060438335393618507740324631801695341021324428546064290640786780666693198779337314892900767235711333698683074988534596717463163096212862077807889084967984534334087995835392935364879380594083733704917738949227886853135037591815109315194239945886739840423046362216909001585535438201698696048086421800885699160673551071997682413819359319456032583732188792410410623734709281461653310149531812816364638233298438639332938097344103728032224561002288123643496529974660797381676136123362502639332706168629078659695575320413422551008125488209744179275179460711366719356401410710402721859706291602216747460408141896535927902437277642453171499826421097974133934588953608775915597663614816734085033519780324787587377583958422433195623643448819701046468219584546851391756170281568494383012450808559166685290340147116130606760492282807978729841955810848831357207690344864675914868244864024200493118882352969796901085529707176074362919524777371194417008163160635823531898242750357060419079721134215931960584938016745555553088791176116873437685162185774452988909730025626431470734375815221411863817048195564193726372150080824890464164382141738843353963030876504475872312384391045517334400783302927733768241519903159338896934936361472535819624951254911967925385805105251404462716778872921947422149671179019110695600419376457206417897376860670771070166962701149912067239464972682415974493894543870412915143470585314284350362255154769906466335214884231172873165507006884794269294350491222044891528192971268527518585201620561109274317577567761030998072742641873203592589262911161773448587360782558133420801096884788810478212868754266796356688277051597785444894620205458894208061460702301348127763658918222042049414082028707313654517898049905537779641820602949736659851682765850292599663378008282531164768336352995997810046591958492053569663918992477512301018404565298151139195844971406280584457455921094226184030049218700283590621138319066649105370714217953020160476602710949595734351120825313649149846453994891537227199638516777354983150663613748483488911540132019591107027381143268484781677847195637882918227577193767654790399837404777392864253502354708804609747552841622156707195105747836248654637426914950823062510518703288440608021310233132419896698473680513609296127374616654730691290160482712317918684654212408975009634936371585991851802356079435561404150265536420983724240539293343319755286646067427392371031878388207453614831044719876628050177847597266943854893960691267879437407629186333922191970984287855644460990740842974484104062988013659034801270443482637184142766131652880006872195192490708965038284292637870387490376129437909371257613411773758700362258494700175649383937313242995053642192436652262840274084064968708516027556581024924376802982220965238930567664377436087901058039845221444727372758190855039454845473841571078511863593366131813085535437667593094221159590936006859598247307610423550144709419852398245311232405412553776567642260188857820305901337861890090306515905371182709359307085638334461578310379724904153696192242614686276913520618941815505617792785792889519634120527919228514257477040614547210186297279663508346314920427123812109893165384334214670343799855429988474297349061640129007550609719033095991830985078989188637333341803413943157544421760749610771960198466930139742396495196409441003156768645833553868868074747293010487837685084587634102319030802620776809100986818103731301255877826002026793960992861939496442220160857628200539755586187059819311672258377613659505347368138790249897188687306446538358124756890865577138564176150801613211519042282607159244035650884119886121619426089502966186998243145485579305274061931927598548193493178330042246525827658905673392524996259444727748476396572439195762724531456215533946640152146334510994816545456247137484918169997216866121498285231632637285769488856872918051413214125166000665366342965797548357932579986933398372159222445261322513561763217563059239333363215800468896265464303191439724887949940199854245438360473088805897101530151653075128480646945251741876876414967718864991945486190058315733034034650357161969080182215046644241988603269874729085308693880217090878756342311577226616045910865435043390253277932406748147328800556865781455246828902047302614073105659533879921358562314563895676160217291190414499033906108568227656896459682359991351300523943104316723325289632804873108226344087820854351056251256503302431845738915378191513774235778448345227338347815938254690179616168350771439536724588979627798327784377174666302366030399366816325108165413082984458908062865168329479978093079829461608896735301279790596228032562964044501506775856228404400385623148448500878721450036830900683979160440617069169548015745011602028180565456234405423627595450926055703697966627501187410597512207992494026102726650235375685863286595222831103341895299692306837362329311446340686134109979360445025092978228336977525589707810498493656432720366130561259234343775026681485797390353880380630349227739503703790143472281265641391793644774265396746156657356826759153352417477151172708463543446816195501476680762145031397843211049679914210474473531050629215508804780644984935418071334851706910494644063824887477619288850480554842465102584202064038917723368296297411698849706989526443050053476966183255248374330463490749737079436616364703944067596004961467900062684855795068674052743499612980066901042984949060534428272386068683291149148934713944204784191535667860806368101237619409612004576645221729571045487326009301920746526563840131631692048286967421114167368209856651011212447598053507540362333445179174425669782584353548149513383173631509726769581746952302734488882879407614593534647343507622500738713785089802527384363407032443309939521979580740205192932972378351212144555108144743441471692927102746249038940826498550707277963809430232611474575690593190976360273442692165662361889424839401101054109985389612700204513222183862003132224568818510659410008658726479875153312545398052026215496767046527687055994228573304703508385125426303160284021179894179835921930305429608156824391427676324308992968735194543840920630231374854142483171281864770733098125053113573443517636888134890144200971507743179441795875964232671896813613998115744742470553890209508036792009189079743440605140329187055312034769766062414263231908018682708265554401958864413542695089881169708051387177596004098276795463834032511574799814429489522085901803311229558198121403729991946729476937144221694712186575599991176971722736294057652197560376664388928496021252454724280701199826927636686637169504561974833760397374578395128153359496567671788126784756631121618953545340021114527689916634706065386261227292123206575580244216991299268698383434298981308926205050154619356581003400943958751434713158343467136973009450712397080710245194388334270791335411418681808383766188664947645013429192141818562911660237810874305951220023583035129747162892526266044303288112364977530731041023100777507048782748051484475234361922559709707989257764798075440692730076833268568614704023100590297961289515118483008462138397824170296301166941868893818544337670228651965300641646113925730583821889864366336341997376205896114124325146980825345417309696035996512782997223505354812325764466777758713116764897920752436543122775028308492023955835433285287756604977975552523827460052225942137393218888196822273654096760083399921541061087609007394372093444241726914210896195539635675035050598013145013824082697573157690386940210281010761789905014432525256293833478005717811998774238930362424465470607090393422849014438247645297556772569100002918338429625619680695096499663677546406479329862493886736921780570227746735401178666192534887512021703400015329697549309135977878243474466547299950596404845704476986564921215706792306086511920601384320381668837718012888571953282106956032730762654670258202443882884865056377213143559688316987775297531086241222914248759581835875848640096965791021083633287591408145054454426419553351353503871915996693415979671862202555421208500109474553908534472275713077998151350943395682876095839287110444820093049510369728899472297832390481875430172239455236755540860543805389685154194644482464182693400477086214483915920125896447841455707350823999184030463366506340121282920728361550157938499626585923807396659822220161893530594969602088685934412972856043230953818802049012185291017258286339272749894206617847522848895519125535524149478463170835969762257338430187343202976272033907562167221906823524943333628022408486956683459087653784127431836284253728373928733367118557419397145135269471700506957939239551174638580579755048583595194754340303354166350573301120310536840600253458801381122207332636870702446447720932196992205730118037380034665328778140192078020795559390033590796923762122579413055540118495745250784331495908474995884110318183575996796806445710047059717543961645761227638747834122116035639166271050951675528251393368953695919818825005831210919169967508435920148069097573795316634728255933059555368406369463414546678184594570085695797723071319405042912957533489351051496555242211345926856182814090078441533896270703104733778512970263156793739354289390193153639639310002326545015168161195416211999257919272827802174802279692511772389157219470072902818106731796524500777516562510050448557158659998100669118460722971429007844944043338283927859689976074771650525314935283984667024975496375770053201224297790405764094636023426363911435696774539050360986904673987369389650992001623034750261598527371296737176026876957699408131100074499422992246594977525228505822489768900992506930807465665707812353581275125628681292014852797038289321445014502179169937513936851151069801301579331074968655119441389325655497285422574266315942340816174603112546984812476282763948292767599479503908503912310229656392268099938897433867790547494602319727248735073864852126076235819843631130817886396192918949816405060270612623608041720829328614012331210270525413983430602153533496838854563557929737025639999859725359055432456398483831403011236726208383336447046560890301553136486752309545271145390371186133002554653758083584068245028995000701991892943274113801759085550816491785753342448564806464729940770802306464758246123708637321747289058979478194591762574290828917983887632086875769047622500166677935884677387743888930347183651079302056371620251825186472851348745760877860674996786701759256909285493803208134808864307545554081054459546384030291710093420957677864761293588996739917389128722466920707840824932784453469908493476366329734010184304149267320303363317153338411461349463121782487391911335153332269691487195274060624802426756929835199722178620005497068984548736369111946756449007168371523570871059195060031579739362022646009691633519552585464004752498181309073217202997752285495203433080502703326845234263469342040752417849884599236388382228841677861190807625969260899739837996649329663471416366857437270292001832088427151590516806442503812278150426730513302334237479545789810292285724348639931724287456102274590320101763785632764060611193075622633255530002102743791976955364107748201567433703589088073560318520131446338846374689548868842118034748366228776129965545848249501195151821738374268698590494383753297326111830835591447761081705976248288685998355758898252771724101715247267691882616351364912393014370225095352717478224681192644293516512764241881949248675600110765025953244285888714794770383512280626396566783730915613841339989207681452844170606645069674332452561660315095241705013908931190279382432613295784579483955825437965385782546324421787277249593085442745923265966795746503308635748175675909216281054805770442596655717694214212355348519824095682567467096653996822224491130837779737002058393353218713484325049172282000669145318218299526312071868670574725257469801217309327037203953537652163672531718701603631675684781534289205589071769539517348261884949041108681152506935916933187525629449106890878611306987566252231386439482231790951301821364465681165286898200439020915453194102263170321827286315853843441579226092731615388821878360477947548713516936265388280411423317299450087649362800515241773898680217912172133852779246005243536947613089898912048170982521154533930649646555814982355647502435101163113517161965304826269124078335722804300678862360897795794610683158997513210586976616673881575836994196688161931798285214737235385707883033301857750695420187523063265575977147732276799173343209921746645865485253663111409809311030438145335698130700737311364057247162372884195697251572857772654078942095619428578115013969905460884168632831034676892618520232460104190681742563558598679402842388280547398943929200497922263816132954431006824785196251432793375875778588479811168743728545191935077194947512165391820816664277331225015406542095964009062646298196927150411156116418036402806567932447704956140934001631988829894291065870440438802518322894435049337441020593984167742446059435285019375538593562548698185239624103010645361690511053105328127764411141909115411795309042037150625178394306438302492321015097418681969993722289877845271282752186010715665098351278231978104580881771864740454793369101635120063024358679862276195935783336968514142694557503691213944175255622045843727119358670406058745701017456466744718391482852949281538568224579596290623344912336573801124483703260241425468450242122308632199967238389630875871569627677454997939005758724598056890061006322047337768360328580313663549751685905866565798053759169157196839016254187561617633181842224980481828357369647914673685178939066072471684919455992971884751488970836442901632807658316468531178889668424914965924546177200517043448693611464905219519115317605301410857705896208781199082475512875548552379648516155926013806736668402716391380466250405312957289668018423368058614322404412850963083869420078081241771190434690810200659048505524200311922323930592474920886444365913758264272183371628421807585112010236175945491623299593433449749590913126755474495712142098505995431285420535093098738835010827001841214549450455209152679023600003892495299333194532268477521810297122840091742128975373256642187846286925483791828257857432530320075398408469351599150754803919512194654561232044651265928698527123493771606719735538831759005220159926581322651987031757952421194547709839721537285435802866427344789669987117715687845417600000774676036030359009277439569645061562853188246937980472448895808154100844134104591248162065626485058019957195591623933596648745252786604830914981591211785128386432736440957371077682160781061516792547730768783466733373867325444258554667717647737625965707709665526558128606252794816826074386246853983164168001399262602383571582446820842630344342782978477934097965326100922324877980672951579295373393744301646629146262790778860752838987341149829336039098454372163594370108535287399972104072265408274824640012195546191087636758972415228077215265430325078526157093119302812663626606648884637274733989027583865638622719147225579198794883602609621431551849012210531962121333439588552287175472961021897647289690670439914371740740656766055697564695509379761429561630338651001388177887240371251498688289542479838561965444161474935467785164908864164656298819343653991844599684040361035066936730847883426419140588810591193966155783492716955110889856750398788946231332614715884555825298682992372820240117081343144435747066314210835834352819997710862444577302349115804205582325471524633251387122456707320524970206178696435147503316487195587073960910929764736830821668758342671138089396625879291581192325541595202426335235886694959867584792814188090495248922403762766270551020352749464065087011587206715465222801085627265517598285690838413918932734314493448827996970118896161964870864573655137187070990163277350369731525367894579439792078607969698241962319726966944431128174412414767957760609393704781188005492458705538396712950740274541858639723355339671938592219585319066389420249976704021770785292974619087814424749270148019455540712035067685738663808647534353739246518172294069490703131248541328241257654112325228757071999957436867642332584394924481049140365920894060581826504784908644570359880022523860488518127940519958895456623655722608133294612554189161003208016993643379349046880206107455628211558195223218193407043238730965139036135269484212529839040667349297240703519640653927086036898926972978021419690558856732726986719028340917657319486862010775187873172584281979246628825427363685928864807238150333022733896013583581908954110423523234408320088561555677116572775108193901540681733995030634117722663181696149200302461984727361098109947199740942676231289379918883443119258380370866314171681220159317020370918481253916249939640075450917559387098830801397461126008925539960186403951283493960096000984827854351085294760486089746997189362747680056005216792428641288427383498891609240274575474152949209982112237175874168386371276870313528449328125023427791802143101681512349246522237759670793331520609661369219116825866508179586909747056951803831985277260309110634726667403720934867358998500260365272817524511758353527215619786526360287402801927081333470078623029408222029749784909220247949310283824952907141336789862165758747451013647521005453381632615448877421571072744170160268258725882261966055403395064808304889605656576697186383551492415887425247341321208220851959556465092254838245323079891964417723459603020989072903599320796958493374707476670882949260360119287242795024080344699188057786018141124209344064439897969943434174046758339966983629405089518680363772959821266809133678013411342766821425222301664205876984395467505578265273893141789150865654963372866971284367406768973424986430426945713779315229250986540911086856036246790845985549682327366937256604660419033404178128800567284384916504377114729254210863355312199317482368782164218533091881274148735561154840301998728282245044293553354220885540526851572812754229951255781291996042454438198750091091802896678609468775695177240411161033544249729769782007478085081007072114708317586369216865783093755752013361923252841875652428905063383700092081780380508039970393753484823599035127015103786339081306817698836577327210897708486660658641019548244110597423066176509827512944056296574475458719250644575643149957194647011248712257170136950521851230373127200321094476425550681376020145153176524681539196185090173465518375455043423485740178036209791586106300560327369641038062544789424102035183776159753880580448233829931645234009733722096924527561944913114142180566811508328100512337888203986015787158917837796182141849062512695790242617830298847312102234172464823647702083397374143113002581979276059410440443663453373747320129619121825249325734519793448297291111095116793407233252823951678014330214341037228334696193181563348240248492659463669341528664855058002608592841520615026704034969351335224234851332601300538873085467230040939390255610178123291252662975530271687280898243585424775763350945332693981225062027139165377037595705423918768084785268020388745038661697593110753705520401666047824241285372089303161894195629211195861946358525939762445650360270902916038573154300236590827015970327177142856763250990410090613636679710022026421958062014055858594729567867761058956008829827086976497690754993567847710791387058385224525451358173069041622362510176014308198853859209342034192280679847822928434748537029304920145016894451431979301944719615536412061919639795260378557853453704305901674573619864834334130172659727464649161093534921177420929863864446765431803083152309083715040913926980677217121075454735444630170684464160334587860244427969797721997642072709565254679370074269484349740316054215688129499641522117527780937102973508402375317658598961706860691328405148247555877463818270875117374894758967537362856644257449612170434307583354925803125625664926141528191623644017781348433191960367546105984045639934434019214002141936410951143879465532498895260857554872654252412239132067893132330535376067731606705315595413347715640347848295122897943079217919703600730281978408890655524547408181584086659773659037734737171348906355720644525278267314950402767610624532642225137957042754799487799067674939053399553401184514347790250364437020873823755233782733566154025047146940955135438179597589491578042381417037557530753333542336245804203610520729406540934286006133754559794109380777537550395864061645444198687447721038576829486496487815803379736706779365756890232053893254160905873374924510499935285669899172557364310922966366181829032193975049339572552890833480663851049583638140923008747328846868349564358178077283840416973733967843800040275031875657344548976704525116167900696251580347937216254691396416328241676245197118238792933596850331601842674619706110750534878737209419794856515681282892483175465323823628503139668288036905738081239751876748630280154395689858484514911045057699164473085350366959676940766077098090146520419667079466935009091097067048425686726923373772286064812495692596541432322046405071825645266840766564155282635408037511348741812975636979659712511657608107455217326340075193796391799379260509755978927903469355801545279703209886838501036154934990135991139834551667229259831542031124756910392456397686880803613950818946831658990927621652871551067592657501404892085596902690851816839979716028617822587865234631553881811041446213882474817656262698807600097474160144694291695253302744912658352523277197021889310445892908697618130622948756548993749931166898567274523697728252348261506329693657033610659856846674407248762360177859380175221776966997241011239650060367497779668172743119505474788394005361084560047362409252819230711110368093822345544751483704105602368205496417575176084553123170294331876264974660924235234370034695790551670463813662771192534790884292344114361278951283343327512575574557548061238366801106606358387769355374315731594917699143752980004146837608434726179578149225820632438584041898356775236186349190452695090826234992424729922097064978219016790099140784626433428343440896466983500150048274740189055654230964406590475137448499422540630689127353916605576611732292730049539115866853148349144604778872753885468809887611673593929722826215178678172960206763273790008719350053963486822761032250563772075002976639184345077889510023533947366473530495445667841408529594738744674060630882009624081082798565706170157328211342801115648179154790198404906646408421872417986142319421811209176529252509170880169021104407083270068597198005493472130566798452871111620174116213986256675614364366606082282094233468212090744972675010932221117695554798308751830552248297707000164613436092266417862865660216459565594176751952658894482796070935430974389686671143486690041310752830070645999723262370779113614562665289399220161965342380015520312506938460604529079356839903993381927251716733045351486742865244862799585462652473460865296409756348594594101659233484827575434583120792825862492782491628225645034313763707586750271103917278335914631303609032002606013351824915007069276566302101614763165145230544017229510265990392126097646693970091801361043305897229898987517915675754493830859305175993422271679742213800660098556629209160153779561577755266838579424259481748021789922324350289850152778840135245521647902314187934125157204894124053915055806072220108958174335309143366085980477925919550494399283187487566171583771381043671780594477756809191023395945987741536713971311867830655098257174517284466602498509486025955949839511750505146583771717800994120409250059755104358148128375841009000152106947549388107665278503508672434928756343655999020399998173947136166514927495149596874406387223737746417975356926461241821720427178288161465807476976465208657446041950246843921602639820471867016327008126830444173623524295306819250599340011201805335613559889037501216878515250133878797738162586030079608199662939608062466071417000304734987151916246461018527956420308447959362688807821090127423711178738925781692221499582802459985396399688969243995081568786141737175479859536286017800196008390634439019836584819502276513130441049027437788859277789530714480858419067487105615570367889596098417127078141739700344188407377609948502277875718098860824337416450190533167726462963689840936423204827989188914101279241594213858710636701837895930670110334404512665373971525119152079291892183883390622480807360465768065283776085210592426916048983166382971577203953304477923561899314465600448242353792501516644058940453302899700645660775272756840258463719367430962422764302654077673109229819736572258093409629531800692069427624250286868019042523721516541880466200504731985521887906155958146781228325411048780244102581954563432291157341053802633907742723976531649418607645440981230443713616453441712017287262886514724910558814302694508485966181757107156903314884095021706745523745305866579669872717781670225796487210746196144719818083763563216127783483734270141470842789011918928648510233385224205736829558736925560304483123071340857911363001678167575570872535220460879992128690226211879987006880044510315806076269158430373749126436392904176535938233865536048341526356234609439993133076612457816360356123391127371136403322241550904674343830983438527397906315010587456720457355501257465290123404882576997993053750722735604328652625428531246151655826529440917635612555250618390801159403206414409378369055240841846716106476960281130514361936199545049192813019317439024294827050652865416367723207652987786332563729698182402689895235492178991394844044520858935683942373587556176258049275569358244854227750215326742727561308259650021630102715717665810312203740664065375835177722155056509479919533015204430557261667713381311959150841763208632554826265974292997530130476891154274599308410477222698466482163056589694408508948798874020382652554446176048999287635215546233488551894565221934239389282641150641192771329290780249403741426646670409735439344677500202788101849989258414294337425171462483658576915238064957400164766369830258662091547000739218328460532100793907397941826586157865369396528822416596072124341556738679788890668463243833614445533897575606154530778961905411058211329573517548565885406468817314515878043889920034022082548149815646431954916439136724564187091658484367642210763176676417350736138295689306883931278369992019516837520921790502539959934660511832842552144829983614160169508065247698563361166843366598322623749021506608595954767944034782373914472875063371895830947494042774295412556293824747979066939067677784724749071090262146128892315365816546089452640618803330258481132294372992336936989445825808572350155618598400471302195586172454436380843587864154400085777384222198125551355693506335789284663351368159326827054962031522338847216076406396809358114946438395383868522617817591641051846352406707909167005328728651291742164678624186250574138787056977811235284268586872616740345625086924592193101948179870662884438698858282043967755166409007832357999084898854658897246751315033577003150939121451685335079040565676750319820433325053805569441623468773901659602804390453602951010486575534094444058842064531282356916697399835146836731576111782823979677460090079417983957674099862505759442482492135907304348677819640001730641929134136380934842913582609002304034475621732535311799947247203824918853503817222726487283554383177428633354651358109919662144882337336733310855825175028709819286589264271457990129469506603782768123635340056512948119858789648019542602103472443812796108081713376547558744344796967955373431195569654058227599698426507033795461954775514630691064556487086225778480094639084413488377500857923495758711176078230028998663881698964720866412239963585653617301528874580174487644552909063109963936906707443552384135246614650838460973359608133325227427435197602638821473700305994700251222857411788767605747336010677575164677525841962247848620811870197117930348579597660708448622201462787314498583417415716556469394653124752861832394418584267157452425932224846250723934830075766326388394163855635278690762038821933127876799925804464948176180151597214871807333324194330678596413729107567980443810702522026025368512630099941198528745019188851205242263014746601979107474490739895492252167348622870613542714591520176097390060852120055590410916465404490388937580977741191289673594324485416398181812098333239191920174268267172344215362802017471056981827970576474262550536093444477365570746347685446083301218135392819397199801006617313338620564957824656719164397270881866852889764429829740719194766613114943627985115652500829763139412112221347931055398826258316345398067942649887258418538497502581795869616732317820176058898211629524293296241108337657857558963738963585439182069413350331292633720802920924911977772967435650841059829881550780431978525533955048994132099103067109785600893487288617466393884989595114465112106045507196618729332285757722602776622666096831573058641360099335836253517143092678327991498607267749398321026281664490214893070296250174922697567978279068267750892330245220802127913431142657737919619853181806811601984940402221751803100581306011467729508867056322857032434820573902260314745531343463428048919090184923871553339911936324149204445221668889139919846854866755951915137334787623024877803976037660329044497287474953705320681469725131502167553296636484832132077708542618524875463161784079325824922139705520097623187997230738160081478872975556856660801337177653409537744391467100664436825502204648893583722267703355816388859410264185245776670238400575167060961947542879891516728859360883088458998670246606098586221070140906094101016305852332426055835634695973514620151149192543497843076769556014654664521196064408332637504169694381363131975409140226717326873242596576389785729937879398873521628135021442311467091036089153745436249560238889090017681652543164549750789695241982741870426980739689571143693793531843101508205796223284692387280952227325850182926534565710466302920783762748645512678925593958537997341216550486920245697018463379071331624538224574176978966725895170948518669048842805219616481013956152728478800020041441271825949321476656288695073023083649983680540881833122645521952349236915747526579465347028381830767671801328900801440490503791886256865809052772681880837703670127600190968698285500430965470648874464666371792159620099968802636264023745872221829858319848047449643453167822266802094379825370540869041364897263853159864400691232555858247744180455057011904211676833116676086099277616760823158141419406557884243436705931212973396005894751672689401986480069603412894069568702779455923070052158148313037402765886124928292738622457587209920033870315767248912845703612743209629698432919114273865641937798171747517844924460855032423957730239502074971172844718350860160749494588803188245058181255092045233950727723949445575418139613346937416112991905632372378858760405109506321937682381599810054765100161592652951971190769811307034224451409812224578855736120352339634067648777319912341811523307005669812820331945985853424427497573358841984119744769116180789411511447782056741093943640774250248737506164206149045004436203552540003215740904021456661980466873351638178129898909608156657040913501448611785875138885811777217526331166556489899570615529306709451857110854455595356536615991325631146973273040618063998515234148977297070657207997193314639260662702643706658438941407220267469070722861128717605533423315505519005098355997969695275248078105358281190469129603391658383752390037267963451580593319441675196141630579557836453513867101881034876905054621717988346622758907243740545621512182613040501652651698427710119034021575790681644718673367259887639860619698190341570622635094221106558883133438764885022516121507985739508401869182562571110574340300555061879334674058164423658915101050487762090775059789134973132418826633914419528344177917451756096631338900455140170993799774135291653111572288008968731827883406018411660112563719859102640066710203579502958621273377590161988378005913646929779988467858687894121110283208031603970362323990367562722995478713528828058240677712568135627822896653224646711068196738510927164558389308966674560781559059071890633160795374507984933540278181019177513228901810606270881035421075883462679043312962869421099460579967652769071118194170280089664099748052738772201939908398886560715457633804135372068553795794575591077855540482096251700466976685608752458263939170537877691380011218985430521866124147190511329145215572976983520095840584906003951032251355583601811997182951333330925126441184911709190473339778487880257726659953463939820270325802066219828934479772923015248029827427521025670217009937332636600371257796046128555670535374445072971796900649851478710832980128954875534320214688296440353445556844325455167610441152871487142289394399581797459136971570356106157983499912408839500726649184443354885137164815317537348198279158153820148791741723164746768084394630435920371155600595192301312868731596376347868948386223415791435199845330467163906361043877192852113785187907045685126969774928821158364555729767021904503577716949039182832969091853569135034795569837014471426698742948859613058319721318811429786776678622874918386532732785756186589265338081386206085257591065418709019862394304958188517225466025471868442368430341471509000160058381777009381265413313013451635520603463296200268427516245604730005564315124521355401662498346642385775694435858041317562534476636554648287978637215974979864786946368525480258896155794430950199242280535224007020938095708495025521032574544682297581214670616510077869077714589030261774987934872990277292084849669566580692104524899870403163627430572174839135441280348347493442738008448511949216223470545915662072545425043693797318716892009799711081810995535830143556712959763505188883689014815870722969325457660226956072189330862509910629621451689345521196841421075961629507737593265848374414723410795332777403995195511360310327671940220535924380355515152645733815526597987965488317618311229718589597854285183831604872989738750987578197992642781606798116066032728555413879386823994549482558586990964296390209478670646634574306043515050391668427300972259247345819234401647747354309793888878621352369732195644899026994191312130334396395557640818344061123946657645752717595896279080665995711046055580143027131567341127131230627145599716398259667720214949629990088478158945293882730389963024127521088062986858557991260906573727976561945662222980010190884906764573516985965073324993797509005706787866647928068653947511193637554536293346001609287617479767333706587402784810922357100018588389042006621987160883841285279471421257224373306388334232270209165032821279035995328518283797755577085197962578409496507979968163843116103825819425265256115961855304007511338339149766618822695725305716851702904861126183268194746082852288237212991103994532792568033093412488848309068995833692185568553835499631662115957231267561394726018380692085236612374398089799761301551744544975546945301560418641751487858499286642680891809003383698103801861238447112211998826981706799168842697800272383370589611295049430589315544607562710467604242980053919178169270381441727257534279605492122587021742457765368235750469146890927912230558692824087259554482421783289786491300159726211994550499736501100325621684627081047043160954238689303637786207480369603705930217497514201576873855268603461618293860607368158245646576757205665797687914953843147680325539767433790164862158406213329928665258522906672760261499248944914177436038433017636642754371742338244410761081768304893881195309940109647164490746946950325321379790495595913377694932543828627127750956798967791461635834963511239139223156526175659481544613492099132970431578181327401871871021892505744709544969105029201812892673385469866326729970366645420951703545988273489618286786285922012090581097876275499689880754653816316988846677843421565975077483493899473379002163191415251908774504204431848432988249283203379563882518544514638814015477251909167455078027747667228308853383113781283142227508410654977460421197111931142462134238008548786483801054723053358822967902282729490423951857144277626802526990783973066128639622848944853276449866285891500580956170753798092290613132922215086135025298182103080727276705752618832663403554263649421324124779902151019446561949048885710608321215358716893197985217302896675515366637754508519812195879475959140772732419760822006008421267549001897245732512396974274925558579599488625651971354527636243952048449871177058409474720873685308856346628662344840890874850618106467616048132898297014414195716745483362729741740396735406310634958571004477398176532309505968472535189805493402407446543978257732764989148774674340219909471596603129145814975959900375099156508599416173747179728405710533221920426368596334028256946616388707587985245183567669432096311933512652887090735656914581966993578116700320566628673321684965547544446415386188121962382746758367728524735887123109017101737873310353126348845269903954634095531347476659436787056812846073130981477167916818355454218362092062744761545156576723577802177822555403012071059874135276427556466665515509602586764627619616813354083162118894094846869996915362839780544423615334350596320705274975857845027954264922893875473736984836539420458673660026550723268903287310745137680920064412101536570835466976260375102611992939295947072893160842409768808236218357071015134377735558486452894829257780174613624049308278068218163792707346445237774067326256422158093755912764536376286410341053032249328961062962341613767549695418550976173830167679292477892872319443995080645869021247476033415739213061648857281473534806916587881598257695837502919772194840726909691003844138045865269462060106682351946043460705667714718418614194574937072879839891383231531111465243945108412704217872360928350068944816264912733897413679679204757509656111425069653542059365288186902933806259774148283251232257701202492302086837400818897197775694448769480516294824902819301957077002136791953338285320761025562836053142204312501021355706005372590752352637975486789954312223362610385934483839419613819994496792922459153405807143925295314961128442565532088206051201842620557923424342470223154366904325758112006800431098012550101304121524214368826813165323977394890245423507408964733505799987005503718285310723832695436559343625148451364101465822991126518239827805606463088958178822736880896609977709184350155502985784265484103227986070127485880678952867339753866033615855761609861040839538313828219909403757868174918503738682466793360995305555457976540481899190921986198828357255346244120126337372952193903434886496772926222198236368935393926409108478019338882796076870610956146961215654349120237995586532090117540876619752661438661992724859231209702774167860568008392366551840917015258278947395674328287054454314586484356407832051494887353551882031709735711113432256406761491989436291612407240823205065363999799699753686377646774794441886245675603228179450199216094946285079177378721208700723284442603846686909871331743212238613074961836981043593169267291953100578428544761457720305868032137383669691134242176308162365608791773384312499001443823419978698197556582208647579565150371536044939020966836695552328147437291901177781322686040553921915512508941578922472530428038765195897565692393444662171964430805357014661912610479085064648089799965414335195349706123111712267536259729866034179559870144961143381969601430038790993804914981749754084509524013383784835408057770327682333951356289476005620352510929629541524516692236198878746679346728774907776248448430419347201031667631561444166097268917803661131441959676209464540277710146655703438025801867510261586610579436095200112383101979152354184454694090406961336636773587701284773195809125746983001038782769427249715751243905386064511830568317979531271001471799090247570617150505016387388187755420280587756247061988930108881715577974577851398054360550819099602729103174774306191473748532269021942615975125253275523043992300845185298183015862374344472362857667888212740726385486043636272570246229824144154730305094010382789369644259985727533448106779142116210925438774722685556806430390678125637843964319618904602843341823130266077687835366268281260950521506287898208587689169186935029608204462399080018194262769991155091704171924873576366601920328615100476345339270129410623417810912704979596730619057322974398822801397140142248646288110826492252837816190356471346620423332006672065171840643150986186302620413683269012762065669369433020987988646376269398911153178374866600149306325683077373673239869469802039094668988788240798971398056081204762167529544916470118001984068920690208770533789240964027730003224848665463050767505019622504767937286640672035791817889415552019073503008785791716205471201545157540866274568766077038353590435679663987132436349024853716479657526469921204445693312124194106106945868741916500360086449683971069931990464741448886915233200566070158735966382444042997774224048903725986162390532117740196290478491824315675452016089867655068118835192824288094884291411298508469536355640510796627111360366818141316603385610665006594387891923991144882647770491971330981287728937690692817757056701451028274773095786237721338079528458049557625901900370543575647042575515192692910506103657201542039287828412935461122162505517731053380550535268134163728907012207661308012128359637260665834278842803384694374640504300211791865544027076414629306781372582594961104466197578249565285235570433624465976689011435303810540984124232936785302078134762003546064539939294776210114993403352830694335830672966365661083773214904039490533752264799193488712686093306315444156582534543904548741113360973856265821196004839421446442590974217102159794835211392429727909350203651323097497671896087033077595371854846313328071552916455017713837537367672177967214035555878684971568329080250741220808154515038102622083292671737767313690804505487262249194171957639737001399795243208100135926589926099994075106173070193419841126015770739823682490109230289717541293303649100786934355091544972101979620217631529323237529884572786956964265365644627217104541754486039153736777796501415807314402924279725041254908239453432037853113298276958058488924682657089992594407082738528760399235358879888498030840838257452140945466488842557896481589023942278575902048928365616741564327998240887062584099301370155044450073967339741273528222134561730140264680532047938258291227163898066439437856621287744175349933521565383240034059901125915370823870196504476827802304240511990539344716912058451607528605331936257034414117865771271961073581892391508046541243944137906554012029425327826274315521281149052602818903459613197512881493751199627552572953191813670226513216980730825422622845622686432897160561170254928835583251307701017138443530486821562831993528250615977845593994451709445252627349559919679664464717310178791472108421279909883516490455466956952145909142775219589838087064928104187445565103763085209350461317969771628522617386402643056883466950786071538952416749617497890286025798863447304023297242085311266777404326502841178747306093460722963465620992503521649974893570374618114565206948139381418853922192468908153700900216717722819537688639358490868501243970592661698525348045983886151526502753568857290965541432843748832896633977729894704754306270227980282556417671824721454973732297810875580272831097778413436198316824673554074817448875802961315584864828280667132264442812258541700898952124030918700908563926257634977359009941012375213262802693278418095518322740669251417355054779736014103828314304807356444475515278039447454901620293633975646432335398779937382118143196658588678213143163113551020005439738130356692698062554808576514126066450076428686891579712640298754094530444878451449374962484320991788367545397514053325833031887104292169601078140785185700038449159049332687753140123714987768086959426580172161424918455480474411280351509000367565794625861967228255265648751431960854194413746846119195755808316356101133525220464682332111306490191264750308858669511278744073347725841327922469703642741584792708190206770090576122447594062919876744126761416964366246169072629673418167007599408804684423794581453958402943647612996319066781256409932398269452536415364538016006156798962742137473950207647505215737010548201158036393761385075357413786924782888312647536835050275117319396804389895918430653680220923805878867454691606511217196891787056756000325280710235550105509566355973808807234970948987066012266590521879209643555670954111133432815130416219463532805530692948969278001959552467886952936487372671204218715264187963066688995464308990412852786177873766047354709382871561146986721824770587184437066077010251381968692614225974964538714932985430926486139086661692623454841707052598675485757880076449139095042610019559371989532545115245187534838819077754201913554119196432287583453061287824134506910581829620181434513115020799138940647639730114589670275273509352010265572917724028456193821991642664398817777450899000056446000375306912927105566271015061398025414863293455744442886807921127077420687783626769781745811528203418070613564922382632110026591386271734666595126173157525005951023707239266900392818712916848325168527091540612484115593681647043392191426478746531272240491707650302632805064397937043052911622755666043162658494807435082190361062730141331263178471002480119857338366979715704786236048915644913814481897394854255369505169026815706460408184734614312866745786331956380761491793930503624411995227720288328129320163564401030839595238993797779598763376755565089033549015805896571162206665749116021710668778687609062830191310236795009297514746322594486795539109353219311094945861569233413586958435355027470173147160681786452129930013801897460969608227377041472961436943959441803882902311089836264850883719618456415249794982447646767938248160648663503612229083726976458815356309674624598442098847568795439757051300120915805791781128060908709791756840067137572649391686631863720876410178607488807637770899349679171413913114010545344353894361454577585029161904099153845596071797370326541386917929988904263800242670651252239768557591391932361797873915197663842492785806595919362466752057471482150350002867178358355171215226813258210701506663377025886158983877306811367566949016308970532646091212650799855598336659893257719645854662813145838265982670788468519695168045356069716085739482602089054709501010025421921224211546993883661323961127623892964268486214547994875952766762744993707985416339195153693997812416482950774496793421285150078697023674524950616149912614931575476318547553153577766448002547752523974685800719644542566715698284055382414198941980379656012728010800987901350969774254998660098520388575347741522441035171909143714176934848828210704694773603828232541794633226676962965476755923040154914841673811316525610430214734218251808980275343823417856362982621683331758651856577087900597524763741636749415800070007717701950503650797210192602539254870012385182825267805380490673799327573973497434083171436536050577750747324285843873898778839998651840328585338491109067856407315659930610550139286564722845458953989801634909606140504461765606836482569250691443779388734393647864049226368161431235860038904880278543668692260980521772894172249977387313097533763413634559381548906714001246565682547051240063324387283733554079321899368835092980025159874087399916033961654089557718129644754814307262837858581550555112744766105862226396361737890793201825124332986930729089571240226539192013390927780273303406598752759842597550252173883930315263563196401718771636331842467542355589922744291073100183323464010829858620522923178124669520738952279456465710822093672551284868672532559848378446222301059432229932201620616523365043078653963934335629100045162298018861873149889838772830031156913982187502933701898088845350811906222767859153661139818176116398549503974324167269223137144807225889417041833860857730999101615390469725787853012869237493403685368528024439395443638076645086140393548436073786517372092941545822472016101816206755369631853701345871473482873973213598272484829727215847085745166483166532426459830310573574141234929037431915704255045763580040029497121771270174982707061295243969623636905940409156900918670727166116079635735675695655239086936522399206714045566878822152198516515556176989095396226793547172299231172043391743251189963483242115841281350499496760428164062885402767008255990632953229611472971086437525823807887663360283393291118636619006852303831593927974526129793107223926412756137950489639186985023952276187490624663156642530131253094958337039087118400817896636663522284268823461101525201385201681724195512880047265441378658587722902268357914993718439428662154362960698749795478538196748527747898158997617139093921399177433527492455298977805973536267528863427022413232907783625129222847943359486593199858264586418208743210822217274732737771451476526069426611279342641394239933967453367528304178529321934038526258094038900954807569066205789732886925238274868618732147872937351344394032558690765787887256966869846981146102512914640781141061246432891709336403086431964493775046188743852666562296098220342415828151674530035490320539603355001116508127295924606219060527545903376835768503692944227912831271379155008437436105875753361549632435487695990168329252537604648626324726558730463723836353075154000148557511485208739771772099275663646581671584327962029380531496193932366756990202314893559197860987629771191146580886865765575705669915693539881864406559075686078141325540077789254776393138411903957596088036010400661909549412205619881880481236656364669077757393923792900891998016346728957331930774528356647053566166053024209270749269493834271067070027307716252349347650194703183715860800158102540623423316341414342641788675161838193497165902957968344597515894771442849725861722597146191828905350521182339799714627051100197182616018949508022213087423880705538883209632246986118109523189841472685439315620991945795855317292332502117668720050704711982475676008822339865485145336252170338007851385919239166096423705187534917662001768855867142781397503781075048551154936177851435953951998166753331951673884923562755720525531054663504031406460788636275559594989617734313469446894405995332316860772147207471796441234323754114577299294915595411229339417584275787666383122416958503951489105365073498321330037378341587073240681017760171782769100248126887859424341415020125398344695365126736570918208779855843243850648217290078697439714352530638293935138039945789647944018337060251317040474966781341957982520333744626492457505362549109481803911660806997046115702167850067778267997472009194652082171206018453597004630787453798108645284233079212852347584511079479113767990978818474879314625398588339572045962160082200344207788083453631141317846587722819948215493264385386237054691033409157454456447493605411896704711567535577413596016742676577902275306001919756825504285365213241737546184511348742587301623474953547806971127242170410273049293167484480785404655183552108181792104663964136500953675324535372295273128822904797221019370622720406764904382978007647469663867876372200635218785796405459189435002513474294331308060227047661473423323045143116869699763604455835213677644187812840094773729052770202036394342526856032251883006469477570521764306701280699977938762286901560053013414251857595382240688301065264319838953915417364660294635837578236620616670575400049083437829738847052136236468127182507113399600340746968553047054845515306273918586565420994828110447999861900565182014700666945725943553237001695804951192903761414711146173194901594854927929197800469196886440955711310807639676910426294158259928733509935849348536527708192355702610501737547042791332651695959809784439917838388745197675080171679260925346063422387694040921776873789063690695708291202441348882747808033429418623081536907739831244628392371349174540844724920202819453293529965999996830060278768634960505677975953867217749597279016501481887853089096408182303737083076935115739641766663256357776707285758731829960395243426701441581909577564271040299366141717601976334176218137300096075643853792841831501176125281003447466041985462903168896465497496433062117026256962975836593105242388737993213752919463861769807908540317422433543619364185025921355851522789521694348753001793962993388735747096750610327248156586079782474631055570957763540368911805406325340727398207389108018889680745246622068823810165378748074108130994659245242790267947107440999799110414621797242735926404320039333186829655133409766888853453006682618439853091027281893509085232219144369382690367776590415994243257615135336236350493584131513109445705758167444777503600811175571292751722521457419550201937397351487310647308634196540736619833300412783118621200225122659931125389436596406943322647237560188324712510314603547749383296135042650537874560099140197504574425214007810705733575659396858683728224548014428135023972210745987189879138237628370698661370675738348774290593071903906504132388517149022580516912014745770722075758277243090379716552136405892773807483735220319736451356825084918153873893364809602525534887395091702786641801937072438240786193112944345679982069366727080435344235888757093367911053273124258368634140893159774165134570080957944516920492086461431237571138253631829078132149536996966862478411604783598105091393260717655777343662646927008309085375207673074821477510833231532492604693970194072645451175857652865436123363576036503156928756791148001488071979969634097013275732747989225316804236134195496567155274244310849381596369051077658998389016524720768374529657119287114089486446344649225803153761642358179765689501675782998417215361604187671294602338155294347795845586966764888387774858821171837683736945777360433806496859544320020785976273408840512192540775933890395209987652315279232309375041168556702396664621157182653049837231009940802380179097505862892920968114302824950729501372321548268416633590477312498545046136516601827469587262329331984462992639395086942183148798534899774928042235150096282015061983196144215921274585560440728207379942292527202473829038485837417284811688524253985185065445746380440294610653453851338372968899766443400157540622259196716285541080524245430749507989621068285833845096231035973774485528601048628336482391807305888549684750712918003882739468268674388806615274603577920288145678498650527063158522552647801997609245025528813259546943998505111185242307489513828625224563638499633354289914695660334938946736511271967819732884881303224471053601638168749150089816760046361715664547450332031228852742992963354392056798721052254733251456676915754792659026086350178454504817357320411183463644466211661205286961340689686669842383855189020285364107555119546637712820833144177042644369911898532875213478888089578695592129140091492139900351878793312131828963977664216588826196721134174947116509753161441797347910898171784119223149516087048275138036311635444461182768090185305562106399287610449347617398367312348005753424783996121138060352441762766918556298356921013356709951387517485625284450191514719807623895159400245883977885511949543435216350343023029930275786875283854034157902866449612888018666724625582083302655881917367966607041701077938104399252675586519551187124089524046390372642348588405274811188622190391170831645868700158466875936384504819296331568255828842629916187105931619105324323979541297531131315949575190909030526096939286151474066553328404502294458047101087207287275832465701476694806205332273671062890247868237986977240747834126564362614977833120966047043741366577004193335015796771392165735614137528955672507077581476059433334459043620321525940992503084124418221032651220247837508385497627977692343022598578660853406642066097952264579489779385764851286240096638120275114711521563518777253641074418677508660984493182536230946778082986678882621212435796695738581817476121639589043446395588864918196645898529766832042044158124666802391662465468769145817025514259150017543899363613726260202889927079474817227337043963621723936780290539367791197583562231649095228023247454067743785757377028526418713394541043979538757628945790828779875280285562750925060963012315284755501213260808876021490172427293552333594810435439431953294837506254571105400164704119442550343610945691555310023012444467862881687388063387048298980842762592553681381781045133707575451040041552017236276504285862941218834282770407340561107325343579955062526014346059067949627026438474636387698091847675323451652550808784054899812559359509358866955098296059738738916286954002079666412297407006922574621773302167960157591585309260113569456505936093865326371167649618600538563057933549803749842054144084290804402341697687384311373868560622695949087638401075708527826156059601415437703920679983182083829772603608594085395953657439525035016038102863677218950576722634399504622742120143718108443502385672885691391878458872330507452837064880269310092162711463062491680920798766243674138440304261974984792502560530941475405357825254155423125444731719640822676795043334934691319459131543244217358776173381993651103730078468785896408337179778959005482558283416382093728926774528266107164751026545296390586160929094554150603453701443981277915638333519434960435284740731541750053690189954403742147499451996026459824740763468560389283869286697463637076917333695453050557476319377341973435579619132032338071401076688018608255137677843683572643537285831364021350435624931538644987600656142636776938555476459488434565460757808158014485645164653036248053806914693607937413965910991815091289976303453412992246171231519059500947914716650725184751760145230538343701044735979211416170486716988248849730172618969697210279138151552249897954317435815642148970777138934270186378089541235210748468360857075252628950428339276653890704116429227403606420586517685438814168298244580131737766393331831968989750155551896377331830608469726251096548652106352660160231699978306201275093907806053975545637079796563045066701359031145860574430893740130631092206311959369062845497788637362892026088154893906222176619265643473984726971068976344655361193518631836549119396718269213578297379968430801643129229024326161814486912727686983181631934393416761440255843444094160889705722130829693845606053356014390535754500065364535374183501783122647630401837069222483008272120196939189162925774320416529523528085226888198385249622712151402755097010580589900964664764694604910381984476837564668474398629920656718989097858497540642475857348777910449935951871705105274033916233130858093767166980833354617522962027468330561294434942958702618139798347073947603754129400537886643557873969153389192807593709065305057309919411086875215516531154062435570328144934309498001128385515458390882888638643412063742098091781692951372406325165731169558253632243392246700249959684217542914107412830012553267050216701331382867440692121812929625487242483693163002922631175801069875085410466321640445574393736740179388832122980242547858962671687003028155268381069248501028438852362803963784577426971466250102137000010447771319194563175194564413869656735844546355577419811618742920588087088634228121949687394491146892105652000765871450443327303998611443507755224984524685705266183121407781970502387200633578143017887390772137674693483022542519731931528205859916071496452801527768585180371454391722993875996799852791865857519235031019042644960889880216101434675734827226956821884799350046115223330706860674428746007593731467547489098439346186139512075765165066069293038091044961303895867711598863142856854320614987083628991664477922603354274652559785757695117374751637921490824127233728494813109520031914735476693685855887182543886516569280207319609439349403488788469752678830487654612885807769293136397506704894670502856571412156148616810563652805508757691843780801552122474428495890839416709853788506813316458593427538147593215402227777566345118842412475692782275220910928585132825996540235079889499291041107978425650408517999306091450308900557300194318984892789520648827675574914477003246093239242327285955776411816204758883450061381996201234877967261812544112865129994671569340444321888812359892632616736527076388446389435049199968050382421980483266908742772386828695295396052207750428225468463358190414441288306231425739154272331080731192777361274915065142066506899035995718196269602242425426805215918515742938128413552999002352321991469883233394580789920202710000756346455126818439767046678977908904876593768423536441806860963665230020452837839577968150421714097544100266007782805020708671409595565466513448995730582633000161096592913187665402487795639485336320638196088209612743335271505616285872262002175330706855778084573884150625060868091331580583194616689251500013295903324231691718669578130703481585444062928194738209281831784821328077431034936721536155057321352696953621886622052915938153267301177103386748607958184334355885548250130964548481011573419185709925080065880400137349059450101398164476765148295410485965339099708066472908439613759308351548923354476985943595849399430346663457320123451693371518520142472044003372041708229330999917755532846771764271744268224640153358259739873287972950980048643859515758745705524720686218372926991444256238462078856644565794135566248138462199050793844975668282679943524107466154493114660793300707680444184256731688287979537088010923966433386303933855483998986060422654364532690728304677836863904286732419106476254587997679448825616731012413368267398969242998825659370702226358056623339665843858817853199432316894575169686623483593723890809493044825339257120121755602971309473149086420742904250066698690235642201210034692977382590835158652666605080831962680521539663768598439637989224071683194899407871153578345487689565461489650927870418998671207833714010648935453308191704575217966996102135749600437676092042230775929622533702137525379347251291870327548778071847392011600526492661676181130110930835114608590880863847488149605233756012523390312051183812536379546823571299581436860998325214058988793643070905494210469979281130121894235837607320814343991518541733614705118511835581237257458235586292838423134327595429027462586793683474815843885818229560961613011186910763968815729156055885228765238190053950266261560084450956907419473536834526093056934673093125814708103208849075106899878604284517115347214772185601801911548444907507627946482189300631278623429207939557392894738057468248953854867210078304922902281556732840432608426975559475158748745645714307339649500351427212112935886463610356457042542641090628150180675644060350370361674728664239924975430219155822799737787407746658486592622996268303170646862864366742846408340225601913196067260392814380393138775150260542654454590312581287331781028822137719342287657756615230339570847659662439456110645889836992695965976068879748763621003601261642638630018352090900634927128586923040881657668793570800725889029312736372786425795740755040539951523402111898866767048909300354291850359463168902923840572068376512413867337585074908554235174040133429461719938143557789542262615422473909238493445608424327033764147129906632865756119280127205606079823863525570272230551582648570037597697104445508940044116032058934740638840741744567954783785876751547221631006855831661655592854265416312580589007275559006458670830218693000294991113644227325887198502519196158825977167195241782695824773115136801988632144851371620260631861309723914853333343064901329284630200165263516029190333174887800067140820703910430960744829955742740732637942539649295965886459159485578307707411259122166312681993125218053779079935369195133711402456831387040583959856286172672028605777089193573435331164390825036894695082234701429624672614525903147680690692369330997799114416243375939593199315466560004906989266219860352554714157472932949572021812762670430086019960768977211462594826686185789802031357593206345511150194386783737962983623642892104174460422687081523002359408366016381748470418423143155725107398286770615349415956796673656298759999691488085899940805690677171493201865093027127685096459946001900339196861427426870824867827756236589889031173613865946537564676059758463306842101398610295243013366720886697395987622971374940292729625642368361743955869176384227978488601077123766992336465746291667699382964925931296595126376842780440479812689261085570647121594088826043606744124964102469305663328771212520650373772405939136731880583303253656173322831430564954883176931375721708026226236210798655298056553143036145173051072212307361015120077260463792677317798879533348170673495501628107590239368184121205679538116709352670387568332120005868599421565705891823900673681232020174266826991723667955674096087466138608477896669149300106945429552321168284056817159588980798740992192938308797442209377422934158911931571309746754011405598026066174425601645229875435296534757248168538029197921822340843776223230315145184203311137965913098355117444782719398587940382538157658426160763431246802166844813754923876178606629993389392048500524365337957856024043057284596692907178330326917195612648705902823836639421454450245795845478002168769121471382066139265353078799987889785488319005723852236952559648543014917287717098046161466482588415950785036785524706568974961469224858385752515175602485497525717691694904398278009124646258554820079859701577275551100930198055315554215729984679453304244771732230092801737884051828765831670280505011226511478498738314505291246629233528658729702517927794926900926914265760196890600673160486804745469092674842427238452200569590722416939422770070735680763264271723417387294847315520982650944135070612254602443982597296039554200450275814051585444459527992157801486495225703825169634656956177535393323954449240578106740523717984779341567386222274965447828467147499021857848106975105377428050713107157853200078307844733304989222495087099230175331240766225393466867906279203499540537781050675830298082511794357943618936064721329922266763543949789488023690742433361960666773015785235175331912219933393355188353254172785616711178031302141704030877116177942941625122287132110265301226425707941558216062596109982033018655305001117757565026218473542048864343978341979830642741337226872217490510852784438353582673958503456665960386915700748374882410942658715870728424076992186906770047828129796193450398751941185904438231061661939775186589701170079072400371125840226466586196822232885296821221492099371774491606082922690670207351879232335852355968853520427034065293982767796142921401274444268024717853108451115166766131619719980323204395264065327652638990386169457901871839259012479659305451886126366210825960361920428267476413533670553804454917156076207017881697591270322765858153153418191546242300993207801923196236421295318327324710342410915213148733503817956015473644362602406411112469759602384008400348616039974575771641987286895882491988414807516261569418362588763364445863891950490894618989130452159595250271166289919550968297314105005920105158267336782222361045169565506676571107297912495569949076385540554294512084687834463604028404700616829201359827715539535829132150902765997863392007995866377123620862186243277944196407939758181756678842300948864141318335741006704500214708582926746577885449539604205384112153288798115067822480011902822152824641509712450568686081752937989412637906929835238949830509902134769837120666134999258167459317336219232190563369142278403366825661942661102614949931007667313397825720461487447673662440986228882045801962576177945366788219344552708213425870674135678547396157784684015586151534293050391137830687124508183189176069790857692657749650249182313065545712045919144674075877323404550257686663928842305431177454484637060106519111066486285030242348563087393045367049770145702224246727355682283188685770030587659893240834971269764534813768982292351923373343433356441229415501610678919168807017847840107951129168442331312145919123411856857970530068820181722879754884128888571892869392183479364761491118596662434736915015527908053533136266071214510115987561822966360227843961113021249339115549612399651462087159690961385040564951851811176928902875231649492591708078744425021885043401883681803322047859700794861121158795674406252716846616715198297518285363415587378192189755110685804678215026346078987642418069429709294662867041563859903846369405574002860896889890618058295416119907456996200839187382310396997209976724858708870082376429851404904930256213784627167944931428671738860780946768010091402906615202424327083605229808743953920557777184221933232759052819263924436390926594094520361457011042145448488321665533240618439071260971470190420676692887492183088020211744700958288491161689335337074587709163861226598197977060274118799425915259332975435733567413592989890728201663573247340824270037743391309379602867869721358178770390050554651877237101893444565872744643643626325101832825766899197527595861064993827290644559332964747238627568934065413366703373282502473872302032253792307161922394738672252182548280955119657423796790604845743250076986243138632474087495005707402496743212373517833179407343148760744914291771914024090728027086032039043517998047749664245950063416422606378221825072013758896153975159075016062828916293314417102370157055579761530537452161462977394518914796308471544288088818659494892516826328949185127094668017518054874268689878893606208936778015014253455043813610433545985253037442215844231891212170196688329603582580816240782002463445446440836519736833529761389528846201044029963096050074275435928632260215171271527870137366652174546638208100930659594141899974799208783535138703856815683850975519326839139104956702679345092908153502176806010859075367040160402364631439471435639027774447722878333030775171107914724327188742362665957444147540102299438329518770965867232112245931105669089007697004867325858836184156517673233964125462317539895258117649097069173575820679950725131272975895437855204488060532501813801048936285827597480897156576228404661066251203192770021548094079322291108194557529685669818337571757560430029738477505264616323196337039455953204259532018715167993378365148007085398508072075834863335070456115846910122891871445781202898612035928312649676036959228470043314627484525545835812104025355012072729600036467421221401138940546291897347943889087300358304543028211810945419624287131732254672237854555535936247721813952084302728237947393228714600339535722529034670777748878166945684369360555696606632145557881685541354620089350217391515538188794783826446980339211669738537172672419756690702913995198908283828043642453850535625402761232150127032007585843817582048670507411927721562465923267898812321509623022554441832263090095179867730012691805619129020069013430467446097043224095120910642511003372962896068537166289494803484437976014304862610122762337895722496172404051577821576117713806186009244084681318467222895318362938467550433966236325426507924719620804143628344981999772222219245439648771212429002905473826000030199193667403010626997593540582320077670637125540324727556265627650074733521979966149618579742066830970381817265186663842551289841677087072687074891054097124765325235288525943663597818657897186557033025855811470972013865087707631131320747578811513877874081828930150317747471353601244525741801509502220665937731434228280933759031665110965399490610126107352729852553024761860740206414978146762264288121650564052508008035533799181977693800681249617014784949194423681444134256387494895479229416273778092646368273792143972719730127927238779134953465987422007806925219351018731146589072104051383277180613099567404942072035669362700369563567978607269353372280227927111546401891093570174745123818106814195565981267792485965052072667763688061304156412983857592562365803169190222420466335632912759744792946528829509610174867898606286116187901809838580630565958806130956829519790524538178691930435467351511071969353969468529698360862066992018476399637031745934525979558672136491994070587318833311524975699733099167711610027849293304168745839857899168469056311514527101003816329307354569849890110531899072957679444866911365438504590901363114303610640157405364911681732885742396561416827061280289310198975360505121031032471670857340114900328101455188577505867987179068104434512092757081775919158735143701690803487974741480900032502662579551906631453521723864191328130966725272885658705421422762804436395368116169939847708946674037885974599198009514013122116154800447385662315275655197292783501713319870927655932022353483412057971570564557992969928328641067835848402204595500098241292501951478744176387854083629595601026581194809511613355431741947556614662350617785171038331892602708333303511204338189667027841408851479173222950250880276137661646389841593495363567894253378834720536925185701791671895272668426923624596271484555897173737256815098534934220185403495340765409678019064119206432465546301616613042305900637700674755185736723759575383065223258355822351236180449080637095683006350827199838355801048087864816038857858021716598608637930952200347477226907998462630858129861913528728531788941540750422691137235354164201982964300415506888103587454087954641944350219317170268735676492380218026228516190844106325351913402708655775410465324195086600028046023542376335360864708679517864750674159358130063981993219838354411321959675632448136627468342556803122486280360110219130781119655153892198168174356015448938816503503474601901335639333009594949954901033717739985634550366260172307016060343450954051495727546094541535980031405598188912880657815407455230915295754779790680625604612414248343793530491121964369856797914187446440122261444411211637373210323691952004223325418749793776638424678818198700727390786334253978266002505196932784928951806174119031050852709681904116914554742571076299859601478182224236286544890131748488870696960196102648591118844816464632150184234030474705636335020358528764976953316205065415443638036726386190245506645529630410599266537265700074364209537624866541416597901719715447566970420694946446518882897123759000262345192235815493750192502455716984387415350535342318353290762807294065499527098132918817272057426533091335556911539035888487281613435526623646590344455226444715408087769051746769182650058799714012545567970921923067076597099525517750417181671032993459296039606837240387908399940657689263867427692514565123947201403620526419448395810737515951818863930805951404998195665942592757224835506105460974643235895666625227286092839194735992171176546990841902410290195788666741276799164247570996581463125672105201182134644366720923701463851618026496742097338106198031158891320042353839092056719629023899460566884606209170287989893910077425562280729608989355386675203324028554889218748800033927505220362929660726120140704088201393507240943718305692179262311708453702438767966685254935918481812826836887442273275485559639298923874040788596921188036276543845583736365220014412058408158672655021467264644316890492886536238928919611303606511138371789010861350340726863757101176663056198698382553154236545934138863127298987388551159740975523778085043459153391315423229268117500268707482335725407115623658624595035742206411181568435716237165098495918787687400811898456500694855535727832075358359146252224748127539795075799952686468776866434863843952349112969723996047522969183344494530750888051473905337928400197247199528957568074572237843998870762277320789480598966090421620264425527356887386222971203125161850947821384295686947725961096287333690791382711311441413761487224951631036120793081604696674704289754770412238852600901368911462323002493323253985344456811193662393170109238847999149316808921736212055161726442146775678125243403907811195244437038759760919544486837551402962638818599962161640461517177040692673180481161524560490473139543625857782603176710700649332485762516740082627195171421316561309830788268524976066306074056558024561643579812535150783184628289671743495049343777990505361202727717483459650199575310420456773746945995743751225371677612080720762331691307144422005310829611510092123169577436086523403540211101897987526740840280190787506517949233323837741008119527423121051200730466747351888648497944174550759109183725625654429144379843462729745565331614099482264393506439963918624515356272374072430236943150385145077024496193797368238048277273340965817939117928003051616616727365373475293118672739778391110452986478846593915607039504610702742742533473163244061731357019394770926886141324489358229900443812707573138814762826820494798138991582020040047948068233808462421029803444741358965450118087677702621535112333463149509049676344166350954519877173678723333714753975730765989218754971932394570944652998287587589746073622691944174800232792668620892106878697041514354098680963404476553431302237449376047538354013770575018162640043061686865397838989857527476950554061081220026949082425645791882739338149173701150156564283638549048678050129144421897171058343628268493763591606987102054194035266101717096676089975331063448685408357946507804599482513304307900904442335111173054608669549305547898384625798026086280511685239145388239566698387190530162974424064745619924859659845709392615071831941735125223421903541783480624474740786846629769960994259653175782090027634141365944696109063194221286540741847204187043488209162391109426234854930928392358171933237186956344104291737259297883803123524705869312044438583336763072688533374937529084142769930611093012809249280715238447818079234431115830121289803773947759657150679446258934524693068258145888831172413279454330418297960579111364118913166817495595372858627771386457360669135933864924003860043371834155959076419500826162954045827225928575529456065421375945673086740656114221905631816205610068791671108757880631139086972530353409207529042007171882336296231845762642221464510695816507967659729067893285143458578162383841946186481598219143730858312772852697208793918145145876452420553809847532228682633625870670921222563517758655555600454912951285725616592851290146225416167803382631275658794833801612130758251000214273705908792468667552738989797320543868956439694820099614668690128519732514641109853466661058949318269979788630002144047394733484055456448892408558667636731711492387885585552583147719750994615556496018704717078171379359640021021028399432587532100357740501681556235790289843941645767928821320843063786208470157575546115467137418881030378940769119446199138952598339156921136863733178048004122896033718647876454082852035434245293073964392288279019713752786125456300344901476809857200612176936316395391042525626961115108550846418203963520408545357922983952745934930537012011499235066169081605262121210270619940097280111033674900532626778862292916790266322150420326705357354801199391733484439983064847706811591439188180307310164491024632416387969166060412639426926101120710090362056494844921482260705917231875521284902463786050801453068793940107812022664476316682407305376221501759864221353221285507885379345873161286889126178657272684538645211824670595617897687211166048247117072875560169946990498684376898109402319972009373037698616292151090100519428279070475492467569135653074216257524202765177230127652632209482016800617870039767521031482138192610607975019710332544022602238790837565116417076564630748683746599024567340145832036389364063053654656452321019961342214640409838648261907571957417589003630398961308180107447032426121201959947748926487274764312063080453059696664007810904717871718867063651140110426466576653526759276989685598247437336327990837298435669404873935984401152289338925261050646786931925510079954958386281406431000867232106007488466388658069003212031585734008720988867239565167300139404497229348602941591316850985955631404565588246018558015290560383006390094428569459633071284146440315906002695136642939163949124707277396908134607908052232410821017496082133911601579666819358293053992947668099660596145377000066363080377214847182385470994355164943991361579839677447979495397062615150558427319551748271373625671943750733425954685856687472379668616117273784324129720349787172216839989501457196986681869837221285764045816941998669253333360806164223013730302810257102813817662032135107363576316765235977026480943382994755301408405225832606695826887859935640206927451779395507971571031262932681920746973071130783459731040122002784774066431756844637680055491395758053760550224095306651655168726929992282998720829457951092204563760939102285543925223952319757894868120625845619447174608420786572174116056923976868340857809126737686244979891357143437067724316265046338550733422080500392726819538470077913142386736550811207871865764811797684244331033479026320407431160510703593870922935387613660111339912667788287325227054018575912942919869096540709566546033989682741056544604548061472509104278887156923013587523024493657232881313642471358801913765272601804994826725504700483060609641597514418070935776248014208733374750243811763559538240056916663330870958171452241274860362256241293038252235936661838834713823666315545101176192680920597282476621213998007002843623656578808332240657693730015220199128675068041369936609568539742742667054844823112249833543613337247064269860362797094505860963374622851362425722986599841746038623131863161103030381566509061699221928381257304425796598039628706110671596804780922647504396072078466634875910296476918411259111031199544186786363261594728041300161866469402134522287315700081526594530386972738216071989981582364606161919442907614488251259208953475123139954874678756694541103079786341650415445685676115956179497776978159213677953925967469403203677053927576963285126939899251560941716718954015965965112646494791032177610070165657980243875142663023427956130370175426736306138628766220456038467271561028527374073966684378250030220068463361056464523415348187540877117763557425918044137192671507923422726129298641484449420392180485298470924256859322641327193946361925271430515395117634632250956880219017670567943859518720479859326414047668181561449886098974193923188838660291390140924433838795940586905790591012177039007783170812642740301365872737321283736489169918320292927821999332028548923574873671541055408426205687173792318534476034764647333326051899447586294185903826922710651124561240361800527872565276101175207617800138744920865687802725554341018464422108394196851010983964497581102688578621275924738619639356271466108858627731353102051276123654120458234976703232809345460268480560213270660117609114433108053406490941514264728280168972278678379838409273788901597346946207075562560185413722541664918737848909028270163330875189855369871490278789322174140597959474751992759138046939451500107685861238988053625179696252749796223380429128054418465016592250224744617913918426520311949246010061220286711551168813437835588057733854958816054910811202077488816325607434592749690170123034304028093080808630358954750683530884593568837493605542150026657937173119914885772721161255274633638990351458781584756830061271034889097044310501309094516755378146620322503728975911116296282386583903683701100297570223631893837583221305038731010755109020050236166880523567557540164557481923970734957053959110702627072261392035864715028109823384582500668393392949890864487201786642670917168498085490719073001975134632096971675137707201496097270602791102461737362330224990280941036694340370732558716157540303109836137929332796401876633086126564634892881107579099647038889069786740785162153205827929855279073014917354722485032897117869931700015792942848147324919208953345451359214050348218275103539559559194009158110733047239980472748236155180833470561638527624861361467013491406288919679907343000021312422983392941122049727498005840150453128810053836497147731645088382494475957231496142087040726510792766671214607630007862881182207918703965870199625274628619004787967219282107007713036056947037799152943177286247733643043976890812581619822838338742721145244850274918029503578253488330915499661993662277548745268013468123827264092281465995977141818987369056715376920064259819626037623320678284773583238365938452282639818343837980784884859434313722062055448193951866864251178209478454088709503601241922608559471908347497364267748632396927337578165961920703633932180725826249816834931140451941032689375722286083478162892518825134842656034147076870707939441395944655168231479098928208599841123927973865133039587506019745489833190857259963876969664566671982343974053614165917412781193319413552605444364158373217218388809256923948574187967111188001825057819200674926286274433815297121618148329930893173441686711059513135132821272203059550116573266150926353909975022010781781074826547800489851387767967771561854706394541079118054811738605914315065724923274278504315256559947729293220124794416745199966418400231128772091844077776215608416387400314512064801515144457373045150254327092556371857243884629616912774753767992107430501743529212311054913994370063192438023253808816910022103517904952860551292559215155549213285020313132808746648646864910131826649877876230322451219382491526043034549273886377896797131649184397865675937202902616904591572809577247550901097595251238046984687559809688498257373874236962037007860366737953386778380029851774339015453530093766486423699740818797776360440338640129368141972078774964483331421719956577603428627706823546340558865915735178019240993471401428275345090728302761159947936714799070445258228218748926323793475153532255232108513582036127296652286922973370585699008332251216788270847281406539437916127082897374260290982506180281234463809937010404823266564767750038031831252240427882096432484692510944089864990831999670960415940136260748415792367932344977055905297690510932592752539902338807891142353642856318545386260632388584895108801210132420592331534640112000036688278195647993438393554298830669352690025951694704133490892811467885861234691061233494957159130736039332754604511045723568823942221637569355345042952062784662628995118300091551178487757391863944522004201105917589732944492233667340990892475254290465445793174730854532134141635325438533053705927493288897774157389513180428918915483841855471481502499181602910269830303325596224090843160267808291458499071955773881555776863160843511225688905862811553325083018109026300518478689726057502688798456170789712951860261766805831496497742277967815338282514675442039993701711343154685475058723140188540943990964479158231428482369357983776103938187137700527767797844904707064790989201767606167223393149518679532277656326951713619348178224923850737725077014929189918725815589798923164692907476928865406220842902866006241448571490357328395599591438110475260604177859760791029449702837962438638782347650456681466115004009595725359044012985443258163220836857058483455900149040476234513976935044370068930885153209995660347523580548059139649719475844350210994788574300769115873143821008428017420501063210892243449895428163417901945409404382822785093360121588405068645630418048035773420368671870570455329463099630615778275751044096597043755609816266508787472564284390878222584279292712961952279652084537642510863869323696360951324140817722235183651934149019050619697497864010172150176079723804140529177782892331287784623918996286146811395022704748411745230625152049260027514313334005464276622930861367074477699237618574564487877141662093708404451386156789458839708616250141812471462168696849778515990858578139805278479453454414903144169769018283314558371410557788153842301155237902884275118714786086954693501632551893394471443850103654106493095490206676714643142113708029398531937726238495830797465813384342724444699696861547401079839675475034245059077740351317795837384631252797583795041775962992543682670648103221803709731540103318515318732775877854706258159603594368377813508300024642657504578689472076918213639030907284200228457900585252353387428961157103542873051519596320506656598535637860042617457897057177190631725194586893944720403032107182413969400177065242936256945466176180671582560588325756401390616838056837208157814652496323982065728461970129770220505699912438479074351990664814398300282931129806678562139952955042818313993570911314870095284606499786786935277642987631429120967376117066643166031770580880906376750248913310196239545982420195806095346865948118480614279405365468620740847069743551706428940150685404123377711452451782615687878992420062131941251998521450303875006195659158155700928796404537729405815998893171061990764347907985556973298497877662587873477837763260781060576036763173174595421158428303193531331262479832201055576524388706990304272195659619600535193190418320526975428542159975634230654919524797107212501678528777034479911226888338207447240142342152578709761161340931999241997528991787284047046907073393259872155387563905326047335904295098720230106671766779212247868528805142697950101913567759139914441553048151058128201761635128705070457933409091237692263012481852401119962256211314485047043692531930302054855415508554021115008523198423591433767700579485925081880237826198523191504773772200788760451500140338512539169355043010702124498932688014505109796008707384448712835914501834577224551875507031655870872380378882693069489672467295321252537345327296513079059855398616908061371927454024503705867223498514670930504987500249831170842564443400751206668765223822686907590267811428360046189096648275361590678102734343495364211890274354805771467060907522230061394707898307349460039335947799293498072295902856832969979863151008700995584797159231522122083796479500920292898959334835814027438157450956476062281034022101955547115888695427541780509834383844325635557851524425347126288840199369585043202885838451629785673765105957976664420742055076646269619812061584507499274864391242893378829198001600815246428412534854231750993660581206787517050503681578246232585883634980010089773982850321811625127979378618703511410189175430400578035093147608897210389710998418563849095956761714669610906299908517800139804254196728502078052943568935165812999562548336211951830027854289667865802513132031199223934905303040251197851213696911503011588967479721174292093946908961507119567423818460045167293338662342990550427852922671156971205828602737292417280308549362356256882129245604449936862319177445312668813104388438458311211604142671343769087209602223034867012274479148789062196577138297978493357110412534413695077043957672242279807719916132022843126900531641834388135332043654667504518163148092186654452461362126815085949658589114870410174729573039666377326001059778816870695639025373088995512743509401273503610306152664287481319701371531046275962941950811122611570795996919110311302358545071119200925010209014889877809447838685080438905646901980194896660474358560191789956548158008294369841354881165724154259119911020466440992110385746688285919336397088138532730159472032571055296648564379504358295863675836321649031849189276260036858803431928924973845642739361348363199387509776173691128167171113588313655037473069437011619155225785835100056142759282004478740261400408498127104274683598672919982596583972946288250498914627173735680706192691025662829820912926773556698931837974433111213670189024539493244852459711769882160401434822311087367283398080603868328960407703229142473259870599514165247554335303425399212641829956778824881371969500461498059775090509803614023949998927397326173289247426786301595430622950340663676229709987805625377094420628248560259150027681152453776912279643093988304551159763998484362423048183521257788470525721770224094635192422651408868722384823490057757105303297400669361193840827413246131681592571414110300751401208485548346935145489453021519171031835830038728076739970616093772716749339551208396606485719045051859148041076909467427984006482342483095427317526948515614098884117185237792483750556392527874849149419716639164851915546656099858302025194845479034520972254801956412971627741992505582372448660271728343980695381327998875218365655373842357167688331786398814875799175356102529780262023304045769009927888521013028844011748845979870751034034267715946779017122290262697800107576364104484911266244233265480442573545790998287747245654225970451330836227043402320249687580792881976280279126775350925952713966437943060137974984243655235539350213370940900433558901401052306113121638634691421308414793830120665002824602749923398465863613563138373490865189814246344028797863985814645365535258025509926237158707331605101112869256057652255442761958012896332229509787764814779605113584236931733204240455504533438333064378712331438181173436297177932163952938718275666328102963827322228718871238982960157803165938370632487270932545637743479347413712212969543026509415062622805055003523801059911188656116726450979408169274234606963510508774243269303484261662494669260927009380601711224631071333459029866095511432988618262043970575346791371533902076798516420090856059450615209934961490726332145740287305306431956132283488767115329790404607637386512720801118319048912500419164512859174595544563440652283385779806277610653896832459956385106389958870887334159662437831202880437744504740326197172415948189998892811409364106362705039122724209974508437777251271453226006766487834388183091347461944517967659120317209903745988978283568334108086762659728035416485708701635564456985876359209443029811833588011935598174716784427244347592815829578302469289261529774885402610829352843380249742547296717441990810307187394612119361124733695966411634326163269784358057892984078825847900324386184327281770042697900053034465418730939617499073503020194079295570827279347391880700337757272952361795494173853150210344064879774767938107730851259212025000781528829812971098271422508787210009514912578164302340721005303080629831054071635408939249003875257227948198451012496027157633309455520072893840750802008360879647810516780865688411928740633654500248623203040683999789296055306644592835850853025828145889387502563926592885704593678047547403531739244764553821828192787940952864284157048063708141465011779445702166196712465004567874525631985048989623644197810273126731645104878303794408669157842199541937710467301228264785503748481498168260306594567268968379490880375128862768178012379128192688893003894008860442070667477046421928854100743853759875780019334529748256822061177297369421240476596382239705481684181584227521333003964423221174892566561606084788167212886924077489953892440723961211142844695278167553458330883227597806848501138665867302552909594909386460910992944287108397754265216594308165785892743388337385883717928359167821001858744189393976901450001296776141941365636490510397408192180905465169701198155743554968368943138795216709102174788244800143446317845910328289866819280678290011506298659759590770752089481459892833177011684271179176894975678991231638174356485573846345892748534168162229286238162921393693439929670350203365528201515919998326655344135394460187445267914319671025523454415894958796139869285960923374345088330911141086401936156335639539265503815930430448297523963665709820874890456210697484554049999705407153540835262521710563331620266835134149475703400926212020111817894422824908490510473228311602687573648824808708883753354523902285176424348737197242579914717415045529609278190232940911186268429292819411242432078039440530374618409908407088430580467131776903192821440106566017468712526849027995953407323658621080659484758565847104474307597830325752836173529482493216846484137996503667760817110477556365743159209288564737346826811750709296635004309450879635528944199717026921679131992832230035318760902551342512483541934421690804209538704534048014953060663989466131729058831730185820628582420519582867801643633828221133354525349287868961698962495435338176134753618639751771892685282967322031593823288640931593397932865960581973909803728577219252460123449954658351095332509497324516560679864455680925649569285635099250736935531586560547473881186837009574961896324176768985865578485717038999834252924771430421758868578126703529285203992265561611039525267739981503721481673035992788012836260540867497214787363454683777585784332588762060210464060558204082529918394692431355384505352060623858217961853525749273480479552342224358317075832262631340724941126881903754546576445190168545544789756737471749853904193383009783541733688818018650652742469131977533516911725939453979367651771357177014367616724401324071910240417903199146374732766337833614431892554903520412164137643976032810577875448664949946337660735777642328784816073616581391515451736501745750757917799920095582135493391999177828866816664394885445903483148897768680007766001436236763100884177126406104213024100917893182708668486990566529543617527515921504937291431856752683255153796549267144761590049808241335406944322412019258874089962914984578693998016203362909427265520696469124425191387536374924330235686989392607462039156780270747940190588243655900843225695286112521092121851988340829857301759091238901438495287624925347451574833232070309122095686101730495339215435700996262416241297552779789241682611428695768997826600366556388242279340761298108295906531184661503756993976159006320161354409426256927125823980382164338277193671849099514758805717696125463514341135123072827564243730930897798382950086870553088570883610195277478355321984242820000542252172794454012341517324374178635728246720617000298137523007782039769619691557267228575568579337534831269180703685504316267899277270667863428034636585676100156223532381912624590163779308061354150347168271895517611346215511949969994590929280530356214225459031339731253450455886155203072602368068432861986806008273015278104165877894727848478682349138017972317705753694526264442148471303283572133861407754097555366996293644228125436050505033115909273987629537175434115509133296218270096326489189600470687302221414529357340927140817909335830429318643690735843870428046179650553896799008286158569457600071928924027962648847468657469537397005172471060931457617229836977008414434891205013737572541069982328265576956449530382170740516823589856501007345135394721707429003973871834232403869934183872431932889138158112195112163874739486870378693757651304255841801286306507483396411664076662231692087555439455685675322828275903968817580287721798532206414110986659262519931124487613531488206412048549196786762389753568925904471422645049843019744561674272167490431586786298467935616933204716082113052678172975645538326317055704748152656238786525697593247325665752995710807257119198511645349533826936569147959979698609582597083479384930418374210628453119437822435661820928265012824133592373403490302310133793233041886378598756872135936692972660055413345745342207741670991150950523499608208682009151673563971456254731295105870954458090646739249321909321430900757999382229942523325095218505040458319445441153712709373211260441969897840546949915538336006196670296464352105117999039062076064751515894734428882739110390620016369331785422262994621289884421800738910623487161617505489328718077215401386560618509169712769828642497957133235208328768145662923436971470976894036373311420822733079402735428524844798684142504523631058865347964243720494972823086840723767972238490921295069178634153543269476001522564949029564670539646837176788670078424345921254893118637256190479827923009223087613120839616429290256069699533008554372885297252519178297810752685297797447455585575928590438778926783970685743346556702333320000513143490559868072100318383211433909557877312299262617886904475129510993228045472975879955146607494763716274557813630338932583511345725340121062365306703417528617573880164106429964432424594677164585637420477906380866251297357607885139629220098689519965992627870508232087213223031278854848835957078883003028669302971434262785187607147649348985236619458326798514733267283010283420238955611567437110508792705139119366141720264691545251684691762340755688477783220402086940993574662057058875837163591838876489591487295186379140191432960630658673545707687794087527214548524224564568229831250992266954192719398499334202063464011864953975529380152512434843230068713016392229354014916211303782389297060753568318856342270310307717652595401566242268878991202186461635735562025958875806889739352341306619011297106123372334880879302687363684828070263410472971181458598169255985920492817202097590773587111876034051558859272347799886524816738805424090993749218319216320921678429344736788595068964942154114455468715883770369182146033142901384810988796343502005672248809722492204165602324113212739798271127627556763810272909847078853454668167852778479255664203195400737023101183812588259842752676767709216851704491720063814160055232175663666099218895289115574003477919784793652882775618100147822898935283606144778656714907422392225314927215083409464080197033785968889360266684769107138967524140616873868786022965075101316541882016084911678687075294922851413614719381624391306427099137335084600293852409048260071942667093695986966705016423895961094196320171563481639888176714024433731636204284518193068123893761774877371355024919063987557540470744411456610610150065672260045486204960597392726704714798491966831957496789867754546661608740262167986080240181257423489474821002580612580527018018069324264557091070952733847166627581242272639035446240818057730507442338706581208573794748745133372426482739064548394122486779163958039606612693337866428081793208248854174369663725587479413467670963142932086406526338157364094517666626931293036188830911826494923073259683952083115122652975868979885807092027510378446237702594660002877829474515582525204068389954085521338957841694346918343695885804364966555534023794351009443260890564784597878055147956265374643736282553273587576649426155639958201962480933688485481923511597411487470909760086261305191727181493066904189853507581037527069263796297313451143602876498732053565700789911670384563375019100491335267018933361303470878641059155472468181922842741255761392872371322279328702205106114541363692963188271458099069311485591660924618599470614417961948212887864891471293689176147355899938818713463256485040502600789636488085211370134901293094047273081521407282727370265015902837873879448195517595203119507394992958747284158228214978687203145947897146304147134395814769243085325109108329315380280612648583376161099791878219807592047232110394774694606832344329312236277554199578005467039010959193567545612544022557663891689868914999044142744276099072441100824359520907867837888897401413639269674098160496783656658087549044337806365019105521108059526162447740852106368274285684510671266863885078525688860087774030579386529974296963591615311442604008963867218055559251311901157364150267443471315909168999659909551069650886867681195827463589862786150842124362985811160713279299839606912590156611402167558249968084303443991418802907576429707624956193922379979631084674854204270848723504084832783800469561240104527098781387221468868377531175524479608327685698441126901554000333563388712210607661275057231893916493082816644911787370836232100477677309089179184615379742632427003202757936030121737781207405441644739802557557378358952403006511668894090738699920050308577292375186155659861878845428354501791345240938385792119221743913498206206756138674329884198655681191515934767445050660718390341630117600352223572980614118297676605873730935545466768203468473055739007077133471460025569234525862252461592891434255544160391727162623528320578376430777019869933052827698715343920511041416344912004627690291941869468658131167887986837723651231197183996672043448404590714581958416723491975415868719189351068573658215636592567699112192464517866770752713061164301645339576798637147101467810524282994768961601022623794281662680374904261062692075437739274646268023474571364289106074317062061397129249773278437104351848647620436165183084150393619069688020506726796340592247428557963026142967221373444294180610495457361906402332210273151803049176815827041940851707786413100509804192249017343249200628570497956129735055624065326662689703223635089756493911835756127386302404689310840532486268409581623817887574962696382896349580457791645688118585879012462881470359873557109424164927436806639263604145535051536420732210576029758964771527113205300282029679890208177466927231891556924408204171337367893422986195943855103856748102262073120571293504337557093201005012401781019317037703190457074063088470323715022688220654059609565077931252319922095970860313084413676890207333735218649217214218971843123301856401545134144106218346641896594145547319679824387730470184502136560844755391951680178216887447840265410178573307048736243585909534626683796519536541565158417716747970396940013692025199142354145547164563071747823150786474326902660200351983946437776671482727658803540398204591188757952358855400260343795607661051138353345430315928396515855798522542937716607896974880742665817709286232885620347257560877749960275003709352314332503856980977553998295604081669497696751712491225714111714469011574286766208867206482368775967179070692763823996290924159727822861748422388119832320390179832143225175749609980624008588423963237260159264937467848484569691953450381496046024517722229905879192767647807219179309486892817157304193910044953240096251294837631637906538484576732238327054920205433510367086734641350039863254843515539622208493268248661088337756437166228893906580112842524471738287211339354445125220176099044634538878105362171799977573520413740680544187868749608442176237077163034409417538141458176309310724677832955598595662346135289679234493479668280742310469489330657587304896692068518864177425144211457737773844852677909844251696879221752907377053200269014063519759644714598252250707640798021294220521618754976173428211775545137041965183233977701998934367507157103857259485536322956746494358508858283321868209995796433481775020626997033020653515291766086579436939198257628343749173072774061366304131430894810412295203953109981549293605446694050495898816356371266322907196595666037351196991580098374255638043419712362193690765392333994521355675311537370173025280385109361838876435745398978728535031350441645298180415436879290344156168503608105092969676538786947146075342696915020143312220287720963864248695964832960188461596994356157646863363262219427503804828437631540450385282905292431449218342974818527887734092499840526855425978815600343966684233405444699633980349183014228316020968037654430857223964468046748879877433244171920595364592118958347939564402473451439915305487601956732476972994857623909079581883825526475332861026413759479163748884813482079544914509342906586631382488575744728428675749509628894001569704871867226537015979185963024299386476938108707320836612154862385082100699910103688692771654491282273455474118172400660179114418670433069212063269248611597946786661868334854290449424964886532309412784289494275004324142083677250947544005771144226370829152178510317570489135850465161344937292269876712382019185476481103596638687685626581676534751546142590057473579069013157480514461201132726811288447964740413698082635005187223638755577329539270629368222657391589675946837437245783341172680561230952088512647191613886274005130805995234630810287054150058885428263353287165532368271157371982307907475327130594979690565143753493714711945371113067076576456785316350577299469777768258411359607614262393103847728057731338775801782295284385759165315075361168113908460342913859249584772897595404460912241440855744980795515188935328199240715244476931614229017171213641783058903950027923390091077072114048247471658154817598750402300927196582142591478512375791690461809181209899861913258551895440877848066307335560565209772531841388244954632558117721639033954372456791688096128752813190879158111695320920628973845768552893011464063846668179446432078791719743301340409468198640241062084047730433906509430533736904312685246675000805653133206073968990101904233925636975353757711702798419564164624362390023831865887795329451380170405860638902218659278166177087919861634065897006186353468654664217157428934781318217796810151927131906771562450691846852435712767550930717834400180246936161159986685261609914115923489242168132512611598557641877783775576393474829660207588411333622799803438583057440840708753973706925320062600269967370354888444904852289519110809295577450487986192542816728245938748107290600724619820888869741772736119599863887470809685474981261002127951272211963404703350406233518654201390070044354589285612031424726194662912519766881775507550245748331697525621451916523026760119181487435286068748296388062707729714876439304829093974596205397288128911898870962492138422752074300646317045866736244908452845080556704970046720438975270067217995498540420025896157163257742348970562330685084256125907884458205935978381681404989857145553465253415268014351217635380234350608718364086037783041341365115161638449961691142813876116998363352593669541484924446098179141778740594979610687556449938317601594582406763041505160351572155399468595449649513599847264753969380989365393006810378652169671175007721720688000902275473019433141264357197768123068867112284020566328064090056878351235055514937425274597529427665222789411784274981925535197851418821598487204765304328971976275360128634518609574388922471928965149119608077304197970578255347338624618588472600206305717988542670006971648519849039908601859961574869839582640183055769467792448362092166547894619615485105887495146845432071648200498321936773833213737913579018938049115236192242651181365888884894870940345183204604063150752325401669762116198603547577378416732246499230839496807732468502148496116508501426108690580542456194268385785768115964754816721078580142414763770600075996270539012678717349629392722514340463766059515334528050271239583661496650957446553167468689987800315967138757183349235352677309525747300353983530383027714240953805404721628749421273151675686909040626244358831592034752035665618704934087476738776553660108432345196713401775048334651464932804364543749474180126844455232440917682003615752753613796440274453826809212459245985340964762766662552110207328926318581573569991427730878244415183768858514264924540932962056715087686271322691870832046154916893138908885305365669762661211336181563573905108611456907324764455999505114911387727697450653818123362951715062473693747693917295956704298913947078592926262706754977075469539468120820909138482621940076657674710592979893726343751714588682160382666555451695812819278566485917914239232105302338851496697854108706089824410251265016853877877075950786682362190151766429836447620137979044315242742799781100121308135955895194557666328711666333545904144738085014589556022122435953119692260910463275434110158067015155942904004192023271258596206569219168572634360421931334531037820476651395046457932167814479203272410483746555382851989310443893670509898936123618882266397114218115888941560393005579379141450009172272545695496117314257671928103818638587735763310614936257085004975790426883245258007225670111182477743947548049297475766466354877821425379520335081055911071611919365167056301748161343631063268419882984151089987721014625090168281931689663797606267804004428842674623168058274773423074605071420967278339570624040706539407483136439006893555006002148511227067253503066656666279131754593194469151568430045071027340916469323802450206576561867801958532557103062942679227765896330820190121663841060517202030536072903200789820215468859259064464507378949810144539465224803924782387474242447934574112018605058117834552652898762969698780318576740253602178947746881815274385383982709570790876563696484578590211312680258088980245733813456757800603213702788847596884940724751597864162156517820990027522506045948125912287509910541961862783608758730397241081466984989130398290832600269626977799375739061959102125389380725839728955345743807445799156136740785899574858492458875497494598247768226799352170376112759370474650472010615244326447678293254536451019494132241341731877317379083758177412223979203742863973457855197065531998858464113198042329282992056260456591635704787420167622012176664371592813014959905536322249208703952379870206915141486607539771652003003228918133932119367034805607532214505192262549726017994801559750368302433160159696846534564111529951266130730320845298475233119254278444623673185209059617296078462334449393251888080879980647505238394547594969374725710617601281123897326525495589476839122523416417686572261472054236398000643113086768571752472077429165072082714598561626382258562699590890310571835189578464020885263962629759016064430524786430869119667592663541970499888934714813375100466635820099072200573520923357942470818001361270151310471267962707912827914738054381435999996807992890096871969297643877532674591364765758151810527719227176852775526335692543847342968475265331906451967074282685895468227427789360828561650764901722404183595318355605494124354200455655866669989144290999052653850407140947295417328510392125664831378279353612537336459419688418511997820087047210339882921909102942850863644519795970887810239710173593137061024523338688641650171017556891140732113636969023648805348503865091052271769920820741161618423597832719886471126343008989166516051944935211977633346538551648980877000513429355429691549713608501212081969188930532646358639225936940035925230937971975443435183388492432306283722001001023277383707092267882737601635332615039005012047870511024207224667819722233266871259518733145071811081424966093698139697393006788556461585905687711180031076440516152556626902778892932085741904167049462377539471146995065648032677549365667887111556634016458683195339420265878074307780372390892398087400778973461227452959057460600778114681336570941137909227477019301853691419377763034476263829983615519855767647811113077422007381450009812473484365400719466072478589112415329926392480879896588946869774186849406370927254764793610613307369628536001648903379376498114437905216714398261951109593965717917486344739854540447161098902726738354418322390295048086544954839164789293691114241064257328466276231299203154097269692729517624814942942723446924465650016183079505778973207486760356142240554497355018896191723645008582998437006249649605282460675666153410776512727402356435771524127096776393175757600812974340833940190775948481181891953693707831150978636272816088805802985296408259434447307509316160780066898244115990178445782888707424523102226889904433512218107699858433312811368423704647906971499146719246202103275490555810392362871528980727533707733749178730532300045318955731709873786330548283062846634127409425066142276243406700904347190418757309964328202586985348444284879892858453803456217060267503640876496259570938038198285163967490332661218493076303631925158646856771234395996643634840344065784950970598742250633800881746176098816971585582162543548235237007132906762622794791096929285132844301798653175617349134274415688447544077576178138414611220743790258216259543681198734528525751866891150310267271563563075085811415191087258574253872793412817425746295528000333019115815201369348536406705041337754041192741387986462227050257262765237637636015194542783542337926371258346314011553133817977230703429424433076169742063610052949184992749111626361386921900356769026996681702513852605536692279368747195275454985493737029164847025294867232744308114511063886972186519127121325366619796267157703565046283513810906358697735633617388910944790261585431890616761334603792134244753956548827702020601245129577415939760181076575331473752777144672403690840133658352781001305188533199821101683410374238126167447424590621313725494483965931391185964537344207224720237470516021923242478447859685316066718142352589754598466552626250167399097820101577728292760165776251542658050708638778041617693863348426662975977433138020447984040661841774846966278933223478631978251700620196849944395012770305032754140768428807430043291603872960696407528449145895275922504822391173364275691523054301158284667151826170743828589787633609736150645559216363652960416293988621214018143828636959446654468474523302065318234549407180730375563236204294924318299100760253157687590244521622034351536206837721540252374582862110347582281606969183691252437352265009811026628948852602530235278756564945804364796046444787964828637837025199809000558256854499315615713937113760924648756592160456362456994808106000890142129945068053327665333197056343781277125388348414062933142682302780445945321999441206268105651228560040382015321603974627003556097122919285062696303431485354057217633413777215831354333068375793413213455970609158357140647496392872727027909728702233551351313849014344992232884321406047342527388073677912229666489245929962522489505717501046038748179603080960320386891064025461429725556436131640427880538454865544238495068853869223786083766441001690903091446869932129150721451649127186173529017709134893811091408922660015575245889025676183152354702242823963171787064405056616706270581389550740550749308143812302707384197569799081981763498110422922443509591916987119078441724808216917166007300967140299011193900890617872930168836635960246311310830394918732286133388063858800067698624553963387501757696759439973648079540103691036233361558866952424607360154354384211205887789562061211553207649124067457156231633692966199237478493518493955490452878418829659116247459144520222007386778477703489808928377667521288193178044838560376333616063171373136184162310424449997328687250352657153542626048845898674154770593690905554582439459008907751445338643459245185366655722009941536578348120502369313327031024967753874839537286902985300822377710149850418356676562962654861424047313636361602262211708539778583825002256245112448546839724780532559848353114551048485223314345162681763639901648484434345172020029636479690460072866609691536179070974396315029982629607786041024305697844469523991719769549097006185371079617283554524007501828195269157043860624297124099311168319365597061245061188296291376743968035659184400020036795332087611555565827137788489864964852075399196104703003672658000009833076806949551321628495151675024725231789849537681662704559528938274188706013835993276687350150012161163347647515884323808757081889128810656438507965924682018734131339824615201600484835755760112516811601596652443566492099386295874699378930326074160182291934039556743758668559724512641493790802109955101638832338826841730812226250276791826359514673691574453712285722338553354911879616811277644901536343803526320842049220810724457639326955539896549658869120091562299441626496504945243998272881942160536594366184015659614705615842627827563494922346723276903587667013915332745545172993750838776497326864945304936284611092532561207234281177797730196135933828753640103822576838698406973147361149195707066931818147521879738357940451629496270969385855783373028193313543763382160350970797053424116489741238382625937750003549378435556585680356129160887987357403752609819541022641743889966581225891818058864335940817588715817116637087318611803216426808598099118041966997204420173173386063044689851744923028805593760528215265007630735454174180029031514715444435859873068548921255736751537186147359235909765172143188041978627570406083133947051355069202049765106277025458550613571665306661340942085884030724167539449676580959514615771238684589911339358233920551954200958836615784542068489393360633645914813916976693143303309924521694904222446945368730374199202367921657536016811680916778882064807729188947041346536415479615252980301637502360938401329935539595005650963819761994557491385020937322773119050484151454298271524621863086239906687942589359493464081200432559262100791222299885043964485261214315539660346815165925944415261113916155964674978026594116796708087511014795339646246594462645190829079125334119566614644658029301865922547808132424115720289606451536002259030182133161666582824461080795724769117359851409538411304828457786026867833922717571266367788227038339060842275190397182121783750797280251107978549125718103855395736818740511422218298983526535421670868034810141303531566953607208231648609335980815164501400238286809138110232555837228144232137602587863928442574688811473634475403841833130916602347695721091741324834018012142385829222139080874683509015001792364656861561710103995512511429627967017155484411275350496279727285819484330187028475746546222237088414943260997360056298665608353512934956017076135687565274374510241867936608861030577834861183796424313438853264768303116003558367928827685230716662846718536642678594364722738470021988655362229821198453364924516879431182854588322992771423874715431901553932176873932916437006544303972019249874751919007314511561664172127762850446872622434699393156172437088373505335000603694001792270418985643806656786314015490175937222681811732792227886003585415852582845153188856020938187469456842616453246456559297633954211976140724962564835005849784811946512439329668644166043912074468704305894324927274760862441937676720719310014038403488867017426806932297466333531768763718782168255193353067033012529492943572818202302776203384347036243181730358802358707800929389731451697668012529608929537129444872804304266787701657551640516729022712467437084601373025866864665977701142153615558236560224816907668868030462534801752462743156326251400493997928363146594134403612053612124960157488272944321892204848620237461852882977101122882098546574044375872100160732226927530050418236470478706532511145996119565811646508050230714289314009054309894073150975050676602128711691425102650858787510290021087237979333278587427518295826174245936655399499858131138929407775960375093655894605314492677537065374306491675819000327953554434123449018777557338405718341768697451871356346389250898909270327180579455485704100417181800043106259060992438721294812715121010447174155279214657452365078553909459005106043065912572033244261334130019546367195912264474676375964993311144914740604495207641969195705926408084856861190812896736349132733191450382138418442473703903863761141751142374331523715304038057265650161525630535162054483108225201321363028260349897498047794920741938114166826571130729666442623417573414702483668888726692459322712751532138448304843518575115865165252695757333454963596757753622075885297863721197379811056823219393721038185000842382122219047152804164109548099823100901465699013716588656055334562825786529185152175390797488810713656413642612196152944510287353919493753699874816367324467761759159267482905622000358418570926784923063455909604966764984500616271988298076773234092246336436170530354477261810365976601694145812511205870579162993932000852846770755964272089634538865588333498300847776915584418081093439237504592588095304595383635155450486842924606270717307506680142010993894315743417009316496493521597834261059976135345210905612110848444131728713950069132940301851649763460031796830085072828024710702085437343525511317643314094517454199361773327351465328449939607789453048879690405295611057870638698593142488544773740635926479971405358350713511596679418075235985192381166453441989356182239401379974598013806116613509963506904101067507818878162200281033649809293571911983183455866543406611919998509243498803270289529520953469798534625586697341410350493723656368214837992344179982962589717292300927290936035989574853944720700126445324335520109933161440013856495471403362619497841729809309689842886166176451478034855411834835711882806051917385787330747232801639075961939568807464231679744076831622961122328774299696194962259664823754928876541540965635907271646452930538657929301680602785475520094398551454954254622074460581646883242933125532145912585342129793703837882412513559797121775558731354975867717986928686637526870002610769529865483945775301788626030383482064373321794348868706074459889815582143481578820142810086921884482965397278296610372141934247444355134276046134750401757377656060776510056907765961444089379041807657022543506537339112404039767604503712017546698423790106752168419826155852693987175735875789739199896553829144634540925979807933656351620934951806852515844518034963255209442441074421966485854346638193596615798380111604542505251284001122344751924922750041919400124599889631854123562516531045375931933119058875877178564327849785391819418432028671685331590942235177172888204926974683706875636546406694695836757663136978121868712360249252205812197779511844291854571437306062515726080496852332448166669548430520571382161784201200213035689543166417900876808393277231199826927725165326754514921623896244253392519853524775713847913729200641951245902580621169557422431717245345647810179845853493540733027753677049399740150279444472584261809564512947301826725159381622239445570106813455488557466627244200729858836090888438983705374601371194149787273491038418312543756499150331886168144937856585738020849889926728950116792115264266538812353550641947025810141394772462532701719844390376923159478882877392640327542037999885011738232869483230377485494346780736820936666663434109688041973636659608470230698779099809714407241788859831510418109633353691907195314566956600520296258525878694885301032070172269408482946702860234847847440482300606115615508198128303618473400257433753743446798074821556500852356412544347717493396852298631842638250392184244933007323156450751173032291991470376065486964034790930941494509620216457159293339067926083904915893758872064175670442677511324975005858591711693198373675288228729855649058329573201049910084146517864571645636188586062518979120054320651963860062744568669599434935313921326968472872545285387436003992628304751792104836500282102807306754239438314214841109650652327280965489194198431688748038810425055576724243950579628172654472561571451436286632117980671563221097864255848499072744231779241012502813412611509900753955137409665640084404169890809167732627481766305307520495259167275831092081362031083052840693312724683671849684495540938349873564207976650909016176709431874701084724110600461423939595393780994831379025580454499904540079879546659757705047460835562091123450617979156377526282596567725399648166350096226227286505159040625291842496272523542100717883833927895239173641052785916390410207110223429780904890727886828875747569095748098198416859305231428392497986797358542408162181865256967977346735474603910812016928847552360416917212772683501356477604299441586736211425688150394193029653823334722475459818315350427537303270998100647329859449169383873334882692544705809297214800162969137924359007081426760979411053914685461329436824088671099815484121624270289009339625376409078736986659037390579471309990690297682670917950438959446857253784632605449057802764634348557714815641991704672451991975710178065355078588442633756173688044667183192086942612566693570299398862090228338621241086699084837573010032197860005708533332589597101627149916136382382529906230450099327461680001587394157341296622769489766086413352138737031184341142508863958272864671554035632951466819216976198347320474343753502800126230002834640974346857622992110245882105410341915085134156837679067825510736647217788024633740313884646212687160974186368837538363521977356540123033595928970556455387831811718866712932383769754349306656727781797060861532152667910303335842893397603248666900540512605875950037043690492602761901454121688850733372255742711776669956041866023491742329809659906565345230985506703552057140158466482513215940431553274299593257631849263526382721963003891266883315366768666001064749494356312631792499711088291210774373408205614763456059657310875207401452401859275318458036998032933482250461886039489621224191987603140800354930158203313860162180818927272384206541797524942015579092628881382195278840137365565008092508010952376031780588834743871887365970651893051482330717344422769845980070065063800509995203100480435458583923032914691017090267870003613376564892301022897792853574030410158271826150267987141001413385417998033070655158170380844191078727122096083330342659428676210919703473618875969758494179184544110608788360142397286461970295257539482334413656180834015940280243298693660141252743718838229738682166428444570278188136019639256132524036756235272658689723368719137757258335264060610409488450135441734422946066074690401316213983667984184854761499322482407136846606770109905250041529943393721855041640692145417141432274723413942608586504891159828721067577172164799003017829729415793312862351481973013401218411389284609130131956167068791622416670382413354412743297462573547307656939536630072859009016078246699328117052572641870336356600761096707964540282456879514823306341840131531172499792629865518758817269200543249328396714004043288362711875084206414733967157489233117617043820297010557347868898517877802446265536223562043581841989371060267303538172754536744604211104630246285243023252750672627157859839316867686812228544338836458567200433197084080664981206252767342553672417209364457316050779353074160417866897122473763224327819299626695468458075540552028037051820940032361964487434987881752033850068921110320509348159528511336702514007439204209961721489745925647737401110427546543876342907416969845935943755891276101650729803525806192453835175944879773599435522750941061181746749231062756564348875536474858668057801175125070275291956241706268370087189218492245692371828935365052820449893034654709415006090830581935922026395870087146246595140583773690104145628246531372039560777319843415280469663755704407237012620306209303887315290547680718060850407810191792361057935248809995585880410992076426739282781484508276128548164305537687244190309615315914381557909430621761083806300973638158931247391512847577220442111412159879616011127790702215525794749408549664813299748889559368044153001132111510018390071280119095860363771670054668573164560453832944606555558535862087907078957909803781080596845184337875594687187952071226075028068122242758345635131103770278461245145997160347315542809961385288852279237591009264257836224254470381274607800027095625127033036004200857840146308067475015894099060577002284780010802857125597378327966511686324020135863801788205309496705568542315329949643301376706881276230520018595679723903110938385338460248676218864244953295218338622796324052455623994541864364016352656886247285664552448953106273583231238008411528170360609085832977930617946458359287319025720642220975385741226230948908906694335423361313517657509788681191415132852426373328638361010894343169987306250615916205067291902487664635283192153501278316125190564846211550975110825420097965517857723771782415900425486242889646357494956983323263080024528304018311687003940584195846338960401227114603915553116673739343966022042494388444884525422962315942595580469775792459787118291372448058850618339467178896058877786790730239941274459471398927626518782130348357624980121448760096067501252575290312285532066798727703863921236715050232709156886837712499509871348763169399687551224360460530533506150097597740031934868317848504905308197784889554110374257488760324722548808760036725967046075151562453007334393183064911014190855626892450021162024926259854282135655488613710751606736825027251975531302724069676980305598225527888249286079146551404226959550009065652752123595015614392773243285735620707186267413442167794724394522597203813753072666129191408192598371381756551811952143474790130891840343420517462677510449355169027680550625811857933559961570707499290071286645209806739905809935051589907923516475641522403547786077474886125100381696172615131198108573506099521125716696363116576353332128480284595796281223163997335395595161348110824955027765587983440515200520868755605146218930409273550116641154426052501630997285622109710773880095351792424100110082115098000884069820454938913031198858613164759257307459777001772642155151608442735125074482512761249665136685638196527327559149674734622458737584896377201919396057977854324354855586165769260840038141658691609903766318991096972909389510424780588325607461249950379931137865794538692326638869665109904348349215640406821024356879958217583524447360325639611460735100256366326489903629249455365688207061461598524856150099520746338455932259944519877005233943448151245577367806008172192548923201594639949021911536134926718226060902750341588128471299487183630988403383684420283868615215989042007212271937832943796599327614979685221509171623833656243511857438298114275567251218504394434431536698407529548607369136700307634873610630729587250959856423595085335702091649817943086314621567721938636347616980820746248161005340158537672851837716250407412469044783907833207875383591227402455605024998090624654464503537646161246074371227376267406822903170476603558240393465605055192779528169518708973422394570933754952742249517639104299370217507948450776463198939329240348281218552967685985405805037863379922437230424683074462348481787248378094092485885845798317565932836145419379214448481320081685218303541590901689155261310745687492826129791938602223426815178551072036223730778773243951433684703348028012947527696878006314595982290615547385073850337164937568022054199306775243774762808668555539452828254220341741455539091812101173018498206868145183792376218126483458552566360973669739894804101311480126124238591464015364084659457051236487682222917055401904850923764041689839908804908044507453606728760872320533520618346438614882993345258831743174437214498630710815304804385591228071414702390287170779654803326645176962130849218924214539222026133322897446169990745052894376230759160704361198930365178070947488728251751125892069586235284883236644353863288295250037425695200200314938293392856616229373343251729619152775852060993707899130210375724068193611134205735157213917452019956327350160364001268177137071605024702241956987162323538472987281669377310113998227085040559909420780632854546016585102845708453052124036442271622159082466616359295631632753185130479722318979089955012894495560109758031918614092119019339758543944972028262262819905107672262448258792588795410809381390926852564087631287778526519583914097187850347291739399042332211736798101332874826576544573682538698836701622209102289419985545801779036254023685012342550088378829629614177748890287311163676064169114397745215649987921854790672598959537964818596509617888913970971788841002191014095234830244879523993004737981843597520019965065282076790678706660362925705180269890790018140587823308510755986558896380728034865572068311444305024466912548327122677565967882513038997892913035418021277804628476621127687343202184466386622833705048065331261289242933255527891372870496824926481487035006297030147928518316418892295375445440364409830309422781908008893606167507210613683137190559933313176051350647729224133657461751456862023956651569830568690235198146364694263240833067362526101155626753101422961838585173565762332233929583391489678441205126115753638872805906721508959421236924667314473321792518556913968858497868877718742547523172222097645177883509153809039409582041963542024801047089857897568441550656184675436781039912251207382525917571577032002651320597122130252392533851804838801310359837500135954953149282966106324475557328962435940040965199626036595389221266637524616702081549104975491978458074329636996268287465385145090000513417967023430143661226723135283327413956902900733203106146769687830459400645528115702938286127951088531215016553239235845418409603545850806202446851347488475982974169280216526113829622105562003619683031848322971877457089580854950409516494237404387092393395045337011368465317515048702365669785666412515756200653791141962653224119618896763901796268220925601720073925537401786389155309398322423361307294205564197285874654052144185165019003905610703302423949270233278703164641135025071775994800931755997206581176751281441731228588285213093132426945615211880074034060578869077481170295866729411741110165689055553952083404472021095908452575741406178436955341859947067682463877937726235012188434055468265651530657156186891238268782476509089327240408053832001121905296705489264839620018313055426539245283396050992822540221562648365435115784874741018157900112753907867500257660225941697352079153271353463268461623021298744918419159022312373732071709418375207678667579688930092138127254904466427550374496567278691000448672001152034288832959921312681525274669293466514577850529621614711253304212140280442039924440470349439071794442329691965678137515719321527412017777468198260264378203876547919072402332134646336900789181902332509951913726285506329078737909304686812342201939577464816654744640350651930887306411063494751865102625948031037547835509748690699377889880237330641883132370293297911029811570367720715534142809893940137988672924558886342831422270181962914040026013699516177089603263674339345667250416575556379676671107819725692064302764855558399006028446929822044059020601028634568655050041120420636545963304915498426686703394610933699315813570191540031198171415668116134827189193369909144945166175956805320254254466063080679557606795040988692927376654977445336061083688368985653585121314636607390748415740087069748679027957582069689154194808264798963884142484018842487875740219072320126896597827418799072324331560102363936012514217384283551283369110663619310756485011089858746533598823707287296879261797803592565277860543065674855220444221622606637150630327162420140754139219398355397700036682179384306918028285149182029940238236252035249814476851810977299947192219404375654421937391630855528665399074616191912864232737854017430913862065106859753718905080242801285626455395049267602773961624560124967464104020871778973721893146291456741594880049313492177231488447569346992140356785662788949220255503554657258809866281942126618921203347739502830897413438680368410277366513689614796686106418256005829551418602888717490624909470050188266985164318351099193184388411604835257551683470197631913668681456115926710456514678385322562731708386688509254674221777699322336192510690242023444992164675872907469998459692129758177751483724578322574041120934303812169013709055438797729753377118391367354317023339863461220242495872798204765242036787969825940592874278992593784636846674554480924156683994035920854749871355351905765311700123418066345990800833074306949332712640031073420862156908646191080389212672447319009365213566119042242651978448662934828087065976511386537309356204681803274111347077001974905940967808417241523413964787202764213084457627874416849141905307893118002535327927255926487516073399115207306579423142431769381530188842139266746990348954462532602873686203666395213755512191276266700756463947086528266252867219638352879941720250625877685473531151785740377021186038902453726280347182521711410611649288608216558261910461090751583104266175929514870674697428833801861828689018669039087320338553255075000194196111705420825155372137870459236070426050777208263976048379322050406336683788878602814531304140704838032090718054253815301231121536152685408001830909441012328360489565112163077177958581599310697400403419581520537942035153362020911643293232835816184346558652259526974306342322450917974559088111256301419730218734683651289412375724465855342442282295988062295039336895209908218326800930820709949249521657150865737605535464449105384540165242589753275019978865587567592252824018825241972745605642223348329752176598611851885738037505686793417596843765373865398293667915029692493993432507326414638578627413083548631794308143209054269524678996379295822726583620928023571079461904055458880931326135497566556419225147937270990569191886106553196508098773766699597708456037386911699908045298917145764041990113418924122425605352856754893555419576417146486239817593688932712002987182923420987972798315375701116750380160983799434948628873012635242867659494171187225559039131182324436572896215019693053808584229769769357838697205083176132105964909302920898750234365054691957861343423969678796171200501821393996195511157861079995900973316390738677967857582991097382489796368277905765629310139051247597021701757118650559868698242887383404532959671988310916043855818551843710869723627483174273854678156889898037051295653081337303097757375769924779578470604409117640761925192306052243295157383114899131645712507784705337132603126219585036119225104677047969096737665800893534672236890101044363204722761897062518590327778255713072801338283786184459240475267325212264318598612695139990658750238963140353668461462728268395819850000484781940281443368816696431130757786477365269764804786138628418920131237993198932116727548440442966424919482940035716749535857145711185397510036608119239647792827873121195586987610715609164314530601781884219964808662311003951360087813470320288022317639958331515484511908279022858910375087631203423301143676465427180757955957491745540319633239331294038453000742108981036219570188779551635339393226366941074656235994288076285079276525648598612543878512801263637781862680915342392597170428566524217600654515620971912774210023603751610192160408105780544490608152641621184799100928266722001758484219850774045546835587211466360752637214871883171273893256059945842648613301190315934614002516952366582904178029741978420486326134470129605218364943935573530974802931913693341220635088245936394668730901462237611851745298427280359687732752548307346575337874991741844152353214625014951611543075311308542830592657490996541138769810174683199331256874136796827067784701033675299003435407743250401528070007931530077649039800944572160760580016454178675469086665216372166236187169046556932996583132976733013812917007540081902915866456499271678526121269718605734290137679583493519813033822434946091434267806450446108018858661584062019496240929600341421873008612748098171462688531974430131125581929800453752480249260391094625677490201801418045535086590945928128681560795892838677815565097094148444112473021005642951447624365509201780861576014698831964668195868186775392103294790706324745059088593080423164100303186849274071861226109615749188090303602031186930877198763671984688255983726584779011962039189883739616957628478072328142820551476925741708136854402480804626300038321283645801273634361116740961426849166452864633695190222570020463504872335879190296365800482615675520610546724905055044716545809292132326459011939965494392944871898943308715963328326809943540769306182453801908040453249657677180552969407154989278530499315704721545305318133747523481527216345503705607566311748576709349391130043261003831611805091559194277269872902419126773620173952961747759515133678167557494375084914801536491073678371241173505484304893122070124735585115980591248244759857553715215227874494385385521444132233480594934359840576369089024332489862735139213554329613220252512555676318349717722570452676251653346582137087968827678297121678847679839329074138589231662671830956311260424877332717260694797377776051165958996061684406622213254858329733151960574298977317605180522808841405196038593107568046489050129360464611989096224672984890582573278140742596906850914964227919832857915690410858530321858666151682497256384484312592874074157376121177694373836634534761289869244003414582592811480371870802783779933609952155809383495779231486246427443142839786703235969037570875085663470460313712751094502111836021180727905872380583006281298622103446350277667697255113065347562358466949281738942764413245515918035901584857253287801102954308065187474677418725655073872906737888853322654359426565677516261345686226684874296746372255648669702075727443204119120039279977955788823141984564387335538959927082077702930199152163732810327417258703946869960474769235299969315343328972598678611793007968189866167086296952255218787582563507731827719947503491723315062010051935288374451324185656942900818936503910681459296495866599872733296748337608645003249250605388014558599387884602604315043096421020190295772350095555346862080563408345089387965533261317541202608785789945491582546817156106378725120331589793130376335550690009990824935706675460075857564180527962528911655416027183423271662164946351357556708919421968711066726273399567369578134806773540817510341175989688203577521999670913950453628165608686511279297602244988478781065235816819897673693005589950167727405462598343492574359274480685124054308075997152131065527100510028224046593870870352094165655315308847475578991209852500992391965550282947770976425750626108140278536081235403947108922858061917023954186847925198809044792853605396324476711524997224738807592162553281237734125373114263633141081912213517091863018424023474880599065746172074198274487798781098705283340537226711966339935084917193731782716148306515931416371622780271273367569206674403799050210273866155782961002005502771263598592843130174938212296403440500755605565913413608107645107149646826911459469751478844179328269025463313853966450665953668825463064814355138712993058230552026063444186097195591896633066639925505666303044241918156058465340253878000682823496425589614810953760403979296307153055318864300530174038991392420406379604705883081297761483765603442868540945461772115006226853421709407568207730551783806388438268309964197959037385554683501786239930887295418556745322252090399521690914963289784125030328148067225318390541121098646364582914941293587216879826638658049630761627981223504920834800143846630351781099106628553913363882245061126638156733803609925325888273972401113436045418695057895879041936538919184429531102281769290817836615066891451031785261643460129127225362810355159892393502786053647251931619347010224845546978237453976192505885981557082556889709356176255056921242979058544162011744344530963756706738256031196395480922664232809129185885652547928891766379685402057352527842575086360723101962376359269610297013391204569701058238385486768202941881373047090391730531575047930745333274574125324770339895836233056274965310475244007816677156059120081804738748635501813068832136913387780380266409777833909810211356188814142778492075415396178726384959431881093830285574311019769988300906404756105249957143581911343278577592919151169412815873816499956955353450956705155142467774857539987630928868205190101899040697556650154027525945068291675559665727630590951655786665410078527824151334894116042665185906683205862816732914982298007063770591933619271939708162589138789478116780716359110932340737186212764667395573052483881049666587824198511208432204122754383016545991777635061010390442346339816737447021161534986578833008772170624472299125040518071810975867105215718852574755757521568973445238678134354130004258950755201170417185796989204580300838376326030155623793082992692571948668299768708021661577484138189484784434989351807165705778366890712614966891289187243193021629742968380489326846396722955258684717161118360036315445971815808896275004613965922011450633207200354641099759976125602673392594380531627375045897008677404785428376456853595493411746531220031059389909240067374690272987157394084977020451613196050732033896810907651701612791263304226844549920501971687744921487729009962120551294340343425716160990384248587697811291568282811708337380382630760636082363982060191513481798079195954803329925221942981861527021559748531120718094966196135437310886387528695230053603309519103692616951790065153607326631474173538203616917521467951880915705973046538947227600335546984663895263261616634775173150727554065866061518878599088696842896291502673978791836739050957985664589789332356059422937278473571704249233449574322344634579792459524036160568068785185547322779702187752352771370232184528563809242380501099990046902360653510497817964722345196301004565490729772590477308422301276173411620587483181186163691468843269272552449168970765026014770069831924647893845975339764249348512332142388067338901740870555453809629224413483577978048847874302307559955884146079125047362750091530991171605247343174621420573491559733668573121733174765780493282893142228846913435590796034033871002576151471839003007636038481363392142106676956507631529975118959071847794927827783489561494857817641263086333249030205371268059790045625613525311920559472371721663574810377986451174517207848943246493792826242970459260984473484543887489729704803161668251481790344233747118025143331615322857421938063865953894111138001199554014906542445866984786458992263535209907055885213555578323220432596439300865874392507121902071765338500092814550856122737915879357504652445863864142906392390252139936056004688459743666661410468173493965727927092509797163137735110105034650495061722074220891933593917407807355213241118586000829885810728339289560467781036003015179079863403005569618171141952425672613322265250389547250381803181916291271020580745410249793858755268417788015803996035477113061060282525931144299153216660368223177896891722929117011630520156794740531626861340012869905782126340829543895254745573015890443333624389934881899337225987208496012261182551820619308929254611752207490964085479841718641321539250214753013256222538368547057008100385220106195912224373340286431583677058714632052341527975557117148069559940030574246102718024260665696817366887140957317959748085877252310132115456521743078667417196264347326126252708080113020669356261964893064964152742302857704648404865896538901010782390057085125074554603906159623336707474936475445385856679769984879129636695149010325236914120148126852307416739116040960279261216905673735338117362656605029609600771087533722350901493981184434027077066870923299761569190693676304806918121636080666508119726055085774483041196196274378328232697050610488317854262325269097876494714740924508087821247777585459382095800777082589991315081999276540918036402611229731196769664025252510200788349031364540396801960259511119675138378028047329923377668224855842616075704398193274275178488069916313504869644774865719843507645734675769167583130996460599783528345075791389877820863594404451585417400252836984068871946002093649522123639369228018170101689559218358040567945702824737669859760958028989322451909979938598115932097823829784696324674417150195171727604240179429373659708721015419060456561480398543471549936497386034301314619574656045376510280131775556242976857023125229008902782838526465479765370256660068820238555353515029245617704967223878955783411786517617189793382973877391673221877702818545621111827818310819384308286595365494972284348969210570631658238334397871650145975665663499557979327669134138199346495125821152193852132131608373133041039685045790676576258096356011237368305882969189484415906943153950403824388386531981538881660674169306964666763313094710981913913768461309131978143511628198746613384452347156249637100166873672826825783561936038688292880255155691806006009467970999128329231571571895493496038038990319367943797639829018761740432729804712134726101275089878361533671372613665683984751663548789631101139005104445325187015802433765671205812331425230553568273555104232987873582138684242003912362046124711185137654969855189481943533708575471388949971399174401812011683156664528211443916265958208014815553177254869656835112760040716628664132796184566379911095445773644759595360805076475611078801452671559257945749997146970265337324965687812974025651047083273862544185908865131598993992982485730853550952651025740941296674097291606453678430804390961861188841500773222798197476700805587146751068587289568795474577986683262895118533415368440583930752954972938344573128378332871288213472878625953863551889481264146431789373534183428598247458817342435401161476692685370323063196473695015810365672027512024455132213468525221155492829308174311551928472070196709332257362516803321793346184687726191127526567550197616655032126009411652181109166875186340080289409873704159613347228289644211623109420950240807446051604491428779255968756014665369216857144793902986638002112859658880573647689743280222246933203812807198222772055817958295733592357695536499470403633590781575457666750986127630810466710628022711753826108861377545193873688669129208953119227073531039797764554482444932094762109592162829105157605795638184099286474288773034877112481716786510707241595152220177280282141334587225153790520535603719186815790204297476359664354231724564439285286980226504226360520748117575594661839344718957676115217678982179216822341114696047726616165083052741437246474386222648512278098287310120726696416405007880452388046255972522351070407876707184932653871904018610330895979016313360791507313064866732737853054826988104572610370474636054294843163199654944356256561718717047093617780266687263508844470385123072047740188041629149622204389288785901943030794853203180257514704666142356903084421219566214611068865092184086427451193169429200685262480520093070241721947620210273173434131331793978411283780154227760915497961837775341248928970616071004636845215381606188510645262352818355978299347267786305945385492698854255224923153032160366038470454617343158711941963080584511203796381125706957203152554441955346519959807824267346046047145554735985984685883025581759568749254874440944635587983744200562210832595428642976941807968914913664760517842456279779954216104531059257451637070409828358665827596011521521241515545977330761802741111898823558619474887703885650912497404358734449316235917409142058013336448081775652110491427512314080928623496222231392771132051874331047747542455914262781521096963274954718734409076657578009971108331136763739688778482200764647470924325560017124770067983213398136447246085111959620498118651832833276541469221803996009820743730486377597491741057122266224902122297227489717790399656467843994845176388266310515214356704002398692454673057600851945606462456991885781723801223548191812175845230813170436355999717241954369674809304218760977251238402908443170833939423163908910987662987084076525017553864307353826359200213628492643898366475244368046461669969712767581446764394803634821302510969186892203137859162287946917716594547682325494408919043353680876335192722105015171283203336667048178213031644555144537612446268349890303955230641145560597879508446973465892690065838041673028959658449176503991825446607589537969715665398369284942095460784545464610001884062173963481012324951636585963559382526023719934443156960996632939091167258260312673272935084758849008433623755413141209118982385284335541793332566473618809368395889677756643905597013281739932934856561125871899931103347436648526675876308560717977567439631270621059183709254337947852532868622131634334592525008516113136288451612220846764958326117686937517402081301311192759553195517096438326873282678476847666283743929228566704677985049130140280271500946949816171932460533988835216368637130802087872932592744981216716589590351982021082017438371978719653766384746019240412499504300645270220399531942011892958102734570774490571017057494100430124242917992586541978343228460712934405928911096198968847594927649161809864187709519626401204049483081048205340952510287703960869452019677381471513502756130566352275449575453813769570188576181181222640329173195579980046994442123955357684591307179180386649859575718926738108221245972841312827884254203871737177380857029669658904234550664466166252841256807603129348864173750242546097544394080145559000708757135154465786747067128031271967557081105897417769028564679886266163280953073965247270105360495408957102319474708447981957649199162634398793288561076573865762198940028181684534911190843316248596495037289065237351824907423566060521067068524907825353714406773331807394763423865458819738570880994493523988277890717636663608834908297177327819788023668768461125176363708656291682137616970713321407659708758701810349122328314066228827566861608857070915665463916137593089571648467141041349145232955456509818380638376579670174292314159917278139942610139849409978721436267084861436015163401591454044822733137536871194832347673061696449367662742888451372351194957197549347774074824914802502031793001913586418313306813413032476338361231251020396695917378493914402532447834459350956655846556935608860479855531354729317374394320267475701520546401400004651754756217238896585088182454796563212976453165117550853153696907807135772670516103001475713448980942542684734167277994706479469283690829727625542791822060137088013354245345841088138655262158936132098110419806627582797484864012202897016198699308753027602914609633573507689044283970310568916549372415481853239558858223771230530290883486676280493996837797929943558174730442110992283610511485345323133001027107143716070595923543659006290012014044998965142584023351149016038506891474051082052867384613228932347872951461578769502107355385168195184340035539761854949302172636316460389805189148683984449886500204902188373460582002478126058906484778551644495125793616939717167244085195327112570708716210154730258286202345452838002363505477748932211811400866684020093835394424089446352737114093940922802114991020888680892346478984385302758384954301610738837305005680608905949825074691785478064352513953633998666930471335501509155061739723482369568146474595740808676589180189767090168509813694967634176800314598428436313967399703413630581461799570526680641676980252034352047350830789611646265750773587353142686991426746010070605055186941751661480305283989413157073285546253732669910656800786031332310559901683946528834236756411539821630360927358227957366705677939214768215052991615077251783186362694799258862900549172300312516053791981441775672823315344604760672517410612290018049846726585033195219922119972517247539998311225669314756673554591825144807688148597249277929802371354397944965639655382284067553425903954805525877639711069921966668730035873065901424726767474310252610380752099503385401051591002760498210941718585636444986929634094666009686782787531505112858771261676963239672638823359654140983203570082604505184067364515766681582671082591651137566304504629899806773257355940480204360272604838456809095088831040886964062375879231552439265330151501977039419238114020968006198162520597104961667913986329174624839263135867629375244374560335354784211635781942264774539689956385476330255271365861584987203699299212097063004080751817577546077325911754179413171440906463050665207030024952640677632946356557233739403074286058975757374873473486720538831592125440208470048625958067937486770907439772447318497184218903956657252623823796666447415193188268991593720964417242235449847962086464537268708944932957435650065300287506929422372509966226263089980494921678593707576939810421044941465054864223153596648197408927982257833449266128012715538075973580655682617790644053965674520163344306926768572573258106401223852839857279517670543926434271203971949608838241163120180089133934152854736239508101837530645986592449074571213203573876527439175010001316026805105475855881548710360819993868919927439879727699223651771598482263024217246905287011030682990233900695268209051763611600735984576198328687328971900472847929528545875221369282381721988648631402029857201328762116284480440917348379938434695085884485203318477876205219787606468441746384036021776531890464058315360143076626727386712140972303474529192842395106378322161547993662868376155196855608368068311350108266623610922276946437844771110760948859908169697597552703241609804321755259785140736974895071661650591620715254338986668108300346899828062250311147100956125217229894091690853391200971406977133335353235873503017926649908993393156723375254118978528956368518577536831495779545445047090999158726173224485592575113780697421642056317009805054566961034476480474859112803605631985916896310092508723988045523552418287167320734036038957025212642201399910111823030229874990364347879541692734402224725275642422003976578492472994885819769766025303174538730053606828903654632184422946119421577877223455341437317638461167829373219677258512992902448857674250645471624996371189908568454352896296323364560227450397597960287009000941501789234001221725289024448398508846766099411576629358925645624490539820301733069882959261307676830387862497791029121059547509210876777368022007802220471514413838608102187355679641054451189617191868909920392700560023889833341645721204162638625063194906449548002090879277293617271302957538264561480820415719665631334619058425040066793106135842375998641514912862524778398053800418771956152114187496200434437373069439619792647038710483553088697995597524496646241938672174301910677573789457394599639732637705695615191362251934905868249271559721102755271527274709978736947710138559386657524518747821403489063096134527213025297688953536225193069920142182397541940120031927059820976337924760143934151673364259526098174859564442330513415552925937576552544340465745250222988334965203666040488426203966000199468745877361113619824700614678791527812463115618231921879827382281975107869718140184645544162336416121912247131943642311151845470651353978413892074654276798701340858859958607803441131082346010183265946049559757842020384419887379765747345994345239346356386606243172186160423081161874813015737462327350718532611278536872842179065495404257489352600838338889568899886689408406094886418693674092712070141250937541464428216734994489425821415060938962949699650030696183897941615693172454692213848622194084422989449738404120131119627775938947377017025160863757993744193853137789512232566896701972524471535558965377787798783096876827490459398670875828153799720806539188184122764736594382233763180455137338552581324309112064600099870557349958894933249551458437451118298572581593291321070365747298722061876192221749316443621138807219754943932394927460057735335761947278561482490085807456439740172160412405135545699344382565759791313826812015261317938207437233890753065392104126881079159532646432056245707280488849334201346752367865011193113014805249536978352623094932658381523902645176972904143305025449037352981017876658942637642108223196890894285949437997715398319040758069875178633446364666441729560185778794660125634730117643000153827092166676671734204751756379833758529312909372590028920890468750634001167923393430161834405833991256674725328146769282748093626427821878178158563423337980918106295252312366754073657347166477258010549704387524470866479589038976001444397578016753564994536039674381219787647262986576191808422772245170939961643773307246327939271793782235525598124934273280719460631073581194856385157668322822120541197126573988557410509835205192463218558082693841393145415984844231357098264427170890793146907250202279330117479296010519168401275403755169599812192070702810533749235395820488532711314028512296000008670540805441508449968794316291420548830277033896292254101550556047635892611088338837526718616423515005094866798305454062135768196165268942203705016354278419196569391718294989373169994278412957272590246936202139291398912039415647818880442363916984714508280754280274949893187618702155346700917128330818287344524463749252394612223755948904404289787046239248508279389338911648230178687786786360703895265206872410668255777578971348649463540315507169647589482992593385854055588630665317151832149148007677589120737561312032462464603518981210069755059116239135448377414183300822119771811250484274914458612652771156180777723453947577008978197395489209896053077863852978650026957416857392579814446217149409413379026517183678992218152876066598204466924397707707069014486272000357961840132518078234212700395054423264402356841484302137638748673590000436020188026097399082744174040957762669015618459714658615006670681039112453369831844315959389802454711423431631958810101639665203561272429211048118546906324929762580477151584338304356738539088968312116009896108051419487528250481454762869255489593933481503263915800481997291154807911828639692111282647934802537540820227225491663147416601509301193855588286492924430048709951402997664132465947785077801531293685552408602106621319480541024180308656249808561694719518096611510295701278813743759109121413836916650698355506703389685066213362374176547743623479138329179375596572926830492031157331068641749494846026019405455105150127618701856393764109535899887449829845042132786369396450219102655540836181318949110239312730514350723216706464531646027400249467689292531839699777919606989163877097193128591043321585538580892621876436124542297392471398876189843526646984370785923412007331060835534347874667585603237585317365612910874306670436154883973286969758089221519101448920550333488913324099105217876177055192270889810333240882549408803318080225193471794975085997421560161785023185943271537764552234175442882747418550532669489840872954242241525519132118353946006556940697646228553786752805819634984259454707413625506296022922884371623552637304352191625170830849816260620698771924305210760689219358886650818274670793056266910682178459196797313587275011802228892697989458105925015145805293421839535220497211248659011722195311968633954495191202308279438837189975662324323456453940274360824290957749960950029913627189022418314882051988611842328289548146629782606906331567974465851468241129214004116105072863459579732537900468543649959606970310607170655004117646056357181093934442470564423852855676369139443990315377295178213510962158360060420696835186155494289623062334441045918999490954375954774333083079286054797862789139131988666162745475568175561241465177956444547634974549165624199121259440887588299257253285453219533017017606348775690456514580496158297653729481303064622212863606626937840695591821315712586245953615317715057919804710321571145109121847055804873045920410909442236783364662785348973343463022125637674232554299965106188313854665691339298139665331670963820245013811076216418663610665359792106233978285212140835294552599586202077290781595326333549834982861319779204017409893943955051696777144629729991382576861422244238010931661217404015173818247671573870609704649693256934783739694014608841968725505393181056803019511787141739290242888667849020963826503108767021925803711859351978357249449423596084633071537752494801966258885109403489997236572410396222495710971125227593508960485002244217610912094469912599493878300683134947563690120314493239076737237624938109292418213184240109338987498076331248756398498761552729713026327717790322271740564923181460265632039657994456629869105188821719651412492539664171453447680854155282276840839400312879839359949545401134319834329764551370352770683818473150794983078765982480865478690242525849204562082824467799657690790276578146684225912877755495836469150485051177150749970598850770992672609053607767389007266138726030454147355295554938957738528515371209801047466163244786518171020490319958752888165168072566943900766136061029224453232298169196293298394988636937177967289624434510446893525328723005010270731475746085292355917418342362397876580657197305999077345176474770191655969886250272635887770880003448255114433545294995345497050137800863564165289457713945640052434699333951456156646044521807245324742767445842108128805789240563930808674239138146856240213001134569432902098230831341829920318861056756056309068928682556560740647271384040248765900944737006451849011869419506032967404277733159651404967394874917075476503076352312118239514120536168069210346817738666332432642142636542760465479065183960424991145962483354899898132243099757208789930423515297158603508727247523542900980543930764492894831791709373784228967783531107564376363199441919832933201710934546004231395097304963622239126946653268889475557080585588113658176340015960454659491837499750818870186683384704342948225144031164359333041982222403546785638073862048015630578910070076041694505457039794240997157479473829004186195064682488300899544770501269973169151111956745608085861577773136748520753052121879532945152364966580757408160667073085716219280421965843180437581426003715572911464743032326288735879612771744965759034011271434962539138740603611792465239761935567554944895493160410200273418080279745746949785731786191647387753341800744459404745533028230308775415143138911597269108349767484999559536930666570464695789803820437375293898437065410208425289525160292664490839649969100550633833359400883350240279815009968570697144112682736047580435499506557773183783381662652343710213634947970410270802761512373153025799565295783561099430983479897824237561851411673055440439380639157412726481720712586678019405695705454354138934821966093595200699585627825931600205307512267335996819327184582468890493060297145535380422141511991847675486199682371345672326344801884401095663585993376980672219982454034227141382014478923900313580114755333989116243640649349157871514848899830990566550931505735683696832657892028353330431687639819551384139964151747997172284073510677323567457286196679121709473681048122639769002090220645646607963283239274499046546194074920649358554418039761300010769503080753210075210235351200561852149024286485558342244069178017295681837612050278167986856428897822673025020284775225918681576718975441241420957360792367154403618010298062251774060594030440737613047820517105890926959005686376603262750851283919737497077097538296366568322973452519418837465758691444513208856090420798153072764753415467728591615677250593639901340278825833228545818482021499038328929559601669961962813421522611251174893524276345708941134988245750024787069889316231708562338061822491919119070153054174216675693391687323168021443363986728319039396267686938719029715611331717713979197888257607783462608209487866022664440315828813888752080771861711730369975683250263800172950623229172045972874519621460145061307322363425872209671527389936050031461666964825196971444146918601323562730123563536838108372706496346316454678812011846783144323453681924799393458647757713632910210109953701556487702204164867942105817373134092816987391409732779938246826551552476363262458602328276583130505996554327247615256227795894994677932344266970696969811089550964958110209223401214553563480355121284935834109228858685999058429635823361569940010301182633228906965429202492668212858385579303421914329454840101000759251555492466566400149330242112123740791280723231248265436490646914880650032859945374473766884164435183399623091462009394431745179728077231935215977680729950375287516648636272829641967682067403871222895481211551675559437824866326784874057336308193732623328120302398034520495360037703478423729416736022002777005345365063919139556338205235536947752577447954983248558262777420389210185187161990165873401909220138381690688777191212538138735860648586678582660537986946719431970630864738728554727926779211111812121870139129477743080721945129987817881730281014250181015326237792667576865816680498399385977297729783675022369486782635014293007874140758713030732220750792785894495512800957667985091357704178384155342442216935430005767720722496568530187632295010939425319974255129700776417235277552373794209039299134432483489886655963868151204905800106265934287788798396373969243602933011797584931657078342324629911297396127789642740582776759611019053072057651991444312717766955212664672555481969522868795572703627810692572593753888466747164075721236440215576807403654044194550413388067137382917286453886119218685237462271763976779960978876169919749883426925017846627763335664004391319234614172702428553278629183014374262051972055619094365812839040046705001878221645141929889889573873163972719927936908243629001021612206849301586137798238357898562303847251128692971651521479252257279593425486938247575088514591785450663607752895569078679335612558744306965430798789534849360914857354864811160336059200688083734036184554252885568175359520419887579358638052850614879380401221226059138731725003691908650215501807039340268243914577570105080114879062755472917216073834517431116230185385794630475411218621382978855464917233207983106183826682288630608913022839362064970472841389551815114101595946914909601922716770000633159648200865260801337027372245759260811202686211390182954395496926250729313869628494551877724221681873174558127018758806052401396655800348128330261185061438192758349797224710751792802037446092540271803686165314020481510262667738755220727673661032195324523611987279398980730903678618858374376535919447217657715303105585422840259524216865670084285493216001318170811634362447347350334694311774889784815847700497212724196956757762213058280447271714807255359207580269786983606742962759498415931124802663852409093174201465839929598933156538347437858366474325517217243722602048487577430810679676383163654376632221214361577216641742665919856265871797449468500016904279629942576701703757291180015246847697516234318469896820596046788725490062440634328447773569880002114926910472831363080665914525116442769574587497219898507094148273915353340595979119450281242467159450464977536860807736261674803346129559190193320329128407024970012786314452992067842464305014777398454010985580803366461296948248359935065897184547449674926909185642821508904830604156371568376755264937102899873779787852099683845122957443452945502662239459574106466917346805801339628541265475507490488011331570554787862581138387810392615132288417009625970413338433947708165927868298565887965728641329938201734730804354621746900770285262866244725309967606087505176161304219000932913070260756857352520728752616873341844429175333123530647542390103057683894626234216410924749485899029175395268196110431302539724484084773688112551258506217514511322770323776063278136933587635513906226728330097907085056147601984669550879214736387701227361398445183177909345870210112535580144366089038151612398531326032602230781100255870050755475207165361344896123965376109094947921039967612688057409483761458621644227590363232425660778190346633630274243937634751128810098583942969131723554224986487135009502925609994067433403848611113166637759702139882986698903521527851856546595099976438854862675527130487351285261779891130114689727322803315615844049137298198863661362989100244377011130338660308824869374046609027831904381259814339227106904046763981987397848614356061990849432220356671993765298614488048814628789337189124458233088687304916395814223313282992726384849035664417133663759390442179116291842444823975268423405468188717512557600242895291732502586881986691249501367118436357558176643502418955839615462667548585066471100899693778085108774882955386259325920823192969246243532083570637097438575068623744424808846802347920418704324287506847067110109094550674633734283078400276292849223757458507191497065026019637622163609322996013774726676160475154972923427090280287039941358561126556664456442635956341015286008528534818370928012917369740202145233553378018758145637048435659022360686690416276798773066140451704038676280453173336660844829960585363857237842651524157363918604570809927260332100880305255325238592925018783542651914074147034622466968563276591237650356927458515874042061924986958471028739234229049663661492075543981084401456879907140600016609931456550087657658374361665530734309800201543430681131667452114862272052443197916929665412068042682009297819563258311833741008040932274418647334806863121094935270917730503410733728670640779559846929854525615009565967621380619000719543456105094687176838096271112278961772654698769310878362788927512217913466532463545248110156464862714858656059548162954474405707246352770328980209703965538431642862627646518322891366546868157115617569054678632999876371836168498715121565880384782099629632705996169596107527585306553751466387845213422562881826032148826599218041963202898271279214029535950454093874552707832002080797558084213232372053344242002219341687023076896414008848511294438043522849536825702719264767227006610118554131684639987909692492754882800755425514451785291174976370241026621894411528272936155706021436739360852686383883861211213470623908548513190550427682934399646272245812080405208225350599835481542507695306115011357142648153833017011307766095910492855828536550274774877578734315105785988301203595788919511344447970161159960698259016145312190806019539508525750458098023456288546245694631093125467089932579412984363126346485374523556844573385425177455280460233827442732612264375764136069746774918279907240601672861688561624218919358738755170689865761271001377788394982584284150137676349026106322037525517363540558234176116032467103849993340291561504215744849764391121315527339843186785506258297515172069625727728064294490047335045782632917421365771933072590638755831254249686941774010062224274960692375886728207239777988276884572236149981909006903684746227378365531663160334831052072432287928385177162239554321288200151743680549025620607173175669189348922094395490353970378604138328751406396324570381339622063766010038190375673305985734569366795326444903051416690501903698494019910030274314577731767039120078517030548658656215104624629173797492276796185129316986652615135119502620655668903125627596817883214821767247957227394183865073598485699917323515493817439009024757783103159741005471653992687160602548687212412245494022901675996218859163502566958262761788012202260458870491303351992571763110220835489179480623878060456883154427970708280353513462090744727188601539128337561006065623352250375342395547566786759658197168995435170463756841388774714381196643946292587772172022327744002973298059297632627876617758880413485890384403011240291490928520757374865236688063334851470922152732760374842311139206057109591240903874065492305613402847974316693547170802973074769079897495272112073506750385573700942739791597122666929971134270125887182959773120834376270724659822090353522391633165921688335748152986970209886318808883959122541200984908205354021545756312130310380107612787693834823268317409341703812737608422293501147949196505397234476130834378272449638413005794187224409604689734554346860261607116639559984936203295667148511411065256328656670101591266479887836290863149280799482194973799411153880196891568087416547458243973452132813239456194976434444566807203954709540361868295784154666707867975522513894517645158763432309987816800647534340116564060964215671027220670368439433064137494283869512591557169729167139890608071467659108067069402611177649102835806814405105051315451302565415118746432869175476285715402912195469190345180466100131893631059343174177925174771021796247367649854523233795216842768743266054047117900115220843932560730538187516386157627237330973199063289661543368113223588821078639920983254643016010759270525666370757129091735286776901434975742276565583306410304991519440032030187233861483741453035040752355454649583539190414060937323750771127990179782538413232340388089336585247564522964549231960850985857711090615587534804939334608580600215376309395711694654940739509462248573037855204248363930240899197758192417964746430926749421815879351209914190179627476621577603593292796911480848050582329649694714477894323328955686015566187267173799907347908669214960700630500216332709591293089803704413919734668369214596691659090277489632619006955656493901642222601500087966119832487554197356320511375072128194382546906889574623534764848732134401989409052333703959739272545707298462592959786855995331214008299479371380409910676402891310861645947095331827461493624820901501491583135342573760469767769901763428771413732974518445951167418502459889133588588156567291736023207355294212677045292406627376549623379357085760679003757268740981170093484192527060096239044226703292095381753173681294481525357874465716160180464078913492725052317533297844696043518784091476738938030253713280585738744755385180305783235685719549010275827357146203770364492219340441391471488198817290348431475679578960130148343458125224524338451760885560236855660794411995889506565616913423646623380936202032499613887891039133919573781239007247988202726698181176345085143161601551011436916769779897580167690929552469273669497374047418078808086412927415205690311689206468068812591819721454475645945350374596755251853891327388491247898388071647695274463689245075448717775118221107670087346231482452348678675194062084486564658138934050331361799230319141932277545782443749575585004370870837112519116381885989360932508648492953954145797156686983719928810866739702586302019374170536670710222319297049331616966972612845374009224841641639522755999289226348221988447582251305485996700175783035776643920981660011015785785591025228329942934348420962887358431535467717548026482439950514293476401263184867746737341176618546681396548176294296213444998568501306752955447744525765724855236148044636183925342313905546132997157662539688324455046752103498154491209161003445230483149618141280522771207583964937115663507300148205591417029035781431218113338012206683357894890256384259740211117411126689611158692168329619142297667671673253991935704932783931805847905038352906547780659911574778985825974002274457183610804225339845697841739137449312064646034137371426671436542718410827811635097993764969708449336871376802169369135402005426445035217092677781414574324098880630000695794842482129252070958192767138093339442344949573437810513369362839812850030580761254902152951622211004818497141122839131268545819682260822256419935879218264801570429419201708416266498912272845564170189008092897153499302742601407997822950345348079574887304462968889702216843404156162598453736452340421777373001445821063720643843467487818801992959888100985966077661774953158694564548572052911688691177958692981212045998992922024540429583550360232182117798449665267939329785018891057560456056322912020707060464478496930455019987808654758340878468899588107044634506751306233692372034060141228884923134818264359185412825120553417760560218255443221651842852001796322598905008999529681448196320227738256094106052091620867903956010665020262463946647153705824758435405156041163474123033648015155149874372648641654886297813365031000085906221874500242381912277718773120081271824935272336501260457902535214626308745454053143831909906533460601791827706451203233545462956536699102369861075034386170147072428459381581212144609490567801944216219810340654181888823128234085891141481391182932252292953901279267276180469598277818559886825769943209492129379125439582043991573501262595809299660497348335101746056514943279030167207163387738767287208551680745938907210879436461939511645256600573063132321849467593339318043832222571339248709944205353406825582765775918858627265293325220397134838233457444221612642521019891175162695411248110183104236199142729502765049091043773299836015095649439604360406022971194555246219116537742040680271707244620888089573486394893529702721377527840776256135577828069738478794387191976559608828576070310005252231018528125774186729760201754744585110994428565742554685702353769515033311638846895514727264913240748828243913930589803888967569960806049074821011453841907124937161900747794804659507161491551358111330601067187801003457104071574439860597867058812680111333353144581008867298276858404232503328858519416692156404008346188562186269811980692587838201113859209513392975142694108723760643216931177424580532723829901730518808401037969264850766307387922951701731211910144768914070348263888122200604732938353357793651808223252392060544220982316830670183796100429143499299803955014405755932734243104644855989272936563269352939212084381990255379035262066538665133878802054178276613904137783720581767156446664640948806406896527820136770611230248406076182417005934714017830626212951422237515046960196561723109310157454747248338283501206882634307182846480581895955554896881593461890918262853938162936436335724226631365030290996070766626477683562393874555664801394327843085699615566557356646000958842204799339786248961489034386465910251838052914536347299241458237178569134116252528739561616647042089940478984028710642559944713654908756360702127395112120115656784936471191579726986422330429429629489130612845316986032061069506638110778234240523398496292322814206803726428575108655136425125929851325187649331526715357517511658275970169323969044270560633267135891443003111336851737608900564777125936561223823839601488223466274486541922705764367374174231634651963836693377060057498222418067263265764126687127319957293565540911014281967534218128221192991329309531858224655324062959969955785495598270450186003858135334876000381476131574674537683108237038725657325756994004454272496908245489546957397579028113514474968385857801801595710288663116980725523262793937919865420847683683304720435917915296766890706663701730858198314085022618699344300332960512813802645055198552187406322006956701754340553331389056097806651391079603643656072499614501401974153528477327798217091788714160163868826271349562640732222211482324675503369798087542058577582885254149213030504093279174943671099084891993942112627210343255335788767289907689863891571542557246769633856211516444446369970048610570255187830884230565034673327461635382683770193648185272901085872094701191730809981745585080684936071779927805492714317822809872200198957188665164172716458006375856316068171900726487350555510697969444597968093046510068930335144129636920477820253445861576627409576022305529489268460746124401888932566821643106458675086599880868658941819072656537799583000432401001958413223482012252010825867297682587424838514274093811877747910932956240182101208474216127158488243031698662200512820026443213667702315585795526692557903826475143970719530885250601898949340169782144044085822672102001942675491125804013145276503497850823952498519568986655002381236405290414376657081998478126884712883966446249374453785514965704229370526567251431427137525809067030621991611301277982843327198209472672892566686201933329459680661380412102375960340966388978291766883289918036829906465070535649999587470641433129194588439641702217441117104568449983079828372516071243127314692117579781917748129295085936015055100370085570540082006627802577061772043500384402995442856917284428593266895566240500587903034248546316670159455536868572318336341064846242541018319744718496998778598529612840110202538114254766532005930207993843006996554500269313728038986521695706355156890786416212984174479604279379559076647585467651888672282372708580306548904079259918398933812646593355115371347514652738059975599592270905503008244219820226276785732547976913704648258411543662193677470864519700167747990006501080366981334570197635965466647232265492969917331549747287913281484751537892144328460934233096269822322785240582466819750688767559998619008461550689590154075845684307739942321433584872753079135705319224069303061539708052009522448297000262974244375753412477825904669328065174768886015503041676920560497704886981842535169866439601053757886610629912275500248903984218040381944957031614308109768663790929461765230983410219610234542234540162797914551059757160036686376007980572630949115519091712209561059850555915929152640720613046511279868123434158070778585012487222806178005804899988147040935765321498767302524190281057385664753031230444000018504983005957518855611313967996883776897330599632196173841805489197978272576445087073183392730685682191012047440396893259635291384724470607559034896063671238926143251759644559428431726837031478511330685255615847083885961681986465888517470623278524051245118073915507118250200157358200559144167236690265367266073202833143827456803822416272927744062793458397704203620291367533418551972115017864076621467607935102409552700020765294956546678631486056809017715282366903945164332583048871659961538300398392330518502177732277752321694828601363039955919342034594828872066923737244129859784535743024265735419011617495727859676814152286048746841980814505819900485581805338604401194665028825038370512819876284171874539116642072360812937157612215912947334702415698792241938203563395238870293720023220445444234927686210113050079814225550645737347234906039720770951746300901597271754747635321353800556849542670741863052633332832489098336191602546819135614486247231622856234374424443072103997944545858556407926502452314772871480538404635170568303073912719169183709087084593623521441675722153573864277167029849208413342893216380784894081790158404432067746072308317972424650218252902332147036014735895826672795694527023029376599440495920752242043648500185964932512868656498114810324921609501762552671554206643783761039614562498802631118080388709547554549697999397906882865611253935699359892923720771865440688038425582918218439584855282864987864878028883010574658834509560260211480061580414636442221896712276503038364803212131437529528563215312196572980731665679059905761716123819070125966989249241455114308463041993183911225175546135377108967770314718513256715530355698257804730732367846377187874140901950114970689766832693824702612694982584254889569534787923467442003259451208270502014557716274440369292532489585899076059873405476204798363396272752655627646676637108615392487071222660763612846171261995402607305468446203177307076339178142343119345065518966146783091576838986068972601816164396733123986478417292653220189139748325030260330821029295647321993274942064052010824742840786696508748590487633202171918636400812385979356528598577545901822969583109239715341396190365625190757557349273524515825094787345722184123086935424925234187506179908498117304252781079753494654196003522252896883628379393316458039969467832508944877661509539977157836025707145247574877974155626651502019021200015370863379134895896460078501739959499979802752246733971808443412317054493317694551614096359433005929382287577120619060049401854568860810604888905055251963491527844398305771959067294829085272466611825569912122902025946362107295311508974941000315243508205725134728533132132897553022119987128861162670669879610199105644545959942720035391890432859021164930934768966568575065547803985356282949457734662123640176346613817051499141434056961525593345143827342214663189541166847034333198701908039958445300362597258072385761404602326918201051561144957271557583647873854112431580675538460459086611005799953786705218940045349440011471334310720435513469191252914049565931953226910232708980458519837670114896359948610079424843818398219978547176403710200177577270257052774571797471397095345663270547899778995459166306860713931026600619813272138056177100394504201082535005795576580658109159731638814950554581101424055865043772479709221675098230091829810196883160238068050509010657694552615291271182958883041482489026432553370016954551376354678885903508735219632860636368073578980517056561370114253951872922847587383424310015574784028634141270237460321919014120639157382875246803266289840653561753519126108589791974014612710390325390594474678092245582055645598251300990913589001459562978327883719272034802098047321588004808478586687945292464865712836141833398256525323314180744058204162277992450195793745870366701685929355232777522990346031403249921757755474393219991817911444822508084260059254094192534303088211129640796916325173533875692867104448687849803581659475824321101388103666224814882283602929764720456435395087668377401128836849453434568549136973515956946792651917653720568119229634815115844120375855618181175284982789717328630881172383214294337645874967451992903801673465521344263829645632336879965284811964194532195888722396500968389875868215748218296627552081604894399551118754534874071186502344214261920805178008822018437340372594709952195301638546758465529990660128743384198449831798100886526903813639099244142601362080329018545290403211690742642691412203420265734579918983137739237750127230621315047243484387182772729578309523881223900122739346307219474456739932396599967259427200176416494706250192406747909672869403933590152754318322838766801249138311836118701678978528438355785797662452238994251525829883180299258089896021611295334452879640169856428809856643297822367206425080799085790796350844193879809796190302647517044210631428792122683754162416136685405241048725355250962178823572680311211058639399937815607430283364186773068565039517511362684970386353117110954705675119958985950474684265917676488603078555119402601657327174349708174536114354438734521742351690922085498731954970835861447252787456809005787862228439882750679749558526386466267840601184439015200241723885346014075139683097661928928119276965851165389898578506392679629503891942693144745031436481793113883653125852441023744028293760753092992070824380806216262884487340262840755907508290876959020735103083223379283591102458132076316879992401567380258375513190362771830677556845030168748666655741934610044089302034168017558630150421539487749183492531361080530892612021575468320701174281279427906333160762607069084873306740456302436291959038000914077776944690427033265329587011879985078236395830086920875990857895152948975549026177095127447670272454657586568111977231708434591971477439239748603001311789818707926432296056495712372110587332723382413302315268490042789220941648230583327557776450370697098015377403560378844862339643961886741719953033305754771049765998023751211300643791266653483829857486234688173167386639415873180979875129576172761772907536531663003464518567850728398002134417055882449577085047247964512522252329174921430996875455714365048185261788424070567053245668121359869352248027642833593356369416973554126909254087489342328465484476233715145591813559002209709467347353906519310949072010301034760144209000370151598597945922723109758187069957797603122455298978936720762534369441324511010968313211392517336215524505946064750973480948446674247862113223453126409028632124802962779743060234964054926710560092415829678369428097299778793104432123086361525804071146787628959045025624357805876454457605796180207856540321358309925925306028292668885582614705161635864398888372973090040879365256869705558585931500619874277945104137808780526370573929658728169305783949587803419430469344225661231633700408017842754642833229789280838023898037811249115309815000714172076792914087247027567387177333810928849511685785656619225608929052372821619553193528711242751913352561538325977116032406089072669013241369203389659798374712484132576123864351372529786839945559825842599640235190786259803471270622615831157807582100686720289198183036602781304992960082864509308554864012133129526493952751930465771700433398262068053448762750906265359249916697772364909645307505291741072718460863392813561136601825372770814957187750261873869963659588608201223845175512388782475202862841746386913639076971824542703227139342458372737037364349975968414732331504000231394148004355829648382838616858455954966002201175524618199367484432330076183040097819536281397129067473455041918907297574547762125507134230993236180604358397028849592254341746284364084561615800487376156142573352234606443961512665279591948358478709310074787470125998617217079708020790385955377083846718161403269628099509272457912057173330174799085286776371226945784766077521206931705089936689081863290811687170025915849847835013452666542349261603121172315777981480768002537358733887517801790326059132924002017229577461497555448129278193000576360302679619142430056848294356749660266719010207215776465483824850558539759712285945970708343368146471129775015816902252422989778854461615959188161400164886195707152880195169087759568271130694542555452981374751652672103184702689736288861409487250264806638473326492381663541531803459088976109297905925414944365178417296416915159271181009234662309406000234738463688847098404855092948676180147851046917271436026348713490030984382501505519954520963749348382222551799831777780285907563789655579624837423935110088281408687115277357269305949705394518590976069792318355718926646991359812213249203207186875859719912370411045430635824866632281547061831260023717003520226332144546328924992692840549290094584707577240508141984345594091274850081032926495757596254725432424026139370945332764432043214803413682151308137843237629709855309077242590085121087754958583084089189469170296240969629010966664906154960482766643723324800925686238994576985700573689384316293452318232346644995231169113351148527324432823928443122468088814592227225324947074998583814974127940763124277051929625633673084544992615741891667282633070957062596364741254303725755762677447704287307097911890715430254823633710744984989648237629835626023079205320161167354769390328053486850796627247156261266850323940054838697192535243522782659102392709088260339938036207028770004557214499714199919036653162643621268941667863598875006906558997040022744309674241970507416228274271110027880378142419698557270888126607443222491649894420286654262105746393777647967476772883789530161657165509533140792445854707678448954127362320154167944481604384169533692931111294011900534291767755301336228399172975815379555778572443795231857551342456658352900692030406306370301980792470270357967743518397063663568976715440172438557038882544753620621291327513863362466927340334709100936945278003985881106675503331521296448620677474878512356827462643024113655886146390047742212188009654357732348027873427925547278553178074412769716972725755258501689145717365388761985210489612633834887116951681945139180829950568424543255596493013863533355178780150899255156138153085737682544727341969206108521102933912899817822259828073323701649395971178229094815914330210928297376082182731960568444865896786249831866796406366618463052352745562324082253334021523458619916296019748696880513037028796570403967980795017557268838676891700197902633242779177316766164716704536443925732301571960863736182358830365157469150853211453381599214514639192923220638598312299248888788806486800628009885116173993105468284866200682579145302121275245810390041363687966009944109970160306380701680669028912162313065356782100850031890221172813923864872488137311186266679780481893309386836113563961459711433719278410220609550743709056805823219854340270475640281902515347782537351564811403380491284847040648211611122741393482734125064455104792926420133850624795678721421278873563419630441449164859729335785089401497059631429949317235040494707759084233068219244896907412694455684902245899062812654481161837379503306520378101261850475111157205258582376794163443296437439348087698371759120115739957440301345603721387654915123811145106234753975277321603115353516510910747997332333177755861907769913820134534037842291733774858650845966352813090421079097831874871740853793081914027925568049749992120717683143728793365985474221400024491685887986818445147496583942962533860589639219693312074026955643641807792872599657669614689655411707217674260770609297981777415583111886706388381863743435665673898431708170434243100039573875199114497117312238953461702985868444737968298717464048899085653913606358116552456981566544414327192622096525962070718008266055546072228432716214075583874803889489149140223002770427554469060654551814554546496978491023598201147667193396289299474263926773990085646112262538948414639896081343225466005705144026459759255956559074310634322124966434296685198044461203741893498238236341176174370062280889571164629703997506326066717946472267574203347597460023707517555509720299975189410423124124177965877944428290698261497659989464714656247986009475039613048116539516946426398670394676096643223439268590867312961136692740866455066233181634577986008237172383380899316569896041340242724035929762417207224518612009797209453490390032628452206080085036649047686904166548175534922312963102643017308792087107830171768951587364586042891874403993189339003267915374329528243910668630028995701942906536669401743101614126131356322303591409798641389912762571056582499999927340202439620507637407638053563814322257295604264998872124390983316463807807410801338734677773372336145082921216746253724159821801368813929572356848810216396589139486901730625322573674540408507541922669678629216172348480075682118931725414779850898452198284506114865058208980972624837557538545855094124275680516943427341670947197303935046245530730826791361004619462540310103478054009406768617437107549900686347175580940898729625720671558565847435602845136176094577285063408232815281946004228212845269777571996758539094212714210138442849606896964312203191263306129496566395477992889647470810382536578206065508782095835987380447816675774866108918831878315938962318870807285272727931333388073421789404923452474572496766748393211758032389288261067849901510911585118599448173004332392112383754950809582429409948522218546582366271229458701060689190827012044009796226334590190642527066311451008723342403876114423271421305625015039302759700672549762697972289097104562744119837815067857078572108973213700041646175909760373615026770277542158829657730295893764374335447643383165413422053162060593906289211884393437912664539633289973253985094552730026531243466437944673278097610725771556196629823085708872602771224096512602731894870782081816632860229148081117617722575043141776551880704934302691953567886470611455539261229737230871206050022366894324118570154753661715607840557555548748731432659458284465337903339995691203476641115881271687884758420032774294914746786686260740351850378471945559453145149931269521076091394883013114564360390223484950404765872024260820411004760400667111845110524310401172001645251327900881649976973415708864320851664481226938062503126176202877675513084433595361795100186148262554397874765808103867931002401489152131821580099058239637623987287083307509418014540606824746699944592936600882487455733347845273960842439612622125374992730797159757550725704278996435317120047869343766148249526104518429771772846204542662279291103224890435733283862708819171057023696560249963196028509111491296913517530664433426968023601726022800234110053011189384501379807557659261601622948517561597712215355355188297019722972480492374392117765984167202408155002435091421237909882092595176062525195805178219834303713241867705810666973518936741506854207196654782032537591171516461435081262865863918174834555063278920846433037086510023974769323669756185808917983845897474762630176428406737618982133161778709817681686458360890458077686102910879718617847763018139663111895803759777940834441029734432945502289083186088884885743633380063519482908351412933346369768112434696369195890298496262817753717349409113710171631865003541035700985386513873481726510092962497803542513053004602136121146015879508296232750987729668627216728041672147143525144441270594200943486106036300726831462322909084925800284013069315300126482514438262936513888917348042388691043963895535901918903468721537205399421285464806560360657884013255446006126725982979310083951320664278318675028442600636654007145301221224183309227142521592178926862488777042701678678338827449202436110686793078697894254531890090356438856295620466008814443277013940903670407063915536047626445068408116840697899810737838473022393064250039110335456187662114099364119639489804854421970079683164756406395970446533517777459045348399920603503396550791316697556056140909959359850522347986574176431598202806865338298953117924516837307844174912629263835787872547027904845429488583995025086176045324317816784887329467356444275734594761885280871101400555506003585789458149777052452399048865646327916119064594512360638522113437452558377330104024574199232394384258742019097498354660106964032119099442525795131559023357873993419220831353796086777416243209336692021470446041472525125866126960475092613087929829963616729734934224433687495857594183644605612967292167578160176096249794681472603220653452937906212876658511700083027906792746551359010669465411823991055556677601436422936978195787217835635817814742882183472254303494476726447712643500871489964736924699005260889190575996713558784415571112195766453141128145361540188639640047543788355930780285543728465419793961973916827788353342033199046953573183897450473600997481051581061380374406620387111259978614025831243812656261965565590495722917400637768160386738949505028763790346599662537107628157592310207586026459867560683619751936834967606884400577963167854944733160038259485829919434537882541071841170026498749924745821185003948302384722133480623086405959235572109878738774939263509424652122928463101343656538179014178910164605758330011287430322204500472846332928483696000643414371136935324722648306359927730482087222777080655662469935813191833713990536889600886436000445150344038128784750842267921049856882011159949256647715035045323258190961976088551780443209198442544269593446741614836085766461058447679829485824242543427691928192958690453168548834581749084570194829977171513135723201215041080035398811874786084024977124864146219149387652300123020023627933609831132327621454011326574033875106379428162328429616053358634572277100129469067191142953731717378151632749937293410765068227621971773052439275133985068385974698991604294022659180652725272754128173413683334338306782259515213642932147097255370264208363922522295167210399324471717567591818567515311753741586917986061303387395773243255615447576693262336983209902105144085534605095819073034388038529373524223248159237580646559819223544881912487536956308222678369725077081004649580867955303435323962226034132615460954888536958001773634909201614832217696508628915146477790684497262254660669653694438100274259347923066605101034515576394150604590552135437784359699783110168508547675630102214592887151154051354140259650857410381439100518862289708923816415335273031970119119804493610722454752705784955168825279156797116344428885443183836735616306368078919404272816602358019228623055208379871589359852814484685478190223533530248692769045688598258765220252954830108671351745141383855931155829961546733174692622753708575605797309201291984971817846681685906671466712469376915661685854812373895712773036268305585748774817980087801214331137726247465756315490936313797655415704199675897058430630499476274106261152275046271393143401977456993603952870859431952874846862771337832579659442178307507338278340748823534261499704163692123667283060154047511431298878367938980868593643152478726385292688665329132125426952188139712429426397674341911743520906968553280306332948763122407183523136735378808917540074159003408337205968842286724020353400130429427154321964390212439798093029588638699287969207510275412730929056584435688538266140429993046125800980958820593460357669061267066735743887896514011599196007654924078279771000948802281055842031343129828610566204268145079008113075427605724915033261973366616546175179965915013503426277663904790243203877926870333242057765648381887860995521702839605432564535237047454743640405122653461506978498498395638640574345396159276721958401785614787316819137360863037438356416427144668384278323367496864219152989038065729667275548778669614029902722338671131127278001849108634529822693868335223560331125583004275243781645683213168699446873092220984269489722264810576894838644256454379487713251094487118585599302777785265068803435232784754092759496186777337306330060193460678670877243523497861555214955779870766982205335349580789729658297242981871840307688385982938044070704103797940692571864229599553641212285503659549822462611751242800293289661422774385048658446850270915701438189898505079722496914218421542008418407436516962148256256727439801629132791647423036918456406829271775728894881401813673577676609739836128901480738731807490760967513908305735578046481559204579426429125745010113849241599602117178056703253469232087210262881417524987601501646148013851807783506401945400167025646240661408858846476588857845353554498053440559956051171006578852827364556462497355152082239301655196382985952629949655266599323798481400741836891307605947727093163285132513105409427023881408119257066787741619658707128706161213999997517318738496459210792556472257878406870640166406645906420567481595509409717961904314652760920779947273568232852737124875509513947684117428356073021726636677697949718372933672743738404800581098951083428076917707349953644958582134271894802301207452393351678356310006602915387507903286637641054545490788822758403227162564263294784506838618990554118530290403885568700447885918354692445361081766467646049683802853791498148619681443743597623812997442218348641550738861300809461899698028243129959404079735895534688705632285592102989267683068863405240782480198787312667798560171589538221472535868853520573247101157669776436142122942639753710716431349751251521202492450915817929116370458026298445514190174710845526424644020081194720851341550251333879299169294870320178396208323103819957321573734133045617578453539258960361574737553594215247407639734821377893277005466499159568436818486842990775269336521380655980236095306758020996487163230351524400661897205688048424528287715880436919449584146764198917710584499080659555162036598816689684702751461466538302656008353790257679908557281491232827729618849786603719135358596462954970165772441100301256257718636835507898691477217372399959302862293843303623002361090339404558397899089071791572632249398486655672671985777220368504897966423995908809868514979049218812126896100809036270480973688196203921749131169583020140907278393678117579902429331344017848473634001579358750098025639493918930675442364408457928544966950520799506325554578730179735271190455782202556680456326087933089524158552392503701483140109013653518314993057662126472478547045956564170683061416858363534378344081952237295816205559034557719963669990022082597768117000766181848828429262139454935515890956402024617045719606509405505628179448354061678905078351110435262646403887810565174210430161107708468279789688688825712614668630554558264178986955212004667349947065283959212747637813090480932668392476627204657524330579792600194497138612082591408381214361074426475346104254669186586665160169303620680703157540930182251225040725392943883621980761402030257192205197607120701129068957352070963848867280227124918069014642839328250851479599935521696213191010510599733860993761410570561675024121397143864941672153094431350245617098554410441759034107710079495833311024719129567419745980481846343696999558339310152496267562896833679666047166819182822850968212417562843128750521655019762299028344806459425747382169583926254577877831988391010775828298001777485573213034208483382389947393771328444234376725430552974791690532426877994086561689086805323781800925690272819241467386350234325676288992653042684765411634211122476753397345619353990747685134255778597636359613630472702234571008633705471173650565434422673633250627682761519704062059336803375862374909608510651363227893638248151213638129362102723976648633974965569489828806018278274126995111546937700336096971451686657841926673301645489267234481142349382450037780559507836738512056255709364835701273323268230493407539124743457218021244407691371470477412718573753909450590255195497946973631222668065225801563253576137566339284448124467977830356385664990437741959666420151277473951060131875532825105871274558690536057328666987862645693548103497894769195761501498110214361065442530298494837954314868327872439817734507025571458896178529388947483661364713559013991934030403398058466966519072982088296852694365193014226735034965675873898681350108450168773354408022517509992981620991432976656982827102178624778800292598519727188589973287981450696610567095972090225640533265585463590048882454862759923700288486944318900387324352708832367895749842510508590696371518384482854035161497804406524133042026529917512275955446038426132024140286491224897918004723209882970568737926816604950047329962718286853969745894899399886190132928640120891117576730657688613091103846959461901892139993739065042668062043635285042326202844744697853298234589565612329411237217065028342571483289880436561546099594661650754975665575936091164474411762424379142790541486644887085217416064825613586134634470891554428239028322979241324261589318392743897451423935653740150006272828949416908667929145521332796049315334531124143318558613979352184223076255384321324801707761999026381394967877369807508291003650319292740717298000029341589756889846485749021113645887581032542268570087426987921462605429182841315608228509782430488217055672749834445854596148455880564111909003882040426182693880749000493536215910230564065478385426676767333874021719025380109073899384931830635460524295176302346743113727616077582972399183943141982743423294570194912418740497219856710465404798109005348015664702404409288568084317145183212841778634038755455571688329488492637361454702810112633552253841753580066779822008336559928653954302902399618796908238462613900921498149535564309257213024912184390174620077821762991573980749929751864787016770901687792548331042927072426994725188995979982697654403093528072744563886282431138878147876776244620925345966440265251644202314097879030921364692250992798416161965748144841577333156626388157008201044098894971128728897538504702652351501277448107514493245546276701016392333113241861356054018996092243102472529138754052872956293215815224891543541693840641301549653745558135445426791054004480152032319025483168654689175313429480556651785946429759888684343262793206147615228636242502777817437325338371798076284250439121440353579884599868917013452714698323715679907229999593757728823443506966635722382323868220016610501884054204974635240993745916046229265245286551057537918315493211969054304139556535814210827455800020054159018271175499545234768889132038008373758257972822161617760862641943962350001384194750781468897939037266951099168698741739849048971672550869743094932375353894070670425667026041983994758217287947793003133053749603808899958540944313000367858368659737683548423651545237591941574721059160295877609341248093439915736813652903936390159130461298989602444480463333610173117014759884884953368329170796274422432546510522123253894125345097032509505168287626390356767203804374904371112006342202022390088213997118989844939991504947304878353232453083079040837377763384482176416923690387412019615499119005131748651605111038149591021600183056276334343574160777863788385124385933409949392712496568523633103323751714608207990194646530820781438191088924161601560213383787435531642336125993396740571214831040732972775514557529031678988426129667384621681130911460499712991731371431467985518368251468883201773031960613042055342998745255716582500099106943469982022570481525257227758876084364010482520999919783701280735646559252908855672986380102220931959985572966813629172903710676299724344925820257602831384130040954887856817059358256160067336816283422395196208442372988753948323580315947645640804670552990567091092469792302159163014003267827020155604902509682797588018458478405444512423353907754774345797477685203611056678099078575407961076027571136798170136916925018823972555075716341271335856355744919012098446203490431646238295954512570436365519694877848393592950560086716900213972970694695232553863278258045945918057299026414172778725134014812716310520602643310340290054473385578283032491192357385828085067969667633380546957170535083685842126974079723204752363904518110678551496652409816591024525835385311275202742310141987583782012920103300346499632368020678710657143643610948235909071613792846907255157642286337655658100675992241441302890951513817561920946565090002569304342519633443045397627491971170875412578843514248987375668244771656136943926835479835639368276259080704213165013951428554258794604522184265536241706323017946975809853811599306284844757733281935838659110340620022130239452754074616422183992908508136760577640678221893076433092571524060052347633074216294514906408325562761305884680372893880626248647504661205950022740128629976348181282702445969314717063635121896487669931028264547668589863812527786138118491739371086187510832397721715681519607246073908878819540222717707558278665674115577605593128778604557680704446281916233098203830359682012784932050235854422674556693159267878676780103808301985214631026515550216236195907157722690864073085853837977002978207328507081056002452846893945410845863806215934717021261433599771836682395488158343315234790567372866590113218196408637117618061981025183021004230994457876226031683817338179847273900485849128597902083789347220674776018156138094335175856405022305192914730627481425512049903873469778633533908666865541858527823801646737208205085542443728318089289364382742912454852389629290522213130625525413765941964568293784054540561958445647686985292809429286154937926578843833887764802404817863958414117854637841706211424303949128250558764180409949460123906783814866700815588967047843749751028597507757241322266722507563908660479862021655129668668974113414649794777412569893845214525065204226701761538234722643212024247260077468620320232452912435041656407762442017772496046984058458117480649836739049826742416172277784741983660049441108880626831364734953422158665455687771467542969375674740637776088650407421165478941922651800644862051681874671250152645985355399262177021429311656039569071559684499099801141796154976126531457443463302425366226078396533586278791827866219418003462231161240349213712621104497854668049674258352583327485213639176319959107817545692522378253390399891593170592128250535043152284517720592102855713282886649064860007707700100881677764212237783944234581302897779232689537963009020618538114406323959377009537602686832623754459759054637343723875189069829934895826092825588584861799532057716787959402651457816314762856300131844066882137874677387460963664987848955692084768345013232758550636164856035169133314063115673987998786512430268351227886897016960622024399397440549038777160803616693625063625277749421645193384002052124876512572321680238476208047614744025639242959885841145387936826194662032360533939720269970596049728301280516786478570149745368871543062499311800516434418566841619038851579773818138789074824169037810167496382516416510292306058352007973969413597595141165005715915198907638553103265217879838102213783050131374165368077621139043921914679158135238055981309069775662096896588672219578366864319059909233373421689841384496912155021900379824502695430064115177693791359027116528454015289349834906622331027126804886457566669068748431634242675837586056748749862391625496119153474370595950160036291153590412416726433836511963537047945454745852286601316907815153501400512800835750368033514723603511626742956233232956527419424464513277585083654434657901510555885208104509119994978419576363392913921341699827217071106028521656581360777186266678954713651642036056224114137249910681746065010465186386461622457172542091430376462688643087653493604295818246576623661737190700342555124745936714981428163696370384661445166789335315939978609899271376536347922375058039814764568566071537385159146958195242692602967704493717773373464906308751660950587822294270442876228712936102467355851008420419176530831745386232890949360927949803207068774662319052263741073387382069865429574258002418383803287924202831729356259358772386646021334086954847658156243540370956767987116948499085205314564541612347871144863476978319945898395374259044325273061952987696848710428688131174563633903226976720262343376660582107716475117109906593002992307662944840368453059331252192756777987402437933457428699484086136878404674472856474698464941167517344865094799455631010951668799222021991825597177648908520733844002309606273148992870361746579169408530174464466818494741705237628243358031166947869419068423553563872841724720193418717035201909700262504264152568191065828337195606153662133736203002912008477659992698668253224514038009493870017491437185711365991605801007073461227080984634398988187917703215199936794913996088482165560410577231736842515840784726170981362953460202545445662427417509417451094173629131739710311489624986990166407393429347766440638262714152784999176544359475939435228519039906064965487763010152813946341650529096691947911945244629197007333645717953979751830470893850685404990520811761455591122991457457545314670854691492385149483086145607784023477356418935337229716790081749146251326502210548793964092015280504547165285186770716330764804956453685594292186480181891024429595445456643249553973608510338264595438843588773218331394550210840405782449902559590547027681017773591531872771224378855783191356012769075616147533912541164226556924644492071261575308582975923606423643248873819013869483039946652463662520155493182441338233558298378687755371596726693050602159545412291687205901612389754757962848764613185079535314884480785433055955358066455101767024336378381786475679636458133075503671411009974470730489367376559185000457691691535610822898132780736685895913967515633137714843383127745891344873100390912038179572370993459034759311012387711384286721057461862101666095037795033509924233481466524731946130491523324510636701560521963497573615626864374426382664098290009117286458584602528411864146741872365839795130388695386207482763428896965762763692609516378653758456143919460623944682665596131394282598596665735403029470943981633294785263238694300588682592795963046538821930238256817234976460701453383585241034012912596256489657064128486779874006431270100825811494301042530965177301450778305700694819398149270219980880559288633100328767800483493023893594766440651128217362133769312154087510566784969105792967185315277616164062687719703354917201049726760226655267892722845805586021433175272137585045886573559893304538770887570490753138460172541512552288062445648900227831315014124841472021231323954270555023091373411495230752139978851497185478431081822046573197405934088122820007213798921607548675489355328736763151859156735551593585630179684206558835548337038339184749936083600170885295959077457186290633655224950861372665400436142139189945702955383770350358664704887477441585342941129051609718081844122526159943548460566361533604362479878466369760249876638848106325260297981410288598653370707496666657319769397059850105848977476781715834670762708361475134936134643208894341764660701551732392668741142324126460311452518545489663932035865555137689179936021662078278328309221131739658922348423863873820778013719016100919687899995714760558333882412197330136729655873548345393135363550259703106967696377213481070737091344286669239445542590676242614731835406847197590074953441986327149140220529977139959359822726778617000008837829059338679369838406577890507292155538368407663364749588635361030544195765211089642615060602619979047230317218734473695457566890597060996411409613875578261515929765756482470549059778971548304299744879145020998346851408341692952140740570032528177291779610679797202269926594130761389805582308006341649338458035335717214839178908796790325621352452040023458645647172812192933197569311105261809607844006655947784754407863905349967270574412164014220263097666916811189244729921901662224101327535920094486968258758369253367311453567545592631873701762182767231168410589825056672901034008371176271966344140410364360772105400559118896338793090706523031074680912093893719531419137974264117788960504752334855204819176871286162092386301217109392951762183454745699832669453547964079798021677198515789235293036015592787845199461928541381692976632315979031369132439290249382212452212501581845875012699439932201363804535542952529356476189476876413477156658440873465904404717569183645490621902549386327135595587847898927532998390338542805139759811858885574012848064670907828624013746795494234776766481584782314073842363151328228291335845981790053432678398103323696220022555865124303336312367194405519018417520547794612740606393689827100827870504814701838301208117509600282295579714601911715981582051263474303588176183432465592162685128503343519353882527962763670661056770651518503368248495858703643443435659467862664857255442734952586277255438724114909110112288041269091660168065783167014298394964045033322740973772145019304062209718924978185681440457087331425306774498913309588104012394844953859387343072578484717276938869659863973949432592329280260297419910712827772634363777496197502409707290480948520353752187350842784426218977811715250568478649672991705829725420972935295558575898154178228916202376356729289018472387067491395454931147353381327870114957395995874378039749074522770734973463191146139987298591627741059407709863746387052335308124209339420019807649867690275916512606990233826901657948139785869225862167253053049803229610231177369744895413928823555816358482022010896345926026970259333615023929715708133522938057684248730857384821246683845485665616623676886074415196086413494685784570992851211474963681893072073195797375610792541604750828941048348409822052343670871400678704001334404581091637699083992251912322345757272855975858129180973110114342696895192215843998013259743070825021319848550829971598838846390106789974570288785833499997441136324801773450698181028529882549664614066812222833392922803835904445782883816670388330182246053232137380295146032459914997082594471824408345441860715058934281491302000865747371120942485233974586263009772201373438814227853187440114944084629626767319225519826534298627504070382152175505141216911635274192734786618292549378195218016691731173341272397976978979910497758758734265965426446232482566554545688191935945950782677082006858145437728602541541575340827013303865502422269968068527902943947273782544825056665995381912787558660620097458686739361802337244066867253774866569231807346254390106568574685525178260545233979628375733957500418530001843797411738027005490603408297723207121962369796030819193798856362573398930512316998740760963447746018136423216610433286699549995027118049055574256607012897791977334798865063390579910512754666282611570947964516287598008301282327695304936330826895599336682651277682336221208673713161643317374943164677600640430235664058253950322226271612372961494463833101296718652695171341869433326851691306535503323353828511549201331376417112801077199865180319613593823973138113347428937538950260454884467685796338667093843645131918371024221395308388728763959860367567646990753408811283399875552184568916665998075308045560167335063996796871723574647980255766726374167630751024714554291373890169299936423141536064468565286694712652032264511640764075913172274791720432567371051470241743353218341239313045567913696525302186320439522043694131252831834290371736875954402194289540098402208599955974838687925032768273225122278154280296837916096433211134681829518283043048854783301904650991456140787575640877935405829157898878313320342189636306428216502895482838275068515209379625580497498641389176103227252059348661852706125622901881871981387571236156424563710532680450610484058231740793405876812383934819644571954729798637220044509843848786138294403034536411571091197392251463702299401825629816016491982558505801399460556538507659806951439384792971026389567567851096240098537482253517083544413777255585088408899406816826319219728563289410826919402667910670474292330143420637633950241633369322385215307581824985659036788205412932047494375263427334676227438363903211292731038953953194607684517527363749369885749965787077893231423744326524380447125924207657299573174722580485036989295720008711769810374154027572002619601706712444054378714607960977156906689300528030231273870211425603743325107595122034176054915860554043356334692218237051033905199757797779936789764154945466434387464106226573539970879887958681687106606142908765437836141696457113065891783821006605395757039069231624423324573207213026611995521538075470486293328316376258273735133885838668242502936371677004908297770204014302108800467710017674506875887217596444067438064507440262309643168582216979702247730338278115593595112214480495280035208662211622964062631054259906448929118708694773346372702891214823354933888742943544048545730981759581111682390613076523365299885001366127732160539443440366397812764129363501994746483275911517438128578261078988165734832884184086961131662673281529638567282677781622817801559740496724828119160282757222166258378432467760107206521827844097307382412737940231328540300231053549423679514711242436388042578849858633418181423674189936648532418677614573076613773167950502364595155578507334505286942340350243917832084686547472992975020790455136297592242809432729763218703421628044541040814287992770644120833161358878067702254777233381305969990622654654111947684331761137541566331621886170896322241363134181352278942802447947972339296739783837524041467055312497175852364366716987694387247047123013870408680577537113806110219677432209811260455076119964701564789997296987898479283782043667266968906865819808178082412619139470750038594361532157892608189109162362821651590903722462956060155959741981598510466706120076806216083923245915040072588126209634626033474437680359250796106039332737337203390393923479569437774794165832127681182102691515036839986840729537278097519279597553280091238864349344670645277355382089224739877710822607800100941046814741320467523210183436869253477064087256722637625698341022514857520384881125918870464518296411402423381290178103023905819356351567238075420488043127515137570037938966479798554120614470676300670781235553290525607753592871863166861212192854121593283758075460408949082937609260363528363345122362456240818927511403338440757016939872582403965870178545045213703755030153690641022959590548742281570505098235681379097307537320727338633177489008842308915916406325803200349018879665850163252635953503641830510884681576616130447393286588916709236959345691607449413314531825140436740031340346262431774678138652296307491793945629093554270639396044193404577680611363919179332430178433484606421960124207846796945812857114866699245131528067893981447095301057224943635320978486854298791723248023414480963834343377477465858446532911101430312852593610936720936942078682248590603569318588046915888127473937421851568572721054411534537107495073693639238862537399505313100734928158479322367666707628096475271752355493139937164402247730276023913395441460563602359671380693110304729364086479682800280283112212140471431504092500999400800656579645980885760771599141075066972948218153853299828135661859334970932276657650761071536175797682659306169829865129766877640815307073004822211829025098140146430491485445432825599470242111698691967662489811007324416034857393214242232788574377638018581865271379621171744141537048021340367031209498319890232540456972030557514229051710507908384039627464416244641866524199340064937630436776453674050606675269970526961502068324035479287635923985275749313787781474969659403734822233206168772417796184014205283858302245524650009814319801312307576794691031049365800376104514366473019832130375305737481529543653342747555179308820959341354713551061790452952439906290850786290092189149076848775506372586823519261907021028533869023809258982397611778428858960295948151472073932490390404476179826464023168836104661721524069401423003814061145541334542366771840240644034931838839005600602273065472815209804426569862854497319171225295010533661786137520897168839468825363460254212922887814659384524471806841905654645861439184498143994346509361676839305686196842197371781948108056846467068279478536469617761433047015172724799466438183675413762500081069793253504083613715089269451299257108302672581562867390278540308517432848621218550709911717303618859500354618200519084365047686492927636878451496515288804273053170424336074270272362301296017513183908908733181325991773595475170833054820642813179459644227593765024935867098684777173606359608437035848991034122609728781735184954425322819979344063303819047121224654144085981685649837777321420850567158115849503503152826247668157483340160682081329014333374721349050107576578708833562778885185673303577281877061485211213512221646915676627396842379033193539621975758090136384060966386932749725829913916358557949140972447159146879907254195041877229723240284888580577166117606924605488383264395303329735599234264974190467662362221977098303445680889387307171644204398127514791344530742045649054671391137225582985864983035835579428002084009044923776181340927678718445318322778622850654127631805527961405728637281938831899029383004051859227421236264955954732800479449537743869966330390005080079195237988229269531628616846544111709140243375437413233045310095652726641104897942172981470923116004503966027366852811975929522328172101305343895711691468056779510905231788503984496896595682795491525032056739740610957225604809106907078109839194911156144962375353723520149096882590863550148221575772340967800142741792372348833755341982546286664912240680793751290047448072262437570854817972034273737457873347413152282286884865097183430109956700558397897695932401627573489336696600072973314693595946746873529144590124178184679253900699172811144211083519357248044693230715631125002455002959967541209704727003012360039266135266442440645315286296849482793321624519723203793970495939048098927596221454868652611098144950720198116572111262258553991338213024600827071008176254152557810814572146907197128703794772962784080246767547684488311811229741569051318484594494247557489408900329933039953257381813818896591970068484651582663803972954050349298832934719947847276410281764488066144483094999003180308500662645083973936675303027211523067656712075638981996365677658485769989175758785868124442956363042080882818587086167641594870240461801999611738815483983613017507524606879112962166102285415429792052671505558819585944323254863204969863007150620289846859547399358069365035325705668547991773202999580453276801112110589269067105438344415938177246240562187663218842683158769647108971295941770418587717333324777625046892818806068058711848241139800164001978298762033249344982119733363011570416976079538048600411037900335507365251435492633231361089855885096833274615413563894520242811554730503464198374656275976584468549990072742279961211200244656356471456958000322887742547572674949539965541693303578461956153105879483799329617959601581902689023947745046868312677066376863200974472567290342192251632145869757745938472213189764278660965153302804886329669250024921774175408848279497135351861939469202477678165393587046758220782979583832830049286660837267211293696196805810701571876900253290705406521618168587480203350786754154821020333858251716827816807710617089934613204562329392747533680568064973386199006448378471657872643897370365317782679172679207757204392240790127366322982695857611702124312327295285571861317991309631617724548282308881611041788739784957383427726387397837419191446506145638941394732623244950168702488796236692551272412509010069766381911813505034321493664965500623564640841204705701369483919093668752610730996179080800474768769959616186368185331793450172566030679067934079989287167713941580244024017445234738952495466927790910719527274481638832133976936779178961128520619050702241769156184563545992345824900172556046747594153989687983560301554137207334394992834817012834477719388400209222078928957057510428894064490480027421250911566924488251886217832036653106669785483811492147934146615260452482078015816844089814682068430905251137332634526320205846513858922577141210539335152329220962705046110608828687820280019624846306625714241946082940146593548417944620930771509134360409808371790116184941023283341070918538655995501036080328745553313237936978181941207532617648636610302634198263222365631143401987843404208939837923089452861720414251078677332063019006201951990678807542854442655737339933091667487872925805309553003442332461613260958198508483882616700689735386567814750022338967207741351372721132445075604974871115569309094192608136606491357362459228290806854376362305718399600442837047341231563033390184396710343114461646566193103369045474160825201157700488617432562341247874419438478608461567000899656675715771821209489045560386285609928717419853615697025921193607928400833144439989982185131352378265475252743998688264044830188945971435381531994142468836437957415785970042249877166446172104734903963137341878235679910127189013330585829434944073273047424754969694148019699088532564839550768134424649869686890902672256349830188958077656469032887086415998091262404967916087243604988708076239728574151939666944376692991775417700665398131064969009896887884299326306109765152946950057070811476591530688707501482999742263258455704629541959870880991935770707814657434762832952549098607947720507894414054111511117622859443340131625129170447033048084223365296661382164423509248983757385496522275484106415258691447251857292120014765963911953608671075097616779824908378329957328043092842697636810222996468251654863526234433140301633975947013560473793514317888543760462639097447608789921408454043797265875178365035574790222823782819793817108811891297051200608023406822559658035161849718511544370088379022743563748794486333381141392022323616355607040946257912836125211285103806214767757809406292194439387391479044177113769930683963212388716806922801786724494474018590675703312185194572859123722037608553742260889080090041312428197236621712697411492691326389853363967094473592421256237061923994240778822929673384297109196279425219701303747138220260570858183935958165695322030483395825203680249347991499462158503108700162860194077320213804939483723960086239776346681069264308447904634302823384262189206088815014938435043000287470031471357469919385256618208824513586607000881429532705621247759469984178582438853006025264063087033976872389393857199063022202346952785908059051651788712260973103936999613636935055433009113748261464544705923109386147692560651013985531689640309929038119744577949600685991126442545337044056963499705304028056040945083725179867061650586891143014157651037272566512520179824362602326435946977582907150088466262059529976673240077021958093035277555927834061664993419911454144814081091297869055450964496497444503554951887791378781197642867252694985378451593043137482769998529519479589050261417619299313825597409678966391598960530212524828728881007526809477132675832560901141720490681974345800161967350049532735734548060925405714305885128182809615248594257440289491900962661882387487216911019368913732744045309943900938034562437916197643972844482222995070524063459246462426883042780171159627879244893073306588366377044619325373782374973581055651858910299037720492430869769155786214733606957328030197160617312012953838564678980283976011324460277801112717181543664533428585993101782325140992311901260789352405454263987574407002196560218286342603055535696353626157862886288975898129497509934914003260896105456073877266789436894074106628639000824774915529997799462379473284876555809916681736733880387117549527899374317486048810535875138549981052945957777146368319369081127005807464884472147480865400743862558391083410420032183996504441521891563737327255589634825609084739938037482667343540064331581529040061306759783654060811860042427117650218443218359011252927174153640004506517840754477559881588981311097956406476672744820277216819358931369788388355383879105829728573260341436623308551238388465954312857493163467904115152136757303392097527919814733069332262578347518049706158486936854804265627317914916946673430815697353513249462377257047891697451632199237586748281368359759736721014365367164958413893548016650788122343224675366431660549483969134782272282068969368631004751637602205154774894191334571767941194246842057781968217436445965635445876759650128825058348338536518138029244007209271025453080230434627844843326555330083905018840354510309198846903317181173999464872264524116966801814795581136358916107047003708587546233687964248048425133644107204274106882775532163084305360392835961661444829109647270007034468184825844662398392390556121020361123089052452606306606413930477960211409375381369109769436649730152343337076459018581877901626998828457825642954183904002694664662553091713302825384923373580601721599519533058673195280853959707639488258040444414719302437286814826328022691498869873928864876807004814629678942895490938379726734598613830094846954840958511436921352098411782651540606724528212095137843586744291768629630725816218944654623810450228115175070728834920267106377519881134079084837632277120851276596413221293373183641626479472385875110642684471255853523703806113911819944586741696334017170213531701420818783916141741383754144085985237496471976342269542189434368531493793318392501071043779799294215190883474543403567254101428460519907050481089443519721769303610518361030429047734500739769435908189212930922486546022003736905291889169605006699019406612505505550501123736561518542788697509998193953226784034214923684183796029795324090376161085672088496545022080867550081518744677446916383614778498377301433237166294818828828617701989848711216646589273697620064251729224686300573564557444176656484393270950956087031470557604576577434849364359318360315473137912619936416388975463444376912617570232964090087686791375751019863533511216816745357433506625244316212108721449902417833787692339446786234435512719672434651326591334196568519645038055125174396291324923487461341086343725751680440218866350006107908323578458090525310949412984122565153206729716557017043169960675180478926174266420091185809244716949026504113734113250902188628464287098113304132036409823046222584411488394706785187162772780173803782807525044938698392936282587734826623769531208096759409888218937336590924584113560343439560993031685615556517660264455113707023047067043661108424323969952722467405508119625112524439189257502740308844994528660940263784132308513444126534516381657954555915376704050096352665511235093866704619888623741423787521036934928827244190274087418015400728455100143222674392090145123171265643847622240893470172075228763009031897907754906924072605470503023436124376836160882082207485889328186014535410958073911966521122748833123664788288951064034289201344283858919217740320387450762293297124973965410567311918227680591492834833368036920268326782318110129426432565281201868389385808539487139617399964712777594759504212392371712196830720412689741767233095389991042502117285120517931354285216196100550382678774072261639233089771714119109202312974941420361212828517067275088695310766090165922976312782023587801773603979054666464025265018136152731112209068576846784347038177092372746797213287776926857440551926035742232889403744989102303867352139555126116532038083337788883995719354702511728345732365830516680900118158351742483965001968110508912720802385304167087004481897094396531268294674726547075511892956250380892453324142830572509270335357005353898692275195946602329579324572314594659824118819464748924917003710894859058792504280889450487340960698275425469725164388651819726071794914259284857488053001012262948598099603346198299010277127760303841268614403765116018101537976177254310545387453182710317196066942716840967801014583304648705545930335972896038985868375476609768496763698223735803681959920563386749319517319968878752622293148569976606926135267557310401853380369092405459220936121235315162602455115572307138896860084633359752174970093933779243519081571885903446093526360509110643655446142286446930751300511509061380452365584120672004216278271206316490133574927251829858763045305302354490681494674594956229016811089578872525457945374389685313757518295333219528859697093711560873035864658085803469444829312535064973404453684738425448454980112713728764671093821674589088137651597833106260073024071278565702057317206673669452151926617396488766791525752976350505001510413432796320293158885061512472318912776732856600184773735750191109561601711192378653618802759846443230823137531173693663918449678698852831519084094096004109000391459756683257720437688944972622212931147160697109891528765513959984973969671962141713878021805514121281363159254550212616469496038619096981434685460060456022382265664374405374708752855338179423030871830747617861594396561323815543686735462311665625401852223182222670247290613981138827399224729184083026973452520785158362568167717429789977635434231201723993177979254087093871463953163742861866462105626614121118842556695938265604783949418440289384151718135017838479200962149533332447702132867304563809302948067317260711690146215496616489875825314878390579809448698253502003690684905668224373168530429264223588404272909119132357813901551516608369139268381316797706021537878452650651542426063519288364770241945947474603653552620836113992471129583932850888418575205107860641520946802039847329792235906012337044189700594859340244244870839018921804315743620530325087118395815461175645689154307246769978472815553137728770192743302899263617517976691720141076474296273006532350491030866890564220720055901431329487378246117585381920847370218756618957713931528073414970240264576306605928009683103216645125578008245346188151748270821577311638615168708066778917555459306576590541375381740376984787139137041810684325387053790490161820063574475560012628612015190530991613467520955740362716814900801181000691372181007561215555580398230747253246037627170672925132418913478598540159643659764241361555349629178397252086525207149612655970396719329405991986083027815304433591417096407157868157224655878091228436274546955738471531012044753730037375241670244357850468992365657291588065640584800427654193830235170046164349591905676742555708489501364215923646879142478277161085817286682823076864203220315888093159585943910069595063936527173720730235277034340375989658525343983746529333847790138332748937212936050057164373227385209858521578020233327236421280869675834106932151023559320126084490456043042631619290682735220378487769200444599061978145770085830348727041396000382196111794618319155489915081701808226115539461061730189903560394387674950258627543276116907144925977721648481111047380549772085531582442458596529681055806990695080479702891439676540358571908770275028107412570981293703343768866724909938464733058818900922942981817202686235967032433585436629183643489951152582982471448730343931123332594407081450805121411595060898048738830704224250957479630488096677278207356295045879476508310665974925664682593872989534768595634379030104033645050436098965023839294069998302216290484573472686184012335436543149693064539778518480320249345408503476417404314872148786083482123419621513910645794441029830918518637179941252481454567523384618191497009366650768188625757648274411785174141132839450517748301966422229804655198254036551581081532095693201202864846634433539288162459785068649022248124678920042693510955654579010751719809037663291343815926578638308051231391888505429995565385732103195917175702352934394108553214153793058207746987408157937013968559923850286705970773582956807922387902548237101730154609629720555073055046998146023495522723586650196081935778649811016337782608228879250478932082210247922511960230321888534511273113426447981896045057238148990430918049003187458877366381469885227249944963555620119665533414501172586267528090607283190858122508688593384706712754183997467347396248489546659768585414765323962392283019615012849676587254901594319249897859773453790813464950203662647278243685269689047656096997682657526440545011726352842892567235353544851011974930064602663569846387933682312862547388360479412445947594715355233062820903035802616234208037072919012696921196810685782626385190582767099861226735470712654284921041358676356676243514237061143225018815305098395117773593271997021422236804281825112445086284654561536836515141067980747334875260602843137040900387633337299662689869370363250146263514059017633271314788088468989256424935141438987147411125318473545351028641964959469167207043263083541673280860365074614976252390030589314614350914955078455798596256484286851466477438985062151929155124215966796392434512640928449653152693591181316601252229351265856452969431693634872054150479759750702290785202463382524895158359180981591209686338812304089218739634554343130810031748857198451751456209973471526971694238551853467551381696350463643357514513074297943159624969947958784286458845262487432291627021254953404599367372426879494362538255760095913748978930284066198053507864616391116323267562847180630695997958612473027960343543613320818135623457408421221183304754288117255607671512360104096809889592701919074335728405836451575284139970781807695790351327029399431128188573094890250175140629598239867817033536935754942544935074766205654799307659659992738058933461621790791040455223203612945605508805233665868160282667897383812406322920197469049790789901916682181625437041426355774432538793545470343827320231840454346477705039865773713467702001890991846558218252787537956556440901498075914672316588861505593828642278027437756894832613547735282887900159011583901111021543906210053922596212868617075188187218736895852334571929678413452030227953605631813598247250362046995562627598699210325352097381603578158961912213926064259982849931473611668091285125138594163944745121680022691950147706483229411848173712367469094881665657239301357478590521208616681413108049353047522212803143273977234892341099525956128160547503985942561910705918587306267814444983971608168793470120951987428561323894303676940355823635719517251713636363817444894470871312032341170829648745922570327747196120517826348152268401246152682371573158207620891588701265024037226943877287022579245214620970668017952888485477544758734734690131099039166049520076824749133125889257976731287199698148658923507577712148418021272026203112390447170044261319742044440676376475762952573966059520248828096010343205717188368202439691673798012196245543701584776881955237704398589888050658229421224989787118584494257748004911894544233773392886142184581581248655378757984864365834125975238924021577242295859402420222182523842535898819447069260712311230251653969274080010682086715983154367523898676926426024103951933111826230804318658541554525289090462957130478010008655737145852392343607464647312863231520396618243827645381508685230808831725798306172262967706434505745854112504477362365525799071103134361770318043232312442508405760530610924579930479239124339314279909947069084323769794402629100807049472654573941423571233828428786321821064998002485150571880697364178261795801061963272339282838228029659087331024994337947847996836391018664302798268679450493691705867891968444640782522726809684783942418846980953093402984757017875546542612729281309910071643400847846698384998826581837802830148045380502862025750994675048241643822775797200235258688368679462522282542737704850503552311515825408547418325544699576094420080578389375715738648284903119691803318550571293136730617691021667719020332629436911913202865070560313937675986022191260320525039494677738283548785933554820872477210395690473955402782233070378577721657469678818497164181305127648230734320581117474984249739508141409942322863047486910378569576406183200326803598436471813005600715667624395560541655458188555103034740461855613344242671517912842226670525847487035503845822057403775650383040216585275703185463857483434929798397820787535783764191308831017023532223676592094422421962153600558643199373874058704315742198048055937530522755422488678542098383180926963234061460898009777475861830740632717226857233552681068010979815237680483762114676459304092712949844788835313656482920490818239677362200874284444549531897840003102866141463790646979363912775327129069764672935493865520118889841842423839186465988923567678176779990660133175361954023061596362328213131175864158637533996892543492111243386545706153826414035387929639834130345142793399778134260514927079344866661664136040988298070044994280467633132468150220494575543087454175532108974523299694389084722470814621213618340132843677453959919764030203027927267601721649237695559202523945027000435414495402916946967225739208992716858984087134262855529863630819276279803731264153978261223618002746711035021514926832832795303497846804791581121483447769613656698907561959177528387237252056264130883096497254463175695273709341956332545481207710098865669961412181740498405414569766622703122135235616410578155215300966900725636795236354508125059533859391896686958700134731801738557103276628137680983591569248806641022875048990117093175902645818180734442027477887681513275867917257297074470898112232696582652121358653262324673975006070356648989252849364567328423331572710911257603210448098658679222913194611342398471071335060021691305002253674184436835765676737252391113672459771918473296778221052897081667139367563967855217764761091448731255879819200162230665783270549678880588610114570135985115240688456217655653660429239083361120199623358900274497010502318502296980120055241882402813234349155503032201221708148088514754029546521777265714131647311312667938181208935175558524097253409336242399737863377352019858654554964186310774077028802009236497763847763432705792684081391238461835970466052358276143561822083332245846233814881271044019366308694189322136145142958018680605196523049473339797700136592358033923969281311170594097073409340012126047502580193002866223452478876808605724937181178081997576982480067104296745845784477718877060697759641248474316808416546524458630590888131998723712837434330847959265339553293961480861931885495953054499085668066475829080209116128099867183044190049887482675269336797653040273249887644200634869507297886796649449868098124601850292907678097706504658444526322732706980158651881289132129785289556302403125645438298094868607246015465201623603126797563959576323185315231766450560983170094303395899487268586468279948315371989526171769659120743720168146593966772027669357084543568877056973994539958803862918436813390033737123228847181625525174590095120175603378795227908821379317437510602903051454002429977910096823381919984244126548147913120481644956337072747918529204797671102104170868244217570250944006004160600041990192665511442455504652089081944934751396774255201258998811850556100355263062321925533644697453981510399452067968573137484310907030804193912274542224903645624891297985385203898193851084790281974764519484057947406845300143329052371005371554904577540149315394064760896029453437194031727667793955693051495688263587819579095770788611333546496835506863370423393189110663213859999695515695567420256019620471995181299217133291307978823688144311766329504329741081464069113490436998299349807720646865034654801728052311774919702624023007853237035185444393317074949540468304157661486229804363288616332975034187889702930242820429075364027172219890143995338400515386702226115061810300948871703647653502347368663419121440812393363262763140895616898061094796537069393898503548678549176202655872303416143167036014494195207170783587011122109931518221033583490120074580304683490980327307481455241462209141390747926212017995140052597785111753064585997476751678824620193716981916095807809431331470917476724547603827564548089955487992295659767234322408431295418119333242493559391088492952146668126465699367635909003901170561806996704872175102646724752981599358977419108265043558028901200542172132040900159249575022098714827109797514217734720094683346849610691697599091417179418621150644241210341692473639751274719874315625864510979520889136432649534666999165459831852044920804374757726903506997148960322592168577585754371075598507243757475561666156840623350509199823299790215814944079461082065033525030275510451705488037863083041241855336402322611785284544690506558449890821158302499746200414024014173173852429830111809195949218501787935531785491898727881901011954056210910977134459355771230782348567027422794015535440076950369897262827854038906527317033859464917554044769146375053279067341479664595162964387885167234381430221425022846804201411226403323147447849438559965471874997094856985036919725537435913416507347388658691581879466352017138951765647654899665182867031468957428976854466016077907077668625167319035596624989823589221819322754881058638947270333358598844770162358171094701000022237066843754799912782391661934626867678432918380973127064296158158208384568828176528689591491103444989225234949267156062804869131217281439373287414854742016199159649813810674465134071668887822959600378557723711931818040648492930688446929362642212901445718803213783170426249997376843257182888535560234667068350044207453915359320854076142446645107444103176204881610084900983623784630174860911594962886485714250247698725218590226890307041260930824115859582379105243392968444267867953972625657438098565140834409410422608524143532603780702784851458484413999952075257891991056103833855521145956460766209868675993605329409874899770256855818210528945150092452596443010084278140340272775067666243451905518407966916884623150172759439912816588718927308140279483536855707757440169276133834166517758204382825564729477877032205974531359574405641680453139045331895314550724102137666368005664340728736800264800377087940562048791420624451316825914709360341219559043806235860191280172721581571279656922515209154970349819026569411753961400656225010147494190512615827669503273963708338116590128865068938660728382077276633345208653769967207462542071617049860343432049224555447063625492615567792243833641071328916953999116340062550119369039236718463482413857865040940952274983806977686898518523849473345567023772307844423526649257086002901403328602718604876889854192574967219352007527960598143793660101466487871929770932116672076785044662484841626198965938124184311765518156426013189198172354284643834805301541892193974310051034409062297956793621427634125640836668189295150406978591309001346195785006104817424886330333545567792802035464685018807309901833267502442046592238287983771392652079072745374922066020021455464019133227494169078758907781410374092031396369084783747564356136173788718084066543082772135675290819791840797111551599069916154689456285075106322242725218736901791411939516351554884733049688680723482369384193359188465184033039163634218437766382493394671373778062123456336768877612698733255531880903861057692821751521546973837187874712764604206204495866069703060522102940973157548650542297291604194637225760623757210847652702830942022538717198410852430778637857577881564365668731421834389829884368456028390662120776856021497455981568926041885693772279759165263135449824896276881158818577902408898879278362371593641239645928385757762720632321602941876912512634543545492776201157972451185026834906911502292719540836433257858946391763304715736828211635791601768102379475069603269015812832191747225555715951175072255197387740852440029567624031881419984917044209543406783129435362517151834120197510903930648183741316630798234557167047526728311379081714102872418684406486941007151325759602589778196091364329853189079384105596795694603097121147921936681054776373042357325840176019958490990202878118527791339414965624681929122737136222047058177796541429941262046810618570725160622671989915236912867151656257150203498052874431753951436424835753779388620309940367543379426597470636593402604778902029295657492180379846765812692097862856101371013578959091920473985499720427451458102721790879047217846672788326996629787882795948130499512018154456936819123469015813999350304516140073519132106237808338780413830996183880435359126569714302486968550624843536863280729451538236624902759606797713650011344300330060788950100038006839223581217822476843033731389790661126310689116692459225312998708515852972897730763929554506924171027038864107919932978186512903208324936269896983031397708813431786822664605996683921679699818093433795573359849370112767067041210327524447850899202082311221060601507230620352812531707771832650530734884003186449077116505368695806573228855711999576733576589760007516778249675731329570419723890303035628306710246454321341534673330383427356636427164726485347907500026070619079637614858776084180216052647255878916304163753857868919551272169148800442418183983306667606929199354303973939956721593622961824033561809450790808197017065791370196248921594189695460977002427277058376456239008243890502568682597447717598815037733263389582483720072653336026829223430533467756371055435127294744431751673966128089475224923876902500024181995405190545499212041522430373631837190324444047873720272785884746045059669766407571895116285799762498809241846364066612161281053675671130847126385275386058232519361448061060321043448072134247735216666168503586470812871534026019788958068554116368313137766800791983886659094908736615343339842242616321547151054083908743785361529952772793693972675383193627370656853763055659090815878136695806821196509325684547793408784103383474071329182147601831279534897211060485700028724566308569182901345851167022193618478265933967110040052111129215807709560151170524245974716730221812965657745589148128383971459118941150430424769212869833428482958275402624456975989790737254235557223711613517440627386176067756941236530498714184362864966110659486213621245543445546530174535510844476670664950576445461201360755104502640792677119927953519277861800509122866776242850772219829596049487462224087837580968140225525317656693746018118329707812944774939242343811408267556427645045828049168355818908614233147159337507666931316396196169214981959342183198338346744007642270987300160519081244055493675281002624398758133784773786747910625596593711767530033524287101689667611327438495088291877267954625324403025527659420554913016266462686940229832401682861878193278058512852878964729449275244420609937956716911717377034851398028072897230682182937049733790478553594136864450418440549289737675892966457813116738648781459489373516620965545624680399079287220849272867110687632398232809337923366451929490165716942756420664922422635532644797303434558154324971519049096033981794914105074170579119300223782250964106798017462421382432273085092021291888090763720903228443484089489502122213008802338117390918324238642759853935084781073115870273559545977297899144629014683838486729341873984211743969688792347923343610474038100309361777316430220036916544502192051964553794153893115613088694497762823789644741906647609755775568692754280350777011405991412945901185707766050135518769126481910105699126817604542632599726248396910026424200893399664043460144578456686488892216342871506016460274405582898566667236571050783987633004111473930148371714215505565014480285536626045448414039521615576396454284298692122564158045040130131341990072246831552263208298272808434895762203920485935242886185870777532541364576264044585045252330261732937708159157973393680771725876534386219377490768359063979890392946341332073545817039652285517250770993094710740276865115315375344495138493680776016585673083928151988996716629555960639419043252236340251480802796305022863126752203272047251668460487431437005364303485976211722547407848178432658660259699926263701835670860062534119846169930820819377437100501334090921256333359822604439498395055706781718759850149027129328054590092861735329953159594138909853480414222723987169291943971104623129773192483360691191055433621189753614404068795096471131216518135726665507336037331033897701806924601373232525493659130146905245182670821999088829218420447343996447491459290372147054741621654262930715960134655496832768882235157330795136295213947871860526542730417107981324822275551291799805130240568566416743269536231701470548000539444733152419177667111092674015411615029138843741168913460955908327400629149360519523488489847462440697510213031090481528560647409304544428560637897466516140336736636382443615014295515233203017296829852131639785332793510065126949827048278475384239400227844220808413706925034663103091205987774767610968795747734183427977871077354007032525552121843133935383199252867776744880686561366900112790358970694045116749545464708597926128650471216301540655111818250615081396030451144371447000929065895998775022596264606857866567562869095772694866128931066613406829467463677392094136963599108053060458670324383295734989619337937759050906269201675582825271431044901351333901896612036911645120437723936490878749898992640978328993030502538542148763154813789605281028631229091200720052487808361675162249135628653419108457597010666043896481521069435437971323692649685328000064711168576658484628489611996687045820098930954208661232986367234018905301756574432514889663263390087424875572494926554269067944860411101524345687075031727190041445990621379597919764153427121040830194918917089741274851696296717271147164307194303626491475393886233988959098124726772809622876781486532498440266252446308706403931447496180867609552546895566177983705238527163615778974907113122901986309661582947197047011365912581538066459667679962845770061396559042802735028511115022011197022382115955645469336490013205604785181560251926106120281994358457210713896028497926727474367273468393803744330022324250127759915244470816179675679647537195943848259826736289835047040349239390447490658812621237516114405563393293900883869052912756689903064809589056661344916424246696344323075387337720303034375157696642787678085617044406021283394361921474026784062986478598961915170930342276590428926085039976558138951985766841573168728555564943009381782448166144645381449189313552200111799881958286284963767314721379750326170327663242039765058313702318683570827979966435231776650812414527810245431172639832915601527435242164102817457579941023466140156662209576161555468256182778711772689753221712034604272519780087879083721308901393419383893478831284335805667473499849882679257162778926946630381949558227665030012281895168263744664112367506676425806513331908306759851464017279649148880958526920637166875448840296226468127982265290383427230953293312762647378022119490597625434832655229542226096233110526017521761113073691977902997896981295404064531475067325122445117050790303929513243033819865579903072398890850687871248221391416271361652631144537477056586006485134572798567395759518981235134452947834532052040935801883095768686916161589311489843185418402538577957177424038214458316807041815242900805944873138366614595089441994241802563305872336527063722953601741447319534851222411293946073693250553992987344995255394318402466735547721480295561500298647625340069217939019904169310747013444072692110903196731272953197312769237317228927795406640775014955950968075155950696211332345095470820145182489342022681411616266622045492065331526859746461838549136842164062992444147520910673041069768440730331099172152635448855595622834834575491557255541641819710969979515511245691360428724903159923869282663045310339152323425007392704462825918999984354655900672819434746889460596810834481214066521938569527181503415984112999546440491816015135431602896126167841846814855878396188517107137807716358086097009567464038601315099634292293141882365769269907936020479614462244519683677827064592526124206469647315030087810024208060440096555466493793773891680889767321805782572411701075907113188535217700361031839811906516888389410977675690505213419800937997167851277577735494683293237764597779876390586014134847837048226439358355136782367854137811378985933818611285450248521461327539039116156960420990536072502888429786307906358066659646399378928574417468460398576171227897065943695293693211230515556592448585760862217529760245277745837823745181341737703234672545025724817253638175907481567222629292103591803840618863272928249075572527248431691458108859131419956096936140162214546171268778950077657794975298047579352068126921414072208922582567495395874310595743988884832187321103089449949605917545537396892618149582776502031615162251303275794257006501499106246767304748148455424484949640996030493500644951948400887998416742225951732948876469679712596668234692475612829803011627563220888187941085839090286788052269844020043155523771006188983285512965583826731871086587776320529137866608378389820300684423176109160738302652327780152510119025168126721741087170500956838008382323848016060537505032410168587897188574686874057290515329614348763883530778037655660302893359780556720418163475766768489579912180143922341449641122427105026326894346651707829962650292475359444859263185156624876657509407067338165434487327935890749293246323840920734269624166379489628865360286942659975675697049696466301422753729909076693535928453450532890953522544030733160088018727094617569310866186141612062023454819497759788662428962430143259207404886443080201126566700215201837322819576580193291122851001846168359506560444742317872865164584548933516764615181612155655782515387803317747687843192442604362772264164756828328079019474311608539686403236713084683437417124707720042944561536645482595285198023207017776505109547016111350642289220390007210898593839354415856622113178051836037421531378387781925423680858315788716245186580457069745096459234851750674053514691826286684418011374126435830051064475617565462611083740849905648639752915342991458936566199560036109973260135168513175633480918432152895292421389726364555980632447362340970136618168509913104655937046990576192502620869407477581616025645094410206202800375037630267208405798297339716046407616442313639313969954995205267615671496115894479388002574387642170203331703231063808021925006987233388137975775202046514480136911101360358398908470003776542494676926940828265221424006190223482225404482258447757846236871198689087244233936503638904882297639646830420851131231827997693765593193229507166149094514285916425004717230995131011656654833833138752390973751600095727705376414033909059554098430121870949614834278218255547528234848803144154528018583932740946928075301051042679382805568686009947071879132876869017376678194084071820156670771778162600076586003369082412720818952121560528979330175217525194444241967885545285711833655591183152730491399160199242927835843732300140167631305507794908363241102977416030541375618559820069532689050004942094035723047036476413276536832442978255460794168678539274724034393201170645831085514794634660667238117980300261134451257173218875665358881286996495139703669778566577848022381131038852542200550863836594270426067981898978734649344641237642375501199951362665202189699349016628495343623638324419310905006765264386854239515619255547806392478684990558692822824888992315402631212325185177398319960651978298798877099754826619121557316939632346028448967774400717854006451933670528583506377222825239715748613425604999935680825584115130474165696448935885552369225253784271128881548774353730118736725762518488413951325495084718036233829565838714723110290478906219857009073136703782886039079107943327435611308943773599718149893663674652047005796776981639855702845732955363204112520789037076700493960543001074136765964609891456604133247757550926171633427709363957911181305934449883695807515035458687779773020228924499952892000612395805775229611849890361689496482345224759256721092795353843125328719459645916140296835826303986547842157004779877580368415513520441789221917562261484027285420173844921936317601571430586427454830679321987030434204044760406994419662433942170218008388246766065026823854078487489286545605323026785045399975663198701982644933728011640799764699925236056997427617140675224742700132464544124226949624797120256658081493566165588665839925574356255473465395987597460392113879376142471313754310925374645218165740592666032742831756120323795633654650954067929362291717541761363306733226448792506489847730473958312504805104942407525455595309243589750638281303777864119567000833559676983584304803724331083570767689515691151133822181840532472585968699907022269428615356433001654062865528393664091368275980834429668866786857730803831907273093792724297911767886226890257933540876008363244756415088554415930111121022346672262304664320368160892527903265315174525092814060969407395192270503331447865094408881987465938403187398721519130275192600206262589684006988397638551300282244762916754920851281843294088336632872861638045109677013624104659415949807208372607135202465564590189299798768448342753619599904006440077354805352423440766268634051192953959098510943687387407951895743137806850776001123452502638503092441844139061369060300785556548299056593300392681831506985737437502466005049830459974722233752615054866156222216894929221240264711869563075719658069099093156887186679291302659380127426706887687675573407019769416716055737644196780958591143615715316854007388792630706018501318211273810628491659117950116904563855108121817864400822985720123522937107955282797725356457201168466070101689297159641448571171896933987375891364780823465573436881575534272427702650970825651826123489044283906959839319369230202064128247882945580778897963476546397808460743017423436550708518324812031454536644939887156121184257400201252912817288443631345746984002574043936658053461243118913398740657961825036143577630260601503611321807568330175895441673667382758926749906376758499637398330927096193449546111178334673939137436868442556883108758857371015407852908342183500611702286937650411662550923875775828761664215468488429371609107487583211012601874654597358284811527861597314077491094371299675968813728180499011417512759530091694382501418855274061053817493754057934042544456061717203152737333071330004437130509226822336523435501733954975382460434437927617636778375062824291587014508614990549108674457140079495221779861033610794987619513014668293747386259869560167937426465644442996112277879200063047358524671814380871164718086466317672336551776413001995716983545411170361337704134452105614957163113194194549399225297831856963630777538362805623525012439826505010213442354097019486513257484718061239118499092506807366879731279540822267219778671262312761466270394688808290523099776341354584607090896847020610594522183061496317844199860640688980847997623026808799758668141009211861265341647840279167127092278725895903850179813806954050757199253796740240734277983289073042948044308854002420434904278401807061566724457280735736689697462356703013770335917593871436352214090861605354350237380226949217500271828221759412878783537870658785386994155562556413238835108236824709743212717791941458547506183791708943577313553078326644906283584229120201249386494858665724078968392457983924396354357233058260016373718851705336478961150027975626176726310740175286675804787978933761809372611378732894747463970878975137899433714751705137488398398117508096113258610482531816096293194685641827771301926519451163476328258014982635868144665220322343493365179566530798690610284760824395241644248094268974702919722980409473904796372348163088745754629758526564392076813886631085550008326608930506148496414288887430143145248584141049178130114965947530078923412965036539265361655763505218056514039734647292095952052226277535515927840661151431233637210229732784036090167793348797109215009938947845271898350907570435072614041240066495562738013376136440928899244278426001269198017335071323268672471274890053907164850164979452992805759600417019213230459315792348049237314422348369790905067834970325775760713825377997560386878501358868881368745434400132803122886632021768117745284256074324657939988417000686661110802730872834081241160262676629480615432341351320550683268202774332988906132481811009903306193483010537084348467217231410017016997203109648376154185454701590017823250421317152817919659838536382745141122695009033811217735191459260423978168395158229855899066799375061297945028419402606458236500404562417119107154920300426061732476549282109723379929842321181628279305772574240751597914259697980253027991223274529964603194851014596101942938551816302129844141885568676875311631216896820084803370360894892622468645330797290608660954651166323116798107079886796097608287839552917782570099062697358388556847545260124706367628533390894982699435131160976462448272822292846435893171107989665639313572946660961689191708036807130711119418201190154798860242852058808646842025259108110467050270674146584016618070342273957736550713943706796124227202603143828201871327741436225343687028780449185703654116680387722262038822834643668346027957868313129675213498991482141400110903065555227737244639006134483347836013881567633819051406714474190959315081780677730349532273531088451385311326340947284956592941673859513883165792454787619428717557153093675597221652412916535413005511344391493764187545594190714180109955787151742612450976405086939997664820557387137796796277113330022122135147614347766896249278054521972104563091402755005405269596362375670368258556163603806528430785025841956565298445816776325891617240681266317779260003932612922975882001803451787434892272727665191604423998865120465479056148585673814279633940502259802994842321053709797716759564419760747940767220985823416337541675115416367115022430880595525292042204732584652649988181556193226719828908796161004537468283350348400312680209639625009050367120396738202864273598651778957381775453028922184426224478963456840987598223224478236308976189947994480770537885337650102193961695856423944278213916604786906092352662367579089220589698271053095827403278975750265088717772030842770004601459679345591087602495390530233991503358836614728299521379734255676838763676491116781708944376082599578284735999987320812298735383148820683863180281552657932697628716344369516895290620856030321631734438154167547088217786561412071119639092701911758969313501869083807110530377500359682621971583823624222035595509851231902852860926665487565115792177231888455596243026946810671918234706072343582496115721662853785076338744899486770409664578225488149567009893183305410780254732295021380110268600156368080692898777118275052963629931746639735596566215606853371607341233964164599275311026840046104972560723318027712331486717893069494483798614631937939942842335750002023829461354741729320689775982457969958605946599767426955813532973811701454992362886549922279321003405346380794965808315949508379304062704886099677786979102495284119130288003812743709910619908347902226467104683980637519212424527773720796302499837414473024957619827602688644109241738336779934379953382337223777741255763881067096180221262244496764472173252396309816825348435208244276776360752677306077137061895130487797698868890118634118808189318062046565715347536002662644890232294474623344765185673818569039449596589286130474460532086091978206227672661457250216893445995415332806393205383386180285255156987147478690987279905190818190300803890554231002793344799714342893263480179085622131383933463707253787539119900761723260100391460618879861725366229324888411201220311396535526511376167544966302330497805471600635199926436647005067969317502966534875437658494768111179346285816838636074581788718043663233133623407030582045581519465216109263472275149101457883307468069316061390258859693572399265834152692436984828307809701325061381589661547827169137866873350745842466465481741370662850452659147444731905714176851764793860545357015549487694830890039012824403448401965482474486572863738926205230023996183230802674543134361450981108271040334872897816942507701044998955701307519898373519305595792774587776857793825579584401854541239942060291371219762553993349831144085414028301575645019661972111377562021368018790470333718358270222455041438287359455261550250864872227912931077849632023321339460684776662817955149265320941930739494059701563897117024040974849301313557191002762958304940248417337639379022702823914872650825820019093952146650940454480630941639150508403331407795418092544670996711724890774769037706607425353302003104720823599372458868943969104704109184379678111858772289092412059788818720669380884759762210978961746225878396152541101812679545126436894443533207605402269813443931168432741500954974846242774586919262133804991115761876900619293016040035257187238782011337705340123937493913620743693414270299844943110934293250045969177270710707190636431911547765590438389352263117029387804349380547023240265582792228214962032199856506176075487702146342037707677307689959527574948270675897228503216741520974842866812715651643908667083441985932329866820142621262274891108670742843618306315373026727351752235629626466093860918382881649072465731284176518556434414861128768631691766213780099691683157240260550531215897722395759545155204125207497042023116278858261778930380305342897674063688119693036307462402448638716452211890333478138910283778839216160236871159950801703561812239229423845239043771094249958756110642294737721632193285857066625974217113861178169978384719638805392174780978284056105079252423724635892135293067345226204929329761671106601302477256252534111378622692310931925855577097247446923957580433571412888527728142695126022276497394564174026692831461427742008274270786160079636902044959193242631488636583120340978366688745826244711590206373565738803753724071212464593396657101970122313837375307296630125656868058897644327268703080585001365672092405480034780850030233968193435707547285682092711292210760669633553696434777581319546393177528426559989379904110942645269807313797111813527728557498206250189829215071518438196378636609393393993464244384797963562302009490670947825422320205472179650106040866050158615099931456198855299401193253806569394948039245653305262237862716737814236941680868823266758528148650121002651716913256513373604309549130736663444970184904357848628391605512469834872181026539255219246001870594034755590980691355460376703669888331574189847136916863110060869168260778313339342361257798772140971014357307380517066823239308378284812483174460303377344160671171401356063575868258782174657527340619530751314084469467316594450454513849762394522048886729352486956992087842957790427357097381863013590115600044170346761597911384189836334588401836235589370529566993278718468626637716312358018708690119465592015522057943359533884890275227548363732587101469435821244144973751575721220248400160702222287113753178179570123748015468187956918444442810666123751081095239455930007109681392573365749670840072462433670538219524135262281989537776129950170965673080174061830797571300801930167899565890548919191654866929834313143392624968913253902181544194515923257626009681823441212382349079332438246362369106245257207956746793207347331185665119818072878282451234695292268740398006970619246810213329470354078735896933099789414158551164258786403796858593956414634872405137755849754404864500346589415483020557905590470841477687829117466751529172063690370805481769500267402740351832541942764380320020678580687003763827335267473759392481200274857246877175143447432911684158335641346240390175290395443989563107547967136454138794498046241955414353078556772059263073756211453018793734037541860152624211774102472260064111691430531132862290936467286364016509474507929307211648176477334722358592586893242103094037856591629798753832960584642219573761467634340057443231340919659279997949693010746680123790784295057503124065001250796777895705300841791939146235682719422500984857138895992169522979053609878253998718671627148675650692877473347752592795017374284607316550774735164410235183090916737167211662875305237959829326349255954931856753485567825322892081362906618734511925352540318844584476282574378868910270541978230588351691082458805319926243081500852623102360934484054596065273806778727318172962963591809549375437818883793874953755024176266961806113705697826739074269519387030498100908108699158313048691923918727196450272859866992053684285098230870437361595725442107832320784257936511845879882101174641453699749961590763334439261830403216725116405646939318053710846184495393509920065883710084753627657609774236386734883118006255994475324708364469073383624299246179500401796376565774626485732915398971279598642705841188421174324890170720029139615713460019204789282971641962474223989986507100617029756274441721313480228956944715551929626212798175520938316162714784704710312834168419024929032959062948213061858518808508230615261622965521020160423564629586532057905749388990266462997056098893006267546226405083505009161221760738306912708556282160681022711677297727230135556826797295361625731146403388217345321629271991537306836642030666916166523533935460724646380406662986283233906572044015053718402954627678407407166348734792122292537995380414399653842646897785631717425440969741882834300940661810153033894451298119800600701111734798082918008823914013956489566874065398581915917956539067285643757093693340314797444341730875641519583769831971080767943637272309461895782384644551679469234651434846639907216475629482324999365908006868820124370951405906699670830318826897800541170325205367674456186334203842419052749445653339049152819451217796504366846038384048608929309222747314934832502744016771246896170985738739145466740659933411105701479134574122660548550465792092612239239169279694464192446126792412978007365262453217792154533912893444701474898765530661233971702326824537200973800526043132983826271871998607779412844051046673163459647843202844227067433798371650380227298197684262046359508296236074296017704785581400474452812248606806920610460069035273865327059484742904899511661759444702576358899680619021446857087749211468548415742752098454135599835878409415052871738422696548352699418174878073473558555227398862041086471369413554722823723297219758828842889016433461083780106108286018315667042498454079464318734158068247509197243651819543167349210789591307938246261569658526849874547224772626793408688213284726717014744557476898106760868947674172189713315644958230216643469096132791881012521162250181949639307894280403116341333985920914993998232199761410260883143310615752886303348669716871664142727978564885456651259648079070004578405952512392856607919058200609066472818348390201301438303932444371945488828483125088210848576435109155792931254419165207167229883440620941965710446624921724851653915952274555406384297515960159496543719834202578475213551289710860189309937818575075231145123313482338271160840766018985387526712698942064425603720254420223680633503565328279288653915307767301387512180965122474186409043738885949896048832545093032304445296972074279636885401493398159796543168283581199478995533929466903164612798734202173062765206644664902573196797848731478152728980997588364048996209970040379245595395702294778557305104563835858255713262446086494668366308934252402208228043885120448052391740025154863299221437702120503248010776214437017662881736694592329821193404276589444843000547002534277827792793567090180737229471110307194834833108125298424851473678216167242384750090259114385395221401700634048171677101133868816978550026283941652964233734863526921956134115880098149020728135393806399948310599048261189467612710119145020369653006686507003630460742536471819746792558285832131312295467851097064707680920546889448481335942851531842068134517481291346018704402607793205243534976686712386061714955962037709548164608870066407800083574012970537047095590952894078051364560458450050629032027614517210594196959226899275125371929980044974431383608593746729182939695983364403737619643890911895704651787333101972122872067815177170834296395497058794588877697428785843640920927918400144006924262828050294908438540429463494546019949220123916542079006858092222133851189933222386975161680274741574939816038708932945610106909460701978607540705764313151237625273431907086347305769183598449507306089773927483856978663698257449944367229819158347303994209293807067836087284819350563938415222036383726825572191666673678205477499528064700534360529740753992156785343210304615342607897749946637094507824087398745716435844921908115689082052181579021761745307024736412548777125817548239185075553434593493679582750572527283665123655187255310541825066496384648062607634523879601353801843010352286019827553895966274418513111768372769488298592646643113438793249658105310485066451903290431308697182107249508929645688850491392224042897301725341172235329632134864637570770305328422939812130237260297874027483125827734439234128808668652929746147647837822514244870328489146336578183116514250458867038615361494432202826898236582662814886391314038424247557598849933355892625320411723973964146879269510687874917301368979998906659118048524152947736810358372229886708813107614428631601498571327202789597707852764842038815901680432471933945343199900779903865978244825255516433138102471567624952866081068396946705580663720320221811092561073507932453993760429708272083246456860544521876285828613945806535635859282360959921755567520799372300444419736214453377231936114465633057942090100111067558658640257422654710757118168531889375798639744023246007172137282305219945241130067293424911153700577863356598072631107592411914716920733138591323783232436648350471515104436612134597243261878950719973771696064427344669811602727376147818478670349161366364979369279472081518655815503149244136467727721470561338806908575049659289680307400640271118605427547803438787291514314228086425532482234446987468513158899850318260153907774187162537530494249440852192270892371462467204700916771531339914731958672420618150236576216494788901418397546664452069160357489820855724107287267097139123663362981486670453828078062654521288615599344979551153766181498967602127000236155988626355608407363288656446440053858102332684292661189963837369282151522609840951122370621246269050245175620444866478425023723651969461069377476171752640254547143981840566627791252945915992587680196936847386173009935190011658029600064094227821173558165607673562685431509909081567102568518556417364302976380223156173992162499887846076375774943084177124214060527376224050210228066890479249864312345037250570697368272233886271404011089302139865657797922901733017167261738391838709317016341579528756244352428611811588291500007405669271154759700436595981409697605929859219674719470185443106160778278619394973166331422060883723596946101116274402916194212487244264640253535207958128719513028360094025917471549827220789300626526201148465217949661639940668619517480112234555017784747045489611959222449688168003496962953292671128968588877263225970963059498876152988180934331737177197588883124575768092284119298474987122655585227296614554625821340102542004553387096935151609087114843480670746095655213110308296753418610494528103159413672910701203711006691327066721831998868217581480502709256862339326376596486942610655918846740007616422735142242410030833109641863297597221664108585366802475702859478413882651596251165687228075088575534720458083437379322056256952072606993193301495038721304961136251627535878360989734996298477607997616370221980415110203630219808805003664209661271916776711719598033891879573045901749803497570049419343769169008886055559831393547646214849055613982813707673067969693342400325190220619626757033891088427262021859774814996695074808303466518161796283686692272540114062957632626343223825824830415451763976511999032204645587781388869874507059303115863276667652815439729798573859755847252260045991614224534425555511661737783459810948325120688833139296920147526347881233034544245203832688395726148138802318940322727502556156373195438891006178368724871539496203856178956457790719007583433858859371759658650642202645893723668059097783073450439684390379267800577732161759608770335690695689351515412923232979460784105439279359191860226130513135020215236587775360303628081664393730722209343710341738885638029797230871900434844956948174810430763780457827055249882943318988932679806501778598196216338853524841808039195390775646471192586515380025777471808566141902551864464526689863733196390153639725810133264567058197452341170587804981146457693786496597269076449344976329498208410698824386000649946237663107645722899469484788032155016481624842541163525069724739465457383601667798359807933864265060651411547725018413110070362792893854975758422101414307007642223442789167357798313693907644833081418543134853366724503002903334420066773500339283989248010240985537085168520550328782512517571645000237569352363650866357379946608986535552481199817025444229031742847347576225119884390828915690868975727247562090763342569559868029819065428526038422050622502397288670057486488416892859920653088527307539599841976471229161954244165891743405965940475618154281956643371837770690463338189801595838858262333823809514893238905556298498518003403220469965907114500484377797692224731277881423153969690542935137358094440934934258003248458222823946886496021081516434866937678391712985960482858091685672156866772556911688627943688749999873459685271075113188741254203818270109727882229788963197399507662942334903724475866797345573418892223908053084056504326269146688996416184405918418388550087672837755583139120136977262316756195945042441590115979032327559362999642559323024524749319425631082077780567106124510960739291644097010383186070740844288092216703180116721546073068897874305136549599590702400975943491206716513308655873936484710240298541949371625834560301655376309357636889823301229366731777405479118027509100366196309805374372736775944379635666449773423971658844059526689123633687444510084741668768422230321130978900144565881940771929805922816070800160707372590207411289360277781022588999248702588646179524947713415127310541552968597194650706446963783797715047440457716184773358212026523378060882712620930028676219970112726075334463251971425877343057714357630581655724210410799909987794857506899660546288423108982015646870474762686271369547857321831303892818643818567289901082411331171217734888556085065635988672553534148146179134281113067972307105457555695915274987536045145554241766969633216479827864630166377162304321297863623524762021638346430900023565146144333160302400924745619207831612200480989814290701666582316311319237629330641231420529447444123990476688207115932437547456775208709937632938128599238962489123400198806180845448536385836660827682998277553604071745182801987710429229832043103829078420875309560462077899130506600082162261749026941381369343497230081229536424353333603958613226149382878463537482236894554362444733110961034397659321449646174647090786232613068527179954994279042725650239849430571726706998502618274331456558048702026600910692260262567705742809453357154969104341792014783243436238068814251553845741783915948848532361993120316060187861904976878413779609184197666341560027141891696245666260714046689203548418949735912739370673015661846265626974653458434570266288559849347439143938098759882477854151428666060586789010707538061397960921158323377913090368765904816812779083954016967986773978619043651906916247830669406589177019344644895613055287123794538705788277007193694260862430865034765918035061585947481486484437666553357575442342750792568527023841488109854083847393144274124292349616289581406290729002627582137829948008938523826963510420330182761264201115991004265392640772843735816244865373744798671649383253583640779623610951483795294007113143001549411188177683007426936956085960115686851725118080168768301823407775713408240174154043493081380177050713091821051854225365729279341825356677299654733828937044302234570217150454958326645442821263408761812059499362141994149094083608911805942318768312702558819684905758310808888036214629474157276411530726864400101230136086655662092123384958815027621460990160070409550263569587807296979131131120523531543414538879430348366653865651563699197311790495440668574760196547720413142353338161816056874928819054086978936463838443930133031857176902423948789796647272206092051612692021335435765208777752788903371691105073261513105754176296123758217150117335134571945056714383808038847447179033802200855788802823603524985783839797967625905539114408181764862795936790033529471733196815099970171143890436835370528551830668117713766743626477177954189856382983624894609662378560749850280928226587104922835913019961549191808881835321029218316233159331125679588335995026588826023510350643597931126328968143289541455479798645573908520515862070660004867764341684944395653387740549324862472784741578670972345008345712392155559117099438326985395268858845253073836046968486860038569188000948027706582821221115171654957759074120501688321533753381234444478604423294756591712878769928875278281750185867328630051206114909673022335958987214840456937186577253439090140128155433414819013082325392487968048728433139234760602262451373115163994748824317268503950161017106495468383937832690660455373875411421080671621969297204356918559264220541131429682712166700733920615807184897429767956404831898569802040355795551987084826581997198068710317619003460476321880487799748833158297156837632034226983137135848995499475199781331799358819137433917645663700476034278999364697350415253510233911680170852206274421816039874762317802335504353582628058853858433520523902173072249247717361690755857306246025069440890881056944283016448774247179986995508853977548929779046550024297874912027135001340862800257957648996165514514673579508079159763660738388298590868220911051724897667870644646662749137700889907428153032295906003454197246155097088829054352987029217644893606581191255142487332727639097147433975481751803311086183153835935885605457071654141004522918912110075854488286470723132652286762934887118645888957693063891385721785396797572753921405841438709680046624393905766166007036042051618776490145443828356821441721615448432398573069388461697555346626300726927689893363221225602005761391306239238185092427897757380597396086408090340151341877099975885738598589393450991434866276028513633147365909127030779695616920636756353402760328021387029089735624464088150347379886759538024873619325455912637599056543451708452131949899411489675461355323888549711489466000200161986472007735755614751337663619569794522957747022188579618083729349780850772792290361146940617187207794323867859798779434305076517087935613834432144441467714383494115865163022176953076249555811042113662793803858850165444505137370300853739829497311589213332841593765741464890220412239490645700775905395405590581134311814841144504367609915091416301757352247907975962012817910481416509078329537949517323857940310993800656860482321678603330623444177542683797806311522488387108751524903827920844108113258267723977156080014662375747959210588008360535270158745001111896162436614471939014077798098933179964724203358003072386413481204441858600918378284199518536349704685491087033401057972831943614427692960649582489459464347364322301042272538543998337791029762600478030204098218929049828577198852348966232593483885650913896501129400301098569503326822714510010685172514935935113309124933434688444041637034288220793983253766424638539438402662168439006776256757102768039329777478435038395640467771170445845796124443050569858292487954536676800455140944170587289772198358654870551333932540166766848394113940764227103993654692643009517277345200432738893335829632069444828256607373756883294465984963784943972838541896961540834587288321476324067957627363755197803951606647490271227564442026909420480511841845895902538343451671249079901225667934654265477046112452151000222899566974967123069606585880311544131162541613200490020324410993322557945111080458351203273211643279701418160226819817786063307622109294593607699053059961627339442407784967965700934927830197473406761102572519278215237983987043299659923592362720734274436461441379574004551575566071838239875360955311600550849228079976935264628442847813701695857130075927357910821130081900275357485282690698988869972757793688518541785666945967104452650174081093909686239376200822656634653916951314254987109532593316976428473056389675054173547212879274778842377067048751614387692895825941551352964305144943351489621197780056687259471638022251306413629245186556544733280470433728061521306270241002772585732651046578133055349403636124606069627755465622154423202488337845970754296111151843747357963803381497704258178930256571674906942862228452403038312324364221124179158330889552370271934693053035752737848172213115521336192523106658474753744357927160289394592628883874809125142939239293250266541262553894340341798787995157109727853457217994012040036998861922444741355332221408864203495634821979185251427337492337013280673721986087370949733348868115901549305356058626956496292330168926330412943872707516171497325332411589744458273803851043551508020386706476148078432642108502994287552746190855352007870047421080377017518183515592848680539112226227561116173042656629224507638133137273682829527930246942295097380969851347260037073403983066841410869002119967843460139465537597688893358279136616204297942078158795047433227768940093933514484708107993048109622430589087749333865589537187380177557248498103098770696386131033002111881609672376765351379279984378046374224952846608571334792065364625789591350851948678741222004860716946105136505060714965308185721223124221462283497553135717066908217066895438681894202848326501365084255675011324163880130000611671148745014107183743870083143845119484949445604461232354260501082999805638283278128532582443690331707160015268921354788594303312611853091386529327480106266802398937200349739884642545423873147246287975260697891872392833414058902640451889520601965838087487510353679682192405441197129578806280056015731998286249275189931432495386847639107628285433266254448674978007835290389388020922714083544110590893398576596599721500366504004641533636906492521080103053883583301080783040680832047930623514851758448189176475632824841899535505493718520978119386658261924645670433861990793570671719385311875833518739386030516649289287861949273903164019485025770450702668425299911322998060044756660233590221968402417814090564656455011681791256512659121423692420284922885932334594558671313349695526731227969351339784684878719014488857974316967320219869974110592616627945408387555029877623044580592245214041266851752691223475718003215083485220220235784159968675975656499463056214239247053886776998071960374631534928358811292052292089224567253906397116492763546650224061025520773571616612474293553174853868873856426818484002113832859188421886995269141955957681020270435630190437271513323791807324971865380308994436782686135038506009096067943947265428770840025440888788562442224950055324174978551432247871181497063750671069588153581108338847129035548009795857598302348399391778667250176853838791674008818242404642409172203653995708091747259115325310968155212465428169415822377764943219778275333464918364809837698627255038174435074275597331559867611151905469436517156232921281641130065810312058589483354650108966599599724560947095669046072718099793996379484441356511727741829943996052807458058670198745474379096517591790032231061382655742909773057775912181673625731066621905294313623523141142123996092840967501405269451534267142784391415576440680062126490042481583707515112566260422900967431543379931861660023646238457614993686199234625293353786509877567216633195770999123277242957338473835940985938241195688998095478953471658003383306891075157900385697115894591745959758410182231646134680853955018951313218696927625425201239442692868500543271884403451768815130901319710190245935352334073402708034047087906236917523550020119413564948010442377218007944972582876550300954164080300703871474240337256480325053350930984734351491119155335887136517529376272550620208138326640104884932823891069918316261857290964991475556506508650036587383365226069732298794536140662578860429093986627481504793057092642470323748271514345160541318036381915895492402799867849115842073285036632195760879632572974079693056279335319126497773394793836213814160375041787779799850956528914467611513915311417351631502956962241026020015891609516248678654457760758796902276316223461654194972909771086513050642080324780748479597303970549801492959799684753008648676302458861424788724790691292729964459659004084579172074159579379335357083795096863295775705733814262268507594080366509014966648119756710990175696115641017638601898502216188341355893893280747041032069620390843805370756180461853174966664326592162065019847265046105628133977674190497425858411234020849832605352528370542654215770852688748902586846834302098779939113268264207718318592869022620360523680154042303186340215547469283968637771470245804745994965971800708961944969765642606817826085621232381229520379648286310802961254841857956914064204863371689393137239146241963082406554853433352707893781559917611262634169792820237264738650615413996244635835122666225318727503290756437632584188984114026055002655796934556654688009967356929732016765035533869671066032977873796696620710515043717434952546398628320545387870003679134260268895550621925702744502486302692063565794166148725899138842554569385380593400298453306729419116508768683811636198716158659470635958150004941820384012721068472664534389899028976490851390112179937285950301707454175574862172267324712911512090728952298307255788766794512826355480673686238850012389520053284822913818039729155845353888662340722343129471525070490397037383013596856324787286089944131608746877558566905645662549365432326394734560664927266735312852337379819806076340356599016912626949937045996843481570255929402714178190076011922230792953465375440164476638025274390902114241862756799510770504577803713877430252305577523751523109778158084076831278512053507794513768427900456579101991558633636387229286332583329940878497243680039767903190305233756936520932036413680934934660197474528908180788209445436813841144317683226279779117760513126734029825315929087794794173373276035107384121104941397853198622661258689674073324439721960555424202167243858740265728244821331011795117171285482961727348951183521438574158320837853120977015597382715619626249590983387231329397770440966528938347667693528713703112597275832635489537250159501991499783156029275967978209151669304673081677914502066186368904705675224069635418650062805088658892989004401951233247806867409824847134465122910855345454640946156565878136000528291912418010629235292232258067721285840630502700972228580540656472593548463281990084978760885116248903469432429730430524807756573524927377791135700785914586613735041842748175793109579121476953697090692949202201033057291653468061662267430508321707003476122481135572080548396988442855916847364460991197142186836914498552762635824896997531013565436581175124223227859228639198698055872775600143890358890772315137755232213957991635514530428968066926568469732833930516059014411517681075436196386581109668612341078112917323324197340304738587574003703816616861365839387948288887842518075211310173859425218444209356824924299827291915983285301407904479956589061623532296288042412087842217822218313516577964579023875527103040163791148816941042691004057650099268858649189823559824322807835109681035508500059079447333100517623114152019994435809073250983898895573687378020140353962663836179248629147970572033400288780747931194078650181473405158693037202309981958562687538155554531150501726434929526938811556770673835583653820354738988101193797606374962474706269036490874551819395485165375630906670658796403070420360672185793154005797801962920137939713421834148182066989477302558611857359843725817453836345642049107310386572129132955451220765033539829170390712186196342483544940178924465449375168061607219215580195754336733895323358578499788445352510296616337799045339254061471926730459124515090075461594113170054164599641319146892494203711264634517280687882418791370709295918391246188340757416022797424635828568294348157195315983519317209473768563189923912862649253213379016295876810615933374091149698396218280434333191694795508171407333607342608303178675413782384799479378679270608760009953039952437364626923485715889729896937885839551618027479293227925960736203034073957283390514164650127395557338115933873685585123310304189041263760098881649974231233197420014030768257913481852170775957833573886760129273995781492446890296904165039349887052797568621065656292666933272282706980996317236165826117894580976811245584991423402394810303545496200944370769013558626411191646049235033538005681684868280614913676635702151385197754715089316919015978375656016224954779354724337581145362792192228006547252519054893079277441066399599300212728129002141271086749025554523642373889350036119930056270044853247440306012912656388240531625657739688853063722709975842695296574668934227353475949329802006132028365487001108284816747724471280751217609844950705656472594798177263919020463907095786573811374322183075632116722638840615362758104463303434959451100189314221357709850436049240251176599453619118900332626506026131500641915779674552467644468463827609095652721970278790049891786010324371526907569364619668544096718151745225066625397101130528645615396333994676215312236536140355388640416255628392382979934329853233739585004089688873088914972378482828876799698005167162394570702762854294303565668307446761062109983875352694881300206514682176949124330647385022594322264215307072179756636280411519029670715414875838705306129539359508654401570941427187944533519006449386767894858599288966033533075065960828377547379607370018002402694599090789576357217272793183025678341082527090928898242687206154021902336240290425576306803194986842811800753055715273628187812041180602191231965069642450617669027938252506387784908596693076577618008888699369018218339879706529054353945636974796837283702600004718155978107197015823730549988640122059001109894765182463366339577696307249817365553684365902685753913726399639066321148682022174252494356506701717972253375805159626930596907687183829564204782592343149039642926158928200412001007186901487644376053944503876696096668050822433207902578409238516808902754876490479143381479287511476110026724294482123752852944144599100880281812815312402249219273646412820507483376662060825565057279670715261511838702000490289600471894421545090160724039880449996213021900478446135397118081924555296074617082202194344781638104443088648845092191229592705444792436912685181904591741020543440521850077019472844231952672930054128582704092641178936692700500463259795573544324740906140917281064460966320702111051908315394734232966125493752162892720469153696362219478264273160021856447936989110237110318422231595521924215992418612126176597831833662069707811443012143227592035283674587582697936282268927316765235562080168447143663362006997098414887116337799568283680988830580146299630712915780353804928898643531617058445987153148906286702083912503532159277599406031191949746890244802769271928727130908945762080418403654379675704467804390288757848518962956427385929727483623602038780301127737393365706519424705803632118472652267941946960455816344700516334264531094261987665771081377653808821561568298074485046886492239658672304555774432781280971161043379411940881138738449167551813132870893895392498201863748766446084583045777956003944044958897994123354473172822455478984138779340458300939997117181599733771764145718803574808006056984436597817046145408417351362436708827444203034795897908376565454673941363995564933318299699995439475215113722435131115212858668182285712077459553501300981084927361484379647126921500667489602806589313164579420291878541832097741258037643546760543073166717066947021561901324963926596454591966244107947927261668155718628235049959919352364366078060824709907421594888659314151830592136878590039379648567898957229874244959316671316079851640216593215930686313796110167469370394778514181783900293271662098687601932780646995442447393946293008720581492980055506622900020241585875038064629664411883014186165340222713260433407530866424720594256746363912826349767814314375582952916770202713864277297527428048485532360548513174835820665185983679294031947124885371840088582894092949066744434759185841008253152736867190098885200533657948502321908173793469888597236252307131596429206690785366239756533282149108389829197647116352198143661210326430529816598336561940622296483368725555453092436854380347716282824916207330958049842702643376906724814293202346780625973986837574021044971536357367218232010912392735444580122960250607776419548979932021753090146002413381492007757294456461828852206625732872262016825815380167192409205965581637836963047676137302623518141571990478803348021173410342150167020100902991137278732514932609149572351295886998874967208555476316045021285053109929368369997896898441972990120289938845878685939183276294708637565512152459676484249452978585539018085026669091695980604075624723052737905369533151205517429915462944371957658500341468014176453477076941682542652682343829395941070365379966803608991314366795228529547739954846178228712509973538750915619194041305166928244028117030071291041369024963742441610560546674970715449643932238526979315206510899951195371250235979003456309014831533700775509779817981382609309742325576250768484865749056985303436089681303811038099399817491595567687662545416339659722856855486508520213093244014936476645039466185371471374852339309123708370571915814763140994727582194243260471450707501434925417872086593458126539382433385409083288971922579570125068112158134253030216722839682029004867071425186042968164509969813416410449065367769138391378524519193072876901721088924435567767927995707740217595397244451886879961500199689289919713247270904485580971398047120296761843749731600438008669734808657099348227074518144419305514697373535441883482897023869442100177896119051074602550477290416440333236991322057881593085340907402496384381168636717054822372411739327395305364857671133815677166709718798764548931346566162075116501919778654688662541588614797242127807851032856918074116259701997780931812609032358313905497368888189897230160579177395667935723454833249814518642605321641319148707226190547887456344631142958992896555119591319178804950457324235682305589387721751153863736615405418446313071068642066788019193918240983970163737487132343323561309758457131687722885615731774353649647881879569838692344893206090766832258078342052859991583631125871885491920332249317442576786845014794603157127048801707966485256331650909221462282178265234093429664264608091552486945989063126447093025590351924611394321152693042681945624335047733665414014234874344853178925160469513567915454106456853685680438067119905530085254212724872725529959307670099846763238655376219385974583299743947438388748397591181712902004105772379616009211194609648312261989582895957757078937860930125344705567765762549375370517168891553584877865135409046841860195495002381568768033360573669653307200090688526845293867485579507453003116732493785393122777110758397921140399836552486442206393419042420276537360905131178863500178389829342857636579237009903298026869500431830571258418373148850067283809424661908065170825075222201488068826556812889298723878125746533334584017957400983567765902350135526450080999340481411774773158519562514349589027449961941578073888763882046707802171048472082577843330768278398151953423533512640042159929553158931830264861148052266023014829003028057150829341695897660593968130670627166930669635165235867346671470817663247246882887011865502350869820791245614672569008719824677663437198011119942872601127619702909976139504138317235752300312566906672639263446237280222101688410005927524039680004000226358260757790637020740290891408646397224228209549677988172799911261270378091686128857380276878719295117193121865091596331568961882618924354731292792627487171764828373836327083291705420761797172523104813059259701084927139690490718424950887351424161048973823188586270876166454196655161207014875052279817321655318018216327848996305217949546576469233606568782166273772904207125359785922101777366156096363748186934155283703035670077368544191589601507556935121671144671221565438079041525277396139247854037382704304853074732010940742424278188258587666018958517254941577018807821345605065034050944085844705011950502156241032141851017861401315190200912981021414395645678078412407101899960633572205198784553760981102050835384634076818587927750050146365554551532527285984753981263591568738360092997461642751943332044762270078347891684297704052088742611339836966449552098187571625505193664579032206492849961749112954032187459191674567355326442929608637697065971960342920997428557495514624279023423645789469683711704543579551581479200596913469513230672761958600939017648207848344903778173997693910061253284233494899546667818634754375578667586191597522791403306639452374292167245201015389534159001388763169345831390305890914807764867943636647107492577093980792130039923383721931168724601647291149183867130317024088234982037862185153145536906171102007326579841731809154759985161173915729714817218715087856262366774748751857242421558164496056235436370620027489912758473346916809302083298492078949567081292945395065763824096075419530235900795329246953341593069199115716843844607826729877702085368726582668242539996513926853649979156925492272508721392958344887485741233522282957625608295537450612723490324720683800411200451781622573914592517852058839069977114309436811958635072976805904961283396865931464069894883390076569329382355987222377823967858136991063170163097149859878392669234205129599138441772741696836362861086324960675560184459538681969332535533060294495180266897548511198117392264933509304245445552044524245910067134144783983894274939624856336999563227776447304772527457093512413226663372603813466129021680058100943120114713392082410371235381827724324789828467152844089210528066407384550855837982320804576832021816850761371966480556831330071397325863623015001752863906956713662337555186939970728437004333026995015794170734183068059562500178884787803203049739481209842984870177003208130244260457977554989730635937800938422748449824366942623929658101536033832958309407509649850743405613985898176168364175518000722930470675858861020763780658014103037200410580339362507309710801920150668850758100069315918290784155661831882404930124742690098349363612039560629857071392087712648646310742792774040567097026891951990391436283448061119962835301958877323749857747897400787833038921418771086804323204110155840370826407520821920790273948129516430622625863644182485122650240547109378177893176016686105120063450276855471248459065815006402097017789881463745211385457337986488198405038339260249647685999686658951207196797051082316368931055776891033119079407100598877949371365975859200568108401064172432550132388939491101262797999720641683934161096658585907374015006711877409836398097524042572665098723711322866240152784349821233826462339102707207538642233194956797220798077471639556893071435066917722880152155733057131231190130995671637127522028689700558544016350189202010992666768307889850158093908146649932854822335775050378228616263413531061213064247755426198068379578792566644604573304711638330382103650944054923910226506689855102341333587234848482174313849870876324928012266506800021134030431354145397541230690989700953551270754736927046414895311759113070680633197356313979739694902985782928309016571268195610744201757885704111281155588725304328750360681907470395680352068345391804418584898999544151355129195436386601715918277015516826203733667749108414226691559192703078506676307747297991774156054792991842217414320524533724329110742316293613489492942888706702793380356678623499279005042015702281355377565479591728936604617816750788486099853595834998906191279054658072337737656494768173936337751248836791218693053106445184079278624653927537535170541141419199084702433705736509473204725597877765791933253564005889520415439798136837875531368251151206280093265974903283568233705718433055610722872630874291270920241281229001077066312438786365627903156690368005051318761424653612373543222127010920051316243775056999238403474565842762319549062889169130019906771733233757691066676590384515149385711402062807586743522981201695721357409073915236566678575590138378159478716152975198934028051493653951255836532693233906967618771495103278871631815480419400434374803402162105397720520056181610637382233593523057821920356411360872447307275170129010963146763144980036010871512304706978500289626887388116386808587503860169652186888334926007977511850728123343211463097841169187359100996034187300996144260768219031023542119662913732663010199527122753120046555325386403224542522930461792611606617332890342592069308320197583657279819027382976063887128448118816957090558136287417828622728424591925689678596708285615610703007948090892550791634579481368016694484886094410706563731166333810098429220411876716581734487491280807306475142935595493275975437745035497710971720423262749708830877548599079460485243964299836857901482540582361978385637023811064054600765167350174736730426253470023303524797056329815352552609516693830260429377253848604609285817911332142317195897663615862652317537826604761616245704869541777968278713426854708823283944125322802239153078994815252100845652991977689726282567824362371060772138178473897268771264885146734007111632017685147804794007278615409649132638187286987008247145430567630306881256450661501908127283344906130489211775528409377827393835255326602011741942253517336248787431265647248158121565142633324905822164361205406515134132269167242417434783347075920479351875830648820277837264971235504844124325149321934908174431801401743210652611985680099394962705845756468687261835033173205311226550629762883812193390136713157981103795553262649673500201103351022314710333587686792216869024036231582659687928461628579898339548058184079540604626233134480282047704300906797140045424091860853514824362716649218417294208783651215843562126294495832778400781123192269392821105850345846863977868861478246845634069692293492538837099188758075107832801719022347779079190403574715976464028466706806835568288071464296600826280483507640293813513419433756353485187152356374521569627157822066265274434178697259138368725779556247968424370815495387196712569867308399796963245167902565972949806354703336040793441649447510325747014697462221796509731923430544378539439027199007342113448041049791558261411362833876925763289559301845147705105378717597345888198407523432939986739771350736095041205089926290898799276644727738854991280700483653599250510713000259601208675201986978844582142883530669510139525557382238732469296801617428429691506567665719625139283638790497222462217969341447877215663849693757681297719883890772366693683981599515546775066222666442737632097296619896964714462723355183672290798319127013192588116468628407607377940357908210091980188826791508313412252605072058967624548436160642156856678435645671227988858260594478277308525020547376919572312207515845161058372815216698647976644216800059385451963754662229988918513144853587621824261749697866404656372288915282128482344254544619277363398281510569459156160668170690860942797737762870678530856929873887840083055569326238324461485534848575416866774241117244769395620857288078230591958856544963170857877734878847651908188767279081969464298322478724017402239537161647367745935214888214740642596057468300897204975261608017675750960124907233324351187645283194727878465496165886723076926341631811083512459765803694320051791627135053224652949771216953815403716331590579086351098527508032859130868454895225468988916719818061924205828743250542981403570594207547080482727053360684560051094330403640793944576666404503085697714388189537705865762318935447342804766739217577861376133706868096883059587768839770581504195120960792365694769459845587169266993095856571477453698599871930850085160114541178132411218059591576123315511348300038727606125309562340346986438128926639068985169086179903933337615143906204869303366871307401232441572027185044128441603225838733169893603505305527761336009981970376475591790768095867707882478147158868942837319467964454627055287929704458526937422456190732502001697120804873074856780831913286287333972865939027675105033980203850454719995835296161329303771241315029010153444373126148327951893202945934369861523905171436203658877627103006836211807413746329950505524785554879919607308622145180460112961239447970456553253852138999740000605841247580787068171720526576267639293233022205897885786431730393896103557819300550174881841187310321571200210192740967063275179074642503169757545302863938460743036868593042564965845608937474926024597939319680108267805754636829871369498557282941849804972678701498748232084293538349932574303442641355396003557495031781193950207184925175186596609675000726935434398784568839051454315131359290110846582579604990296230240635234111527634441985514156113125981995857062950815363103041599695502896025727536230771097419977788992168351778631028476686619700475945572512015587552199889780510738196800714681423780496724826863455525467907575982041671578805993718957371312966847562063141023304545489917314735580358309388511781034289266187855683522013139043955773464514980327014783460846521336719137862295641840893544582205585962988411748635800872454776797312434234152020736371668782213043173400293718308244431672608657576900468622994662235039717365153057131485308913407961477229339971441205152420944692219213329561648289964316062285469197655249249498842222837430099240266893899268419148677994234208915196724117767276520733775974275108364720796067544964647308723300033973189254158572156863452141173579011505104438331413327361227548473364207471647996323057355387583323925849399345346846411685795643739320103424370554996668369489664518650544769509268508814628249761328949227085845841208735335249762440634633512101852145869686243640568269431908189298696170507208101043036755792509505107120710728581209577652871359949419307443196577305791124736420905651753224881270968636206571871015579927609694930961874584278849220637325334582730473578323187000000418361981670504256308254027140003073973538175993963534055366445856776481076172226303730992157418587933422222028728077882771640575543529347042472147191022115961927319116999155410249092005668874988850275510489650681614336343166309336523234219162239426633788597714435284208470362354810520642885436837482943653821168073860981372479347094561640050381373353096173460603649238321451324775162273087469580738631686931188046212348033861419002437209539303980886136234321451796919097640973611955613728792005325947416956769970552203263557898134907966366739935366677823787844226162606463387959774916700853259967446105604088143667917789731405994339739794709420123025427528363729943576119534713343335277755802131653262387017927400683157168884947435845848164443447001339912983021836433687987162607349156487523025807090840096328271416473802346815500140169768795544157731501991576713656580682876780134433175633878270035576293196663398278492980343029796162069058444070385476799171616531316123321265883350880379184295582244700199351495158979566903808087193527348172193225942338072359384164356396126370449508239664117335123411191521164374314123951234263155918777594996377531614230105713985873052420984100317402421224633306065795935438938908047372257004784489942704387272173287006644336762358542091362013713456073613241663974743658579858441026251431029214974646846512031873972045651276721069498322767030847853092091149281772376571061626336574806177311688580305376304033985607614541405448487485400332908994148309764570146087857593710813505219189653437205518434169868411938973439062390464420491828089827072777700879113165148762044868573839422873158155486102812498260444900998914967497518322378614513667115838845233024292500480117520903083310451028286491092451462043195732714266576186070511356070384244888338445254027328313305344060519881971759961879770235611939359730006872976219946057210773493190969017402731088703503894788402489005888896239840481954086930532937549496917414024674356129854998469499968387939603602187722341629264865204492073457420429421646366382366133692104865328893766613461448294012454363707065959901593108133214191225391374002003750078311354183680403698959109261477864177693362279993556344203310681028100622654448476941248277495399253714748526891358892170448870711620022933051390010653484290985967963125173395106100603768584089791688923263084068896810212136097976874561712138253300137869412599103147963941728440175217450422794190396994984983923985789895572561038377380611655217610941125746235916291649418653666160864926561657949116818538245857855936249759738385869479826798662466228220020849268125895845564519398015697078823171751638931706411930315561734419235637792782316128231955971627474628359381691067355802807796879973441278643977139932017261845610403530251804514736286339243374020337632308449633651732444434991507854674124430307235419883237614504979861438355910846754732618211081092099704858087761347310932386153236317632718221991540437287752930489143949251768128776398149190116482651362649559933552504681242385656137761583118980150862228650488510679891483078789125696334800419023919650505555015136920784104729277035717408969698065493110160157795007010253749473678090863285710233988961308480498211542276389036313979377007314604193589589798011505804460447856776606953011664050674361662096496992472884683712268891223751967679443434623148640749557210017537633757865158239042191302561533075566114856104653329562627780042536669691723323146001150185249473361435427065315267504121291806450204980632087109338137047771090982481370008977992132966156255112677772481883944154097093668801030334717579465477096568087188969465742295893870025121063455796457754892154756168540932156792313778512642341707756307966946918150273829352342356632678389627693422758039548988086454381853777619706152247870770544716221923202679317919657762336970502631745287146453850988108167136353987082459891376619503193714889233551169020862399463587883933617520513838960459369379002944836206586445906627762181486799217345057214031184281149209084551779440073595698469542149890804654259869745080137182923140388808951272373592750911754541182615552085479503989860648699596215853749683014111575630372499067570085754268506490004286005532483875093217482330892671116610200779130778853181086666728485234795827722847558800461598349489714031962465372201549634075370187151680866107684595165261529259878069385581895545774830015364696079127114321239316216805098689772940997105142001500483123790621296467305168944163085087297460653090456572972811830900288749517919419190181370804921583275204545478791189394251081375347953273612310412954627589544573445198984499694165340143346847429665399837947846692599693524882991288390693402508596262251828258287382526328208598418899968328631682540165577602425456039512106698400581424268322969345106512232338877839104003946224442317804100333785185038082466028997055389376770100756455205448917757510684163504633502062368363321627101250462356308342521774308639675316931105611187138932807081750690289927440947187586064570895674424909933011862433465796243850968599942361236190707495351072812161916935966678526090724761044140833756116945201129021794475957412978173566132317474285227028741259917185576966150654766862214456333860736569453795402530942973998210231345934238318029173244071122052233803355171094629128985491324351273671290601877278291138579252364943989843264753968647566799675162862317017625491337600297503471746640087233703411997156773533772673755406725335569356351978449270695858444777261716498985408812446776645640129740376677563036042143587640863531497181860066140925002358606616881529882447421179869933609950920800472173616063709782125068750604336596921731174109399084412673630484569401584107456946632903974506182269802314021196319531046683427081014703537432418704946462064352488457535964610032832670944195668905352547688843492657596211864767979571518538546188755713833100959939418660355083177983910876244231883109842551502955865087013765640230288933360230846005538984801826138952049116081242162027260035129819466884091340407295622942762774499756162972811636314837330424543684548281168234256114730216792478940357594036050456109869086225901573179408504925252969411238409795009645668761116725826749696828872128111507224321978743878496429430643138847597526830074503888574264471445978333859863970136010785702786397564132008501837144927904737051474440639841370675618137867367787744029430951018820737506869234109328560427329033932167746530323784768683114389170384206376822483808452376988866223448240998230416099435403772977552236152925635903620781360431386431594450360033944222883208716185290414227459482148458966813494555140005577866631386848147158381365369317078190554120819883256734767444173736336185520880529440129971402869855414357225519850270561961770361317379576075893735208753587932135430101765151518830715356262447804593707649853928987804712789877386914568299657785650627655118974884259843431740582246714345668037921434537976314623157757838563988484616827727382750795186760313873759509508869510067892856339606344628025575942622561798608235070569478514194900638619452140882417430235846545448687843009636399539927705237110941966351240530171855197589251752089608035647680938704422859742742144184925752032349306670472182830805064178849618140780555788433817133974921563356433244791055657538408639638028642985072808336075135623650013861061996166812738168237839748856872101732566564697670974172329318751185110910890094788209496497419646898139265319258531235685607501874747662203411738529894463287451877554746106540593022396602980082558061765558239691809759804027444309403653058546981782708981902065267083442816455525845067416210865867396322449900954542053444945748237655841432157026155158945710671453968766068374845272672947744889221229824749604291322408842622072483398555014054631011030428175624225257888522777577306942170615532908913736630255382275762292947260973972186326690943283296472646475094373128668283752324668235120406700773997837879982535121630414893671077911516097347524830009563485851438444804190420018294246820373291733951257725389484417418578470757172294233815045931745411150186406587416791291761989127596124077191536611762147854922722173321520740606425351569996249459034809568745259760933424806788747337640710137706813545886875350794380764906202352129922430923860046722324058749035985655578910929451770745560876435245356618600625171848663338848022946070386535372217032468957226517291422309178008993595937137738632773706728022804760337285305317709741669019041873601491658015646522840822209748002095812837966776358920709373606829056477758761056609599412024903869374942668426068862449704968034104886579647771315380240756087293944512515353620934744626784636891323841815313329208744380276245240729673634854828101237666895554663187613235876476065272411438034980375651963504303012697735441333050001019873248614882982684567082434255349759336780961410567288108001652870151526109621919989638197722722786307745182125372067179596959339509383200877576120723767564879576139274370838565828935779577099957220306218699222714134207491606622956171746824279161571867248681972896189866361177593016579591198460889054725996764340653213743496203640061079213753505637363641614345294871078229824761074198965009274475535041452306477327991668865742516433493720464575249339452219027988888052730954196569164971579491373164129304549649318318704474140711481046223279669570087214298716531647089232925630494553156673206526415305261415182073769441407063075559137962857530661738990997167962096461694032202065871742992069467203445459374974881579615048572022840378651088770698525436827978611988002919762988619108002547610150089259038402815555895732487876691686630138951402186406353401233850724267115642557576515994541759281529685246056891436850235329406969200636619609110280939033330180200119411836938659302432525969684593603919169171141990624597856360870191477454360671420047385790518958260740386972445242572933055723114874216080815260378148431423698832218417153666905590832320281203687037184711207571394523158744124164945985881456093674505231279680332647764356477389156527387606558886424187783309148013496418153281885527448220479801468255081832068716955352956333580381436289193983574782493819807912324415692729002625426096335871264479295242619229637023553101498344278175332285301176908664992237305191505556835009647581564700084458171155186369293963833352938792040591942247855658027038242045489774717839941731958827083722613055649641136318956641969441987604787517220001386702723859622750246795331911242904496871985479017182738659024750340287070824361234235963952662647237396818733824052044977718967426665062853903268202129327084187644037589287049737904218458040769286188078810179737975571390528306875385981044070047048869973824004459138295010164155225825729827817834287741413045895915252226891841791633142140561670925648324138925729231148762573514833437331141352380321743538751156927398422000372315541339357313332111173247371746357639236273164663646942823999775500557226400411558898701777883881847623642440103228094134509204415544585379355230211867497363381122641241594507579585989939070538705699502145565173078304436281743347205232594846042671600759235894039609229202138369033985826627592595231809634878595346145055472873219417729299055212096212856647709076046714646891027440449488897099909416544937030111751797206732426096409546437380369987630709559827777041062543175262984630018222561234751478215117124939580323346675788047642970285073538174440659603436574792454410281910557091137275469381325982539656540196824276469371315119796608420532985941218683571721089184986215650468023345134697337975271970583847400174073713309285757442000423208238655817822441209207881849934663938493073092979024525560216236645065142285063937546431989114219580432192668207651331325572475113498320605456146217534966184617159805480061038149096345870328696067161248049088956920288084077754685480575312943622431109157873373130972871978451477728809937254493933150450802801018657469649429427880974207535910147545364722556528864678057093498010787531851357125409416781911309944388563380788743121351934641754891766831933090503295474190778281789258033645016436031616411495749107742668787411519929228654213205716385666861585466160064632813247214524377988023897671957982686251539140879578196249131147723402236279230785820250256114538037465549378279434263927568185891685820826626254771692904617314071704600439929411568759265912920937172247592363812209877030209148205290481616432575226897263713921597663279729526763922602841280050390717955564992620721655309622095308531842937900074946092114194644716032451167485016307333738996403966363013293227299102223480326945106084458725106806103020530506891451467347521923661925869669793366742341718152961769827724273082774028535573487901894732573556788793836717287393831017166401484044835502872496499449682390151928276542218465463662721155910902428286552641767229181992856251998169028027989143696749722753915401569899974178287457975115420748759180464037236505352883802212645140184548447288308226095870315924088676481721265734367839253045868564605408552637014006080134106802373058595556529944205802350329320162108914800672474204556395019435102314275078387648304710022510906517762874717299640048102091037014899442788717294359909071754515656792423137130367834323462251945605814194655266853505938826336550638339631758361325838683280511563548979662631288611785112655856371248483515958136527629866097462181841623262528144396833102243736783277442694499659113538874591432579986977771882530280700309418343249978329556259236825921757578137825110554252308330243113128798644259267623164154173404913216891748560288797823386398181777999304595898920029689957254084064063258803366569567739536112765617536348815810213630808336316574921075173725982020298631117754597013430428706109636304251620544079477979520737541361393233995300388242052901921640807345730955838918282319977682558497656000390432589694951359298714725415436695694738663036218458660551603642339860621059774455190247864913890717975529112378718701788075320369427275493940480904532466032174812859713850432512310691869033970317605837406951957844804036982785626494617868526121504577731621020371168403467641535388590699436020223572026468736303453684070677940828779252403536785781744547460576481141711609278187096882918564035808552183861723881135694993990279482722324414128862703470631153231659510485187686356374912386777868973473373594177227025856378578470925630618471251594777048829896999558543513341574669033613487074638593370370216196834145312452384437904664190996862581809027882798039237383277451322057710863783361181277313620823654635545503479235537763887988002652887357438287091330378069351708741366100291120435411791315664616156999984621658827404506695271430142484968755210234338154829050894660288632166031364695502004886845407194724288346089285981825684738388344965162463927145958580976441857998979629698774133973155103578075274278378340629723806467626566920909066663805094728649962121805157906045775758621175270562975716437554520457431684895676097424225832200591962960204670306571271161560420312739353098420654248059372990928187373243819995611247570005953265186074195768118872699792307228654848198640065236154483410270921124154471202072412602858087873837334606207661823307626291499873410482494076301575165585227805369033263412142786749921566710678457820046038663664376446423268257229090974677703219323511719618937761273226409103988198999595891837849900705639485607236722032748036359523345111638404156235557363681750377096496765049289895079811493403275965003270217006249123709707387449751878736702023566154886711252726813624268095087803028052576444956314334336685723213281499432681065661017832198956371959500094624491558235657738479128529897767822761807780016960868066768468671630371410668502869840239976486934782441461767539912621264998907576308573964642455904176486040204458382971099669272607691065613716060586153822009059178089866782834025557614749905829312811613696418809725536602525373768880756744782611429536061001696632712657025059595692857302327917192463438948329821310350221265590472002268013932265703502596902202830743207056116462695016592638752541691256757543124844864729360850221742342194308679257799279226466119759342481550980764374953742770144881133695077221277558622260679553436305402994738552887596971958916367202041837688810844999827947298815778781207793712038278559827454821635905891071619658477513650747588850333448244729661949776110951176998258632248602355811416315591631825845671559318653004197885846205052207420687361717847556426363849707598740492371761582399656961725426637704296185158497701560254009626194414643511859486066885382493956964711008599366314930476688963746145622921944455901788697038609553043079200059960757552447661072349921771078264659214195991876676834367857031498056778321981828163200348018690870049308416693376412538076349236589211486889236018640310231120734440238463279833354580517253083031523721995851946989606673354134946425889336772021363198123425227628405594376297786578860208619442757393842225836388430684295188428508877453299284528382413570187563199744356857700637708066111975514209874358374244416901367621359403777301180088750738762017588866029358662340475314777812577210837235759641112189818954127573425966675804161504125680395264336369657143653379268744330134854614402055693507092276439205165896977007982137069983916212889531704817083699428471558714837022011053453611975800663033835625341630639638282848349203084615933460381261137618176841619043248961175924854258885110080024965135238482493989440530855577988204778882904978216660897369809558563568232502814831227726845300036379860197601481811768267354256903152676815560035664092244864027493231117574605588442248765923327581516414229656014405016835015732875497159341298642403078834523379580322798465552826556982385772107004537077044231054769812640264241761894807293466021296913962175543228416517458359378946757942532401369764621402706975337651527123597130494373130217125843879131304456743844820070202539052978053704668070926977847314536928708423605220445045225714221592251152224300437851165495288523694407556656057562157004579615955549204257745368947264088010899818291558265720338169961357865665900664279989810193169994430208159119816087973091343562727325362889865454456093287333689512528333365595964996068970555726452736352227440277657875443054213490450033139681939694841673549062026053157504755544603988753408014730610859357730414335054842993393293225738512954431808087693684740978434055341108557478981712927149327495044384060954345192355729030609349395855558260050456010506369966507919760954404757795957215906044879609218743592635389517491218443556891084494572627629404237624908277468439224416762326377647212983096500436704869738537880268864522206005124161917870085727785695206632518453123596953842630773656568398883290415477317359708640727548290982578654632351526234459079470873517488520084859236102816176864238722682042622647660065060355344248007886630194831824708585372996234611070407409644683158891506803362955447390202985245261164138742843549954861500702574731201425796937442839272212625034517659604756947738832641709285081658641359424679892723520103301694787032761463420207179144923009796807832361978577292920390994315017924473365158053865259642591432582982241338696320714637822179254757400608370549451544126267746233315583062788687575954610528284109217724463292173416097952333447227529803405412032497300916158535994775926874470336639718331777500322993927556639979663671679660531846554963727272556261557671446640226302953942100484457660413633303151574173984953161283844114078962302167019504797144144393506044479104730724068145202206464730529295242384030960847279368198216454608409921202462343932302366892216091358420682497120319356281831002826564659828039802625787970222679035323572324245133237733269684463784424902260248523696426234683240086416896773466144852587255170238601394027200494435666692700076260203938856746644668464254517282733684011672522764463814774277403357466707073910684276229168668392315778634954208525340091355889261684779194613119784743874794184519617014931035430606045985862842286852945346595464290424379463272734150261920052805467468490521501353505169041598976723761585457535123146540142907311122074124905708303162596096929235737975716138144993810275378082894262991649324027128816166205975610213933604346700076660929619144387421275279792525498425704453319146530385116622251037486127665451614668103591120636593632222968294029397234268810220326644903612609298155670043506536577998276877506633909284917450471406088890075785449954568296070477898253582328525080449302586433124845722123031716560459300303928221200364743945863589477180568775318762472030689578884387338853595902436693452619997399035200604874232787098986540597916252927160166225254755233092406958425412469101887967193368569256963956426795984329065401329013375918704928199970033784009494638840436847708861113362109704340366210474107480009973711035461694567025484278233917155574866593913812996140316057764104774952069328045505381238281005078326662879978550712640762715303473970802290960220535855388287568744948880150834434528201749661227907063231543009003516788932504928386054812463038225455077327836083440278099755118824613360052253777776382621663112128411416740724821047591172278789425428466173207389428125711544022322375602660852644845858963636678160820987284343701955095585846649925446573035619922629997475989643823187724271058399309923280964023531891165120107134803395934775705024951110344540867696691519226671561206994575337878644197910504289530193384514895667528000825322869505082126741541699595154870927548941631332367501060623953275247928317098178466624180061303298051850970638348011599567474188409661963108616607230207703593491292771980340365002477588953458438403247421946782187542232153873490518517552677678280580017148149566371505811756503371603759731791110161995733497846391913088287972413558943593890691627663530148536357112031500242680136254553786974637601697944523433076455138039811866205617784543907760581408600118182317413324888888652021626505244876817195580446285789770016789154622904530150980628138905989016671297416059186033665747162896458420172852945239250255380599563653600953473923527806408273758770292485268467014937580957227212144797754078125915824565693227536082906886551028983001914803814765428202471633350229783586866509938343397969767465111334850053366555361311652484842611346824306885563623976126894334624999800790259473752745314055719652783237766522895088222836484317131114622121644677625567432232108284377109659811824180014057021293831351738610646770780006487172147569578446568504638864502317486813560161071788145475437514473543780700215998246162900203096114704515499689393986727298348432247239972261534960854792918846140240294657159216696994620769542323692472670572064038138174291475577348696704370028227057538851295568643047040728722823607862597541366058257760682118960841512213591440831023154298000159105005618343621123939998445799042062888971307409533245842681594144868298694556660923814521671002456793781820882418197424546123654430916377963297056380691088742901411748708160708541735145987212150216182013801216272685785801380860052120248507306872266148722011982385939256817011434732409344980349916022004750741916010203842982795584490683529947924613424262590088012466182933996318370354007172074884147394687331026020501913854930784947356736960328886386081607381597987817215765907281212233751293911875789080983010785202334213645672746824984695430939022181050515481094306319130975894850734832501758742138339653095168505659857233438110130161358144612204764220346442757621280516471852031022776611729301193321116616987226727030797168401552537235461057674253810418798209014906685553055966987914254999075496963197562055026310372381763004352483155025341234033581313657282113649670643607615479744146667300456749019978035576567519220344436584525461204748566584520244499367312405127960262910713342757960452980473959030750048332629763490201158070955705135395240310947846904419718141620652211961184820244212898109334468200174779916069964420354907912286664299259635569407341320703608886521605533054251211928154700103084987255400239975611045190273609068476029062611970765444463460825778058521020469112519284402495920218209757045914524724706659606645397549959563574125871052998039424878170633689144955262715606774016566082705037058966084557249815459667317717934043348049967660558249745193839678266859847351998776023522777727908742709685298857713775411600514783671091682089324254423054235836490748443546388853676146244296921143800922706168879880838075878596838751567340801034238138452333704424447680437782132825706324024514762533467618524683924676042132343596873478799305571990604338984461600581885335874180525144294506960624840316559463143562708003845877299134156512754393267386333228930262847698656488746282519926801589902875573589831437239592883719367428624563047449816502654898348270564706250632491629333764710219497747419355048533375824904413849615040847147525909754671729902303713126615384436356632126191000690625885995857104787769525651069017189727486935096583947549634723220803005146951294958929297778728497572930781053842279098463669264057790158660406519041559818563571861772272917271450128867407716901676378387057591175100541771685360405868332164805264137007532743676241307124525979954947483725307445758288420667693746969977619783714539576801181063125392529493453841162383450455142998669230601992799411386224002145596091970721651747991177191413097677699552060397893207855670751616378922341008529489377927094893654844804580549296188979065240323020367545020300514363597758980065555040829525367754156929762608012829008397755362033154416832941086688821118555501736035317618917100913406051943431938493050023387077273425728979115086531334354257089094629773755805458662210175843448223840410984134435051123577561542582674321314305112266628857557110618347973094862688634424717894409132285337087003643747185810949596231901244613367057823292560042678975039650479802939719146815929611432123555914854674193972257146936363057126340182154893920108312871195502871986055698658001485570591232269449473301677404147065942760240673614728486575883461473083648337913060540304931884476833209104082403806344337558260962307029251655704771892227367556475348677032861407035050933832518130867411879773775498003808588137408485926857925487311478343513748462486437002619052311494922296437470887823749554690279059129690872010023531122858272140258508310177427917544046227324804945906291166385457080339794410246490967716103876099955881912478357454703668006359958308133199807124313256413097284083673832612206551845011456503903777624230817533893671629671347086903714642555708091941548123476273788790591655859513980354746543330633786704394667670102068506828847627799083124083828705341737673073203385446390121801835944254929162343739823293597928574327862344698776484314294359782003088907971120860878507276181110699103151476927744170001564107683725771616891149850470731105198605750652295127683977210194758937198284176737403933163960157547920253067238508317748681559330132840607944934340860905440784238851794362804020529819881707177289941364016239136110888859740888043116858757280688189923086835470233840803393491032617091380303086072155439677333254519768923375744081286885359209142985415783535042540380455832390508320580911673591223114541888397168310843886579539467125891114161465668903750475044636146687970911181249931391388532449362642604369488232820738611306601384604639900953999769151651901640877084838356456303789645001441474287273763153952815569415069061499730706980619633152363514980106713964341118339126926437281361130631228965643102054926449207830346366699380514781406034428656749593765523855132113971260226297908250597024210821941133697643839432990011198023263671305468103271044751133626112890438372904603400290867339134127748515163826803751094952814941860904366396985517965649691571627182180579857957084791948466087663294022168643291384324639784771842853292800386392592346506827253325749279001388230101918170993469183776179309567817424225833469409696122127286932051155113561342181275945339318519351910015163920176587111781545014674548778996583637283491365638400768291942041899546266575941316046331650847201166151440342634921805028199838254992665182610599111938692362216615973281653460632360878075053336536064525160491164546853027586345414278206310648555612327890669305931187111847861308888126098211618608016793480120643832411078119158135798847420924627577348520257716628389640915484876735468000512563707509018369820374307981260603705760277411272313604191367334867543184008219337318877874470549901559656154801619011865334761676407528739065360163978699656710832901222679376273194309008482642356937267725445360838231732350971191341692881170770294950680730567686653558505916617189148125813238200278393435530399750563121048411744212243996846082628783878604877046525686444877606399101874723489504259407685020530089288932953805310716172237449851155897594123034756268388328927115223539382930492387379997872471863168546640315272591873923220438144332395500533100665305802474709186605255470157805994566009624478022386569014024687712412207840085467218689391753268563992443910743052160842668840089976898606157340213221846374931953827828713917719312369160836011656710432297637964460087084267517241580254172648765636297978207332125436938524151047385238866536840268601058992526248823277617121630015018152771746080301036870575970102854428332787140248645873961220515784310860271540649714238016320425965752979800635859561225167603946090008177860334461509493224900529858244628748628214862293436432880129608151328365603126373682465531505281989825159123226250691052942213397215811656557279063929336919831435187813086915061974105832754648564431940883375679201751842659293949967395512243465573678214643490785833817519933778647461278969610983581607252435757121958452828065518018071407818022349640677291259638634871911254756031191486959258542058436841430622259404629559858085390682158299447485331420536965318572970086995235561042164317712114915049025049186837758496616816359423291421165417315293958921026474962231863697932005079146675979703911241206447731373189043593765651026023728016134144372813525176614891478411776683891876757575954807339084093051418242171789003195447242550284176765762418766406282081227885715675822358421567682510474286918544255442481012022714807975799725371414530104082669184351013604690887204469179548208396436322907034479593432670820328993537459005969036088659438253415496895971709360327891235604815591330925341590998966777733127730201255427334267741560019972509525692823058527457796924854398990524510403368041826761062619597573878983489794630098311360579893105942619871905467888085920742886743724725922234883709451473674784393442473273707381911200638220912991971747277388860062051968323044303210962964749321724924548625467163920535340232337330730869260518241847002131844203565919301887792358634727436066386370121596352657218044970659296982468777464638873877083202993554750010066908742745263836669200569096468931935757979880900120053268089045066570875544401299698414788933499096064126225575707138835219598991731251178384807196930979881564553792907145899681368246647398272902137503065205738201951698652095130902690074086467016060623376990659749441033454970032103257944602575909771441591254722339633019355804618419499942022728807191968202083720815407899641817576984920868275681964096169386662985728510444023008504921419718250790369643668526765556459327227246974960762010153242311719227455182019894574781310964147729657547042447867428372877071615686033247273783225013257591903834789200858171527224507767428210934562189806133675584590442359632503853227193883289801521602007580602542843770886057580372211828935897916138328145496833483039541457329779000016411060848561284734521724223494156611345049506701848830806717820343009050002026453680122623714260956459281945362631848803758117366490505497075792479228482622082376160790456383034221150123609627064189275319527899359504089577990208730244618019499225197805780953114261101623226233308906045767354507542091611143343865789253022420677825185035905799162833917625352167276168708552871400794878113361299016941204017174339905198009441648317407976883537575247642121543296438080542643464404922153737047554616100906797933041893057372410798605255502699558962440513065282685237440277021008225299757873902871942234361609847995704039674005720626850711548311148369926033991412710766636933082756474477667721125671974327209839757679437806224542696346187611520425767404463960101236550876766066870228509570566301613310894696727923219110711903070756285215765286276052489391393404175765378451686091080543078119609734612570396416426630643779719507216347324933022308184337160497418548341890829318571516336254613760223751993905865151588365806812921401738292652961164039948413945554794050284260486379603449811608313029366232009316704758918755814200279153811249390212395758746122718077225784121036340799475745550419448065869891855991973387632424442568505507386761315837628923310899825566184239050766681449881987720214254630711510707124894449063164658374846168347652085646505184590106082360324249925213137579646365939043480499430084064913727101200515002570638299912020711628350983336031631934069549815229955372380756864350718489476785394002138628918357499911810693731475351810766091440895368203251680506119839285004578062119866315062834867320183887933175605275586545905254183179524602862676972303156047709830109110875431243128426033134656661888653690393836306765832992007398078740058953526985961909748754417595675963449397222379862559288422218737304583369592535897401765384084023909425828457411979384010613569090981326051602802040305012371350357913894619494440379793606447726379996544876478961359048780651673689205698196647254781663170454882383468064039137811815393706073576109151829253175760000080974120838244902169723994465248885262370814703881620655572082523949034346704307708673867411326566353339790191852827935715718218460987330773258251582755022383860950514396279752570870248367730893013558830570527660269086244527285726957678602194673022649758764103432331120058567183061070996626208698939673942017223833985307236728911960943620808847243556536858506901058824410830535092649190597776996339604227522690672974729181630800435627448078684488356636399623574071312216123597978399629539846663429545015742218706075241310904651119818955839602594611046640914112750903717260413653429596526883884533913403517241734788827074029755193893698177651710584061527464055191676810249668192181105511269671405554943303939848863061788057414718544019941460194202624400331718837391582399893554140761362061113305713635788061431147224625906623299821398802663785207720838159627908572900926767462029767519128816545987345512619419337485255121036250577242248733664872692161936168930889507138207562964596774955370319640570659957641857322453542954652552756111993102044365473161390349780765972098863044073568889443021188889231094020489482655148870898574840520977962165308495494012211394487644928493872830006083337760864292054148581154213238651777712021779304553145856043437873285838336205771581167495715711058645440984797562563178568014851621045307813210367651073848264114691775016862363898088723612030717804720383231510752896123153254193826903271849945040243178402847622979876093126570246648165516740330479415811327930426571644807102047085314255791862213179237707113118380299017611026207694928093114128009479749352503750182896538340792742824596568765664530409132762810660874718523708167799429145820525372936102902866233497178911800055888324959904734631626970474104962974870359979938918725572033779946504604256711653287461215216406215294588437678129034785517569090700390683408723047959598331143216510795956387241423028433099577360096724447032959352501067982496190636821403916345815201220832009969988322370404541496373399967805983338076326884289533841483900360891855378966854197548909594553811599851458539428811234149243861460902859384207157450267386707863620340301273931274997579663890302809372568509269371298247340423645501896252557076362244086085533668815089415902673503930450239337269870828099648807209875281601475084452249499106714956662343585055592212295954589621652652923614064719659608922483595930083853828028109624783766213501638903409475520998164082203054519838181031179702320557980738312808150989849627336895917368907613039185078904759502193532435845780593281437586110484862037281371009061791133606581333431487490759165329034619191100735160226814268672457055642077195811368797190362126388893389817246386444728527352602237888119161418996028561396695919081216045665049652814947936726405630501209473088183528729345374002306219949243222873916351880492281087677078032113176402404946993794973505035625039518724248587570262889855799595706665267342720175658847529339803184925386524968049523173059265680084269634048780698939059880830711608529607728796460040457065813028646857704224400601640294189527447629060848052109256627368331856912302034089525738540681611658932562402866413521661770122759549718924389044112089704403241449867290103358409797948892656483937906055799690484218069531772722975329694121830344439824291052483735890555393798399612184295367591755903181789158312141737561246190330699940090746728587551132544507852142541700351725548058950506008968217992737567808171896410877096572146764490360505287596292034420471356583407919551324338224311215600374074930062933909642192093200849509596196281442722463217945508205516966678765891634197524179835406989726901461248466115515832633729870136561943257061968131552575143091682253908652189798292346839731137628996302574529034446865223630685029418185431496428338970594575992440782247789491112696629919511466082291472475205018255109475215998471918728645936938824543499411656068390494160903625113714763985699041519928147617749179394782631520325335378119602684346872994431558483646607787600007197701963797064948300317500966630865746431818536087929632316150191792606445670590709178574806233864480580062072741070371457109980766566600547591282997835747878915837324659167641714742091470540629739305602158692557733542965458212225240075828106405813456998118044019172671605487512246929284702473081465245826938104859554888736007489600348801223518024787599015092655128601364796416539986942165212458656964261614288961175592053549797258107026695631651138105705118567822685451802877178297549342646939488486619457001781551643405825490955600151376354046005424266622239010579679275396946160235451084987898287527240946940297645724450281162397995101883062527989247829186285905770806095590192763554717000141067699355462529735283015268405062481301093433161207573655113094935788146408436433748772856142042744309301579780915102587079085917260982716790224687059745208473768598744487974149297650350823674381779658359953852505263788177619387665588417896375381731265071410756276951204458748259185831782054149558045926694037985698054662768007613966716735316583447334757617038961455276012317219358486994268833435489392057782971839118050325779194991302577988015234704503950834340140210472281237507738070982053405530994709989700309827368031122760857006548497164361726639534625839095240046295850353001263861179683942694242889274192723330642632078507110925354447462376693600134362553027100145356020093387901649253074699280620878262650589104234995040822937346995260557149661211053356367342066795131614989519123102571868851443135212512166753439145377513474482092597608216599097495316002641628820324615807398386599751137056417475314257214377840887367052604768655309247789429251582449928206367837496028525017959442401665521795180012848529345834031686329006305405144866200189669984596661573055964617197289310975026762745698238335888970043960126956144767634097921132176975724381511180132061485090365349914521545399890165050417178453586566601340106545744884785977577328182074050003408916485025244123059340209236872469276129772999000453931103139896071081915908266446523721616895204758263190340018680570361118956920549290106788242570312320717651414321372455974406879438126339135892107157660746659349735168530040017194453716765711075549600672201138587681163592952533203724480993775328286178735357526665865095143751097734147116329570159668485728398373539516223543122511363747643768286697206203551209784325681867812667127413039333521409450259372328333802862874855719377315367181834325716241700555783240750507967924176480383174564835268858146699707607038364725644769952064066703025924844912695546903548932740545920434587105009413955894682123954912987371540648913800522269296219155771408324158645244643205052074755803035060510302540472745516936230048817418456482062266705051488132669427035432722859400518901967035477068253505680870946086776617333556667559710223350794635944855801478058146736367694247132906082625234767319782265681227387406997713358760739997384904470310067060716135606617726113418461708660650361366248396511407775240841643750243071340118588496711548515218611660232542493905535773666116138955739969228986041136129423066579632768617888173941893356259877341297417793896007987696615331768638399863988806227419282431982035491764589361102562355931498512258591310398822042535000119264269378657717137469404518813326741749356963051575517212203883924058871344162635338747217023376417105289909161434789762257359398093577290004260049078840287760460763193963890904047002913630175574119534013189029242171489784521845770993043890693567309834486433152139913321351514126263144904531393320661854667844966270000108107601197101957089699007229616862936576552328487680562714878502545818977769935802194512414706588205784190420485014190929722975906721564834882503329307767877993173096846880963090643913222364992848424814629129511147905972523625086766214337341506341983760984582779834428302756670986398160885203867012597962569399792215541033132429134450801329549425227106040761426407740876668074545079876868902247539127999934746948688756952388935988029193145304297913266715412206144942550188684933278473441895232784615438031838002165152746052345481612033484249796784092245637510571555363807831881650528132779488593383664320988557609569234589464033827764276213688405490590733678110627201244916977685106270475537657587244971239001295404056359684245727647666890070744270569587483094056856895194149363760858400450855707565051748963528174645370178908810563006234788846067404426359495751864198914987807384805082302756245770283327325973712875499036971510853702819105661215870004057787727522054928372964580285863519952389492191526711909256766655594867566747444318763798705075548898222415553074559719296826531643216038722095978252424129112520032945977410429627703969681394503452478401878790116689971834289933176451885393910300140466994518997254222012437729518995025486940195332872646074452850274266295768558802704994854635478983125225796011307177468710493645386286129552617867866375439066724097728606722388476795980066189744871947972665868946563959603920265607060533581429865622240568273896625771258489049541600135011927921901740607470688742744006578321314224513402187544797531147907854758113824992214317294250969133479835234256350478634735315358537201381274160290732506189047146022112896007442850747286871099216926399881980815694484457649809605069293171114225071786200958858474847303143888140039019207180942133240906102879806407972159137991613466254685352423935498382379433735694026393823028734473903729899912574614752524161694220635823607756569061734251119541501937229863223533554193656508011252217143367070929701762759513039198935760164296608589966331387221817785138755254831624047947557889653885736070986038678132239460976605559452473031949172862905204642518752651439635594134612866003782729452170250333257439682397083663520768836509581625503014007055919880459827138381331323117664194570580393536316467052126013319249688638187175898822539993626912947358576009354644513811101521888753775787240092716832532542274083681643187013236925570165125701800657987531290820819319021937122487841376346690200261573959492986015854860990018507439832448400066568867920484695395325902428641332458403671805157325349773440448105970728097614019510514310964581313295274624668727604891032100295040769627237639862096285006311622575205273710940308358713919612438302171664640096411388555548368961983759861638410591393663311201973055907542412381090812929628751068205328672990640590274648651051553983799092704276369145555120530355076379995841855601671858676261456192149549669206866863457352248306662562545671415337835956313955722742317017181569420845787419048510325158993691647368642546295805069465230117960291812874053632392751579738959322720075009422912432775210457036059060375202395475266202073076532618554721296627735227043853096821704009530041858805198125233140943456016616562918721679669536109335584220612609997473132413208502671644643317744072915113712735052081327154428389323710839358521570951200231747166104569218553934277428498936005555535946519377072346359522869785114341791653697336595944888259254699745408182925419448884990520295353393305046419380205003309664787850962489333406184184969831593512591910504947656153719501866005103406076803242148407731664863953881509563021995269472252257669844190577163661279266184040516669912585039087673251170999506017523565124401899337801315618706433197736077919868873443505777733265209449206399391380073213001952229017499182654239248964305809510315851137293714311589229358597342356444145255207891693549871661244020385058825116577221255412189847081024505544181593991074253839875655493699342879071790212108141943990569070694480966689614033646121137479838558757237899935660733533364688805702333954935179698208720974661170595231490047377819189024697505577353774078146345624046471508359202779274574180318633755613202926047229657994491613057537433278073184678425917405634948240533202176370100510447744766630560567582155331514012320765939020603935874710714585031053088669660424065338897817045893664654952340353748918012609490232279669709206927401721312830792844659155353839777061776900050959025946853661980974790171032746589583181687053558802279643183723392033050796948473842402962794867329536589742952918113146216347905497104997611874895494865162954821596222985152914609581056616802208176707613787800533897260946039198810645827929534285206409038700209463460308726934926872790749460355485894675570894170073565665611079893716439916901437405494435853835524893421685983855742817326688994839760290926268746589583659901896537877992443110499104492146628477981204389142701688011328420531525580374369785252782231245862254656158868250394820265261170740979996478165035940576637199851047887659583184245386790259439415886059930879497301849736048614501278935464351165755850298336028095075920735110005259651750680270879523743466760328568574396403324895197662899362867706462715262010283725800556614034084926091139653926456732198047450910449044123451392806354838192140096628527064138360201576863733994380568334186211454678509343058820899587313905177276699438791154485476710527385404658430430917386171313117459326377833830218010351539646244938055769034510087325632670781059400835864292174458998377668476401584195335193848054526323872340612240961015931216712483783538675946106466264039201046764823730748202684524046516663438363398124705643952803727100702210816387345804911603522089803084936426259217947918049351388145716177670754069730109941970761311366413008876517017507294740667686172794795294836308044143398505398338263714305747780153798572690630992579161485659134794642211066367818036258948253859185149512280843891545767616241313814900265496952461388096340739176515559668874454739860477436123299777490329752751287531393048722160494343382274603953258120508703106110368543303443620351855390218452676455253008404939593198578373318085418997497190402265527831287526699916454333916641221254135301363687185137553097784456668171719057384749031896102230174256969219058015108957588144342173346781769756036381659233093850038680645516455587736765326572440443573187655151304544839060575309931713036137133593316240496675914538290079611470317629634384981860356620629977340501099151872201136053016639890686248035909117486491247013946468926839899602712039309153769855137226660920627329177982525853175991824846114365479155348699547763953126130816153738039317505963615422748656104742888711863196864171617307949109104565192178487630360419899012221394338254698430060646617814974507237408939397450339909171588157272935362688092461353161890433411102492137768248633518095874873703789216876408674502416833288334878471886714393281111166418567574493083317232331144783704560552778687538012721603924100639572226261045179263076416157983791588190012854649174262860527619432066619401638540027194043351372812638986939965436768688783660182291418197578159994711271231177899051301658311987901814665201018635714374450423796249673980635044321745855870219125013002559006798480671087061367323938228637703574017873364279358940325577619874585968543988282273368179264223750009249076714521078908876885030724535686689152350373978646968224807172237699415331838633450420407197227748490162436759335964057766702516297825357677942279630019928125919519043931993426346241517016366932648962124192599594767880022116839915874581635710068860909279544752464335200122292610015687836238258090772233188285972114050717968869921902054991011287228657314976840658708479254384306082852951231837887412090043567827991381414522262625216818526613982493375261273080133418295879284745483421565340314824705529964389000860138491626918107115915846681814011805306115320374944130999436384640683137424019792752564655969999442474994394094918042034838850818378092838157924992767639765288919822323890357274300258791447784508474274167986644836825023616521661401210672609845440606842633558809379852393533283465542407618466785579625148823994376988079309863501656820412347933863802397755377630267838003080195235265175122098041674239835164653977015755934913799029407748990198648682980177364720445173621448034429806611567519518199230291928566387477376353627280655285807332763366446948296087547877455645221245196443649882534979800935217293776970615046724261132068268854947790841965145344141661154572271076152943630536008230340072972502300242614184106671663418772175635571163297269087584854529284357469011401378594675971744474755853878398747428110346255693976891058665140785178330954863979099962860270350962448425213270941357227481509193821098700283749906113064999034317650324147362029337336452086043827864570125473018938259060341605051594403898627331586408476596460144525857449386166787499136909521791200454752543663172982583536114810492224046105280788242250048203653001222466747383341587033494008983918448387391474659458942265778530410636097374253623218317374792297016517761169403859566373367200659390412030260201370494613615032892361604837137960737592064976789287587110392046085028118928609610152439516432808542094899153628133173108953872332361200653739058907466236315573701752655044090189384208509770328018951066191422682509149446333889763633678614661352182891088867747518158271182851549394157912521490979373205180468664159113041683963229112064250674596991717902518742610964752319095969615581135175260654419920595519265440518696585128213590441597130808706363592608300566885659576959808166187129621706213856529877175616907591768285028386792069235188479444056867858571390616549210663038452732756477873035784571313828563644054597993207475775462819992599643859543553343443100117150687579119935337918510171525832101002209145806499268587742189415084227670983351811521137329529491189444765695256326192865716824911300951565199233650313018912274926083043492746702928028906839420515090471900952391738097343736317298001885108015544229235268105062566217201257532725811172346156806026459506619197862374745812744957702550159352310822586682547159962573562469892096183001526138095479660333895178714275956052290474778292021245201894198263214398599055780856432239544383512224160552190651067947987427242944632233423581759482576808932155237257107462026082995297822301244233486765945342557864784025188620980276066819891821940890447243106170193558061312127802641662664073870905870461584264708804822988024813186695416581458638946793790720276139604657311585835437551794021676417289286413484040653956639263329039133015662981402905711440682595196089420595279716315500128685612097446356321612175136200397161676260442587662437820842451151743449118392617426968316878745113910311412616177372759134000438280700430186149806595751605439583898717097201194816381717367266302676337021543160192451788386792148171657217146142137294624407972024263835789114663446494396713361826331446153912524358718033489643926792785850485392613627200992660114436049687198327557018173196429508237928831180414343859152226728503483148864702705575653651794741571495359145409607795927827149540190873569693450809800815327417050854342149040274961517187579710257875885159242203609951672353188016274359514480609130475887449259450041643032233315267670606944568183651397759696115530654523649223167924972498912098185443448741996608056879881774769062345113560800448460813882856739006027101382587403285322979168768745389689133777197833295617627333678829647757050967788828564670175017572083571737723149593869542195146546115845690886091875480449581201970440800406538633653575878870252288316674290111047775312104060521298195816577199424756260815334183590291592266073763813658493872917650704380671237892165313658443868364746982928154974355920880141905386254387921163017923793328671594950796274893062149402631521167967193659945960813255948630112677345590597507579006673169517322365634393049401377267074885156210672763451580040160859674669256206890484991120201540531246564693582015893759099633007528514465761914943567699085366694572033090110875576116390266450833094172148400870625969815225372892728642785499920323171179652728539648879913638358710515900521562689967589069135240448311364190779270347270798795957685677821297892105036097160015835044294504645470953174810630054535612468311713683472069343232876393999683792951218659275213796694516543572657336775403017611810823326638337335004984623337104265667892309557809949413215730520883170544228162434098642254520652258431460168187148891928903546423389826325293302810736104838713837643438716742541947903983818836400716578685482183992425363489218896924287762870680551908687664261520515764169504073207781285899810409145635516987521625686269480909707255758757850700209499534734990407966170291525586363773399562112362063044562166600183767117421723434137332195826289333654153070069226815762327408574011962950375720547636652616129297406589233996455460144803768630727253694405030963761944374478977433733144415382876622547462155304823208033776122649643684324316061301272226660933750962585184875048170114701153629247153801879267307209512844340068285981909395788896977319805270043459760505481367807859947940757203555885754813324791831056381590573441020630768211101337911972881088495608403499783433580587464323060380309586097541521575848156349868592341679595870042042561647246196544984155056058022804183219283955090987208091326562626353978240300273908624266438282396129653345724508066488136925420876856861931297590140414542152309512807200144691216572742648771088854254617063218693320835937025091834593987468496546647663879033292484197536892451424452724390165618511266357432325947518182709907951195833889809315104413025799122960071331721231975122587044218285043143565595360939947992410149780766007080005909218116344086929960228123789666076092938747044125948612229626933268163756806249451493788302904430590650530405858698277035976879162829188107412043880434164065217886496658987707680747017655849513195279176029681202562784652671233056783257133192176371942137306062281359525982625228558575941757864876978482405847828097050259137734829588292414812654986986118210168846397106228402151244816226352592770094231291738548126683974923603336278910587965690539683517465323461245331416380856199734103364025876118171799517614241947663594529444287106392665755873298465192907266442659170364466536642138373865059924087172167591370421398773407618682206720927881172437019689082141416267669382673478325723703346746165125357844952511328055173581903513103185900772696167877392752811013324231714425902999964201490923761086789093533966430805265747903555970654216277024402844768618801440012478032805896613965733511420567752153668811330046288443166631452472458893816447986525247479447783622183483502776610038202142300667190774330860355310906271050738085193453981143691967317811828397921403668644931012852628113066508131765446957679636803926878992461117407979956552237332902880125800159710458691652899943228781607684785193339338127447399322481899410738231139794619757286664371635400335020812483755515060956254018097324421768128283047555191325462773332933060764415797277211727758957494229803260746663786460288976037192530339370480584680353088826850893978781485430717104426253082609141975706198070623632375658004024046176883878624034950896676204993194228328822377845217287040722352411435978447899600931842480516476516045090791123832640026673875298065388531876173206009703701537846469601415749795161098155916350032279777543952765112626191257753687578533649879237013740933934174271349898905785813550549324637851486898389533206155794292641484294550137105186674774784229057185749287314603735556030132319475684859435625231226196217433601869847914496306653563247525490400655966325624444480057909625740755208278558057423383896939973019079112277057406502989429573147438591435375096199417310039560100812874407337500141380176085398755645484785202126954859599107280390301395380990907849554376417243854722921915498934890139131518794153318125919612187217331704010111514203191204511254587378225089953465524998848023866229320607905432759896097128290852549042977923627820694604250146500309101371759944630486561768705544714294327713695148530921188709741874710286655891272993827856373240875676082001046991160549761432670511822670534945483401011492746889159071945014702464992610892301918491648379069703856247786286780157656373491606654177505021992160917533525027755308085044337395760597001004105634871132984214722166911301250551998919245950804567021519599271998946982814208889910546898866621325080611376332915959689738361442181737942226849849422585395609430399974257185970751282704171400631497823419435414559816294180653165998091186863240304350430139956056167990897735785779197323088749720920008769585495169164141482358699690416208539058833710173603500385654012482412808083923800280207623539321138330439921445774851707972254914074840740641593527423378680323478233989631010550544161533956546772059824724432177350050256293786441562996506447230838287752896384763669896682002849473387533668466471884852436704992044583852225994427355508392226752512232117961552370438063682182397301996904959543329851276362502922729800996899213136252773015003912688841713056823345644481384829441754782398808316314623294964995322253192085414921833526940799330735640813734893113754098999275512935804315458763302225923537155621046569141406066138877179781242219157075599058012709760183256320277495307900558226558621251015100283471121521607245641583446257848233353372862477148505330054441836940704804195153229161242016626304517527790711713818054301139608429399887160524977571997064170873515446454899234117235432007828639055063182539188968149814746688900105065531475255348301845130895206426233273682272197772463068434881409489126093634373884003863515573839789644065018795047623933343050989832662418746686963901876918562330710709626866721498399839304888833117890959135921928279643356565831473138611654471370956768414369744810336263424246447432696458045144319700477215725356717226671672199691203152772020992680048550105256988356482279683744505479696466640331152991157735208930719869470601589456492085618209271608009679215867028244996857204013984554259225213150402274878979485462505571352383393608357106817923865005835287070831534626730850101367168153250147862535901447372901590815968174842306469100085224872362371555393613381113315313906041037708754963003745050145661692685053491618889232591239228420395904469730008931877363939660579265813342249197811270797716864235043069457849796813880579994745432341632297997385060944201655776327056434988166376655063869231434288168037591884392735134559997499136619239880440802447162463577977059619715127131719100159659404148818346260023204867664094906237735171563749212590877164753729358662117368391119770164669420355594854895911198121303749379831954939901736283493284927259955429385334888734211235683925818957196195267972871089443100097938048870201514250440319672755423734080677156044937239072832928291959816564150174202827286379058294893662881494258848454907460962075093256855284282356465251112327746011150079166629649991991465344704304620107440692749341772206323141076197001179937301145052650112952158981523386244629066218228763273940823494363779864059560621112271745217133450635462115229734409534588494698047842198125303637091705112953615268856395319258157123359021355051354134609898175648220193824964129582161935450229915879469690698026628501653439565434267654716130920504129997110679656018696846644127204235522882977252404113416577992179527878651606568296137154250218547790121830987555457527054750991409897858290470380174950476002946332427951877737558025597304758246168008014040090248888925246025662627501713993451999107094551496873283736897828886261757119524151954083606043081043380830373478390235638311163147787517844901406990327392108165569321065191574173778802155913047524425617695398650586736259975018255534355167588998467784686325779639852968377556262295691074344301420964030496859838663814810207040770745508878080845910506142992021200181383311431270397712319874817936021313534071143211930080549538599487530002306988831764152143152593616119458941610894117757730416918558611281598332195476809058417742600583625105677257667142944927448154704817595670944972222437610833909697753871564992625544244541775531488235409374331204978158564640881648085767685934445743174475290633914353882722002399277019490965027906487767431257608336802181197624036653831173934848077828499256739433136323726878397975721987343273671667812165826123268119668640798455432119646028616993219009634120714117444938367241857887069126633190214988039582129472070540453953903664452790577223214474067755963943261564191945755905996015664406139003709707385576879225705779401629551733440694711696399203867750736488960290040068202463591299570750429926118111279086194841948558324674964238867291367720657828786189519213818747431090044852792445208626122965620726353817844644213302024598274334229730355811431370152075859498955575347714042623954554557663406875435751768053409486755462936185206258156792026292026425539387055684205352141708728821142507653893199725020637042481375505899346334330897976379083284063834867043777106654533181281790306129328664382619997949298874638143200284114292109743041588759584850344714019617752107715253800571794466935529926838584232161970541980056660998779983314841793623327375009520540266039023298082976771432078600494216660672124896733579379178609433735142089603587316617447971259838387285182182290845085475563195343219311002545156626565005330745087676401168349583413572822546504884885279910923148447920584414523515201243501059956358759551150920541597455459354446157658190696282589452151185842916528297199204894333425355055184250546181367393016477326004042780555363805180582365670443813779685830633255042418557601707536322097909481700562960868376770200781995535306646396652433620621305268642155408932535385423388370708433421810893814924893928569090738801202020102100904775509921016760606753159489223409904294976829823268779326241739556027669667882789872437823589253880239352151307386614351901210954748619984671005494206613729932343683795756852616643986097441637251062429922126464612097733361639676598182847792166277877890716823555740071546363567981752161650371778035747894091038225333096284853395909946257589253396585295148122945368524274789319139298310082554260366144388505380616010379958841160793732830546030940064084034798687999964498005273063306558733134723999181901406968212073197752229234638301304037177318946989356119760118280312905239010668097830237341375237530201785985287951923493470850425722397138735965606306601085281200444164496090396565417149952678244781736082155658143344328562123156166829909469763770852845764628927452422020397383050931843978003683619419980807020361147794996584655250948277498691039053817054540983797756430630184517574677296976249917987404890571257481656859934428130189289826942142283031148465435241810205249092728351739269305738965991864185062799578057318544176668017531342423947056672610094517225300955008429137488033220336058604573623302990267109236138129727674610923665053167565004381585701935406687144807328693793730897968597262945313592994293278105591296980818002813941867238909902686474597138725522144409199072143767858163813738600484322472631956370862910963088604232379779408176117973568812330105308553676037934733408277756550968563710526530420650091472764697001417574337487653784788205810024136840459407568907623956049699654520887018187368784788085592589463800399320988257023177953558510510525230113113762394255747653398903645121280601526207915322548585645047975851543236048276274864083987579194025648918636895279681194832579040986782838483667433942150652253455713223247845885018027341831462946271026496616573297712007346904725299781539356826979667394994281253489582941742330485845273313482028890143666784965768746358988964908761775258564271074132835981194212596435875660963377009245054488535529037559827840060609601495750747326168163385574595807994004166857127659142720028441938097292473146827712816067806623920688735071408050763131016255262361131397081807191461070198456724606352706729430379712062496716088232419992490886418889338632304982068465829710286629737328812650396541066107971076687197573201542192269392474479657087751248250835396089630884794424673972730839859468035079280051258840901146063816828070096149501050736276309319252100083582105286109405474708012064056691920802645464058926758228634812654567204441969058775673048788852198660930543939781533078150093776052198785577211261949792501232179974722080168769438309603100164099570613517850305109647659594698828245194033285512698276744465240849236784327138683006385876443838791188769276747390815497318272579388321834349989997942516824477735658409327821441305285666401338677686329371803880093358740975220882170862350701870624582981143479599170012853829812786983368340020563540238519228792641145562679698906405879237137198909771984195090224183909369077385449545998390094346479453503328222399432038754469702228644075302045126951240362679930791647379232904999039108117096929175924647545125039854912727463894219132645926405498206171648566415555994527002352314497513386057476276658243350223568365695024956923621236844628189273919596929574135405712133717669341845628917323921591365376629068011117853429358471356299707243392747040398981307516857284982895415538378731532805360285701967728250414393531645864780686941638689688514626200106648013377848190503252206575022189907905551896143620166150605872924082415563566436465991014799315391818288259407245641813065135008603662747661986714902609252340232558518703824915829953059606040330006398012785307807520967131854370371173946922355347351846456225682503293009541219004270180456974400438903409816845550041933485766427627224747876750345584803079504747344601630360997001632048006882811697989025831512754671316669157472116073606335576226115188029311436939280835991310234529282129457596520208054032260298279910272141693105825254114242311918867473710725879251147336349328021315148971265038882206002257551909376977071266355264742221833830831321686116081258354824194723058679638957263573690211232141123905929855872624228217536296680841243571844783775719410274619457076659647167860270982510458992393898777237264389713934584276696003753083664859874114777151213932893470034244004973925065307474273433558128430220368737099342065857129618721946510332829136677119447767443037654422172785801268074718334618057082064298201985459991057099376356224986002603259664532223722331816352620979121440567317758304101061996436801825424881595764206678916700250737446357762080032892585845441906266705088942433806834292126789750691480147817040186577584211304828030231344185024948092983476767705728712337002543251268656551845038860813434377463861936560122097624127716435062728661133674527304227141724556150065847013186553717736331167712294441897466049090161863733924131051562834775574580182918732087627481155931936238511657514189703842716315013906308753985669910940148982022474879232899662437920577618733170841707741237318866522911085715244868690617729610066759242782692490370357702806026927500234498728399533987939598252798366663129836531438829371537138383878417447430310132601252766318477864004702547520423498314318536556695540879248706716837565757441206822840284215464374420213595953613269037029925564870432390579408680199195821178049038771265585878492180003972187631063110815856796602428127429561524347482080410832786911053536596005082716838095164972556366660365276134541082835698052042740406547883138254708113070863622334882603366910078953170010657381426814904088147619153310755991399220987364086547407733193121885686311955967293782664150645105360321971619639257923666509382986891180518623268640403161779848058767835835952436720372119562411261548406094850696983899485077900328804299720407952918625730060384359883000331378679323406646255177003181549205910123796825696090590931907653371157040431091428138231465641417945304159576210276521206780118857683286082408700628651777703678848437141285216630269970672103737199338790979913889136369093055232830953566763246885399385975711667408981124132195834653428709570915213633330386286265621208001380017773271652865991657802809416681376495557978399278987481115955159972139686662884643023999774336330734905522932319032298843343449715637116964642926574613597234944353226900764804940132156696444205861618738623750681005859139279373301173833288383971438951431947876393919581033378707330037155144577432545786171847466230407767180355383790405712511176406071704134344988504057537796535668997843597963623165466574498006991185198655974399816926976450025986176741118872232174010096395607680610844391260876797426584172210017104437786068923991264351040454824350689927983688187633623456000393714167360374882619274990057001227901705441265933112740106791670288271506392924546009746581231728315965944332763722049647367465010538464727084592752810150270127643438242831745411530987868640652946571859239235762292302327140269396754808782831407158454459917296355907839691082815672802790588775887439605994415141326762070697741687300781844833074268093810124566691869157948210533482161873806879598405173642245217047002187118177153528340149171001292903783427223173592303384996791452519001267225639597686465345175469856490416589227007880186014375680136885147466252105984832304148937331834710687662509636414989963589812211471174358826028254080779476050146735434906462128425886161680162780545071222534366460277849307514358476399298448415550095154957081953141936928503924238302507194321483937020458767489397782021954135291655563043645187277802455855896342878917635113455240039998429040587628920562871905859222343203033235079853749019146453902041961748812986684041503212371168165687693820499671709012048936332582663258221430882736873949103165827900872668455421252340911651836816776200726585189431274667417166032402280684377336450841321654656174413599272111500846981870914302372206818300055333536872535341132067723553830635095669083442716206317271083567177660814293196956593873380973893638236908039366291642524662529536480063402328701612600171466264638111576148313123220756338616919718470508865848266631839059572749756814866113078370346374984154433870926669394410825220647535755478778563544459357244911775498897075092399728595623936338660775972420190014207293464848061084302226604006295056452016416704077734893303047931078054463964499816900679099521359014480917770334016030588003785338411612466855860638370700771542397768810923217675500832597631392702926667267116028780707636508484551521059877608340863916023014742529890054244619183624446126443395637629377064254749583329151361749522352293074152770282884341967235165992752110894184650915127416721346135823294346121365649040648077474054148121619625557017770484861244791248217222501831197678449232684699488617624955636628439586384426090667304896402636851293607811693758754518284772098257593050082466543470293902100268231198442253021445574097877573185741938812431313452819356439209039656428281127955520143750010613483302549740297511613816769175990484110940993503113182053673800501296829553966579996177045553761585648556605868704529492828857177395603234291497538904456447333275450742845216509958631467467255114156654682412825555890715521714836208742926871829777886424707141605763390540020764980205483235377828279495265859158342915277067072182071956011207180727660521452737117390329669158684660005947263734785068816889313387606921054004369280365686520459833470991826271191054821161960972037862903530581868566581955967428178722107597788301382963793631308865286472010136112259716056152314631488221076324100758994262452767903146012381427067546439046409386948717568019746172332707476411975987445064602266927784429866930092507669712734685403338087918143328523205134513876986059462507059204197841258181621958313746519493970214056719803895585649058128656482892905804673999384227391145777621069302978590080324491311144334080008351374276785904576275270707708916938568981054279306079803357723058023085776042445047710122334518327142186420223337662064034753174990722091240818650261530192280650031516760710214302691715061440595997346092529801940342297150780172927410599065200311260956057595010207671539068169368104534913327147628077944675005339783428447695908696913830272212409171950492538015525531861041310732030958508590124383825479817116609937875600509323245157187263848903806561946515569281711067154285096465476254091464144922615820941773244047163442027213629488893938967385313607717763483248208040142622411267099349661058512890067284843657687064927534717737327126357546639776943357239855349420233146471165774347481190245979081063418861045844161814355235717702095640136090098091465361342017889000953311478715256225389184333754347657856575690814329923301752864668539122998891290921522034356106500168567700296154344666232778046145205384255612737545741853343553633143825919128973270469647776852101331988915985314530492192202605924104141360567507049630486210200740691347852759759913467105967641619278318596343858334446851646287174929451218142134754799509803354706150897352866885087865408144134764107719186175993223787384047330769401537863991202630737213443556118131773706227395857314226716654980319162299326381558274737108863025661959093134512032950045769315194822229458110150428561035237224317103999596560420024296597414918572618319523006630210029400343487161495206803150808013424394868750281101350558101632033212298099641530932416921379099325372045641119087821625168957376635952138801538084446192493736338470941717059500187509858941409985240833327911663855563690913200752500437535762168277421875653992981799411353941009582238169207422537966315932716478520909289554851276651690170059007140653427922928815508765696218235003087072715883561520372733048855683408610995542963503089911168427563619413041737768219616631424091925097578230955398764300767815660110706323749356783757607482760603343299956776403769900822970205586865456781000431123180764848591556771728523590805933823880460371285824462244530666517126949837250553784496664231718166218684612180996593315176299850141194118738814292251839700760109091653035861988082851883906199706998746865960480525856907506234524088923943861612227465575865387237944430328650468874977287501107602272882929765935546554526664516798793162219552334155629670127828316124609801416930574920839210366599954092342053408171597241514616716925342276018062808282816911002702918866297640712872860085658781018282837785685488111024991356498887731632005987550803866565774044938021688855938999880223292898708810590696029397273275535140745109025470070179871642008044002006972779885489151716146576877025806462884660402109002267550000498472490159427170465016818549651264890133859015985188561593731436484228853476807914089682943095772448418078983006592884669903121527773383014112152869161472408479104886170677048986765118994392109452772641236721421257275691571622892229521263378150247179954181980941781894498668201724874649795081392722769082751374702438996300002312081605031481747550668379754687454810485144594638214784283148356383163875392779647269536212933683813347634303392434229079915501603589344304078626312733544686455786274127358310823222078891860420883679215436215470256776515542749945542943019695816341575881947818834567224272461452156076062112937278974331141617811777748698799657517487985876754129695111242656061790845243033025333244450072146001158157237701230768886052898985311862732982289733641563789941984889197502058574895929178033526002193877164299182342223692528357471558102363031740480958055243077870725512267253587495866173324290460123552094472065487028250335076174100732491599565715898344247455268599278570646973131910500867871411621223305360875202625790065056209219907932916021900600668507821522034663340799146335882999410114246851984829856886058695402976911609689405755000667941352816047809088508358026866730943323402776414580249980984892306594586668818508605561013424352213136466269719931286216640778531294924819823164194683895090113766180828763294562537580676148266664458008800796153342504061757413288169352656515610208235485913738123419523887671955761411057408728707065210522202830330306645145623035957908178787691703488637510399024850262921094875877987392001423522310102900951325512348335250978358006313616066621919679223086540955199193662590862239340419087004598329950714054283231181123121803220053000488637614856145347253015050493305096340664237960599155938529587533998088544978407148414836956431525795384734132099053978877731833462788866187814940029067966820928074157889355861673924946516763051382317111328862925870070084299294415515687599366769608236894876156272817081522905929197160733870057922402202386379426964085018499217526153880462285792528200496749469283009618952092119281160098270809675092163908369422609996806985475451550058952591819482452030261243672069233651253495664903427052137438299603956814208106758397316307486197282544332861381130000506342955824450404007159858915734689389095118226979925766944846054897298573098746516496097972876219117554134965985858065465055541079890306959437634350301076646504311217396450086334757434159198644395220698411641868641284832165134246836428301067356038700833200310221935042202954604031382552337638319956083062351152771320431230823135588416457165300400131598106745777208035092116555780170076089894362977422843275979979895471927487045089833651798842111783049177647507208607450509462548472840513620295796811451186845307937532722015274276158761910871801588246568242343975164053687057915497742116553018487668617968505297994207391332601432761721311982708479587932255041699239721527233008743714476834381771134213647200283695224411898434375598726878993478811598522308548598428815251912216551694298696931269720216068047671353198830276557052534334027545726084667334764393365916138796177504942320517219247655867170633836651445667975568078776758988255729668420502782988230664285526305687286259620467237927221941000767343395766760127527215466691227541595570623777447380648764085273566764936714438880035162745575526300865549563360937385312581071258758311009052261468120597917659877884259221035869267093298543143689786342108989433658076911367256607780641779683356776878765217387269231633056325644022361077717257420890289651075048024668121931954854614092131051615309250024298137303760930038248956988947901005383349378441435565616686157014256060820062220895223000380500483798182940380513793333592413079456921556652002192922574701989993459423338366510403371548168982320361246404953088557370137158614720331981534084967636573113223615046842880305061435732012094422376787253779116376373754415448080294218748442086661366336319725791368340513463214609209309434007612683830720995062753232048653579273650711023077545270604400356175275493697586385966406375821494937929919208040865873262212800077927782011701397817134192186977151487643369946182517849135997373185215100884938065673260272936483543088336389302166294482397071751711736635213027088837378700000406192069799859514469228640872802636643878188742761305502704841940010362356623819450638533593721182669738578533343971928036162776732818105990890313977945618741817069936309009253868933648073682094555074683403003366351561099640132498200546077344569978844778204189770082361660537449445758391587574255863828260583669873002938532402308769715029237766341017927621583080637178209027998245690783120438783723671076139138321641248684775349957936858053876493464054131916370700329564092297313068261862385909866171386270889904857583386899010264637702350947547023662796679071421878435114105664286786362288426966274678719670916608663336318951673421739409603332237185651222114251399463387081922569106536220432998414505104089860350651096943482631479427662522062775730779589379619399536367313513573889746937958228259928571604143332856883650808623066885845399815839829008811365823510710788027272237150853697656831140162945428412761432796797092473032868375149191210266303281636334891763609261468746601758071082003130073944750974875044436841365018617842758139124651052632941689605634140785449353471749277082922588349872181617293899102645885465360571926362740932211191976010695489753972504347194367787651098047536662810004712454099925475259210106967356308933194493319737093387879820188135388468645399346245501531219425815239350932431837196244198297445909393759098655586132908563512761889844744180281106834443166251203314724482881095417837691278678986304221919954188011832011714064630846095783097812850331005204576887506711367138958820072297752279334426140743068962977767773075720047068042955705798450309111490559155832890363554621850585820981378376902675914034159603135796534196178832759808079463710767284879380356952190539120691174805666324741240265490580638504809755526739904913331752298437432078369187169845530060743298459204851569411519260498920284840898528799932527779860141375317018260012063040147750495399884078966491424807215342322774789443005859193742314431342583431096433907493386195232135226144712170289923801086185224478744805112753235867755669480440503099386633240231537303800058862664542906336122297430154181232493341435866082354239965350466872552429092351872349598394307292604166512958055975458001082802133770739560971634695070554847169022709587721649352881684727827376073254491418317334098155542218540075312144212670053884785368312086986293480123894357287823500256603897869170356280691523674761040166245891839613461974213468629983407821912804717899593217975318665812173702236556215034116153281621504728240397793314204667971963438000126080359052490203345064855078126823269273324151684198275980103864442672256262908796924724268621357961278568003713761813814144448172291150919949371769383593659372370923598812409311389487120532947629197189189945847807701566132986929753156939544653741647160775565674263773958161728049196857028091291790045543511608678911793126034150065286883380510543942184715489234183908788238311928398747726910438373801186509746156044672856304097139164648558800290112770558039339324261190857149766475781181218711394856459875911851406799739605794940168267404156850558746411342326083707445610619142123616198190382664149525366668049775505440904229791654674308754652196241790356718496923697388614726197848580486209988817213809238976488251765389473688130438086604838032668050434999955813768934000154386344655007402586991385296038729749628619333475754773217925069239337758263982627678086882283258010104283224155998896601437903693832741195515516021144045328331967017652304509778446523840108099837843723267941592675049875080183982275369060547278634122308158870042080036786734137473556123769595622727709868733875890572765213645862779787584083457003943871883879107545110948644003050317316164979484881296448421792482732517010396653957370503025524467131353845888295162174694506012955318266480547634813250523357094376452188308218167254919420955859512745444027219010494742038196892950648283332763838377352304368647684370119535855993398013355226139032405482282764682749245566051307471459148155904228370767381162085262643077436466085025784162363627377178292957495875742175088331755865977787618614165175683466682094837751063798471998016351286177574559717894585568625565542137779317791953370951904639969235575219966472840752571867772562926380169606724009564586497462017812350043620406119638874758137828145824772440310378746606300512777946189982950873544957313418173636182047597239272936849193610831738170925225676794130301170745812112987125354813801012751515049883481303224692216931576390683456706100623306795959922918323136696993982457101943231975598209751155330158528082324508460604118046049776892439147689907175844894345915391506742269530971019937956907115112009494825939954470590619880752313243858246031227465138331517982040651862179249723847778539958410227373860843861383321252749825724098020957632340625195497106202100559549523906029312865214388985207017579651941330183950052046438152741915937894082520796459858995082545772371569563350859350639441694161173967158106473415909556946223336919804346562089764632528922882784333968557705088393444632970731233095404177774229558808008234282094878488083867835680410967622182357371467165505165476941717873940495159879048417512675551886967325013907827940327981691392317331792252295227684789431384664392266359206646393348380660085672820875651928880109578009402620512404805700421860916385180630726379035292603294303122609103360168884981692143498823372972140088722265120189984341393449233008368628675737907284287122707627719452912297397879736535202301137280446506260618371566083256591503884001607846346987476101613545305041707478102992413289981972106678177959416574690287936007911111229373230446875940719612247745228597014401401768870359876883473568623905616121369922774478768725095418348696864057380294767418244339320366138761626251008233206566979301405701764338293393569385138540802685779214349645632663491341961576452383108229756977618475284086800478241145897307041559823880302396459879229607028206636028852421604993247480282958119714518855049379361540172558523027143821831901414302009032225472038583420955315092099401089368274597186069272149491357633299683749365991810952100781224119318787772748660923406446508535882283772165199121477698337878588333114777887385926407411040428239468097647057457173793250347796131316359086726904018372412647160881905322523406062871999542895837126329459701472783303237392335099559005274531658288640550130076463744977850679417500520295783862292975708080032615867398004930529184308835988850743275384155745959163465447599572385147122146638430284575604637208010865346392493691656720982690927265941674540528798860400732457943459204787613532528416536123074788585856819848990014715644630072080831017757531447351683230935802030432600397172092134660990966082756341598248496521301228609215150393056247959175578646603986544265322011657470455030052050784448592391279936669293648982500651276560657019067619000108310867012833082945076480688335608013061486708126843532418511771355558505636692240057157808428683030548221853099548385605374696742474749561398233739997911919018928109326419468816417550102476633402954807547018496049607205273191383428213384736857783446753100135309295027650786713943928327959465277531316057162569779237362206965316945040104447740521392099844991401805733257346259437254860005682719024133210566255160827422816031848889899595420678294661750471717810759796450962273203260901579142517106350938722381234409240898749957043905112439019091177172897197324136225857907980049555997950953765073302040619604144713636650070555019923061585790575095190918274556530693884588360092376200770601823773600590291898839255247025878081384067651885512499902512482375079080824766043120909942897428336504240865133244154907884931306417161410892889673491061689322262061527751159769246969772338032820024891708951392590246253665563969290973266182473832510093231403327312854367789371217976334696638876916983009839014395846031542853674957936275510310240721159708996996703451976437817113325853175870797633969974227846574905482037979599114861219470566172652543037019283247488721671547205860714175540897415135795033773241039105316018751631323450633321631828374911827233170476724321961936113786460320920053273674765988617004125615114690569660759269231265294743140123631868571912223050910324988091311576781078715583946302881794853595522501764045837754637508226530051553093423537965025480884584619605643289960623467666734373248194387777382166069334631056212316635079162094143615251163899424687279922662617569741729274828387558307601910802315620757287420416372932535910464376791879144213255077597094481953943686380780187778860491755568922896071482851926547144122197792357240501667276516742465667765103597842548962245621454004561547898080819087298435891239300110938958570911778855132577563179202775472885486011492942919938943635716577702696422262360433074752059596769650460226185113156524075671702101785578128616442054601843597878182873044665896186776067708690784826677986025034701030769155789502302823646617638712192406895242698039643952671350980850419899222505202192866808775501582425922433465031605492568088288449911815847593164335541787811153553065445994122141181022537564235884867076567146252456110822774326323255938824992650839792527189191126898423090988792534965474226169398903943805490120717669484468748917466407463430694453084985175570685909664499465462882468973608962633972644512510685385728945376458999252827039052370944171639975908901905050436422589931281124975668273522975882616627615510078484853143487422915492793849774427308409303471821894886221091858559729932183220167540617632791624803083605188070953661624891628449972350344052999081834678266237874356131044762500262294242987183624934056295323964844859134661584049677153849883752580480074462420435065779762345662156049073182792902959005945928302480520469371291622981320217615441155774067478059454949364377673617806834759487152739176603708626210877086906920207445627141344504936401095985810852338172353443282387630934622187289435557839540043578325069269568811432620381488326139107943613154256022487133519318492576440634583821446747869863672966131114267076687812177281883467110354659636480686582102001530920397189778819528632608404990173723630092877022373758173817547666352844683989733036220337503634288554192761474837728688963685254195256892059823619234489320837610463364492409839116727076479742794020905197288071291604088987437281315741364105819027890040906260039214651339794888256249772965108363776918174218185167078437483148246901036338744302840906259204674916002957735526881157008743883580475145585240531536555878735406424801421556156632492935904370906775100049230006788272767048975103449748668478988517721700687920973046712956165720271399896103467692612504850725702929633085767690757308887679477016456524117917186736941620445922236160303551493268394132359109700280724379387515620505851046512635660411197741001021867829151305014503295720918606741058451965036803648140205576125495465781098177120677977775998267670511495967845315622365055942316527842865147955643926486490211427331192546243370389074932503602978412488920665753194354798647658093643941527963750847410914811018389214858247351201275071541611071696281542558866145402037728294377757936314939795958822330870095453079214742642588667229867127069258623573210225102380017107508460409797266261034963136408489088359678776786934808279109918855361279007542884259846324160488407352603279411535126219563761405683321028174568915994551888450441916923411022127453983897624832879813395314445279482144479466324613690827262629550516977259389339914269182362291004741092673481148696534751904201554586530952384380732047625953468282626630603279903032500268958895667804698197209513027125481176091863638714781679137646715826879471939941869464792015870864649154438174429944792978974270083752132016790590134578026679753586348441479867720850690650763444509110970961577645227619041423302632552347674430012819787928644321055567594886590656286635942739314394169598194392447690249856284791710418592602057560756107020622463156564679384011570727865757409591540505109788688707319774207995021017988548721766632944664422447520605640895689379257362531995337740701720467827892896892067896821876558784795913844792385186150871095927083719538944539152309229189236972473208485734060394745598965885027556698864224780766788607041140120115433062358049380175545267932933429244719612365415333626568243966298966245471384261775486983305913340789871324827889854716695303100790251684803791054031349307389441979372908760035010137176458549889992783357125615129924304007877938961745583496380955659030653684479265641368951796441377226910279989691527852360586952739043990469840421726422673796228104530192005464864362431341176816347659911858875004525885426703804620497611802189306234406261998734228788935004263157086269917617224629316281675171090467362743144026396051903442009826479449050860858756721664330075447314952860493669045325579428184837960198943637614300239643696574684798869238876364262693833253549144644620823277355189441982065888842918181586032849407374228047084130949402899028387555369025694671827849407901495533409355955085199785810843265359204420769241664200846276027962677007072074805736141321722721724613797201265032947930886522050745583073714850499672608510284445291689029856033930282309603141270151239597553853701219499202348803772716785195580912800764019471780117648467522744942193240448054967796612571155444966251288682752282131405034459668430321543921992683889319875640809966296387979940401674007395230017742615459986607708495549964009488651727689047578462167871616364509069697069326566701540212693184199979335677755305176616191447009322234551878724648290117996392815595258803432486439741669781075474543842592894093020380063704510385903843350723090963999750594046717945354475553285275424088978564801491282810780981384645779784137564789789885376356813384212656487168769308851426424571383615382850518522479558524678823533587079303485808955438856718659886474470770257602060921612103674429412923331613944021662016476523073905433905365950223644309496103858845199128939641965689379628581431118642583463199480688726979045681205442169218535077956735315803291601465286120513674893540213350237557397277439481534364453608855686373472760779612746517695896690891769003139987881323399528646297722950024286623969229537914732576306579109900033714254446760841346359752984512743055981261673478430655034904568423111542007988708763755078064121838022174796229279668022024904040187833890593112666508510411074295746202450777083433133807401919448626337639007506508429822361938477930830352810805668749496868949356658853526161377586997036373322754585030208349472443434237360853441121435417025305383428231783251719558247150586072794202477880180933161665497206900488583925130625970960699003157320237755744452250956641754926042195591736107779564247806265322878913677391109085854394096283201187230233616285189285779366692499596015830234104773771699330947249538058360000661312605160377182291915927335027890325750996055557872228953586770581334195964826135866835483783683570907183986171395839328673735607873415515606685964768344367288681634265264704327081867343948065168072448448466822295839330605540665621445406628246551596419626730533556397156529181407526559974689479647903866177380574592281733722066033110411300225243006555198223560276270332004097190604427500669110223246311686918439731300651075164475400341016128709244362167836187354558605218589146978635275389929736939112498150941031057326983125806013661875988407384140171225933737576853209388632143097807162399789103942840439424585699555581566844099172343215597056995227589099971882198456299587008348159773796114914052859074773794885800415094546902620402829631607031717122222121324503273172332546897937395315303487513215012520843384305539603426525520364217020954388070095038669529292675388499803229749129678336600613674133464828381213963774315772639453700974609964365980286042844719241302949213726974267871388806364090873907730949379845467953771405489287752786339858392235162568396718831622140360239307448773945891688982854736006201710307610832816595582009775001472820035712214112458862427279992987197678921973926793843169109393652749599519695105296447888651383812454320483489725811571440867012648684791620765289878402193861661184441653532519526441759279486236200940559041823654667818719466406951711470541264290151194197946956219046046043135193741553895665081420122533157315745396664694979965919831880766638225573856111081255007686255025435924376183393952483412178110258943989537476926125279726555121834000659169076158130520314011252935163157625259266624969027488311299113697365894051126092672788772616134817089174425377776937358957235821510813993646545333036686970579974084646340735277137031719319591545194392611084441448076445218057910964971570476856488641233683131490587134778495152747997926237002722292147400878874658770666939410026833792920268726818373915920281848882230907326732597965096961132538081125884379832110056623717442544086293974901584187049096105470538999075464146247628723560770830667953700873449707565142254175552114996357970936304477391532409572498888156780293301991142533240777370405589587953388511782959436551048266343006164957525932492416143179263866664301689692261055881067800730863466769465049374124476936982186107529806793601692256349383055665425354638859430433032373226063260575791889799097923647591604435102445547227307743226023547630028145184752024905812149593686101496019830907510550353608395824425514138742551739936872834487840467749481612107710893663288647103555268858336789902424797983259532796480325393430612116369579688690232105143462251828180143416043568604618965472048240278816940374340797640977973281183208177745483278758845029792806474396402677961221662775742295848567421496582453202781635398842010257245236047445420314591790742130366342803328425677542834627425484133514739870982182924688195918917908170264062667085896179735594900780572427510076748844708559772747857629535143763921822724037147637682244004601408499347829984363093856089661996992960050024268562944793030306324097475241946278495894907177784442236165403310558096803431297188625187358127749667627476211203715302865538351909915700514602729811582416216485642531852293620489746305713785490195849084363221159215600394908113902646507498625695286108083548598139485654588365072185068416133423641027257324543098686390975450093914313665241373648138993775788386190632910043444678942255719443173258407003269836569707419208210620435312713826567594178803028242176251142641287749249494822022682848064377712310540340176049628707593182515249372715533044762819072192401942506891135272718424134844191887217793252482739179034646148853335396465766868458738709204822906536129446638074886421303545851474493745467635312566908316747320655130101099514228826214438824753927959982498734113708303703403877639484208931141998384896941034407555934920519704229288330272138590441423031507000088480757196637938163088880536170676672309955546744788439274998923656435688796852316751827375044073893734533263614210311820163079230221536445213495930938002942846244766845103613458209055034414613820044066415207802605594513046363967624686756478698469013349166603236568199642344251733883289243579812896428392118708071735735260929490355656841045341256398377139497663460536795401588379075873209600685090600587971045732523860403960756507659022621181133062829684917693136447678945776530244518260489078180967295690426140208787583684400695618626737393652675517241212871910174554070290709171707531675443094044132867258987240666856434795426377257392327438965217486062862707816200649172607305509297200257646754746322670809066342409419315414928149024715113976549785359664454638170859493399496048399657282210246775376547021168438587861521773212514782009185404789536148031332500643231943799671776182079473525630621020283001884518781154667250951136863016712764566786273104654131852631013834915816951757981963444060631853226940160046274193941434489161513786325765813233968940982133814939329198106148687931154035022787300166484112557277315212976574627364875336357283258637289283320872816290740052347270402787741568161958239431472897362096700615961279670669138384348855021067655091317118728289627506076328320709920679140359539315056646194699048058620286690255347804100222215044050090414884554899887347098792483603563976764183573651660815657648996425969038957509727268857617187208142629886955616705761219079389747551869608444447142000956854315487069005539058836811385303453487414664022029675962624544754175886675391138786509609084678690727804580814541039263571130144814500675840152713341896306403347735839526566435173302072499185180113438148869033522493809358761165795333583459001551032226707762881516402016491640639210171178008097453435409143662361312810791936779038660213553817288893936807759719661659117611245482474532487127842289265007520943471636557581749714049225979231604987001542639212317057692602145877241276140891530682245768168675910663586041951190664034652492400721989874787003449837726642554621400376536559959640740269480130622691208440828590163488343820732247735257654152370052845479200653364205922878808910905290346189821720673581253983574586042544150859045886909853661552012654404375492770120625061790641591127597674560825045502411734299052006944583377014226298932382301661009581376781074026209966986087818095429966345934735192931025006775658467189845424051809770959453954319197026542126552446571929209251056341799983768350217153535496181763503307111433311094333229814171236207214299086888504687348071796835472099936837370276395259207729569749727013925305705923777872473320267984280244842278860785080269455563797360613531505267303022417405430803550562052648468492703140459513887110610151032170416093144975125759625173521189654481537150633081452798186234136683785703077272063093326550801805039691283679429205080946299218956749006248216738299930917259288139919990880700354252523968981643789020684024790728735204638558574799000018598151478819540607738706174139352602147945453230774422734591028178808535595346241768966801228305808168340994276521594572318048476776270623554256198490498989969094778872204071431552755925637807506073382961590955394411152550509376844958567095898637387114737601038631574280015725087192194694082871408426714367761719364882580037985382840956885361727205022108850347380901746975837325927619980137852223655224674906651733449800658937481287675491207772510698542939028572368827672047545199070779145927908402445272144763357523032363727174914555547594270773912961554305244952392797939940029396479421849423516844879087089065841030709590145636249689365778539900335590375115742287762402069957364582736943151461233471192374399532986270095153924709881110665495462030793528269868990426778911388186716694793480042569850717656109069847413806106271749818981450747821212506394887730235921065996961920228557512801921929894443680240695123491077671735321331754719357875962313529201265098733700565963186960208341151581876457030339319449842583921586770875588783623491950311349433029109995454740332908064251903788814245796580443430960846801183846723267163016360889381364114227620408416921790058155938703689805943140352417053197017095488415294780859592869894490119007774772049447953429945746342802470940372218478979177418963566301330029018917824166555556038063213129432867731883467524747747262831460061449987880841609356924494803666773459036628894156089643145983759070938979729032559706057827416507371467415325060899286003753086350778941164889805002891745649876277951754466231542207973726060806251832541211356038576278817609703864217629538083498612118172190393456888002472958971038789368841959732469715664745554073997343776051279858573945673306053261674445936660710856501795672670537644165964754111392628611509698112378350493130410918499372399394963224831402342579511190459248033194128108012118340651829069700442564006798632612786289743444013928918765447093371255760470149005542273448362186131459418299976526948084029225077844917652759334960402295629444085087888666295031836807381205602407508373819371927503004358765206854865907774906987844156857774312747985175524329342366890086731809605086993710564994668813512033284274155760624395322056777932279733876583101250907839864039181422897178446632750936397918086293087211062388763028806569497291524505857081825736751587313380158409701860640199187773432182979097880611502200783408457724717232135186607499497317246039067384829635948262524055467227759661973259574477236834332550673563021517628396992011689933742814104654031729591620248576449280319444982872182537034748224561365212337948732123533696912060279927776485722776630309947762396977403789448931379967635338941232483227113939388827781458328542710124797740972379697093148858871171444227857056035396991529457225301663887281924300474131882654032296924641888208666622730821469986087751488376920393931335395090499197524111272438398387091190977281087321029966722654086025972552491000869732928126719656869792017607742944176768960005661477417534207292360506536368881900069252938549749241121123749298806731558777707612697223841834317716227506471189744400723853954266308309018782042104456767692596821059033393216148676518664427431977846828406545503353796061494118842274420949707900012220561006955719704224520648364859433360059566810023147186548404298620765441236901813182202567611309906595861488645839712940490535511982582764851570249082361030467710352118311470257696026823726418908079179480078949849485935702313359060981499169706225445116294829779249983243649356963498251508834536792703336973758688281827665918003889668771216486439660065908345961248595488327105475054320513214395002101922516903367676471540641852810127502505882650213920362454838720456375814783463547755590373490757920667496688260215030412387655411670971757417159087115023528517571900654994339421057431380774446237203914420961889988387807928823419472240649003018126044584933409833789124948005659692944727166107133972745310091875618796980528736368760088064705855490651541578573032070378289405021890055074167821377978716905049047603547596887041935359049252567001479459591083864733177985744026475029161383964981172708837806012058547278673229026146142936288036130464164881337602362234235417199756752989013722607761551876996860655283963314455670736348976168511136400312514450097330996741579890511272409080744084958698673136003529305375325227279390135250217484693403608482690659713064954630477821983739632969664455761481119472007101278405695996018480425080719695337723037847492101840392093180245036407103215356164004414276417578189016609403991909167914964956311307026409363681212062237494065365783844211628370507984571020132501001277364138402643716230362524220985062895678767176310840911068178021454836788785564493371443691460602367109387255542021702952511049456001760057033391343900948593831229506434892450575859856839748805529917387647748028250839186503071204373776593563162494655168308009712471807374955091548835147470299034853014289835338394379592596725522821482345696891282971809471596334748597483629443680974066145131785296129771970136323049213283575873351514177116607249709469514256024840402793003451230984421625625176196875152743951610759646369557427379260565584657008789349835229581349736332142686513484092204452514928929749743499105183847469036872741502210809400618893733715096909153818758207389952269059392953166121295353721993587842359880966992285828657340311506465452663350302320814475797479638274518444634890172565212779907330837097168009620890517134457453587344184539743041047195585704371469861571892193727284716794609184714584714957300105288082861006173939952182259953383778178513903787374831284185790158433562737697858874120989375739895101853580675903850390676325554609742384093978448159100669187116834181397248648454747305817280472172334050002688608392978834753571816847504932750177109554887521385603825102309148004104661743198847574984070246448172575805041669229590714713528342478439345721461210999957395433170096455820118834539336635988060512757676284560040756595073254993585935345077110088973389938693343734441865650184121023718254159139636283885787274306958721673807112093866086620547226840607748606494236738546331917638330782877861711433449090097294529067460275979022535490925307564963716257536979185973097606911510538416036531446531306961269701977146160258647165807107370562318422468211316132219184994213311482752031631298473609105240087066794300142860637537004053571859842582259803831902049201476430082528997562525188321182489601351268163429189948167318897787122434448616085423521576380561420458175902506636269861432874933500841700294060437291355094455597031896435592296279909256646369506718649304122621167530079544809859158452077902031961997974412795205688716200462885459474803686822018775493970849751220169892906846415232020135364339970121787298553454801863011623589806090471475998765245219965285015355839787286929216586913862435960218564904958084589772144826773997060071969587374753309906182755721672596422819027337322860843206775925594691670463335313241136434500434088356776916137064772099054909896459487295991073840199697595624635115258113714585274093035290455061282541502171723261065430520953348834305896595312738726693218627400131924553960620700979430101307586756032832851681162412673899576184935282654780354042683271783015120522457079226972950045984612905829097046442660141561291600780278589544764705098389980897646857669747303031191386254153809250204844104810855418609099757178019706079226720776931836373561903254632023197122121118183406100096487950670839494356699688912431441894676452190991126562686725753442940298707599565743302245335574453738517992298079786127595250253127005749315976628411707482220000500221223650743781134627793019605487267540159218530496926144004299953551196105465700808086928749839864162353019651261013283808836304167737187300047589126803814174467757842082992319327238055231281382453155335386214581317403334677280308653078197092642732966664204569498525876550975915731031646553406687551379478280386459012272210201853877542585666175234721309555742639080289895752564335888927925263302880176082045166407517741348535603257997592639533708525481480329409836724998705145736436177024338985244408403773360265306107964423382773326831537486657364620612192976415477065652119013041860379642932278822701988609498529859686504322666277690192583194346753897769759500048633372659582167391191195200569457784242551995642921427796760875947859415005345927929638044584187153406532532670296703374117979741325662330886077081317791471740664786221387867621836550079039791635515439850470907960217976370006386156855155469890231203070242541299791699098462787707772829286608152600134818410748254912536708059446608580033337212360669194231420225077268231290956341883682857680947761986452354886968921038459114519845423144475932853538309079306122033726093885495329074835519051578696754515124018989750943801063702495520915868204353034160290189871063596796698623865765258809631357905891509049730696935587796790405864851956912146245521675323407661407070883557228237766361480216921418478091554703772004478650999681187855336689831893618102170395444094136105742369537397191054080520838377392983564047898324813539581831745827397412973527754138057976763587476655709263791551806573486086256900147946597443753469139501155430798665502823857975772081114201998191629527238768555454678765008502483129764498712889043114698535486421345917310919642233656036860436146439316858166572911909656781918769018954779013782695766836246964655996278557936481799266355293691206328144032429415320067604224228478016544204190154993092611259152997041457770533188194066696189842142949962186346944210835359900682794973355480097359224283299160649688540042236232100462811999661381510649416168055565239117224751319474361549796456929474726011789764368386641220793312272147995921694619798337338563644622428957641391033275176328194694240771619064697391587904057088941142460691835814116611252446012493810813550677573061209462861568758111827354502749616706899328332312305185566097355028457517185355749135972205914274670390399841063318371411596396007716429816418417341056393650443502070765465846839988295374181160871635178698685848165644183922160560569212869771782368560826433097571875545852553908494621430037648051812287754991826114164542040995718762901543663799372915230662533498140223041006349265888521956678548918245891288645632868494709222484987717000390910529040192184496400806486356499530033632580531235796241969618073478643253058286501218701818868497621580802361990507930853933294921177651086411934301498332547732983067260644410091208785263973878930418634204075456605669328775111349168269248789076263250209464010711707131484195033658355760039537196127460792609799969432165951016406404575520270904211302402510706560209926399503421397061574248283501171048874846693086173992558331592524610343662868769786756913796389434510625804016243716080763024677025778199333823201424198764399393669091453329994882550692887398106150177046589851092427259094546239364658791373957425295516954137456408315583560671447887195531666526803147741561267338939193826833783430981023208698150708205713871417445166713488773735321300837315717263869012198556588202466780694519996581673168256363132319660257245778252630491692044103597564326181512384088727471807386115123344250367045356352479012633371312968840318885757683324958121523833043798928478121215331884689163993850595010154699819387813087773864087474628522003645893836870948847358924997520153838878358435397135990487700575438362967146048280178962496997922799035976392654684457918014554806797814716268904259003771787013215345892679192984608655432167547325262587798243290865506665166162857024135324368193049689399080450401787545607171206942127413664997784279783802045555952967350562169976126941759824958480350572954447884900955277400114392476856073290185368245729608522479967445838293200640424908716627887854155409130387133767062427317207479768582892158469568181399936400921195872176362809889544964284233820156557241811051294430908969554296639863180054330945467541953859833222584265983285325950612784877146255600294504614462912167627743151634861227572853993355683738233940143322225851231798829923910155838815620906670113694757869355733873252269842312143005127080496936214304539996252524347746913220885379367663114396734414887682582434634744154653557174734417738130717815376622083449819076895012220427737303265343147823942476759252607507258526139579630501717948372679216048967090994451904573040722668416385158624055738991980581822232235392103223910579392582813585139198754390927466040452552652907032223780220141428113722579809607156267655373436633183085613244337056109454664680618136328600725215357360464464672512307150937820205508856832897717763765147154856773669764396612168226147633569127979434988645042501586324391154960671349237139397308932997872583406812098751975616193250102328824275915966246488754197755874137236418823602745332708219515974946645049271075759127781102106037587309311582810104371035351738395047130005124061014700236027821385960699383970422656564655025690119065718028243901777960807325939926944056560180900067674691821924307639702632146721766270276315767760653261723854061579275759971843302378974974355983884148459148817071975110874769667954938214969766293181802461766642196627002317548801283029014422800276293229400686015513801312327901371718678382130330641700269731896773565660286115954373352365098894327953362076072711958454228533138195344882724443626788714766553115287515334322022376441386744125871049358242643770338240564294315028720379395798172212314919116379530749578167813067539593991117174553922197045653565520096291548517048249409263289989544814009138361494025805675363391300546421481996136042026369504088390122950573397662457550812011150392099403332900254290531017006468096398907373010333668797365151840047994953084759614177701430046184378774233091649713049914408089036838187060306665921398572783525037660601614863094449688951641537614709325150271288258017713404758062587079604807390317347501991066370923762804834249767300651623409035870963163525078840262520185890707197234892505860095677930641197005681126824290950160959310350164203338345747209334914472979467083903475433843504936164820660031731571483059061406169548871011736805006529095095905229816783576149579829263532557304652697075614595508050334294455639295516592979314435395746466030543723622380961788485196041573825796726506246795942613955797319101120789352173820426114562541979339961120752645352926228417240909234114959616522172763205784604772128053032143557588978318210164527932533010740450210945555044513388701755568713694005384461944263127090475507502066851350556509954563242481919397186433976290622736326138514866517362605047063631052857096931879980279828740722531694293084088161267698327742540565251744997263170787090280022389165798593537617814855263363912893878882743608708616346826818427438277953233654778318361314170935490417681461583175584117514927968390277780300891404761984450654777894033464596364455662351060987522888315165860948677096155736149672716020672433382341000379987400759040324756985735999223493227996913548405667514784170175860393196619626396405001647605173124302524335785695918755299008925595764814464155329070785584718509302435097884495773449346324143295002961450748949974261650881806751173194452718398953696771936349231699307004218636316146427034134490240441735498666568700097689896485063490182027383383653508259941084915421830258020802800098273290384453524235917524506206282187615929552007711323078356427019867735330997605664733649089890076916668681071229793931220899577418332950615319418864316208129983552137303182163235291498271070115115397923721654605432377411639920098928649776949191702943617323183725903987810836403040918452327686850699485135267638629461891902081477304425687380974859750671653132609952504811112001383565084447512189254902378317016906317822730527939498860781787251411501782123868242643249058942889962087803038354831094826035593010770224363847014729073864943420873002607499002348247455028073972633870272344461939622298057498400013022675367338699730362232647810731862527850973148393898889278708591334547581123583860786860031526547668624137049533390301561299091641273642995781185919197179564639280092561200712468724396027322630317465102036557057172956816965673061599027606151181655943324364797504765078020740828575631307675806247137965028279601803986959933541209830400662919229449839493883647821190226958538630664152473924158083673104448294083615730536236340309038060530829474533812225665721315617552237525965331024129813175648405900036470466258385201542113387776331615984141021042461329554719169486158085006308807779208320673342493337544057816169158873966264041898638433229011181377992378680018465710861213640928976592207007177604060280378547853899290667077824324483511990369344226878557480388863442137975238617211071074959403013835401022598791010501639852680813308532924446058054513972281382740093266687628031178008146896370316822036098352259406646315025806771181806269320163385021428674609674411274792681830315546574137961348353730058282916435354791302331814629288202658406690737027911953510242519615272508901341665270063571043458886263671114755935340976786848158097793447357421263500034156718774641733949741122179922413272334831785576640739271429622819291301895527274653348112345787592223099727153305237882763811781008586874834323695008594229409629219539601968607841075333832429352443533722664038834749644407367837585123115057102487206823633066408916429897543521738825633757631421218883144862305517937299910451017946011181410854722743928550823940069094716327223420935294024107682477637774369144323959942137671469234262120419533063945116469389306678850975221658177664253548100627287210168969727624539346991854737176090068077117233666329908753265586212177545015821404658913393686212819159344217710838365223395229549716005154260777237513748758085292102182626305515456044485035006764710991960633737641949581210388042238523394727327239071258062026845902455221219973711752159844001971058021421376414064096433667603392898876262345023962175010410613518032663906843320981001504448663144088022736595145646513712470581021346126297698549063860363044595937209184438241572146055829642403702680831233501144164229102079409657837369015430352753718505766360932053885908915793025188326983760009595653187297999907816686428348668625248293294602048705457046855298925110013758469272019990233949485465229714249572153840285744744839787834077467049903093063857516766384200175611232513454748880733555994326265958759647925670222728128030993429801714644725383074510921528637392372501885419676526902328021989373744204507414171837830931655406118434466246378222352117715503929377403257142769553010950310813654357250865321953458826207447634953665697678484624436396048573225309672259749584379315506817099737364922489937401139712789027564775660676233899196664170756524707114881504276705649286392561706635863474884328258698918704852490584113373288439892154483981943760132754806340153420680732763587701317843648105948206048200481594665660698697952076658513503085587122608696052988685150092863219249360950044660873090933862285889093710130926419314515168756489656183059102233926172413462480967438824795140498118749241307743193638592801965348493954405853199566575503195313186017175537601991058087385977933929409009609257262431082405186675297204290993446773915041362663884955716914149150979683993233253866081313252522718451522927635194350710978693688211276507514156185201032082226488091737576015004820813743966794919962546307677668733050722150547195481619104740974739803930991087678272484712708707995072450811278629242580102858787442781515027407999318376753761591036299253330182954520723764297722227283248123213865239188645626925640340649968409834977191057810515189608767338969469818970323167334120162166925233271518763252783316336399585495294937123577977507787315579692006629857944106351393367711981115175953769882552967297250108717822432234836739920036832502991624816229235691464829183180741855239884994113543020027552822277094436641152687145690860558941554239684004298810789515901701549776379751162512172308769944325926418458072139687568837674268820512832625229860160692178711940885058497804569317479652404601244180059297860722466618150643188174047085288766730731118159403293571897623587976764940080629785219612438070111862629639215651375395486910242689764299239281656516224937151505164891121966188288855727194026528169376917021369814993866971280634927030132121762748989380422450254905482600173757138728664346745645251432693267342730614843315818541030121301096920245339074540724555151979776700749637029691569616129048008853856360620216648793711535364390558283678842626624958205174451430607795783068086566667957278187137186275000242913511879840721554895703924957340639401110588945251668059118501451176765505587408904780470491625368895153718019416641448749643455721264048343754205486429458222351644784497791200063248632378110573618266353056936135693148058313848200327138589132098105417866327602755912477387140181201980948574351999865504709659115652025435293602298318088998363768112733378954118256731570952534620798970974297869660935283524009737487876659133372281511001981027159640703555033772734555538347385372726232453472067241338083882658692514362583110212320428545552886242313876258490333677958681359952394719975832861097848719922218722048964475187295877701610280399874021198506514934240036546220144646565645337461215740351902293833424355678252904077218239720920444165109245734258099078188162082589678225438053106427483102656846682303520096653941698865391503224013436215436399963418419701495322540691443071253147290526758259998470394924671140292936844245765402895956331863773210642437530917189246256247963696480620520325504234705105255326514557216466774003264071162870873447296447110160508509760315103806894390484203717283277948249605017078979503293764060862970101825528873022773508486545795647703853649567461648200828465715842922804084336739093781218157432881217940086667941377116220959505801962215440833182764865329419474812254438168066937352464852941545077408181127576232121369801068503301723338496262549733550467095115444975884655076355388428987833794381134129820206273904075180117637439917116582200340795418633389040657737410423981332720636811309351361831274953886581625244008807111247116351126798508992390508547161143136388250529813430091509969055636621684034050744813293168527157307302017068775742196638257765419849773366405632393195187986933289365940638592476653966621996330668397891862724564218574230758235250797785866656325667382153378946753199741672890325632276348763562634316516326295434587716897703657204849049166031822933697325048619110455062956288865475905363710793042187439185973053073175521625014049324987144250807177377652648268479573840918902306888738466763866288695115779529176503845798233990656167719087905581473644694359245390103134072101891344510039148435347233144824365646943534225876733572864731362900602577007611767639003271801777917042275692325091192259506027182361941572459107734325699720093864381082540423393428601040604813245558845695839483333402445604538623638979480136531849663878110622830455711844838916624254602276306592264740675599961652048514964469852884452961683768934991551912991707208690874912589078107493723610362400636200290798300045036118711659540861507307279657438325417998545379333428253111742642565744709526384824871599716899327355816705868281086154266370161203446374819134888931963443674948769145180454277114319258649430637372025855083606239264533957508866944020106859809977405217725731807040835364763470218325944097061620517568093600042055544729030670890458073634803908846942425335273044447224946487796112406464657486344663474919480974600126345336156245033115582090704087480216899142514129404819179662229874087258822831416429740909522259572713183154618856595385001647411958925464291021194774864868840073094052014458959143727417107944309480170969932313392810058876943879841647664472997635441638461986261303252313929622799320241259567955202757460839461630935644137450006409328915129348515785353371629146566548545030470450777475292266004688139343075944150694189663676997306912321306356144950884694904566090862723602642550137454739912880330015688385111097940177054626992862627229476792756686385871907550295622306859969742091337265067362400495987948759610659953226591918117432138367664074442863120702724067306215035189604195364335636776214438129877341317127641136927951528446101067162122817544389547436530906644742519522812836203870854982143434825861174900441093338140798224539613149261642697774657199942397321965158835712336994061518897499612750950846587401727645537092173580790867061638677371894863918995484321361334423994538866830325848736159337274481168046238539005369847965744699864881727663527863292396069487021057841016095761394412709710854398063490704756015182335193327445287116984929018929649217840971517000762675848972387078286648185257224183734695500498631201208298705341460891443048751386649417497625426724791331849118266427775180478122835306024721046275077241266542807141124369626478322253005800485996063878719641767856953875197240956828340352924821887367454088651484239112124744842348018512473508829712446759208444758884312496172293081187974392424047004757252998222561517607822488897141536648093721791844133228246218269984989432456795346730498603087945087265766211131371249892959560966742794885040847174235400565763597902432811944703735493757108528246198403417546152986258758784671650817079112352088591861736767675208522058931920871271445309655503498433862679734769209554182041629736606003863284370305034420045584899964880479426316337246131897174487022782361542609350410850881309601097211166817555818217899333147445949558228878964587726878171579143635712492944782985660273546915390524048418695782162430779934931427267315677561784003375465591697067399950788218683376439117319870721255517001636972346214377209306984218856936728487475003385898714492216877741819702972256252845567322279814163857650046142136402140373065641620870466404284757084899071296798323715623691785279853291925014192692798468587280791053555080376091594128026768432288553744874593175302535817388461661548023407086883272354875068920970889529540848464352703140953000704736625950036795633594363505579753062293715218618200293823184887729507751689946962306857677861812377947226388321218172957070968860728669581845744094282827747475098612844348855246637860404881014181789926695938467827309428314453282521249506812614361477786464420307839796531817690166451506263356639866751481962319074473506421126606952311910844092532683934828580570233384406371228960541518069479434224075019603010894304747869656437376022565323989949014680828101220293355734364032681808818497833496233339381565939618710059554921878814475355212837093114635991239333897214429691174517328896514414301366950655019585980883109504821651030635051333525099062170261937805097480857822320085688224834321225470905835812445170247033327186980568327270635141491545776300280188941701594240537025239584276772258098452031146062690941212613768198628008218472774058931066322670672527332708528457692625703432766810219639441854329281844149148190395036040160207624219365832628844795437437980584804311240902159364010074789078191289164189351092886738997674406320782437815234843311394061102318001282816164426112997596812330525900106022799446808466981683123634061296138698454478820896015859908949973395282990452758508483728909823300063894203403719511804574341907790624842724695882062117983184831346814333958359952663913315131230329091766689255711792874635512418611078353017807084638817214477276050095099093745532067529158462989668545889426596488201905164214343208322393312102320343697122492913507694438431631157374621283867952953633583251089062568619614362253928410972343250515044088301352125507767227625429628544194826910903936311887285175426759245352841299842346182434363622234654769361273582851160425205050469836968046351628355678680257253157859753814261679450470905404789950166216807118277031683677505655040935232535730069293716580806798631618253776084503366681429479253471779705881197145070226128351586811494265150237474781707260084505353650800440798637107866677875363088237276826113891635529694592741867641248885426035238923228120616203286526532964370323266586219883851931645936972534378214285063071367056528110159125014945511963852755011356584337650372510514847313079508722156734941894078349176635499895651510708079801367962900749217586770772027841242101523385684373140690738489917226191212150396093178345565702756385600779195419105796424697188450876479689693881382433212270032343043058271715379243998761082978646426728293985289546689113894839274482327333255000894751003642612365961464729655785588839526347406660724452821001236893238738219419426120079248385398617100161822362009023944396379315354004749411921196907101483641679192857672329946369894190928755906789536720056275513074012515503385556766447098952091376691065231513876996222963030267142000254208435524133093536224863859880724690808997047934384314484979915134202301669483775624297986565491650344086103857500280624027344470862784519228258247439714243068118904315747939808716460772452129446657607829870921672855366340593678616849388018802507560833318102337465913203455696627495763339741241746999355599128696747978063756597491812891460571750695255243780303310094919535850577941486251045908220251090299166943402388510761241562523136147877776542884491358823442060819978481215627951035309737102963973346279673067189303817979755154801140486388298766280045128459281859944496116231541569802717003513327700117634269313546188177059538727591833384269354577704215240826842484532406644320390324022793781473301652503760296706504707606725605472601151392142740218196060401331740950362410115338653049510894974741528863370608127533912232193232919413568051609780208757133734957366346712795622952738749882170503037724718177488863289279142248641658871541376540128769379185558674168036292365135609376133844307039132217120296443008691008123285343402412742562769686329495478451060937834271798670286602220695693253327597018403703175241620433864902035965485373337141512397866060195088974155671076193922848257605537745890557694127706916702558603266176780834043197362811819849399973322852207397763201811059423283312719801456500081828247165836477674181533573302324751451897904871645309214905158965923104661439038422012899233616192180627588688683423635127550197924877630199723020898527634349334445153950497524626724976079877000953271078929607893728624171133126117658393244882920182845789601007759965007597336127316041774491897745094187909509462798805364233643175365805153540542103936769491984799928874884854521599164108505775015619059966067129132813861531175897086704301465775914163901237606189903666406103456854852170743109490205148999784204474759412583209113302450284000455223257722052884618198169558891876039718129691417311176149514336367106674260995311232562112629709893911345769349010547724914339125621740537064394323762395384141138797441864052427467658064777169424637483023126717088941953167349074099870089529696610245832752752973549686333671037356567015086356272275857735577029140334163052879762863642753761942081460269057423995812886172713970613060465095730361472182901552939139863605608876700128152601765086702958355732182059747357699438741664730154910435446455606278147736007654671361940879253105461259029395762325690904488669873697955737647729169296764970050816671442991219958976108806900638356090788789154329200347139579345766786598285943833233148905787105758941155862665767328878575049454660482210722813675086436445886342431808384560174937503660858610225005525198515003847483996889067264750499529805215557689695773638072247906762064433721498949912029721831969214209717365079352881522503629837237871408399990576434366708432908870971184374049843664245820166651412826551880586074418347422148312168435052752896591091192450559548757560126452529943125639339803590108311003272812664088800305942796854909003217264127498689569664930134936967918270398654235119736319515621638342313367036368945766359864913273869123580261459692267261036096000235099917892565311733983544396120878189186507927895345968607787295881697623960236536169411432134910297240420212926647205527386802982973678592780976844523556289004350583508190602013967144675212810370409833621729621841212130555831934630421045007646130939933589263179323947021100080849928978913518325186152974851488706857146943994482714830067699459285541600519984161283542223941542896703000113560171419490843632464471943833600875998251128368683436346773411681110482200314591741738107295098599720728811202163907903125289938206364985703264145541783684842468970629675348092311835008576093560057321641653910839841619900919987660556655568879255286518046176275085716220472093038092931929128048114602173279286928212035028411556181471046224533504898115250111957325843821043628990536010133929275322122851319985502695933960064584932012296480803498360936891839899729065352451874686552274248340773419508670163031385324677369970497406245246705745728701270250295384346602457930843230452986569268179020362674139242141015084146759903594297305377142594873429475656444164309535896528874429680122349597047380029344936485510239150245486981661366984065690510351747865573881413977412570265750725702393306374227446540452244044214768885043524552740213749229334384319245126565290950908876098858807885062236999465847613916333309018878710460879883579625067712518461840114087105577910487653630850720096941707295187812191950128156178086297528645514943044667027741431564399418046150351900019738305874244756771296882478276701685998966864011985529545044520498042656115803314097754129472866614056812557487788934050095059130107069415363740791467227422468943603712619422187254112186771238768802915174546280134827793685765779693255017418417428088919303169888983530176829930609817319941239316533085114451215264292738292384875271704547065092882127304882853955482895753961784343581489192694335476040627866258046066787240347904897057951586040040974939149141262982648288560467279546216673075701759306041015843811378946715067637286353961114875402420531899145753387952182127696628768650670801978919311915620842297165955690131533827819985631810813618299761806190972665368137380044532959230477109581770605757655800947985526805980149579214004547129058932851887141459989730859677981445810592382568499523388614891948305809262489534824055610644426596364040872385804741424802576848846353897243956344639379424612427258547324676251479437978411454948476159939958443079125056832342702082696929182089500080636790178322221535602723057220199846504349018265195800283000169429279228862857009743888126284185394949228662022127809035678436270451651560089559967228729264071148415526789422577767848709923986497680406997965722062757065830704704557024742656166329302110668172367359654295663352470369189237192011430503446622301203621004124972660997008695615256063311136000698521567601286704624541092361599472404786064192307119276637443818793723026723090470880254328265065489671722004672531757955762143116879568485541806211017678826263227509034707733005051484964866284327374495544123890628235891592072970517612232446317410020902543080553513003044702763027898048895925573793488126825319705936291484029073104970088905211018747207452730417999397619418306261093705305174564354325081189566855251862168496741352038432250840754868717936435249008387663659935662549991207541616387249446964561028001606078916821353585550563101240407371677601962199266871058519944520564762221558587925009406978662136112565472290339628291659601374897643985368383964226845022019652955817983882331159645313569466013267521361433202976644201732324295605959801039191928434768645095270248234718110817367765305901697574800162310952996362626180746669883380600526732474594719193892150437215834661449656737111526547070359569196882371780645419156700558728041423781858169572413613475229141225142613245119584622697176574976375531452825261523765658656172506514995068271462049396226175994278203170969294954427813494778223565433852149392450207341304410394929880036735954152700607265608265161627929000924832863281064795709310612500185196749256065688824816944880410105088306321670414182642987810965734303077820175911372052280816765686019725937737298883158481164223115091185789660822063706870735930271308990539947542267235209447308981951184207769007627670287665111972667830443558096029599409432610877745291359258731093792465036922088173346939761471028440306991129526968346353534887443235233549240722143567291632083021392012006817388521258464591613979531346905821752023032014456374842968940246639916454390387090112728986776190826532603221826194561824361674651370448240589879982932175676818809554586914509439483647859619994074651017831657648814955930644451397121296472827422865647075193467255784845425891582631184412221239484181803010728752493438131550606628686135173516983980533467335658067882201939894465568704150134646396290030791066374396768160111099385753243486695706605174889244340349393642830199729957847119931143581207905509804391215422997766034034877824270650954791192504307768021246950651640606919309826801128483604765149597875602555032515458922241860998571239315992593281435551210120727564852066446388305050699306176609049042424447510597867011096886764120596046198466217990227906142809342813688140783085768099674167570301610343943665085922412860537799460755216087034096154034592805189571145941392115704855071352746761540042235293831150485383322670572048318192039810058552853930359255001357501660217453434073265108302349951035686183936980275909973315337238910172435866192250990633536675580855813450378238325252308510396886612398061436786714334001382164498417216404128377365535829397133760318838246631168847592202564476668851569450870362051315804012458097900873903800875043810480967596936640049338550407162347568112744029344096830802730374908229275315147655749740986697857518609451164302281669876437168732543145497432232804428434580690788521763002311626013833666098821658674454385252857262017466530186613009998314777997980826035977158082509790492805096125317676658903252052537241786241423130739708479576847215356264186569957853301207943414410331818725174988631110061681769756622000503319061728640356549881915860087603369263731008172262736067004057691021832821448841525705649284718478733750803698772632668376615054301596809644162348152823411583664639941970404706010353522477158640674278537255539805313135186079169010431318301776827431057205520408418943903102675497464710940544218471027055216645270642356674199548523132134739608808532955890037080891047623370706812874613640497723889606744021218340211065792121239013494924714077835250078328558331783984347086852915228300302126254172576121379481402819969071395096827075973296610007437963225973400856325133098485179776099765229115463507579759361688931834439747339133532159897114576029516796812690666517488577009905877222771572907087254036069494582383456577118660545221766432594581277152422636091385481639933871121079149391933843388599259194771636223091185436921693080857448431485015819936863912223861624519747545663004530078189221362797088078546449289054782887685169453053576334188754727749858398526069707245414705977616536576014433263851308062064924331611278319088554497593472904215473480529048600050793789194258723858271717576115915195196971064890886263586775480055753089968272308362835035318989074087112710293855950574308882164396008269696124930253218337924410287542177478414115957131455874735172447918856399448406188988614464325993593652831105793444240458837738640744560180908343653470376345922874743323399403235047004782589866165520478954192477517579420092794711661555465875227015259552420623155500092192658544021474853272461708614412631046738080238970137954814080353643845106158402250010651604068711328184308638229906552196433094492770650304593239349916023323294496119155853279089343972175691993351225394291107021594614137613936844642306394651473683342628581370619194325588186924298604607466027827052574409466203460492484819460544392397200104298193727158489979279734234817082397373651283992490325705369920669339270409796188464514076630609741593780412458328894273999722181719920815989752545799974795258882061241305773566992461837136321613793935856733207891990739693444863319777595513039112179010268782400218043177775266072899158840737169798212522576573698060417952304971300468187794913786332305877930177626858579810065682684282212645573946041654873665679405413519068059289079969093579916876210886538917962578578773201234392981375241586763716841994076524006751678750119291634372260870389473802823633895462242149044792469938356614022120029869454962765357950927086589288928558638695083824695541745582707152985843325310726593613842852348694737479221023351960570236311620634460437653812740453997795015871498025909994647907049887759356647337617721733066082525483920976280066403851892812888390179238998228723384899248313706342675364241100830126940762811840213835442669401244164043180082287335516176518195379401893841862867708399123766948967445093215399805212098806144484780509902918259764542667285983196255176869079571198449821260519377231194342358942247888876664424213326424643074880492915174254608077037077574424065329673781940003441072569891252212263411355262115429104023908122132190005870616636272094035070195350927359633489259847220636523105862811733170296673932265780472008773109393525419741503898530876885444463768086970286616645663806081620553296652025247761356319178604385337738911996650325208527786784871638131349932459494870783519053952825852455428001617362167610834317595687997417547763340201575826547619033099097971603490924024183753348249116142651334804580845887082284274750680375221590776889371948556196599756077397139293575743550749811877145114720255005327876213783296434007656013324620644305899391630721457191202737480133209147589510376374565283883719904901015526510646740354553470594519808241636397838541627449092217410379861945164393581445094994154309661322104023951715344214668452509415360120007405914177036317011089885535586987320600261410814730077624848024186273098592885911794411438494500153481020250734299096960863185078182093977649348897020477142300932189258770252966256336648143984632384674787651804383546664843870181177665640415904591649001747742847964246225697168912115593809458371766768654259803969287485222634392486424414501393000643225341545966898797662622152416951972846851751698562285836736811957348965218641645534494759271323734312229166263698293289542462117419699981375193871094906544745041972576336111938343763148909404956000640239204261557890343724600224011197089102133072800795946018463852929988702904851712376140754870217191685129678498897890028852527857687963748153036094977214437671288392837118842733603594783765917392791208977894121525672955153463654771063553660237678996681627398536374671850225360884285030974284752748411045704973800286079931815724209116213291386643444367806617598863390119689048521039169276220318627439411096692904593003341368037173382731432683875765588011880988000563282479701183105978375092625169725186969298813731023089836205744940887504238894460242001950653751849922335091066198674374332186773282171467801131642612020685380736001863396802117496434716014637064911629745203330632595979153518308996189711858034787612895375914110614043735730325356040179056885996013941670682483784969481325542195236445557110383044343596144269133625735256620707705381873731489828244046672308130258455245950569756394213874506427004601470036090723721241847113097225493784373352181506169682792474611464317649868269008182929873158618035772818631602021709392303356178419346273213150483057527525734452146184681618600738144369246725261298010416961240382333645629371519667537524586101154059950394349020030862977345101329382397864982332569395398241632850444178500566586340936165772955006238513023838671956035341235990584645563949572024183625776918098057677393698407378093291116982239088336891369044507657023532666611869307967877018625840485536099325247363621870523553008069117494002062431731533828420509753061336650136256642415156593623775205568412934158718708225371555820440848230374663712704646267312557109350635203453772572177706266846432893918688659207656361131719595166459707836562357856644865013999962306375054877571132505897119411171370832213762740431103399136456300051005431010407527569139930475525783413767807565330849266087635700705145920915114443520196353437052665364824809559063643831826450629017894047991569408358183669256506863978064309446168883794114574887901673603304847905848260351611438788075606092884503103372615769186328441988043433640506213449883094803195338580258420038321974339803438629517718996391776687233327981873182971999022156563295123523634720803576200066417049579714226483007117565683416785514605272014928915613119594345810747943876803056116215647867534122512814717387977326457797022743951305648673044293418196024521173527081007103467337240677595036960128304772406066569107214352543138907410307841379108355203007624533440880828011954375382219114154368052110071931561650717589134346666300904928075425121707044369131281895566899949519561241556514107928971134249981115710016505866304678516821675286803408400499179070604106772367222278349234453028334091901396266648993650859347483141786551041616334533161103763646035964502327055823843277496204750593850731570574271892530187956965400403384196187315630897830318895406270433919543528152848738751462927419893363628101422482325185624653745822892731268335898990550955866127545691684751135234329312551703654072720045860783552948680462769427648967284413312030150621311840067502874392974787931639024986575223704230223401573297605365107228387150181916576669155661577781200140351173839441387795849026690898093384947281574617471732545481620084970815577815001088949019244892258509481799201979498140680723752485655007305171852349930847765144051350899452493046707977511264799765296835707936735546338108574069930403143798007103092328594422781917897994095121733830889406857022311862244227966742943043355085924712573920620173996560806778827420571082743504745956058484978344893116301328745649916651893581877336536774815178674884381694539425030474036201739134525503336369632601547475118199665807724009403995559558882199232135076338611374168807368344488950072425137339103742650596293893616480476106660769256116714689423144827273602132368967510426044901897880464201728931495563247279676669794567263787491806612927583200849124539873501969382748051123927059437981090242221624694917951854775447853174881148618688019552401740021560966891767802090707584892854979923295829648457354693399306162916147370297661926065554829450374617003569957110320231690181004786878897191284471704100255717438239812274468012995923994197562366780679321375629265596128637928976092409962584676906385265843105170545833211566628572303725242359113790249241441400355491645922473175707208128430293232368199534363433999702533055589066215592665874783371876615585894740378094148774974489041428092949459051649127736755180503902524262775375308017156885282333744105179524042819325521770924443868797005691526730331411385597505779765595982303932338454140463586180899661972424890047687481748792228957643287611061297178185336745455970662232615104665704592610608412899225014904030861865973860406146959356193162932934828553454880621345410572489572701586656636948881224869507228478261196254964016012891666240330998289051912612029543770187743433899610995980891996930880405014494305424749433652970919185121505789355543874235025888679086908816127853098588736474494521567565591491159103644275778023831931880587838859767141189144040461210765310672917620566927016314398654772468254314924764392314170389359126275423914141242950255465071980644326374853809396702332552210953422414189238826114299846946791761619079412900369181932149865874464059161090750945493415252328568607972142948899981003068024108028543552946404671929059819783310377123972252480978857145844543721913375013610652360447929209583399806932542881073596200835971341814307531234165406833811611753997623223916393679238653004970683656072572616329312395095298706626984916280618857803320178425706372356545399467588812841457739638774990184204767891388231248859716750585732400660514687944804194585439141578334787116123869480431270834524336892807800834807924152640180248524679149014235618128259327172014978624812369436579824706840932565832745322854795345296605079903707685813151232409164516005611999771551991960842147098317749304700839696124250656709070359509114571670980756267727740180908388006268447936576182386552906923759834601556263141460345645374847281634904468193657869364422248978686092059779317374014224831544348255841772823977928545842103084953886068934308173126724718894583590781935867233199415752591536550183636368201060184791520820391815331160287259367959784260729568131946266295624708342179375435035158654300995850903474830954336766725467558862247081401453078079675306923425050914927602279361140677698374409373470970727180885766264131857927006862433638739398382853382409650123615582893960345697486182335231116985836462304354961340346249964747453057586155570342668207453081921657130090787772620233491091753751310800351357720825802156443382003042384034582727563284480159248849988964662118779945870490566881773518461265748133613097086935982404418785023883506425387416785503779572721674008615385625136071669357367404749141517931999288631926660686060067390581412588561240762573780536403234645268048606460436245337907340026829882782988377292083630691787114628175397568915113959025109203165701289683621540097144552244285408902874430402426239433014716058718889028785599351957185134185815514098945526630300964713617423022664424119040649063908950553043800788415571489362025341442731719929766636281389964864252147183335672545817478536372102049163160057686397196455670587249065144700562636949606281093614613704061290102833079684073336536746884208377681307842262446902123523414898125419599223280456256136991250666256897743879884969970564910993442430647811676440104364094949459765207109281389655682299716373874162693432434479419679285295072873369571202925008544194936508651625714518034597353682440565499100391023876776123935490084298812386717180342493690548283299100605799909104429128961449090683377254060237719383596575208391108516456731973940014014545122800309938959377069602098439703812580654946242753216744892082214718381308129342878233647485402690010354851987392637343646561865567633694225888662676258152423454438558123323460774734587287687242580456682482055955439513099214728714443059409258695288536820197482743328331135999732953438429670705032753400551454739797897563300067574081354107602979253318861711581204203814169973153394026285880303892338816262038174827705388493573354908501736794805139953511773027659980662682396436929494531496693199977282409787787450128606657895632535859879272798266966054133112999509524922138601920882513774897431494271638885016911833139407349968414764669818842692585778762673712519245905597017000745393942513223139754335491454828437832640638992849338364836010711136695996462228839003667875254049343959183012569921483342996120765548292129786514613275468359128487299519630382058407860926632585619101005737366859451737737420733907413010244017792515698443200847008028342329713234395099492956333101265052741526638076681719831634862211640973569400389493137392285300798045738850399839445655380814631798795134686382433709747381257394486297813756164694568734413520376277424301629037322730968702909964481751148183999001798364664346954062250091885374379221661833319379709058478977361010514011455385710135519085342501802178603998465226416609261075846558972174762221813577241780388135001557524820946755353158941315515677603712156254906957500164253196027193062098831272625003060639545367465331096887123133106517830531574711165661762865273021615725328389415888394915074350519798519202829882903111304278778214217516712055513499898113855107854683906814201801753734108922900646944252414822457476509933552138442821149857051496633200884194932041501934874459429404463783204528442178900663816513282236299358549523537597795407904330407293803125303623054172508920055726889048959239429558617873461072178349586616813186743206599428830197530258318065960169223724062758677854253870686060932653708587580857137879057729608280783886960273362956823615474555946417229530698974510150713583721472192177821093269164264176309768131978509817255687602440355173483758786270921751629604988476030523034917097484763895403815729658996302702720482462644797413625340420038481570969301582628001176363518233485411585134257304895222145612447938911560274426346183010313693400722288085994116595502823031714593612682266383088015673184447710077324080991077814048196013457502115100452591837723344652475115151320324804932017045641422267679913790029106772380721304667173556309031059372138759642778439934441672561646178180777347776548777103611650052234260285507832947899884112311979661472131263912381289473575078002083252698863461292989716517135917634536124697547348617822530854645733593899367099393106040975355906542847658069301453705612495407522832555463019521221309997423913902876772648393852270029153363799910817662151516483359707721962656937307244044657755777127889170740662741983616191778313139448975821042793040182327897344828324693852779828478066132419292498315505517132292614600568882003795395094971018324276068231408489150785306323052124131643184493164786158321053734654474005559104460114206202988021828614991245831381223669940711666363708836584693152878223443015553900555525840527421049327683734636133609928430570552746425943402253840597743426528044755335404247849869874716852039671891850011323450655043188014155429432490784049085210856776807056725418264034801090363771341772617080098596839630705640136070605570759835811996124234538469947881552374809659990405586714775857260814654110725325927764592045672725023315945913485334868940187482763647547145543740986408738030182146318108206455760143069431420303391815298653351695426431884753523677798695043924866695480825243181349895295824918649027620579276739451448044691912344703343582745935835861739394787054646006813616822204995719884123755605792540225382178355061256231778252097695651191378826083373710329095298719649970085528279593559314599797793261344553692466639500090905911060853462259582141878618851115896175430083149229175905490637772542610800593251724757409847016837195149502422367265146270644768034173247172007097072935730944372821118228030999023253467436072922199502023834069009565835965850514799890503745603200238413807531539949399953245662222068972716246427852240734342543886378888570715883185696426677129753241303268918204720876022240649764549494345338813163164136241654771978860139526616784334771330844570751325399663944394631362647270411929633290405569680069789856061054396251066963743169827531360349185211935576209173424756882820005125155911584423605090363358238330468687350525040313777219918475822490446654251813440625304551966294178702427037411658209659243461234365628711998526407888245809958619718813887363496812680106826739290582533885345166122239825998712913382832883243555700380024571133180141266996585768428685136638524592935577294919608846391264486085221118195431128627812819256895910775500423947063041368605577878705797523336002512866784313948057730867067849569778790247797946936462685106042176403875071639435554563104716907859866990114549880137281734888052431522272042053061009873616145341519096840930234471437538793270231881268649366458504193043467109015823833371754707351411409796630926213525800335834130907892018301859497117682829350386093939013630317228963781819111441440889705864784936502512526011848181738516848709247269234992816239788642792942165517860127848225459638405776377611153859573016645987796837078805582393447600380868272992841954041387555587316599541458743300709011983385383490430159763523397738378427121312262488500027709933478596062950706931335732013718960453244882269477996428972738493374985155004846722681982327836821990220975532669469586283029765630324321603359711953928254054156593333685777690672647768773663916519028832481044221280838879086440068041260301324278014778166621876682035121024083695716217970539413783285885069177371718564209057876685136290286982904668138476876360158140778790410375682144655939745232004956061411440282243849947225487031970339704973424910404596274444646462640980932330928419464074519648977736537603703321506185443732473752878923950615472616652229128627029013096210813818270182327329371249763190638671751587972920996942833700832318251967412650839370084875097896033504891599900132583544560007170890429230357464558981232681428592750907840656563518011341343117821913912456715969737960719085813608558534285150238361588343926705054657209018012850484140676358401156988596058991860785797454499544702432860850847621433295672507904527007553524015492000061821607557467736755547804400967262447133110492696386637922890561817846596020363253873680796995295412549045202232221118882720657400584263046287965425516605516614967684302521742705398776715950805992302473776835404753787480610860251253016609169618602252186180963193217242489250150887655401489714161930024767177673379348381602882838826183750548074597862379029694138922760388410827114542755269514984986496763737056952306979417744162858760283583559843990591665099424777893520840569590171178986249069323462644157393191139081164759357892533842443184482605723904689186938864032235076757602301616503575125876524838571097816209817439123980086329010686743840927335564734302669394916239871995064946894973238189787511492904497888555289263634693864838548968473954132203180389972891411724898869976974676060777157219278955799005608342684556877759304246329863072670850401920794593570054342716060780056612233526462236666136575733877619624873887328707603928396052313024513272738893317236125755212862732929261079461174750152595903048693429328157863731072984661148620740664137357406306062120163749259463364586153894563963108023744614015095031984462648803527278668593747957673130949171204153293149229728012707094659757128708189631971965018991890088180535031140827011681502896341443150133458304693971344153009216590795682951887132119764092699886439610711405902626445997675078480098914050384332585168408238658428588974753749600709347148080157521661377336996898991359319037264687312344561439554537210272525946598121629396414861015659343729549678216740678407939485914085804875075225268382909011682192879431322218094662544858137099822262785487305708420981599905045139214909201440684196774962417352712996612677995433176314398398155299064997188509625847035498782739153326736757122040156885682351987970921961371534469492611727214134098981199516877222691219966429552529985638403622278852941789795108916346059332071755556155343474927252168670221749534057617002199371615152316360851011474092749685345647919527701365343469167597125708667892590996550051829503245043887850902759644463056860051922703875160794462457940447792694460147337683900355533794564219072255220563673007900986273942585154577194995064293067242287642963093782053370044561792750451739903599696150831662922364411196810516647538204928936307115169042717058077107592153569546316054245048963269611985261621937749990867554735784652630026527987087683544600988789662264012344917396305053467931088288075680782566896919271813573420221080012585505667049478812017108110502732577129867529024322014231907616407079925486780218670664463343236988074783449551522857907328614589593770063703377149951789118481834888750389328770566759617020417762341478748090549883576195850070379346773234120923669953902272354603737188516865326435495350742918757830995928998815163991342141086227448209248697547587994186712075781868493591934342267630069622440469891441691013557637195023769893874959288931169793841282900089666960863615007811899791883044639487594832883839842382909156248091786531320268435574552207114858050594160699316700559260868246051104617187794543597231950635508716195611770079076782715034363307979035117027371366240259249206234294191572291642156573666628644969161942296900427003706028182443941188513435140397053174025756221019946976565061350116138982086616271867815160087130439720248456870612720295950285579868230141035406257342175832266864290451121877359153278882683474661546102393644106836392188737396407923764808132521161988604573290811940048258564571055641259521163569154658132397701917668388484580885590244122280581639709715839512533124639994754911174014600938698496560425427970257825419172227907214935455748311012862406926011750069958617769600396889596841229904535478333857653396920123563240310707725112119668001052432111090594717965985400490913000811990705202953591609290916109428437810476992338379946920156870785575782273221784343613914926253105384669141389735616293297773544445396355054443226013053690524545157078178968022712488595694811588722197549496292521347083414062010496358383378786910385495312502129287447306557615731602007698568113776469818812860144861511431495702033322157717837791438500709962850249314625544817876459089508903986357142497170874679545919272328694214587313066436587570393837029834853183238186196338668332579648705443250683679949036006064892313802624023394772704646107368591147259996045064229603995974697590208239967735963596396340633333292550368223777089845315956767062462488369652830955495158083808198865250509823044125042144148474210756781792298216963761100251597768198118795322751348681603601988206190549151384724105394459202921605281452040600134745735802394235812878344630799508389826558882196553192104598553713320262850078119387859439036104291229752187516717989520674055312505615281521784833075876913907494056598455585171344834322599739065147944631892470629668717338302224729975909241571440304198219030375090941555465681403216496094093370047110596061605043068868152866693441764854083782884097336417365757396909908399548547048755360766224452644633725566281222062723750022688103738033704268707802764471927740469650676764708022671575156753758988613159716330729006641024911200096029816045232315529936013620865732273882661749618293297200559832172528032745804168669030783943120962930749749114541559393504813822677620901791215803501753465578214169701985268672416210660485661074131404573734877251694998615234004799668022133755678444777164903184791485564504693212641353848272725393493523188464230477488401063720184567617262440210155122642046265439650824982044724852069575170588263353511489373740441218478989714848358889714561949740358579453311683732651352779703875998835351009782304027512866060755807124404535104011133690542617732406345310987375698399938051840269675797914448356795527875798051199022177483467268822129426112382973332175825071226401537403938555368509004329591695520488614977120988788527692792694154895462552538244195929517465184279266621037529837474025457133879475531846446120041690868908805748535640634957202545886839177703188797874811756239429718863608532999522994903524282650546226094446422422222894716712068758214449703910429544172204969890342603627142063605164188657787693160681848685352028513737727827646518778745950095305640422488965992321104264693344289722314252459215719664225179504764003973227716097370277896841950136235460393341289288604461119882033448195508186411656556201098865641122937024829940319255363803667127228875295633803311917537945090992500031314329086388970341526152258577486232339202447975211622287561026653092540836704874912329823206452369489042414768690771177467285403747814030912551981929375608979323386469031186504222965330415642962996705900983229205745824156173813797507561623869114188292851912209189119347604505821151044344947729493434272268974180261733514123003063202381462521241231636332457160513763391947629289981804933790997521395793069820219574788967783619896475853026263063965707313275574321766026048937246864135222859153691415994701567015245194354651756285320945179499811605411582995588251473120400554377679484938155114631543155490211494780602758587141162048488024159150785725601978738870853875230758902175163972990430589024331815235521981590921173891670880209826329768232083333215696646572045958682249987668277791494115526098546692477674217181784840898350536207722862442597496222622421297405984768900588114979564853462816727680041970825141593857720391883847094706460390640991085425384158978710992113738694133374322531170717403855263706919578133583814151383145762557984604799742095718251363672618760746535578878501552615735969511625937829930884630156241451807389390216576171049960333199102712232145101485294504409043664147406238443246560379109986870978749560358144580580738388329157744806784876269877207934849738418950302202719162346042545143235397876000571111675515246530057568278193306432284798404129665359807077364923580594895183650038977887498924945869077444533804297351913728118257781552323618400845158696283536262172309995985121728768305183674129253675081814013049552739948631755668757326767688326888768668836057446353979642767418436473470929785043531079333620638715586597412473009091303539330674697031293189017135808094888430601772013703757568766058248235507944100487658064898481822862265680592504656596681107853202275299089826914083767282111174256967065884518264361624329504232274774459430670797166795298931695818218899509256158323388530230011305219877353084656865158011832472872173552109788682413579071522520329738297382986353363591848058079788985224864713444072532904501338844903567795240537138960879708329691520242500107918294851056720526164581298938095472926870397389468578135994256254869528835531409448574197279108737094414575784879918554517509065987566243856912711498622359031356682565806357988291682544243719643142369483063047686904857626638465263597951694391320746353047903914974744999217904135225722725340715636776522170833419128971608734948803801165904887178482621495044334921346844417147345981595938436898694995182254123717678009699014233137445997894904593428836725353361554052135207153834043775294502463430095831725093780982245310361964716865673103582910149305833289684682713542385807899985538775232469191446993101246589115580850670938472408988738828052344343647517204360227367912080716493806468036726977889216011478979005429840887563741077544538073835604451154210687661998818587463176665120539018739172075114133060563531338352739924800488416527258149059228281972947883685194861014731244186841651552894374615066487319044778966326660659087442634093705470495661938989216180747247342314347934463304426283338553604107704457430406944778403450134020741188618180532868896038852924538812774480672856565282428670587110180857167487240046566943992080153563288333738734163366843010856243081911466445939040727438822450323290784498528139785402632234057907583449614476622485855732271379092011583426353793919453083067425145682307208147113187339665900797027671366724183122232076378409900008143246080677995386291049287633679441124815373672107583775459512447324891071017015969868651949017107967748584286237409054228384386855006561432800887346086639831441583324169395053473310468156526140694341129863023844982563167758179620048860690885244255048298619778107441081255720302359551646093532787034675901176008328333381919664803652084362893293348839192022280593469750811367013917367943258129963796139334580270504513380625935167689858780538471849551098661498974754782511164203384873944181439257396950480481392395521154263112363939919398883768549770543048511100545638426553585001100119124474744510909858738687504689205665525256983231081256588296143736272977687016059420603786666655949979458823518786118174150738998503682123243166917061720155329314389596589324051937856856483845072241108089190815905661301876521300697955711965624783042745063365190999310844785139372059620353742021996899342813630136305655603596294485451776269113042546369937202192091932612102570313210601304133647680092777423125703809416811898898627202846295987718910592836085613218214757906833076405739606646061562374961887477902863209396438969280540670949728250036541284184570126614889291949734259669037437957112277924346251586893272438754947090542594822985169900003691373021136894761959030154708871840218437786308971614491421013901133321561121867300079800797346320281090601349280201557546048131356458900348687593778764090171146604212189629438653308884314986782852119353142615199432375218588217438203300076315855802093074462946323723610952201221378642384282493348573915671420739542232466362851979356245936489431739479834802560239089137418401936639126364532865436369750123894445844436639604795073135006057922967203462636741986715912296824530090039703912461664518038373441903431191365605454406437829150521990113815589694414374516486478277097331043355234576617796933475390407934922558575432276779232205527525758366369582243245025701884511314117124968156706569586183917596329742300044654727252080594408429763910651102698360838004142243119076397468159004118872586844696320172016625831506346097500345290001085981902270541374283106305851166356495614460519766057232772967370445175490333849854117532191184978353329484641086309075269573634662264238165914033229259920729305353371141870038007672630653581221340164647498222240172838320582240272242381510125000040555566682457622451506111684544328160282771875489970443117276927432831965198219898716807193560326768554233110120889733198756297066229015524093840447957260333380403854109438155937049191342488939008440526110456745739227280404524449969656464747043363539191239349354797274087987145070923305371269357276418598590396333796039620547810583424165541978031030335839721112641687136231424642573746862973222735998886114030769813492895778446763504913757392765631298197844070895624763805341696773074757444840016589883086892032444362976505135203694926766743671952699775634601560730789032046398077186919617690092673490626005422760297750278395001469181834444823997007200436826764935855271782167110934691908648264151541236125166468254453274040326756134257313977570892162247079582125485200345125329256138972215386765253681536727797180587019767619548022782776083620176414589897303911920578925602256771282047403401413325807639848764405129378101798764400447048144543357667344028242694562859907120572114899142950729997909742996904337000575474485082282829753431067364113679006315823238023122190594480014028105656990733264837856412269212684330954811447819306620427069590619001957918847971117283927470005423743853144928151941473236950133227080697676208480935421359137794576195715518314624966136861366652332587462746330182535348744974930145607239203914056539779539910300339318114762762820543289475558371442563207861089534707815499206666384460447527553151302278469572918372367287870833349264800832826698831151364592149708264833899120809563032642213157450265961842042464771218210663063974274454695290686578928710742221684166043290109064858668048704808454624887455551592499178437333584257516643920459214109124424515776559310126616768802881822789930886690621373232096872083260695487107592473833478585277497090982456624697189309357378484446271794789150596880164571499196374786772970855719480865890383340212325276103073327204469207588012970550541300500099978413947564264397855633777101414897623573288306285724325212061340896177822044571717101774137657637853448294011106724671647479772185892270737791072383431072873950319282867462902046742980380068713199648742133414510605896886594044825510037089026931397537403316777336639711205289728981285390309445434187918806389158283296988983448163308307315106695748237483782164749208264456792332348176225722895161352051788189540631431919715018791246347351441598388164306527764436971819540738643432791484626998105340507794454530990365003036043533687887969865793946806760997530829671228345933565025579066992837851047995975661102654801663460356698188609441142067057046544564627716784848221189477608438127605710046057317349779901473203876301958693640406749607819100298226321806441353699752245610327093909948893526264310678546494840479881374900647430447040186377293204453228586043841728064720321627873433664774756222221571673883168290368268008934997642611342211530148225289868098020969857169656014800292289272522038488680922621295600544841376964170438064610673589679772423622837758994182845400322910145801665523284373292764007315532646625229844229450685639773498872800436112633385794535107078310846330557150874889202309178544009224860599683576373369937689483257835834151933478579848349029734438923698467736658654368755482169558109941326118399598006744084532553089826091083467901290256062315723806407202798567919672050209502478733717783881815455382317673292963764829022247984274073020882818805054625970940478517717527130228762934325760467017480023488385390290658998060186340580535089240706523463265471889044414539874484177376308496891989253526860700465369612275415387983888730969767868694780565200294203256593131116801814949004622241974485257363176639315920028691514130586728145774179318029578029837582160842696507995767858279041140568332774406318580201829202962245853052217501902313961467738973706234292351539182075257671883653145003817005767992709472152302857250346330474122881488313232513219578626204601136931000217738173912994602986179519307706774476091468236688172782380824412392617679998331711094634239761934880902507462877985863328004869440141036882383728916882792148820953910568825187314493457930864034726094518463628752986040349059989873662580000034246756638426227673304686300672351018252315653271545889534584005998400320993790898432952975886343712783130765456717890475606372802968607881613728017040267922369486282076808779309318138255085786415259372899645401565897808379849692370764831355169508169497859441327454485404066747990855528551304752769978948284642895980480101562085075309884945436083513396491099630410352613814969362923859335940306435910167434910309633175274227663601410415415679048122251583565592006570530781215545759572596700693239282114501179545035849551343825442835008498435033974608910894448579568691122246333061014223292314897301715803561155465486164890294391678399312780637793201024843842145014271139905024604603239549064603303758912946074423430595306347258927424865168552095651628198204552417299369474838689505083671844959106570870908586053718270701215828197310133943343234345040939187563087869857816993938170116221362923024736319121634040689713583044873192784158080362041288992089058753558003841412298657153337322094935693740332663958867051797317179896936276892800579158118464732372321088437240932187445391951771106272532160129283419501933059622255218224223251087208556515860214983027969458561167065796066399013080190900304680246568395003477005282874408821820028929841119485480899615316018672440268373660282273461239267641158484479008620795999528070867464398938255434358710486381004444848712032337320674000596889315572303952511255281478056203008841694095535994673537036233751002860100051260235669355816655032939983957994492116184410274763699449605941503444583993798126954993277732503771183749855312871679592520425527778638713314618682765337858785892783709276374546455345044733345699753660039715231809775336573854912100442053194149889716005042081908922237335911142773280988814949688140205677970648125290917295016029757186087556536322269657476288560584386975011896151386350948029539479742640916133377959382336640842263489692764825984209165342618455920362536813525367271822015764076278669787687956197036368920102532994200099257863308313374377260312698296506082883203222923671379330481510213593696574393870945475829405291405246728098299709512831999992062919812446345814152307147957528822872999580941320240104899247246694019061319363781906347991886107059990564374450605945770476781895581238842520361574676421494763739596612085462140875074263212581171271056430945716353542357515054853063763009477010961660656266976026435357776382850945618502463111969682786699505393558949508066651335690477355178444109119108606807800702203780750743574223406486834483044204881939582696155306535950586971505656378616307662535359112686965124707070884919561088411508996711246931298297295796816585052589898913138756849962440555946147974012693619361003119104066381711454923171935686224510710278702891025306118616961448791409249909823905325658929382480612607808200603862218459641958303286147851941235523932355872034657938874882244818000283502838404983525858823449366778965582933833011754876854657025158038047920752035060851283734203887400543824610529912367400064488602106178405225424815211487528937437950722871496254753885958787070610175848561849371471014790229046622001494701972304485063854618346820885886525004458543293755977632583331179037608130714913446667928107202321128294326968039738087526916579960602909005413169371476337237896965122821201098677752090211325661212245309955566153829034595942879221157769412330445999252117494560759337656750953445357332683528877955936998347624398733388760567811912916284786482528937610312581616032828534915969296047822987734627518413157792257252882100416813133949868645466782520538751601786630115117345875094849653801867597977038658383427094686109616490467551535095492859405776438642541989526121687453622611881504429522661333168378484820517224145382676468565188187230691910078678327610686845033015719029225647075889868087480053289291516564336719437630506206092045253087524353219744239163281593207325383950867579176924852723808173945805084399349459652205207550620496224071030897217878427698196581506359268207642699725405268747123867297395575828685867223513759863786309167788820130373283773028067438532102649413052115686268992528630892155878618355295158794058427577671172377133475505932287852524791144843307173548907966206164828335243203015465278197055170840351935220297387137917307777266526867022603761180696225569481154401782910934798008746938832358375267671424468603378443632478341740984433879441719846189794714684144466545299161310731759350731668571288442338200184785611349451788993512686962122793213677526139139776973775663202738684651798784993579969852352354494115919933195578098429675080332413561793544498897775394421918328328460283126975563335986140338636001221301168134950573499780591217067200519533091452382988940821877070481014712221361635502877820279597038575080088116370722428232727883419491773353740580621225553112611660613845459005178594656395172812201235116385064942479335983444488109511590386883958062368495832825471551815255146845848555733043101056977647120645386553652490423802189691051493903410103899862373516332029305528768045081423726253986393972763855960666480200139135813144921864310595565920604707880509479157010300108637587481258114386503664488500821705957850730387332140340513771863427716185434232325904359793335290572391980874308597285718156936750665779207002592385397034419765599994408673570398869487333114237834246542745810604224756497053900183485631716123653739845026565322232006124472997990256880129656133773069651538382301405067814047004168194582981263055463590825135294631954403369160172776087993532591901047655343530831722136813233263724654538844539562839838166404720372490197688661924740452317241852395954276004583674365303295656139535412180649785308397374150988937267044644617320149471111264947036016723872791493284735315959572492995598983388163400864083096524791273414115894997006096094502448226760726186676492710680762765879839914047780558541833404075095336597516526320921626013579189427359616948679253572854457551192103700865815882083286356565341595876912960292047177605300883090464940856149988251015353863184772911015681980239410781438694973651501378011632705433757551924666041206367692094296529608254455926991647356018194779134262293386509261512887036640116083299229681580000994799980139211376691169927572676496958166976686884101009327959475114657646495425483193464784211493994194076088659198989552003450501991997653632806530796365104984425622775590802793267048237478759914183698870814078967780196868533896139510886372361469889628233611130853057270062219277052105608621555940245703748235342213799774321247394705521650013778348309838506586273790365918985398424306914187319917559119521151223228149635308345537946732186327039854994749744803634568966138302842096229191041569446620249691999394768109936422332027246707274430905534326905720455875270942126812988982765098752211023034501708113075166359695575030079721709333891924049962209697496102548455455088331870490472385356288737528296142741664372405603400324935032726693241880873985030595665886768108383210880713278084466965804875075383484150306522564382787116072352133218554540419607933666631482025591099834574391678774856492906951806563133756383952265141602484213200745654335465401478408751639947590308475283129870246508087843130780326354029010808166063017657265470184479042525845173156294658585726724005253373863174050263340108867348309950000943556117521154960063967938423260903733077471067039006908842375075274744760718629470753298024857178043610205555005021701209849265249751250691814228881347243932808060259640957004464573948599232392246767122777154362222923409924210110122071175141099338079661674320571827995676692131543038389676548373365378337367642626191536932562959908633214334230734471550636552193760113040820548803630159794442044267589019393375325270588223606232274274201736030618221346186038181619766771145235744357925886959990746041817539976643178569338819918568339961682843457299664523501768665544181447819957669358728179140380416471319718384835296748618229257180750872927300469224748115722331360748887612557190090265068954773183951364619941271310381329692540019761236776726668668733887438291027423327327299904185714113610760535949769328147395186288149566910511122636437279456883261410526776075425890937436974619707287271880565447087634987809657264032084147558463600519639568031032644104589992300590048780602823414517965575854075026573565116721578374057900784297016219423073136852411144373782668939221953473545058910397725011918734395005302840878286112984247628944280139498771532678325657105122816639235332785223796362643083208236012222128260784428149259253527605031260656362928597860288832079989157512336289847962170491836309914169466164083432983527301215617793685291137307912540194211062280472828004367728921368180243072592847244989426419815000475324202262894749928936274424070951356973157726429586513746527285076685917524090346692547674841137136925489535390646255586010244202066722573924047789393484510151511902866605021010932903802844076802696309597690519493530239535399553915747316659842031281821811240248745590431268373775686774336294000544305599617522354262725519707737456855369051058208718182389734901975347057952926817759570244086762823578692180290435632778003970668595727574987966363563470061570118264287469698093052663061068428768084178062732095053774391294496484234160683976610495794173675404571753728623004200126081061258255827301590359105639073986730345699654381938429686109583707953858468342690952730076799824588431551003574889596167238404578913590023310232418845171474537474341222968757965599212722039142648511239086244928102749227975662943139431953893467344168608466351659385438994597762181457145807478563242429297868477889019862809274914191842681370614537452724962175201929968605036506297624392991162476671246140469180305133673141040343193932956179127590804139881624245886392705672915646173488667665075533796288492399516978205469069929134460232208666542223048175565671249420747194007250868167683005681590091722067576984828746472160493214187196408921485494837790021414409680290046170911994250708974895168186212925656379808165710453536621261284238516327964266382407747254601138592910359347812994851249834140409631230313616901881828219709899448744712066410560981247892566052196862813883256876062057902893326975312828850244920942476048373409698916401291972707031234699902698802743215619545553913751871080838376258930439025131226027828676708563866017680813414935952552525862120860618610146555573075382381828280134000670938688994401748929304356072797119505952197412127583334110875813785545934694241322519471471393296939269627538484301964232448130662995371985355706433841391188792012286393315176796541191483459500326565885308112511839371815399599909774332443751673304218426510713930297888417047353094822868582389835208137510918370321217607718406899505915858972819083267949334497341862734733407129764249313711526061986109271806419645630941523749636223063061131245678992649276642011957432158554267389553021115073071487180342117903909021318417029817708745649860173788168810207707748067123945969016605020741576024395541898047246286381060140474417996210116063273611600803750854523521089800926116736836011645973503489968294345177701468514545378666259902585921886325144144589472744606962761470988250850786310255982546882813420136616700250147122570927817789341017438721043235399127955779565215599729752260387195257765781786282168144035011085827845912479946286936683459527449081627792184910830573484803681725474472126564565858544407007186920525863263406771765730631633530959113469529751965757811606253330191897902653642982053123416617152478413903019395486907624792819579451919513246297171682384939684169976404251726795918497911411301041993145858203004475465741999691983936754774101575245159081436457238296235478581394076604694736085625797103717564992199022174829700278186191741715349938661907720384404846085238288203486686655784225376358775145163617665957921610128211524856421546341215435145386504099530324802215089294840994855385604074354089033726794095268293469778014174763137602793529667690016770437438734165843905139693688311233546584525016179467005130179083221860732186387180994417567332395184772362572699851214078436500612953670757002042357647152387115943497098763521998975540595351042220597095870555950935971013085295994002223030191194052397297170150658764747548358751082808462879475470103898632088831546556987192852269868945464424980683788889138781077880451139577641770038380172968668059538543269429428566117542230659558446824697105994338781964945761314021292091825164781381221628596661338283802559631965818451000905260606207432717936286193332245563603705455594476984718133801255319560774268560126705229976489468862598421862777140461020793501144593945545188382685246381803616146659622341389917902590988203809553104489476234353482283181788091226710045518131953978162347444321998263002775434751374854087304688234998258571353381598777935110677247280781454522299377810276251591092517451022782200386296005813951788438792530954476545741080677782266438311542695529093719335328536583634803169675476984748782779649192811333232127652565405674185045876233716492032803736021176710380329822370010392604984412995464439492698018264797402038871191295585957466454663855444417886868606808648490736405815385072668205036417777427600217279599370056898277650232734756755508545002316178700522782848743159218007888500465277918290979846159924535624385560573992091579414831909838674490447613164164078586163506379690745225147321447025040846411213373810603089077627054028578767675330085736387498683860541389465793034754704810453721206300860611355535677690867561684792736749463143451837473538768288880288159402982692781055939618564759330247283755348644331422011072831430432520757254745055862657526582974430653886075575583288634633105639438764288253248515316021253189384841420618592134780279753749896410798202618142437204615019315110102882913322290002259374344263644145301552994129328716934672913177860751005423453892294391167234402735734714713672327975396580393024269893375983277414918631821690972511948287026309457921068262582436130547900746121103342261601029102728544408365287147886709466620583285981592515523052941487626562002216189753837485392500871912322518843908272537693280507353962542656408101830008936822805264844574566084494767118688693857440260353488342850769409906550760567465536159167519297928693679843412654870572658006569277855187624698421754259671068101529209838849748281443561481400019977297019326496323905872056262414769439706169104854394107215785489907042056368681120735248847144256818633819703120946775919387118414856176765184986450554416508214331871167519153273725428443315966937337068591945246689277292184591541264666381801404591124151436773284574564200518601739964757155478335591298848720047978887621739568096476389717195546078843576431580397767566059215408755093887272144586817685734874124026565027413614374221526408657933509357581653179368354852179445750109031025242843235338198798363979321254665068384905547428463526297963084612343884750182588058160150981169329663693058233634784099419011470662679646354128050570544187111271462274034823552268532749346226528864650595859891812145849416874442625780394888854442789202603430164075718313282033970259865765322791406697738746668801931838543842392120384694793098596119677672219386867799965537498828697933316127982136446834098119007714507609933138275615117372666238596324596834549576893464349608524543752981517083286605371814693811565171111651067537830309624814677047494761927926154282344747737683780381725189992155537763954876171603061797620063512144888449891063291549156007032268389520292106592593476177803367127765892105714701041141355834068539265170801923112646429891803248338576085038762518012271064513660391654884651102408814311982170498282003257892171538074583452469775930876834760352170689941935238321250687252877552163345894525939710876036010472439398233732171976621896695123266105739091488919624332389693680054695617629798977176358527259582421480440749016250111932634436600071670936144144480494740925289497694382884469707232936423227461514239706661717649134831086237767855601836281436516035191721973328336224690437824423579252528480141332996851178540911180806811498107909511613102305165435232791668809028266472513603215564481333398289811096547675434718008707332810321468628523190547574451883578254202451491618536836303307662879259956931286600449166581146261165363083669345866219301062699398123689401384422471284770655191099045682452710975443075747450706009724279637182925611859334344215824437165566850406536305534975756613507316261643337423112260071740459801102853661393748004662676488888112527846747395648604347471474618441520504043385890523722539635395639482309752842781356996029737801124448780911069779350536854150968030343042605309062135428136737471664215778036137094910726685115742939636522664847109179008560509744758872259334115007988782736660158705273513448054228755381741292493734974308427955071570449648236829868502724862187561787130986646112971103759617948379455891166113000570568940723632633504776513464663098640213651246284712173550405007053928889549549538004006680427178014576614060565674236076359889457746384974323220195341535362358077222824376106135840840866797900110159058431106014255362778941677894841477841582769359725133668734744302511142787093767415172808499405359702288433513635135628849754380365464061480015178892364315704310063228703709262213060688128975229784006069552359448543488399897466443577298970813420292034132225966890392399228215575097571318500778192032363058152027235570924144602385007252950863113965679277638640848556937900449672691633888288559174376045628454571402885376555821377968091036395469707760488071051364201702339997117501206088065027758117894909162865604461583659812146696653847307275662949874469627983255389665260851945996662270784991525304872395910375642979281355661907012551533112991134077360725226273238480602762883816415291305516836021367531711600547458112772847227174590118201811791842437299363799406462084644123883809631388769181880618927652335975833007297796097020140941338623568254600329050045968691827597776948341429228885846437784087294932792886846737909802305374683446323712197851814165893796913243067074850985146643954854447230752461473511636912945047325014035008548538805406095571469928968793339310540169039602062855907023248903619919628661352768612670886547256419958595083743810710954418515712099656991358899432988950028751660913328836367712353631456698666258089603240330318023668594279017866174483755445745478999948336319972799906225870243173431533250800446008232662145629055627396148141755216921475204427993850032353010854757205835730468954726149709496241440938254946313011955509444858310590954593543589471407080345744214344628669543452228168952216816960387782179164089681963483019196504899033422448212938431315838073784990215529804008228294597472500726172887521071391203982009450874775682766023256886782045560926057538891383160760973013947011161360014453443275482204719813943960011470806288968732372377516313821891666467019229067077576126056342131421604065128703126059471661228111128363254326570026361472391946186790553365875464830618558343132197514418015525525421607345205007848851313683934799262486475951442242645046625608185491152108741877241972334842922588068841668849338908022866860510139288810391811333396262765589601993043832273419555798141770217862689010412305048055928449158622801039743200347892962678742537443202554870668370336882037464657069384893010891390479667130769015539842215387730063228774739427798392388092782888570139757282890250589146186656680291837464249107939262219921305849489763240011120811279723549006926703507151997444618139159085204543178403681040536754918650548143446525643989084020984012961309011907193961040809623142619887483641417229905151430740147546944420482933594042033769600190382050040173364851848921575359492732470792721711443018922651202739075692906945966300377888148730825703283813656642489220413078130554296522472405653361977795732922740376749839494015150321501689767313691806006095829871735911481665990260319439984711117121124133192625452868767234308545962391161841047645168851513819131147715545656251675599656501334221226745054544423792489225803761366581236729315260036391756465112497955981345653783251640068996797235093294035854180448062700692882305455084043028113753771385005285916588298817418316962312865975893573697519616425337341465580783590947631574895013041194228384278071101568986160504472512823987578319708764719419547362787040669825496517762924244077594568171566030315415064191494114678712449237646288877333376662310130174270281568320239717015233203553891347964834126486384891029110361509828239352859475743328858737132073576407608797005117246938898496430345270279115669935994020591379985989986357530754971968935083538918193841123268996596235742598265366274034908869659881466414568959124356417364815164524549149085803057030891160383847990277384489637644890083287362942088306745563224346129612189209299997984757477798092121841300122296034398849210291103715164525189116877315713567460864653007430293977503761819988201375842555800929732380274886084109600794140593136192647591304081765329068120686668912516516657919943883850776640853143558969980410605403444760132051826684476441228061716408777014899956092534111059011370619702578283884536728221392175606419398577570851794910303508806652221495559782002006374405895136722158526894792434026351472961794206910727280362171249340178223662772359509575820892398789212305628891777835555243975219764285389800611114877403128444987887187282882538879911241908795094891394335145687709509485162365793939386569807157565212975717429454742569742797073645766598194894961909612068157445449847196979561458500256111880625991255611298160763688592035192744718449864573594523580984308479378419083704636209754724747380380866100522907921919626109844952785399025278836595520406734386840630535402004739311600877786143468468641312713262256369224473274210340039421920510672402750409429648452382295784687708854785750826821129097282771427005922026137773727191947636526144095309286874139811552728521327934137468463713279900192493418752907387586859573967076709566979835486232164009901623751815874390782987470127806699692128159272185617593359808655467549853018510019466126504587368124247689855636625730153700333244078167977894554424363168249759799996754996605946430560851856619370927741308923327696648523112902179354833158972017252613819660376917761416578128141192493564095236197821830079255853086506255508954190244289348754888481447931807058877503583449246943397459583501724358901823885803393851808373426835849428196913907205551316806135465471933083257192212018932205547338475034577374762225388897470702825926310153704236275597315623285604107298695119948416342320939252661095069588801067019663823396513184105875730299499328859290163998095657920055870707064236144954389184285360552932672929207355357459106474304138415284371195465154028724181539740282811969077299726921706840877251463951802794846328515614319168527996853641850043761195821360323031203841110564766817842512882000853517377887298910800714496277601096114558033532329672992452647595599461643819916250555313574484420944361986269422989512718806648407820705117079332978193610430507585361106168182189357381980510907731637797412153550461932971288057551855523441165640508511774895403074466208042918951419160059942262687080648150501549397744955861866064804496715044837312137132579484907997959331457281477775412174768495998059532350300697981854912924494487720930045057875875874775098997525967455199405042304548062727773982119687311970591274301876199797441797614577073868039653544722315374448707497275552832954265587000399173263411021813342552133359948037759190139045521781756545944253084809008479317798118568726197651268948786625456010328965987571341092956475512130996080081207616026211574167164610421735438305410080345175399233556206659142525518321236060353450712103110877886453055668408277495211824079582319365718584023111075517553657916299383137116657892512376583580960417453514877883472754349329112542861340073902239474884065536595370960814860230140151190297631294184810889225400415886597888220915919529109116582238493676441262289423708688981222060709436683787099438820930738763547893955202965249001153222368304632141166643086140786204231585483193814549611586889428217225390087243688485563322533089643588283083707853520721438324927154343082000879787855143342852514008007079032076007596567948422381992036367115760532264533560876522247275361095662301271039281999324045820689635350868774115166809141244849889892937382952477833987329425594392893565247823028844339322742923290006079358503680026215040742498540391443180974047689889795978906895681235241150975000769825149054740994603353706878661072721341374068869187713943992553728770287361827021602796950472079601780567656913780919170820751167299742299045622415495247046985572927205989278941570476514950122456923138529738951643238476040816464005397128474869892938015995699435591383170770711201238116963500326892819817744724406363681385234834664275256738178387974715213486630520128653143679526656365105477847131206523376073646025636442439391632738398441957844161098476278301194068930013932608008114649437026350561905833143645731105627602834337571021338347549695627175252204182956835301931071986931811293967581108711343295744613350436933075952217848228946787151178223836749496585777341010111900014146204704184307789678481625726500539338569851774666957764514762147542174508142572020462570692915026918613287922964648945985122737742627318043964632813202042842539646788929416208223542277449504594195902509680532006075455255866768519381330878845150112395766778564380886044766872457980697354773488557821350947982254274798088103079228903467345393346527418373958728425800991552697303695641790729349439505563586948730010666573708045492457774637282700201949943423970996476806933286565365054320272784286080012666240773733462142525342221860969442721326372134349904793417384968171523823361970916368956960561539774287342820986216697470209515614199657306695864542773348965444496167993168830126655179069383729156803050178284964347711487775397557696736093744644937106741292719472008765172458446386929817679597786936189451311541190827369853707455862575941551986393034305049352465268707975999615329592767665266121903813915707825097286418660586022213477548677295255412082457156163697409393150247194870139487233116888808930963637722284336075613399901146474144539869200592801992599569014939333295147824044377219410810936969017598741018222364783678578618149091422652456755823544699956440506836996373911757093853294557559263484681002675135567193918268348396944225723113891194023297834546698752730004384311661059535536426486766793221012943965616117244496026551990221412448510511694394535365014024554309720013825395809503734137323910604767596293914843420508088095582482601211426246427506023498809958407949175534607184879531062018378495363697580464363155615024101019515700729924706974268686660878843667447153876983853981494471657065163869294503010414226056163167061111989581995705292882191446457267214496868309608883342043162779388300307164992690944944550888969441837013896264899386378664437920468039234871780904282330430814062248413305815633373329467364367560470804071595157882051775130970986799973797852832982101389814465549626830096057104731471412507351296392890405827296724052088220868289893031656855955850964892531378060746438542829687096790355300861862636366464441223643787077939170953046748444212557469810498214189148154923416909679070406369490542739925726288813822802604423273652489954672934970583507459596089444335310895517969252463166469026058034578380651719976208431705012758673920882482393146311151070114541776446401601764874067539214473817613340596489322868567577266357440682089802200175389296317147263204330194759950001556936080428736003763655603858169419975544757664639524225566757545140095826370894388470296276282505244463039012354020284140945032664664426699510160650909446473726608187595544850429635288386184508860897532255695906383377431417529588040480687832582766737006487966210522358083287673331486708165141440490480200954122669385211346678898238861154454793284919873335493562165089666527227119240170664071520693328426309626585186356078489517420109680837859404342347683883800562061213799575562515355400393457945763933814686900279809951170521870773386879734218502449011679091783845726030844960793199609637371756548688469087501855443217643393935574678890368097032792468303832843224231281756327602945017133317949261416744606185163572993210673217741317861601834238444944215718227813857273853821826143974988600516611986898755936811762268484523392047817825807269841253878928729792998372859858900338031533114436946488644420293806079861980859977883204833006863939622530334343191835107765239477299328893526887360151874468030684493040839291345640694587794255637692123365664594675039710590361054877748704834101480638464124646204754735134635216488133036670857404305806089563529641473333043994025978608477984766172339669438127097918473635591848039861347451630183909028429478173074277263894597382000280211143707487596485060954654485113251231303361467765433398470237536409138830711589662042332031633292238297880216806208894414841366801210208346483210358652135935691612685011959297349440857829790530088255787826368322605580502330035265286708757474188293865473120944429035189791546421890812813124421566980550814069828834727732870960949845922150925372611546896491467892990159135591979716124001039959202036418671051655704446327736281050374076445051416991393303873391629539262136940790700289463996021753726793236003954862496680547654875915319741892439141894660678053946180306064646789387520313885620921613849940751528622546040326449167202045152301123279893416491101042573810549992122124532258446115530717572307088246926210931473006970249773073744872538673676257473800954583343543549587252328499209333133221260419371497043603336551429028381568213552372680782863896749249411202926229848428960604364650403222502009992524489603117175607694254475691831882908161269738673256227219064831035996228390769413580024269734032962007337688403205308650367820139342033772224057570788208464264487923060538753226930585047760306282004025130341970735143505953707171155730390987339809776131256110160345525005949658717405481061076992474717270745193598286880241882575254086342424181569863981644628434038619999034617985654706327502818313010017928599645341415605879507747852216087551276471864168544964320456908370669062747699927495405731991285034918715089489521562397818518472548178178862216127252459471914550489768298230835524062602230987168436574194390135524776955660515179917926336078241634976024691218517579433122437900235338633725333364172293027861629987985474895333551953286251192799381162562447017207517808571459192364208728788641824010695278313326662875938692368373675828799774403904222911889401293202241232773153518382099256758694132524163144415927285709262794566525053033740354571930128264951731370480942272621757935879432930140919015637252119022499643026250224747083406588040565034121911792148865846902970716516822682532802905055876512768697908427712595901462784264141916951443287828413111515907231171496020974671599658529984694933787413723617629232625441510194961791086952982691132126161843125985543646761970311999325799616718525284338161040442558712453282541138140340764566547058932348049016855904818852904837063000297155242055250141905405776226836377360126605748657780044061476498108765577069783155261077876921197042951897077027470165570663388079352241487646443735489582275230998655284528241213913178882392274495650658581963776455613661270735161797228913147590775684663707065503082960304495184785697131286593978051517041117966038564337600276429537300224053404897426500870311134523756920039449993609620728942769088047941326287969225632589202200429397378873064800503224691639459142277664269258837828266652355824782619329671262991774294920354645906753774096990822050054688144467409634926449662880351815309578800256774604904371787294878654321387447931051448941250774854080951292494911875788543047319875827984113715837677761000913375281118283652244459898440308657607359986748439690781407544021094986868604151276972839450808269564823896966684691983968387726549349227355438080032520993513264132167358358731024510288564315284941908130804394360941307716778967328314235906612245251865018964735198201098932822701581083122491718875545629368353692556285863343864233566237617557028293794166763009676291109353807678613765240102712588648537956009223265297207345313255587150473233047068473830226456783119996943473741652359236436494873458719124511278882348428673107856567710720787179295232147422319352768021506849127619087902800198558221186952360105182221383092708205195693310373217658475775648068417240308539952343988077278387762789282411950054674258626167103227211564107242280948145177509671385500701581215381616878470359162122495814964929044065099328853585673282685048832787072180897085741973891925262684460071430095600888623498967641405611386312139223618387126103122675359638451737168314530964999795793457245174348637977549901712833610368379177225727059330720853687359577702594737469197537787581724082189417667668057832966446221767798307668075948242381940017250399675490110211629564943315863563307488889836094333126703951353268895004570907806691473496672369002650076125294484363614704633517219546302341400964259972703817582242598849167708557851970377684458992258954001479642375960298457909702104309081500599353771374163472275588460325349505703198934303666480727022895718353502753085419123935829335845932079209856433322168460886412893679403266844979682032039729971661979872842237012971170183295114243709577050857615746522077149998768983577515657424843864475667640193517851854140401138900377786626366652610874559045582415916480073053762020688775981394744944211862842255243145655601765034900868194455248912424805300941866810348460849360646422296743449348268399774905284927439170580990675699273389543646041420593666286786007977445800446223671730993274524908892811497476745724499486978857856278391805424789227164043843432812483959047186281531143742502634258904540251797631320179929832227064157560670073573288570696720070009617396976567045375590030499816515904717572348836722848047643123231403093720486288646740675013194399377275780260416073307133549216002550959760362932261270889147365726687877773076655593192886726461725806538432299333765810145518158112726537434519889129676202201318346701650617215800850746386056382347674708288689026643201567398483819803345651091719032020428576513166629950083216810314836151211517370593574400873866397175868570101919944303080427193691278306949130492123407436807044807127218389411853212259757524219173928178264056908242109533030482154028149768750067208396378094375917076876000240226172462705401790781841149180020520890327968356330214092510205569440604283135672697366894259558735708664952595643711173418181842436549705665692699112564129650524614442202775327130585605646989182399611509776443513352771632887648259607641834224640154254148695301560177976260777801511083156808689658398256389720893758346767500509862656975926659473477541634529347394339289057954469833115041100717540542664844309303567857659268734810963558325897640527277102274537308832182213807722715487318205610683292694576202678181579929127765476683037319796924809708058921300139895276159901419509938760965411802184239206951312102631626349516192708156755215444321045115163654382371994194873373222604124576307826588525920388635146964704775013547670779367418021188473133519201641079839610744424520491140787467341472414591239749285395898763457403328723824292604953210471826552462512195037712141419572111020073150215575135324809906651949095279170831860160015873176311901633164814854783812706465711940203854549657056988862741961493858640243296399417813837042064327015426756587666696183607346582550808022897060683445819877053864240125224773604994337103545142078044126984874228108116567762382107415079599561209103779800521855519220804240731171698895864534523479880559833443944518804259585131772703376277381563496098365202585583070329535748182505888008803937085444022273573409802080484710372002131889347980599682092152402131681268717923330093355429648410944468137553249257101742555157138476887282562941068146346851632299675185268287983422681994924117965816507201427683445306853730528028389292614539698405107458964446817797110057555138810345548936202922288560179332811485785364941414205611833870881495793997678909146194705869241494030058543858275421256819986376412856056756646774644711205471214666941725863635848015925973760511740729049963879736741085916625950658440057352874223928489795371284672675663858111398575925252444616339954255281625499068329443069603589764210918766559469317585956820546195325830287242724510762493149331485180227633867337281296913147976812446615753161926070933111544315992657953694843397264211786590000812426031053361602770112502772795815062709787366247915890503144452977495797348754208840800011372613914975845491171453640788216157513475598375404436543054236210826999245817928779673030284589602674331732079824295586178014980488310113927645463066575743276062354796101148277774496957035566567540779287754124138122945348356601951773479846466965929699332800553895236017832614009583518052627635133624281486605504300690736622945906831608795654432756377746712006144076412624217968997668989844481538912755141650893768969412134892838105525877702430538758912453538094965295408255153318506575728535311209259345293128758047908047656160906777098212716717094533557084549597655213992016658177793634567280833372171187735165993426655266359600415009111377111076668545520748364899651677811373399355470392494065165238529628350728187119533706446925372220791846060339384572421827274878707058120854600113673101217905310101996873578467097831337783051833010836353754966647223666176611183049993053244714571803996280310933489024601645761083325228582840279972663678018922358091226215674035576482929640527613304874579270809975928797865362395206684853216133625011869755078248360629658076820659898665147026892182683051092905404735277239174666549458026351221289090937594711448763012696400841308064506683567463329741124179459739318549366902705184993372398645690797675590854612360238448317988705350605161746350683409693319678566053622548899470893911020874452453598356882292656104975372343299559432289382669437367045939985287549644603944692323638030988323806146946147362514427388449312363806055525099725417590898395992438346399528226747823281901803955188540822793959540017346740614744848977345400831249991335627101842794394228919191986373358039192648765426927198689656516879829025298862827032896043393930201142720040026287724683775283691069337108649886748891665291792545412856138308885667209206648842990822164001672562517800458027284623177103943774354534870926911859450870457137595818923613562817375834491259054252748238101564919365635721300850273470452904072108626613457247728842755796605091204355694265111574299302305177081061930799945610427141429229671102487622839124774290088855227965468624121329121607567063106682498585996665863741115320918460876399332285762445988340859083305874826818511490171703382348901238550720865903943041296799662825356429717085233974927891585607988494134889802615023815989753055599763350647758821784943617553771504764134774494954745462835114716020007519510555584223721935518197898278117321785738182645710874544306604480099040312758822438415186039396529274779557388756901205340282579980552377338448113191589067113838861678839682535254668565245932126262453047526118579393271818146454454183431018413595181108829681079450419934508899822189366136658633442650637021250047300739873269610840757818984516373585737346655014237009441810620365666510598530326011105976692407144444093331821035877182589706607733885889942668658875939686423351850269565701751391365994535684667635119713035239738478999262065585341156737388131861154587142684101081723023664524464184879941317422601310407795405500325392811254345378096684083888735826547301929772370181818827059105539472087401055934102406589522986226614265745814488729027462745245601842031450779559984448672010880884778099984164107865769518022422366386422463994532104193864486974902017540315359360547284739949834228215340393164475617879437967214956043042300875569726271746864485224595974154735747698021315912147103195747280242258147814001419681817578997156920151523439903091256669912459567983950567176308617356119266691473707591008035362207487160168315211134847174245669562995927951828415422870358449896090893417664735178775894533896556010263072510919752966651382265567763114821483847799313646407382097878251306712766009097752067645392444840386272086417706640843278851391843560410017744114273905851063257167301950040846277087328478105573059891646007689878406256777106804989105714240780809245506938752803052549027291455727660798187572700946814428975076169766738864104472167235153296457367736598824118027730842304769336401850223945195874368088333919537692857123583993408995662715884222301518137683532867679501057576438269615569223836765100476484552747146935491449163393666480308429420939299081288320790258673840034469380468102052662429031435523476994140040208101524985460924799380264819929792005258706919746288717189732699766802720115504670000846675507265412713280268657310388883835366192038111472758288764883031226289419906180026281100073452646754209509262131146925994928388545819578291472755038434659296417900622928981005036988559294933311375253072838479991933184815004780793249738302833201484505582793324290561417746586287303449513778328396019093233751435162494634070147483580734147211064872901408024761269004712873921592783868705198477205249398447756167123054369133146003513355258448672976569628498580705128916504564556239664853999038820515846717172922729518874186815858897621104667268218452618923691861327395506655676199110881533223488655585859976267603300229835858115201746227849542871681127186815442032158911601922330127244781204858923193218662298611941428845094768070101791986682001959882934281219993534163066575611119795717200371124326150617243672796986745307987152157832315308313437249008683111254274459085015889329130894243980445796558765373063993759055019440811770241280911748854401371024158255888307682653224496239654786641564855712892437051957992302462107681765671655840987790265600191944052816664324444660835197504209591308419536558857423585776748295888162848553450860129841383542816656945779651326649051915352432140337913119259195492731573002585280538818832238846610025236118659873739122065987815582907335016968022726703144208751066716479844972478111556238517911018718538013123536157897505505677630418084285791192899193288893015825119628216265544888021427750730312439384568054395479574183213561355172977335205421582626472885639926437363558614189877681858258728721758191836699000002346574198971872108698159317974282059054098269320238935295639809372637591393377361135947615346555737221145412907822957599038539736065650227628356286698500222547048875513366439970566226936393363616351370087950679398900235029340753506697047838656339944378770524539244759963568972089336379117293244930709228815048351340537272317599537665913397144975874441310737648484545508849135624179373591094236404213867063082630160120602398572178925721715964067794977451600718592454123794203686393355185868948269551889746239384464039480497578482547151740400968935215071887743509809756127693924008296466288217732642706441638947675739897917936660030774044942247962401345017414688199168728670302842503024141660590538685415288820808956846125581627061547249241021036778376839340703460585073571408983149956367667702060762188561812608655971217111389524175941068210050954715060348900155583322657269443771315627201922479981081605841832193251302301957610772289390282517157073343363641865049379292992374082392687292943186718882398436845372353906483607432754195516573764004144327363207174898056575888988736724047002435179658911846839966569302604275609613682672124221130533201226084602596127611274790304242805278656481162277671218295769922242352390659158432319780234408610363731125930812950186352356579115678934297382537156848689357330988264109039470507817755450309957993126193804617528649741542619721098564956117597461014867519272760251416524825949702143227196767476883627550794686080203585499830954982040285527826094907805498530638176474086629392310566804834270088660441100917532497919774573689403852246944008136733465021333521372494143985755264644002824154937400713015361319981707328738344775393081864025580896533477537808729180504780073209227973260646280548472941054199342945039003368965081290295592243899140336597486271522491727485269675350438382722956319424236647223972859763555966757600931037149273315367109627729488807405749578181663348465016034581706282008385428497221358990246738007413226373460729705103924927189714663405190338404559877068986636649802071692854800619154535605660624190508658575447554789540796063497227560424896714712612573312983499296036890755766754405407937670937750097828276534101603451929842601981282168743658654508751616382297598897178553996379612774513524660891851134180529268427164686372828848413687486105798552735575120664194116149759433467816028488982998324104616897681968622881985088673702534605416165317045540615516365954884134420802601686560871228012794932730589377388827956297713199047146191900198183293197437845066037353722083696822198984557048170102109573710669061924432915222224521343268737797587469916055460610406344247488728598854859271302708728001768893865610253933672373583291629901101963334344963553202620183381516884130818943625161824735951567406382944996508783028643677883159792723715126646504949616957654768473862647178011128947954595527955974684209326417168288941176258908766704710430380391408709857560211696913779698346417954908141434120889957178009903194625612197773442429551974546233616720614018657985078402070333385958019142900480021105510670200728901513280949126167058035876521963629333364877928650104330584522322813914685201751439239162740237997970969951674636067707462733193063691420790675069910327427314670699919322124679840175487624749189115807528839187800738338297369444521516969617122317652611290733366520294547650621552912939056059344730070593813051633862473409382171722522351525198555204432510514711479203829335944326297293728099133381662154087818791692128984696480367119748088550843398478707141870212345562766062829676224361452376617230481864862158346505197729697474198458962686153691924401429276190095660990786122409227447690763199092412078209704642925851863200709253634178344259860992654622092154021163359633042984621406030517043803634842443354494440132884228652389928795715427919901939488257575188455008891364621349405584416112743263617320551171776519455663915661802088995627228529687872889671800599327638906508212678763183309829999301832590946322175446853933976830503062779518319767786716886182809368340104201402691405620735014899303400327153142309222685574888125947565222917969163988322017580338390932629943666874348779261095034032726294887274903326993813905037172294283740618120130279223248562724266728373071824494245341634722592411604579259577117385649715515941850166179149545547855119259516307688646307713285657867491433815715334084211710598040449727508582659622181305987328055763930365991629468771736447156432611391495261124185074220718063872818057566475683349733396999045436122063179804803679371478975541854822493715533687534879236996888782338111707631534465585753528752625250683811746798380953939886225387927469762116117490282230629849877654323671258400579695684502475178087002477701255355166759521191629429565745476814580129271797065652445246223150488715592431771475608513207683073409055811211796202232582921978732440589028431458752123302884956673727974733523219226993906777797196764493705759891860696341286298585362086999405442436400891848824428092753907068397456230263884473320767549260051188848456822145606599058530801564135528791141221413267403006503304363698037056036934768559861516659521504331032871110362028994375665997581898669484144046139422889625901817454014984232871023790363286302474921403138741334593093077332598852409600312596446599369015081314135124128079150120764512649468340125659967913569298043038037109814827392033800701325836916730976093976930025499857497859000459141047908988138713021815672859929101820320259688827694256837947824782411684612066141121704989070422616957141080751750440447538256211504410504317446054360755551847138269343387100582287226612366866402603367866061951326258895537307172525600081091786072723253540541776033755517327295791835963151828905784117785495695860208312650116841294088526307340270045567520080233476488131200578872203633049936801605016376898339430112984902973029040981403703463317221094317697136051537019916772697489981830860914121430330918420892236255277347997828612182163612211096680702690071025016800881238746770140402498874964338108120856901534057669494006657805517929473114307012592676687627985520562813791021850952919353106685295141996441011145496257776357337746729996580171896026064273595238326920043419951562300966396590293894072862927240062192450259200655311605162343108734485556098075530203572118494912114447652914218811564491386704777663413075654449547922946376840101834416870141967349501538196686191231635507614878792640916954803822714223159655275534309733127394632067137592279280079106899729652653562570213532054436478513154844218329745986176590104018022480637548113898175272268797316777506483781450546710253566296015133273348782944312424867231905099584043890098826579402404856704455029002600264993660903220349248216410825282816950266212846502128469021374349384225432253704587589760486157425450319123214007617320324287704083753761108721849230408872995205605106428911792732674021334288451603741747633570409701286770151426801973596167598893063137050679773751059164574379921424005005407087226509617768257697974415052003802274985645689194273976778305494948574192168493642033049728941949634711077577309503773692043113857708412957989606064986553869884381113167015361315734224890878910349875852902075456631011218723111225605198899630856640525025762953923186721941925521082071756548653803490712754199934882544929875242856284230889276701971450762540463615349057266350818807476496736059112073703436850699546964270256886336174874555889572975049466304303525815231349177057574103242262196556203182630091225955816563867854214024063796921329268679369825179348665673683248935572217512408244462732672603706143672815257587465310481410075498568916288500764902937722403031541047762090455457836128627609485414294590176101611639710612141144800433231398252108514176911937564628503707640250165547027845467746167076262812995544432416947775301909059038352095787812074787575631310951761224159821550413244231724850356953483615848690501796419664029813987927474706737435085442681786701716322420390609514255673738764041605779594386927833817853811618174276538365568453869031729213356330550079719704644558599772206055460796014877263532042273909672205140133829410213739638470515600942370212641141894716212139624088450747700631530966436284221075127157458192050635369033626055229586010474024046208448263827239305965589441862052141357203748505904592882032905748302855233208116079462069876143259844528181452742150191132000340736547286460700081189969221419972897388620668012257161445931991790295452786278932641615718181170778009928041757688307623285177540861708135779987106208097015364570526333918841505880188563699268168935191522198316873489931455322800199024835553537450237413028041788684655166029227715845670033783620548802808871502959602508183894437632419031781324098249271012912277869522859095075533801292694510647232778872679506099045813633626885505507364163388500711944690049692176505865465833979586345979688276410427872854859271614582431672857593629142227366533062635138321091762986568022129600619967028723337126218892278769898792831450859157642687843014001100872719628353642407216972891081683566942775770142708431528602354775516542013706883879550558963926985962633426443255039297159355911736437635167888595877669207522564750542315394401016903128984462258150701668062461392582595040838362539993462710107125625920719706369268022896751642965574120770050851803365213783667894212758021842195599182543707837946618231139425452940421748569236122933741171467335594508890860072140282691577801004784028883710818623545107773028961828896491303970186871532690127857980909609744498615607868342886566521928144085297295916197372824025023829308505891639347951928628069563529164993648340700767840016078971678954234284196077483355014406414599512875596025335886443468185033399949814590958832619322171274234972585810227197391406514008082066362422215449579741672893011160652293595403925891568152179316688320532543974146048468567072709433520882572213633504570353316407504166397824442542605949504935058982975836406579737357275226787749004402582199355016945325227131743683549678417711343395423622914078400202880835815325985399653748985971350419629414441146298352118915490900497641272652212877096272020253995873122401120756037095468029316637891723617338598229049246107879256287872624273804752316168919438173329355953533521281738798929223531322532235875821339755433915022773447443814511396210904777696930212331188204249016374300970587080137093870979869087118904387758120841615912153275332336047770952332129154500440869267838737770054037459077739603970614305932366028216645821228410558826805706587244089326802757694913157332757432414044195923511556720201293601248315796976671210388506417280903204973217577974982450842000791076033701943020048928248912631138299218689427403863884572650249319755228080190447158350575799693638428741288991694781293778701581731127642943394054494144690837979850151088404480511507110202368241912023994913557532487718546460646796238585997282611680085075888059824364165160577196854210813128918663759664948213310659559368303474969016092694202416038665780569027579214069428700337382820022792576215074258414615472521982056543019526238043895621627120354365689989601546128539298351095446223559075592643974316876604322026761065653481219380955301116483163697331620711459788699425178086482992556591850721040351832724295396333891630602924704107811059050573221809954428004380225065582939756828201849663137362323698720481824605740111007388261302849894896026058544188112780496953894428082521309817528877736626821312450094009015656946651904503133214652469588038478128516146032183385080974567308332739046358643988244309831361649167154812803371528889240123657472651280616091179941895725416407210353473147566346076541129398114176381037643476588638346732127922119250612291323564565049851845604453946541885361094966006029177106943505310136280883919092724386035964338717531980921959003390819416518867307719486324812896733639233939692978678621260527997985471487520172823448311326854451753883319572296132840137533184338738783429461288701259346420223040055720027586697597347514843903085563975141408150601891371435425248919203037718391136190185073053900713009421703199481001457155724348331017173174178800335337074236807694091659885947154972427418532258480872109925027401989539830854521467877516125101011405409513483393322676540425097387638883229124066826452151470863806339418134308094964477513718512038226505747810122470913993005013520200812153721110847512692868921827358001746159133834968944585205768759606890274891810760463555035949669872520584726136205536374549019029127127890778643339926004939146177617092277474099709834021594347574850982810979347731891515908224232021302346125902439794463160487704360146203474389679251574233623500215860143584113846853901512484556367499636210162652572523293452102118966155575971164512930399295377656150508393692352233143626458825529440396592369121090451520226998033717305773029973836370907317579896693089711449675160752193399701726041933186272704800426866871676070380999972264037391824408175498866828900988115285921574943299797188453092891161036370478220277969231984558058989106951751816330029403435981560711943875070781166388013666241792094712157953674625128658317264402886066797971497929308982204498706414914071659814556728148508822105777179222826707287443477779698130495969066888555950977649647752795299935237868248608789266237965476493487039597948390519582733165389089237051741696043072761665864391296782371066681593204797962735217743511034822640808336386628905203842690205664701007903738446242753878099881549159448322936966465019889837949351410899824689303125502413665746059218513408144638838478525943171675002829288736413661696759243017706418892626737018182285011435017764748777218102443308739305668591947933109537003736444862080501837913752411201710857729564903977036701674883832414154387302978367999663384960286624267916180324039472453754413808125544477733764363516316654766971019338752993823264303972177666461108676051526914922429677073096037478667585444026176934825540540739454488155447995917270239295446369643010662582822935182188536633196638772479420849907501383503982719763052529914428038558321466747344664743780320238208247570540863006525402534897721938949671888790539176592256913253268729282130604520407448896484990677665214914693937612777921171641323729532116989864663675027001594899293690932163428555643605460286377506216004867120081820828130213925137080282802950985537882113145733685511834044818512190619830965712591784629589038397830914748548736503856241979563101821971618177524047699389465594127361332276781325369310053869651139673637058430961406527273876813749534169373170123077054171324685642165712918467836078286103371485465483945011021456408782634441860791484772566013368226022182453662980463015315896470474660011530174853112495722856665890372176788804924895609693074118005400915972710840750476861950537989839110925304992081468677817031194448445422087030542802633304556791762834521596560950411697280865487471956476576126734469802095238141610951961852070312103342489000768537581494477800518793687160438982240954748856599281685836474550009900265014592170252645411523806807072659497528028227665053150137883035483023179365181054242413788526915914571898283773420488110873714920151183241867215606869441591498769796583731837758514219448598202407723593159350121877616502091909332800637594794699573825635429459171755300567112200128230097943687341215799318247890561653783030718187498462969740953858933383606023070172542761737654783339617753553260148329389823622410740013976848961000005300775283978347753867650164992155590777175793537957646102533953822331967753714084068752721104244037689763558423958155712020808329227803722905265644934061685148945037347192960904196493154959831061359982117595022587629223804623074798378762088736730404351638190553085286115273113150377441470053012822459540832488969906174656566382606790299543111670086150346558136137375478338204369823278809725790267626960111956290832391806308235036442960762684879354443873441083158991745749847742680753841024109320583777726273273826643799327338305302721207663904221790112599062052430389862388032987733853446550089348935888140212444629432559250134658254581304436216179906049161272464873760653895694510417807476861616978891737655789676361556460913056228904295652686799600540763940292792464698213023484890873651581310323864956552362622300588399056963849634060172562115027676849972449233295226520586991180015801699682927206568154224947633645174822028754387114986524284893371565056590850361116528184546931364762692511432775096016228727769727864928867242738585981860600874353071082372206702437762019125939679470024918850317627445433756535348230954868991945078690976684949518577228311717003858353205640343753377884971811896451459453928301500622003909951515113579885040832803668990446506263118897324849766871797033712920991710378410486407628528902819663035285793431539520905422686560779704768224851391460595522870885206804507044005601469470062503882936588797383377985962851590881984024681252986663750982127229703375937922365700481238889870452781690927043838396627311529753580059481502468887975089178405196394584832669093214293734030854967717066490898703541687053964102038825496702601419200858176570480559303664617044326022535999589244344796939357129336813466900431407222745028486531985710279761921156042769157990738011097397410747106620848367731339727736141151075598452628996066299617276497882830379842877010903036880993888296882034799625777837501054480906495156340718623339827822127791018004907945490260199732264501974626458164439001185586304532117557831914625776913467959003170339763646184060003338038294434314967770113998744327752140577438752787558700051252417240538452082307473569505195588922420377698158096155626043193255888812413492334697408930381647291498076126273467669512232061827674998626154730903146913456628194926369832810012993466277160906483296057988752590999863997056586763769023763561200625991735669323820227000876343068423940803589097390754765249591750893659698077077564896074945801782549891015825785654088863241072490978953608201766862834235291914800652277642347322092484151237451380524766530830231716819939051473073195369461850050705359416658312528052086354982603940938241560323568711707426529327511370746116137658868551409516807169645116224794934304456108403846229153440723662164421070415705707569296003974864617257287379498392758833181445390511438954420912444157310537827193377926408358315881288313268575478213552495072245948863975836153222977441836265362874453955298106942940222867005779012499369802277978484693399948521086534710779377230183014128122216773418873322653370733978695963873912882808356572385133364946636329559566467704483258345103938847324870573441251384483986022276453118135724542800839963397924602222763429376330073173568403804576305755640481205446975336269327901311229698564217893754368297636015404113118641155936173216052656868681979674890971670432329149108422624658002833032182583711915151677113150376811097159694645685475565446661889549513130944161208350607775004310588607552614644170679179779223152717500209345966147424212876789927049498480174266545550988428357080341328776070612547111637717862634842534556623943641492137685532292768031046066312824969372198376059495245778458801652333236055937786895234048825189027292338472351924284965933448027171356163846891589720717928413729372623542613893014107046892821101725584457748281936529999787234936305266907638553529381408491522298432660990005922192395686805252254177498181147784166396526796038742612123384615637115642927810839604423867372951866753842380852985587576294337064100415060360612082544811785593460806211091270547536017211243253393978408817356612077406848235103324590982225048704010025005798122898604190148625411371089240947720381661363990815126033958425558178872531582425593635714333451610254251330805081108388841669622379176834600843220464705025307134458418900523741561189655923504498123013973934049863550364057584151561834963697119788292858603149147242197565020867375939326379264916674084779326431671727271346175099992285493508564004405865805361699056509639232859768428188215866554708135735034411997681647803631990936683886190659288990383390497964220996159594696401880337254050170715369280812708411459575252110232357028468269818824837385501124037535143941713937306063430549005959505098208999668276922329826696447147457055178729553836874930968628205822985201684840963362564999433650402871933967266274260779446813597604560736655989945535631017052437924910527216646202839164478153549037023068482013301942448358965223947150857368220361754201561547149727985581458644436885001593360545683072717406951756682859523612475509818367614789723442536055382196869618068662017269139916124331879990185162420680516641297833564347037770522684624695121091470080927503712668069543626541349851034225905034312678245791401905211858412798993846473061517938535081733281828888346396758157629057867788850821297237268773521745460597704749704967993403641978901332466607593387054275508827409227947752832750609286578621509384114959953663858845858901656638923684215797174900959297506885617823496957791034714057026838524519636984410815751850270737370529934812272857510519960798149145990786939410384457506866100077093107842094526825520946777485829178143831562255503764700034431022643063919220815241850197546461137137310319518574647612237210246527316211777268361676869837584602457428003469293520195339586152987099440902532291408766184073450876100545333568483320897538774771332549968786922310252580784032939498795639800018615388058320533438716174655903033296712237157656429385106741640727891353941350742222154846833619709495293735983711013178104185486295245479680266281912811628001718660688610019877742222428064487900858312245552993821836457998878521318660692380202874577533588767165764997657177725692049761084498101222586550971647524917463201209646575620029114806350114960956302075776167067696756657348522107794983148716702809781047184356232606617474648847411682188158252471354120648731059011419079337872796711295988357565268599800944767200485757284534192649466522577397836122246903632965256922299418318981465525503829445454405208294433629057232074682524442471943074514143114214207701717776927765163712920824227158038111305554711968437348689859841920948763784973216404439773472181962348410932443143376223325463807000530461070829740261698788592498414669798484408702688650357513870145650965165352041082089106424597501970086090060495537881130550239152161072793352747460623741672723418041663127468708905634954017302276714575361322319399173720823176075800560394795524575593884256453136631219042931468413353302910499417408400450674719715697372465968833563074623782369776857167825726777216509535386159036673984596516919795787426210941951321908456988670246670950824165613029193108589427918775905471727708761548214203770770905413535031440674145424737147802818925281303380887155664185108845701570785330020310276546689955379270458889006859771987388851538157620848535683233816089390291371640311393179321440339622572707259459446152155582362136311334654864342936501202745534662131747882176555102277829391404035225123420809966673696630183589746385459941096480206485638866446635982883333093180181412232983181018436976139518359029171529016779007599212610464757686759500881497931048611582578247677068266667769875779862654328176141094273102427488136956040519854221112944148755416212354079717671159480473491687836234794538213972390267162752354174200477270170765395420476427690554152283289758921392228393943595102987760414444806040006330265955032831742782511806127568117644859860390077775441799228761586716048572359657414743653654067622864403862972711656945724206078782499425638069570414009623049709813558557495428863099588386219200470075639801986692297965036362807243465398387583256724609601258170090862336821697659184181005059354777306067035537224285458109809012670706052344227597376118029732284973768721948408554826512520349640516421585016257336037130580859338772444281028591354264448581695732453937361889303095178215183865867763434071397817921022301571739315751430177284598720884439347390074205596226143921287548366477302122467109621916364400555077502300905143921534612267987570145498637564349087976528056135865809302402315448109830770309438383195053988626717112987158451194434821188819928603660446705399496044513854217043134518773403280766214482299381418605305983191852293739506059190917574152276087497406238216355839856605707474059969668024967904709120683739217557669823447418675544935453901206735436309426629101000835719707720209277905558826460559699709715965868592429505934261102101928329660262033043001194919978125231034312662844182425676977395725137770634364933096349650428083608794046213121214515970645309298203628077978018583542808482805804134340607565073248041236617946787397187502358966751805660221411187592838118239769269882780911652054432583139776728161056564462946325587542960977067598632156605923803377713439270010256355454875786729171048209419839555832755119405874204104064892366868478867437516775448732132567240677968942313216843630424253045611001043182800117858214329605379309294695273611616560719121231092259335998995173561781378426108952739562086879868402728444388271063021532959527815199805911170561781820729472901921287507840982254643319254296911104761443444080537448781739553743443539376589675465702732233809256170341470053827867078785593510486129651738974041168156578566081640413168578228843367659024894942141345755388757088514693933877710489115030759841528734090523383318026173166592478648088143874304044666124476324653851664929434239882159684836326949568146297792428921593783784538841243406652148394127066174784658261509719036042802659440515829722367542414688356091870396792584265351349236163346726610125592349981935599248247830526189562167316954105763630932770303869395951817047302606076989918470227309050306595747499130204712609577407266229986225640663245160807661681536056468055252940639860882386462643502944094918450497893824791285449323592567368082416348243825753886069447465646689119177086821076612152138067119060372028542475402036860578062357619091132876829147801323813435660018499743500625698600923061553102574256401333322153547835776684399114270424451379378996597726809527076907222950143879281236086752882370023712093864175304511410653924731444545934888108171378100244891861930657045065663395363114922047015053424467499527140080063647617069937530741073495054853886078891549359451370828028424640736807383302658910998336326385255111063767131951155233178331974694655302631069026253327529574976814645518498040701325208014174669088984947315755457669805878452838405330100902236699639163197033358085785621878239224136812677075292815444525605450754145730287578004290610100163641255439319398936109234323699069631309688203779672803993408794719693536422104969803113520332576191920221783849713291949553719441934448129507554799836338653570679843927744511457977173256269626810828518456479168345023087867924324720427739307702889391511513497719133639386232089064100701793927655410943698449324939066855391474565130594749100765067578283141634308992916679333213938814553814581727341297154463570769553622945410043622252511546474584306769429437794690888698930020047915222245275847390354678007820821776420266259125334408882944485123413246516402607966089798816618560529376831196076410162927150031307531386001760994077423105644373139710350446065907821023854100345193375673427088004721892140724556838565630630426617836653026176215751748730477708811698805134382384055825212285231638127232658110851227088944532854262245970730184691342218146457950218339973620006080307568740777340915849087698090361480910281771321122976572613434575975412111945890619343136218802116793981899697153975564461190810209504819956147314008031336689081946833649735104272662857135201336716753988727209145449116158850414887589993964691229833462633882051267326883125690756739292272855005447164155394804333960413992660774318281722988820306471117410749897192236072110714255604263161614450938574478789773713634007302157649212987158794775829347467476519622440652662074860772588168455133811456325236290409985434905911562904482834048230538997597513144527982275764357605708607510443809984936908779029678042997666469515173800530231145171525679895642309657964937883875204423117972377954202734605236544316586417916289582802710280504983604401185115257361945802395451117809353644030223725909217306371808194560593367710627901853071275899764456670454484440442598174876325328203380027323589459943132664963997423572487569283729407760243109664958026335298942492905074092713955784195768892050094400802834278433748940058468904207722862508304870961425694840710336680909349284483856339696573738279489614146792783377128111867037013038528028496022936705388408218590832373242465206616552754328009661669605475748600545313384037474212311472044554369778245000425093610985216737196619896250467118862284181489739518914295673686077333673277517657680862818455052282549891921682692227928854508163084859396542451885864873098399917904987819855072629605869172935036785349895222322625255579786161810544682663749809829375021719362121836894639502646156560730227524352861013442201877835467517489437543328951636911770374918182450710251858084955418664964440842418106940872531875558759810702396437377945804630134773670857960296632617641798112999458460099899898585077815322487945458576081757608752338602399770224935144047860195973799914514765840236470936874684109457980268074724316610089603789170426056744985209900488278401984078811550281542806753286689942586573521505869790611911472042028322939778881247403077939485066277983231581102248552804329907338037491169499553365396457424540355689841081063574019254226799559924344304083287171069015403756590837724209079302238404421882115926011442538149031602188580060112817052601745473681334188885074277653579519713485908604223559161603432225733220420749555178100531931972949783046656588172794383476318292376634007015943731356619555392552498463883281329230161186049335971204355391487821839197979244509218095422688873218825063069062759033489949480963854500079807913615398296208198194211770567820180902510703372237677733667962943793816872658320858167198256765272754964293653659656738365607206991035525907879135004944254930296872105203738714495477491729905981256809775474439036633822507946343813075154330400567670075353009144502326820722715079804152534219378368697821868192704854254708784240842747439208943175136865012859930315047118779751336597022066350681318958658534715585519400091403817999006354698465109213173128877850720890099042513601236898535251616573930992184034038271900140555246328014257898617755346019188469700535062553688577365913062435503189590696194469235152565032881413559513886946102480868375224686513163461355516288319746638564659970046836864771652551294198876456697324377106222237690615179846768464547240323286911350693960947576473960380831977764381414614292397121556928300998739678323616175860657436088078476059640496929655031680013632379935571548697009562704679662444912769290182208148914877439832271101614355024126464252954096819725791730447263912320035079112857077144532539730044056029859255953462161926096684260993221640000506203629802640487551646315139102404132839552847461491607344765226352567882796171020348176180755889646025735224616952252433489493883460345628174885734273762340300192091291075103219530398503288406569739788396994818907187338075883902928662376212460591011967426677030308947921710008921299421324423613163777342417296752285873577780569741057690416030063255602129109528656986215123983449689174692077586053433718829132709417960732534922685246597582869201606375577050796430996144457971254658617499357902789177425406213110455904829772972698269173361819899916986744533316140461488872479149449327610907345895891411163899964815636619338001092181831805840062308318912607640842341209956983018330580240457782992770557379990924286006305074124889133612695150604061744346606241291322961054005599862474544467465041905462995611187609013595868446618759205763859099949391641530806846303905325570416152824953766920320797907340902358133009026289866157020391925743852074955852097613803412742833375982930606057429688263280254606094663432226497475730827767573353280103379631159944995931918684024814982090765710766258861132872453771864038656747638088739836641320354450807317461444193881326860535012135110977557193203608397338690343808311809258986662701944799198882945655339869117709186222801504055192147852286475947791692925507049786826748098443093886096234844399426206816268494960764436874478564700938604431367941514662438512221893714768538054910522490763752119802273200121911606001840716845600231493370524929052945262502047026997186190161418033194514601170975280701160450675616363528292445521039847618200588003923491339850051165870312702894780445356694956571670924106946451762713353334905327138338977182681174840691672094206607379326711486072837329371755230812054206406931108024412431369354834525068541922614122201518594379623797185049002513758253882879221332457446361681703955501341527456995224312807355800520488112692406960787910675503494684256024704322446141574453651132919034577033604341214598189247837440008827859251706828378845439324094094344283803452399895894341758094569227454283172774563300590934788257309565103960495980443148111414265955601156887989122543411306694296351566798159230350472780126497306409833357782668166360550587993582245308320082213521967040338619740727572536549051043773770586827663813967569909106572256040782419149730865208957572814577324583272131135975605676467176890142456867085556846807262009228226774225400981944112504501126127420617126280075203726342783777333799976043927776844967379820518691533021082276414976315892757819434174431292195734163350676079326414477972393916031230168868476433998162861050658441636767563873116526713352350871414469558468585116133792933650858959089862479688848472941122258009807534772130231850114120749035173032590876643260752848780065597396763801425636713184237061578828522013763295177835435465876605137460257432029461436920252344862526246504331193089205648545777310738062778887167497854860748855813611091885525349582891649659226659315140048039955029387210257620288670343713532043917352327909741549316447739200139053971169783275454253837164842978440779262761769164348763048266629183592587657420018213760771577320861323206015185512575406867196343455740598963248979424157648875152109794261870510933801136588449780289278770174300450692933879385142496269482874272025449667857159096186340677986090943048767283414896384979437782043754733278564000620952485523668367654170295737305810331509718590755094814465931328856883133987787298364840528047477053251757035920329348846278830880322187262287078198197025690579349226307512429252358771926924229604431780628190267024037432936791845272684759473934697340925220473789785737252528321057177546386897389607793077752941381093915091339044973746610823281176737208434625703734581483616334537602155733347195758759903105955620280602633652219043010901685691376387892072135228491269442229239289231932313718932664102500886004366893734255014669943656984766405721586585685798615648430680114426647763928614367080173050472641942452971174051354025928439226838485587365224996394530627496356250875946551556293484950972986385039095979728631576604081472927599655136080077947267130369071888292606266317993360280923746518086383372332973418295378817586635765624792997944691651539809757230270067164982152498907519364268487062591843747907805937190904685024071807210283064616302802270897410527577056347466180745604941641782445960542488074282200429603546106532059700875585531385981258897040077681901464560868017486283557135640411625696812600842111529879129572829015371990936417311918794863597815569681895953721239320983119403003917431704492927205547239909187150318856852099696739403532355178636356193443694353517127520468073887986877140264098710925019148005358127125827839780174307438413079146644362902729572429602744542077770032177456751933442553868365231585384026940966803949346511464622311242023086447774598614166117482053053747405090115907678286722450601702531729323163713380237165049840017911530543376909986175393738689706571711496772993802954303031289657721312732446497763449387554315431731041020790024476650122269870613792472083485419576988401864167673405878784232451732602395566218753127116751382952029602626440931484272013933417409041676426651540078085161873275196891414239852545742289293206943153907914232717499246704537165057862314175018774162377681486788627047365159568909766660822198856229998230784787734804246091627025542740993455374136618482690760208747968678360389884895054082661827713198772802813255115031699674841734091916559056522255690800662434490722614908736647791883235073678324282933177176669000470130381382009377361528165865939318896811774089428992397044793079914714654084600281163715019094959077781125505315058487295719758057617738079014300765426639496458546570498378084663304122217346604545070260024448987077096912177772476386153584703799752097347535907739135970997628522364707282214295210075021931544288923115852694306472873151342758571800523872724437783350871371297854489416244307774390820840100527724757540242007604438924291723662076241093857714065087133537733099517961708665063307372401357179154216148647368811663837563546175778794714055980633974419137982658405052749341862926162028301694800436925455311987382623577651593091087003610034560750167356841801105415689091500593584234786363767340550892876108497152077854117915686388776734105742627489792855223049965427860649462574350060649130412075683096073615530939206303379162543331861786334668223803774634595130096434827669211139169632878811681945263033595738224341547662508747565785638345516789771359678608091111400082960273762350230084007235947536591530972149815001862188123613542688277564946564159301680226808346733993684106097344791493440848772094807968037813108985478163490465545630783057047487993794223594607174891180923159332651368280470071719365660484151953799678977206540731664498003916235637975775024825613778798906183737852059419998989985474409164180048418183512707033846518813992210854352341084609417244900599668193684040823628655807400044480198022095918903577568199468874960365344690730842518492353676586647280858290484566154546599183309038831692900007789613924136189741913846385750739443358637094358013803879240388302155275131313585495088937346396261792472744725471075477647858146837087749986718568487667230376447392262957152732340206950524071958064198655564089890257435220604141696335579145514433618557267526113406391080068889609343361254637019325249861073776663715939973499271976059832708003431274783831366658808021924570407318412253381877279192431348976289378599315398689957532565987644718873602328192849271211297931445486177760859691796955827386778370273927149572824108393048047839166938485364274414063073091607118555715771222362353667235065158389442935052577867881619495529865700224376188747900131808890333220293420095324614017101768789264329183778043992084521249220336660637840430081053621958206976317653094204287807302233504793390031754575491141101296682966518997938032333040702388930901849173858069650309778025536631684840442955072732685828072712924449501152578622573893439669139141520898886874690907480314735932059970454964299748651125687848444845556355676533183313895006381175111090716981253547143743767137978675157248871046427772457667536643184759062589335765741077666088509611378221793468159672628084300157824918588243397737820928309284437436279802486989244812730818093053568115545506113882408875587256687469817730161873303369485510043274382146565911231430188189650768181880149265641512975438124447570396672292269347519808331147589145494276994019075690254639241794939909821843481445092885543077092558037039506170445553508411883785133487360176356257126753107416937084724541034416491160551630864168891342225125765756990314465100469296578266069131218443350673587972548550456612597558128916618751301461552949639159380767672183238595322157579373196789150849465218052635958670297040758003069990345608851179411720579782723590826392006639808946663157889768497423288669877756072762715819692682500028135640593325978173139118665936398018681062026524892221396506280543814346685619808115306107051790100633767873778323518321390404019500360766260594061885809166821773820693840319516855952982448419626540933708415386042080498270942210522661119248151166580383680453638411427608479373464916293743796086894319472697258202991218878491995672441590756260672829875040694963627064535353766883742656014029265107832310734883410401285130678471995458037312465938975717746912245375339128594641216131108085996799278301112558314750302564734821503882273192111423952247969577717252931299283505760678948916377332535536715967802623986741549700646505625679230375862111754646041681869826723181839616410944300324468395290110281300664070143776556678188868546242148434656811261348580473989990725100213602066707995678996329487475926642007293851834033431464588719083835110145321127213173857841900241086911965023416392226688892803429225949698548047194113912629913053356761707270443256693736825126227621600689074103722756558186779894917371393762463904064476320241597503534369610344171777003182950382126436885447214098389873532738938442619769509826456325826336755405626141119042143211075428092120350098283154673378417263667724850286841065986253046177287112190235439455324478604618257487970430300637809900322932515674004441202561666217540986927875702684559007334213695423065735370311773068433517333474975254216998565012373444977369061361677121101523075260495903585400108209670206591681772882773379586692864214560307424210665246496489617736749168244766725616994580387507470221728259682796376526075509771364052410695464288704366056542197737163867748687944018823210358955517439550567350593480755848802593067027815091890703224094979750466992399545224337464592755416280920781626336838344624044940535825160854597700593624817544147296179711091683630208519202957408552237853283580373569729860806234554334700438708022253264554538930787137132928974097833311747231854255809076881867436457120528737699374526087913153670508700216919431019615461978214783141697948391921304940576958957057152754842249788571343213383825230570732469578555552311698252877803021578687587558842732551403545208169127681250290264060620266367415018734147913333657028410120978392388156644293638643044731487520472560677285234940082642974578069840459171187073056564856428630516339604305924357363197073466246281986134488017421260814368580169154733633500164740070307691784044730757924408134121128279905444075632058628876565495998203305060822054660257462570747678916155033090802222284737413583958482569258954757930294298892603847727159413669345150884332662936624264683571179903768758102241213135307997921309818419036912210270802962167720090499716011379370654829766246286366175577374817377037768394364338487681642365189058331615391618372019456674808452205974511916180724593956524890346594910113787781664127086677770645904910280239736336357049983710240588117850930754785388238872010519257595222789321744299779906286546998783145423399525165357797122119037370014397366120569902815697326233754334654368042256993087757251604911225861525555668830145611010840884182671788220978005480262317447823794313462283193006506800647334308888517383768490305620306216099800011298009924652951660371408463157807587531361597944147265135745222457655374788670087315299913092697839921131110733512958758797162829673688725656953433909383986362366134466182567040417625732819315256950910800115418046391188359563205100379737803432310144792751849754097735617361277352149554646361724529813607415947120318621973601846237485898677968961043001525212456375537760239209265226448584908841828805277247882447651515829061490582570487060112281232170092786248365600650665637272537030934472082971213585040847532173501410037899604320051214861469419828429843702294188988924290975696950028583437734064021365152677086539886603769145744838719705308669856223044509230491291400327981410338876755584490882086096022054917325181767174273327971794037055151328552079117031897675227306080287395913463432809696537151103243101109876537895682587915085034964323895400057179677507326781265153765366742228232753085266791305086505203934245227392717384855512377161097082007006389748271427867240396796063431554288814282418788564794448643559299854338417272352669470343502696081854419173777579133734248581959897223137631168682652467019713630910325013956346585515856261304191859865708289305982058688320004866707041559010902621502938316201762510200496936379829833513818304497350421834429451309164864236505979016055140153124953749450697476670044172928569693447985546415848192703576611926531756951181908957620223715176016585499650262772224294209088962986756162910909973093264490924194254639838425514083116389172851302592138753096216227502810140000018479061547820655972843025913520450963115048484739464800599793717410970600011213906590351299033207530404792573029156347090691613603696446234759622711196930778278740294650755036427918707511545867618377482443099887296297385912663298343255384126614682617227383143287420466983208437755049049748888306722753754893942620087225830955270622658410152833543624797854835040375329291124394341467349464520933504981729007890374226594778011000580815508061568823635802688134224694080268087766405524170732935581604321737131447760868187775688641419724875350615261878422356481175908575257866140567075932782485942872311697366562871670923395202385652062171967490105377359883882273789238324676791041414275168243661762948238101928831093489776453675230860011360288756583891703025339502919521098901519412193115038085648170299650709618484447137130009496324628624165473440167147124022116750936546506114596692718526858986053625755415048007181898737361595285527325259828316856966770743809709514055443749375606980219605609201263120946932759755769744232655805395015951424545945056257291546222715539865589081273926665940851835283668230572328144764018306734293827914384238333007331025902962959863205878813728522829740131430817610245997338859029160409584733396392876451353541705998036299401427311681744439759479329407872392909087100530613426338334926014304525844534125622147509036005887792887449968202229549141163639236608341344635923537530259344886877091106773258721133049612992390453868001778750537888204483703226909805601007521269455708901010763095729809846033659320238884410205205923212926484793095352203276837378698452849679095392362693362068636889287315354873293914135932807118989944987130962664027759477789114665081408020826735864524965059785975535430589748586549250765491308213693255539943131695960765516115161582931289587504845703242953039818587356580190154007554915440508285301916373624115962166560926492028055815471318034429381818964094298549526324272496102259201400446877872605274980812885969053512641047460738917114688600069334477595697323974457359924479834207307979788667120483919109398108241530447768078331698594624150360402647203457697157630866710979660485679375202386686280521032891466644434387632778162201125057373695202205805893454016784220666735462692483440332089035938726679765831621539054234361025388945999449776354234182535338378796691220705553347071109370422216068470719506215976790720829082270794738834244461216030033362309622293108209055198447796700205713928926870418914067076160731381956023081819001453336237540177041817598288303714753978884765025119036522488110962203873105083947991488513761383316723390828814054671731899916543058264037808368692627869989037020645790474436675944469460070322123695654249336797975759263731356008582563940245377205600888758053101008974901818753711273483449453303155167440503934819714906256465856502172567952353991424760907524548906875156951640536341273047560858552806765007857317440969477819930302339163144520551324880777843626656816638548263661544253284043084916763622029650606528402436754471702003874414480930367944599636215692337895193979531051170404262296896325661929297854969171382027779292525754266478249229803984319913854891759493884997366464396614519585412526863901968025919308686972242664317371027217686876433067704452254202254372169269940478179141035741397891908946748978319905366109687075081326093050540919445591688505534472457469436209936520716660034473970407495323360937712637513268436427957714830011162362189722654866344163440910921337162398976102137946392712729384150708335444503623549160361082740574309190768640691383992543427808975923909062713245567365834505135033138197975257930158053941090509155380690959240937149509065555116521533001465322284039156938807336877583931161825464360914934299342201734693564833903724998944351885360796690094632848116591985018107090198556543302418992640425396731767399833994239323446075405763826121307084978472389010124989949947165457820768523602229504057471627187255743715899497159012738722568223324592965212389281062092566950885956181387523316676532113255357139692502844580627391004550999411419682307985519793074748980467408610462132782630284342612962939520950182352495670194823800178097807668890382692455753577733147218385757685299855260533801757365462961741731684691101113235562681725696857204968350844230058293490589758524737105933370568674306321619895730470372851865731947999141050481647285448107873006597012332377110751288686873179784263750074942986995191603959633400611124178833949804563627398446253181742438222675643842104213404228154563289508047720423514291088119910109517084339750952875177268871996770105734599696059720666269030212249657487453932137254888494918653765923371203769715406331571209091557992881219145090399635636566781550409452921982214049240961535981909615959132052256438765455646906182072419377005955936280978461173448115782008577492752394946314880952402533408131169602458335809730019262746089017406930915897553797132088783553835546036581588340966976428224252113480642419834555130904185526864724649743209637205760569078823236572787093556170426959628396123953032209974484318326868773350014897642106770590035826398057360833360040015288441395035030566777606601328146859790309949192627847086975866501893863621730721296169236042233279162288035506814742168506729857358916994363587786972612024957209791459881984694133841338255334602189936335076986853430783521369178269728495823075506145189554054769440671589227405445313193019060564791252493498705420674667378621786087939234596668069688475445700556063628820789528234075872357833418140142284414544982193995737272054697856566722525861883850008451085353142432631634348930340899131032674321389677502969248279110440034092561217937772481451161757383176059730949156607240295666534127546037695470431524437232034379093757671549084679224014922770375383290950911040521287775585829933641871712379506079395574606430970936847414960944593539843569049524706832611274027798225740055963228486020796751050925982850826825438744132171087780934857130648251487544442887411688317838229756574610028128542430131130052874717028194795349262519810047728751780392647857852518331080185813850107333315810227422247110498764776710056407312615978176674885720395010043141145850462690322659869676706563450729844228833176358912796536027532556055518146702691974692957744988419052419703058050671895005326698327244626789641046072925612171657894662926054594532122772075805253011672967790368962170287372576443887231230330993700330434247775265088815674797146215173352699451797574852206560410227613035098897952032466682591803491922053943698885691328718986422743112022177642134460236927583752542687739200812062188021266136113271052700956319268564896819376458106928629202192386979812020045621046001544901786834146932263013512440624784567671514319960816225705243820437440358077352140003040840368213264382108647502677215222981127570773141261075283962251680002025981600034072874157265934239343166354706561092087231841398536612105937765854717976853715279994563867130047733613665479835670801602994019799778544838808186516576147623715205103593245226333508158167149466377263504594511310910783310317420705412560792046496936122988857006266806295130572011393049442171508310968980976246117904489763687951015292156220591868618580480462986327981463600750710771190715066038447297820293179547896253337876739088225153013170929207904509618254964925633299963771343370306574719079699764996353878507242680461923129451652633454310247339236593017788405583877914329083588248312849954835878234451196106917367539329340972852310527997713863993203045349227363364320958496136941432524526362046327508382507318705327467309953928687064776087122045768948285386216395218097243276488617003877718970833118269722950370597775000023478086558728036338229274034772419901757743642320172832402965670501957287133876067812719102135630366101758627090058724406650953151297738326913491048301126443236102595906859680049057900116851299549991806496928795021166220661812269020861773737363618040835004949375539870229435832447348615756493832878652604313987908531512694424529041604738172676598075723715206158414098333547469450212582482688651175557843473025813493473414822937504364360485303461562532392523681350001039184565379238466021997582827939922652253349265845697870435258768215198292819231611877984947123642409267515694243068838168219311137533741687051073193173653000476789789870907326214926501600431183132007034390447095405360363049317889437504163860040201957938530069278943617417630178324958701144319472138612293444878723697666880791561421980015924841356423012403615715585149201541776393866643304130749023487101295094022865933641342699148399280042993966583456021066066180507911767284476790894934119024759734906904138945014229275901352763842972409638294264880729845101832249071220702301887605331394512104754099918467171857528031151678023071671666035618273386241977745503943470571605822489968386989308569577933285919962633446006509472669701384620705224587395425605627095379993359142437577793540268425355237856743100927373935947884337811199945100386130998276286515109563820482389784771029130664301276339407010469278876147673701263453539250480523545084631964629824134819437713886926559384287239920378074637936010325296794217297940853440543471921843012168898580250498113355217997013646918569283791632770841484645596809162428398621718375844839768344584831177224422496177313735886342831528709236677284691677122198939200165660341002988627073364230028820865221269925771477603543937865252395329364858786508469365049785579321991535905907502965783231582869854895217815287824567315174786798340362475405577804934796482203103609566876484864971252031181354133783451715517642747904993769916958451632411816920463855363129747542545402626891397752483285456757400883123502424279598807448694675294355317739391053337844144202527863727300741531981892954103130591930891397008618045862474579815954627712478180990864243158092519530728543225547718078738701665351342323406042681383678700700380608318139321220716979510877426838306998235434533756990979315652484623020888102142481927703666252318644394311745586304502181210133253195401854577229853070180080292510831295688680320296642382752672578882699814793681026959912918169062471941435127959254975826568762284448639041077500908209046640689882411449236651529746583869088435396265556092767764633885503593540033171364852050795970658465546871405388182741925909280407164521941269246750800144734436182021514988134426412040089275114488227946058460928110007777162905592492364578603203496771942716565948623604411171055539812066963193122447030817902457699869298012232262867468776661929454001990879788559615089603201417994796937584259351393237812978374322129330835809824853924420711827577101521752961319291740107392536546667129374156021613290951691389128514949200490555169402583279941905682617525695806675198576605675830688106690235868957391866914994377544271557065354862053273049060177219853351604620146145390527727208320153225520577418636666125179777540366076046519686028683771585488887519345184250659803974317914585026100616663764137184135282836460699956973765408635397700178663434405559441412502468161634246466592428823768808746555123340379027304187666622944868165068958077336457882640438792329680046033484734853040830129701552758862840876205332345268612173168787181924945832675390916519522052062520048326919518673567394972624764468798518757844314783166978398919410510349137989528943271947812137463647387020658692820765093274861130786208809199904879883845533611459079934674815414820451040782034189475903288043867437168139543785443249589612622654939647672868409647849638654567333437709019931177420208628920357273272954297698524672298165950252175835712473899282275868222381099030481599281153424195254756045709219318041887646149758351219303054779483872253681176815944580565894773112520835999020701283022061066388815118841517889931677740644402332526850671834863423477745571999325599353894967372728796256792569848955546549614840588720462168156198179703781617023826177136305663196573447337965102703636522984567744142199347670690932106333735157238232323020414569815337495753604721812313717262778169628333884614326979798780476506666128482376339723769225021004899522215499180543627198849024004174316565735836561652928983270130776911103739437282564102281261600045600838235684435969014915671257177632532921260565255059539078375801945702270396154143131663328557975992078111007216783044483781649249700052902865381484632993436982525902976923411547008836717434746375397514516608351974895559373733610526851023598380158687399676399090985528213092895497916314715528367643603209949138199616306829680541468991824018795766520546966515884255874204162233600723199619107420791628108945491988555208814454828017997647434137048362181537343287591201010535289092428315358093943661031198043582173602734292861181101152217797850599683157639791454034560111194045099364761664667317003802436857367150568806532481998988037999022434919659065080609918515831583074004397653827363076865440371398126998307068991357009347113332304045460096909405867798743927464839465203699426265780781235558097559032807984726575392969088657961458131074330312034751959197361310637327539587371622232572211845491264934569260498170441989181834626362473889557752416930963660119639897617357762832136082644409909234364145603612192781171519960047194969825515461871307270396451453695963787763593917191733640502698197279596510830243614840844406089885525404667705811278171964694529245377931890925015933969439476297889519064083792026562408680712935225401544506209774236795082054345568979551069929542151192832417710294210673409617107776573469804952253504480134320090671840209965828741306560410966623545370817274335850755320101777664227265422621597660781905377224562455015303400197518056772755183042322856818908764312938508457363395775751798447193655403917176541620942874016904754510759417792455012262419534601697829312766044343511113778816976666668580850956978518388789816826587577898685861414781758095725889398136236020373889081215115314299728405833664093504097085817369553188305169840619164674626430295021780448455985928540016269400400253419203667047336644006439470579704755292506167462365778647019922368754133166608261062914777173361472878196963549132598183696957712933513572472209281765295310534405360260367609071908072963626413482144732316053078119890450477631437541006609549627194800697990071265272507255428634586077832187599948700731829319545424419363308468023608756269323022459728292184204437484913191542732648586000590479207962055373002480464959320502735631358063891606872335194045499336620041055983285098726528150212626590407401785369885785755237364298410542823742027307875729059755722234314470352484052219876229713929546735291798573317568424705717948501538262770142031959712173711478321734190381385655910038026859688951467410948504246331713667359510534577454551502293466369157914477538973181989705709536132446058249572741629043612722936620440657847188547151287989207198648727493638807509822354639365216713315216466302675257923983183666542837235859470745539102401954961896800393440716195026935448925450196668016438858658475714383679891621410973205851778471274909212086082232880454404616327499572754803853771327813901875084335038452083535155478849169133251338629889811808562206516030504909496587389054304411152076807814733586444558139162623517575808658958635488489379585505173461812219886747805458599395332536436870039946990904039711335553577209706054344728424727450260613765078508479548509721284050600271023980192672405313559164316645376552392469351916153272658495394648311864916294252502451479665876181629980695231174187821842871371635917195597963478040905876885072145856271439365460000651707338149926566348259076941759773417634419555131677539029087484612018692236443784357798388592058585523734291062397081440575894499991388110571029698466210218871926272567491688809040213604242418322224355402025550372513282719774007951300841931810938810218510187989063583294956399360759234533936702491802449187750078226256372059611450407634453550601035897845987308601294315304714314156551179401858012112668931427095520694176753252326046271223582118873415658006096584869182745658329935331999159876267595935256919094350291126660553523266883115882432636824659935999180847860712859447378432635126081640649670174526118330030681292822863403826141708988888042405801555857644953234434714174364437874581237353515003203241995798596497373786658837116297235657960252408748048133462732416364305085628491518501471894296097351593399244551365544109138664738106145400498894718578195970602191175370669162669763787598713857782146915202955618217155241774514314409570646984950095487919002685025994222971138942567106107096268115984124665668200052115258842089274837359014550836395011018289257670472963636971337385240109092181055851907498731148086061952244281244305025128414906951838793108354903538910995694698890567244178746386006720675438116193606121525723831228086809012000651065741918804684200688104248572039877328962029837071832327995545142225467421429088343867076242724954981643142958848418930878683441699194933669222853102076906250084587787505138288953934541306869892376894304151114056043413831701262173136212195151772789380729445652330197640610801990619228736647324561350649523716622853774283579846802808738312723468301854601783388231680387268018602087316547885016112118155659134134000517680991148784362893992520967606138364187112970417874789217940602156344074569909261175663066267754188430956150368694676318240908545408901711929763606406187916771191999727534806723859296313892106553423767874365935764446747953630531243728998283967586738651741223680135775732409607607956330429254908685097163391614509443107351004614107309157051888831052071957672120194318710590057523708670077855726029789971853703042130252015972589610724398919425843395489351613460385213813200708744244886482113812391364792316641351979730452450514475311559410589043284034713631715951495328696022186506754225582132941672037893403661336566209057963228649237907267261943765439713052295867740648106612890948371676673551870665469779954611327828173946412498456573016173582655690104251557547105287185418397915495879737295404732264089980400858289253016550727284475532833628372015738081292800748467275286642453127361094137936613296157803198604979809132492834589383555438185856205222207250287759836009907757735309860687882348047715617958042935519402533882024188364985047914663992875516654526858565605487827449284807626989126723487304258677175569783937694996385676985570322992855229197052781514435524951958731899700181391618730608256533132493504337910319568142007620580257496846520856893064742532526796745380912213806415486607825775392477898270272425909678861701179810171672305010139430863816768667502156705778706472703668387126260026694085550694986386613537816741883601889205206460105120281040692089350596767378563560729409716834142443290051302143570513065554511192631860309022255457491405282342698450382832260966335597506477308610977281085712227599328564316809304611439551413538549073049157589881100651547016574509708962682672114263130225104483824869272859530407875805267330462304013103991607873109901524075361516477977200320333871982756148424444519258547934260618046142294785710382084797188438204040742932916695710506041128367202575037880227922164203542041113915890264236215122432789059907697827056523383176985295828108540866063683895626753581339592422244399054340236931632234647750181133726441881619247462955077786675952740564825083593644589604162902674264484114993551054043263856827967416764411125920073417589119058289959691211645342465245147657383552415185199202956747344473387837810755211036249676132274871853607235994964691119582414166705806904100570206727099324174663875465478570170351705757311716944117404837555109578202787724712195583945134803958360631385660578049389741727154744006562620787511392254530951516373413510474562115922614956684658648743448557173954305357903858549848946179254617652554866294416526947061904935200311000915742128494625978233167001046687230821527496926539276610973398101150264100831966854601650090775482281135317065468133292686520475985003855542087909811172935851773256990017077383913093919271853270171769858680471672171042890438678094543222269898088693441769577676509595153273165402300005600071948564230321807757234923708156299634965840506888396369968991543199575254340834788566471930004879086732794884093888894068282170778666156590906430962437763993184331320872482739032339990294028666080730483841337659449287465480170182847018910243149237997007395666867357530478601678477980040034268158824710395862432215671564797443722357630285426851301945865868493024365952972252823778699978871523426221184315578082305861203466902174510185875566607720874207611815370418200009163169347174310262451099281430781528273990013405413888767123443583288168502915762403231912387268835871780207648911153381283597634778389646016754410053050122772770651158474657184566132193031913397153913097267499857802274901476282058852907734185998609758174120682762032186248203213997415583051261518143600487873827901217787699131914458341550504966637790797845228608486772478239489400616422763848768699811765002438723058727394917932306000517787450139489756925645464682287521754722998813587845203298785667529108205296828781543014830344991756811784550286006103549029174583622707029398130230850175252637818581093969476644503631418801483887445882621021602770261926412055737760141426141369910739490203672488498789373184937310196361794650023061549001903181747772815962233893647506915053663014183146406548095563102450110950422658778508668527165883057141110675289959868747238770951298181862943417819665737570159497384391001368609714533310464751343280295909123283673197531562273657399079808630179373158317224536235087253187720048158356689130906976586798544315768318851494923241212723053253309814040890030767901983792899179199392290972423265937718432444239783211744776675739245340250027919283354087992396431372221508938182647894678257685386664440185738571117186150334551967071824089854538128758465755681168304570206447211470409315711445799567044070756936203846004483032589740032427599372551763063704306520391695803499893982688751072332864470106382950410877582303105490959435083443135745251071749692464225967478482969012996231719705200721668586780192671094184805633347352877421555744294182440536035114777879193767651090237540773336588481319346886226236210888468884719912154199740505495014327151978960643943979216696305222396331139326886852924568768610721540922898482156931514621154283327750272341536041643056167565939548808339169446899798032785156066986333435854284369196285256367601598458832750848873064027544736252164811201560103377575573228969331687212475858311925431387228517552733988120334408973117107541191859570300191760741593864963978711060317518096519573558828224329711925819102402602854465716308734915036213546377475628004165570979914278601819885223831783964580870850347941889161964985544273133167545828945200073609348292996988186447778057032998895047525475255294619403372913005998695770938615034534264397268344817737146668840365714139349290318568170228141721846335164031056031504854845207913991724748366883365617286066028187615337438779564670895060858327007980507320683090359438502015367458653127092793929533599144515855032533466171015514510259424117297339159635825337282496877391538820163735951731435093552583616696816962601761482151058663841573784361387475062076599440510967608957220325371585389757361998036325799496412184930945833190232244066852196652875759663398313586037060047344018440403773360803396634319384468426484519992668955695391128432418698475256935631367983019803572724324651062134847972072842628794857449312497907828750810329736070745002482818584665859673231457865560720271142186097166955237081745638656636723643765780422151351341506261380085764258568393273090477607803627073947526435153234193710812484260464274800978233146322640470450425010671955308124950267067183759615941305427752748602728909987369449616889682029393252437350804093206999795004423390389272994451735404145589927381588447014535019392844446720861659104104977407275669588512825671624804585408656342668243311349528905163732597237622770430767501172458959448080621085768224097725665040732583340522239832927930045562708793167839152162338783754692100477929543057352795067036312790256576448059201609261090758983250076780393027338531211537798178929938976222800015489837300514189285705336238793459247161641717651199674508794891522367917220684564597540015374910591767677183506872385973785348488123027221775002229638768146478120435185358075886635035286519905589062857725498026634051812241554076406545770945372663342891294948264021204255364624729055965118331713555633148126253024618348896013755275213030781064316053343433134316800644355303062943995252916321204640555289231783264356569882809400004007686136921565400062239860907388339402479281071297231846291877473641296750300926913571650005671470067617579360568282322187436588493708558943411994505172456565145920296859404491074410972246323832798415950969884745232600533518202317430943271096095641533416658422753241933022836014345620467853253602017089333080317040882685374664534805986752853960969919617218362206899196872799726666119937713769195119398881933775946543136448286756781040675229554236606462129629901901876295033527464384262886374324658515716654641009656295373087104389380708166223789545103065686373504532175022325708738531306579998037048841158656515890050249944444221808326580554937511882518897479611570256487483006997746728609933253886286600271173346335846751721207972375154161318999812303030488265886071903406380485228797453691821422080712254202368195493433371915654811637263183773465406762621223749803735044626511908601537349695215823475224637346754262608653359720589144754533161035407225647136526949798504204515009120446095156858271968805763874385981354721711823662940838865362610864044148253248207181151323541906043851746984339183188261954947680775679633936324397361048641504742931256785402527835492856640779854446897200524203601887259922057254390082064140502978204565787552508816224051105866209347680122982182230977198043632874221036581456029189506790557123192647355533501601995819012306239491818932246877394905240088781460441261474244080951826436381445785262801064436709226933784643297884836090002754470662952403122886261600352803016015749613296916321646449994799765203540641873318245803485658873454144862007553534577688319918138944205974817165797355788736821922537347754251871555810611537163574778324149090602321193455876789683366234715924908831161490085145930729541331329520427239165282516469336403663638751366718489445669593730588989512949066423090645414445002363977933466258150548941873033383553489990057469491283426820694992682542990804771949505302032353398682644096022755139247999090310856671275111506043118002820977385768562155544773082823257024372113689017671890354037535662288751608148801074025485943845482173437273666306920315607285892573165509366599065656568668811555080590764455240548471847586204889533754703702762025702618544306730672996412571992272279888335724982253956772755025708081389668898037131882655758227928544175385295827304173512410936443799606048954326276739755948126379956282151972548014435899307387131776702884160503697995043031848475137475106175340032096471908942294419460165246438282814650349646547995119126396744778895631984822251363067305554912267967281404023361910948148263049370558217325868843605478174221576020553710311666545809247020357936766157107218664515558710194632643209328818636817468046957790928025447490444211108198998711190026278586758612579562896633527080853873764128930413900843252775252350920445613316204275628061006813859813891929594411433522402783823440083299812242799998794435114470008758994632328693215740043997478508980432390437022826417680087227074768132534392474182809555902891744373172729022377340381501310490090834961259520030048834551566123466604823785013475956979463781196040527016108248911833468028016458816337017421662760649996245843751373246816677862500951847800961453627731182440374376087517736492647688707420420987429951972320683076303644238860811132706424533041751548555263710219061562453452937344362969861588142365043703524858657450227390283372644310480154682913053716635595005015518699219815821404622172386349616454467031627025929721113072498065068864725133747321145114497788745026498962800372526530129812942933274018394192809239230738428514698182853241598132600754381146730931537223609271981319219232091641866750842080542719512531547578177321622027328029697863390996164770802628045242186185607713937598589124931221598246939965664480057074795634052427769195550095711743379846652964507543430051603027997974759416550260912026418715051542281783103273416106406472735853808349102768324528474827227140276841089615591023178570903569587023039134484120956628630698974953857787351636546692533098030716669194622186021479363868910021933687610392604724582028333704043039456567521888147507961140393228041441235840624308429002417029189727260549870779451831068332683235570014053070980747148504585356016379743698511896641958062268640790071319620691616634549795334447684291984480206149234900264898295643715400198877792318500250457730134861848331869237176758055570480609219646557819000585694545202528593594196095098819555339130913474072501498902650474618131831623168114846846215448762075344471462180890195339791721735393153650117104522206722637035320008579295751387760876607939183226235719781017013896288413705555543930969681813030329887246201068775785404126976365647963235187019950369536476000324624207364667649410503743374302223046661104142141404519940007659272719764932657191485116812239419159992841984515766959629324366365888550093314798197383329610911057856638593225910673488495339590937698791016027837147584120013410894170363430170338447659372441301411076042151223652956992811066535759909462037691683936350731188015313707848008353272809577340615453661003454480008838417828769463495074007804133648300085523182653935176499210815507068515343059897936690982168777614062358764406191888154276784181259688421622852685022201819887314729888693831852297785102218223161989479729102499462300080758941622611535490974332986905571618723534691562081922572412903645860019935107912353350203029767215164509790922640252835921046068258461947018788033522055773513583815027494978565292638450635422829116926483208743970771880501366071777649695678640537437982171866944720876954997503061075075843253419812319641888796873920661067093865489821489864529914867775540237722182429648634199100694714427269170549637565518804788929998680444741650153321383753640839062942777184959585915132585033880385605767872039332861296169984767504292897256659958068335265657023233591111367835457331671509852407321010908555255529930181556358191578602723888193747967809755356132638772767689821830383227472672276334697938317502851908870595600417764620182515401291841927308107154011581516627970333492678835303795344680814186269560910826829968632154678041339677354381018744255104011231402468294644331905156051124573023836143494530482265376721725837854378454053997764878051333308690384137394128410917799965676012223164808482542110079838638554727406093083498944445307844368537121258131782459354160648078156993442202914604330620793918409804743891507010647874954998394353199782656926325244353744669856518649656441572391319890357833211457290553229050137958015548591190036942701961625003922053616952648924936714706085169161621296172060841382988502855286857398900379637778967897323101202522197918511038230125408274277730587246979945928160377566550285793675270734788790696054059366178786807655006209838490841858197716067385499325221240545103030929901341865621867951015402146210668737355658676960195073664976046072972525497105640785266396431013991852608731823457081061596407419149151911962526212839148657550946792883496479912153792618697017411967436986494406503336982058229860877177441653761981688887928039849166111330224139556154318136639561084888086400753674787602200975306577933872509287104164416939055952020428214249726212967219534158100672183097279617051013795154277559458226347836991521697320160104671756627391961340048061549527916038241493231010209200730775634114212638512989958068165025492559492086964596833343955294712637893431440137532238301125544792938842440743212653891562551448583290467303940301362250368514856895417775924307822919769400043650848970106404300547726012649019132209497920632530236162658611393519875415697849917421777815226573620916389770955715528955616013379943594240282870442719386966415922910098144190179217823454117699261590931995861737367715865725697638004074727315651731536717495471162927081254849592507821801232068849835160811904655107323134386474636176004545185722308913099243721184897218778320521053060231313819173895981341344406728395935199978577781977922422659613442117953678853669319116724876825975896088063940804816539620519170876072943208620108327366047045825470353438087991387526561129295003723856238935582555937533588157491437956483319724838978926177621540664407525258523023647034960069085068812724790537650897911108795976863106593281499056455581389004025684008058273950883075834980848728699602555178037614484875137340769148096958863948043541717154822429203932504815851225566729143118594997488600819187587551453869849279409895001893344375711182205009316459865099847924882773518974579141563141846884451841135450290320435107186573442328072776418887805552379849366631946932641278084604537518737413194688520276561586210592427260135279525740576474993752085552726413978701703318160709560273265073786426859382281155385389412180597777980905660381380421491728317596021879922719530516117005465062340748827438432666282324859588177020596036229790290452783729365392575585335455879378598446399901417568156974418883647315402031715546399380522194891166993383897274133651367443337464071956752869863582530797016769777505935234227705533135589436475577035630304473318563164355318873237185788856895123526247140864367698501833732540092581047249184443383588747098594514433616339353011934659305431847390052765673486400809564703608204874529874655243411952478227465620657354384509358866416745054063437957896113106562010087774100713613342305501113091497280849356947903691679783962026399267141350403304673374328674373806330770595566488814005503132846914034482904961994350855811815468031477605361833429911690082202506883534346566874711781777827111782874319628097024077405420359172977681945376323576538366976760443300319204556015086785735676276238168428797894933555969272878323084317764849523370805013336634973340354356661321183371945691762317612293549518567628411278887280110626989030862658832526549821859305713445983596485991229392463283847607893394722360585401601791085386143429148921305724624153546719785346136992690256187956079021877608416149234086919332411935173629720740189909218329469428600705213477983433638869792091315968270369495072912700301103661717079043271650276323090257193990281607395207681696889670342302480411275643105757041137683866554409027539020225764690114875827989983783973639449620955439440110680875748099041827941410577098349610586198423216463615228719159182868579852171953231360152601036496367005568830680736037550364097715200823533167499976186214753041054137726411071023962062186386117357213811426654489595166347765836981875469338856434532522028678626107279503213550434380880726461299208482837129459529653657202431175393818119644016999603607503868978181811230350246204715182501630785307126716532054307860819832194345285628914746029648079084763598975475968047574924831035690138443972835249800466315687931739707067150880282889007284826513943450628963740623584896576202942760415801213348478565090942329805722382871508244058760683006491150877823290738263111351301092185377254849421270829688185098410627057010334676225723897207923661053588548856976995117765237798019785110762945342289673220751469336046197972977840731500706744694562941551669789641647832440836574273013478586443809884811153181695667509082008811792703762002509707685585776852559045797346058092354943337827354384188686009857557543485037685695628636303300795415975939858353994401473014648160704131843411966449444440768710429648665712621907255905275885041672875131779127426571622525863888721725216301491078718865662507444414993156110163401774901243307150910367919231436630376029752559935344206952631787679763849598237836436281940530970282927776100723903896757129601296312806192542346534496182019761490066024460842061569807686852756270247751162955435856989377291845665408784929214948853145592755270122110280592202065326824577253050571987462408605397477303630730437431649834467313047615753296382398133785073492318996719928680765151750967972562397202469383958328410447267631147264090779828989276774769923997775692202845989756256629092528630151816735030604853814357479672066204116329050052521493508307698587591052687867917400514859150892269800433969827567365069454926347753428399592308897176031405672435294152239285735328447528964474020097332152121733797821129101195371900952126847766241176972236068392145770557959406669819608841895881946855709011401344570883888188486291056924688906078288717664057981672177271999929800128653482407840882851224905962711838695441853885404970129340016027785780922027596987633148774758882856322261593130813514791694695790761119755484897515522957041004616129504890082236388020395894084859935128323903237021894580235964913482854742698442335493535030234805011208979109794394959554445489470337588728009785423460238415835966633915773824809002110881921207018310289477796067562979384599687018194942509234265451169237983073818075703380436809581633556131515739500708979560529814575855086200923960887356642783558326583366528574988082016242333511441068384479853898507664817751599316668137469493835831802873143297017970915198217191634503819250857962645900355429365929257187110070251597696161545845513086290609692751800102514519194132282754231054177924898741694880620239498469287400685009339003198124699665816039403998695982243965922523447362142828493132996030068225544922846965446125753119117152778160564152076558232601938641719041888762989805992605067675141505352173911485579925748857301508315208907479522812661633159886532005060804547845414474193349537597850484822412252392425799459240625488615062800228066965544876126302528793266197696022127294436367429052816109684068595961354597450070689869133895189278718702052036861675010098368549992250696067720071476288790524201536311936747481218869343517367210100877951926078841947105087151832912938361201161314285407268223631450835251600846769126055704526560353428594666717963419994414909567509302889733622862357365093805458144530012962419838693361150414100272283286527150699214539912845182447601843438679782065047740819457364563681717887437284069707379354940841985253807476047668148056566192697913839647073758601004991816805426759151917689457344609154500993121456238898554438241947120083387695327286399761859520512290300291508323418319030939578014948005192143965639429131324838737889478216129582251321503797779152504454025371152988113613836218300706857797877438172551591890621361786279972595002807246873577820270472676415985211957578013014277367519586977465437309044458882772654571761143627031428577185287903819117232451846347588911745422353143120839989912755171765115894374030295185139637634394461385788796419309603262165987837665295374109521545034725780078332825508534871929048404693174612550319031985335721566323917456772078514809544748783526617638742397651915234333288675767972431969287803997472205701472371844526745363501400738992028831505307667743639994641770298334531981362854973105849135398950713334767083637560051960519336135486097003638909406379599440434485008538778751695706937424874220935836686034212310086035379287795500612599840743994888089901811700366764021505300972247391976965649864118239894311859730825405563251139663216747382880787896764582929718470784264722605666987018138726089116473326423061381006132583350473355666331941924829098580578172100404266074924631462189576725995660053089008816056207637249863756238550180795457459719146316461172432138377923526891262782465225763663538225742091217530269355504962767702435834890682410894507215951259190952899568136045328028639629207661729939725711763039212628607202634357047968280041165052095730948598787478908875509237522523587583528187408760231883201409537171858180939817649073482583199590147329670743632233113010338185382469474838022176409766489036579895936186991648076769760931970521600208775449847018590430448042345624951477735680412085774568884735908964100827949867838822003191838565696908113388700881605858206533935716874089656845063476640383770825718774915690988331414276014249025156225599918932804557271532538148871084107574202498210163449715841953287483707564633738228296374250763569479923235556376967743584862693278856810725195888869483158460367251029280743747126374952283898562165483071214221715435353320859190335227325319937910134584345944448050097235991811665606560501250945947411929263289181959625831388551491654966126195173086564151484375149366121772285232718088992872335080395379071735115582020352665863871626742242081946714659606516734664554051095683893057616231613876902815515709723672451271835786116467978796371913787648501469667838289424356606006293140017856379368915416792157071830523083993677344520032000185981344020200537279296094087058061599183035861126154624033835912352252487625035707289004531678939119136001012615287398815845184040365717410214655531659968360755119146009117922134082469872610685300851793581986128890474758016026136506059674838107828753932450045971885149196679385253933502791126253284122590963741269336158069850162545215074667550212095133820728772024224542848114615838977991264011437159203040635149455342750935056589416322725070515309252895186200380242608163379900389487263380167128112561907883147119062876057419067637884339483350132429738791265816282204829711953991698427188010618279096339572271400341700172081695641253400343779919303555261394176612585316578486723428521697142358186810355258027553672823209108515580625814067935609077077299673653532768441132438841999520953227704313708001176849657165454043346937970336500264501813749903419791747933982473943502813030732524627442862324558281419758776312869673455567865558133071748034895560559428782334189630823597531482432530491250693842410164219872831091284256014015907934476011810209851648867002801485943414530504891927159706229408744633172352422728535949232369728423291044913457068660665105630511852657892318702681573086045074152359939463532623651944487291297547681459674451987847636654936929671135652975929713703927576280268055940203815926243982761298777127605632596513696640272545703927922366589157404761521274718134900864219936127278722632175554234421551499282240646890856524364034385422749852235867833307230188871740370900441186466178468873962098266527699296983983562739024649658717461264796884306695237472100604015854050623826432389752626278812749682608506091525290730534600679030474257049186369305178322250232974308302980929303566262188756801840556846618140211357606829010867930133536770937260482756269992745697146476455892144200466776196614642488638329465804263309904215376592200073863729371510926736055148721456293686415936825901432103563569081656331090172898490890917636093415846288659043984243568169653096123394832420113494213148508404087585794300107047670862586551780446290738951153136664065974328881597081483065218880677065037641075383611804874401248891204405467154700604241392991113268941800816917884495232379467316936413735209802633281693570118565179659364931167639571015630059278467121533856257205725627502186085475194348195859250100680232665687074627399362874229485194108278165128736761565490212735954885986764235183554422745621438419298470476783071915717525707403983071807209162241050608742389953239613433158778206929007153373490214315478622144907104294664651722179382490957815810672718504959168673663527441731297416260210714940959407284221586830340189675733896526989533606475397528527464944836122778469527198055166164995668083566784794832546196132339383278626374078321359232110579553502073328664430170719788465559824195555416891435393671271154137341932993507848872895009825504181372972126594204978816400434351785213534813297144980028223991586866610995283703551942677290465469122310434877063580909315786138348549776222427005276942274993511713374928787944591270414819681916249408085781949565698007199476371746587752754724207987988402646144677603418110491671824139261259199141126882554111316424006401256233550175179367813287643926561524242330400674654026056519867423765624012908492220777804074086496444706684033207553835900655563321110679265861205969568238858877641313519822896984307420771803965245618125690114454853951950769394477993582141954411876715314638500461442369934971807128239193217722294736674016633952485186408123261385442370582140164640688424920840732649329638439271523891787545469141140099452953874056438647645191587412330031561104408879667539255041949719646490673454710183624166894938018269060451774562019381130925613713261542304883393855235158876267929070528736020141330734894792062793182544076024437213999652991878444394266922928198692391521054317887531913000080878453250569019101428822281992396695152796355076176475633526011367453919061650343662829555401081192134097742573031631193206098271205999913914655345055387425134964153475488049382175348481526996523448590689909251823369177174024881459153908426745477956888628154736810243610066728478008397850705740587532413899826391886500312054478943322252827681255254885618663315026441319936640130471435857003812821817148478586085066902774363366322998118253087002292420766553144938321387679775721023092922149806185832047404825283634366418139918002232084587667879657777655846414769021484190782241964035695264931097583868393668683110188006519588522540723272264638327089140730914500512333292626525261115824889080274229086551555143672092057225252685071129253819619678170627186025464325074810969225558367043092926715544835239317890893980110936524923468206797475174361907720210896291268590792762219128208940916863592742863756091378907338038342192771048152024065253649578630333985693262328405713409628968236644074523636423441967638007534043584284632330828731884638303520473873979264348157318574598594005268141606163316453572419736915969719891754662424331678760172155613132657883008902641060548713469985706999542311414316004260890569168786529755304645361653188177584557544130186450825943218263373657620528254989498915142672426400102045150689875643316210831547868018089719260837986728860351419347940577826011100256475437442564281256372317848537597576027590946421223798862193280064578874875669350312275261874330734399705786499654261795783566526865150790708834386884652749466336366684372080133965632101033304878345103992203505738830352242883702382141253307289673968759726457122482756999138304435017135328457018702124711782866689634384331840513236255149686291572995335021018715592629590794409554405420024642852241815122011756395524107070901219418536083492905981125593983241602244477113346045238464412733427871183330947090808340116349039422789022538177715562689952507313216512138172089763334550919055593601926169565350608319736837513861126149751751401980197255248701192272853962451853829274210362988394208101122192911721464335331862666956614324132208153478035217629055134629918055833315980432339145171277887664026568991450842056479541148144112433081058928497011168619881912878485699587719697144885596843147730947763673897684290934713437707417708278644089080382333056307026796162001862442796780489020074199410482793112113795838251476766277112749112306065357561966430652521549479935403843506788012926159287485683523691844091402738012674402969544588815022397257840278769886103146801564274142847352322739670351839365782862591461110410347883282316659813703366864392460981414546384134815767952621979843915311776740619649265728472954785755817885295424593691914996135313733723103448048242467911726233287743466977874349993461412953443826139302180268699469828766172641572704626429565245447331716527035253387745974728675556143330717337439934410779404703143677952846384603036329803102946837729220538917341900609360870690949784385132917696017501447009992371210557160918278925977985389363992513238940661005800491166027455496700151179134341801262439438775767298064555858935613402245758287746181872610225381562026344222268828502691357781735479764540925126085168187978155204957032060416590864439039794726659615758344992328066023108540737945883442857671591968490197468531850715970419547105362663110941018238170291377970281219833384048129331144966618015869674311894754643587048180441885057528658500470033059173101527764510512001850284716379972878516703153397546929651397246137280246998951487283107885597713414410234514526477335001727479225599239870919517268555317947141070888864057737919576200540534484331898654028388322199726152688130960840790102738356796176284147356200403345916867828877967775004539269020619116148041893673827283020696372936863523603644524237174601119649716132036456556580403434514312297425075472816521782308983060197676705715784955439742559300370793805424401243098241984173867497386937070292553314270653884529402032751524332468965620194589475831867564594913551312326300643728480463963760237238066697613675842555099024490628246197368669041759775628404212495694051052365372679621710249871361456834077978749056342627784721837068289321591552943692635011840439801955756004484181785545145728841267013995592111463251495602817924619541244578434730636040919679247716432294114507459050837690523110093163207789637735187925436821609367977264259995762594744357316442176126598516693282195044514524362178754127535459406544825294514004091429532637070668899826286802731499237741576147873953794039650707197276356892275567435457762130212266495980865049404858408121980549294231309596262646271046439795557467833672710023642587142720570383438679370002243607753887093676244668203775831455995019032856794927457324877161755951378463507754401815043972518978961879407741970847302015277449606581091901264532288281062549825746492402368847375104274018900422854788941562266207267398268807427920313231717348009919939055366964336803792017999174527526443110703433648273791595324616550679905560460793510368010612943978420338389065574133172860028965003562997472092370140820782597772584974305096458496597453462255283148613305232701697959057023694651095764889693392654943845857072237815375849577724109321651904816690090237123421093004458714997040894309543920706861068701816860828432601020523507467927365608359322856386159340159603623840201014084105239142729245080286433090177001323633866267738306369038843350132516422878864126327450190119529367710165609618256782274162856877260316634712546377280208228275988270169775299830089882630488606209232464932812083122268997447881014340951644533808629349439533897973711729873506557729923725626415624859494296057563169765390651535415227895518255197509003221191595613087857537032470034344526573614189515650506641978429569549985424524136738327999408098278158574994257066012197618462679262672242379729086720111478385370631837868720585164096939783322695615113430666694688904444726842698840580150577018105860109603487936109613720387935988506895704948097046753594551394622340405882418508130848591630048005324645186557546524841406756135815176119722475349571932111873136973371173582023379533675147661568516281626479578317376933611082305343357439273471420120946501439315942589386097751438123775321886017860931493467551245102802133202642770225748229765144093085945134349502642007385685769905621990149282020987245932083143029458373487330821090573967879257136344349868419654272220583108177418516585320553322765645494929959778694054060243672656944122995124511529203152062443195100436728840264392582118898918942254334545775910923099763125667288479114631520977884237860739177261245509193523323414353599584926392892220510271189373948497087853613848666970245536719500836506286834590261493409603065969742692184190560300650340995274371407575935904045057846623983832571437960222762366564499905520143597701402868623644246796972953382087429883258785795394850248869316887819450339713663113192363267725820996442351147846794499063848946067844831060578719472530925259277330485824229010404777283077254369918832747657500264125320111268527049857035732579362628486821825438216321197411520054536719309991241020926030889965212325290522583483797440185184886739994873201644986064569032190077659596028704085978850217018483368817252479563888274809097994706443972449339338288656034748789758453401528215046082828906506335359188883346994511973034807887483163823171100433161313059080822833141832047942768935810490676331123328329583295851523101688960237869000789638477036122012712572530149411720415450702062172949054137499820397835645671885605304620421141552930805245399703723997416135307349794420188693823622553876154745478998206024869991751749384200901755080018592173662692144656424073340177027723031989199144541133302145074176584783448091363889840797379798040686320270067923381023849615591011744409128950593978106178871374876306266907620816039360222117805879905408449378418368073500280086414292692292663177488812888037255997551496473464752811443940831724332977327050985152601725556997627479520890890185754657724611233444092848276954152079603796755094031352236574760365209963682522870967448468474071063819392705660158252697056742191940090174606311838283004441767209931531545755677629066835935784779777420959433770018864007473351249734873565997826580418977896011570207699447594008293433031335388972669413207996018408563633843198669595501153981658107322072417545367568964496058742088521964303011071663436629015205843088486284887569022691353022368418838525285819722944225456307915273798677589636365668304127491193690705012462001188523164780458327195941535955571501802056593633860608395585802975559051127405928691140102968567560839971966857374964873295843647298737636208177591287725843731821659090631858398818812036292957948450336504287375627838945650399099904174063797359501440867625583467525445391348021404747733784428503200122028370316882292761511926590839296372331430385345504323855366722442268544639516670534740540809582321699349354102783163937093338173266103114068321806695550899859347200443959784808976615492163414594750059567208925509182467263615435502079907450283350787472121814310307818516622247520689017712721564518225514496561073549020272466412813472520749783093967207838377760695146689339368701035022104689866971801572390349086364620664771931048893563335305903110191329443576932772540371198562772601850480914981048367760567412801326305594066205220880015540562949106782384888633262844657733862980020280755777808126098100106147903951531584602575995930403047405945374651913176121722517462279064485536404943160043566472881472691459341746722503380501548793873818310301861590431098337501713750034850928823323826643120721664535068648187425860526613660573423670047144173526314294667441981528437894313876874848857553073590363264387573685274987077130750898270555793061054949517148127541198716175840629746474508483982489374138722378722090443478113654168480730079883756055106578153247202499472165602812837890481999355927591598185690590660780075434760287091150272930273791974783572131849759400299154191681294384754273514559655697937970636997768539372371185289124656525518940507624042453249214230671870594053243509808776731636419595739384899785831472575994898557065003731329361669280899384701874347994733054015886053091340941399563447364287557007851627629884084697812715349461304884798112721004740430220442762661278956788939320660610996235765844664530459342033670917851937395955865795657108874641637110617297189375970814215483571620251424279327907877941070153147833438760520124375443885734906606879932912590710002450558520898503686004618793889389464779824747317512624185643586002461835966842989948970426836250553604173945929693783521896223218182633006547844424419266868015995050583793589400535009567779848914443964415658000870789899538322886336652208787571069204106335166211589128689335640958174901599392327545900812298912557884274917683904987934218948033764055135712267302931503841232106113306140880519542279718135474734217426479240438770149363323422800892609623587470995902873209572308388244234524959958821057604794399002306908924091611049942323725939371248963337960630141620411799288988597944286451170077346935255136168433328795770859010557084798108349678224042846172823505919206856466386680364116866128436436094312972518288424594185797181331897055020448381460438950846820771988567994847605263860724556966066698518656068870757282372556625694903328190078262037163676603081510375264251950736182626785251334410752380161201315556337786879189455248145916967964335068749939282592921079046861456359837710869861261547403642394828870733727676009798550178428591755878774345829153767699506579887445700417740561658281491395780041564323395335784803912984121355375834032092434527099683565153551956713412245826741716921034677358971575017264217360735264067783127037637408665084083646556313254599734516640227812091927919000679946417484595306300107254312550109681528582495840058251671040211987079787564396439565535889032662735207608940935923489399038755515068653262946114096719204562610574070168819939004049524510360092804651285527823302054323571000064084820628327229623591066165819789643148001772164174833373510399154559983233771550373721548988126021351276130522907265869608601569690782388748515062933336214747742951916910666968527124418780889660530130309297430981678739689285265482831111636453299888964157194390854180585667181160763507892773526552872010110716531457972170521379689907805394675194432027331667942717685098971965703466221939893182777323830081510915609058256319496454086549051172337387402424867064617955884367260560089421326981642861674193510109136893025623528641430168480853051481400606855726621294838625285837576429832211492358565456766311612071342432833491923728125815874450851404115552891131806141012662403249469577638239307655124064101543454560496517922030938658683383589167841615759064138912515451647557768033906965070166565560294388187759731839136060049724328045339091666722680713930623431533857220640678118131441747044767202391895235651550609510579340758502440488524243856086860764677169956837943455206151894658546538198955004641490043608509081515914350603469968188971605297072002267256936433055597191935922683768341444429145720569642860824761364241872335238369967818208229220540694212185710436116032529849169336749863432506291654412510667987797377879060500476119537353284125936733776513681045275946738816588574639220654537547557233020591294716011392290984059582775046396476892864064937702530938167510731082887651146513294983876000028137572741417839485696222301677301436454458870516117772555109492962809144583667567361207783004728712933226731238420254507384540128537650679396375745139525787515916176666960656471435291063742202002999683790259430791451522816414211542688268370507127949176894704964916679028908582305563173247752471040487966245485416749413486240636692268628680144436438068758920377887173300090922479929284062468992567607061464515839733544756492022275950988058925166478452415024266572952232169196502644991822611415065491096956408818881809174907548804583766467835192788881961442984864192547208951211731657349768256196739022427158082447364619863875794039386999309577035696555425477422106767853446568060452576494372351540639659125525670547390406093751659182765021715715890062852828371070714658018791347835848489507449031835647744533007475319917841341685445502954572211097408074493232879887677951269055131716166643998287660687270344004685687859660251652790450578229737947173216937310390088285323586342300068674425379080611625722872655101566151577536763384125430523330787202041661973460667738702507221571283869754023926998827838849797534288998113496397028928759052609610036088995908017432564268470542088205081203073758001641257123365018162672262661931298209179918099340387627370351325869124234665516017826773260243271962139033801604173141531173041703489624598805531736601224309496238907621244187253861748965060384756798086656977420868861458784991040985528373017139957300328202956224338249268722300844158131212986994218371087372398557067722749319677659237717867610214856704644717457796076628037470104051164591124416435642785094537005206063532873625235254340931993069844052991192441432497964344270510946043509371044976070534851137632115604332282438128462222837129047638732127133409976874176689302483971282139944119720564648843292250488797568343967106196190071634185044056326859753493739336326618006476612614805237518808768616940077618858550054139407847318131565694339726311536824428312281237441037531838238945135343795655235908782073809140205606026423785342368119433327388394760078761474050994276415390596881844785471695357880004412465083326129908886980470510255476189509134848579791175405649356307010796530394645346351182154622758884042351278021051215029732346510178076282032276215645576295839212192549733058448291091048693190559476490169230394246764110150395899073377373101783329185833708859910170201243264458040937787232853377466901877092159935340526722487864277269310066836288596990814582380104767897719621351460804232989176568749462702336958526615535896988573405541321172372686672642745753845970762775030291700740429941474788957354077687975243337953474987947813623838345771246638473715942698556675344138590251223268616138776581551247763632178104979290434571573321797123610090658448109944057528759466872279190758805177869997981856963473802284518596406576799568095844636599821817379868240617107076550577096358302055848624155233767372872232747392567670139073632413867263567122863900058951679568944911410699263137469472656431624613451251726844933365651727827657463849976785188649147143568055780510860557509092212196581402444758655699841927806161202740706177242443082253512416198756895323046842173687523822653338056169975067967745890185910546250494153286721541099216876390655952213398358379245306555513773841492988440361360455253256520016934333424340223328263826332161006953917192287182002508690260025409961850896380904964694420211894173344007262063070618883580145928337366574461497868503819121475429847094535848054415585487618441191499467633643238936793061402122891577590948564735844289487187371894377968338348261950232523877764600679726952053969656275662922678547103355868323358963987410234776959541547513835470656895331528451697970540638449545244033891510116559097186982586477848125093927602686363615741007859593982610510509320077621825920162015693043937392810994824258528938909696372574116789994621023215997032330686714696818863095554477448882252903693858096233209476707743051732529670240313588130918789550697627045799630397160602002871011239570812046592489177090437420896935016077251593870197705126103195693308298856892159236637386949539269728369164819047666898464421761347389200817317608235235012138621062331819451859396627309310076716333051149673492007237179816635423826034162751539649825292214743009290927393555783580579572080271373776440870570620587134090216835672175545924706385634360079910362794122913625614705265780930065427025475776533666648452539966177060624598170537312595537954949699674759941665323010954774570044101199605123306318838051179195296135456836944676608791078388791116776582429800020919172826393995520590333104803064148909010177815174691604927998592590482466062765633730841138108701885790118249874493702377620397629626372441410805280494320175895742409661716812039977056877081529976570310659644298492919236805242495572661532961976572546877152272174872733291476831883447196040040238568673190988640433007009456026787367671880315191533351794731852508530233621554472413490289558707091573898588427191371967909415013492750722982895003044817785597892816616526744674066293119280476194373090448028964114097370916409618659020019451738079980672566147308402988237347735293381060622309149514257965161585749510059215814111103940352373619933618193919040204360782581157687664128046442052001394674976547446413808765409683388565705999670523097763692000566823894140527188062512126868386182709759448126576687692683151502617490753723750329717002360302752884038385206970727436412294986949770504845783521325166276129671774271529309970397932707197142970684643906385693368787745071120953947348250823334170833890073318581914174179715886524643408331236604225543897362286817870529559052269215450205417316607223253857130320461452663288534117379739893390041248481876348938433834628547476094645758850974475649158308969737923787254618521488448404798774489008726815302753119758941129686086142647579402007900254167818862166116241390583758861209179375521726913317486537517396426490379616484058256625530368939676632111584709369528092837107671090562325656058022893378706694487413240214804529879643744181549324300308926220730111313570704296338337919007579657881329587131471648753951234511970804678685094620878759141272917603017126589249747112753681729262224558499074870553444578680606285385997124066077009503762279813314853140061605898264123221362984219303316887458270262984892558737679114345543088419412324018635674358061672998505941095838733095398033376503583320452965675092922779789761149422871375856429455881985230114005187177235076733601320037708694235686961041244715481384025857295810675167809591262434541271757823074738339433618640072731867857215609924072212497221144405498376643293893559223788787566678801182077496894622257120024445225973044525496956420804179932900016279796313045181597323519746625824608513477503008010823295508165596314038481784190211214284783178746512145078237795811983885646908273563222009988781872266276184935892359176456464497517482961122473726151389860552632564773232411691678609224908927898715517349901758892307652719575834898269238077990837435693087202467620468980161114682267871546999757336555516579958422068449220873823457601656340391946112356653640219725865441131805850382509184737584602745056783574623678390246473072365955319065528809512580784699232846474608381240879308788006979203782417272999594659835172177371315731862469844097959177552065177188634471302796108361187189104132283903062342681472176483438895232631601078888627271660035999668397780437091780556964312426229262584509705913925519646589990289315516281500843142707244185158114260694266508034767143380387227071258407525032435666120566349213711074960300967707058415401492857303821955331986257275214823854695262062572272409873588578159130704065222488974144720804906137576087893362203741765185163596408221202350624249714809848527794299776112214931074814419457953577978639560559308092617741751907726974551343959519587823847696220497561544803145895792119834453146909745018634955260594202226880977539023251530494743822940922279189399368018156415963759332175533239596943746641279475377784818758588739536719618912241092750684044657498502726238508969838122251675986292714385941435570588821101924252066767754281719287763451181356076100803535343588645045317505623344153751846104491698429074198147994272132053581761416894294339996897246277462755285468602282792876847815715310672622501372545074490276892668898370283211709477756336740129797866758703025611319473853257736565093349274775034268844013996642581190219263134904553165028732692568827274296982192868168506897451001769560819619262054208954547499688504493080490537021639512555238222150848462301402788423579464900531332679254387814997096045791932754732603366599347330495088616197171587853024424343795137691267192871587045642486397587458143378730059114426955757421869811362117431974131051535110355391957550670152566057832711647319340208501837130348618859313195947730948288323101814687582423289563679946920893665101697778759121702135471973426334037620830935716264318533528751830941383614610177673469500693670846545344503219483007804509724569672022750395105077585366155346126851617745527597798121038542434040940194874516649960485928993785554285611018758181026703591116886334726097499479323231760089977555883748751972070778159469538427408067178253714323086157943220964810732866950166856047391133730252212354550351232374594574022111966070411302002136707595148753202166128959308613429653545086861223883002975073144661621948909623664694078150878327154775894179137858264536652654517673560050067421035684655230688187887875421693841610945775304944510431032857039957111973953640182914815256336341962487189056147231151761000815956594047421154844941924404670705479214745183650220985483087563487419689091216613344965327769915520595036101435640612826194257774137185235456605467817392926911898946180201284240329839834649625367950024752224785818914715296433532429845380789716674755983020954052970928885240527320373609901462940012557800038021636668428942181166727464322569960622084574434204058260149234572615703265344709382171716149652328346644855719865347851564180173818055158465009147402893753697153728391223538639855001881065744578760729590892735880318584672615132119593116093145946586301518936301284283282418295818325352422018201994287378015390561519713783271804141408771305469411795688508199449073039883770194084725928350208643337011024643716299071844272944166197403821953511418579459235188633284314184289168018400092951000890009320879272238087196501846189059356239646330854721493712762421947944062774594102815972156866477538901918238035428082271430654403360922504614093390357433280601448478307197858500573613453263598386824063256685135011191982888161594747677566490837045549850841672985861967025729683530142151576618137653892470769230540993540232403628073492315167382671314613740371250785312876877013374170319254760889643034570533819474189373996228627938381326182409685722143819084503779847934062746146611293785051446734965926101848284759866773365133154896798905577318052125866134459562686690296107876060382075386654946164593887298507100852586458387117737843453605550785639142469738888055627541513485810160461238136360387100610929689133427280334313681663390352164419363730269079827550428529001424014511672235553087348887212922371654371804798564681736219306631205510624848985311245643969574768092773730095339023130388649790275694149146392630467225315790113736655671231471618283293744374859289442724830505329174811175167986054793077912331264145908787626229071056465727734498243862118264023690071327983874720074012085883717035944082648842710437766765382568919918237305214955778649235972192269192207225544771180834494660649131410421906160406275562813808435870205762258355489672081954124807942271865472408107048879655636292908248502587427597771119032420716544835269979139761153469417940907573612813740791661988369283801541579961294754580278349415175380345987206764717491210645919484062156833785245612444334383360262693525329713635406545134561898291457689640290558665978528629943286064655237156939466186604144848800243517125635822674965856277227512007311496129142718181661041045555412009031813661860883724834914487306613069934778233831005719193551300068061817316290892209228652523138988260703832794775714854881901146037241090511598108330286418018276107863240417076056141239132511345452015586436251948768307569499766375611521261791953917476390750397963048809614659686075924445379561486072499172694829239896178236493629217600997788611320361991532545728540291528370968258986457277546655066375219144683723615193073993273751693000431665855721321539631078241918758530379541098799521746698824337067977010795260542172396582855061756436709252569081338221455998797356633656582499658655851074633122025501226160436980683677375183157534163142977722360590654240459684409419760700960917793040881814345831244650233487692111328662725858139307167921072220363413824099346396664254367354864496652935218932889714453539015935074205940069993818441061692945114553627031843326623883606643034245221520867689729211842793996703206136719294338373729253989065207509067160819970169293733800243906720479169742786278071798728553164925031173037236340965584495571468082792010271451282115185232776038903142593574416276032421813851997915633826480199124351349009031839340818773351144079875190879093461480604221465248500971127850362635126651966163647420023927164699000803244257924895384717294368221272410420838088408286802893736943860516406257941777221895110269578180063447057017095018190726534625302189092099590207121144488647961052845688483444637212614399792919842407287997859662911630104660629584472686149529527126568946994410311071804812704559440943182098810028072213070785892567625369621135430215737602361820333665543628837744567586934399698507051341742237116001110494463077406785613584408123257251103221546581406458714396929110738570300267640949349279860765326394681195885616668294899690584189372251294113319160892598151986756101138125190029575342866523176611940032305520667381910347175262386285391420595647269142761911344278410862795048104044858868021841333719132372779713078946939085542063683954083272590827431991121530295121186487737928483646259674273947294587121159833706738525705289446820665892400421288632534461685220983534254698387664532216221405389924537360728185522224496851907482874903225457580870350808429682802942749256825705667097700016477669792803027372994442194779435255340921926693435221523934678752332357705656429233293056013522865509504333414687823214708353646468990064423476599968012997304951185686364297563027520390918489886955853610023348503127538134102173249886837284457090259970328220439006877197484369414336533564676154291547313274687808946457289233617831851290576155253361158655961488729554209376683735772074471888085458024038456990700403624261440451498054186331454532951282378722094466923948750570638101490706771445789334999631769825522459348421964471840200165054593206707353805708923996412549343241013155774710763791504974538742811871365940162658911335879558188332138241011122533303209696769398208816964613286601113818186424731294143412546861297307123964962177484346386373153824477722004893463216824800832231303654461240516666273448512423515325424898127429758109366433941204257332795311046248564110966355442505952479314894303117649887019906294586639330532691311265900163543986639969017583015933770331123126153848023963665520954127807621286915489171272707670738267204696692269404639755932649013338455038809161899062660817628408424938200265799181396422621836035516909493214496032125616028658264464023341203903163190731628428778604639640265168272874332336816096064069426388539408016280938992264656174341383202846481963487893847032290282673904027971859910742987338527109214254277677470339299149967523943092668154707835185756657089726233674769504237074187752333699975128004976002379097468803570889713736632884353687181215999364301233881023875076484611890904479901042254764153146519574159040195063900485406073830125992795679182192310867800326262155902085964627522576010773719850413788597254849148663811801886200295713365194155102799227678129878126740706544912499470204994146248424272361640896176069056531437622801156792585418898153799805416815816705593493154809133737315032127986041432546682295905175898937128481791233738811643415306770398187140382437002699935697025763130184551079803752575384192881852143409229921524000442455398684257978192526775580650429314551772867733633447047528420512018226230588073139042130416943132053614056861175085045898603577329990034425537657213626956843571463839483865617619607725316142534193596352737228706222372508968480603502238051454967510227596758314189661909091588740928481650184960259268588625550668655632156125277069912966364116551178707367517216692084345165743416092495234637810206407729196954154133876730582032029964867385838580080453438017549809408198266187138212337737081207108412555617918832546930301764378699431438947804232724875984207393530374275264084654916985825809606553298412974656442767156475070869454538524858840118363935777356168132266373904667889452841504711370799898391184988185837622366763334405399965908943823046406314214345441500598733528119680427231583434792473856936838748053745283055360917139211737571399663711698070430507202079796778203976974013690444312933788231040700341640689993753009837073446139238279789545543394441081409977860539825062026845372654846772498146015015029436567862601764773664001849769364218557336004853226638244110866144579408148993072503490653709932649919563475071149989150515884502989758498839736173593124972241073676451403418476527552673411054762974725068689460279022627880702769469951121141753603542174348650754994457679291408060703810955519125436775544688396440488585378111994570060113577104478825238414895727484931535672513697084949296709837642986508964400609451641233931255690151028957811177440248620133934453705311829534798886024901548918627495686136833668080878834920377235348233939851036073872597082270971061698733860743142397090483117625621971966276028745108762242189522646151260808807372391144350219752926480804895196050867300360482962599302541713331616278907386738650135415925184582568116460809084710170348484815549059291121730442401877483867048574740483045302308142107953473283159243268931685948183093717459178544267097912261258929737064763695629531997059042110138155366319017077608900940137506267625994028981973543563331243638295740048498184178839326212924671320913961619995511394274202137682345027766266971156645989717840482343313683660664816080085510009102404065074063185850278290030212432927685350141301362648593745206845839706155586138370012456861727146076017923532979596801145068886156890824969670838290772881916367678804748201441391190339167203435465215655838476710645608059958676005376980171677396446289462461490074910243762253751706050372580055996153528793721618223099221634991537674586087055522602256903749684560311262087726905247091268937957641132255345268642949380389099694008790835930289768195891508695266435391498449681477052433308958182615058160506015087255897076527603765638327701998493294699664663194282844076077818093176635882976280915744389182399002140685818017511869354120375603110514396778650087909806457779129060565380503175081233924574971551190114203584371847209605539685930561535225613797321806827356226770209133323798618884620584219546072991822968521987317345233357976397862776332318394179996226873669322128834696704285285085235001083648130023919215515394753986579476699449119459678930835016994836004360168717542564759134476140678510246219113340248042194354911269930109782820296630220976455931898072855151216188967290134445508130687266000126916282543543313579951276127143164184531947769850201341621399341509857546126741635687308024438738140918592849812396949269215962412105620924312204233317928557666417318130987017866609890049504145942949436665142921586630812212978854645977038848974896004780497994376674210892218469965869621011802472513035788810340744907473804147760313358849981070697250174504177150896558478533171666649557176692572686096865071025915576583633921706087434893603320905717316283058985650645678017202830365565818544591787648645805222647725046459379430296471946257187698589799659208395881776312089048962269918345542340593825380406601704819448375817970131727326330519942254923602484492522262090744922880192861427886001796051686999186620913030092834868490920841125695730101773910372243549518890676906587575270797632345840206064631753333157205783269980293427389991590758839065812176361630074723319466283079603597008836984454466371355652140532364781270870312141096161436362301529113656150318208731763561655956961386670503181087921215922388666967291274149882577712699775535810994296306519130368045659595610685541040704483678733272634474388780618918375657092000495442593221131800767328004993544186327019373045687360072171789111406438127881936217591269328548435369986122386670351998420577105343413753846996904753881047720824778991491899064863978431314066071317940295153846483929976115097921755443008165300674304453147980605976908259124297575538977999299224775148333664147096016252630774988460441467811644378825934296947164060634413631925407734650266009283500849204526979090446460936819431982693958964450659870497004696572103750008430891406247210592501428313272132912461720995801082991498785300389361346590245973502239481173956736180121500917851445579196982601816777598087445208290493114684736656236226163313198115044189538737956450702730179698308377700107984840895188938113763163353268233312255170259167701348858111710510756707078911378848122890522549407437505720901085144315147837506889718784962838851080700709067166625718508331620176543485973353862527369333578562322847071757742460488409018699088279736987504707177148525163278683631160544258296658577518598579920244575395760429657007181039730414110388909728667871461707063314239702168887453338248770294123273996000887616628515886914805535416698426390043055378660289427493100356364227430327526630931213232515836790086988141989313735455597038872020312975778793861080847148353171457661831049335665793895143410625115909013520253798661559810537300919065939164136281059807589570891232342739862201958721193049704248298576866441672055966672513275757737405238659038671386719900927178579228686394868772613878916857288122801088710643163410694313995299763898855292787837970153853750345104625382348446345873242267113675137733349833144734790748943945344069753945229952655684929607235382120382349431184748317435628553162377656701698340463280984797788747285731423188614375524490119256669977969270477522352274451539705292483839435325497408026940676070783494383496609899333458369670043442293305271179011404461259026598919817398397042546414024659534354629275059343948094826239444638739215822156462648698453490450625801110761930411877339203891351243802957110491612561290642902285668797245721805336519347102481228356481239534711298989500375535058158582501534568930635971549051981827869217691325911735839983817304637496147541571354294924588101485504700077904462612318723065547788452268931996038644934959050193923011650877111645130244013427693359844487673286752854092006323471657923974094989187336259598820275749791142603697348084291628078158309554768881361513244183883695429980491451497095793194037421532058664606755578824843199186455793221241811058319224229699529868369995499174359348682550956387268395220408081038769887555475567895205602386673988781935819937015171160129630394512192555366710629018330288933766600194610859866215819553586181967259422520810323925479473299456937275632997156416373214107682695023912030317666861959900677616637582407203437841054209963994950654955529340606281553041239404166405152701973459032339908669138755149688400305164863181007261805274578200201450895366133505542233362851861321043673593151785044488241306757052314240399874506078450183125415741492300791526636870702500301992389764447506824334864809461112200093896933368116239303794809004999206586285186414215524949489615520831847049171911938036064291645172005674858122988093429757884652674211697754091438153188256356133496925755448519849323025886806730813986747369304635983267690283213021269418069810200229141600216304946817240124200491728802257710353244933183137999410322896483479463502042072143893905462429554577811994370169717960621341328609534851020053448520185916125648267754634331411850752894612362766852812756859390640960188530618912057160152193961621745875256047568887271941203258357407465565828584496499341316816041273451590192097707189526641339204413672828610419656734248267186791228096395842510766932060306349041115025762664526776583208817781369298201181399569770193487835615993337243121539296143284638429523389647224768917115887750295844469297570489565399459311438333289913824204936451838013301422252724503665742211187991970092420636992095351248482414772923813189193248812150369038819700336922611184263098403623462351840301177514510592613275224260149644323358537441958068039378626422499976927622303076190390648954755087378608590125963357273256312259150343460700380092804194563117169242506446872357233686913834575337112830148139288474254307844693991452295763173657934424156249463352442465379958717566838202529061614635139595089072352615425962573435459762359351489787172244724518323454900610986741099922732506167641593649406260508457862233167008207251814079044544965706958062708258039156415346275726968969703888131331025701763349493384632911978020840503056352467958232702418196105290412076962314676806016125946793272384290705005999220311614307088374743766952111684110043605055555401912815802745092751901598709653160998049209223693710146831822080677886456843115392955322119448380905105318140785572318256724307803862154758854684247079886565532107154384593010241239856676597216247653651791229202024869005219326630267021469095729453696250821697340444229687131874061647071261173082051016421889935184064948033223926983718479689910423194192856778866404359747393507250778402693924900692417912565844140362176460656471815326226709441703764060122784886734921006083330730822582226268152839741162077939454485929649917548380634376492057103159008648646559688372024912548699799713695877961814699582466413422821303776571926572331241085648555819051883955204748792646967859198179469073395890527112846325500419973986064325741869469850809195933626545813191152218893737585989585804157685151685218866149629025137950104174420341285958198383590024420226788031318757495510043004662199165294851457756685732860357810409684091709030308531971563507412503551636243533696543369398190467290767024907505208171711703754209566369964740255653359038285108353868610732584290954949405504832533291855971506504883843170407217368334555532370454227702810426138583657344975119650610172831825566076469439606374848558362658444555560906023295773288377870800428472193438513090994145397401018856084134610194780624010213555197023655955980668201082585072975907019671942027869941247374876577448908346288393939797584887662832280030008364472202133316506547713973873989435070568720338361979283031105679986446876411821363422994291618736351712744392146074277299085785396713591466939883632928137555146490414525690110016875160573082383622474511423892613558191955233533872636547166218042000110951065059292556913544078467263138835080295465619026824135833632501660620616600792698906338774786010373342953988217917187227651055791144311307836218025539319148270931102405466751806569597581730966230753727719378368784938178553549335134292612525452154665324614720922180521787225782569496869817198082040533564125456086126553754512285627807691652190517173935751750760991952327087238898244727808696158540927861085356005285599746538207211330092169783636109208938916325268691565712286939395829519229221307388231897605269324419184597702908897916334378617286764888789210812380428651234736024810692875245440428024841198789554516425595971965952473213066381131855070090459822389726303362745971353725398728665464241513787106572979338006277741468885807640040249034083212802608483622327632291417055308864351784700180932600082651260558577170887343563668915767287758751557017647337852507868408024624126282864414692419223812173154392096652840055800690106218976755864002873495469703911388903215255724269936653739353973935361758311371296704154837334339408455820432137891737773073199888485102420390674390422904215588924411842863234796246672408541086497601805436085675127918461669916211941075796778636845041235529369131736953724459539223743179526772892338812142652497259818432732261513145355185468344388766950448330158155489446116343039785561550919118164167674920704600388280446780291549036561220813140043023041649680292849909223116981579762643495518987960002261717307827986467019622638493145702958255141364152713361251750333558936615951475549137174363901037307592989474302909865789655940088725236610963054716398523229394780437334242165190681906524513871574021058884194107842279320205667493236646920560821623197265116693879070579242136300817913977475043461312050511936080297552410387004380753084059382658311941819554383288867511338745881564855713240957491547772834456246104709866489836341780857975269356485154319297550052333332229251597607409057059999108319475315627538142542688294846286573927365763933768503158076900201224556097307109276653022271472131049415110608428899132930546558620636657801644575399332192947776430961307138494026237762259409437130241641140540198908935646953487390438309496343303356333259939490230494102566848616091923691435999872152594685827016687822033212419029792587510509802176721588237573641642871443300966021285491018686354314909832549014288577287415205832306025243115594153726236720090605803422506259748057868011652330442560916210938630217493467630011147779912180028242105930142758457378221327376790273125904142568458625894920082914207293401465756437139517096888978051933884340474840136871218991488727869401063379312043473144928282974671859613416685127319914861815636338801810027061283832191599754209898509932799410215683877155555756677567039488771205218096291582824587378518810497307274997694113312412783866342236950241409489587200927909654535944952951682232786597066461115479171758999509475127149031111463347974291855950412906150308282199872253596067017799737861398881197622554065019531743661958891361339192459234568956937613604567327750667969796442176297073528099002467392385981403045997928789817532806516952831704470241807979688297979756283609039357764677400096570096026821563550826212887188525945806241140959211557211446226037614195852227869889018717825667308734804165091443193938454791829500890187481012760521509243070897491670025400519364343953489564905104445960050967619410376151911632211546271178187700331674297368840783143842205326416274072113773431763352526580695423387915597814149630021261266857928829961591528094137633835472606001604756391329520820076570653363723150521884942255814704646770258898164188739156298798446827228650726547357678560446490655259086195673809066686267074147819038823776859455407707704397014549502680293735880794180416244580435265379658928644182745610922764369245218380828585187250903772397054059108804185060404885019243089330557808194015525854071883599138200827047719877274886871553072984438384288314593325623385582137752825652450617266346285455145838666241356517745790181154690272126038371852125480106006626343570827409744480126218306600957602440873160832854191289955431214725191849054956812424049824838449583178913100279181733278032937303735217034104036483541974205877938637902093947223118919449040023276071816902422582395300427987169234541109994331801935205249086302761372708440698433384935123585875860998013690510049988490038741276099772947958318006023943784225889006149705515736577537177418237090309324745457395112303163263053717978450952145238001721533711373881759941988940477247397671999683771948508255871050009253409295245096754131230591840442868890882115873653473721944359825072224141453772467679045132935770171169604315190673559221418836709640664442313044420524706044038419051232693765538391385727104462209567832307801899796781498852555270902788990690283529232532268347111054065651456424810724898208726533578553929686935734100895731962525341176620562770047721852065739977072942080313226586468525004790625790627048585675215225037259128178406767072279764520785323693716608234590120607227867220472840908041636024288437806621106353193715911699861361024272381862623723938107697631299868669995515296684190312248475504394792777793588950498623277971785123385814610362861101567380832060123291227793349839965448415708611696554223743983397506707417323720664526010550030675830922901879946791156206193908719079032629791998920202354302860742301533959043443237229199062589850332978142610100963372864884668471569451249077499901783085907379094902972010054147565330376793470478438017928907725430204886664301550431375409446237216016183555068957412050040661773442469500649992689903976930206775259430711265872657943590040110638091087764069927359255891580802985158109073534137061998056445878929155116183369691071888258276153811110590346605828402006065504040973726468258611837390819843686659064875627514023536415729253942211458948479242102058256719433519215470209293795854503789775862972058660090941002615665569018593634829006904891100624168794778377455138095739986066007669624140782629392262585664022043440818149767065482113921364319024202514852195846382801711359117171029535886821858688585560893051493166926902764027244398408995498010915151663745939174499853275991326177480183606953817709585499130339258216329137569865526514672095389245774738749825195276726282661641141948047936084057515727059011928850052533903624855842628172695561092966953474294931193807945400739933985012352087845112659047284298327548611412264346784873137817996259793783531194066728244637040840078305333075471007013980154382788969455064642235102484191738823313049793273584937426737593336343618884843990196901780432552864958929389672702056305185894621854343891817071243108629307069346350765014515853370806121035265872799483629540411665421489434576322508123356096797090627113031829782785826350106472476011451411789645750191612389317237021613013005178916452414192898405872139624461284527197066256313039286619730948613550203231812189903727823388485062937276926414974215117736137445353028163939950458517398593786475739057855837834907998289463796512107159586872099789707612346067333693434975546010817499011497521752605919409925591091179022111560395631942068735309638098980524921479769622928520044886458994759578127600174804272807447792943955488923083874134702211003202395553748262492946671909389286978121238349762029227491793269352974758686781971613478967880796565278810450614747734752022657541302617891390338175494035497500152836780456800787733440630542196264681585200992164927841156271420853717063487055165724727674356258783110317171394460021200212568209873769694520761822866277184257321910344896509154667169431364021255734556160674529479960889038195976301226032045881970911468713358368687819508667189395192213954660901791372117831979161181219839769094416913609737511625747506545096908666583101383710564440485482906781759461583549237345898189120034658717673485672417705974606589115883031319762414307042774158751165732867189131956246152868976971145883475176323790565984166503179346324401663493263653762016770765922553441735048451504933080327926569966409888745130723557287611366884347863735111488673712609595889703191936422837581483020849156351216312263064368217887230509156333605681962870287891695828232910292556658384188208482331722778848663276041656896743012336187214865434869286060669785681860587007731623418233714189384867171015985275641175706054399858125963968392542462542096204167681899492054879915456841981878161569454992940718550731387882185296958318903233405669541527961416804337060228801620587976979672072873712570257944142695919599552455454359853928245682987354383836747427869298655112461043884724528148510120205354018185079930217762917553560198338543039844512518408234170388922075470143035564736939166045464235700318909259999553604118488870166552024838675605258292945304311519481108519143039776206979418389179794526915865076394778657044387009477687551686393751444000501241777840236602103604520959087766567888603967068115464275393116150254824692469957685004899243465228015754376841781044854183024240219001560437214853166643306360116147718380990548440297294299313386374584419878845766650935970806242977771498988024318540272140348930089693995953296119271474108518787485830016344620492109467681133066549028977094114867761477878007011747142633777259461317911603085753278501764325875843703758142151422476582314476333276246320077852560719930795912722329698221887038847429896180934809989084874154852986589680428556395445002127803209542808716446501925838523142192210788091715771253965232121794341942184116966145967073782594406735249678584502995935957893373444970516105053411339243555173466073306930019191992646450603170457901836818594269024971534659430408793519589756910776032421190386407951964931537227447365979370088635719850193641993808322796488139138640542250162290076550691102586361423189865648573381254072693848012670484659658768481665258203107749953068144884648443348231252923005609553163062968179665228047746230087950777647673805965170334271705546359319160130978830406740501402384296810539155376592417339697010311137929073221690510948421777972055368992817235483143445497900457215854113104692037622530377966488160837764697106379723140384719051940457754805817661372274731799874145179151042656387458231985526762389463110712152852516036130159004286140500154844476923240572302634808179380426947933601338743119841221118219844839758229339507918953803759430558055017613272723715281734417576804258301641698782365762975754258892064594678059559874079422944427645751207949218099479749043210359842483146853872173931544238467561878041652949748228684192186173022079738849909578392081280364981752508965721604389123508484800767670951260894768480583312273116465591501924765633831730136714506962622156415578695171834082222875579819928802973903735493426528318703434423693680865385716998814548834568671379372137640169209487718188215466112858648737910146084086239407593248205902354392856205349879558607936896175787895994989493278969004467272114989231093728728562484527546887874467297638225871429765993718116080752703249495645036322121618130904482308481402758802317215443545367931365125071386458856874794036190994395893734065614898414558512598947643602067227490591533697659888171749334163618707859676257606752953898037286486491760720365995150338849000205039026201872430529747716239523012150742600830557160615984561565158921218623563961628827904010529549966916105512153334978215901195619122755362490961297084224236112986324378007512099038185660670121205444518573153495257149764996245960939822620581868813251676956196335069493206362364877442233614126920616976871521822626162958060046093328447322574185523252477951854625889865575635006508774348827505339606208395059088954547092973428398894783536140691308708483901847396392191733383548353059778203811157428684351495414421736923218687252595186033995796548647448001108697995603749267888414215270440912852736247528467376359103940490800885310285157317165454319202540820512106517735278716772509555089403781956888899103593208296526169981407039445467720654155879241005498291846671501461340776488495131626915543582213641919290474806169286439516978119422692352388323946972716619427463472991552061922387773455886220793667083871540772063613557170111220958151259244803083931820136069317386157354342122283677160568184255317271739481840994526056934817657279641142475345202125171723409076562273518970720583777117108397294691812752139316111971847141133427783750714190065823425542917005946069338121121960065467591460412773199662345835461884818766773805324181390783142520938009681346075622190761067985019226631292119318310570274909908004986425010874508851836521464742284752927272371327261951916625242447784475172597395069068947677396833035842646248561214125512424861923788762266947010133972038306579306371907956506982939347462946215395602745648909386213619201915188672542562124403432899149000397615572232079820054480683778207683473198492634609245663168668574049605880966762249205549861035780715921988549115806684628553790590023543786859961361816685375090376275034166592316827955401172456441565957638498614861031641556830646262073696907867215851013982924142799825476741186281629029851778256243326707826378441594792267470054053383387051312665010665277504548239912182864150306775045838004475422626243381357842748297676320545312272336302203799445417741546555200468110337623317015771532759270533626385733694623098067744132859237080923942803394294175752191953068897803587930812432879703451279461937168761986677469658022588633678687539445396618630777133268345297019704552131966816248357362081124467508732318428216773151463576167442917718771986010031972883033479213658206816764456057233724362072925053625668390218827865937383562252065852240239986819661093309488868544643299156101878992011552066082129193397412215554079675909398293364901661711714867746581691033060493874606045834998042083809225197439930612100311054877151716552765629037438365634860108558907824937375576976378110422139792975063556672319053852512104229338669200961846278495257800562578725771285302299260146301596568697096076218841271736193322990067359316028348944206795077468552367833843254422619504768163808945719614093826971800173956419776346227331224216400947504830588718957116678924087625501376836249502503950702760743867134382098495014288378421517877410466823224589893103320669069419146418364461309096212717540389077076474571620250439284026939133793778749409966294577500334263211326277958533515053472834811498431132692132034311448750349745194185815840314314216648789921492312833135691175031622164385572895174841526786992062863056834922840417674492840314382879076168470752686549194433858278687661705115608875825375668790295883461759277593028180419336092183158998167942374737922664308201924673201647260155039893406845435152729796646938079867562350855376437581137734260818859841841280137297951666717410955566669307883518025354912629986452048109612392677279946055541576762766900954946709661876111567084184117532988714283503457179155629774556828587955087852556227475965264457636125132528151865028603115347695953394631900354750100137920391580463239528754114644261570937538480115251666277774043181331083962616927529527575461689197382086166904556762172335509501884769676581121624342807725368306116200126596741682649352325212618967739109544860856992443792774967860912428137784303469667093991499709180596796736941680413150583784165675292417955502432184906260131010143609981141464689048898969800203389641881957695642561697031737879994741627210684479503405276395518335397453003325614924181515379094990036101308278008923909751973463480476637304552324970174163528176921344471431536551302531952723793805282598170316341163800017642153503937552430520337360628802733851911802182346271253608623392330167273831223666415419337699699078989331955482884017979815873214094815113670202492011210188547626217441668580733847137978074745239698609799986893708667370411662665695061908626368707256684241523768908224720175225459302906570090724066757133965797154289082678061518293172749892186054733807702201729351728907693208467956293585301759529824690589514891854297389409626800252476923470974332891211614715188300766791766591366816402496720674148320896386026550190661647431523400076229338177883802558437822819806664401426942236109821160160099294671770839561482804308864563189455604686443765873345952230180540689557122222869250612032403619980160972988218002164693264744532336132593562906390270836625943769821338802160931330601339315518748952453124614255055411198035778769896682935357625018896456634716739357701196918613182059859446153670214149530178025167182465296572267398456499882132169149872982597183558400031356491190602684097052660745612069835008828995239871351485533804295326026772229738583067312832518592741665143180359279065537291626817069053666213399329044976705134805038483410613722055198065648723594132493116565017732991476737962627255164966715299332648014802154028927203573118992959965902760676462569607301017831082871076938271339772394524745946152499505200974819753084874377427249228926518967737163342711399856344092852128718561229107796140752395513390032310601365410298066773122970434857413817074986279179627613131468353330776426763537840176276994606009196562686841704261334957968821563781469641561736462898144261313380462343750357677802166343291953826930865306583746791908088985839501230446417366468257177519018552156062353430039640487922341331694954808797998213637152039393460410209869267078744392724994378421232975051716297781893012290255273400110207573654318089467080349196188137467161043532324807533789035737329885942886843251838376774830499844021887159956589438994430029237275541730687858977670931474891216628788159985008967339665273831047325379382759910796424785410264600009822034485715404631274791051099090948035698177660859143606431332610778939856427713786561258248830405613100849227811697950221568371061001032900555922590382962568122698122602968051640915750381817240512046710039674153650919762802080231132621910502334012006123057247942901271169137479691084304563849908293097196906617441681731646273299769348824027527744320654578248735531201167923488098127934638819184088143436775014253670452100428125489213628951706398133215918817766441452115618816141918446331606179657977714895214713591321041625924692754368819129124667206069812755697796688211766194285747697278470270592099854753008948079802377688584404998091664466105181052783771389310251622562550370168221331864822039987625597970329428306173014645779866325049706876472010848389080079719744356156475784740298965819190525254981700713187085949485248878596773736645188616816233210899396801424243752053581954128207301183476403072390188069460586524684439908856377582972281482038457441561913347802579541532549004301364297639990026413170745421652019698770326586555602910574287620119589374046113680636830662934662680089794744769373697658868921532599381162553740375768557610673884565184893902650087145574777358464182475718606795251179416544011251258468691731858150773276060840313532716644330114613636710839879010930294749490826307537732574638008284650241425318046764432271952811442981831562492964264654453724640198736596231359907128006774132600538189432668588473056675978668942969979501876451175504547097200505370429758291814722119229580826776869376855067530661417234751460513232902236992056009502522788076676352117271238714314041857136828897272339985449296117907137139254310323497335330989965640310504822389044387985247942852530033796463006184397459730423801700951441403918815654127300847513300328181373887570915602835322725077869849134278285229514897260418287340934962740687740269689002549122977546354043497305165177891918969570318164265421739212247201058673206135426911942755537142988722817806861564228533559090172620538810234334229433398286093139904115542081302708364709540033307377876337141303662812532262667054976252529201647031590216307196519565683924255147988228305919942283817261345103814532152518032072738834444863012992474201556628455858476972675079046144811184629922005922755055988849470915592296435559746792279075648955602809930015625463343653870365513206658457354588133681907256232434031460619667317868613483767225949906541096718797794254695311355828497657209298273526697767535802113416610399486003080995705896554203904285355823671485291924662768570539130539214270181109579914523733933697787890452018713470920304043142568658374835566733689414586056142221152285903936099046314926366455564047752028502769115731569212553498713187421012773261466051907250898596494939341473972578063789588116751817366146379980911059338298007679010301189083668652730404343849563189398267384479010954381355609527463804905379386863053138990134566697218149152663229343910809975886263795881297707288762604346263867745571786058754539536070000828612212069324003204110545803782766957486324676966462345467167938458388917972170729417653727086982194059845804011029619838491076941293080213903798988835131693199633568407101127118525381913213303245858724208315069187421818950991065795678780991056791905883583360387270580131453352940332840686599771424656575417282972053935229885995700647493725079320820823150897083002949398528334316384434640144678427724775559645583617008122930066742001452830163092176561978339474948543925773433506279268810525070981490197844238791482724635078155628132611319593050963681959208411001684585997395226043179928717132570903534793782201183912510522058881209869473096883132999318295920484570946636416676245973268306687280139506712479455096917938824400012178078339949594385110270282496999787918567969229461019952124532440688192013194143460108824642900770234247108982442386687341111418776901829037588286858566574104250592825058518461405280106962635032555394145576964076562394890734911110764269396428574744765766629721975703392772212251530925544568801781302942624122841846204010462407849559368952427618116870095792465431761804751715930575757473809402863905927289124687073214703247278032354534865031194333890002181239118615811305910566546131989403138133126389771023771688635443273338328363530919176165287308184016554507373491828477892843894069953272695051680518113654631285007899705360213864170464409591245765895900913125231970832833406488491069324188544456791478996018365356064948343861873460518824830698736809833164179239482699176402353723875299513577409807415632077215420004852239511618642489246081255596129552452403440321898768388479153142956993916803658577056928731157528609500852633381348109817092374898568625188691154705752702503956497613453998977766230978933306050183758872230386903634798165662831986497168182590180577339339936182571553979164327099660619074819535513504929777643328339498723778118134704195196966123656965841001219032280939238349744228907506079498311758066114456712923170867257956071884903321557453103697203350085028786352518555466999243953821857031734193733445384922632083432885399687196452580857084944954560375629236170994227168053398201218668893846036482256862079060736546137446241906517974435747670709090508675078085465979877630741699387962492438938733793270603551446472550675646744803222024901142742343724614725289134835148942606823400916556864534682635459910355743969865226116247246290321483983264671912582652583047282443253586552223519139951624070022543505124217107925619482551032351532560816857952914146080258988749523851363518526592726748484352218145803435282657060085640895390737456673279217921644583564123259529662488010014822479537184393882113131820358578287578007497446822157941769013411004798108404474299120857200742641250862043629924985234358492081753087891714235458901302228244299427494359463152305366563684814954497371051698539812466456378619462649716773201786649962207280952491480661130590681140965064810208936314394070127404331546747622209803870084435250702674449669224427139719335414460401769688087648324155229808385141480534549655813995249466379907120148331727428962320873451560033616105586086969020463999579474549737741688982260370535254122243492908917711746117290530508584389465297382935479859496449969518691419120493639797276562988310424352095797458540149747682493432614622482188341380825051231098102005264463885962902130158307808926709079227481051738523605078664001429846389646721320977889399110619330602968396134307417332852335085705759031890851875310693640023298135484708512789258009908282029342979503387752385723463541952928488325536583611775131476875275230913768223287402538336550990535310870161058149133134176647905547560102760587913068693862918885472795357861173009085111019661193209522200932539736202309015074694418422815888362868616976873137921854840586160039242728981281765105976154409512386797237165718978469384185729699076131707063495446576698953173441309989019515752720567100754721774296674948424474984866763762310338628229862840142925074070684923671528389125401688972481156228735490013258595599240972701147489437311807511511369507514736569861789475659693103328253282683984889099019221734913301710891012094216878649506169082931278491194168425636590463359103600003636224629968500297210159594849239684993693757444224711327863836387651638188988225827561102448972365611664884151021247400382133774212610162628142243450516357707094336876169721305753341900399488989791612589964817935645138530339168375718915840030045069892012939704148118249224353693673920806576405450271976736848177866009928190987657451328088055157013843936227272297319472285835803076867699585853681393613167516490300407667816803739692482015669366589648255556076549406703737885194847621434266134758361335687957293582697602862634293164051157093109717200591511982472577254100514740258867454387591810955937291429569274947059421930397498868788024447625838414663200226632487477611900322670236195934064170806070867002169128768215500450878950781950499402223803727934786304569792466767171760286063378838388575491784093346937577736196425618681290217565251410018626531106262988169619794456989137074471223818121643209302766058073515937768719971503409011588028568303996236855666619546608984595394929960750836206582382375207835567233626203627360647882145005098751485073222634321976716160213832972448896276943653635703155951383486431639142484891360030695727763741990108887445284186369752981322577149221061159043032186077746067617635063210362367908923492739679079274320273506322765513727273833745610027629980691115732556523254195185407670748812678156844681920595957109356296978686565610341086495400225370662966211879996886437920671597846085048369409729686518316213333063710901268024147182415414869896006990899178227171324797439156946899219063109352508929174549526032277305073375770857971919756957139154870163729435486917988528902211356444238934316431858340414905506993793432397799798495677359530342689642365718548770404503284066386307911193079038336724208551481593151676206749815427176947981561598223931764408994583559268475823353191830524538169658133682792450920180437195630609948964514479292297114253578353489682429101748073153431110042024285938079145770973715340612782173333299497128940340353074144185252405780634109222107917016310651236674941377974894459964474923512076041253571070403084664815136476364528515220513248953209952995001042278949443221063889037303404181256537923345076022667665180464161342388550195375510851778302673452992105985293947764947668767422578106316621709684914001667464400363636096672644348163952393491107989188419508442436128304802173771534020391153646111226758604329778043982616684810036175628863964967038900663392970059020999045704997343746614627115590075820034484435374203939552077815313697449606830617506394244986640488075135774009664703005669399483314747117995143969451002883228288035879906657138103167598834133572373827146154714562025135149735402693463269014857045385833510395548773607499477143537892760648672767373765307719469641448789602560479851665016917666299034319109835426263730504251809522675908498107951793159392811918892791668951242810069723449583718465238988810431208649990180041955999226088014487521294303235179953831424992355188236448744609111629272209840069236343839740709156244503054430495272659836972926051286623224475730487462988042176092914224537991192227566922632107082941615885477648785057360837846277150555657745889794809902865085776267285334005315804492445979207975814419057234589408139938872884590916037890346429312147876067286883470820666811207458937256046768948686477500166401872279360251765710855308226601802960884344319757976453464809232012386616324662007324421577667948551705449754161266897074700892547708801510669682960051305602431329978111605717749499881390102939647893611036741504349845400891666260899795131090195658936147003455331357667582265442959375743705902330169546711786360991580630259967338114980051265203065629797980287956662099388961953226062972613840768751341802728960212623690723967436064988809600340168802777874019134103390077715787160243668763182873658330434100525297494097315235868465859389653471576553392976747257849415123534876976730736650951807307425811300203149367918974042423902473974071388845722003775500219570824547949987787990014563157356099594897264341908831599821923724149264481317049465073793185725888725586642451205939635674151301293522735827313426734730021536491378511386927269032697189451765036710773237382567634829348082741464948464291896279684333724751103923724391013641317162909317334623569638162940973220856557150139084829557088782167220872517443247153554341508683186075930517423349258091459953347281921095269022276655784605755414960578938477450651240671929925470161979652660601295559156755498959157461392745127263366982298364739774363078647575257754958636902528782957741586402351259232428921828473674683771843251507478434590938459560235243070632682856844110212536351227569296043942004286645026525056603572064509745088448535918774102222682240293979156678707715525650550979145762980321716442404014233635900187529469347400330273009748446921731166688704427160734075414957819174714951020733908961560758348692546403824964767557979376645521826311691364969744056892072335571892604812522375488747719503691092385739656517639246897272310723829417030090184469365605967230595185108805617842923256863693076710951138406896743876101880473003550635604277736346414425895393021733340123306799186671906783289899772198172085939943597110707770516260890249642233972894903308958884265986675461370384647539889797996784769389727132487552141704233587996907702455041658190784772814575040968675614514485892905075180813678331125322509119407198359866123067031565043655996336080652463042464705090203528232354916810186361621434026137315747078854183759796086102087182725245855230787683827037035876992369720581840487110607195111155284462018284962182510786718706267047940641564401095686926278289918335358362344599006896218152470971102318575486975004679981878072979851633877169830982006576362746280782411638797233159608521728324711099685388781879740176522493975960903436011618041722877137988223310458787134371454431639612986513750095480909184190476559500642056350541801138822497979650609622619314031549809764430466419775393646269427286770641282812635213178085107797135569517814636563308107446594042659608099650198943246621129930611221225864038598320974059055927163532490158770488928293059379386405461548456066732540920912308190817529271185380669696477445905335507390335598138012839455325398538857420440816164310115725013888212259822150179360506715149717258429398970792032137281230045743075645436011106500559613125758914568829352129978078091325022761090958285598104543581664872793686728251990556440835192543504808897517164636159738387130856119975189821207074318737499917456829864003895987199265615096392388356072304239108965193738486364864018779464998921137621257190842264560662326044362918286304264039178828131063554420926101558653339350611783341848932657132845246529831721709886263486199073686761259712948118717004657336458626297396925350857354237337166791842114357882173782222793763574436090980813373703331114003462973901009521634307876611072499933086521042298054473650794157732103771601528432757137292084434503905081287190001585361286875534611490416816922068182124489309671608701400654173462246488781006340538601003378231809250857306970772760571509927271556302527047094676642540657303864618791802865565177979879044803033548638844385030919245452322607218913074985010840910602090595696420862330923777405481910221800243328122433316221263013378001443531581236524053110013498601047519223035797354746773883704740376029932386266865657360992009847286704259578094670640739894063141561147818315274943197965622840912217200241201538231561283240352718527316037875335462407869826462351075577532878904528334350274395400445172794169534302287408795894283381653774953684582125275750859215893566774863374875209324091428782505602414306991099651155480958332015281585350862922920868491308467045240355628069196188073274787883132417921679367034985205590898901421066425146794406242332756252607569341190549347413709977151012884177264765100096813803672810962643134624715579192981501572372777260472467260407123696442747529790638016850957091635533869910758439035137977380715267099786117977192146602619774687329598224322534459813241525763746295216833044269779024250766788155489202399543443575490087716023198439464615210641630551005227682328217954117760183082327186778509131231999622281220849382805467270978153131106431671917737489313374231112058963577753124439179242757596914272229686495369546425190678555483265717129832792759039809442735261533276541624114818869112363947337379521308351068970367157238145508464037596274717207407864291180219840665039652407440860941083844179993681084794651764487667895745445688038283942106001753088400087696511620107296392729178079185835634233590789202043683661615629982855848780329404559868474005131762643804597723792661296095983992736619353085638043015995795011428130008117537094706019516299377813524361417716366259093954907735328535248161186337653342799954794452454042618441220057365241095606844214474569570459131372628747486021920808795059348732406786245285792101414570548279349630833109596674268229630239455880470394720267585226848491304407932886560747788608827534008551276432239045221424221456012095287485164257819210173659447584469346340005606283229629660528066900507405187617936967752231140380085884297035109240842083834450295967415452554559706389297454647457680143538805723455679058277454878091109827758110403431914490113099583170742963957601343363063446402860389894370679733468816175637111619442248931211605726198719265250288772044642476181317995525094772211620583040470857055860545309096413092109366361456739631914145672856119186495545873077509902622332583319564776090716188053267059687551626300578562229833043516704912823306018936223935213666916137882167078247332871282292464286104557561167576768071149037435548494518781382587563060892111327511034311968401598988610095842071514165852871180651983352312865659274982630669703456015099688974214676588599871938318746425042374311915696431674878149787553537474574552655319279752174152035020915136812056197545415796503564830452644878512905482794755610901399912643643077162527821865841024602046432668359413050559937104536186778445161370213986873529994459787797963455855359545847248234122273410497859960257406690730870887212572473884388350129611281594069302599908558718697957306902438061493466658660647805792511771054117840224944684018879462990792465988223333143502403207362920888854181534264360024075355776317711365894753241636422953274563038387620081499195278240168602338375382679876386618883688124525770852042089963978120390914719454100642461073524015541263409457607827038936485859446170871233341559021451067120410446281366614798616364776086088923954587809514913868081153096926887920808109885176837874016572531951990158294778213552961264309251396309840125278259322178975271755052730288039758526385081244103488516172815423391712369760351790236153597967450233650446381574947921382984186364970325075770983851511957531898937838932723131894493218085934474193376040522882951199116753308979347628684152818685085491621831771417922126583302803168336198025466748120205391558501805697133213654186791290820637437312117604179360693903154505145844242603901929015114223628965125383000054585068831793691517797737858940696406357078724816949501370344068795682149945478435665933515073564123467028816746037250251084206190139534155731294589912285517390904564474039765539472321283541824100865170704343184849197083535809612746186469615491351775706730177230381993521364810635565481976271447490445723429009560507297337916381735900051818818946338956736367065316852452359352091435959366760920297330312556780842425122475947245769288155824924593841491186205359340153948084498651645249411928812538744123257361635671824553402460226748102312795926012266976239968188456591115762227437120874704530558000923854618433510182798063820993935182815910325153675608932540142001532978498220828918704887143973965798149646474741320576497608084367658776290647134177482998721925937818601096270319050832786095246810175804753088005867346979142849301259899325653613771960287535854825628908483130315411465911457885782910137351205642084107391138083795973149897764560321783362386958459987427488947167226413866137873745095243302634414345416525807714933158281364397916630106111179451190920953291092765024906631162297335271367450155447556032407112395037285948811826398396005304100412474087863580100692130931837251962631697252179908107148122054333209699505543990427008512092851843741795626521673260261144844074056780421813986000765279778745057719795314879091896816355470775909674605428917465173346060290248335591173576003151469503217404613828877049646723566974640092827552976228404060362199617127649186630129066490323108137939186299989101230141741315015558026840699715583804639823902010426394262256300178044935740079378874926943969219877637978227022090509799563436917986974712176448274117926930063693324558932941115769394954581025993934045533083935433069411929909100407873699275146300775085900778188118892583490229150690866116314317917568454703899259783165870875318920210773376644950526427714982297852526309416667930617892179419753956149932250952863595115441418372663306319520394505981239473755533340616466471709970449956750906497852171843186966296173453676054841645922013592459623942494736967186292283111229752964672798049520224470371870117441461503030895470517846867541480425267848290501606814285170987331646801562683830632643646248865229350828079463754345416783194027594233800960571604958387221106466769789143698856884996730161441226772470420111678517463330647182544298800011223200150803668606140541538688555307960240657734498511730738929627042075464183440424202646221108824361046300392711907527798044094399568367362519739025477681456209019656659832369249631443671169694917752861742346794669272436509550093112841584420071759176640873711769121392587954912655771358079251889666790068155259984307869026314652911128310718026213318859150225265870379748354605859937620517390565695915539447241329195847613118524470275317456713440799419221534467426961000551129293949208153835449002771947525541639886302388445114553346055723239725805248808946004973451224853384479420134173364414102989807172704347786330012470884657513454463299905726293099827815028337290952796990020010693096400577387565931181251773669927675180165591717216368192489088044909653439211025566604230545217759905907965806257833623238905580343069432518184245215948882415691355172987403517475895978823857676580684827830012010550724031066580285793527795417848624578867222835479136023715467349539084997018027036280685497316363808068356738327900834799764802971752815626291219392948728995279423494020965474257546912717144936015910853972458857804001595822161374136155697133283620034577814993666713638344416542577098180369872942535753319497341446878167600685958811111404847651190371116228634561164012848969342262768033151019337389289751839032230423146259664568801799517205766918008673401202477909521323085511667157537823766042114250431433632958497345779329522154408542945834174197404694821586020255918055874277135284098128621002688096431284403542302657610047951215683633833361783633195606022241670858426236859605580802118812492026234712052621593159908725813431374552108564898312918668456177476046544567075260691800008754971221556285434325173434829424103528190591355888989122672675476392777673684402261746276619776445337143723862143985178705458082451200414079915691119931373515839345664218986908841251107546220473224252745693416180072103403071307883096812269937890091051604703966501356624795669268133725671039760329201374946247438226661665326576717150281149053272440739632519063264533203811183521347187852624485683110521652202651585009868526525242643665356052135158897397404436446201477303487121988268500184482510517303618425379985013092417908952323894557548738360259541560035037016682764795771974333994031105103719976866588208847474025373227301859177915752101670681551504606175470827166603930100346430402227599545435973209607698068550619667608643303687294918066128739278301693142021770696575729622903664218638284186381731789931510844307299307002454956583306408655774630457602748292614891746820308204093208399591051249215191364185005640261330363410883204372305998175977571241040669410611118989511920956147695916619615611165084851297121844153638111502044608090569185460773329665203819588096669637411654571521841142208620122023858950432122638523790954636693287790347830514279294831619606117833077646490992174379052602441377577197159339860545749447552385280942269332357642400292397561190012045015962187110260576113427752795719979195390000949493387566078601913164144810061112647827216918599415110955502798099326775908498396290345080948730131017651532489773079329981387017064108269591832983235407167978616748237284941419280749813866422731512789964354700358614732056885293725064629225176860570879469844040957177718596791351760525995250743769722612288691196986737806434642130542401424110951521850228616986275620319414597862986543698946855463749029245268179234794140540382612089052439425788762333058616431265400799436929713940576367918156845027471896990831563312943302662049670567876086154386013591350476437197780153240746026721052283768921390377299449052050538128810288853892974451742511967169570052869091148443469354929186438257724587259951340195737343795476491075417505936886289642525949230366319816955088362611027015950607883608481871945940801510505915791705894225778700276036830363366192097772251921423907002518218401544705424520215026375648754424710575947894979663866479355595310352916943014937250387480905313956166451768504473958222996461322671838429253780875568943248305722080290286184594622495035560792714727270720686313905892469465217617995118038849897472203958630788356031185733759624424530637891884049469079308686627716084557037022838613729363829232473232801737907096059669297546102103260284227926046823301589931206386366647036854526602817337887060981727976935732551060590361409970838329345940281778090936690042898218201670681644116773004617699220122001920448117466332288811631344651688221912615327322198151891694408477752738629994690759984160672577079285756974610855130815738370090173208865051081474785812912022665286267302078459319224095527283777726039998631823347245354827061687572221425909414492923387757615123987454716158629936162643812885768528002476347537967974086847866794917301405400324543800566647729771145504015169041910597312773443835074445439757573967906107863860434997420898311682723201172720482020313858546007340423089974327510243804437144533457226204468801076437089129909198653108522712602982642240681103802982074264830515320919650095645264289885994761812450875823122659794510546103282336992725154695804136242593714929645692207185900135771001244374564115381871579918304110609523196672441424267272258996449984515070417265474376030675286276158731228992833548520566303387114713527432808166794508370188217158067719059161496728132661167132913124424535935918662815511227901087891762343295635504580834179317395286280897865577065914770109377027591662675636161841862198331836688766148165363959948585651934919316499129053024904997876607434234061737708431331769622971037095672492229411835742360201294478207156608197123143844011862833320320831313240480484149594174189537461869267389383815897934808631018925337132523625996492116449092069635805706409406893511382740851891852679769585269816556983622229525408112583166997266749748498523631355524781822140562408474971068435178126149367730705327291404437963204135621848513225057574187390913212585505364844288288651469323841538889774337044107107975925502065763537905279305421041504105820597623976620079914230127789580176818593426140448767891646756006193838004847258782155560660010770198927509420887801186755865113605941737058783662590588837460676373817838396889028759876803850171143852954240425914463612148732887040422331286051643213184919081958141608953278080648026215321299522198539732118430573079730604454776699276078757423177316719680027196915069243659492765494420861946650760504600548624972554458760323230934714504095634433194123111339976556229107333966023955922212062264338945501533728610981725850649674453947373672019176262524499832239759048276266951909225698656052164617384796370379654919593643765731158227271226942774364389775541319527191023956281617699719484870176999398914690943891516726699175751548034272045323559297951776564787954730056920789226825920322196582421604225264027598168429703796162633511945315353065997743673351061927983168955406341279849265967103504975371488409329171965072279251925998852536765889624730542081473476915528317168407796778448973798008508047469767884882598234803076550700187087624671539650660632657213703880414633089301766982314359152761597276425501192245157288243184995063373026119882307111204322558354497198214148183126689307242671910881006914191686308493382726208219008653076159187504874774206770922307956210844239587853746044961422370322402812969894554898619214806531053855555897307587455562184333177479016695600621100606899494040253047673927000173074551357722552434686355736053389006386163002833007838543543412601919221304552730313052350348093393612146536901230447489467443071697275868751723569629072539582860434470068095667454840251855575775870791840747630528516054717781066699169162689421412320646104064072691525082990746167888133056784522443515085862335486515883335365779088216968085103939915978272902040459140017165712742603216194534459899130414371317659001360313068220190720199407915352656484989565354300509744178335918947747421362332458510569951217023835867146257295727962175693265815168074084593767359441620005389505390485246886159485506844395149310018667427671636179782650077004960574773455833440858137773472670099598694064806485573285862306960345049107352813891777457872402638166111921379658310963269817043605187891340542658753050396436937920547360669975828300280088816459953885165424509151903054004196430633578033246703389213459206031230958395278071636829011871169457394837615604514999286119873602278670452248552548173870928991624652352742662783668055626744920216286561376515030652141317552578967767791354729349815617904526676238501023780009349322502219451616934836957273416283935453084296659869548289316869914639371120470377785186439650404610590331863327830476252619815457127106238006613581692103101822728045395767573291163388639001532476659824400819174346408401512943374351806806403471140517200046375097624977735533467842467523717268535330806107761301496129165912154923524485875129235941558357228975733364303247262242656004763561625070227989127982857871794742226919910431262361561081440379217476581501642574693994306952209483801061050720316406904266408250346827410823656227151936023027884804043967049990018059570712594984971914026417831664060791554169609922270752778267230242048832218047663721440451126059527688678697432521960350354817980218146418042404563736309405538283820762431733174111760666514652747151960606782846903996287818837677625267135370166451799444763775682302639844050294947345862285873965334423868672043688511304982219546141045950674017611565028721667847823158428419146712153611459823475262238533473213881470584768320428470314787602740356614429641866218919601553024071908299445473255757880808365692327017651279249495503299739173433175146685616125513872921407939284051818568257282545039634139700870146680403714462526859020909581469468749364818580346024231662989655900002786434294826327688981269824561804289391310757114767935100523987261844400852303122847431231247881825051683146247029248204503007811781937374423265988817156209501403269202451224557585664872337389043575734873909162210284060804044360095674551281903710623521016505399776130379425716988271119476762120043864515930965009685866174366586528080549594010467712551144954959119278416731351460724256895180715960351258850688118543593022701612683284351229251417476976419777437868736825168110738948921136805064792534288065894508964510537105434088091715802510757719096182924860209890145873498451076912643280346326550851426307436267020183808053595142878406718168829111445086025641481732645403867291746500313247679869055341131213206775720685385525069553999433686591050679191351602208798352915292750996806905109314604701750603133173869432183635317203440886671122132418247055180643769606733395719466410425327018557863488687900393242389439568942236579035396058892289324389237543035924169461885159486227979737558897896102075488769055346016486175128327343375789405221899687465619629548925477499516471287707612985809870837270110958355933691112045877599362786990010199854481676391102803142068636109989139613645767342650066486212337575977715406730324997418952405727178534416259629629362895476013549607402122004955916039189294504470508797372131690337043325415695352576739976027674087640805242681302176718838792641360627896096384766222695248032870269229689624313509813701709993804087021466127151313134965090583026462089687286508653652333409562884821828117518234000331619710157229987732101536843468386648035572366267413295705784824124675508070780054917201411796405450795866701921425413311321049571080208473611652655221317167278038665564332220578071981097197479491321503410913467715122722673776070886563091677248608515924103555037639064970651602880250495762125602030226661265307561695465103817791859329750965368207587426872476741977956377276043617084099682702025192554508652531256057059908996818698462168329304890123281754807167068225077804220143376609388656453195624460116194930066046263024780053970979425419157021481902123587279212617226989513470968876964944940945937192536385527841555025496782598087381536788825807777664974697399237800626167013925761935998222051575263044509512162750399088905079455931257496632215256767026778479689937386274859085731623350944409390729515821507677461141059507378909799282854054291963906064237093960831518886309796069764867159915889172331168282506667567989869356997495950652608874844774518124928796356148673959894984716083608711785560154490171453629880608001899200628745406211570302668388688749010110025775044257302979381628940496589317361212286519363995532613062425511753028372459907080126176322503923365770364406684041055346721505665843273438040347430043318457493303113926180319852344633112283466606842115514637815308657249716399493194834821226853152757211403383143358942280752724175727467370239939584322653028877661206269077455776496635596321110592500424785201300895504816728997962766137790553863055584894841396998236005469401896792662147572397327182968510925894222851169286586743321066807185774394336068308559545433051669146755974189973413735823235393806062025782498097487336646052919264585445621448920316994685781031560318898432840792146047052194989611173426438035038894882924959869308265156541455741382495377489029018939915297684771573293145288178461708352273215098504625897276467912480375468065402783235056037421383573427157833451519694189702270354034065872380596658856975690125948951448995118014011590038720694388599792792085629464940606106756530201684976626271223020199646450590383510557548296774783242871657754653281904181884948266350285432041767849960775061971864882964283995487959515383140938132868688853543562060390457579848762714799266968826972875180387989918627518327886621808856118557367090632619321079116089165017212774485452031924938474769281916498517023127879809908811850931423374080653536978356381945559899610801150690543863808787471215933317037084146371145750239477056700760721683816876671869133904953374420306170392189291312059058783794978125959211981307925863052683697236367572452588320220894162711508480153313934029655687064262121218866241870815099234408388349993456486395792132445158342583246661404142921857969828684335970517836995941857057273700298606156173618541799154581136235063781961545037095140417430321568707469625503531352838130471443462243936679387386393389701808228531398130837107845180021484377446489994962358200654699398843367939358609224319303150168709493814660918280425049969781346746531051125393390311005928528471515433151622959836476665416664490684487384108594995585863420176621193700574047337602161816686775644883003888065010046041283236472099536078950124587803991056469786486636009900741284645724080518415334044186775939968043097085742026105871636402942867204916549142994470192717246414362145387611673565070197005811532570882140406365560654347402572143047561457838514830489959153479607469455707040811268902059979363286091391249586164684690714799213673350719323152679165146283215114976648648905099283830531874386100291956808899205101329709505773139187472449965602290709928059993738578280779005723537862528957770424119168602231113070904893616917612501127757609263942484629652313498379721450678029021669935127103445684775853430649951712712967152538185095943399608858916007581833116056556347703862887841983064411405557380725365758769680669107883294934451212181401533355506944322192022580362754297896902020071602783012012411664948697222249763324329055206294484081331413100087561066473107699212775992491521747780815652366552696846980311846682641040980894838297831440409299004355348418155535954245408613347877440476782308203330585997146905589883970183633983701185109988429954531713961311749718814423891524991141467809845000524184265000552030708881960215535352493340441117935559973775136903011459567995497443687798698856763725631957640454540490545124901602809003611632888226412542928560164723836410366783349499162429135220090174953719208343731681248605025812601380361204259690482227950248348680310637712044287348502507684095726654849091020185420849613610927750130075238919102577453941341046122045089682996917326699052003256419719283899205013178172404350037248834616104261548580709888954645806032599892365952232046759465642114558201115962860909340487179985426492201458777898494376795152704525556799951915989868394779077340391298809941339949072219351693119078583486342060298794307628216505900078794003987914963627909598278430278465788519873370165242022939005427842964997800438830063621331331645229244083315017658900071649427554560493903238824631655364451345943728201849968671901920630021719722442183430266753935133722061022752263673239206326568341410385535075415990118510327705144798603318285651324027730330113674500057384443108952177145225855892463127947604645164475465130199754653106908361018416158782502502544949490754177570671030407412815279643214812949299249467985810030285697805577544928075367474567372857674243648025558240913662549475551388253099506778365008151173711796470181152665152035094640056706157386043066320713159456716727525159386161710597399074059300342660005277935512906987036589429982514532369500714714902397602230117902820992547989353978544471445209925145881339564108211766939697048159478158217805796044971373286344990559465019884423705160813950317626219336728919619743363745355237192682786048849696557676244553105222597033465926024451084558803024194153961168993061296965482342145122137563529612887968392968158724012325999706774108794758739298055872466833441860103766583087370009869675005689711190962236836217492913167646832095591565052868946889017915640340042173653991881859648021389185468985633525816468997790972170938888411347154084665460923620981168745821818587355117998314339390100084150706844378776474023933919047264653557536212559263243478342698553587361834593335267208362888403961031695998218187771982370366922196295908098655605424234892058954021466641078891079022693550619455598563835876384713454205442664984704189558055434965385138506348118728272920457563285382622557403849675720764486983201119276756020071400079406560815342699802028992819889590532589706982959781469413508251372405549013087848845808456659348904941388699833051374244307362416116414610534667345423366401641163590680557416901936964213848783883867705126953376912283012348649242066919420102216157809162166580584088423275819648517268642828661582178891312053429799087739189688394053909411504671118106401227164573713696867883431081962025996153682211531562125136364877960962963185581776079280373299655439118002779552782283367582807445896540974163942030908661453841004342316850853109392731429747519275660726388153101854789940647247268009027330894026125405098173935487084372166024133731377557693340562518758353720710074270533719144235739034161536517698270573990082185920806750965324549091951991559247092044202595068968310224355973922669984704864113975361295072886827581426195061491171766313307595600935125747650296757922494100605691928108201375958844669261790438661981332278937947322625315511074612238009479786663673481819791540531194937032931507761310262670478118723089135409405560432823292190223944592109168994321902509345141753686768050209552170634051205184135540772790868755493701230836588470886834009167265536762045616983878713341719617296402569018412216639931197218587798729522451644119700115455094046652039618275277531698039623438169486849123172874299981182750754923062566112910972308555766613335834748187464523873736623527363368703453703130614652295941597385448005323463903713164424881510873653696566822355088778581092929777476204111802467432247404372324271950829574110901219842127001873124915478752051960687040142154653938075731499873589726206013788649174667407649927210603575907251632304023269721889677246427272015096513503745744118418583086511310281171206639657676279840774594235359864499915001553512161509862137161285354515838256942006077642374309212403054944738859152879271933112716817043553726567030077904452895895150067260856910246791829489028272665949386914069556511009926778801880158893325083605290378665880977583042303351422636181131574254716176233353517490393220421030175446560445919926847335589104608788425509496065995990389795387096324663689956311525900538887456325268717279229306736442929660782318976567992263305711007552577248518381229125210763992388471195519574825919022212513440247718794527650179041574706759172597580073802299590565761154773992591238689921796864132511024037716795447956490168282593379929509272161448238962634771214957555152436587590786666976485593069860461191836512635194139716444495045612755505626416445935444413184028475732016459116197829672385759257186492623459638300130433014764856398018108516245237867354782449735784564093931561745666798059652274442259684614874779858738177181938079101638355819047674122834351538794476257070466675074205583158938761449132778373931784748484719099515789548248835383884030262501504773788182789266817847202488601203916205745299120702819515427249704214194458408330459023426342941288131393565869729170476290538093078295944395644600040739029319485664764789326425415975540877213467052066285093564314620814834431551390748293149974121869840708631119498509536768107263223018579676814416595213321689424460709410970511001609692237402347777984169028221400632278395994143486756166173196597946710802578863033164848484330803275151496080970097024438926562911198047426975445448387047387567898754352057052190394610600272967263536144707409328329642135808243246036589580379837843750860189510537694088024291485795600594433997640219157774283158892668570052285075180489201585821379565968017410521130880741106008238446366610054960604446888617478940780113686140122205320692131809500829081257567957528240092666251714401883753174122411195200473197599439141449599821098249256285869492767053595992616102727990652010346655053041439414346677298051737774591719646561258270001735687890117505508108886530457166719099952752819676911677872845600335737528681634188349180986212730289921998307760369675964983955408131398513178449403923311859811093685320233775262368817646128350621725721022907479202553139615512536065454287676677716449548212896537968124225496713893858044783042751440392387587823748131018960259695625006190817739324067515415761645613497795728264667816545935414170699356249618239984795333961787266462524917504852940222050760772980450609050074259908807214669525567538220864118062157475526930616166555234462103341789764423531658320890429253937758038821683544553989891799088489491870424855604307638817411438696394420544853512272601830119988732272088520335599898994094164862960300237582477967851133175295343955923201786732523496570253688301674752551044648874422565160559071511278373934613377238021771886581438396222778052079278626383746002422881109215111708836481891490767098563570162414750793405834336257650021531836496083781756958000367243935462464059867768082703872408446238778405798574157065976423861994585664663536614602509995998227063261792502956948946680423592946609686742703022167445704697837353846074303451310639727841476808720680303032505262715495705686115190443798835405947864127422310908176441192226746011731348192168203047582585339982460512410844937127184970450699034847510146494644002580225997950314065621970589049486594012690711548565437563208186739322810594072297165260756622652613150526661505855001763000892391997383242623300189278941708487065982441954504699557404057111124889444954625309831515646011690485612677353572569860821746598483945971282884683429953293922304543829084441068034828579252561728742133466083344512427567929092431348996295169241437214862217972044091240052389118650244767709125383131823856980960029984310547714378298715724018076406828142414376114388762589878877601711251564376870092493292485192383262054929394569323075751692522733810060002632080776970469899308088914824707626841370997198754382478422006941455867126952945856950380930042715388641248815228179343971541595038035282749835458009736685081946227620035298272644610630198580700852959800119224152222861568693941813293503574112532739418408738750389734386460035437204217002921460379208257596709738387433919583138825376382565217147622806250823853604460694869324999588874442277140545154431834225215013484177476070119006345897361998335904738644424445114104481978752024405067263690698083636077853993066947594605807113452696885706737289645137570323339324073595811831092558005696024524769111292498465687001438278144305936960348662631632978798956267112158010839192414590189337393665986779080182490581863717373591590865462014290937012642781359185156628538753116181734348761327138258471430902538522974851178969496651193293708243549389734093887967970410816952971145114752222408663702549647854064550501027108471059793026022191895622255137951482161791836455620694379800990675914396893537941900215233649455176371167233898520021208865245685370244993870360619719603974235308442643497462165653335845664405381708757647145496603276920584586375777766079985239088910635906217863133887766249742761115906958342924435037758580821472891787336942941049053825822403458797642228317736237187685306238620459024610979946414218644843848710927404955971502450092515006190796888033797393968422899074985790276727553301706337877788160227507766791526645734397305679502245694951761155258053031775247572893393302913259208632605554794703749171708599505857481794314520889561532442803213544425000582541032430787732384330341497094895865308983625485073636819644668158409333061206074803126007370715238680209827124648935075797330213828645226552514278239417628107916980300571995484737025275162381411370209196438386010803630078316755187127533111057663284377510415678946511442909736443064620451180079947818115787727449849475476204376839960098259363979488897471734869017525362976795016688135765302734547635927916810880735916870432998855154797577738433927965653935439721261300393535313784901864485674359825747427019315487052980529449579735763068015922868923242573949990813761006717363863743843136573484699021838277637833948517697022715386813609345330175844024119054246383267656365455392261281889646379518635629437220310995287328167601805216824754066806203649223767564257375972112751046800500659427913939827455533099667402584971474240982506377309058392699098473401866029615603000153482578658925759248582409300928957381175840957956093529930205344665077411950059911122823677140627061544728250313624948447125461038125742372636509826124915708742070806160982287057336423248164752590774666517646853978304417962917432118227263670643485829927507092987073179602678990436856311715142626908413757911749573195149336968891895500454867595546106566902765034363224636991983862305573925400649468329504876568843335598802850781769168938923670695818868375190149946094987393158856317667167521802763367021266548494670347928957361641029505187992656201425589613976500733013503339917664937243896694245540535988871076432745090350936449353708981697623373338125310950695419458884942077283775410274515868366870277342422707770630917696709385090284437836491539459897106382165705427975198214068811051742896845104091146095573512090278167330033944779749231488562066095139301948718477839644384343110898358777632790677935875099522649175707747133213050917284309285270069195603179972180039376867873217185042076431090350578892459926281448483773669814529912537080801999667474084268138416757369880080148101822911748983907455500417200647095794240947920156729650368753769455170750895566748186884670101586487225592842031337694459686563220354996610090062992488458074047946190013488006925847903717512949113189555081044870153389556315611850865802236029726378020201582388710550570489690260262073917245138059842248860985230860242233215891267321548416873520818165012421918988706840656487440281514682023459518661505979593197247542572289599519694084347348599134115725291928668383631054765598015929063879717875064820846717596272866311036240738871631346398269722615737211071379179585703890747668200798887854168198962893060073536627488613761912236845093399380322662455950833109313472962395474768158996837625431017312959245195599430190631365285104045192606434432403975022654313700013497611368864207401655877109570152344166975308671413743689302486508030377711533612197939123448464521305924722695693730590682809189321203128168565302939120571279830334109045017351177949926764330514664580634075754023668530448643693769934717072157863276159893525235411602945432898113111756358373687256400598326900017282217521282269921236213471519911804313510823035067466820790793299942145672449491529210832344001498446388941211871468199549953108758906483601706630693425140423985510838413332372998133848287862429577750957366345104217458610963150862591868858276798675434365078983884489974435689912495810660080598410216629106436948996134319991420209438766575708589932888720256107298689364414639510003472498768456178118817399235879931655119695030736722829266055007022727126590746988941432310883974478926535609664982121297080224065417789563240225107672804228544453567113980889058803096055318193834733366490518977186997651544651776182186881455351449526797983635247815096345134992026951372723111614019958509385395887446007717119659457038514789002751789530489183350158910599027620321610911412693598297219380758215810423430298632101149835543635824240331492240217168005711451127983735713942889669749137544166464956121423776409607147603424002233959599748008666770719403105600548457565465630196546907185486453668085539504403600273345215501758758329318959086091852024162350991751354388303037671604552745113138477122447415551254231481043529210834699552208078157224698684045534455325067269129461177221781326361149993632903413894341722368293935967438618265651762981336008589994820505234672455378347315880808725075791765765002761054125239603980480640886514860176076728788039363487905770753646359359073633642877048633809633142860064436656882528029251274964643158967300388260998519934351515587151885418490218940502370738844653446129338597281724255105952735772521470928795752864088280554236848351625464484262168133978686587104120986947546561106466146402715086905835518300499424161107487388219138724046354669813464253149713984254320154686468764354337274473032378635049580568680633763140132118175211446344795033896356967036296282974388443814141225480859824792749323883135152960211978237257332966813332387457237450414211902010233352904722722832880591003154477238778078020456347080625140239708462754904304923281085379425399724320451412948905077234153949210620180237769018127153755956956786279093397140845720821814200932500803109199537661621747456673134088807428517695190728525332383662206840214988563522203768686333778609860528292795778175980988438749286063973782320796785465493452036286417876738670895592956565316720097211705591085838125167606113661092797425304362118003463374077613291747413467831518311504809353155093359325383223404753542043033832366800456290428204842797712012884861612459701754176867670953388423216837929736141466626281642738179860656387537315365281811655708657970443562036010942137259687871909528145357629602458959699948986827198549893314863814889495420797771338854926043883664759610925059697863299017992912049770108710157339278832120283666725235847525694709502575081544384450814527635572871337601166503459306747543190930161577657001092360873447209984593112116150470625297576058591307065134639165670009645435133949157237181854930610260760607447342028432035244224100923170456270598212653398910133130600314054044008043638171019919214686427334189999242530981253578394624120912346683968149185982640491881087085698923751117485000627753538703177246158566346318265454990526028655422980412808508395661415950454616868970804314515170754537978253410980188844402737865080948900219842699416296563460565407260648995384324487276005831944386178322429360990926262131770809926951805693220183804890334977488699522991074430422460289948542808146652347525938345475892637570747174944560067357080022551501830947835842110766899659591216222429079107123335419778985528000633032381153828478153242108414064852422454080576996447959594528311410694531566647354548570412543852305514698755261643621089657670493407166472843033488469767644298438537000953562371288834221469425054679012204312966607434526376924474493658114884354095308641285324389882768684289596383081979336753409464248916743730789483927984624220219805549286178453366950796271274147299448151559686648760351841097622782173706311684132377274286499825659182486003001043610697922505867084249013477760252400432915861938397093143115917256057910231177984454318897319834220275060828813033298483998202535877010296445477149005896387224151696635624018910199797669673038230883157664784300597788470972124982886501360898425239298786757491973775155479606426633629200618060646141514615185038516821573132086979085898935291065776942803200037117556052920381447835875514057387503781174339672753273242907210910285645387382722505017144804764124728059280208522573995667154543627525947464807805980558554513220867282296109041147938295775221778074112214624746007916234751290485696913575151092312677427515553392877590068386729871217210501467533840615581054757970759526933244451466795345032073998450126614014546039641509449090803592162010107488553887888793212763064449100970948305399227534535536678449575335871564474956713898450531753880833504287323971530911740238287332394026840155597216924191803043108135324018526418850593768285292105317778671296297596016497113225521274351243403028078502332783201355944560981080263940088398127953366490302098275489090456595997050800792445859135143913094445786422914620149089861502026420024136906782875505999602968334291418035309032125685639664099116926160681906019299799085701420631173247892432772522310020485381010231007508813831056906046077405940200897467198681239779999273222232875529328703835796839480361352517640078540379094575073672090212069821139582373481470930850815643242026431406419800950775598299040298399882370351346646504606131149755036329991199215149869912843007052397082410590095280629203560041660304748379275523137134011469887470655150199436495440106324088142791560477582776791293467407135494901494968122867127937717056269379412802892868907269262860195734075650015331481616151638339126443625980346972630007138339941130471714164545674424268605085001013650324505286328832999311122424292676949202145858337799862323185253858006285363459491810096596698580687635136508354946928356810312211819287883992431199403000560666028940672416317200015320220780650830975102764878524307763331310504036075570114141890553979906499264317165506686730467853000829501999550732367793872683805598229597394091268959466871772283396238362117647816844871069865790726286274924466448903243035824094405950633043480239306692724963368522150016657158251802748408261640547421016640706670770527710436711949374801672633930026046315775352093188880464389853649705301384431209092781481377704703636852916701876234867559350809637031220935796991166554327593882814084642797614585240453446055815912740333681920295362964820873100798736116623370682446813812953248066905736832636303976719716261424171816250326165640384857036789249098182397753271219065081624004203409499542347088548194209784304566914998134582157517430771999381019337993302517168748724812893730566533386286718197703180337491190705322262063251203485611515004811629874256912580465344075026205930742224334170038319009425982279029454544637251836990460731186516844738032013551566412298207512552963513693783617508507527309181096263760920243022463746481445673386484171781071107145355347575201423868873895521072740488347986136970505419554707430509996946563895850964609640891830647906938274289002972141099652629766776836411098169590966986713350200819760150547126472883192207279769336971613742893770273420025110433744739252302926169206366880337328112678973291677097760892285565041399273096725398552138526261664361426016194777127927077442103672037140643715316148783046123237315368443544805600267890904567777437277754368050169867591806384485076943553349487836207853994675694633390471572785208258955398071168717467270563901333848996904632021929602903830703288492806329707061560002771260471347837848834156672161445181473542898468867268381725040853010329438473643267343516612914100972646934173419451316388232476589482413078363090014907151031022336005611013827812288930028917265611055356307943776565639333403310073327139307814457834870869010668950759862017972264822601985544080163251434600653020683552468857240432290822023439330850899215804807264135182523487244572483482379484467532998256193611586644844032959575984047219884149277314323670852887227177976107194345138858232288925394801839047586631615666693409067408087076715246897380155326579442651483952281023886042828765040141826337939662045970839044638478516765519129796158397117285760763780978356820692746465744846589145104390917886226157288013875841314722761912509166814388672829994089831272673788178824151289571704716850299436041048002270197616152106474704172053585038609826759094868974253225240582909990282071611957356934421847614476511704624482416301876864915648574094402131652725151831238418401781392682598894221601654579273507217529791646999134071943271206613922849525190847857958948606170033554207264019257389647939610833220716671054042041435510733849396784755670348131581732411704041310029110964951744388577525048306988944249143227944585824307920516408910239012187023517429946340784255064685396425403301837449913608078440243928549006111432728429141049750807022136346794352762246476473419971047951285153839822780924971822771392108606557210735746282749983208821632787469083815789019804886055299377825321618694864709825629422954055250146585863522084155105381401827779132889138071756393770279474864477543308194689330351645732319252030748352086127598263108996168722923757616724746075921379799565692300696861414988152851837683045984122872443893869078440094121732994356746788281924771836679700664247382708002643401423957257309706716728106493869537300346181851274282908948600948240038401366454605690099012102956164391779080436031800257390570591233542057679698232864985845673385199338620051653893518832885639576507641387806082718823211149949613656371938148871736489245949882022708048397493087015178560663457632053199445437242325634742618750319291313962196505133564358590560732859564653200725829271459463203354198955740632699277122414985911201318708180637839323094309373766041931907090312515337255704986533645953406721203363568802753346350709471275747871774570123601574848273238799681994103417522466492496802070580869879233618502028273966985593487738473251957964896891195081351298709099375618195060357183493980279890671764885617289844664374390722403502338872267666596375174933025631045220465330377672884104812333657939683493016385515052676748800461039853500671079318639284664838730937471353959418171613949036904822562118467785635795366950939359731912291382673511415857522075063666970044716582710822216183274213118678898975551177757003989809093247385862893322468016368584702251403593919100308651295803598490144720572372045430566781137809620618747377245911148368612062100402494324545271027674520574746870919655374300407466936350579672831687633696929825976021025375932365530931106567311205559786884544237677793063246046907217296314523467419309608345078967152825447454975988797165077240294880652541455012447568601936228981015529912989140335354186164446456452204611382038997355234720909934646567387421702021644089368264283987307081968370488067437803153487675221598104897550183781863365174261370787629006303363448704587652535188328815323727350774557855645736000776583492828586715157633300690873897241368325717031557294127529367616091278635873740728298611490758744579430169423304582112372450748271377793481040052232127406236271413531768954054962688586775218317035933725607623456894897526651127406264811792675544207666624776103589151209561834547815917055062747835080133111689607554331497584961320881113284116330974997869936929558562734523616547603187643855230122749388721180876503720361583301166697424044869066614109759637647043007577696449604239287440703911924353116848800031743819101968412787373983827276509120603383014064220992190584327778831868501514138106239682711392641466557357042505489075755933725493271371188106186590080168502557306863534538139083118094496610189870480177044742767787433004030078315899253491003589682812893797422931740816723944903060847978629202476775231825077219681405030544769948021894605146974843756351808182679606544525890305295928230642105715401206011383528243491387385701056236762963148396796088721399146954192519401182891379284809329015469981553558787444955517245027459757313883229832059218989755471218987003316290262927187099757725123084595104731072022841492837551015274315105763069622771800261833029763489229821936809454559771188137750705746689083338345517113827636702215245782039367753422001775097134101739956059021719660085903322230966614509235467624488761456229162769171041548391756043327117339846920423129476532180705076746646775347585168306521996012618283900314810558864736516195446022189018547666438258323082666515468529194607203116308003991965177621823496868030733394789714704934993314814497448595283550951139621407489182181458059832710430400917099184007361724274695631986494806869495488235307618349771499194243191931314481501750612929830476392914287874642027600613583632498013857442789561165494918372148309240259524993817059932535604170284451172312565077973543246101763425031436181025119688673913185761385589316861450458852340837593103009829939055537980268790963144413166710239310684579689053026048826098863345341779691141636877460122238009251371667967029598725882325392423093584130249936886682213758813279457618240864579186024012264454587612813896946951673732616977333621987367691519166974172303062074212783733487555940066906450033879768222846658746565954956314833387286167300022347284971289631106597817559980493133604625082887899202439005276548285766038076435409776405216241099259968456661052687529106838237411126330359927125607129093070994839750836096226951994830329126018205381529533722457287896333177944367109815237331966574945685509339278021012044832252389154048630745405131321109376927874845487632411605244282645990072580076026664481268165726399837023509990274521017567352347222108471356739165692700675595354079371967091939417344132338772744800935251390211728314640983947339977474287709257369107279747562916762787787566584600109516880791168972632335103435389585809140138040256022751044362835823284444191350835248702067642141924139175940110615815066509613720237421433295259995118854190308906443312495749820385273593832971308089431190173851514489101315101080326364512078458503418429378754507548903643537005017347459784988780838851230476374838130155695913066872576739242073052358811353578689128592064644530652468227696512176022031441069140418859984179397323864593552857461580854700928312791993493877864677688241791289538481214745513866231726836807277431754023944864610116083785770600576906722957438870286522139400323193466700995552519247025875118531737344016372285536522860831586977267289960268964753554566044394695453792658140169388266416904590832064112367890655840693125188153465064632681561174329935319580734993335258354649507571508686263891023717228860517819749974884388892082720503025554937351866934817739055720092375218457085341793680433341579843768084485556338911070014861582262408644618354562875141073197155987913953230753379686266083177886191744734399026014978439341224452200791345919152985954025457592322490160755426712027707542613046811602307940327632515902404578780560064428182370572225294855534592539713262111092533443905037268839526690891898155818841075885403791361181513864160413326917147099216915094255756895209353413023195049719051361179490438725301165163859325175194077631626980935949843977552313276306225772946401490223842637980258443902509380805436274159409747111088341358818181544284027014229781358536763373455334095533571574073194471432595548020224508441486753620167759503872738640248952935224430253165520634263143746482719001699020828090837186077017614965461415172514173742400725292815064396371806484247922309886409019226989751527695636947328411100609908037741858060113103577048963251779436226090747253466409237303302166362476528417725994468249991121974967717453364928755904742075596809475767239105136570087561708667332592316754923594059562353526217446583261835438461453943839486539771098718489232188309410339361173740919708090603640483139843996079455453199762530463366478561573006945824449859490183870842562305023659606874879736914206601152358650821511075298367731004603568047840028695200415118463682541079976128130899648833204437646721090427066919322255824274296623230949034496192251818029458985641791882508812145321254243771372666754990514214459010760389930932906275302964341451425267036263033662717692433936586782991471646293683398307518233309661573702903598231205299181557623823526635328993086565226124180688140515049244721741828165503466363547641037533404728389031496074324419894244889904960048091217895029303179766052617737806574647444169687046208028024154670612070645815352220687779048948882294090013076737711125346666993909969325516028076913376833467753170711545928630393445123008572532333363320838452249681508172439658151214102666910739189806104201894819168696506371729040344821622739766557062448113772830064331614120802518710021963387589231637369656488427729022537779934281024822986476664594636529691663099796350385498803049089672536336783165058540600546981424796580707069982140416880054755647567835552311537865002093006372734521378655709841670620782612449160870932899860621904647168394860544755326281243521682727713514060562014517423620278421611259868222249913613174075525862842785997567195670727491170702869376937108815675994417590078067680642083598191175245820619314175544120018937065961506871875391710041490466499066485570692595803273323258820952715973777759569806989208777600015891173139112025181047205128433803230513237706811008044969035200689946625965118629675267298001391419323324923403240900073282258528072991935181941584402653066042514723809879116188092901832269257324491946839668885910687134406150103258112197600657823955445990798024364064916706956230018589184280333702698644344318927890544968161656788197008144233671823640518008503992306635862405010928291180270422500930586995165442541756127490193195496882404807650527760671770572662172930558521870028844596331534190171533533112668004040947552052802905503878929008702124240743169393944592428974436201687402038481063694361067131092724129784897649434841288071150102233930543651237109696152929336571899454206398329348812076717857991288267724305570201681998891734853186745179953336694803128066531533974836870065811086366052493455128945219834260150311756178298573737963067251455935305922408724405341627826066081787749764457197660622006099183519403207951876019303212904973016300818627530152302276828761811742804935800198085654202066814816133801312294312761079442705711384353497365754539301832748049313203812599500254979860904057811792029725066087924695724124944873591725118551645116045081776637321729433933941680779967182840512056901116028223472252079792363800617119977176420841771388289375784232966139114957758033873562788775926408505605301427816175554448763432506348718040067049217092941475591792681476675468951040316831244769914685744633349043552838081799327160447351399947716611484657744772837357763068104997246810522417915690574532458089822083283225751236311073085965275549194239161400134355259118768729192508343503405890851477988368275377804218650091073069947756121425194076811681257651279682817756827414558186536400461221515775016654546465381911026903617719747800901801649975315527110546181791993633435322710912308938819869796110320967028884915504287839019582283093963674205599106896643623089075958486249590320736186460541165831150210913724905453055486310840948865468673912283568148880401726209713989723353208445786034771567666127538212724382116199436494983116832465987409886994672627264611402934355791296119136630920484394697343940276961713843821578188099021808336595405837515845888774090067390667190323213490759015332522293159947896840868341183794298905091554489762795809225482849796810678680642098844345639401064036068892491870470521012477606910684221731712456833577535905108211982526207730326660322405091731677220994918662326648211253906158583929166038645228638783562563673806094478562708354426038713482079494255975775932954125466106388955537162808336509222184637614074042937743005225365187614086220865512767981071444016735747692084273813539499022103316331992161748059496436165729420925915077365685713827593841362270381175286234653539326728667093582084813546187162745866232231380409256520917661119534123692862897916314994242585081586137485748240138543906863802997079020417357731045935976143965323139104586663343478485159626720018650035591561359085111607507914970320850903887630665998374495304691104013602734433879424919088352781747142310652343878503110021831618379228879330559929212740970368785866063321697457467590356784148422429798537944081170480512912919698452399201589746277314940874794181363508701654710548142905461908297556136308613796737041972984002928931793344904564084268388610724105135379121565568471872025841165419454096807624074675346337882915781275532419720759467055452240741126440194415730504627771843900471256740180635756203412197566633642891094334554066467733109232821172439986032577928178187152496217894216653306324144129319588549898762420739153111206951579072121961965942852331236012392988653517736246742269068963265521661891428174149709598990467789433701334914387638155771398995185971738046484563236144608438378663791614634303752856176588439047534510361451574808791633586464958570415193540879681529424839037126821451873966732305530193409735124949729603738563980701942056759175280269540833468961542537549235156136878380202514278301916266150811492501580292594884887681872297513990075176020939216481673309821037498268636760886029989880380681304359131393714317385093116497297348245859065578724591767463005559439257366682309787989143572458665763566881463405873113343741679229945477308215869374991968976478719819011298345611947220535979798744643132964504464169016846380633516023722028668125287117048027775782555184252948859139950026690745063776614599928075802901397901958042649190532535174439815307991134967887062333848663620913240193364430834443705961403092629966705913253810231166393380819379790700255233147708433788361019100646998612498199596695709892563145616030552098755478876079261311951374448865683433450906645430320931830798042840136826362515119972606978120662914068495378872568615245232680950536875054016205257783351960127955257089967315691577887151193517495117163115747661667596049068480021268574046820651442050595569276119780531328251770557480485181704219104514544868911206240369045076779551867486802820170898888633620138919097413565437874538182429613219242910662243982876259698826307020247125441569257597519545190977894627860489343875064972761297845475520992612923084188618497974785525288527957764649580672833972760291321766711333053835117141825564813807077735987447723273275587871270063574220733613050714031742844401199004558565731468967060818675364988460510205500093855791917982343297443734866425925310545652925504288569495293069679114014345325460029365252265984253113097891599068033323806720656761426163546297039554823287911306182494553252614274787090508094041118560745424414745248037736763589710540425617117955959090635068554688802893579561243820730993023665786385212925737836508500067803195094984017200430296479517280018924523492800506428228633780303778001760285226508053816980953322877446063253239026058737558793251218356290856472071289338223502058094275475447729333454636665830127557406035122502502476899833879516117785076769048789362061329176480823022328277218583043419363425088061013289400813350621384502588109293115626044500693718013882199265211031576714798283925198766591916610475663248326699400916198140109570909053849752556466071094912998987973577950175819240300775119648546040048743792048007115986466860066990506352621043391332488665706803734612582689855717543137091736539266064663770795937922413157761345591592019127006797079303929017293742958353721234021022710641353388033641658712240023074521074133019395273868155729977033620264391394543545899348095190478288431526966430544568983374504437955668660651479937243182415610145003533102117695219940385541845740033359390817402815930348225400602271010834195659286175301837822021414417978118524445966530573718817579069574202189416962525095729009141567609423406176809428992415919480074916399457599513231574590077995087692577773170751276418719194802623399720441124429738830259678685918961085355819859410320166175520531740358401872752851106218185364011223065147507853525370670782856971114698869691448596659507959620236897642300627975658644885454052746452950360177812673068523836830138433582672344588669182074708818422588941595847483802589658932415308546115665258909360739737656764566127378826208660188250745568825862528517377802189175989756600613101706642977581341936092387794783071418628194628273037261220661355589337856748583550176737921181774654315473837980575331733572356084956615827094810794838594655291521552693655805029745737759756170240426251442491646711086377536129432315536629411463066542605392847665156114326346170135745184027885202972579310756273360117527002658900070299316765950159166097765327707630551970934212751644146963027823093119195021003985783670711080517890068712758814954348762566299235964047956705451261791237623435043898798948644676025785543229089132220277545938384408258294727752355028654877165620430962407396405278069183940242502490201816865439491711164641853439542594062672764949413795905465457608494483587367200835782159269921668574021176572584003810929022385408867221987608968396199317258559125125743068633075141159336098288968126279399795948760286732538243488523123344874794604376576227360945901251213208115377130795545031628013708427654247744970604392715470834387829778157205641759610349487299706053488448153830790505079434508377973588559598780731120139742505694352374790407272844448044965940949594137116696602827069711757971740119162741630137492537630680684108573709462349635052295341758841539180924457555446817177805739021919044316759232927567534948199357768002980643665954001417945459050826645931631311470220261583166496404800095473083402594993416700989351693201396861463417922190785669169842770329721432189412780673129972692892323569905407307814743285732145330908709392022885460941648786591139439208841553285090332457826689556286632151980684133293810144900078448028617240560899513864711747191503437813317918212783612164468449945790894815610222693100003653536657829612856964429782043242975260104791796139309091409516549877148014421754790188813542678185951403487381430882339470529412591194271809662863292137794788709126475302259083279521113105510588530512671792911763989915641548552936904289735796459535548362725726827716008183502983357691363860197910285482942135775981574368531416463815226543144914927974602775270037240720304253778627263326924515224527326028661961649584479535552718539296427598394964716218923025584148878017329433310923994553536635951482217459988003537582900741675729420564164750835597344266287490418812370017394891467094458686925673548229076845546167602212053861679754570111690205655687754644181836303384634803249147850950328612200314100552414703080056403163530993662504219100000201964593754511961580206889834970014485607854229663386234318285480751073241048775208032677320292047414548797936205138056297472868805407747022160328338819186467260377307704652992974760952848303354503952269321861444220746009729459510055936776006947332560529207153903768725115695523643889266745428870623336256609325994306519383648899247871216457926836539893873632603595366232319598344041086736318273933269694852519159444007436144000302435061419812272685215576950678230274918467603717676796566380520785199229663951243158973819008440480565199706127628358419143522093855466246207788058885515140932167756400959794905195614839166372819089985396542280121985888734901355346512528060185401935228121169350557151255096579037679965850082840967840801002998289730147328536260125716555577145508268240050074593414185977831472474488081986979842696070779889593467621603798267547841052836570839959730902311049879554006668639283790513113123738559494518317260026339931003973636359252416680500379672988285162426924642926685916267994022591808607390493669148377742752280601683795841918034634438690010898703418843362607906177112673154511021445397076408128294340321466557090879610030225764211494721174532635814949979238583957835572549148305156802327010706303392335750248167169366893442622906714633288207402621057383729264903978919258130742989886977324748998925272064018623825770766667592855331865921296851874575974666525131750798955587059477811510979229381202322652531617315201061365772405292707831404514267775647442776523599674730916834378793594874492295470209082145908961662867278179088432893699854908027242368520302976012295330441444216693830536152403171441120870104300140169178203280914537663439372714208225426801740790678036314327549526083772168958064168550704994497113474273713333746669296198390244543933360257296956618225630354223490419173915687279940452670375352034472428771295423542840176364961575081574431776153043381347276894273637769799551449052615536821021554446682926522281452023954433367073003958271452992098484171297864506711110593828126452146986338971333347725155600677597234566071881745457246475880671649536801537457370864342532886787678976216070578428068277376146465312869950291159574901623395943564415409617127081339514923633237685955581265070386241793512819014628787704864412172566650947539031714934521827778382683918230964169561522609150663251925045433377904479119963307170025037080663130143572112827413874873652463237832814403855449830391208928025015549023759119041121777952801829495468470079958052707321266119617116341246912390849957505695659688202337582808044462450956366189252539932396114332359100075475296645895360435045657922290441815578135405050785831805592538766357087513141357616456093158201687478585347231802026652944344505666670266972765828318630057089004271791061666739502048503803072796498009362417051480110343840118334995189499701574569734840904124102654769019402840221814876517664058677022132184679365070748240329946315293720344950546006608479212425714299346805955999572587448070981434020182345413139900811385550585527609273408799908652338212664078907413033915552739901527908670158072017880031008342380316881456611722362985405100256859852989006497989155568158066159416706807832311254222500201368320513074857879475411778059250825082180019083513229241115023190223189081559196600293275076126543576343839860441551689705015381100900946764806300263063349526028840089741772232916413224498935862008927726115684445072512642662260242033551672404132438692859202829591549574589561055465414882210001394760205260435995441721294392860832126866114862009568560097420914878075613756678420444268662284726652154465308743709739120780337778878271142776028441559947810059448399642350451918904554551799216684362491543743806924691841491965446332816130406673443175954007370655561745285565043452022508132538730045830756300239675452958272123661954292292368698809295480736770603270237762360189895811659490931672045217286683090427625275138478993134970569594543722343477134402546181695471307496592180083191660214158563787525790010415969527291506936411759080028599608831994032153861085019637843988457368040808156007045999477833586941881844060938012511758606131316991152809153789091233702465947973449399576696873765748486842175030072233385873210009665700141960290813150074044680089514930547415504441500967926637576288234423053981802076492819453448522446066613345829705419618466122344529354334642455858779297528832527945516575987142857408256944969192713047391916246495128132877856313494777512386309470687802439809841067616831221851185343151259235606289730787590636492908419348947055446340443649931543319649840557914504947038665157999762870411709980349855594325165624140491684074754866863655332364554076669709272721003858110001405665004199892792701765364347385968509656246890193018495389734707552752442622645023174100438104709988184620378404775173553558494869273413176744268332036938440343403457419143740252383226584988153517674942288480596596175693365688511782981474183003629926775983333023725955134620950333921865362778458553111333563268499475230932762109888941518885588434019903623709527835503346669506115318899710617917559250350569282880574402085015772367122703932217000777926927100566196180461152890040785757629930496758062834756811863916841326929472294510745714871925952161813524629306647426063176698742584728184616743245421393908511395325680366458085749846405883521282901834543121757785427622096891074318005313401171223048956489449642644921002515475209892692995243277322066581979850842618000618998027823095847458935834933355314216473405444440930458475166937608077999233661335580070227394125361511127096139775126073578115552973318955038171371999203294913132185638444063958857563204180610708053101405263412400788131946354092926774051187615842165755785384669836938491310604833363839572048012880766222615021431040240795593234151864517165453729374643412456139742007257651439708192581742665902139893298337868337053960960333309832577843781667982997103559009621080782095215581431729625769414108309603647190049539891900135599355317911952907548439714743442759189172573573872400961015311007935657628905078379381898632472755484211393887499090158294632522418183932827154559663467309342273653201213640434140500714003437370189999662364606330916324028140086914661964361132729381453898588863737173935296420289870512065145902837702899025864773398190413048192713590970424071657788027340368766300440093834131896905257856925069677441926880483666459783370129336245960761616205265701791071105513644445715011830863110111939438872376553550308554305863313309582530014148653709465569689077103220074174236026325496944442008130188660924337809973983474956939051404058228963880481110638279965616218850306081875220434202220506406594454233186694263527107360608240181645422886213406958954737682611428826604449351419334969603722896007311359730367429556437713548947836261919684278733883616215990997521290681928666616192670625461840767422441706388080191820354056988670747638750357351906488695154587754537764434548280991536072973046374273357446613427036737906439915171020420016178169670742186038125749940702870731996538743501670637874309789645052233144264961916566122402813351690686559194630434987853704003114461425703384701429970439228456341861926220762475399845500792435671633821523558096427108718541793763803300233926371824224862755355384572658593002358854928011500659641509100012194684897619280204283679086430149684841411971126718434123654285092174999531569432375015642070493108581313413987964391080255030243645907013934787257190241971831460677759452411989104287075721577639694966482572739121301603699046596696331795706123489362838585625000493228005995318118334514547699788245244993493778683526310676724107742903142498785430213392481866422516338526767481102527624062831841080238150611263354198587418749216819294863228666437983378204249395175596462705012791534936153935105275725189259208216110031479626323350930416388911944527604845779297858131415867391682115328790080613627938932874143019255503426630798673523239104664483768141087000285824314417367355096944313747485188116570060649769345241173003052216108432764097662878219526308219371041665361296131034917478211146336853471797484337006757274417095562592925111972443427200808612392143319941591155825425165209425524229737594204673836224887408170007589764286842812998822743776457520770665500323742725482770856925645640550725473687901100504862159557918778718232843306260806741884437262393780333413697956465312304173454084184935792131651529332991421014968537135548334171297746687544040793863547421471225525113743540713638897589646221897517546448857856941884339929519839356876194030381288158794363428497601139801236544018594849031997885244263935180886342262911576977436146261145874685488835607685561003149219815879185969529981967755402884635210928704447124861463637323409800129782964422977363211425746925945521556954573118821080247886616964646888462686859087453003216763831762134977665650718226064220728548407993051268574095570896755965428918928427806336837285735605189996264695972254968262628509490655897761710217617611140440981580447223606817950666611379012761413777508446228717734414420868848348055412710904765975244266160959663378634518076411492522273748761985056831849998426059542165359738667210085170525709942968709517468670631345526147829334398202900379525638705467513716505161107177092952960750886852485826664277128022287840253253431733506630859043353956646633872863807188223884826149179759347434857906576535822711814511411205002777009214827955187978258999147175626928610089644917577425203830788853964652477556862271805635157505956538462110004626689427158857766103393679431178069617597261996090206117785509848353768292823419743117157299625839120698604416579834783753324606036984275150001544618142934955044147886819440756485111558987827400034840112529534130405004712128291603608149293875605750129494815875575518735974408407799415767240938060603755152206689987947542280769418283516465493692775131793957892676258341443110629358653996178323874024294918501182348310091810204774736972649157225586732644827459535240165194484385592786702794456979415021373470642560335948927728792744183243937180360040711633678321788519698740044492050700717760445829374563104763345282387776579503662770320571634399918338229042837041955545240326008435680150600439891882877681495899748171124811024787245572582585564671652859002980531419716764704975718339755373017044322721402447926425369179531900620403702538600566737994895740428723265781765459394533348814999799391772162962459330086505075192088794673795031472597494816558705674819755733899253702288448413985820782488018095117044031904352871747524797036750193127641340823456501400718745591306361447756842219597594811108772537216422792003067294994452591926233759562705562352117477015709635687389523732032584829527082487593343032020699853662434989414777602410441240238112085525716810600508148546299777935137023527527970018430442022243633893017877994704254501914255805958475189454983505340620439840518736981739882218929690334044102342967110631411070997896820493139131434137171470908150201281472336632264021863297045764197779149103264565653802010889793875139082334066709641391073913527316601470354454090561030431507167289544282736118099852069118102932436619046864945409931099429124254053474592220874523670288642974323472807663147291411046735130233539167606776824986577475721935494206036575080877590668668202915500835109100711804638380024162071255969657041105281190321274646539778705253486142279688990871899786215692695058549953910211681368471560056529014579622173635039040356296344395421236631007942299501022600777384041663431237926485039502354930766553580694539278838378287265582159166003743331849766308932921267248040397900401222182787272385440958646324151202893974777620699029528609506870012625137874529483140352991236372725721969332219301315035503456859409169944241561406729494411543150970884556485074879825675952441740089746162536626548594133624794040622505787434436668577945321773621472703648934354974524515775359879678694284008192822986532811987488210724429277864519151583622494661830252197323212232676119812592166483951039555064718942929895550719923118883309486762451308299155316414148936124402542568829957846713363840335001949477731367914953603658388661930565420001668346508539715923447139362727266486606486810252063059911557444271042382689168375722944184768345207110109116145056101877432007372753064172696611912069155219257807887860452965429768758124833118731382930166976978350300036443837505044881971342426770534656150602744953246644822838903375436546009103852505092816817075798294399005992697886460582259109657053768763821583296465288279705435037817252925213969033443456027628343935599003149982049472599915834867645867988439148465897366558591510909463859138371194729336842114941036126354333157326616254957889266133235757043183525631415045717554265664416303547577448558538623633901328592734511432014998299250205990880637629838378024972082025263082832210837893996944107847240175712845840226606621754438899029989114300923174401109339293712616107855576551590785335282390899508047721695417401747955494902587519107798272186178249569616563228906275614518717216326711618222422930254151551936939299903571857028306170179342058212925914804728926042374818757257771539481564176625928489184703707471137272717581301598975129557711584926311712933317332534495674055216332768737853786302607591299951538903442769122452594207645537081193431848473031898428108092010152097595865796936808685530942225691777257147783985530146484317231901453995683517039608427409866613930671508088275060525249011662029948676132527606667835438224608886441733975377676328925842527700182100178414932378173111934622935314192463695458482924736870033678452151792688205318388186730116895782269589190075258418442652997809735597546222008220984196095010771730364743418061037650159470030328247387096849024817200426834731687744699084617384778200280818695293789975723091303017304483405397317403878555154525995611620791005833042119341533662114500135315014540722134996113203732181914750179472728601797966199733988353495466406787098976081742534465329303702887352904233776300690573309780316358225318326510214481676388094449097549095955865616213139348511507062101895932895529788224414654093401109532657941698036538805136740183038838273495022685211527614951977781501827900491348756348952488635778065448579164527274515844530272872089702441799303346433738557574728093290767295258562089865840014093608756501828784426498814615808357323559643724616514848385352280738167428581354972891141570751205912216414460767422509480774731124886753588720607211035214946854411892226301202009403535855710652717078452497489794343247580132267365642852187745300841249916644587426810739540244575896479135931502890136024357283370327462532528828278066746477579297452457957814959236736197274998357682708081217216351373745643879441917358838636911752799365167204775782820817805940086393049476685119607955527717411785591790147425662914680319402806202364146768669127048240227388134658840178772005535682496815269617058488759604497177592989475917822203575854598198049867765394948846909511673089872825671910541858922847719512235396630275647935044492616580659975524485503363268101524174857541475945189279232757263269553474384498096159082345316424803920600747403785794243824042096771451085800737878847508164311780257881566292525022114509484861405185817754535751224846026697920767003946580889858483118873736034710017664930271766595321384535096626824793084979631609277739308033119157682848468251729154374794107988775691233330524847766396847299657153229429744352470268469393585368004932145115582639364841761709186907592715081238457990951914985375530806674171467085206084137039004722449308129577537641585310076961968952502874242761524549771638429816807119975545495083149612580411035570200027042985836076800978213207087564634759427240077775250113671524902585019757466509072338338897347543095288024759586113067927871551287256243512828303491728587543283442178035573819274169319593292718389537395797314810886657612335069196184142231946837004260742360004974735373329320516463652043763820842528568500028727934418288393379445734114713392495673162031839091844602921918564761576365344813549716758587687019862621147521408730196712054141210650035032450009845163555038617389643959330783566704108091165869560492913372946105824464522628500268348639607775717912738605470154206335926828927578323971641277812378798186966924361410756372679976730574829263101479320885490695041906437120685122586085214050651035696546778005277783483877961418737520192463074984259761324607282688502755004679205604713107693119553146502056909629930927596850677372640812446140381840432967458116050370038223988331921152902133003626131845097754439460429543037217438414678376108591987863958927315363502638020802884138363694606832369018515734661655427133876511447663879030378949644646026654409203858566367839418396948054202981963097868119722545518062514817719806368017335400518599119212676426249373295147525488766269716148609494780993653115987762349133253803812047117872220610814125470472808783239758242312260721171374602451369089960171200343006085245402663359014537970780062853810743863089415142106212340512166380231011657482366867429362635683419131265757296800534462969732931731061371045522433093800295866067063823335730120089388690001000577317176389195249818889490960844486433151803913079002905361111712136896809676750721393886685420780866584794910689636753760169794683956021861812506185787267304451069054240290819173800890011729596941060897775379932048380010802724119997229636758548274514518283800551087695076693414081962540378223789859362714262207568677223476079424603245420679306947494876894019227628550450341906704443337865616938000307784385943714274883530513168819630083127493515273673568967653578041132049085004753209867989078585627380913611836760659046004441768713575037643487623252290747544071079393599292944798426015875561765045382499231157343231307466531161159035955372694966302588355228245102616941659948361916989133106880814155617542824948393796353716527810918682612333507134346527258616816762543483404690726716060532005926902698696581167022951790929274121285106193975275853422963422169228605997934426512373560704893477109361636953413227412821958391425844340148386633727154941366121433261945525741766280111766111593633555806100136181764935243899514245783515796376494581846188260915197753555237549449857988238891427129532430167507412524331007830494804324038933292622743028375826154533168104771787454650384745465603223269000688489969500609928006712390042292715799060739265358800960168969278673174948840284171490225950910905634049990524409908666753011121110266723841304146106163589383566943298115617887012131885145127529463685936886346927719002274580888168484655379664282358355303007043417240505976647779898629885408672126073833117315968705611415116423700012032823328512643226010851803750616921227715531970436079851482938479455696817107941143579110893041528291752570377362207907294256895894274101050457925538794015463517875605900152430148746978724683433025791790841312456067273176243081040242050698523145073422581509579674965026975668085412229172409796685037833522637705129503763005075186862785321859248396143478861200847708401647873855597602421409018471242635469239768689997879751996162025193225784809009798741166457317828413283039599404846720518065412397665973772115966069905757659787611118828340682900844729007918672091965826019788240123447295486522679859112149531810485452440496420553896784358250558553492731564850374464307065744113171120438095740087907125859852000641755805618887744010240863440115139251849137239250724549396652229403056354330676725589986817152743768651424315689056356613047438349692553120123249697195136475235536786368541595729577305093934686379292874380237462794246532316585373712428510268196925853116786242576197910246708335437155105232203525370037628384836988561086928181188670573883374772959079780547957500055429166185121134024274350470499786187696939898039424706763559202481064224216709278479676772988235395112449566987850281948554956855568508769093949616106685768835197703037516902438686539671919399925267565748544405257301702530821928909576944979974072098017622794928632522738605350254489209786932783148792600763522180212282004749218434881135635993629195822616500140222036143069912526967490471054213207511949898048816848335855790511827559397241117327245213841997021953251356854819495901724431059474904804964275370015107363974147122461907488447432569331816085964265149300644272810180088276017563239049836962002986245371436570787638274444034344367383944548531420348222896589636885337757538389518122092474389181320714116692526190360146790805674340994820463960198680602711175807248033462202851651750901709553185124800533856822233809676114059530020710827302917246052597858531992802912690752041633443700564798683343126528826401125928410365408660913847496279593550559161949532520387281511029562793527426078188962103700298814886213169750618345032418873148000577524255611048823772966871544409941216929563196129347964831915571996551675167780627483405455478172022390074766590084914917332614639672676498277315662771373963607561216478526252508164833276172037625821027777401000167535877351632476203465197146611580242716760184047549148505574572574896732861432234809591870545577591608689051001038733960277174064180494331551143760946966403574939921533537190510864650786073449926608882260632300250091990844344911933524677533735161866991834126736693539102912761004526780296092778942760341649890312000450943591981046188814151303452517743465297061452261375547501531878358768453757642282704883675137432538208715624602064938212574186750039831260744248429448458182473096227614676969876638161980705678610669882360847984688361496161161615256353981779570060882646260357020900859603662030859575542064282996134449178047639226948574454054280373377571780395856565186720074975311152163173838935531093264274473103898236957709040539304907276138345630348928562834044455113188095766856517472526570994538252008361153688051334474194267250521687595591793143891933339836779166249386332356524385043310942736411047481630333709264944032182231439951571019037574173086157002013126785555922500014260201525971513983835969307085782621649219366556639883809183194058785911075371677337890117779924980414001613120460672766552135426677541248178610650003421066621877376048538169894207404351771950801632256977129324228162704888761529721163811828889714118445478518137611416213293011674773373010750848439538261640444424293675239019671155109380450023240649237556621615356581660921333382294072336441385040748581041548149120931390613649031510124986940043446978292842301834765581545032967501826071959997361073132088201965518059929268705141478117657660306616967224627624970958894629665593524407550696979367537338004116229616577563130888036603442193921412835938364130757554154977564507833208301331394557119230139648466505612159858255879408803280245286031446883957139386039743506226907349461351560983859821571867214922591576524501154131981501632543362207459945019228073013371088940473846088958505976881999744686684680157308946804273299336639592732168755150137965662996776872105234145208800011068728810486895091407229178393854576198734821217840147782848849525537760531818160870434869120359160192819644233036560246463707349268096545413042980810889483322697526090868451727842613326968838563176812928611042544406571598105927392311664079160053064131131634888655486418211484776355942956574856445154523457234818834478489623645409726379153475272047589865826982721897692448003926469865410140163903624613416215155258815574341939864531464933622287466833814954122708576879393793795279846085486114319368454568312678391383666798022817568474944742909729075053862080328895044114520198378003013206050987060493228164603196150594697186415202390630781186548029659448721032624496166823938379396792288686881404225046095766258095835979459067016548812865390735898684602300035840239661996017838315012429842884405061606121856316066682142924593716470171560303834118832359774958659197993055439006856107629058727237063955595782660261437239261380985748339596392864751991478114835911839491014775265396726105869687733427691106432339262658599690667154008851275881219260616934837675652918618295208107370084098915516917160538899121681723831265592578368967751509942582663032653051218835425607755792796431475621056499613190116556661121675768218391530149529485845905976151338698954818402198058104548836258031222794781009334175784019942852710787902321822680640694191195433697308406347152928762908384474642404011068727168396934058348292190673708731365296779197300456458384159755735499752514279536484673639011252967418853427885220599048041240742533764155472056199368883508356870683717317350132076471232093361182900017915620040124075507427124017425087158181612855616341574029144006492949309932525159861166269078682874798825313280744806696751411610400852628636719824923979256357839939114092019669989775450534121543669602564355690984908641923283666816776837941629032629744613670482283552795444119237837209272878490822586730381363758071562768503845941112371042062161049544344850809913750297148689967949953652904525988563152411031202301712177762766442111103618500743574486228484759962917611524520795068256814935582168117919336727173930576489105708755599219590620112957870809322727527927298367008902128897956099307850047843512588260647328939949515863223877898238184007043524384617354947603458041152318228234662372196209615632747436741371035841618232047308941672805286851698962021787697028949456828645905507672674160340611878740271284700082070864119343367590600559418663651812758985942173720058215997663098604528710678390931114882728579936151815998873416144170456551678774191127955128220062350353218924746255460081550600251874011217303171094409341160097148054382541344577312074370947410850464682221385922919680315587894479753189940248104754921451613231189646588156968790927782246527785370438905665351241394728676533356429535732499909174430693285616608450782474905701683510565166086625178678312057892941978032427687567104452453465670149427303282932740830353653050813795997231482556429283112122029887124184280705519398424771165625158988005658652574210086646460728286147157702727201929035506750981474670034548624671767953257060385972023773723118925006172534428360990643875112476650287836570011793037019873551621803414328901894477245071061660297560028953907808975497882975938254061918192221182749411228111911448321444552495032769691239727197417102992761418614529775787972002062145507029432529409698190779510940394838142922334533413152534656602094772870769107337709796815859830381322650492040939456134678162162706455433976940508288048471399578844018033017526411029849398469968812672118137651181442211232049674159977828693929612902578791934305168221571599455105191326633576271348703041194632869537770229423777415265862273880497216334322977649078384300856327441152871739462007316176134475821480543588275943696040246207266152016338765430374584601020055254395929860621383106073585290518446280859588421330909659975669224587630578123966460099199267899000748020274729482623927779494018666680433896192225343769890717956488263330846997563935056973424751635096407707655418551816765929027576926981868400807393835847853793278691152525512094440729302710108540353676628973892101575352691678809127268458501873813659760067315808218368198079189732234336994128182350154090461798650074134178149183944728854416905132734215098330134020908753495042571883245912734445325315292548561220703517303814738416216720995265087756726628656928303103233291095556358432148478224105569423290029413280430874938089035030571051257270230753029229652970840896424827397559017853492116454511515054204228413760828538865292791786747926123418829714813509808267943968905018849597995812537265581470197439343166911397494675971248781767506858330053162320078185051026221340594136181683306334029908061026681833353434206219556316786900778877761987446357750321340497490511564882162672019266827333472997576001212122496002370419516395836952400931415096705879324040073550219443377309193634780324830134872597015399669523435639652642637758796728353007262717403631370363896473120701336532374652752409120861124896028257549957057276918272577355456526922842772923120806648206944770750802887068927803646355003967447739054341347246674393693079790125166988482498402102281126348559659745494245965946812465216095926793384265270176706198030693605636829384093567937207293688556050556358503334662793240082696185018653329642677600351633403369387630890909651997336405826192461758830390692316069623339879455703365568055154506551625468861960652768200205041736038454739882917268214247834242834350382103163583492450793758094412427857977888815462751366581886855804937981682509284732852794849361464578220815785232902721226480363969780478266861334013912252470855523044965235690204252776765133170359688768206979169785188709984869482464490421991138159408077013292546506928661683955487633484581034584418873876003282308263122628945875080240390997068274941190048425526334615231622816584705234871680432130327654515821556914170890171897486398760312389511808343296363475036505180231638258805892083222138852858924605385017023684146528284693141171356654510024120442780647934647895811531979874662671147733995653703244708700929617297577931061817130417096377333203458297920574795431386199994615537192926466223312505619085464447880149967759497403602130932891384097461246159161379365435269837439404777613353103415299100729626183166718195881827952686075581979445125216086831397051145257784852360136902378111034757000349302227962100035950896306381420493629400275940303080578778945166419131082510002505150842816607340674020684454584719959841572715679777910404689137320900148216447467033917932209126414414716915601222323093253016156790734419200167911274330796669955258662504380073679632055067151669605805936388291155831316031916468755569588087619583808970814618459000918504249204940575957821721272349128246489880427842461006877296438418327536623905376069483419972205580606907998246587344820697084921596892165006298685672147236533585679707557195925929798608991193011138091517686676421531119403070861914462607974565095941682737545513463957225044731752934213616682483825462891976882765061285482879759044437772833505936587103239269782006854131722038126133903863115646310453625977089281070816302100274916399882808403726657402427868228200550755170909995331299852223108943724155140136517769941140615933702142915063698586312330938252250502421276985271241818291361053178482393932710924375524418979261879232752018312396768270827023717199608003921370712803121148733740935056660967919189867072973389911090658462198153383172193309484777298456680312126525537560863049408848293774656967491302398063207554505661596914407043257117333444992877708583493275527110923544662433554195910752798732751025249331757098794363029095665751991134297018259651479885940207688076882228168546779402295414194716901342792079738046881873072059120910328843475593586168552281850373015776744850369707177203315806249807570238982736697568945168445091144531763268384459899999231598050768660627024661629780984266878178442984206687458619012801420085789798232725668068389422274163273154400621986210070030954319876573042782487030689012062327450910522089981606016626030698000206444382500187738477913617350126103335003630519534178222252415820675237247843517829769952941297427262054209329361670455400577475417022198702274412636511503772476326036442574877723243968042825640546809800711393651817558006380465905682740276503392089705708128875116073129879318331497001505946175163317784073650140608102310026452075634450772912777094668034468641711455210082239187289815352252872895680798369848108259239762623970408913847768740800346286577985533010063761301734709803956402406552693027930695778644091860472722370853801201393789934377068536765241147274423093635788491195380754077961450845577066959250247879634382518475716014104820929589801896428651566050401115108618252782205585229269035875346246493292314744988189426531117191600303097497273325333576289486703105575356000422952371505906324098402158202313948492623139909234033904997077601425947942468761941592763869799482882829084400764057990353983185254534693065667935271279895869627045983864973941782945435056250053494301613990393466204803013580637749781768706406154484406952255323615790951715950805950721437720555429338198964060866553165437165338091721157640688474945206052226917242096656015335097745649561839636152245654989149417126302549004960060768188146917181519228838105152590199962902127772645855252908657851391519306872762545802221376554206644993301204674636058399440604131882248815595754274619780161824972067728884254756617782493417413808965227161548907262381433228163174252708756507227805444503831312362362196561065170366541404835203490090117265788583289782240066018611547070323761646101282949957370609530880002106113744111738074706010225982686673332797795028056623673158277179121276836231541355831812376138789760948901103958364140839684250959318227478501433690563219513008912277386708818812248127831273407808137241001127029887208286626797004299270988499635925955663836452143481240102916232472086997821205923927879541866234900771793225025048619897011321798416027410890671068954564455493733441901536394543044554768875555269711989495565577833003136686894788842973281519032652352565122832343305198978947807405225919742744139489716913940201161802363019097122203893026396375081995402531914499318273066046959854015338312580966617818214806670754255659543437920240685044205068502174055973382661508738721502285530165182971935427264482294981632944218830242509840765748351613539772608363087030337403414062463390309286732410524854299543522341724308628670700106499573715656291886217577350638436246780120289619428269841047814043244455655957225656094851541639632440112287355006365898334110978984778313569943861274335916391630215718488867552484967749824272527031077481428503677672799924372605446923234053320045248655932820827505357409129717572914516440404974585182782650704691226118793879011762434948045223320409290573522252333951277821189402950181830212813853819282650376766881926219464703474885900591410187178501389088428011561643199783098699336922927482353101443610285431157773723053146632242423220084764924873078080185461149026759881516396739696057238273558950028712535296079278888305421719671866607879268562630922106777760740068303199320926207982327805252733454960599077062792270887543802094212021557872439351445081380565250664862167806414222686916741522523261813891704320803831860434963154384115261769461672403668921788870200140577817403640083945251382573428114823392503378936217430157545367406794806775955944839206823717451739182428460544400239610326965500473120168039054765630213514991960903246394963053314417184462977426654313213888742690717873174033375843921094905553914645217247059582475974871982922705532357441551923127321308087061359029244432434850955752072521629075072059299888193669314115626459741231482076938114343518339655771626949324353618793140123880321803203744872894964651753733864788405026146116786199817218074433295744941202398742147128940817780490017418305780329067852887679200946235196488053346182327708267896823331215153704514251052069163637154605994723514383092797747975904467296306457798064142174146442459321151871447069487044177912519052960990328770918097603905683073737067358214452711136599521619181750785029296306247973584935495923476863316716599111642272320370092283291335316440499644093030011774505678852715359539693761678778059394377726707722454248375666822395142044529926008583723587172288668611409410028976390526754644066571802818041501120761465311422843441440624328415557427612653103198723876772408740048447415393107514502726630358763597172426634086773632903034219340521838586205257632968696245951304074069912817687015689590290102738441000902447931946539696136154316678591045973604179483129904087933569077849340067979469924325933173203845612020115374982492410515520412057479275883329615868781230882677700676549552535904068647992608836663603965503877815057929915965778599254443229918278626282906299505500111089947332720652243888918695126417291533662731008858717441544218393563208110655891509233753737865636225154836931088026991774213552076284353546754413723271953943676821036815227390812283937980761866918429247988906522027486208401303439966229722291704829914157803806016573341262258848031111823171342685267044923385724186466728602754109355974067142509172799104313626556148095968904456754453960868378063452149792829292332596681700380833613814617553713403439773586831045622626189395650642146051971977295171416953623607972133551713558121391285274051642076135008363101942357189988763806073099249868638497627997911217779094109656498804522552801769465514515638366543335926280917635103016998619075038237655405971335064877509955463154383542799242404028235428635650219478667792693473681664523600228891326977704097670100260658980430697770599673838505248770728563395756176262942790287649885055543185788376300828700530224920591322838015171429020365434768733184440928238776613710334670524397501980632662884749280033142974315198930252240588513876814952528911510355661684894049127497914816555071714167442059839487740134754571486250256922469565423568303545705315334338440320722696742224397784150179847816819079727836395499116222378767268312574019275966517469426725252650589934972662604928467872871035309169701975320391456801462341413780631553858662756342264560064623405793110259103061696791124934387290366054202360381180341773336750771748977266638398653260428123619561528826366114260446044244497344523177169300107917903973142675911615844123776424365772973526171934005796329566145083833439229378576157008308875523338358915367895462327035723041889094680984235874934772077142453753527438378129990207769354971109108542861397594655897179246337588051269284409545170389962989590670012807998644241476634367652556410579696779998071216186753645345942818986299462757427108831548851566938213479201651444771604942779940286839989454469501735960467989662899797884443816915648338037648511590762188295720369770128999916175228304926246442034911289037901497927406232794592256114935155879059099793872375090344447196682390671457447338769266012315834238117115074642909337112016587580363562462822752106035901409562587890992429615464965482831843340910011242446223854185553163037987604406404056708616281397597272189834450685132791342686801759289076717178417172110165710560667310987194447080916862113550494212923817984920461297588276722990634933682498622255547342005393553204914222076736304013835221928206300231210231412423506257216241728807544493379592817039887469102472568405194023017171372672371703214606857353989427826400019912864951523135463338541349441282030935517031217388669364696188574296040651944602138581039758467106109915145524920976697994695790397172942385096295095377360763581271715600005455230794671459737958831449056152299318653062992909423420937398704640172199070155394220094378336769712566914137688072647449968517220779307509499268135630615403846053096543769114443555624963076660291501898131257540622468930430743689780867342504850070383629525153825011366493020924035845184021877870046692477982973724995368021119643299156782275609599186234661704877850164443965999425497350173254476074465515660629937309937420633815338661548413451988927735595543253492641635347879076671683391138287787471567731022253814061184511028986383035156568583621674723484759246029475688963670747387212929862576601777341489634172356849817823798636637836550812204751067706543569350867201041023107309166261956232350252697551491944000696360752143480148161685429371141329117637712683107144775891340370286975086720398165853607385149878295315341941765302306238228504028194857140783526525405176755053890530850300144922424184052379402247225731082161616917835648619921784154729869932919555453731259318559796729095083859512544215440331401869259887442547595990217458403848098425463264984945603471354227625533922604361787217735578191061793335162774606891431643367769885080901909194412758050026939437646349948877987187362842554569823802161605390581364081116800531604506994862174667425847363173345205765985339115332013531001265295200665243325663767519008179540483196431476020832826875724779054072003942450989427196880397258907680616408228065282275861262200572756147055373155179567034712813981062135562029850776756541939736889552968317733650174643667293477293279038880884957120753621535748716827705060565668660922287658964382263331223337233123180118915131073007847457229136288530551358919364025274308969335159739834919950731144926384327696194025897021939652922726037391826522616698750460311078214552672630097613594423136116198142268096473929058003302744963916758294211993975428244530590639573205889282111785512424571398223863064748259480269165483934094284852413512876178409807645539465650456031841265193710160850734100413607787345499729456417575250830796996852943491681535234478413677766520471102652113957614159169521004880807241284353797179791601356323446592269954395655887734224899755885928560384740403051181221549438901512847583355552006214109454206241707779843564973773652712807876707380496572638212458429530619102885799051933661826547042642212587115370461987045825343386517355665879168869607640576566891731835837483124362006232051894053691466522827832459746169130887353386793606192547753594798797603799247855740050935023086623189300254159108255905154043660379765179763555368400223882935620295466570234343347320338598310452888114561425808844857987802086786796472277290113810852084838846846881049521005481223744955625767540495548286812664956673122563968027785778317903114804007401637888934637563371103728469794959964419854577876389843956595566273614422591892419604247505278645334061984034836557753854400667172963443334012044611001536151568347830944901249482601907531861466608231907201019307517172766708244611248208067379409715794165079906414011941008498624010544253100531304261255613051171726028284696695747525934595611389455967144602646521496867598100787596863633991776080767495416459400027426156338723535970509700295076299958957380986395421182903815423160040302805308567800377038643635622817424642405892928910301258690934253922389617503028202273550794110612255231599150776234622822699994498265056829475022549248376033810034384051051074499290463689679993324924228909094824025573397344375851954363723539213179275883272543989263011472815785104115066863997299411530303828833458246461084288455276615482974436975268478876655984093028407024286221585722920357355429304243508889340403705212106487746284676029817230464855024353478722861978922445882628921471809723188275951569446647320331670593341992686086286678658385671234796251268798905744043678965287635449493854388395657844258224717798517918438871110611553453785546597333445265438175198942394435155493173989703095497148689609284398319689084183441974247213052566510581505819199858195500367881387800594796938262598344837353877196425492087178873493990628617294714327287736643030036615267456478636332463638501057751134894035688749183822695505943307006789789086656356442670697411063272719705131462079460936023783073685724006165110497318030580010882938504823040884436582835016988747564054011618863463421609646240230969813055551736283509632366947182234484822455259997758055841339998959187941998636484703750130610473732335727293633269687667531166154089106717426027852292760436300595460030966550275395785257637546000880375850252096287997631041871945481190889815290367070055489892826163580698616341476394118628702919529502125635020783052416266694011582145133057183196817520335630707789198534283172215541480261139058803462935232810785577976533712929612985560094856984117697543899130897144500332257784130893482426945802678703395620101825961703467186207011756477473673210534486335974584081320327781069525311096593290324299713097670081894152658402596252486538891214831720921338076242540579063706952518111369675133069992748631320481029587441114713911491127389465057332141735205834251264551839768801729741433346239287032930860571385928873269113289115682561656014227629623198189529657995931952037919543700742785546555743920164054543599021465264901760565631382916684563739248545166752256333232369140583858601580865147843147837088194633824799789037259017869837235137788404210438645788370394014040646017497787830977781428071869736604446524096274838981964224049088221685320561521629540733945418848736665702957051663968286592416880368922982929652694336070657493306918569977411300602375557273659263716259140263352047308383723285942461976770348296120896164963045603839602740706686509813546220983092011276819565081618315892989395975667626088064693246125290174075729818301880216364510202065699853111593729476431285051317764905286935035372281189546155952784933045561378704418397462155407291135220894452213573165553427681781880381129624857779064871395282569137422763745834062631311900982447656032957129567069369164131921888647875347448501082267561356837530641234434487556054767921408093132294648173310715024050042193711895949644617095635908097451300043049977901975041117315050921808827275159107712158399935902198397605456413072822616191230302828866322064177110731194505693245953441219851455712660494687754979263274290850190605306463369293914332111601557598203919380030842009717186152885904609661362613096369424916850320420239627934806512388533075693618873815225721574437988120084772837045058182468101378234257949910303635020804148126192304105512561493548237555342728357891411449255745467556848584698614452750526086751826138293887263431196677468687630685081040603944048452550896806907336412515512744084000708843780071607093806702965762128544833992770083713109238455303889151189868053891022133218829196017569268699858330400188222014999792375107968752985102287567974670887503131980360073794267740531839307737172471242859830787179233664655954656678199506727591208105183751009046448126625868412067881225579783530170926412177752488544512180900668083863273393777676243896469676468479010218816002847200821470320695891367548837851993206000636972741446391998703485891184092316200568484773251083156358674342600597969409644234912271819193072667219462970507704494283927296989012902581667829972537944840690799709474332453601914015411424440093182730586837161693137836002220281569302092472575023847729914739111513749343280977347581131641812235949853243545550521312859236453736220043216246166620328875329923555009879912532860622949318885559589398958775686673816476342154869017380901284670996098882733638671181740514771038757413722117731266348351859665134626844673658310557846756993445867669383066829541496200700151093467753037958599236342520354042986709614816558518274964287959577148836886898520201769030745881007098262008848252416222627928695210803032359749534599633865499636214102492625160662121360688193645924321267504620341796740709711617606207040807749451345417289009838241717655487819522434102772028961394078212927495514870239700419731625346249571044194287044433305974936232438631096209142212515410229485916396016092699304571027255294715783089279743320242188431733046465902884096095389996568612859330022980442572731283030024095576392306835752416243917175502668293820143524318057324418279933800840662099213498950248458795919645243195069367832128066868986337226521206096575487482657400480724831873836166184190078213936646660769854876727644981136971410352264103257128727891343893214772389303030205354465613223705629063857525310306044916428333879952768934500020182787229649143216757851728359037485133835776047320045682888435075410502198451975596650031605731912929294784652452016121509496345245519519228634342567175280414706728780950208956936007698014949147381432221261732842026465173996406543917225028901684703944563840414370982532746162075461305161962992664053643423407814498272783050711457566573108786776748473816525075729509356736230452443359248398637164404547096677297165047428371374841323064911778504676751936436337007407110806979243573212122840835012300381650353496286662435979091305343905240591464065920364771809943103697247516289518893318573368513536906336268117712758087267756513642447916478905980077592434906151270127529707884690161703533340722523013570867313803269092142162828510312344365642317866346740136348039432198353431693004559849853211845548807376916059001593997121421315992401009256427558520685410899675576106282852881655269750114109441629650344192615051228146325427436164921268515956221338884035972047671357383927116212927488456070046305567286147380812321267338161895741753918381210590908704120535301047888864423824725515063538586830479299579186322971660101953228544695350351896259273403804512284412657022412675758859875797854646446718435284501868948039961283876059074977233418763337168477987564255623701801521360911030165776853126726218852605077563377672915132866728264454669147022750350471183930711575021886624804997088872265788538881184174325575138515748471597790778136605952250527799704924553710473682935681294164647701669031892166796873229841216456248946930755653512022906484499623228023745967672604032773056591118055094120221748174525710290131672119473471297792093954117931471594578760822879242770998533008105828798042264189024099157095583180016186279358841964447562896847067358375328097817610241092624345170100339658592758295884018001762409633065373405343357260889538907428003865436505110627403357067753716648072634057383762702933537467480680854116942823934459045363969058170559221258495558358780042022447188657991908884047463721227174882142210018310679071123856112524535817973400219812759251217692453282804885062292942814859062886072854212046576962472572416824633965836090608422569845749491758929236625634849306448187349042824020553104019793920297151422318650893128273301927551173458342082997821882671709854879621310620889817364097024935867704328634543455454292397868801792062946084803944326418282078726886994263745427533443991273807634071899839995999245817856391536923691574069254481246200457531830966620053569346219953365331874433597159038161748340869190863756374044799262090855525204885318184562377217945592302712322460234334377021235503189058292437823896138280997272887772215200756702578864294540857012992434658950954288379564689926076456158885336294075513955039055685597792185620044519093499855258568843832227762306461212910509592957057914028149479267838374139712715733120806665531784954508161259084462936312439524036781070473957289923704816275819859797316196570655648338970175898039832224821966937620029290608910731049848788059312735941114744450752353310865078263324039988030930024610910557875917079186780445663794399564263570696980580998033584188446204669022348742437116890180948815852223706020600477034598898158397043951731073508910009604381506566554635098867204169399779658861756659993171919810241171128320745543805638095508912598475283903931858699495298543556165196390371229087036635273701251296573438702029402663779912469364956139310849758190935709393925237015828544223458950435628209211231963004590925571908978608163568252841111544522840607111630336166376044031081924445267169888510068707111820139767905310176305048470568742727515189824852016594745952942183695542476558175854531642181427285794423776082762589621551381852684260520922111781286967553359053804826287654614447668636324259797926071648827037403025863477211622960725636275192548269627753721331577994882938818846457739074113445876860543247001354417958699954873335052159905358944691821274057308676174342644881285775391062741169625421893448684073414346686327714083107900707806249659060555394955671100848107021883711341330664199611678623699237648129823870368366909262268713555640097451012287850348104862353968637764935227178699071114707240666805543864161064346067929721342309091526877718455699879426815296429741476925492807642183307959059530313394336236857393492023936662694642055569035059666217291504799496055985873302604759947743878446199716967482269312837074368265940076072328801295025148366267020617629292309818971878365148603120527948058059559837396900098487514327310260489881007871338680001721486742116424230872625309477887234155245818137622357838415979873074780681421533827419853564237609130470194156422224411585386648707526883075302578561504302987100407598535766145947145916249289904122496606473002210324109015083613874487208815889928965062213208720247396306396540169971074673974922560963468106953529882514460080301177673615126522739937601266172681473928580775507768471570878916786937894171561413157249132470606731724165741206113038674847166731567245292444954323710582636485167700767909023214415188196241757208932730324002052720449578872673076449955631800712272582032715656956177129379646733938804150789396854022906843764246333664604926429139404444648830277084504733670420975378232853055230787416753134955796621924982488042125820887396825094814591537447586908896454521238527984810990794581700312821771165007153883500274849127379287918708997263377368839394592011049438760083598965034365557379720587534423455430542756234095461704531718008444399903990934902992419228909264418421782880295064796430683631001083225636889412087744861805534986003633101075169106297331711554278034516443423157436598354917991484857409317773134462827076323422333058478720923691259983692744817176306954622917236250086320625460067175342805118088439077730036567103129545726895156126672172199212834265816737431753825908030856682387398846602149485283387719842400752220675531850432568277886344767277654835095744023892599916664000248547619339925877771776128413179231200280507209873171400893432844972030099238945012449774220042786574823966240315666233900385405317268804254440572642227397966339540613087962246091272463757103358503554328848034781494720633875867388357913927421915087911199219001517337733896457340025736959986120389357290507111800628087355854788729670313165444941445044147957915004217618672963135757700652251670657218334747830208184555585212761570381712759090725586957168849560108932260477931259734519050260081088048081739175316337834757767679056134859939736504372227876662088200363852711088221006150019801535635684725298936538765988664840705459160311626447594207183895733182384295088547676379267335629611986371262547249392993444902493820344528670411108447783827941100194087044020154344994168781909842857431277526522097017694225150098827335422445555905877680165165035370772545801142078430246288748036313564207941594024320642812274121211784396049011817272830736040827008610281630889721024337879815500066205990026489032515319729131707517459273493765135615630068444959107233865012453758868283175250555627518847577964675723168894715281483944320169504542106442514095387171126516745840843323438370072756382682275457044260915509739603814355108508803545690613528176355074880125211393450870037117281520629697445730690808042417894322888560859282417109276740245449878027235360949584152776469737283943960079945584622855530026909829239341965055006858281593262690036812033519332439550104273064036139065099073092375854830853317980220351674232047963831428219120649330675893619379648920360874553202290526579132236601357753970159484989180491372869247540188226200344245526109491298892950082708001536059480351743894478684162911745882383641598962396580055307336668957595664272196033320793788271069687414059483238332462392940857958483905026709363383471859877900259664007462198514713903882369827855196535161266259831912591881261268799063933604849166906886898010328403222408619601419009016075444391941758612343692034754188802170530494855892604395554717818463581816210986844203098220372717954887127428151877064242410518927153449078366793358630351312145835484188434602661619674342756879323229059202175387375138191028674797744452904023342763870962699697609450347064984259376956479984214163862696331448689539709092312982119834657112518183105048256960846630413705272208639379395136164196133469174430786731337723701001423080508666736228996360780419972456130891588115769430518743521050119392535855561061268284787766228682257234912600404780150602615494924296929456040042781209489506324556694822727485482896943144365971000372895835007701674222345986828514047018228733611926604862127254953956892635124962729861714408152673363401831513090068297483715221822967170587390094666626679481679829245540128223874203967902384138824450385001043561536624573318329269190276375107780266739271156342096152911952379596200883460535907671360244016056244247691202142061279959726732598486924492187639334317788307001208210126903758239862272164692540355475847255065157533563666286976806261578228219145494187964179401009151438905007875085784695628509903639035947912235420155374398475633078087109341692541181937979442226500918850247307006459016233953365678336664625519644567214958043762305166887975872474759872872205461405292509368027063647828411457334679099535929812843323100285021332122445024486967466958294712308412998497281904367597598944281862626504800031631448419090944250010231728470161120051325214084540605841459623607761197676173521550252277158457620510350981382932984343605163215957542142426339782849614417184759043799738713903260232603774266465332927824763451658998908884829395243634315644396858575755192293997960653861521816683979043378483515032358539675710940481935964818737844734465756649206343266845475876064455782042071507565684277231281981467988074594399165325919053046332863144370277049471713606041656012797642321392646989350593211407807863843865967129162593886144252917896985984537915739816563534447035299963794146023224210312622406577355136813806374596342386537818109261232377141775651218035289800054781460491367236051879086578608585473845195150473793632475827596879339088974676291838764505634740216613682142208169695978393974245002914165622697631887965938396294754676362284275150023616765562720383383661152902270131672329137423456447985922491242810168646408428913952294848010281109774677508422669768495349737795396370004112936394569725217281762750100581088582557993497407429300341003823234252292177828947849920299623413446091224786966066266916794061421641198336092328043659105313516719539565634067852140913407447161472076245951367748875517466133070944519992695526472163262231321133737325999902767719934262599728456766785704439868183268476350076650000706417325091230441139292906694209538948269865596371358284131830347323131043711817305670147186811430210247831086369520454602156852164236975993186080301728856822495081791623656563220677980742698491351823152765342667940047556076229232412385757331631390706634824797699020196406777726618885487398883113950274563121733943184840200901604884734200677840185458941797759395070716285653285445239927345977162781071271125877915684282177137605927561816569268109957175679905960383509198517265929150448530366885109582923487886122181191434016179296882602078018904211344724447251958690312267076414737029053232130011837358770526070436326856635162990053836132438630017020776689432038208220416017258813656416765781115385355178967839847924711939539737486547363390308359722820731430218520318125639701724267758476547204535569529564403637796589259635877415289697495833467512000944755815559195493444195441986088525234180566937451319058145612392739447423340410754659818417043023114636372745656071238390017261326198525743578875130110111205163644255750972878746498269094128449729225244348277147693696566805979347177237569017703262167576219075306562550513618271355328254859116187207419131877967973315286513265777154471289308407218571435017720902254175268990956335872836134904086017937299817487232096550100870678443539790241471057114857543012665416410544345915785309011530921715678690826361763433468955499830839537251675494125206991293139182723477236215124969056395789760601085753163842703786638239687511912761413152244003460014670449917118507502921116378291581606066239206705330346482922291726078718880998663267871682847341900369080585738185507552248517789152406300238178649544931986879149340034929550289819608677223321731851594600932696443010409542005896144189978551980133972636737398648723907124745537195455050339710238976754905223148230197930055112778913464601326605783806738016037191834235019125340224856067507993820639099218892746183425794548385171922696205008940933443222683993626197639108254984759873734183741710368677396010022044876663702192460753949904050703176458308099255001838015021833351353050857886892592851929202679030899255413951834854956555848586746112023186384540809431745192870545122780171411133706320362850943852353426392885860634535889730417922108656393287765765579792549498759299416023302404144444272595242623788868520044412276495688476111101445812477628107550811692714036464407801147293114032099184947506846693321382430556893699947259810334557474499306230693639033209877375302820016055445521239548503973354700512009743882344457017325783964919729342600490429892046510146183446501280383544346359890954048089260417135676663936454858049271526450390437884963556005606504587010134223363410754174957806783861271798320368679955593979037115405477190076803356366996366650804099701601965550675601516810188361787251907648619427887836081938949621898992675849353931173221072969172103851592143173404061873013735970338151216229103682465426653857374787156721569145104716303067511428683969768424303303847248034117180353636284383805363335515476785156994642729010941456575254543754077453924333667922382662529546203402964456239371697599449237794540515262749792438955424119370105597653796412322879597205739784793377954882241003560714422005938648365219181868957106429036184715495480601432744196904703208915110020236673701916738841609785708448588526686178377254734268319015617127534218414300890246925290519175407991453183725511629787549461726333946472252753834305946358002409527699932170403556680784886328394135312047155046661132944099404830947668893270257149819612046524781828002794799593135032662429151114602568458442928572402908541173677161671307060246378931256678489589818162732298741945652254847470009841342091508936930682721996766103476884846935399770983951957656139452663436405554542812015551556292442194100718779343190939617660333260866398659406589224499540641176158236533390750875788205845771360564207781263762086919203615625883286865804267027388510317562407180194928719809841184746817739876818208936736358432873378751304812309212026861278011813317418547749249775753981418102482673447213145877172302369300093197384118331445671146313269443498809172667966494493830074137884362728926172502445926834918611564361947767395275513651357735890757735751251989979971139792214207480917103170172066770385603889052153883823124746792346223597296828322883910139616073849656382653427033099095618490335763614130475913409983882509773334044255492240041063965803806384857797126787721812444390890781926300427817977971688981227405856960978128074040336040025900036847522851987479435713221018906531001657374404472534116101455352012709837519912994926614122280320190037376976798978347652451776526120837846155515669870520778970715677551211463255882754026340344880553912315819669079212541808956280763967037127239594068901340135992077524235489779872992040981186613489977066844276854641271167804778463497591715567583664246251681314261251931036001701329852552599214954452863789376303631823917580422495202618287602301259149663870858619083218542167336794056940956829474761252392191429083542528097814849518121469124644593246785760067914957999316516605345857967778107140581736062523108030067506217349481226096565238852902991989640512752878092534818067048185314655693348590113783189023327350886406226540985713183607453681898857393304268618480306915824977718233876521548570469339950106425402053028598409936151659177598737571052797747985759139146023832978646272681979750876656282033490262394825596530353194246110547121456513206020815364182478759970512951054415364482122610574867731513846534590180196176954444251258016599221098570280630742847491365268450128375634147595510831683838411564557045753839505906676618825051789132080685440029062351814663606335311905149025182302193530837347774177512167118954593293383210050980473835516890914068480481816981166594469221272476072371861680955529293769175412997525886019764152614473680994533192432245917918699926983219162916588779025103136941719924520331100659137146068834769074792372403233682531794854537796878392974717016548347374490141167322009032821654490270701331050419667896445549276566940150358647301622480010332027094864678735629574762951078294328052554149031394752502004479704374743760954613588194748869113487333756938789395486859026160375016503377376734388725076691133680694229170113026191306265535539049873269928852070632448108130129649305339885887152194584397786705410250895580912984380528362965627395389164724943397132251132278579938153083063967978508382845412995502490618803691733705119815114283303495473029235015031398741944674365322420358128409993120823382670037351548873032234831378934715722213527488844490407603349374788694456038176249802517848679788559949451384740256312719344541926128019026130157926469945123605063357244090298423949320900593333848398193565233612289027450246654878758697450172526206428725135135176248301643687870241668179180538307696076596109610637034201865188316539942437435036459283238141708256489577799428351101345468845849411012957365602402621258583091839205536728401120268977392804351452448384415296284253617184940270092971902773629085728225014496594672630296183759712272491503490429722733998446535229721810349423835056608502236666097121593057415275465161885109787398755448049946143459203948267502092805593734980819883782264398555609795738614020069663222373344841346702786102905753143865012450875183767934831420026417887215136890848790060454708428733511714730651722738027367034156693408186204498300929378079667348737491924609003810971179818703020131803029052342522986794535953629191623074711934513600450674194402608238139767933657662186603635591974020179774972131589427330948664426709820536137251986172346901912390911335451549168248523630413644011214543867762400580721739456210382155997565557991485676108225775725099314658423455904217578576272352328434759387612633881551870065292154729560650745495040859184748754594287813086232806698603609350763155087551066293961907706258007771615305412888734658613453072888883944256106602444238552986986922589552296571159093248204223082597273548814232892399557052501699529590311046267917163748515935551392846525241121958030555980481550266158740568665015284035407086448721736617573561308244200887386577653714925734223647528481862562984806833012502744848653873995905429411170076631854271595343235453616300530755704673396444480300741038958071245593834054728878365699991618400379653370458588657977547645005052573174154218717644617878284106497135094477768166859398783734568469977864438177179818151603900047374147167038244394524115207167686036739300871679204120781652487311277933926008592176731770994387896566394545551710523479718696019808689762550937378974890082511692382983363261548245237430518306046362087115572017445067060139712490982061609171629645072076811355583558228128564913740445008884178684285769259207648770344845913181431300847241809367407774262984065886826467928811231166584699170582204807904572983752048387334819915143368774866660045428723412403126362141940507621796002132988245738965683035711885621573963076703257909223450633029674847451522449789701318392807868201237460015814566604552105154971559077497511029682084134868088333521703650534155812625241651175050393011607823563732108878381107126630741322508580177272312605426880633211855035781822233951089837000983584885876999811885971548721183587245170792856311377839521892221503066238701835644691060408612139516461312902603866739636244926435754407690565970763713052710447656615278641352896774576159272377651794321488941327009792007552828887543416932941842334413420804320686968243087903329255002424179609684412088279564753063475159598372708781898332225572581040710127528624816366555054278482348282152154401453131231925937618288759279646578620192346181459404537894503147064408711124943809424832974582216680753061131151090454234630683590920262084481153354988164712536638953440756578489563258577485882837227273790299444875398073160994135829577200770180812029350169421822591511257844417021873102125248751144122613864247743134916378816277873277130188653213719798114476122646334127375304901249011030749668734776401754560290164135203870707759334166792684242106410756826910916689580677804065756389517386429124214797473352030432527332760974120268676069072165624780838336189917325269213472866738663051988366869877913322994734544249128138513746581467959529457483416139813372273775787206032096513114929683689016971990165880760754722889121316786866054471878319127967844331354280621166209674161660024124156445606457345656349507186071139803277151537032531597310538742726756579334048653123753715063394300103661731909824685803320410064413394623722066316434572096864285262524079319785189861934948301942976064870863964923304729848382178167558116377324491491090864384254237988228229221779847053848371554855934059268001680272687564390479553144107920155029140709281119499415116032472511154309082467475764501623700485161080937320416875760026294162967370824677185579530427429561473466751178994007035460345584259317267244908025657822035173959486031365887307796594105795832357213579882468618217865547160586853814666924593720388641742670652941499365338667449662661318123190259059842485381071889665177481575715303759697773651316500503462316049162508296002919026169749016517720541334041154183184541818453540932072894076708373740158537889863147150224208028240942575953921597416370708430244194289265795452078883232829352708057694041521857105984601817024184050247252393133682531000460882280596128949376541938677745383500846477345845934019915211404548796837414173754582430901241742110698091798693668297359389126983468294626983459434790981836676489275301243577712626077934333104728711648675597641843053922214547334302813295388499132386306091628134208811653798817918320402074050548240914394996059379948577605908578267856121564538504037963666463882468461431346611954009189305651757530948396096073614378655772022448139734442867393778402569346129868016496258026092656339243460269931174460912413132093335553293421316904991122910293761807052040498010059300241609383493634037469027140844187593276881540190863038689986465007860820246566183308263179550525949329814030180747336052496600020604245306831087627527641367460770653221283552498337425371517919473593208517013544835404941389811493067259283056417727828239581180838494699770109699308614871284677666497182393041298218427781936351926797144172985952468068085821511193898755190327029501664186091499620657638505026533892073727622567161368651167282740845407971697169269875213493055632824267594003512404200242925145016526452944517500724861636807322585260663060446822141643600730040669203019957581851554597719300087369944992622666141621084866617425914187034122743348075427274135369559014648119628748753967223693814488002998770359199146022099030980821963748889723744942377034071014876441279384990007453290394594868678027680151365971481834374699120098260626136860070686598030227831779134963439789514988810860270383741251207761535921533595803112572218044372276374928465486040008477977121973571765177265979089177932943630541684678829455610476343267323423220749705348878101132365546116315480527728928927183442033467235972006996352386856260357008128827909531861397392336190851868934372966079646296506857672755287733028397650692780374798863409725849699601880083555272131815721579701180678083090620436983422794691952979114765645980954784202502544939981468850145895922740082907040128682588437903020245410049925773526228671362977205015174326281263467652724224357003145410440557499507405715667039941908101213109120118217394438197212306076144281674577184654279256384003024297761961824755457633533323351946963905284240357977813887104506531872775497482966769089823042721343592360714431941625805494578586811982674827354687452602985235679791648631861533744028784243930263698642014959893197050589082684942140121424101729596538562329889480661460230714721179485143529085762282770296334831575925826911561246280877301559736614534518771261150818125138724308958142173088367364368481645466470971778496544937087101764071235599115164216796665688506413803958242045473166709808422803262591541875608835275412285117327193936706857242870802055204256753661807513081850016885867814482720965782968445371950035605665140956593319997342135037562462963324682831079985174110973686061308560060671747983935468032915505595345263481880258628233983029087223854229067070118988933963265649743070440487234747290747587948719019322422028055525143105101233516295038963340118454776664836375824195940123537791590281048659870963117444494254250370170441110627298697599550594356501566372236127765740822789141763761597323012743229740508505351949736807487918538522181394653097094991982436313966232239296130325123966573299784987780930897587328753177194813928447133221447163073483230822269154813196992995744743017060833107693782037745517666360977677141263791793774850968556354911781773828862764424372150409546730872920378826796605203360959632360694528935276007016477312776287892840785686148615707076015214465225879455062476341622877054512815887480561813172775663580239804060663299486155014690902963952069157752164140061275706559404409261991707184423510067214076501264641136128558476357875445947297348324738454839664407265660000423652601050663800645471815554935943763633935193490929665622605413516660300622990246129828241362770465547844507041619118069637055866459935386393103858876790315967764811692872326133885803150310002723034633447352258068506335700445423344689746569030809592318435573239353631670797418812130364130404253548286394760354397526510532235025706107694856079345603374277877999079465220954445246167946777741913457927358914700782233612568902836433027478919828666282601949260431635062985775139707818615933244788240171462909537069959490533884749346921787528638876850304176012336264942157335222795360434179756186117818898532795295224724530583030285788372808226959253128937211401580417745175104490053242457934394733156714645167636240125888714250437987305256745280243307317041136037411959232743302659124164813713251346665990686838996907593141372749992335859989620738892575022292466739699535320429716957927031117330388026663209710843872033422763421316270535617607019987249720833844697499605261269368109950431295402922723892055786147914340798317468276777125530951501723605650485576547928434201730202530219671106083059571885696890070821964882312896359961479485701972265559124041708991788468541595519970860045153900222430702181902531233953722758597844889788465741249501496248924609045452082552273150605030296441553250759399186563245848668081286595334072844766218634290791335308053266272361335358401152745896498193639616191396550786115639261872887858408827652741557008891487668707662974408213167636456744719055452140394549057612494707942459789075527183365230552205817025279556465073306614552674471967970251877574038273994207479494909228808214117163703658080326351835568351755730096827348155703305994445285341818800476332032419780937075269394521449854842482578272146737365384112860932984284469042888736889937374464798932490932690730344639379938557717981616291987142437705228024234972379639642828787911550037218864229064119764474638948645688154862003504602251064512295395151809774645216102551559338179855032555626263349678680196698451247364145818146748740159283682464328034026683297350253137609114294202623083059212879866214529003842452976607538669452580419396204756447537569918238285710068722513590305620892639781510292483701872541500740647311931886454938356677044002912228940918399953447761882951909579614740670997565371330110329552395503135558043412716803117967988098472370769321108456815461952794009256850689795277297400901296603844688903865233343727385522565420880990975755682992588106053022466912881766447557397766537680358250331023989405300026818245415281534289340173187554495509681345200264073530801480763830559994324813756234754246544280083514795227975532936223085053674558966440629903794289683049648829358862390725676792035075106035026740847213793480732527363129621127724703999686644445439027665398922583817829216380159527946697268099300396318624802461099342966075841685462436554130448705446816096312915052231842327308632936301437228526384595513009136806579909812176226500441324315563332765354272286646365426014501774850610692815192022653835216815278165514243210187094370798160808363637644967491881313887643503611931407091187017186012360319549716371152082341217964789895099604697235190673502774267962234897183326499259998918253920851138692087482279110176659986396712728064643036033450426420269562278865869054992181431842721579434187286625592350430830841864815127374629209567990465860569397556184909750733799003408849205972945718322698126570153532161701154178041740498131299303630718044220509351120262675298951038345302660546508348906774510495429519280675239966843135819329673895324026338555596430164828943389451638316463548513397065859932706134813161257898910819460902888611591586682705639371572366833382301607855896193720330263096610923091036224586222341520658349154152164985657361697522338880427551429970482945758759601987512973197801828628979785625938860824573974895007524092231652169168600813551932738276914949931354931793549616299419550873305883772147182602541642663560399014331126293645855197566868505163378301232538260578002850163474529426398269250403935147092263488321377036577230831601678218727649457674614761997055674097924568728447268237752593916544881778562715520425717263270335333167999514024223884342321172885463744234343693306047503175754909936810567300779800125529579384703920602817026895516068395256333115517841944245446407446825310365665172227322897438640255589330180071810311876065288960782793347475486181715716639895384482793194370453749215926331569119487812627069724172876239821656175750783586138566442238239515855583497634172342334640082841387159775646487717615996138991045855550268690846207174713317928574161791759765263189843305733397189642680657655937960247141464226332290055652326930911416668389708154118334848796953729097956363820959973308383775652667561658517836191599525875444780363931421118475265247289572057947116296081764774940402237700426478019517779403941495310396122148699867667885688939847956779032477485130507012937350066457077985735033653749971080364545258115373583025245751162659227862784855229713515508543003093032395025135684226356749322673284437084356905429018119317865022045384555072303382154159362999356417926022637227832813966710753721849871187997368169111254876315245873789940400050199427647927254795281541615488226878485700862851630049860666558828352537040881855127995912859888577372156446311739030575254992075394439486565092799485872627703404860381585075891115945635758845154520688190451885873827302522536866654244825819973278614737199112722372362033543420721110330706603771688018450404711923350567082652221635824288478587689085963063780023800186713199455528296644475034100018241317436423917707106020198231474864454345411122992160210339219594454050803409684603533737844290184204814940097992367238122901914032100399957311080187958927801199093442282082419231989496900585548558259429057368772351965537776303697051865847221702388361936016958278773685103754717443859170510732278697179345453109437784397827612575994555388957115290307649873634973309703260810811380857076477936776278050811488665498444900203835555779088915149006274187731785839319214425728917780940583073915084386040961858126628441085546331645914223216082130648590543333754710310853366865594079179310948872189182957772795235780256030747683894300340273082945291597263480260789303329570222329663173868272301929902361687982940730461645378505626747715952703911166547059792884190271392276388330725789981708724039910342974610099797876612122734561432415657204063666385798899215168792859476990243429218706439278666807656009199896029593092073948275548687085972081922452993367280697386638943959651663834719137392921591701044481419183633174742675765041725170170365686734122468524536314198928163820948532182782020194136627187760159175130020404637308624452656416710331220825695364834131018647817326760109010171239430889313549450022510454095997117760658689310378683111208365304999346473755307185047316665783381109887088996440063077324955367079247620489706570034132991534798762518549005620213335833659434181004554622002495007433145508284149887976943147688440459869090600076634100168079789480004276473993470113981744217620286950350113288947587647660178159574769641905863387714182981637375758917088147885389717760688990835381811724328210812216000573146553631189351311976559056810509892229116769268102541654564159454563573575897270326091790475313476562667612286369822571553083911082281621941823935020534106567625187349271884398483651664436522367547301138310964912552076928604151044180213720346683521450822628150708597316034649016143406869695131002941033814907657120008317244546411594845666900380918153155857392617432801274368257264196363148759248133878786883640849796803836646391040883854349693398079177575511294719155731619901454398938164487595781019030559766590799923542825682979577266627359782742857692411470685285548174862049452624530263204607433409225694072355922448086028932497263158772248366934175662505132640835626531375972444364857594681392426828630427535503737308609023567250545089016385479977366017227814542368545839803623681241088119496091501401993950363216890360435091807814260663242716014308014483916120804514677886911782646572587461839178046381052001405627567639697536858818001988117437350013362214834974174835737699570720165817551130428826219309598109859936188129080417814656142770315460953779044245440253635086887508825531512328827332108329943315384280438146523102173663599090640799728751959128796084891798385514471075117076332826505720897811571922469880398754737497708377156292019152988176203157935164587218000799902318362566797933579161407106129007854071472651159031199074817821981888339765484000627190457990113627408395209296629885538176396873921227412749522377167056815474459847198354872737762606882362509956452326996261143575513563182328546438088175297215352016338557427255718845679068373950261202681119953739043337003269812512595494609754108995522571247244088906884645109300028865869171413694327586971705982313989424943237025215343358431078241473307357498292341411728725180388028466130847647181881952574214255254955711443579184316927676233983019916669313329171442664676265475823223771984875316107441154373329641042656641081783805134038075891660697250296569338660986833095764954111029592064692984818198660810014529106572203413207861668456171275744138286745890233147812142925631496644964344171842226757771578484832770075924503937958141744124235349828811076970010781402615607729752252837122588679206792803747938398541558021467908413513065892646832640648499578605621760175827099042524359263511587887188916575330537575059781041053830546322862300570596005348453477710080187781502855106318891207793032375864361618141997271153173252066740193088341244327417016837492520874268953166714242374532871931512870400863718203588508044878073737319867653037599115788504062223572156829865858415760742222600431704617476230856891254332792516972008521572042364804617169088427384080221759394498423381025272246846548207733438064655628112700905363852012399769726594873303956672685519331522119537737209202882673458649153541367947228257867501843746395895395611619636437960016340724821769861695327399735283068848223164815552698961769832493197234904515727381112670909728801873401681547412947361638770024158299172411818624701677581754559576451439049843624175894875379459671147212264326449722495805249981058686910811103468777550904948622822722359227442109508484257448883171231752798175700808598669132364123752333828219990592759177932837574030270329512020040215937956897447441572841246651609128381821304494071620369463618233375171657801131159016777084797358162258746122524317704784838894227769324393951403771284966273580961797724603452030648979755989177683880539745925585191023803107212875443290704487729157544824501154519204188270605359154485201411254302894008623742800422945989177133973691907110664479023255626096993680014484839071750694782334682902183800227175656817351464447103821171543600997445316929507480957846432293173153881694595940966544758531311638868614839364825433999739262089907548850372409948519777462159203752686735899990703047954195917497656431820200549009589451818055511457839107519330878299193400495223141771465739793817317626041159730380615573346970203232426883300798345329903039363182274547394461761374167276984924499419242458102439084569134091199539440399249207802158078196755099568052198081597835242573872744013598188219509196432960196368955839387407085505523735377765373950457125762997779238265368118098653369841028391791814049983433833317189129990804164807572606400537128886362832199353587551210105068307243425600743093713040924163681816755342319838823148925918316676717526257355857195339473132491896573804822217419870442076764120050612721032482175526020425451146444105714707549362336968463021681442190530213036901263494901618351786539474714864037702257073044908804698313549728203926790680497651431182717739938034771047856837067720136696071759912694675951911561788514982578045418130289107605014655462207177004682498880743429481293622234142619827937300243530097837541757253783521126622849572818489092340243446033796004064409472911277632748683432128151858015291848000801752525636485509207767224097652580876796430461563420225835346167058056823418614903009099520019067308378100477173309844146149236272526236004201991648263830554537139703739318153547376994745905220706801154884187410042919874181450148354967053125710349351972099582312496799494481287186165995147705021188476713388552510406984861367420571563653092495692994327071479515671149763794835021877635580126442620741912681312597249556592381997209894776330789990635216325895646587824536391952298125862270602367262102071042142243896961897577947193809230824297755247156246398092077943966451647317544671986169726447415416293406626885772847026521028757035930857663388290694170699484407616427045149505980130415285701890764795054969576101893662394665789857375468264272944841675889124591151949621054080907250827233222603601919369717724976819792320393021262719972079307165258541132076625841763928878951005859418361246987252980623706017028548171526914072043850327465479890324060229605192269377872922747387963235256236608597136480358888537408520692061745284701591935108794466535026304766290862445519686267910346386270833188848146670767847511624898532964565237416290044502568198804782483062518780735127157839636721418439938633558896903348626164965736153315093868087446886774489739322955753109804216604137535740067896432118657963182477601274947452318872137159029653312317184526624690417919913473669683709853852368946325359192266609976008783032481949235872559813746136552134420858016990550899397553542050626001956644583646982156330558203759490242253149848852285935307765701600290983772145660502816590121620174250988282908115758783906900830262760129350440338162037086039613456640142612336647211403884530786298711295127323457830480556949017460311157227787224667604696730443811347559773087117972756589956588527599837781694963767685801480745342139702756905417537564843264153398313539587114868851554011754215034672567369814688975408192722906761169250300510895572623196618236102200514421450669094833222030098911851854045115009189139306634708824007999782106887614849642985415462957489997121274986891455058065575190860982927133162631302784259314221711293543728443106280942733880423307882759913777733729809031740489417091537743225508659148820300384219201014281513449257243853683678589477271059104628643206589696513724354767623443273160523966627851415629122429153176053871235086636568748339862620252818208528013007421591127378979633806489929624023229101857743418064207804623348772880290470216670955788200246752141844610557743117548138141124755029111154334646183416449480920034260862450089075823492975345562110283291641748616499643846005566706857029789514497338065061827146890390973689613545446978517999077554836940707819747567134752454764111354590655148133956063109219461344426831462912818174481075522781424859269032238492846432500291323572411847739714784534915512329701506574860873038920194365596900699723695540721913888584266636110935027070419688295352374854371782997566302548852920672956763312068757885323679473574268307579130383543695309901631043267829860015089890518439342671415278288897160769701251808274625087883383071061770274696783706347994337278855399457535768225336036831778914367828589123011784927978645553826821752460452574627744778454726335515773771364952130120703067710843733015820658057408811731080500045945740492185274267036417593167438942344766730400078841874527817430247031532511156123946157344577664395429497553482615174050820175670428603164480709591496764930354418163207591216950138733886609362841969730514480501193995779273044505113237195518055781274435240835780735293234300589084716976802207180420256790218096412671926582467209102517077170982487917861488153788419292266156638909560412926615064469569343731000590795844498208666775545776370395781209147503764033175005827529327186753747274439798888255639183912809237813541070707186053322955225141730437518638664144112729558872119547173339291723687869356059451646736636576776900724028348568742782187106448321511449739120719838158147039873481257430828624660218834172504024138532609907882926237036372017985337909686284287609170528022836665787789873631899048240343965841773794552558193093202272535684730313988242649219494143240943420086949224495441109166399089459183977607974480758545947666127767731885123870251713991960036694861351424998182482445793211239068327945372343974784930971567618840092664838304177636095894896756453676836199958871856534575787165125222538491304406487460609670316078481757983216209156002478957740369993497941071487441484611669975849531176223802212626074746477632923281566580668928665431075364878883821614113595896882256071523085633976854229450579417692307789599098509968073335040367592201470942825457002016968734405589718317617998396877749700466410589009533963156626834899581643412796666783868260538407966406153715202090501418787504104815167678566348970612125266798418448596884572387604895476283578878818292245911662451316768726725340450394872530134108267584914449959273020402148821894518751023266858118889713719793423972116869134904354796707588173226096439476147480287408405057898257359497115195048538774069684982272707644523924417325169884133850054419226432266777452898118986597416785705447540698634330803096223242435325609986118038957474593170200008285633252848153212391551559415559334340443636211628132243306700395432411520714453662520200270295198316451833958100763671909315488114056917207641324182297216218529462810503608903240296450962269811176503067395152974810081288538736044554810958345858332584039561085150842717651691081830963510771524557760626971473821796186023771841289198039878393712411903133246906465763580128550973187563670968862976156397917980052950213543054148340172230623254422001983231313329444375367525310011273892594164763246972345022738249982345365038559319580901635113855379238374225835560855897909182179278091717277852970248900156542727222285049634219350305467250473910257400777575664753577846331471569890233491427367324198506522900264005229939887281217791345787947828614301113849462574157221906413498272533297745619402845250991275010062353402263879417373490826025442797225228952864946173072575723958439952325873942145166211502061618523700063878708387304266791221585043842035630231973140224410514316134603054102855200057489786186685354622463480424187990034968584783630560965368995881652177829261264352704211234353951633171068649948990177936723562936112442131952934443865269366726985594954482745904613122363124243505316941835857537883213781100354689106398212347104760826502129714869807134841813336649004214100211632952185065843167332698993638614011490692397236610354130055787023316778842765278018372887134616343252021913714111193479935924639250447429658144428393255292572877021163437118295661583581383807581896619686813329708287242469949110325563405852724680675710787203848481537249766701882744273732404817726562548109591697569906590159705229546240059928214008943756197839501794544290675029457847640438599986680109999171392651318240027573919664087311405213052581661795742230560055352709268676751075148657702265114732998112421327711624113928412918084584793626091545017647761925771419176306236517455953692882809992859136925293646123674873013794341660208886407760220817391393015327831887622648677266976885649536262553242890245254026500825994771484177547170322129295028469473754800448791147846705878227454156927679614436091614215768103075709003238108085284552274380707297751449000386914332646108395640381101061388905731889454866814324748957597254359441126692094065835944248901058740168671830767748834843122030225484182529274620614358991656347840638665095277005500717016528132368411359383272853179803074643742978475656467320309932683649696002313412137855040684197756440357765602094767829467352959866220592549954333042493081375421819780236667906776130736801175033774215354385838601431887976322764914674693082740033962239619148415159660050489509312793899208114974471331130074270657740425996794830847638292392887448475928704462916496078340347642386629123504036796436155508653328520485062722158851676220882474344087087527268277909835010064907988491122410323495430857916868279378736758080234178368421026364374176903333996799497615897512677992227157076538832557995040561461954079117708474153470758589158950748614549169335518849136376694649343439199697884171496991907912745216886079341468673076767433196956266051328883895091846151977870262299681579090157024456069678466793442279259471793102631748919765673317320492322098294608969268040338585079952917620713891157721643551866340564612475642059092070057692280358441222297923232455681268933357510710904532952923872288347375924058008430504218336709806730634172520524728584240024845340273483070638521518806615880776671622280720138366436156286926535044451916336771062534644596236415537341975587278955226196560047153237667974292148225656253372012272852895033943953804323211395836275624523948100764005984804698907853825320205527762742866062004065286267036794143323858250240255000158828837401645538324164396281821824755550688641889466502870580597287895908727602198494597523711052971556645163046056587866420449090558201326829248467726513006731938731922937711559277719577005197634518635199624850041132503486012239964164609499703603455399699924656321887524306532767715570487650123378911372100360486885171962786916337792278906633312560937387848898275051215797808796202787407275590020266162583993917492589850284873997203551720017711322698609902422537238327645211072910403973778657009566974826131862585693935355024221617625112046530827666133940760894378578310801011342291852953804675695947789065502827789192197569964920451455355822860403749563906609193357931753056396189315966349288570476851817530991187632569091725499390374544025916877899029745921822944715668812650867187511634257701055423273346394661243394319404523190246730470791370731145441888106401653588999198159733847867913183576114031297035069994127115225358600728474802024658232866913450027234476014342298837715142040600005319713532819660194963011589179529886045072419940262255178401407544035133722199838272238767189245068236230952040269965475401274974981504476601801622626344947320320174286487028075193543617155641757754678886476917783818360672617073005684929311544270476536016718584682732853204529907749739367421020210621108801210752156704184484484731968509894392806060075204827140849181946513033440918505585048507543953372621423910945555053165432158959571508021908611946964153524263505280604585363547549735507615551568583368541046292241805549244503567138723612357939063342859366277228716391520795457228417419741053583121128107491853813260676682545889955537754957763759912878011948592565483923229257358648858702150625849781667981883882490195936471616432538861378518184074700197275205826742995806563497132936083329568625949669678077208289944530969419433164323187807784073664422567404562426824961275784599827153888673348719477717051019217762739779834436604104969822683811597567123453814990804822831837820628029601250577408112904501983372483291201188396497281784823560470500282133073318554715886443753908051469812885365720185697459665247003234717520794909705363696394631444299466679138412336947676454196915744815853244597467250059491452550487450056429506729136052437000573149878348924466948143237410792421986041943439034284488157960907559616439989945742960032432952277572912151933060695382729356170605974670890864564268029252071235797086420635238906958210590637134418462402441228195417541940983063470108805845567821374099150119738544417522762637072505887030433490298949935435655443366322359549696833294610853354099800053844133391323700151933262602330759792062129331696480865012750392802778965878067783626774782982294960345530956444564024776863525302367306343757521181401391308113796667422764913778802555122411171728994740935144323380247494809667142626410893933295178677304783077366679893348503685047237577990352775588880665690642907828150357201068146852411130825216081212912821111152963494813362783079775924181847819986544353380485202073648019523790414571593778308062752558570260194713165973062911346690478195697968242275726858758443890962077977703922733579174660916907008428400282717152402965099350776739548747549533406778782425804734759213715006853384291236898210910919141187891468768750884526013734666777060709725111677193636670850192989902350234647641192576912658695049334369601518092845815452998771254782369293684880640555133035806422918149192505056903748571161265030375410889746456204300512412218728929182988256568896575846001467973748736398641874109532191721353580228173356370870345240630630296177202974619194048926977329923118983262557734824363590983038656134303719167653618573317577073568205284688768186402411367448447094052107203338924245017951392457953912465606600994535466024893145366681633486753044257030840542879095784639058938580479232929399232890148152558337420137816198083714709213512423783483314281065732550374889554327948881792175187601139802305169519604768309956198765107416908401395580304787993103990888277522242503398383755211876154796398589547822263546160489887451762191360492706040530927051866174796338369014113245657958093929877139257286755766992309862619417735652339309698443250042102556380457378677505871808194930794512205864907698449247264453447788521152195536229102846528875808118783324301279553815995749540149547681895560585751847001880255563298598006215311192556702689978229789208812460797342332120422733820953972075963392167351920915808022261366921946378370109691543724406283916553149256334448120538684681291293343357900100818078494944204061872674768738353937636295478147423560273376399827311539806384460509423700427053693628514755937907017534989119554350694065498722347060800930740416885324933277998247003222197531086268711984744831601576969570091302715895435031369773044478817285800829109280447100220742450102388867276292862625956404600802861552143433217294976089403200308877830821139203704219672828933849880611269071611288178688124566155633368576146137904749917432818848813916865152986467462936320356571560641035861082683397992040301567072638729891266696153429173563123880338448447999423507931680068774246757192816107576462137927488615042496923728416483843306242593145311373822217401020746204877547567281572051165111838607592036455454994801343630163068101220770355069762013228564024275349821017402327104602139636353216580918746473188044605338033735411874166544796134486658192316388599905769462259158266923959816793600808090070739367005285566783328400163014149272206683146972205636877135316893546041771549719450533514334918003259188384783616362948020247530601866829388995413895762300205292052867512005456848930349205593881575185049189750753407442364930651161303821856845134537806746458289297128427514792614078960687367977007422153453022545413114698123819203470963402603468547537662256613844915839959263846116443095627311304034363129254998607448283077805270678764492502546513397302557536242977344445411105384626524285115123309986174701879044352224061980435576232551367432402114978477445401103335141198904469248377507455343089917315993244521157041373353403689297886775802961712827823376625820621952911470229792138620926131999529283866491394219297565751760858767971796226487229672433770349201210171337011846285187595376316436455644343552705495484118816165763622799989913359875218497232570950960849091319905181914664567875773967525625858444573356557389179515410239965242928327853527801066264430046145550553726217789559687679155989139348872285276807234708215474639864843549081618563729563865113208195177323499402409163800272073344464295825720141479575411338715257754297828786478902501109391233810240997783910281053670681443368624908044119586336465527655095866366079796414632687217332906895831422529074052522857614032040060243738114044203363785846752968950395998641463282947404027275587943550921080776179347818217438455036679736839443704611347417337256107591412317284663372674122852300742841360376995468407490065551294176577150889313364134385825728275474542071412701887450981404990417471120144062944842232450179447912260619434280964256271987851335543953656443428513328901120066044274086154076166772128943565237948304348304941041570142910301068630714311177122369468660064571771516060156752725632824555416321676640888770532654080591172938494160881052011130532267728935769853368388430853739412210394950631282857543091543782698505278030050280361380037821133336915272034652282898342438508697505973661147960949405434665168131339567668890971243244603895656109939146685316471344147821200837708421018325855476620536655262608710223496416753144917359364162308534279287508010255158157228823658514869533256096716474202039501789267350781594689508171473416072473372677479903411545408861264133802843395361473278177033378334429242575841025760694013058934326321500670824814200340112630518602994396548581137817417610635044248538067561343771162200928162795609616555806705471947795865964120147173771503560454808527418921514743495118497145049159160250397594729336577903498121641917163091905955722936713690353836302102308850065359400607493445162638538951200448994172955198261457683815056228388850760421567939978815969975603632737712445838765095739545885159392006087847808900363176327158657783944249281085629421600736988295617720937576201175022546918408022870214165731565546126855452855334887931616396238797675065455073117558732413978491987480729081796075063775052384218961528885918955013569548159659472194675651755629310865294266324645858126167145851224478510271663868647409696265151409867767359533295431560307181154125733444612817264838440102778067705460576822252806131091213418609140684797115130667811874714352741768555373378359236867445937217832140677660989064695328733132808542943109899015948163934261042146254795779329847266830177045374905844069692056419102815547393385789663992502102276450038765295682541651975988201190317075861490927979763656344913223522448124168119079946941319305867851226904433170902298978420907951526062584928872084035127597656643398644326760201822088971500775823403900058426733570100109907655441861657796403810211893846574218065298059743034612832737175961728547203644789249559103448561206904114135146683503781722331335282642450302326218132188993437614680651844184248423779565420997230641611711923741601651901350177939621853506892063908383031118490721382115115144933633929095249123891126592695663694659329984090909094066950932929527586996273254995753384347215505950622565392407863119271965767465635631274575399623753995942655608484991169992340054742573145471731620110454825352920714276580689240159277610780131048861025520271417159907065021641660532924423815358404281705720702306943985915548377223136491755142788959962602039813263567825626091025067150430231958758513947114787044482034165396492901106247017891616777281499223328571192391135121915395301783283527981924395143838976632210187160968227850735612930438752074426458008394871922928953155229809599917065556726216745239862059996692403407288840164462585663153084423501667175726516942080606092484039472530752823873318020303308093171913268494276163298805585747408969230299546736207947352375212590847921523416572463690426837807790141895516630861172116631267182568715698511020390869340121051060765189074607255558266962817619497529722968676423503527537363735369910882016675683802689941837340225376821120000406006279954966090533262491469771084973699391409831201286848454080295456419103703906749833002373370140458300663004544872646404502129588074970415192184783445536571764943100184314258986319159711974639030903522298297763335663315821621699677384856741551205625006654732613910888235790897192776098090755751218232828742240175751369877542911409830350730463986371798038404363696021169476416878185648182874449564817695070617462708167868869337296766605640165520735711168888331932806573929443886015691664208076305300007741780336794672994080726707923704227124945721814651214132031070032586808458951124267160057145874755804395889264003504713265444735034723754673835316169352338740733012245300861555812518482687383642504486488087755878478266706016301124987480179656689079204190786640742101666720908267122669280157409839455802728252979254512478439947685086267977680499877577639344734924816418269814384192651368236493835394334386270491377016491957623985255952841475812124533134140290131057679597961311418727044361333380395213898337495556092992408202073572271311583496471336521898573155127938585269011088839020872524933266318446438389490578610668526429160854253897561568381777217472415588542127069182140698404116453647124183236352268661656312812631268733420354907268102217033683449916754301762554453539514026706177006979722789009252668664113761534481457940246340326188268893136123775716006176300367575762104429865072030759442138620129654629452880617736060389951786189272495482192970250699483817250809352460918159808343297394916213799949205937573553887791687122634557450770986684877869162906836733891661661050520267496568905389634858656438444939985001426294467843026356040252416473090013888460144852475632240216852111112678148376746624596026401577480077987087084758375354599346795452334067794470261558265140647261713729618324701302271637311726771910343647477526592995794808071154484415177939926950875025840550778729837598417220913849178375847631641257707645124069779073989497877621830337848737426423455475349510851659749926480748790341258661370694603743314684770301947131298257527492839327055567243213280429409569529321680461057511846454782981222740962274507112488345817466098376256607257095283409855086570695969987743620250619613302585844539848469418841372315545679023130173306555620911173428836845245599642935848403034299518322691073201107159263210639792213576407534772668732320422114853859529204835531171831156444137918506641104388612103710019128410198253101993827331900860639175525267647764300044174311311223999131771589978980985563580281694774785511311436640916294976218083486575496986011217998779990682614151829898173233664428537054568479262968230167114152451417062993068427643195832236401653759707298275436902904401843199875875642417744700399153188730915637791522849466139205761496681945634331745511590757712444159971815026235470035264506597140782048439976241065449825244721860222827688549940106515901346610222059853672582513761060242683835366028782785989733703377409404962111281589896082988849597931745579190193707961998818396875874798513783821569093982091117126502749117498832630597712382183865329751371054945814626684624052223668617759185245526208470957703204251542339919678794541034598542203754845687008252929466715403495463735902893078809750026646947696785137101158730563801099864718641983889313657325259165167984731512689665454625735991779641335891008185702755198324372234006326443984150468610188854392425680968508339553994482111124803365160704489311702270538353416699021379497297000225632587461801441502040413388768424889796120534009959707222126880288495649619698800185793953722127077346608626799143661368829072952091741645579988993678428504058290106731010241494420566463727143695771217304125317186281430638591948229562136028558215728389889593816366809164900969991361141998164822232835558238635189078016147555334139735396672997181374651750070055886125587273773657533762227731406850765274222111147187998849142062407313121659262995066134710787070369166064277128768174081687206133136729988290599429843316978767655412504434402210243216736561630890739143140106222958320367155129952878664812300786203006841266874521494943598864882200155093131748781946523996948585562106744824304803590108831750344013639856890988935254191597470700742735494152497767591429910301838723718970523372223624436330734385221159817805262686714469823769756208232424179368272200250218775053792804975786808121361631055723109008600212607982312382980744931107901949482429776145538291710327869636325116967879830243745667376540132219363336316857689335781008824954412053754823248074344172661574121126985723708206866276131958702343539689686795361887012290665926369595466837080113513622467616186454498323483477253164721280083547627613599628206115025133777093696597519525410525243500402995093725245446545922138769863498935151735320629256163104487871945599072872569151972481416344722780198391589427095948308609097534842771693453305590470846853948888607514517169663582186867017769178901407078049804131161471124520500860959360668019847370886156615671183354737386417405725143993442488636270572602001787789699881326264531233895287201898489571435453692840313302182437812411693867397943206431436567299917849089824382190743099461990872438506698575095630216626838039271922673194558001309069445648924108868320863710108525922637192991319018134176690180754152982562893529519154967516191514464940712251567778735052314399911717566789238152816772904962337727010618695225330545849829342383106674180703116376725900242957745220820244994520806974028734117357125197118055037886931206325200209069404411905870795846620730191875428734548147990746114504468902950934054917498692478521381778764942575373009241841949459030285434249338823866425924804065066975167666543377085152426570734185007623337565256634529037967361478178313462055500812677998600623474186868311192838815711580563856754497220241400155448125340632775562168880425722070748384018303504141021111324287030616634614185924300915469623282175363709830035718332315271998534806279319086412283269482274759237043495483450926040890755170084594241419622741719377037790881542449773315353210108355149927179700178817981133401532100377055769396542295526206805450604308922420470110819271829862701856024525287239085889064542278336078781174597050586285867863824588537752048710753927792742988471130848620395049987287195701740202572313344187999817640611091185263183202779688150636513445800400868112083142477200549904663494402529933165247594978244857152817075604754076587226147619322887584256277323443599463519321568171876496539460240282981181536413347886783333954181542180536879585136666262939279458125897828425952905293198394570230579235834596929698063546967556269835643599422523338976907233591022796595390127729932875293664160384854569687351629520090748513032254587303810575105411202955084901130981513942850275759382857633628433039018987533422387618152811425001525288972176794435021851107868372376861149827950240957576114710634080044959763439546185861683883527386677123348594073874504502597636295006932645627857616189386646991726404083179694060350726089740858878081245252069081941608198521494145334425682346041412243910876720635783012837226479188830389803835033271492661905428288996549536159166042146892460515457944213314161061593636058084456329681923752928172927330238658383703182027654281202393721636710309788269046605964641595607101789873068907705841660063811523237968521640453838140538234450261090162428561736396970966617349865083808446782881920223470261775580602970503559855953879148104152609431707285746459404344901930452317686229415074123177914405578570725538107960340764849795422021001834689454868761454225753726902891326677901140449975776298121655671098388700885274020549482432042242617313044248358620632254147326420387286562809576832629186297915984610995355961836695142930108556356443761788488986127738782798599335821424223131817451193447075803251730688494161023567975029476385784709804850490033604713175945332052073755831895039264832673739381109481778950245677841930255525551709426785840454136913863649602363006244934866012586722590716563225307254580735975856900235508640258282923950550772279329844518971076969956921699168057261154848973270948063642877796116125694687179218854850062436428275307600602383332364651930920168750043406091288405491451460910407992306399227915532675441952440012676548117061973790445098317707306723127020380856301437602082184180802703155965560713672206691464371333885085229813108568437420222759394098712037826952245477331545957338449001900281636410824057962510627925089240524067681810381506361628522682303063262855999851681689527098041778101417578180049370331571328520072423046580118864500417768457017955044227190445483868928822744699652049017872053712589829341703788710810833313703517301892711699795527906879657495327987807560592332775397924711796073712625351332497316376679484287835107090327440520406235919701689117433386467328801881590058942003841262299459294881633045334423545278877099244513528124738233471687152656038872130104667391255952319868357593118258176862655733124587014651168054831746247652671467402050352793939107907627236676430410836825486013046628854015877352042776381575115210342607840371343735768223477631592179637212677356855450858859900298047203053066480558157063548195435961246975625724149970666208340140484842953131226468690381011359274537205564657377263201136125286674680839319638162179719124405126210020828783891032224668967933699664126809518787674644085559765591528940697001240647181862408463172606293476800165766322211460650199993097402446439513977984681588541908330370861197039791942308037644893349111590544305830057439875011555788844605376723531201168696441473981504606977497518093733298351556407784792569703553608753889907842374197336703070013564403833998140472293082736554366488402274584188120027989872229456837436699317110167772879885523296782617013574686891685493398645370424298744488271997653083159851465544376616245929158788151644095151360730662448857451897429470953992458109517672209528183502269585416144880917421681423747155327848381411946413514579176370171399525387257456720876025241119342035072084430282182066811492122222795518797032250497744673158067629152082328113034622171716188943650448361828401104168470805951088212619342069962059496722603030572637683058753053658485316324388389636568680627825371619911810077670798980113702116825356008899549002190851691302288578628113704562538279458959499862777137816864612378303904978152771220587372827011848165955341294014268120525962814292205923446086657052470188660092054835046943695913475518779322321724973515717892683573618518861340696946940767380933875257305774892856363761159123945377594774263515678539603744480861247352287063768729431300262930855279901470580274997386840195966676464052221614780782739091423965993456395870031194828699951696954472852626668848131838144964984196397842119330692219999148067671063730598263842040533967331938048468635706593008416165663521069067196473108533013283781865503041469037702753210480836170393257532277794372502022411240193489437868706590472199418958478491622014017846157194775724045986932477055674528810499073869645964521828213373034703299373052914638409353635501644536665679095368759574858808946134497597141370981767938740836170357955723963288020784103794819934208419160395163385320757449848630237748469286978217233593205962626045163246792575162502180778402544032879940445236430720509210226863957733579144355290927110216905282224170326805098264308281073430424082916333092783602603730232279371514934340069964145001950750848756356855008632039768960796584230227969078000841382666575304517560374912569938734649662699164401888104141572712224628038994607788560718333362023691550481343581593419113675733309490091005307354982430989970513176142492151230836520998876522210132370548423371531897966211084052264214424988815826425098819021137046319404412232669567737866256271507508006065260431171314516165067262313179211553524956614717152898677815868628064667523685653470949306137819848946957974584826356129635708414307905554877040897361851412569461252618491910525018105148081262259740380517295064365304823440503288503832410874498303524764734831833463278298021949199540407260200372060060867998233306318507919681640734323895637328868617089606805582030349938856182310257674841475723609208860449751941400247426290242277064480882136586140524118077131725026307597004384681200427510663274141280475481263611915087098094139426039037656237297562912635604216025835286293909239607171742188589579995771341785826223059904106158844570243620011685212644228072803697360362703118372917569623936451542334100882414723581243174104052125822483864601134947579111299984469249618728496828709497258125268109265781585406325035051973593016155732292708454836858571609203527581307628777930524486274969139224313249057548863223251789774264395072854306795256889510663090266960222244811645660430374933115992735211051142793665388670823820145478754959897363442491812743774540792428726300863001710164088304967822514183815451056000069693416099682463612337382510226952588824781583365584645461378046669279134893150003779802979570391905801842214477302529818811672424213171433112412163317576523370346214481640324660737311869155502167013743858013408231738152488564273624462137037627308992293436905840340066381874132029379359373071151410146235563752171365842379243047824614311575322805503066856302446908970670823763671156794319503764146202642827528228584564916647484589690648708153033171841134506109635325442929419348629118270250610579689767351615332868078790487423978630601878365182964967228319793573667112265550708976276402872238887466080642732672459908533171169726301052797938929416203243277708848200399259976583151977615416966309084707718029113565662543487544213023544793750709775075832216139466289289908361368822513304168961584030449174997626952070236303230134809329106906439747437637298078404495190631901995232686792894198912426231210903415682947950522409079800604116168605204715903449513415427645651279471637060725146666205013656184922254619890817142853077894489818839073178628595917796632592007170133470872848699904798449475179728120060482957590488994246374974452149168479190667505984101214782559336139016089319606613980621211032950998842373541227507119064050483399499113856488445003388930536126420875360721916327879091707055373797701603617292663068722646832359634648280128785091545526991354596175027295262482554327017923717640206136790748886440681436355920997608564352116759290398786851826183059875062873107418449261400546257588468411472887441528954406374496357764191394060682285863154828585455512002542713302896905740508075024815748323791746687434821615871485147767830005843315951993326038657110082257231992357510961758812237953535711051421994276262527945129557086541537966053967734919078173972999760600730945206741290037293670709758948007873409430294424431591151908820543110956919029265491073996573958999804429161499145002112057451455668137585919181230961417151169959458936635753113322309844017724367838641346792826732526103700628705400818984902013192627185136775181475576530760244039413573749860504925470494752846364324173261303135876216737763330594709787239563747542753601147092784155445273787372444684332959931430255887196745605557819042807217871495689877795847384438464640348861131008398938993476605075774749402616961603706161201789032545392916770360968793475513648274348402434230787762246612469585312321770851985613882219236451719560055307750965849360020998923363348058017933438909634401657068927977589366971262675662562639147065998081172876866432124176530168195206339009248602753509900208145261204381236636439581587078361003071285457689001875641826386884003772094673430493575456264121507538804303319158747092219204479078050010902527703090497055867448963512959577008852366153563881452707091074573151817889420981749592071561616950168491905802138238019788947208940052009136514911913606079349497071251887397449732425197241738501802390462331849735007111277065421899497053457749828365912776026215293965615157402392809293435838589945718708917002319449278033408942125164756298171013824388971327391942388957166790302767925310301741595638070738769238504756136567967581029978558720373504368716323153871891297188301697162897312511418882772781469691661907154590256635127363529027904585004874468645419885428606786667266137528646786999468237520865905029854861920111279079912298133229047549005950358372118834409765544653239636911371772283126380720428248014860618970742949537004794009640927689546622401808997828234082240187948444607387223842349475421947384727036598185107555442593177243904646405229731925103861825732781406179883664783876998155930869671857118740011373415824133699498377704616804361074635005023159256547912190982955173608987769687641022020479496285622752832172127689182907056365781473933452096306649107640417166781593885450394458452319456110131790398494318472411526918801179472630396899190715934816609470894671397698212132384060072254903301069476497649660814778676554731886813902816211555172641574557574636481923106590727052470077207685456587111915940314835605369977546766198742250212127699768637549151264946770712878647386483360018084350512216875774235350414694459467561828911411423330183604232705378482119464301797840951806909430306601479641349801782771954046671352919755965050286875017926859949484441590884162989747339296265707489526626111332090128282494625790322061600385440073615581685453924099240400952391934365274588981380331463725429652048416391492658734442632293518207264814462350910480193029553765487861064863368473797263592327378708230982113953765048160262267225498168716415335958066715277249048278301847076670753446636999818450777516050908109697676492944094748537130650024254742557615283036144234390788247096627515210804150817614470873790733234867461158581578586483552607064990574221693580083665472199067764897228344347598150752446035371014534254928362894119071867384332565727477691808713616309048068753153774299507725618003048087947932065553741242170108655106952674944766530482824088639069582563349369535650941792078296140527063350808974407651486208667005811211625696492931379312231063084116957326776928140042379330971630347649135075062479758319162724500577584144419623864456542295260870732029470287029387003726224974544919867156951252703052289905928086475613403760258305043806568493618229924860436814832664690400768142482241598494234262318559593061526082793575877034501125328074097394576683862919505989264069856880838351399519431131627964488244841117075426249024022189346791612906188150573710572661535652700780407494049242633242549345209172780641016331039122989565413804121605566147279940228162037685300063880459318383236777035063270393896304452750909798924527379032853347258400752789537530237410155662507115183192279108517066274003771317705470075474800188154091282538132058535589771332098133435194705090271606046832210875536706320939937288762582226258100435941593128095992180453898208132000652587310107485881150659610305266603130490122598050707585732194216493414646808121276343790186457498848803590752953634348036243711585479604005790774218912696384437607316291767993409329258551805791611417268582956073598305462702486758860699563106258850954613201574099571121899719591920461241816045671119226678708632100140173268996185933179036779898684806725407550475229573905131848910221855280906260334638251104767604928708498617976156049214910162525939864795914578016214642760230991596364907625466431445989327566014307339537621943756748133360253649569054308970103457154757563108037067649262275113324484609982027878056239402571463535726417819943385456709675746097600582383215727895319352656383676737335576048864316948398897897134302692091270599560697838138885299667023931564097491593901214362829722610725574993148598860411833194802438486632184880115361791050169929325814462471621074377761979446093861271119698746212289855331205509357787175746415488570840478654455765052157819248800653384839405419440339937568310902346224453449978537753403211926257221020637888970539742426401968077078320961757638571945595942445153745785571984637662987846179499687076138225932625849474103723941247603099996655231812340139604675944173301922295386513464567391466539841029361110394754011656116575548120052287130919097326344576642948125495675683056407056925648692229813583541306794502082047780327639063161097544431205860170540419362055505416915502235138136106891433558565658168137056812652188804460056713706549056584245882679459256199253002576167277774404935051813567493152402788926573009298254821595208459895190887051258739527646123153406114538059553088090004834692862212092377626939034724281663893155683654592124475920144001866790414419099812105685262956865033408319940518815829474777403458741468768165127169425779081344163591632147494314404713049901019133555704152438181999283657204975889283329875591363960749157472564558071775184651330624438930739516126047351118166217548188230419098184518214792277982456306391131899376712084543371384857952314250408087912576447404516854881452162253578110796223557743295185054359765825872910112276068459366253272252379178200488390763921660007512193033037260727517243783794689345004610675911667470862773179797187903875485505102959488221144482926056314077732206519086613737252302868758013461625575663785315824948892479007005459755509600885361615786514163380982309983949083722109969734016929636670567180544243748842484520129357096959612407055608397411763735728365315083096981768892301886691234724231790107526075814585880123957659271327468177526242042696985418305975051976105628903160097140565264374456220447148685755855181105458376223078316910253340891157943331331777502740369435936973994445750583591744872102232601196219699296225304850036279944014964364556873106168422625384576680559860875698548993347382777221673131326706822531539624071159252267616728285075248746559164257696052653437944943399341700131672227332164601491594012509477457389316127938852237760892794501897011092903211001320415329573406873109714603931017917983059442563657782475769558184610081313826735357694738506010140454929043199420904858755199000662564566095080723671710420556864060575187853558516793001418788739071076781530631659140711237399953907995530196745599394878408123562470626980026535419869930264938567308282756268679918112850102590398643527889837768465139990212712175758871454555332945710974003140329641585743758477971495664147201989411978508666416293004905100847056859537128417802189570854543488086961874817832434970928995274476382015805685209037954496352811143029740211539361549757251980052250419847287281143550748913769638058879854148331080104026625675403757961006002264383063400602261589574659391732251660131068265306395929544238591127576585662047704983701472433477055531375331213676209863716472943150462130080475906046436276567678520499872078955370948650289988407890538463241478748614701492052864487425589184412476486199593823000740502624829175245082430457392685943130308496907097654564602711175179021251959568344225348971277223174405002938870180692042080942823482785383260343458462738288716648669286481818036834488951232552494890725883659734839921923058989743767052769155925684321184410491169021120935646211404670585921036621577539630575836999163754081246041372733675333296502525913948274328715385036209458561910400585334591282109052970775584430954303216016970443551624463740113524315172962462829818848501495070925596114844312369214408305293355180835570507290274080691702018857064298203141698798629357324987449901055292174510839506434756232517101299848936948492423198138482503628101364971254145467146589674991523078790005399772098262219097542423945285472122057148695005289555812390831041827828400417322736852836595294993146757540528987329991672343183978439289770041265998063635785652339720445179376421088948121642087054054382859879285859081184003992356181692029191922096573405531442936224121240642326100909291105310761426719532728686377227881362553468615860643841791506871043370839592478323808264111622507899735959587407004467069331748226012727297215816152898523520623249325270482990797852360091799654938022892052931127148658870506412492882745233268248954577349446015859193545625841441392627855726579891781811578740291140673088604066663499250150302107491556335474910863789117276929384782960732185144052548715689892496045787175366652339405042219522871213754264804838838363286062612155844151421476580633371016094829984224226667289932075549786152945385856860978986550970680169511649327253055310279244181055252418084299248557753310253304177815610136045647772151719994178271836409805921323098049662069317721724322515820280646734643320902646483329079863647737083010782367681613368630376624764435697297044094801180803204286595394387200997123857933381487943595719290344752867800256879444299390750465320378086714744563785828371075806486609568200529513859684033881806901575470330628614242845482627657992876103118451623923296509474982083357103545640297011796546683465122553440068608429682523238407804752214122642459880525497655386677563329209804166886313267646462186085182890139127258395832573987360823930660222739225305707029353972356339072585343666299600260350078776054178677748098433164371532813916154137804574967945745532448162001947124368212773436622564669053970377221508184144383061435728991196284851336438483361178686091483562379143824676516574511669609074569583814223761783792712206330916074090530495935686115392770622033135195798867144545658166348492151163202799027744728683310189866625939387776115877008585811311298142261163829583954545152231797678171549329596234835121543719425790483647952159641313543916948562858932527983854950141554550528661058315302138615314496655741341978243616148840635790650129522253034065616808823519100947054492903180464162373544896935507819047667741701295720596972778234100461507511596241166606504693461247831369417580566946032583381904415266215155768736613432323849613338651448395426334275658389688334112981651644898882864730408654063002978376221357652163614488614164523839877485681697857328462410105233726680900364154866880342329527215633136603096679068420728722668683723095098390133878274465448913786395781320372027130546807479301251933321716330343150144692309432583553201433458945470152414885860469282686299800108406313815572511569061168431981742483948402459785982515141129416622703070966446968868377672092005786967574742586968957987974528569676884207494166603042422560341488038332278697794226275369790505181738171653314557687306659075518262052424205217800330333349749657591172849426371642471986225715479828275230467624112639359308532836196410941534430652565735807588949541578169668780863958447475998261006522150672201329144807270106680723255291984842577443326494356086722730237634502474312192182144509064662243548600686898622643123431101887526925642767312842099913033049580739359938226928962222697350095991767896831553682646175336710895938859085218392524800907098125361446953584026233957060843456165179284977154715744338130024172859109817052450981200181697674748209195094303125981125644393627677270219069071398074554266283406991479434088442268622852340739490795359714363451472545394790877074676269560971012708299427071025276170286468956898859674882754273038325937669162591356678073642383487214809995956724633617700803480873925795889398503721290322665262656016242790791768216951197782716163847828767944564285097757904862166418442505467260313923419545382262841155877728176688633851537182164010174120827985060222222219381048661562390982822925294853777616744610838783633596691317502184405934223849383643918762831179857509845628916280515379939868608822504943792028182024672250496222478925668719364246260746753696413657357929588365865187652766939990665232079280927609181645967517726227461050175389903442151599953095100338263516835307850020480732022317819181168320335842336493259746053893832956820799248506322211378118258285467692061801644126082569293717697909487917368351330994725925604657150422108406054269612417848189442857247787178543780234128041132669774620711776134985124627484140473264370873845659860539550286994526361457277474381306589580144108927845917272458775726305506997616779781723631190595995357598382491496592696659409582749883201912218988784999304777126091261953570542892359182106523432845050315716844861717884993606317086782973306530595868380621620185922709632622601504512002612179677898477430157657269928806613095803634719409620052333261599588375112904704184222238997177650287944505912643847802158050668626183845810014237332524055570639704594743641844387849407919840207849079126565502896058497979455793238207265419474355999223736034034823239722829531933378627115422196687550864401137707556115540988064310050835145925023101673345561168933915681369291085072852025525404632702749025385363765299454865981049644547971071076758455400969364312168102269081435228347285495399300274311091595164582039767492634563513418619501389753354364615162347880564456024850165660802612229755551291204981171257701469024597894132040671289375093196494435519307886867520350722555913405123824820754302305435878487489310045737691596861936565528578921865908289813556907990701746006285713863767238330586638997220651925827170367578859972340229126828534631223704898178987311074140324484385098291264041981310915210126350021851808292691817666203802614901634728597421140937703374778632747280103201061528711311345811953564149793317876087257710752512543719990743582693817881779995433916521744882474278146709674053026697645576046789682091869385070556903394005030466933686087077190126225648609434342659486741237377600689942756348250414802409548471906994857578096921263192547000468390633988602697077306016507411325433496874085217738876964619273053986465167462975181406418805714566983052437149418233223007914203095321097195699474218117258964906519890193742085438739030656900870328116140228103583921451926024620623596838420707381304470657303232708523614478442317696038894141837691719216668349283090637346900809503598506073771529937224068361677887297808696347023202922639685853566037539223892159923650299946830184249170957265216794897021567057926557781433679417565367707463399472176271511595151120153829340272397154745520873408233622031609166681539688175989400330970308252036825598022211383271805629311415576997500447790916527245130968774959720008538776262731695963134468783233230017949147761323015467376039459795865691405075597870155725868814009074445522469095044172843951876691629634735616644016644024475349492892082522609325386845301056857490728502833251493638218328325723244412946109297402042814763437143259973051668515777079707691045539453450397071892700559870621432252625981386731868907394761644590103385977237948393382907893335555127185689147651204848069869094844363293595936416042154772011989235983619562916348856276835385926609187708339331386756071763064991377819576224293039990892671973909376550130474630837731248645367900403680763074539457239098669718341777523379850079304742726290048748572942502726030471321785591669125743430014986279011734735220871292024085615503632901612803390535198222436907679402659291126034161519814969563864878245714928022613763159776008320149498661744341199947311633191178960443747158600895135697303038361736573320539854853045604349640030414658747851085059281732032910049823579032919378785521897822641774182437369977971974128238893447712394136383924022893923619071926598920857864523403527674852146433871095111419315650839764986102446716714588367451061422814747618738614356164481114653754813812814535283982194714940065693751619656164197853053970725986827767286250113304961455167357829971662344712795824483864184971004384151226315021213164265490446848679475500858604056934313832173378534925233721495543802424820275452630608517685054557372065588338769178253490120384653045063770595593994448104990949338670914573754462989533971239326764802016886052151174802290572194003384576771097872723674371907527260835032531527380987809764880944829311293096430772723512596467072093436066667564457160957545090930765633071572111137438317359111816950696487014440616936128598000076643649515912333693456779897904898988347563699316432202182397889714694953955885256877889012749537824416031917483601684335639962953691831659972500801394509583082978714442444987192779472449081876190619580864274387011123476438108849038976694243982247990103692432046326322657256367398195673812151032763821583995961003930476985885007453518101893052660052664912478077243699323139451996965637160295194164195841370884494772796613038479942318313950263488109504179717603130251172008490976973522969883822318897627383403300321085454761249533292923714022652232298601814667575886730486086725183132791638275356615589298224555458366044299767223212383000358474394003485827540664581717656652895169752515098238681526272369939630044751245065791816839376092209573317719091888332096101278541778179237819725179727625259576282089417665482164585346253442517505740747752197594116669446303474928045442491751235027752290212254515366796716834534967065271982262161153625691492158004671225649679926511487398330433852850793918196080341020545203407259579423856007558338634171372253380500888440197188978451117981589189839414035387241619011506298331659935763554462910800926601423532532555584960821717441434013736573478863358381391825940348603339479166960981099042218142604858503015217960112771799067158409293142212900268167888068188517028961999329602253562471614871719981191001729685095196931860465569619969437159376241603908414021255111729804505408773386862383199758938334850141247910209415016735648677098513780153417817174708886345053531733085884720894534444956983921639051305957730375775968824508812199816781318796725132306234166046035102022614925477516055975379995027351490471479143378803414655781143833511806316837872733203031483940991248143199461803131686095461214909295002679070357684204985004454514822012833148367578111829138561239482812159617144419291467171779624452619762998567665799819363677257979120588643788882757766540599868300038189710088449631857517486303022730468061426361147926946867015484510813382352160012900182614070030138258659790308048820631795940914741563039061175676888722975485719385263348874538204098750964864076792870084755683759131389890216876593094415482890643114228551016430462574528633576442675843194404045810855313116370880637794423164784434503700512088939568724561373277776365886612570597639123125594987807590580680886748554196430442565985694120482405252401892951268782990494071177632626949728288558270096120457376191573222343143408659566927442344890339809929016801943057958673888484623349796345657028269884105021568249416761528991259702219640164177036660150252584323629517195076775979686392619298571854074476259248450194063599716448671928046891187085780729683446498834581625757060988717915072221289291462159580060344365444619008103370943944494775172076027699167527426106640485162626837482305925507466670982308128023601308639365360008014372031554471076406546993093675001306102353600033393408333402252090701363250642725679143222279974988957094104869538677849686200123447929391263983256038652468357965981459246954378678032925139491111280059905137184024791686383345896664581041342110806033962861957090598884596856102624179264480551797189641905488314077403911303525988997001586216524817193107190713833998859261958504400426201644669881134459041300588215578379303423865209474672072946527737925755574402436518780129287978377448267369876000684259678615415847242410591772136354056663129976616701538546901883034190381263050884268756225162075052404471408234820819302140593388515217238752354440334610541211929090849290538025903479288844072045879417884188339670932638482904463976358398681038120335637994259634051330260788792463915680804929049480811678079313566561174782817749431234960109206022382741207425981725895915745187104985490952073387223636857256109808170193599388792697702910105105206954200367530161360257261464834064116369929838617233202734128921930073854038114499060615995360616748616312610716973847726918788040835170217327772585081997042130712580285709744550985073895519467904131821023367882162753207847213387079938483051124794703392746338821750645008767536456771790163650714239420472655360921078495481924832280072574472781799851525602929149035555680070915750155885310821148375905934660031707427958835530172792106579131637092481447560858349335445082778131722612500013962483813903069441256716725541894145544708462466000430835826725326437641575969079447791037286267885666546294161857961974572537410565483972247655473194465608405012070983986953179669471240160284166973107397982155539631887943388949711723108269444116598735089218182941717777180946108733475242258026247597095374111978857211475988469699868925140457542927097383486235797634857891954868794969128107710190468462530153161559910331932246065959211863534637631736592303744479753305268979498893891371080297981331799574879795330775209770852867432422103062035908572864380016339798603620426189775963034012668862298256206862883371225669901360357191810770312653177769535850310952014265190082627952945817525024210086654596098703849786507469000249136346256279173973502999111492912094259481916458180137092031479096927179314047217249984286222260923496676537832214082589261761560343137115405792245390087738308161841361293771771991754386099712732854071097326640391297967842286757072179782531541565543819583179222119864631245923782599026270126770925701056392649014449680929400506224516471275286255013532713144216742021330243206930688025466196871029349224791816793586132340646370914683355095530023497467117990066216349239480607508489860980248719488996139658243364238099011785710688180104887051886235513035065116168774392220873701388334058384451210582775925366093300211580392828984697237702871631307572492616761354179666887963228912666657771528419433087785193126284513014312992634994704079796408340061566300575618778460047640765742206477846235418030164544540601349135352749776293017247011819637087089262819561672348004536872298427705225489590350531857331617300374708766815586266202379985122681802780181292831695774452815367044526045884274983799954464854039188838004397031475727907572905064383492652122110254556461796891601715216544013066172521414856998915884136831440250379820172007968781270275616288349380765516912943571882848443158760293825174846963380971485544124694756395793516956367133139752643181061680736562393038338721797132865564855481256036464136575377668361300644744494523879797835173284825559130450911450690885194016581810222629694181426652785918989374280942423944028358440932246378146437360411020701097615059079319556183380165807722750957468471425588517340024789644871314850600566395306826055141369953477978268647727204726208166815412014909396409557759943739392446587359208667163233056308713242843499399508381331862546553040753088077823634876729894630121270107842809043881960177751947721891109647866214921059953267904073523062290665811980744795600607414714775999172098476465453284359167873647941558558995610152914760729144104596653945105008870955990682582403822579243422434263728940314044322615767902304907587918161567867915647559542043072578026951807741836452433281739140918875171276760861405938292648510771242203550571368372112152827484924154094544730595050251985842550335979721436203196130346061679367132981409398432145160065352557495250320458943255391261540366408477981721896747129573744704654900674740975853924180583156438515951284389410609491336105176160705056943672477682918724124358609627899971648146462088591940165839440055208779006603113622313370680073028112746259888825671383072683345645425524592167551105648502912740782461115462824623286550053124572067747305796764688676053195292092373104617159414217748279025084562227207596971075308102729336454441937307727164028761158495587124181186631261565469858452587635241266849418444694275971973241197671553923740589900569636946520769014113695570006288756904328971392936359846653647574398188613560977973407476471424218082301943158960130531632824965602886204543101104132458124309561828475414987598909359857595396717156226926659357878148930805839160397017389276632920071859934472694330229777153035070355917799229474493238237587879964067011506440704562692381916229418812210608905829579574971409027944659593666333385391983890170904826120917072269366860036762921054486383003257559613155810025737335442631312492068380861850828484852877946602378785684497761987097998717223425395129797414416785169759338441723899775247625295390981554879803405683672158781966565027029029334174719182968841310464711417275316798458239455018820073927913909258430107996768246850140097572898068805284885891828940723318796569464799256193997252305119164360176079153323116076103458937627653171187843327033300539166267121205643478840075157982129997139421418998949668506198683156996784834116938023659935678847638187788412001907582326420309505523213193494834569350349100058054295957187049655279896189326311247912733419431617224663935234992073674532643865298825946422106361232684049309822618262520541944089973951412553172949593845175377636958129096305472078935308076813055633496790432997328355026553847500210312470004000101519689518104206259349503867575943458230913715932114878223204445618327651465709521713986449008568227826293877811688580150206414309382683963371765984532873175843038100428118522984121770831768734877991764784297467889392314744598585837986736817493764022151791855938649928895148959710553076542953707749559921174332957182885467938029197404440562289818985160878592516535961478061477500052782027590751486850429074533754275298537715908854694013575797508530161917183218227264955141936848810693977087546144648134495246236015163745609163882334300141362085740234838072819450760051975155445371956656482387268020052002507035667399710580375325997329634428744553428720336882127505288447913862534313701643331593801947405631516806041442784358177213455875458667801678214268508711312432482847878132805959913044534405902497651628542817270883137590933431229493205841200190162451944945302009031603606201310105614630768628522770543872706632850378011157594047077390891476583125394206345325868347461927941234982824286189296921187810331069098234675954335156425718703721892804269478815894276871344484067827903414896701289371038766830800775024141834833231274979869265525697673208342210841230008008029499587190667901991884733445407791791134600379954025591196211088147382966039823714137075971857564566810468738595283300276518328595370637312520833910173923722091954828359481914879193812339901037902291264721017374168680156935838493685682535170963726052070734324175121914729990428926589064287689272591331425223029957450781346424976386107436673078732605748114562698723485969188879604998032657828627130662360934301895377566113945419632990375413354303943859897434955425917221955021594575018816302133091799636256650861685592352405304146985810611884116867086523756021315197277144880024379234903548286373722740543197250661271516478329487180784693142436343945426531747326726148574461499296965186688113249091684363669930812352140979723304457571566981550699018282092677862221174816870135765656735463076084684742025247164287621470070502640970596898005241935538627458029407190236446140283529119017970696596671286535270454629496000868670843643842540128429604722656797658860203462109308182914856886458217769131417824738173709399669037255559212374905470098459795263199396391406797545427240411487550039643781507964475528211534731141087075792368730084687169071316023594712120215139798234049780445433343476480751984681620994335019895622719452241746981692096118331995813919886632071923802983937037990895476751550645517574536989210702601015617542772793087754688115318459654953036865352918751239399192342466990588171207622367446554659041446548338008394310158330618699128261384101593133751539255796283190793745778122744055294101814239073033474187546668623729111998266545947892793739636393414363030493910377193357058562969894909869799939263757278643748691656050229828777346015131677425764770336746164824801455503542356370245448594978464841443233202884695718900698073553615139137546743622253366257259815181647910902108861470666174824160405429040120706608318424456241053712744934912105021955943777533637836725920735272189192666971921868843687243906565444493852683456534710542655879645107998850270688309099941586504890441425614269911851676353029196613431041815334370045236239683553328005073084341373012174095505678654854429195228372473725584417104573827885849934745009882336883994394751773870921428108854880006369865072646006750152343037112283742375873033888668597801433619010307579638682298219123765055204805227434831751208891245567468831862782541799123975989217650511754861032687452192053410143223051741553191689552495103240490410445432146128085668811002801040702798647150233240935130183804506260573045031575363096780143182557432920918083935775822042220397756055622231707555249580695535172957343213252113459006334685958302216583410663133515623738869903625471314797535698500396083382872595176770986790440623844761226712279407178685655342604115625438722507412039217774608386277922381857652700425284416172040914038596886918114406757983984510303065351115536880525156512565349787804022415575136288336054747462347928437135668070419605302635674174793866567676575263730219514061477011127391444813662033924804872834562332139114255737301055658672851954834482141671260183539968884953262536660259460687031340601314315650825404192985223368617847341079138691173366556405172409468936971337376664844105124424219692599840228384715757016245376511439046576273719731379874071547236212688382992368278816924710233321355581068640620181065258824761608921035357459143682282659588386092691420483478334044999385304042225750054704728655809761367419005641834896091209433978586837435660904188690598374140820284491555126428081907295435473426613193059645991521573803985755436580234605012115175488960464184871769478148747482204011912717624842436655213321908867857918648827224192052171991938280915745223452834397242103045510998724268838617769477785782169819792838012310768992032470090410441755722180034515541109011985188206764693798292103097292728879557753123054719900635989581619104376600073102147150596358271810862526512069500518716905207623997429931506451050443389232024244425665135047048974284976132394282922548546411417805880258243738586375621240125289852372412586366238973467427728082083042298929531607452491811204655031697759822294870848129541990018649254586949256791901727747914625016216750832674644274716053741795657644113860802462821627022237283966750815894418647322989431881631638941109215155133764096427220926533250707307997146120464545184969279026634603259822984178529581734515050352378588423469338205097133773554348602042849705748412898631909369864957997679124682950615229982812741373097922652157512791007013209596667632447117803911363628156202173460106987975351306202132098860030029658802016518858592869881294145665151647830043331790708521413373174430993106382382058957473645471421072435207971206099530364753010109072993954373274907638098824783065345865264662900370534207627289714583910711526806442538776799401154831874871077676128781393742470324787601417318155206909775633071852000788622003078006146658917015110123413529433721922293089966581793455097403136856269692291304427515388057671979414270644050433970361200131724580182020177566586748863591814382776310845841012155350522421627897725965688801784013557179579097013327114316195443494892368626615589922379781316158501945074717947950002273516807950632413563496550091388911559116501263005276254608532328534853690055207837842043398388325253059113905551938035681087307625622592574978792411146504113251611890000135271993501874552364693523015143990485247771528004483703078510449796657802725116570398470858393889595334765162946765165153092546668643036933601871149080085512239117957274079187675800233993785306632825965208813417720041577086310234311315101240281431726013347057151606734020047636192802053521485636722060344898661624712710457449713164525675914175436480141145695654291542820539158623425891804884380138107977623731965612197237933776789999698000866671894192760899021361184961949838392681031799293698886539127535832538102378838418851079159972029334000688756906214109299799379184670974276605088570394899127570641590802126704373345714767280013933010861462435054463481562321192475643766320660999508682008099703009980169082441859948412733714153372431498596821453166228857725194333359618627736850320171787505439695328968926079247684762577292728646523585886200730715702143978993922490242297908047795258164266404623179027284742230474858288574634424473118011316544530808023141538789632891202026382603274419253961006433502573329039676070880612606682852833816896585775427303383830276671481109625291882489468975411083880175119299625148555446661410862970912557198407952769434878630687607986181311167206773167110893951056047260175685891336416273530047158484804624642033651833410112594056670449078166891342872469320663183060692273928957573415594728533134275564229830135619673405889711616379109027866240356705119753192058609988375809553766808624337064885307639227736885219085501146030134086668817891118968984949359994263594824871783214136286107849931959322914019317023592003805973556296172725181259252453078438829127005741627885104641061996248177371989089425882336933398818386310410684574144840236638059121746006576571027438243014351312819570110723784359119185048906233938430103124061193883449301601937322656239515418295370662464647339934744230954794593390156033358306673227983152072935239529035009948944580914592422250312263113247226579407364989725058108063700635586745982476939351994137442791708844557998524817094082207488658451216254758403964537029995920895445582470566585613367501048498400179101394346562102985953513401523714767978589997757073977822789358744116167435444474466097158041700759785060814285702349363761768245360620766454854209532122141785249141338280653504223053596203189979393157803893516002108396198528754222858940137378844909257407876597951744260856982660769600251939115838539410089478562056298600428861416823478810822206104008938764872731164791424642942506964327793125638875543415460634024087022060656773710629423633678419936558686988932029010782922411467170416920513744896629972440567318393190469649769325563760767508203033385321295673198499061564356514487948778577092403346245210565790951787233198338038898330141336835324870078968690496186770039098300587451148330927105293891852692498117499375974886285470434685272805559536146626058875000020169768780569957749546727209292667067236253532102311780119862540841089472557722590089455397734003561960624077495597248712073561119913036807530953255709352440181691619336751422832190367384832789607430790726137425614220176602011286112419634902636050869161218781635922240703353150181246519108953835005354664389677204257760554542466759343079416671832171806172572780030479886209614496486789062135964166875586821818008909562039700342107654231696919060840867225893537025059386614897303402054715033931936717472929307606981815499844021313919918445971779272748111194926921994135685869825496320909461470240632948040723204470054892402983457294234870952133672288723108228012481690090417924649531110466310169671080909695669508193853419081785580232992305149917819718506607483634047175687800059329091917363024530419218578415341014077226901620468421751447431860867391362905129399323111556120315513650037881428015352810211904980923478295018177297580728309230735203519728154164259144281459653293388918647512176447076227178856045960845518809368450191798609912705819204869155052490022753754103537953352446665466246333442273078869586268440551457374508754333561107611501024081171222904934129525866418245022675721986151967338258424129723808381332341925557369427839512376235569504825347591371933887932038403689119110531216080241713676702858302735709470629121750072052985384111047039937317658223240817352658384023951500097150601327066214128772430409578851841439840371322935541552066399018972513503817359512804222132814164067598183261670790721642875238276800578551206070910763836837784001180106564374106227278350651221951477908027287135830454941737167700348319464291919879109627489971836586569352846013607594798693970664946032960554252171467211798045969477058714273041869217556057375648597000564894836036480300636363970959166826773336577139710892583458312928306633279493149730054356833222438462932485750791630760406421289089415516074032092656881100689696632881309781650472867976520594620821454410058375194649710742753401891639515746641302827010382316937592928393450658569127999787835031920298898527021519280832027540947190817841255950954521455389524275264103417358807293026643634414946079178676981536072407222572692702509406891010957035810367245435888765741682453099220465896176308779675384572172947108879308030492096347795151444386382817835275177048744382138753870797316984174174322388164083572182786246067364237254799101671034630840193907519898901267454413822806106403980049011039667082848542179426513289279454014067699424806366130833681577903217062737178719094519398283830225791617194309241718952933477037556424404255681517803245454270419957539726198165962089045454940457219071324503135140698751155978309869264536002673847613568221474167112167712998653844312630111851592074833786875486341803306399646972479718016818879987777328390396222346285091659733233207433075147540949607040902083575073595997676364083420327352941130313875075721894122378150992870962054204116422808165740722138173537829696708954040408931265787745272555681159918378564078493616552686005915571332369536181894171738195167881031061975809442152947254490824355355482030899467249297109145612349121793838237913176604348096343869591502582001079717337672259667315469935494400450350855670526045619887117997325547962863435249931714787439666147304009062236753748431777625864995353786150471451234327861932976070562190305730959197777762715959495470866397187781065199699854918461057368072055173500198854122692060174384776409106123787921207005684146169303945334746682453012288871785878782125226221029888013954329381869871484649665265024186413643093261602595553021549137788389670563145941116355297778157471434828942709602150032579296415334249100875942472141146840469720000770802702392391897758902036012929049812196032066433458129098069607550451499692624788148881343746326764371117162856034236852279889863873856238197495691821122328408352418057293416365848327855962223399693120658495357843619668475019279018455841155443326789765514173297006733680658767542100421495717277181571526876411250121543299925837377707452308688482200059073829850601316197439672575086948939255271830084221846155591311800203105378323731224356355531854958287511427552552537435629554350522245021382298781348064515741262906830467222841276544748278562328354502142320771784214419785286556529389326134772887854334857660930878352548065121406560687278219615677472720316424242043920542934558104604162953041796910399678430854772072180875777633815209319466834353780393688324299397136636785895887059818654888256008827875898643145015280282219207192142190008869959745477968139271360041972718593958090220783234802035372338477666543048291948860837903086598595482529748285538826586949203568214206692860170829153893762705410969004498109461557775427932808857965906079874351652468820966283823754105565962509010463566480705532172033272999202318775090040795270599472245415555038784524017572758518338297777031185016676417439758605259424222207414321126496043952058012606185786572270648092428016129605030495753432949039815711862827973273616929473870615151994540976354533585251851039915226549631498165385312815654415360727939574072618994777494809871911355431810211241964598025566342672237357584145062946293698501122759368787830122828483905856544636163271406529627788593852108559574572576632530417405188275019941703686208035227060434124002596891858705646373199219360256583680268759205793063318094404378803048909318968063619074602015735299348980824171841523822787434354965030458078408303063279060790919293572840683763724569589620480868687137961773666430910088233902763303316795870266745841571079827121749026362642330276926418271217402624139363900001009427154030073845120187302621940519204406037410496332292122332527134830585258956158355046783729111045172499397547967508189741797727907679188906733833428361698473219162423865663819927096175977923569042674041500558209919312789894037295447293883288695061589571596189340441892700476807857635709502664217414358347039604050209901545875533694521999625969102399468976263962495507690104541341362832777269439119543193378972589204705211936831313598375608050698875901745243681721163538170488906917511525058934890601704652971915400097909025114609148850236664009626929007534651925702838134075668250271743290414642646614456000500072786423702111151221446312762808504138611162279074177909137495732530229355429011296531662247501912622305061100969841586598708748248607239766121367869839187565529399370440684677580726358469943872407920282500806548863834217087202702691302549169544618478430325479968961267376386076217042313907295428725770116355481981884785569580390951943340276095109621279705295386279450315490010079993710050448589641666035180849745721658242410665848581765785145169511009623959430040852067433763849994381897042738712629193523985607993121840044564027476584598974088869128690355268731464969296808986065479534778485960336624849115783538670324512324743253647316184991140370535307500530236091084392549370078720145781653825159477518345799474731057539524751592949919382594923652925439908782175843097488268317092889156688384844436042464157987143333197253464282827276712834208106503733964812427711698716097980252264164359204176288074434171455763943517254671235182405066313450564520217964112040253931113460968950902932093213600807973594942722956058666451058813952492663688022894606730580733959303767456083319518513024903789984111889407052235305119003135789218097502151573117335749229476525602708722530228925099309729545069351933667592866924284950348914601870606344897688837171344358459901322019488975275077091901080488331288498055772170448127984312562521337493133042517576123242880396677529164907927858613791605694559960285221713763702772696354356454160727511966097756482877415666283342553728035549698011623603934967317217311964368332495809174167182270937273528835205318904359794369838193747850502005424678898216949045321435018149127118863082819143749621083890675871932577334831779637027483768343354209629289352595403837464772442711736213045293177295789419887447850547633552842447976803841471460707575863175558756641701337510694237732529183610609204985014666767497885608287326973484073506238003625006956338548178556795426034625269070088117661634832745770035791153816517922721090519231088850127840024206012435910827404004816266383634772363779600758307888802904723676760765882087290798594935949625595601290571794271849676285603968283196790684554545266561285779063525076879979346321001181607158648109731169818916719511377657824656336090062037113599053836963190837021146574258516416512155687661334309279391380707670472439326703771860775976806408059701670411136683089464090907413550859839007141825949976340949768707758763102890282091838591491737697501201335770041368095201824399136004568394575505452975093239895408651851489919677764182820746698170141585733870914922025526686073082370426922649113845444961812077621361590438497658302561269372353636353271791571360656458339030971964388902736045093972748882198162106727372052598774611903121215478192974613095449332298400992178351132691226978932090929115616442075382608294602034768860148634316079092467728494173011446463982395420902685397262873212838025974425534032375449576179062323425373859502980705700030904638570138792027523204109931526841274923321642106200756366496169852582270999580668586690846232642797667212220385733677418313666363124594035007812898071011053370696515173095983062857601421088828996380102804457429311859384499397730632422149519735418697751090608742045096410657157228214392569032551184914973398914847057442412434648293394095035740870902474872967585962467538562200098975347901633788927701511908430184837884752276328796646007992391464478339720635717633875480236937328224989745186595393772402816445698693025998326167164353872495129421728031400752591915181366527740709359186870584862197564544412082165113244095132933091837205448700602152505493794029166639917122672317106844214782260737160360313547517340869377347153280764838537325266235836567123562290020294709645830089831149849845289915611583231075795716518137251674501879611586984034314115195839744978913607895118052551935603012180682271334480426580175525234439347176330109742450710124795650624754778091947676795514364298421380873316717622491183142880295476927681883257376218079954714566626839036833786176961438773842886223309541293079025054763874992800983774247653878403239518714146863252738510960255814627323746667399763656531659875177007329732502855038319255761194735644258072227888669238092875205224215768772503822980572755700290053775456326117958782984816354908321606220976505400334601495272671402522696713699889554248455621786630919054230254363332194013766610998899916512008309592368889960417872244371785699223938822119499929230247375933962433321111325764269445695118981820986108249444481256048072662308690994150769734993093927165871219532440490604379441039815814034603146354015086096947293911787961851251041312687161743746585552326070616027631618148694230959068011123247488449275610325226427510375575365191956104913095385801872099499605317544471679782030908493173465577271939235414149974381080671826423603164639323672831065705559166637192251536995146661814415173092920855811384127145570015964949707841144758636776251647909042836776399967984456192832314987841197061741323551648848115778947094536222238175307477915163871514904520030462220425344686671303374609259237905707164948393893910960159950619876517300860180419343837883827976448543665618212045602268796144130658377087911546125254633207485726710975517196903352798983355366917756421447567257892128010897405982141662867970701930149097972334563612838551016350124811859805760877158974308971021467358264049316245524308374816176450399493629905709501943049687377154205810709509600061296362819319413125444181357204939923818025810465345669791231639122689992032289562490837391854549263071881861516443431757670524906388073592723534281141262836188047137324856097058704350306283457094633620922267421277303561893289258154620097283108758498204176311104226722293512024179466186219817663968805268538235391919220840558760620648017844021804215453338066076145395713289178313795029438991427527039435955692765436108467815867894147553387221942467078723901973172691815059623915782231634728409751000245161269131801594267287957039888688802814321505010048367685698615538737153617527377754747246577485476777598643315097196255269171762071415588995905315290784485620792923075735558964379027891476180410296455950750677167450201213259529604616047091544289304708208762300217922707961484288772322257033109848349348055096119591716935563075810763813823400713836758187434927915826433501051156825841498936048556793631384100060015657432424894489030826099959909623080549950371503522229449020591131253015089796268973440551722622236305027631164426057431313354722549876557142115438484962947007957744657234137368926409788979937466974973329608740481355051068645629300617006217292327501208875533515265350277158498647777721240150019275022029209369208410997578918347486529557618758108476660114090218406712356504130598735616222475247107434620944918242728400148330663141013557247552737377969895361291770543850624962182574492310676358238744737528863492772410792605532736431875967241919407622677172348120945142941151282267872217310866946429787979047097112180817302609113735605280022176625192306399545510479007116114777401262041535093902310693248592806558894972582069257877737286564435627717966987335973104039319569267364005008316652254241403813246917241728616540895075878855540628609602727998025881888789811378293037679180670699665407471533878324279702224682602223557599968868703709854833291843301063366088121375808002681068817962753568141139896947489344396027144559212067296736138156715686785003046230795375201843837059805347404216358211524082631192502282134310754545769555789779554531796988522723116699052707065162093981525069016666451620374990853018831326049945846709625556163330249584414418996217836284506255353799072182106959165885165332380728251318666221669445715368229804298566740073242462204489529511585611268400946824665133727344090086726387232951466242273441094305564251280735092275397163980619599033677263713163171391503534156630771762149139870377565799985362505217295522424642031196997456169251881625835870380275796820788663077231327022096250115643280982587578543918041185357278756075198677291737208650982325103729667994353981357923979693577182148332227602650800440280948857333251470730854400900375596039174633602017511488548731739117562237112998589717523930338804255253033681844947079964828352488832355768474949800759828516410484273806311608984472315193172971410336632909568189416666449303278827870489748173322148144743102033255826572642853446316339655674546300865562183400223967747071014142167106613676181498247909505631781059192327767399086268114557625407808916931247130006299679251481111348029772921092263836623947287037896565876310276096287656746122730867378065883036140536774299749785847172842740920872928917540544529124399360613723553437029765184643600907348639885557453430984222808749007991609675622494110943131030722343596233544463272227760359900151378176400016157564790609810798455310894490307628293793782576128465477226527564322788619731338137116656850643374183258943574265152048817651159562733731857198731028911152173771915833292572481337010063168383684399609469010350571735519401094674659371391996699763249006528382026549592302136181723482653358245344548103465135430012340747994739089672451194019848253656250944449851754232954547909620422392666966806314557159388396970411391399839107870091652775736215971357779623270386979330639138122149491417640047280533372350209254721841941684068220133247012557101744154470980173781608007783147716506370257027457960466627548575111893555163659286016422463786115725209019221939012897506610436048556499274012252988084574451130633502620003739930894322124724825549414954315281032574613389326425466791836251747031920650764832722376899509932095148890383600597294786437149909197277900583180909455550089590955269213586990691194693164526246168381315360615947618357683114578919602166486143117811192739228133919043891589453646195922585882883002677496120739690036134166310767742108627601153298962351621013066927539457285109021701987543271343628114467834679129428757372985721998272771025218534961325682099686074251193459694882760178915313911302053358743810056334755664796847222005345376353443943505124011729736981636952441285128596942785393171091567882190676508060772997701822727764499196199830647681211031777780440163880696198941495368575501051629307106006898874569740134555719461410215195574300681714877600205823325664072544413949913302517549376008227209055554326380677474521640921308866754546742238465986090432406825782883524113958447946882808397909179083577755630257426790829119522967007381092686537102955421246618992173493085658005433578132117627827068809455593334618881583268618363418016513545676748103218954483377978793732425035747587417237869950430929258357237944446480555565354881036915576942585855988286018491550913125167635615121565488183977857942352148433435546990020481106015035978984853730082613578060947181139084447202655209936988268423380763617549430002101113196380699006593985536692136720385818109338725488625519869493378137547292748452831273479519555092300526608736693776791647468239494267193064855808343757672915536655769432259871784464667593310760985983443077534814214823040893497051714220174901980938567453319800750885677628650841181157612450726583112660584004712144982487258987311049569586722953234051265302639728800098783697091586039642253665377255142019459531950631859148038904901843408232172666031448048779004295727502274771910933810010098206065088785837067799864308552939706560475729039202619046686509215730062870497718776130921677441493194924776458835218956526536214904398474834904206586503997180529988452248558746155412458831141143075072006042549359527582734408457059056111241801267251283674338531333934686912677968238677634127478388835013118150613962446769681135975212543854025481309393546852043081241956159604757842367197310345388672997227378360482034119798888457853644064557886796513075806948066945134173387343191931340198600301811291107074526069282213922720491043188691154253202938281507045040216286502202964237512436764556615520134131030521016682835309636152419990108151098763225386077580956788235911161461305672935437974033687496856083062300085546602995251783279793211054130515166519523086802551490464584914964585595968177680602564607725838204007270829529603817955369774713966035105627872495406866557308394473655049773493008954367196751397212479209015372293728638435106304294934739379443341173713129117216674276653602186363422966317103468634103741362580480755173809101891993252299814575828921948638849830006117640109055967706761265186895080474386478955309666160953742813234964053873021507307307521009239330010315633931725964381538002392916594285666207558797950862789074094921333166357047508910112569416690441453449347067823202688914195375805960081882399746876225515936555469596941612831059471758328624035781454738698685986027658530847594705198661444791603865858832405758085674734626566945456268160993016461272470590033775988241763138952107904077143694449977134835464429310557816386606608367022183381020456989027121477478840167066801059571961519956307508056000646511075512115665983527222057375520303482285993621463225670061750838967071294644489662154006151561322689093349075912155747341222441044488781243216214853078299754830414708669992906425298216712631346909690386026473594032538002819868847946175656269697351085209367029255532353847122759532863283400741520425742079215536047816858201439820152714455635085786324017530585049369061703290955951918559948744118302037345043148915271542557943113782861263743822288268876835175808435896548788242362512967475909477750125843784805701866875701167012496778070326820523855132023900897531194698765724583466310467259662466773785789964747432246284074958294961545958823951405972338046467440047727022106938850216019713945773553035511467692161758585794390654508603103292602806353473287568408481956381067619366965738791467263103906966627608114923556274164582218164056275922161823052829385162963254341743997214105168984429693240152229336021720293578642053257090172482659908757916226092428031112039572440607979480841708615438500815735079121188949738375368452966548739396767479454082268843175138492149392825821083168246734334704369686849830172516160819723309385256454559955762408212710282063200061202771450463181463843565726896993725018620834652290643722520644806113971390670730867902084662489960389702647911005528248922505457893086794236271456977386518884798819109029970545533865220548321415665467995479962922778055702443460535998455197072076951655723642054655797756776864350471451845009269410373072096124908778039099224451458214009874294492025242722577573913747483340664949751397418509183845967499957648693779962197981047093812763292185008629073284402618402733639834025239491417807306264271277292188311273029436535363561597995796248855212106904258252793571592090617803730430974747683654399485209538148893644677536033877783199953466523159289007191291207494984323697083146811632775524491492003606095037742083609970620976528685659531927980239780287647512507818997187840692040781157230288586779843341824372206287241905725312401115078578626394120209872371243703852859632164710831500249536902683921592463477230850731081608318440660119302974924049493777707584353390662874122677617167588826761820493907386198399736049457662295260065269601743057206767653855297742102290215017007299688110734347648880233303820599699796805976962241586985222914041404202708983342639850842548468743480978381696865850010683229404366776948386892756505156694028722831239570380775091268298513998307724709423282886383003251773748880018628841856588322436357944787890946436218969361028543084464775295709020038281434838846942923705483167817584415319859490183525932610582838587319221630880563461319083409907591559378832642390284016801944722444700212959553059772279305618951399726875188129982708295870315153795527730321410361500423985832757416830132030504102023026875163187355422128149026069804372758543541758762855885801564499470288846786985538228393479646833555790682698032867354225963115736837369764197580930923807732244123360696824098545357512520114635561225089959368194387676103678607269632740183458607830161427148151176790315423133786281083608208216221945678376069073863470719919912344445353741317875434367135015024849151255560904689377724775636190123998985011528154554629210010085171574901183968237039373521974219884688287316125557336413348830662030997181687420502114539348616188032357511324781444401677848475161815324012680492034624443864542358150386828161775347115047173035528630514660491086502893593175325909101825917540172186447267318865219128167429071380442304547892781322009924736027458934032334382601110239214882050764090650545379222711807217491189017224927436679399768028393343986946389058287661603356880872834272160965046611264167318206272822491453954866063782959400570451771678885185681058564165510633425884771247890468050221865137823890738154375390021816506065464027208388405231220082778086904437968684274907493852222484025219344524820104631113733685051738549311156444650162864483626904463251221160729256913437199387297359491438871325891653337197620397532610400605265892327662303278008607243565509034363139878125834202634446281904450152021599279880915085009194441182473752927250819582600176340763508765943815598641920459169337667905712076460514863182675082803927166099412865536114995999800799642205186235704129668167800792986990609203064564158375097283400210408192647417231873849077930801460914985629369926340377339488328396244915727370557686764108152383537451754679433631930503342732353955445155314915708171964685703265651761218547340447583553926823051414963585476004430280994035131264593143307981442526559072444005058668671014073120330423690687370463435860198489158646965554363436444256235192665329098624423291061604290795534607785235777898618928876118555306721282005513313207775916115388422120655895229193401369807658343673930641191627867851847199386460482972906929318357605192870099592684566576074112270507874478560926112799270084058205993200113278681579109812533049587220699612778392558418387891606071844170459355610503005374220744834891305384160138555310552811521265927004859799580509196673231915762280499669856339243451452151291168915001954583270988954462903140949572779094540468179127387588601277786008066971418881725212661690747328848770914721534574433245994135001985769370818709956763974506865374572596481199899367981997417206879862989571414038939372025658679470975840400435313629105286638663621663528879049271172199504790206143636155282065495685724096677022910322258804488052873649509476636741355737847692695905731982517264743254865534075473387791634192226934483318867163383677339442707167528879237491130741214781138242162569295542870199961133025303855031282980610713086542864695348664542225597962128776439845415947531931987165571637040923743751606558122453531525939699303882576451629263448378150881541050144853943648258624687335019331540907578214344905018476715821533293924087784892390621998144596497970165448570902995476096708639503777241783229488248818657175837708997693190519786675719433097806982380734078461622732569005965505909064191388696556404785927792848059314356365940381498383138258577650804843046426856896313399990965623958756222501598402391227347607311992150750632252074791509460093575686247117365302311442125098693349928575520561239869688209555655287366127665195670137927988339118474116605054324861301093706410468863362234377956328787178557241745945439045954957671524182406878140005786316585711205853473381215631402044100399282957239511504788619336591669999729965522753107538912779992060457789133921211144226980498818421735611237385873077581899127620294771752067150715609937769588028148201390165137205451851292637793014797832589946993359119074721161972294520965107606116566912338795701298450342094829814773148812359153670264305761971490303488009638604070012679858169412035297127903924217474835784254017113433049812374495211094620986323526634762692667420826477461930309621303239719266498289756067221040269440602201434462421179632844878897539336960902093967997603998392598660271148881964237163750558303866656440851340569366055096494352419630467572873245362097675209510212504802203409689812126698767078740632893092723950670550382612941724154042101776916585240428788368164267193652056127788782294441240760915152768195553470425950945643224286869072460560565172226904162429937345342972693738179071903772576617198440054838260146515307196814038329071534818683452501028871273265136196435561554536970621991707696424825123462245967315965195586217894187459717843306604089450498606833858706317863459387526554689041210284122715615865754117975487265799242392600231843401488231426533425804790643776808569604897863554097609745083138427779097645667662696943354408582388077410473407476644630571262619409642741407304502811637930931515816109510152305247324157923112354785229277928440684368252186821375348064571081593508477544425395436590333360212058823098919547706505562909572166526293589619353235683211886545998187984962634374615992016454268057089444570681028498232181821700848232469917068375715760097598682419790890836663227763816154459714119233427626739291104276803815277040877355353653763295614552258029383168468691787354676548062384896889016155957108513511189285422293047195932769864627315049796926422461224647882914195007071022086749960753742591613157385209175511927683981686554237888653732626044092309966758315816185498155591731940724163941610230655985090727288075262362113683538083504287798134481567848105694229428304330285565252496549716514889029436411112831598876966761391644463271539660776865872306251764670409128039757360532630791661003186330181741166771043693824111712674028861349108579014407941820207363983649413081549728007026338758779289086209418827666692936540059555326575502315969517230584290457577716257503127718067278987379434025204761472606055519167848841639155624660061343814344913958950106982142489158479823134479180121763527639069633932406770752703308417941755021415568169413451071921636838453303930382871242818486007537223874280045652737089855657774961385742568028421004624982571330840713361845824574992429641361041098645760975284275399242541431641777715659784367580242394128743025181698387457480102629145082503002203500254736818115666852929637451840785768936324369707269332553229728994545151632006051558457933073955591414716646633758698005859834381710460080698771856946536042379773332805265546112248223177586314046710938331924722654878219221155944426841598931449678520111813350840011461015545896844316880203128416085823572661370415194480870687221501495963487444196123674465587233931142719404257341435286913144481920589822590361429220979910227361738307731347908467313830409172696012349401698958895496042285007380805355429476476008727415173646147425855879623709395848660017786051992271694693339135379278985757706331551869426570800565610570531433479622217155905178496727535399684185079690147761192938174553821577201044601818959233671972930495012911454745748416719821787128870747088794153644183712588665370694891315795385803156895816194452352397282956234306350788362059524876962006550321006424028515944033439234347385626041151708208683945398285915901600406711741325863888667250992228220954522028830917173713389212651489268284425570913969921103022127560143669947793388792583185839820408347954762122096768822533019133801173906780579566569474191614194591428399404377688940174392478184063546922898484619640953364501233947792886254229716875442674870561469005662336333087641322179660537352307634336010585848401975236074196845808087483851710229411574970864975639351547013485420286736820725273872115208302873001391599308482702352902340870029285044972823922320452313896995649149883920459033022306705325728043677816951561620819285621274505376366699234449597470518864058754160818952590919156140098188637620136375206417265410707324605613528853516949943108139238162234746027654992721945739359305002930884352850457917642515657422478457389077652180120966565615630669825761951161058039462868029409976774736193251924699159835164319499023557705307431183819480363567360969825696827815623374334783972655905573824927278703777510912372413523953073744741408619800890002759826426217833965237195251990133432591356812612196230990393794347280861847911666548240542024688112775986599245086141091180843397346266738961269280251744057547319264107815653437033797139718210994452569871299706746858512364446217628259013086436020564360886696132710562343481983139785565535504460603876470964885903211643597832672814863770658530735538765117584980324375908907397301423340464918708668782701614407149233052962585565391855592970024677190053680060287702693912809039686212249454094549321209957288393721962592767328363672707991225611403263853915988583314205781767392848746895518991079734903132392130938417579061958280139670105839212164431753505855889749235898490141173790417729787843708801999499436684681165151026579110067409456719497062201277585084990208994336670119794354726513244609852421872567487197803366786443083852232290514716586978389958787409346977015565393193576953093570133954918890703891054209849106651661760945072484701118570551384261186697546755458539537962984299546167409952153506202521252281577728675101257848954285741382178875714404282416689752769536601350024587141242854542014043699298209461072913132310635580169874764933948793128394099314787262536973417950255250285500766246309606881417733145250661212572362422495662917804532713902641674827376871812262619095584591301032575330822877057149863745263852155937121926531032020779163207974698339503785937601410860427422948606467120798295830658873739579529196105773947071752284506926178294528032640791399036997465286658533694847761675601928011664980500215693491697612633734584175433589067676042930337722331010407079725453383182043002612317804771214832397140732342240426099967321301387717614335688240150411142352707147206019022861522596776840880130974247991008376278646557624599980535946368326028307345505117789981571415775786850487862491336990894447497770390662522183367877823454540839893567754385887561977852001849407035029078793446619624523545522921210759416346567731882117258365774356954433295460111940438681491321825808351820315687150940444033802136141126749004406091156303677027687190635873022281137628759685884434868817807023391071601921340924747850345208103373727724500618926669462051904526620200724266672266773188627935099466922937382180229203183281772673983514761405452966332502110397094602673087388479259236053986585297019503510367799284603576390067823998625552809823159427708429859392069603360955224357071333506534577355881107976229706024779669865410885614027159606981037883949304798518519589196137251342968596230728547163513964169113811822042530472847456660756241430753945803642504184636933582191307539026584240714573667334662795731601004471572989056053134047697525774027008873024199304317593550532406892096649469939059029495222606976264786027130818694626816527862108140935648584258355803329644062323618164815475851762131944637055972748119343329500206862502819994511794119862371038567985569407818694813010418639295895009871743147491358613968123399928999729403795732921989033308222621641930266461564276518847523906834853310178238706382059903304694645776956659817921913842562313467683945472406192599949040033157104347110871543085286635192923980903310327675320090320008075580007902376869005404496319101928501783215170380612152987499993361664913303802508948299175687663274132570847424380804515633764328326797738615990685649390849523171456358632185768095531574163626249955628685810349660863004172844604565187582789364224914705638790211828660792255382246616771600336634613025062482441119289713316045423176883794992332174356189161515577876655175817521690664334000379036391888994319147489957373101247242624241525554477563959604995908503458756325934621703777248522221012691055294825919976647383582116243985288691223486505774973407809595307873346917650002143686253172990599987281631570063105100001326752830548452405579467262008599407303099010004866375367537834616159090506543267109691045821509232688292243542630804516206159018134000208795103253220409014537795953408153176094510195722400892541042099804274267903289559321508716236640863736501055340565470899853580714332340466184182781260685804191899307586361303429000378916854298668279489961662377899554030957964436698952548506243190027449299238792521192859216757625615629447519906244897208906131116276046753996323116639899754746596174751656701337388865904541101684714092500827678782979130985803461475477773050314958600510837743069463060365968058759203270400617892214247503717058356565384727173353270364540840621787771970929845190308229875385408324873522087172015273662246680713190907249490316494313960441904990923569913223987649652548997827315703780584535160543394036455245248220607314458019359413772300123687815651171665443484799492441619143083284604173171853327079842324422163912924473195898677427527395927623728866060746296916330639121723792429157212847564993010755905489684241243394412036336034063916996986948518081453032610053178594670198016409724364161634551710513666269276269235332502110979359972629970412914926255876838833444143279356116548940125930398552791769975722803245649273992706126293473655964735466827966306260810987305408186320132280615359318605510852234760221196340514130013126547014093664254499078279885112402813456215265049629371061620843245305765287376941149453576853160313435077056725475562672819674821736308390053864940531852546598793904698550798470652689245975818115244071744536583895904262970481487450886347867158688352436153312579396557014012666214021415736707803054729004656205121157009137374607317728337251748868049282101958155199324301751107690118808277479946888886302796472978210998469760223732546933373908479543285554228824817262566273508419574612058629430276332236683510905144014162439437427561886711296820860573612551711354000744329451780419798631477155039139492969428017270605536181372976417430503470052547210509685382275293718444846213553477695770299671061364410476988627682736772598114575009241427008815793267413910425225817293047673173751897127790871989743254881158870774696886698192614849652128368685832923983194350850635024634518889782356742794763849273250627657011348150963867768745971795230133222332074697859084612499633252941862440978723943883245424090181140023470911286139019801383919260738397621999372719155913612769471752541450692083918812741458352667460423478878714835666154916561495337357189036356021545930560840772879355822755657240011824505844467187214924346686077719786085651405793629656520326797143014539633251077564506960833598806744138703500069363563301814929866619804532184744816280722209306421274363592363948537660721399250632744908499577942024600638750662220316111799167385314326900765127516018546662974840812676251507202992265260922552325449332273197647615589163182587704883508203849498630309352438247715540260785996331008874247485994517143550830627169662795673614816258791054816473766520888219000822364994881716870205668756538656340965826115425877671306539686962040368249657142460264137902039743327080768283240880373033009746100758988365462278720298175147181890569933413959717156983870703987117136064635332727608224933084315305989307721394784777780738306455177347148386113235584632274762128676423785344005529954069280192014555091477521359270015242773096358569711270218059042573849958072136930352084643559470043646812533922708821358667755990549336481356589659030622617615177073115760351635870096718561975608141247389999680690182409314024878346292678761591807950951680320447210542108815989682545048252917106916423105751233489769329631751450479855420082571231944926953471352061139068667692403181022092713302282389350405522710860517627068645619960919541331224763194424188818903174603431220973742516008125062190811586188076429372240577112302168709213301628040077561580759510353051153900971721078618140494898647608493971779714606443219498613348564486070585862543432130002532062587622122403815585015163176439626553008205879099531765506269741429301538785802181571023574600139529319666402609294161253745186328627346589075911218894351569508390392666606255034277251840746918194546788980330031465873651684992868646906002377386511259272887718930482488539729030493434423128230092130332863852399205356556225956857384101607023620902879026685946741579994093176160397745679715145616103940507742950716671112534340002636890599466189544236523318239092133478652125669589891169279082200128253736942185103633727294208884423550410016986039952019541717416336343683107745932179619139798555377163292323865456273128239653331205445864762673527564280767618904753459686981458057884650372322430347806213348546110216833615354616424138662728779769504074581069683873278439195101661065929485911298879509607064281071732416581482482553103841294533159328992426500324849903241807511207825944408236604342138488876616921775542850538618873984583221254584251464217099323612464169062419989329669470153471293538208798196296384750122433428600691053835250058462634462231076472887969964131759965252757327834360349783818058482317773162231899219906313683856150463530635010316292385987003153932610918337520565675544082572883703225572460923140569472505747821013391409150240052668409242222195371433510498975058505772988461632518923231247797724913344367763214557453815959659552755997865639431486968987141948703339171244700290515678962101650608243912188789893048075782209835873312784160104573845228124676095511469510480091342954712466977623376673464127428564019291548945265732014527174000560550188632582337275311929179926792870476089842495282556003989055713300109796610822243592091712966494320499357761162763785790394326524529822215092698365472700959214323689862543745168272702872539167890676071786299077903634219608984695967871175881806206678288576003356409567533147973896228305954731212263459818542787547773719355242604553033932731820979420530482741989213728144961526744836794473568523072420701315466755506930911878646104668398252681346415835550336521153203670539283482876344325364785741041319180213676068342505393548360563739253023343473602475345712311320026865322792152689913987732182284107919744922737044967895014342482581034087970225971442289224928418082922017961760242844701201809097186905596637737635896982728190505430436102582042149298042901801214205570672491350419702996473276211101349691927743827440791880748275282557137419182647112295143611386977284827232926788383431672262222767379468464387290162848673966550444801535205613218841915640407667916814366779941436662131988963518801610059229171332572643430427865724535101202256841124731131584924023447723109167334923473850902844741019853249624218609518911559402125477009076144952613192131915438951286692421643486441307032223699510071921082544102590026572493986360225278069291489724406306100933854230546037028659771372741908056976476045713723086984729688219050613701717400803825878862878452731863249114023645813897091809100668143199799190570527834288227758597764409639936581329658163658679118327419031450699669858851520040484495257007405831537173333267075112151394324579681854213616296307307244398905939038686378336047493395450139254078325678652075455336844115179598304994683714521833017232908682809851593571033537369772130904922070599288280320904013575410645267150915970833576866569981451545915330151009831414775081275159577159418444802232914217792265202361870928637222843462033686988362576723288888734992564918580163266601732925184164066165993976584652145625246430693249491236731096393678366737380838093219227800354095129145798472625763616651737335264206467842488487669685189832771413870953448226139335839023662014973789569965981461379984209040441270419398743114131638251034707176507241411600486898736015381491349162586130078915317849622208283276904197884922348732246249213817651746502691489705647490261859781629786787530020561958202997417893375952506613248510974578662415437424962725448705091161257655054651724764589448783148746338023238725451046573639352530532860338271929746531071217603874035850628954900421681281986833618967725237528709031562214297087123647881304695410790309391771011064842793535155593019329824102438683300672123003848664050470637647548266614398093934297057586645667424262926853029045959577589442351958232943846695649277382359985731035698365753226519447504448187474499088061525379040924345258724321155470659621930541269941862684461538741721316414585597329468392318459490100646775509245478825296351939657576348506867268972247281442812582628064753798719781208234272847933887246074422196276143442399636878244755016762184567547380533762721648642668983971629924373668417631825452394706382678245643952889850588294393891072381453598631680292183069979939246869420210314088967909892566198005438473634016896685690589605022439389060953212084684156145288086385271563562136585299255760245566223754506334964358522509117362455731182917169030946144630615232448228562702828875613129344624231805657244228450069956487915976342830056778264909187511064953087473431838977520668491695501781903756247514260312014257213528615490094979424795834972935960663329282788842868046987378554590656162779459663826649886062851519343122592994971665955051021145505371432377475680252328914418916143015298736458306144207252319490160601408823630726776358603778224208428054169494009803081815680548435042281686255277388395263382030433268107298898887039098205094946278447964388038398104758518489987099384714528989254287610756211278606805525775884303324310526950317733476907636644212542660240604427815545173324955206736125930230922143048965821450094860284086875054679623574079943277895470822346409637777757043186275427462290976978675247882203691938080020914611176525485993334143852242441363754817360546731744694538920152859777102634470779985193668990447186432460530147950165052085581398153869797085347877651998635692370225679570601391793448095879461419540873554945879128348100714634391423070329307069293545354191056160989459629460278474410652295194199678975911552410826914745890207734159760547692512964957732587056889641125702153636900038524246525459570292053411629234928302726606822965212526124815761834416765300679960099181742381218347698902015794036282852934797483755108857682312976951874996920101340882903663965148369711573410168473956975041278213702630225242000983870541337486458440674183372231214488802974557360141296338457698387773450050309117351154619041110517401763662680419484111639671953431073220915684181069421253109233351795491848989675428867444283238843729856540875009426764683651679852997214675010656970169633885585290151123963131678057202948996929089289198339705251389431225672934784036576117770874868774801785866210740788401059031086445495374488249963293870624312329820229818259499357084845664133519303963205447851226007077815073329588238959365665672663599509721162920970883878005739333166249741860103675529014109905733333950756019824419258987045976399885017358707575459542751831959285127148673987983231699812296029999927601968396763572408654052034515926267169872801796574261151326264424416809849410564872823910320983764798789188579744200294859380655050073549387188885203709100371168475061636948709870859916201753017991219312762642931900596390863800770215163671258141199503279708689335085573852868588397742633033251076534814880334517872207302953420497898069387247316958232836574584910716115359283933514697161409173991142834381496737005592664064274670713262848207673298688641524668080997209402730008046372589492766600551558128630679396517121929235684298987557556534217977829070746034110792406423283809004390508956117292927045035455480185147380238936001855637308917847103286195618379923677158467440562361136723037025369103050173413178542030291434398583695848406286160151301361608146144467424808225644532176916856136362932106703076884158273629968641902829312384137708040041266459832492946720661205850695688679663759494710574520678722914659046792549431091942767867375484435013386783012002537644095322750238899278798756815254175756462076391192578073013860754301726272486900389732554203129756166149606937024239092949287820451883129213790083627112217917212358999296612156362899317845594740836255445657814614784870318501275283303514833544167224979236829551454562945840610362521244971192877323176420785952855262100976730585652017591421057265562451742346532058684440743478893229834991265321578935651924107862384987803063527670084559641236491733670123698241896477852839515360799283544164337432414290903630180598148428033761718018143103377009139328883361252778707203766030674688750178278658487716621743465790795829898705733195025147974635327482538119203512306324008018758744806700684529341799527252640597649766060105942133769609438643078908387033243458902738191657644324214128758262694118785447266506579303397698146807561297595013211992406250231705991383670904898368381961646832965785603295884691436544427123229606474001446341702493799318001787451910957690510867446715499156979003771838111349339101933869466337975069380786184807659609240705554300905565247079481508791414428538298544756127930069567127652112848931320065561899323871100571537821138234822521678696572745034105141693831735542515082769046604918199395343748874574790410902280194697886193595843382707773566413747798978956183674432351084693569725931066719294345087032012691989504637888706523950687119203446980712955868057949515252138762908374568367378024919908533887707604907649763325399131277878253091415420457752149517010191436279984156546220177499414663714888822626369944952660659986043000810405721885750232281845710842110963371628666129858248520810356415581644080295479827507807693445668227308383629385228884017231049285773089023316442151957174500361354945389586760077707551489076042966268903804434246720138928215663789055073351366960978323451314341240056128143452020842422770001868418580477368801413634617835017442432698623418213292760244266793296165293967906931936011552933690734652558643391056014112184884111036019270118317897065743708212475731278769430782148484688938370728173316280855086133276156604043719429104319494034991438838397861154286819374763290899913896986141701799710587112302646111427470816694071656546904904188587200264525069232313641222347961551726953752821821715069995966720441673744186268654156434540019349218022672886409512746083046818580848534749632491203567633428187269966635030044430880577464497442252799413914739998118939965337504133425444603124774925510968327739168024694515545564464393216814302881756985228013722697111781551057684423295456183629845909155561119040498101973684777258095819245736443901148730842908147633312259246690492977486065788077024033083424391573462876926234635746599659562718716588071890923862714082790760093518417452659991472452262716613780380711568355715664099551595536720887127222785667467997234195791425402977947579061910363804958280215005667892426778284049281197847376275251788305558112463334409568452469949963577859123197601590250824184592765711254719826467259289208349814759177290709378820276736318256008758897134887824298890983156609788425834410916545554489273578103730837946075862303724607510946591499108393292188043551743338955753008409951676221246356124824347583008775168507678329206968784228909758935093771150242278685332954076256293436594898701222566394821274261154388266841444888637456597013200353635275808268732433241781824987997419049296153895966745350354372214195434538687139284657135806344784153855444076302980327860500897654958018580914921588885444454534619945999189939038329565142659213627270477136784299927937861005403194162779694076112256121405541916964063946209377771690971474262336332979892264338948377487200337585058967694457192550825689203310447145529404520422296861947306104449743212039690392354870826791806852767937416892513236525910440325903569298300143139903998811502763421456300637362512497925454238200242504737909865273051708786981942546486263632084413081932658085027687877691467377541116585992150443499366156886944048008283371072691316485839505496542575287590045012353494543172787251493937258461779827716607513636645808316175431197411599485913357398907288252007938604178515017666150304440108924717097164356819795219902113490385270010793324912917695839133410841571210724470477802944206925484560488216451304177069935612799833951321874724212425277286632710683204677254089972657051139648076973703773906563875264005048503942865378943901069343881574037659383334302448345200557235554252827271231996738325581032732480715837692146341613554877335558129528396884439669027716802170226027805398473571273114853822208619545627361736208490854268402106465731779221318568661943893572850714809248310608298541467855353559111123023824695831501354210432826930555540576970193409372673162862139018213796838628101536074829863088664595148181221409206890068627023773925991790829770850848379697812099902388344075176250720264019941848658789001267185067323292691726074897382065501468811772366321903864339814614865522842837919260759301142613803142597553099852385838301589581390403701921311375514431426128417131181115735931300402911526829220889526277236689128852217026745140989505188088492845324459473953415676149578410399793154750761491366238623913069028875539448809870497887500592030698770037176059254004290461365758969805277606086913945020590169728001124403814912860007333953479542707482782255098790185082200220650476192481542311454410086063115598857156178345321087534878753023404947193217809845158412107848418004133548741529498257554545143340078829573895874490912748022731282281859700479772349197275397802787167694158384378822982059713156699872879970680489757705123654060020738035007170117559757097861945714880992629044639683933050548322427662115747951553003312936777336606543353350002135507103413831675395204450317915605575632091003615072772589431395352283813506790498413097136132915497418681644017512019582487233754310715059912711696084139125039729804117572820290401492701601629489431323447497008742066614620900423168581772663740999788690003177764008470337201550769822995433156272120454486113919260474299671221429034771396089997402358024257299769212590325882515422993340633889182135226701928494358320548600204456134369369745283554390344057005991830700316482920503536804217181836556892648460614235426819798432297730753561281554156197591636821960730350268273088779684725560408426871800786495456829025227496777895140520980669724860146244962590183539513515389604748067095807427309371356367776231684212085739191307979463188861665229845118938565086724652818321778768774963569709731428801575645566210255325208295697748010561935652656910556865169401721730678566883463301791385104666089781904314926564083614800221302947179952797858950293809289132683411594184603452716030027814179665750609745874074891478775748473929265181642812403125823005109994967946932105230990381725429496708684128280343216684628647159755521237573571114501342117512419195576591305417942438144099947342838326753402505397895056239734224231796962431675556617706543680883163786440215899343950751084044382047588975511779537467512819577103458439653595915343073458273484705085698100149089922537490415144408212313662475409507344986151253361376945494445388079188808406239035637013313795155619485099663179344403328359461562620193046498181046582665308622150850783075837048553179231336008384402038042270001500473022969598552183602940788970228208890418733293829214265593655860393738043930122683437857208495132236290462154704834398497997215429508177805271792258362652048065992872170337539092227827042268243631555988790976524923670600823055580072929333777249215619578335197420145937716917516991858882954598741121865998973363910817861379689321251602860347234423494947800291302186189313629188248805992322696406036858131268799792335024691780063688696371303268566575405781811039799795564757328957554770988838508411306760222533108675785775038861889785288899073689136177126169406787137108740736023627103493788997210135585160863889250710106426026526686310341830533030395263937385726194754591948171341128408948842651204100388832132435333899423103822218354977722199990272514369835364938279452765634749969659820394554242203487213843700447270335545174734787747805304386853266221889225129437622974855014694589869341557282372746030686526299934821149644029222814854806625297790014692176384035953184998740729485399570008974012482071509533760610848113011042678902182925318217971231681914378608942246839601398646516259818662164093020868343664992737211684366912647770728413314504359525334018836694053047003603206581503698821076782861647184712942774837598788469025646412591035127595781753282059539319246128661847234170384435082720396303841408794906244353560351166436848332885287735497704140690265195425511848195500250090811559329143384955501334926422399907460809023097312242842062468301806261004935250057572457350743233719484590417343520242542854425926798771203726006235101657855516381691569547543452744974450153028508862675141236825351864566430027711149606351409676806225587545539925825948059715812686910060914475007047732712677893734423761338102896047008502488076032429168846263262005953609755415290632979059078907701079962383956777678830725680256504521688932991780052891711172003304702817225921716000921221582630291242297172661503200714403493850378338667217774962720335300058017893741399714745069322287543265436268417496110568396303132899367210053079463858459327074758492381400150026464768952623768966161952886980524553966338459148392048506497455558223183305117433164563307461817961574094255895890590941246692549211585158895650975191706705854955723869099272354902803514436442674869966497134184558444174404288080975225028324396785815606191876725155664417079440301355493143191049110446390149863856745467487743913953551038364586841222708172884193051525536890787602112703291291540544361149623675400892433964776876356278829207557190189596876879869912870770837718734802914688423810691818766579995106192410249234878303412943404309773818314075446675295030492933432528934502700754215866560689229707805887102326617275532612408171903938144161629857419727167370586717418983830112397633949283176099792018985518540501266919936857237964516762987253823257999090307763218145520852603797677354718473582983502501097577736045744707119751219749333644379252343890647544573205996785840411674439693571935028413330452152673274866474844470199685465785404242633649083474705530047478422724809987504217630668314783687444103846398631294418618346977046547856819796480610981038491006563860225956957137229581267909046800964744565913119661288061426515118467478378600249133051289897088073856124546465606718834724956923911967065850865869879431443717555801266718331071983623325779570932218424793787438597491941000917226694329904756798217935294302520281386567656542086848590633592275635550546079963939630267907615868195605826297214262423723108702487068818229500908092499216530265203311700894263985581406155032867651212768076303250993084304635305347953521073787359697216823265338833719038441032333696595329438994280740620377358665090146530748772300686255882824118829199890597741159537678165243887247857470588243511420459400731030223565988507464649646127880209755368863715954883656585598092252486371442695600344447333161812774932844326879731627079849279319014464124614901585659771771814877103256422012070837902853715353424287023118347007538347216810273764233422276873656524371005665606110915670006942527071969363677471313852007478944887693307261077765928422302026589072203944058358491321484891696015666801227058525389169699295516276085108709724321183795900739576307869718272121185702381507911349287120326466746728116582425932184719478849187783742744447460639427330757766633711980135958616674045187085125816450225575954670190752770838986399333864134788625269255439690007841778321528033167876417901623851101402286171385132277619613694666192510162884914458992462556840871074315585954740898864249533784974016142619019972350228798891609162799272515081732581590191545095920429430972546368507695338775126311867741083399226630182533840428423337201220144639585504385058417890071255819311352529297731645712971356506160129210406045024152649526754021064926413657962614468345747646510146076607220744425045928485240071752036145321763298894813619293976656901161991628421405643277061145871593403937191477984386196058302136142492023980629831528174194654158853100698276216146612173790410596596595040091743332206653412756363171787893802708027178812152825559715688004388741837954640941948500800916127119427128765112825297420288266495239036600085274263395572749638167930310606387312357536272393269389330036095035375770019972626921115162058139990469720080449767649457618720002202137486409639086336949908051900750839749724164576467477940520668984206671347934308174238617526284714475409905234132655505541055203487404261358676418558429869055958668868449415133063606328601697561144932525197958285850781088580554881280067343130303620094944672120521715898564681185138992227190069418121135363311822224977011731941957186763626795712177958645180604107924405624315890673314443426246369659449829372688211875357384089656960626937915211818397778361665332576828431404951467007240336186683861718259531253139231828394130351659136829202592274864145212472760122477176760078112459032952275171884543926984040825242948368136302996989146906785373156208902204472505399773148524317724195052488982130335335411864811454867402283318655909259744232657471120055880374067073896809624058873002382851577622861323196160983492170136148421799962087429332592717911416604929682079775540077676729928782265483467992132311323469041467177673846705246555496778282833686201787136834452284920870389790368350025863212987694957784108940612824409407596989763666468339727786025626688926380356315471452348328610637271291695234725472289046551561224902021333259669138502423762779182262733402907686054213900098718171952916413933633703110498323386432717234491549897871542742984617057964141487740823777654762232329404110393022280855562333761119706438680956791084073080393982209544905938529243604622763237147595306402748401390077979137977366650586040020630902890428523264807137932234908566882590836016073524447752379874162815015443307278392369109484444015528938781025054378911102364098172517542628321800572565536169982433989553134548790281981442986170986842459958446090948739691977606184805517042740104588759560004068840521454901982127499222159714577417075853138740049580193819590114696202558810792223871851793161098160238348198890592096965988546717956757844204362892178177810691621469526789785203992857442188869610760070982914440104250397552671362160244185495255293388274488116020435610841184815078987209500829141717562576569538596477855332659876079992779539863841733286235128708949327452595050841071899339947845167541448265039542581668455536379012879274351921191340619322193157096276507542949890583634147462969581525899724418764150696943343279929188192171351428786590855284215341197331240932827679453502610437810753218676148835155422674480259594643579554013364404272074353319252543628931876884336870056832691226990212745433878158664397846394768493762963810081109565252721617777320328241933222773544189627509945568611234560403339195332534342576673447563943220138044036113099182104054998599265680492196575673412912466814665225745229124047899177251779065687905560381950580986542739507302276022412886178268576520529202744915629776168489438314062561117746990335815781531591631166865494324956507284392468122736038148870842254871243924662454264209348338787858603963813992958512819828908550788080588855277421907914926142218524170681219872814385011931273888019740627755104909350836069132966704142264742730073539590383878838261949899582022971171975959958357761324055886168502503244917035026513820499877351798222037507893993580015045651050237503727580169749927924930739020839131311171577426117749617793259529812220811018799358525344809565410316693165317225320792142774329519725204552275071244823525203405312086193517354887367686997222449915268314179373740011140557299060439918261564019444261566732735946469677805114938820339672349644069799497329767718997061547199598849803385060898640538207859541631062405860673260793367997847643878425617689504258580576264009153450099135306432457523061567036249346642682304404152646637351670254515284487646654859722801542208295161595077867515022219234839349523823447878429381115580684478317460621650086206309341548824216128367745425451695221839052344153352180745384713212390571098799919573512520830665714331699699237693181993889729652627314102149739408739530330429365017084017826564907474223518954568145428255795504160729194107069260165089589691533659436161725517325808952952342107723440190881034348240782145914222833016588772870905543220979104082580089999249254873180173052070727850788158142760583258736516569704839814745111811697897313532743217149929140674106145444863021169312368809145606751093959081881712386742007892848918049313235749545143856222077446108517531558286327431656616655062983326632085112435713053565599715020185546336837936906805730005735631640792898485852064640676910167049027901605673392730676303095991089161141499274416380301590485413513369742356079747094659326613710884314639781048515940738012030302768952537327057598201067045185777618127583118954283279432869266028216066961626970920851446905453688251053864579072632151287539584376676482432215147024505996726355037085234489751286458643424768218556928021738795030178821909172250897876577143243016402663557229016688471272889176989847639445286854991780384975326251633069268531845676441653900524445351665785986850601485556797901212538087974230735740745373651770058260517599962956875627387959134603046204960495354802708171057178728002939532801240814961171514235321757787374761388255829584840097081500832147690338725860827040589035424354760501420930755671400161560886631385730635639846743123676700615077615419518083440807016813840267074661050229665608144348908788469392026131178911386385118943780426162713932488811993384594171125088631715519071321157296748286082763885171460927067294972684534233038031054086215530335450176326093455960086881478530987804370036214811960242683616553314311547186346253927659985149100314888722202116336334449789749424245736775527469528660360120821774568940180943237286407043652229912601904759749073248364043006017689387306251556413042497794183970997959580371649159529027488744270155910167844742088155746760467766416578631385819334973433481062462469261319311141127048004327209233475903379382252628229640663140203679079508593499340615774917437831909198407011354949785052790723696136251708290357099426891620044628374762409827023581309737143893636799405952038366040457557976987248949431930171281416129664571448882736095671346363414577086819227721761403011803558692080824706335162304410987669092284267073633393878589071545935831475747858327859206919950481294184625752382265063718269934629626299163402387883920262240188865175871300649097749614370516621092674929561388268323134177582627837293535363181717430129252820590399122992506288274336036202912889096855491072078554071626726628108787102547367885991470379425608068902646965805842095853837038957146820603530397726528079672959317585427579121062939383881152798076445882146271082297534350162429752330363346659974225954747178685888530518355048117925796339618673305603363237957459977768659027964713220905081818278381040671223636964040983693461606124248076781157278784151074945406777191729053069709333047825620366823128351216436295669182653814690332253584278097704638354777502749113640996925637598218524646289909678603007894839408395259900366432479231323564948807896614887111734983756430666100689556593223021755050749334442866767401386588130836525311867259470081768909945783469712807960768556960156360264176055256827100027271621688106122081461197731703797043774305049385627460012633330026191892047258698038389385106773367425839194305608548930160837714733517335370013432860134230654307581618305456686119731357040037481044319970291142314086197273300085389956563551269408279744995979770383136569660691880241958165237377500185704969379865309929581173747607156320433715514269183793646754756065310119404346749284314185114931290409633302184210805646437036656362152101565103259809678651338371656529394718043460921014058609344449067910447416816003803483109577640511594306366825021679742586998539535971951009492707263917257047471731703192600383981765328608588314494309371163362732770410760938284904142201313198957052086421811035313455472046272156567743539321053302175629953277635263227326361724971120825054954827207501855559257252298687667245249860057424412858335848049862661650045728133827649066956121701951235774906638437097361868746546530110105412297397737328288531245821149570703303241052606783680271105496353705418777831616514254525120319461496061507241337097801186174645731868890225637998307149626182304086688373359258741533663443892020165830482490249171046562154691222809171359403088440271812517348930381085399616169701034464649087262589046524996695090242249875351205441867578331960270108827321574290071036303399007003349041375708666516479923373709360321894018865246921272293934701575708318441190145056737343943867145837893472175768046671100355112406211062271254726210820743473832868814619907682522689211483216383222366292694432534156545591049182950067316071354586493120841335535178922415483072045885334844619301093916791666835732477347702110100721566922028309698436560690109193928063609378464607806016589515315641018654438930698703751515584598187267633919105246376809917404090925834767604557512123950915084181793913946790620461880015772289993061120459491125735882812178580175850639630196185209576557686165005167421330468380898885439329532654533409427367006470642541300399876797855662239080454047915642970974132016539750676443722008311523738500907904694324965452213795310669152202709135315844768383755933399240519825462971632140034410320523095222005529856118845872884729122748858586423347187811516836210485098297850453470173832670058168225698123391759398390693277062783886801235671883304502746031119708185944033300791753559804619909162320103858254566642569477815436332269982021777296325899962059835607457132438087574591167656586343595104113325081988563565091756420607036610874649051436168858044484389116983348705535580616598563844086435253390895670156474983566846103058105698345997020049704546576785024733699096725424419258733523625195456719153728506584651050736930462903103142854096831088651611785909177931844475823742754813770908643605245471101019843172733474535604634914177356290316222389730455791677604288917463469622531509016230460759073197285785689035320120593496509114908845436770804548562383522123268986083833526423211487665927764458732197566475830712012125984898642685354892356658464180867090269696252947099368697295594267875766624987260334336880283994803055575008675865328083589712631759931001013534979862589376860912162423446434828984641849350769665572307562343272190096518828642740701427788311979804435288722866913322078021766120758920219899364962753785217837438212969568043105611929247112569238253230909492629852489260043631121609464635887121734706172412208612878283416876735796041943213832936829786090908390385233459225569880506330674765892635943595655416579807317822545407355934272667456542366975306181786358697290281491179756494200775229562202638402200425884569211872516267527532293730632026012086833090858781424111114765820355558258156135135137022639706130326207515752569945291031787794360591054543602246632822771748332692164128202814633065223681938021793685544592816397794579109081105641139875988346792698989753566649609007361046560902305269474561977031766257201459586675320949406768185503855332894960441973376205531428697943435487294365570298237721357741383159963810217848103457182276074243302889290833512211491599053906511285635326569586649293841608347157234890253696836194920366383868546436510412664978472810924389425036710375353380445590293984198894416471272144111983903746290292181079649317810229206355103013026416520988081086244811450293864432148920687664111862684956865563480842531813195932654438208840887900990948377550539711043076239674074581373574598160142878456573396933546390236162224028809843506591075016017094362933491438132684512249287559795113665960660423501728653907859240478298599897167438865324012169604206344078667155817465562166947496036011027187831710172289647207380579234866495431184296534820932084136420783561621633785175306419803025443661712564905569627100448417940635113604306681548879314390353121447221750189577627311785695174507005067245758576911392460989528189751569109204255134472128737489780577859197305315057733437377149121748730287400626140328659493253341575394063816014397160184139892873539428819299671986934117774903356293771874158951731167831800590008517083024540881625098110558498943899347397441998966574455716090202324374181342941325387147822977737064764071679578666400465062888932692601443838839825090152056600000583910717989906044105926491466155915257164300133098847923056265112307860358846478890500239233953030036224194506097656047649033420792410533368348963596234225392948541613744840816385321182860798485420246905751737988015738655369897552273320703643949905893507097938757583245901319419256792293882155569977187217377025196708327054792145711918525411295990904223429147282731118649910532987744709534837122170996994629602462286279619610280770007502533304362565707256294056675893608273498178719870257110067190686499958257921612195753472639051809169830906285908137496874424742451521080772034362546957551137631146581098431012777389302239572845222534699541803558417592288220628287360880596851596961900388918082696048946964073378519757219204084336001791709368126833601486427115222974623202297341020637884252149823878103053262264424146256947978385300625980436344045664105945417832072631174704360950637038398560084370883991400350167539056687880796298017854023088204508094707546100376074843078234720864895648848791790646430847717332879224858238979989952545848305527122619992818884241870581470636254885186181354561893357545066394185027399646544143214270099477295994080845962502082512724306904192483089077242549431282788601410473399858475491616880584915565577840334151165248877160996134866233205593087806983822184423332130742450640476289974734627766199583283912195718122909386881727507000465271923222858863858984947397864722904301520470089550262039546528005948449056307796845291302110129754501995208396798435868935493980925086275897063786416710073547798638330989679734243813338114610322862982035364354348649284780291395188740474311252547009905058560728269605854367765441376254011816172048642487615665657742007158923331423609901985436284927375418599723067117499424310079659291025515122316051225969678829622428405702652278085761130412619089882142774049521792360940868996034498285548350911343881737381501262771932070686683857701667067147547438323954685470023211777563549205167845902813052661612558996672096302804381719961998727651327993355995139239550527572826618514313967159478175140266075664889014546889693067019265687458935351619282556204245476292411623975076200815535927085945888843602829523985762121330842731462258887394466838675504379930736404858733749831696720926224001201086680813404105699653151155893042637818342852578910241972886121801181068336492681136896361368187022585530024466243934313160032402422574498413904814019699837691046769229871740518286198704146143095596821648519499046952923386907179367667036451174019000226937393451488377816768840577895191370614518368362173431486755195543562043133854408667274140843208909235663050087098771722261127918030040655669686489295911135388662677770636390276579569717089068041311207242379422916132359406693430145824361206436402217349071445221891918903505717254200910936505825695326276078868906773080046137378958319225036636408621837600905015563951605120842825888983965731451284063575108024270000741642054155447124767621717523973094832429401645596327306665914311830966696553402228351503173837803032499856599599057300994983136594800969565415195515393716103821236077285052689046271383387202834481337789516911114601082912026923281352035418987451097378964315143383231587334241804668134067634612655678326678270808521216082094118036199475067127455204436108428905961236936602474146051077037654827055674980318464951772784002372208850416247872841399397767878401301510579275003245454991244388166143007213534206421481111781703034473388845275301204669334412933025167225842178429190280534325746593878925871683711931316480652341888110145368590626796453148986359246366481053480830739817885621920790340389353299671901801627739413926726113623826607348070766902132777820310364014706505826218426483788838365554704656680516014150259784548873547627372931675957609366438729799777018996869795833475069134133194426622245633814385324555577243902759918857349336005835249128467458252898313164363133867410497317492717005043092150240705525861754958754197931318607382904350180359120499430087565629112956203353436909000923160030681983389564967494742041996992493239725034599921993268106127537767957897329847905084513235577590515073265664407860734306220102673360102700432099066178543804910173888478362816101494032679174281896163004352539159249546788571757361655244562220084606877468453157890188815028382694076939224732296459653413946613246382575517332407206229376486663082360199689521428958198626175809616475987603703894162053680419748549853915304266088024066948674190686538861669680641557556828209101154437067867207091605513359693971074438786160305171223735305533068797732548915698280240012519769238627680140756985172566061836863361805379329552357517947951819389840014742797843158849584404817677708141068301402286681649952830547787154247706092606357513919776058518295655184405279463708229215852457004982948240720652400942510974103666284032265702113028522400158995058799122565058402953234626738056323270871091235523100320423073870947565898443331253845083772610334143962116517159506720890991099317684952347405782210723385941797307904846527820477550063890968280935515031509411720243834655570852192762714455840915484982394636629939600676070113881359068873047865646914004347818014506257452176308888658540138385374328389821143108912554534420624931552311451140733275032156582986242178321249024978063332862817925031333568238314832122832018920797433231068206084726789338410230724235543448397518988065166031077479320043021673390053047253978775112838986132964470536886169916622175584543844130909520370110669925723074667917066079415853978862810306521279773730873285415434161892304719933869400519681560486108383804980786259048513572743425417038240039987780851612601663128374055787732123092727217101306498130471006205613188657593228858892657395466308474260071406220677423834367363465394665280453020672920201494357899220136917403113027446158438189137863274464933217865369616502740508244145342630061804558376894643322400655728152622633436783844253368131095065993232345889253119857676642673092982052713675586705849691167473506309192649919156275541378010103347554271906521844048040953821100288700014212714031411374679705869550077017730669564703706783742418270472725887100400759135652957612656580146349768352107755787099504202099953113439091573876955908387422546917647606503665044405241598267531368614875353763954045903787943905318548847308841300090298567565020967653814853507818076141429224781551893387663215569993741694405899591224664819314722419364447454855595024445107136535601132122660720536092170564643690423915362655831282108528149718844226178112828499297125896926569930699866459324787817488216095288843530189821450365444881410801926682563565617927433898794744406212165949102875892221833917032411558008503952448605385560027381321219635600680867455413341950773312852382345969569201572462755397040291745954392759185397730113135539222457037856254120681729991509038830265729572862813171373282852105616465051494935491205687534416572060507254899852050968543240219160573446241494996612938505578348697897542084071350808732198112248116929936108645283924599382287538302924643740315862887002444097923041203751013981810553888078470728197924072317636376908974953043794767340001222975261389867178572511954201401167137652932314009064894405137690772822149641840037300360496000254149907390161942855080804098083580479627059351535493282324337216246060129758523257033476592432305345272266113200879827365702584155701870918423372663834188340038039706606933502886359837899570552871661774810530115678174254079105622993083314696741223606689337318718193513530012262972576175165469788408044330305579521255622995928429038364858217843532054250299679521796853655381800717229460461886870856598224940661117368047905791584681020566083943458969379468311201784176136958535491463896174038442670722971347112786292801986038122589284386938148054370240830937709487868639139116417858917130504041628182377390741307709783111342827284577921242327000145990202144065583290553698792325898301745752714138373740129501999771053636967962917912883395348592796505580014378823797967023314159121260383673955014496728634232352686906156112731182325394521543286026756254890421609404860539589875936584933802073084478490354573556822902789442902142055817465552153312893273545742092519216579290071868958673310738364284408333204882884393033175233861168755485697955193161957021404042422195646839933219500377153825565085025583265561786927535367863582376437535107991326566705634611285186803194553757596944558102284053385510560150242911328324642678874207845202075532794518928154415901395747660479995662466662346508568575253714198218964889611194988786242067710228669738609784985774843896786342817263606499584628374812583764510026906407998358505924981193912485977290250117949486420548456062278831680144646180329927472102792346297615168367319918575320415019141288746790608824956256834658164009694637790689356820243486537927460666322544441431856343916410641739941787673629863443779042597839676480487957552024938175693082386587220914868838863643423341037554242225287266749656259754439254229682497337607167563972234506022199580041047619537455679823572041024916028873381554297075447482037673519463563557842272960797947149136343674486555311400095083238687327431641509474167196380709431721382070420937261604843931403197210797084407118944218001268667995580802425779330004281890812450761740685212344452496603047460942934459648950010675162735361896708016627298490633365623263671695828647428138389532090631452182936557051112687714001506686060035744173994336501121692396886728187723797667178141765636689315179843731137323770137078080743712580384573056822488077197551732983453231415149247146734978520583108094354971488372385760536439056873526837578854427763843658837685850112276203310991227327855702725378261781855116550511649268454072760359554394751671378589768353157413102451916988175417807009893747601482624359421377185672467640060684539548149791752717895723903946880897389432083040707123113215139498045211279648027659292381160160906555627006177982155032205226618256482864617225530292894335317226714569105185850452964517687496278758283016623788806963997519833945948361187632877891470673267128804741892588725190763912461895312719246333942938991623806590641310836138482387657693701778302821715480682290624561339306563789821406214132578545947112834883213451782556821591241302337600086286689498609579058845502634947897882627758210291368158252466746345615172222422026985237764585082748788390853285336083828088070266737249834155619337620295330702265498797655963313962015758930853084679055065303454625543112111446157073344416452462794201405313613561839713410703854746851399014387723213142999713497407552711660125592881265080839821655639857681275634217860348347584321287963199371270981662619807970016148668835380157823147992893497785890183435061174299974658510792707760323815923232727620601448188762440352349901963800486003112618069529327124508661262090101187329453938265941059907289283417798276222171741640547120040982386205781746035354196348056034136455968916607959844644577340207617401117782358083285890540717258941272701073047566833649512261456434296402386223507663414690909629067990061466631945807616599222003303870076069577529888927722297074263889619041545514317217389723204814442654364691639084850759620991974149043840249284867552626470663716749049927764851094341328081407834140863801072729780087284534209538683001180417839873136511088653469729715719654697801834631414464293316466445908892098239176801224934814769039467772600306715444289689027100073614971955586235616872349308463743233981850117451447968382090880510031654517342268983486520203029252450071502456658391491046905084843240243222957050437945580374805964850753886865323313908370196781106848959004845530451890142044955519607344772860213875559235355251105399150374574512788331076679675960823632148324262628878263838714201982590607202277120037161829362076492612563851012723050090492649068449810477750993457947715687061857456806737968142642130669421372552693532700213179608387945825819499512004301974899985549658993627199160112169899521254776416488778802469766148358985196796539586670214619102285914039189481415835909905985749330575059127955833443993104199422921527796601304199107061538022464826037651294739348522871725482121611208409782989700699860182479382718021950959090371175789385904327104383217688960404295444329883273300910743835569167855865186498433682942467975570708550863482948878861412475391912738434776352790874930485156781227894380237566408423795644562764440733886648186492435830901047204412935399774507571477431499694867929890785535089602527888874330933018732040907510429308475070234830036858017195555193341879687590919688260768701115829877964044429291327305902756799058205463894543137454156396620654097653773451693614137695064526115168407799149962386270545458885151273491782282042295251625539539878027909170734332546191830638391595299900119366100665936748488314324307050585849893378245654222793744676878671155322253786705737913441155760029071459576421885459383105200726573022477440274083248441669983443318148209164039875965898860583232968377836328863559506546456220736087266120820408269633794380424022618826601473883191157549980259838601760444143955579414047493454378717170863847187551091318856910103694394442678227117369929140175551919350732529188067971370862617858227146608297760926099415720489057316620923354979680145780087368694464789394136588886941421859485625618990080233324445057008573722537552618461437453016843077243457672274033395540052908949101697716907755334194281532129576059848566641222727947930681207766099924699142021726906598260944131330935757566458840052472417007101584177890953153850374596694918199443339219024907115032567634655645617182853413149318243058499843414936879284677267112775283195796020888035660828158679168347775243429239800888131122576570914311101122634250242257091146131605398141415223043934947909707339413234520127923099738079111895232282665045289503045217377188756129684018782255729096020126517715857692937047387160697610586407053093613912009411507258951112681626033928662376374817536777200248474971948493253112112723427298719584276233330499720148699476611952507791646455207191924558977252585662253626475071459500091793525971729537510948081246211245086583650093577284282491146667378132026225602033113642268172850118700298963389584540168028265881248012054383822311653334297421237673805378353707892156538581935743783615187651257398987812186783025567329850772809135098665264020795139726624890530910890105767920676789598213200024023142061141114420870007894592309487337411414026120082522162808082692556019590450745222813909257316977147536725915697608108960993329286047719939843729352136874513429334483652294639170849762777927795303331206222230396703987455277406804474743491935693622800538464401521557137636170744027783976656153233208735723031179594978712273262102494105733291855714032403260004805273062260899738541119469765336083281321648211135765083462207649303003253696292376549174275671848184590202181135810575445145638296295764838954434634823195749261773784297108071963567630940464872983593911023600039121564319325500747651788254616245905210145213243750335139826004362113815082481488388127934721362036802245045123057758827052417053483330427707655872470967067851609126287159721098764174355529040050295285998197445563430187932502564328560467251248784191089666077741792114439140462168782371883719411494746845381773157142020117712181313341515265890524835847290109714428756391774660251845015976983228952103082360500132765377473598361622841091633194054723662356336626284775995559768023506924681414820501808291231015322828644045898343623930927378479402567324344040770651205035527878248411058428565889297911526493800998349223638529052501999902862911196643777548556439484460058485521496928126096087407893718411757228759513634531795482650261435097028880684214654100805604417840321174616602724951053771342332527039505854175370786360447911429055087568739055823528219683462136919059182438680148193687993261976120211130814517963070235041029343274013739143810616740543457288906193888614071452360677457924545095586076874223956330747416588653048633965713224728583622840568065408735308712200601184178894266025460333311126029560404952345596467847612149870689402097244257151062203959969710247898549492119152389004661799999949387292697497696460873664477060825167233187577552203994918091353244552384621940454855742151064687822333969890605625114117394983673972681562033986723981979010309158669973370910443743718974275228846491930776354982465685185648713763956613597635661275303006758813507801582657655555987849888044655703200338222996368394528322568118362131609354879271231318523833959071208657919595469104167344733436312614240089886364766395511465539118493653121419110462604773804021854427581077164677495320426437120403633479783171739117908546177180382024082825032734764432021131929461700361501658365817043827361457001787461187257522399827589505035765465353043578101656801370579923585506916249709915982718065324631566672903330081778637937462465533033509811774555585948248722834029204081828128016501998341926076598056430519106625595506849002698190516025725494060895034260193776035315723878732186346980243185984395802259070536503333221506869706994334570080453626028937137578729032255628720879586486359598772474716026505244911080767537777352946547198629553693697127195703800218088455171751433911812764746051991523352215735659020698909960201739204231606819076108807051838676079773885981358792776366541372789323419918288149432075552901801170122063621321344308386940089245748873067257223793451871552788611270517505700109792923430854303752697546076087755163069970172479007802882310181526654884322782504439456622762216509320284018090287327765956135286639881062902706909617846852607054203809617954138897267928548325176007094539443216315863158851710258457791783688117280235632091293712864540226211188841446068141681207227003718149903100315978280060983251460685298635707887345772721558845390361851364509588943187886599140424441710230188649045785794546136757292052717764263617776607092551197204805429689794483529604389203371539250319529024803857853648016517385117584478566106157475134652736395463067358721777650333124903903845799132148664987513896513104311312825535232781740124737023838877488786049756027727892914611645488501309797978573681050446532419303306448929519823419888108533770758964403345907036980085257398989761201471277951115487037016604707190697419257316144190023864395879092925611319694141119709812424788454452955312591610794505645394000102331176973194339505380923629845694136405925850990163792819547352095458065287775936919155920781696839676614653484939044484402513495332036660989599972216287432188718358851215251960662996679579489279512124168089741532998645817844479746781959391397206819978814208626451027700918363028691081966670733629628892941933772613719673634530799931772632115957365024197154448988769160251558866736196418320530849324728104123322080167301262062918110978643163552712050124605203576026233681507810636132109046433446625554768501652390321833519541993151696115054910506930724555774188692146446384989447142867706396567966624829376777413209772422934396814259000171953178684998924749970552744219859700477189843596567430363379216835357788502135874569832954135137151944949709878994925586178404570753504339987831381220144253469069972239523237878702026278761518811822238698941614427010870040745941809927897226149448875529577864765334782048643769173942707582622529608701324078083710875912983896736836408172093798443601259312691809333216632684872986628678515300114385232649065402887227826975607357356978353542949076347285581872230917174442973865318145634773244522899546596345923887476118328195620901382209312275908700892360504622897143251851384112688926937612473546526372938485439112998383396417583035346753499323430864180252461700177055010342144504113506705490574939804755560653567816620633661134945505153626494459113735540893274207763097257218740482705414786698129385953324702602239546711053055687473793939595039498855282957468561365247997116785227495174644253458580574717675342923583324022669852178414313635673700022578884703898874486311605275715742617057492324150974195181937682239967119313735982098688461244005009380829711058239692379288206011085482873645084157855601945765410430750517374712339089044226871303330442159266282622483722471485311064732691108834394811264210652646744360317534734226119940044749538353163725174014682646420163641830430648818597273431730086428680819599247854433571948669580049492948516052283654852020300161071891887109749614452915994933812560779787657789170952474299350483682996958894719026385204204627459137590493475143207342770678950876120226857692218793744340567505681837983321813093807857845876956388885606735411844181793475857678963424999501184261553101975379641437324356789360484354593881806998867636420073670172152123027304427400887057236995638605652157795811455761369208244258594392725760320122402624794108998088974391213344831939563404853462954802930730619701390529702003040162719375974855327349224862580827615730894766073330383439134020594254579778517653036407724697967801336869716151777710627782889216513767311142498426950352397033171514999231439495852941877587280520969951542815905953639030636612980330740137850811627879481632806065997495866928791354159882776179429235092886222964882491374532501439002335035759553119339411042610297716836299243900942748951647382592410692399954882317638046706502778889573424531301608819298165253563787285095233255242713266734309486804272591848407679638990133021693368226060523799866717402035708486683649191059983134204792827681771605676093961537855995546872213979497806849277481183104633758694408151798438285128274953965729980252654772128957166331998280944362911262520000368852889182189345533325861828932409489895953020673086731464192547235164235532658792580888434942027205888113934880451363448875507492886200638697603879636350811550316708401693015967206005481772206989623136606830703130351820354763505853663794440685725821515514958858833302842732101993792472773528638503052632461266147484023429027746148657866254629649286077979969377934111812800148808843638344043814263614524238641912914435675870840056386397046439120978215943460177741789480383913320434074683944026954082889786529346945222566150529459626772992705174897072742233951017072661366301964524468279738487903005287151153617656111265126699548158798513126842044129229651193029630002262686569925325504169183553317384724298828491901246258105088532128424604856362999831177685143591869144005613430925658528699238114881891259349496186087529077895340703139238846316391766812865537365702476156149557904970985857648476906900222089035801486052524833362340000976784632385850047254766671794359259628485870342263542806867270019816490673847141996467163237662494229578744130451856035998565553231451264716935133599711800921001013307988804058365698128580672036095637521741303482141672442704448735228272690823460325440509870113784485654079088420259143966337627391482406626486389976618065581759124610207264105587955473869306641170530892322720000859978872284821739245027260994934478232925789612670006451808377630952796033862398848326958559628978054891844968243428658424791313288381734100893433667085867512848784454805588059650805389517909332237284688917749467559908122211399108026577192408351609960206570244399593608016199685612083974217480162145553383725809275293616699198751372827762047194895662888334595107306370075690128440439284673506356792469570637208123588943194044038343652592315272158339794630042439297900472047419723287737648445762604735574354559538553118740513234683830003743262855486209772629702134390064497499683324365086288939170906375246728524381199343756092729035141606613409810906231984256074478988101021759511306439203321781985917462733963174293182002011760975320458378628435490304427661352626611370602111814360423678325582782490849179270320019046354221643676443670933757391696151306309694004123638713503655491264785219356040683851954000788591569283472375199312413346489970266126659803924474001880914471000481064295975770038643048377390925536577426726582790108044422030675085927186181854444913965088334660312440922346902952379812790406062473529229479333239287017291680538674879603045992069163923641881296002135555896753338762856549878950768648036112641750395792850849055750911490835247818538940804213005202399428503173926577353473327392604916371448812920567122589708901880671220250139463166252451807481645781718523827874770529927245287663054024084901340680559921321946357415617369421318468527811384532033861677175734611233053931934725056383024003738565906623780422368878318017367759464329319440204016914244983064737717375690131474215699816075698589184723743807669904919067986271605259059566059271345430114626121224135889473436308531628705727968957092743665839747805840313644523606218575644264936830302280278323446969406225965925019128979756474475818115602339344642102437809181555935638321699834329158458857844527353415135759460105638421644695251758965518871335553104226027808837552837314970818739212287619999787219087814815438083124971331297921429704119301856099506575577865266980604999749163614513710636186821999830347720559262335428738895774972068427881718604507144888156738141313583019992809380921218852148976870105755112723956063667104800869707164575105545158825001410243178303586090936757662430733132166510454453148311499745121670775478255653308818361972079767081701251863525090612569611026035775554078025765680339287076203163579211037432430248983995370192513569932457792795774466877708453102154118885072458004611613803313806859303839948428789257820039905566415389116343913642006867763878032786422125669330072483981866872907479538810286370844117609539001871799361983700522579068101955170426299816177924817083632228149071073074646921576644723667867666644566524547609427046894742459342216598175355779031002942584724227307252498609599990008641192602954860108416602822571110631122955798275044629644621032598546959193553470698372207958045828187979921751099801853589927309594466146514200575374158793461510499577870000552863669576274916287497814215289351682400710575422879581603509402478020029260565399208804922487072114794495016242843987591203789245061786153839303913948378774482849242145755304231864767165340211274255652069018565299398232008020866962191527726373131845571996436123960343573300853416988289343889772453833234603325166523365821346309206153592007281830935298171605106669590943326614075803642146633738583531305990466779105223537666803846674795885172206730452166262355401409020118205932943726895429654362537957779703449462497920922489841740199928654086683073641461325379077445578419350943451137934984233582674300110052712977793128162666975974063575203586724059788454903907122590607521957900327637159691271432760715889281553601902122422623485549694842377539479544962628909480392579522507845091109723236888348679882278169140248910752241642797501133401094931722613366471798453069569245267236560141826924093881336969502163234504212998960378990809711361553733805286164773845777024649339694723037308620896871175279277747139965566616025953827256003622022179957052190846572015365809181374418603249764221008940797825623652279186936227738370119503143048629359017497172378929485421877790799660365108067875108473297706747774826167651938858347583212817553596360247146424588247842095625770104228078611984486444950591538275742292937669713030707412508566745389612709362206029740070566854774100076896843789337095167078292382590625766722015956207864172864843929622784240155897880437270215729304117395159097337736612696241713229061121936526059921472000758212901010042459806169595362796492332577588032725023649200516274529650446018184398050330275727983415687274797751312432931627594905554858681920454696570484594503587644792792573181620937192676010992658754308017129101550274893946276177671441458471378515409221720020878748983876572338637250966380413340428227697774038581822775386452324708575763077862195272988810099205974522083777888889403852259484913284781030930769580816105801182157984944536322750544946022365890667417224330992771963029905138565784712685896881910331683904608750457031290667215972635558868895232461359148390851084934875723755339532635898922138718658872096547103305348687396329684073994009511916612148278736956369070687680340232490702764430967037692478549008101385845751408006281882397721910181941473054022576329068068693636372209836336422079666650138896301738046135651348987683144127901519788599185517336502318190305110970582610266885000779916256295745553815991422707740424253050808940815414631318849958938064076783674277810176524027860935109460015004583025109275523038619970119449013113761301658630694949537541017217322142156941713799114770794005977905511370038690503333681126884397735414226623390967933597584167880702375797036553934074310123078117449886457497128959105598326870201305232177412757973991301971662552353414321903170993181477078001526583126183655600497818888618198066444344819369134358486643980964617379203181059751000135205175220971621948873954048692813175191606750709478535799316699053659195867767679951272283959889473257442159909510488503643460092532138403237592363922401565237016582663171635338464283561715143139698018291109398503067629071554848170676834246091052068466601697476670894654247340216835634735888585574426417735910499737549037356540694861718697830004909697119546137438580122529471035361864708569722355063793608763309123189099952366439980822893578072912765263703341252043177996692829070678287690680073453764568820758696418334087219053775716057490842598076170360923140657806363124075912027823753886621726094483716273772954593283902960113283854159037849040211715004214599546246760869360416657550876881041557014587639214476063314208452212065045010656220974793058407387027943527031386690386779083037952461564543497163078055919902717845493549596319756177809765481430120575242657830386810672869236852891265286172461974861284242732837920822425869170945637557774283237223802246582729936968968016364443853556536547553172082560051317013921703259341078178893029986929742057343493908021121561682205080736892728431402531626816273280798483836896108501506424649550207390628787691522893534208405863567738131985518699212663767547802131377272660132751752673584739769298187518043665317790612981669245685680839950935726816263667213022809295030087647636921183636063914986032111571144956383437942254121970122276376998852859415144722927357390729334102128692228128146725028873995319550648748515015899039112474329687587047304843401018729842314850568660609670961908558376151933085751396009415770170131358198170207401080337609718253641105827398059570452841518235028931619206969287373927919141999779552939320040109050315345989449248469949853082528074793886848387743455225223136058199542787040422797573608550626583511090614948615229617970370424445186941578769516810317365892931661155607759520132217077180073797703720775910132498903703402028380546992262858222333564873323481593605883209596670620722264190967639391179441381182060328682187465658748022633176578463707715675261071633012460683542764717874544850859965406887795929364757531602339615511054460396998643548878967246289592257596127331494905008207325682591310406744510423861269508263744757705834969412047646390670397063291697472457226076326756126510996316379755058978952209273794588846344946446552251386243905635507236064913408252207816407831212539242040867293077477964472262636688896139623609838298847775935210809272546795167295395199127686747790995512904205109514415275496205167711819297621210991695686211581486283359149425761000551647785888535672601972049325103455359480880745984802328965879059939948567200791490192810717297065058814829782003054844843703160452909656058891935598174041328173845534692046625963868640519600567383013113196314263131758422031485045538985195677908826903175653458455605806830437851138273084484005809085915946111880270255293699648260118020976503495292949245861804905534278574174441829828173320953366901622623818364944413869430128022987760462650371168711142112742290620470627073898868308833890605692587692128725833119997783653887918937999269689965464137491836972598996048651389134117961054193294132907416380118751062234356010991266654790151616398560675181065870654539477986100494613779130412497163406788978756874455502600729738818394143438684411558924117401229488377103833888600396325146708246100547466907710282053372751375607316308184090269858112721828645342150370666376722187452933540770541225531013976004399078158482965121906927504103063764170473688804042632989401283299507924457353208323788445090424475242201869801695138662009055632600529745920906618885553815989143780449541589673456429904658217549561729716899728147066265275118012195335804927251072349399824191710925018069030000781613086780328827076829158835160973336755008243229921426717116921016093860046859380760788136525409914665588556884981460137137124188953048083353600248224464613056255009131092714468224134957799006420562889253087857329303196520915075043682749171495015163735928785203616318959766163442319042982027110852652692277282717828206871463670652089055335984866337668075774262885154440711950376105915779463206251526157808202589216864292354579338501837859525448083453154564298563708433686095034233052728918797487662628935517059898211650302146137345411210166427500048274202436336929623020698445308113080048657732351177551166653299119188665092955523779228259315450264731103087893108674230943272384449056969769479467815163984497740786383851516920996046451574286516916848246043408668883775351237835406535925769753580761114752481962753425858092136532992339297855825642458545370508624562788106402093310713939550330512358672128914472710390277605085951913365811780354068787673821995740105635645255040386432503352485360545761997175311286093122263023986341111936365684344659048517888230087308727624213722235833081721655243813898656615606207552589096654648591253752825991074796630054197962858901087653744981228235467211766319575831104810037802695178398280601188363820208992005295131152436328164566004953442752701720974050607736713053841381606546811618700066130241830582368954992566831972709405469777810966104033357134745145972109295904408603729683585143225339307902073371095801158724542157603404327812843499435566443524770712962547758787206568804276106175648244679063692432616083261807156924628596632666175924907243443826429149457544025287255645295690556431439215275102053110837915170516031701885172821979359014949030522280494338747606694031027745907666593578364928968739265016103608444309900313024649525624605239481356983499162073366930448990394433870856674224092375507057358645414371802146682380670389643177506198675661542694037946883504470781374064288755918811586455357099568027094986397903236543451952293231273059559454938324070708491469743017849017126706910693474472201566856072152050982739702394764585698824161348033884411822234302224153993390974867867397773745980150939962209906768673717305550175070432420814283503808286053994324198100981163514255316200689957553691744674004261616550293172159089401924113919022040098415681712149566621985491807226202111388990813260906513288530800659556303903597240761033477441077211768926041651378919240310661340566531987416165554424765750398490861103336763734214437231109505725612340965850776010435207837521503751801103260492047885463322306570040506013549506936768176260629615880329238290735359952392241566406742712823145449662630810160237944092924658576917006050113461146355231083631055945058692854772863607363244740076700339753672729600831582931421785336699420727702334126197681319216899772376776577798976824896887793172152232406025027817675888256033966757663936642010186398810100914148534634740623612016993660124262029163479874538804270884908125717714856219446775858569514082064600518802311276835534935408687542404308437850775968098614190818076243230881555024296834602014300706174001629069005912033781543041238953015120287854520150027374025036984621694956422269444870005850948655356303028873547484601847656769136816732514881217380007796285488140377458701931715583803412467067234294615248299235789330879647339858104402803142619426325975840184827988976208115736150464524216916512141944587693815256131196529229539398019202897562922630369669684023385741098599992516079257818029202957770660790550554145524059893558391782655053454447561027114995031591564156514419319397648362251084085551289290251580323263553820744937510956498251783937972406411187629410457213014856999510670453638121383905092466021666155563802656755287587270873639195322972404542712490110465689157563537140817920679994255729026960492969576073434218527921306637991253517187388777738656940125869430804772994320807192402634673948174542303986236115474006681130621032842417846097230178306300614876653927330062586345906272684937312838497693478624397033779208714279353006591277083914220758265874028066625369579653476100659799453103575845021373550722646299095383000106098296473385466503880637675928789574304683918112009500908724209592010905092197817548551465828802202221859787402478894336137243735773603194969698191564976227482938173152387928599612609043861534654726228551148791461230883482325293042266160894606294054585641502204154362854886721147293039612856230468015017268758103115634080148746154409099937557808250420721605184279981379668024728819380702712588737122462005163345630853294525386110756138592827940739385033266190688830709334671513509913341039179618840072919831695990873889192264803843711284939420522407068070769845964737234984400691789775337029035017887070034457724434749980048343901406885232866119188603386993197161130381837952973265916137773963297639798084278802178649163237613847435745257404023859224958157485708991942531880912442691551089183996809406882815793598422345090717858994575868632737557898535866584267149351298488096168698651306782155476581217006149741024531143956375726265362684862654218033015245231505633348650612879791690572201721889262782961007080484042583986490590905447192702986524396601473352043211635742581841605981251544552574828473314162094321856797962575246722205922493599152582941668020581979304084280201835675815127295802710473510260017508575707685671019862829335349446024573356111952847775841331693211831381040377390652554376334061891256043664010590818657904033736728619448286652019041502728035672717355815565881607343687473328796212865344657043046621961771840976313029097591524158373984947575687319945033574601136936887183661687397328752196062894659788557780772884375090080572315800818121263157320084494187311761757913725319792528924488846094960700246808157437354982731955488449299047610275107718368717731165785431081155336779003477128580939592568130289816573885243740911806171994503184329379650293366342250369861239576554310105819834779754568480679258145644946455725076510247369230094534845016890147147563364875578852007025525523428803267028742847046118323150848363351981943433966387411144137711423479546913833329881761694948443206115281382187618177535355115267906300554764931497766354353558230945771268633851080133558071196063721246075338331378721020959366153471244662512277260551257047974795088777878865155200309497479460393389285794500005135004806439367024080060215457863263287266053937103072258146411273542472193372897343127607281787805726131635298985936592943996389399716395980786404641255914296289300257471821221560760421147454786394403239548916004279598913813929050622592384740912350104809887905069329134628951121475549697474465691278099624071331465548459342189700296706763207018673517475526148933344369471139322289302086891612189015133812042746485825760946750892061837020457407084622787968069951625999657479998623349083369394489159171103923843050544064256708079347950569916402498490834397570936175380844520118894499296493217430866004402681489224439397108734589446464960264761542323738207174408272795620232111263752806196187596405345044310147673742763478984381620751213731413751101834558790326435785988640266771165007566489049697538570220554738421209723583980089770979089901384315683627952162543646535285981615888980999969847313366220168378587599274154080626341172833465589776110709356181622351896899771126956404189265195339554525364561396481437108771302820856131932283655476353339577295339537967524185732150907317346638304130500345613308271021759777751917222827731184827683124784116703914434233402133839609491953680677614500613788333586276623480164994682840346692225963108949087003827859706495170736883196339793303421749121785249689462150047518497751538616170075498146581383599907014748530489755503524692508196503670477224831308760013080065261403655809627997468025341891424813117869245805181614098089978285955197544514255631181176842008831154955430049801332812636371681026588545456469933909576840736480568345649052296477255346784141173514255907576866441094899010288822512960175701701307636223139445994193743729257291005897314620956687497800635912093212341347668941898346915469595947398914865491386418236277614424762366567812925596473857760529696607744482850107042350233853843697573471856992038592686272544338159506990038163921574934904889221204084739985048073479978483919310063814657343442885589715637087368516723508152184411308670512134276379037624908467979465919048177491543484416242476499758752780576793389026655378962926086355670523472498137049096137081889021099068373821369402079807223790526309622902665428387884346923748503523935699188385825247889591338633471006032751224671419399589998283471143785994090288860944241412415276315101787799776325896707113573805926719391354627556042489712236890076429036118233537108449565744550555736984417675697848970177205195753417522733902392499861979504007302569987510835776010505490478933982362726133448344835552361115062484895397960469800384989491652173802435978017427325240016947239469845633255447674283019724963133676786773662530339640193542970915029915749030471506372075243486483960990202816925731442684249270981750296926248164706427779018876560534005377300550839257723481141598958872253690106822349786876368233788717136717559837561265999319480905240458702243351622533064109073729265952434233587823668859375589912828752300029907116475209191297102558673039162250728532018236243155642736739797506945618611438167607803905945112502169928580108637390095085178343884951341676682592830695278991283817163684296856821809859057233058364850953815449219720524916439705044119557701418783927651823215928844424962978776757539948810897972760301790756288206250267821963883800981506106830315455475364201254898862970568019366705889808417031173900048032539787478949965781297427996407167157357883128956643619700064306382281294268470346350925909000231103759504408095591643505291257984105079579710007533455491999164732674268835178349931311129980300034072744141765902110290954328758834826511931856785883106063865788605592452996964482664850106411889500592866206621456540635232417290906909469395020813664049837244218414277853115793995092018277902654895990684487350406026830765517514733047499823496084224916495200659783379022778420273134667157348770916038792807567569825882355578443685281984664745973676375791045984664913951287848764543764828476671176836999332270038098262189167817481140692351805249596034777305693752439368719364792097438750436988065480134348460640091042822013561160985302647625856322426238852226561957833893575873157826542629377021042365396479444664873711724690535445062854194967838364412251113554162095829858586209536646661684708244059128985169228847100262083180837729935649125548667634275893973935415500437976241983866223787253257008162072868661062200628701156230991068743685657057679583644237669817910923733435563527253551403190482825055338467820821962353142261434630505239825056010981367637870478844250994513986030540146929182510330200642003205367988088227111931216797532015793650214565344418545621626933240808077497504870225277906084688386960805513239267867914942700205773737286845333919933653683099472180205056136128520356635816682075276479049026453701118832537435064162211847672139540361307177309237752598757631484960471081145576811777022339369510558852625029791103781841402603490405768806500962998341259725863878732126182767300592584923824403421416518888771407986907686936140596148170127144958034076394696710199849819021857831839432909044678975659674226259774460532576949074461373879129174207357985855322632648539858287845500810162093493244221396707207821999348845597311358483712294304747335057898918082005415345771604343736566576972252515411375060436423722935982644094862400291981989501619083567617273004277554573562648799049776282073915201728335860394976243977871094025403276663242301588969696738973609826732120049672841590801728626081810962392882141235649614977946436406534553332729741109528034727449869454948398590484260107481870895380953826979062232095894011699511758834037356969238933497815350883254472993040556579550336775733647423160401361727093142730799248458967825119283847362838383709901467698862552925754275411587117004313399492014102618290854767822720879260514269106287803079168925085892829720210352508208366595136586358504378805056198377313360171835707127177099433333997068303116381308558492029540426699857353419839715614531168884511030667050236736985443936910827096359576316181934315409755238455726723431039482811729442457124557937053295115987307507850961568312630784161344576958127430277047219632421042625193774836758443538528931624843520345297387106874336601630868025443353371446781648900281701648803255412063905232174805372479326655682556213018082708503556756656629576280409467775733462868463925532346075697861046256420259246395493257509978990694962330463212297523034615902604939248022843287817099395723366176425755434832908113425761818670503503790701012777485045252093232539122705551492667780249078200133500107027351844357228763807990609135482693359509250423121336090506286897905564770304918942234974932950494246629233306734675085951517909350781189799582070012089880403674783710242989814824379595754756988950521879442396074404678221061964778682225734876618649020798318776493398164547294000369712900047270543016110383808283129207788269400576862586465141936920315372791452594589295588867271173731266940922334187604733040020968911637649778680001450971531794105288302377035538726418022383511640550704782442024045050253866081864516291456164184272526840015570762342988548411053673001888119067480144805383297763780856888937470316773718546387171682880703891499108792303994423816851920123333197885705286492256769692376599089294452352736553413946167191152984074982543705630986002140087772972818262111506999686340493248683805376071300090467570592632158174482981606113968095198561301196350589945903555566506097008820103694789698138397697325405339549380042813641714889567058588301217180869988760131152873865623640434502869292579779082677918390383543482617908631698430925533104611632596123985610342695509291585468446247298838279031098867033631064059538089263039713884276281871537481429961884679479464155319196269473606255848548905869733522081091256927760802735746585013737286833259672047319169509887752224206082243755465815761875093596962012334124207140119156733536504472038620310169113503558169827267567853728040881647099515945448270897628735776043014045265169464551170318015537939337243211491088150509215448463304672261926597701808346107382669839895645594866551513272129444785708186871213066413714119545169126925927724583686088228125641286020088998603735617604747033836210305606278965222392919466046620328999792293215552455610318926319904875675506935408251093909777350827897047839762259735993800935594896829654376028331983353665551985995039844843099301166445101235991547516610864736176394689652415980963641714273638155237847979893630832368008267105101634100713190091429864848979446617790257228133721233398062365118999366496842585039375785012792386851794373961604420504288595120957517878369068974751538584362513282672189105626715088972518570763339472988569334979815123741482528505519385372452642771024359532617827780622536691156950391987223710351334193126490045156464139742422254983881107576244142509170808370918779901748975496501041629113006931253479748324264232298511808536024642745828338345372680723649884993534408572585355190955813970305528374602401322479860101037628491181704986138360676246502344791520703770534441944783403215172397177459234005567197495648027404076753918358276461860830963761010498327453580930227480689728827421370944192073382803288222216397511022172196277735170711475626169827542432272491032494552163882129112261360896909101785897539703414217310263855614125689941292231227224972633752690137397058497102068227336911676802698181631972167159650877609941634380515929699703406214262748714774867069362450913473931041283909314070689907667571478840682101649188424803427518822340118511757686319459334277236571684081475970740370298801985329240847900835121131681519621431214706486748233791757677562540550686011327737388091702403260901350685641420877212777100760061406871321566199588735380268298485566833300841058474275870760599986036066758042635934953012363116362103555708133336072321053184538260162381595091556126491706776631458684836599646917871748236786605702408370763072616357432675495946829790504881039485217974116984795912693314821462376161464696694541788881318018412412154716935676935893825653581045363634055788936672141435013466467349531186332839743541975390010247688045182227293673490422268858035639287649238390151555225472473081477552836025076911150424367211564792691368508474453093272721964742218699669474958888505642709400071312658656656017031313163635810886531036180656147032280360662009806132349019676891705184011313353043290766114828713841072509555512561663535349506078651077138951005719483558635068491100835682950156132918130126505405748154972970774767473216772213814617791398253024417042914581174455389140735156137334358643755108622869332334679497759118991832108112823981378435334891066460276522636919727372010248953617328457720213774466002336496902663982491939068975030609784863415267543159704443062503707062849947258409257196771167914689590575892122254937306812799725967101882089398743480261244480837953450599097416614153194779109740158271260650035430853818301544147624399736904650345925934704124864247745690253638722442039617199189723618881587890011064746731380858617872096832952692312795746534015569648408207230251544834232928393383108901575003346318486276320777914451566770602509856806556538931221765068735826053184698330324894463330812494133744542213436784374176246514602567804292509918795893691027501933377161778164758410610069746756680213283782495781010049346196512751815090936268489301538774995497254840491411362752634761863399308431773899071513494519922015009134214664185431320103492229361169864362952938062268857493245642457398191989974381316987728032855503723374666144949310264849000874737945417803616060133110506831669874308765870882547530540395739936870954070886678942322895180795995070734447553707950847847916117816070923460786295460054466471710082701814089608637877576227277478439776549745939521699481972703211156326716030942547066689566713046217269684618192876598446771039912658726108399022307385592219339558731781352360638331403202438926466974989823044542755870063857418246213596623192198944337886051672398834507332052154657650252504204879737499435539595916444140696359169330758591613938815494291525122491713931446995198825674999727208225377317487057225226586637096681167071982660655311037852106916404468196013849689111344620688117292630093824204988122586406285351738684106555934806648628104717722714540307314930580189255677059840772643754536664852517009750152350606649264671842018574567301257540195781618742318864278756133374872754579754636846358177102744725503269839108252270256834473893063984760990056021821680618170385212255723071274852995288223448019564518486268229320717819808583908312939282029524995763348431107928238916583077172482547219735237325986538712171649602000794662621534967130162284101846152195297348893667384670887734905541414721985772259635050666146478246483030221699745182104005333437735693918394939800580838452708462344644362784631931900182363035588621214900358867608883655805319263951072155757693701420885345809639990907636394446311045028168319566703010657613775162403703333341435800977096101969963448898123381831282663098401910798059811317174083882598857911688684218441270305140134098585072633347114464985242016556724827502092310327805037459124575695073273899080218958832808601241237986796833035595948853598261568056411773317394670777495252953194653453024538949105777675459333455763139219300274107434739016458413300828245555304804722975788383289510126620827267828135549291803012840623902842643824472428665041432262048281641657039615136332382794795618127730999846120446978551798394801082603319897880508776028011046767268433643529131118456785039037569248813504287374347224503754930474379111204393231068145731322727561149886775581367082376943683386165465319522145548477857659838892844566894124955484014717072872867824961174885876002888973514544800091755567996962523570930396321167536781985947665584768333989428009736091169812854625599963600829380475076239941374798981854194889263073368855808801009713678117286876024709718278387924384899454489830607648470012922321223061769533430202109864130946381818804493951788761899489494623600458283577067523126448022471163218036564503260244080472840793761447491723820560308506458002371748443892701178103547043785031683974923188094697581463867454119468279486369866370468249914942078674231859100569384640958650255244616904710504312141900647916046717837959011045634230175304549458969431190454227969934779615675824959501647095372266574195989814007267810827647371148529495230586026714800612207476613380859338714392380951288346660326556190756892122947101747052476388359377029938848103272638085369503655800974298937883463957363246068603079603230323248159307499503505115312660188958671273621867212543621599403387322587709712962230683405909316961840811638921685749882728100950830758296742202975771791770560391574420657204236815114645652397412151867738023039754068339699144085640109341587305634680448034931120524071238135359649535519782381218237577997551404469828780522227272279095465274052489424830665928414739583835273250525948987070837731604559531790755138880643283043982120709026828407877964603934027334677938132682746838960068911256791469359074475203419663349638057928589477155285489209948788692916742112759762756513644311722971146542187883831815302898315459168425405474155874691654027892491887965497303709887025601959449944488546746263403408340231206585975623568590239706530815498613361905120486761739038996300008812698402371472490434049349800637019022475382637843120149216994694690030894473649197365763955779268242321586348085018014546662027231503647573866339092389675338644939668457368650292748910305075473464121330679571382204234099183903874932768487236971655869147056773412684117564332787184077007934244307199024294357000547615082962986404909605050891594859385621470454165682448053867326875631706495570588162127814207082558353704790982638673920571193074665364873268745046590240915521124153527904681116149546339381240353029911634392001452443557711502527475188158632625812058805846835989443778706834236085631153094215844182575484914031209815593173593049786735199832646117021167310797008037629476925091209578867370324879192449020595143883287984881554806325007768996424711959144932091839375157232822786287187189925782621321082176509861662841766940158665302316768451995149019770897635797932925129950763433419601987567258442906618046526387641130017681840697599535404964014562170469521908168809734803237479645648589690111778449746384940480677270941536854987784711700989995084277444441820607857815409196044783132597396943471918073964112211818485873506650581226366968311802724068048427075093504330197027358691981831693124632407639893259489613344468672831350122752812442808923544861177110775373601682929478583347285251855927345064326813919139677666976840419536861396013362483872887499012431821001535082148819894593280399441347789395623931140321546465630894636138888979894788432273376960544994379046217209863869813753330068903954385687823154312084941639107004044204664502902568068906088572499856421443021467202895708137358400025229715914719571718017194095698522833554427809531190555044988738342595652354672499981289756347842922244668074741087579230510723301404961180559471368344451773485579433349888231493563479198415828342173966301507591204664138428259358685159958360342085513745192919977377810003899490988305038241538341215516897966848918418654427871438942827568599226715202734051853117120920897891728221929558891659196801732262214789604156891802653498052956545276249073104312205184277128911973484707286326658546817338445664378744551058289707351187525742532388126549339173105259298862652329079765470124395005356498060638770694989098996032986512133895424596752174924826240746503232609914940632269087521446477789326299157692542667166474634966570869688320183338760208710040050092423598169753900735222029616192672172395467505051993495988342963565198790595044880595957150916490477459764214874180085821606155475614437144320128663134025978643153730046156592187651924762374229444515251209722767172884681782956111068772795243886257045340256279671565206494450443925235804394812467168052044731309780554932618856053790668111946212374083077468723975628321761507690281397096407099495277988728299062503325304144726402989874158738047603909089707932162103747736966772012398891830050368115427126355884996921043151455293687909210413457150353138058844564774293568032571227709122030234526270998308460453330513975316774603394366380075180003782776321838011194638793641248428802187415059797438540282848968241843362744806528668554098251189487126050085341762784782460785392909693659605210629159999629833084469301271870760047878825620370333290766190522213706050418864471260378402608144240590806655546614238265367751775132272525510159740940368874193983484538879200237523022999836323300347030908027154218984204370400500078987188667919703049711303570989714018421940171870173789809545335092979608966072648915302840177635639498292011037033297503254034987897296374918712202914647171331048582022956976195435311531654222368732119491639062162545166378874490434124598261945550407446740416572147766968005767254197752482429193207748389836592950144936957678261567346324183892983798901844220521892237342627003013141012753564080667729181747620002154079418963537144372160044598388875876818332178545576582103088235713502857279073279345044031042965764544956518487969421400965850298901181311231645773908901590090306607532240575947370926123700511544976156583646672176318191008728100740028071988924644245404261306599450807415159735415854757606708900071189534884705890827442520261214159277053657168305977005440369040664196558291167100965617286200337435444866473092092967366816661944110154958365220845064882530077151419426408881897923547225250849888474809173759945190936317614654624220771186394526034734668424474635654702329378521826259118943068828586406882816410800013703730827386004095917376446945805072058893394148566196978084661680125123041129906099033455497051694689162043803287237596668173919981896208817003553398161993121643570758015269536083214364503646407156562645075513895932170425864173564453868448167133001196455878880873849853330503144878186239764597877413361049492912701221991609492044349674718121304522898423407144291599755024524637831756834731166139336459911626844096979793998296453153637888331750987776290096983303454778538605656296289340403060775477479603795590968287996608632920712722616571683269120771240573438584788273858080688168177674884778141414814822182599884481879699231011182465409423399601557740557219144869605681260329977005252873781874754226093968977181605068736981260290566019083650155216742083759455709221443310612696613859659838730599704254173946600153243461202580943233587070261211668207690775171483604915807440740447419388190364031299351080495199642767696303747645529131933774892596218287889127944371480905860267330814751643190509051254109933723834412608402132122876240509662171432310748473949280197111779102225527760200620406134239931743425110013172793433193962362949188784151944133516821056911897457449085629030723902235418842132477857974666749211768591275589547195502587563481919190008701402151899788250581293817570369958424530253909931071828665679014227860888844835051779215143507278283495739393635162569786601386195007297419752433214496719247550960941472629637532763753580718832757638417626297460247798020176688602951748992854206434210404487189125772704788936298733771713181289470390398254627472158060804363062174981367794250667930680992980431625673358008416277654471498392533288936766795726315925318638576270021888143887574731859311823384475518977212981233369096444138506238398763699073571195343687246347359929483866041010581657622252996302872811152143182916026525579158048800796585487244330490515601442559529920946443274202997891050284291441245979748347300066454220939030091269000910963689129581216914179558067836332784921382242998047777258473661461223679087280670323525028825267413372137258802913807075426861162934696030335371071405603247219405622830997588724843724550125357609078125501556241867125239523569393353569784997214276503292616058050303624273731995691989768730843767455545245037115227778608191793857212977724207983464150858329391380354316264802029289052201043613098393097145001470351948917711741898238504668810942950617133661030762858716843463427639980240701989914925946995213081450647054002176473305206667930331961156524964770694681014040496285369629674048267875260251779646760511295592729111496865795216471431960345057709579713541630404040626528088903234526978418897893806323636834706873883696742045717635184252522506348469316612014310908610415369164635846388419023150686423913430076383584948172484678162297982933269182535661574271731243592074203678420301278804350944089549192721776003678677538697106829353182147593654053264433151924751712475604875311979392171782629623267467659738426242383376256392287873626335498870182773920924572174055096033955857104170225666983633745628314733061993363648250921534564764584120602908502242170738281733694541959648354916955360099454879348266319584248068658702910007709033079294333916156534990459743650449136234982374017674080363120421173750008159621683803840068813632570387849618373108727213718221227219650896027638714319651376512639222241507682882800439865866755692100783944014225693256045359552036940177594715963103128640960786717916884989995939468868806456093866612832177165699671602475830077816375248532428911216417473477623555310600974829207373085975623844450009554907285817793850163041354399401671061405897965494259472213130376528689787862768934195222457147648895477817697497653163122801789450268669824986869417166490934252463256986558291783279692973490321451162716227134077680618195732944092899118997547380693552107396649710527579855390789391530268867337941256572117314347292271941174997796686656364291377436388024845333474188570726271632380564499955905699483626192689199294734861539548664927778859253076483753097671650420118024984562159738239442382656338752894187810245480821012302982968013076874485922109142592161293377580628649280800079521606715112244112931031171383892802097152249307850125593397501160697879766894351727359115549873256410785888115033231649421002870435532069817544047057933493247260038757911532949539631946513001946605383937176900216380861770650984977006171876834086365939892065370802621896368914213283199012926497614555607783000270652612708864142681340698776842014804170640897488952360744703239826502975566251966362937325283362893025918879010502445732296186395894939707718829154974864304369583669246545315755397002148276097897597131738405559179584862960439687819511281615702496969776506176821889250332175209321747162431412386515530834708192072038040800571272108184495327541364378410816434346631666112261618134114606585310700568323738139618264481912964786492531999926713796310777195910027890473731753020465330111315284364663481073565902878133561413872057931780038546800400670365587551841525190001173709513735319408184466503899217243841809134735057477777190744950607081889464767336673108582126013334719710774659228870743815445318725705822328626564409784198970110832862407884727100011373506010447480065386207557990903977107751847410962562745546328782060964797482018076155566085848089062355012604663964989505393494270259821914862751723352528415997492163956437313136111213285923434256958719266757546595744748904340373307244022498667369370768039706576785611711936225575247288215702183815394300313889527212963882904926501838373101983992441305902329856628648149849174425748972402194835959420188590556766401990832786552793679434854767669252165140808573891890822616941058566096332631817978395239233686213013313532134560800792107588507911342592991208809719416748819637045980183690742368541241054233463740890616774676522624247044665805306990579045739809171088413346204270518521857254190091589763671146487517410476611796168941457544841188577732850186814407555437862059806766752141866546882931722640799276609103800657671786512384785622348758053020322630627217298139865554594552989350286568619273020995435854315011191196396938318141523199010227147049038949353194719254744700622870307080382068005319149228410205591669835160495369925542934266257825641354859688548193287113392818241073358743761801994173497619132721698631033279363080777049870077545540305758287134892375003064172070818238570000320469366253050155326002665570238828563301317281840809108645119121360680617123252805361809126142154460875659162475486141356356213187278861525278888532881263015557964105555743119838536123689622869875275214251415689527749078920959527479818337699795045291507013504074795430644503586436466609788276043963291267037653092280320393893914221772996825829437799965273189843164143984120326062217366786257742300833069850428585205095411310892275398287406128243098686033165074748642974807184480667889798844397279941107223820306545213761120653704597509480500661701995136393209814728013616723172610500187144499533513288335036321253561507098867017179781449130880836604426077621396797396348356713655438042222628493687955619904012435541034674847895427182374477898870637357264982050188922158331941845738339360351552775595499927961115155045407205868803192652791259564378805624933850276360451645655520692434427378634436579991931420952650951254731981482220461970867441526284791010043472099358968677257035989374183769017918287697680781818159238740898356694802243697543233987184461914175052868848637004186593727939537638415762605379354356514533677641574086224764575156826973286157004903619641164788346064743778570587639695478613759274743078804758311268753079210639695344069178197957968468350597029093573566063289954749852116240997366131140772563338686622730414047961461147597124685680745541501377715802828942783152181872938798578489854891756064896409958800701359732676778105573675866840589467902587295514114195121917057219444653613440055351635717921449642217336226916061280219996617249103426888214743861187740113816938084044660906154870863920449536432565602342039043137433707703413891126424094097747733865893368033093136159128169513939330930561355682834237952137791934619123051433002668926266757099719317334719665525355498581487974046041085601114440675892372518288250365139154180375708230355459239928454171139165078313716890657416188062985674297223252187440582248772476278526655589492936488225251437700484723533592066825658557525595612963691564116232765144798668348546282272502494181938820583421337868388789668096499671570021294766612119375702190465058323116506153078553452126343787499347085396258539601778948421422095139408439357948884670784574475930157179721966082105522351125692645224406999722736831524596966021712259322451300927548624548915277288247760104138455519055241631566890165113991220975501623036999696849981972264842939348753975560726589447721006231176594448093311235255489048624179007027477601740181931348342458573101393009117898621166364264583814520039016429338458480759976507012071331018732661479343852676979177239625409405622235665793629752459143709788595669542469059941696086681887004342383171170393720056466162685261282233312447437896550035541853992992723685444553191451178034074593531176443195701498495712166300625494893069402839980793980589883508317517308967667355265731324101162104858785667947533680994648374789192694129592875419782173909517118239881298795288368356585900495573057259690192560433922916188991562216027578482913412273886038726011974013535380542729775919811187637857862738173850819839436410338999266704440149024104154674020065786359141409498533953704587635736305290945390807931979896262516567891836681234179496998712558924610913616101182825072115349588089511826524758812443206651335762281177514857590432125360248759752443963162210320173117367595871664189432919767609214899849635193580940758119938435528257865535824614859886915626524018422675083186860159553210921142802506536546994605249710636356063655253758634390114068498348313590654466542843082497980115528580397181063504357710593209571527049954362525191219847293491119314394592089033022921483110825067402158615018791099945126231680572770638146545329967497281898205722610473935154179433094257189460184853629319937964288607412933685802517422208582139190851241532623023613037196180141799221062528147622196963211951074940368428604354320504921554395756396550297851499078126663368555692122264742427722278053211813890193766552993871692259614639475389646622521986300039020182842585696990152385486380047885500818842708171901603757337615268663168218608504875279777624928009094460920163944405674482750656501510083933498866675066217010387786170563070202302949152571312396368168061665592967795309555428311975393588012604232253680505055782292020798559686939956477556929135332372177403122889036653601753045266056243329986693426252612211045378906909405343898696832192121541554172668352832050320881757392629715917785206992791168389275444069640125949622703906954837429670107974617267026355808844089007418469261884131859464216777969112516082978062170613933418490620502331049860455055876855280503302776242526003517038700221024512335500999638254603842404080711394121366202079626369838901707816046113257981715985584374020486057113182411743934071904834434314448688984927965770125128848594795552350200185237929148552743368931325344773756514085491350549537889906040549662573045689670248800226499146457547188779552456336394628644870506847343889336768730271964305946445026273493832883145057992570711211212071383941517555075576599700560919498731508518568499301830971244721711143496650015906799381789157897608155272305072124351059109084284028991659336972618513875756216531841235673056003987611108267623198547449592608227014840196562096294178786629000913149976754654402975363117166003841380732953357062069779123631284185618550158363046734754755672116287011339830855469468949302251439321133185884712231151325568056280950103618062588976437742328796846670318978661374981313075466869902575552850773014948672324399971891073647128903298149503851599042334195969191105541666416996118391938492404525167156049586052889708446544122049561546208019387261564480425256885894848141442062813693488600634278752818021997796633090585496331472958018466250067375963917325645286805023198854335015024800329561727889902812431090435991251667105295850503341357787174297743611645742515809766823656646438247442149698192311123913769514237497293203795431203137385422333423192947434432690841219474564283656666437871774684442086946684234445996305904374594033405023979232082053268559081648901398717208702919599694005962630739488998703768141350431260558502675413880640526866625240243299507915093968968426507693251744382600991992003497997154719669652397834430016763071515603947093961893132947838747292804676207026497411198826035585974916642642806147555529251432729545574742154517427710232053157223675256587118056153607992682241155873867358851800770460617635491133450989820703135713426515371592664649339636279886590400793981607322243708940025307495014363120409298741134657984798150744417916039263922126692613075474914787178049710979821254810439231854843387040141383649531816730471100700678299772484232062233457553256013188916853228944795214802860954546272042728056452675589780227327765893176130064249513271321348102100977815876865028635598160990711634263308172291669741729392722127442004881353145852020591483017095355632952291520144846297909831611603664102757548072681807588928428811924559898274067688805029176238469074788918769476835274935966999640340894008017523342175969614846111954089889062097046518470524671899686759291823244393152244384235826278541875665424085642852236363422945071201022875931044576730349121595992113891786272720605556142599712488836814545577990166648237522872231725698945300397003531190644825241301803565099776193962627244348399995182203720796675938190723447980253623450751826794527137246198632475001589270970620394245973407634187022460015851558823381749654220128953873218766764172900454451909389481672058978750506670017681775818281747610037471025307350763497781112317873465223650473237972517476563260251632824816244218121285944935425364256869161491309095773128719543941631730633932672397367979875941389774387082751084946043164350638483073922413894643850015288609284050924631003691877035969709781531565825544443091838937769762781076837701527431555803761789867044319496669827070843829124003023759771548869197449271993381248150474442558378454935776493543567239752579796364698015156253311438222036622813325871144299572551076076299386212044577615816230027355284104573439632932222078656555398817865354573472518632225246917018345360343064643804055559267871739080205136197861910566435238091419953241863397626061379418378111501765840278082543071549309126034663590302476487551050789355119820032759997939728824439573326071299306188825179975798178131268109282502262662151954798358645052928071119552944985189909185097259904543208724200277053230494898535355908950802623142586497572546677343070771766713139315325156133863760417446200898289412574872063230362013385770524192139815806587106991881514729605035224216268046168366634456529049104025782386806401127238302821920821706962792793826973227105418164228243005321406034623888988631767403925627094211965474529336128711191947284191822649978491602694538051337033547271937720117986417600171609081313874039755687198869393321728155486893828891411451763704136982304789798070913861423871640666362760480292329626669239153784278259594871612677587288249637265816722649623783895425344517783810214756550321054609974856843966594465294983459643586329841040131106199498415091280307690513293778500833374224504057346569785739671495987215924013973989410405820821507266830981596553995771177068397251051187706358169164584409514996906685699069518499021281761160681410511475944045704902291525042621729928782181242329468252906285040524870529609886436305356008358479641023953356997528448332964160970560290499622140642489665525169218277309095495234812673402366384683044480337227395926066307706351262484048930325581845794116725293478526617865052464775572125976157988033844735299455687420963800976592670013143147279516671037818318129628809817839111373292812255965425106352727568025015808926011056329038355881920847239421762771910573227881362049941065422062013110448802214770144492892071810281648550962255794193615328033698651073005519059387432186960216544708120179788579450863116250345217296178267637905038961600061239868936305200532562568118584202869272791024471505842443530711353693564770585087463904957348030041401661453822392148544326320840617396413635531579601122374141378312096810197034827664660322900068570301840442448912237903224053605735135295742243021509615595479275545832793311858449885164001779818545232041473062934893409702009981293339722553824905642733010618762054240402783633416444086782885752898203141433960106524803036521833255834791131652143165754506362037261647495842176588979098182379400319546998446830580247343982752093037913957617414268437201529558822620315165408682237186164349799107073428113045229067489798273996735283417094321856063644039689991359684787335719743746601713375229038997894916113687636166079749041973380440690719882376011730137288979985427501437805323205722940709044899944580561862719351379135762005634473649366088882697892724919843206216483384296346021994035669700073436741143741252049121217421878230783415039844305780505743344903788460010346012926603509695811714621057731516490470749114083372288058901492133457255433320735832539288828677257067408414575523160616413212660538949335326048839220802693295262541431893406039394581590593030396976936390172844490003473069149200140042835520415506447404337571824124072438829100083155955598522837210012901968093243719892767096639863718039822659402753425326532205649454368497412461913040560024026911532971815169442504097144733807980288858962331616654046043628276945869146626349193765093489503336221400736847603468354962281459252282095771348720577283648502483622840114200911754954223133897965920453826651714203016043449773122009352338184223684659154085170244791023256942448381256199328583489881349403386521174608963356166362555075503716254403752271981642457735912870546963006215881897185518544197867656579557032408009216636682847885720922707097818637571022083405871889915182013035496647771246342427052960305346859961337790262163672357975002207825259578923996136662933113772814039517002658964678798780002964484168740277178976399887146288528507050675183298087019257897033614709612483362680206575347642289378682832094801569453635505170049507275601769827891522418245264957603454082858754248154524203847148604822055474651958279425535636644295567876868612068931063157591490867571649806074297283380445079004715097665160239333428272830535334547397866747090847532215966455046044344103637104618112050200809145345211855979178676364087308626973297006049604989781180224036606527789841824502901395306052256457694892480870967576103384141683276084535050431339304288948569602856527254463003513164438935014567329692314094449096475916105717443718469353095839729754097725190689713517356676126196984357453061398608798522046518042277560713529548752972667748725207900357857318944243610473320507698252299154513870882245945760179235458260994544941258048686125584964596425411150786505749764616814858496732840108547660765544979428404761301279270771707914539653111078188816278084785271060728896787631855216034700098916796799938686922130550611739748737159296527013097912048039564291435801264912641514723282257124989273399715218672715831617850424482076188777413193582068287422740353454916010782594262614262254042738982965551840984562151665143237748762418868740685007843501501060286246893952373990540121952652463288008269358866056282375419278853687698755336240070249997380910037041153627563523387353291460924759509357495857416527231487593507748423295872788308347454148407774775919648798776522326104064338450176739271393740531392740207067005498953148003230487163197773714502344564917771412936261120458536216223258994474671704419212937054430537220621887840478276813923528107161021467080552098112030492803957423006782526968147003396777108896545415282107582498480577457130280154917709316974885798248846817083141281920245529700223972168803938719782323675468044789825152544275777510413195326476298301759064960305285204334539052637526066962107448254710056252684029480079164009202682770525312070224333229757208540609491037000222519883978820520720890719887889945164429350375624641266478525866565964181408495854816333270639109154847383459423274891146632696287280446948281827854153932752558254800087078257907018908636459054664303148794712999952928452447199504260794811681722144275294237383428910486360540891807731047450573475248244301443111051416299794102862175304749051026531740030420522141522089123188023601762299733333148664897553751061097994224853265426208911090045948350987478278309481765763078871296278850523391731368229634505368695414834299223587864357308008167669817884108946662592905229129930974554978745990508001943718307745756515867227162274557886934985226193528074056043578946136173389389758218746409899971948964903626367367927698858223646692051079195492942492525510861738459479990061431213347805549865865354841281193793328482772739384283092919540307604673041540458148310328070695693149749408675897023248998423199911877181158536959153810783714105778373076526933376091066199298892851780942074242943486021105169392613560729723455887480926811394042604542643479700689661837404453146879375547288214375806784520414183510867456524838552782772529488865885797587719598191629569065845485693072955721537902646513545617518313814395558545342998087281350186738462698135616063530705395223647748178302566610381477914306303170199766207013759063761997178797114771185957493658664643989863856839893245634429024660402914463875631176161038361145433822995060870326289075047120470222405354742292368415609215588645765549596241360299678293989162313140475870534886418265516920482050035793089777428949800281568968913712267117088902802853460847490187529916629190387364065439567471824642447728941173194678556188227462275551516653459645117548749826464143271235751981686900330140370294002624422243846656659763461135636085227501513003614421881043844412969455971661536085575106697629168503879600347160495304498144824417930766790572565851615951371196013353009421824769224280394890830885457416333528622287677837809831120544880587877832475532302963002018039199378870869108720722525676476745440010462990838309133798953865032178962633131473471888476070144276289518789352252206292633950023562119153051145714066004599223987618288452419231139351619002582009660895866352016224000822237463162013940892919809349965812538780683698624330950928376911976205194622508959305791096917224231483872805820584961027142937562471813710428588710866190169711225055293768157531496154541100179451172674900257952937430299798225087220051096338337390101493544068225562081457314319024259372799142334713335294846650723124193923939367735128406869352782943429795095104970000910385809544970617517231769062429214092503311730243532841845116099553102364397567646270749512691197411511832652131664049848953484629791293985789272605680808739020600461470020434280077123243347912120761018232861574049738436398174905156547400809319279113607478233691216061547526205872729066105485371038432260365228781968352796634064206348236912211280519995193394672206878897968301680190280469533620174131826033814623222358067177196127888971459956791375463116440123461001594624531822049589570578166685813215191920155770734371409468623377023766733818172007591779429569812384750353863926067232466607755352807781219435252982899495667776765590242120260912564514676691502307469688053690075029924387129373090145610124472577848568637226119691103137363598568663056734503667310131461899964400671462638870569812904651569057433656676508107210672303338563443407809593849963824774757105220424870525192615741288053865505565424160868317719593763955138677325076273163936001400048874177845697784319085907458656028562877186518930871566324281087916448045264898058109195147476506135706564296624291142880292517939181492791141361395688694581698171120710157488322168912367229594476088905321776513140464697695568924490754631828552477144335410634075606111468688842209799911579616034107437712788659520247247619263810688390926648081076105529660182959922217102050503507460773659367681684695249660519934568539366928986342462084487474029025371216074954697963300886661789556817342410105052855146092847501027963990354139818541065397398838280917786485907451545493693432560514002615644259157974026282812690470508602884311201175335837018053409912655779738127652042415314417125302574343567576343604506509168377129665831340486456076596858153937551246256050880254981257140645451399766062405085730026064573876527657595527303371424893207389199711889853943858593481469615470022652302680569406543386653022915299724965060198120139433537378019587223537970381272118794528932664476883864482839365828124524775351116162937030590531083768799468438516773646740478333721386911089961402350480744241451008351334632798454096692450018446063668483264429458909192640532855818921225193775439009215688010517385410323161763649385324756322006038474195839859750635640104939190303213558471486141495500107871858468445799525107153755994398101367210302625123590187136836426805268501914054734834582172920693178043495988242123905443271312268885125722257882919977108949220100177655167753252483241910958110465375668112954533779092305197866719370200841495073186294986891263355267293820490992098854320262686055648731052961544418606359300099135699273570690557950940106106676079205142172900635294419056059482526753964364605094597781698430729022577400265769111122408347905298741728444422506700332834963977557340814436578977852912329469099647114993561407712621347132703017938551002753404671783652085440175772165184202730418419492372368767806764700265408713221327414300701829868991131131500234079550174789147211028108664482956821745978032806422549753489272314968366563132472987660908035485744863197723121235381251622731676623067637271322524692596924881210854992041309611244055904873454658873795515243425889090048824142469480058766648113451057402584732911879256969002265621331782103747289457679690899943180959165684113227631568197022782626642264393918221632345802378813608640659501917068023463118447841965155412481714572555895628494704835361910286661049524695558565848042617187970136934817638783292574162287138304506526072521916650506262643553254372349575719554426079381939174236337295590641261422412892290538629493651194565291432721204260438913097315671608476078433489411924977587971161452935083022408332645855036623635548289903191462002631809511307237959428444939555891754278687866886160764346421643391888887461956168402485961902023950528844542135359852569316806550592781674199433254614331566809478384070342544761018347753937651234306902303626576271417681227748696812506060267218077808950558782029955677709880970796780274369989280725676203906873670952926286608183447481659143951191653441357490188837797339670298032325734589103547245944835184533552131807871518813141457133448158788541024917567744193108515062647261135219504085191220175348712761731646450754044909028367639836517688274270492831819063619735711516895304724636180573361153627285025268407923859512016955266972285418845544266999410322416976898141455800266439913778872791867507215149546056879422118417904400422293709138433017494793203676900129648041584919141839576792281411774794462353085161235438354622477831718175317571600232732296198085468190006113871295351140116334300870236918472522569873992815728873657748502808477403727734506617905849335592569701330150884075523321506845707708458394580498472552056004747778949597244642707353999974182008359993602020191574077279934942325756079459167493055154230440594580124044599505102523232765439742721181020835555503966304497332833792747061350653568966624536865500935976417391622201930223880315589361808844401582732245317018604654438390250804815154076491710141838336642647517961572909002459427106225033225978322394395645431702787229776471657773268573341919702258754427621492073110536114063741649455570356321689326123600252739881749927317445301078430405164212314200910693268164578391856293607127709083170192399943753564937571796036660377198264866807310735968527213509400843882231329999305446964900506830665692840025670047844745143222980507033398135992610889916513412141918302103239111799494208694788317518064591769764534129169664087907698986385109119026813052314626137014827645553865512231528707133460396614624463776196126192452225073555487426762085245212635164901642848315036510019418559212230257891085274790401906844026603000525384984222444959126026663281872650676253224558764841859066388371435053480499672417641767979572979558714050431516112479403958123482501672213064210262852370396522374652130828697505559203643752337131874268209684404408330751888940977961903244863509270423865489712594214688284107455185475080066949373280476520466006940510348116468921558225566159087037214399202363352955563172727476854837432853434492583211934384319611571985736840190072478390480311077055115404099639487990890524774297837154854354204186532097459893030443233231977188804654064761662641253795638980953400804258109649475886868326363371791394103061101560694141230051437197208921327398817500544255941058033404304691421896099641263430380686773088722516795104279540941084588184220630269636490567156082108422830408799272013883055650057327222178302668703951847698745280991048934405048078114880752267402619644346797375075361469829150671720260875712884856906849751439283572598951253313016047087394646200836786622122370955023663527602937355166854290301445325869478339632244769490390772708397074441362176499789767753181590614789297333763059219789377457985718938876413335345818439232498057224270513418639834649486007849989028240974143890640558770832839101082135011771083558677395839653230247816043265313577840574319764794766085837773925406154551828989921424170108126031325740851330682359098487454921375792860571020191042221004143151092780404996783783504428966587419389787160372657559434867595160982617870210070333920541983609346106196344144292960925371710842016013836948935235074450007603846895435428936983177546795270596752507495772779602409290444056781491855444673120694354917037995692792090871502361716635147737277643452963839161650718753997860941739856835902506894787110022623392942724382903202986075389267011829040920065481308773317756048997013451323091401794087340549312855594035554011708727315151096221612003229947252120853779562596797049959397500089912220102439985066511581372262791764747688532987021428747472213630239140957067553372888046319917568503802783127106181507170027830616149301573281822650750773238879143301778729679103518964714697612896633582030233647220487159429952427771859414926779630564369429524083639243902107192763751096090527792041353018494073296422633196427267464901950082977983992983250073555962893540998354717648932415900240587980534028226000039568857148433130429552797551285254062778842284092033045935876205938940231051173469233756212738296974961823272828760279260290363241900376757453735771435676629067346815298105813192802414585430992723137087324488782444835825029057986662883384904192597416419520254910197372066184450821292688796482599455219139839227803815960211871433682277445158149177505667298093811929927243028681772034037756539443714359653430013804300669304761714099042300834250339883674567704344550161650245093620177409569609508951852267978235672242303919363117728484451410018390140655259379416457177738415678200127734353008935227887694942834397854127415650296854865164747568685121017288154766495757281258609431379840951559215238926387681041554081305263622206174118391620528750149829472352742738941982798322097536320750742582063412122317063214991722391696644608093131568362761349863380233258987787456199494908640151234811023459870197139352943799917346069574005523168061284691920169618016837481660737541431055804477810639232539271916063957121191891776913029656540473096376137934796143309233807251812260530331014107610996326927657918489084784761075053377674691172510329433430125282155557367709563196264610370691630057381227966147892512457163981748448218284835258375755570404590408020103306973757651655036599796717289816018522639354701643995042887265755033500332127685821002480817759315217571292618522175020375740396740857157979574255727990851097805412369262047461551215702196501327918461458413232802247756905440488345551716972840108199369183573666880756280077244224112907486278930386629704648234475871088938861476861667669728505667982850115512981165919043609955372921738844394319493435073473617948266921574988510449305043285062823804138638944223307435630376997438261706160743815964029715211264536128225712335423671097718583491350725408415041912419439814667872364310665209493729921206353558112250423954120744436523631567545312030246757932372886619490968073622190245368086119065875385906402285810662506858967442108664989591954966131544468934645596042789978122664443046476741687755271731811220254459393213806991690186559558220185129439381738798013395292547851458069646942511835112839472818644323074879923351192126994154954253197880769527654308037538868416246656746640915886575839971349122058018791007487639403621485637475087948283694576924636125717852593246515467589261185303568996803724098024819405770914028782098426886489565890040226860814974689726843984377626788508205137966159972655437761868118246494120638417663203248937722873035560914948353179077671548760508719880640527451587582648220713716098377054869655194415166008329397988211193877182444847327225826343002309152940547049838318142753656962101337543249456470392892882103147939651093681111268670482631102049526591456549914536558305296171416027974102350252456473001555050031186631414473320928546001110905318398266279765500334260564937561566203875399844333761929876863307959779549790964009600614897040437711113234030817067030721564437936527974657980658380510496397859721712885254213537102129154143526307660742485926269571897455639086341838079139444659674611392816117044943313902979036281616802247612624578034936705518347974762788287097967357509135937320788763107208652123657657994664003588079915029846167996308731420324310363409243434839457504382555722643326809220653914458113198970341081385066745596684744344579102594353197496136901895406324817227959995666322788967025107422089492546614876314829682827700195757405807884949898037057387777929066717556298893487703234489157359529008758166280853609534652129006768610359866497363820943675928508879144428931199480280014689412138229030165781814625020056109815014518173598089297621600864522171884992409777409413126751368269731656775035747266810072735403300538994808321217823174862894234729589032732808668233992382102878633710781870844505517199573749184530544180898625097037155538048266053278506457681663661841046737868353255916161229235557791275590117765306734659613856028031030219555605563391860376937530175169722246412656416290409181626613991650707358637827543778807632329109514386148648589978499514433482410222236824115528892948515051750819545410219520305606082694956788938265808890500044030674535589582991428313968147608488879191045509191568633194704332428558912461520240938425297887686781372796930591563421664868362108824225215292218874490763934844789309280447260872262720655759018781525248177011030500442762495810543022580654305032791963818900635815576738440713636608176953451704141717821632734409010874199349278940062998036624488772719944873974589561333168553777739375763749227285421227212561820774600985879057028240117840352135495214313852091171481111835804324911468738418002941377897704018542672108564677955006121468671828058891333538724571560637035023355770323758769617521713869871650553284393810104036820687482727190368879678894522668841879138915033012711956567606050292701191823652006228302889107289993458171054832063516600255833308794442701075669507122333351491026910403458498796127051086011607994494855738336584178760750971748423410780560456264229053990052507938574559153506727944568622195041159620181948578504831636905462921266219070029371220114131298434816164754609735408025509350995630935086985182242728008748748286085493383464338006620249373732149693781480649532134918650419996559607926216181764295366291887292315303996201228639971825377337120339005128619722092142307715684343628418367775206002977770843395768548307915421024294772179055623562453626553783525188325440718100738949548258260651655761912881577611636773721303576700634082292980917423770238250035209500469360872668777421073318240660019350069313803289523750416280704276848001082676627196333020944493489298715272055905586443688913047870011828332163387997527175623271087903653116480281099472544711593557616144752822303729002804265802454228914403691860782562326171640842805745024585486083772100129793812419652294557237211098196729289532018153603620120612098129533695909126426504595479581660921779829330909637912050621416401715084898856009856738852307201130278105792061984535368484327401220987687957793148289892163864494077437486424182399473776580207795489621493187249534394505375172322330360632320834546546782132819268838627607137667720612131123023344101138135726936993668607033855377911830657200043924012563807529478942303619643284896107591650981476045014617522816386120346123062894800555830915473175119243638409895662327171973470596090988253289281476462708388962095425339498164768400322486988276418664531066786719927853362917912842659207417677098205933801729119444252740077818610703452990141050344991953496657006932884348120663968903096120950541789702428091484007099834215820397591886545601145862595180511521686180221187564949318354996556646879905304525589040527664829099845452943901607340904711736680226287577104351488505904130204226743919217192472457650878814884211776954468028380345164644753467584166274076227093971741185675605324307973391111717691049017433090027661651307460594262754319453002498995557789153003923473494196982560919967026120242080588427183257813965151581877082876894091293977118538623488883683522391240497288292442186195311372909182763062048396980066332891066084224072562037158334572778290787097852372704007891152806785256356385387370594496717062976793900305329170417622443971788254603174533648298946256970639947557244537476596513041102726346364473761216545842794870964364182180042832228819558413571592882446651197301803701178146213661448719657887706300590441292332912497941789058188725387337124967283296107449860812810663357884611213949513969629162825564236789726739752397973488819978570602964607726794406401897630137444767525291597693509339601496070385170456557014345718979206191026171422658793781418748778571175806272041128678983486485705870514330975968724835214149317195122194428461011664595278725335722168176176984945805184285396795490089803347181135770955081627666209833273665190654049882963255442419420357954456114234072931270518025706615512145330032909098978907700099981583327333056586718367182098290470245962877751232171542893932237977366884175688975291606539593448517710827304194118733059501523858472865785994710268105696438179021256094802992475333738942314480695461421626500479889682541552131627025697193089872890862883770397762676602705746121714003285548453309237427850483725713925871588634417717496643366262546564747939384313677217226170933331423513007266877272071774800523770478722325191418277778407070729825213860417384480087167715078017833319808561917518960394186516421784760168312380858027899478772186197467473923378655527788553165645397311392246391364741637427698628531346631132982117993364849544231625803430078826859088187823907338046117867009531741773814780790911513606556202716994244811203462761848826613602912946242217689465667032120356942174138016714717584511909016198628559504649983239919751908514355341190358076090861114874556261899758293050032187167806312133895853949253508101393069741443563077090029301172008964334381463663434019231864715345344360803480875213294514099212609458660868446667586520954230765687533379391712573627163047988775696604266017000841987843344973756078595305339160836489711303207089772624868183350616934490095642700503095867623588800101460769903126600524093599034428568343529685592042754645301840165979321575607184108740570025883900879849907720763187495733601812987162130723481857671934329799021233870521570307643324162175439317526215900560762116757079409366425302334539760507491623063802048919577782689213113533604644993589524070113165229114234432033494389536576486354127269799453530969805246108598616331556515232792722619987249275647249153225665844457630066744191450093344999937590381152060926058675332027817469755209370392788675794145638410277869726770373337185601271422373204646164342077128241391736470549418744912020120284991178979793402356079466574733725931010456223630478200569049347708129565577274759278544167365374570692444684899348917064799413458112470303333938482327698129766900054799789512105198810271505015120279826545493623405914575722274036876494813554444145956099022009222999872659712949006098090375716531933578895647595637651733141331410454344450883385836885857964638336284496065442847510365558194798666832018862279137448625718215917839400706974081394232240453618692034653798388787196154114056830681535060781966656156103067422544437289624151634301516420663269191678361650629655624752775530569675173778435784503535360022091546577574593773241747911378520666277072641272849329566441522817459782591606352041903981962207578540816035513329195562740941789737712397365824725452725592629857705245579997519623499983296132154417331372557563384749357619621186360416099381753616486529699755528940241355722286364014383328708349906649249605043512183131406231702687723354178336751087281091548789088975165386976381493432611330574609636687237241026057853644837736819897712100689952823429689226514212864718528314284758797711537836168809286619260522013752035872126986440288428153044691548536117345864150440318994036092661336584163293443343031266755854670366404738448325757059303651659393686533009214405022394337749537876911686004272754198494098797182910779336555181646796005326326114558815197046519253599609672115644173389318539068295329229143177716805496505714131848509187397875816010296509348855202353694725804830768070604437981780528283386286718444767266091937866699078234970812255190672747918128721293821572523858223949136686116684619556531724518905539599856342724084830741599928479090269527664687848869039677146859374452482435987981651658280263055111131864601714949304428620900157294941928844615280128101080196803150439250743155753656082502914602059541073594933741405580980109984771385126469225174569349736956091270385143748899041733076650150621649538285902064216520322869349635043279945162746749557787301497080513946759571728175969991698167958641748013087400599299231200888360570584485500390978663394950194252835608059693747019680083865093084708644053112647343750482291110644187182706720196573508492506367797684929861317548269919188815477411740052996917832554950478980901732173146701954650055873744514088557066623972900820510185340520279668591129154125497739885581856443146757835305200470270940577673171589987932621553000619129143496244114464301815676034996783715883029384207308618764208762534341892913895703359115256527031499520475301580168584758317833717398149551181711479421111590241697351783808657472694193808325270695528150001156927300324317553139476417035291637813196553513848242314467148123891556449406472931808664429800056862978357652069235952986993303498950987129808011999067683810377889157751096829576582229556086907374245229785391135523748768778349611014489670623324605504014661113587495606883585668658852962559270916207519378926989928748953134626970763162374466348948921331409143898152979319561521273578959320017497075499721404489685356340218561573318347573925217130303495672433095498308653647255450289932444961795916303213563228264762584439848938343646478044926901480920353094384603749270147728816825438077932423185052004775949503780224829612943497053061550494139197692906745930879108689947841084720624275434297973555460678865596281567751470686010634734856465672823666074580300489763782145912694955574853720939056618274206682218846689490961879828690802612343464746554391219389269425342480949144964853402850050351917240287517453669198221648200819892144211088538073087096437627949451117008693552273445718338239806051110880237988844206269297235118120851023407592808532206462278985575417500812691249559575772619364489594890682463168372497726098433815273452650223409747346019484475565556699388959327329653941632290243344249826435253459595854996416034323345588229942696046707433306300940024513002261683283665303718003984925742790627528820584979115011324502661097797215738875915394820263181928134116821589627479940666749941686778063906378352994410421564505902004992649617559923587745580980863402325773654528182271566951387323826409851132449588795654725515200721350598850886113935687116157846010942179417496048501059926474203796164232735763471795854816236769024664924198401962723752256357350747956619281274762968368423907793066056094023277867151251012866335633506606147911114083790516435974656097402538943447101155667879512213470753784234240982317288746968359235433018206454150297837492863401368805310465801306992705826727508231000041924713355957152349808587968972713730941229444692348286673189434231187598458718773490499842243648990939734147445247854456645397113735911532807473863302567701430725353539635590616539471300284617525333704166962065580330601152698358509419243429915633820650575519715887514943291582372185147684065348958365846899666691484295035351126700262824525580992512121822108242696580958332734360992047048229694188100139444986207397619618894071588580805630524854512266154989454392181547546187761532106209701867714133036620516365627163930689042485856345641243938805183041416950659177020542538342720748678155369094315717609344878817898615714349609100505566686902810467834430393206322401829535073058879416304415192283874834598456086329607428252607228176530646809355828301256854452420706575833515336014191830434406707605575307394991758347437019712159607551226115506075784552682099224775134260390001471960204837619885630095899604144951594171335500363320476833229325871961129189883202312434469501261091025750863811509372470190431219448387138966951323438839173086355934056522814328165370202988569739096185349899060057723016960253708192791250466963120785083594731319603875870664225046873520412865719088526112373210224057614295344111309852735331470212152597840844794536822289363230842479843871184755688400980675371543970334966352428667026847697836786835721867809055746037269079482700603205057708313291767576403000738417972792106449564235477264571869324308486374011702748709336450253374051131880670356529569838735772262054030675748866246220787634132067372319607318845068730184535952394020808940399282524595942430634517899817519018416155807448175255647471906044459490128620987103300919244830013248499106878827024874002345011058137969342804960642727525767814902171017683432179170397666647908719109878182689272960474158697131178130250787344549186479126671612537686435944503795424080475855188111290945729154042350884953523138161055647333158742879632142880775586120537417921623765625144036991346240288491439729692173651256470309545183389067110783631727538472347749765796513747278571501557813672298795380872011297031577050237493406723595095731305564736407057131224323128637915816623940759132666340926422017729759733709154001226367030394683825246392876968983094189316148109256134730109326748590827696321434748892212749128211259373564258831436186816628156217981972533430924697761492514233958342223239148826939086362003481912287451060165361734452143189690493629182008279072426771213521849358442288396295027031578195478909672692548632486933445244168705330602617015066839176226670228303891200169211182870526919788049058347078489523711656807894089416993523891700941593942292522833944464076240960535613892451087343301746919959324990429053549247272352179295004721505123579273787365244339580523192149886404477349634143020900198581671273947105119184499196899543078545483340807724944252931720251293329138080786736514096141631438326919120931021569653096032044957920481776969200591734772138809266054133031516794366192488019416553493432363686543685532148030327944594790899440220246016923388098532231780031412882760098510591899115621152169256244265158198756935713180945236931524329900074695039382085245786772019866118062536690576015397191622515536091502640981443645772400420263570127018873050720324635316768517370485802884580271872239699500025723806811972289547028633795816109387260668786614755230208854493959026487438861362151463875544984079617525082658122367992187675364675888942089403212214274289096284906796031640560498866692584565959688613377396076214522210877502629074489758458420015162961460886233937579995577500182785485650701963431234890909259984463118463757934513377447315626460624121490385500682960110270503377970115717930194173336723217546501017386487870810912047077286739351587945558020439700902847524508860601728141752419197813574007108885445660791096389045851368970279676035998203872955762618234968957858284932579814745369484992055466462341515752791119854918688213070698822396373196400677197624647904644106203582662929783159833109554013341154190518088042351542866038395960386336993699662396190346754089506330416512527481134853280776157128816502224944258038081717794050432828334702762542567653692921587347687841385810687772032564799332554313457018191257907034147855637797441128349504653514376634020710206263629089674308197938648957917743066075677701076791029929854436559766590661708318029858218979316874970426881491149100076825724702918610876148597275063975479445880977476846492306599148743679468652344376885427589574269015144114040625866996930239809899247497516558383690692863130655829287167098296430501744478284196784978803350651311410344028862350782607990997192272082878794226900026822185417204908951839097462009812271689213939876873307767184500562811425383352976784293802913456398171536581994885621251030406013193916721933199343527691899545006508991874437010483387254441896088731526938336938895730751884220893515204669590382331103962620908580077089848475059356611151185823141698966818664708230418847786102833040428861186921014085478766480000156947614778613420594930193220251560836525645551874874287858727160277223400725258743255138623092457238204451650195322334901980623447582561116879524158885452869930041547268186461487156403432391933164599686239559851626889995430691214967579820866896547383904201141876140660118155071922891311130447928030455558947520260764369574807492940562623115771189584180385588744280714698147359340404060050918447408935870017988164205675283833163545567393139809142207800953425142624317609117298405558596226231701808741485012518646955614463860998542411116471454472618642896193186042615152100276534466809739378299213756260177163168178620861391830551764163500635757202637744238079528041734927559177897571703046844616571048780945622357524851543119680538553614946407066769889632514471396625831082480223205817633536720470356373527765678495388179295394315374830409379493303028176164893561325694114826351534294177426534944535080139387011061136807589466001013052858666109398158916029083747046273930290055264691853015012718068235675865454136082105772033263174665134643350604670409722947984706803270678094923124263312649021974211105355595339255157609384255402600122271770849319283246243649246811091586173940727334188090671116256135942613199335430511393974126169072454375179495075703847003926967679822022778250554350593217445298531834175237816428401166626341822743182414584922072869974589393587923598088916115982275210108992300713520610368310977299316848270515323302995725889882074963409284689979368331847721837888963256546195994167155448656929857264314377011047712490098837683117447142181374913552892451405027760883724389710462612088452215009680585376066418608869515458039393611368664508156225241783184278836472439427565478515376844816095741184089888150169712076626506352869684839320588160763668898560788698019195117293995290489376437140569087130693857753367196166228988872491540424741309155209907254738897076607430891684402716019105983577043728842933442857031241444426355623580032076241713176800177672724499913233237126547316750284774373138169676684099756425421570104640691670879031807345197421146332851494340119349349085276342660680505637115597628214080110139631323834606165313387317990388231225539694950357339126122425831214593557901101918176057759357440724994288683586426640873019181053666686652880349488568456636989498400478563252476083585828238070634315325241362324702321941805952729798498290554957718748157447453287844453161719992313056722131806267745938330293492892894714859155923090147344080662475134767379382712272441520125877581415532157198909769345546540896349460515798631398904038184068178648395228508559360027214055281024561126725598957274762624069407598977043440212094259556341434255307454156166950202937304748892542406902404641231044945187115558472397525934920609151596833506349431504203474764921118698201291394106989043016323524490333212234740716115047684583132684823602089348651019720444050268892128965085515086158651006328335565717116340747144361637049890825325084019766856961377728642753766301162746537739796490189645099976275147668843145304212140196742529687440907632662343374138144698642642605812043219903355989458887422342410012590303750728786002209703102752492635764921444510531229280121315254640242249957152123273646258676753978818709264578203134596050311114792559350303911348212090757182703909849625890738919842904759675456372643347448281168197779830177724241330507587951954552494339993598878249175906549819254510001492025959519509475026698061930550247035608500486861633643900194015134363579937352574868487144033664075584990021786810782684371569162014529856999546994460877039583162278648175675007334953027612526170534684237314237875508375386978047746331105822046831411112115976276333032941286361778065752250795368213642730145285050762923394809462797381570642360358918553631709101875222468640538505408290875492796862072750289586437976686855269322100418793950388426569470477939089449695137167348490794937621827153190289971716283814824693820438110235940162724365879659416524082845848168669242253943836765227673811867974559094925502194444285967792446462085144485730450927137620260142777705265475083670228582636175785245575456465650520903718655588888631301647271918306878202124047990781030475324007962610866346391920911310611125559122941254529836389807053460991747584024663123719244766506827016696227322466165380263915570848717012159788436406558090882782294801915462391766644017727879616338626421223779150817607974647015009707874676872093513171791886663649566697809768343408221090306413326261148600662442430300391542671446620516838969057566393748762659209029467266350818795638811508978097511064952674083205960650160122101141491296075444785070195501162661434282746901557337728761134976561689672230872184385709720618792450893968521900670225719170680175071484569907844038910356471507422681491268383856535469253724897263423194596546902664012117142036584243620340557209294948942473491030822953074977261853744307967639341352097245548234019731653508873522700061437705023409362137880637258502276480623689044637173571155850946255811248244920589895486247807380496771642121942760172710353638018446918412371444438340891073153560955311809351395029626960796374185523570865082220559694857508837887624629547256065695269210088008088462085135604943288510049441714614604405469921481151877305810456343876925880915422033760562486762049180642046494457307750468935200300671553947821623235883191029394031123337399379889589808219229585133485916476355464253016862486821142369358191596585550611043306656056116912319369041718497505187598077282795907553060662707105011552580342996799210683272252186280442635931126057720792644732547884141840460627857403383632622870746231230947472831436104535195798019190204785964539617037101033805337523908154810458813714388251900731349216085794212452196043261961577664925370980222611902626389684596602041744177597061117093150575743268461115546808977248113275478691183234113198002792834995070607592501025926144519337877592693229616908208874273735483141227820389430049783645234692057186987327684515085977902471975087104421999305922347537314355783923167563863580095952513094532840054219610229473458912545067841030254869949096573879479357292186998210133760158173270197934394194773301892166688165155865774476797598973745833782735338997971289381311479871726700694608618210048085039528015525971924224719526263998376840567663838414905194219964215288171820220503131673776724659414483968045052401856478193951311803250455253814013365448964084030575840438485326570598180152782054183478062333140845935329692896425032735773573027451364421950028990648925651235371110771198658379027185387302951856556900361070694443059569600626196796291769291288092190936824066128769640603003504392522497764913102525218097160071289920320207551723827354267517935539287018548937761448015048273683786237240310385374952563774672490745355964817156948407278374417865297450028724638859553775246609890377699526491466797231406488130367371166228682896475430941219944428917859175418097732979183354265434128174788789965019904547707119406704521134879816737676965214518935474888431782591719123825153552441246819250695620474962183245492735493347669103079374188428654281968925788145205788466050364973363312142121493097863652922797828808273835570376744940294497422373757975664124909645438120860624321888337196473157497661062880624725558492891858660611342797661161352974551201482809190163631423536996196196779013960338001910385906574478179708547024572823345238835565028854146261580095184793307535015694159379821474591761667963025836455950666249691541031953011177832122486684534286889111654263841397664167601014923763677772878838240424214442354239140788373020088960752595297519669286757045680759567841637975254701216345861162812412453532803177517958959346852323957305005177223181356328805744269219873031223719840063184275381737615268162027432084633069989603178796190256017085923138365230475505685876062660241440469168063797795944167900002554621197741092481983227370332617043077572638134401368849853506502073720529036427223443224444578829002741794159588642789951292347373566449451288721252526086111194695472134037805557287995379258706346477648013060313573382028966853179144428907794906829880050949159081297044771846912152515737398382521609620383532337264807423750139165638430338640037966301974249186703700342632233900659053904814226567130052833640037900152132615936636954082398609223935090224056650367474191609864322678740823148421488468550695225290844563335185653552543854045588752329568457105086534874650637926209395385901855263495784172513028980239732007414540566302212326175631328211462941752977416097604471516782122367771707419594571773135645926789057975414276491207200247647433633250538820874670596643787575454116023280523886891462345491277341244109171523941320268517175867939369002256747422768574930468884088366800628098123627644600069855763950824364387581515145694015398412558286569294199935657127724617369893143063011406161474749378589882978426954870876065304397916634291952130841255306812813189373058805532022956105902842807385782823903822157574844978544172659174915217188929935416843771364278462544435239690392167401222193401263031054311537874928523963268797328457615505660551183474124503469328807735972046788344368361749920730396780163361474655601731143578778153061350906899538250404699537833557184248173088275198856802608120765173989971143788143587507898939253673894108041360281927371171787480098573785824420689491501995116990193379186936203258272742176185591344912103561826195149776194188475794111534039362975129718468151411360232032157900905410056433319617088192182078351896260776412440200543535949791845241641063154933003963039169439481209392852296507186404943578851665783086212902174122096589224282078063347546475515959036245418904919151554311979437613365938600373697140811536326792107918792278478561993988179595621974317387071969541328536149830299033384650130950355117311650615746788858276451249533548884558730437892140084454692288079752653854596407308063273682681316031797484817792993745099614970747566984485556424814947594421499076709309175380914615365226859009702194955293080947518414682601479837309019587426856702851463700651022436231031933630851381905438632671238574398075830413839354043409306400178617441303556781721382616865881420139034075780980698171523322843734130094941481783734730213355553340271306677198198837864332788742474670614981724094631797346653123166417433261258581496973409106933477319066340726817286814010911930535057862670793680608373295964417653176797583364609151939808164919208720294098927316864768293699801805997176185481495661221856293674969314640085561394132993918856446011832570409048178511798991763278983903727025301699285273453363155895348497126718172364264990313879477598422882350175099497605594095261106570664467538904271861575054527614487081077275606555348896044191693344288889164347547767100687510421918651603338432595673497536896393448959495130860470050277054757912476010801122414279633615822932596593812604197711037173863051936809748328988713874084756833176286629127494231743983620975377838045297649316422677816605849534356993945365999322395052548954477093298762284662244519690828311911142706195333094124844843400955813001694312450052610252100236362915635646244953069104559599432038598951472815180427530195080860089894643235609011119476528835470218045015828467916170918102726493434565420355960809402856444923052897190464362476377843867698933782816075309427977839972801125063401516075170909783676623555072876501182624557156062244043915445622197629430386216084001199024806924986639120933018314738305856358603417947594108351282856761233886735616818661789706641424672616386855608672977485902536508434173164553214842778468059967014668953972812870901615256577449953728591783880110056257783559330896320424474910148932694396915602405166802617271003953414972437000858431497875934770177574114549919171027563596573665753950656344714462936664581498979376337292699682357206773804878937442084959929133683663740893113327506312372330079095614320236891513263823360601781132844421010086956813569185607147952584660136810778247222722354120163145264675825966778144944607353138794073812498105384379160725860068224657719913807616275234597201483529270777847065618116546907481560244606270561700570072510173086171036114087218283535286814704777922976731068183677353715368115520505113359073372407978171090565266288934879627582609595866849973163952817107637152297432929500818286657055950267010720148001428081974937740909472018524373947111839042407959686250740746804381830586851720951651002793552128549568335608440319526837589850830250391492558824309328128692612683925372448404096764539608110393254768035384441274251151899958135131116913844256036139390601363409469485389560456503032195154164696404965354868969046815714323089223073286512098222883123687939936949311305902055626014325529399838057467337259004324028386269528359912427967726493554103386448603188206500399526044476869063351913953897884295989897307214597291324180300005947409022283773260475191435321814033424281770099781209530083193596782462502614301459542344490178062709381422691454530913513881914443782936367970921274851013454370236045279507530385639773168148384621751754512208038839964783741015092892527038665959700227846127650808479998985902693006479170530486612093767982034580866725401749630125280010774253713262069205979852085461477171613879527576207887087681352179030699009601696117701170639273913943084861021426173901277425833248007113378475217560431913717176937977548205172905856778072212475065446497137334000405161038715009315397559042514773620012016248594604737239787245653155363157591434580493412194767288709349280187809148797273402326950359488768027581315237234919088564039724132173475718191221978231188934858502075792463772554128612538736578802096839002171435585389698921015877226838985328491505881884010084117476365430816732904923934028668929216934348538609681068383266019064664724357754336753924857859491118914632232069169630071579423879094716536629176956363945860957150387967060419605860447628741985447382343451487805772594919629061360571070385535244690827274346501344196767487294099576672011629650672911341882520209439419559438064850787899192402794295869888129054307245611300216007941178554772270224861801976853461540637151485225827402577955207020539359603408923636257527049605410810109022429603941965116108206968719604781982431912558590329854824585062930195978698301066621701382576312165520034364916254230921399448706772746854233660169148704112933225743650919502601178683026549724589953159246489519808705415200986916106927897245087354103294580827716997796751920876263931950625412044780712986086455115293367003677351578990881389088524230213120334280264194201429405149112323735574231327810965090344972898525751919864126603646577838513192477134963958614800388480063763184928531859031764131263463396865843552615149411474732819938907905300109013392364011424808860105756499564250366717345493083950546567989377104866495669376211449318303397478078053894781799700761846655459485993976308211562731556286227984537374496138680499835926295108254027907492168333365607202040602165086522309886441768378229163590585130298487916153667714270427674298316576511444549568395317873932845364359594718754014021611092851587878011828448378251335406316715377569337773164364354116780708462835104861549112073685299494999792841181059756928730610273394318043765345291042425785865706705011850831071345215661865723694771149889465435829336778433588140121703901257054663452607828723766977758997206222998967721285536024788406070926645887279696610934110550077527657814529991021781820338047766409862502679355411249834797654212285135631152125697449934037795850185847009038582015867898006307286044408318175674259902552243164212382604654969416140365745963185098510712049396651994433811893267013423377209053977100700359897507471211571765347989919732158463843796114067506888332443122981051202706817274972917581959215343548928524215826802840514910661472072461122469189315620719535559318837083300256273604979192373957975538324647175545870101760583645141041761040013128142351918115388595753899873003008401894726250362200382877813128016570358894561528416610376977767013579622889524438286413428547847688634487456974078567750768340883759568462979652395237944711988983782614698100423023142481219244234534160148430028084462691927003602732052651677337887730318521046782457313981343488271416022909456159740892357679460068933549333132275044036965683289628158583968779779852739654170755405749899793921478620901242929015222166641913677447346339790918024869962164493234201102639873492746930383017210360424630793843210920180256715837790186381884876575663608760088399578455266695956647259423456571258278613415772867766763446945038047205934303665482295998699032009424578969505180819259040373305695693161733416930724001891640933282159589315708374082747523905077228425045118957523931450901137176970711628044434323301527232217672888615279908245187227608589966521262462215103250892571292010785675883272948421857004817459380821338796327343878450256192182398038805319956787001215444373495367351739618804760833084720242539638559789632047904802306222846989253619640314943870585290476994466901435873721780614363598658631736268262357280118614287933175095190332259671804165042392314276724151302463890854275055858347399450483011208141111840730915810863251985010280454608936740444405485982269252267088757410608788310654841380618172487733522552003320628621701702810354900489767752245782032506082595350681075608601827729583562149999722501800618472596752661197474894854300646351054383079596171289959637229762799106231770354068032759279049667789909788734640073398729572626070299150676877930069192556408148540124007701047191047567807649818259068318463463637595030677956177949423637584827170411171080481366276684592948601318807477908857253521711842748005700010204387128008232284112262108364552977670764673337277672863479292810674336972222471060682930806289859559790049861507695915354595200951321463422646816829914713103323580174833867171842321721490237171566980585419616228657104152808875334909851368601818563505666186043416078172995325022848557682608125755807994918750510272344200223378686227887300283689927600109749248259516568117788633503436682604147276175139831275704147355208988509505792020894656555690929297525460904423700483912518035541064297515481481703066803403395386752144938391823658674981987755301647081774340670513176969042338069918269209894871675125982145282975507330586318049212054444886391099369144364889727521378502811669730091122152878792500346091126210348697401563761196754825203564338436445292623627108410235331357532741014104756824772930549910698398070353216176346035457640608029322998289120106916249212110796547868261354225932325674041769107465802766467745058332563735545684642646685080885105095502013201484285403116394888360194085803257545879344285060523236911100847782284909252508973788310661769975031127333158502262704437929725902102457696102983934500045476510412015589153944417133322223630645776522272679213477702667047313687146025868357667431017705622706934701909048496223325200780059669885905540564503709533845602325233711390116576786856170532415503073811865686707653680440449232703871491105733553482898939463608599091112076996424144599333201398093592747815158923467200266038920180117099236082299203132336240294488012043697916990083044350513391527752978700387145428862076200396189024320500079951153895592611847143048940971828172960688372052512571970464617508708253860635178552695640765215938608225175937298019465779305657318938648370001421835649406666187786526116448377957497796154940578708706789068137465731191045289819388861700655263188926769018363145088749518364245150806288821454481351780664288945151771768572139313589660893592546001232081861869911267141799226321276092038437152747303281786234766337196871617788275499876467542584966304589338736502333272290048663573278623400411188539770841468978258316877999232057296651508009537869681714514970698739510892666859246385239364691797777203991816473417408753895004200860322835415018526868586693575477596918614126803973786154180134047585983873099206340522497865540060192268826526000221530581579673744908449244171175053284996079687860886506080775130172156385371937540441387905826031603546882715494033927820960881935716434382977088395696288122239640799979557759856445845846735547255786312435817899771975635552539534690890964018239490851215410224279987283981789385528002684441512323716752512533768753364408512718735708398931747617682059825116228539491462113965852705822989803452459351212527829211588457033016262593982580315079020019360403533191376487702240147734451602991163253293298680958441241803872153558676352478498927667544481748738049614348130249649590584617608245328725698416478616784054240405963907205911027842998898264400238590324617386264454804128517066598914347237249608583333287373174607108510794823295604820418709316480757316170056001520230233033323853075161369253036950854760144706147806333791993402225107759453287317578390065107055288258150629192072676974023848811666956136343995479169209204726132602430246138111158090119090578869544787279106657050709696624103324044069072926735945536830763944974977966214390888250925216332777296991766796996093749903802594382360510203149255013180260199959475079013066656964824252823970936282869331499157895814663282968979065083242594938025939585323091504450654646295132784807748005178913798946815096566013709687960347647440605654121313745194736631141662144958950242271034768212151839381388077653831167362890832621293258872647601624720305365924638983321729699261334735290957027934475601795190244177281793450595503762331331087279461258736379385932833242784548070413739053843170827500651194307238401459562391026021026559514221770978532608034431646949226263874105194854372085459618612777421540900303151543550962586767985549196065488965392221280848061223111305036592876578909751532535091386135050838220098701913010711043887490596440454556036569684584217386909043052724760975722232280070288367405878284902045445427905929738567482585484440948505970628751475474070408974276662626895706494857649059788972806729318805549847804928015382309890682075867655356690039737117604966136958350722877366792443276130386776815240346844952577468812305256157241604353376142451396191352738969051278188411434377370904716027225756698931455596649789063648374795466102031708779106039497122965642263511156852090916561883996317995051030356407766220460308809103878488670941918785502328275317224945039474473355467720990935184285636860648981553635401138676009747518229716466172871187652300050667235220581255518720254919620291004302648802598841540070166557302494110821350916035114754830218555609680474681546739161003099384411251116830125344447168169474990589733602002907002705863674390383733403603181972999221856357544508219680360058606483888581814120366079307940588169606737880379031295547448944312924367793911619332890026549834382738408990005054843011416942700891307832633397203151391668968402169069664048945581705396966992524933871780243653836032729606211193466311484364755768223273085387086542182354095014781344531954165629409960698614233342692603940431724031073634657981038028697901671932536956618531289570012497180754158213408581840548521453328248958009600959081200829390370311565892944614648844113645064026953142301653867028717542118288300350454206909391548567907803771134049598974578653722218118382076853119741439760324727069427513390709155494511106481396289936940394426066773753380919691396764257786969287022356796606812130758015814134996200318409154052768839340969389682890996459286411537984402373759604604740490003807295465922568126575893129468153119795316185830554071936865497049358994100828768238498417576744372548298507574868486797576638781828845775730941625884288902818884639588592740094067704357678535816595495435231630937428017851841794788419928813148233526552321122081046784649315701289485914335592927861523552015676211124284127450673111246533264313517146647703265273620146896054789717893737174129656879797586007398600937523230300114858056830630534303064348130996061269027778579390756475172544856855251605959500550362826724871792458788136352115199592601361143478885675319702609233743850140496383834168227394231053031738333890462223488339469451696228865628716678788249363638205370927057022964126949442246874980642020132815688936943220250149234570621132726286808687710230195957558648577591464843624955917977569648528383386138002945952441356604123757748037685672433232515057053615484413243463411970745609715168631278659365319939966234516638352426811618787871019831267669208669697156513361802330344982126961678140349489000106681482584939504397017298083192521610186178802225277929211242593724534837391950607842137766435852714738599950453873482231921012603902948536038244301467021283469500763530299675565877950950809375137300842981738572713887985547002708993624849610699772672903885481199307801465766414613881497463351799728776374914123581437817499643242222837584909979026778960591766824946224748984870823638467992096004077965036682598166443323730809061896546907961617369480658477762705046081876793288054369504367442624381449358017473925549052310690918798773958650913931743755527886112995549708834020029028400118567406223099264766004539193193598923130505376627375930780103950545036408775009425815934922203419832599402001146558005628332265401860861564826553576263484612247862418427700250869365209278313167910579827126918607734689050996734591929760375587677675351798918792406477405978829228796335732854733023415872904554539912329969443464469135359678982512984815502340159768180607746653693045803039414600981179953445816745083220720868423071428619023751169767040886866612786960496147420746754297611598337734666151375068485958162651420855781783083235591721278276385698992070746050481435473776492190751974093655833008662610294942083060659364629220124485212212625831072404859458619576265241573634416087392806435806191923370050668672378267527382432695138955499813059573211346751427767571708063647465693201634167307761792027439684341777823920875420267330120170426035694423358844428645475533218391798385736701793406353001079133355648279886655202926070136661242601350831629362514180948763574609484341579544419477332730263191236657981221945778269702873662011915145825473162768759408301702468815699427592423572659634549886345177240263421237860615215123338175016984455708626349407893305188182124590931656457408023826743843730873268962915887470575056753563607745453038042947100695475953050669843251641234065016574518771762911608225029188845886196024235313759374843105853616875271573281799584214743830832121701939772089422428947108752104773856467385892292453954081468629315741981470510000638429990827967087452056830104650863428340177580030860049298607377936360899051334258271640665445948808437038481975005449683195891161203497524601003208902556659937311811953437617811435367770354183549433953052887181335722546224566897259025988977034105850537807202047540436745420049718087087336007239717168561319233370235512107427284178487237165317376778937576274747043138107219668779564017419466639138293045756482717428554359935901633610498121129866622611069215980217149064437057008031300226427183782483586527733290111082263404941752214523615780135066612734239737796001837125693972788961082833073181524250831670556812445873442174419459452563249510690879584070599977313989000509748399926206012796588239169888095230516123241855608953812075696854305860121599425772495534086657681916998596470032718683209168905503694436310759947738354352418335151957635803313280141469615060946172851055287459477530936804329187944031865674757385432182719943117025088632980115727553673214609349366843521133239119820919658791315809694057264475613514007855857050198415408196707306671881431179224618817819475986289844110502843078569493678897311294146968779908435149797925298019535948923876167938978905080626478948549891083626339100755691078405111290225017856892164286212359008538492000063842199289164000464435839035611875531952379867387847627593840212477603183111892977179069186452654445403588236684408335327174640266622198378355068995887343837112706737365792427292736317332063456090595913538458892147986114575078144115650478265845484556279824021380767546666027085585335070472569785698711995986411816319121512247158829233605331210214247803439488459238048325301189599614857338617078149684252731121408183629392443433583195249028367208027549685731498243683602661825929489680342244156137306480337300377038956369022459113929145539849031481550318058064714309656942134410677619657588651494555593405393785061979419875842218069396165446416513630264740658564478148331008534704000074468142417793058788803469369632005562646175575288987142793554370490178949459300521411385954106224875918527580911800347505209359115042474432279369809703945761878371237564180482181469646272580813531027751282148460774710411519341608127778887409885979984460530506998614548827526767493896251408932392037885470652592478581212746935785177083726870197136421902383772531228266162217217674753236521785283202427007986172992555758004078858551553788160252764714285142904775639690205836975212516537241928500874040128670068468418314904691224494865034493417211286692609072811729270067519482497046838566123386012447300526931381450160474705917160261685790022400856630403689881525321072417723435975121372037204956867969394818106452510263625447716421927358538060216660093667520715916333300810824875268977419539094518688060718711526133340800599371139166679270740799938990116112771587237792920656183990235295681769973933512316767912211261070698161909094418798920725390868324048343282494683822068503542029295632163855739523946042573305623429313259071946842423420493526202590549363312498618951167581711453176722404721324596861006251279054542568206035931634218665545309085340229360122815070594704502517693311689497393309736215543279521031713128616860650402994208987578886617521936249591782919618277906997734110208486524279042175589526805575215913638546876836142994150404810169121238385002677281996595606266705654403688258429404696396729413279587762061730282740526024683973159534115722898688235107421746335406745397562156537962722782241596589857955004045917066048841890795530946850362610108191587048250642558878067677016355912336386390829220846299970494751835131276063266997636776001081163379031506969877628544832847120182823734250804956822659889855522792865927908156407753339614338594132692097108536121377771902311868867105524311965682406974136680312519298827597737864529467411378750857845778149427025063912934668095056589804842202835909809024453458042786651074958701539738652705454458092835466517051255253282199230346092542541316688665697483972129386391141553095165461541322722121333480076275460561607995935292427478107319756701338039269306060659506110349055217647131425013564502247114429257521949517565971276994104551548666316007085621637779335787874514647467499284766409975885147856011475763211275167117019523272954693278799042755700913243518604696732524962252772475295964160586206357203394234193129863700548835635856522186068790426130526531608400835562406728392259402471904698333880059673601900174450951129698473691260312022166158617787530063115621104249886920951591511324872039046740528441206450883371172060033179002292277068501590538400664084191680500332358252381719666518610589922825687233723195697456755706554903341779098260762027396160022247273686785192545979201653162535946038077502867598353936462787763129121163367782326481115806262981115036818941334348341822145732873110241169538799281458237536149690252893437856429873731412784714819772446603275386292706103984445415497603183008322176271005338334559023588692054406643431036068624000694089936346388750383134996984629673085271547880450943694366488660173566148500596442808402082195296432077870737328953892554641304346636067284827005464824987345857863151251680367667090308503271671514643724453463845803055653397914968000655959740978254925568702826694863267020687462574111388095782840164911373967806615220756052025685954576282122146685017493695055029282596176021864651637507254234141497931924991725566251190207744896986228376807700326083375911382427654780409179487479720724202822878417249169823359098032901603236966231397928631387736138165270831527171040935661348442536388009260256575866652111448356261880229958245216633451615151745196339071675501481862802451073652305143974141726356961218574038465180198641602685649553665119664072985729605558130645837886158859294502844404062432831588610248429489970642526135948441088295936285029368525152881318221749631402176269261111084113472230464863598391339253065372181231979313900303403464180634759483684773871972456213354785550212552022225884743154569280031890681644700779773662210875613657438996133333756571120592049701540172739235397260044238851967659245267449909740028858734655612298638319734178186975364132145257581077177075749562406901486491750251132585048031810608224875274579172327638643412789519949013972027237847143070266444203735226900098370512568565330489052896621860252474048691555126368975075064517433875445711653237232789418170011861838199845815777028399875421804241214600960197474636547363517194109534288767205336441942226997337941448427837580468625767653625178582372860577803011680853854886675273721120025864842059376025479390565852170929550199758924059281206425943656381859288286844861334938302392603957555682696484261471539557472250119139330435693789377195784917498073639861865744923801755005559678493966945733226152121479838669697284519250854164289898960568611358441755109212372087537056175080718420957270114402380816991744542209622266566247295412769895108345311381453202625739440285244953057370240543678495840682524992939554999329950708414481869667818565138072434405916920940401636617041990110385048792362018514873101263347966929337634781737393455073476031238450639463856277893306426924647955085956059054450604669103788933359672746855660310633946925939480895787516040188324289295715619526134371016367009177034356706260006372502419956992878368220492018436127576003922486144354632052227926083821045674290859923740704306809202557600269861899337489380603592295580727124334381852933211793313194055309752945796299751670661393780314970619424667249394215693783197580603158079457428641290911825045025910556753370982897117892674671066742593735474631083427197329790114399265784116310744749998547852166474771101814413178686825505857237383635216814990800179971337881997012461749827757815295476669437955983391715917490158631267756823836368559195026535571668517874363251714972757737181015447453835581139040078258798210174428604065388632587609012384847021549699019307154480624536483418098670873207551447609226312701900595116746168275062978160382613457920338383574911814783987365618980801517565369668673338718768977520848813198381427580163366898697621465699317159330496847864065445369605435166456256812659252762186272876761381651309944383785812488504792420868601732094342801769754873066157654729202940506486568448137717337060411398533221818682957590388712113039172330906518829426613312161651269447923419976797846098384250464785655646010038430776443491935266143641773532576811986843183229185879485468894657466746273215350048629205672299647576562180260756059357829881456281083552930015887984417012146327635228008226975912236507091497665235700883724866717421662973762041435094534671997476844722553379669379878486234373183721872204175341025721875792463684752241240775907807890999139257505555546972451704746696075918662220939840754518231491460050172505351423021806184253030200312506121463336791329223099840635584529715230649275251857524224944183478463488239792095333420153202939416661035231175723589429663341446895974045774772898273111064421266091051795435561429817122487342613997098578250393953877284455386702238171036230834986834740408116967380683863172769834242451383955857591228144968950443196228478241510554937761971785682579167848544122750832498450703286186572630814680744611972878911948092266380755633649300381839231369111332202380285610212293303042867854280657605285749099021630144725291664237475174880540957151484772632345007083455011526578492920257690557765748249235751450750568791679908569149920435974092890971769647681761335149436487768031552267414931853200441730758892178585410370301609315295545301815317793297806775281363566458618484033927319234867469122626409423737291319421187844268029411211435399202696712000419372054108313148095159786247815182897835684624523420162745764541095330380075098579128813655412677713825923569317642154740889754945596597420192228271782923435962205364602100378155499991110553977876180671954836836802171721392140738240164271833633454302569323615622516524822622412779475897843304624654811036258266149472931521862976609294030545817408665194532748736380571774963535511965990278344866165218351339656166543567237834468464765265047299821697610038530062257081465947142070989071555132334367017340499679130250890440460618845123160767264667891080205831407465973097970403472795357262094700833676777677478100651041918836102732069276743741905072934465967444147922349885387901921498437395253359455773028072775074183722205673056205547426145918684051314999513672840027344010282312561954417909363378752548179186560708373664483300430819500495048056229867215880053801947619485495298201292461226544984126522713147228126529853732250340004974662420649232374649431442659066535456658357595374306481992097665980933821402884593962371345901505238047294287891686647153413325878156394749581045720195690019341738012530425915749078027767567152917762402016779707946900738179024867382705787238292063560854364130292024724165656655314559003478058841937099006623033760239465029378769722296309273753326077323570040202789751481283904225205229685078563540048082596618851266034014821973230836151934391598598726826205861648511890308811095682491018868760419438563512760936548846993957471528684480746039021991473440768880796886725280299476985213273877980749018560447994322380707317256709033873178281321987986642767206096432474160472553796912798064546961437661729745768308062541971039068761489213112281355134449710161449113152741484818429133718257630283806702159955033597263457666609238567831297764803570080222182142859223010273798770735362451640337148517486224567312480156983607092413340912938542182475837582747824894019265172771595316565608970851983487202666640797717777352346772768169756551645971544875161149570914548689159400580218718621983025344094988105411235588043232252988401563447688713454629006164811965741338019602740672528058139471787749644026681743367547379668225201214406685042949287534582417172872357238092328127830796614040513597167221246617722195943794054121367770879242431471198456996965185951446752815648010971739507983103182014094698150170319431181737531420338356744498358698019031520997889984722594787332905658534129136739654951308290507713203586850946286208273719121292179055271789150566972680813662231631741186343450098852548409502990906150381262860334418973834786099972931390141895472902338183460151225549978411382067489840386362911719407979073023355759014219976153367568876974994500709743193338860872669985624499025845804733550217654401981450089167745467296028473154805031234858958235274808703500903779900478339866457804097180916088132786939704303601096963437349430231363906857850857925889369253679954886790178497391857673228611927397589381547304816833303303899998333878916445908922857910357565934352437996061053784747031748047813791274434525213623728935964901352875906322392751212467356264828190627799956104619049097484917924937754060573198869017499113172291162846881803206930290677351905892370493737259448099057339619872672143650337287470174527801482348899635536735982865363493499090572690566986569932803159326926624816677783966343297948722535256200499310028491945024151287525986061052257680637620044216129322058187554086970622104730031009251135567076104457901376258532797627246030000162556427242846468189620319573402078377272341180211025024308331385089647124430781511005599224717703887902122758094268456884085607088570745862776570767745429905895915376816717105176256873649898621641801931346177450581850536683977648652184953594854732522270907871609682457599988695000195524540154007097798338170452204886487411071117863986636682078176163685197002644419344624774558061774813585745777766228125665238205262009227865529919675238283947441713353605946859065445712828079585892284872041091020158456797178471961184281240662788385683807362013990667813020573422937938892746522658838894491572257759165183583072823319919549616002308282825690519285729187055735416360493027648694437871097258004537870061581061364420474415982924730617778800533635828489023002209333459683094280571132299914557363084292645626144139051625215735907682893550427480586937318568935749063649748957863049510916010216267777787622771710930589944573119516793582171616654293968426595924095869226874196020199872542670168435912828861896854189754185287316794222844040030394252539842951391209005914500732757233015022310590497165451164830618664164306772914749622932863302935774971758484564679420403872461363291541537028914717002209593050733238137997599475606245956307999575717124972786652986879723358645693596608791931605539604694296526364427348589666779032533613107766932301733315700864172289500071712851411987974076400709849556273896736385144085435807263334544968541354639707621194565385054351792597113204141759687672666987046736027665131393818607795518874471431201078908156258805117540512005293526750015398303049084473818993617505011342991769793241595335048388238529334770944394726736410583872940275788681180521317399829703396847353869033474915061046778797584331950996038206936768783282862936334186161432123375807508008053174422836377143870697959925598156693743889418652001670724963256470865748556066317183007317381099195525203261010448195736144654223918764112014466580068417730985730061341355042491293202926118361050647786404202675968760841297750653838033457824561101173887600080956134203684884483357346582192666414219153246018104091249908444608757265143267937358608996186593952600946892978380214802198220601466927200650965902040187131188918961436242142330703456039402519410858012273800791580893658932623005692030967059223955553702872080244751570456474563419847751099468149683332939549043191172182480491077014411486287289907991424543786963391770455056731844454017234020124049828070073823527312640587143071501798028284093422181070440181220011342240387075194244961644800371897030074653177838525580239357875810039920297880173388352484720925540198836802849838321602002453538122866962994072887971402386334631178722751991629132716915544924536207219482630649388363052459662419786667990385717038749397969791135782565105906432044565491490336618294856229435426442719797973221596021905616935310965678069861310820710463289253454123248780294431408851773235138128655582558065100049616885606215332921452197533231947307293795565472118145997218015268241063294523338080450217533058084789963965381166876085190651986244024844652890455728689249176116452389339576930545011450543736548619750373637051635698211230891865677708545212804977153866417617819925458712004005374804639746577208786154095616321667586479593936260272885998885407298057028139367998842302377946813625172156356309488960682079790765854826475944938669628880887680209131439283417408018439388319297022787951592375261791794353117924064298559490074062153473471528068418639731748809486910040588880007179391838484912656867547714365477970435043028134452229870675166712710338104120401126992510355748305795956310111163060956179816754457152353964176355751564502308634574031922165224969793992160132515549573888449564801164106273613475985953813354811707589445687748214318199109633593597809669857084215674954045931490352548341463224423779269838753197670932206282540967881812384811126875644400719709712769569674820681682578861167171302078825140972892756569897573738978698964342954868738895641817192055599918645142182511977925854661247715860634574390091970946217025291159045123712318710197452131377412920899151175986576405826143929724176889017795719148831317635783345323573331194920032362325544464483785636250388154490902781389494534321686666555288360652479533506239026591609753511658125817794612936333457269383220705654338108824274606272774826110932085441786571073658258466642619753070571144937422813812202485196630029112060811786958727754976611297066284651096862881048255574281982452813966960934997306038134321085085966102267283942216494850108262593660032849771368842679915838468395441070396529001272979464363667580401445676766410380564529497794147346619249310306325168266879301382845082817643444056000439047734510324004733880367588484638869336205336814804045498641327370958388915462917989363851451421885645332146000246888906693810210187708002062194045794107025184321412041274206401450869078993050467462461374823085934665055935726429068300519365474017590319947878180849996058208949588140675087614726614368099828414017090354189170807017101990833764157627117666258334201340469949510381839278928737736656001977288211906228153956783546315540427019065689985016100226877164290084769560287036146108417566645062426378135309070951326693429176775276953753718910927084637754007294129256785887279359880131483955345604401215881064389441272332491556789558227430438411491452041731541502367702956038544364401316945755863540364165593263641720835620571484517578355141451229493119986843187579376634333852080536695377178440729831542990600425021681998344130199626976635346153762678301605308566651636300351211402288513401505998885526226519250453946132935129556123314138795270066761924990113426345883609837437807408870200457393498391820622438176169152940815018596083687891863204377668496314137399424578953533568141752753197525781258918725416978350625051649563745881140391738166400083802424821810031179123448473199891918029747359879741576496496049537543715302242881167488891874764592975256933545606038453188376315271895359998158338398824719055389728156393756674728666979867005282331253926236209158042439874926771693563496364101851804172681088131957029017276480674770547555795337695694434313653904640485925255020822014719827635743133512640744762953180945545221720691644248695858424818269272107367910021646477487207495915425395925308236323867246765681873744336953412497796635309003154504096940748821674700851096124979677678125316673557336373194316728257949418336387070012356140371626235206350317168125763170261422265022931208343994606573753645604204171700822465216440600183884054946894603038317725354052821783954887942832603548770498888319198757585596886842101785788952966343868319162829923732141504492196755858514032875973882382006356627439777580761737060635808749086208953288335970061779900627127424093815480036586662651884997718642456834092739369914383565818286416562332041400167235927197986818312768511371184186416436320224740349824481496852269324215374908834436932977863113539906390456793187466344318591770543914385174571971163873829062578298510917252409136544669191144543563161143830559118229047205932196112925554754730485188003049393667658981890969486600417058839153697420999811587659865409161257509027258978999117470355048599060608245235813655404618084227127676061816325587966281674869908496162276925314635279030745919809978049825437835414528856259651535640449692232124268204220681566177069698169701970038758336074723977330020175306703640940223012216703242640205158509729915562304134779611028850832033222175992891865084264197303726892856002063469524349048249232876213505144205338260853478141671514370993611384567997722941331606976762615216646279544418671309865241446382816464546958827990402160876044694705661322839486734815399432917896608878159670473347131022432150825429072793041110642290888187009619280957552260873384783890835742600593549380459686205928296996337771207732808935646325595257609494023017680487608422372175403834981687363461691122013411693244486876714077096509607718568562032108977990705250691169786607805394298253674179004742350670156494216191491615247633744081598777750616070791279189854221555920975444639579491669203303610549092228460464940206780421683678588244983441713765243089472831953183238721494910373619038504012828599923378422722804398305064955911800671475786672759570309409754424795069978714649098837167323434616679288855046242190240126907120745134547761793813591608485327504027688669784921520304119078801757091809564324413955711404312727298943746481434087625845750227611972072567807654103120384473568915764516725280381097583321718535243507589821994517358499026485840045348982396777724066378080232180640359214752784313855562725757445042773181521021138441540037151385223522092399246080517314074179903726713971753907601428030853904314692903094497331914008163748175226874882891402185466692012947258896689459354676962491025938455673831579880241501761300339090527538241994926301694365755631866428818502375094750932379483790012509562411703301835881594080814434155981687894013552495261699663531006040611377924181839500346309941272934378858902411890884590016040628467089832280223170196196506755530043562140823712822149756083728608119632093215693810764267584040786271736397033067141956846317702693843125633752153962603778731429104164450870513329875718815897692590039081128282883422778452710871989887202036733981234159962372513159930859584911519970988819427497256990790417183419098927610354390628830969437068504028793757045449170455167204944518779792860865209085318930481526697696229784462554948097217093999004078226863769456602407193928186559931519111598029092156639479019935449299916203868976175165541668434569537808129924227195934253653275741468687184515110139006866882011616371028921583629143769217026113631547159755145552343723945518109308626399504281845754350468493784722360714177763605416420275046037700653901803114776314689327275211088130577352207187134137931440331687296647773390283549382988813391006060905657437835836206652689784405893585164412045346051770899262072904251697601460356358383549978135909759364970292855657084672155187621926600768235871464160936234995859987129552653869852908185554745760706417796220850199304411465978458690422896162554727584177803688255186811694315860814277503296143964555238023081950503835986382979349891874503943979544325460872498080374377283333361149789905610637617030384857261984283435396586934681974079216819996138955765475880976101965912673844960393623452961384777664368861651024314768573973318436180420270997165482770667570963788142008532287938105514766122712089242121628554548449502811428915483665956922882974917463324976841801700008128794126098512964592918338868254093611267966539390901995237952851682539027275858354163658504941327005497215389199987389989245609998933520867643531232019353553951702513707459213054787456295235484506191731656492036872248795324674852236542472688713748493630753752677373633856537221967102962826333460297486681967473963445135970210228547191828810108585166702612473208872050925341781485273989154119449655637412916921385727806869155160006419730047711220662738740970341493633822677541494271329481035892991128841347913027180337214900187714253173617882032737327675290636788132198898545164819431630969886379405738541453135925908424936724428305608772902637877966174780234724302313564402375579283779421379381496525273453992207562964432169586955259196789284216288896743902463741941853900189411275108920502270158346632343878835943247657384688787061968305417335736853537260417797490226033783490678129814071965778699440384281455281865175997601665583304316320691555835776810011827756247018652111827065000931476394898473219060460948747804129400601147541372524914406390020329118948775985821479597147271603577054197010441411237610661969492097563666471534254423268125964221936542977621054154237721464938154465813606077462581041116314845690825643411496919414231092548637192425442945360154263576318435420356369210985863548357425778328138824940688426606810232294221034476652588149033815309339284880197796115866836446331109675274443297464746293683773693668048028727996188827706828865737288049309980726457584618647620335561309414397793315005303926025482076370189344749145645215038778354845964679360730221512443668949919969893158514004381275845425726271001364119213764483810593018245583537990033754648586536064362483567769386447022076974462106726696080175462007392450179976708074696915411683537567503674734407940125982763626841589038572186968962293423722147925379409857654209768620828538085258571081624266291117990082832844467853222882518255253232095938967973818233482627809477360486270189115529502619859897190181164216092069698748817250944341285198123589498415132933475493107053032949462914062608940204098724281146614726566275511316447653431532486551864993977313938226102570125139557727153902775359572556147513294524295073712153921158801509406086131934593444822619809454233110643973553298223568820761832253527278168759729164853815566219611445373656414963283424112054061727937837486968464424647365646854717653284124880144878753651559288322079922688182868499953614158656848523516688127000601020000460745898269873149274633624356830311063055993045549605052892665966259436577247289970156039981596508621259923553889943925579079710206032933369009249988012902265860139860357480833450855490239785774464400708026895987219473130429162038210384905986057195166713371108775528517141096190937678247324119344925874638589664093200365646791460570990576908206969876118906284559270331050573442931753196609106613540386068484239635071360064731701414185170223119575813650659529274405310571139217492718402123539226465894718509203664403292239097761847821871275771971436154854609486394566157957273511239355928724316328714215807118314596480880823549442439959742867613449013312193771849609098470471869111679188184315420275132398628405292465987062038277778552681035243989514184958187922769093819537565067959163421812894978467655340266620154548790888871684384583060286773782835221669946853817709071808587216200121411795553727963872264644218752893989545252031969858928979565418498696349684733573613464626817320527670366926424550897528091229487149934123639814274473116390153018891425237399445112033815636316731361963348695975615303228426363529056457815972736343771955565956325224415170444611926544161458176854977100449714518662502942962356659344813283572663746121441250791305210898052041489484840472497174189548342324375451332665724523796843040289144191491147747898852617763578923022067686589404456985903940498398310576162039043516373213893945398890213864462815780437290147619242295902375948931640417551096389588119080247317673155675645764558817286676490803680673309935531390910315570267488455013652879766741875954676432717154296762105710516896938015858013942266534365857520447004852944352856234557779041720568487848604157453739452206687093849342308735496398219477609819334275202488019592419840077617339648334161749853007413603470581179597678179217453122900063213813170114351619767021016536624771946522083369600184214772110086172440630607236181180233212220401048680424178288269198955959871724357789253393184886559342267475667850662409513911273849584052820025023955514085712464586073002694437271324995930938731815390671056103897984005123197608898464856471643395322300264123461740372919921090792314767881092572257644601961527959339108180248825445590043364976824832848417425956131567630179910076120358636469456792344580474757747009935252070059915157019066162995450517353840936416133887115018770505361508257264834450271638901447372526111946622108262360268491721940745695001571904901287426196967523284130292630335658391451079914762516312780917921823406202955211148755735385978594669348363963525204791004917238340094408752692492146940385760714405814483063003086168610640898825974173497288977465229276400087291287429014321747413846994251675112204901593944168673456009936157755069701676651271938416476465604926286141726637362879824477901370856069342649371949806245540083136166172018516106940856169435149837013854625513248614933883878354686983694750524621656360889325456865231335355221285454171149415981956174934127207052195461268799907541884743161704646821172527328843003857246346630033926045108503069936082686334207014012053940460843017014725091311980887983267546673330212827417575548046862451600365693046762884460863398680552074487659095705861467953958197632263732632026503913562434035697745534704507336921437327650802172958957643753441843933336427706146189230457198999872326132506160492951995308096589662263243764489782807358417389890136544306093301822343398981250341853789856892523918940714954535926704979917251985428151490876922736101853192827176782848610609965062392914662628579501981929067881509438646981134292482863029151788667408610232361255751470460245860964754789155915152538172181350826711720100174393753363436680867838687814638364087249506019051408355782246518397259182526706446423660876851917845084826270440244584891202346295308874573638889486415681388723237767936810235344671993403610733170686589626750904967512922610789946200702223153759320608492491578220252293081048416565289959307960783329988137270668992223178739697508510297112576198271899989297443260914399367530289674789033154061155508068406170262571025856687803127545236392193001076477887652323668890972185335708819709716085819781637428552506081511581563455876007607837604376884228637240669635005051348872954926529686834282810659953921966296052765156229206711547105498170319513392404249590983515888252038356920292231705778750694667551730497346120298979794096185492718982031394805098548709172341019070547843767782464267914581227446933211472581612225719727152257689188669437742985491258488778131131688326937883453621166687093751509387226125449192204139496965258016550126513444008300690169251287338914773650150638071589778646075904057042847761183356981819758216326801391648541487747946133349845182602238948823147631228864360734948498270897441584236093282873077496569474324851927650852995358543457019117329244869503673103526827571623929101775032191155013343674670132189874065257284853681089277075171511415119907771239121441171664504656234486620475895657231566115381335537031566672826331185664919201841965928314792283484569680229675553189573573718729066156614054910420294709031096244661777851471826932962703634372367635820403920133722068486158257553397316018195574883729185331291355447966645179106499805184953663291572859549232364716645123785701360715251799625223409950453228443165407970067538769342063648466871465601446711110738657998481198573438182175771397519399775334355664537612699897689669234100984197749498606460803620710651850368259131301273074837338281406448057956050182983100684385567439521760349281549577018099339312047242014799437071403416561930038938113846633298586588124093558097064971768091889663530421157400402720532401304875358667936415113449852386272133920325057038640977621231226832962642861424180777068477789098048519646097568871413098936245793522029696808720629822779341795849625096045066046895895600775948535875760387991831253953936593097362662719150485255188650874315640542185211983516395017845137434980752641483346190005278384882125916934347422562617425925893413517811084615209603529786900134169175222798241492092378238728438323763110417092042977067852607734154101477333912433949925828890369218254740203601696913133727545197710729061520723167435331573947892406297725076128284933375165147842664078391713917636721241371555896516881205854939998378833730862104419616464899995606303430673778077213254548357889392658440616379775584254595340855157610259919216766808308344811804659674830513094302640774760755808986719028853981853608462987808007813127653773824391764275242041867641428696520085993724044816487362930567025390575133756271648198999181909849780920152701172939117904128686608038522432905895078769848275023875009021967284712526760426656964883028846610591929812352348342083935050978420409064668503954518393250445634656181057416209321722236872498220777159270686950348478861378154939903640851591180955038476447268565566074319883313202149194183987950330063560258564988140254884587390300168330387026418782162019254313254598869977276207111809008023689366115486902982409912650382099121377285809864315981007831731536563826763137510911872992411144395080327839293660857248793796142905182327525576286153108442446706648003960762585690624810928264086474787689453427266810082869506498969351510518151349189651571690508498673098092963038379123869547241863116141290212118306520567684390634021309869350564772941439223347107670443274805800077483062101328063162077503877263278567488607761973988640144567141093717110788811565918167196259441272347372466558551812614342776534617693445126010260807067747832525697181412458781278525019817292281106506856401904253975360627502472372890590234013062642797641676673932513276304769489896617475402047072942289735696223967674739864644254776754036533551385148761552101526320645378066103793957181613045603337961483749704407940582162129261063299442472369302627456844014852481715457810943654015358900789673045855578562297580913143299390388139242461501419796202684269150532338879692644708819704274921728298504379620157508120988080752671732650326031187290531185667324968454689193387049340312165904221657527378414193021359949048967911941796058599600937692849792638907117107022388768999289974505725812759408369639592428463515831578701419616891347084323220717167379579230100946313220130283091335330615500516447537061191617762906846809183386388628793472856352013957778428874368328692119769397661467372741066878806149126861383453559141854678380432318230033667528537542781378063175141489873329560136450697792354875102027197900122518052365289682752159081605228577986852026172659352125549326468685948479646450114240054551783355726231945638093332077709920051991389481700690815693880742974720754458618721404528545889738521844641092932726671380504473526955124568704801266861130631967319072607642614469746415867406115612772955972852501711943546338005872064453746619436958299039989065562775660442061714057868377469102120475490421092054379505852282864344405931599671329507910851837636188366600529076012727864199451415081495774917970212775179569956712067440297346291303940891034284803194379478201848663501686533935747561387470336817893514980167578544894931039304198523535844019521688436814583790928048575115382751629376997782153777219996090786234560943574005197664242917746180972365678985171403560679385620887631084391096951177337394601932601348995722497507569267483311972623620928089858849361237295301753551531307775305948907912255631776006908222663285233234535328974159711549372895553209349043709514296138956630573216159090498745208192802715963166220265225853249587025910258707021773083201148025864981525139193300933566477022750849216268142818467661801844556999779912424437979891000477662482277890989939973684923870091165424147890892070016517982553658399116520885188270546389753596609036654130548314930130539746417637466468937391317022938820188541287132575584565454242453330854189204145047000818487971288629648168522169682215658037062365670882351843075883106413392616230694917784393001020215867318979952130530458448482179741545769318214770078140970230962812222597811484930063638275890721164748031078412568650554937732436488757033456595446015663939348954769818495847143887583282188705910561514104695052116086992552201845182297487195509228005418311374237737754983871389212586618385685425673598525398344147756374958075723085634782101188276496835974480179612118277155397500190617989721518863287108269114733662365629363210173288164936303625227658208865042334360316359472597842966809811798308451267457652058953038730685293137738925716498236419148960352811601479100392356714571079783430725074931108601713811840452535524963209530916778365979443532266896158886661668991799565909506834548831469777780711602775639129663484376127109498540136237564409272913613578451584831621602933383952835040656738790590638144620928644766367620730072119248973037418230878465501293389281038227748944641256536048970156068532204567640689352280012356322806435416950761847911461817070483446020743379960146811380710981012636832207972735378412965673747394947719489035112103475038206114309692632717362584882884670261514723890621833769931528006613424760112868672612411145761982397473417760520667398032321494155559564655401552095527418630666501817890917836871587562199186537938185248608454928359462120074085766239701213804647803908277748185276317920086623072875998162139726492979136768198600916395776294539645381699196988936759971402913600755728152305922054111083649130471208352526760625629728538823916918762738809138644796589249751161451906142609219659515250571940566337915732596866418952854385688977035946084772403834735453464102888710227300855600980390049326974124836350098218011548435707745608888768949987234430599052960694494212400676582557849412556803067090389022148024479528306809376677489480792842728543303828449372312930919669680036274657575946953654810324189821693068715820434117556894824464401398090191567741774449131075891482394871413198717996505933503990894382415300373750018700468342736424551980582522772942866873584936864644308431568501061461070912588637303203783520602048409847646037465990575358363768166345927774120818264515323781953123395654911844385628057718518366912892999153350065994042315646605913343134056785421081949014443486891702820032338924672370383923968162355586839412577848720639171732439397878757965298855995885248742681070426198175738945808609952703055666455757393123484963434261559007950411446324046973239552745143343356816269658053655655183068767669582580571412121593849316850629770390204691442870015319004590876668491464078308946300025040806452909020488069746579582926226966369689189206813587523268627294073515431381532932654451759643254371593985419814270520313217824696433090006382417718285426796604420342478535884150497157134332137567279231090455509845510464630421215678926863863077099029903560318145351271956306977210527325446993388003565136036213584600963705827939240846823060678469437315372110591816607199814583563242057151466821715598382061422270626669018394925226053123044244090459237815363643196713333039970573704163500459112612976704231486289228036740186300476360411560849381427279480458235276477113513038740069837658760305945057593812771241456184421768577790940211413939565271710408467201814630031881986468820998797230146885648249326650278996903917681435621741144052107185791273533264625656861136710136239889622782183842707596346944021562663917515070471524732244188494943607718228215070807084491355158671197227806644949801715366501784493470915567833785690443254366724320658319723760262045301593321158437168658339550573630725481619148459882001385386220612917945147480557080704700173187233006331585380074458232094825740031565279259578273592097860080424802804888093183239982857723701927705922213338119012166411606232088101260240108051301352980826652488742653559310104251047202795185223049046584078452904774337933953681393291290901478142467812647529076616403985152026036254800499069359518352951134856625806611034918498093784608465374243095832910027691811149323281197797536502251659016943847054010786350267926450771754413831853294575147839299209446617811420182689302844898955184179509935097673589538469110522084525605936174289434355591876761499092301857228973199128802790894587754316280558362924328980241448854213313352080401998771072639346029058806981952247314241863202462573009187018742258874675777933922743111552379548047333465656677600624934265020744217745780717849605336626792781837513570285435144168295971061626373298667263455066301471584809647662858767944000948524506159622613849194718978160745988507467542601975984791947154785392211038325553950557713204794180729784186371453757658661729073643449848549564798323125715203127499149864667785147885071850143827634529387144535645078394028956631694246012058211186383327219190355218196604352046006673824560678528640955444490333760269798922969866270006511653609181795589114446571909028732400528223011901486696364822125619481982748744377137817165489467743326756480109895664448940802918310940054480671887008451635001141268576493123562244878349077734277025841248833429789009493918036221846994506622861516471110103900798973880727423267350570712430119435239233424527712591149902702181577817070123657379550461213791459680843203436600932434576880777624660508723525770471379758169181099067718276950298061207506648689066161660974745457032988380713108538636282639981179007909300171570256588038698316887965360351673766438204145035397087024663249386766988051323152268775728479065647385447396506074762391897205047257667826399813599444481345327564913311056619252967295627041221780721078125236135983599712559427795307456971338812207781595665375223451040239289902272059862178031384699348092280186071464907355079158555331551113734985091734091138151138843555647417437912458913379542919541165413052454592964267271163607435635813597085678511225750242333157842631655821012057290762182579098973034981638410811715887417673725874495969420444869224883637515447491520996642260594046569586655177200667124857191293230849705524132501641973715423291474209110776730258481488481649248402447527616691998875528647713239416829715986657450830582320828046968306720073518179218176922294122884048284514715501495389838359664940144402417025014184373338885362903995227799902522786385712547711701150856533964252421204884834785562751829596347600119772653554658807252941893447688069776905079647065345591388326023338690580062669186637726922888456020876887758059064433699382173678244446103807319009995370061037876157151871599942864179703587627293247648617239517942578220215330997088849922665999331982597634982316204986454021038801755226091183228327916966111886385202313481227730778634544938640051047253921737826819327462465334161869891096912025771820038643940797527419967266572002625175668013591333443634519517240746999641420433008496679671193853770442631285430426613934521731094949433708456593830555685469303819900804915806965801097418536839485401829732336629207185233443365314897578049525855248365797265803009138542032647237878038468293670888704673217194892172130007987850460681960793944951702861719299268304345873038107362577268132140681240732550960234144177930184130028923941898112171133923607340128908812317365659847016796931548744085222814535352705821385442397381368564649456482717944742644284510257320378793876481873190844542936088488587406076418545515392145637296130095341459656233404920235257269027138490962786555781338502857299009817002383590429031047070450859495101706516989675797073307482966025081969017772795106521643643447478864571708119627353821324027675248992509835775666687655161653835898980302012980158547839026126981915838080494886936658439126094090160366778414041699416417603476770648945518644355529238614159655770750457884524199128310477426268432087472421065261063729346856236653199880005087345885700126146735027300169072060427649464099786889266243020834018390498616408254770800984378301538951426934558989177203461951187729884586975603017313902959089612537423276075876798935503118728328331453982313995505672711377965512213426298626980116753686317354295359490072231337384281532090596614665690426929878108726434692138568537708545438745567714783715227333013759978411428126307883694794841165798788874526032053195385069802237997110864142165955513390675740636869356852172450194073177774205088485784181944399358196139710378512093856494801192333010030792924908656369882297140745876163328199047986792497595844159712912410901427984556329755544605515153627253940839144599990461795795445754815728215957820232353000859962929785005293701448524479537605846272562276716067818647590271811244184349419178607513404243271193474596823719144940795958903208050437188650341695411103344639144679269838486718248095506243391923489891209143929492535129109878228896026150923693241860682090552976241669541002566681111323015091063714888248735408261229221856282901839362596432774902936006544761824144866281468208500636491154823021677418829744945890674286818777096143078189655601845164469917911321655870001488551539716233850780098384945095204375707192024329113780764743342757921988071855836470981453079569207599951757591261865251125137723973117345573248530936605897816898377566227433782627527167522045336417360024054900508571892216373592858661796635483083165039276832051550438689740177086147384716794448294938314661517640619872290446380302041190335322033096582602840120591399483760106281605755240823557507035112519352879756282809156323891104988988394056839618109018922908407676588720314233685630305699475239784272888479759398215316945656137411479860717248723696151716742934183579238217765990423557283788495730911869337956421414858796770525334549865067450504668574262616082724161067122398322315594755696679575806830552483581776194119252745698733448543271056176463306654457594654243660405173177871494263877751402958034912757942636186156408842173010717499221162605828839299208862755034723796051797751006018736358463881400173120436240990471405140757795926761174155017272430975822437509819020067019136585526040134386470209187786251879437535557506352733139797669532234625867273164694597996880077262232424643664478178247964291299431396331613600558783385184456095381096605791162457936829282281913795387740980619636816638958230695290938893449648528790471062477672431407502305532532434254327366272576848522807483743254598734384200922831017870713750830130886964634891951607357787249837785433434134462362105041549820288654693518659560414299517227861064204995062567914870622799061063733568342184801196011924190322911728159881437711397839227057253903431042334038437780162994736185695226868922232735836383112587771686757267515724187620353339616131080710488104065675699782105690424738098078186584580643160374072360448492749976217455605726221305823851705079637141803953966257091635446706616245386903886948213937934117624166690382478909543764912128292218445563492939966683135649323835742327848340364645978327341132408797945491914377335976056229186653204808921319962428381383275970154968132090517514327956855162842090150238991844003241852687277118257933647406836664536297659779989873342578883484407914868540265505744422624677259325415212656039464554824796218201410340244021235338126571020337460537950661775254252628471919635965995966256934100287498126992510508451068249565763029008391947041376774690335496038566743534924013565023268607034681924706584587772601951133631882170210200573120003546251488026314867067945271848586092843277547319108480387939973425406937262354417691134263760015415456778929285098331698986319170783586652624180497285794041263172572394899566049189371721753878559507542763841715403267561297034156858192374148926208774503798122600117074802657533993001538507756794377094757604687003409871441341727270193080680360086928964701776493626799776695525057009890496462555735784982008653108956033402431571059323354588398808766623467480160278091566041244155298315000524010408051005545031045091757708950418804029175861509999757694383599078641646145101456788981207676665745854132973085534150638444713238643240547373302068487021467959426047977544140635744047892764036423258296941470402030503273483063831818764807603830291284764678329040966309286521642596818445579739898150197508349142250220500833776496036963441016616444885327799683396289408056632966709304091546791831934349204756993928574918525960171459052236591144248237762433572569846955909754524489733443640578150986358795947306504850685311810249713976150297287145927934406713519055137053166216377145698844323722120904143730686573089772093635711078564733003539876261539954239432263437024237060340865757315070353594346305089020182814613533305659493196963373624956289557305235097281109021143675193151779530571057372357929237737001691049612403338428401462976932948430127244564987797277697906646555015247020000035326522134518751154483159316324351989877511517457213746101767817597244103126660042167711039625360068957846573925532657203995895347907904157515827511133481986454061143830332176466259401172788398750170088851326831925889081219185615547490106657378270121074060541959568952804194461607021308932084198944992285897304154421080735400007283614472788340924144196346398007791300390603616722731143078549182815831585122813831156313257418283602146246995107140804899671455697453781410756910878995916010366440370379195131830707843840722690677900534163874372279221916021915556711082470826495504885294123319907508567355493986046658282667041121080437747424955601206799272328991980253361924721256529662788029466687254695650701855731668468400585407025952105534311344462207902959360423652057105525500012484224562851505019557063563890364296975608118251455802033011348076226946080607696133227877816906830145813834589270705101815302847371530176051176200726875560168339833252072137070235403050113808578405243625095096240925603579316003084934155024253684612991397606284551511237128964913790268458456240408872569620627219247567728396605440603891329169570293669593359497892452212876421213389567154171079245531317316520278071053488883808796955182553437788014502118421407988110185835112659359474541657310440863709444594348962945294821083318208550309424992618735533748569343248095733697137240696965754170906240401827473851689253427742299123908781810630354881357371956439144360042245270593078720198169933599089892195190066125903029298991975770784073950747469018857682045519757773787014001231780428943201359640447927810995535017771117147596748861891656051903192198744972042956644760759597340891988655120926507097487075628003665688713731148882105444030326388107492742516145251668624968896631664976259244585476712364978003865774035123458985620316368294678916000784960337321543333001543511246799407183261345034677683322449419963284365453343665337619240475913602831754320973550141734298645235166962746016307205253691700272865679787929009193865945101040415366533470664218695863413280110016711625236296982955200311894550938314150842342883962013890604730786025592834101420028548227608173591829459543280277161481283322510429706030160327963474964068751029998882378631037510083349385463117445988694786290260469201937248219313844081922115417957423115966025366383330541567007427876259978267871465465806420085330155680575574840683304406505209726587099530376291449555658997027955659279589328912906857510435346508775219746942492351811996488874667693910006993606573771864096892808541483141836405149453742990545301512258415414540592842559568965855198027072975617829940853668533902674058421542389941036319728000402721416358739386252395125730222366483774992908905264141269763172980124110923127697272030600201587608077255888036101508796844740001049414344987213784585206344138337228048730213328101847535375488714946432704750138692554972893596179304291498596795197068620957611623044429908948684105995921776671302960269754389807158314678316436356051248539036144124075821682082778231136922955640704281232567263710203022124130446657067806965586859347771168416699306926746138921817151144792947867467775223784110370407459787198059996061177000506828443580767910640871408749268016270944420410645845924608532185821860073834056727407390990109121169910908983113164088617269037239938848118653328768456168826938548295089007321449264624549911731306314781074102815952849347444417253974265596225967179763970294419238060971162715018426273693284865130510793702495801907350039536651676944661966139141074948776967365685350849946146866347208791021244935919079675846536168941827708332092768893212835574011308030902517818571996967902056967666114849698944587202242308645046851026584932408614234570542807055282790153529762129910930454511294482442595094301520833904703903257000750845710901401847953476851038611207039931983974538088104253459662139895459855255924117690335734327250509494244265582805400820625293447738582206812463604051000731092844176170792432288903747184719799059899191185365727507154663380409561957738342389948059230125249805969671064415646152626313064676336541402272038136051553281615692546513292104342821145535776890185582433059941564182848531842901337870491592709437761113917782731563595406575924504173746493538969905173028788920620611247829743764309453799953714101251469690353271756274969857538252095099637460301780059729297291763426865624423465469405886479592442626321120191444043820047580662491581235923607060410518580984012138670086780677637586230765375742646814376660362358845686618942580772450818057214537527788045290620439017677158465959803688891892218090750397185110914544731689429360606058989572237437940531999077670452636666399531275465697448870154368020611188464371430865140609710653751587516701115619111340470475039823289383837742084720138720056532981955576743878392165185846956897272602136201057819636687757173491632705008290276362671020869301643159947116728309100351479670572269947644495420544106900535258379490487911552184772157997435424879455568253905507613609459983273669382617987695736083931131756111946667433952056335752914985231270786819859635069000027170983737722737376931831653219996673689847085125187850680438394259292084891854255615913949397746539471660323299462281920183746507300940328753279205836879446313180242217156832124415182887733114280852153733792894214169731470962436286058479691489641032937059684407304616741735998476473778731755861941757799648451220717625174749309836251014129475695664360850607740571450201329514443139160988100016644990141032447601173034564375788061051016965631097089936021529525736703335836214581297459137147465543724476007892435386547783548195745055989102864928886470551036017077085315628334438832138806980425356611203244822041892397231819687804568735734738246973691173887517399037075598878446589140052040568672740231693926860310374837850885803091816751748884559120993361297129955285338899229937657313256187952847975438712268485134641541991927042671285976564629025365900700216813324145399522034467585284077031625670417734681247411797713091894540698670199936188411835626353856899189952148863314949982180280749068088129231816940351534379794712997920631606913317035733474073338104093069482981351478968647455319825970602703578786568260262940714722402957015045986509655112528755362825259082866259499237282980184700124309437226492210778022415638579509429592643161174271548351773399612608128596664936315381825197920450821529983224740410590334300022214010985476002775171564273366897985254504553605619231246217269881813153256034989503457340776785842486814374285647061074192014561492557867669177900869534392429221355798109648800102020689752481865780599137346384211942481228771307192794013370811822793389616126028049694515053121764144189276163094933514462326966594925802569103901451463502237313458686455480042577708866897371977373470967085098384044937246290516706303258541349039701620644306733052722526428071354522847008619987272150402425699159958065366992665859307311663670209969560314560629299089496668855114632610349014593780103066386167684844536387858191253474860262750402096520446602810244103956226457037147573314491130702148906564030548600624666913379037059030683845534063011307720905197582517684847879009316571944379120196809758659730311667872390181612414719133323484048992445763744117421097549640593859932704765705920044786286094947453808998352082998026712722256910347869754943044691100289920160304561823587061896530481450652576363319841026539138328912356149718286012120101899429897624140551583918317371642253328924056701201146001368074651439366017358589727387007865029655744731744396848154299600141728877783520037910636196617490167872640152172366725518910028625934233688662004013291889853296172410631897772066595663161305512228551989197855525210068348575514417486147926091628670569960690461894630028456275137339131075284613457080748651103848219584494463047106380461903392691592942941429783314325394838710354729714172814579973400528754955383099949230573000314261172486415930713568662840275135577294598129635751057570815017232967169748762725245933540123950576580019245035699405333019951746703584153123438727280197516265885572188811555354824733752711171981164429169054358311828103972810347672756334074297804744530440624518563392086333275808662304510839867433635965186061459408437963914341692826529203292846598135625255266559573059754716463556348041461995512306785319879433521808457446560035461190930700361956243302624034850624230113756275919466781464732795206146202247289907527084300887864111605589810525123661584830963140807587080220837940325279450847614677171450832030888806259960056023507815993626756941973392103436918382837863541020716973575308661935328971851656010867359648721768187983611606299220257703480112283023473676495155257424785694581771124690768381364536494143151826282107350214865872551675294702784988862971996631601214459970182663273771661480529101196305955339064848713104765291619048302176140216736372044013985168089686723283929846030349167013836537830649916786339381514276163525967135463399365944253895527564500933445398714317030692199441643009470363724281896559697876139034227747564135661538236053559633169515396607391093800067394125579001177252718745220012567856508133201874386904592976345629983396570071419168350965921676460397880483707845965804725184729627853695208707308201459875015242573796712812408778889968143201706163905099180821143463313702210558561365055186142072814000224567173966522795229688197858378515312438027879401561377553732719032936829336742825870769497371646567539663403981480924732058501584276067244850376485376622763470357555690802364543607631581884657939438001950733069454641783743856951237134998121639478034648826735245611073140289299162856523562844104067071994921952086437291034571928052517685357944471071854912462889952220274156814996743459919927643551159471873095763724837883393717512863092498021474139205923930475019174746426582772633415584813070085348663550035430104453542435376457699790572478377763111727350960863227309443646000327934512821862956681189688441970841702747149215893099426254213018970409531076293789525743171150431967755743955966883857737331670693576645359805087213750596463559116438748623536869846569106555632144761076813370981866482523856316405689803833962967726983277922308401724520027688442501303271453367726617150223223821650551657544885404555412655904760814257330789615957068752771946883595878841106438089640473932984545499528875227540407244906880805863948049147144457695111318433451937704272292178533882650709338144627618085540189843347986078235684156313748873872246976768638997672726136400105282718193656059618567394103508720530409361529127963678493266909652055830921820894573664580358264381245730914384300651591385342162474781449621001219970091375279563874002792438674931540680567726139244105561780182050657285779400318338342301988220044130926110581418340219518288048388867559617315319139836664422722963541634014523236013840357432709936050464648989195203276628805191998368247733997725451967344308758331147648446194144809553345101026712208044973374456703484457125029176931408287386482374336401610845364822967221817418571247377022695825962841079349732526236100396156825090055318159398600051608139437542449710734154342757828938455311070046765937970191441035595111393549198668849315934976782144560779320412237901950864722008088362468099812529852901200187467723146097592012582577617231679628412133259838857268354668202321399088702614717201080958887414134400053435308934855063287434081545083724102149312998790462194368643734932869847394515050249148555589212576475303827551459972994609499594707274908723874431583465487635795936788629872995558616746400727674009820381284389218311288785068979931129908693517880506825313364617530415135305483706266940914987047411249812567562201203135880087861262303390912132852496163677613776026797403384865289805278745757257557381942355035787567977491316356282597482444420089617172512951356132336265888093576029850770943437853007597877638786687916995370894861270715801839154969134188572807387555596959360393005598713535483864867888108557992226211526642978564157548179646012153249059853846918146609305177033152504432556317493310693554285911964373951746253329415860940800263393262900704073644020747280168071579746347125239495166774116709624758421708046710953652115622672686331034324844150628563979627391301129113940039580839291441956255986902757553977524629394165438796216468939496803891942647675619726115528870732359696656819866958855482008085577949483509190283537141333718643140669020577030044412489995542310073734534390245764094925442431405757359399184405675595984603818484993378924898646851321193155994570533577936714805863038679381371473987585086285394624950287900084010713584596670614944242628986053875295506334371735292298674061629785042361576514195504095171685329743469563867688069007922648926655513070903405168206359925923810619682400541147431622872363032396791929869157921052571014606988737481739089242913921373458078473096785163242980945130401789718254095161056269855403952586486573816591658828436446511818201032879885308138439424294717368519892575996301957587471969764454122202894960547767856392128852844918914584063638752358916212095374566270109239571575981806756398382823046424823109042911964735680314763686194495661349797477881035274081408137890376103316259564705811051530665046358666943843367856505686391173926734333595940310405388180986761692331405300797047533934098800886029061308142388407740772172233112384006856356587938299484248238096369686154691098167004358234266256855232699186809382580084937422845155066513901994279984108636603580765737917342088925876660277127285718629058958089821075155243830458063996371836301170012382579834137402420641845893530799130084049428161383115200380312829809894399666155910063311845552866560300860888586690421840412860684439437127570048337597923149002870853310803487964907601941807692254910339999434167836672770009171702367169930351535048775078650178508317147956641047285813424962743521985598829811434489796288454654523271412697733158955608112916538503117940209553928152312462584759230792677793263466504493936755382201375684495393289454196083544038846830750425451518141711022466563421986085297229399641377801244137408137303210386761476372498358441781521510079735457483722887365403592465408999445775070928812230131216767018014159359362381135822098801596343897454637150592300165992572907580007743537241217848834594994201822939315361093863692213764301796680070087517173905699902896157127329250176799801020870599671971071513984135376095550759382016456374820381667947630828493557233067997829756967064920076858040121062667448012784260106106693208276822203515984992774688979085891164764144648399613326515272825719741978051925844395346362600063015866723110827724207035858772295550649985417445303634989023349885059598876660031061316250628839261381423106872659033523604064871789516815972116557343296344964949554241795098558156190309493403445910451089303261120744886845611579251304452707556137473335015406273062541862629411996997994481727243206705734478905072562413087162984673499564008881972277224702937551867505672193048982077331629254496454057200407154890298818999326278502385339787319313465197574497305145065786508182344640202415083869030860701934423298145108035648643915635530162471956635681915425036875149011110054535374173259561292677256130926215011606916665003557488898014870167914687200165357169048455282698909562562804134481229682959908298598909107032007571839020471515452099075966882033807912563881131489692690850850194398625478337517629895777136758192679778250050521187848309781715980232612955214223024876864979473352473148827079916475202579715844473125650812437129492929416918244857909904782893931595272144824676459333429063915929320332291405365725321496942604207270464987947764647651844888764457311745797808462383420788586137275549991945316817912398999382887850969895688138451621366135251611299400041331553288102453039879960065728748287862958933812812974105125686633299617815348558595782069904744072309517598060233684278696468821013824343115315728895786533242026554281728570754049102415506311279238061496869594522378220092696276209022456411083315314913109690054644231121671199182414690271517370278358992431983424558125205600599860873813356914826898344967368452167393071973703452137843085329823567003733662561627734351487496265057336292744099214005448053407673985139872851146792689866804000394522659738992867376115192500839480440171524825693484352666595413987981890680005401884750174176867025983743230637876665944388539778601221508235302710206109710104420127712749450037849780637514626951320161332776535221179843935286617734420298773425656625623780335476518725493330749358146362549491661989102331800752171821593732658300307494596081779269285917245455400759850495258667008534246648177269380931442589184249716656059910173247669474323712558898188543831730091650633068392471574141776984530931376459771963913549707394165873794100914513470245705008672218069899199971470507791335830342282442852160460151411502371341716586173290445947491858062616169249729926564956165585789950349184323217072619740603504780442562168784561268611685266869617490689579387817931830368684128275939889707385437614629546469541028158655441919740697746822415058881348599239442334241000148172606359285103849075180862119150793794484891877578617930302332985049577881131014484605797304631293513838588200434442218137395383816256506681617430634855575248329009245015816328168230498235945399597001892074034533539175964507782266721957930543372101741148358905944036964949598157563033357095461116317465118942688325348046783371399688089373015707094885690191004852470502372345774438070860938299264337367433602173298854576699507675784888978519902490284141325769291541092951254207859843432307988541627526299380369446541637430787333099928245246777616225569325531329569312362402558176470045217330822212323680773414668564229921998089530025037354780625818380910340423912351581485940710626584618819814848092399250716467687214138569787418848173580759635580825922607137474307657337421640927661485832846660769415923457414268400164868084294399968176115254962944489316938420969822915525356440737802557275192118204107361619873398530154006321516066696094843129446707701511222583501413426885133134653333562522968723047787058285693192995775544686711827481398326699270622291042002505061828620763518466766099006346968536374065555688952066785634788876146485973950613620696081430540864655838925919199040128943245488143401570773893641403325738393707138221824563010693306874884319564398226388942014086132210994046443829343981594644691025938654848057388021803149273090157732317535291093190927478844861946008169740539727351885477620209445323234640191971601214250434519937698057107524643830087775723372248425541602340536948657517490259501205591557105540608994530550201695687427357028214535527669369457526152810954932302556714070014810403168668489467463197837849782144736095522779534909356566276696382839954463204569384632087105663299039664889025899801938759591978126984105071145419151076463589990483014501149416150251079478922004119859415347820398683774993990892931383741537871691562318553318691195035326275910827643998060421222634229992692957797252416613669107358169743392806663690996363246981875794318740841339521348217209753563527513518175725399453763708378198013992113263533805216636224597750065827176405309135916097091859883935129769829902224286090804772092943034488424466577229535175003419599509799567535873513826718683438765499072715066183859070172073491578630139356514718368445196003102159616772420975853206105447195014646506713218076774294516205354242274886398973928581761174451326828012645267783879778940068677056837280274524258611121723865311874261199632630065550184970871652903514389484766900709643038222681272941196394209248914628450465470847952434223749209205127020739556224761202178150715173458438821870110933805297739572944319683604904137799023145227379668733931157350665879332420969265339120539390320790588198196702374944631398244707921971723757211924325484894017559402800850700821788914554543581781889409312153956618923142205734147111579291135033834782806766938218371256699251704678715128342000250030898614594883215312918371035542105128255684243992638761682821744238071036726715713334256029572064941419895685977655047154329069576833166178618336640690388709465083552655934350027085654520718975631901021224998235705393696681854435363420208559400824683850115162695565575366489124616860402028719057981429575745990873417649438511195812028907148064876967550286095945960156873801081174976263921603061960853482802171858760557614387924618668207963379331755518320882402203347218523342553781597238423033637319541259763694689503173421765408234334931266242461739647241223710211174867588605876491470336046184373125022800518310917346228064689316175809832000848113343072398965450792870731140697585134366032518953361479396863256599687327758231030119280462473943657200119202517448470575004517246590287094877088494439441216292625552215636580756325688026256100767516982570177613461431661222681099314452048238377904703940991046787682011039767631740575320109746254584608699108718251222825925667644650038826487919387326151219252343831948609097318556129379601498963005566328114655929860883846105577614059008053531932957963615925888160925137744177511522510070953568219406878115595746457950739139185600454303911984947366499550169703665362390556457680391141123863043625167852713735853887091553395392016586437507912106527994047637772093765504588305539850799567574565847375989395804674313081270867481755976018114831522795522518619779786991917174016649871306023091841942832113874149760300236517755858120469576299100427269727852007033879147418466649878338950585568055477093355018196765067982624361800601720231198606525610529972252275522090144664931216823619213685784529508698526061162764079963345348669587125298274079890518851254735595066156830812165746209382362065407013001401518283908160819540071213138387159850728557227723204576679946194058911409701119357090885221966834103609403051027798852091341020127232370888582803414602644191500995186987092650381367320945643744270245061798199662874972343900524625157394391810533792068923818603917116638501131814144334547812321770672866023011058322647614083114675684218421240255153997856192417081043223272930231765480913336321539380277443426566265581285859991010453972122818298083578292260788472847368310010388912923288460270263259491112777994140966852462694494107015165420523343250058183569002330970281030883495437854665621588217632899621442901497525606798335807647260213170753425187252092138264896466521248897969095262307181574457615005300612481522880808618716017667783220768386917819126651724697421120434883035619543345138098282855758285866484942529708575415812649673680466264340387738201512883622159915284637407414946979797495190089720838318712627729822832708949723196351659152011810030013133131034892700479103009738507757485975485471063271755888896460295999371802953575603740702204563842632392016991653524035494316728665111733241680728323762681343038696684769895352623528318496443910970267486912241089881712766608812127960241120746981745546504612997189853916792260465663117103984995209969798672712918664982247032303869241896820693204675285268750730467114393692032161366109328366946120051440991949480523302555794392764606171494582112242690753043593960862481986764485227838620572396116332968521567479720581000259426337329582928321852008601960452839938418755719551638515093726515121629133073228247173187578370118679716307531148298593451756197194874886082284768152873148458772559120896568733528516460237097137070216220654848176052170805913133471532193078969916520524482704075219242668109133822597429711519835681070402466634466950191272061407682112129827229173455442692521871365660039902828642101103940229307835177253086556987739617502013965733553699223717724582500496341987220142159033073115317318454941318612950617288465744428794767017493419135528103794751365460233285456550960728928467537080764440882063031242517704746752460499586596517169144086436592895145410024281902731185435920858595964691013417207986941009418178758493911952749542424488264977161959135252701012699969959906864134497448533439003759201955410937229309867137530513067836004537639507103072516807236473810025205290551733553588640374039042658715213982443965276509842649159662126532999559056809823744286132506415019203588106588390446102149413915607819205663033910990732519006234513798930828641190654247641048214248591099180582299272035371246852732337532122818357147476892574988266053498776878450508228327711385255086094957752130794445405349303927236833045259520699692581720013541657770418456572499295220415270545467857002174436952115534670840454324506888772324202397316493460952631402103414799507209915796858720512111697290049735933832320214755420995465938249277043377992925781334774200501024052229239258652556855251352412176746657797080149453100955306082817036526392383133304101538425858109819343703200149924291325580433872499791070748132774076944902979405195379653545290482210804420099446856291761868022045449443006075515474598090757131293036299259204331294725007773008413763773214134959593250387075354747732366996164771191540801507600282267777406599381859815107158748469401979194957675148413129596064977535819878791817961352245634870056235021753060839662560583151322831918332516827833105094372239578445657005816083623677660152757950183314945058260298835127278009615420400024748090173553678500119654541464369841379787340350177444938548867109610278510603974241231669754779220296089939107925651150631318454515082376958009434304259287498510565071014597725739727133242301191538257475151340834417224441009807804957127457834818047004515623600546131479850700021345035319630887996264500496165491209509130907304786002957640858196173601505282350021252684818921443806716328461319868833219383048701704100760996768607711488510256804925705337398336582836019463650723287541224149875438368966015771548834862978108852361731735187303086274389188647123957010391210256693384841245708557282347708392843491295538439400827297633197767622205259365842128836023488042657362957118302133337922729529072032416858813904579239346778627784911889536116757463098251686817895799217329356166194392293926128708752915035346534469460334221831474542332972072888721870185097811959270976399335035393441778023558066781999119300890420670405137193373141497888381022201585921239855694760919928210759943225191165228718162543187604135713582370024734741091011015834708039698354402001545670598322333010722091135193787877285934904171813540934383083842794834490407496616002532922503025917240524202910685547442901184411146442364736525755248721741899526873694400977389460923303385810234491371236654479672252384548506635231340736584005269884448133576202837197628061020574916516193192005287615632447334578066292034658324711381618725732182146950581299094390874123133000594370323914670854587533990714256117594294022387510758348690439346135867536371704468587380806169570373617284113815804177116919437612400660913061143481600733692362850958699838495960103394030592282156496576498799483046316207486035227545761603578099250631531533847342349841265699305110240795055113326049859569958608675157327301259322759210802345104250431197427698291415117559116597217151023362914701069477075027181782192863623187852517438450145564890209510575814869678939431254130423301247831547081228179493729549501591416765034971096399871090080230624178256428888041685023397696168672703472911226270262050001830061264413059917854340088227118213480495219733138090699065444669697058109262172684353449913562813197756523228262344567401317109074752800538620532171627372411202347644464568274422154586341614628340159519443017584601663969976319237678276879137550213648737957834482209111169847603263614219782333782656556475029140280464934855293437182153159078778007237671909577286519810147763910570354225690087035900416592963742009275464399587843723004294058763185965923255632738016757164760173076236702308871173609706292788137930551453302145530215329864207304550484139796723520255776589100614020576604575822672376881262831984949943652826111607716781744016495324254879353049951914022532177876625559734464503106699174860411303275112186837382352058756185114454002446313993793017742179023948815244847426285550779658874064931140984801996364726217090316326749054633658721061912340871189867856476294244137132088060165218559741289589406661135042652684144318587045984455622553615020071556140595475794944325064291291280883577014145732934995083483086900949416442211069906509036453381588341519953441697882065256023344508114202079082971519364744152358893236208507039233895337030949249057067259510583407344921836287573242390498981350286463455720821860534783536304342657392700683538254617855836781464458015947994266105480492288604032544706000537734520482214386094453220792514103325614242444410689334385807040702955712271292746090513337057306904988721267652564472486570337697996516962649872312971130484654554304575870909105140466588762652173458677174986850670675531886303766815785646704559673900134039526078013552347235189861220513042217140319834232075967902131612908922380274501234050470569187197533818190506132711004402940855510907906087967807710429714802288670721228626330376208007388085640709146357635953209608134337403744691096455351035101926761963604738385218675562483471057925219940867926757938595960157756980682443347777106581614033590962537830622162120889526874963871629750611480754067578681083814234336630827709457468599677607646970339525383148757750362798345286661084642755657855100276584401719079586434940986284793321168367238625386119504770610041075804802052838611175878265406456979390237474858597226990140255720239433832563820479637847289077399687252354288499737962295688432431845668780595163144791864796786966806922168485602425071025028113262790914318342501744818685904029930053305376739429461074906267616854116758284308905788800294750938170482430970285314308601412398715595135456044221797091750810684154267212462872938964146867184095661038291148169798811174427719728926753548139027548325815091789155790617732098957614321858236293789381230947240442385987050778885072422593667687031373828722520045887366681401558853796942410732053681611306594188714189362059837326093841846568677892857139482889540408240723472236465820645633119782843721826811729280008020821166271599956207156950308160744652869665775915094344702010322142634742717215224443055747058845807268025397009491225408920670990305827753779325397301745723940208228674893461663502717209754225047502096321528405660849441745138650607420440174110051173551897820427952850560522370138936290783929677595233967995138435858609500551961613225473921376252934423768812627443171681196411794402199757099768708006909143417923837998769607410211806648211271727964712340570079257612471932636558533138973511901612876537134735953756463674229677159875942174872650133323206676085300466642579876432691368817537736890968520917293595936016666717229702795879584448487742751978799035575118404183116238167859837470979885304228066636027489166884008002862474077972153692366233511654148862891327265953219794755592789678455257148465224604756532845851664461509603431981144702750742905730752465683391174206148480128395712404219436928184993658246241576314729130832116760714222905827152218058621246314509853859349018026348089160197843579905311429503807277947097939059387553979273558655859975645634173397364745309411435211791641835148801822240311948864803948629222140090224883193188318274595264961758855820992425170803190719808410791088203864713105647811678667739737486031131922129371018988620640327814310663220894129412405864861067447478048688805320811863001888666682504258102471488640877639141489380516569514136347976910539391747851030552396536821799109307645843812195558307281681882383472573579442385688310711538672091181102577816747878325338332860681371820152635453423157207257822806474673032165229418085279803276924921626783619109614590143722812228819410120844358457282570154531845084525056036472213868552919221927279414820901556589668908430368307689762202544088172006832695685652638286210249571234710768653546454385633534501816964149031016225134523744940323664931748545871345509597836816152207321927650304644650762539054303704974401407449714953749909763266659343488291001267252572928214987984468820134538862312368792727019686980612317303006207506939790107587588001132872745968243394830721229193886101953019963328766660112303587867620175568752566767142897869432234304925399943637805059845625292032396848806141133671977720855884017651212242718652997182337434446991519262314941606483175024841764194516851766963912472893728320072563652453474174704419307016147996772711192069906964466500547279246691942454371663412824909920570933136959671944334355107865733669586779709058489148250316534356746734630524717949995940568119086834537745416502633856236080924208248072398299122499001462324570060587026513388873499120532892403194952926601985419884157245893878079826698278325767088720498175829984867540456767359460532107958080178819204527228037727991500412839170650352080112003243937252861725948882586961525502850269156913822826540013588556796391061001356811531744212664656774285163613997660976324339829841462716791841898492586524716261911664643151134472550300164759880913931484728359775477911068411684964884369748502408926308949956898680613425634383056028429883061676643317551586584332887915754548207284324134215786495917233984571949869091743419981074937308620134766114588159815725954334343404142507994370932875362338454460031190178843810365674172144136619148524266569366998648845943361535787665437063284860062731193227706273993381655598475932973451412039068186077072670650892830827141899951177570334352651513616752265632250173240668732346827094125598055016116675161346767350888337792276653576803603369987774378571870301723138391926009238091238849400692988169520480175130257308968317978741868876242449436485270865207987801105083378825622081363198692743849194373963218869870684574816491054083065208542575652745233518882231275780604613806913952429275364783689595497668918249484956103529847359577999420891315974013019685434837347339008358936729624918698119117473054939215694297124157826241384980276646609563504282627087138669273836961840192560613481541354855094843149099750688768527420531885589659629892030002537178824563622685235252129713354002988982320875982423207329698944991586576860941952268574859666268732295531523970537473528877615620843405149148144792182277035361784520204406051641051315453751102751372913397732514857783730506736302484103369786057495744150599372998647498201596783505347510744858930814889345959102385757568139871941466081217422410370955791015851817220419236871963533162836705883472128109704354224073095313657790539432170563313243826194793911789400939470686476200612473665580906752053905608633277027088445014891906298291339985644970910052527221446182459304784150136849433819454583955286645897208948646048080159360122514032072764616657784094828460953935148273545104878619117419440237262394326045344061935995506100834521540427805884310424792645108896080316133822785104349436158548325509419537745215537141149566307067670521863337614615011525260826457284413128703532719479707000443762826287043424452134906971349132151700720560853550835679746611113362556155958353355834976618879119318020064840006120997869227948983902525587912548855193156238762831993914342686956688737569014527600301673316711396780932756128019697353545969689803139043793646736691258316763483331611493488327144683084538515897158077024118926804504676608982873001278031613795147592895892992138057565829511517234259478197378868418833796094638290580571573672165705618686114663244287463301889872804275795080318389418950597837622431401750341510015495917006523132064745633473236260010591315234593290964394338448116224635455587047309035860117339652919715078765008089922763441548967897864961750267945415498102577362446585177787107829338357193427447568866584447698940380293208908805939600520267833945432779049915118660250759781261880091634951789532342512387422892183392866363118158753906227290421932944620884547811843782131017529484546254515259647743257313452186603105892632725147504676232807024338562554377005020448067836417997729902363436705675697582684479337513946407215449635402296190778715805207217041511031994334293566014783075714306804252225084764689347888209096307823174905693808909120307486729570667641706112791280862671901664602303054978591844865785146838672473443726726253464457015346994960361466550805622594045735573093433244906693758994091001751533516552249908187671669361828436119425825603239690173736546819065649433537587043616690008485731300507085850282661979190612278246784892374479692412278392257626719747440359913431051711453533885599229716943611338438186885123853742017263048222517534439748533879321916241057598507210102746530979661491847028413520644679168930558709472009675793487000922553498738310287415444678148210193408435901836194434561749668159579550436494644373373285179955686784202039681545087944731686219260777564133157844043876030935132812778436000725942124424994389373804087280210120799184530496678553798365122814674394072128014015619602281460616545930827417756942465466810649659098336501567230011589635046596929732012807287724865759102336858167353162112183935493357070631113409533772623331608226462492409853831699779890898734416444264355628982071473879497586797370895688005532837305616709213840751944782483213459864841552074745212775648706059710443146281770947710190781785638469234322053220299242769366026641409223762923090456438147507942305644563427976218887470171770083004303776578708711678584134281135931279769081647134728929487809915695918114978252454929146479754399664727474486809390952110277446451396511835322428260343890776218655571580573157626018357150883801887161100859403357663527197314812625677416726896319389622192962356347588290994143508056924193282950329876546548773205843590830594658598072169674876498171461678554766454508897027998092982384861490654022285139693184517347805222843635799633549735473853040870034325489463400739535780965015215233042870191960975984724149609487437760668433336245635369646589132843956607499350199899646892992230033258057827064211505431945929815227062518302021593052031210584130914662636569160743393521571824953960295424459189965804974891220773305028315399053354198771962743104577408269754149751114086774559528103698561081439821122065970511341944045603251007440670175724616886229429753949345297836517881463196783525449471893238452996896936645979505090769307993011382115984914947225233967434612507067848206861733295687118658367455160156479313346571037331466406457777836311403291148633770011915232939009329274875567439576466093762557455863420890058158101693002376128653070100439128144842985007044092075065906755878729923391821555938744785051439628910717168817621127421372757716187858263894553392989406004487580268049436727200744868921249398915577849659575675654369270347070837438242010199090395742856099571821834825843075121312593488180496806680487892684393653824455425186675565483767550909556097114821843498834515073664344556527737890817745832296753098848042288985946108254332195430898515562877932385129378878164259345121473166109773264540845243247800736294922535429032323423993953008796272529025747774074612654710533181191890894484717929439886740593237785194606579444900990847334970818993739831561145327331894874277706027496833178847457175141432853639265140984765678086325666728618242150314680475806420398142061266140766247810433561858316865914692347278714590942249584087946269517811319002661257900159726483542688603610083844859894624591178631716481737919231436635224778713960267829448657824318001519763281495170662243597640362408110740890439225104810091955333344522317368335300207071604707201457617266485685446969583850648181102291085132082298565183594265443583495290184361374230460416170733870100177182337464211682860452769565053640970384227783072239352988085432803873656292896026080917849312316200513832620233081468182960593376570421090728875849482720345989985722129566644295949432200407722236729344743929615900269623157662170974984397234569021492910148466473957160356067282042954991489732985931031363051636797363686543558319506609653766049984145876033974565601618687883030088774899406469572458095809084963292335023156125456176328852541985955194081549500146039281563034830811096908452139243577860884820707831632109497207397373799369302631169450279675699669497615281179543769598944690104812397781880187329565988113726458633266576929647092948897425730554865849996789301713263699320919933040150311787296180155362057521099223678586767140852286657803307102206942008431608643740020616348134196877105428713601224565278018368060071159488804227420539700176475984262657910843245420450116284684633675887317289083774907682455475562757810861409190761443279203547854747491358923590118952400269675238135557596270977374879978944956635590479452119915737766053697266256919949804637918935263120141622223046290405097351748743007336951926652414497694693907324646634030748199492939729795953581461389937221038418401269649534113325962461999510313653242458697321646995515830470858606052717020447746707983713066787390940057808113129170740278024134126268530486529124139048450657985356636630311221778088897324868787740292966793883633059982860110208915646205041755093593020156502479761351425371647495423034785220351333195602595050759681017117557563865469400381572689789692292112406636334666887976249814090536301223271664328806142685888407416395678927333305497756796106016180867312050917304663305895648313283663308258496116886909890212356679201541071482870377179305648280513121160742128271706481105308877781151504826994254944890254136444422372072539908248992705528501309772893641101861733553236900531763338589277346728270245947001250733968030403669163264688584784098672579572922885502375614471271552772506713867046584076015635040442024706170571442870953299864331517897731195458794185709337664302886966773643397246953098290738391359014955397781455836359926059093157623505742401098804323280439867206941353626115350040719135191786382222240324381863125712756147390537480779281404139279436384600765803267339755207250507139837576510551900472928273513043426584305753741441426306614030145687782641389063162919630075343144175312507546321273771959257548234137741720042376000116409253811475012414695649221583909467947094380376164420121635580340074964141130134753747051043789499927734133559950160821916731723881938909803605889094199050570547818970716759833902404793740053900055844091506595650726971986381237106519959091120202878398439127046399912286136012440538029214036903765246744901729576928776016864261807013162887073863473836033429150243716807456471427639883910325027192951194593490792939797589996627612493511312890894538961799344590534193286580485340817408833592509117684009711740890857438321214094938639700724878829783735658971364463105836730100660553239105086722785133138615431180812677788861144116672553750688551553648659695398340850999375482969044840863915861114889985687119187448269123214376985048612020035015654524028970778263526657441042982218859008460765674570538605824384382880622486932650781012849217117662042614532672094399591557842796188524265123328613398203919437927099559409281749408559027139241561642949696143298713488618790736632809069599743215659267779886068083044957340715163144915530108489827892562595836795528819648212638427841566281380682801271101807510130053001217232618446882941295310142992550632448693399782100002080376884362853293535939000082200061916483019547839058243566278023101548982037799769705741907399009883950992509440264329197888614230456224547296224485388444531261965829858224336654581724295972033371698315348529101019623318087251346821263291789567963424460094764086757235155769418636309964653773041787235885165106653501798339468071435079861914967460844828237694902663155436446292179467909568562195167952667396463040384635225436264260055899554362541906607578016652696440703623915769992871783750679534421672899077439288527959663351571299541702901350998667785029911839785355373926908118615932459086260667289682232434267947472762121783615361976651120250812645166738388649658483153077121608681514710002388289118515814154146324511526485573018073142450910737255260880423024424244209003284528489047341932069288163564170823316335180868638017629436612809874037058970804542307258942340784244431612821405130869310973236110228212097288369807824543212120931338564889071729137829979684670517530724408796746760670640274388995407471052578667732401105296493881922942595754961067249139502982485745233886713364257287055605981597785445727491353394506534967672327558538482384217850656782670410404891378711576585658042127254536256723826432179821254088709768819553488289570124274750652426228191862222251479098421425135355476191692598929841475722404648012834706310346598545090271732499374638924872836621584935770394406353813352810315520516175410035336857854561947928665522072347309560361768019142468283760063916825596891943330234779334095021515926306835032079519767227744043060419824878547584649751670965906581192575488162373200906319285680160402719446128884321327989846836974371665664340996841297596245817791945835299448308038739202593137289392009204348207630199085664484641140357733993759064855089354128098844878748559312355739460455737325597753205419955456120244697747250265669921403745705731873795789669584743343655330226669896792235212831193594524140809646147798762561377372218926617921289596138172182222122732745883076031918660398005457604140807294771403887440738998448592436613487659134451245671823144010439494473006792561314983551742929000554656165094569811510873872501195745615645770268554536860459000365809695950068644644098345726978066128299601519107627700177494277403610698610652356825213187109521716098565442539674637110141878151676741492116550251201750085255884879975347491374529173187233610797594578469078607840465794933086881479961430879137114927450403780765303519744175451541333539046811356985988665537307653691064823781420544567441388494205739123680286425628215059756319833548191623900964295933588048218447545496455167308552422182159525089482746660352775738172693894180392953321375057880500985615926332496855719392374397279139345597463634734742532305555196258415333810968486318726279345020316206458013585385304061559480304630173705811621900345507582956722940300275934554519368229252044569228459861907679128825686336162233802646912367401568177356789323551972097500714329541292071395676996501231103015586618542456231531599530311777381154698303570113849489692669012326847062225085355725027368447770813230326065775385332538263518594686214394450264263913198436745316972524901529234448461533939219590767541683612232308049588588209104188559040090085149547103482779063446835920281859927379765032838302430992291568954110952234718078333983467923056801709626364136926871960185607819278269012025598407669593133390672429723394022216508985905717021656233486802459173550199056550396167562954557688346198150613722318108013950694466793579027550504205595181718434231450689884485957185778140615270017208552405908024962724674551334673115027304683370712278259275411696323870094759681069872936540567877894276319195904834833280440052858149488600490592838179595506438433379861610184208877633955594719429235458472575073674352827608816352668751456278964844140383598979210170259208300736652141599923598760319529325403800120127437450057916887804605547791239018984021014058195858644330656821307232406311946363067385415208785066284784663553823106732545118406188295992867584467580663761181608253474838938923063579536111411322816046239894851226612363320282205547295400243614286305854293301090901559354154304726283978987638766754082098427276020072739830853330009564181285087454976884877762826893296049736102599774886613130580847633149209450601591258101016052911699614718938270103917474651398800562200776644311148278941294151676917865785815328866727033741921719282081157875131580120504864677294336728230066640297532347590354878077227588265249408195154599191676617209041917649081307000699716499614913314059476346361509286822513861957491113980828306976431848520510017286611989003622363547977717003205285865414212782519148633641874978482090869410776828705910090256539753800905257082420340064480809179782207950865784872174547428290745910108416827466902553632607366074576527957515832288436903187366564736023270053900363318539466978634686798529920391287550996151580877076324071666401548176347259199232184867533159058377292951505738777755895426445679810906568285324305950730266046446352513835320407588536098335316817335615791664408760783210399640109591493845740288208189884919072775634675956842707490161847858681046840779788618742344853564800887010335114425860042305458630697623726549759683904931576268363892532754323978039825967514836989310072913952411691260405607630439837434590953570683098213664686056264718562790967432990801558230696621318988686820094837681638170917219630852892987935221537308024252697938004970625009322531360257029212984327551541047911440646036028752294492337163876503892384796923260878568654679751612317512038251914244722515571007337203804208359951568661405827668994815337210252023445745692496122990874051324635576941811018978578541853524027756856126278856026672732868182235852567790536370873252062316251184985146364031313609150921143690700318569966231989298598284976889028970994697912095956555274112289152860251926897041513938367631968557132239141521493345523700416885625099234459521644056903218190067241065092939459708645709137496857724062801941883693411737895252609709748270175063811363767104339584320996133004897483831676174028852054342178627650498297304724883854176750410136981108196554670458958837971429418062930716161441250840455407055738144825713743664771679806617410823568096247812472661953871876241301924092744403848281159688279957620094908656983778996516959854106524451328057015218902049326498922766138942424269730413366501878633918842843628380300531359299436962521935553430938540108575643689595079474021634952421430221592329955844362901063206352985865720385009916549126046444014548700098927149400440869744307475308467479104532218129654187877714929839587779414384956742309237037664020863725823539399979494651672563800502643370357839800328104259511155581294009518352434601662001613894108564738401705007190172995062277709216815163115417361738793449156919023955571643716709436932467548525275993988252944933737181122822071727078307633747902244298933006745122673915261288027432931877608783698209935145769287880172024314699354155762371412397042328796145261656557797470931892015420640912970197643383394613291955267806913483734868045724555249921140068993065909675445844784875471648058512850373824275852852676616425294047873111790642467955976182037402667074111672288282768307925267289884420823721970213617737425613409330987634191365762277222548507939772981013839066697480524083367970655484064044535039710145106187151591427746654652143672961569537622571055035536690176377342346838848040470489415242299623437282904036071829989600690962017097049914773901491298916390385332366530768592880271674846655054843852542160631831019471018392268981162821420435317505891623286355684537833489067106292333614442827173025704912870200489079961342097531510735051497264431220627261047244907633008620500522403638891091651749407564437932775411389255493287255743773567930484056491975214443884203761272485022719093192368632587985697040355469037075631264601710572946150646321801434826962303361974288252726197646544384790126176319797281435369154876450263634918994848876242474043471657347992962033112556014211015649656325368501603869698927936651653844629508564972612311821086948575946850497366581875523247211699448803003238459130144765625960778102488556724590286757182194519115496357019891144896524614537457012073593159401235356630548781458141604588573397452945784848377754187899183221110412889295482805233379332218906008875127741338404415384911393250223569950025396047419365974315345610717115442372801923925578291690112306572235162437670792771393277289369620389892815055247707178002217656332867286499745416514460027897562524670786076083211654974424583110801652495690223856543047005972431425525298513310035581281117800698176433607104935954398448930654587955468502940739183119105291718991281702673450112698151238100629709407175315040410560032361341255530714818666859215893587819006785411325981663895544481477908168079939235803930667689482655057702877697878245870409151926907862674315486934160793626461484360706980680556999867048478700069200902521884092592230683797098863661454874239898694849257596635904775249236522407301244552987148399825286680427191303477695061088716978773299892743639083153569648988376894707218325233619492202121025380947394804904434284945266667682412458819787906150917332630266214272284835684546371623456977135184880176604104146698482335759800639130229657736184859485610053169095499015309200425110773176288514839607297863038219771553655237198708116127238544193149176188812754441953456131467127434223823583165043960163479024284725738939114988096849841558667036796896247264285374374568548215139645525796624086330893521042362832669074712634754339784838175700818599730562582240079307728943406341385729013822611807927084892029331102826826708628761772368733581073507349228398573571453235533841517711750899077523849652645856177081211531180374409865876613047768182417150882155654346102846838121566248288643357236272748612728470152704289204206827940385129501979458830511384184220119850040401798805591320800049014812963870161299311586040900445985770548025094170872783605843368011702576636487356889901647094247832910263590234877626941762906461275945223056353324339965528068785045403120446222755724711415538012533373097782233917211088595771214433915780420312621350451430775872783716103365454265717240702827188163268128835141267934319688070025781748328154469939959158208705128367728514776139614760773100420864781607637745403385991311496716827310031248813286344354512105665878944234412125356888479774087837433296577505327792067525249151185424432386101150984406604663437421089366210727217379299723030590459011213680267251963523026816339715187708609861209613557540831739387548116311048408368948682746451843587117447526134959703190386557829307461750863668958308661193226921843354830149216285565797427054119360051747917273251041267579846692405097678407133810398883258671948772264132296079630171512695755682732276987961721387176886891666610153444991579110119930124048801286573057088411084961574461915412480437363762866515029201984714061887477959376208323736869858683460636666130336355925176330064870822380072284751741293590747652497229277502795377056405906151413075026677727014481831223676171932687280725253403095444904008762194790630903666576074423965014918522950177897925108298698768596837765505265184991282018624788653697722690722550865952775052199235769043718881136597750066187459264344269336825368128371592391010526280166043028737290801787278829970843938302349881221655285333665724217819848073905890538374208140669259597606626113427397115950487199369096411256510975296172953102413143250123982963434325392965640914348405343005606301685808556890600417133573477945175876031468347447584338686327068179422763922952883385169086342019011999564272810433277846134886322433087947258750705809168758663532725734611616068290395233219444517710647840997524412293762518994019399738487157610341011977391355533389712844560694335529740679981479155496541443567448395045405235972377664598746908308608969501227618368506570913131261298790172937287137801193656992270470344544516031047123988631213377993497261376154494466464761526557690350234772824589836323516679616020101454324326325090396017726048746183008298300306024591615040248640780027347681977050122148978562137320297825324414123413324441409528623745770552976361379078286136100600470605689161481328724018229398615056920352319007580816858490282336233339076743870709691390316219384730195937604942438476173135105170931357357316431132282063278586968186141228948405324468590047915860441884556266659408800045419166728291697459035849061889174846236309297224800712488644348026067003471316535122288069721643952725629657931473083533443056498083243729373337012759876159002364993314802389066505903074441255176063438120336832750315811401352443479101019821560281398815030976260415953651992678782116838474498878684687171646903528517754968172707977326922036659484345141967796499021318239450284597981087259157583575957123076592725500816616720016652452039068129027173534624231896655231526739244011248528268047841522997752051652829935174458514384999162391098466224676773733487273194553742080155412548096327865379915581311351373269247553780981049355703901215393474685952254017796350457860894556409735501823508159753585486496719206264455143298096490682162548033202097699441606743757468403282671241995799533505778893455088408857552559446840496995015025456782667196320824376827986740679205712588342186046273622552597288304439147027802914944679068725849403878691277236024270295476520724609679067399124497844527842084815536310716329934547594989287014380083194500976358898344679382065842819219308003634851149474001469240079179831352461012604551091541010107542754723148191635222378767762183674125454066306527334624092355267356271598530688461914492421736650920981864264824627235501053641378824645893479292130088229435302287992928186435202070007893200487365504135346934676474367251139343365977412034256958762149850148803210425692426322177172190411877634758001848686181602546105755153850822436322521072798881375136093126195712485077831876177061306649437376407073812847928135850945376380405285347605747631424626629834422670795622251118490156533139349599116340198042199550626077238278159927873507672785410255267727185583194714988841306852475714429494270907229396693679665391312142007013577228618079403174174861495809611739401594110590766786506375940896789391452067011866564536794494717162432968505395820073232583392871636675908413092994226625729694775677845946016453371739771445117854915638145986142773020195317655495581586786767254226722836654590947598138496268376806068029814486930776106167284499847984118426205477465299445595865550547741380194675989365301491095262234695797294033394164691189095129613959146507141064581901739575317187456902530545969347816228805938836516129871622971531540206957788965759674228418346387687322413698242021754597910354724666031153383457058455792139499676367560077080448079279281326374730864678754292107261012016018331450101139772337815962514869859280872140444476990731369471860311647291155114898746975993839692703975956409639959461633957655523587949333308374028306474864685371856467904714635174082502137341070764703749529512102541661836148529124639051603929141501912485567110116172364478743699673396007181978735107770782372166481601139893992486332964645984060581967458044829100587917133971520717736733384585293010658187177368208175802712506039145707928773509174626987917129045520826901216366640666918569461825148918604425588913922848335860393202391820498953927327551689559331230756897281707797969677011606160552673003624415007084462182579421849756565624877946338946916635689938649694592157173511115102095282866630370960187752237880000449472486691873789745927900245672190123551868603475015383098104547013772899440868416692053536481125995500787720211594494383506788879003363581950885572517633145872622902315097733042345182777638873497894333214207108720181824288259052850689027335791566393546929038741237911123849164256467064204596826456185441521680231159270426001442400115805386760337525411071128765983018572283357702862717256448647430478697296152417216009284048651410867618416660326626552108679620758309580645792474944508191398981571472872583570529509496765645524019413000022463409279787836176447712093102133610751464260759934504779493990589402219486737416960786067269196103167489235105144424352270211404680107863512762445279541719237215910686072654782703369146091155069384212755094279856092719427180262523585575557279657403739042278865194697911437227120350457443102914081827515326646656832351796727005407034958971592073113650869625137743898232638833978194612316069032422996049348159872638774200771723349254524422980926550926453864624971875113452183978354579298210180100756401027624302612093179134050419758027313416071623165133531051143011174128247047026595478770820396327095236959497627911763873062373426314421448572827041362660511153609392931762666011633744691071078106765563404522533658713890277731646215935558147743162996908337065525998462618154739923296567306448024669670182645823201984651347612530880134066880397030429302343141649508459703948126871305415484732403022561047609179364723197040920436221629427198088832201709924786444852237623374015856585891714591379834880698599888769856342678151590322811417779113661060087359769683673101609595053086843864087756895112377885190411703060939346735692698262878341839094967201886425045971185341189765158941858547955139057954408039455915932817675909832841272206753422603406140492129608159967009916134651558124712623711190740121142041177841507889109412038740318306743516375202334199829473695636973026593115611092482634859713697977171879822169347707972471327071868135821610713827576470636517365519675078379015571852615344381930490727121007981015376293608210488123790091330654084597143973855073169984984324306457010836274686418870850959018195049029876746763544238758166028137133573022787595761780262452056902990798722029066799926696224622963232015518577655149176601028797120153288019066056392594808048951607788320703055193242026150794014345118365490515130074853780569908018558267006815576739969926064868195232596638119287303449226788721951090527234714807315507535306574843210138408588152296459960628183025604559467527634633340824245809571178223988546997057589693558355010839770416066941556181404911720401337979636875360475408600301517883433294505990096769268888502959515645179212703201575230162718298114157982587593331297151567268986212604252565548431710212481493430458637256681743127168225760862118975969634483614838400678815808420716935286668326831014366705357843849301334595375615323994217111980233528828082755502231778560097421245156666493015428208357543263156010427009644678863056422927982577271547702666181094277917570453757540022895716941199224011259432269481309915138135686168903755500422246523686898315080736078677303856040547713268013783369028029703122422679505871100976857269915788489540894807936124783836334475157328831782002014110000662303813470497095768834461185820344970943141541974167868149784904970061098152604736491073025806588224695352041265259384370210980722319711657659543402006938283380069192043459019699426584671280106764740476885858112362446511664184946313439782891493829282955203948769374373340655834878108307338045096535345696588997342543523085317573790678323961821929031168240531906048591813075087490787331033107071012595006884498762773627155413816277055299187539608058329635847163430102885833579464947179126245174072734042861271281383425024188832815665125582406826727714525811486047548766521243777897846261786820821921921263491594585431143622603141412885299266060434536604995447681002734448394717808044217443781461059344004770696330315458444149082590020354059588244384689666649107514838907105668978181941560061278964947337713133153074315228665006112012233717657951440258648683105539160936692111718519168749650203683661378525696557550077074916054632531933159950630060254886033131640047580460215087409318743981031517853131195232519207140438101943782765314035492075641868041515581622478194864499794409729555190467084426012620745955275282254188227314505385205229621749173805442794695381233135594694230257552403907699297791862506705338726237948600867226312317857010349235117210657420670228396934832278732117738920609856620707477154655173664597193047963068676056785290096615228348237064871096610400308177210410591858934708196832141602770821376225042519448321734700864505488249850013868645671881297831801026759247482743039257044284341550913984512626139674307723981390560886474757883738293794378078257857472968405445729582560398756378174936715781509759917815558886973485746740715914170733607234091449479100363613452157161720554790509648613991398872641154248157040089050704185547317241523242663909897794989536358545240851413204644057986935273772285672428307857283411376643577494469767366518214808749471035603027478831107903657729509254389549468725020899873476273360680167329915104663864505345417776313940253611401357081651113630931421466869970338489000048546298525820379964725942353645074064952084397584490742080400819020029327530853043140537724154449864058666758760022275649374998841668068075223603239713772407503977008943975796890973359899910001752649942113599769195921684045887269022234307838311252361812562896275087161893910393918463401819331149680057129865137170713384571958921273287717771922392824152458652569462124274513125153706436299058685039333913760917264690016669115428495494825284776211199167182642100692618248168612733298756107991021468174685861056022417617130597909766057178144080608714350510890698734885359991500908455749622474124679647939782574968726246322193470497555412766002412265184019925411786469823800782909380159125092359673458535456546019739387295784704539674295708130953656304512157688983978589921444052832587540975453555907655739925859959178164432945959542243136165602779711354397527147188033619182431715467479306029700663970265318488756173783916225059557111212404758885701915079642942224686877807094700009457117743367273664257435285146212183200030726410296616057444651707049610270797476779990839532981584374072706783608612907488378317592363326514655768438719498042567683966066615145276076646707875032560200429008942406332847286297154196774214458001235563887406975479901764154923980167652055749856130651206931426088108045246667359358731826346817021285869876846842100812052370478819401818833388985677779800653245375591583298261490014906505955343450697548270009170427632816288722820745431718160961344526207309375467112166219117934104140382340140039874168908106533541214877681480337391322797178640024435228336443431692734368531810123842942655311915607058355486837902875814145532337470411764070088380627427188319129882425598077535163226943253767480368081985614733602834149845845732635378655484045138772790065082269094123023907975383823689239070068455298278692102004768696615030230270922834558706313025900575248169150048333779407215228806118095040262614330228801950935877346942048694157254400824226887826039969788571726442249292255995094405777304161663062826738556864143566152314956702540094963385302614535600353882131926353641882816054818469141997346939323989421773572830985396105227093809666968701168023270388060734854786694273414774008786358168337675581008172858645567932794132205795485843948325805747537507621516723454027303221882724948305738315418544874555048527152182039735614270509372606586285602398553839609339266675018811179691196279642173866527524187499068877150200341849240739274189706626754538158520315850631352782243951462076315138693132512145413979389783459696606265614636258015043142038435155493881490421611910515853378319519813937573312957121371403381049790522533456406893156906026996310665139478368541530139532519181618275203061589896169173814204552728285382837764796928522289308496988479648892078389469736853827662730596470687868063504287430581818761568928549538493316112496191923455993285261683881700037795821783660883876024327799879439406395839604770493881440827339875119219923036111196918963473465230868123140952323956606570503168280872337415185152264055518994129847548390289055986886762060772080303692307843567721346719784808396922204262092071921393389488765261783646886439991244008807825508742085788346057032429403402382242817666063774796379070146302636854568338628820843584797961050972811766505807708469691300313246202887937912759544145022890214801559018809381918837745525950656429598744425708086951183462124921753261270836755378596763055547022913300557849508317893502716335315288906437162951994882152108153411179316166871308395826076482830145649874621602923930593428433214706584355904173726466666183755169102965198057578243014329603911138803636064754542220123322910682494837633397996750459017611382914300454209355117947485530698292523773398166213728681258895767030310062060489550869776301757200033018431254208025077418510065533518031983786696594283526206952012575744147997446615998464544243536718679348704432544295385513620857966748032349491678462887599289456030358655595005560579880431732338827862296190226210297389007128393767539792653054550101598188317333473541144718149798790726599060586750777335576827003541870189026468191920058477507726226633794037454499131422121848289638782147379419112293581814468514386704128811533197727373958792253154222327597771830518351978597351534922243738492487137499334606579541516594055532301614966870795078117768137963926087392002731806302659588565397946732874297724255973676982705624622459214358637241721104783310037382386729963489138379217261945865755654682921247517788331829397941869835513296266596066405428047046098732802347133616717252457220620906398235771465835529652925490917090276874253786996739006506950529181747798670116986992611875208652995937339614417575690073293332265855989562073812833958571612581677972869580268885026496858886281773478860613103852169649986851369322499439581421994064847399797448912385595952971183992610528210681469719489384290701637352226944541712953931412314722559949603639874774106894816112319482300493451070059099019270492004345401633835699493230844527415491312810944378765950298426933409385081150497843792115946728900048315499588954026015981203905949908316362753588025957576026890585770398157207607796354090646128483528790115551278265949409518358257183665082940690165497010895710240981563459113241139674151590529587924485300789368641352282630965936992386803903231822284455093465148341565894834526014356083114028647874568753127604266100412328863598131957973401465723171378957031886573653916713643305028229398270774511330246571120039072496064318306780213644329123606071092888949113224091422630087080954057353103758094169078516066860965540282177493385212990367232801501015279354022910583237514616893450335441027562800003394763896343372918047379575712915524648149027789545582131166618714514870272825983764724498160693171427429263127964329145263865908922167094336912139282707628389271697000146123187707386034184504570347717528208731444004378591215719973310655383281125779811964876926889272893365755202938611446442380067751964152539681607663790845044204646481354364869537539164454830242026613855941174009525546236815928867644310700473582214778257646004197768621814465020051861947991762199556454867405379321439935191031611535639397035878659757263378169999833180711148447876741613882299951713017558043830274983894988954482747567354554400964759960738793037095923763536111263758879186683924256877111590036158036983473645352442754239998635107960426611425694451163534067239323790675579981764228823623326517529057931314117422316677188794660615421117421867140891272505606913025951599306628409738609543740030891270837428291326466718884986472222152504397198737686353010180803542249751252345265050103176107076245677112459515337692843195844512557512782407615659948706857306714820923124156479778017865151080245487235982114259204073174590943464631880753368754331686863064928308731849375914242754340988149644537267096725246187530742326114947380305994404365337733244086885868809728414053461295097824513775476251610884608142776037800188537634087036189539712222750537846676826485719903014912680482762180712574757105806294996133204109565400829857006337850976541631816924536521623395911165214191522402059562238518000523923873797517904621345080221847748231376871115465301955997276384800460267707422068822642871405938109129561922233405740026385804092099143334202668109481985725352512682851147400761093051384565913688955333919666096142601717261534806054631152613125318567543547989066600111262769801685464655466735125701523193552659426951435435481780679522876100217714404735622776254358002042802973610593626974554627920830220724282262122265258076561443803092142613465595635649227467043531991609211022867433148520115688711817792061168976234150252885581855586736549786281815462922750790446781946448971381225800191139382034090706310176407211465402658575483885005733192623122864329971218312867553366926991413305587464128500085862636885283565710519586455733609533375652060419801883715815519585925084791868604234876267556479409005243654957034688823239465447307059187614397886236865184181263966672052325741051360463899098361551288544270733124231535405641394169584054060748928775997490728450291874812609369622771601780599043790159038073093420581165778023544433629001400424880387642895755421889875122823939101927876486948802339049960794943767659501333725444925795986993471002209646381071675599613244408583129095604047985224124838039200444045411186792107659317614966833784781439239417903167556334911121224684049279882678767021722819356762134859761721705276990402262846555714187248815594053109898435790267802332289033708697356962093452296744558260688979305056378638621783255083011805307751099024683662701839585265846605955747685833694756182145904090945694206428454109938989993199376838473590571070530555521951199380389554875178906020394451947876502677345767717006119773809718146000869221350067673902200722946791010624156347909411871894353909354595727513283964735912522503209832667562829442935563579354277680763131924045394722875940312152114242957941163487742225959824012486967846704785450387987621310508252662114946008586299815108064945237855470810950353708293110075835309450435306974980012852494532919930774078218159126660798917263616805609773440955625619134152647054721449107239360363661506466437181436416155662694713066743869196865265205364572743811592576007022111118228205219488453500136356191948386914668455514828436036982254449606128212824672020632198620817642746347048336991364287603902722760943829827679840740219621596751035820613737784799297506032010152679391019684369244201826586198819304959210031326373318655532506622335485359695820525958464296632276642685068460756020693524607563906162687236366073856517618358874762187295438240498609426910797842562894664752323525482245702855698963075437120335868737532026909360718674328843503799224383896726462345367979974320623049005301445055557616498508125418050103199789520494093714398519685434121215468537986922897525533332315522628488506447188400266660312009773601356079183465614543510793742013656617406038725711132308858409053888885664945774739515333923364794030443274813824190248746202669134324352389954493415726216195685919798652848611872245914556059604876831006465995175018100228865070583960975083643897302143349469610037663045887303433316813784271744735453401585364693842681564738780664605831142297747495124961962897346470443178294707685711844578995680136906369000056899514578338302746443360957293845884403349002244360753296635041189748967355651336607498516049490441218702872323274340338561976990765314525406916029835211458389104344124092496995847320306331550796045127284692378505845708510665537937160766518862505141986268322678315907134119364484542800190801038808472260432669554758301419813552405951725938701132827123647432186528995102754108353703766331993572608717070321711197499973237770429963099974054220018900094672856554067471367804011796308483993651703682780025758412669367859399781537920833026006421355149741781095086557743665698593435239640102583173901503237141731196507187951523850924125697164317564725420660898281741474653290795759699585132815623491827819970848784790111381101295952001707900440827369897831327760591318245127899689115680595114833430910026775637086047841759749507681212970915150643172851500306204141811045935042658317311783988676354672529693674849051260916562502642058799354656198532329521322003639622573687153863899047815458352764981806780357565318233192659299394912830670167665967888344745871482334787986783098037584663666107621076400171615145385874425340259539137569299548752912775449907898539935823520097359167865318707015518723362078566665391666334535812490821870700060813992716026960638887309810935542090696200633155131413628842592414122281509655684959861704742093071525055744765502808530800951686011652713550114011142487781675607659155106903015354300527546038481766016729883973886447226993948847580808719696150164580314279870403113706376616278091636224110710476694081092754405569113435050504110350024911559816101558402895898869649407984874209601510803434157064425944165899424043514362518539546353117029648136826088750553483014724234320467230846985417504617404884326279576145481286607435564255927301188069726881649738429980418232327722408756990703716879446833972477359220352761542001684524070732247006239782693581046809587561461910375954135456064913989186609660346839124661854798230603628677234311060274867395430310810099819295740774817976026460618855549284255995732989654483897162649762650957441865120463174107826618137646008914974071729263797621182203141197877641186389318289851390082372614762221338287946556663762047015203677007392488527722691244834908362400906207187431432302525013441989406462373690360326056005263510920232513585301089884532444471683284160751792658661701751191782606546692947389894205905293314303798706503030783807230904583687491303433888113258727493341404408999867860106488264966867143775315098663420566171003831058135575040512738001580849878210387676474985047465725414262755369474627407834732499954044292085279221096052210927076333985437984203837446654709172386427033559896500698231855939900721710466717983995704754615550372522981673471637629830309376807255640143965665180230264481803966197046510870228553323162403177873349530548172549055508498124070740703718510439027606345280489653173943921212701583768854892371995209465675388782511197451243717130777988623823374992194913283625641753193489011390981771066423687904169948764494586181169669737782464845631789554754682982612435551567965651045055812573600082606412872878887039361067517290621803079884761897459717679179148138964957450023045999252201016703788631941445111024023516761879108510822901085871897450680437534147153598556628082955182282773031170118772407956283825230997254290688746934441311724963323097804830144274794323668701585259470138425963508367030796260242365684701435953730288425145468403660665551557716838170936657934502850601848516823701003023489715338048855154893108707261512609310694217556743045914377277027096319120695604660100339923594994627388136813429825058268386216091543178782796825109203012447263144174001806458206432702371735684372713253807479084284715825476859037381509198000481685013012296751581407456345187262339223751818143938913537477373164344497877212327619998277624086611511117363920502613456827359216762820694113702273805978104092399960570652672392921080480567435898779733557176191131087497997062561952269038729314240071710648668357243825738409935688053924733061099212688829183864164153742303856203453498816087703893634191773925985357114004672394836622912885131371682340233851637053169528447050722965352095853027576640386240984248249847956519895301316454095016260523982643970063893619107714879445325894205678669192016969861928899518529555307075489655283208522820603130875637186065643965379740092293645858709107808349005410761588635983724279908918305258229131664404505622439493503123931048534798965886402214610188448418540717182668918631077209697492168641238460054431413214409986434530831504616090364898762614503092390492203002336728783258848061589132555397580263562734644073252161352434404625706645837447676946773762372435420030778728997281446265879012036071316203224289443731850985893570619975765936163436201865695121722196250236460671134902011851682341504233069291702228543647957439227636428797446722606771539587112585385328698317863386451437715975580819845520771275468227731546406051402647430336000805690104563663924733701308192498777300344278404429639737237739219916034232410893442700981366444621489201460779927738630431831672200691510825033413263283715738414106627326276672555380129195964705253133011297817975537155168732886565471915208341103654260903037634935998152125148948334707410263701362657115757139486440022894634492041175256582830404750353011605988301697355525782939688246046955922759836280675536933176360540053890680206544464506488668773774909115710476298295878745922144186438091816358193519714926258361981086180063931657873773425460342161831192442534327032564334832406112995813275903085091554697171107735493956451357021892145167157226281200285758117415296454452667358409198570426598999030814274650171690332058189882693688043014063280654808728259485138070673557355683717731027668380779826956405904437131590230378464217983946233699291100173604486934493164278479268050022455242970753537598796493198462157162356158983940826609969439691220544165233870647392032220325167551969619926924026154942419311906674053863759483042820928989807138190407165930618462470867813935426684899918497244128254314313798022782620812777671944070483599667588343627716909845190273469770653435937331617925150665273557131859180236590622823042596659776428377498141711847311056995089207400395429534822518075282940252629811363088566894304050759966812073201517438733908365616761931384903095074529922548230822715362849564594452105072994116484927633509445086890744491937799531717590725192867117816717374532555195920583954466019124721234034006690530612036785763956331138672751313810658909882692692996621129937400898513192151939470779457052910209415997759802585971340572765102690156587690839916289476574536948733003711129794644302363438772455661384663240028549140326608627017680717975135666034964298646289038676230155775698178989705718811281862729254662305560080635265415709409054066104918616546795764646427286121352296894348663377336352567036098143424658983852851866404866509430956478931246409269962894880479445655473766572439688396393646920077150298118778047573715876345187697162667936019751888497978558993188028858445099581405150695342626253556592937308947121404879404040573743347306658216395418025009993448581100535173602822463228335474912664483734416721801316394036753563950937467267355664300214920165397214876116069367564534721788614883374574362321622554242827400870042677257197071930876802934112394593730041915091106790456459015820822321900525294098194227283139940409089640976767837807852190990295512661324607760819716452365240496093753101760770164861759820060727229760116555088048081830188964880793268613544866212709329927223485572114806398225720883678438314789272829854579844136165401898849370837784524638326693783763686788917024990881860683162466665799513975707165850420161886527911173929962860821757839826805235115335219361697256632957198467217760839713247097787778216327253339101185097182658322084121961338718428712939486963190637309871929927046822022413893778023568643078246901627833604669825300375953001511924622071351520424701990017685910616002321404739304403264713493788310904842684764861015110485691505127532986022486916494275366236490174005197635047393312621758231677144555549034661986178109709960496892334704307112018406314397588872031323264256908876579511260647108849108045948515913727100984398224504229043179712867621400367286621214269080652861437212752964331742011064089963283452412497136097870311173304161493171424250599242151336595937112839947447947965758922080145522002858719728781301344756912175018346681923784449829314116841625908501563104931651263161953199736540303078281465966766100754616719779289677020431276530398179855938611957653187566380871603893335171405616435050442121510165959894681798633622179448777075844307619050273036199650246009580734274955716367600460943556710295583074331960677255682727613220459041753305844064792390959734223491213288589822693789581327586291603703806301813045981684842913829329489125226718919791273179311966381293237843396065560439631385647136149789508528169467835208788727269889486720977264324228369148039460321524403467039088373804991449535234927059169206156603700713874949282905143157786445715347320785389407223457116472450142916014529454785358201510246008714987224734423894199448662573756798575447474426974873423133134871007555815690178119007718727067164467912628540899379879047906332478294841382521023650563355384601965114426471604104070912667928986077961239795209625071640657196027818801476927915704727067081237465155966149074436368405215022112749551914792325278983983999186920587663255807363999587840741860500220893022160088898144567276187359970839400337901658979949275385053413562561292384761316561599008213010359228721171604980389508775078007739382430617166277284611403891427840732359273568033034277556187423559778655610224519110675566338214669524441149619032616972066906795947499186900804992041693997634490978864571832927481419814793737156295499110619860821777869703983038937127915059699333587265457965517382810881965761198048604943734423308867525631201612797264866711259637689534700941327178063006593054352232633408508953530985340966437688896114114082845488058031247305577569298665798287748225499716305541344647176802446108862015613893818618814927057040520310795945511891489077389122228479176964388105629359811765622007362956221489350748226069869037563050361104874912514953939647317294902355348623074596583418111203464359993458070340638362807402858842999737254874873320551160820963169863138098030631739591444926101180633889552215588610470110869574726008007097485722883372749252646470640960148055136899019239921800323639397428818278345335001666329767754977286551440711972657101394713598946649248532185633565119155934289755779120382617137555412505535297167817282113723921334799943112949952353272577853488281741085062669732450012899048960949580453997775534703392991602248455200248437029864260547636928714841275522700632858438693275728141639671971747071048104882904631369273172833646640731245866376883435639482516913514234110705476333443276974884099011225416416433322877404600351065208049326668979640548496872546355074464507671826872987809883401591609721571325617526298180271224229443820831128208835970823383345428104343395823832739018329078954388331434622887846282096757910106194719426475099220343632401166332320560856149765633077520446298743329177260426973848309089815985838258063218074032688942354496580092680496026210705251817335972284297977794182653991811483998806463651174469322170746287084456549598960589404861970589166861429755601918437404606947889224404639907714888301523206623758971219034821729859914512665301441095304806321214567464871459172366058316099335317570036413316289447211250742583540476610108058700693364964024166532751901526446688169344055888847210996403490307406836925337789593200988143477390999739237216431063112657711531906052682664214258024054847601995280240395635987955287983015379004177857959665139233109104511426931867822239345206731630138165210114432820171610111761579316532015356933353365492639281476925345787098199119548232819963678499842601934047608496500535995252392173629328462691264719542017163921235199684560553730587557899839667868988409000346180799675298766450379612355846477040845367381858856713155107596361787106765700277223231484774448712989555145115206313273477165695608782692853762602390230620114733619544580641234330906848659783578141701813188597582115376148081269666520241323501781226771711548971058960239720971946904557679112963090297864076061387425530577509531868309016551578676340985907191952648721099564001846021281392121699954545439371121008619434839159439412533849675271087498606611359812626096907787347600844979218718524819852734196509226316578405664315538434300948149358642764717194263356826337584172509422001384467563484081849375874240331946523553880193469477484854694280246260292860416984504497646402442257891249224191912662180696614716747032390115143972363791988840078381997742975963338087278824755916869276197224028788133000300332420336671240868651904873070802501467526408983611302228700329216213843738626814765079162138872908345621340562366327538930098681900491585912472358586822515444470489977007004917983085405472895695902655098800024663784805514611810678234817462602615805568598263459998150813604421914452051565905427799985160418430976331137900948793629784808008785479464107440790236606755776866175015405255618221988137736705275566374125455486952701690774777149171252022723635126578725052742383168420665170362826241174445557540135304411843068285147908835726352787921270286886756666593966476464984521803645527534540566807924973486471290833790686193240859636651618421785518828521063006467583601112463080538138580840626642775514510525638829943554730220184465178804352568456200916258643628881847858791724711743417794713693312182861605645450363180542557644457768803367640918848610445998404404362269938509733994004717387128932664254101385313094873611776251270174291784359140352207850124824557941224267532109002228923335631567462753515079226504064679948905486913961240732164438324391439934103973393795090053176054487312272854575436888016323071422580684405840350602063100483416432732353088041624083125213656114202311259406949790580958170192833227756761606621033856870164104109675904333429726299112632269522336109611002477869911342233521917429473937965384807639149874956166956257347835789941908175124323415229459955796558521214681239106441724589633210590943454240977958068894770532427588348734971413748198849756546008698839582201835178529017177831912792943598880214971000675546194610899353992089927086782283551784641593762553638559108609756292559276269074069428325448936642216329103557703155557051747943345742886796021790264195081274481541120120410492999915448169134732830614835986350560318192447156276244921121669456048754946984966536922809019899174312865147486568874642766908775386557657495760958939753199389319322401032609794081251188876978815709869373989090094728785187895861141099885793598190397285310722704051669730438699872386858366620539871907658471549033104556703059410120305381623377252507885720294250788348844333653285812969852049589475575193924894619708752335982835992498433242718142972841287713355233388777828734494316749935024343558963584288359526744755880247120117395856425003053649526670745861117092520114376736383072819358348898558216630376234693493820627937968030791512772105256474819096940638368868291853399059558632144944592853047863666192092339581072654157453340861070387481209871124528530338324072377718488878497363987451310870415584170118664036418098467888423495555731750010541880939622183570261392817923242372412101139330775665418789253855637718790815013923530873268858917369490207528202270723294589641131491561982813268491392103145948742165377255678467000932888058887373899572784426032079453019110067333951595664396662296990931805638199091705625315509088968448338460316120694184427697557400614276812289595310018576886768605691443023896922034602922911774174790487106108454488384584790585091866762811899559312399815850329400307193063338579612058168124987866722846600859153930649200007217204140918498729358759659234313751778494238747707641880517903298172841180021051854989709028540694096725869669486531317397351506905771736125182025258845214077440216198706633769135330333448519085694134701307219748875749323494852522287629084460778329843722695593836689672945196761588660927717198388622288618696932089768795136907242759863683339906293694844092340774312057505703704545539463616985890939960514137642128099201706959440379030422536766476680421702597709256974764424401366004674824101149280135596644760909664704602948710708996983456455032707784005075280121270507616575275565317565407909725719694143266387884196847581771525578827639432961937892315455090088608308905575901483203229646112361832509828089028127495416413352042756385501520439114201279156406602479121679820975092622736168935717820653753193707964754420351524523626717717703745949034044582520031436296315197112000294132883401719004155775817906777781929795655945308724390121868183025829628766326360632790375178684254945564019382831270856077655590195699402040196715046999987523318295485524371351078580835071480182906825433414796833180989778542977431486165060906018298428321121483160553464352036548215601749877323219709491636246225471493578858853196556318392877633412113057473747909667177629325735049057027562708520042217200970452444910476170208425222300677113325196272245394826738321642314999901625551007389033827494510107245067741556876577707658611933091578838301573410996674454842786501272005795835698082454338158415760720525677236009416461412099241999880212526620199041024695661872852900926518189750229681689712284773687286296250070064637662903607314525227688265564451875423404634114141039312977384658535212833679031488675341507415307529522939309686834040912474409204037289993267964932318074119439926934622374026405025237152510043119312692408899636325393486894179116062868388864037421988580304785075068652798001938801593091223042969529666959094361508902914812665690828590550985062193390162476374509731955760334006822935902327686590603422120190544687894690461763406654219422103107575976524086380541768546780650858862175728696088862775524482358619536516481240990480075139817173811651012238877134134712281732595160401378546386950850608844618406059750352289579688571688730016704477076423313539689330301334215020309389186490223971534793314506434967210362033569421432912565710862296752730391207692074732848080605475659903821918230792629045316327631792313124488127964792243814325312734670382708733347126502545163655157157918838427559075476463211854751789262168097034185018041723053331314998331532414641726489713176098705908586563906289490929902434658471759302639123727035980516939744578655257083876462530561214450231913767600906401940219256806604047524942666335172076911104603607955669294572872034858370851489139816340403737257139910220936097611926206758060012795812765239999466038870166581529603872465011006254142930623647217168152754716099455071707736246185046182072533302446698227971180406283362330966217114089623162380303319507527290659185704063930933460452614492221643394431749088669708394644965165309288589563648658208409782960301645969867330467604050734916617067413624503315570636227888311710777040613274996112625800962124294156310124840485747936251023530683488389196138381319490538653246477327688195285928706847130046536523041171749536155589734798126937696464771614191928948686788845049583963012308901973413950312408764508169896284244124664945607596893920130534306610020278260854349520375470099896797143975709420169540797039989093767309699930612028049596946852909897501149807064550847222690881223056208962058895000651882434350997908238843979755073491948083796514942926573065946875583139427896305617765781685503047830754220213515683464510373834201284572706420678991139884759465875911670773053548618044949754188536236565307986754177408164285618062423655807871999264968788386118247928404136985516769467071517479229955421732151176576487531195237178499999484235274100835711844732663573333945442862828655847666532442034503384807052835797073371706194032837616372062141723878551456650621401720975788267877946541853702714649779422585060823661950434243917545800968856621998889171172078016825968940488062410665123594506131079031505885167133646973475852944343918838711110064903695698665131768923152500073066962237103250700616803325476984891954748925241900930613491342609140237735221175849860053037168868825528696042183736155325008480955834256172544138737832843679514941542810590982713011744051566943626658645363323494642838060367209509632110619955826335546248368295492644579064093582257616713670116011472076769633889530467047591938604871830832624290497326206976257635810365642676793706714569559215188963784808868111701885394938238847874608018457394344322620480568920971407609986669675515653878020240755524409811787108139916933458832066420273547914634917816242091455836028657577419863857064203449550133094326720231392018962111329128023442263887453324656653551999265202370761640558621583790581204308440797152522723212922423036183297699624974869779828713970948983540587005652790848453854926507401603671901258157902875088422448983943774928606979426052712873376356251343444774663458339359755734277990602347739280671875639147127446060761926489152888452804420310557527735285789305311598602611444066686298420088519143033595544046649934193172276092174494697398172071208465441207694548783150062791171292112704740189513680578565482213536511361655038871502615719194269079977493239239515533863123907353190928787489163317197324582365523387143911013368935204802603592228970460036856818806421120241769216784173986318966709807555079568362193134437725739623753998682783476652286409219739232442313706436732718604650639614526704386532244027142148581399440988489060910492911381799969867940924178658276871126324596988668212436639123866021573718013389045194423541135465849065316255012706386012083102348587826505811872559445123966663754975030604890072861069507975800025661987830645892746131392897380110258479550634209426234856460870650537805050212296471094825156928454210423495487103776614629975575501981336364954830851243707391748383425046816256168235153885083603947763508353439593046896263616724257004279286495813060364855565157456234843374438376284083633844508869149229442406367564695687134192560937657524202856249784588458942664000716268605645164489382010217216865567328194612563020650878103338985424433317975251324560438842174638292461590861898327338066898892839788676273055875269209514869832760744347796451389275515478847152513753741673523625451980391209139161084534921277168895929161426375306607493674741712886189366234633822279446716888355162210768679264866787539346801354385041828396967282399950296667566650619650573776391438132941455167941010658407298503522762845338975444707141094165983845854070943026754800446875260377473015929020816168153647291114535972509623277563392064944528800165842822943171260814351224185992151298289874205645713991054062134979827791883963536478396742692705511315595711928916659996109926118150135664320511576218552287414480559747932611079466809084901141621073663953180425045381724935477312693222198958238245881343945901028059539461494812321776297762542859140702362646052936274103834018186613613642443658700404579957285008939732610290919754490651604574678843219499967639193183497062685577193107252952122359472983033199790551779504984046828404622102972320471348142838884900827851129368684217968325749370954927674481310406799623328630591542871664835164659661621902277854359078155401248565203233693504521504364711314402510996572880535717691550432925010959979031973058766411237027098067942411150749236805732454592373150187531991865057630477009216249190932594676006597425395393535127458978151178192137907514258702692901635392493256293402193941246526414732457646561338179822065021832268036418656204074211508466347872268357511513747355097136768260267117734491048283760164350185073096669415507182674358724119080405505269342881721182547410804078081089358444147761318051195717606978160174003370619036447789885466708099949661226566916270727459488430645738812649955255144077509016022311199732896206500772529764016265717979756855956986575598781270854785639232858993288096398511245232027754380327313293325582296436205902317273297701728907684821585635472586473118375397074513785492973112406694370764730846639124489057120047287637134682663511330155763339255338607160231433628048187726758633281610576516956205448847839597016160385571967894119094093264545894556706595109884120593408354747390735588182174193341252880803088585083674120634248265276316404090443955716225771719456714333127698363235486472076844274022208098477668491982203153481764925403428755900433268787901968148776985197962926065583779194939062825815608115214841399766676976434300573073545550047267019299267462801357069568044458309641269812755699547298794544660246088590862810640510986175182821514127290227449200865011774266211105242089059330756149658321389861700418361175054900713418894174761838790147895212516098744182855132318698544619617024915668846029961517732043483869712478877705570439730343471203541801297617315951165305572555776492710386600289941120595442712653652465198574321705850833697986117503710756362762325300479872737287664690369100509837893800682938275660182942362710314592223686737669093504608086255976192932806547762588160436952143190816955107153257923035333616996741186869209392486865926887155084958084353031686918895036138809372067308609078601005743481228051138999920689439304791158342219036851921004627319343011111059743583417874105904737199468938362986429816866848161614117223907705195532653551365873423115921190672589217441671385550797357282641809357857172407571567303748618462602286002366275784726051057002057594646731217988913206827893823578866600310873933874486047188937920550996321187260577788021571324860639431474165589824125644548317767890203781672048210046107010339488745788424363534341354828177641966437394004857541816106437542390572996491179976095723780894339218640482950324332101452761339876982308734615320230814561854022663951227383376090802622952390606765814587655591423377988256715616368624006697871110230176037971550156893825917557647176163327124989919989865617084361152598669328770989431344985470462119587598016847014163777532425167360697745570527801840739089626489830729763567727522291153255396865123133510134704627810755229845140374639527844738673710182305619287689430196642550639199169593826944812480679759609875544775678705062598358653706675382931670860096120313835583177854484627155370761167663030512915202608723959600322453048263214925426354844459476361485814170825419637293492601104713740422322427064067992767959964430422675868792741702471177711751087401302258070172479080248838610400261441248741738681943128182488640866685354598613090315496594876475761410995426517771760285589163408843093060009473925606330835681460565470103032502388361334573396357692671007622669352523356645260966803854548070715765852415472335849078326845161787864560306349003598873043631749545084889464457616099694930255370179887281484919689686575482108731405864547362122836281136194079105500235782322405397221618254135709572007702493303082272312409712672063631635542604655345375646943277018614173459154528797517747949849126292956830814576066285804718072455972714980480153106355673951134984814167466017934102884692704770914275971003786706354061437990806899724576853528969101427404258876792521600156125832426263484874949533265112436960173052282524047876355673694322942283684503339789695680836535257897046627142023069985734316898537788620371570553704696530782080957288907405640866570166158486867017532515181342657749984482951412971291260466782412499931053590973477290221565716948062121045628625439657557686903984841873183857792034049780455863176779323300789294697600458397499872998217827975859654733487135133882800332018980852860777051099096748792100513897042313033415254841359634267658490486245910699914481019892752432286727393198910899632619180716768573412690453404495034948548222278667493477728912149859048325469650605330580306436705360166556791571376358374116132954858127471964315849079718006346771822349463840806415591975178333374550936163438404302515101540477734327517852987521501315571076154886012005907805314094193213984478214931425374503508030570165647272908167721404526430967194431463418622966176463122371288281007905429021328924003361603141550378666605629289437767037212723720097067768597350062064310635991392489607059537998874114325034916672016486787322443964082376637505834238582691739912683792993353700116731342262471998733010353785650397536194241218269548735944608500127009352959982274396484726227422241489195607976885248204687268269740045517257160421497645221849066120276595689953295808035876755132682246409656958116206299091613476131768697999422743726922068315616636534892184456839867486517550740931634470476889340604614688082341282945763528629983813937942909201129111348721775285385338825742841051858783123727940295644149805850304109322351440685074976425429884396252719078552913113665274566463831471735521470137460546175020468453749056416420280412218140401865871915700689814705162492210880101616997035944077276068643952395254200781137655465107906311918511805664225986227752459207669601582118350772685221871131869781603767680527656195489484775546906837860158085793625434931869441621175946022439319927964401027549998342589231686460663992798191446434002752408053087506334368148131175870096540287488757628133724793104268319254618126025820332470457185872560040233595090188458325231293906223446655581654820764609449131375005514776131444762656766119234326973770667896247687817733255506692917553902646300269539641290321942129478683357290776595278015935196806401228585987659720238309601834689549837399780539669640030043037777998078817145911479730414300224086402363428487176063292984009590121160759602780684614398062072996460313562645189658222262437653465743188414209354355313239630454660473281383838765592969041461128362955734926918102176119614504804799012921553540720724160747987943174134626721109205581004382085082205575856755475309107397437011962102165472936246424743129846845406834845690721439519442437189459092119577346124775601966446973817244561262176603206601290796160960726151723149863633267169923884329088076939175183853788150546891246517304098102228277374353436185326576581429239539431298367855007972812143144356092410478004303005522709013211210102209613592594602572322994886082499328339476585907849067226440652198076657145504040409442131334878499313868470540107247310612351501006879312393343336754373994183734284420353196805882824597820268118045295917079441532554132249218380530148578796956363433172749346445774725445139692125038099264459573718897617385139475332642460573740827432510580876495551589326020902303706682577297450519476995474784007516967002957861428853074545222909261277467095535189002668071204541063442863899174851621712534999108121407266643546236496020899542807627289686880622550750799096849965575794414663102368497892732571618403347797991508743726839640621803380737758959464548560904666796726663799888072335092446744277042975890841160292826603776777519577280315978588377308640336563998134585383771844051940962919833673047916611107349620904521997538439945238365021274878289864687283523944779591956989648596291094752571698879681852980485371891000586403649936276987688156435971799318885828809748285241749168847431922534537987605134657525595030855126358425773468210841636381601286274528493735206669012324955969372064036224340217549918461783932424221158112946461953573906374020919616709607650956883521697996326457879335694103672918027400051720297125884476843615073321923937045885823003963863028179003359309530045093176561988794972236384642371643733643169774588551148933245540016484282952349195607213100895515059975205014212358148018877474143119041373868917703965349442249405777443953050610444184803505730633087295912234319390951383313916930444533251224443197888026335730769839580316688002998962991534166723553154969911953461774091383150705255587687681904399538321164395050545749073670280997143294755916016587122821901192093095994831557018883159329538182823781834117981510230326103013759288290034150645053982700663148061458568520591910277827420906197397292278031139532539934483825143424902526478524243356688888455274017335026121965595770118175960779422255115085210715186221818010131102879279754834188931214907235130770032378768151045444371284753594583319478427741431208655672416071399877316783455981784133210436840122551285939362169623805660946798707369513842225563150336737347323614095878050996444938426154723746442695341752438402582808261580255167518822713977640311760764676830328981663072556997976175531205046023556556887537180068937157866226625077349042966366092196403157091690009960252684769480297589981587267275637401939620233294654591645742558809092696728136900046055445699248565366150204792053460020655059415767994451572599230755758975817106544778499306058446864162759129059538142280276876565519871542617442919766140305304002456952012657197315074788991198635669769152902445296135656832571041380068615571713834810062762389133215754228777808744944398914548633081522525731997287350945595297660239751048947443760395048043502331936728503372947714183293226268614904847230654740007329354018146527678895664040806500674509572379034964275771825201087447921736533536843537674075251720892644502670097998533015097660915553682414683346428682771211770957167411366609865364251991762171635298206340664391980208061974512690228111113108597909721260849927148935856859641003245617178941940410957386135565495696159113049075970533347640468674401971089053829767184445737714896009999433946787060114784882090812810758847391189586057218893085603133867525592894137249579551752019450100260570859574014400834051744369124723743828837774621409819029845178855080818011385749064062121045510252147175169855872360944210727768323178826453690431272853836230693180089853910244616869061487769987703911402985176787092643499184245284884504186883722683196626126029052856195387582680693494191783197770331774137584056686984693010347105448510840827930917115848723220827996512814857521932199789947019756281030839534472187181691889629287921690080266791402392263879557837967299321808972467292592574240592845903724020196827927066445109121062684542692102351699342375799519904929533492794640139869725203983184297047433728211302467575336149495229196186470132435590849255135909465280079557297918329313590370317418417377666629549924212511479308830544515338456771736542718939346617529146951786574681075135326417389369256315063106816240050424624000550037697323088023562573917388448789403818848499357531775787201216621470737464480292817390096318021936875180756805787506676846667149401370541502788631189060580467208803826693531092283969249907330831687561111763947744496925786416754355793558401919191250264061753743377814115019283779786462128191455828294240706178045812772997280920633030542931301594055872062508192356287065035583508944948487083296460174329283227400395068085816446758693922426854754111090935790994516153718623016400107925642410781384270685860960339276719475332466406431105665802584883712871491024038426636766895530358046799746506283065214917703018684863980957251273895924686090688910065918494721358352915095471573860459626606214115553119262088883538324988004406922420845863289913365365332136365598578905426702572490776088354491208485645428699967083570610313574505558069011854495290122954291174801557786785255694333756715204566852663394461923775930013725237401511908763073546719653183963606578749100094604730860175380708129989473428472339320379738657851573682559519869589598900903002441519576155995529357148356136369220341237631177914948584418419724956600697845900269452444568828534110953082281345464804204749276189119545040423997884807395927230289676113967502972064108231684735732975324560803342609365788131721044164724919281163394557018799053558698495816314887824998052234233589424293267089150920458855939013337381206523002798751080029987670340410719621221133926189866622988886930869102724140189097659949839289991702228622526965320407087532511997583228383257081528823115885113167006877947359001556009672411723699124303469967917670038899711542313911174548932757972298776915051166980121847724666936428554389163805324665661881363970582215972863748936487617825817184831219568128116193765916355225032579613803197445994367446512365958960505803744360725664204912731243729546814883279188967467266066228961749664188514890072613803318300370626983419642555026391646974589272794624244114198704058643395589991760854497783680512977788599678955634889987033658696168628702971230146366339246771915191200327980299816995949768375510737898388007524401572639526798835228945878743649970493302054999158634611571572603879198685278375428503009478840671715184698189137991872750575512324819700814852252812887413494542950905126126496747284674128400311180535303624878113966333046545931591545989589634556252566408956924209063494671035048310494005826222590780221127367626140551124098971822250679697100314331313562133712247614465590677873920362597816704557970916884692189647094130322028871782635701989807142270107184594501996631071138868055729116562563339214031026921632159851811463957854561215127079120862336616384784790402478707931508982139782405175950385865110015577962730692717590358257593706288240211075832468108809852204118554213376358916731058102281105537150608951512112129044178866219696073050299028412322228466016577894894275340801516921127685467123119367502694694869051553238586124877373727125244927795483015191804978423282857068930422664370134202204699067799404367279843864093825138640147833803684060574738879494099881259530080834570981112148072026621213589277829655772441934106614490439103077421744947186172184230868022853485476883300821322754478614404477454691965627741859654613346325000789331563959412713903461837367200509542207283472289236569923034864797295511324998893309671048909181633955256098035666645962127168928245381717646856096658377203951469928802261396737184637821505149566791253580398620974556650421137505932381722450540230276657283556807953560764395936990617944014275457080399641494156257638472863313225523564167957500439249430800412560600566104908307287707028699141369388610213270989265826331274204735117427789160393055968099720165589732529165437636970091985144977923363554849599070828954751040028124257673792937011111028952631833933632420244922670651856355131642646788117922936417331338347353334948460543098349678374961728410015490119329767603114500813383421492956920250602989913605650375794786190129993722601530520861023996704634907467461963287494845735676714207253813504583669330868013258061166853065736513258695988669019016145773830422332469705378927414078955446427645389033378601728126300698010739661127219740023451813735742251223143971593438954921546503375033335642915366827119721869833309564916734877336639070093345165233854000400607453577387141509719918632856993402327087175390124939968144888911860426280531154493304589717655369744731562479308979266088813669522899621768702540906816331902302742077199447186472454139234608785688595386849808320486794657206383551722990819589935603315554100765314887686849901621050965974082405311506955943432264523411123023137734113902972280899019080642183556867708619579463921007341612785505114062960760884070730936682741324909949557360689785205342615769558802815604919538054344965372228273141400756621640591107577720035370574876287999781584766342268357129615692558007916528774904525802498230942157236349887702552084112888516993636542455352524419410719634009908270784668440451154021990032412188130944803071897970457704286464410028174532166204431680668730645565448470405141074938922721100575833834830914322579364404895626587287134868794745431725856625827904792470854264493769056613508303611549493235398205500487357497879068493079062762972269203971259024654619546762088940992163382804069143172112288889698462591198120862851815739416857182676375448249604946190119020759290260654349838608874988619893816352058002431120279281942319676148668554430409735568885323445879253482771909235374823123041853775780510719852041179122335658126697664438972473676607340152132594817266058993098328585048815379809855086611419340078998496825268507718222658017145009495315925404827059734966090949458599105864099248312803576721979354883722731309092257208101762116730966830846540470048879427121238788822809467666719275313965559151259464597474217778588758221853371923185003977951375109622231802469580317531035273718164839453732598050634287969356235547133353872103112686031034865031647474577766262960412034828800657753261128139062040383813357630944249046507972407851897512794847827428397636939389662586458856543157118152821818451211994134485691953162718099513699584140531342951105097831582879129411539644000037190383507212641213066291483765842526375592668203729528792783988543358307824902355397348273141430950838756026218707820030177229582001128093447676623753942056963101658710614208813650247567334940570184043731881156008549836957344631733482123854899117902023532275125171279835900675785844607808234435004255328466055350201824015756131531278773531627926789939039773360782940968026283374339558975962226124503938013079656505268322866385183916548786186112797271609160457899919551632386965535125416210372976282100659071464128376740182309838451276895215259823838243209126921777271856681990353925524407213637860591071841151564011613166531436387084395753825124944219367022412220820031659645066558819016206697261905467782540934785436336381263714761351010882315105806143892785193254717852585819550167107026488470395580049815539399637338754442512321739226322583890718341131540072136757950912651540475771048334487287535442249990324374781920189901987520484070890988850751765212137508878248066282449703103411794076563766446274660434824550126695025135934043352461528337187234893926699026402313100108275767466615163145641202875563219262552749460334513252931373388409978797030603715166308391459413974644069659816912092740450661682430426479317105855334846003905553055758806036059899346509168439298119983398522787865144096899482464400001740701994458132927222916307984191166804406741723026785363204785562149966854176118010225799314589604595083752266209538999316380087224315040827493387903556810403364362872154193527255913276948518072782344744250807906567792994627941325524745835662551641206200299195418864322541016303639868939629522119960744826866418188309684669402867759326649951168819598390252331120122221165355920827801530960151265579241808881749406753138035061635943925347316612066037909133840495390750459506191424097637428229165345817162435556422712629329697915071383894955427899721075337369373223831569492264687056345721024737186031529014393738944960861545451224912960283119272092873785300140191651410062575457138143002222188319614783351847844130586972779776737995034507526892769400480712043266735259296206790910803132617059965389287801212713126498122679672971239426649341586040261241491622769338539796683344590797419402903608458646965077213224815920454130260647782474916867040496878985352009110717952490664606342722226375393654183618295350947627511337448824305961697874710868824080132749884625035597522631867895643152332802733384905584961165996967958287701012519180924001712415902252275788101005160921852269208842010377783641123572093979164377519899509282105519986790459239844520200606198861223141095017345003175007197553352035924309530847102722143257898329221823161406533955855278477092957469760978909414996325680972795199298833275986372353860453956676633200301814478731776179504738774284696734585960815601356303265579599755249837531994575317416451648636137947356667679253273269105575181384414319376453621169016384309392833210261098991121316739305683861431681266493890147086606665456299545592332942746975190045485976112429382739413314158625065049233814617502353786359372135762314244617504287076315103192193540915027850955421403654748050678649285986396213464847493875159970845839234100610185221397134157328986919455699571896562695982175137676825867110872500407546894339979032148168630874318942657930772745409026964414677117410704190850930753407414691068921223245014644721154848266749857685142277420851558692346150506404115006156613123468874956953798905210698412120296502984396921911760757784429030259000555956430976760567818707732052985888180335933920702416306768153750300388912203198752447056202996533370762034013735249609334822053016064510215722722355088311319925708864428654210968282066177746801275040033802669518932739931013109288025461462898319093019197512741691691146577764338724647479177324757018921577053467953514830046658624318077250528652044526718149594891886779633879589228003967182837407017490141212853422951855955016873254396626582137251744060228552846757683570201621668457278687887535512754575371324207249690245875191333202774373161195597533128878382546448648452097204143389890528801929490516647200666721893225381646550607685340858238266552897107233064965809379467570224440749438018013993232882480727616632733183233233751079897535801379811831831311460974740431580937464330982122720656066347033699217422594206611208717199568560440943537602168470206802176222174226372066352334858190600465847843493980805419715276230184827313953731673820997618250050469806646984652154470671707911282458316307877073410896487212678803929035457674690951366425130381541894716566765226375598411113145461823291945958796096404530344146057707578629079665278131939352079726784920420459643629367581361550891574571310576496930047007083747630721186314573364151791010661535993561713250108904778670501345735722142002342015184044239043279263314344515840782839828737229508912668005613706820481953521717183439286562563926535386413246927265325015388531293966401205039719083564771775428829584348801761931067768292489272195571817360418515257454712428630474054727272996995148717882202030403333978529625477884041017910724000712724721771612139120863012284606019001595781333934822332711875434445388368931663132710163570562228897733514577775520233131381851718987720606308652992812089832726622308452960006164543444016612530801296776290660244113807543197196104397590918998708199641260594758582650078425357849280302359924048375745324637804276600675473394182861336153979742496399968677162646200616229031173889207403477123111340440408294938456657393198841728813328884730663252247891396862753849166905851077918019041675194891864068771456350581351040921542364871582903710968142038721359498652067874937823374049147119590231925292363417675555814312480280872103221214194347552640321088369382147974361309676843435047025369116308549156994259257581980203635884084614228456812658061458873334580170400396155178269068987467179403553167305141349893489203008663623576626735703132899061167224624722750997105918907811518606706929967064189123801679336699588912255711855466791479746944690319765320628391830086715750505008236412654521560548195147595880132050403068839529079183644755979192397764140607986172993757954510243744163724301432911707754289717764069071698028932389453230181014484584886672974114795783813630739958349048401453085258156263279330871568700766110218053389535697896873644052849539306997000454306022480800121832972459038600454702522396879256745231867588147910654293091426869092363275332962005231379792621437134911845785050610132856379131939698495884271143276392696082841852996973905418128804858004569470780844528392773971582013354173549021198529681550510954684348828469652843342411566980544300144018155377398827663421977742899284649984185241725229094383073679859681370951852503826821624476066562042219974730921244510166762708170659261874157275279028894933388262576987220777509771172429619359111226018055165287689012537966378548748373691586745308281441799331385367219934104292093913546406639845202054907005760770302420547425021574509214658102125510192751960654850018237414583145328371305902934458246997029164598278474960446522242474812219690370629536972921055380034942754306511177186281036946486583039185221015374214871382125334291979812630755756391262973067864669081564859426210019982593498017528161183777857457383133932097142396666401065174284271934965418850712953380286997249529894501608252159248835232558989199615963701839369195011757962982740658737119530298517071370682608467911575953136642899523154441900027716380029800485676582989136748042621219605495446498963479693752017309630247013936592711784831209402762357862826340984390405619483469888709416784269616978141110670729045684930774428277576636281525101199171467907351225344631736570523641380383415241037304968560885196756695595035427433386970235516264848461977045000413456431353151127874660227247207529941838470454438623551245380711825605756728048697650278599556961885352088482863851695588480207908311230656275266513538472457556836265427983017556154357758392617445375393166501939334004656016956248413355585934291865180427669468207760626517108651323766034074003727865288285932899927988139127153221561971913560981682541355794282890967330927730063209107147840054504777254883012440161903314106986902936140061132841541585688780724328655333294372884168822807869333943604038220631495987525721149929788832686287927927428113761025222564019817810583881715430677647421038959504063878358291325236940916733649141340619434645968882747436489428954828288534973112045877146363557655209208629220021004314025800497164600137945563704273107290970453497171834419993007163580798729412614665931337447928567769334637835364568596354387872431643001649049336625908371035903230793402223797742449175820758007734012122151967977239437385458901313178546024987672614262142336767660376004274373878205323515135255484982605592090638095031606817446762392378441846843574639888115540105653217873035174475470603469834784556414339606388126711351414665216555179284935234529696695079360746252409639961946781845580957359523314139421206686929511721587397415029624572107833197640171420997815600082021787596529805759978612652010844678341577839427266702610462678639216945607014322545379848292431464289582926339527557879475134553914457237995972379689186977418577853994441752353141539229077955220212945748416374883711409741894050462802354496755818533127068451498055914914002446978432353104773554323921286949204157202079536471943522527612622670562876592632207467561870186643304934404198999248530878518071995864323741604144920178007989530774140403727540278749888912251947147663180348625545468209573876257738025989898977494074011167243356499814064587471002585241584741994492297567503656464788326176495699013102403379871422248029165805706438164070327512318540081328334175822973005917251195380543339867814675375158367814948990584869171417241285827505676639165457803572306846279599337541363012491545409896305202436855818577036870473185468701368277398899400630792182040179756301974969478519866383294062388970845587064935601111196535107484222672326821268178800418077500172270561493226741547550759753304232653839784481897856803210803391127847008408053901160043501529181699003148621569272908993997582304895510903627019521951482676211809323523017686569277240473591536757451966347731419955042386005136372475859360860001457682632932455488154629433603516910647943186314963716121206446949172869271636055706141311148715812920598486865632584927406257309550931812844633214338068237496845723669462355254917592247906409285625287381497375266962542901896993855269581375701935944321181510845776743363253704513037584599345836836445615772184423188008660283178207681813061157052306697525032325965146792598344918454250177341411149073686480444348900839239130532560957204984049036044743017574786651383006402061037412541011893438898639606374854249394424365549805967777990808342515105449695781662105461948327225977719673276347683431970974436616955689507001631939954937026531151534758659514963222165593833008043804805232161927671730109571067177711376649384249931546914346293915796573983693101688825880281519352087871332960905085779006793211810805676698698120953305253291780012361248750152561005783500138772819443025228832750088936642548274146795049087085945847011879011180153829618213714660164395641520561805426187099222835122237803081171391725321298986065365912526937818842116537472901973874605311185362745887715624329729707465643713891888014908280955570711058749580749206606835277368048202805087413716591781675313342913327781493062790309145177526411756657528163105456352422466323187740079284792542278312483042196128203684488408212810603384344851290385124391833460257579774003948825435543358412930368227400624278099407290020639519751428082055079208171205347963079772816984521860373233806385667611381264977712884820253385705739724007195975898209218586424519440497056400441213127214630252216702780946290668835500917446563390890266324142786476725952268363488288750366866202232332088141736386959587343683584781601853395917951295564141925917393452171092521480782493727333187316898309173337584760699615073142500745659837415518670608049341406537370839156511087559187583570514899382160313952491175447096175346826806841690577007642227782252698875209310844168568358431802095915508879730825655597358223702345140214115477865255333929956635915827460829515189216895635561509318535424988789539045551744057114268192510235775175948652199667071438213091807006469353185892534011222279125476156989851193001624859783120824694909471395141750667202163978168840821138779952162197334970872069883243538917355050642859011548251173197661535311638162389476353811510340765696585672790603910856861245578079753596666512911194051413372256844623478811517827745846541998794523151762250621407788758533936472348941658169789282406396693746740984588308394776112043645141353596833483498090510956485979075708577411525715567128434885726450472467359227372671060920240162138150222158367603876454143211390582605433359183511969826678410976107127396250964013556992705483772579439153026018504602858046835932180354296498289270842571234917059359430522798901729681412655612132904172851329414797848712062275336478765104157044781774131063290611221647580781201569669700705842933576261938164094143636131880246455591700272147076504509073519255855937325572633443931175557401264619877154194273618895816443174566008267218608986066383290452382408216622806682518114424491829108396390342349303467420373384762829394753848211981759136816975963875968618623729592242363243904390851659229200065234828213655277084500845162657020980172353420799836413161748078420918991127126077998463079158565434685513766561628543862732784061687273981934455868992684215014953895902702590513334047400953874025065477019657597946120580454620989151444226538265193184962615662509975967912713885864699979865048567484612779267828846916593721539367964437588864343180940349078802827939434216599036935528025962456626794884237003797980663186188490478617536596368151058343817868589295600284534755497899708066783807509101613550870480109017076561797415567080110247364298417622590963470843846635755761535614148928621083392783354295949765852924767320743329056690217080599827852291123310241274398320616812796126538451983274087414514942852058811034068754187514369116466644667973977343530053277297745461580742278555721345540696586743894048171070262804800457850457354578248959847060380675801064368500054035920857622288057794363448353159943015142766350407312284882513887533545657091162139143291158137217449824027625022584576217321507785222531612546608052468752758489770125999112696744849684317188327273006772362419044358304365625412825125410329464729542076070249689392664613978429758675645440468637971461003198529309290523261028269418363498599400514966464176981057368387156277179524347110448659615775112623440761442042167828679172460911367054282934846162515858073501275742257698773499368430642117950597064092266318100162601307478587214269505101546998939854911263983543659551323978287581227895981184095008725897579816377402154286377436102191093139513433835305034870650383243382804562071916662913508195120368122322617951619854248814642505317595931240382280999925276642306167687977361178431218644883441890426358529435291619627538293449128214637015200751084279265366700897398829988628923175286533361807033167468188715296176862078165727228325699122782516902820474367747395366737431863379888665276926615407999646089232796324899956469471744083615726490190406813517373918577386768811854306346940055576609176103953390243350636218082892950145631665640181500783415285280955339421660952015941431971726407182590781084758083533627724029120374000290973159794452571702533724228195566277168381981300639192709861880968237211912840155163257589883648689360109071011600969295269913985373665594606702548917722695845414773435375416274193206175591039386668808349001425425869531925421772330094228742950318773706819522150939763946091755117840428987576329915089333809186331463874796286722165190604227623107521539150144108443053695463084340673230350902129784781418474302523506893704797602316414062865843673232183596313718605070809757304212901772361303152130925486338997842049079931571082174842336192841227721168184128236688001955182482744359736266073367097021342837108355344715912578426295709103350830470384146269478565446353378920690549857360907900634577667050564921641482929967767986455661920564688447616078058617538714549775040777885052313893552310004665442801950000550959550223236769803092516290293571356240390680128259040531043823503171794127492835475156329619826773671095490169605112052177561312584966841836738692426407574064003810811106488481131530491974739351273650354961066556860274821469307829762667281487405296848326129930748608065318942314393726673771435218681848218994439791242623086508478086863118260571208321800822710053092202474552280731077068744753777964706612136898208241983296216856584128702210246575674365455607806226427394726692389604464773096515133362243260463598540416657570983451321906715096072190042788698315882377137482223162036215657696889764137879167359874903680461477266824331852805001757647854482963649885659918747423342327883932225947948954384004812941507578663177636633733369387132266052653214479546411014245438318197661079323123029278396592790919636996609812000154395986719081548290867169909129987972264615720581295167957824277317206644699989335975421645515819898789069143750683835848161259445756310863547240322697674930881590715889538354280490249781975842517838747478283754252921806239125826323534080649589073442297571296966213513033847430643441509783239598603127366010828971929678872350946102338582756298724517757028946252605593582918945006260192417298905277007495359188286757368836829011445659692124494614931252026795054731147714792715079189827069156705394353298065547533544635408693460256636776726306774751064697264871984227548734878508725668513490806147279800465978014785055121577949570295643902542943354320538443930255825403146990373315887879326323524967507139069079324133075738770389619174767630681691375772978179504406314383504083800008838670779279381371790865004556344522208347565372348752041250979580682621246095873476457752945409873468107318571498966720898359849332586848996994202431041056686144643179500850194010162006029339971567537731126920390445602045111485767064876226348589869668792930409687695425642831157871573446012147203220947736979908072098573085075288897089632556917940398512801200516913682537558800339148937678153214936547602660694559492342252148219803774256551877246053659934977099056046676493518054485225087417035667178146547942208265557929289783906560021494651154553951008228288782053429989307627504913887676255860290748792304258805546678363709812598854060280574343250931196213937279398835123783215885108007089828816340187880388486078507073966677304338846742269376939770320623265804064135082065109711519592799422167127419580532615919647440304517680957284416737008396749031342865642221153292654226367763099948323643792772177118963058573552125321623701008934211359849884453324703360794668579091570061817539628719048695766237657235998351692973917794197925415876714572281526039599877285606981435807725571963415008088574360171824132056965143942678086077932281797460917645836611756753759725707999988688579321633098619269304270375130055864906929552405580714770106410137811341719410077186953484109873059317865467227823081168697602375361817705546306898541242429418992071742800257732314623853686336015175788442489921920758202322966817161588663425161148291674568342418618213478168073944404918448476404978926843270559719882312741286474773729266802384618572196609743340026051535101703926662797345375943742353961945205225286129577514761008266427827475608347626256717733060563100083794925326070064217609047755358530004108403243181091451262315731663245941961363838531086038688623342943233618311246889413639813949909456771917490759127421341870008315851941957306692569542443990870556253404983612175059026103439327469660647899044769704573133355443394577091796200558937704003627874090920163881036694380914385071931418231872904221585498029607542182452866447084023780229099584009306747323094488633516355692462226397123611769911290185689609020386526909516598648659520952833255549767020187061936824196237288045055555027738074474340770967856785657021475621586734938669969680438522386564620724624474023285501377570255555702933859267619135830051431593074078263444347243875510370219117836094821157892018108790451781315043450928032056553720937381160227712074231180460920571898952840706850262360799382034311588161084524296171073645693842904706938627235744485372622784287558518814265479159977900049858057396526500294308698866038401727599342201123930735112666859440955117382169938426897649057867050138388518703786804721112240875726546630174549651518190374168835562615415199174406112132563044895311472073046066639617474333250133939861897629107613968438343781723908270260607278351410695640333099613911251824411721012336907668601408954306984405172404173402240772431193494845270193445075895539577760253592080867515492909135603465272786549053726295703305972185548866422764749752360974285570979474836354454480611543108568380134774711900304497249100931104371307901353843416304717001858641019738863800934477445630039753021453900239574499908032013447351202081590410721334557672826796307874811263963031847773984386550538043085283723556445265446279173981805025218934672894042924352294535539028682413290325427483003396189880321444417685728732389225879477395091284530344401218925084630412113193361010499238142981410126035029194611175134087192937180954126475983670029109348588269164027463259714065231939174429585063222948739910938054963477183305822067731282759668233088887906721793682599845756001638806888618796492448242840851631121221699689749841194762875607418162503625408963110832799450809721934810620353433796092656220753475912642832696034390778400434211371811626948140614845388548134100603765608634997206914216311956225396659264454943122020862355702448414310014377977247407928208891329090528273610919105123333280005037198663496480755036409731202560550171554205978080713448395275331932106969289168079230076343118316597991838077876421016004302838221746873100637256472430750846410998958245240130881156244351312934684469985796127988322410683499302488305715570140019244607724166679599321699832076246631914058112346155996865143741866297484469368838134998330826984477846301294018683593841099290146251002129623361110601649966379944032093336434111030151570533644668571054593991682390962376410216707170839485469195632874142923118232649950557365236404502629590450841223346462312996158173845694630076701542583678509230856250471908808261514228797118345032661012384472142610307075290324919932215572899656505920438496997301757840559335387999876635963244280012723054939238629265121600529941522214830086925679058792988010720711839487190488586564805292061937675574614432407697211919150053222646446866516125092034753902897736027047727668919314112945509840967870313152736696597521691544451159910527978698430737272949224477546895480103949660328575419948778241021492682019202980090860388099300612473551821839038126917765993979459073633878907568383792515462937119995732132385481772291050812941051587983081829604799516313127026190627275100986786000123492398755519655953842768674818893425502173575404555172544428389200940757271484255648972609862762432269244292183057114277148866583109726416103580721541972719839670464868359293666805964987982584840694546923260442233632471855824531024900810519880869277034823114064352073196699956090949809003952890714324415527811802227105231206126974963926577769674870161639707697133723456569865603901804635940054177281046726608532861424422156265080360502472056188777058010267208491502757902630200024792326666707054763589022272321366051083675957975017159505131158269174729045515567762183253582722387644882002849894498391657722304942582529248971044501485951751244549901728175057267041435645597237608036487851705978093675109969138889536084870943322340134754759565653070384148592449653629316342585062108955842969105685663714745052285460741374678976603230541172799952607244709918029071725998261548918278452616499219193231967900807657995506468028059671729597195915615752765009976292557026700275919110341831403114247477367689572369721064546422130790023044236323518055441591650116260247819865446239668362569378823731777468752315634760766497066239201491638145056934090099566140707292614321749229677799703990452543696604816425876699276460063417024571169600124429079478329180547143849126153642879997462143493106125289126193318452734166469174159330177091983907246626925000281330132337196772507701907124517787098990236373711264702436831942490636526591926669972593343942355665191038048920792215446187483611571730247731066593322897554717277239793606745283600915543593226464558775844648100812469630551233530134901652657880308849371503662292973009269011213500739896938016746675416598857784180896919839316659625464537367248962916168585981259569697502322856020692778739481203123065625845713361078474239824577430257361364749095981327202690044948641141255398656149906580289964687868063016147051254971359426576017919832671429048095499439601840307342710915773881462397709897690890421045775384893152632001180481280436003029963712433242769302218055080773694776709251552322113966208642307832234256634995894213230624808383226612108576624152217561370715543609304333079527364752127824452275180463673896372161485398729146005509555151096702049609135361610334399396540161273344788867171258635245442352148113923744932957694420865185969860506357291013190091213865120231249504692020889937136915646116633390786150842183615207992813832431566853525527372093012034340639293114761042543676641350067812172441761828032052830700447948991801034649902903804373898098421760448648551089207893624297182062765094024528116551811645136749513709204337912870338226925513117901910898121664389213487367519634589290750708685903113958665529081581846207926000878608075787639208330099317324820311579454457959769464712723851869922531043066063122614171127280107401211655899390332614155098177677607196021689919263525149411527603532336888756509077144916536320161186847021210033449573648745743147567443010918747812498018985691639211390120683565550489213935838275266603159957461462726703838621088319679478661382444698369138485755683821004307226580354453656000280889159111273737399194350550275509889540161141112194540510071879509747414517522247437205073661067221457425226630793359571676455266358170718759611668170490219953533897629054749422591666805465263225061382855542641988824740890512832699354432791070842509819132342753891349151642722366956714932653490781706407182566448134853241569705922497704728393451399621424245321526915245302024285017011144096088722421158189833579779621667955363473459787022989699965197051113524475345565209578127351597223951090657719494319782743917723901226749910151997010897806413846745045004191940643112721901380162546435204335817089733038817797944542668529537776245599061510863855870234886580106118708366812148998220884412192296591634504266283624474244654731127866832345614545170850467909177039682639120505360100831309018511511228815522388585582657245569945864112427242821928141758696493592849509296312207895581778926793450180058525148209662258068755054855021372369959785613948855674182457357714479919159040867250684097999955388887508121486518206324240894920380200091913433703849040012106274378683724130020719383014410845728794667081690302282444906959162748552015104797915166988726163541804390494145197699039149319220987233632943968963368067312834192383793885142348371623614036385478640840032379647855419707606029217924434560619396685415337602957949041119883385255407267983876151680661174051052204559836966670037288092324994866913310005726742597618015875098465584947005453716997486852508467361710425105695844675650595724292774099996550023467732393848618962718423422317295179233298612771211096392577909904955596467208156590283619438331532027072859732662480545600222289457902231361898166766245951013556646762751712124362036256170381736087332835024687021535162773345130249467539452607833220565481675401908083393646564031917682550777212465629660047492115283904130658057666520610393295992943693364477861068496917559084033938564809659432214935391223413893949870429845408916747063016103937096212951368464974309679286817146201710228561210977704560263079708327879183233708563764698633116233783069233753317052405352108089239910410051917405043786112652532285212089241500659226091925954685833853568546346448564176130835018164992965201005653146654912686509487198943367531308928399877555559447894845417006898968548037996903767476317671753504984613176999966703347884912814194422620733878811674789689890943069103830439884396252109540324674179758437755953952915921851643978534619185351302155839588095634188877227701825850216393287185163252448974568868147116086273716070999240976533702656364674784362802948324124294760373294031065968983719860488657963268182765111117712412630832086192483996046351158912289385213642568742919543605840216178258207326087792390043086305322348340376407861313350247836913310889532109120527060312063052927276541184314768009336466810323069740396882902945994449163943816435231445693745080562593466183437703206202705615352832972404818635909573456552430606055547384629198864723030338647347569496431226340319739976112899177812039302948945058557815120118642272154602204978784975299167682717696613202435312524003812271119336836827696327326503026976168312812207646351568551635893969667013058263047396359405518958158193736844571809107407458310887262060032991966378194408191367711663868109414143821102738883090672738413258619431920670231020002442083277523763246657137375059460230230685912796569128750639097215169627572515293786609188112278977678535937687413998590176395819437996064788812981236048241941029616962870780452586215900081216710362112669454612296674354695167339008217668013690505666866529080887173601923556884721750214062173811036682369194765511969327450587684197930632361624623545811548127349009754648398696076641196863709454925246097240274925160935894644701221091336235851679923087610648189149479927005082708092945096099179182853117660184776456098107974975235399717403678861511170661178620959631989270767549921303551485343029368384905969721522988478051712896967203996554391908856238040470648631825479335861576548833780626736377588058049120252138338691115925240943773119249760838295733744310714037382219294751192938833410458085258337144766709947275803992290276992208881654697899584394979733341410672261959346605945404616155516455298136877110624020519149023015611364144175297862332653655358587952734285907681998167888511506467584050271144662980691440737124664349087463731691081009916375593588406016292877226495631379863198095318571043675699975727615350259381803693126341606103957879809357585376834876998894307337352963292003786116685723795720075135176699966871991835996831780877305103268411060688077141895246519161953521749879956591240346256789713077599517049199781624268440776575431843755250286654025498664083353397953658561483639848260690236088661837197072047258299473657960506935005718223006301460222268631697424380306137350647901837685878627510050175331783215556652510718473904918091646241222980913562998998327660399775456491869681591434810763192170857806098049465426372364962861688158258346728078146379480950188258945564106818486019494917705920215831760207779217252298671336729213817796127055359110036584619212685917784603448043257320975184686357174507642444408366200568307037031341258144441418740409254894035360118611635041046628092346257385489517577667676495052930329322540118308248507090545603865919179358410067460111072396710580563000243727642414902524731281672490550177409745807983445397531247320707918460945834790408158744634225248982927137673630883186462639126620764875482445515813887669760863240233906549392967251250229727733625301079481021022447917264820387875733604554985683200925393370191974275075809515401158237322306967392714085302651554055352215367655059165901214852245683099563306310655300261968362675252819865360505409729093500123601011982892222163704096945387839879874596762856646334231234579496830815006922608992629483853268217630107522404338310548528827454991310471360929771287338875629803593119160146062098877041747823188623530863661369010546797705983129235990011535019238105036381989550338135493170673736066273051718811439254437045408964755515800078803745501544258625335342769265633664687344074324956239617251029068357956662866969003793856038643925090911257178233098897144876077242267905575764475544687768235736621324011421526765761378247124174814110992708930093548152219443715946089011645308838486212392692419325405713758504042587932547259672170707151391324140626182599578608373423309321932371427670765060921192238650652553177494950741283545877411892478843650360399836785214944880870626352931422000988420782367030932244305225006680955112066964451482272887267684177786029098799581587435885703527093998339966168518289301506844071164294737917149729620308613210511243035080099954548556247516770581448429354086444736838646966996464711694341033470503755307280585471261019039638298594942150165075114300433344328065452442910345349340103445431412386986357097484287415783621011235788545583831339677803325093739158826203391759565098662247727678627501520938112363258897289142397614791832192860843315510195132412704919175513687068469524082377985222538363684709475832218060066256482800626562892607463765228202594017587106150116082934459488537757093514609868717637224300068303074561748378902528839096526386147752269634512655063919488936905701233622280467727810902390339878259761679606876999908788904425967153620913720695535081596948324088596024648556468490985393276795541097505778222414752130067542960107313723311681609506758487304419315185111738872186919765027103887185996337527223829134685497025791286920186603042958674714575316752853541123024160426157376073904889860014279771851586743338283795898645848761367061550189775750219298305618147685593573920806831468915751334474490423044788739640001552324893400328158621655408842084573637006233828108969136283697708003532069666545335873796690387314159761651353689133229917354896572309674405674172031841762196379521757497897784760600672786033970582594150488202793886302236080268751634168502226081801033549646950524254669607192346001896449407263976489651172266701608383417525055044483847927273196465413049501883847774906656086539599320252671918089037609752420748639408661801168692202994906392782659287133883251739084136875652050413926287359906236161055562380425043293597667610863668441843873971565546324353272489554127910844616759445452566647956733558449500845879811656939552369873198748117421168869818212774285148908138217481853554016482878029758219095420292233291800492393077864176311567672598113824157703449820819503658025216009494463597944219030310215177525719299184117082841732750951892164526944854947287665695658885545990043880894354907329759438866143465395098011369791753830350281190031965628821107195687895816452275914694405560893640376637389745226125697302327016958093586717703490976815853691020881276739258127584288780081862651392571705733452871787319720268446729251303983216873007208211194021680147417681301929898157803803908761056386322060945467017040428589794732625982545921257731747451276379394445924531304911196605398603796876544201837399317560386754152682496831856994231845058938696675905874741725907549785429733358272757429575586188409407434909786501628551062986428600677368432182090315142721383899393746575072781524034551975004007381644140228994467928551920072543866594938077600688481800401287047712195991579406161751017764576079163647019667887993219356549122918318756698102852194354530488646871710604347144973236870983720794599075717587679745402475195883120334011203557531668227739087927758275441849528977478521842002372322439849160510995778084917034021246977911389249941954988358094099527313419765387906739501733890095832742755235474806429648516115305780638214802451101766276541646808705281426393527248146233419722921603599324285373100826983623034990879704753373196663535377289274109178988416457972742072853525937058652235040975141357596297739356757063443768756329658385022903970692465145354454810167806219297174956632119883687593229443331876136318256823141511816558536253919559198605182399363435018197375505279428093785037401557328224345618575668357401158719675862338471497007483407131491304555904652452473532316530780639765664299368075874062794183259740599906603597065223057874098164489189823122501234793673841417508620266875555787609507426373997730996898614301470164154228266374629634541898588477335068200385920538339702726738056639727945794211349343661964844306642182805546486276353726367632055861314541363916299499888502810845819670865512791077519952701700841841847469611583035236344664482646805875302231652977854350176404935468395757418534443000532336232857075686141224177057875662389672138114946782934787541874659259006988215169650633304823959357084215206600689306703598820899320718917814791149125713557976172901400728273889869385780043644019088829618956375549047029737710841967301123129096067474884310269083795363734632746124436548213574933029716005530420627939159399130133331416420546527906032352259653923399961410363353954353331077509245102661507461106506115824573377451476131726103442330353590707482020403934379003425154331926990350392948742907184215121775754887605846873399541883526907453456389957767848665641103319680179521533028302375996870358565328079049968420946877128295000302690304634201955683912048062038640425581071565812210282378246247491275893977331439328379143787011773035741808977197123072588550579635671726704536197565130231924608719368895284931356404361433265679615919185280416359878475815993776979785278589526357587985772881424207827745900596780508051492696495792909478890732465681221535611152474728101898028696686941864657193250369437777554227829566370580042851153639115515678969792084103533361268965802413246531376042613916660504270045395670675959388002891089270882722387233942138002078560221948983937741870889555151730130238855469270135844259099010511170877359438901071469537924242206589755443320607376714256509336372941475383804692336034996551590599447894145249343190288691941822244782764435865826236518642490134886402032379415836070158379723996938393107842553149947299764442761053944631092460287504105235397558987605039528510224494282937022993288780065932659693616217982707583177649643707988659970534612727498191816874128438608543695294842241024164579182455815692106035312414315656009548513102248915702540535615404305707328215797685476494469712280487618186601978557532641580755093988003933724765632217092121774932646830987272261715698278977564411510881454637426800069381642811014298853257332120923536424039683866102415792052198304552416782668183356514226635420806167187254321603442150350464727888429372130793960996299531444695034983756285771038057099243755708701061658463570168897778020807518030001876211409181429727847371080598188257625054995892611278727061788647477807675259304827934818371073043011121828406573239670302476670735230136640646474020537985496198171642266784546430203475951976876873163671068236071926623873331332692356241523165892896525702537210544441417501111605491744780625976016977642808246584544381541265174830645910507248786099345489379890201560332251041478425907993305559110389689469373206343052584915188884060494096248462547696769022232045241738940454446591949253825069074667532501943602460902789883196917346327585754004145332634361810405350848206389869149690082900367180409270253267667946048429136196767379803629906815350295808100655078610194301376616337487163097828056779067369949358310960364006641242607909878679748575380719895147879757036211906845856271129991693940913161455842054745688055108698812102047868567653362919497451750126503974559259654694326958956773952887350184464731458329260414431810921764251531131395221098003151981443798239554208195497163016794524793102887106583169320755125017574756409801511003512308485061009771036914748697033062905938106683671485640194298570733141232315906636358618694355486321988912896372064061410782821520644925041355198891422716565166429308338916133431333913735744828478112888332411586508060442110387250502549494803258008993940846553475807756936350421604212158728629848654828491013621845412076740814523614608763724869950012672687554433915728117623968384168941420833715992809565247588651066174655989332628112439987185162569746600592091948271905169466209701233954358094721511093835769008761440271493898855073086988124451015479356951594410506228154885221406859676663280712342563437174962712839845740913014608298559817917983441920534380721906913940272392422131397441620147679019850830365814279540260486372346807017539629803177224742768965629284356637808940462689747149435874970315367887484925374121545144806775696901345560956648238265680613824395043338569181267708689980479514165929071154927704728987300614767494454222643962889681596862560547523028944542186939189408756160124999567093489191702487286927909085145083197199365267202556107823221127233124949734831055213455944705191201879185572241011721837290256021560562039503842776199657431603043018374154566583694503467015532614976474935424560681185257230306885134415333215366994083067829705763884780902530901636832782991438925327928731271024950411922459528912927480031072094665127213252526333310358497184297926522944238316108431328396324623888888706713780069692221969268542084463867935688401010350171491646493325124423765266622608774065531076335736309178551693799625195900713217108382116320809699666144698610971062811683930354727109794444615279462644317127168364838984024502326645732943462201289307494935629925573473306328912654856146698589901773247360676845562901387839091046428844058800798830627349359534274730435241607388901168189972696665552004240692951369341334323300189692935769877718423013968372868012089006655730271918128956202300713655026466915462949361192129962305571344117556161610327868926510221340529663767351853861288977599211396772753738340507142995205133319770720259738134457643155901769400885372299884631734203725690205779285133920644937861256853293964355117172404648323161280836339649485022838247859168602529926266927594911899867838072794076512275287925655491211170168846073993259664994179139696125524936421990075880071111014637290289789900270387479223952321372228238789271616048651396445502425236443073560913941999720215763412186628093574944623693871822742401710469366817180696152142924729591239428535754686528615753029289561275891465522825010559664415738247235858248126957346861787856973122121585295163207708812696785295902966921315221244532008481735199928313668609958204393412608963267037650956753068738517000476908966320909926022158535870129249746487596370364232614401401489166950878036330208675414173006216688956865590019862037104756368681052046183523227359424118333184352034060850962176730925368050184365190103198942627724728055553063288004407919319444087722520815753729250462947497807132559246265046219280458508184872671757449274205559927498524199632977305429576009161689403931329259940301737329174765697307208034600600364921825729233148515605577455230560789939430849298257140575173756725663037689361422477603703530914619989829208433937714205811969218632225902015414239408444679259024946257457738624247075101305635326949749219254046669882473410482219832326961134530973008133164863114287419542342520612353665097756903563274047272397053764985020312775170476126600441478023275438137866027089193730056102301257238294560337293735983372931112489918261511137435699759452149955413934016535562707885754506942490135366773985141156857352620048429197092223059193192344100402916310428884963941106095411516935562839850500510090615122467082506888582951500500986752720899351020378508359068519996411723857595750299276086526234225018985719827535757549388669634312082692127762102291251231800386230068245894786242098290290204893302656656439161067052366287837225709180209266749228235986116100254744086554012117080916140859128258177404344589616889420902928217237249262335567757316167157370259304308833880203050485986390187682729179560192150546152945460524605758666519277569107683001380736475271175111274263792343251769481831562240555068312459092056863708067317179772883642364082010625615942264026737312464703925975114565278799349269910481646143089211531979277166459785885839507446681383845180833481862117240909427621271115316989308583807986919707827916886571399583676485703416308115462803412357727263724181183042630795056746356519163114921759629365996681296232983927416772639674402985306481034002324753108233555661790687560172431509692616986923006269970167705514410512936423809897227976547106020835090693854223677304670023937404147671014526306621684840561043640119001411978725183041971776687707073039013372616414698009752888837730015843169593208014558643001739414059458934725243742652729954727578247992860120352886390860092822356060358654081736630823800918895994454833841630842211446793267620752636444067246741795142966051687557717066389692814605066082726143282725546917586865279183354872673745316612028526002583160694247469658079212322653898127310363341297984383862006937073626964342399055268708259534732456949956373299632081237760344873808021552311966891144918357560922764690824011120438771413774638446764823000716034701917620850876076240389055983024825261664497827169330139374818168550390058734105718109087143776838454508823838917522533317784361738718587658183223289071981180626651970963851589598512438585980464999755786501323712513061825006524432379665569609987658063280191476433080174980560555464808829095123223397494569937339338330313846764681227091950522514575131265158961667389436883808168481841518089166400972955412163376784161296603706521322773416283828435959850723200315713389279349926884232094914819735839623290542984871456600121197506905727628439299954502145961554919659356932205387929897002395964016953251962416695477217448317426856186133246758768830243711823303787673960626639895488948489505525127541205941378541195897503429944096334991649603091699555386129915558589774855533569246344745906282828237274868835795492829445497760226076656504409071566752622120721163269770407443563271515898210055342190867271618033923511967481876673745338371987024128560446416268567511397288409244740917589078870572747326965995147375053278390554304028891481686994014703601539460194227850279509913705376575977697346993230236154456699107539980807140243131852469049220751029587186576144353628879271594647323336914453688034823420369626951767888242191867958661433048258658524726656816700275672122867752776832150211792857802564608252716387910879289426369515251500382184786891753284304026553026993045087688692312439227115319672906945180790297597218821569337277022195956842851293694613063241358516335109580509894727672353610641221391957272297530536728386980464710804006279655365192124770048904387069843658238822862861233042265310908486095459995321949451858255969202396194008938939863396131063518967726462700066093933393231006172275248368907199786805160933032736925104541599624298667490710545017648831603356260400018283075102554360960824343253146447047086032568696882379337325193442713221532804906342599904449429415378664618608537164748114051381055607151534404707991522442714449994225540750158109191189015334810171424519822353560203354050951149979590103829257769072234263248975630648985491406365238370692746243005794710758383865219167746896948002983236335694473239905185640804511453450481854852457372104480234288595593242953443452957537153935146401136993807370143298286531761108848949676673499686923898938489346748403002041672222823595476701819196329141293226891857151005566175934672613495507666227718543781929469867133928054183395083210849783163437934524720460146547151421481830064392640759275969803439536555447553242203269833982818943367121868645879487331217846320247335154285824411769137111597898776780873882791538381859036117465730327110645156298925297920181914178786467003105037704261220021381139732772515154469208946584329833462785099032005398041970543884180930789423471612771923323619502076473812762378916258777835783045811277262688159220688940263341585598710790973924315640381178972059622897643995916730263248351967635051270487638863546561286716178890028943746975293147772181715821158846079481563127297119657764871280815938843684774321951135235246463568396528434218633735717208716949313315042722727299593157686520597888594005215541303648030264333854063107571381115006569162284340645447695387230789619078100273391547351061065313908496065899061694598815755682167948474095428599394596054196784766761003933884218644917643620760638771265922681736834671750577104606537495253910146228995853619551516746365563327619804134691154701262301871608844725573683077526499017739061879757606663221547017357489388796674527659784730469432133172111906742630620707326973979271266386123960172264858532953760818698490900869595013228232475034652343167976926741011044864107249265876591252626022887073184304081184513702369155264158356096560499536814010016447013088896104998301141266455564051455290836677952620416367120700690956320702978065487446565457477229143001367040039521351245717565528291683187241016621704608777469172510264840198758386419230080027012016242220722275875667214566832935114573757013463544011834729333552503985257208076844463021906208130877962333432924818704368354050875526166016471107570797247582178153844412179123693447819665322591055854812201733577908814184579087752795288143491198711161389787868428535268212789765818002575198419791315932273376329917879091906028068042653469882691020260894335304848442828330434471720934398083796071501826866425502923544124042926993139917978473915542688218023660511117048082176462843669627857741064500165144010146263571213363336734387650589828201086660741996611784595709726994254061833394687000548828358284768510383058995034476004624481781093032438146910767080859880826383531502359341202854391557681908514800834754340705049068012386331873913434493391585546827612853007837386447692147512704624342724227120256561085093230516377591588938031554510469529904747399965173568596842523214530795762303764438384124416541437497285498914577248197169008392845031906261125722169297871032917893465466567275555016707976502474178146955544642033900249310932436851045209314980042527890908532934947646072688559448268636042059893101705780243615414772690467881294601177042192721601238221540891207203965262916497977127249177517572728811243448063540326974073735488807927629371842186397478165116178945032037464554149056249955809163754332109601740180737448274645498806344273142920132791913104342087457902214109494586601517337379258206547434807142364226259468479198303645514806928198071473521262043799230984545058834320624505698412588067045285832099037323498631577996171738327138367897685188697787920536413937428358703878732176876391159946087356010907096875149946151853093417141278134942067449141016018033825249771254859089258257524984251184210654667111487728436519912239918103862299196503612101449511793473128616959190491850491727763438100107070344077241374322986725706213284225069090213773226887317474019027522509724512780627320090446985169454259735114669353737651294639769413817708174085402177407896096069103245463736155546150305213276800723426043200918517130294007571768962816378900937639943161601165407355157953198999535439150237565351439147946602161757227230149262379170434857353676556380278536995946906460789111351852156927510181457584935687103368519233396649248972371124390482217232110103282071880208470327443313389912020505784299715242315216229037713222411165272378644373793902642280510895061691518397708758722971820622386778461935003021663303474628492527203308879810971254700945139682323274711850018664431626905942406483335536726167762973904972593822422294078229437469242723302921728864070261600595531684411837408638907943746515504974244077663365117658584883002655624062523732193272411758419242074322946358026832707267441509097544623561450435166582552439217439027311798942922016642926255946704827943081042570812215763393254000752399427091949396896163649890230388920675266803109799990762160983275927965026789885636829755130822138407432171089730991718271757596968590543604227303451716233424014708398005764903322264035594043627387214822271467007863660914258700336243893522139668632863917238586016864580399118149769435921300312795291538284015777080445905737052830316362673034762184326865256922734458390454891166410917438448240413704547746459309156533209580101099563535446307775083441979941096776111614946236332475088713459254803929253569900176019559947421893186790923334069351732537069213844079078716483348362436987697678029302162144827733688048253445794548193174926537974342561648394877986984056938928808771990843677866527824216066532927003397730791589359125839629087539756064014907575425539809096746338161801236921052826335519293104929393316327505027616449249631379900579280461170794271649204944607732891672861508184251776006741523139504958227996251661196738912144908049455499936654256987485414714204471051256075222090461448796052610826224481130628177728508424877305253030328444922736271043552255742025422765919950130971692001873666951998146526965205089908345722529740519607704108511566849923917419465330906120993459822956296074528541191155288155331116924948354647226260670759792251497647211752431670363925606197716900254124444211121698116766800978960115667559572099003329385951965777037679187300125319069918362667679632714779987920578479457346693174105381547909063534127052853429554045651519175850660961142189338477953677505013906611882649184410308087374973725257684587527791811521307783432529511284861563093100790087760846151452560510665706283151160833038209759539443397732394896392106976623692251864381036920390831953479337040249096728651016183858077345305355756643978254934358894252904737126024138608465103180649897588073337040601113774988659386026545280595034705857517560916575020736001231627967604468607587948853733378405790696893290703722662588925275625897570552401200155001358571810248195040698187104147605264939994252995407481087462652891488674761786072134456100486117278839459239036887786595012060379499426310922738655202662404157973624567259297455875755375266857896788367197119618135491131222248892765641133627270704688393119768330739182705255052116906104492092150912394303476166317922428787249816825703772292634463776022750990419367422501520375240173429489320216209771847465106759804337087909302111685812015661631496076858829393815123034186178151234016598448903117431268483595478927498366167729386913942189012617676295237312354808338534713674328946179446585487091215463589000035543424221442484026349550644568652423320906913582982349085169160730140641025867053840450493933869124676348445732494261685171788719527992947309420009332254678852805421737325268643044473448185469388591517052429018429390422834524144393160028984691372046060973101732984352158904282439863194108399748373455683121656253930166808146478326775815810132122443007586236785387704829553561516524267572392765681557100521363037896298958625685656809099831265713308270380109698087044156883679776366299782151051420493395459092202761160315370214944005285518613171397693939032463535170661677351598905622741394866090057215148888004297212922763114508028620068195935013158386652811804133238885601946117088896366097560591010639687265818383180652360180714856563823509374851129289590452401522238417437925430672061425655078333796704967693585469752911035017755768284303990916349023713922866921749830113547600623821094739377051072238464032164760631456043304166407282527288018620211256256015793739055261562893872935660253074062275093055523380548144956345843301096942604750923090692410149398952333991533552320925586724850535265209576333585625365267880170365773242350972564143323411430294655784898080603377773634449391157221752593487507314236457386941829685161273164280764626922978198915310592959046238927822443412871959924748285294243762085525560377189607970378381495881059177452548853583899571100097308296009252183433936014409048945238788757104519847798469788870237194592950967729676695657378696130722876046865523553835162251881067965785037095090455903875305729185421147053072789868695965729224616386544403319668927403805388043980052451728740306268883713251212290607606749792489299704113707961284714782630632496125108978411167011590991659397141338371454263083945137475849593694407251237008302680876802672977033233170114323315656224786125563395327136623994604034075588667910126965766668281697447587102302850830043531931052005553715892060500351081233803562759254090512301131375456190495521676882921604965920380791685339319907548393184354965119642961251423222965569336427903254641886850480649182682391177340991868742169530331472655913548463429719190987005720777218372323529638735520435295047280704292180330728669809759532346460670321339370309369571841057701738534774678726416835348755784882247691208572233519364889789387927606540806407309356183194592584461723612295383290875146507528090822622255455709014121833474303019165306275529231811385249020435717641894192500333223450159043588503620569245696580088447526193027235379212987726622885549377521538404752823317099586698649922696583436809401177509270652932020701554476140196588039358653981985358321566318344049270938819355883921906704168156722302106543468688940826310101524966662120146699431153182315053943656595900958884798097592471860828805799193193799290640420358284578081192574302527604410068904718097904335834304135571182827384745590008431539173880756721568772270404206572426257738491841369208351354430263441666395550857967149806033728686341183078309292626889758351427083947852457823000746187208079781697551192204973314418333373360166943531815984686180051840715581585716951155055445476266978007105184215620005028241768976805574139731684211132731332216337121151945934710608304348140650999474524817092775559012381412047168382013145015278805424877436278460277424686222775155102736860364203972327143924959430233998507122423376984080605487741198682039591465457646358928454976193786130974940345696433144843251086308480913762407970450791572892429644376597799175863520154256689328162467828539392507249522547399430428924761127186019103138239947017941675495278086015815645231831479547389820657326598571043088480656616921333486060177729264206398518001527241516398184899106567253403516222292552032144511014157752154875867354448586367731008354677936571392800892843957771696428969566837178156160567073646636480842291814166888243915249564534832287735399169313399188631593362102640770374867952046183988466865658940735169408659400038899346623230368084544064086471256595171754260489231723597262022226251774499933979440116099700003097285034942568258180849088149867830366822775063918471993711978764036308530553582138731933302735948207711868068644794364669045747499881470793970942029602717721594376772570962257074843186180577982166034736286678397080118519649979264604043511658167531341842630798174646681299832119388235712365322568003280449503682389624666622593441494850534755573758899954825568793254777393259437147203750847680255508971319940992955895546108214044941911690637807072091147990903917383225082470407970726301026946451452611521029672068548835378220909569919110082554084318657937309233406029142832646702591280452954204299431546862322186985818164877202192416317239145715144113733011482954635759935864973868971070775639178080250947594249776655470770815965997625871468021317966658661605204218221895054224082022777398606268501449155043053892154025854228037776181036339125206555980974418819605776937697555433343968226774691796568898867786493499391180292265988156260502344377287824200057463814430824622779859313906165528259868180727009945788208932372740882098419311828849003808851571406416721814630343386137802343554794223123491393585889230316795043418729570892357778371654842549923133150221820523672149546494197327728752752684305257113164033156964097260257846007735628193048940639829122465795647794020902288757604550694823702644786447973205501149556805624798617035934942559073380677317274726340186021936020964254904893574794173002651173625620350243652434261975640213997138431832454518409512255419468829721009012075663546030792669813884187410417190958828804936737760119650703474613539817291880148507619977593070218869541419097489819482905219873147000019134552047324807375389835714303324788396220610462610296856151972169338811310936073502898441998390787327574511689115203736120554971940895799247065365079695425873564338365753376302464978792969884595934385362688849991762474644724925028697386321771141331926065526235860890213995799832187320047784365187933539994093483794631564135691098670434225760060354441077055185528092503606296516920562106200162730067678115637221203328480430519900057927121758106070172172506669916336688228350971958018553078747936314517150265891891135431753889153924566126707436414613577878435863446328297347787882626516151147309600807464482550796679997180312286893871288016371989779686232221678896453170386499676833469453213689818590967674752756025000091246436316229423922052645250635215700116780482441479100803129453222873871162725240499514507036993421669046742547834802369605257301307933285742040843926884879961824568276781230690970295305551171308731851718112885763038715387112322777609885266088567225152317456052753884286096198514110498250889747515653489161972446415148841955367989813604079967991239916640804156855100660720419830869391648932034131339810310054212399954830254283655955061829873297400789103537973266701557265183966842836457211076447098132344598319256996784382538458333821978658528983034179298991436571638461418613412824724723293786157120623522448044444134373422331072694008867742366822164220828044218885327755292159582506838874741092719389464529179149384720526824212888097169721945602816384270877612786041986980098900255552690725768943555014219304320829372452778312554355499399871703973308910341083131561208867733097486234050130759659625785256564425557027658423436375594816816615612502759320159262829873409098657327449613765176350294346877478935289002979313014154475358290700305777225103830508142084437076117501867470102815740930630895810295082550522096281404550901860673252776476243896233631043222156858382115603591838978400468259858106034421237449497389968827988037194382136708311042692180878694298504235705939377229333291546934478783196283524543790403192609232790825715898784925045189252692626392106372212302324554291666404032941002183633651828179263798064453941921882671603514946306443066728478752042883836253574389659361584974388566459062106721598021732435043559891133247291590355746083936059649505172845874400726421113053077151902676892987569565921866508685204730554511531496498555750410162205945748156049882536335099769126303159507651021096892171094871408731482624974143056022400023015395474287419013676619739366447670251740803504052482364651078560877447946952608153220905779729689648701628595615260824194072778563445336312990356067003361277519217097578103213555287634083324934909200963032929222996496095688475693536383534666277765957308069798230312304449884580431571695685710256336342618745068303365421889605032603831406168621389711046744668606230037034272114823253588213872831396141053526523183815909096652250305501307685530888033731283978423184508568655552171837176131631978434610789723187833925296619493800585930558506103758532984736087169097271799874312634872729660397365766261258111626240099425470818681650252848738864442750710214344245614143678771440665983045571151123136756994782513075465379503696507697479239308546504802539705903206713555061684847567783838417356868331258584838434067096294315782578795257240891952849380487745044463381223493542065264152740855462641983043970348095741371835658778398371342214944939265511408529938268629611452109620711128189615573969759871433982566864139052676813857790736835869848714062553586475582767453727249124322327448108142948914519021482173070752519111708785565768440397566136607967556458598085477006646613777175689948891761132130006110574682707965988776402624196122886000605280099411622899813089581937291367627174647909614454641806975061773078677563213010281921992376049673574213502050529494665272603415124996134537080504302928599972771665908261608531241456969007832309847171894866518708928905913309118602693016302030774156118298341356419930219967987449644831235695641161040826499124903629681458300017044675082714556058329639181987991184272310915894714703132806301661090293778268569207898994726719727565503500870483632268305036344392738385733104427833601660320384664912282466261609248645020028203072582744344540252587050033662280809177262752805484579819879432566183454952224028621563507269987348504187675926432457914469827102585839769514118441254162034473840896171638309150774914050875935859031980670489821308469027952868052293924327429572768516719236519333710744709503140668044075334714515279670532110780558717505710478060936772182382381106293100549592701667449982013174445467215916060164958868157461929312289824727674384990193128616787339061792398133630454304919088947636188706178351321108707849400493334487487634626946303126035847291429291804935934862003941646091828936285682963243014102382073585258550398660434453326683877715596672121284016630175542829172212355108874768094535235563957956299742469867324561246545070255151487316232571420308149951495310188486341288161344455363347034006978319063346996822945725719318313852891544673987355423355863720665215240155815307235032830726060875268124036454453162300378821018757763828769542619457499691336435036537524990576124446504145010113996792934758329446660449249244174667929164754396391724480252897780968846703116601423503649344605019328807999355559770650012228342910772940570347044618595538523716829816051539313118407320357060862688508208585081305365445781422114399006797790302064327851547901763237133546450951603749094284841600472165719165388205660667067965458297771634970395434006530444577956727945531029960322792715931859680238916889051623634736997564339355078330051020871359438416838098296090349287623838092790724063925883123833856520465091862280903004562136279669369645022544278173116550876919628573978378459500220988207269472214616161290585879296180202956595422403469554588255201334585157321764732363385836597420387071164390058459107788435948344094852813100915219696334511313272536996352355836699218488418619147758920947972330564959408924685357369623593925512417303401859493169494811137395703904300679133119069759979272142539445570861975607872681879806900600342677849323123409944565591845388260796792690013656998625240877032671986577457702913223549501544060087630650217438678405711325359155946502475102838517678577838313009238411431155302243585816210048898957263829692688649999906633382858211598844046941806040157936430624209945848706968373379831301644605945293888984843829711903272021827758435162013444616022554663180506813997730677178507162900088652033888150365929213529947830154129615958247955629728805810363144702296083376970489170854985914898257459230377032184062160115535308884556683623462315167213650126797141287843919361639982033206006195026382519827468947911571077340208921459881260092079695362617987239055904528473991443970625645486200081412193777192623090750008759022269545221049724368381227630501056424810224727486002157940026155493375223746305677861248694855145985146619212645784384184061083963228652841714163467569177099010916261853115194250229241271056203582707820642336702484872858853502238628472966077512709436095214422023454575991006993905512981596584898441821836227492190792528729523208584661339676804737361259842049258168725204054109882131382622069847020251780481136239511587152919433830977026138055461159428636337613291514238817412992533688309024268121882813033457907791627142939469004418357045812150255543760804633207999409984018114951908963798341838689890166791725618721929068379607715861793779426127000513548749947597405366178262979927651331420612413503589594801631973418751778746084951519292955018402064892868647888423626920453344042011539366363491846667932430460222163493139118271073210170246048726171332185304644294968778085132171107487525376642053966547929098067737621167360485728910351725880893353809499702815229700491718544324498563181227673391178911484675074080713169900897846034639145130589977939651834375542247513819307998311556573082924774968335450751780976880014913891386305225477624169139038955402225650356443111439595655506078664364782830078818240542941144344818197508423588610170653202232695348747281256279210752635354455151885286030643635781315295765379016942244976160834355478927694898982608521070522675182307596440180976603732505865327258709341362062226400942140699579765966367993433589250364761114982715846751142009019276958422831067932176126622391236000021092105636262757346918619382450102199575055001584128359002301874209788471703048714725325767328141785950375150566459708865664916501704683257930085944634265265821931933680705579990843494214805437757113313308986450858335606051511651194926297103204116180441164917209857208787151622824301686280296889875031736480699933258845134315767574935772622272427718723142328587334165353946779753054197393589590743009483549692041447385475791630469635732294936316592028289100468475784688148242133387909131230089262752118171541195254652817971213441127655575643958575212790761564138582713383468583235865992133093364942841154100102584362572005702946799046403276767967144305058190040098660190629459622247522824451847585464155082337669076604305491974663865414408573060470814703471502436898498689690408487832109070726001489966216932755511932366789664183784074947820446539549253107280398477903925981409734140211827412811520895528141190972797356026419880508947888110627449862003628880237043603070450153670840538113738683945476497412962015831608120067044460661951675111829453643898310948702109436773996032353110518071462557869553649191157471508055598720700938522819493665135781239899871095816055842311354061032457719075463516899979349188625635617181631445154843384868154350385552120892029251061476043267194987300663083406376983089172657439675782038277614944359300542840855856415411597157540237591327862444029669640880907256989886701443474938302568765038775476602162631800852918388757064586408521572058125984501729187159188355285623090103729001310214184631336060437706754024588775462454356728031829164836301648052127652142925344439408047686666589748523696632424462744752483001645132706025506569339393923601050353713953098259183612885843845137456337065577504299954811013008576334807551547611570335868384148548995936178114665703716211009492595236372001277807991675523783566587615676223772193552894499297147215931889980867258868676246355270052295892750521757211039166081525563629646251246285443466451250618088080729261451265226642124324267446964945940984987705638215398896356366243843651268626068337774206731176775073798679910682269505475610227242981450820799051149433006430824641737925857591730991336607051791910903327263118359128779786592143591392188705123699431177081741514706115721277429404131892227197729727942596506230380846760333036881433754888418320788814916509003744377898008474680096164215492245029622520564037120583619318373010223029315986227379869439239038876429417527510765695553473485336015540553695732953222580408866703907635937044330515694535496261173604230258162061191158997289646525886980881112023653416797473650129588409497227584996175947229605314255886822902323526597033913378459598955719045329412036709588022707833541509490687647094941951993813628188383870479593895970960791618336655165474155245717553905448701583389047871344477225101674271357953420846242637161526497036633127703100809681411253483268983055607085375923996785171688416063169067135706839221572185924454198942589114275484905513093643572389889455894825309413453197137759101692754295274948149936995318129659468046323897248765092364680916333612919974739192089637466323959142299821056069876449075883430334268989382295046623880077229538220599573078903063504992143048499530753047524655091691874320184571955372184686302504097212214177830008442953063730469454156256412219934525705799420738750908080487337852437607935649515516783536306836524908963975688034984733972709127593852172610979176935924942386234065775460880724210538790305830096704996032010131437709649289842441315052043648032651485999635333469793186829924330808077846783898800969682254269915770103586167600945099281468042481060372704958845743528853125574458468032039390588152613142756620590145964383747314042909537945032390370965321176833970415968458832339939277149818337253599603400678102315984688638318260795195973653435472581103841857790241229050891222272096618293184255546416415103098156470991332476595077001552719043152964821590778455216986379523468818222096055239317210638330290561668374796917828551099603105389411928490333624781980689125824923869118769597983859117162156548980200359098068215474330858025149462862807362908534467486140632003780703891507365328442581475216400757249095333430583168099579576765139612149062163559639959737661931704475528401795564898096518132063271343455452971461600786210971253787267627247938742410958053517406081593137803021431398933723228353917917867112852072983037589425832712160584251233385375383803409085067218905357880946818244539027178397390745849537385730486786169866339771920167921773970329895632830002745947125301506656259537967900026518958766956266342904107858056719038318745697695024928147863863298713223465610416741141796922611071175153984979385991545192301166392448658619146618766672368132256224800309004671804076704829996200625309413195743556127419788091911406638026144424460628260815704821305442835596737517503776147266422090956087253676689398520547520208484027099497026261446031259936620118597859363607460975471271828153401847670219781443466485029405276306879453485289913108591336333185123219706455712563513321972475333374982404015804770378304092771413569567803785256779835054759682510201332710482257746615361074422825911815168693313426018137111778110220079450590164549264203253566024140228384139041946327794062610652525771027986254084506207565235623358614743493209890622296784550144125901963752513320529703498262121976486500724724610073041258989692233255767820924116420254654849767025554036860471567373071678661247350862164398275121936528163744804553918078091154720405818062834802726340083719959659077522200751153458639298331863209805198916466195483166555614693389192549108764361668657930664417575008152046975972780538958514215334795615371715647419724688753910793562828573208692321917478799728569895630450879078459528589504246462246095777263858919381322396339167065386409932403415502092332524699782772248268015881294628517201386225311348756099697476607663206173414090889708716433664026177239832416795934145373394530580108808097233242987601407827465012879876674652579199205681685994424368725557851086739388015626730533007960862436923250301577986793938219592155114258547789127674137891835127822122718869718696531745786311626238360681822420462862321925708087349247511319230186239856494049915856081559222274683781935401496880924066005110584280847683556033852905426372319753935556502624138168629851661078826588267258523862531685849022923756441202622135088339767893402915621969788664096483466437944516150060568354506974425375993240398753020430280627385756541387932952495681665385347175941946945296121306475419405594777045069958740404812288251446323592681214310337549117349250745474383374623280221501441588910565789248559000522873412998649713268488007056134960355583731341477154965749464335605913304062346812035952301190338010035469811939195518632723240561610549613824452859658353826475592608230285595523020865132485579709009406213724016062200516030487705643826087442739290365510775162102479815715642703281466884692882694539252539199926295412559058420109715789861815282498098599848057357322208773077246455185968092824714999759925872437601741948123528088472620278814151971770743711262152222832684555256743091212005605776754843297521786659128761221678260780611263879401179170082831629145933837837918235085160735657535958619295511433420429798232000672455231578763563456733576917146140005629330323391875738555563197876155384160483818894682823240779903014936401028281597547643209389925546640709458867128319328695798725902593663948765052757087556907504422548421712301517129036406035778588840742679749017064216850240539713760267767858062489298001241008105421937191157381829149145090921483645717042253008977962048839905470903605004227898780621197374494498638538850926763263820658132484241062033905988230061584930843324582890332654288179776407677935058538557613531798649666707559777981049128318587051404669567413943988459307888551319548311923141038154275012171960127401992117473854452708323741098225004523200250906385525682066590513217169485411345127202758224757567233293657792924148222061992004379155520254688730278477897998603696874608951627968408465279829380899311810587615559345658163963866050674499182109769574454537508760459719988703234716277354283589337615333619483086109866761081321243922569102886282962015468573092160137073802593890714351538925579519712158541816097949371178745686690118238864758785565436519776676987836193680440587954459649860365791817401650257334418612611574561600985394594747385583253767595203797267934496213019296822900205128843065603364031332043252534324860758902612513107151708415067681802806452802496770271917196295659374440040141395899576259189365869965700336081306283763637029851821285306312005680039713280624638740676151752692698217114260466115312695228579064657847167369481237204935060172122532471789401374525001061527780912193464242315446384543723587372536921144753671177056551291845744280789096842671165965263128124815986086220780757163210191916681397272586199602074963652436562144729878306593951633525746876556579975742149869706270383264062222373172910280167084139694177157872822113239562144925089348512678112039453508954652365809770113095489840768874220686510722549140227773057597017631030127881075935211287891509482098435766221712591347509037874624199055492721462493748263115356060078841069082532887053407547495793396523758940297477258601514419897352314256304705769498430599452302654429301580830528992675074957109666134622427072180997937303648571307433444512625863712122904762304316445858053671802194674564580670534926697282536724726379956764749285066142525246839945627143260497329985273748067347700277877832830556145085956273425204805806433420158284360425527086779114862863186887066765796596634491436611598270801827763328900594740756400403532404002380047795913148685473477414772605739362791878731160556479184741633128724922994081910666353155478293892551505397435611310121867088209359092192631918083202880054498461140094989260134436967448581190566532939371893062608913954310091571155069439480261793168326281384627048953806778837975626250337859453466182202257510317730905228582615096742746229562779941881085307772638835282394936558422289092865392075236153169640418971207424674280171906246111154290333990505299589502075662897550535732952597329048736198052117681906503347756897577221221260354336016258567732819720225237656477123961244021763121707050997930825400243146407202291923204205380718673061258585523604251227743374020257005236145254513533570393773316453265921170633204831443261186583723263438007158346057370065625970975940175534681130000810501372869182089816279523421678263228531543846975526480704609771842809043971905420477421570516641528740544965144644663996580381532012001276758667103645730053568524592740648473627294733047453599144792694089863213416620261828606642664009387530815877916316902252470801788429238771275426210589820175187471923238049662539444078841581248296037155192978757306770539395073677653419878788732940905766019996743712466677055822477278772324217221068729656273458417250700857034787940318024423622349332577773906169014683668010490688786591115365955793635292906792565068030439927110219349214858190172705354482548543897670222779502476530715395741930000145677410272275915364322988395332643310051621601925299342880736189663146212309142127771146146799937272017539726113292100284296752138601443717127551812004897098549512157512731115308939333488064271842921882280611536386279216174112905574426409578703638836408170851281964511279606352093570975691948938004609389786774598776799936110094536781870260158837929738591303756114105678223314766078521293987944945597826522920171626992364518264720890855686362473000975650859682939236654351235040247676738589317988840360058598658744199316168827744940181058593645393497223029044185965487802118655535602730343464130188705044157905369086376170571225811163702518152545488850398456671408060445182030499255796377591058701700322269105347379242555973381659517001498240422222047390822650495589073127715090195593060354650909364657379150600910333767711706223681899114808794807385555485736880207428069394095936653625865307686976996150441342639114291170367674803176970767406259977110887014258694937479111848049089889736180338123274068346391744429381596658076151006209264574685184916693062710125305509416960028422384997939243750609134195795517694990313043031607006182586733074270161961790542974279985042468707699993908988222305749364312263297090283967568678690447941765897721559137765836072085687194277527365353291628212510751595514162605279368015039108483981265168185867424639824944248162198658642293175130948207549847715115237849075655890773694274449378866498512667146119499094178628623893754863941178877614035193642417096432615014096646673139148065064852049887449215161376498361500727117718111877762215689670395451971104461444168005645225404807339336735475919238249297304517152613108141931189846799327806813581962461037321242894712346619278056708389489652019314807076272509368095692858437829488198119189305176628582941205840151268686580538033011472579793142780031008117781625349067244193846768223128962823839473544548701779660253724536448426237938590576682620226396701808968043999737990028121765271647589403263540629323431341368722498560335892251362739097073256794424236580382714821056145178752121564121941672819349943316532860998847708365408411377079854108055993625485828847259913351341002922506020623171682072380022201008655188495960305230660288090514578844441420284388918563396722014679812674123629356874367748780896884074897949730973808942102344893858868904405439997135446309059968514783560766255762049984326356111882903486856499760989599768135460190881981622271726859154170465632307293724232761168395989972536640119160872331347559302915826476129611552824311755871474838125790734892855500954020029194600739185926511073551384097549312082969234716971391021112478591237788804622017301411873304813527114482590187557613063072444119172848760779251199086683976238237942728747831324966144143238704733911688487510351004919956826208954998967837630968502285732846744253867051531543030517542296301422460864537339152744375891844927572780094314634145105089363062490415130373033149600176720966062810726116047364649756230934903039591201465418170101153625930540186909620209645969712693793496242883794768291970300158388815089340714631434031690018735725101817983510334249844203036041124089492722311534235994696152182944556791838207673355255799882754528480757938878564244967233688907108003654072596325319249892625614771692866933108397880641167635330120762910838789841045780696532636946555066612063104448733781946649365764004344591049363230426720112579970982275873614163914424034721644321375776878309077474670514304208332557278336852827087618929773883858816248370734478218034256482428642975779274571030205214620240046376180222390086001586438539585211939643311495000873881725946324024058745073444969254110607565544781817737742597402496139403096756679563602143655974325918222040534150467392398865700305960627210025454846861847013323286684774780717756980312445907432785437872261079029010547340839223823548595600078190324447596675748922082927918181320272935947539948122120898308929779440892762724634138649423423251806648902916600633744456890410964814508588376108665511470013687273787863874731807857520711545914264881302958518836427090750826801091142127864305912327664391596445450767519323256892005790536194339527138933969395439934261071841534475453232769652817015156899418226606873061913260687794201598729247063733752500599739738749786332174989028479901008351190804214819417725193332666722261173124887466918159898393543169413352700892467042945927977742256943014475048678310654894932965821304451297532871248878328896745928890409131669710834204358110186871359518783072518923209700487165525562952408043674568059890024988812807728060117311727049028592696711909217150971703281905770761210415524485802250255713152637097555257872471398636946984837290158386735712869066820435609962881876933660339302539369745031061192965554916063825243436999369546082950684460138015141194971880294796103540170130677629341698322289801771544200911495519048227459518517600114135949226708460634646751774106576901731465488127251593157161220509593513673720263057012962191946644641085629734092315088909526289938947831925410309375832507469212724711138450984395090953555396347797629702355250843674268640657848102929570277569445803282839129062053023742916183986831488067120252846548726314721392057271599145419390961207158663328617028155150647131519065394582385787401372518727466753393103175690602822189354140609268440554404065600782008702983850856074961452182522033330170824327603173306940146702367189291098235595472174563546132536170049277691546385108984382370518676926050829429314011602249003202818225547195630132238878118674818601358436615220609719313615047834016058632403090583235570831821386887562749359787114160864344828530304613800068344891499206524229104847301066309413362735935464304599528719314729308757127527417256182652130514845835371240820191284842735979239224971549175266992763667279970854581222882687749782836961303480307565541284035609033638750908430552476718636446615961627830777854085223006711347150274472355033269200027505396034912391973863592302660509344970263990772832326462420131039896500662283848357398780182321575939814824176373727888813349509579126485432443420821751755624291420801012377335949513526561240226219547525572697303665078502443899268717984563099106810871268883932959461758095269765248948781528245295565032839863971007434458537079213816195754197236557808824290536726072558668896724748435213454424092477091701901189210461167562699630874935426402585751976081130856765944092497829102498619748195105751952130434966031955387634799377379883558320998732276517190955404721340657875740325974945394715162277188605453673738526323915836674350184175719062986119323810797819756150664771098266283098660423150664272036762970884441811818191898166708131292294786096290474182827853326158460849650121820503146783795326304736806521297701937724027958683501195830257599539130292543475323148215292862345503742254193106046302565588471091239232750507301293273505082688739812760391539395924438746719366585855677907715638137432610824203525541128299769597653620829625724352465547482491701642824256801387933572980212149083524393212279625834521238532785170892628477589138514542255023965475744949994447112262971682101463492008027986009063131446796398181900358035164283499148069814233667182726465923908306649681446487228621509466408034530486072465532686623973198213365941719101819094372594519390965766185867361264223926436121904407574138821057426532863071388710293678292113044136487587673034472606948203001004365445820030729410559800958298916601664152047526373460123591220043921416078546190638074260793042846668068131202181983225193435974909137709982703157590808577831189141419517918830499083386074473796120238708525991195758956265564046557470413651787400156736458845598322052226439042533096124534636856897954473030182647676567575906164870886903736262956951844160250631990503909134885711183457690428546671469659524007472210838938945700911319312749176759493191565673792438497152282128878305848878130845243194197973378286434419999001932806840855528988657958028750652728180932278849379758743320344802920455731001724691468085568670917239461373450936797618861285233544205838022031560578692423777333743961226655277830649941321833119264742704312835712378162126465784630360740557208363646969695291148439460092455808748029572576823483738992395762202922066293430034724470545788205758090554701000626199429456132705994892189865599992235002375535822675611370852188888272999916070076841942537973664216790565295265631833498519375445398025618804016876651939249848083395785517083613990952514015186073575949417066545598537692999153083221463820778237634073570799620444483139102784576885718566510797820869718266605449423120302247219157957037281541387408196930080128486966596921822369550924087663712903839216125032191398663397939879289595006489146397417048749443382444156860014899648347449767668038374215770825378597444148663101113772385824125912065231458396185470305161390675025916874243953690637938980288920241618248335500561795424686248972976306907025225325142737100644957528887931236702141196413294571480327637514992452041943988748851230710907390422058507451285510546558079595869605253640915752276387525173538321939233008198684129095217129273325790429769592517662597266042895388195181931154172281851299314711713808848518637036885825653126209691372986158393099751242802062615870826018617923924058355238565492813975785898709264960458077873858393773676558474570990964806132326809555307893227197210590868351896297695576993221910998623683797514500195985496415973066910427047346140449947190420450697531287122834353832674220344739449722271785079597753966747921454347082420941975124062403790015746642472580676899631046234433786460019784124087731024918675925339985968305848135860695822604152800880212892961749150214912470598451838580332493230742110878036925729241027938494609521924811141032696836301911269142429826744698560265801892151184706674368510914421905958950086063135706266632499473234508827355592653554605625620421572961799186962707547885550099097295935760067127500965717331772346857463129923907945368809093456447622077542454884564944003585156784008785330115668925941198988613797856849033595159585762040416270599929101276833699798463384345779325610256300057363237108325376069604862308411266377274345510250484216103044338510970588517468666684046551964173028621096415681226312722408462748115443096446677836936726259747726683164101568109876770537402120141469408273677300067571873566912667888043672533669461867351333047637787423282118093521621849010344917992461887325534305243184352111868100380967072246492665042324444994192789524157934245648259074480356937203135913755843536538350359470911055440568849799099936845573703227499941908078663534673110167997793354408063499369315678342594195492172877653432531207920966257416153565077807041388958652805213505175990157132239802293006441358941940959725171420729884001068502102343095099434749129135359192152555264889388226669154540701301334303478174206966246133938198063669879130458706256856135425324839981963928598920622551538024850208168252508635353625908375108688764899443247283680469850563629088699570636800519395235544653250315091107262314550337062765558147449781508167868805982743233572910811969214965415056796363596475938542641134762127933585348282083895149965847608119186719458725501563262980704015102439178104654684869047640756221333108185234343507182071747536814772272609314411922805747400100056094401411060610027048941136390539115735223345745309141445245901710839141612234484278139217232109665926216505990011265897499381653740475926515296874850572342293761965123284963045776480924199892917356705838328233024151227164329628417824149016074314104054231565860778979778841044484450730534958891160033048311323189408624514011677121002176136338479387564348580709850524678545972369666713676562771416138528076677096276120873813767010019508487093358274124867399917364065492072395735343338479489609785775309630826965262482110814147462406453550054695915781418320600400420573737690612378850876285054914897990264506079592849296360890486005456139812900898410472190883370527240272034957433589064372843788548051707543079274148152841483046616130460896248574724096383024815183761556875154811843812281376252307969293866045124666938737160040163527436076495096643921086762139843338359635742635563381871229968673802918313184265331231389974446560221139555674259888989446848269149868124239173434483172741476382177586146362135323424431940434118308376787266671730681349414380109917387439363056450017446361590354271165102570285803415605132964227367403912965426164399738027786452951485937695358632675846854447249917191607608134436391950704880663371671583282803375449734025580205318790302181844464659007628266041231969008095114718909024153619500995233797485625453005715237668887791454287373794469312401557358878529889291690354618760323104066902363190745750402693307325756326977641213987079519794086517051997962369156581329588024130168352960920908199452340426640210776185391090522081040587763878594056677809581460381471007583289977726552123759362386931555384504119791778881705603354940768066238959080228519810263409047448131951068476922473607567819284228678874352710240680890848822710004811993959510561359091223465696189754062275510662770535960391095786204839374896665547917391086410054511663943343288755901040904471529963572398945030697844842535316869975592094473016528119707532898367131227660508072967485041497511360626157678563923252488914421261403136155773030806023439198903771256622613426125370130555794422078202997225776085994744082843402996854590842114614619267933675223942453384520986379281297119386301571006112026791725474193814674766427951629273183231010920585460234787944519712008209225924234702887529818610523352397301388404178711462540039044509813283546377312702206589266539695083619226428948283507568323116853097901624863112296764440078955166315264766718298689587222393639796133961018347049372456456952089115618818780131066682450932812605073744982271272941130560203496119221552671739706228767221999545689083756099744183474854893247146444216159106524798363759066583527910217813754723899162928426849315446688939356776683683920165126022295990503447930331581976775011178988663644626053647993050132521218722043145299416347307380408382038824365869735795358274036631513220632172026257405724713818734843838570250948489952950098392652777377776204845375703110370433478149250585508239509728079471419943842731443322457254953571131556109534264685661474844330802854943486119043039766113596430703594020764708169520762234566376491612578611876881160210717696027487360067685389907682938418618083188806775647283279998650759988995900664488089454983645118363292375137189368939568656859175328703324177218601810323799350978685618405724006664975054542143443717896503458833628374306377869491636594793378358412654696328240220528286837895116327662670188555783478083995650747807063290564310559050037106548694910046508090821688304603963317521791739217119604809105766744759190731621802551460233031613588758440218284939038528008888350413035748384391376999018723128371906003135993714867228027743177126788976692878571848096419911558010411169452864716104764482913756399232086230692951170010316285944260641377688549374129408375704828807405014093524783585197738846470694682306295269859692584560253978307849235418400481401639725989680559898727342472093049679492286266900784447809100459189715112888956281912224594108937820407369692939596729567751043151476416997231986087680544908791102027107230710197985630655035762781918403721083574012431211420774757833926776664670730857028390401426059300101862672500385604098378232086039472782377115544373109473440140843289182188641730118647037004352507955269725612207122764232747499196409842952594847559173348571387140519874712388522013569673093147822118724305001216579323528832150840034004157344910815866502086682672177866644343783238230603907123102541432085078895612342375466313014620058318963242202676594675018737225293416649237177217231929507524826236710498409727110093462195505274113628077725831290531261659949886562272546715189628194422995822144752536697278528392634578646575884377667729764811694864913199589837147417410415840820358640243078128355894727191578461427820836580366321253958462661383913492147183625676152098102332390587118844291598403191618627270667469339055231646089476238619605602389438861141387070423053661189208227736480243533942263743611365901959993707233572375995569722430350485559783299502144337077535291904968946263263690071886692257259845348955598586549028341172034693506278651024529061561158655661989255612729910616328967312929924445769830894304695663659870358789808038763269029517318347343679371665625135171673469786833495829384369423196478766485705529975666584339443158246461848759971119652090221966902309763127524172805182565812345657003888777002616723612514531824758107621448231480100777463780401140894183837663756012159152919569160249709713959722554460817138490543841564563775365952187743433441019933934324366399803304908482833962426800770744963316189570647903474956046326531909043250313938144512353872539308889096867641316417288762827311870804854870969615438966033534401798499850161960829011865353566873610905439900938083195154058301390641003337510551311149139427908009349016741287952077703111744436421850208701677275922204175727218283376868112068042207116836258451478086205587765144247421963125071230958151450613322456909170728116700770894936789140829932527305025754910413379660027299518135392571503690186551600117120433718083203660952152264425192977283437728514436265024774446866103304512744198872024126879466870098119544365253198102207911890685526012714113056746546866707542652437046166582004717024577548065171165808360416942684724221575258618791281830230989215784780399092079057098048417599790110759434188295012115051492364677076503238786938797063145332880973868364728433606033181446935923298894521554104933678227363711147138877866555796679647060159608447885412744048458277448273838987509188383292594802588606209029088502094341774469228549029960085800080833852525468408263813433356267203345373497100765892943176546573059000147267780433596245336226838843531400879346092977095907491223786837881109393078403058072032223067773142370434691064216296371714623841643694292523517312965621915019468370747151601244485923756332839716530425401995280666518559828679198766169099497295670496400053919726935469920222683951072342709784444387003066581799344322520686860385817267856923139015104270276441516442067460486835232669062936229514156679733494722376077724990170221957336043723914454418076718181705222152757185341552503948192672806561663232966765383220814779631766261276457120514541582028381640700752888678518521900267575760094976693467074824345113830797522790746157884908642981843231934217321180893859673043005159599838697024354434542157651772180716450962019120520583903386215995083330307127297644421267792805779751511110798761163856066192955198272768306119075686562229609810652482025378702313231804881722218871435598009507349610647600164485337980971633250474790183168164595998471791672750701781325097561655999815117197426816855560911356100610546533514183990242895530690833205200658329340698928882697250770454704972995708208086980358507123710470318719417199374354781017030199935380025725942553427563325792072792803062401588811713234988348759626613482565108049183709603611882164261335243864001666387498302503594329525499766097686995488353764066283218277155317468634038013800780884947273340891846971439877130295675113880675404220072247011230321609821810872539390129507917240733237180127866409829745335611594626148986455418101966679567643464079914677070774398544303361943477097590638925075206167253888332110421112459598511667678182917460053606075164462553499949861835868631330955496948605940617409100676665609242152282690610943688352785074013157262335845558933518913672852620104655086254599305975912122055414193912394186797024276392923400912193349683057362545038061485970813506208816715234660215896667346172973098605007368051328801886757685543862632203472773343787446426092075025265174069943293808033162546639817193224852295484462924008201979387813926552430253419904935235982404174295062968653393369346812762922198050510291719944440279884471046718171596230450012314731203226141219155218226959345766022744741914947165362742355619637065264250195989917779493998975324186967269019230871786091283767373660338576514716182416748045930814653150605493431921428431915899720210344365602535212402925795933390337200947875537077567058820730973740635223127243707487342739951294092801506412249375145243667629913510975197353603423808320788134858703958928716074168528176713107683690246069464218672774691814246041773998047117162796193093697524411117465626766162192284724124022289190161215458142781947932101770500480061489887684438190710924498634297089258255427413634854390667198249319676923482539860163915013859152545011237412415473531856014610708285056006374299851701670535852657436975308775552724618016008102177335276502260610858947461315957578230635322028785190738245343732605706773400026222641231628900866049266456043259818007577930647047664505352165519079049930492643301164785523093228536287258599053747448599274928812901900113494451468611579817131658378967329256706253781339847196248361801238930804757199765907889167269029652383997907675289656029453389913580619461815666942930038954813627318808188469326532262023810216745543625623311908073994700904183155155583888577557243299121205397340546615885184534834481692471905762126793373583409756847456160672869321132275702800215057611561711773484858124788288251101097950763639807099161621047409740363964667277064913569153500369311402827035442894026919326907337213963584077519755838768214753157167376495786360277917460540287270346951958757519305964735956735930798933772046393919466104200652973899519074938659341566542114015886329276395693698562911787039161335650551191338593154078988443271466041790183786528025846421428749860661640134925414880372759514556894695598579054567911458817186965792903956900968071533748514606897546241121519466530286661405028225386812887603883986317164257542329718142237909989553707206784599756755103196736998063173279001524440925531640608641016732687123513923540010288880612750501315263555463523674582559226602293305142530107203024930786748267701728031497526537306424542955999241567231554512785755402052178727551670951006301746210591420325758766645696180544629659583228606029634124899767171989556057977125092439514762965067256310950883136352309722397146229573063654189737882730245649915861848171041087276455972976867880472526396916163739328905412036891669076420919826320149532636396811139784023011831734089132553461966996382865248056775368355068829245285986465074588006954236877876511328491593589044178724806890996039227684248083813262326021612908334150300200000670917490660142885224506379286247086081289653919912640412470247796954001068062991196099076623986837253099386461713797385555521587034136749615500853294293219858773842287442079302160793938983895687971061949882353434886898692330009400309709959378225354293981373405484220761084605902758848113364325246689707560536918660200175396975222204940568092861930366095590637864517531782849482074826688114718402270385950503862723963330487313649475880727768511095859397401909942698977836141797290091475203990417791091715343464135639121337810814062769848852698585341227534895715676661347635633241111784216762295183219664292308977660755619423908302398763165445357861468851559334364724849904639053513833035483705008872346625159189870034933076374741567643004699011222838287671543216659717383505317370303427967865920115953128260613896322094055046477471337563469454265961715819478458278360506027728295105865726357633448871219980175182530751537471163777983803596214725356964280312855295090648680141631040178475796254321727859658441947268952342790476218059287978342871183666268647653525640543523227161017828316383403974278926421812320118113303870823918820717443018012064641276443674770123287232259715259225687234968576159541226032533869703957276352398209526184743722399501312279323275016096699855510959574257126552612445146842901191130617200686058443976982413220039936489153532655396164124857780807189600589868313751293077971614656161639592250561643293570811775534887027173795987839170883602504748602776665838269461069356179838176895313342176193277684826283242376143503986817671421532362279760807391539925421335600560773905903668538851420191563544943501139838396289374586929884469992010972718071068227213775281059947986825694399961486350953695743972718695366751171466111486674755537740896724397031562479174712996413486295349696728246310488285488966188336159029194778378023680930933703551885402144325294458513718486208267257448424892496866709196931900956107425017605210353330996137698350445375390549122153785119611369790043034876933454122636667754511871400266126568978983900433840971766583070302968530176251550574495051560921605047184560553461959139719409109622960065182652449095673023389291292715009060717676747073327879174587277009414610659635363083977197979211016606851039339527200653744292021688786828144296643631630183312986516316487220802727701883528807568160550657566451509599359787706470758469545808029840020874467055498680849502131618500788211092225490541480516409482139868479362951107721361397322002975395064149416449455277511338996477721160829880928143692336414743261400063614976034324143431320266975044621751842297236441811491575179935087548721277276618470180282684882585355270254673624484479399706564289934036954752590559596831736833770811423660989601903673140973583174105419112322350839520391319685034838147400746909022550175790702627073315595735088593561901011640930160012705042437979111720492493778658745347601898140997650087283279433312152578323914719212756453503622273632709764034140622611796316550595496253862645282530691727915371719812747129559936926152311426778292194506269701669851985454297008575079459272017519348537316831503364401100739002356683339724016338849414482176328563350168607528836929017204670388946010608515377357889059601478673720962630927845613575930928817938764114687193500881047467034498429818867807403857680969610845869526270538571284482859814495570619535245000163459770091156885731729164638666018106207822395419769985329043297148271256561091699132672772937562105671312539722684128239493303147658144330245688031969356902472529067651506705059982416460788505480500409784822863582143598113635060407220911478730052994217332458640348824358583603654445764364650085586621875889022025530957773434514089140087038487989726239067921963953668393909373644006230722700627868280742788193683309568441562778790105013145388736903565953240475954199172276444889254539257273667405974042957853123972943875574562112140413846797619793520764707920427837363237355463491800577589239401909063315291957676712820830596222273141722028179913425516086696265337224870634339814960599380513125578622872353038871693947112521033413306830783606918552363382717573373620355751550253924198198941258262946815895541176354432726820282168713734063171922964525706920222019606208857599211081943472291100496459599712985707225474510133374075736878721123746647951544415413894638529861566502917252088833662369124085695675047166387943530610790286499376939947210942499540614689789916221762547321419563138388820391540621463840779890539119674714603392843419706777901866214702675948096210476667439624854940911330342968821069521413751655893191719208119011896160963286512903964595506125365338112328384614710989912945728446613651810564396558045196486918981254063013348375190307880192248692405321644177628241920597859364192533905476425728234896063207033464834610079361448915096138891108954021717639486760319535302671833055913415843765376123640767285498088428452335210968543969160933017503633505120410106394187736480152550025839766910151867813708658659104632747719666017258517673629856106056934337615676092760583913639943676388893295009475486778224333708799548495400848180711202394853391677468456663808309486897219389353382028919854824874732805128068576724495403097523071760733876912476218457508403661827761348033048037330952628380107213827473382102195185899134531174639991854754100024814999877204205083546289269268453776137041281754320199038776281925998277714505940917431014733660837037885369682833956525717796916577424802885979741274157617487693467855048153241827912285111721769579429170451497067330741997991292389912015872991534380310916414528350561971461252995171812194401954777618519988699290664650450217159380068745409433562598976362928917823617605642980517177822089201262107806965988026926567164801869587174906864980163867945386951345350051400009518843047257743381081350311255963033538325369722199551536783197330089795851459639810507095678244616764314866543902079704414213533769698457997357933535791475539161918733429280344317194955541919670268202688820208780578704830939603172922026678924312026723922821402229759210272976856606159668305602478709883851068677569889280603576986554334606851504918903690045997858771094159526537644510225119156128589129693037860761662710992796677925301962987428324683152328630826921308825508376955063272938135489204998375635029320877969439102751200155433357285311400832691656656046064474915958068113380083131857051836132423505025587270467530365401572032397363992364190130875472184193138580166426057553049583290539569340508038231541148581659531524481834539226070867433446212751125948693054072837030693035609200282215600301522557973624863292267218561609856440123810823280888205781260541993841507685510198616024194093476804641073593693014649429742573761159400213224368754208606693549593259052421057994353219372710641110006117747943972758776405653007190880450144924470774867755694294908533012409518181284817912596693041287882101949471731845423547294796713543087420096474365700871818606089879430106708101132318951257708543728939276193550374855980619366666039265236409149548325241967176105789701548479716460595251926400156179981935658295234220400292378947825247278564767322367582885826866410270518707059469360720872715460870923882542011562265315945525232953453455945434492750255435098144554592158589723705818487247881796486809648933795975114343177999083517444936367828961590877792115512610456052097362713659682184078124614370742285888015230320410698721215394785110010474436849590960114851733157961235782637556955766173079106091857744104032047469566745263503148182336241792685641931510237600314821590546925752613076657350600554839347257171298600686361940225293379272981069720944127257354837005511445634428419081211405776234367950824069636879134622619618609124476159067896012099269683971012183626550939129834738317553750833414387505523731848480352629907598088422645716932638253198338971248709531963626504263964976318846212802471618269847723073658265375628741553759547926877539810290038616925320428024649323900160095714088752401451885290637243759577250116050447725553127621757411637080559668312570595838264970098853541625516088255654057548709066044518018853768293089655086684898515029945827584173486983436244732517612608877600055352144466295889888800148671043321584665785924409908153728225744303194541264025557707482798615323859776339752308401200386664383116009406666992862321598203161671316511034849099047371525063462624563485053372549699627478981912985286605936562834876077665344833995427091466989398742395843155002160427082255299487199006690554850364689542136991160646273736797924553876608131835102332973286112785952096460998297443004037040959137567237667919330377878915864675441394743163383441886919840940562143275233931216344528264785336326654248235075285562853659060236785404556387009725075079196000906206011774767171127159291502071408664987164881107465953152271096678063558541979079460896340590328031378149599834041824362795806589289231594750572783745356007539231172219100126961073238706973305517851269190409217471959148188096723033637216305789087851077054936530420961290528508906607714839236099904410687158701041313508196900926219674939167347094035548270465519832993826582432279984523932185893551293903079874543969485425251136645574433865519937002109750773143101780644738952806798552682844555272673984142374100539680235038315780808496819287807873224263272182658044754157739583738468981855086140867864664966354451645707264864182414815275298904259538073895161649133358447930460693880310742678600732958625334284200023764277831130767146186589067532379290083054122496585748090066944309685157379200102399824502603975637943027100239717057917200309679200205625383268275337352663441969687585271802912546258583700633120485905141643931507234017045659120783571409249603924929904937322738178766874092531991618910532534862061967415337892458100595457664630064575951164367388841310662474480430641737330328950545180682560861729151904439872565961182578336029855865644064183965501741720883852753003361887876113071061768927983774459577447326280515303297502173040318808482457980302934952717637258911681537993845168516528796771467945851022948728252268662585998887350830327618191747484447268188877497147553986932181348098543931026081702111610734505697779353350910706225014999604416557419656391726872002591414728616556415775476909525106714192132345328507061129086938152579386547266147287528358606002561986431797825944757817262777944603961772821186804315546406436097506903933808683859063559178753572430611575193249958050477791379416262246564391131775713612639797630568612954662630644685643157581823391781749311649381546121820854199810176430022617667046488960109703200583149414560463178981485845177955543354882552257053588182502947146442921085285981940284250113565269108287052073092580500312449495377342493172480283316364998078960952517113918249220050870883895226351615612760864308915348424727120051990985723110338631462880614525214584535531899835922468198002603455666561375526365712895796442096383371936781211833001075460894738637390639138344552635189331530407903569165201748788696350307335267130498663936535985948977887809803031616469342901137525800764444581117078468573541087302376795838312054923831733579576070631410924100264508225443216142705944412325509254170998422339860832094411273643738995795597190631445029347808486503128428447163263599338815888765262564186955796997026833778679949690683056025816800454466315708869886437841043830874702760769919946527764582889886683799741541112387385418939970262861273533843797382391399271719718865860998277187590561465499604219683255273029707722152600826319542311644714413216336317794436551361016783854027042544250280489975187202968384163323219269473132867212624207491776685032622950045077660078908836288873636423498351410181668171806292765345394977583475878056316939766084363149795630816800013063089754775742406243301734082284676504003194722678673414044781916132632605066773644356770621914020422661919270270146968254848438838533337295508655098344724159460307106416805725349327655405989682996616466303711549181837757342175382078479043433432389683573940410485467154600136019150998957033159284675793149718152119767220107804198595343067729818987077006682894074135198608133880645710308790463674645502528608644061019973400400531468431580022962765230235291528445579209895737677107762240815788269275437351632808863448319306036013608087715394795989003030937549190731266855694416250595662205437529743633914597599833302588027208754553057075012257915901575289705918813273656573678875974967394544795954736806245000396947225661597208805112513230358180356413011294231328280266571440954400840525929913360448371556172449013910870957625877966315359762406603028637665746929905745761854355895948397146986212070437760922476610887730555980860580094306549225528173868290843645235605903464416796742589441570764146828214635667242775657656074768309160339521240935884313003959408197588080877823382488943885496933632183142041501708398876563109188192320741846879929981567637465647409128845995675325348666261252072825933385462939153233071561465387232064026394894960359402265142610300522833615847194807271568411534101394697604448617658906818285095662494872730440003754248402229690009914519757895598917767163631017059172537033022762891796082132339244358734501278809320349383902832718338781920136742394141832309625688193381075253652234260281081149180923318422696810977976912524980522995250032242367036630773307232403884286114976265432847036317559179366651680882284733397400796832902468422081850627022395703464223898381590411608108551094944051669286708721486081915901758147606599358376468302506833549974079277207090208080334788789046955704008675067952002244773325996318675813748692439281950949522974403966821776260262829353912332023382041711438913229274733931049669320820083872718290497846142777117764613361096578819019669191534061881941547707240085529677897003062991694904157478105771794836263144098867531755827604495382477769375498924536701868387623532525583396442359171446633399758755589612800462519674027889165473629130747652419891272866643405761571190703511221801648044950199549536994770240738016201981971840687822983986239568574649859875447261258435932949062323869271278231783430523964405191975446755544209001490262449839092663099288682676681230687503368247831130028046948244741473448519076745389016733629083648761467399481841433009929991148754848931324892011815403452515778107313684271887775597312435750866451266339866437329823440651375402178858448734897908968816119667351230747419725879061494847221012255303086906432462340970445044205077090912340616518266697268725398607302718728386537427230769783335118355200609384915658835747250916468857335599417670837472432597379049834046575254195011214239322149400607340831144483877993082262829165406501783344456017342127754452269339037304021959828705914866346679363033718327370885641794294711277524733847340492393047434175608559505017321257040047124852976916005996545234420808947873949664352447445471259563718470038797817996021863663493659153196784966886373152938253061353005843914906312493035734569150494406545602826110844516559529559087095762842275343393855508834608575570324638902035826008474374808866208618269290609564073251243564295493957868247751035798050531407740435266761672723488460254519348171751437028975731411755474146595790485809934689790483274669920565349272566777753977864090695147824381991978313817140138814832447048663896923333304847831092484508169031144374062812910931513735684437251962042471955366582783033942003943424679429571043906682217733851715628998690554280474594644248781573456573626653185280388005592987160878968347204026460001661693932642286239302051573576946969377841972428241364141317198884478799033721597294772526696157216075822005753999222183876580012397086909617545169261332772957843556071182404293879351770669216868788656935113463928374028341478306023902269020463299580184692448639165314014844437990158025673657402153632971916544097038295107030024676238343754598279595068829591493832590914183458834979042965754913658073749773421902814402966463696618241688707858979223167037021952527837960789295345237792072606102875191973641872798645836425666451871777388831638654516829496045184631138489247539085436725122170756263218027144576505332743209544718113437544285523732037094329723091545759638755541464896494404861892845488468845256526630456957951065979790243753480884927378981406824950140902602031358450806328223767642440796478384966171908658906790197223311406590165443725655760578199341715230660184466212993582707779314484343575325010703551413343032406879002040448202208620187915548932288553344776066233729890567593641262717441444280952098647576646068522467724933626258017988555081712217870234349149831955750185795763721389225166861323467065940955452802929544203022211770037407334947585855472270391857653761015268293320762510110295857717351231187406026167264236602255421241185288803711038641719845237417116987916669630862828923123302009858947253626831316800195358970706738700454870282307113157168519769270394310088108657873049017397290802471823120617384038619995083753363929484705218018373913238686492600700890729781298240023687209735632229557393739675007741339354367081665186474138377329137642806514161585111388642162415040160523778537164556787847126464893999764586519932681821962867409793264169336144521347021700319064455824316771758154094737951349253871645829683497749867563651390359955023384436860096302060415468453162687498279113204123526810955047821234310221159081099345621472043340982480298764504241730897270809746172517937673290526783937283021480830734203635276301880600575988560437587988247286589605504455660250685928952679356248139066461846231281140966088008517180859825364230596731191128950301108869250806215962235786792245673680294218794233874551259452741670143913329058127205880104728229566494925547874093322383685002121835310642975351436006177920589587914001050609680486538092648841580857393477929635793730694792950122914661281128258251937100582017438260520485820828330605064712728534526951763735580178346174900872097792184215892156451754060246917488934555867331707261014389308279782313034091540352980349369410171808470880476951363310847029819958712823714079975495789776154933412624742940814462755823082193931387031945639988825214803812291920710761792036098037711790135560697770983983029571041537312316745557430105900176506637871222271407187993336234982946887684003430783629372531747454477610950039788132179355696260522524836516144495160207964888029539090844415808345733348828274279341951123229150426217923661345111706653873324210816793976386005493030387724271562172823717913738184010016557561322938924663113955949102840067999616505398443135341064410706476707638328356125474009331800656553133793178916699268751674577106295211916649626474186044483334843908235298675274106179289991004511569491609416520344691618138143429597794840318785696974941295606674348342540507490835185372315082076712556800549802348231909995682789630834896886989697658312858496769673816075111460955877457864661123167879134312365428883872253791403882836131305014697965886817646130129024846002457608430024842283180559951373828704027455908531496997952344039220515384830887342912524267997273298393178657582247000977095509183694135904079841505243517570414738565274614210471120484618236510673831191204791192322290398721738341944096421926132905721432466733363715565244350583943945225019364444512912113628833419639209956118767771041675501769050246093423404464029740534882627495977956157035009107602476631376351966384825940435896022207774272037368226507027714691179209723133070532774628500365397612005521551039466860347329499055307214158133022323748393460437990809180193641830085634179018390795224775743590042698688253579047930752080279171193959048245269874200806835459280448640798732893459275210852753395848090848773387637227631025853966479528916499751014200024949915105793213733788975162602628543908435611569068448935855510445913923314417162266626782474532405720291883588713252809939170590215693987429342305621347968368386111086089780535409091759440762729036842424092979495012080289542479393187934601576053697258719228422165246137264035801457885535269390839934614055015442855605643442906654253924589167908334844436123484239675852070663232034798602870791672797859853577884534517417613280708477012070201349454522528083307577383880626542809318448967236827713233985726091801590003978759063137652389349748573774078719242985903362953189709240938207572431253906664273590488868356110192124047454811015262192820740064602227635950517749173894370042990718792145575130994437366403274932807252023197982778866709539619143964930865084665083901715208560944587307007566131924490953018235029181722845017085449768729105592081488158627769287951071629075212775122898251534273776730777843294708826999464733339362543417051277358899995929815270203633744533632520246614445651045971818209106685086364182507703962948435339566046415587233305251966569628345384221425919031889082388573531644478148345589116183641044275030442173585702631598954206197994827933125779902154751851182537289771363143734194154462876973395894249161303450813421722468461437981666249483887764990878944451822325276683214223747022244077426637444481743043404005298267861353896875055822816270803439438106709665975771679565244851042751111646071562618205243992948780162740483245998244339133287379070593767669720167649684415277531403743737370737257810750106805887245424928881564773646673747838733473620667394980809961351955398113230888278013223712923086705851177670353488098763963153497654953851980890811663348189958164783149740551739195231200783836841593210605621173659113262665060802323619651911208309014061149333062374769576352120063858718988619905655320049168142193990027677807893547616934030274371361227809809724851308310947787877858473822668029876792525937935541118517163471027552260353635244486437468669009510630800644294286572375313413482512260305615280903729305903411858375297541070818686009082469297096408002291500538291334872382863154385541413401520850312676247886304822535808751216527992727796505759587433320098763349418654014091520227775188801643038638380000158977172960213405995081476289897796489136439514843416072331651459373897115472805143046114445878484155899527778060934932066394901598258770376725951473121548635121493329470674489710282814734657689493395596709372081695246383305032918806058144471362062127376945906780331556720384022803866944049432293705377941117212131925358004448128526675549539312404715193271391240273919809214264333464155170583883762977769221734713822532482906784332363137628109371227831208169947506883145676179329507324998189988491153270834586965608849762911918631220447458446696152621150571371064872055902007236034787360611453449135613447184630707803154360055597933486153737286464228263845324899244889983981406235506904652628144755136816453332852205772738029268021258977810950181498067578655464883461668849595623061555362192894007548187697551653112464373887575201185011994016841371523746289887924577351859923461238573642977587900014750423324153038203020603356338980034766501664828271715882171713211447547275739400983652175258414035661820125684865408974170845207023905020563872996884504974210684256889479486433734620289384864030948137702460592816517890888737993466605261655328305568454388394654161027438554316870825439508924776298034178798040714299720913844750920513856672884190584553483202188686090754015803812846301511233239065551854057804004154341443376273607114058162321806364696919449982708522689498712415312640394483412140250572559886266590432767237149967797205229884563857509076611999005313755308428443652916583528748086644021987720088927219767577226948773485327934455005236385675936405004275971393589600975619629020523631197072018824332860392197393327287550516322342004967035112388741769423564256299915896546203976475011791461399442806356865348589618380308104682730382524665871777036015212117232410303927497826501141677159144757305703512812709947477765972324316705893366960311953703947852148730029548141696811275607030599613291067178924731752369610684534586457871588123602697699784264322079169925998285410302983254960998914915608679030639945597315970728443811356448159991060726819125990257787916797270458465664331757159266872923649902137003551741223703989295076705120671661216460197284373698769722132294445962952623129442871722396522672622567559094561706261440672021324218409225117096077750560584849301434887403306305028769104686077934346744928883089100568894804798665776415565781280905616378425552466204521558903328395989260503785919773149868158588128098538043914930201284542519238786925735261458449670116833722980658692005420060276821065539950474553420733124439643587292972484096481985954505820437161507020064722238605112540242947887373785468883310798366277641333774158710236622906668634309997037942592146041422871880739470996313116614216965340268996637645300141793514181147912120332945256778627741055059560151597085433424671242844627610958178280698792498741339927462352466341223320723345633838397823750289570068031754595811633896256569265569716426565288903200442975119803812465248436493140054273121064720302779476589908649400390318625918453603333861404772332742320945066968215227694042626463117961823694889569823884537415940884801312417104183816022276879795202423122405100046595152817911822863909294416830624550115713508890529699145786744832450452522964773002264771682653934740665717486621833926857219395391598715040525754307461617376545050884512700499629209042845098243618642840134871076516506478529798285588772059577143235960961645965329033915044571830135905249591223090976704818051438516484094922177423528227376902905569076995745635876649529495516771455782963445355185095425281173334476188320767519372055361205861438405779167400165771367782415753681220797106866252963497888412812930065052553083790505232504880741268849919886260705049159976450928633993352699442122845296129478555734817943722833107661792007406822137699111057957223621679619845280820692462711497028257272401279594461841173583774020524853035383709146695277035738149294733566807567209833867818427214509010303029948704498659147614355198881977345843132231103576163441876660682969733670898127741426970463251507373704406268899260661733177934870181213120859325228758952108680152516702447797256053531391261030685177106749361539783413189145547320189569329731429043008524394401096463690223329132747673529477005639658256186680499612529013330715655967429051867871154699160854660442726109565680638860076035429875832059641454973174362010014685609848896401462332924447908496253170365892637853683654936646467938096934168659365852385892419725462321314201451707339414630073777836410075230879158147794998451623762619719047543526315145597082310100215633036354234547402942167369567550657604231314191432948255256885634193511630447427108467684835295143092681284500280536947426623848164704916729556409921596470673885324994129752074750267022184186158159396523131116659434158894484088152837552488306681838655940749823551359335308339232004670459679924393824694934647170091945683678612018489783952473929456926045421338987502010104107934794553692809265387014506879419532512718425639597149223999530865788337091885655108715537987467789326319954558293341090245847215097497473158168699914281895399789638390119188771695505637317675484566645478462957493332623218448293741926737845890989806459524163112496491780894065596334612289619651044701192592967606330673496446844776733587956662426812193561737937851898608309632117895572743465118217061982191482865854284328396537850661095045327761131031005936183228515786883683992309035371188842691830678375255585490421844395145635243150831845930943136483164100453428700114268873709219723859047221109791865308706132205957465474402291864463920497451539367255113639919793816006186821588194230354263417089692700714945546060157397848431742691251540671410518611320635371274203401908832774875303790008003580931294012903022658995477288948795231898071097823713417033297110144153441185801298782223849552891175560973816626267233562490697017248940511443559492696858936421413628276939819296227834592163221081812281166054851888419456521625482526804825330867749743485996092903713502468636513709400812800634659129395206467474469990289031330361852320444021598868961472586881166028579601766063040300790124120717262120979630752806128571224937435654125818743048602806117780323842533425320544428481593635715230126079633078259483157832895301889250536742950883690492282761855846773014005696933265792886609589347050483133781603773314500610619112401874718842019653666323804976654038618825590317626168148247052851364952804149859697224964629076623728740935813145121244543554693058445478847284586564214405939091906816324208305371502614277059950820827244312285749413389837837192483401605823748475396265691040986656219808139739753639778557912826156195515086539209333172007705020240671018893435304078015031287039465313714101451001445745807819661043721447310063288784505771855798674690634726250750625506162124091542387337542091522752737992597590315929610472864892177979867193744012595156649694890749801669289074574735050289761573247610069478321766931666055270755527052813159124416303284554424221160648401889735209038275367504771368300509387316301583365692559789370591145519723219720216683493984869440222245108021516524812187247437326463629513534165487362563138310542442353117270735548997229008968427299832395399338595683459329196374171766286208491897936372110052768125305183564896388915798486822311341984425436637396973543723927047796229661356259439099627237719982722632588006254890115840559942337692998372525821915583408701203517980453703317902281563569493256040391310993881422698682701862624779186323172240695667260713046154796749080860124025340639697519064315434359377463489331885575583457591058496446682452030465397252376053497062835786773276477768757139183153902903617583507977873460227321283218962601566953002407737353749843317590046327912699088414980921961447931704480473765868370812210833429763351123114192903199888406789230866061723034638125901829338522572286883513612073229433122526480846415866742842502226723114210543969031053517193548332260789491777616883325242774586690424546979190625216737076934003333986234561756570053012216674024141147889327960375753307598081767463009555781567346822969158782852864354572303917451038155184492342684277579890433805160085191944444985060141831294770682102450644534563319334047521685544748821884476547860831435634025387732048223214560466635830788570493190262007676723769765160080515187181625077380050852642641251258704626729171728597515063595803286022145783611200867988964378966109932658618258598352335147421019095505375343829573822979287925186481525645640974582414102033138087965746198011762015783694688012180962196146657775707777541630326082183833780187470608004658086272552766396304216171616390756574534921248976840333073161506787051105340564767447602633822408456762159512353413355781331962843829111961956896043666701693939380362085679974988237238995325494829012910522566837968495774884143121723431273978439334498792617402800710497264457432063516795758305981488562952099806142693598895181074175343434505471904447292685517686725601619674082032724516250161824917088737774594510927408527497881621473998132904285504117612413406532148439416851759497503765717571586743984976058700547152550370731857440384269545615306878307738606010528148100465653704473948247261489411318647047591659412056633536034620587419510071758494668751514390627590063919871364155624018137530467288449854880330978341891966677219795479594615932531740160397959057360607235376289800562542058235100126932044784847477895189729375506916273290033158556820404377919272000672120935671366484362331045249166614840942888583020246993969705365249106895915090447945194196621424204719238044419322435284977089060211291366038477856272093427579796602803172459979979847068502162760867075496232173306370798052179183310883982336135533325725704087897918665573014820845620413069132008068754562876351591266835783151277804944930242477037940363698752161497820411172858060431673166313838004293647276491013283360819713685867062634306691114042112162033018308572225146792388080839887023964953636217296740448042610787446510688993336258477717861118029524100483169893412477133854811174929913637601377109791178729789603021380073308455794094975889636100544711574463291348605903531389811417865567288211282146329323151998259971289876625816360392495017714786802119151755616125601812939026161692871894841422880855434409575199897022722031426761154851406767838033655053922495770681940309290969253753589042220163129731306629092604271872162580558264887716291502675064618925773496808511833051141786476398639385746618223601188863929707517189903862451787192283427628709464581404620247197649855684357227697531885694805757100151000118839867084961900576463406493249456066177300243192448630235359559552713521345264781272153965766128591668728039170757377682878132465105135950593344099497998760852601508555352545748398751796154152316027974970991503135466223631628003981460276666238022734670484031494827294018023616794403365304129928633896332325862334671030907664599768192895049662397470345424023650019631896105414344454851026385555669162405816760280244403146077550314398748094023964944192109191983438705097163830814795304691320233274077725373630564046037072472070888932865079659497910112021203774149963027821483470016824710746866534874543903524457354881939132501553319400463426977897115798541514907550261680993525060366875442702044547589225332176276161795235490413725932480615896079791241822298194218696544113174443341322295070064120370038077975148288193073881319899295211015390585703616748087713761308474856903872640429299123010762384928507405151814205610089253356699976840712419140644911356569594872623649473592765180498875252749682189528652967974609086260364952256154385408044682834814612157760147698553448539994180238534346329567426328724358066987265637566431598066937820456833658703073492416898241889174488895776418107714994753775555401966334416815282581793827205442949608052492179664375785709333043916087599557607650624563723560626346118069084940627644014911563970227563417519152423428553471538175990212777844414324574956152942445795051527239714955184804906570600690002352174753741099614978704333499047272977274562655871355099607691293311369660107312933902976451569301086390908909656950798393871987902543059384946543628870622861017943810746009865698810151314884853458341431313253003159655569029712533972559446175913497457763429074680192772335066780169610533071219099625199890503977199815283372236199671599611108570139150347252332147352541876116532499119226324962162912044645508630510284216465586041343190111519234628933037737193604003342313328376002934000862449914027816874176921711299755882181834481711556872963680474571549703013058367379775792558643596884941958465312734167292678558916939157922133357587175656133323361920408131609931827814578673940290739086237801578966352037977837932834982908029607399232138253024396484462913189960734128253089890904547238061010121200873115741993503390392779289492085306434229293651833819323246986836273686721244476950912893183034770820197176626936967475032329587224168817845477787045661392863198425971122063437264936293073748251370134534499805837694364432930962062540344973874075480763727886864891014909251811361542701547504618154176562109554910215017461698380318070533128734207160967211204978576711518983335792648260502864113029360087141561910769348344358072670176701105763762675644171123966555834380454020187222158062480816154582777434993708549418197206625108293058363298407314661697122553415383911685804076232223466711652383323805325764524834340169043517824743795531999851063930506873420802166319782054805506836599704567818086268261357317338627077340615912982209281053392422351551877619086104411357612638328139972741972415380076664162430588164442624994012670353250282778012722538786959710611398523181805267834053389506523572271298485267725584364409410521886764087495130101292047098769705193203867773825727065597977020008380919461796588962769303594300135679064883670178271661783102430411136144684246834130651730052329659862393811778956740441930974568921419768747507131688902282415295898328594568568402327980062750669794085598672181937230759746510515650984109995971655889515448219501651370194395463203297898540057221768392498939381353831251238616035968309893980457273274270682298432829497918163896453617886938057527279507324328124432103609141024841341012466356916211609702645948107480166112581803293250171381781142354828979797913432711298353705601984716164008041147293789979507875004138336264205463010122982102026399404893642851256106434888932348344804033036219096029228796979441073789306760079244440979908559758739004091662609541197019716678589763813350791837352548721700651370782720523908916190086568177149319481643179223106841743951560277667091295493091131945353959889273993364547592455913765985962642400514477465044839504695737212244255785856237606660738513504204121182483672026305983996071419975700248865516360111859284367953264903807512105729956955436573264718899700490860417892433766975894273682322626828469303395084527002450738670630168658189468565611692275145690417084567984430917342434861777983015660175730699126036923788796604792880208334017161178310280507311459996924991632516831474060902811538890200063202369621853868136932488714323858562613804170942633022864660061112263496800518193526514295024018105002246248191255044693592648244182028504822900228735855633132481846917269263278221156781224846805476210384687362533802821431450531886037114205165504188980128179921342706541169373887312782417300200301417955305369029527290763837231928419449281360176654063784684351164069117334166411869484226262049255684501207508015931088293967371094446787654028165503191098905498246002503193350116547810322899700831406607863260499451838369599197425118539543415926817402700954198724042747538092388352869525943761354261093162089849122067566938059023075894308960975800266487521204622219012459420306482417150987150093449979378332505507753725434394027303257546557239232734208418658648569020099957328065671583015128870000751085800639535957777697198651905721763526243507372704710353919324871911256184317361292552282448615145029885748748410777382891287902616319975630815136280419349792745226648858083877907964919649846847220406999445082757026730821780432793772630629821162037729834967999859935286509889154623331317558282971021945239200383118875959828514411337259427654038070244114046599293627994588423553827627310609257220619473868988020660999819462509967881078394129784901860838909219122255699771887652538270334769200626493161233446841968803627957557933509796930382201933618325541576936620666818799442105024754850871432190373546331744146865290134185988789055647381601727296964579122031257341410151525078521976155189187577569840279356808521598987812309077858448234831650235928686878039411460093607323841382976280033981845199873036409386276437885741247025525794698169922599683422270356173335424064521860062767279713446285636868942410726185333080215728866499733056252258204763625666726654534304470779796327256146910921601189930668950488472266538357086850312753701766699682191976143896933665044956468486005832381729373413290190824053361323752941536364905098104709994811769449230351218058724571399119879392328273737735470580659312798768183494015969932960875017342142229303521887610021223889221149849238359758128702143545415872014952392103719880179202451738410679980060011246106976894310072321572821690728819993784740999811246560953673454858514211075520348071127069650208110674446601238080086373174333575104551364858435750606200444185663960334007773344925535795798851819799201045874114707420285877657636019507608013299239665219806569045855130382074102411904322159336046032694541542207225872773687760144233141852686805020051930241680936761644936369716916697052689728296279482736883225151767868678498826926109705680655257225070207772828939630118100572389358558908564481241227998202938107379073598810949198100343542481224729907410363724547868097423156342611540609716177259845320501883185009403228651688978861520464243435061649144284560333236464802876237224801122887312205270320940615270269985658472969755871425729009051403020243411341240494627619585669421270244789666503414655535427126330271251159619318545386608449870207710049085622580827459794129730828306765513667442210532362137961882148353267155690998769438663956329828234086583568861080014434401357063643955218888887871123240969800456142684414606024629180544968281556700428725123227387953099531141944773581172818653235188872996087507305820005106066553643868981999117664823808899145494526844052289831967773935563550193964208151137060427621970160115280000084199855675995288362409787083858179428613002235019378134214472371089040471841690372197097738426509817155329966646654758437580207519816488688055375022062115220972126065408678432176868623396490859573198310476780481314769246104738319224957137744855884217652090992735040452995975483648424156598603226456071216697564465781237329360930508501943589246111522883661034893612894519521692602281363343453225683640069107584362617886073600024215413312962564626879869822056942996368596584490603245579750076657200158806715499387654206235162437194901854164298780285608442407148291875628465925922170010998210753019827236623437008396980315743471222344192333001413308597223124457141969996376048355224728329198785912161325002632130079651304298916883188113340700649835713733212831505282633423485953949120004723137281302178849547504611841390479760104234703366265176049037099464713982994779583927878626922612419866097552572707537762622834635519333042488640689127975618257466964079202523376920621725748439649529772421550818708287255949063781853499674369470196049881925138075884548470786584360477086838243275184576911655650555951813097331581958304831903529240439329390626612801615675399537309839864027864436799243869142665049650036508025899452024443607169914947073916354043620983612148302439063794984983425660363168462025956388844238913122873855705885103337447239963208206572365203079737918187175897067238245577030321712882498089189466462363970359632436011549462499368017063949512643209680553814617942763255755211315317026723851541810728399933976087697141323564864757684328352785974484568663997287044878161976805716229321774444215217686022552953031504880348748952978003452947629225526371052279866443680166127119086787191632373492976132914088621761234013001629407872499377275461816870412042355059101523422103242024632861140299629806559640371108971257987455958112124510477288018829022351060931186877306048426578332951182053072221934642034819862468557044732047170105909858310255957172250152336703595715116911483713219481041671829312943633582489147975740970745992835912000144538617090060238775667531762581301415370013376430279074088955727835666572750022895814193287543021961716515681257237632423236455925458034985672411164052498337823056671244270922742920601047733478726419030999960064295752484021742755101423478972819316779288249540968997341928595227283768601046175792396705245580231547350219599035790835227043466961905163671038239258630447366737394880652274164734729213118013730466146289755587705534485142332417221215385097184677215227272772541686190400031727938860031714183530014514371353019428557968250778927065020592186826890575834662103045423539085521564237403338584261293924212474699818726062570958709995634522375658038915339116843919080902922338945399055432130168899002526628155845758444882308397773014026355025869631465643908885736499192857306286553649576634799976045398321317885841601408915072535484695040876536632633911508526357914516762183706507993115496692451428792089255359128540096871532831161452117490755510521361286825754213653059918075338559825918870029890067404301670667987644707359243652962342540548625464122812677450707375575900138103610563113221958988556345841676815098739605818638758735302010520982429920310326062176091763368728475139556286636252536676068178122415701377123353933978548495000021719650107670490522279262824396562109870778098888375751491711187741369522107114731258916433887975953341922596708399882926844381950070906178579468101602838782541840162254413469880595584078117188909675954672256368973502328242172360883378001046433090289859134331841164432744242331935863743246217254025591877740208758491017736430242046782267994884557248123833199720350399806722734014033094043593093726160820249533723108447157813560580294706566111005406984946287314935069530632187769474216655518443587163335032109840261718236389868454391508379027069288401226344423102280778665742456598102520232572432645717644098525260620597227163818307333169134152225854723330341207237326659060669852871649040273405679729203686042640785440748939287284438584814772743374558508945665992317805627061416326168285536254495190472980843874219068758223298973480228897111351280712058937257217673928581504580131865523467823242343183531983160085836054867537362159347094006868092435897796949709628692476033816136525730314259811019832083868523725906755739273430824455270704350190591316556967503991586334696207700826973822204763232880336743424249037781673315788251390798735560098829145234791696193132887800193949283519029164831665162296036461059924644020582359413055593195774112815236064387558587474280102010668676973931463552258322628484464787197694947524376516320012347881188750827948014041964874325931287824126432674885831523896944849110880867915646377547390186915424636252485328774165433822415086558670441607002979006086471448671704552217728598885687472532978585273276115894763673271388072370455657938388072414998672728244623264076372359255292279874865083983739278679329990993166922415002991940201918210677837302745833782893627341980502872280918353876995487759303668155144264161508026974418637262809455863437386474129293840111903007156018129702675952217018782419330340469203321214135280236920815973053939986855649929110866823652722390228345402097379306950221493757495348879517378077274468368868606729158482277531142645250858498806501798166389869969366790188637056418001147780309160260300274594850191117374224371339859614564055115453214977172599033349320446095737453499783587426123762300446034022248596240339072741739765008312678602487157721402582103861474681249725230923067963793017616833298705924534033001594875618375429109409632580743476103387942573879654926339771921460622567812619347963781823664640598018693271915890626250350191628276315398198597268339316857282592173255766198687268444105173910966614501910593706830430586799748220339131231702566499768752416301889987041847575648742944671818840955445131317283528236829812439055556106051070315548948923631743243057322071204607169842667029232178823479360466340730339667293197459483594349265836613430306761970603194633026485067719458638490390008623424587820246986886003967373868070816808653632051146104287599629426928723675127485284800859041235351630283816547753317460867777098170739373425716644204261445785205537997943722612721442545522929052066053621656348154706624030719873620029887026671330610141428930534707914232690950695531247479514924433579401050629321241942323414011229407673605992608543683799914912780384985046017255845187857975998262658483580156702471240101249660446993712372124107824389605864052379535842551583182362082221503052419564505024952857651830383818262633846606097699718453339397173151336829400024282002402182812419454857494523443994484196538800392980609888391371906328838890107759713238289785795010671836317182327535881666105719151932319140711354646013820347517832669098429732548754056680845883602145896154256451323007697899153317635960336821694714458301096021714667322217073822250279772562685314134767654487663613119872482467188790479386908606363074904398932526183808585323398626284358326802263053796104204253379392976704826780296264020923051794326643941244513723263071049061849459480844617919791218635297121355981975892080199226502374449058830147766442798074022349025639215184711517197430023946992397928922678295111075876513769438099027471675636266797693414655896601992838723535922590387070998734963923834968243068002685269901037300976292026620424188247429702815577640091542155003116552552018801083878141592895900608946697230417844824590920134099713915284066463781665633027048043976386897926609013076111314169670157849474350793588271835260408658925175373806020426588847713834381936714613088469624639144523667012837381466062633673901147701055310749446470801998898757505251344491207214977544790116272521737094032703009028478280568957648839905323685602617050851585827713096347460923478795198884696019891444075174002334869492297722383546243443098363708395823412646828013243289746515067721808936138199089862954259906958464121385069121019379510021483641342470014509063862724162221577151311521627458083673074984490969929346859908885805582344768369452299170813606796238071565461401614877499548338761655943549423431955677518040453382931592578764619542728062880242114037004068001797973364249837178850426155475032037037710323644560341148833234663348266753004827886388238136007873714826600335380438880510073358509782970790136103433658765224469066083492079002545270491692464168262386332766588953889956714182685361405594450963727671186380665171184459547052503925211676876622622636487698058654415192766547483343788901380657628102941620658876727487978782284618551918173483983710766280475068806841920295190343808764789398367392116381786402661378700971662095742755910443135252955340177969630618257768021298906494759232310723827928197005666424563435259724154220737629876187185108929632992592383054242870586523495705116905489713798226263208550831792249610261583477168610962689066161382736855075944969417324266528663233095070840260107494528315871404390742851722900207073674929408437408137063504858687997437346139897575638339850059234093198954457448831601215790692434572810255423756654115768014118017804572953481203918496488728576814536340083008821388749302929295635919692788024605119629809468671399536759839873660663475316062493411952260640223194021121983448017110074973134408733608027336987262096440158958706910526470448815184206807020458299556951273916984595650723518415665189677553803410727400547700067532532865963824792050852497660278567168075349513670347841561798911511732476489240829332187869741014447684945409834000079230292828033261180572172549526367999338570091902259764180285878864866635272348993502801316595743187284007575970192116185775028710229492657952793987556356005282280879759548705354381620007115662560318732988464139530595260973582239499652626043972968443067814035152832839657309267635891313617415037272432158440299505337359820516283769576658948205512965238393474778583035791499750556967377003313318230765898379423418503333459767093908159741699709880399775959519382213115218706766998263187573649301253735328418008972384756069628941946125578594427980654816930333027099900915997079443555768411781031813686913736873413860315159198380314089976093570127013719644485578984562216556046846136890594738919715838427756338287449091815229906176803310444659729061812081991284701320619635362735238757645619956215417195185625006821626127770612003683387578629269071886657350611236837965471034066367228951689365800275832953047383144190154382916872768008995271006750386463700156605239037435427118366426118052650537759789052287965448538307659030257499774021391201542882851978807303164144210157904543009592507264335270285156831543157750347742131807904091481579083515347186348492353848159237825035276947899986947369978996354763406485849276132899696979361313551903911068668578361293188012085332188586489478820956498397906630023973419601594349213881270369606713692478301972469109487388636990668607995742020214407480019939001925616668542465420598587664483184496006918675777840541861459532563007622059174225921571423292692193261802223508816041154200785217096911064176218782019057354375689062598008093414488082625117170828883396899048945820958133535315496303539149166135908789091378826482951867350692593949705288335346715368770050917712105046711946002514816872594618653057478708827869160845632860102055792975604473861702731991143046710863098048810961256422334529747718299659974179090206063739825043892368757901814448989142291447342567400027782395947973795500311646381436187602476495276523717376218928745246281242984103751153791118270229116015031336931311429011525575199766867371731999560649470421329840738594336568097415969809904656982081123358007046332937781742162858693507125389861597890716138130793813077317601630598008015467543744189648957581417572523334197839091243402727203361117489067001781292862791546642302338959960698606909349353382992141450572077257229465872811662840753900543382786617344089435795185394866168657400530754410907073666217079560486654654804104959825968626166347606537333964059399708620616400854598718151276657079356485883780811051209308953124983660280124862860006474811173842740771945612060703584977760350089332431967299698085067092374221900852099749514953823529971892417414354467831831604220990705176735857291475045380708773036420324049804915699398685230051863737720238507893338966955812452594414607981000385298657228714999972579773158769207024152680790275351681138603066655794885995091266313628657794791131544023753300851648052410552984830470320894425488102853351247803905405867405361169986017809387233433477685517061646842122355686328982014568073868448527447363728608918920599772042256463762023039786799256086943943748350877993940008938826267025803684627792924224499267456486390739644995908902375315077188035345570829027246220757629472698730593310050186397473335279014933339310708383235955240004238537777257463648144758017170709360698303231796005718237872856628826795171709140430775117697750590540419963767203914290220518984609551234288123056440971087700439435570072566404761577009525841760593506064146800294372621618153218521598522302073627326579537904941394987615850281420676716098286276209853039200514101442595743186621870517669243216175191339437141714358190467802385743893901546045987430195344639233337402466379902901923527649578961688127223341758842044067487416754101589505619178186879209502433731931435333884819141116548253311155891031877800561619553544158380998768122650619520895228434169291297047705694465791014388581051270271864412176585898896614921299665884565549901247239942325069828617411804745239912873376351761788454289607198465204175500842595511611177732348830560527058581270347812276002702059796958336376806719732628755294150986664013642216427671984602950660885350222374902613968862302001513613020003460319064730881279666853870335934416715621244172201145630923278998254129909359682939917601415378816145648440433170220486334503378525135905393659544627175211282425026826887291690408345196395118268056138652881880525142130153874374744639279285579787772127285604200658256513484583369988998259591212541020306433040075276148301416147581539465126856095777223739744759106701206063242202759700034819103738319786981660579370958298844631436839428560567920283159730237941714094482131141147419176579090118183723114769863888105316137732682143598597475699937989298913344423354631363517975812440027792701515784137258558916791659815619194843753794575980706100719990660956513581705375802831592993773202040837628608681755624196835470249187715035240656276479370404431836043251247378195369268337929436293657969067127569267424986493233970080908765042357677723610706640703796163192713257853250811468567709710136313562407815385381807291121656147254079454460398763545717684564765705668107712745597907947213826854635785536547209195325974279846086720535737861237650092208236869957042784098449987307245648463421807010750017179367533590820453376319470135132553584636373745548814982440066588537634157586651461760626877589820153213531605954407253219116901226938704593687611197410671813193990734883060781439535790109535031213688293145856079570373084986888155846879641814899321487189961371566864117495403814170352187104700489905493439120680177770997871007793880953965529020418962942486382746345051474534601999269667694840248672056801184688136807915296603709101225742857795163157235208913093170637436966672169893898705502415821985136756993881690088404873945158987254466758312399256415527622198283646531102931310023830898660898218877709680057008588461447197861122041491677624036666268472268702137309562956474386893006785732889201661324217158535935514006282164661697502684749197930898501536060979118845371995080540253721281118762873303693035125250782901894312621576711414162374121967984580404581784412717491230539851033772800102745147361920333431970581414791938445237027295428400042934159302685537556949379555274962069409897753159268631710467549055449117442976803656967021912211862495025039972557384594782576650111107935643193003145013403923200339676104004939142447529190563930120188479922907038394464433406215774714444302164353035081921682538936824683556135328844915909066281844472502225020005254300298885227805587408447308089478541318443593840966982688349406635688542412214183392100237055275407143398907332958701165705221231592410506296814042984796290781001645059384791602755985504649593916498414757888020505253511887925632486297680867204359605101620353601869545713972847371234799181581355691917606475915701373543624186806241976896764900463854303299458839538067907475684906227740036581979807556021400136146500230465766804903701571593425906380230863597357001173015334242889288346479338074104777239890800558255320214047658818847466842588729783028723921432475159720156584302892275964727786559618962676204337913889302508363412090897447406891657620777629161233935459714761699078722998569847503276966209573805403977604652777416194026568704482813280118685230410396483968046571073620929183232485635744836963393117045109677794252639426208462787142276459443089523393917273174700208008060649644735021280957678689851252955409624349153487664453080266012299844254369524203870725847775860442490455962648660148186752146172543868849940780310841579850887705461040979737062413327155940669833097708207486913086367677813271529273277919899939488462214441985468852042561937286032003717805090520766779226972899937397498478493789405585024542301426430291037167401559837726349878903987578545455601977218994638239232512932990748354850460812242969544213841567132835799291505242037838507204383137252014928567396285064972755263663926864860411499228821211768456462728286026912361117479922427959812215546533746082008675839357403027891980511881047470104868215110740819265624095965530632415323414694434586892772508958770810997099409192357726795720306660229828808781983719397594537836415824668593309039782919378391146939293900205873890578012001769399572143639114530729016684553652979564703510120530566533160597864006080394971521917849651996351724300728062872410332088027140466790348679041612769662044655266645611286568869588244000857133574223634730435255820271138543139374870181748509423673252845148303342961874526241543207154966478391907139142427906824636028719104816615245343715110086659512345909135942501182614583977565300257252920876135864088764069157425674150256157828560607686418333151761735826081442473961482498954083676572354326693579723198615290487032933799933114337272067094849513234063310943721293002491670573078033746161161118818901201907449720515761247508435307653061822435354103149932073646853818791794214739884438809468594675965755225004452800415202342838359387957241293621752763140210112992814613294939214482896996481415279531879133359649773509441111610267287911192227841531445106015975982703654000039785633161824259498499009891545687947980269692190034831526269405244479170456782388184209990635038327290984516357860829837211807597857947358696200051844571103974956650861161381724078092732079770260807918400352593379007659131817130286230697745901717903623366220554944250023749512650657077871898358585017637581123901831839014464031752024937281032217317295691325839785694055503706165056980687307301146578355158928609658753044221055472538802054499841301424725035574657323740087679450610597260170024223413851809966882239050908736367252209105787094502468006042935367814807048169646135162273895838324971414506492018059744843165944722032884517071304612106106368922664052399957050708396880988997606288665492219973625784383678349487762402661099063763413497546388539872797727390836732200638782281958423737466298389481235218677982175019189032885897861937972845936059382921598065260887292657270229132049521658095166081648295611006208970114425284609519375561577681651560539545875090521331690584624522340007300016600549024721603668139000060930388856337981962184937724727887960591157069774382858580360919877543741448529042773798333565305047354893854224031225099277238197137719507799282208391084074246555794998889790219817940232113277654167404650470367172209344699371122746290391087871667053508030977753005931221134529798197631067815808121999048197192559251232738917449472726008829529372038906603812628773560515907560339135386006685262413809869094128147460431004983275317458582212530793599578792445414803903144200339926055465042996397971103390783507390136559128106664795175386319120566089280582084583869357567357134978353139264843603064689036509205256958239327606166052126379469485937632661680258815540159779219868371318102806279920338467887810201517634650410833309885138866255491999032516473897331006499850460056200328597442132143259908504279500843277346274226585505033527881598896119086199700769680104553804138011861004662370186356308812133851221095962962919425556918023701074683816363056750027974483735420254794072936735566293330479305696114648956615819609558484180370335256388907285372111741589504551195948257773111315911983644322257668272348571605774382372139078053884913959502054464507761536899392004928249536806577809847164396729847322522505185533057815822574648226367319577663559519954964032682165331874336083898309577325910703172226502112859183993623999366440265346816787621727636977644063601255471586512098340554750119952985969053928194545789648763538434338620087229676475997536599434245340310039222655793952080408736448007650488318494965016156492014435803055478910482422874979485905192616820575064462591945036064305144502787037130125618612564003294924550725395098833257897375982132010429302904628220954388188814836035827683445639250084620884196557085239151738762394194875069676953148152447747534573714498830240912738047503742542179086509116350713950744925604880127676851406033656170693146621283057216366003585171411000042657966145315209071292503674616551185322081816004683910835563270537220686503279456064199786168298600531256741602261634356875953939107948101997068828748513321755425901760579536887625422397747519807074996331170459603770365221126558305760032285757341520017147834298901858931082652937533864988611963397938794093833460216994770076893412148951547098410513937701743067434574046703155205670342465037256531207684944907554643040907875135866932207652643771442793352651540835645562012940716384020011501691199074279227692357745994677169339642315239579254224121389588037184608152555221457595183140950438822382285963498550056185327137846648614864535876290174175345974899739387258219918815611433984793259310444521172557633743985960733959982421062953563722922663752741789790424316863542309211326977247820184475702082350667276882361539874124772848229557965609266404235934710579207519983140193746740187263565425910986422971287727178449741150167810846808367507769997251444201085351302063267731195186296270428711314575582329804469473043940290524894198869274213583881670397350628893599781691046688270105316327985747315822603983522884324344245631014200820180259714787880947340614039756932568573180982848676244635602656119991790430306321795885523183700577436679695494146273270735898175353757400150721343801586407746987486931411951888174056465107431564000495145109205420588585753303928932689867735584070545198470544789163041870095049833465901734429176597608168607089215965400449198977609013976385737271626890998857148107542086658129591948689511124620727833706941092849352715032909565454689926135530196315729125749892836922905160232066911921735740814432420899263449767313329524951793055754427260657334075098476824930576375234955754961989834486084989225005087895696303580710162038114963647617555652207463463734106753112810529232555090683811024673305057815847097450578371791964933209902547660286364347244159646355876917811768882303390302225005144815008657211075012246301341752302080626057470938449407845881827998257032341453952933854989416136731307449744274328612497469085654886161747336117005333712862375565143387186374729502328649910376021288230412917738347201275571612029600193208941455366263934711711256407260046371258361293888646535849276178511609863786148697476981282716264953732576823061951017778460025813531113289764786457320579735267793517340798114258342509035818159192669484888854705142716002944287163234316827036885200605301787069734456207186114381860524854594785827947834917255536366768496903465541164611864248072638358726557529236493300069081690657772830063497644522621539470330476836532853364904034576856094510968812255629621892400075280751458614315341853228868381426858096915981944457035125259465407045920566009243885092508413073858169857704378808254589302470506527519821336908937042708470856767180721135035082501828495151916042891095314569666214807172804673184419426658925731418555834213237569452033700900459710672275193518398541307760169462933694836551623018213340244376550697718223681808128651752254308462767720593964484891309965957823157971944846756639381748871941716333491742316615398675853832271893833783699714125276385616273899123820800293680297432844990534966874741390493512063579911789192366922525875881539068217401723027659917547492358359387663136307808692527199739385818309198108748561840717028524312751979205417756305772083507486419228322794449933467387822021845714728774951456584468317427992104585659760434149916658058244426609163096459866197426316922515456293722302388348575000572132335665265587459850291048580745187113360336542067071039541237795123767808223017262880784043135461743300247026179919363178710111680797676238882706279130962681636683639052954220198452328905617659571285817151052535353504572501770579479773795207423517585631406470223596514042177876248011315856979028110316820509418805630235194384441094728617235933715706942249656322774604526749065730395640630304186600027630675225967663809170596849517505170306439756581347197381940576162505751137774803495024818272839602858038759897396285313692749269875105677708699281063458100743505732086620605318728359735165851130877537325760645453830410599906832380543704680260673198104947291521589035920934022260011702997758981103697737762698123770470631580898517980951329956617720915446236152306270045542049931875547783280396610244964458126212893115414702249475924318892959661272147896498047518572091882420065464776979289367264871763902694012012967469014494523536836136104239978313558185864936987864251450327897990800249719130332305194210946620561521470591894547934327096637560209126185072137150635799762661174128675035363924037921918697945897810219954106115562257046400553417873197119014074580709815415815565864155353281515681484856280646990861374753843912603893230387042673661200763159426852041604235513467851799343202822429373693472793508265580037516686647878286286310651094363718694264985126658860207675327531742423118683245733943912402355598242512526483882401315112983808394756400402102696724358350310220162016269423542973947592170486635343109047974745051008263705977377678062444152105905861035352721740429870760742341059205480953758761225563437983606153653691171154991239131075939650057485975078482514887373256666802490641858603530373264683077704315402810124600543218412851890096298770481175091905770992599779015751716544208134878089989774061980875789589114782155363681640845162622055501557173657839097795082523457744974737035565953009584300769943960618555464841926602455835848459461963026771346038379937379843685800622677527147411620699448802890674363395844527822161061544570131503625908544482982684792920863535134902639207138698993424103651319861028571708914306488991209688427782065222998054934837230270107343127484304808761089617986510320028923830867491746500142692024874092726255672935297330297749936994685432167549686840366633992915788346776061314591418474950562150482934054036519935040480481588465819686106497980136695868836720526201818497580042331284570262034021796598540577572105470117711676814624158322460126117053175327848967636486199101208214508459225746078713286789153117049285327362097444689328825037432617436832165489057724990402390394981511281826282417145268790109574419391262971643515781475094838265649909425747475953947146878669481522367688651255370232320573684004955765585467998205054543937750085276148688556863336887344981089908062614291196794686290707454838008046588698232853756739766328509017731336813352054736325167678131981932394257572427451858216688173907570736465571226467930733166686884144870667582070239127000533817683381641630366265982720519102576025659803279850532273309091561549299024130403753928861474037409986134554073990774674331897111919105767682635873512441269248641579297514697114482058865648268427769940478350108024221530334654113164671723211459523097485207567255006164315264292484673714312496415238235092200336219767954669168408704321051831566309834700105460980537198669534866514378551242986634206673065991981146135736346329993764391033037544425627055706489581594700457408597074118364949157546274734755039410513800457001021612139111682512832933017299421076861877568422569096426706341001528708981132290796434116001920465226087943643923074583381269392528059721852134013521305834448161625619036288108501870887339478324185917249384439544182763885470261193968655002590880686896956919738353562067628301961593331134593458151780947872527808163916245350698916612530208670379883452152697293135325759285117654753574767693415584878533826157084526802586016563276244297888119671558681751985042197464129665051255764313978266333965394601654845104089975815519706608501380154784156136573159118730806917338969593772045838175053567139096011404188976846987334380667923456650526684669834467832509513864447278886633445344456312694536690656839927710062759484863428467761637360089038463695745209094701567426253636132017454246084292863663654659114870035508026422935136031885086486134994207100567313326325781784530344606148325280399161340111479431700692513104404661268366589299572264985724234420138618175508682100934236694459391016604309422852060909619377878070975058307427208604595465284956434650914472681506815648650858328390871773635493062246067464084765407928763002863155743175530460222686037834536770536318891413094539872830555047838810384950082745322519688004161518884508531455171841399223503725096497323117858579858904772855858430508018255253951085444007850243308778802269641542654711992553707876092481423583536077289993513940235859324392963204653950587385453868894886678778502245740368199744374406496686782200782477396669684395978517702410614265229372599931349936783443524590865734333949244622086315798837682689608282263890946718130791506644006271831800659231783649102708316636549340268809691767812653855681371422252723978848243402285030793569378717829960000454098298092835353372282900304432964020717670899902982596669645300501393215864960656660664477160043361689977226288274258869450244479082128228620936893237742691995928826507059193928206503450523390449860144760392632829091015712117640292721099166490229309596118475902604768247629736707810815051094393560785232611947725646127088619149285197930231720512513495661186262013179973947349389342132401522921724499766203783272626853340402489852016702668419996284505789944199708236372975422545798738823865592191485803889838516610562334010687280682957843450244533340727872948121216739527909187387989482889478958124462459789766707416424709958378774265302365654321960153360370881789687353857683827507482562026656910388028900272768674010491547457076965325464009101130144446394418166391178738539871576679932113115498205321883519995037357865781237176131924271408921442388297111617133007624659125037717733662307279780506250037009795597621357307992670383902142587635844821136881829394865905049754593307105801822843194028930190245564371578271278088753002148503266555224130649632491256986189677591964911392344752202100065211637735811285572968735123725713582088226773441862461089986351964280931513559035593013685449628195633245352085048149814804320665975531128613983353632448798338525062380468443436821295676267659467954436640596781268875115999278676916976834434246591034204803377213035560952101260058814441138989421655468447033965528676502378270779982839015180720177411243281348519724024535459263458301527109280797232196367274456591186656662748928940058315639358620181574514375945499047062979189978942145629887141973341496780580391263553437814155336076302859277541644035201277901432245881961095515765707054634180574695496192713130940049570528721272490490715508004665557166533604691227001161336017324983231522342423138710431436618456756450051044109013348031815668505187812806462252361877766031899495622985724475622692425724825800776930898853076443510740056519840979296681615328668492844053039150607833705923901839631469231317280352253482236772103535608773256273676090084176789957902912004597488100512084462497453442574919083984607456043043637847310710625162640856071534269950578494056679870683026767134696089561629429813808721576828133680225524391153768437713636104726273136707658422821552620835682683489922170306760161951488183620401757146456285899511717960967339595600671246626757076500425164533394393519056286615241110119556163113799481543216842093614000046619365706996374206784221800929315206194617990523943158183985860407404536664349348792498825011972730057420314345208628210934996111210273797964716364490718753603734339437918742137750866405818439322848383325767884440790566288248188948273891890491662555758749301702322914026489235293038203107799029896091392565965194919349016215808829823391253776093468808064080308662518863592860615868909262403094457255436574292214174666461624451770797815900394213904101114870713154309160021678230799558851361254315558204103610992292778705954284594772318268431682670132829542123109377653621518384392674840473828847338239304971005299788893542153350893404673961688816247416623111209255846419736051016731580323649369323097793189057270013626225251182483252213553116309697163159491291583038372937000162897599061426444503117302154227513976405401561276964593051325353058721441271405001825094284622850304929810414504233288208678425371959751662086015074442498268271814970293870646512362827642057597295387998017521616861837108719251087475238874403549675281302812107500238185236767602233356650334875356806844304469864715833657250166106867575508076687702809187018849759209475051256197441000307285023523841827530929811541030003296455895205581629222645241556193907408355929859241156573766728022351623964835488002979827763855517480737161000187197515439740387371231287712320351546045870307101631656562707417986261288482224856231485529254260128023161717796149975731139280032481514963056325262314961934912950808637227646229198014803965222390034817325759562832402414905185583611736800875079779370123535523878455268507081817112319113784297960533996972715551267011884136666802519807163218272252263838733845172779726354434872444168024842506016114092262283397706720860832570217009107705602900259734774481244438690334960331890231190037185040207780123495880373682640962462185740178177796999537188384342965470322667853973490546140229785388822639724582744849375261314295362640639513879178868571809724443470423978549844813233346048383993231535406903358464272844574486160040103285175944508553613209994306194783147389318931377656077836406594119332605291906675114492420920253162879110711380769835820157814339231048127668164885279938685627065860466862869803224392397742533333407377347357488900237776886271454248341672888592227786887585193171365494553071806290930184835926612189394163290132655697577014602497734833599270329203590646142660099368184015618582625834881040545299351229247948899962387355761942525723936934548714556313704247628896158585157050388377372082520524807801779981691349373426928749034494087340211645207287603223238886430792928677478422309013203712921232764631264524213033789860483131388014581595966781126258760293233681842858217430884035533101169829157282636935791735946313757248860309842489070337354572750483683120955624808305061175107531381939231573227252889170046305011280780836146347922634617860112230831910498717619487944474710723007840883404099614743368663976755779227646815876875270306020063738709037194744432352284918793214218515936014458550749533968525227602026350623731596021040930986062531403522246634165543620899748421631150826107247084975004264885520790101323507940914904963782504921764868530932152643786331431150148744735158342862543192798248914485404200108347072253901241412885571529851774886825226872246321957081752532044280226983150860462975186656282301856144613706288985364121005641645663736930913966205819183355141152019109838807530056411354422495387423326852605614153725850098260544242456577791718445444257974371988229071793419052783855143061959787596269313283784440365378707353137619785241005151491884682754732617581679001320751801754712874683847587916826300639736287530345066935203112432376680535787776781363071736872671514449578608150124945779893721127570935588193314511926765520769249752142143618682936092386808268434886758904992035743897656068047862890168138414909039934244726478178940627145718733403580008111074674830588867789993759423223540056934281295370165030037012821809728755193200019599485947075349114767772396028403669129863129706836323211565277790638254320291064314020838547544317814104451150483100670608218056142917699189533553679737764333543448555053131980828954505245457243003352824283170536586278614672337601328156603923031841063050076460336242497758116422434176149531268043342597005942551567233554045164622240506962644609140911990926173758275603469348889080476526375345494245916457161738054207915256671908035954169779633478254445490731157024770092898653759437144713185604658633394548820555647199456906725543732347640283099942492805186269836216886350053533657679452819994852335046518147265019450315210586951727167454794381433876584296322453492519799234943247917244332859355281498000661755586440920790066442531463953804992702650380530413759895825323976789956788754073511909521452704776651141191117136278514913188101431383775317386198810518387313861954395470259322016022932333348842334856588941783962304636278088673795125939054435882592612644014884766162223316374159927451084818589876969440301435397238177326591199663475675394967772281424224350972494118864529260270425241024505517677106213342948377585792794910009798089759187913588247818359632269819369320614106744135832406887668398713814864836990133343393646566214111410743110150758358463598735974414884573929260009078227272770276683221190782983846541727091807637838511670472528255975294286500434871328580748075102031104337689018358106600057012956814248528988473185269257955791241661100988374227521230948470812553058559160802834604895983152235101028952204224300267874874457572525312880388214588388676840963136963664414730582099535406179716387661952234240320339432274098247265155638483608768249623075442821648741301348978397376065621905004914016752562008719991419090409562232005857894815807217354366967944989602407801792948266253271004456840489498951164131060165638551698246980839054084037316442713038688220198324635866994110037472315064780070628352043015120354235140874233096560679970184044947433660333336473313448072762494651425248469708328197961311785125104816921109240132001744660718122668011855791241973948615161688392913090658622373455006614615451304677027694125585629363499257012404469031936561908042330721309594415047190614244138954683501081375375433845817807161995830212427267630374399239488574404474374642687253411498284932168130411535123043616031767968975202855707881111496710833845968836256492689853835361306236051570725847823264234280768714065406669233562307701806070451774177950696058895054635325850686537698904581104946892866468164025618174826487109375779715795961897369427087288696910899938088943010019431350473672858683659373351125201818830445270187260416906388919456608670928755695816929612385466815037174944619072428110959231725406843525407538223125300231978032645398069669091818792505529699446228574223951740198426159948844654496042936920279595268092053969574214389737307567501482275224445925039795063233129128708522915252167681101193503655350477698248168889277432895007147983815928765166949694262141430186969003040595821163101574249761996531428255912305938922892972693949270813130072725485499503953557947387684239751098141977830898032568290210232116479882990574580748457587484310113735586611801468850085010826350358105438290465634986931072754418971798511379409285437512308473217483134795107228400109713059415568197816716070931320774038377945030791194739116011499479135299397656297463322736674842055131449136568649676936021972723601108336992016948501235908183949357375623113824587645781016415231225039274450211953608821660410664943055877048689214783986476932738030312610718374716869753981136748643368388409324021932225313471766780212174676723711657592136872405338702273180617865632603597629886425717735599333197313402392117559246741404599211417573654271193206746795841108952119214922470550939741743025700039110149840047542363806641491349804592720009671123143634436688802424367022365335973820328909733085170388123486618721708148943242952390607135930134991040347819400884521617651171923543363609774897138170372848264587296983533740918708732428100245827613593875276275683566401247236663734933743864050333874848595847341289524201734180945298923247825589320715174690446410543678419017618199937477189444511265986281485470263454026937438872874160472267646635558833662416993382929701808887367944983957697917230801179364215908657566553120829493512932951319018786791680197418333873080751582722514841624459987321399557174232432006793855711084754209758281683333385057702378676600024289866333399616375050612184162354539512870023822761424704977236827641342097957766088234085239145117368719001945100573458675018073303673354294872449653199948544777059168404557692849998342805207547781949698510417046392147678220002156164534446201874379166899345760552048241223167475061521770210101279978297434428919639159017610473710701782391826581527797159491473059523661093097538895786385405898516339812885375753541409646601221488895646255078300232235882800066464686310774011399729644937695660690328510216030941701189044353785510397974884194225803850295925094047704166344395084048978149122110216751914234508713985969249268718404996800528668831006159866943395223731876119657662761888605189012457398252722598204560490677681352336211089598711215002482860343726533684903050140844341651147486305627405260533715088719690309811571393071811951532784829518489061174104123638272061442680775094928178034991381980461091831118755795197030929274098211838784227611323637753368745100742128103859733367002526740176544284478679712030781496823925870035393786971159503055704388652039390942630695762727059630381825717737549886794315408918237785373165387384540586211890950717986652898717550623302125534477574818560832107056481963508439323140018121373905457836811689840143481655421349479842744771919675775264918520770453506822043391930298837869789835687725620046626399419715553498322289114472605393006125985568928718813294438663042249906444970104804388593378955616722337987869048414234521350987888974608001579439542263522545985250713972658490502515916302933686004219713752341565129852744408969325618709136581172573085035651988806335387951435917074253834521802723613163632199227142129422090238135537427297572260082887225520402223461848121919192167449668653397358587384463762160192687771937249004018118586566130845962159767718068253128803999985487026172239463169543549136435922858597859178861769506977428025792838284000862470735010255891657155774609188897734342913325043159451043508075997719564401255577853376690471280750589808661168328931341370460118026349545523901916526434682182757992886446548649912272146809092749696933457085076042930168032300448514181004073940383467860479084375331622141219790291302182748100362907579704606364222545991876349335969589901131941051512224852304648337275896349522955280816966791966715433150884409249803079866945790736578318114207958743889086366251728206492207733791731618488916640923028490477448387239663114401438690754421683862228472705729759497789620694998678365456935580021543608983145275053462964951274195126723102112808644586750337511779651116316650145639727014729698014639537954117108858953395324655805143228324248124789264418513736235950660524019688134942206544409324557080695404345586090298234442339160979026735099325197254794426426943481625400154157879802276082849450925927143370479458870115430293692517967605505496294395383865055887026138260281007448083200925746664807508478390004655459472175499379231424530206558535197398022579919249368839603315955022916150001074900141429164087561194478838818083893268292914013573842212083448840271016071922970072017673792677996113865252465219288821265641794050190142793187204318018533077921936710895816493352441988005733325662101903689322122745849774581862394539360734026611783221999543382745668148648784823863093140649196174462473967960260736917943461336964115697339886578940119049146413961665616883635526982560189413038385617050027129971856255974149487560077756816340379500458061127920940175703026405923686369057046509119703937723688217032627756681111723655577624919501228042741754885378563578157765265373160374932674854851603209268101725159640347608986039266843636974110919602667736180768578268195920778591322997759888768301277253226250869598033314455535592984862047991061249463876752940701027737170143236665655990453843704799361189611084021936190305496335722879151984686159499817432767971247854623879925666015682506951980260547023366441633212154222290117216190328714086428007252103758196867558194025951445922347076149498102195603497462881422502416478849382206495995210144135556474684496546409590061686366655948718456473102422919123083701857269369053399708572229635815347510254085344606783030976814164653713798539417312953150547016350803945152277359771467523339365226270087656438354415162982513712101114472825723718672526377833357069478645033557949607528373772151344071937538847759617943912502452883334956834732710443287932109854757117288524716911471792680620645843472467061267494850185977615961266063769860193292670986975243280728126028535702884582886218450489729210334913700391230490751037782305950397772509831741136163649306364782109374178215473123211397880754913701636993494084216822084069845091931425063035401532143521082695805555774999958656591523473093323981279026516987578025980617722515414878313013742272803580825731682110053563039371162750638715808971762437227218803652443091158932779405653982737932676675497681247017888529085841770313457612172416732797567966968131245678279591475275101475261099097187268079375140586650354265794048651742186110883920424729966991610639370225661106029889800449450978801663460977510193778297809987591248695946895484943826264175508102428970410577276759414194231928264614851133511617977966270077134606321348516695696348847551107843641139287391193327747627899453834771016679923848254315107455274411315689264159005200753198702461232779793998128159731802812155691624264424131132535281215602444086379341134593502955383000126130245777867874271464450808029038853865559819485425977865139954702474601891919248344667712398890522763476157512089308858982172999314631475181759947048165290688080215117101025644602510866501456477130928419099037553061580171396665231038743421530714950620179285404095334739802558852226623774604503982466519729582418049090157081858589424886968450600890893911028599945703326581247895094467648419441613118457668004729827331498570005220678307453754262739914152449158517361298204726553787513367817502226262618417358217569397210625378132796732399574669010887024691672982677827861486821354483513322378948327711345759852544637661253259055629474228113847524696177598604158238457173932058670005119368221046524158177326735372196967172174019289734820707959136382601815016131922534492407014103984137750089552656163895690303278157509605839854391055773485984092643791306141037018814606846361422941185468057686605310423864488832736334952763546230524905964601544154948927556301764954999581495518398313644745489174589913155047271120394231577724912754537800572954887462574290281709651614532805276697925825516046090110192021776856771943757519590118092831355194083386133753336534435685038507696943220505306750477655760464386863466076785768125993514649222827176254933665751171339324658766905691774752093635422978724112569155382725634497278325703366282565681936339848045798351771354194036398382657875770360677291294144107364458746545950386830514481587308864133173779714322050455176080936805571942198025371808372188583372371620123864503614363785879086862957908779967241800793978207206098073104700668557880762617186666634456610556457457154848838161840589888579651399880032916787659941524716221167301081658821477676232672675491477139612800362516279627821741648425982311305127624120961047890016974465976115247090322713483532496772720755439609697506100918876559481255388442213490857869060209094245975343048739309494880209115455721410262282333703048766246443314508147618993862778024100092988326686594198535412060949683078681238422632780801741348378777983124914473904373349727218759544748250292990354981521269145140038195672401292493160415468840945098990099624832132817101928118173677216537957440129548843925124539938918711390647948745871714950628912094830811674276456079680707022390270154018505667798162148944988679642808496507939033128825313030927553722749120100288724613646012021207580354176731823978432664251153119352456340678919118454240745909281448594678201656356513054612455078610327268072157469716068817915023947470526222234359267327845340370605670347636863543687010577666727416554665886019188596437109404066880196525173956865002691339802419053236859592427667278400069635395972771034123548674524737646678668529714795715862831249372662740866886268104885276388172565945057107050309037322508135418187317444485866180624918043187000477584366355590011402640378621489932234501037547289580600447509038468589708652812310898095192048585334191675843254809632024371416056032220615524326603734642486826133170781433180118687450703582193262148358666904816530014541021906256068130998671067179025879506806477090732448255224924711802228650854255436519342994627741206047075414055335871729569592249588172040935916689943528226217476510375812930755309676773129103311579032377314698588964089558791970505850574157537175039187864997392112305732348407293852028052580129944003657288145041037174319970613556500540150136079598367571468533013352746003607003368178285468529429461151221314628039762903245239051660710556047037333671149952019945555019769636891269909219882081021068335223851148411441954890842026481150137921944645618386434407589979179273456904067493775442466254397157821186540901411365356617987224767706053184635522278021541629588810343170599913488092086874748188482146315517214699565345901670013967287151001219868821269773425882773660793872069680293913043114576893431082389946409593728584568942084142664851383503358442333010774395787030585645542721354803493942697588349937792433415647907704625905799205660659124536274498906262982755302479421555240528106047631196428540921786996538401260287259734842122135137861134267862643503561508925604517197928574095827733152449671130608896800600055349509430563321185786312105007953117703842672323206769856453048956671727623587671646660369554936182246040672452235455310933006900210827375881264423764990017881378384323262077488811972202140488201183139960857803699887947692978271768657729918348017237751206936892772415577038087648793315415320576793470186416767055253284747753605074022150659914145068334438109387925559519560667989399616946811533102192823318915436040407245933929126380078680366251241210462682015163677062504999395419401179516337241719516527629830944051245017387839148786565056145494314608288911716913298643608472964289260961429348721881637953469012310455019207058200597697456206331034957344652900887911073472868728155011897237572237377784551192030613560002389328787996212773333602858358576902732405653576372832141761195548882685539171285403020619919609236467887090198518962339308340580360815627552596867114616265037631614043099735876640408795444351103734845833560031083260539082819703670782328119340211017795129195618723693956828103231517179152460622733792510764501185261062868712257820338787147224696079733640875194740550198023099294754673764334171187406730036930444722859031279349951485255290684129249404551075496214080902784461264143002578785600758843943359270750603979448758187795423363159792074810205404391574740028816126948262389552066997780219934423707772367826776366175140540866067596481321420893406534001194720363294150870742684483871229503423247605758918515494692926959417088778654447791146118265786278766638909571504663088860554944703784447073315187120861374313491933073662441950799740895635550441555077332887776514515482178978439941400365977103378581950570694334856984198187959287176650175820470377143373330030418969250234704384595185361281587809758960674114890201581721136330991817239691982830201182857776295969940440050985578003420569523306196991181410347232389322288515712740688904774587189457686903771942891448942250723426160262491349570314478011781371798511960533893495874434322083861607108005983342575577712035120950166247845310024767954376273579194736208277313504070963606477133069901453732146878801989090432642372667472046111713315075295620982246217812493849997687603937934212078065969614936547680993775140057645469606995417064648690827883234074459114392659723176456809957918208107293971659526608725858925563943929823028821835745783611870288151335335827118583943756327657916335493062098621271574017885462083738679107716340203299965539258501300469899696451794220779475433344720225662396392264015310860784219959554673886842764488208555981625411334229980133530707469994082363963513855466887676031097878585644281893630777103130981718335121351871231277849495201188489621172954575141123407296622218670474296164345746733237401576672686628671515322403407693510083206754522234343036955743026686216408189844812464209546637391114501405298395070175022703428362826823872576913424244593281958804414598739385654521474610610001322792129781617537813573001364610883320039960391995372448590141555151387023864603174210765605528112321707350444579820733215277912264080703877885083880513185033390847109848262140056505998936656653159775130735109740096330316282520198528491517853206239360907066159728810424748763085147970329614213096425534095791665885933609269278214166187853937481155400155028082980403121899034295261435220939932274569160762420484924207861465091047991073882010544970291183132997646693756086387364922480426985427910617750254392805848481156377522307151691919542183560971363800324756711500455362083917174290410117994906588277732120641662529507361577042347821150650074921109469589642743851175158805446922953780269455275452945693530486395914052996988427089253984446300049547318041106888771174555324646806096384867363266698824685468487667398816246617760168203827787388306591862875402463486201275737180703622078221443019009964038025494586320681293205933271918320412030134746849224856991039740821977735789287412859829534192504899844184192755066393566142543766493581127880204775269017754039520112013446476560406574200589475603122104964986782085935913033528037776022957480089784288614678955800769941396926129017448018264552937192708798923318622543718503711192171521214748831142412231510454166659475752549896606374718443866311672476529069815813559075331788582457890291672673391495728922927288819163978790747990667182722051430780829174610638541889523355487752879119767883860566372754523895608731014681095888861651864734808785276589609727811000350278183016086775307163210955131051068027231632988331652638468463822953586948969843508616943522723814703054870862451903845954660612964172305527929520261629412947619736765134004892962703573955652257693761512688234550834708005207420598077243405957637863089082065399050230432867406304347497879861200077752974996147622751042801841811652035673973122061089921798479076929073314393707254381028590118351453629662399664803952258641446941221951111889163155429450680965569167799577114872796860200528641725893160024388558624353140796315322665907266609591110666812916183261690850806674434692320852722548624817369842779649486985428222347797832554918245952443454073224937983312356051354987994471638408582147982808446576592368655838034893317105831182032971564565535788659706964615741651261352857410361843906768204841428418219254642254637904168595420131300608878891132758151625290773878502042348578715553401979562014517551136629164831493616015606579736566162635867050139775891661649783853256562881725762595140472357022974540860521180975171728975877615196352217042045166342152924508610999864063925747234707882136538072944430859294156027501485859998655995137527357366573123892369909439054567960215391688746975909201895649155346125463594065058907160832004605922384659796570838856621856750795068958163025870025443894977900023122106933114095263122601299356861564969096740017199982181687640601308067089127009212600838137368303200059774426872425454775702484215158319055519948473865583478850909110281421008993403676642896238054352341990758810370111419895628543257881231604688127382570693879452899568276736886172726917301600882633293901498434561249811085792313044109395885724697326063057333364360554480136112546039557437078324117012588704888393626972382359499001056383991996979205566158302213792420983416764390846889226274273940528284027692456923684324756431903137548712827244194645411785654767628334077778124305008001655185210890197018253178136230448485118869190424421055982930906351676017797361209018418173965108185462630190408348261942519737507065481649574642238314954375096548771086529197130254580683446584528834369637384516244580670753605553683688456822156156328286700666436255226292441363809129111013938880736576173136892244484799303653211746318473467818881929515159075446164664903871195561501739095631940474197980997543448463846768602261970629844180581793431869245314974086878930150559893477600322618756074985765178168155621851791070840302440316991122026431114771803719626718948080642004454324844203444841971546498414890668574782861524949422471195254513189400422187956090408625977191205546941143845215238072079757895276320837002851715622525651854365045118101997927204632335946668461801198355000810552282986751901468542410511812895389928909302379927321041350657519634685455998370988069948859230752900646366435590339011120126214382886157472075999109845162666236817585636243708877983184099961732224236961047778889325773229171745309317874006531757900741937769999773236613838866243242969921066747797599882999975806464277661000894316996931105980210488071526591189093044785928223409048045172008900025183627829292045536767062938840505602734205693783812785583034426257801125582281165466123634938886863337936286103237787828263185424946560288086400788807521194175613760001143719135836149423426942332161242546276305169314469991229592906418174359711144819940429264126952966193673375292748888172224548905347185399701601221028489740722163862490461397909945937038168904548420277461891877802471556673826658172863474963414813222453617648707195977015577124668496340845411351761339989675320320495576824307748746282767879951604549006462077229425583718118287489206206346639906227646122339626078577936477760984701880785134865638776295754908610588884063287549245835452548243214658375235677210192768530067941934745659314290163167222284686140484937220609546742343941752951312382983581009682111014651593614187617755187973597813072478617402887124896355004678534319673640109928191222226178392371943575183728045999152147018882137470002543009373450100094116973943650874506187777752680973410180111017073111338929749269301549430941585133178315442300569752069974236010527791352430251245853299719560277420775319496515050643413721885998114339348862288017651344887100032090762226110021878179791481906057017148863166759274929034056851820986577326325463661516206916170683642430856658834426202236250839531380154786938672839678497171967066636656290510771352533993007582828908271435863378508492176360554070221022581241332670961485486065669829078893664849426819520706829578440112300407846680635746540859707354298336176032123257589309614907334354324898408385049860116443854981267758957774048948083251543943590642102426627389491423632662919491777337453215651947260016765889867825979725272253751952642446401996603987659944708123447375182222728964244340642689467698838187725120175434315949536928834501972922034371589307310446869632472525298167126740710633614377700627784590476940975629769724561841325205788722660019056784862900645100452843392196008032088756099040560195997042628545473289996962694473719034417700262549576901266644001648409750288133434954166954308265662707227553767739546910613040709921785477081978425820824152305842453252027388693898080002344002128479912024099769177375841842787582991562767727223787969101818464873285170431893979577629377363043050755249411469725272199848636463339674052561361060282482207021517781044968081493558076294540749175873199132039583791175327852091912679635127087242964720975802163426485054121651811198585210816453047905265961747700838486483797905217427840786716191978332393187328671792961470426983031934584999007917423553383146990759190914561552811145698322931760384519677653963024055472545381921857741481778278689421831439474356582128245334586677380561161050795608403857264578880284844132604945913868372722359402566784844922178449295562299176313665279495997109516248646370680580635810647932115824995901676884871645870127487894181877124146246376728515424503248666435249099346606052351676978622317265895138290713882388007243315951798684062562512279060607925843246635841080318953766257944373737943124891737315610526521271713485733630423667747922833619625510372547767867823846669657087551435259074577810607957609987401900964076519532081757072533063047535363265878318895739437463405473233073976581988086214402139207625143654427498225594619824199707695334329895765091514722942508849638217730739180639107220556197302839742365745603493870346556654346164966386871187068856743734167727894043256467352429610880526137665246137592773937736957747114786507003791755367658449634460782762747487990403331061841890874512859705864774771494620502458934089637467282597008062215201540070295452906380917420734910954792087325304016014887688934532740733434933882944147014968202154325177021828030155734706821066660510528006475264556937307908570757438026351838122199163274106033063275849681527826926936823714726467516122931720938554947957273567921446701509242556472066085973620746951954535778568716325962298373574968363710548254330790416687284816309555639542583078800737703700006879151411089313440235026241298591661926439316096295202399927214328518257599966204705578363794720573290303185753807872150605297346480827546585422685146196278695302280902075428045535690176120171899069045242199573456694972771276621902851687210933126092497448241413583673692188151246018658161698352304646007803102626448676722196592600805070153641343436833779706778575743472914469873443287359965813928092471238106290130927074810129884100083659401927199555052261527225027989457347490028863373896934176004824593385234623801765404393248752245279619483202989706918670301995431155884755174637786013033606685903798802693514340149162494230325522511462546896831728704097151883112518924539566445008576387475607865493040354999140385206576302484544325964025100521757133387345013874175586477390846541685808958045389342879016518297247844023762593321645779671160137229374912338554456088938789532645019413072819186639050241795788672116684258211831957137297791731959507808851370541544375358148171913810618866594649472651117939283702990000912161901346387380025169296685239055335838312253471914740534005770689184424010545325738706848016464435589453117993986079150667629079620703377882150417273710938012189283646199052023668075945763077614476979323803980299433975070202457170647229465933221526347538033925862938115909243771750357992963397846528861066786194017893363060924228546615872728648396321175304217220614555154743574230564156999847312381983539385163138779442284752625799219742715709055481058417517998145839155973393230132204839995126282516755124495825867215269257144830029673779320594305494708061948883027027846210676425988537880771626250376019423981141025837460706601683877082839788623028713442992314945592811606675737296281505067382226949271673279917417971787864132442071403774315735817143676503539935308170509471382947631003286478609327123871840579515093305440425444298068346980580701607653810244425958158906369658435375846128181937891679051413487444115960307101169071180684346433398139527347075241741821805826596380627316611279960708290393051713014397691140079018901627295962412724907353348701226413002264527797980689811721602152754487288402689092806740610372657482220281095985661582068236790293042640416487381544082510963981972154347617705133534020202579513450930387302660811307668317466303027836344284207301936331549929045354183195239225673576163596371753174504120261289041077645000215474483235312622297673266820392766370239058191847919686790686415461204782451168701316891604328422239856847946200563268433332012517322266237653019592705906326988117805892528296716352864244734988128657014222167167264190850342470754303439904773525561570980153761958251421034132141362655510843108797937461064472796065561890261878843814308725039296991185727790234101608506072456106953052873223037474789989074366101181543366952669878287626621105034963345735480602171554950010465709506221672918181255816248972759626226561503454255768857518723177443125303182301141038173111517556694865424944430530852744919249345294045098732311308572365198797968136095148935477827207862077138897896739128440087309525111940493848398034047834632623279379241216233489019341774640357441686161581262004553187975034939944311932350189720842358415609223708678573289069521490922472146096243525207455630562753971051279300421446997881200004004915941120134479386918320165112078006841468751330082850540302375068306033542481418509799592999187363088105006420450876518985089463494123337184463838989640047770035708213626220583250959968865042565202788548711455124166552740242406268854254638884909369159432771910404349610599948404811421510443125690513687280727908692201005083423688572349448635118477234676467809843287161750728682062792558029383963304108432383967967056947195414082079204921037012585503491069029501133967540398653771845055868497039836259861524548598475599985338792648455429011278835510906254612912837871542790633773767009785040545388284815470229032923670300970503268949189260615963729559962889270942635823517352139215039166193100091598073542720460748186859159181547400131674041727662429534743048203382010550402428533441732007027388374539976473145199540226570669453646407492326505981692326803737791278928111487452250590954184882466818217163372456148187088476019449953534973168410256078063748719536833067064058085489221224717880877848921902160917863069275666692743616874707978723076436304467468365107474791316865039287743171641315973181697318389171065078374828664675882324934795154563082750251387778257688989718441704671562665394175995992408563571163181879796684891514549211879864902663956889925709662494745149715588933160518098161218006117128380173866266014914641591245313476166614438259755406844251090403223659317997365219385158863813004200190316099189703680749774165584466443826766196024857243633501903656720783673563246809078207041884332521899912729488883302186578830358501907530055906555392536090942882617997526428906629537967176309118050497264236018651425225981210658437568964752989812182168694600710279651274516671411411200037387593900975280898208304952113052402933749170225082413898924328933820242789108958076764911157630510427445923820808458548166738822428872123128386856985716065243616668873888221228536041766029678355937473719712099424638628576127757533902867399198100178677503151491678218628434664007000970883941846335722162795155874205616365740842419517094559419071486515377003374532954214148837472150808178507790550552184752838269813464715368725330516979885727517845143595340537923351666210519298601385900171318858087311592633956449195540210905657830125443686669484266762583177906390225398364244765979201283172692819527500753392975551615546923032765351341824926819246899970384374827058844270321643445222002849985975091729962534561645362549631508973972665332219118010935410999311392650508971462425435504666746935401880973306773150951912389733441327987187556295182656877117518733495400543712457414909044727423175672295727023274929006953062928307874358961311709890927894568586864207694886270123748191515508848928667381916756627186794818917918981397371008842145527643263585937721571322560750607513614114676955136219030407820861834266984486981873050001221326072704794974319996055434075996106698424103008905892890249836182220724220009048159734132147189898885084337173007163594020501046109409618419180866633467564801215177374398709368286711066497929661137360350656609013124034227359672239328745869258722157207004654521247322839739087008909710259800675235512979627418162830850376527021670120032171968134022002959768920390941148149322080051959926022506537179990203313041133347915282986397123546553573333339396727434444236758439320994210685299254763961989666924722684736400257148671662975244060282140482388858039351299372070588778977756136137428323815986797083603601633831608697197804767759564185307233476092484543952991604668111379501620540433449176556116792018760882845643682568189305020564689648412890131644241278719158600522540209997906867212897178759735704254323357421005019253518143339725393594553204431804835372450688350423229526935216726296529336914406609563091410852625029880766352795482507922710341551901961780982262722825202109616976558666711678660804825987526017068676573224238603165479804022525174959860450450605583065570473050845315982178810569772898311105148363554537145379608409655668621410422075655465163441217031812842072434272748510975979889793508290154226646002727599893508219231117519513333642579704367876099758999133931696888216767516236575291750029738739600881495958439605802019668039631045480964489039648081787082921590754817212394802964543076234119899449733163121309884376591965805332729925788265122865595259209105932716130300581740910605419020589305376293222398707379710445689021173278965929975752565975690837186091086157669796692887994874553146242157528778154785420206415605992924679132013200560559739405757148544320265824472303511699457517391116436316318436555521097548179486436088007340430321455875458895391233631800939713543471436302910778842695165828516901520833525273327658590241449716413216509732600547530375866914012809149566664124746717637760116875463937503885027079985592650442994436144100663184322378557761459409170946222990962774303148208207581794269928892782925042174331262594312419996057876863881263345373953253553234531576757051143933117683011311412524438549474328705160052216633814032219078691264145064544948006090429932794522979636637652840794894234477983276597326814729469179367318468685344236152401364273434937205592091709745283137025938288489758175755992168232038425410293068896457759360658162807814666479154377191781717542544732601644665859298578659301186554251656513581828311568240939713399124706440228349207466013210296167147616667004818190190159850025036954495313105275423794482213473562244922778809117527332006406852332162496055922239106500852487441576436041184105606022691256161058883906599472619122496439748895825480943847567902662168300965857278604004961925656377895490895928389000467671984504272922362645662863677151091272369742368645008805704439794902806137498609318233250601648036263655201929370613774387198342820268270422160957032281716752939372583545649873769131754860906839675028881720262221058822064606721875709545350923813026458748620255660364133049210659032767860691560831464690860615513522192829554314393134248083082155951331144344285562619751656519077483613431773236831003936069755555911285698171241099701280093704041913007819406970274053315562280484621186086238166995296510607173412853104051246046059761588674728582096195411453318264547627209829985156387123612707000857949424396904224566521501853834943488128267531247521014606880078152619534881183728398010849590415833241277734603136630543120685663417278349529327115477703953472537495959969820447132756895742963955186324666803949302168055720796175028693951193711353016734502982980164560126524561791698480531874678042544044701816425184148826053369672184279089960899462352639059903004680795114751165626513466409824064355977811805864432546532515644245758543393485531586737662420135065157213728709804512956865457212348412450294366063016635218789840900590099032921198097899998246571707891170815991694953952346578869003800448977103881507105819541584802900092199397111102416146674653514625707331614813280491892599717215998023213842170789088135539614947777527060077228101562821535104239679010394077293781684056960707841461412503778630798643011491965848583905560748807322348140676151590274914148597712840139564939068453479659361799570897089068575623127619618879952669427845556439103080044387190105164728045756938408550054138170995721732877748475181915042259893269904172640036878811432885375009428272601080688761196403124636529619664991403769595941669211737813521216444489210805664403316945961362092306292666014145104232001992086424277668619350698352852907451591304483039888450900151271880828792076054123877057178470384273930788531660526264998442073242359144277752454869738095414862042933483365726664136894377653249460694734439855734931781089196401700475934774368185226725777617046349953537942985916966179179524362247580974495430353075958912686057707903798680495325329301844898552710063092122890595058452145841594550938713872887635500901410819584073038561322245784792046576088620218636245284679855774999279127943567159077705216878938869180551700589834881181196532260389534486577892236318809813421695240162633772368223086415348665756636218754629503843822785499278987304883481157018885351801285869380575849550237037784975202736529253986008716048415836984363079105861101259994147124669700635007897782121898066000616033462783660590200244420017353783952371230065129826126056436158966951186934372133852157297750666548418130863925439290773697538273564652191628867674174068641725305458980055841762901575255504943369665771447221015335121808040709430540841994355365261070328760824797504463680568010393770082194993727720001835460895396909062421598109174755426576211165721901472127050793982885689030654038135252212266414807382339634566587332656278578380942999928683013640122162255435670637331823584195129716650925216582911222540895963853853442702989565993858184290066506862021030517175973981179643918978654539172924651441797829957270255299051608556895985450878674235132372429428145581716501392073491978695983379963421701574740533662353985009673413623658456570563919878943454838232844097942908331747527028926610775038884073579852348939582201285927958573987613193830997483233282207753379837021023444236196582874549396443785032621707365381300702645158162950408995847050687778997280673941622793671914594917714260014909641915553379425620532210558107716340874219101312235416734301635011448615822824172659966146956796417631308783167944474467729393441823164496548259190796147431930746031191060104113646861387081296062063895823368728205719049156686772113207549175009009867725270112026845898438840466703699680659932518094695016255021832405867414967305206645385352357912950895236566798192891939009078851048741653194374511180756765461769154351806365299926891731460828395324223350295682033207095415029758684247034045958220602821916970686479900079040961497421692702803880954728789581516921154082170181429775636094832703090850192507815433297488095039303082541480421514661355611459548033974632442951162574794360390402170917281472115804324100467274254050956877627144621291106680797944052460516960755589948307769693113386438946134748112858482425491852366842641479085795508304838945187686519623138071230026456223141473359148131415984760208560525487821498916352015306486765576732241023716741570336360244019735725132908024581500306594898492674008281792635205839224764995769939265720503919370657497735484023003400049898908674122064185500758049711972185934653028353980059643220291694224658748372842955655932312990744670852125570746727137354658991992089738693264439536893736318507822692857338593641281960486959794014742828448076637833192291706448383274255695906758729593945660486238204586035387785417987426037762906128404889885723243037962518951757115233063545780405401838621355673972446509775773894508088797300867738357835600526683406085086265142210129764300242261513930751782834921232554797359515831278595901860609821612252842621006539900921051562725617888725965315338902689902027393121136624225338509253281673116319624041819154993953647447189789276386096502650067646982694130732850121884589483436823514176220218469838649750047041787054168390226687050959681283754711881800478126339836699186791195853998529831142722319392410737171220889630693472648583689682094232736268745743247164789865767771016592060841859443821213242390455223488742711604844749574279335103917700343531306184088976066924258545882479615346954169154713482147621807302566285825753946586655872721084150306643650490259527384288974390471678253357227771556940556798804486786769856743792431307565648455698840332141768219818195181041249275714137687220746268819183318151408377443081306433341208150298464351826535037307972865348103234254287007093347826900028166029682991314351522114491130659002281923003938976720051996494928243619892593157717964895880699716888349437830390621789538641184973844584771527420693137548681212222922565483288889580131822350426664647798278135496822605575365880580094347039590727705299936510599430979051746339644313482732716222928010334441880513554132908758427290482605996053634954669724659904514370027985798435196535409687609289810908155318960108822747759882623337736439083808278407418034189535257931313039501944454720337823508098747719375233669193450886458192899673736788077188137661529089390090512604674296876239009400474396811523190318021031136342970555155082754532146547304227896521885864189724463848685535344142318138575829626087927646107715327891339575068448951428130546061482406058705371022253862654056910845790051079268224866425056245453126641848702129039325235537633787732867053525207682709877097106592740179437162111737017710968134596700404711116030616084154861818217232638513999235559654899731327777723096429762782317380398079525656993212594591261773781000494283971355147231610817491753339256346638119965157821660349702254793925659410887380296846610442865233143385910865138089236153177200516149933771834824082227428331493995587623408874345067342288910695524779491139026424569974801640922872955698855658656021207284971040107499663262238968222865311625570045177968007977140242210150119098686690264198905843854217996630875352013557765495089040214082051063025180636770250887817575376178765882137825515169785290957561937472560082964865156808623572996566183692273706770489578351795063650994244143367662452158784733853372920220824974610630580022365446951385773120841907443974422216329319262639588515051781327453294127474917035721426758479225674685885204956060355340134313468071090437767403435600446456652195247345107089720702674636154283330450811214917140756174870241797900209159548606039966169076582692022407407179776105871266290424543452191294026749779129956080514614845388877390087121215292661155787230525386106123936067662823389893199552626455696150190343250345705031548267550682668183207895629188393977377702502135134314538083206954304582495616183572501509957045799587377032075828887411466261002756201963950282301262229494524349259991120906930469545118095517785710432811228232127894975362207105067791133954769610209926588308831244756834269389997484037674736876079065198867185915358615676386672229562572786658965073652864378087534485052234579361319128343281449921712852573391294478212455037265969908668661275244824933912038104477015163369656395390734691212695031435326486727803106454931351115541171081424485361325313633093364885521208260156037305444107569856732250708034098817234916389978248196053319902285296638261616985232549195118440583398161043503735448371899541126915917555201142998231968289199994828823484876500013614846971985949843723327036388998668046025092354215666339302907777530840566962310554682840611406287169281240764989702793523520460250889973160842927702988060079802843749843133736896958793629950093834616760167955229790313140342767408226320776414930620380556540348744985292548093859204327566600793945900758898821515877305646836832711780223587466943829100581847491091922622778242285741969906991589259351462290736548609495088777554725275279950068717763053719064866406522450851178752174231647467793206857947592320074694359860564573205063049856351140261901716014418100924116910683385224180034159071621546617727883605346992775452188847623601194988151561864963343190991250784662721494755869774695874234143351156782229364421267440024611634719737791978438211493305332834779345285023651324395604618891044694690295344970279567768538203799837093835638937568543267720507989062592946588791729128260571176901766005338126376292804959183909110474901912123227872463790604614038225609842724141758673458653037547437423528656462552433029631576744568163010587492842091166298852594141174291003444445774280363259003793531377917723819945785279862858696111123032243985066131037930860389171329836274892073259086159421093152963480219284548904163868888922759717320118086859637942266579606332609606737312034014590894986822391678958121254181123738073892546993927398378016923744182821711835607382573411069812185785913322574068053087928635813333174596815477708293995799742402187656034482006710054923339610003044480158607703908072047549497283516559864503894976666424830913926675235811163719798103445394365347445571770315936793218223111087381251609726166236793509109423330015289656316773115532783395234535429451139442063588914864109958816889051429946347963792456827777098109920316457299713696524118880940006882223577934543653052190958474655178895727077355485139511144166303484474756975956464726101674211124474936976443842231821660307452003547808850684378342492422229973472811924108112429015640721997863686508065417830182414091465811382549707020883553892602659830684044930821552767360956143363587508074366444548174759365867592491539316510855938839158816593676643813869127326526251008232824660986930340805863848028208769635043817820732368582428407334558978483077734346783772257585586683383610802181658427700053759729051005969667016269336414067145710677135226528522234546547476861058083443308968556749728964355066221919730194532611030564824518079093068515218936717460743855308702041312786868651174044823137619871077900425589126300189819389313532160533116976240695746609911696997603177885817657641200720921796823954150793040769363473005439929571234900882607085427031794517277854838367314625654060013697496203819302657286383428558063564294578339549706272656102790340398211450816093895413395773228759581119356281173877725147649047082693340065446022270414931749282906482920711880892184812843311937200570260940188589468532843209439244836342878639278786388313036900562576423040936618305362959555554324261985144999988413309843304776207271291317204006838983005033173298938047204785758288235546151982476729604094828222928277468863281457407071334365089222916007307077984616942840894764546994077110174380346733205728281725802879846560295834555680942818921747745814172725729285503987768945164167677358305357252709422355159918246848476026344354543047971256066112963679369796229182092403903087494503128279949544766136786849729868798406167254662251195733222451470528001505159602938095547757398789844020256193303309548363673468148024858669376605457108900538928048674045385636180165459641609446046019823442167530732631557614412722919266143805761233549125929363097620328502782618688191112780377139305519623223366979687409368958924823280262242659407436459327716671784451884459227991438047489255576731440920834009090263691153585079749885403725534137865560443427401833410414634438093890089397128137159826966130082524397272159527599856952429075388837828467697478672872110507729827209836618595007808205982147920874052102202140897190835069085764653184862635402660019893015282121533590966700035023275550632808634495289007439966303178250487386132310092431036408485895240054542442823963436985962697705749485348191211661431288353939285354409389047470471514653100707770478482864164401013881573908219866904837404683179428392601524060357541365311713941779932334661181839144424108205054349546987901484526714846098690357679305529358258186002241434744383101584880088190284404812957828598549609210344776506422979951918359905095885179222086725786678156328507034243340190163503905283242697314864378982613861890092581492015873280040771934120285096700762154776727675769621268747885801634040575450667523484327605132666887168876538804806313131638368642583097298416406178574228009154157347166188244804801379896268259801681173929610389208661065246308262145365659142997250301440668025595192824030188516330195878077534142237910835338258476101404503694183908785759246658872216229955469614586275860173763910830723033773440705345792811227814859067791014329752555112003271300005923841143085475684873672613191272919135237144413592717254791144360376368775467807482546938834291258714634886158188744912597266037989265233646703972404157849659130615389074930750710091133079471588956379353701624735822359520096307064021342542616923840954481726840205910424535332994916526924417011181321603828858039422932124758556177054293414296415273862267109077069111919464603464899989343490002574506747530110186705234441202024859836243794444422084866494274776852570692084713487636698463013525830067236263733467852923246052926550347681797783702353388210512925172326234531924482355047215760106832842602911400607987110227399051383313134144478040561884187899691340387673523929328810588207316689278822239417507926706197829180085366917858971591340170010182106064551111129437525011328140297952801199392091223394400137645035218746245641657077859867726344813314617753509870334690733344355262362076428634860634261511467458455786300767030876986275651676716484137711251540421460382460192018954866647502650284355756735945501988459622393374009139525478077244909340428241634827530039714615871697320736592087430620282846594604385620482331663037724617732616311485616238834600402968370113466937411243542399722640123622825660802789145937654739323395261038244622551361181562586679808968804152852153456182124584846683804407000092905520920566613438291586801301461891275156875472764347338314366172817974968971022620555901818109154721992658156839289570403967452522080838492916799186358184089306654750888861446417936117382003204896902436994792067142010047220951910695584273570278493047441657556925398912930934660263058379652446281381820739879288473851398141454197160445021579875172909945543180840512413985672970168179029242298562145526437463931637191323068960008492345843142986138673095970691392198702195489611105232097697868422067040041165622439116323862040755991980939150248301737465022389231177822529138645397970375522955381357384942634922304437107675966071504979261136886408097839619687771930219161897731474015813793491386722298083597874608210607406858406221074841030746601081578019227189039652440671824993310894678447257243372777161736694902872645597599570593105980535175702833754293160024553716327524990745756033663189030342388762598233034477431929775943764601508414172979939016272852528442451158672070434509594742481747161114440578590714507408783412368755431092400923067305675812968217465061082654828181216389247320081268388699093058568864398221659805194913806865169149188995082483383502919720506797928771440044551427408130852887310341328041048744440138763958916583151093627172300036734245233646780412439173291068580900498135612898142631874418331173662551643147327785335917746985764374667818795430345381453772495814121913031083364204907655674375319180610349061707962428812640163690570034632627969609869308957209910015236561465714527915393918081532157716669895927465280267635765863023892074744956321747787898832239360327611230223441496120031887858840729691395093435887762064870911457253951410777330972590317727806548244444091643294534507778429295659324704850463102265464434533489600276044085995849266877988646151471503276481432441462424858037268812078166834752631614031739325304992997369498262469699220012809976484111493122390454688740598631641879725434847279143948798517475774374780677858201154702751909593893654840718946097042660872743928894270739449351939345779756719984489763926028879758300028483209654708206184741803100621381569895215593437950685775989729570562129368968105575900438716892796753134778876843166808635544874086732351056538121862654653773242523403458307721750416371893592303820879301101279027186314208268065528538497381022791305881242794817902535618155946491776311715269316685097719043157678297122601122042050992278217878312572147884406651887379617791086618355422518265920026202361757228105302286926693629614442775561487026873212210306907355980221852270005942966651215215347874313871241063304545984173311808818907141492014938618267720776782212321280909039048599494065456373326025445208653406129185079199038960921714060386937090150979016030291828709863205657447574751012745116853862916634308985490832450871447221747940514684018055140843431275207167243325373156185587852826922403943198252485327382077134184141113891971065328199669022113404139896701352987113502170434902937968278106212437100665193132964222368518328775339698448111609830431309713366084915994250476987371592137870041635249015229406202271703883003918657822943498550275688815632027403094048044257068272733830970181631061958348130361639842045554853901695578234711631445639934156352640698674666551480824036633996706975343908624161186322408895596027268812136919813498275554771614238454872848568237346700148964557842456663275049507683881146665075558525800802604693169150270654067017489743932717914178220629113790295578678155151112688217563824983303523317625722672316028955689303237696284258805931970702299372706058740851598020249728726833617391829431983148812914210591723582608506036503331640298089950361168639502181273861368119141290908706811458869965558572997027093084466944619700794974807690371041072975173422002195623975710520977324357945742509334836137881922373600184353143037195665801370292476436677562923172504046960456388295608086754965810178847481392432912036969266547556492254509949888201080510420277295347494511018389554960728890992304930410845489234008279155495116904211776288512646323974772204843111420316379116892179472047970634206380681371003437444551228159374792045601361815782627682832673964782087144465892620413775398880787693984475600148928565670532407140545714015269726492992550974597027357600364808155579422933148559591502278078267845983559055352608921259244206072324561893104443354446073561886004764777055210160379476430607143856691780366165608774901588716899295566717043320580603025112659778562029446082635547548636061590622915368963645428360313116518119120119409647555700441178745470109587463209335721417736721868335365409682259211050622449218113413420892725423549574947791999313261443887857842926381216086824385528194927455115467793851997083018078206467644622711409790684075812265015899588333809686517747600813453506596608146874476321997661712548281034507537252499621245692245924932772838655154149608474924023657127197684587481636293040952334887364884054998293650858747550243691673120410508609455260741602534878454491835599408976882516738320243756706457125461754903786686616599397895016618475060892933283360684265455494772486815974143114048786526201327821937207773569137369669902962697141434734613899233420488501313713744646276079943640854650988417154402114765084194021275064813019817101244936351826156904992054592793006686547296643928189742247563205191912679281055083156793358311440904902963799425789909833452674135551056768833080343843718807647565366881187476062901537527236781449157086409476663896035909758266519191782134206341216989453103282806050768333855852551845098881454903768208606744205628568585159889713051771920376761754423119869009049131685209477823117379041788278164687866644632960897023656284510628763309391783314792916552551774052255392943927984538920375738729839714204895129896214060725518301414757640120150819733411789897580201743399769789002359789944346960458459520323671436179898423510550044587189265595700490677935301029817083771352754066618698752273887827732523896423366333940078131407879868569026432403108288354732054070267220759041297843867559216801178176775324137938197117933439943078803579721036185268593011051059789413258258506950688786466180852840785419168951104843378406629644219909058898346696490636974932449872898509099835615538188767871444483422415056976557624121223256450675216041796227162871646674541625666818780244652688288007666442222800784590897341199468510512462231080323966266644496672952064618028378236363412923469666452446792697875218519182383404250074007063100512212159064938050658472682025508776669300837021488365402549234299118429493071472790020766876731640647934889289027654461404884921997954803054791862449048158259037544697463235566561105484721330170192491612614502687443236961647738433547304679004260851205725304523992723623594706038367960774340783468783935906857573204625986067449626336993129241100657537729893413945144104685819691037167510974532536891907252240646472989588904552941089312801414209051489362043005464140779258889931334859840788180460579718503809630287632724283874229455696765025212797450609811218545267355008715147072094095337605261712911022443737501477521911150628977350136138294593936474601102276042618753193183448595873928200729352900952098889675747515606528882459256053611839495514417595871934721199179975089197137515650207018391663345258660695390699012350203052254785374953777421088398287025569536255879164238418382941985543233051336520261591325389724316361530532746680091664045266400600592658090229640770342442878683319963737820943373561170723214041589300999748571106350607719291919007591309799717603690956134434859581605031062253725690729614067077819267697308164098788416904976095480857361865366222399392170055189121111182901065149636487932381675856402112636608114497353404796131696761053488923062329713403316052348216638994834709091373814645600097661367521218389601461374136832623104615707186301466236747516959620745482982802899740688964513650827321645275359901320733924027258880718017696091237460112935360545005507528074402434582335174372113602469830502683431384911645358710997636333942939099279063277265640286913802592989057662016268537475174102675487408070505411067583601374441543543027635037371218665279553452942039740372575641527496960281858446339820865261514094587105208014858674340310426242181719290714447079803770638843921075686601017825914339366695725221568906899182606725658833100780661633101788897439661746496577030804433900923655704794320141319737637961309218278186395947886556070209862382993114081493668982319332252595881693275866591261337091127991498361652292449138705080267448542758721757909276529343615293254600334451731606828198223339301255434881369930339888960298313047922937629647562671069061701139205373706877160111182457546847309784910847086633596079791104445999626751890621146529019624984106229426128117686448880699132686746520964412654371942489518452864914668511723430305086974739155274814091927023401124548284475804588730893895463095538428980510391233515020021463353110868370695885284988447535531674946805111156688787389325658984999218312977188254158689035157771533844881238032521894078906900828708036108395804827865562918468871029899711264877157318235216637760247904441734417009320651309651543035194219489329001237341732221758084907544932399605780538663506684283490604102000862896708504688934723391860213382439791759635318388868207803373746838754141402732593646108285139059705098363469572276001479874727107566714168931760113608479264805562351320303737104872135376915705800820352618587472568824588452393177335175919123315523012456579618674804557114962794227533573213619727749744620068352356811032028318666074289464394622187723347229699115895200580363819995133497100333414958511662518991541719645094243599525987028879667136157443143564705085286457504247990377332080118524502768418158704886204153508755329027639548506699242210185001737992088593891181162349063246858376787644799535627380717185736553310617585373136352318383226510451284018269123101875995775632295486804200530718373751257108422307103159612834964928184623803553918011620750771739795366917638993409988528767970177003549145852682400718835619282322588072229562605868344720562390559794070920208267321282069228948257360170325620986003076351253858414317837929201023657002060171565070157824121058408420937696327571050105808781098525025751323296692067693187670695462094681990324225761020800386396548038137399551095638776049056223281239988843813721331234144209949612401113486045533996226843891646562669791758580212369053834191705668910055074378481802143591598697440753350945732279880297933806514081414677146546420270824840227195030707223537189699489302153652716341338144564219541521791097524360563706697491255294114164490004426653175681322519419003132568786610720089548438636301402405559592098514199271116699337046512982042192086045986235490544584385539595842586197862892413345392021241261718628229736907124328577514270741663098491851664942037920383793480030686595625126488914413235789194315848531771408684603921843975563978880794658031973895870802063686416983629863407319476598871232569286955311086923669955651078498993643978489723510559420283635496310241554961796386023998853366749935395839374573593910936835696663388329823046262664383568826923496952740587863556033004066416668555867636724245049128204076778628628252526839152389467846565087994269178997289302715726701764559041107193850978671215551714722450058942272024491940749960745368295822548578122176081121114811854820804929340720363105624369698328005901208121702116915727258661331865614001777404981017231705394313525667181119690905553543917280863749071404639913424514995587567344051230237320158289771558957504492089427396039795698657869936509060320521830678024595239517296047992278329797594020494057364073736366038094490035977387020068502567843333615537282440244815153116262711779008291964552416679762216843002832283233081999357242263012548178029604729587386313460529099479694647000750009754266070014881776776248764042091227888800835947024646692214418314017232256290459682495172364445503547191576663025239231805137615392284454555663553340434941974813446329646241737461479349654868103796117990785831282665510976853580997891622694987168339228501341493343963802360986220506986635879022689393311883130319708933572619133837758059588817427473604558023437709622813916013957580240623501932339016410804489038510066636298564117680037537183149681755576992331665460863188383458580597695658030752796581310469771546088090494048675451712423553982565967726567788510483350065210275469586107467106286997348929806011947914228987847292717398996152832067157589338627122021556125889261308910103665322730201069299373448162425424745534724043261657516288732220662351700655723552875908841147509658615173484719659065987552420920037556383341847780705972832391602292672722823023810922347008737164915226673573409951512946312255294521142003628049452976392679670857692332052969696912568980701998580973834867125405455316508478575770208387306693278473238125670287575072052816261932814499659945672784259325535408761863692946526593885184077569533681565697941567159250579209998782050426003688179840406956896289673035998616310507986238786375175944349751789605468153482790315491322103773585033646115994578796062002817373982042949352615992209891915702076806459507733935985412595633282960798597352805222481349032526724104954774103342145794959952828134861077843730791293791603770428531324503529671240696944727948050147154879892064804111476826151010485491340525916874600995715567665024375546765263268854699823225586900106380364730697954103951491912339447306445868419000766382306792732523436796483770731395936465782786226104202136463109758614887621006868538580207672788372641882416305537368194180086955141049733150095552534877010881409342738415401107069631071755860667261271994491626442531561482193810704108669053733097755105525291526168825629005294221509483576720935891471971534093592440926056370315159035707100974076704211115591968128827510011299098434652737944322470276709613242089154372431023641671078605834882415585981709640717491557166331344559634383038232349323131471380786065642468896845007043990816079022422780145133764213891389271396631719313247590051836573148733232872247163494497508463391065253355579982615069144714098192357052715075872638553924167108994618307580303816854134133431203271178149238730560978254766744331332131387725868796211776063893558314256319560583445890061068171087635708636762967389622955334260155156139719943494357441697873057392013447608348518715477571802045260879077071932416002821924515007084395207132632367342048216597404167573311560737579169401635915629301524488881083642716461646480213486910825484357025906547455695279181331701261164440054577034429901998472550504819073013846044771648792700204562632361321585665109092786620881486084101187605381907977803313218410191027571952160585183160509091262826238744512357222586265216514859109274784082797633707175470204074068907116755117208894134616276472754711922776445433053050146828488214635797710862993448605648025264188300783584535868697107346206858362120507648378916656370408334061047418028031399525890797352352818190108884055276753101514635294237410038311874910402022143921473793297051071153002327030303504156468861479558235179592524256782488830137852743885493621112410104509045602224415152433389871169429776033273993600796055062120771631076602577935350093203339735044190770209725729628412960348503133818676866510772813190109716219427839673035723472242736991681464162933841061918471191512989134456011622853492052019026034547069385415937126888857793445673386835527273211593541949840195946584374636961327864929432320363007857522525620385802854636921601758620669712474240154638635547220223087447997166563184309338499143373308650257448257139548338161074661585174030813625074280535079877640020780201947355211450852677334228457315062469153774919617586246497498050363735022873678460457589170314012410919864802238412932870248612076729567654705311625790512585951668590809886644055331962374507846178555521805326933402647137660604235193180929987393384964913880029066657121399919701807040931887598666436067105139969958173592584619391831971660228637462398493304351981222216521465467327164315365170635134246678409412185869376035385782096639378814757180245310580379262430769490152189572127856345032301276061360065746391880249923822397183948028599072272932308718416651870514456579125295365166431316278174883972793266288403644744797151108041737856011569929131432232190861648321976837364327656747403816309478619236155012993334801775484048732334321075568455670074958166893074500935606266564052278995714430897738326200214108500629351393334561617034914584775027693968755565684053353399535901190342684447036721641113013068604014481414395406140609242674580486688244670092908340543488276074234917480182637292977611045249311953513953748940490998100852762398804211506544128826314576391783825012985334037000207035503797111432545751850225433026874769325891879594668224981109307653461509809093422329766145028030265637681113694939854787784532984681353739902526652877282159157085276522438378570617558495351497291153726177971021249750218072892626475749516308046571836633289554721893500877581572045352551153661846620112726632853437481305873219266563953176636919423463896418552335205977004896773692220081072910625204888378023258029276114153575922017620890145720423497626653867233612563814744273635071356365565018430633086245641150663489429061120760961995338100655626237362836853654663841075985785045980623529379390958754071304163668254659505960912981087435875812783172532876599218085040464980356688468616520528786672365260419265914335709805570467537678921798244161536540587207044406364414325740457139725833236606185843565111151372811520438325695300644379923742327987654195125911436213943269103803600386697288500321188457731524205932444052702324989610815048177695464752717145561201641847931536916012952190416277440468680100563433298107931186948681624342991637749928009950009806855415901410810155649327684580449848131168308993150885876180022364065300818480719094457875786907040594234918881386226049009789646042191572049326211424569374267317600191760816344603167787869797899173945194063401571410067737577966444562969120943102379108290145877622839582828604534210944001652230634024104456796639799422540968087879967253802566468398546999910739280458135595255314207579237108145947808656115677425572697927984075307997384287138787507283081017808132283878590069842618707230486915456130883267392236026020235344212878496844868605827453464754917042492488352659328803348299358437549913716950803071759662922273205926712813098229866239693764615419261021980622440010303805703696608601423218591803558762845470491656384987157219641882543420568570747344705957366963929096061022577301861704418176121236355717122931847353956316241568399609243870270697221382144235030056686282804096709741090458384150128859660812726577681396684567689570491134072667172821434265826008630708838793602399740571419588252619582219797588533517388128335781003626085032862507799315721699115105793589483638766529109190563212800914658737824222741165736161084394956862714736120272788393497681640870628074551498700911088970132672959988397159112248860477912610650346889067295702248127985605118864344833050717356923235404189366658388671792582365023915812427334303736895221179551668670347949546412117774370461581530997956851962361268302426118694656444525863536544870385711871613143941842363216444491217820482686329426267269337688311240652214481715077692302892875117391577035192804398209714997207712682890499116445810513796098803198926157907605503369936861321494304572901622253180318985565717156585870532872484091609616386040636347410696718023164088940464067203062151451636135834948994354902968897094425547349345909247654731801734807726344600071398862498210440962830559419944646030884493813113932079198116125050364222079430907688840074746706621621725458002976622561671459155104003374549593147669970307914532852341234591577509206008555249458127265541505611926154511981313017231285296240696072061147998393850140514429422366029816310972709761082026116922895997535296241554989537019148208912956009592075480268943970687577605002714368405955390244035328961981178496873277250155689253772874767366754152554191226179313131394555995362951003113507861378227224417829954233736689403422137207701947107424346624843661472780934467725500547786650921928947215968813935927938323043937488325677872871112305776820843973168199385242905717935727314171774908606429629999117125244088960922872506483432858136961656407872200912262895424605427234963873009478210891599806841504863153126283582851581806041106190441079505291410815341478905276605910471728683371177287310327054852695683417869710809723027864462535130418628778313535864066821760570525205112970071975264194947712425008296050848592388622077183396564600920424265582126241782520988964217531680575339754365775566850288600095834258235485207055759741717260146637138154707652991596510934496574919337865100718331732834913969042466237992835204973237413875692149079509573254250789985258613442451608508607721668684267342965500504845918571917509532918224070635230468846887486851831961003991400546666584438254579381545762667798313301829182023664303181022067985248310620908795039107175913935389530474098269000482518323845085358148982964536500906750877144159623511401472173557398575176129002583033138966115011618105782193965936289875257569752163808095803117076966083362275012658274034740419380458191517769903824692704801869112593318159950616757891977481792928142188952762073726310099517640714627822042720320279209888357995693495422275033104566736012655859458442189945719411570569346269592899121092685332604060368258378558585771130250724639890673176728710478138498836594534530519156393532600543063616900140376557157758505843319992214444687532044521273663385649069957541857234134376568514057527030311601043539488100796194564111821417872706839716366794795405937417062015970602574039731892095000067624477911014120580491376777034039743409884563512016477571561400335941886257085839579646431803646874409811720402893104394320717709112342605572051731657682366040196318794535708119721845915945878047829263938241616864050696701858296116968691866938022609753665070919070725406408413001809899688150665373063799326053479037759196445584665312309567921094096020081254516963224280290305297438522306270075599423575632193261681542956371107839816650142376067233992173484581599710097668135208276397434435408378010445728179309734092853735506145705803244366013122085190883107484560682644946794353233228113073648728361236815242718279482492176067671372451123726641298063480885680180777130956554468784622788819225385446977909832742161428184658564092049501977325556416661528897961996964553362168285161493430608055270108341624598454562426188113265437399850851471248161585713209124132952776069391774903933522677048234902920780481606599507877168830759658659533904205076603770640152252404221913006672099320526757611936518869532368378831437891245238970644567178702732733233572023841735257017546863303231209310173689983119050197344614924380596822978049542435676583685653749244835937561925865227804889088964559236302379539184919415796867725822971425203798961842546813244965907482714801409195330654439906717685898932545192528323055941109894896228507561697618078862766849594350603582398324894892788601965918831157431251343469159326628113698755099576572003230950865499926539801494362893501093818111776312654838940577216415793893375364629628903799178612732773769147218419425285006921695519154081247400896683649171313602814143744137575015285022726266599732411800134261406376475254630247604637530287547816612782987334294436733253702067690992994532313716465221722129496467313402394217447602298128423185581327227186815561349293205629655640611338276921299905072186624351711237387989864755107110037937736119715373189953443842428929837668472520790823434301421680162037931658085253890734704311269759327098375527495501945094280919429337373776932434264277773419294881133271763572722353971190473478537822078123252971600142611119653527523945802148769982413936687619473199522602555444160129287974764526368823326490524706462961260948088590448193093784588530139629210457168570024737067968757357852415083391381745773384232347177689313100559312248199032028860085497325554531886393272965259648586848903280459922236224282645830802652717209361155842801697910464405032296431912252348326383162397499150970701738738669001672997609723078969691636899830195131990873533208774892951427460025761692672374547667600952124002345203832704600166441858705245442610165731272123628753985563199772965153380726921600060160674043540576649154721943906811634671366318040308250635349135278841932875689136506700386316412411906153146235926096676620907698053523711793611207674725512906886097188874083422982994329176242034899358751148758905427464912446182936812222547531568726933475091696431858819941586620971005975065605469473515847160822936417979347795003671876123067425963696238264515748023517654576766051748534107574799353129370367299097832574497114851601974069842084786802516035067139376364425964146180498235584521379544118450596377925570575502961507689139135451117030982914182983323732586463779004836119541085172066199426408490669519121507106665999246940734300293242005417906929264523225352209837129224888466004678903740077797614606146028792441822396739225514655939516919909775414010378248715120941293871367962851097630742098947821455978333304746398989334592401285605834421078517608626678992667820283858190813094056769755252318826912902635088053597111821851065151194577146897204414356236302403991682903090445407165779718775519911390644244576894098915545872760342188141034807528455571217643680062392195803322438811270516921464979918009977508035105884102276425305251704969227080925789012665441347509305812995826433568667542537914467464692751023873271270801703541513592016293302624937123360025579282994061547170081860649225863060610435094659728221078583740611067632080124082612252465965102639277119014036336663790065382871353987706782446794461415658700967227512352401858013220663430041397716078182824211169584240928264051581908873114780893501652573992639117754404022687069061928539407737166401733612907714051964373526231515283998913230714192597148850425932338093353090611186155186013858242239380019832050138782369553892490849568096641918691743396229915433472366311730235116443194344063785843835556135908242904034456669381525477980740467000956884886987482759507928897750720296438524884860185568401524616906025990130755806381380903598888892265952798925622361679986318483918201029160327506470498178103662590856186902776717983798302385037737244926429052713211981144347973043257222642427950021924859079033912360271681631314703289878852101989882024222126281428130751612140068551726943632708135174377453264514440802400410187769952975281011453837485586372036008446645442024007572539834635248585535453981445194559742892319493995960843001377378929454035918808798309336500178802800102405870553388056427057239580435679180637646880051841349471434979721760497605411922567383813398197171357853259336064815410672475107476441339009575426497597050666438938040199261952917449838336151679314750268136657375453069048935317429374167491429134034937245729814135330270327704117108722010875666191264627836107891759637733476202089622644832015955233435499542824453106737891887446313542936594778639990237993431860384724407725665513141842666891735836022858673865337849553241864431735976287450322909849726612780778884750022864932812976433122862830957532093195958106543146709437468721336307057842619754580954948987497843301261779603820033910616459828240420892318329494788172192921555090543208710672854877989302328996468165561776728997772815922151934200712033391311493493168311497105733910535935724115998790430532596681458270645666830437795401971336103018276446945446298021160787052617481997939901137885686427159218409209077218724396569509791355472784098710541476155910625650184409787519305339978937949843756889625636988107563878829512499058509815089946465585258162299922613351781612022506023349758765460809338630662636269493039878902267485130402536025952214500622843807280373598020714773788637709571762200199390771022468016164073474021116417479738550288282378558207042780323883778408905922005486169994171850571234458475535917281199620226611721492511033341678509577636695688662412093146051101290278384112550664322277712543241339916417024976724461889732903103202057343289889372612056846570716136340511792262380388330917166881364629701737611716066434010041250898126577295612317565225251529405403582342566158141434535070688484530909302756855126622269753088095503922411371105234888066281282803001371352410778124845339665022134730220566588001671456440558792811057320829138056420061354408688188920049543807688759947927409874974803686981938884127026432760253373745915381854669476852921286499873224388141515349410121860036069762819573673175859335607978255632629749176149131895363887290598259480286718860164615069180272464320531024287852414523905068173314034871668921993915733151128456987099607566248444312766149921295667723138052153510621075839448419818871600172029435994082668535458975022221109223070194762085116636420676464421067239021657840774646983947223818535379530596560748542523619209741113139839482764396578997491965133791104650112128451820043149622541082648388686063425616995925275702393939452494837081398627564847393844050054223709664545281957747377362127149518251405090588972892356737431364035231438802052242562715331044290889573678509722149735115530630802059152371016905545800473406655896550931685122582030788091496204873743031855638547385836085562558076420062424699272021004448086910736750955469085016934527053414282207425172751397482814949942065313277753194698772810000925982098099429503559743388265626996940306656370765333810027503271525973757785319251012406249964223709087137720639675246732915461930450374650114061257358130690731280974103680784675119337004069039779249054577227497460560727354048094297853101061836478919487018772239093067790042014506705549163338809909654840399972552782545506305939251520273437724229257728268259881114417563329646282199491963598199704076638192919688085241320009435785164686551833157796312493052262582889409656397261777539945942826787133053195813773189153986619254312141629825119423232971481308798291276539885074922283457934845477116343578300684190289866730702322252137485062595262547295313437281574758386337581275787366999234993422081689310767495847400119267217125800987258162854903782965120142450830191336376354772421500220191172927181327853744842509540342674903751694849120827630620375991060621218934837639420688261836081902539257205490433324677684380683521046428986093130922483460370616619827034034241649229930729041858369859022676593988516409507877433182291316404086413415574446801677880317297045404202813022477445983017829406450054229599461268795194090359552439141711183077498896476287066544728429794203092945914021417855823821970715342827124445895937893927373077705159124606283787836969633162525889668799183562321396117722094548793571571425439676813339459650114243144311827529149296511802939763512490115519168864512597269685421437068102732371711462021064348339205767653111503607254612785428820502682959147089585222164582030201264159193811122763416767041836397473871010293468516043464608098510151080092517320062316817943318328738153285320663601185482407827536600672626525469684133954292429912192680348996475228964461223923798641291818372022041441375193041461794521729366424663673204954421851749234508970983879517432059165802240657865993478456305729782170106073907790108373957211461742105041067868092179184280232259314825386488757517330312863808917316900412175417192329393010774719983522322322828783338999377490295310125859219752067031772499705630170225498202688316544408561013385879245724487716980743333387340362052200727668629903153250611060700936540150742865793346238306728976628422071303747649376783792175777106735893647405087097720031841552316847005571312240549981117219995131051254249911009910340578275157483207286629151157866447216121087240184006822123978291635454736467081260226746825488621984069259257798410043939800254506338689277258631014769901250066888479289448895794465674218972406569230223285726345554759154628053196526444580782173931660708969342091694595582913156159965426985644368458796152433376412644566786897371800864345177603427341065982178051171055512157078348354418514684549245037077279035449524899254851415251620829940487185396975447287418266229682372535900440809412312695682409788253522719239410625244603273590681805688142188273102206274082078011275671681523855876750710913070884056934747543942769083821938506487471627347722845879008334677137642451174599408189849785121568774642610234755926608448154990612331262594395829316794858769098944193891373776472765836975391954175174024444834497344933629253335526988196878413890856554024748854158318129332837272933624201862237021141605053897464399882064657427194417707229571770308252057500544934171543625546917134751208418872693466382356655239255395071195289484457263802072572924757767207312554009192290171348998666181851185551251252238969531814068874057712336288695765978693402048824362366215674574063065635697959879462667690057674094050972690543276171538250047927465269445544343644594171277526671685430268023996686043160468579086293682501266013910916369127583371156073561402588009273895280546670682380551642731068006038981707015190930489915291821992800902468175560756487787251284071224986900023057911320708799357957565126789355810004732024210753031902629867308324326548841020409324750472796806749353470310051587186701141508761943819676934836557876738357615577858025915332668460415235126358443986444531624910059196954919597424988879214560379160565426758568806299964995561816491163129235483596103663935806193808266254112316922707022784261230757954558021235188945765086869897335442164721735037958497253518377929829397451752722051861302437705589045057807565149792298904281197652763083089263964068756518061345375444447897582179798082855725237821724843809852836400491234288731934964527512387681210792841034410408068355011928392652476374294894278360068097154491830616653462870232782574454169666109550011886896525498928229480302671117309259223086368464802384139890144788694940779536800443294278597144842720428770682028008744827413341488420353976103887990956371939545567020489859725804213636456535602203425446121430636614044047187207351233945485694120954596826529128470770770357983043160364179688966674120230578299115788189880015943767333867767773632264748543825477708773954216469371995137970813690872371649370209794188052137733606659234345368220808253017277648488810558957775706463991134590563961151423170138931305121763784867431692479843114736409102761691159372406773512177175207934111334927781683132387283078968741605610904270879929926265918940676413368028718916016031579713499630910987412231976103538145905492514353298033479765672478421754960615164767812967708694312704662137260378603300068754527195916726867968428355611808453183842543508181793379787049370395213053273564023220325242701235160612317372968268235144300994788883114969847812842684803599327766855707264371971656957140965093679281711717601274535491278742047874106403188238999690442531410803148170270162242456701969215363612486839766216986109350904672488334375373020164183560940043173004723273567102644382846101896866117508268646864529555512429559966641948629027955032785291470496430868585383310925289987247951937679945557396507244171244074997135286160590187371503587754185150811610055419366812313627271027111980267172680338168472502579136313125035759198700303828943993824391386015551045551068707979533656285513615242115665641669310058061106328646775356864484412774570694661463347100336941781429920434705829817003674530941781968168749728732082013162573195698404809724999082928580586841797992399290980867194168065060519494280672107046065872160018010392125818730736232688568198221835699385686497181908163391798637996930322267917439537752312092228420249354007668726725192190092037100401281696661464218337510365719671767779970671685209707897909908685478760800564157968023547746442852274017866564866063622800036839581535580497744065752666494877628963708385019452837437635683893052045140087172319909311513504185729571004679526480652523183223003718795808429563976409735140644156113073697565813884126767957873038105208741358657421287219134182646731286309368812090061948758129429733781956733933921558770608799760530561153475824413561296613661611562666465229139722690021098902967004955062311321511708973053144585497469930579029581263445526912868364584758083324444480302488008137516342562403065472247077238071841893508361708574934042022612441433796463497736563907701423988813023422360723021776500567896817691915207249423627819372588230005911009394381457264329755318946831779453399630752186726389897649373748030563732777855640172490559994829607338516964907634365729618670259023254916124002641850781089876836667184775007783376643041884647925642016780046483634558943154210278076389245302698103363067959737489959507384844436007377261516486914793445538046323162026588327411032797279184998180775887714954258466243326784856719869242771218165843406074203615048984351773610265327441563433707473653831107613601471255329208040250044890465111817046798807895438229307981374888462120949603085538394682440845381026263064677497808730582684050082008543348475175923515917105211733744183541599636520994299516289817237343349442586580280517612242756345978113821335989135186608938304552074192870115862638872472126744259202861691929609488542881498071063665534178950112886889462394131604905417519119335495547318508340799662634487254996036422794813034146540483487683173380844602599949437618869243833793511862001781508261893147016818264463080638904078905549994698058915208192634441953879297636424877172029724046872617301250123188971175168439528828194186118043765851582282730887708418740677968416494549288499973202660189623874370424264485328070066612672797696109659372981478511727507432658289735799614120022408882365346642143875498427748095516349444410465615324348599241182187617097605525943593150111416525718328624004475386399664060882547061082221626517902428710822208703261652820725087663394450591615336788092766229427111242898364812820896422663200643705628321384064945320620983339205618419491700899606837729921741590272822490197724496417611662659710004045191838418944024415824574835297026146341157118953123370517748178040394497437119846335850673178206255414722533056664508514063586705598459540445924214192003294683675406157650420635741357523278681421572703110048505008380269181987480356266987048257132900227513599356942238265538484070450566772843523003316259174454174620178560949999122713986269672240327632969646874460589251680724338986884261897875813403585477115950190464459289993357244099094929331363098930630396184758512823752307978367639238227173117156941583046607540959171370294545300887677596363036226273891127039184785986711324672170988115993209853575556997428078612960701086327456442612728910251781569023411540645411581730600897652752220728526148344865509983261844429556092666175394499856753725853916796456496096744294791798358619222612486649771073480693550527913879691519111777367251304262408828832024573112163245473199925458991758774454182412240032263523637993161934272914831102707930394719204672310997609773597943598631725051912376704558766505065752427245324808015097737005118879488295513268203344171759069499551699840329070219997767245292820450795365536550957940585972017370661987590285001218319948033806625501350450342545979169661458927577218295069414096854135119931534275885643197793717946819483605620474968049514617377470061120351295860542038007254664302982754662898593949869949314866949036547720867999944530486392950482283630251756928982165451146812946517629995030050012335538808862095282647223789862262844110013492255569245244026825967485732222709815183689073775153197156187941844108451199515880543011730118967505373758700247253707475682299597658973177368419625956315266979544689150985679965264568532548889499892381950089745878172000545086187798200856356517134507333908932224073534634664985427120701283278711654851166755940464654054267329245845808051223679166805412219601612969943528254911877388723490840649158458923515229508091068016496042017070872990611539530750064597303919161708648515307400943909999036553513445807070801504231529531104748883504148119140630958802346729324868746410812515941123263393677719333387405620217507507041846737790307354086902304103199589067284675738710202651820061491827132950009206031324275222759453153843262987598189083914024144847146741093272300452218387958347174052967956327164942985946935374432604237379627210706238737348238250778002213284479201201800055721841847707842482877222447493148355333327761726933028078770755749399981615598809584979349703593360303184817996860269191409648510887420456607715662442355060234011765016354417936354966981142128010293013551054054774598080946032570547844582022179438754402446877699998044924362584007880987378414664001326468956618419874616847121552165005671395160273210825630128044181379005358708624728979305496486099380497047075398190575936137280568985682130985091881269167795600960529635325266410180148498669189144310537461827903687291081210985292209587791398331282225507965497737573279081737726888658225413915698483733300247942632565665350194028026716512879978426496768419580699638229032139030543088144203549066928522436752753962566625129443212302072950225859207852690370953200333838704589326660640091179807238007466571685001749051419956895810703420432586768585143331047388828453389626155894918279513708350843877923868843902762586040172924103053738051352424359889925088684031281294561688528966082734425182022083984861902977246837458843186685979044362816066342473308654898664256100914621232632521680142261076770001960367781159395951146618382730094642429044207942426371952165487034085918830364207266354082659949607066407394613401923036873252005960666945216792112197476938174761380142012311453627679171606266511205699027781159616181441205662740698892393614856171132173416394543869420347766728586113431832479562904146754155119388303941922098208664387010252005581535820882251137699221377400027905852666669331490035988242517669036059903398000819184605953329109925427790081556298938091850744541974302837699494009490396624989304035114843076108821549685553639544378850324567279662048795705096601988174734210524738631033362680027912614493876901760951026683052890315776333177502418323803719342612686627455543290301581009776612219623673844423604091433200011373370069336572012211858536717350912210751496319339621067500299686511296762907353348779341578933575191898826693737815443759011563230826113458366596913913942410018880556926684136654295620354204331474454184848440801628722949700055800428458577873349273459932406633765282306921100142860820094791846007048329654728794358992578281935160741853507748530339367964267423926628572679549880706805005818241043059330360853977470802308396932994350434983537189409034751085974295074329811682277827228817678416091786748570898866163110176626292561729761728517030229903462972904252024966274099581776653002989751122408605116169533145271157579861743053335364861683957675851860778963774137383005010900827394108203741637809096892442174397065258799722051975658578445588547973531147992718194422046528139650471586435668524349622038229634667236281313916628897338328324099201369496614873073747803236289474969511466188979743535193069030626887436880195057839206942017581537104220146647744157168713776285426140653143812217891598663175379702371616376267034153874877050663857886295024942441763502813464440597648812577509146501818852576818290863248837773418278637647314954344988049293551487759723872548016030439202562920895507387221674147861680947880490944212182592095686617627624288704473655534257972856797468237987576517428158326755922770494130275383564202408158720306959173367323593679984978723550121227835667288569410757326098748729786706939548585776408029699639353612047048897096555871747597246999608881933732239491305331739001686988818487339746433453857948625191669471459138398138554909087314258770382304435143833186882692934345217959268102260767649405796870743658707027431746481243772624274269253062635000443907749775299943479148147629860708147679917291231372793296536408698532011855846066416008810172941507807717003438902968401872676570943862604094065170851526976799189033069458523355767134437825325952822743752734895866319253263267727750533490249684200219041437621124227654779067553446926356330353158268121865342297413003785300603642263097166288518528854292645483712891331332659848759713952150425947364371343213289378886933963411078639452335830007274378793324085647565935571616329291904291842246721492931777473168471675332100610162292550943941059842648576999338957289370415446675213458197390078510978310421016127430178644722625092040960061036616527857370831715178504513154151126588643645421832019633173232532576360599483780392554950452564933269278751967546923747036984926359353378167669855826409092233568462288154113339964758185760326980035776447961026833315997208478566473124378061602712743280509466814845728204760449796623062549584637251699961319079934774334767677210859072201956763570922660827644015421098850667371937876287493784793040049178478788701495034677305279885023456654818754448615399965201529979662939558728744815573008950888173289728866733336834278932723834192016501582731227639452012051396569355161638934554933428905759382331914435350600278952339014230271586385712246004931849743160768442634075464249445569752364488264149366787912029477140204371475402326547702948469370854174265226493875992697610156059794738079842869376335072249224727276818846070817565692854070647512654272575086303311635219896049480068651964939633914379456507713130292816310105657475187687652459624623555757624198739058227309965288729300656611845328003842971883386498608608287132443912009395063173061350570990911680800738463286759663237498978571196366431676462006189906438209352975147468575000940295097501557478722462866610186975084898810965549594173729984665644170427015802936478019672887574154000620744509775174138746048164251213308078803007935355008120704676000746902501096949940495027420856863674282133322287897936103884060563011561152589201571314659280911975821679768309089886515245097435048498153236825089862878347558765187633797307837685883316993877910716554562325505307296196217622655389097939196295779437834546106449145758587181573433813347504313691153635657582646775531854001324713136412178510375372543947126116751189718674306028701004763674001541976698635895212807066546655085327045506812130517698407695246431695504840138755877963172734246080253806913136613688523550830572514312028341586845122367173214855036819745275046528688381633460346125966422178438724922807048157854752565047737118827146718022839456807576019792172447498466151843320255835069187239218289958361244758048510891005255016989079676703776152306551295815762264613431675126985247932769467203486362762181017238586325150058636504296376495326406391048598666910981887541097825988234354120195680222251095966884366425630991078317101601028390965245724326199446491289693080046026676078626027367204534845807706427296366693807258754141964961777482715944296099531896082609321386913569961370161848680130673007125450334882158307113303538434247932745327553950141811926217759334953697872990516390465211663746494800639438720090613053769262128563461762247850141729378813382868543616570231671447134314416373818952327417998530905672175262725100366420697961643925521401125788258365306605600854146736054214211936138168523276780239492408336760740616894211618060591574965284269354617324950369313256574349557447502860674805707513709824875106717959536386705187119142733981255749809655858270765668608432640917493258915193346623370332939934312355939593100918293246956027881271471931866840857446112118439877910542034626632699916256449730005302388875565383660073562105584105693673269059484616941035121874025845852165250816651557689546794430511918486260688728696660086621738108138423289436439776693792655069934905087605110283726981638644244049584481201887570375333186127935171396597180406604447853525043211961543417204706846232510701552919400730447979796927817365810166254405003888244734666258357282060312337832373460091985472909209746032675282544082261529478139487729841145553373067366965881212254728172299034202385457445657059374838327155125685121567626061742402508840800089480086162531717415060365373835112426685385168306591358931205348308685749733849493154301083622187476517386675790824321124295550607304298764309681732466866613737564342165352036430214460883900596713499820990716430967661234488987988498039345454819577818520038151772716098260451776055946912547382766067402659184710124763321719829818020238679110013993951120618555774205646579790304017064941850952471951334243025001208345286958356132045684770234969914311943195374041469816353599169594469411582089934762081765076047921779765566050237987267869263442553754162015787580226942693260724023344161363308640869822842795537963687542431105490073978602001543693520926254564217440944914160953378271139175898846578045393596460463373712261205984226749849555611335005485211126797311322996144556568111148431350073383266541283781735518597762567461836836763461650399931634118167570134797940963386872177650331442633294856720757715226048738896748640364511158582813059796400361767064601271473726406578475953247004859571689414973097866079214702872650438525309139503749250531711369351213433075324632296037255283306298185689189787015488097178312738323139273845469286986238213796811940488328616045600563875365684448214265862862609117901230393902186426364956768119540742942219377719283294564020423836900066154314761263855758072250944329434857755327852364939478255328139007831222232134008132820584470438229127682612983795148749065018195744312024931214148458453718151571610519366452684275935661672477874447048883536976193934128823495724501949440185095195221566711551274676290402569238607417554389034257684396293363738094900737534710434461787017333323489093744636787116069032561286472941383787470812507197691373398743282769563783833512722891746901502552119478865037530270358059435730543319797774852798996161042678095705280311271193002585943004183647491520041413097268160515829785647032622176167066370953952089658198755807142480926452588519294346937812715900771700221412126791656962681824678865817177825982635407907647246944819016478477791374520381920789757742335496556648577613871454338305624508334593135866728257851110870541953447366448249028878351523406885326045267715093632987061238380508866089894013638747318764554353620943851810312698301466523350387390849644128924442020198862495871401326726532649165589194616450870960835932234621222916154566610469001564278669183948722424995476345572049669756726845883536356016647307668898843558760149330725524957817105583219856536874246443445505881708449053821609354811782054619219109917822839757335914835799615027150391628249164097030044800258770490577505613568241686469604288435893603855245569169857066185981434707968674933942112268396483446540673841159632841867270283362294410517830252350227454913426382331614229611884845568909694627959806738949374845003179011418380273949342220204061160113546158245521742436591947996396141659251834919750520296159466899684315466287282703707879857379908689619927386154729603319676477147158633306269632121818790869906196003269294313597026554542507115558983109050113824800974812695331487389212402080109402153704756815094621763791764564690957577651223310079897971190430170898947198659820281685344160724240140564223604961435496190106854518785273114471518648018253866162164227949474614296979006383634689250901324677962541928690877613430583358072404396276129958874337278589813111729873315230305012236351985286744181258120409293457821455317870784121104368680015220834932973218870485290995500026208605106410954784728626487516149384458747208156560075288505076341552650101835182000945624055204013647024072316146812610083749984127745355270877435441649577248391914570292089620424315058485287905651698954521771745703493578342673204499500731642358797560075556797299046046964846763575361758296835117254300972425796636528396921619522433281943028999611301877205849285118186857737555709631025389467931204968120549023348042391727071639910532818248095409286966014390495891708307143433466148191404628759760389428112383629620662691508901164393198764831454247174337439100148437845752823021587059406078851102473917653626960636485001718527284087850983626890563842190990879833085417406532014553640002585452088720559675694890592190989232174439114081121589360864978905151199795933521403027870071324271466051219109499193798557044926802635650243970813929894684170282711216813175005554249060608638600044470098120617291429440918969887597182957912545149049362542019780539611219207009862056156454668845039834710182033166722342713723503429067490909830020808840097055636540687666850247525613102672735406684118131662412824259642410789366504088690905810366814120670019277108673314852367040487718743784582537485956939128639586282286397042688949516019918635568538733539111633674971051203151080530462418442755658187249621588257609116245731851212358214562584581714755366583281313117293153410343290778638511160368248782246756520257339269995273909795927410548006701178884678350370390555013264290390156759185301899391973534205660390454419275086518617720066551307255357420195710130842386753349092300459886456341944171579457847433010924024857888080735286119186192511655008623884574504351128560117754925569299418005518756048232009080136244681659510288951948630526603257661759037856625786834954542236225507781489743819310314889857711384911105759117847048057503888656141786705814395232185116447135691905678138818656070862508113835040615921853083841932393846969257764625908151114733302899169172844879231371183555120728765157848204462295432607822946282720599374936319048475998146965290285598449447193530736078709381993897901444713455884409673165288806020098021978610764276475598829993655308105529709020346073306994094380907885864897145068279678864966439974835360049822557737553260592354907599227524437657670833949215193447398401895700078652808464844136695674137476816929676435128263467500042404591699833212596503452858074288027293918274537174893981412653114111791006645356668671778573067299233800285201325783923741400110388974350687873309601296544141704869309978880772421185373089939639828548869223122031441912685029537727660144444640480751690431660294757587784273856304067693167174408629272706159284502498353615586491804175122958329909430304626027382860179301730214664574290349151597706068764092322304262238774927595659488388975445396159951531831373849428375454199479024744474232728219274651633407170652777071583913927814981625885170640320726379712208467837499445279506109164990563098252198290277469503752060894328328257294540130782651077191685603640268895566930407585694970576251735662101850087079166032235706260116875719708717691354340973897001433439763025897422049685339149981881727739577402898857463278654014158568486366895586393935498857993102548760959862039122447926753156718916776707026335274883779533828238198209524983298199490528239518157129763295127785231031888898300244488154454339079991025117142371824391206709573486347842769328577145070234895635237695923085125995012248875853343152227789360236087779514398669567769657660029391784033764720011150855422788324708540466624444437393615036267379685730815947914069129314654141871747491767023487419714399981973554861924294531077048856988246702118026230837383318604340314732021699787833447136314187296797156797395020435812412163217306704316444065786451729965257242802723927003345548203340810603641842515740119988829909302189459431879511387774807491670574866756392808049408652250638951043985751903028686030018779840413700911912314484526667692501774927822147612254615720053392694565111624121706814109662542715938372520014046311211000241499506810983559170645381061911942299573551270283348268125098197165542074536804787304891794387884910617737705247477142736419672194421183916260523173731682827544874896277597297008077077368786905026195378232647273875163409384804225693200333440205828280606638849015217067295200102369181839933593646899247790248457973979763744904305798145529085493810972416953608784606780601073015960521652345881528322013350888544010420699498733289489393369145716400940306520000123838026012036932482622809653648506501437728151207945841593243328793742195035953021675255891889945237814360104099347295559107714724523458754503044976726810803201101585136947825290129918011188615721560820401107706536265382630305142843589774393795872273046744220200130997242848007441029382705289174770192921992872173689844277308596566915056438885732252424205690930997536240086605446261837807931962696964001616815638848121006903860956722260841141267348460945905965611574759386909823483313545841089298352780770620547533619311950440914523920290534336181263338346749373112778568473891508765322525222494152749426147247638442159774621353463816061445129416769188130360531442834987888505079923210646024442935162686566398097505538738511629476086594362830163850629973027611297554743265727002657190779388556863196207378066573151020879709064518111606197985869481636113208752125317425759170578403139099046849986461774665209289266996943207129346141181816603098497225270081760386527716977059177620672508501757493204980401574366342856933247066671767604513297870894636739418470212367525778887086683673445955147188566841434372535871112899789714948169430495524364475925675831634482049496830796803864502117223607394839578022905112708613613099018467643092084969461665391615220788883873828243106283439033392652362050907044993392207927051427128639320351716699700645233721090146046133917009687015976096504773969251678031192668632620038897101652230761371387968179557334957293568995652657121759683149540603647969111934269492112457981169734012494844190958327442195758122707130415239143146847636049529417377592675092722606069154867676842085511367480985343261793843363028087090973129118473462858997403958956880062425958318698738265244914096565387049155212836755740640797514905174558997761372900377079119731952597654763411685314264480400683919993825967909430406099650099624677535874742580550482614321510915986636719662944806421122433222690965115937167920706495174302213770676480367866281865960336025080675486721631495767816521071104804001791165848591020995427064806609729686017324657018542564329925602916308152288339623596077165015162251122415321638622132835977956517557778011554371458501139483569484411758196419052673318238103636789312170892691728674124189409391842607377364924670449148393214207837999163011940925085975983369855750172123694365789491480214712098754014766166101028814740516464834937584297041642366746761762988016790309909296350236809513577636288817006903611623367445962052700943234914093587048833152723993006320969499934793161938390352857118857617711459506591377030846818200255392751946903652605279930808805313635917327138183786453036945248274148461898735563658457261346144846031147980762243649165445409119128735782655518851745437686954289442672953558172790532916040055660756027913053566370125151414041686507292148792238157258760638217282666361160663407910650855964493593809119150320437108696174327820254386769300983280540712534463150860039675143935057074292408873581402362858734415449440395122317675035510233434538650744251235272354497746384168296870675630770301466561314960189421733687856111194107529383777619815870132215195429041995496508444132259820033498029347986989167935736771845706582660056968314433544542514506352269371084881480566988583019694005280016169899551811198418226182368644993500619886543690045565703285925766233478054233160357468273541920514955460579054516589177318984920556175602234717829792150503068893745304210574621017277573833668098182622273277080170675471131568936184579178357944835635286571558540641115701439864987319572385955815239688017538191796692788180591448036721431200682179917988566549587741756795213749336951419740044122756787285310567269280333420272013961463261027219895105370024527475841431305702530468733525362154459273690104515944280068631281023947506179257903688088501622697339890469979574494425312433416824147009964675777688574995170599386616767774966689774638306860072386819669252479062513714467607296311382797535678936195335234343182178159567209598907971264884433582657629679410545105686442892978461831063511972498635358717636609343233477283777150447253813208470300736011850544176842092253481917147023967730853575375766614852858742619230778058854018128509694812089417989377407566154752489620829923642052707379729644790012344917775338872571711677094069876498383566000772665190475068618674246589794554585809447417603033739147337079826525284110132390788510794511539560002412869022711781718027985314166283407101317035307839124018229184543866427593031831327116127750722203267344890019694343722715480252890780452264088231213209853669063386506206423260925286221028173914895736811965561799451169730947004240494717627551543755180404322375867502233680853437055500611139934098986220497181449748683656207285503202232309171249602344519257795679253963604092985952666902572590731201432751409196496527145183636073769692949408600915945400838455691862742598752145333376453137989911563644766879339551559178565419922107992121899977127689213064840022984523412435772978622093203261740646924339501079831730182152784342367373493761678781686038517725638818478312609756816416106583419971002136059248074874706138216917261584565056897854630957915714648040471913417494634792622575108141562996006203313052930855434953929393152655008010037147929295913806442960069550333233469149872282087714219494752860742674852816107697332956717418459915637289818267646524079955292977389357247048863933050979225747217428089838897101441976002186546797053405445631399279672280807567366233239972720823777462987372270240293574543516476250905571271811572575783821194179549117446348672693474751503150818257327105262815166252772401467596745701092521318425287077255161085058173120906810827703470475911984949330365030437262529444281231842814549238727756221086141257984258221535883793701998839070039452297282367882135030136038388586076631066932116520959752803380591898147150028936842865349714845093250723617532399455448177175878945704938610875050268382355935101983552976496202222735569529261645990489484085980799946818938408763019486564083611619971762477879108366980967344834304806923594795961237840444678642779696441519238163991290449036179353129596735151543579438113157919325716642857268045860116724941596230223218959970577577085088405177564283656153284233042838484692070577306905302373044061817344859648667659687757530537120643831580328546072683773874477762084858575318511978558007936274178164338922160352725331890370755433427043173755034607341605989751432397829449848130550512084531393767286869553367045008203694706736754502961526571119614183782237677214341051104311615610588051789929407306099649139746570621371153799142268671607874778195576638900588433370464091060393239299169936002937936033826280643921557527671543905456720063309891615318344697605655695747659434950221180325746927254152124363757189150266972707363262632205842037487622511863151995700137799945248865357060580331075363163769585898948791959454172484444283538991186117644962171839180315175964421562726023338120170989526638283763289252718690447819427824129661391570881899532025387298246685427143028769427250751512471987576659113941673513445798819972190114202045656149228085201904135793268905909279646787954339576841677638280480286149890216630313754886564499840177768799387180283477658030768036941155737935092219104828294431156359043408141842118002644537315025398167961869704560221322056842313623916060909361307704006791616308510678283958238962319876556282083492895965565902968583453071342377084225333741998976218993731395880501861392702378581100175866355024617298082448835708469938674653156936655066575257804489378881195106551783530262092423289720047626142063379390109751350769438168037446014231321804819419023351524889059677297519473255885953248699665682421745804698997859545844246056866059368983819013152824051415393139167897968500782235416979617006389757657538680132176664058447781173193829923640380743775057115311305396748006649208419226477145247691863511610549234254381797916788072640744869898755024418815483030572472098612394030585278861523322678378023974027007064633711502548858251821608719491666816535874992423547038754072439378138823706261588338309220667788278768470400752469390130401912412915052160383558335996440944617380628111472767878602719754693716695285546327466456299562561052958694926682126800496477557920121447398665537372721745240274337639288762543456900938126335106649124126059880680136347261977312125334074323521940962861423695965172703378761756476280518400095448126352417934801380488657375650254397799157048852268553448149169921124551638635436728954885938048051269802158294502572849103721773391818990189618576947554821466191414400247401767782545435720540249455301340154773028588914468630479464012861234722655899710603538852893734987373270977998162623707871773268158466359381714575070969944127049940324677116635843226586619258609868700810548661266340319907332336067165590831456442697488073492798730234372223064358999841326141143175683328668923445142263197978708206897286097797969071830768880783895275934890999216716829381642959076758414011304888077285972997183897118579236628504368220075297818099211610350418896287110144927643740193149615269145114366756862460801798555139895889196668504523162719591297495622096975145315722189843635083979231435685319278980200404716042255943820301116770019572688806979355284368787496919514801840931988692246930505856794593052958559460063596004596507282391788385314610966529437463418835233623822458388115426563547708106503377668157723485818582566889691177049364246222580144109065928085557040295518898081070730596653152645900310482960185031302953487635714691620516950170608157550901787425459385294779455004568309441382982143819361665934173214529977881448430425554258170989046456438458827780500885591117539895965302181742797904096655962353178738627154982447716288552962485589963591653701804693177040046547917481970256712275518467888646849454605478643925532460926720816601546886900371975962831377794285675663819447655149629983672758275508994808501685162111938685936793369823986568819088957292901379745228843485521165187913471395660924516421049254004484889098330002705530462080241417118126438925925802969893715994283184139125294757426846699650769937475923246138812440954543755712674690193947997854074029209283597179151726098440326523939077459556549030175059118369976445547347500653348322122789250449425901903530471841781766545761526888394484455141243814931932583644178633399803092247304457058168999613814860182595549819469375337711098267113548775700205704012109769920572793180981707047448318845259532936788668598928974799232556939489481256472242241058223299529843525984702474209814669598361125283430693917706319809285894029924209975707080670510288707541223398058864410116216761521856685827338897136198002132215960671324859545301520181151206572297997019367027288015840438298221723963112509568016514639180200803162430012170742080630851087106133469600637130322412165755170797034231285428753374662069359885611456685104321603995843580570052777717511840755433218429426287142082661701481894945446280673557985348598572135810882239904526841587614501542815104560018966945223269218498583449160145955486106918250596865574655212653816807611924238683857581596043995377221613099541868332997165347233371179444733076290067650710714187985888358386456650997485658578106809862226556054215895147823021207114150075497410004552365389866696896730333861106584349607085910456807729415651201392228270423411147028925246471549862252156041856318074543804838020515968024616664646448353344117393212984500171842091587284318583498334002908852296166526654477254731108476247970890045470761644233642284987916222326423489247215080978925846377677800869020106219345657178208343737092449128035653182432338549931828993871257452445219784261105891308988286006311585648580401639288896687518856788472280136870976776409998972256952752027711452015557228295840854724849208217064624262119229945600624569573017914584431589386323670441554558435916644966148442508153572494388538158505372314366646562566394507182477182744533688885404954417121268970066221092796999248932246489742234357824589040825565582169293511074826806852789435408557307720900042681895349257464297148420770172743918152543880046725686734144818481079221440076601654112848865795567654481835868584913247104374186119308450807203442318638990171304318179390973508331727872050562908775632320608760892000016891616016117538061471434572735460898783278598153245366599480286608912999097856166922153003223567610907267000656394818088056025147797792351271054429129330848867705121221385501831649930979688125408111750808538233130472151420074684846315492347649596181297406306880346015425783617446600434490317988718155123715558075753690303808974053615869697463226911750249138875016224904628379436268256728220225523261065165037286914965842437898526718524059806821329969726997391563350818177740876540820896756654934637860838195084582540543822799938507416743225753413040594960041263384211343692746732498530558696200958208750621263835633242884160609203730813281034436392154442405502310969749151475771586748150975399448536054571435126623864346689093853325653370525685161422582900752042650976898490796964975759932374313699116401942430021262770989452011277180723550492166324302094583410476270580352261170732509640120656751505016187375052358813115838330789842314064938096538286924718430253797908416884278236664186898538558337140856249095096529615785574232454748011570999157658077884023719228438192472407333843088258612584416105661238912766510704001471598634700483400489149063144230596792465916783254672564064808695146384703512645336563660913124204398117165896993836535643053388728711787058991022898983071910931371104557529288275307512660417100237035035438414275891148296719391826496698302965548586727410560563046830658540069735736077867665683603575939374248699986237919501067282299958635090003310540761728238661924693605157219967509153422258397941423480836687278631352334258591981646588908804880199841507251830802261575162458889431040109565143527190532798106185563019699667720920801535728372777944196702358830417424501415016178092402256053420597715376471681510677301156198009606435260210868716363204028737978860166834112823531487542996987459562228624740101197086873606189495753740077111642857316147030704607805519735249882082676893368482999689745962108476205683604579897735539451390633083641494658375226054359856076496216027697006167631064189041387714594534522173969400281828158915353238423242884974739879239850321672192720800664013280134199661204917315829495120848680530835705078612736010171526539013390431510159104077417191325513888125801038093041457748082842666943609611607154045370726567357555770545708360182411301917122214693126546307948792062060199961546827707905534357526557121547925314149243329938372342912428922978584173970157203491764102225591374446410193184083956765589125681921566843086728554026585804377914750987995332836284002519534986546773430226277085965546563205757013278902037221158022242623681103629599997651082292764637168391301913706359237959930712841131087555577154437287978002773190381231043904476467021538165217831579971278177582735198709282902550839611260935160120872300605174140127140507001831773292350783023960806792142143515367161046137918004898995255906548965670723874052484304552410924231662237364221668614303492275036446867164291461414748253359520552874086957738184493158792444583999510077924520109990516005169761068989890173967683244168763683277635025409308923157869045234326279217649436455926139872110533390004523489081049551127490700562893321887859100930550660205438293319293213753340057752847388797818806531093596809848086149192675034580234707020182359195057312761927540320126577734458274964017848981029977188895086632532088989453641297327671140960314820024622578751087862552770152704576255336323129013410757527465107975462651466548333523760063886695732831719453744329450844979475446301522087200928537263608679651491431465362940612606198408019791792258461117091901800434369700108167821879828706870547963484209773302712766530427696132742186226778476881570879541970351821054809808630813078435131367000753678626943462021202938702809556136701492317537248023818366769632524714665194982837675392786837420585232011124935326726740414809011908336060503336653058230082616187366850147442623885111031192988578445012950912338219428897521923617077215482414117903285855913163867953950412841370706560506511538201315923567912663687108578402868396389276903004275277418877616203627820727831475091093762210330035187194945837830528527690667127570871643187977262168119718790473630723070433137790922972178030587325037452845518774123349714156921776160740679392805099928391335561404257280356956531122639335046101588602358323470714448991891487494779504699918731666553933366091389767203773660484519394899017163288397044381653596170286614349355382966298393977621584455721905252698403748479501925316091682373330480241758798830506907820931268505465797551630838483823721394862388872886463722813457116593784351968707459431216977809352541638861475598148925167851486447044045247833046818338610650862026948057484761606419364103426882659861448964854375353751727154574508434926855453998372057505874683487606713751944386093468464683952217224482943709802506708371749991795714135363533179370340620395217037139663217770062094433198900021521143977956783601036789000433083574021236435106001640755813794174030719876558215474218938357019890493419806199220669793117061268519893398793828272821992385311984032674586890632953529578044126990295048773845489856530037605900982342208381145203050466282235060704728978118397702578255943254066764625787627344105288787167454008901421923761718464221549811479004671565994660325798975606884813305468200797057875699884959549370755354435792887657709672808487429985213896985494992121040193544307901588033894318699252319713807866330631727490912839540756425205975579096234331756234875535426905926017276033769616911621297297580336796648554072156897176012332968859170245346345643209795192988151657346885445148217570339055627673772472318658850322379905852991233486237841444674713063147689036641341222729030767648779236095734066205381869973779952192150002169261875871703847029839221193182230785096443474737837940320262526204743563819246559078064877247180331635963303447102262888173241631341366736316630447231863549986182747465850095013846756934316641158197827841779330870692208817614684444409694810851997800770390038563698216185721454454477673194079195718832174876239693924961044242557212227313817653891612362049158955169201981125235833624969639136533402103164209366650043882559973830663130489394916272121461388785466432924417894056799196817732829744985205149820470538501697398894835224449031883610695671354564276311405798401971313389304731268506102251170954337521450259200801245022922725694599047295743313652866197289443442260262139771340669916353569340305026847759937114617404120478910037612100046756916692564371759749605770343985579522479655133368120031186079342714014966490462343417524315560255911685117884122982763522103745002420297416753648644344430642696849474318057454980266525213101032998820386819829046473108499183589381771577394544919334988887280444853561037941995856599224141801203155764335326108640900134906464545693291330690941862893494306629170352558593250710226039627103087635296773166118900493222125144513518915874136452530747490869831326904558479315134183507973851458467721862073097861041766657209288139130329251899366760153341029670278341324360274497151028079288196490400720436839786023978806293911156047212419788204503396846232173395450503471961891356190353283562527775995928551031332026980820579066747277450947655448775700714667715927222213748838394362055487097817505391914814249866188478064133169341777998813889838046356341139156869418053267184917477802258614722898969075176980140024815011320405006368509416666512870252918766437919959094643890831125688275051153032290814515386955707842540046424274642243013230399191864977638483162000009372327415180711745811872409774744499118530352329996581940843105857905833760173555807434405500310367770577046953539017734074968130919937958418037440933629404011848967435660301423052159666172093396861568983598147295959945707282015403361779773791337991412645634738957886826393632662761682274339459952301178950724436470839487669562436621649300560225818716809399046944904222283807234190908690013568928166039114999792389461592571272719287401199510376955457864257215804337190128187339144919450002920260147541117520439111551065278221896509382734767366271136614628253364047261634561238798810036658879277542780391720889132671339905778184677828203867345449778205112178794057549573487908451243482866055039742216803414112843039679450278670285956762822032834948638296801719550577816529713313605692011602033673675067955028284090724414067450270091690948356271083978085449903762208938856141874311621959236253881757523352648286186521659801147609570265503534135226141594030975054537462433345454698795994989125629955585130548995230415461575157090816828472087428451179538914171833471564040456101288833671938191024500655264747434372391837676127809377837941796867561179334451273021054040261276018854223601915964565496568298017954123889301928444732060477476374897496215162455855413697806099132223684129258371317117535472559107292919621011342257189952798148435808300492807003976561685954201315320964406917487603831259898243900750312875963447161578708062839916322618264852582281942251855558450544781492945967180821538405415007705661947200327853867508334738334717153969194581134224686468373894091104141640329560281965778510349060456881799349224632154963790153803511588146411856010003352162953651587712327851228454206780923664770713661907720055950367143782364108909690666191733786114653432749419081584093088387121737383561770387573350234944360535649383425801212598984777180905595338072334093991208883285215584777715630233243094300879008433928562420336319617629861002940733648015039724646208853159829356946134122306885016461543340457043092496638880319285585491539055735707410150140350335872274592089215992429811649628395906164766700570839378785125060783613330861692315002319726939655459134569699144814506003517448768116466203545126301911953189686977276615602217288482512783788162619063636857534900754774708285385509508248318106717548268325896556626297476417290160877716618104200878188584683315509104637291245880570823117587825577202653383653918670928687689000281223731487922515094106059457220901833220655490145692746511825027155992511971862138915203901418497584065798103593644609953201647605354473619533667216752054046690915979811566736162629910413088170277684352542602501793731939713030950162561393279940669920627065209845269497996610958617753976945994988490930867884183000826203219913857851987113918421367345368599039914613239443567132759391911510398285265379064191147099880029949426775344835889810730667674375494278697876982142260488804699112926743681207241528868736183523502721926651836853264197590936631673231113232334167901378991758736853395781651118286201004410064599579553419527806818670627666311029836428990370558133835187528444868595447867030861751918195240904730600299624213156334427136677255465741527415051908072347762400511880944005776503473528729102598081506153219617429010429516691194863818899097014545494145164120205273825919622484804688590212403643388789714780432867883665108346369309183874740832531613786179047671199554708681007281640898970999510875661913595755371322883743384766213793097918283823495571769500251565925646727472564820606395790448262671734988198027037570192849197056914988307157580753015507335443822794488351658643042627242347626663847489753729190042421487433644208304228889368786553195821126122072874537522646561070729808264070956945590239876192411214038755703838904537520892679717168417483691688710800697998501413060905678020670054982246925541790911781968009894044715416577615545347967354755534917730570122543421981005250560078545317814320242846907312825493957599574446985460018127470041657499741231225553740996718495834540730294024408851884599857224444666488688761529810857996773407501809465638859657755640225415206081541709725087493213163691922157120344313425680290499810478120968867646346194285611621816716065205774234303288720417843655518412073316885191655621743197996027192438733507819150423940448169730021345602025565505899275257563964227161405135458320429039427667361651662051530045965112689880758252131176414691386799911049289788024626776820100351519790054093384360250328038391883356924471363529916798400145070559438817377553088921158521805978274220284129792950734646301442771825516546389975456722827331085590381929425424926800870662249479094136338705372321140463786759655186804860843349949993963708032817070027364708728468841493862075709517061876808325120447346218439504598382435344990451516859153528802350055921737982067870617946341124181445645040079556083309918436897319704939789579719422697380494472067233391088581055289631381121502514989886932616165893622183898050438649064868664225563559262476090293086179318728896954229350012938571997485081212673421085834849473591673819826516679678534664823600064267163608029825195473461310559137970225366759809524824228127747035055017817992893031829144851884066009755536566939056659654771516628569760688872618991882045909967342954594471069032336715313545863776120122178884603713881035883141739892486854477979708351001014485370221073687956598389039924232250990636694981465462021756483514005499553860380878652872522992879523782626978892937438909762626811538729988113904086620211652812323205404712750785859547996550770176817738704954727839607043187568649343192479102843557488483484952462046709919346240901952701408038624956705133813213816007562428216434871191278942666681946179129108841248305772115692378083952742887667526547985265438253612173653247697209273490031702636922774215354338710943485120365080137557575218106022232629176998664649488124277343315518539611845431496358999151819434778166032142090670138162272602171433809218260423181889540137330086423181905775300868825265403351169629158494141994319625429580089226143025490747547945125185713122477216015591891796484002315017953937840928144261946905441801267399280037445350906196804035158069960319444070161889234641594183817268643136109548282124432550092415625880973205164264344570766479610713962933230397649850302946093541726089864904675252177985615528730990950757707496363647254357554578881452171050165251897709763884343801864450320804265313748670621262293523743887777964588867694121713194421462598781917542644477720576202651014067401253980673646265171771270748475584706930097920894977611810078386382560223045412692227143387376101576553168746159544705426301787703811981623007419804204658055660048487507941530230855118288811898516443559730084116515156289290407688881079230328787611597803020439207226479584738950139938673266701272145045501587262888985664884040192080114744659184957057849781104938998492638785881782230877232260446708011294188247913950774299109359177580636274890278384924928220997408191280148440838068706082408147644365306814699143969630075128143397226315270438469751167120907800356076060547588935807443843806428862951796528096687538694958193040557256130576238529140376779227589850182083072514147485987903009414711469212185795396826222155591303177858315113766057049427051148129276618508428907650434501387992433384552750109641856244816932785528058566703514929668677127576776669249208955736080904423657593521966273886561126076849626012863966914712836858143005583875310341747365892368093079340319484273764552795872794585366260720589663440451636041085992674540035483499779475788523972869667479126835792666363144355028432342891212479687607377135088778253831246199009835882008881877594421621160924859116780455912606340292087672835712873961458719996026620391987346008722681620252593432216963657187370851665197964287640739960438634506554153121306951480031822388553920635810146151946877538924865758755806034696952081830406905700358897262126755941657982717004085677482397847901202460130837501915421990002502807311785247395920195788618798794699360734496846463370861749140675632625884523909460946172314618854452423151177877104894835492572734636521795968026845556286351918631876277860122039324948272383703443204462414323069323356675582703049819460567467539020709662669668478527647405991731732655788121682678043141592424353860419988969362025505827637415576553151293610903531114183687116344444687326672931435166136930461920279109045223950010321334096263072644851050799138744403159027811462125434441296862682381457942095705976999613407898419247692956034799387167172930239491422055054072442900434103499656019479479237128067982139228884840545283065735145529284031017728834400076456675888083677047852624281644718419194037068567545072366300479934148309935865436789651724743957559392390599842055278944312348888862707514873617542665584989481769338920262438551836216574991524478665617562745490102695657154617222804240768023394843847966433257026570862930991867407530349208188489427063915505759750055536602046436484334051884018486905874292080052900990265269245031110580289286282264696853711351498407267416565203510583398418841786644265545273781098070807703707794199712945224925484617544474113563912825509563806094738698803177936351658478394604253567544967051919611479678748521971564595387216345127561276174887714072874338988992185947190003660201672376708599662634606794741778944081747521585142686853565649901256483221399666610692358713923908476020728699644119155648628313095449217220501293698976534799319833199216931133252937732914060397137446546575873705638837992133461315928674094998368252927137377712758512478440718757825024440209257835312342555258993005622325358086008026854410672927150823120685602133353235994267014443476931410826234302580540837892568710267489908367317574241221026476651497141115647813766271491827832896772454608489792927627639568089664123434084394670451411656834477963696210050767573475820376984036042420495270841524785225944945278435396937371910796037865600897476572601511625364621931183379435144296732578223304562499234199944579024068164823157334949691074173563451772368377336380684098962502732230732088593519097697487011276351123505404354134379081220878534915890255884658226055342563032238677031534464497670195932449456172341668758957316745874821229961647863047766837708929466581019280318284651083676421762679192257017567379331695425080246256977123126293198604615470012757953006432992716059060922801195434183415607939948209887552013975283979981691755822959657958002189522207470532496674948872762902784420974252003143681292676085171410212005803602627185044727309085966967695474669878093081926176884150568161235295095707882808889586416084126143649090992624902064146786519000950266792384465351433601107955945226511120741836265970706754349990375250146953031046244612162921367791055284237742046859979150401345456386800167820477490573209876587804569245463583588114990397378945911757314737364167319503103643422140338187913209358971881818157075426679489636035665727622277989785271058867614203810619342108050092201709815091233103898439223581878093404020084372808991155461691899312558391709485322113179349012930075308081161561330629035257817003171540658130440573364836929225294813432291318056637342507781190468963606917474033075363927586231064237656740966617591279592266760270248266348638725940098193608448896930731769789560796553773531246665731786424191049129188076387615741153167310050637581392373297203006828738007786202316999277688811766755616455731457995823993984703729967628598884617421320124687688184358716155702852832390744164749318899361536403263846881204795940030607964122375088892358536752143943406272778721838825391031464109054176389476735554218858131329416029721500295289284499966912075362993051562742170454762071237293722571148938746991447338950154044049498688275272752870097728601310273235636814513478747476499324558751287043972872719434676006464998953334634420535910289260342023776070955636667310484586168422053379774626792485156553624868139159962992052993981369646854615146492841983306876810033599449542090078754577223273817685944899609570990430540679198469184488785347969914762103093264039943154149736634894425860182980566607032968435184159141537708368764698416168004060142283511910284214717170929581030906799322130025807410399762486597390640466032712368639923286730288955110039610756350234815020858550987450167621434886667442312903271579982120889848824824944447470014737860108261013836555503222472851777037556599045516109938611239858370413625452205305042820267347050429410345006411710511495163689579225370770101621262241793983217621466180014604358329509393436080440178359288169327338107710544140905762580493617897504629425523977260257435487152615032548710954999794449745576755211421401445076791494269692757085734779745838630128262147411332476730889182354989717213003982993724832993415276505841231773196090173572256157367248929327722378416198024117109795640129933976086768536008266227337480951773222828028071851826747726015101599917379125301794833162024838194549220946217322022022047643222431771936842449965438575001033624648681534633835567479538784973453107281193163471211295301742189408504217799254726397551300264429688666931774524649874472910061328082019737058253960169939244192114287813689348543800668642246303853518499951156941695820291479516770622039146954967169104454766757170986432925024734687311365790973456818574249431237138904216694502711146759167118248566947577947325860460227458710764470786040496961057458980855611615551229934180098691484532147057410107925907719182375941712018047002053660439906198002600221425797809928034089169498317373311177470702258518805538986484678011675139629275056966576158966046977481352919531944599276809823972335950897495079323857705082724556565099687512689670908375736102731462056013375453796446863543007588048846623116782180025621032127979963902771490443678736820774001455265762603689276067340258282261883366742991549137256157822881228458534860065702948467889983609761346887196606422571169161163204518774942135076601142773053563715116937064227198446623554033728736442297825749609228670333265987255989789797734730690406512325548750093873922559207249951166625878627804261369120364941069120154099736963527114882691368504848516911413097087040805822093234924819571085057846437883765526552435413460345004926589504629425577717841545152127183625961798820348456478428965896520620140842140834972801549474330477788722099711100023371462400248874917952041242572888470493665321727415586927884962224160044010787536819098808308131966899884928411186297417317994757960740721580217892395998561044709032672181731748262338063134553138153075589998108305413296878308332555784500314098985612753958427804583419964331552248999940016242831563709945954359248507978817208526723163391024855157074429530437752657625648005673877409546840432167435844125297765082176650226633531621762136879408623615849614926997942057638846489673715698236537898945955751017283458883356190602858567737724766932388145462531809433495746545488005278376896656147856807803441497866215690213122031392886162135110409124343001023928970445934030500214213345212290485079015011779001073079791982524244302089093855782050332326611669330923770973825714807204129808963232050926162055746289815768720279585062329666063745840157704027748134474503218703798109813938579833152793013205169759019791893618934873078750881553301701845566510307375552775548220235184333056677410938108780378118334226390758490262830809103397580782050851843470640607333700924661439766106029457887664644988935743290213838514287215478950409795172062840170834900860682254980794051853941397349917318636997458407952382473210419536076545130153465790989385719519691283020310306271705265197589319421962289919035821248227283469150893087654190223478922732747844492884514162044658196883479125532179038457687634610634432592974433019092618904783398207484615471903618726226668410668302859341847506889208199044642274581121455245322821410870294838562775693895623350247362940479809524534862267292060558852637501974350241254726917584101480282685516295258282019763420011072741857210574320459036988241975632511192804377530527311407973482169275732055055490198101541755130295366071957754321559842465092371440037764120696049791196632903601973922729677247048492356187412624835786317820646376389882199612143758650870504079794405112218071400952297645719277118730639336806916561583229597105137921932523935370363204907453031162060029026439245982077278558105688403178768276173333862350022756613638467383323256177368400553102657706626108905435534564351265260728317636041031983111270986227210500379023619134660263849062350368057142472804249689587577699562023329886882745801297179792776457564928674811826736969641695202488321165942230618778624622670073612576042694002599972225833756974550382407230289636417111536373337237842357563121173059819199387382521970250909702366107083178528092447134557885059226730415631910087894597067169794050704364286661114456716486435243652290312111015091941255491807303275180175825800104501335172906144139027340060214927324421649550196445599363943422191417097262756772333248291209127885453125301427005113272982273917966527968728820620570988621093175013315290948671759065271762654953154691853667954898408913386482948113862423330457427935826269713668091575666678877999895506072284468344501640365092818141759841267177991292226487607250639318062779730474727339532015089039507992223846039175726581829330694598947842701915708099842503790904249648810598433125635386665250584203753668466375085493663640257350565798121159957771395122421709592396658356126591026291446601857874503377658048049402930466891208918020777947323320098434939436394094453842636210385089206351203283707423919631190748484915039609987300417432352646319239037847951278532742900415168837216061076520161780346712159219875335646960908523365551562568321603733363469150652982117248774916999978924450535648075637144458389978152752397320578285152368810683317614385029410107760126968558632118971066192142985215422827713984574134998234780242133762649359337633885197315843093875234236775390091621438506399114906397635771938240915615934385647746451152311364958611536543906924197469566615121142141075870684162667411893740908524837403345009742186926360944386121028640352344798978161672032374897070104876822942404587724702167704317720087920697626623463565751652089060658350140639360403402096040320858105014852693767962160354415509242961070139992590940748617694550530314113826901858436415682682004499704257437953375336843015279057703238303597980702393074223290088195318804150429131281490451430485810760421881629702361252788822159668264427537966251825950214002697888805814016432726562206030279181998005341344911477865415976052032025999783646662118260440700091696966071605028746436385798512317985939123673673183285725072863349793699980558060234272249879321755487096147413610863058751453969426961403508412658858148310265540832722020305625298969284467031088146043256392888365473565460370407703987853324967566992540620090688547774668523230017006977384102089008349792286097383104301795884770659355042422492791025817575601069838183303015787433225340577236347958406904617833840153891741284817860829680674520021067933644820528267231521646616522740108381481650050133485720956177863374556681738365007156308293439214293099373980041700342634864679623817315717038138805766367638055483827032018204749403537514567461031244312289235338675545068696156677604611787219861803505895764248470670638258328131552262531630944415890386912422823391312510940047070605833239761328209367725880853054429543531267615929958987451439237687058996280222016798988119508821980772174592011282085702176845336898384944460288424369701784754787462791740867863490568651284123428700407621198842768774947554479081047135603438073685976952862483649128930505152215785705438361580871550394098427095969613730352904486884597592430755916894174615467923449561689998903294691834084747017114157156512884074868369433382522770183878858911010939909862852703012578353117014899392360066494155046057235758123330194644332628069779156023868803634014203803897417945370822729465895954423883459567269044096860784693009514911214393136965448111312966313511943575905997752143185823144365409040203499182363741687169640931256178438192301476536666572760650501869360594820326965292166371903738014032408793010353100497920325091291694498505568334594801875374171249904870960452795202489141110688267177600772776386660413253676655556071516347445118255207966567377820030872023597576965209686312771707678543359083353169963044374491330099091346446940355885023036411437332866426084179854532771648692172759027561855962852828572174194085980580988067078164530072752776956877889937811007305330665121841744068757316952630170748956295877209851841068773807896988435359114359778846015332771725195015339751144999112593243244522660507173280773767770059599559298173276513218030658012938381270300419452345860960494036208106631586397705624063688217412627625770496656756952074566048872059064129643461797914942860550406764022965569283674675118083735560233036136846838587318544802686434379855600380898009862987049259911461093026193776862650148050993836742381332055353295158521852831633491562647806067181805874042338623538105519311749592947782041506362553800103760773205986099422116875776269022798452947481258891948278127161864586643834193466813193455425162416187103781846359008140155276728723372603128590528152017961307440683804894720215504693217940304149688051392694674369507860785325917224954977832116908518268640397151512406555035033498578207488446346422037033812599094898111258785880725711905023225025576683520600148548798348543356650558829539665616209758450343564703210503012211210173687203213026383547419303860356730922533761977241661794282531618831967637841184836771835173954774889826695039663643359783033987531420425812928783226312754576568179493564513704845710706422788201593606686282555189535634677937296496682307231737903431426106087285512864767339017881787446256154894496944638889278313699331106806706461547232321922413568922009548703239566862147826091522686608219043363066590419536123351049872187668554697541394330263075749197193082065530627238915826684165719624398911002663548526824735821369153403003323676742626391285559329768598584168223818085870207732290609962111319255925189619058050349833863734496102765612360367233213418137458966937875706545062382618446649911468910815917214744606284730028818579686438828995959147464516166372501898635825842382707186737331562400421478354145564218033032410240908227233574202203821467021279562390585112558613929860641752555407988465800271406162829356288750417689354425658542773020271404837129917255261625626725736970718724727694938162628569578375118718030519639418846652789942557949312073311718486230394241406414602532757179524925511936327760309468447098039690960628331134595658865120806019810810693043679609904782931603507607738362627418368756949600819885982919617373825974869257652034861586266949581457108144736636720977872062997893290815154875669984657041355253748728592757486062610829295495218546460650952424498262453413450344515095454149220455220861698217772384530834226029584763100500488825090576381124228487132590811756665706716892087728176513512570074922434338854049243010295338937230628575860053964677949059037971894266075647153604086931742778047770835503114354728368100906380646093822313945899374945813539620541212577587254665085213349476312985331150513805380010669767796966442604292916738549605721354233474261085117116281528117682976314931313957857757457133175113385662601890000845277434519252546375160481165113530975448318708199331985212190949336331120672776231167042642699627305847080271581116871108934694628824682861740938466954026553283990020693543717801768751110997827291788115805304131605008519656059893450630149579175957550090635908571652811919635650729312502011396040095986634006934894854542320314105726501413310135053784444422699215548546911711702313953296993298103166207322247498393841148604449860936484606119114587639088210278973833451975607600712668792188344460969898011623496529670203693659960221950099021579114500076754920720708405101039983399703430480349354153981893511966706468365999518551380277060067496352166906370836506335333714999269277924699133806987844756043732973190282150866692580984194879580847569178232536320275548485527549256685304117582864365060172360307461172862074675989675015487118709054983926199537929787487030255518433382540564602642680698105074198784091575174177714108269155336384077762514000465848813103778032553062231060196009695545807274647965475404504113677290674580111802970212963146829123813015931862833470244333712455049868677373221116530546143995109383222554358658052177465327913652768634754137276171005629747252019836961864101225342589899112789065144003663154141763004232442252443423374259005116979884829154637313768690461752282954020239944816497165436113555100204198224038380616639676867576673787134431387887516071631650778440675249567991005916464561347418175367012278393676812249120343841589179225961112080553315866650690317168142962821372208048663550043972664240769716133167950987776224714971550661152215559297386350975979131744580644019889212807850984870035537198831803458072796249395739867035520555590368831193769209574948217289043139718813489942239051882769159682096511442541079045369492676751389566233717004285855124941353151559572103275010163395709334974920634966536337352920654975652522266101401681327207887713092841021349903063962735026698348048942251135961247586247056435192236909793931942058644156457368611756513479333893280345201083554317149621993401362210935450599903964818783700068013280980414844986970892189566186331676254707915062539408933432539757185958928140148788222797609798849118536558467551156176217314717099676319142213012512080251015615411228241512488852640220689754869405195949153339809919778118931415806629702993608516135268072078614418650432683054099661867033137380863536363263941782853515715335117599702177133008304868238321280469565131374421421728287154259153843827724141126892597766362944217005877632737557413740516237254693264821237958215008894130356817220579558987521315704318237403392167335494564093778869048437896770871182278137082859824433942602303050485834875146215334069040278051071275610557640166440415980149541052919598479815202440955313278154910736107594678015107823500502404893457078159672295558669805321129318252891917840617846271624683150465672931396014826695434113824418681580678589312247068439442761459413349541323527037999175198559210362468797756793694419657736311013470086564541916207850162430414839670222698649388351875959298895163130524799721434621478991191100150603024295399570265376287685642648221564840938004568784465164004138917410686412344041196963054452413873968581504115854411586005406109197835424185653866090580344144189309309855104736935868019003616533381788335467118777127292400667873867469628084304014506201268087075705450766029208089067844963402092563374830194422133663172154293320846743391436314867011819158460035898348475844922906894505349513138054505950938093456459823569536316712866136356013906177091950108791106122938267207145605323417304049118238767506709703224002335807978453720345744755859998894469227364671924283001973792607720024016933487452435688010685358931544991011315304078560673813607193552165891260173948877554633834887584181046696236997600288297442402960004856122489088461595122492442122430688675021292069945612612073347848224362145877826695041905177807998788904438926575127065718340566064386231260393571967336726227746800940199686490199404245124658863578498322119874390312881641824176897194959569045766332858072794965143527691311212764202050544898527975928217419697702095927831666080255541296471817433010271339991603284179070118567494769226335137648860805530557610176286678959393825422537867079945481108979909739605119756481071462658248989151821139604290861358182092317061690164374760304867725672952767085336622247016915136575714817015901591710050014711527499984905828169986739828189035844079124686927355115537105035854443569590803284686135241932603848373713085576096625136428275719938114446657427356266914682345299418897248266539520699004734128652081693831997107117583652860467535413831875999034834412087613896241548410693523209714676268999066300565780822940144590896723337529352931844398629604421942945197853950380941161405886581374876301936525180797729188668711722415032135714074408133770443560651022326933938114558168785437071300811921146064656976431639522038258578245236084485088428111608051552726504036704397684471446068150444906034916563493598218602867003951758527496837251268547211855076802940853055466102386029959565056351938932650085558821530900835303876321638595023212700197997665365150083762161892785620083533763222139251512005139205952756616889000395704204843227306844471623891394898950351734941015642326644385991937417736921218334922099723224387401749313001558163214490018682127398762523353976792355472360680604263931498847873735322952115086413257193072119833341305586463856758355223616531444802446324605983599453565983191826964439271074591272496849779714743121171954054250335651375506279481888799273018803164639857920381210082423759713154736688214896169694528825024511872191574654133967309560836308533152512427841355665070351093791777265084469269041560438450833701322047028472319942882359847256938357174789083715960588531702454787874617898262466296604522818706035968766292569019534990709211883546789365099081594011774181802383026845508424101526760022124058508569304944098934263410711795348252342276833125103859504426684444972318588914789939594537607603547681585693670068181069651966731452412136188331578183344448211302218466114972307615746013913904735405466410098738745300852153612599095938226305251223682933982099319566666734813493652636628060437026910484554518113712853403190035067632175428527687295855462048152069200767467229523128930195694123602660926052369218375131504497214408511611839512533607993731700437137559158736280345998787357545558474635009100504434405897939142142362298810045821768874794062207395833589182468421320995033948364284254784955126180253496360276580705348742306586042302678681497675264850173477607445851688188014607246656760347990754284129751001054688862168360029027858562695914596525898345145270242701865063145458240313792510727496968501248412672763361800446466986155027607962655590916815152299145028200421651570654046656288473713319365325312614195441391603830539259987272686134412905021958625310297870241963750048970387956273762372593100335084568822962592831527618765571957443693137237151614239339130594400419708005104032491124814587394174221056419374344954379403952110987610026271278259130251879386124574598299902259505105824026657786280415001641659713833993670621358526827565016304237558008816860368299340024370890125985459984640911755904475167414161170413975911466687075278594974163856009116401855518087602230279580097049454071157806910251227384659380592569092083778183681954548845801377365069465363916135985385665725074829720526206563908722899762860894125470355573273555565317299269065186722694054431324931801110381593161724698479216795903997114925908675699126112311265527229237120888300654149184522923390880464431145984885184456090769205504726592812870453892351660760620899302469135799894875302701730369279858198004670523578116732814715124285559393997597973559015261866913277547683790818905447058588835615233919440108738750944747518799695622660975218826526333817880635206387941686242708959990674439952357983784978599957886346283823987114503885545179422948531199732132570648712909818968435196046773373426723650710542849147219047112659158342836583029434756828655244044463065717954776320111733923860717510255333618794753764067396061163515147123067243327847504515050699141487927570937365168666804540566760040160225219181140136370665380057615153012551727847684239468783682830083709608027224473829217884755072694874094636885198471242397828661334770667871426565648961852918526988521674135976088350686528232836081062793241513439301648949837891004006361310021356984578188184796007425352375584823488173093665231882501536317614040258835897032854732264209401534915854367381669550007873088745164923390453469801246434056263572862561476634699340081673589442325736327368190990617711853504712588407241307390298362715863366969511815868258890380031675243217119991050328539767935864350403496061812352498532751257983928735495235323174042091283707905838747357907288917863555658131100236268048767573832663020898599998220505870937421897706491434032590098777507910983335356093500019141027767322292344526416264296955259349978139326116564696973003463513925862665014779127835324518136829312581644867751532303539116997576232375132103597943024713768823792749751272476607039399241852062565801102960784568212445465945497909539028882093293532230113881991722090546275947742922867642084612827943587245433565407011678156450627726929782521873224712117087589294372668627967569020458838200899684527135986698973303193350236388638365361012433252091951221667610936233947552411945077492775800683144497204104830893536871548299946914300129203234152402818541497873679794830731288542511780598949539487976319985732859496155947851762853766644631667372355581254531898504416765507737311992588077643308160102407255454057861250972202292175379048200191214929838804615396027158200872557931650360597752281893918356006847722983891006659730164663863230991936439516694163694895105432490348971011408691264221171576388065984928640153551456320279658387050901109125768465967426482820890888226801537684978678068145804138378109893710457639774100142081577445812855221377951326657328250360791427655894028768476135639648519687927141205481808148013726980222399938764699730775353516283003367047120858461701325166362565259677527968853018355835548912935404219733267678559541816611495372557770597320656302098962461924820579525270659371769832408720298052581885305892540455993616254469996317794105233976266061228515090123335504982371197825093343612350289397785519919223460493427753931663835079183946778265156716650305300801423969740277249551623791763878795564456102729037795113060602580324142780832589205840077730899197951869660367485719914458564889755566175399116414303448488473572705973525752842835902219228679950601425983798193115539727562935339030879639231180192188504456883565979528355782269200937207006927774324200824821096875546050984788475704500568023943931692475011216491336279285298016360725771750778659015410168050486490316025409443040105879442969990460309123462423240044549010299271851227624780821841472380887077828901071772784217379044643704561605561702653988695719698018480419113078288725406606252578033040287805283386537665541428147265771957441773555754517788141519450670774281734992365253619725344819265816573739046202579010939115960529939895271744766153656307242086140046044649352234401833483531786965110269749299065932345236019253112785552000661107183573099425879449694638037273653409123627720271917133350621518302575722561349064736265656689575163777661242697969664945001569185993394335624809072852002597136383760493537783546289949182477827786357797243659044551859184830346881301523154048762257149972067242616822033636811380826979086720904544535320172352137592820386835287713710968455058020219909873755523280515764874954991508965482327305090935781685412338671013095070551189345370091532377563119869656082911593042671929387627498795288665090757522941709799932355221609576512224190965715659465590972389521610428710282658444200316736607070690430104847815572395288066495537170499904620915669269015576416450394320547453154643702949541131978072913744080692882374770326692682084917813306952852176379397729688619556131513948325473608807165126204682141784431468398440955605305404757186117674345839945202264335095559873423428980687994719308569972208620489442878457024982755747293217071668507472393271094990809294542051336961314415519395463362722247807669563471643223833121229952068554503053927503501506101374039985393056216843873164381836967999857355796584272199843165489059482308704160448416746705151103699604098420811946414750473648539778601455584332543641964686454790149862251633010611598537267398190725522870386779263758161514870262709574715857075935414595966174388446143523299872538142055460516337585092545381707684148142678595394933111613703559218225386654488132025851692434455896422767681214237228934346481962280542508832233031798383952880626961009108868268099328539920742388267508669737458495462579228962086485772063880413394489159534884371695143925933610816057707601717909648202896038143182151515363471830516373393682407102457898428629712781064289937133670459968810792899986951965335106865012656152215019030194925102069744869523298923007072108732724614159210117415144255647348765482283450182672842383823355175903948609933421880336830730110821280438520054067668420375743332776944010465319777753576652698141134878538722644980536645779793047224753430106613030225297288454309104206657177681857900004135039943417976266586687543675493359268199774425712369632796907913377468024216368332000366132585035660958907696204596160839976747991237320493783340749434918185726341979222024727073177321314227524901081304458413454083612423406408380022145533632037521434358780886549516272459763062326715662154399262791727219710851589158361098390762096047412351267126781982557883169584386574614466185389889648444309471695484550611488288100422078705730508144408820162990640368499184914718309948591955056780287833702704466152252303927828692847429783457074195756099403973564933240296821904670146640920871921034625509431399252427273522190330640831363785995268137831153132028602234235777901459162130353241044071981535585459067224713370233036055730920825446022344393015257134217887444427311790520215754758407333352345566201720544203089618318630229553413771168150538427435365982572020981772721996825521426200974441549065608061065348915254433261380470903377013326325717967230737878055694206394367913348447397241346656635974610166035447960067399912747684474694673960477325017655246584875411021893580248935043208967137222492550081683727442354137905602923362140364911510889168077412108097845230651471738656790003499006940396822399265852944234616664776351402413790703061970209699138772230796563628084909591881259997599876428224635932969279799624138648275260080895756913367521826392287177288844565777069513195425007795274290558501642289898455049930796550104622977358187874604316541578541226000042615754537329777699202203855888256253310618870260098808779003295816383710707901001250342259753930819976070803132368484500521403554599651712852524029907083202560778635320498533444744449866932794087727346962861247551281667103717000966701132656884334178934260711421869813063123485070396904692720612284193618245434115640149481172806950539806327663643883583395577011685551081644615600843137622659407552771617817817403715277562055937163342197532989531353294866889259527075581072574369488978470671996764244295305797400250552825640754361712324238121767071732097388632831903460021901814006317867365079896749121376781764152405144008470836900656310122220394904775668889426814311175739451728233476008910694201659763143678266755713116083984742877160880443650338999372602934601234470239838741244887199913631255291955098391362335669831343012809785634607781106969291400007757623958852281647648287855196637382164182876127577767597423842302814346365398665726503262179787723149523012545649547869821605891300404482921859475077468140897339916919532669113108893357497907724831159278606152855609163505865479885134675874465856088360218296925731351740569444915511023041366289446885376698045306315508124049543841069632401963837043520608146698002890237142778607524228373718687559191159066211434003733799073336812416780973258791558123857819771209628153957434021863440026134636241622252884005277482346343165040488120074159374579267568880220385996255061848640830946475213666468698126400250612668028300304932453051644011311119617212131444545055299025853899204592513217827192028632561180943318405779401291049187933847318488854247449650855006623832380974750006237116605213381268860307340652991792717350014437512071862160963786538741784403653696470414177778609647261655737055671190166591810629321495545279898250801129303588958323147828371216061640559391987627199224965099576328024557941158188231496255737721776948894061699005284596735122582225811010395946897193847411835722155006320045560674622157165488939592884217852764460081212275886833692391670411845609897960022997753870093905577891497901251729258205566292071573994000753325180342828275593214067424406677233081092050475781947803244120771534309385351601127881075953664295559080510903667993987328031206392059320046008021105832384083243650052973373462732394991459156656407858114846411722322142679797009995086974484717966213931739126968574767745144429035703527431772808793220379753640387146625856430754203857386354818737931096549919013601788057207526223449488824789872989910616926785708152746005884185423365363002939424431428317999730776701267077993901812465411175694862912511212105143951189911877472096273894767978033088553125110286561658195878173842609509670050111532210234770480261066298637052433230528898176744582165926387426303958771096320861215169672700846925494859940017425622121270690508088084089409212593977662122683828392326826122513220939133024751580975761602942693467690612217796941387419045955379599290364534815108977395488007039766133666806948642878699704640865846920200320374002963985310050293537725423328913343006319363655249183541971641084241682683044452424608303467541981492432238880493126834716512045563525850544710974982270880795179114360635755370816258692032458353970069242265125109284617472417968720798246956329667925128190578130104161265028955543016091354785872448773784592720717142449096916944656736883989526321783717737111301426323947836513566167976900925065466425834246012561007992473898101568427644320552902098809462452299041154909029575083853196802480695772457738502189250519738008600235060167435642428689514829173636502531790085123099761545479719128207577624822649071914044518188274719758481252325669219553484154732939320976795959343059233174934368661949419049636407390426438404182499070645633485213586787023104564720994416003807428745965841177029803264415951733053283369194072582279734580731098377654505178048943866034523666731998666455017174686625889929953377441781429009003567236599562317294666067202731275976240195138776766787321639216655375203063353448327603488992825090030874231477644623157553253832370262939263060430153080593814195269662516844077527295215777425375383176936621483497831114736238387884807111141843525851995812298807445976190860072532465728235910295092746243920411252962865999911620061497625432902758640021741528735530477011251408363610537327166815498659862464350705141925005238667155242798532150228407038333508090644852619919273606605576057850160655417884458026735207728377492910952699670814466592444484049294803238263860533846381116777205236252729316406586880927065230763964580067707287035698294566108455274454930402305999336331406133440420978579673553336884046171479774404474247835994514807537855226926677761665848406073071943731965405067872346525053403764004890317705292735111437948027423188371919425150765439877178165961972113893666085450952382366845601909756865090428099904721292641840010031018013421220941318406157244254132337106322829049324878977180020971868704334963995530006672483085234932717273749000597204295962521349105239985782652512994068067170873590145597070228205533614010481665059422444089406696030405755077128395593983657895301053014971612281455084397524932740540509908345730873019760059004326959611590851185837129675320853247460437312448686988612743794043366367125877632387721408959601685382692484895576253208250006860014494195537643718387774072528569534334965810908835368577859100351897187116242438921271749711371249025723123239191031605524891899112351613036056952506081131717358886940052156753373276574547923597803371914117002960687103799928866174598457041717953769950389155441691255088478505852753490976615117912483725299093518271662243201849649477607959695676018960822494158965408261624860263883175859658852806576275033479656427571858070385096111857401115447977332798864731773514664495125080257912046648049534765906131814882422884849353272095373364557857470558922642074503197216790322723619042532297665714667834593661212974941985705123222089443484281265404395602703362593509532332938870225908958432824802734511961646713525149301365213586405675043620335155375476095805923358179327274282773196746663511214510520665230877059992752596685666464630539657561652649788673655710999868413919567482056778063263210771622490359179171230458481592508087344314746813527243593371740215148825278282811186159563841832908439541138390571717757785347294729362552717357001254108316908469447502629274599508840409092766367723781056872499855865115229161913253034152266578520506524277848185104015939527250795951205953344487282570519295425366224895532048605817616688701718290767254275866967576269497894993260001742956000475906768571564750369995986307837866625897557818468222805577487030217354130558503198344584669950094723864081716244832951007609686731411358887345583014455797072414192805675623152800560120355324952740562443758641774449454537225139721388625698358792766877633287117327902918481095205483137494549766946650109162288856165069747244765660163098033029749556202739596579702004203109045029285256381549855224257069491050799166339873116653580759949016454958876127340995137266105420786457461045935148266162472304222073214780175222463852093604792188298052918730969574329619536751178882852377989373094062800724780206617367480222369110367540973060637399694391186782876187548926986365185162725176852587858115264009476534320652116883549942763746939878158372296182356302601482876115282252434286762005505796256672020358680924263546981863104896783523653235024155033732917884155032134955170422631813377694250840333415819148999043636367299263767234060983684991972503508296977214796632301470617739744291614066728898671773445478160629339756146714395259871630668580309187689369401625090899147745152286688063982961563295265028858484083839993470119016390076288891428131302014258826361513896633129551288096663767920936487536606701582165954745566700594154514380817989110166432482955667216155011913603178136949249973677789834192258965252033798784452088503537567563473294999266226860165402998753517621724126638498668720570277499852562746300053312168719326586072031601086133073336986845076134443073618790458622767005851857907954772641556563897010512471367589643540737886029940965063850262078129321534732140872104479406737082442937973495476349902419814431221231496790743228964156981459965220060035957341657126667064122578422092141934924793703048464113012820870666777052136387104279370301470838308092945448608429731690803116259189549632405708644167480765506608358670652242522160060289850404663692620169926258104647165729158876281675776050122120940546884203885936294622484657704772803042098854773716774964012265062420225406068943516734842569263690249718021314302184446296018821106442760244519499299805254924558886505553267922040075469802368144141846601453855423495287850157233373899190738437650220370206705507562200996911957194644697983752456293396069556795578471786054186171568096284759675184087607830085409469293174653720328057899284234877000950535614870277579239659005693573320270150357501282178760039774864507069393425126777668554843232234291265165444269971913100404432583764356289163892086735027216594237222763498703961923916886781950535592903882097395192206827712065579171696112447316681446894394881378149466766782824336509533116659579084385870369930981692847706743119096653104932803846910827976277326017130994427068588342636164034429929768786687040718823169359299283193939313396757155379213333929721862315090446221242535357487126993754125415873072314244504275078448482502837610710469999987212229753504487483140909664127542441648120528117538328881301880512707173671116436136084409997426091154087035754135294011088225276244995495768946028341904502562207364017245592215739449510204016189749508924073945999518813367654817138629195466232277125106641721367399243627242794511533285206738558546854481094156101341080058606584237976867367390899204021776571609414914364602664603382011640562967508575445466468683474012760441762713455479369943634824430685193752307020779787680656499765325005331829071837944159625017941797577350571460532956198376452940400950092498553956000574098286172409312599722253581169143116927470250620761008331966386356136138027313332556257397304972268948502534234773939161057186165061043723579765360541594387751556058449207660770087929107765603359697223337582525094680042810966352326986798960373647410513975692102199252709609929389887794316624074511758825252925352002757602716115438127737929247977298194941045545343684277816140453033069839670861746584540703227047043859457536497020305212595019784417921053518182152170325793815334088904924110418658472137713999936877623276208262423774678541211005026871160725858758100638968257464674886196396429343979150469680245977966209310224602725797426057565722023721412646987553378038927279301634403174308610078194746919620903402257205932991058265444972554819394364713458151218991592788231610092191948500491042991226334115129489836115330444146762044921319647593601690635608144550858323507002711113362826081390071811468041444781588646866412187898951204626546629972895674477914398764591443413674331521854462590351806683900543337529309263246563236249594060983836483257380583007970453094359459783723063932026585423962828758021652988476403211451699633140994790544655087223388537590732489199409893256510851346016049891226401859565932142969650987779119560531090426538210324285081626733590580502933725005609069200350454157941069819900637333974605478873740166492381114228971596779159307332260577176009724600413775330258735695683617055966288247466761692256136369517435670019437972020129394385249112834502301652541334838750471915924661272326663682715662876939539695259214514977005559261068631280505386141542632208051354898488042038986018950498497606333688222029194376131768699296889737136016046636038063427110620425410598532054435834595178817785137506330358956908519996455157231372770244302122910035167084269137064514945948643646610516969005050976217613532090449046116757121437327582219110978209499337507922759033573114542539025440697748279117422317241638940681286536120687533735473621903815345901733305517190334433674972258953448555976596670214755573249136431316950688408986329821439361125623549742104089501641873191876360392083442744409972745677307347136153500029302532212234956859874641213256359409439672201955248667964362734451549088608975067619258284171758122589431964677566009522263979612443181933858919441288306710160658709131992211884098722818086036108186661457985647541431257958952958088572200377417157960460443592012191149247415139435077495148251552996767919253503309056877287521837402232948366853858620549890352142831091844172322923767407285318196233911903283748729362230149916146536652862414908368870467885471840830872417809583380242170988506089202323637449090806203408639987198563819229353388143517820425027893244322372186811117025828224941262369285907686802330000484389875403889288711037422991724258484669253448932679241938160412059252218413908891041050196889306784253960945659802513639841843867791591624587443870136639413122511111180157069055647233673858865109157778196183343967796595739304101294320694823456689456705483502417238685741654793972967791985606972368073768811192546469980976928384873674553065960635897246414010006563203000395922242033288774115832238132924171506003213013266627939868997710381371395408996279450540566043493235724449109850381375092451080875383448202710546392570765463616079784604299836743493756180218057152661106922486441926263001355508121569018308381013682316050514772777076575583121241149984734547146204954989187855380154753826732946183822384871620797373810407560931231281908375288023319269516820476613694064756084897417423240520766728966098950134477839471234981079769775606580591692589602703605980802850660434552707282277321167907856714087110584476740504608910710396424590707626479765151781719419660709338052048932263555464214487957257869955778381914788000201829900940116494349500941800221370370768795339611202206901039494498323549008170925472215465689468468212061589183970511565173461680557232230857188329688704695848173077565585560385620364250812424007195571552393344166961591292764358889581409950139741557911842692881593433228026354626319584368977721321279007185515816946310963838721833021464626842905215691328098429405167525659339690675882576069287004534796187974444247959244829734978441405721474168526359547603902101246753240223410055976811889092436159436328969071145818296699413888557822337818357147444025047161859145666561042983287912533363825513478433889714369030055798657407440857347568206512892545844971692704096886771276887369423292537274337632701139937124221065906609620903071401979055126104290323813946086321037577358163842483404638271482139225450740786261919727680165967716843376184231829066758191067483112834511398371932412149434270816007455109890659280703904015037085519480284990027490174624677158137119966555457607883797169426972669880833230134066197628540802360195994885568394866013838615837215619687853719384460327454217371662693591934221293313466212658476281915609965233093438252304797152973553522219964978057026497275806117406698572073612216519634238273633921205066686267635170346752902416173531881691961296777199077674028957011930757492222614801165811042548431930394538404675560315579693148399552072099218763918962462591260646634499184653918799524454744721568573842564614433350677943184394804069755998198673398080932995522265576778976548706226151019863890348520339375579835173967851395043430203650820301105127333548475297902729762271933473363641774391911064287791013395729218039749815515610782013350962097417076999755582494430228578159704994281719242787199136239158951517558438511310270538561599673533038086601478463844721300992825522325964357032469056632265953977953065645946055821692395504813891435016300976197612926668217505623439259443638900454673196225079530978211911063160838497039368748753897401500788681281567541617162501815070381978838737468497029121185816055147411109403519510297011508606789183807730298891206020503982131230696905468543750305157494903837902161220976573260710168155773319533253597848832598616029717480712946991420180652402614683506230231742723950997391375292202401087518905772436965115209445738681939524762018415695602177589219083455486177123668197551163002122163930995193911539856812708886132064237865268626459368775420393035906749976894707720432492234427974766420019843913218800264624643483889583667080228051923816985114544855197995841184461072532975860350290060238527735211948360052789171170093852042008500928019357324101823529243402022691166838872838890760699371840622829584504047098419613583507792435226082796816926385442764157702542722608012418075821786425370557044596609281888037064007254534278175615718686031747384899073776782285088755453200808517903938818436906020784593168920211345963367339065897200285079766180779294131873560173946562924346719044223656246128025916088242567104466511432560607439595643038988824628455150360001267233817324099943145740057595705186123488154971857844233706067230582927552599212678853093933072101057787092034836169050570877980172888039790380395753938338887206525386046444378601118963375730095895566442964666887331762105838616962254115229983180467938713277306196015538371158676266437266399972424744725169789335668744054311624599187179129700468161661158292680977406429963448032703622739669500788618646388264806802425523416941828894049376564662950235640797727978846833903699644370272997223900938808633598897183389404843234615929357236967797458359362870129652775378332576220324578169623320095964019416335315485898778681742349011142130835801277098637210242377717755695377360563718582028992075243129822983913878739088904149036518062276586324908633738039174495064103653247964056201305994308596232543587050726748824488601570908352822994113566934626947041949254828257280369597075803149879342872399421459112006057549217033600539724368967504621614401246907482723098099443889286137136606294723351867335405490990846014752145785928281270502741304445340946650133876781828234061461823682283573753712590439486926499055751766468172822305005646824824321794530749373591811714113819617412010794586740815018539785420238806423850621207593058558742662737490743833441815862699570188202502749621796303125662803073745385436888309354170256955053439814046131515090419591508683315130016410469775595261848854251882617565868692261539403220023533290730231806781390553568030907888950752683088343445254083742750845171194062539817740357792542014111061691315308139063806267999121109238056488505392714378427939401515951944503033140891951578764375276610225813534158539933108664427293645890864556723691409055051336977705812392436468507805162699351038080395664420488345321982360398287029097532625550670478646369663183416582226487012841259006634296754463058049538179236823186501752074396415745936496114371813841011937205127832698012309917345107740127138620167457175022364822467623894664103803441230180131956522182890778336485544369070246782660657201992655933532846380115264059763015850464970229100165683266274959997882774271672766155966055891254468936432772991237352321812437056689052499462115222600161350766030496110520073402623528441385599921718024251196085705512899860756167578281066088858710849313084210739197730348539844373521596439273392969131171486653332686068645560062413929330833909029571558004384820871830120439568357654230193500005967410797822508224193354477056343582293380897512881601659833852292771423453831763733464029258851773624544351675485183834642043500377912428397532035685353119670501136544729777308471517560741861458690480092204141792780448574594976091628478374019045239645974062687290600329363990512747729781403939941604549553764753396852434858546279494939303580426050790837926931437718719557091128827345188777040475875069823339501030425671306973532686347539694012677217179186764162509065842723662855766751306344661113347341626027552913874395811269275700386512248735862063199267652683581506165676042281718629883153613621900123490804641364560263061432678661676984434467395577215080863467917026122902417963485371577876170359127026447948121427345084118942279658754223081730798718437683117354452327186266801640621493102062396106122131356641778286916950454784312279568738460620067411032723816203641905565951239025271680628137914792539730598235302662551767781881155146013462140574570433435674012183213218113831087217355394969663066893109621136174552219936602060042000657003160746638389832975384463439467209679477153147069012045574652519914406229186900256738853535428923274794584284201637661949142211571529366932210318876609491383330903598657071003398639562256552459678832388610264469845990267338559501831213232779734641187208562924032726217473856392299030557653082304499040724123283557788858515665370191285176795564181950629200501078356759749422344893202734800805397235667037609309043391151570129398243383946247545307832552906958983602194153011918822871404467750490402985562215628887364795335201862413273661329059525354829515007673186414069158755605406675395651642792493744214643260481287707994184896402470206040273750327569438912576668388913435869196022191871626120424822150287885013691253297403953064357651381826417856105294724714300066210985129715446043991113538039502785961065870905729229299387997573768031951969795075352000643888757075390359541373559144998481238656255861562631027977403568770942635676347012269467442621207833562933395398616020807107014256257357297265656052061538760622174248634307840733701228877244436786534948684939995691187172246858247829725755010589525650836989253818402963628040259781356911139701905711371176134196083548538406158119870282573226030397179935730571782946059664225588109799490825128326904780662315741653492881089267837314351012357021493079264339974659946897640928733341604899815565357500406550108658904513281574616122285844430032584906427999322808793686085785059607784883433213724798553022136815037506235399413885616528578655012260213571111367633151889794890323631695456711517859493986655299983468816629510168394064572897842487182593199464347208748532506426430145373181610718792541228302861666888393552454658132673728110369889712907960622531408147501057840461466627959101766731056274979975355058142924536288255313953783117873218507213426903160168445967715918539591991346203312109963175440114938322419041573749563384455547888154854301457935563446698974098861323607770782998258648656901464710794845115762762074677941278228061425720769911055471865779677434593604567427159642112211477994621080639708114609900492562752751216132883253020721077024382806372640121846174236324215284301082391337144257168980818437220769735428790541866732756807170220418054739567153894176124279642053956967588734600673890524814676312758035351750089404454779671771048770111387586870404037884334652466960056442655176674093812081947144815940753539628982286411466031291933240618661738127043769041909526119357531988024329659537789458080235130910476081581937105787916242026367821408706260721675396565865010577929719043330695672461826562029140219556027059656710795317584869099985373261948985412858752418436193308893819389772203806705057967610209923747380240644100260127956242048077732527354703918590153008903924729304682748330194203739118771597542665104239938135044510599350294520985586440712309447857962309546995546523884091615082608959389181330495369992381230087045034660877576688059270569814800520926040394103386116286785554595943156837477722198428763109893638831566819430698510239833353145291738544902397578974027878233015022961993742750227230782763342472817410321248126036440257381787841065237070935900005414803741109787519143930234834467030032144776651407983021118685742006220898183783498900226213143526830726606084276951126787791344577925455843838239204263260435223160642385665402291614547557823179866914507947891263900052029000997980601589250140661530451560796427439532282876478106100554601588972133425004019672893484646239070014550695701311233726496348849194921488400522535159189417988057832236003569740882215093771140003737130520076339501663102586645204052070439474292661632293859041897430783523963280774014313207036013304419328063983908222638202214353492244081759708509177934758790103859985403960928803775854442745832744405829340618515999885308048383214263249110217269918738995748318698140642484419668729323602464553779300220559879389652579029362159364991824773529164352395382920236396317650865792790066113322811203670331281490958265151820372744665705368011050470165589004433054930235380810132088805611618283337886645564766624558793736886619162881639695522068745824986884197798360286815266003823694183864794439821067944891931750627811999060652753930295846153972368135935130267225310828790879626599421235075060570660885709802508205704833550244467599737134066311761758738031061194669698980377588724499428020669305986094784615003639855605581105758592818611668815435806001159706977251810068346331487758526733300572651930345107125703748401975946216957608573843354969762655305241005975767213750767336115389140655039247034592925789340577858094684332455341802721004527746302084786883153743287303903489203930247450883618212310065201532693350855371915048515210567357541768038024374234306442963925812903887586150375140136303798382192877389450064302409233599676464093876198030475568204866932665441528266804984765213469426887091275739196752644826256762068353960054012854689337043425123823919049664228679375712049841782367157396430385150005859093668711815475142693689316930999629292113208945636903231393075251770120064294632276860947854341908982456650024703062495357953586123906997732962999293584818396893906378488174007665381249743007956443191242710737709647103230104882951544084396132315770701542716100086119445768189539993044173308577825611789255822397033543522891050419780961301378317739799694144987097904056093713531606093878569531650979134319650921053243150897128247941735449414056896389770231302010643853266045081119943842301445905969779403385867716414286463686468451396200424378555806357578518190839935215710382444354205597872765873149452094739842048942301379530246755691868324822078937762971184317991074645812321154331565182847415880862153957467317129383850333214349732307715322715445238938792086848473925199853820615652625069514790106956320483048134684178944430297584598796397968091170711913028172740863497998851054481970875417562477044622358362733479695021891259679093711966230839048499174338821898815762950109410873165769719635437298420614119673135701440358496149388115287872886060603554666481176968600392220163509668392203802609570116933939877142069362795092805881825932762344877658594539772680844630470575040305823384042210872062813490284490485574382698604690383865685731460786040036571218756172019992802281803660315272991931141414901686335931045497289377706785969480428647538365717441221102566301162172796274510550107702317523128841288624921954095435387920272510520540423728141378413462507862026761496846589682680004449283786179817804372538037429565777983430683881676948271680961795000600661429268395649693444174596774820182583654395794322146591825324451619973728482509951918996051460550605520143980245106995372856187842241678260909001579746546934885090845075979509160614209988559218370788874034080105088239420255813983818686900906609462090157455712242330189221545255736632908081186777334054274032140192887562918707397351129766889810796871854139449564767387710785977338248354096269444184293593549574073446525579956632231111009837507404863510770248533937940486109759684070263973081564671381430260370918184288854616422105347627884650512199373010351737307400863880836172947378107555983476686400784699713677939269281133863382157877693490499864389649429525349428196139686262463448732615518926719951338390178598244181529769438364353123067674611891572086733960360745030541576520085947940523260300666608669795571211317204545168615157198273057460903507940776768991344844347479443026459972890949443950059689306781654577733320393073649661754581113706520646645658737126326673671051732985135145028442390797284798904006023758158465625486508749844292596873823640893486539223424545461275271226611317851059776465438529469104032640249113180589767068119793049507519053989218332033773400313349578794612163403504991285335094833149928698341127454801443213223188517609052238742362687798990622151823079155920411540768637687415860709592355651001571437025971288092917626528222712748380240596668029139960262639050555695004734782789105631458748243218906011167133224328955295348841218792973064958111689409356079685124518327254496266112336649042797858024961787878977495684265995949359359869734391254759094254787091761743048273294985594451565302293351401453670192594247621544714831630089623405088479077092542732144064006632643511726282594257336006584845876922657217808657209209158018973696574306502568379739636969551254417371738625127905364856933226023643264123416709081892981299096268437117288116978912760368858659196654051004179009329655248873275551100546448134166113630252375391105051531475344777697038648007968069707823668587942902110846876193292176185510918955984490476929939818958296914045889859436425444844098001367981923619132424140919920861225815964265156103057766039201205286786632558659466126315969441106764268301574988493772392680473252580827789888476610011462453555529655963569510594221626606941132639209422000588222139337396927818298035672262082756061883305741505952579649411875340313807581274451582042070564210870151870915392232707539989532220019757742255580230394330333092096651959436197274355903024761237762951113307961230988916123687078401090166437694405476367789651084990142809048989329512768519694290816584674255494396632415007983391080571497758158345962892554794689246178768077447729864254425844465292967321919635035582317056953583550224608129510473702120569860819127359917831385512244876779586620607081299925669928789375734505397535134259870842089366128507392596691741326624087612807114230659990946406658508349112434288391235445501601915941400570631809512224977392299487897992931380015104109342992663830347317889988878830348028489617667510790835755711376590095754041628436829767391012915219186480992518726825978528152979911445078426041296107472080601128701237530035212406485135126242127075955399981169502236187684216433458052062721032157307511355230412485656070091617099862363792612122500227115159358745735279525927755414592518797209312598730484792712773387668443726920312683167662728902830423668492616124502771282722451721995124058127252036418487806738319346964093388236459629690871194991045390643710520979864961137727167615393789300432843643453753960339778710266231419887551514051574810055594672917962236102045918439215389902836411063423325652237474594484989081235243896068090317933401578579270011190528323994961312481324718218976304752958078860005039016199763389406031094595377350300900067289505897307247391374309876555985181521494431339955315804751293935426512578094726130251059295029834020440787537984451587195971099568218237229374157848176702191402692863331733325554865399404269758181380264113227658396978880533286560190312532458634754288937544847143843204128717422378966651869251141497179741904051986226206996382919200302735508402183863187210557293606300492643866658862356427118774391000010812560979836304902741740375101132769014019164962776601958623796895072370593671043045834065751957994163283010306845979806690334942498191236815519179911385207757248661747133136934775717566546323401802343313135006652515074147532138905751571628402873555971724235896936708870207448414952610897041166610474532497133483731759808513743731814950761618411779755072986697390513147786819239313486133647119954061870057912758172873612269201614820589712597368249595992400188646929173302956302869963561129135663064885009630482015751479330981562378917596532480427367552677680419684002278337275421387851570503565134829806365664480820142994085335239861477019982438686902136074108798511767210750627806825583030263565471893795604533553777643883518041069165394949627397371977894837231403425650822281341850564188880055829114952181121836025434184706704645599339565701659174482421332341024194398857710063166045344793519171539873326831296153551623462101556982179549112808817371266914391621189654204512531184418321030633877675156885330253739293751658370614516552033495674746288770934865148207175631281339070436338509676742233688236046646027293893655859227124685614378250637179177614708755247523126927890301776999139935205881010664312733689877482332058819449904448113973085208257329038639634351710517229894426013069598624392239943701731840254596969454495873335296936439919334263504053572400916179797064563969586669692208440151983647897085695900192959425899613504194102880815777274452344893912719520798494972666071286425465893772298624537238247047111255227299670477545132293557015172898105863398951518884401288365048513289628724115519848933873449761279078393233619844741769357337348204951778244390263945328991967025109966090033041585275071657810884231076949148175752655355309239378136857033195345100789722956505805437058315773764073430635037435667775982366871858651319778433881404800360709182361376212577475174064038847335150011889088690474104178166236229161423547465242088511628468767404516595201585087773043856727823547230163543507512473727773402084380932879954355511985098816667889041263829436833460860257722124563091728749567153855101572913682958103220420737968934208342757073975019319505917517878980840300128959176039000415948413604963725791397373175306026659572957137823959758780236154404409193129911313419080024962347039292914573134931700525240567208506882849851717405042535355873771920044848370994356846218779226703673989230716644783094599069728412820597881456989301396118127752304767006509680102969312046287301407613884869314684624560038260695189730949194649698276249820928046773274839681290781544401982683027005378398938289740219527855861959342323552933289016048659129867427872686814087282828622139513388090322240118365155835240431043338205304879983227501508068756919360790046256381844161970346051683119241092686361627984062512810784414928839038139830949922198227848636091058426973489975275988557813997414425836137794333801511346081193843146173810792410625336020837295757693782627389165198636274056871442075325958135060545524543607068702341702959862256148713944661452120370988820606036450700981023634854801735123451210199326529184108942092699251912851061579833225190197143596137555308148057179862165513479121344673844693263420016700066869523981258055355335506999378359511133259589273309646023072585531047755068920221865093773535390650077319499590640211957797064912084392018558446731666555032875827643500134261020261612344974180624310014030000174603183109892991854950097094880055550942141833726319024749856525228043917147890503596895418541022986224062635667166881556689509683860507180990775514511788015628495577708916887613010846462707957036409784030184884971397273692671581011993814502708953588506565131130306023433175899750356508319470895368482730941198315267473259053383959874559283636307808494167685517603528809722711423904472647325183394078624896489133191158066231089787525516324928061325134837593545229541275550889449591547718500056932739813021039267666047286127734384743713609452175809070455850150341827751769514638596273389870982410478133931743474213992302221267555429251427826171694894386149957581275615873212277805887639484870660158784389974803880267417718966825300493028996298132837296938160504775979330773632967424598060696018359723742510436439126873379691685474476863101322959861268935994557272674216766852097544443414494453227268048851335629736476726348160569286335181161019765804802316526044816548482804968395328025056814484870109524466007421838067499692420841917196800956734601222635307070832724397608709646238138117715869277661329918899320660380185218432557388254577248156309158153891086526268420386849839920422032442675720355525260845405518251879400281559617415484362651353585045716272996062375779368588590116192225657439283256818763473587665650841899623965895209209052332089984169316110817896372747901400047226516230612123559642676554962034571722927264237447629013866699162357561852761082653374922440859793661023531159611550638509491016206476544780896485792545577022477818622229097711208018282381071616059753642299759406147539703530992094418018459643614298693906735589590093478985302494871385717499102556116064868864048390593361566962500259054064708730693173195859188947879622775780491270951595862593487048173522796760520938925515044348832254226096725290189564728370360049804942664311030278734960118785126613069737869138495022521836019985570354961765321266203177818551212461462486604456823254976104301078252265252087497270879283904672311069784520002581132394111797552086260175043105400952273937748349493887203476791494168288122110032951920872925631034412530749888529257372012751486513259869685783774814454320757249507337447417893298735165722403544974114962597877418592520998638179797824472821660977559488448790824388383470453722766217478341265744737874202063371090647705857960648390562018064294454911351577023265316825146708316191600355333364643742432993196199812204325576262424866231259720513174717837153538066217218120990361545771406024501344473327407068943496980743768771795145144733547002850371466867534377359794048986763876029895605400217238139992413747835083821866124584683139199565111589191015652170516995913091989425590470693770027165146716981692188828620601171461488574682450009214990165694870571853482768859937078871952568508842360795436588182792842283369585205776662834585754090009915899435930717617985859598512919884462069716048590345378109349085703462524980447086218035840628473052359398356067979094121574021085921193139832783035138364306964931517589562548128190641342366233620635825377037541522147302969319153780966223052051625217515688400665943984687490674019478834461858995570432218694814732235838111689311947049228013528699576509161734765915768062352440807534325396500079535434851630836007801507913974337670216244131004327000546357089878936876277903923326705126795191141741297055917863983084421730768487666554143309459192939733372539888562918874432247482932960165999471791573109658508202229007277905581209194116665841495869338092726593442942869327160606157134364849613525027363666995135083082123443386063378634380138775140579884105604151645353103024330735657361163526774373788670203355323473743485122755680859195338265154957540047842830969215141696271402210434580198381831298072272195433593670821458688566673070352915018750756890326680924704458719203655104051769592843169662341900081998030405655964559581713814331229703245217537439046626195574188545752990703429526500184537942767049120907531762933687020971677661771446288723853433639298890597311916243522117978421342639025916817962496172558070097544883469322654461623486800770158887506182652510437243796735405001691837863851033880411239352154932986049207618161535066724264673674488646386054205402963044918827328652054749525780470557527741524331191222173281247086596956522722582282549642727484259808153558419192314848992969383724267559627774001843930348599690801529499749708062315728021562043063992204716064681909083719869097672225341523757503510843773721858577013330673701199206375311111134008575814080921207595822648117111436697261347986010923370174403798304978324071766268584715673644332448285651163129479535210940626025860361816042557444748174795106364485512344017965738530673581993937200523298688146055702281727471546474583665737300542254130575094690933179378255655245948965628267443419801330058064445442061768029111902649554735774835839355410196093467360916930471220932115359540058969326624923139934948983600974236227761781210132801003627274524194530428914517620620261143076954285189248031055735263402635418913316995987469997870247607335031915098803426813194944497943892019252335162940509831433122916343891022261037908621441948291927989872601660581245924849708483107174665792787634503605202730908445566661116723333088770846362775634340537404590130705378685661781553543256503519827049244340356887944153934519324387825786692237110904463447310033434787623094298499760257444346787113285316373337400521984382034699503043785904400318452044820645636503664766172519699340823029169679242065411384898733350827665026355238216893184981562693630493892222200716994794052980293783532074876577684548469281721411632035740946811584945070354421366749452968189904540172936248626594128812454110031518176194887507476284223965273120633824568792513427276577092163644526360655691426309864280838485992166089671094707411131492628119161441429659594409878061179871989451802729438600334430258479444215481918586673456353637167864854851583786451341542848491851174105623562476943822732302277181443135565537206660153817499742724680328549418848328492499547964530807083033553726915896831593731807693612583465369505229913165482390010713248739874535813722608591270460667402258397991328733364267424607200205775257011819134062237997605000884621401958882621769571207618522515841281820889708994563891377861780253461063039543454205625644188845181772398305982641074481695583152326073441341120220284959374000014483247638302484723002855377980047214495338156634784454716047672044592883827897067943692401262828856449053107594966182721327086684928966797897240584656613551037824397937020682747448557757729094736915939186792073299587366158485970976121709446504837466263048281419644870036605300751837064772520622403949192491494289668801965823999385396387916162017783438520544209600277044041682512758005109580243656178059496968724342841628037608233248729726043893612634806943863102828465680573314514182857339270742807685030635488348165412363266442840084665163581887122212966590788486871025986232771214152621345946973320633819143388011345939852078641107666372491276451687298346681851480861263813620954203950654895909348342590741776494977249020636726761504353240278944658660781016620879792344633033910696556868469017242758430105476728434361776067166276706446900748069489177670703327400821248645917981104014395706554526524914557474650394353795437029225337330441363252173334273716387883993267360896456263627138970756410282612454705098285778470157352769576584758499934066976278230424985523245841188688716831728080020941387099445634659463201166910275168575321152922071534640600238989989903222572610672408202572667029074346539023906602281584183285662804939151834133682645782195467664203954958223512798079228817766935679411800048731816875104321212684039481214967471173353158175836309821504574436705554124623118014057497789589464553038858647329706094891093161574220750541872257224654312611205672521524733695288495670297310991153418224266195637477301421372432302431715114778882446136508511230678655969567961441387855082488516227471235670817220156642785576007495285393358562194248330104702369723405483757164830050273839878222884303039733414141137567688480554364289779734597858092576598100739451361491153051540042768666639492182630104877943784255779200228479374011726212640124983708524760932585875366317848146640036998576145059301721802972725452889410283353842909007188151939329249584391047620112694042332116269932351138087145030128608793693233043531545721494389596717941319458661218485896270528406503064240306430302732271732017375336507469420984139073335315308874874506824648579762105003336875064113433561221983568336859859151697635523175174600608716696003680529341240052576987109969822607074595633939530341448122295099044504620291161321990329467331329450213021607991194403655831777801790454907767817875908361309774601102378893320620997870863678357387760195977000664202646550767037857246334901755408820001653175952780935327393459706120130948164156224732283522265036927402742361246400508554651612898850161696823470393892847796443251912966339563012404356824529667893038141710707975837989100142406743918745905448933425840878413345369780728441090856463973623286691704157959101370739096433224587585152629285275355319513007641391686620935512646631920648048738646660536800418624184276828992116439817365542324850200443156018870908318205124896524338014510781134776111538131035232070895898350986999295016312923893164155846980131507805377103869152089502034691672078828354892690231055876052083769110938520734963981377962949007239608285433327402970584869784081691145862238039011360058237079090768845426817540076763440563305264024781047809535018127412101612479689325911442515657712029900408446569108303151556265181149857804567471183229671236601350995407091630243535006782020710085945988309314967753021285838780380139551326698480761566799793799519149529409085118991079812438387946993685391293345721622705948739251598306324484548099570457606575961069948558983306859792680925627547865469833869628523751063906146286961338445210348322447929538010337729645349181276658512080869710174432966739448871402212142176111250871911206663895727984108879294399751571583466899251089875518994376605163553128874103051950764033655958657047285754744179269406973142267343640403431644183924705594659105981794185413094670550501151482997558824467117148859749489579442211722495470148052561099189347083692344502136445365864074925454948216607433160395700280364066521708008203460699970595635281756090939699310966613571824763929866862296925030949430338036165494247139078339307191386156154128244603383007923734053721727563795030755302938493347408654277595049368655750704388358714414212251279767880782313850226109851875393352633662132811921067429138071718367051411274128286923525303436444261201313815308441569168212263533605970890852778027307338753937435781296417934846697692807179843912154354692093018710120536760371515043196740303125972628810159316262308853357791925564941885894078505884464069193140044255163563474991942345918246087187557940844180422676916545183738261262991370050328533533712418428286928471060259899546456657880459400323378438042211320821132007887469164023409296455055720812464050899645209077000811074502683515391445314293259237805441674303908783642817737956908741771918375698734373602522458763659863022950350164885445329676921923726944641433191883169922342758819783883360562444886436885264118200697413600875781987105209052710800515022754129642768346434599092058494476253836141320978094755798117956596482273970660958452155936776394805731788376273902789702454645804815981748663569373888058405382216842897998998745017834017476722430294285045465781002352552237671889570836745039358805592829888051662137930709270202906610908463040917488601471131852612805396566040448215289741856286076665816416400976879681314934932322971243792771787417271680020640672045292343872765424863826829140445653523042456384714134688503023523575630664647169153982746603563235907953957576804604183073467480336561571268171422300940014210985858315210841313685457622002699330092480801088668557595121969927992624037554149891133792050428302571813243154720594812626945684787047296109214227482658989878146251396943298765558792374798214443859262691088968692323549802728534399950296078216727693270277282313517049876987221326323777708082773089548495639095055485086781741685620344075681442566173239325080975426887086752492705846352735936392806995015336874088714838477435647486407054186038734976892060035893817994557735730639710301158067659123137312359643566070424364357307253090080080242304970868555821077835884884626257896791308924293349619962361072962793271790222566262737529457535251699780455317644687714920287617364959326909328327784949781401293607666976704637818733217515321911617354785368509559180121487433850480536703148199753464824434458618736543731225393660994609071405253376410150352779637006524848866560843196105036616360125928304114761922351596871113009332525893920567118645143174112224393468429010412387238344468211413269709692889979079346548739096918734415078517561016847113097818301788586955968318952082817771622855611170083801478490995719402089996736141463906967746402230572382716209316280976630297751811052886251828580198674493356848158248254869459092983305960022981643857751413508498653845788053730641630868746604599193720432759138194108910236382962608263283541572915082388407080817265660903939654559102170233948827777340028619730827116213655825540147143116349493378890703773887615613890997384012295587567757757241622096496561085283639198899684780855994860935068972867693001586213935101392115361778901620714191875167750323179002027789645630935765256980498550477144672588138155391419304159100812503916098208881856649269129152211387954706533404938528211625962719105784451384894013062422565696626975013270618583658642502977341661470583172581393461033779718340423774848796113061517775506698843852686854591844893055289540652957723178057821252883462568986983460240245874522015452529606369516670007527413672792813797585203077874444614839951298637818945705732496407087356519751869644533391760674515619817149730129022595202820078580671438047282464128013573491804094430148715045973528048626645456059019741511965654185038128502150512816332817790263084570073498348648404602213378825224451203576091398112482828234956022410312541466808065499685525616047582902357167270484803498611761689374572323400142524776771568981511967170919756457169263588820728833032499852073134559947967170384176300408110891481715754837729943168980907335154684515849804035871392929329141174568953240269256604567451228944600116588096424711361970101583245860652963332052811851180923387080783240395661427148401420480627411736343388452959755800788180997095921621332667420050875345329187502663135755679451786714781117549941423942683222791979710526523943239018670737803858220919610307133630470036485211446981927074888088751305241012182384461937006891913493888387841534021990871590077960612753881580578923005899152495587178115362078281848441184149684780793210737128590833542213448931986521138806143477245893806709156348689973617328100251200172121770999304630446911702904923046835056112364082325757122006284988339957097080096649794940956961151363409879636766758862866514150134148505212250532138368840782488014766041930756682074089170553879470941234407200963887630188436848863368180198886334218579128745539681519675149860752430411211830003891248743939522032654904029270436222463169541067022965863709886443162644887830594246897434751992522470159795562888739662680817020858607282750103754473086626925404112565260597048806218806963355019164185919612796450771158736894560855498345578294815327142147067436251251086087873593697344901524573721812245027578516518739064105424246699963569659143428216802891386197040642555777215605559831261135334751861247611471115304762273268609093741679742990091808298458686470291039799955929719025907180089369472997869323282398445694753377187399127921724569240111866755625740991067980668904817663714766138906236535644776999847054701403859675680966156680984071631550378525789681174173526234115301414820738783640186528553547276875646807838761841179640965164497264402025015151071899907836199429677038052957661936853113145563357770188507012259332131076030866863629852190894180729760061800682023663891250920915426468648771780534897910925768780500757087223190490586506801655593343724864701599169748163463866927076397719273070514524068182205467494035993594732458262930379667351665752369058515983881742412111965233287045958757514769837052817419974374317802741196121445473093401761204235458849480595715956994206520825527012726859945106669139190933585115990329924204742485383127163319934269530635200496337639030066017711381137996561225668141347298017496727140756552928494409305152373645279000921667616150592767008167629896264981640651418706986648891220103234077806021081754445354941672440267725151512012781258011831791234430005025912394362221846155396653408525448291421365964485738225631365306415108203667738656484805803161826079605011264542979637149509426533367188653101233732205643207222812465531124535656290702266899749997262260709938017803187558049014175010014181385691010133980637465175041641958850753067290162483332056293025074438582113796177624704193736795733827770854155379783206318267663561848874403309532970827313477301464212688450571939723292243295351641217605279202405105917692411587994621767767590551980666565092289230859626110298443953019394313644806982076678233958238194660211624140322343693691039720438355782862435576472303643420038496217198573063711322352602805493065007400130163161463305221358150154131444778388140188807287808752668569926832879379327210796000924063480916884133617339699368551131653173767728239968319951310409016297896830181603310304701287051241015476911586264018402431945694580185832714449564454818461310027185848287953081016398430489017114469975027262134071259557340368772741493745925913767311904917081322719938167586126314314063795678350606529097835246503984458609922455525582586633031106574799141053440118921024708264051054599628170143906648316631772179446004909429994118473901256720503486833858347683177081264656906089000288430795200087221956962529668191345658159491398088315277592433418006340056844392926493349054649752034701170338328432293637737538438103612951664709690297903541286909649398948856314002892416984348459248343681164737499401516508102960851226893672910952223475439586196788318694592543247533682449079294576621418313476579151984673120714917136642387886457653783127451850342861693805653151178497696020771652541674990087592833832566747360841344249695221857725708122297337575309759805953980352454608881623904476148063997427613482285200393276984364999170805270304988090545244456158289781600212422599775402191637636724131198070378918897306067716480882025628328633813178177580573347727792181772669068172546060532293196298872498733198335811145318069865931597757609769190908668794887869182288851007303372584116103924788810193545546354204267100375881661912839058100626619097228276209245536558998416307586524638132847368555400133280063779498440134762011787180651459539510261894898556301010213737390149000884394209883746005840472108372047417669562186432408313841834866898482261630488917600448136896549466903067225880528868431991651801919423724635761835597002061253386361542750052070670736947759122760787669069821190690566233707283643782123370764814847417015127166526990346993922714166560557271357956319428765852862188895888026771494172448987152775003345533378610561542408077931996493151187885202940529721967858587178445615238362092726197185453113674263015650946290370624673235883478603368881415476347492051534061714804469990274505043883400109184307226460590442068491544841578634084308221534777702053782444290634159815415138304478860499538594046612646687242620256872486210409792159890738368051986665115210140809883914611142843528479586229258844270603218764818802470384925478931897782298223779727414720363789461324805411795237250447946262040491520155677976026758483991775809505702105227002627726462592998511689064189835233724957485201899545220390810073283033474478994058345335792147253255798386786459323120413690570975581072976176545809037486724518235257817296417572262776993467546325568161513371746013950831998719522361533482606563548674324080437575402686097336413301946832057509114180370374738632493403268124533895657274353839107243367319767376942166498269875063303970672967573767093682782256301481163783493692598109628498555362982602106785113842433347397652816474217023855592632653247602188589781042482490627171745706232803686877908550260317226023856576520980943062413659811752330070594891961149461593717505359935278575941403489779786271092295681959169794504749172291347668110122664917457547810477337478794689304223393702022734246163494876644486527881923380815818965376770661483302655329114736875857564500274109000753657990597075221559032766370115959444001780770500053769753648076577980429284743304416080843827385382650780100882527523588042373285217313883043708559936557822627571892184177407313933838736721961902752220479564308027652431352687278680041878819431035425163653320333175067739813890482051801085307942822134021370036511733055156681320753432915709810560249064102018921597368178246247859243186726805762356883025106241787600325632660855360029702736604131478452414312918837116136382645655838981213376937869284416205488643531219097813922886691272387400811564620792742672482049877114192789022423202100868149258728185887330427451471097762814524903733140062597074033785818403686638654863873518886158885216167051840426301308721016081544820282544813338144185763507907523520163174464494622790103709799725407827521039390715685020444480967475937649149630227916468970189259699362860884296313915407768312099114064523675187022912937211601230195229446719135544612319237597302197897967680991205847433285261406425665853219131318384252936608821886435195796479081393167656460434684655784093521598296915276639891138542816722954402462357912608388412695768207125586739152736820619538720188470067573069479603047690634652844107666815954443022196085560949346259711846407915923948269188899879788464799494036544727381003510845308403309974249984033170705846033230923658452197700126782413087402381574964937339023391452993375870604946227880633158368713290159866169413884781102106888328144932629449222281883590198894781740414130122005761146713557503510159865251045061866943171996738066616701260440099476264805860122676469198086832368139455885617315284518944607822712437697723994733906483125478972152413763505646626284124383314168476234871605322360622834832022104652584415154967178033566928707093158660140192344548650852126230683837555864064484133989820361320034519574705430562714501909094776993301912763472003946217525440190784354874177439307837326791733473609060742058395745761330818014720692443510627820286215215613596422753459739523327647419931294919140206655063110734028313784336503870596247769711802500270847994512633432412407682279219918872264914228032698023188782602542767835880421249558323450480313600976141303674759534773529761872751969817534337836437085052163127086082030688994238460347309276786092142910235252222022241134179713179839066013411387740166382929949719383982273531859146511892741960439578141358032744322791120210860471701990457396129727645525531324632872227812426784180207608458657368293446620326633951349285859357604309277579080778149841681724786001474460167558096524023508463880918580374279923578439537398492135357085809687745177510649188886735281947074835448414059392402305341418789483468134489831960541894442743885515254084896402758406636636310379312995052238604545331801998113839950555137488049182093971674536295295256147468026370109460600228506362748985048566912564420525700438913271609247797079528633689466704330617371679661863010005184148754840822754994707045937322816467657978620725296468214873221561353432858559928276200002668467924106353918412015688873862058618260169110660076974954441438957547970621874844676020797614430510132996597481124364610170225215395434904691427744237530307302082918315401853393626588374848876136976628227246845371397925447993689795038269061421477453685571768829106857311240402335812100995846516667729962470563725237640282231196927991408438228525365333043549292795092836418539406551539719566032783701864043033500945314002951166909537972391474258319043993818514080419768682540892487351476814577498517976621677629810743911022818722094903129336357344415733808766316731653612514140779122547319066432926053886721137369922214581556418324170290150204695664652166961956368528682529791695795200517468099516863958051868235892340427585919634352585249949564938698125092749916457870528346116350166985305805094046089832756320498357345376154057928799384635397255163116269490057784087202818909515019865426406230742567808653355001879305669354977420121584911348416792353635048636451551358267887066866921496936920901132238683018111387657041092201724013606917879553923709895311649388423338129119673834841304449297397520240073913121473528519991395541631947608722918728262400314297002353836676340313563440052946976900137023481388645802981751024433859213440537752432489116957979490778739716053230114085267288247453020529328229951141673506526742084208074428533658623571317509210724011398538778457005334915220468021563515776157846380443730144038399766451717182825872618135784873776923610367864423971660975527787142789400827048003878282069870925770276188726143751757293750406103361014185091194508055599652143510469343628385869094265743998304658153346676982424821227474469812316163004875120202193898246842336371858759853467540077212377210876153068745380222980449335153325400213111838383743589888128555316385298410052653269459228707508243343785201049344786697758299216637191720194873178174367444893459077344932600108498386551725809129650637579177223890569671838356752238355916710971053977084008700346564084090970189292299641626413233830926575708253389065781626025171390054999837675279433375087090199946540842813431068377401887909063482835569659902840744934882761981023324349855618770092072952108324064488879539264685238310812645823393467965448992213514203994494851001985814768900169671028886566321543497121440326012257468967963822319261313698145875701279558068847171508581127879417414520337135954211066186350129271737668810732060450276896523041762691388221912305221263886725396001755167706215385921319277756393776436142405550213009308761108279621857906198112233000915028520275968240703592051272210280852192222738395927323822099402934789432268281021897435304685114858720769398944078545105686215919090955682930844376564703474931948019209093442645596565409497223859573290925597414789190896709540158629525919691064600701771813096563201432583800595522592984620242647278330335922817097609721471858843189315732913437124258090290500252813638638970803467616791644197859075571094847252023105839724723470378503163923486616236629839310532038718025587440645084827572829017404881025307559479413787530848358487750966363640187513045646004503882520407160256140282675184291578872941315285605714199557876562639622437262499172504153599264635976319402973350809153839636027210733928067104796762020204366103916372523060362629978989063780406645458185080037951158407642873886992360621909353598217671445060904403818733870091472721052932314638568062910963968731645675376781663688466585865148747492080284383847188812821672031522971011478078122728044867244720018633559053795031909817390380931676333885246364309413188700663696364414501191880332073063218872128010603604045888435055203720673503047651678532584051256979741782612868787086108469449148768124206015432758794538982356805382859804127262299315796996276525047101339848129223548754428607045524965914997286820071536344470977022779239081427468493158451420490389611401830983721354430426204967737759742366929400257388780061580630573814305445161530222439658097253268086631814846185406485823020994722396624998291434620992975034567100439955848768928299237701105189783011773817620980786741657986370455094158312327313946421740018481675999238168165846500394506647765234374946444520021992559330769562231650578752146512197675740023578675457476091314176158960851558314947291042484019042606109899698097583364857950077550284656263686383549985494489624633313177968969558157679191310153040549437865730507299463034003972995288574574939811394078088880855085421020440792982036427864955714541784296074120619463630634947679934178913569881297778401737671696957826275351969781946552431901011171617948653086050323946267727767494665399030717576350960914664372676842549106282237930612767677236053522413955927346067322355316210505559917769634497967785420861775617191188326803129664967427132698814234066993460785911911217921739315485855473687197093951750078707493437966779012620305194686702803431470722680693863223241777223979262785280741282173896859834411231371529593639559109189728181842561193889751444506882779665940344546916799311563525950812394892872046974086403318513709693008745479631941798430797523006067658136183738373831510550930352061606622961582718979622664573786166663945878511602385465238813376810531049621915221306098785863213223132601081389559841468165941900194704340336076292875029105257554772690190896071565170000172341044109507594901137761940917678741737493913150513009566342794700858601240608705054345834092450720589786961707815488931895122630360088464203634002263204348823816800153034852204281528814185331086159647658071290281318207371697869769955834152582455347064295791971009991850637324984009919711575804104067498330949150164122541449019775310274637086677796579106519940384685031212580897694690034781398490304237163469711912604682004857618326321931670799977529012644782032185345930637288218927573196793010102211417917043840327017146112648529091132900895127344165965739460754783383006974187884913443989139665590244463883501293513271404648772302608447988612738828056590569012354494749859817063794351128340833071289592312243917353774741105420655453930008158690345936664817834977762470293726202162427376448534018628785613147618995379052963405116622436755962771698000614477475627834093617070388691046903054551737663875154836125676545717647714612357509279159017288497260043022517750678478566002283716458389684448394481730147633413859715875798094715240935982048728495679969879229008856018514978495975038692309292085887695034876454890665760346056421026730458339743918776407240667751624427860985534130694697581948342583161008750361316200842627689369347539943077521604462182509796143578823779016521951976703313599117251473340589039978276668729666821182290738228249053369106221013769898444581008653773928527856492577392574169491707496246110487267417699743717105616916434395363113092843925915010859310693630136079467834104137296964090695148082367506303844825723203046265159106699566974180405378694889139485990651904675104220284611172657736954707159984832787260780577225994109006354634488429494752389805497704846711725653354672291443237899680604724863171173501487681757170510874849929601624880985157668912515660231805043260722371148460432808608337819387647072381804354373356061302406137799892359418501350329943440805020061951389953149202033706720942929269315733229315184838223427211961950484238133813824892111171071587637845467290765058903915895841564012473885931775369044233554959165126110588491354126089515716718710095142910422913043358217827253370427154517250620266244605033322615988523883946672887403803125131604751750213836357835710720879035035617412531213783420443308491103377116653804372014070321351468967565497582227216529880513014636040338089534235286305542785242374709498997934082059841596564981688952262922074765142711266529593473197751618817475469371892414778172896381588164977032519561751187808368215865179476838621708072904681250385193997675460973237729123269713944012775533652241071963675538936876768493634844595916559556856695478520784413845323529457183744078463966949730808907964091930590448991445339977695249127618517228872305812011576567055593923128682314665226754857227361948032543354192267970809709017046986458586478100553698007069463687598565322251127109525091710910863438394085926439908303668801508368008953469104445580684333065387374740077107961206345339432448828151506890684060763501485603355230941552201136510897217739551393408772080981383587317337606561861597024679581334598858016333299305110070043217913540044795686580093098569041050455742511745474302590006747638814322273540381673425355537359287387369394854477337261935801913934470214321641479664176264077031975311020585924771723646232707502874955459016668915331550860846699053532103984397868927202174631091174835374971188057686784844602682471604243024882031820188267439256330349859341192634458594548359833059375446695581254984614626060783927055018561482950472293601969999656911425828020751723434064254544568054623883516210495707641375368778325672562299056234710380408138877975407784335868449896334196947794987143052665152241677142868354274691104173975531500289404574930551504918625798707262421537509582101651120643687062323451318182120423556942728270069773510248808914889740159631924693633878712607348295441599092903436185580920100486572239173900296527398178328171916277828049610778371782012842995540856156389605198404366703347592643743459849694245084584424466724415607328546896747058747722523046491948188240910411697891180634642797691596960131960346154694892661942155410813085419432093645773192207459242487412310259783137065430061299540904971704034495050977013293765724598623755629656078170452057558008613569613187509221294819160663293420264741963421704034394675632598978628104082852155952681709007578942822501219952656037729633769261315609944906062406422685951077600119175118446794881431851340859605564656378254910114775450121075297942991608136806868367690468009901166739886345833982680426933227207422749725879064662731435938293869347630892975647314055551221328037779282954918880489271914745895536469827541606268093488541052527052356077661548143292117280500468980815902236487886228940608036937383369912815642258000547027186365674486315804759643885646643414340784104640438216765234403017886821571445677341216791594922886176164208507783384456502731379974713555981346495901474218197867228652023408071410928443616806332788836547353603058351037646462647267655299677046736876800013753530787231820851994802615695044437768985194218258065555605359688786119234317869846768079265413431492752755929770846458198810720733581618758192105144452442567425780982083182566795966732319899027985537104177478049129544310266470444615549352012252464919793629357206408718122302560241743315366443194307501564106876427632869318108836277176859140008404746280139594913935182471508971003612337195974509343538804044523108378325781471447148140158622605238025217005978234597400329014541589933708148020119786644894980219815312240488464343241511783319951962137404159357334249524218174254986033378454755750159803460556801995168216622518723290987616300882959002596976548740671151882574477113932884645010322465098233627399217040972188543988990608584402429873751651902986218869276205101444710513578044049639555766978059538903848198315525039635047495973041175189380869980336090018631839119291212846675820845894534344173395541096632701966257719963754304257291980780714301750900329856669692134620382412093958812037816957128968569842948745166740759825732050942963138646672505968314146138327460887198196784165114374417083896094106815047076907537313979069579549284203717243332242221697600450761103962110159379219247344342897424352465054462396955809549789400243722909687065228476063117344897249390662477041656250407221497357979873030001196184798169047093787654430456587565711502562741423979996640123191183120022896419143332119766836099790598080403029923107381188488513849249677495002788230438207109169754804879286353893993099121281664817794091589847605897521004306901699403460838328191106077371164906146052687434817825795673268198764528940771556547408121174589552736761835562912715145476165980574601355282402420238338438500353750980307029452962768260203676888905797163550018993720943359502285824660173148966464305545644945099744179030368892043658956472490298500686508832629993205981306150739850142332464753911604638882721809299364842843005715829963703238363325468898675010343083706637678891408206377808803280315119444060751557048594337400209089640498388151643657880983635543568835469537999959531659325928826777772578322955801274206167773877177216818655121140256419349761666534026055257461168659083100159686735105244922949183924121139318162207476424389238149871110989218853850126594058836040558555161120007926218501850301143325133396071794149556317841236092590263838570710108990624293267421360999742743227881542454892976188525436804675303035484807684538997895228563935130314530369479253711651046694818399983352432584402294290292408158545764078741236018232870198402277911263981472727347232192665397512548388510637944300403092666226211757658158029478641153948806829721150390327161494954938799265237889205663887099647729496622369695983351929389983651763671223642972754717921900124324969516699952909327706860422180472396584767818093420177113121669725854952364561473389086671445194093111820381759595742791865302912856621737105002825004287352360124004390369143399402974873595059657252471416020975860897018748912115851289554817555002295996019335178348715619912985972792918925811922087535033301522208005231967497220888374316687384954685182266306563392590573282958458811008637917445668988764370051114978644700079451679564277971238672923457077630102631212874342058152402571620891016498801349738413225963268147486532994392046340874397970720220068891585452643231352481647560516272627502379674217670722230131850642886391741821616205034134311436922484966047065945951242222798414620604777709843507638288814108307826416728740587320102061600938227320068651524299890897270092394581924624130663309676122289799177180029129289567598137754351963011360765710492261175392054016545378953720385815389568540613055723868105701516546386831974916301201485193393002068006046118965530187009556266189853319324940257064141636300466715095666402780898369817186893843852468885369745978345196544465526742837402569822098379420267989324007360567775237361911706360727628861477794111269589665880368261408329378867881445858885841147743535567491927353670225190123726577902064517366016270881852922215594048153217980304267336156208607076200963293090137385936921406842940826655659514398380982431798730432312136821798574685191233645285141108723294948916776972938576159482601493427483938653510260765968983030401338376691878716704974080680624826782995120032761402497010325304119445796118077273397393837954461038401484636335059813740460300664171754338715626012556435164452807023756640281021070444744579428763247344378792202919569120231315253827434167610311908586801432509344463105471035656466265329291237194208835017046506794949565060518180387392800535724063805559708204502048131847760065353523384344594027636383930635661086275392867687917109721797336506981280393726280955461530366963667367125547004837487691158000508923162088926037766641064220005487008581213968326484910015119935189770164803921195522742292918268403718454460766830809970834012903290774885629387938128282962591536144192346148657026576833970749912943354798154843693857732386063434202936083870385021187789380761925676435512477925500110896099178022334907209200757539021278481435550262065925700075908892081481981567201696671017151273679961714692726078696810925096875586799984853916962952838255281560557095821738737667524664508029533224571228353687697450189323680777652737834891480697835402009792231481733151507061558113948756982864668914383317953021873356690319629278904484801690626278137629991058267123723987706151097399836578779623471512495278513726954255061422669011429251483878852997120640473245751397086950518459584385886251806178424728353648898835804462298120551265235380848668393497949995351433631252393701449819163924717186829618754126462993750197224547690633605620247289503443992454859614017970162497106566231240120608925397105533419283995774023067598821472366153540586638086693716467356891375226107243513249172867052156554441277212530537850934658955144440021630538639923673401434463500418478431574182239302305336623396191682002160391124225585400018560286751655836707395163989800023269398935286127093618490127563533684730918180578545698594508303942624129489701112336976075977104885144575756586299572714963616717445109836835770109509921032609125515518797666970560916694081847538579123062093203396691460992894164606971797403376308705272328247667411788504131841632319068737024233773592315315331239906506944613427256550583235539016527053523435473034675388699602022341527300214839860593062028278335109384642942268445850812381916113552794956479098690660975021777695631837823254234126034925418299097165038928210748555721494735404981787878678649705593605623601837834097628470230058453097874579202418446983898716057743355114151788544217925266336710354343801958951547118307129581149516494390962099642402053966373868497335214389779100385978331078051591547264324046368249584934273584774642683884574867944958890097940391210833406629639885131816027272141718479348148084527884600673475558352728287852799205966522052719360478057869040358000134348273599329666531072011014714669956589431288523157040877916283924168342627796156082862299835452372307696933766855474652346588251009692770921474891857651544473053327786989049305868504248402646011198879098575064489574455892896548362280131980536418302753129371631821429793066734549742960714193229004957696342301088382649458433341205683967986539789409589936185645104231309935033718879291612911438563741350186704729558372229865318932866561909193392452888090644473562169737758264337920519702774868989768395170008535255344380549115295475088363848435503338138371092535054856879665288083129221224413839987236111307760127954937001993788288840671395079356837097823859261696473085124331558060759090392874425508349506607064688975978951347525728064210430398195256594963198165231719760834013410529945157119665122181238089250025011625359687086272220981241381772999121269908365346161828033849689265170980992319187964915597881728221651893963797054119626713965728769323896876423195845630497939759654543368802198123413658861273355723750382955349569102591998726827649726955804026549328688904484703615526805018193973502541625201147173528721702978426820722848518562766828382316859841943741649890187892722152609077864279501892023523952833598752516552503755394518284946462234030787647262840217849861660441034299508244962689788908089109445103880386842182862408688734498747487393983796723103021630530418482006923233385977181100359867607338124357193808563361688975875825729520004020212920770480794944616939097046360695568010589966987257100651872773301752516815204104153888450803290616729166005466852563122208197771677288366072111235637543259031042973410562208598351724777194335755020867330679635764880791673153064937115805583388660510586987886678269090100362413181929195142691565790823170788754960916863202968107709308871665219301523070020960211223277220333505119806309956231025924941482244742239297754840964847504443935237974425297233387928390979725934330857227792738359157535659785138879113859121812547836242121983908079225749863154492287706279582822311278078665983168375861679751235247514342731815792046524887149864601945248514980094585173258051940235687596165758334904027489604984300609210662726082049096636918374359329233992002865304729079903239681446506255624457210989233267374445098724548750229036340755249138192233264599961368706489962323543254241840689321703235706409034014136634242901209228399326456727887393493428765770696476053098924662665305052163432473588944086777967820183929770881876386441097756148373745913168108727819072136286359473680292918703690784941965179000816995719992305587839506251409038233968205321665473234998262358100461813970074461843263345707864179376453368295917505351568162251625225431701556082813480178017954730595421285094345353661235481550010906169576108959118093323728263414145298900475164711845593931483830597625527190613183858502139771012542192768147281123542731362029030123398788175854002670363930425286470922153674735095666604734397588190297576325035465123450883317173251983005656426490455151198667094325161949445919747133495500530038646119157135351173930714524678482966300522884000236889764942056479234501141993615175413034910727070620519419758933392390869870186280265823988533844031086430619648358551402078689041760631986389914623211765221766399126992728691249913753165343640972015509205964153724269828308896554061767087369242531323138028425990587562324035609404872745847165459759274322590822250902125587429828023136873721122731346999354265359421153515246457058660590260327119540614555874610936106647619792438980955663937560159349370380408933323629726856947469083185330527770975076995717168374321596649485041162376829831236428522494194210439363289876196624144788667892129803254908614241851111422357159871288849339192684158816393992998487629676753422975425163474187699831583755262316819211354629830698918583201719147551920106720298989251984319195048270290642473802670642480228752818865154268674511952053787168716413125161956804716336153530018252197157325280672219941769450282366920322496626277841110639939423809573761393284595453057190403813374358386618694769781375361094385370685714518445135073029969699907871241895162625801760062823705101903779712443113527165761716517308714711107599851809099594318173087600841019854878102721408936498511130857625932975675919015092409203792470720635712082282498582607471901633269841914817233551232408262966491083812300180396860437231318524502897110123264884885295893504555826913693797897961117762905830100751356510805847552449838396351896841253022874883636714815552580850439557134397016451757026997807365890548084006585497584939334809242880056082646254065032200855559643805222527233219404423085569118516697244350893962972955580341773574627015524015006470597586529678125343112535799543773202730482396523320313725689318881267592143509325403106121208899502392051176274893914840175595607193139874438075712259729689973619064202616672529223692142343001158203115708904554322903375634883182474080340519727786555269197067995226855934092097744639770972649953682196124021012047653160082182473935904020574147624982929680255927370896123023744183372999798813434703522204639794502437616093011309324234481609496071815031579970335340754816858662331828188748340066007769090488128416759170849266658747785960899864315163062261893220491878461165548698348814112465049325739248724762204983959598690384973724026539880107102519932185312231654700611537512438016612385342899563127004879484629467311871800787959057458599523656254190785249339567080837248603745496939699623974036047190325719904472263119580779322767399011126070366663356747936505817969047525724656520408991411739046281227767954755424492946148841034698372816777863949940621257574479344720460784816948522422973462413614686261404063765995843028356386410062702793642315566959095872372353618166915005504333965528109191593513471328756568424917072758474920987322907089422390637335988540425958590781305687962828671721696075433443254359967830757524187393935595383371858581984283355859925560018303259358253724635076206135488485896563683838007393354484587268872429241910622235382536431000364434707252966108974270875472837430024648824854254502011289710451479085671722940878548238670782968295070383184098270445037639259635978146281008127618028369489306611526897876000259213282099622286385276896201188553953889258664802742657300128704129999764150468459438572745701805718515572816997755204912897630593985785273382114269683093116256014035009684781140267069811153349898024148169264986689876994677262260039094885548535260753786576155279023740708711536044075585960241152414205542487631591826977439719856629008722879065756783289743835229186692081800327134506398702562885944645785256018319422652592140223006430811815204982181819288210982566012835441523935568302527990207097531497098568620988674454352806505987986112717238717561168096562991416391800680843539220327747850585910538639191839676873778612264706621470340842730510404599274602385575976591110945697844718150420281925319754783548561436458863075402243001100992211871863760265403870714271936851855171710292582486887427852556776062780608280356706874351118974917625000310782832052253138354331672063753971463764929615817385496337218527316587942272093293354519299887136456468948504486817780039703550962865029127396071575886928873156184363592724980050819408805340943019389183047622721921735285971631117305277560007310077154990549258730259473824856757997599378782635004350839911294541774065284548991231354477166098092239256824733423697229014688907837072622611389476141434594944985319795557601347273311910967833188100282734944924252538629517581201734416220023896847000732132661135421806321728213160560665724254617641596285871636678748781793596724698805984103326062576206316786711338336781740307592903173125193476296578512306970364484487617549116390643368174260082507825248348544663307542200561514005171444396076582590934687881791894770315696158771043561537242092092173738889932838432160453210498951057446851911666982842740304258389568866698372662522120652999004629286351075789981691472372585018303509296115725749568973331830511572509697338700343196504338146365844090889001916950798583125267919963219486648157355168994017884105264560152232416261125294330937472454954600532795795910513624348374821797414071427836131673481590177298023550447832547788856091049548235932841833573417791108720204660400837798187544246109848602878343808218846747718948079691879232682864855340301876862831464906780617070862859176718637011845022043174944907865490579423238941013779309758963081521294038860328892165057379672693728151587464119397849897046584402246855535290655147204120227945832060179434978923632801677458053800274091761364825012382889415260915512693025921274561361366488070857038968317936292636064508709276952737717492368860857279468202305525436793630402338102622356278239921626528598670887018532004559479855782248636083250530677793195482534177996752475480541095159299289884457804784562921331314274893058191637108950200102981490103118273651340979470499194848457754573065065808415279718897980277923438515531066786370897485335990033137484966905257153853795519016147705678265534896884560601313965623140410766292395712326399612502299761033604461721057004848159421219915773270894082122453813222646736260447424617655846393238379879954955241213958018675285766476678435736778578703380481961427360083363077805558616225478668553304055662136381224571642395824605151391183005660555595680182301599744495361714953636094611529923808707936487433075332833358402423055462249477198126056556504160649221759485090453090098801903134836218408278785063959942824307998730764786486596828757728463554889022388360136229123310955065544229496315853740250500375641518056908665451207680950268844794331617832823107118818006662710926923860114647543811422675199216146516165575017031133247714448254259107667482986511986221536434210766658082295572781211187756484359418060766044193235732656874483104000766409809624674688586901820107270624670473165719358107637297094926079457798658697367638752449022147426427075757187959514899111402624995674006140114125613067490973571602672108871392023319351174689035331949566604727432902426745934415234065326031285332452020308638407884008457182199408152302669161034675680140404695266840658377211523459221785124838747673235441899795266549076999716740477667617846174954367138105802768259939831286821596209703898413026439720989410902739211556927591439963758826344265492523281769140198742547666230981657226102801598851135567680193339073243773254186510025121269809080142150972556027724659973363752560904274744962355573541626795516818195565331636956276453073248243317146103945764975181590854881721887913265120474114351686444877956827519041404298599129120797042341508375783390939268823809697271860648455521154874993901127954267377777865031500283565801742339224803989377672957807536059424869179792747661829832128011454181127663562612141156538086825621413992498682423503810430633430330527797403163235588573664718852865559457370266248122988279516382510880814614992829392159330493090395675587084234714643308305546515033802688843066814000791352557792737580947232918013847853128188987961856584307687329722691426523233028123573983611882634516904759398619128822583569776459981481101764807009964371468057942087507979691060152559988207060652229387464390107885767869738971775391824209188995596918012845350675243914624210628723848659270637381975473565182340495980942672736011118302532311948634706393175440009016644125219033866658242427392126257195804034069241311609336309429744053428131209364476085653906833710064206661005757967188822685229477815823116545469573034402182690689980538320384614229212814360864233989298514777531965802567020985872840668338917960063846829083897690258609573635938847012013979261634087919048461866387174921686376025964074687724241440807998799655569348967908942583294901805721235059024172225046292024410697592333174254795359306182182630585694797528192264020479318918635413644003622934035063761846444689418496741586497857570412639253250519289002319494573110801439665641441784401088130940758757009165518141942920557983723053994282095208575894035684589455610823740383622563300035791318484653809298045334749438426961873844334101276931913402813051506033494123236609618875139575323256052880334793598474194051481625666486303887984806932197512698789230824953234933933703794032857286330379344603305390271720170978695870318214737959136870108093731160177685483684488750134937813645738923067718174778119653611512295513670092799593125758555359298416458521317640012658793599300485840129931338514411871460358864501514218049046737730016939475663931018974996030672663863302849366096094718340950505778548109449471239120019398475822376825424948585179601307611153269694406680658138255956367137658541863955244775119700272603128675652318055943474258040216362137065513120431283855785799014353571650601480693971294833534162028182094241730957343130669070497776617602039904803659895236584517700397135105725702267021498024068656431847764751382168559223059070266099314966277923372033675597966268931343432314472005060481639083721476085531696552811474831574619818816330866298281023559457667472426258372058074178389702442520199589278876715258759710565090826115309819395513422757541175056376835357927190494315557433745878476245302831544217767409523377151965753679039001209794356750001388329100168737336474352291921636798636821372451399248500576372654311754899958773876611156749285497569629438738737688099377610142222769077436912880854224008977495271167483809705324817675870335242706712858879386138692252192784420533375012413574095714046111947754740376114630990876511854075585912474841426645657099636026608260097534893782102233017599831173389457023959561287153814332891627114353837155881317111965954104099970602974288824894013601870325092455459703665050929066207020957444636301185977669716962253422653218632816893414801225855965407315486743523848403782009984660212521951279246451992138256745896761250183313911668707451429915306615973150284365929500187191646871733031106037954169683554390965908902509438780882058791105610463027533486669044151297129134168190880986532750087543425791889210191027216389460524105097977219374486096372552712802918385411660411158189195807394387287723927312531211515940439102367451739631185400480236868252802642885605355011730147133824333870262558661566298153553151387452830281040805486934387058905330517746181367433139030268662216615195711700555866993346711665967271654241935476650347480717038607043159715630815152589683727555379583179589538313386303644990158701792321897671159636015610779324737280878362045489849884565996668679504287705080182912457943603727382928932464032945633403714973564941872116181039034175853211344513422925289489427862616628540848720862820632074159792710372175437338379373677548088774076507900161766991724859487302499986558452298455335640206174999673415113623730673136968106596063177979315313476891069518747854775830596991684360969879706695912473126100499353226389261433538800831881301086005018213732412445869789755375180970174125411576074819083038181272324433092355987372558635055523094557718348992970776294562324866412707258997657731980432260450672930184610168826500519702577671523405865793191236695369590986467031869573612418769138160034535258879156505080628891952975914544906116319775020397684652417520857304876200683889947758682902132358127557120724459739706941478313580415814242705073376389366682143550258526345695566490041663144237650540240190275194850539156545850100649101757667298926046824264837683656079496632191492083199724671205991341966652490747918062625609295639325650673917734797761370672048099950761786652716749891748559063280168062768977800635209421125619278133484870465974573792173064192429717344978650919620131684786268284019760019590557821120496053451139481944496267323089251689194566232021593116000644157880094436780954023288576306927861771633155969251541926456221105447977845734437429788495961286177133967829119370509681628606838173008193834710328482840754478562930721128936159506149236031763283256416246445361060477282069883592756837013349765258012204245430108141992460449715856351620820219422969516365135859598657516021368148650393150782913356711412402297596396039336738087094523341599830901571571101433425760846813910667528318437567340150931356816549947486154775349479692031165054843753150486726795099913213106848524416795796543838158899904486860236963163981354012976792824143588965749007958175093342620855905301493700759113321162922118268384445217807778085909973549628050327797932830956882060283942637663064320317228112878227897663108034601835116632726412164283125423777097097423850430262320276009956652958486364827338252273315479654947185896359037023303862866532889617559084652082082720498780149274049196268940166483314793203444319013115460823146791274256762970410439359059539358561369995307641409968596340185246177099274781903142011082241181818414175164597414280407296756972157662457865295791435536973383486919857065496717441795219781161520452530163409886595146390932245324850085716933571537545251600792760127557940658104703837372436326995594069227888633158012622586810605883790319355711172660763654602377086317622370470398738361343012318821041344614528243662884218188071710614638953082535723633368798994743224658030497926752185828250224579863955510513740957276336985685605696103798609308598340290761891854058788983162401528079397466146912727917004445814321450882005325456061948813837118168896807439962760595808113458719927000714042909688051582679131025244052875695072089360358235164609958662980851766753788916400003277884603533381539532908476163973589669262626390244807456133922643136768893872938232209830405695541438239582887866928674829731673496934586249058792137445058311547516841223638896857984364056946028416113522307750023632788687762769436901829596193219584383275448084471521140698765307420956669482735628427816155346955671459585052092936496698563965590691005075709430534129890369228145162298639722084575426248437799343501811540653525247381310013278310998305418784785793274721849486862876918882463310351035979079936251661735212019021146236340418227131228048638432855376272737988469017288830171236123533941997756424662577350077785464384030506545337225334493924252218722688417869481170513862074694570021517681325915461596219297794303548196948847297523991787360165474178042173115410797214322180522531948742303821493660494164646962329318970415310300654407427215271697822337320101455879813817644050376683093687544842102187582322704656668839078753848461286193120360232490498951073022064342387811529814338199178011500848932859132306012014779244637472939757964853359403992400606922205350492886090265928979880669001600811570216158973032222835276467815096986363266717239804703921597134097649533143905896834793262924569351608602064529280230160637856372480522392385320341789379069867015871244713901536320071487218583895259782222479333380641374389212741650724892475327830219604229928241684622737516238630819860666253951806907600182388128929450270876492107816454153294948674601511696795331832957272324836946438777174964860814277200640936864135241271818512856572864052614937371606270012691327363125672655004797319666914972726574613823530222793126351362170157248329462383971629076394270161206959628436338973655641521770257819905220944949504757176366987632524761808082244107189391061620522816097272482722943621123150104582236262794381051924018483497221952360585128719101545220765910877349791023934842374449462421613212146942723553990089245109725841890867438999137323034422636097181496386302598236072918549082511082310860117319004059812794863665790554208030535759931577308791285015018899639854922795616599096877734980198705755578237590226334532733341825719666304977539147051105085201999202525408613600896634100376178215650546644463468791278160300232606193773630104401558918396563525164659101619912475558364691226372419302466646164535402990847308625930890576393309729569650360957623766535706210493055630043647175867256386580543123617018795545421665018347761069108997813636086836236113674925945387627361627774082088279160561723994490649833459036439247600193068848419838837889881171870335148555332875929209916373840380716444175879886406518675825258534528028874513008886471300051557030139688292621516147240097074379579447516088599050276951573478007021295020263496188176704220717272036220408714487733348769080718352137872787774255792862524697394793543329062070259752635804463300664692000593871432069327350588787472150132743170248945317727130206803549509652502788730702674505557840129454858371558374007672072253863425705698385988905439572694590537419852379973646478917569911740586276629771206039100496705682362046951484341394313247582662306905036715062918784237519747366546935537247660648670542129702546217671289785456137750530842589344634042163725352512681984836301799012677451945272357978354695697188408754708921610064976745939189186025052646840016363467295884866301748517181202404407651332316405783929093058110645628430988845222731363328419559930027888259765528386751136059442086507230569662339000813031472759799216243160424496105402920895013941540442200532411951847493153429333587022400501783394586711872383318790410189722873178352024224689647791054744436464339875477610024730835821188059307011946312329261353160971864864412658588756130338772722292132893464676689355863509155522879470503917474505579129674970687602341100916504116688172860272538584283979267891399731157057135293115637057832785310618187082499270178506200612404066591907618108616181813178865258777096873455939774028678506026910848344857291294926413271392542516320353091614988375147448823904490017241166316206868873663961828849649518927675697700752189378220125028199871449508412981557684603501240765042314524400342974519941734042433724884148834428162687632274566943838286086932554379439035610645928724649358806371269679532475635562931967409477567478653922175443898669373771164669531333883209896481890633919765930391632780481222989177196893727359675235431667525529318380799277955293062932265540041630970008385696295847307849059745505790736847558218142009273626113853602427547249683390315593496694223650681362573630275303283606720600017118577253769861549172414084553709613664635256556468438314681931150090572120363450744037094321975888540602338262779970025786397472114863825719613095867504390623554706478135023436531849361993833345317074584470385816971668708283635314818385374680577411556119886381622703523875155050542537239327663713940121297719716876530528262520982288454214601580303088907780040252312306399748944134563371589855957196379866483828184653901580252286804298755355494319144510568210556050577678409335149612152912746417607228216335796784872004116803574554080963522969063634668243576352676631753200616059877789597271924930311024443184483096960735712739854423011006743114447305359424457185533726766117129478505484826289108654150426227203267381905786111804924487050457986314479973674117883502316946420388043395005995710055526667401233238485622098269871882943686446187897724594956710514933769950883595786817975084086064306883413877776372730069775866467195826676259639449471156127551039942509164985630200558167859049488948393787121745456931718542238542614064579795931064136623437923549688537976551896752174931034011315091418308101620957338130335267024413144751752129203794999992368878794221865017108865050023836943689551153199751224629493701789575815130575752915615683995091911981318186344832973290682701436004459524818124019909345990557169628665624755157503755546307852957805779600362630328652117698387926819224986374775475623160603114444159038263131502094481423472084030838339428126911620768541783177249493611856634992484115925908594419325933244846460925485256931810111660868298017231486168482036931266208396450202231189626923038235906223429067023040351302449874615228531360049960382987952491419812446699807349149014821313306441338128393941008783916857000658484851377723813338092578063330493071248854282046677568904953100816844287979068522431837616448297566973093004960014503057761484720211013918007423563939192158651812244616613933196089185466193360052249861510505973126888128558830970563685355102701106436588714615198479472160834076883577926483009194525821837780499171654525786212824496240520660316419558160589291158184368448238234067714617137500067766159775179026948868865995571776869868731601141767871404923491983126930517603611415135055507495069362547892243916755544225968323211000844764386994790372597263533735849395549332052026810642343743098361939298544768005540282441620031019555979665860729415203233486776149430848038251935636683818756516354097075200040171959118373189851108756846163907823072448017368290783943095911032251640371498418387018737528926000871179795640711244751996071027490601409149628578112406043588184767125746280693598647607574692006859471046257009879154745151654076133359098517546459804011821958291005751334928986275325793766634279674377482035763334144440168584103621109353882367433309220722071390225426012019059543483548696790735954248285112584439376829701750620141694050305921697513688644596472438196234077822042519636056797204195351796275463211405849955639546382455330557766611717074926398020206996899819745607397770957966410714372421813288613993131227412085500370069472044505674727997463484971162405726545441115873879845097241352953062119257017616674645108453038489959944163263099287198456548703149571299484223816210167098696585393401369374891577990068761578970647418865146725167906378755925028454952770943753934280915202861093670970189127446409247674203324752004492805605489557440858930239727640412295729651382666383726571329534176887191684604438392047834993731428800906351375715287976465898059006021571008549364270936146975041256407881334480324832643306187679337998021651551024778288079860541521850971984642509380396390287058748750191566005672479932809477952297635863163961031854000061321285321320916980219036695667073013871262165272547870070656265725300682236674744708707463194996266970111637955897116848222310245405765470454304494656757080396703204627053243718954620606952590422363920436795992982982186253035036921272878476696613134121289160096921386269813279939952202981267463115489866268390990659870902439459360982717056913817383329710282633374600826434293298668729361290395394754671165221254149850749422031321155423384371837309724642746176287599692444222573000984866557289904204712106497117785351457844635207916142949224025283587336857335813205047067790830158981243332823734130170802361701880749305401851363744997776511618434510437617589022157608898600295566017134901359592530085768133955526620272222920400081124216863041107185857624676233850603833756973011479976772903247312880059316634307647918238803503100025023203683940746307967713527919115231443039914401669030364019414690646547736328421583799327221264651653794660573998069581481246087600989158850396715464003829178535228463892373902974307636608282940946056048078924029268693939993359137900706670747944636697328651602224442073855342899394381101724989587935328631326855263740320406062351443155777821034047946120734888602652095312089159539205013888507525719424455348269947629861999711680195987199630090137416112562676903663735828602643713865105271195051407358358375217892019218409002048318978679386784086838423136582828722302645316320492250910849578236234838482319866131385829892646684561408675677831604045385181418173854019601629723121989261766639852018523132113832127059431813678128208926925601066238651513506731271231317168764377275136760412562970286619459745484263553851810157565400341460924121464911717464317221726741372897522338978343482296632834768887446750529747176651672326379479820491792339936158582337875251451203911843106737429512201590952243339147592239306030253004370189627109733496877289834110268401672523403170253117361328808389851980551989654460938541414121218886729778643962037794664785055637203838241976845038190083843942698086777837938549059628563706250522799594842458831264483380345944928687236033755260624182602086006696377958253832532342012953253175278224046375499775853903642201005398229018947946602220511739165004820406350258188554312189668351116162822581302397814347896999315728556981052527071640580384305875183871577805364203299263728815674857170984144358710081608888309045250406592461505935014933876890652459302891746093824276070782056413851505197180816758635610028216580029849993258526455034042371273413398515924944556341135837709635299107141275802366306258647488428052528633622996469558503052969714451117697032523647582741140792706098294782111123839564078965994052204619340674297430191434382998095755264834110587814355201967608070024883369915124010171660665217353171288635128290556503089150339232756590422529155917079557998825851123929338366948142528005439167578045494981364898572405736646328895651314431707341874868428994024303239068470391551822508231184724041497983489158978998979353530878972218880040911752988758359826997342703324832359253472238216162901383495275208390805856428060194084151135098749813382309006887742135738038622537425863568388534145902455354092456191076095653143176880846489751352581116910983137452923813828794572889932872580164176788391457584642017313844403240655219111166464516371748747652166230327590891726263213707351328109065303846153714420745412774709308860165330929891324078218983716334457113348898158119614816819985356832476911113848404068611972527481367713222739925354630725951664808702466694686932145405920985400992142937163721106345204358163252017656172449296529590063155281155770308594981433579467085437081295108174774849171664231679950734315202573671510244651051688926343548672578683332662891297339286681289535435168069864675841345008734425838024919941228495605555894224581575931514129294043884765622170229348121098508170034655106669411970377347510052820937931802069233484873320000077423558651717403847765806653711082807525710486665383683156579358528707258210636956858763260767520930674487567760071946522231726468575261398405924776170224389211882647037448527171620112428260279813499781851978631039859433873427298239496564026786700660745309033776772549824507339797114542707558643189320148660674653646157413338846638219489406719444319089297985565247097519916299660266205814261090267954555182030241554319137910992761498190830846306348582684410696736302373756987374125443869455205954426917780563826450181311294352446453547269291285563264108019861704730561795321222175654112366995914766001569518882450273913551253683388738152531200560159068398629780400061947713692581490547944376453982454145862684557992664330724265023542770239389320438794619327420719742291905101323293407063134524160459463669764439732950256818530934625771686178634964698848212086774841911707351403474144557495265906167477549579613937855787636541930371778142127848785022147989752907756938861002872079302472421607683236062104531784593609847654122608773230139866403891816917420535915034428007894031878461011235792813877367016333330844940285813946192050874856698003215625898837410362993819433060297838727414404452124054601774931081417559046174383465088794269561864356019378198160705981337735848968419072866896373434675183470896050350966483004796780699510382078929294836728686679363677325060932137298838888680936468771354419878898936677628391121588089812687816443477313706843439963029474134043028398666299768950112127392364028315204145467954967793794762993551472266227257395533358360208928675048632690373748705382180087595125485473658794722107562907213667622966124030963107237285659857458293149878876187309480655166563543803957930178408814487684982197000978806530701602550942234127311779442237943668463466440476721455300701134891851979435505146425520771455690978601172031493517727782066174908861287377384201747890193479195687861869030965220734885573828475522323737378716754000125330510491634595534728130272306786591078140231833188612369122324288121670921011203961705735469287426848580635796673739906227808610854460542578049005265601554727132681000627766660892492720564777532346982585299852352616880071678628974805610843297616948676232630905712912500315732259247468129919905139215268198294301237954044493167703383250957192642196750363109508660914873009717031592388352133724700624604559523147488785675707461908315349578311437600758852378403920442927947944264476757074533567172867197703280036239790758356486372365055885332691070386241916393917056467341495425064265038787256951044267745435844354083770519378959309536856612924367007211258301272666010500578065486537836299944580064384606919067757750169614255451992324761188211706190239143553654165562777961859050605185596268541709041441302132882623003791333066964724352151014278011035298574072671621077977029063960914098166737895571559802260237926863380790692512467743555722516771470530125932640894547928358878834176526638897403025655152100312195968818250199395242382651652598609561019035851346260267253421250691955037023185995418001851314055870888236816959210555783624898800784594878232038096435578874238681486151391332369686017100053072720517515146010641702909287205285765181260890812016917204548840443616998102051710834179562558682436580630753068545005833116317158594364046992188780498714926601458504254665767559871193425513161823789396900315318218496555234003758445239126948372444888747661325670762316182530638626578746999382212401892724016106419777995845697643043946039569658074694030163772858711620487216347539053991739928554323056209658420110572564868546669044076539484512841975027027604749748306702498349357918792668691633818608179902908427165913760452701251171049270425833567171782838849647176707932341311574488377076392234118309989825492209891616091569575881569022736741723672541854534708953267159239252526357749605778311747007877514103707577930182674727807072906692904621750577090171545332565959591020384322394861223706164385820988930502194404037149421157115388288891029554159938608272169106595222514027862005730602726295734126499538017244993424678353630083630502891522768202209821949738989511718912526132089938657797489225027979177499566305821780524017623822697904874743212257471692427392424408861541424165559884845642391699310506337313044687359435309354605178914788396914470464374242964504070481918789278823908402300610262920896795468745165515666688522488109384765426524061137391715317834586519915793002190091747938729133827365072983765305956566595237812986230980561118186552893428122241427508958286453691100093569413611786452676346125127383178463314512464251021569220759867865349214926748575051850916437146480393409777029055512336893473537221656863229132322219677823361097779086032350929310462482317330503749943155541840961487498888390053004430992448293886716354536867515447485474705382865720836035446986239387760672385955814787064075607508583611450346045811661152812869217289928946246089089935439988231397297212288419544083280290668965405981217703752618927487074327936142675685602871539999914011141298304585339681469486661070248690629928692441755901954566807867046500163521853856897734398206012726077308704780946597508425948164092033154812490529332113269125020814071746298219560244832563829432694232929666846832453870947008375575847719251326561207485241663988385626401745474342632679640686036880060295336872885943335694839867019852897089278635831452103005260275827835723133561246745817391993710379411082462243782235242191056726049866757609133885690568804279213940076845630345138225561256803298515653398546699667122765281830907162362489047671561908840479196691492661597224479358525526279445055659812170794399193676874604802128935597604435685203024673204460863929354532594586872087980740443997511755049796838417793957847118248917031120333595037784027251335669781727420713890220815603699507131079041379826203205239433010407767918471052582002352402312498492174986669996359126995326043572411911886367195845393992039759219360377668656714467395971909704128902471388977004684650233255151800475008084651092172075489056976229747043370483605112636512592899281985250882343992772519259576479916503005762422055766254916542879070050360391911587856868762520030096337814046242097711980119875318275857896541620412423217647836053834043982579353824163936055702555089003336255898123426298285922655532573690543108647639810599536972662956826240939091653585739127168059731708957903248282322267002213325778640726498760755092008932902668371098695711333184299454708137534654152385219393746560836293237824898347218874829153549593906680993832921764727300431093941374564680699010199657516185075404110553120901856871463318004303227443510659367670559109017722348561395563548127757158129744418801523827376758636991470497106368445879781943677577193375478858230732506988976846086892391672781249914153809363514893311735795592364274846609810361640752238886375566848520312818230642123980472267574676970648109871813765978377470792931614840354096279433730284072808184460096448603829220555017760414706375494371090741637476187707885540726972434501200225879260584134484581362628112819732307260615695414905154620540846033589682372162600614000202386680459525752792208255834190176733863007085273386816275431386697852188100434539906572183142746002491790535377356880154919051227302826575877748532187149717369389310703206427337378990882412547814471043568041033202363376381200095550060769087398384635310290485489285956132202001009786492058269277619541253620440158989179484050023364869314387227015404329271563090840495472060312601923458857130987429452872523618693143638569983392362800489847192674393768403301407373160830704209743436652765142357768506777966975538262959345610123526011459706589018476318940925756002508702676375005175099546237903219908834087113516796654132891816694068244814625499823967250633561467598847401132858722381130932239854723782325691698115286285806787891715692687450124913931804092908912210205252720624083180483768052344083156669339931992491915854243502903155602667821802200478228286986427604070654090584814301767138828129768134636831215804651953973890115651337518192786801346331922875233171400616811424355084229464989940149783854388108814564139911752391397344100375911029435350194552261914173285224724834238230801055756023061313587091964764768977998981694101253120733194830591974752187799576486799854553488753816023020519270415110041745999613418494559034799028595277104983868666483427533105916036330086073118029338017256934720914281453641260009437928088634139758970810895768867704103844428421046246980333218258678544955738653256086677120639871102371390725623813132938163522465191345654612661045550048444548010914262133036780979133959459937494481863256762603241360140262356567170108650176967936665091401398771025793304878507492706638724281405529356415310001815384724825141273553835718276019104196656420738255197942631019466927751076753672817031471411166618634186929857161588960569234218137954686136083245035690889220905275635121423808137746669396010835252250368654816346364645578934469306515821977632503496913834962797670792366857977136181400357794641729029310204639858121690636041120194000432938729786728633554224395913165427991820803139860087743300156589896953948656229402860591090807147053878484141021713767543137953764861056005578908534646368751527578722334379374778318082283130548024941300145714216797964892872735330563069535259608964655279347518990402415107234274428443973774702472965203427198877207837418653250495168594477425370781488891737816833619223164271910448039363326582994248392561637736282692771081424759951344137381732517810180529322101904947171829361402714723457294213825258038527550302506554747061414726777722487190367690859642745301679501030439856445012858437872249184667462851093453814667863499652857594029141462374436032262697885175069104350304657706099038577762734318789083154080760537875628124638890178951235321926540664254048719405608976753110877479432721772484342462718870992613827387810755740906398292734598564541348750731777821926095165311326153685655883155767818574844062031522798753776119262317875576227850291006573622748108114911132840170604703963533640827134011569276337587803708127107238567073106404714430279434841623216625448990876072885471489431936131783198749842006747933417725019303505118412034737156750263225491321631321950230215246453611075511578298718004593829392496775303613666930524701865841869310344087664810501438044061921989478929129860970189554460672541844748972152749185787402179082165260806705827912406270628400357526832424629948086086660251771800477571663460337421221577328889082897961038970482001670830111285642621195953128046276717024695060121187472741878583804569952548557752705278479682614693565579989039988872570112975174926729614008827219974921671982452476103793508390892793814870119447419375337234095022149902914575421560330337783559951800016211526373940643779439142298421706098598328349216979268706012378187299162427359301555761932540616651583107267092600490094018958328142738324367791798507697716115516919278493018573480915868029945234492904002143980462326997013433170979676582947642059470863206690534450576956283998836668711083369294886672453147756017882965081186680397877279487887162163382572656230668741218281018073520225891374405023083390518860950840320941148185031936547704354355541918326730330670850178950589359401855509582711133504192613962835912208185166676186309017392455024523205416350797314678777103025820187892362900005130882138169167637578181287229195037125188647805510123412300604465303861097452090461243829273980778105200142227386979587316195582130337894237725156949197612978783575263839157667513604501907018751674161181445722065101331958928533904167507648089015712128281206513289215933243433887441020308969834772337413168748487385556480463794242228426911307473706462799502164470571929247334593806010898449575206393408668368217784231904375722135728088640645355227722771023203974202827582633540007503817889334637213010567949029898054880609683534996371566042357526898055173522134244372985959390448406094207214357428943795307973367305948812319459552885710316000249748530795063827147132903620249484403767283703291980450879178263406562738041590550474733327967306276622058890270311478896418198489862693193935540545179333541491115866269641208861936409348699735700091421188271466354335411385833028231276858830633182396609210445139308591489299569723604059692195375912933255252746628788218291802619148080794340129092103022166128594409332459658092138026892915901561199617757996165647987529135504385514819037359108190354413288240508317026686712612128159584995547404602394285291742870201840234920263663525597460401784161066425928239076724939598363837989300586108285676859515212806531524620994018689557768338948094870895609793996340428441341954153415657787106294439608991561465521696128541071915224760841999616277507384112196821169901284649949878567387117628616403927657696977207939533718982193946240253863866253440122553942078454308496758478195230974073976831332922209562518464383385940417559405953789873675896930684042538106577707375245377874531596996931869540764168571395265317177095807037811922263642544653905094848636497710075495837651771131050180994699624234913319657146937059934098635809135398118925894515226334107394993527022646512611650706686646949945400437274422514629658137310590888735366940570349619570020293192834863250624780776405581129841024658652313045142694249747856588359649903732806760167303451298928198287810955006669156204035369933907438066333166984327934581620187633590604070057170433384278984826407194126566528787940843179046085597984010996290835412764741443432492694349085738613297565445578258400298223785564059541091541465756388928634557528790274371600731143754875660938822692009879016929741726278225430271191885193110222795854699785352012182101709051708572913070716749681369882703773945512852683154875587234891785852154830849588263011424715429005131043647831418130891250577251136690150977873430308164677896989195545770298216349466245344783652969707679623990186119742897338250312363499815947978780301032000779230783764744383438771425678888696779338146789967911022324922559547288993181820937995375002800786087880028945304122529669518895884222673732975333482130003062382477344571434264676972662988730527696428097855313808896444664894391702723132026773490238652181459580848220361951213395449254121974193873343864443420749706353635427944228928575687940928551645707635833550806859025297993624177995632340432739405282105591271271335692086478360793439309604795370401290412877236738581742312007864130587305928930772882589448170445609143118165115472211873217334548735980958068619454794429423807699117886504759926898437652553364662430336139873818813744762430294924952981960242155461027308388682416637808340903344262819492527840825843061705914276200030252240143665769609680414503482081635102185288463223021866694122399007554802269536739217503989612699546605255445778687689481145035141094235236368075844584504712199261435725104962015144657903997785244992054478304699687346347115927708994618842188713641819079302550236836231724713866472992695548456369551302228705847969036739095019301173199815351204725476925335895989579996789576208683356317479546443271167512979247942471825152318417473390728558146380685745875566167338919770353551479094150847518750899454444830194026672238722277800753053937067790237724567041110585341123308807148565035760556249975663355919178088773064485764900402492390448475490141503354935024086603424868760530695248061289779661854367355035006828752001859801834847792608237137564397171076481658867625864052271388334041750901642746238828727480966967226267659402798137351366965325024474990896365672573971022281297999059336354294230181281603522454878505470889493325590401561920864733870645111834778559415209208329870158800414418957162349329197648838205484861744081541718643776652087538727610452620706864500704286300447114844707242469687865358524571887158966485887077858009547891079225833341529858874354356075787066313216529633168413051694829968426235530378092366779013093508659760261338129084256277080872108510671761403253879658244767600990959284091212906790916841720367375192115690037248117402471736084953874041599527232797346691626055819641998870151191261798796943732201798914086080906991430281326053215660284524599859116492176168230237290228430654287935985517357550033328896898164529772442963512777884733626332646196106329966743803022576556127427111219095693213673314068171878060819121728947152938762120254281218320125924436611474180176814879150244552707961898880773071970605940278688657287750377870493347203425933795648117928494437223896202176720379866909515168401111196020084098066531723034744385868599956443124809332242984623309626153620382968987839576190349403907641695348233134457306009843511457717276979826245732180146496247399274075591626377440000910176463385865422362781744067595088343100070769876999969901018156467951107777054719243633462397982858960072844241365453894662861237884542087215479093792231792879184902129206628317253973765487157009295674854090678610073239576795638949748635258352768227856149285931663269992237500352720538122698383153267325840903399657292682438641335963291179439947466132944711449616908472063994703359631264363755805963454066951270758941859718712103292950292329905349614488165927295760480049055111673368347931831801965726287619025674328225779159683775221883181156505556406121426074330246899519147119452498935332183144777156164318239974704819627142165085949675960150556672691480478972689318470559572866798747048291450141767332921294735820497838574850048464537756897974827273720332245238035499374924763339841631934956245849271652349169376047179122189701181911362547757327347296200678132457086032111996048039128405497266509305948673615041630774399918413678733713971191300050659461283415569936073766644300851559849775160861490401337879770477257429241457388611837539084873079826535971307811935210001421268524377721408068195299847219603886195458493374595259971228034020880258684251656014575812783990360099561634044481395924787082668342656590737662568328972137582656276937524257799467410158597984534549616160330478402382846404069768037143876023365008809157420851162608401801702775792968389930345480104028618986391827158890867623212810884717567731188641722100232706097496495841235911398138878837160624700729693803303366788880425479704292882686604806923074628478131912554819696405323246178374969671046021116816958009505329160921019013252901282963051221162668841883266361208504960473085685505830411749969170741408139371196485389670126089667297540841116891851225827488887245881090105176641416400834182023747177103800141933310148747402325062487891972695963324117050008489419567276791383230424654105845840931012827719158994309954393878868357248751503447277517908041678544594066926758557118213730863104131123773586028703048754278641974423324475826079466798677630668549075056786234042908263146829203709879805166102114825495938745018856519421085627995604228801363173549516660495547511729714027749001360027482972260916592992249076526301682991682470387889216876639212743009147787559624729293324087881413215113563988288460623037473126537567176336458064954195683207942606848023067458087246084205240901597163717085265287287605369862723588736612782393100653527081760308814731258305496982530786892482020643696383557515908195464603947187409814477014678709208913741480192292549190999789697428183809270000973243826197998731394908939774427809166610710355098875584356581942145449832542043100619268809605078249098642824710011600960028432203210108434714425512754085107086324458523710071977541580549711485299261049371715864893665201846528387038003303259457155068213370676979490284494978946256027676783189266071250574530936439690503548756093028482252631169403971847553017346898101657845990049814442381814396185938138995689059150810519160696806035857082744868526366910984076784466655727368564547676638301102179934593804884306235432594307450586801787013048703117877433094826198515599681762574246975050752236937017885461812653725520065415942928556547059857098094644924845850553199048537766813071593750585273702441460986820105721092437367784861698185264036573114986501509660851734125280174957844342863958613770923670349611000881579484788244161498216288403917604304462006171388244755080861084819119942206489772445326008945026398811319688996404597664696415604664678902555752291324286972167100758166600243712409457280906286406964540685610471463604215644432944681933222883073696386060884648599443493033736147648321485623750121369944615219976554142363580980799101131246406394452200854152204941819506404021537248429262439406179804677488404368402134522186315052444332201349058405405363386447153702257671819891056018156687794669762160502897304372091968697072008051345629686995836624396948263558391073149005961091160178370336359811936913359379738154265498529346534497648112978648886646286243901863483290183147098992686435394211690929344744618685876995661133821279203664155461188258694136663680422767724075329621138879723543889578516343345066418864384294383509480917705548087128309962854489335356726616821407031735643027481895011743386933839419650717516895447021601421752092127384741286039685639994678472293314194405984507517841871508073012511545726217695939444195571959512676543877998609706219781593612536326423501677070121030768461880838701118473426317550401655872560976121806586116894278167449321960243921996499637943547469659729527179591611351070261555453738011983805849691869798537584997281211643081693464580562079819661524523530088477725686913441806662857529296178534422743307935970626678921411472797959457518770969638084238700295537532747458285056424850770622982471368497139802412511407084671204223192949698350162408819503635972822004169161195111680534920460650091577371125173344301183186180457413169656011315162901276284308611294554987596097204073319918162269258245469696433349875866128411252369511050741420258667311117414626990187847188142760358569273742676715930154375841344171162402420962953584627805227275417588421661202251746715577358277208848879538313729690595460373442337867264480032583924605689771964949591144619764511408124384757561333861056262535949086456690703697134542134165355367279730555319138051112606202033268218549133682654887988309643802880563899508017398968627373478735091427585520248932261109299721972854559185659898915882087251510075557817714288067362360506513412124469291998525435569720220982356581236692025025739498691197317660829620045133808941548638710429710251373017205331997932345633377495348956273261237092572655616745566590196579775774473278311394756669322663836883574159334573816808071748781482320111235014274469224919248695012178053443383944255884960737624169173046387422638454551012513462710076948473833132907225106784093188773542065138450615952846244874748255621753169409452703001829277084571073090097976327409332543903820185111942560072728174708418331224715643468642404129863571497545773938635806065752211824759740507109483052470723590057130955023226849297120414479068351555517179907341975242673603448521433373071511822547591449192987484338185963548918564378554213407657567887676918762363381666469699245827889559767079162669345246146421144494367702453788119323105482872017100090121900650045132161093362171492614167432218592598171188363703749206276092825073870670671455692219556920816187832805636672865295728231888032040015867273881033902911180583836827134626866275718843180458575769489386815608577522776679384092679829897596811363681234319551260429171046367681843693156299354825998355054245841515711309838425746398919052726095101476095529501086238147038025821353382938456411472869078213957244112821920294042081877334134069069522415359774655193954293175863397767153512517434510592478065196014862548498407095519885558287036270953876664772507986080596981646210605830653103582178855123845205543092166806758741529202674066227613511947125569609719706177628409879451723010685572816994633001244680833059687720133466627007185113345669804793857944470697628431825790705889351282516334672066991168682529563593548395191847986765179835647112608736242018162598019126037228767247323224756461370074737050200961204600800503149653575223729458222971828051491517993674620441183375130689740514936028755508136795534051997004764620517996855787815079297439656763844445227221655823221925638742295416690084517700967788794826116439792977838358171950575639855993939169858495486254180297869515947443710144559114705311935686058605104286391682858893046586333620041535375096187337778276804798493772802272862261555605700205430584744750325658561955461858504292653180754814075565307794380468640586800719766101263078824463526921601228021751950223001129570042161248625539344045632254552833672290057323041538867772014701237356565712249126208436041234754070976277270891983916625122736190036587501216855269219844926529530975710161757592111172487907704726500508017310368678161526436765064483227395972688241055283877930198573367891406310061305482960685869849223654103979222072120144603583863505513795549335733517306407007620313491151838426907426096697759793198428038783016926879139697607891638334280200243487269766593874958686718162619797938372863802060053532449933188262078827974100903805818419799956189026794998550027949117769503983690271385161040976494214401819018277730637958310763491535571734667865506667398120708313573874180521148608046942145287228533527875810165414836662581935049582153362732197866742671702252447364792897177688342655610790725082096087635080942170860017382624005724376689303480476173161319702070707861850409855938040167833599801437739932488792885015377463146282139116701571842693279432014486277181254350535411966968269653158216336575542582323345307205710183530509715242885361028772657211692873787028565306857218216009956555032154783383077443353805271119982898814754664888598877971836570628315964496658287773184044017694859787027990878988959689255949455704057514310941897728128776779637981704434727478583597667347463004791392435767492963382694536439005477468913739948800032797762048987462505985000464988572990283557593152962298614758438549506491561631042627196094516189458373706611039423244119990939107246151209519349815973197352503760943130368249086478388008742867242044418097384643077585542207666263023763230870007502905808255140628672891493596122706388300358814734235579070164818277704632902385682187136855168773732595224976666911537806784395707277827977789846031621383143095913305899160447154269462855971278113206067905906769980668674962037551692603034836082919754576282796449694664208672020554113422877550513741988176777597190379191058413019219967315038566566857265271299749451953199268659984096396014374465149540440682941728042822010779744981839092311008361112418658470017926703145417318664103164253799273582626665823083353576548476005852366945956080598744456125465402294881503775610533689509613284999089293416524311278199586507605185479048523093825646932981437357982005201401944168860354437147964495271926767835609660712321485719671169434584705577978130332774387519820946579574658296136801311982424954516906913013998992375280293031591856179329242239459780689803205026821853481197212517586729957634605159062341829079213071328325286691289732420069761702562779990136502983386181314848082705415572067436527873656174906997794113895290953567059437440938907190596255638574199774008228759002895783201910466926693072252936928938404020259868749612390392806924348979291422939670275600405178641507452812128223547188248082299822977846244188764605428479513545912676187651681070468179769801734042165338729758333983828593954139889218883911550938815682984533384906338873632446531571231785372233306803066512129100910979066478013534970491480979040641298821614173385574310021740626581326050751728782803155501366916703973237940680404729578097352079655442423135750402231838248849644036318033529419384008440624410387616592372492989026133648078681071388858974438205447720198928962906303899344030077942895439720347987291156407384867322772082223949912610472218416047837987874294491224911960047344379337608879402445474243113810055138209688224634152676623822254850967820197388966509897258379251126754314645387117465185462985078096032387687850297483786646101844965669008886211067800243430794459217075548453823571899050815565879835313777533504514615291727075761694432922893845085368354643645142916264177359750304297101732598522212252912857657230368054073515837822942703523705048914510902829102921756210923296532147360007548941192202585629647558269282509898972081769985279068348073473107146537865066485082538957471463612597559456509158598968023759221427231896301632052367521396280116252629767767820794153278751994129409486199043669329450590023797529376323325438811833327345659674695297657931480826619637286627784623910023019959455871767622448038818635294484989364454214390667980718486324247608056074246627523710841436552049044645538740330892912758732038575779768325752176044166629477160131970175403848038918697510638128770026535216232935670780600103962110665431108046795540719882233652527534779672209331122381285301629842774025580389613482542773083867965971241642651412760394699913149895697898876800380592284668623821101322867586397713937082885538729329889799751604543408503194740202951776148925917021441312925412740578369633409343383748402905161082984884050512286617968097456238245353936628621310049945182341380725143248466032701022878400910939020893911621153770356206348851486145697147800669927704347812151667483531233799140107468400685940004844059732369379752286315572145309779409651775684167549629481206530979353459842085935395228296182344468663718994482458107252240912132614100863224053684802524162139807157823377131456951683307592923079689663420241669239758106981119791083473297752405544016668578564898478509646689552148512391231108857076321524438374822829803001051119281922800070892159653491358947124837604372769101694811873226330168162222561910237269235864964274851552250131491692987697408037051170082701489942151396979457310382530432623643323047415704288442533567868690745524039499298102048044136087884516467545086736129951327334150170242568699037519925069459436738598523139656623946280763082215849247214649980232805602519617816861020688745367947408945425986353292477326105698214521477640026296538940129119858456957175779628706296446451642994657513364288999478936881768577644301026395518786642268289298911228425256690984658682571787700260097832681541707791394067524739330454840931462352878231384716666251665825802189267898835411867754075215021760931683652606498724069787308309087371194139348664390223334255575905360816050716011073069142158785682521415550014018427035669311848596928768909164843533678120880955473160570808009273915335432516260669394652094759711162726376363346036642562255902135053906105015463234319916501754631882682473176544444654917374525191259954473576735272919110958418174072830305463356298833180976165676446477998311492562910332748740228540892596649430528249321462596908565136539464219749396536627734819662313041778041644722405308653276957435884519379319711867786153605637085551110949306510799460413317370194566465130576503780285238668474832176581895379812437945996459448558315591580426208406045209534681481215097265069538615095471476835373162453784100972252550933304242192569161218109126995385319710673222181181665021232177785896037753262170610281710594766568505726946322226336642445864379768362841729379264741556499238712900412588163292913519517719682021971126786317972983663257705927934829753640740866698051622755013491229909134554533554303747601157426584232204180096771838462708998619941936169496021622228377410822534320495933379200319745046838243301849342806148303441856675850239388665359461406007818108653634791158742385862134441510347637167767851613845410472478286755784097200737533966139881334807694073350858799690107122953579456642436846114121997865486582076431676030719979198785531663631793006606030624739414700195270500379630899609056265093966322125948126355301982662155140133586959526777890653558258578830408759787238269137466822445883179853288981756553488553979385296971413501624134047071447105291384611143758253187468197763485680008228034771286589507966341295493014085373310136197382575544431913842549066745794371532999051352871377316336647752735870688400009549283439597035943766904239465226168264847312916810809212412351084968676371855686572055305683459373414203964553513814151223582603425278213765579599613621524538507370722941569052435277257405024974322054875358702295719339884678378592408316196202245309539349766366988365044967915776243659513607691379810128825145898321443142979212343321869331917545403072166729049274348331101336145762977554782227860359608819434817883075298342827322305474023079647129205356950458682550655822887588540525588292815870844907054809312997834500447614521848807227555306289109011306111298830577365720845527594322934751053446936439350041598711436249080188489527211145333234237781972356294564773500901164333702577621748725015758466164895475161726347641096376221552649016912868280045684544142126868518011385467608954967566315394154493703383947728287378379808160923101567876426602317473928962405489376360207588968027707204548400790125526171687962884395399847365518367330729581528857202888578720277360289853259857165701926634854372508969824963390424247707251325989937542495611536241368347356978147303578671976846165094101359734839088381975387856956859908333705271868285712123388703454728143038065044553178228154178075068958563826879229096132644957902818033052019471572332340333939418485165265672732575804646108594054370697748804033443262216316441532294163240208987874017926842211236972756342063111692441848633256013681068688681043828299624537763115061638849993931623016492256712518662273554968671547892764221498713565974547190818491022503706655773862430709700898692353122975525702065919632233077310514707605578294064509215083970066834967730417510825599098983068522504342785555822672054749305117879086010278346871142679345252066221464561792360998907675797512560508680650177547782547791761689813648076020392619673655908730909980678955286385766718184060195311550299876084798675226792034397567711580377842360267904081755961723192318067546118492410305250825309980467300795948173071650472848641231292907797250563197454340207640894913785940884074584309564515217123193924153671736288731526113327907603670865634097904102675504743640885218396410807291970046986891563225916942461881828318565288761682923115220583921931597832067253786131386445507536684500094692612487161137773446921540463855964403076934852186378895454185039465908258716714479178384687162053109240469642288112244358444108615409200457314326562643976733833994635701754511649281672409295143717676218506225210303176180394897585030431830560271496008943554437738454743940115902277844547755050463200256094606376503207930779122545958680829180791684747867696257854648877238482040632348674423540640408583619540200253959377311839456271009220281084724084428364700074808918850580841940825104037797506998092874356484761035104058589977280218147548683730307529652029030706408033937756790539960105573382635181427673886985648396702324543941316428067726183800603880983689176615753231057352842576679098032908920134906895973242199534381035999381666750250674004126078663728717084463543949913174972813269860284248995603604995356030305163309701077879822091585393453772817635944982879715551534444185682855019435832473383973771480893281748944768643655807801520959328790283693100529522338948854657196951241169910645279583603239888748841471143738131598037205798917134386281931851482953629019700074514552856492763712450423580771822375019514469425215571724975874446816284896611797749030027951361365336274786778689536888132887663900433929704316341589645311454220963662042509020707848123615541813423900246806648403742514878708925803331591308394183844744440960046112020342651222750730422631931828557028954876286968890670147299878037463772935767838621749517856662381522824879491537422270640935590046588789866163247685419498641100749158916323443880669763940946218112066310908598484081471108086082071957927555134594878952915022052294567622353141134651263092012721961822170864302041335328453361383672096162259464907963715761412239203555038179335364847809171523655032951446393056721694483798798949454048208337844160264409045880069629044500636772664675735727675178792882431382749733120223445229007498714589504338285807965454689191738672070539784313676444742942026186474888961984527513786899315593046093004631018801710561045266387862093815919422155672259071323928979987930052269960935586535766959982151825508469835337553158910560808386642709888238076867905263015774513828221819125571167853984924679078571446710881833395467706485865057773074311010619106598873419462604631896141066760225525256718842119706782250460806569217203748475828051660108862069283626227784384707477140361222431048600008936618974057508717901458597749073054801752927361325780992423523636058416317108720326462047430003416448065114639182409990793610958148119244766260864395248848481729491503466538157488962275885194571471639567825490008260119951701171487287882667720952753965606589179611609390694466711865243889984185082983424914652157560087101400401985466023652929290135643372849297897239354471245763651717997937178297624335515898899698260243117518691262406429929830826430824043225074697065957255672865421590116677594948599314369261450767356771578493913066320566971667479517237109135581453982715447480037049933785727836917740179390508237810713983786482053945128975665618097576222156356391494431497782662859013409136283256667071856220157366321659107511049765234667511631358985261949154185691422836141129045242931976367814040481277125157593992158910904704003028040709275833079488839774381312843730776036573517441678940709120950188122205520010644390210022424148291959680009549269346852252424666977480400592273340686554491488506619002316203276756283285190849332807090296290652953799474378293873590085152686526217649581344976388837135588565554270752188201052999471645842862177405562917154925510967390791152070166816834340697122835442269681085846098525558615936696884461903186260496902537286909875528228312385718572786420350958393686412549098721108955901113624670819361240416496739486939544713700973617792127937580238924909050002221927622996713765281098353143230922715361184407335036494146142472831535084188306750028553218039948364332480780040204488293498291921258122767989698626283822404158495945920254856592495920141662829047991638131894246558675874340903246453626910014922865909479112469993382453610690620071519715349025527823684944838251197648612734949947185726301737664335453028634433645501108314001195445133410776966876435105321254418558544346524989067072240856104229549372222828106212695906504016372217008917527039685351839975577139154320213859056999807205430003133948118260578271665050426070356204354044518313549451795056327514280337951449085821714917344887670569562255369383894266950903028442316024616085314008484435636964440584311911224825309389068515431251997921876712230769679888807529833180430776385920598450618780751739801549880459226899179741513324227730913232531411681537958676559348063119007594127405961195212180007637022744568249176047764979241426941075541397827783473947399708641204759047943133113916909732731447475133991072209806877025065085217263028369319333738715264504136118273590300522248097105479798568873590619222185802921325602279198269437085821359598963247773024134161343553439821493541895602269839606544142120392392336317820661261679580949616208202339654167706628110674155855137036119470038811209841929602851033065391777829406663014565368149955655987716418714480671593799650777713197467667270248991721224832367716613608755275362915901495464622406601767660817722079617510563103149733279840053930669420532878593502310896827730962332897509229052504490536563122068987128714349093302246189162818404998749202085880227034912153118054840414325975738724439446675502015767720278981647702812583363207455859669697794126270515448142213406147609330171679982953783030395738180702202417109745266326276805247977584593880000901656390366022190943624697379072193126090515856089408199925959542138075265365823986038544633695596338651768827865711859258934970159029179500179336376320040965009319720703134793672441484058858759101084662476399295681831653750429813565400241316546215724713291277240928071338980485575176156932755431014914064283216415862071899102140456735366836061401871423189597954513735407555477052226925583051166920052790968337211152947513756187998780172353506263267184086312397678947519519626043310323715085229155270365152795937795755984821816581199534646530788760626789414239914694723339971321056836867025170650511024460978871053309173413706853945639034212953001407353205683339898747447501142613851926086220055821741026810159331304818504448613210059249904135611117243710091214993444208032513973918667062154066631566123234656476094015976396778571639864159697850623320781325928254131869939701780377835727345050731509124349498621272160200146290141356872318525049539580204066264350768821389106532519025774171299335814935951623991533675720786459252943647419980615773793322652826999555540081452141871822211213012987088753291307764644254043171805703413189079566018140362579703141496447846192706159630448058549137801531352974580945751588504896468324945058524824174470431250008875849036746574497251844304183561673375636771367970557421216505917488976522884496406555919032361014473873030056472388662172483894712005743548645352461085197990436090670125026581798809886763679233958370490215497852104575609999969571373449226298232364651861154961797149598739108332301871857905491811131768265475518299576347948209669181466457860529339335491257424167800970352729838049630814654890337365519382780230406475278930593960027638643805997441340284441394120785755656715049341523496062242933707576658598298055463698299371997441899308526776993754196147423956107840170907351229337195805963623908114032078202197513827039719250127505904448569838274785085108577772808217771592407916289089168176226257001734278658134165801391622194788986916160358748204445658549243756926552451538167051071207069883916864433881743604079699312925555794313477172475403272962122662358410848199066443949729309517932847030357340704912392592707256364857148299090852888204674427658435933282033926533587194507970030330524968951248224229034614472543630096948940157939616810637434513442584524447433697575799448282480945817204480900452299997013996774506654414836282205751679307986853121407406694123664813782319204040345181007435175890863231905577256695628768760972237623926712423840374019415035806235760151953536031002107941377492981467256369502020916358480815590393098029225007645227452434705169813320818549248997751101295993182239327830732781221840223762152015050465815935065415649583786239777383702166774765406664661170512191545793996518987168509695325519529607188810520045492791919848993037434847633258731883597777442332634044238561707555083202601506926309444146038660350407921810265771373506884464022439609569513007655657093979226427034103557137439281388436093282380989579491297147214383442179692781444425552708638354960216138613198608985787349137679895237913344524570029136849335290878751261751911023487255741562044200560284837748764846540386247747316868500569137807692585200010408977478000375741368028069003097726642735110020730756691325835881870709084274477803846487682083263198662348803101622254860569329709902106172157496592359097380571227621498101949921539503083782901060067121942422437864335727708096007339900827499195242317039725308027188728481422150483749259833814306619782789206593819310783893304497001260235225808185322861575527116258288980129067070099211411105699289741573857681422473387482735583979304286918243027328433135087479063346653185909273664534994923235732183951169997461161883114106926588383861779349502887320543682448714200832520402930336883009608850073502999266473577391678919749890917051575608867866610633505594610896702024789864066241587564864538820753666068854669520846773232374621114521804182288382571695466207510364578409160496124265224655306941323104935398094696082241058244654230355146295627284543547610874976759287971458623373533261376506512400557437908981727250851141300300645493234880826576463096765231005506655705959590693831440701765834052135508756440381657683476270168087973371979511928113950460169788717376471005318983801298049673088527241566989040112652775819210945381313354987353399437660430264266698818055049194067822535574615854660543581315604325970880857590685159777441274704192798191482496159951383348972746170121811475981285937366985744773267176800713540914521479358011391000658110935467039333694671077533705218472717075610334426532291577924221029075638572672331686760899545959156984430330937816417830992384731723323378328644575890936470865153370869297959530508924731304006399418336145270871288227744184170435903713029308842323677262220499868103731743636721814865754913404879145596240585439231291200291377300329140310674354146016597645640506969900854805432600701564994322178398299349684442390603297824051386862143028791559126063100742004547907373526509525072852694049704754388231298268839764918083333397064103024314295690112237417746520851252050741250001724689615524532000818679825746807428775964001991073785173009517051866350023090804525792189847881709580960501877332676890696805450583552095837415614514571232436583299941737332163907566868792749944886483861753930777296676575733145094494335574684812931685190699723449655792507839589199937591133878739008960596010141598771865121390348268435909437560313744289837937681117930965631720094139294540196911626522533992781131961734270207468850530014850686056333166771993537019228426021710582720257564852674161394658646115003486089618002731025049310895452179194132366484349136675715464645730583679742137630420910721094566303768203965729016393524678851910837157397669829783536275675820062325553118822019883550071816347288363608172157074601262274458538841856304435092002394853469448754628640448646430393355965467320278800626467782812290530523608048287168069712722078690490101486840558790676203821005526780960355857149159000499114015137620346806068706982789433063652589861778958568114743539763616178914311155123937120427711904431972610259666115371614608592930462160050413799920308960287592041218582776722805634053528125861947915887219863706701011457709247840047989555266521929499876965195427442530129894086872650035929817782915305109713906202196158480007145547233216169641855189526651911852351052899806953716455121763114720126834582005944585359691138168176587356663185439075564254014037244603633160050236950929829431384381720190733656444595828843318604138661966922179877151674692598514691103975032052647945401147652986185907911151256294963928910081767515179289512068962976783503115088623682374631800911537075735213445079112148495710408250204733085922104115940086201467506853258109860339384378266425089345854586005833427458315694714362898576848338258902304937193474116183761410723694142875140200799232416831309545891576390606076362280932768850952490763545663283880017477174288203697350084430932455766701560090758404577259729248606007121503682333838285480332641928242626007502784163981966403253262313102910688129535545920132579481475123193324370023941402204375769861838528733972253552664430076817685354594371670530623900316527469759479019303362537216893276637305615468141742889164992668140320581578408609602302688559540309879800604850833926786299745955654939267676363805410850721695307766494613053142548182306255449066281972517888345178167407626986352911773851774562251001092492764408229213758220462500253521363094119910400897297726987282035809287289509833745266531645629040490950924120279683402625069567452572039152729531294281269940134712403140282101642360586645291687634036418945338597717724013257731992639815139772866788695758780836983372890721387525776171570910082400768208298695121808423522197094125388760198513323081867290564831100340923573852537697014716846252688958448240085465773284755999521561432287036326344434462410823674326042906301096642874559837249919931570185841730668430252278564090532642426397409427121668769824369574127925713480869061088495488036515839248963761769587915027557297543288455064156251128545981561484228201933718974857002391083891317152990473124004353509769230611750364862415901194461037559804461979636165982292978831978449031271549854032305583202998469890565242301033741015628203705197627618254540730107107071204621299199760770540700498502583347578347764511766462055318877396600305939497680985246406636012893398967814719672340180678074854097798906546359190418713188246000507549852646695239088469651631397670850265432610854285194440951380087684378840352823482129793001925307775480580412755042272991445245761937983606400291321680069088561249683488833564454946377372278933897764380592028195179939786516913725889361432839476105542927720085477661867892077104592848490315208102334517237676854310853163140595754019974865404114462053739388703649561198806541819051301275448132752638572485979535863041863160449747779631878212720458636765394549308926844981256737919854738986300582141639396472757951256611484741587168339597855005835116764434177795724533870821888427663036056935693663087876905843806724552017349836440782510240197166139881509475709154600681341860445603482403291394671453211825079632831423306225276724952554505126743565958783816684837035137234520293815183319563555231791353697018993450816925400073255682667531787674220056489565082983771295107306534709535426735806592931741763379579868529073949664233597793460655515627968719774711451392863103357359614016584807149729340172450393668044077083692650528298228340648094440898957382062361231722162500079232731635000554006486119106305540542848301982292502917846981677862152900089095986965740320072532263602557960586354254136393800600065945382382129770514419498639006468066516567795503051169898396091854521185004276164178747550198142385389175463292122001552816002396114307587264959095422313084669629470505532870494348114296263723691448698771332769538781504900300656164016076320475659637215942927869998879754582584456878416567971453931497959549403955200345632239597966660991614880079902309318209801838045773686826430852557909101431822230071161587708199424410316272807729363920393449689690910095008104083096089988237382616453087733339544977841978025425754473479407378353669759869046038935005046446832469800959423627993188644160251911198788806159383102952907883306874911086984763571546589930776112060056929170083204797012874986810806788209106429651151802827433971669925705329154873539532382247173871042968041586525248812394929434001817937183052030116687623692514839192821169231689506872738305480599513883400741934523857866468336812726943045584751708375273332615422434683959459232963417951682496684237405030644376699652342197251475674983949242533074432167324059032531226538859883228526711396123337896100041812182218227243267680888884825550378198866821905773678291840814660522828078266650317376965699837956284807116382508139470234894884532078536294847385515552839035685199116427672472651339835430552395772960586009974190011887827608528274055605777661682561220371214140310571953895983607636283996115920476556489991679198099316171842307531422383193009660474634540542057132275714370750732128215905251107881247349581002665851741762760329420107184549499070476221144014710167754135295777440153831286914894239798153937044366165027747184043833434261191576151330326486456496938157508755322209370821149966517165666826019760357181483730461810408245447966692425588609489066158683952968456556779751732040048148247513851092702157518546211127873059994726141131221060498711373687331810740143886139246751104794378728561959840466037605536941612757907695832194518458210188072727443837210781289373134304332572482817102335883143397035830480626095737764277179121227260887284440632413865473157156522904796481068683811886111830033244457150869818026778906535552907712591985513277907150591206062154189922865198902300877513901937026309789746773012090308336778961298289292391001119772549871832544118831841787685018521217309757320592901803317469603871964405444287738182612140872307692904928255424294017962719075933818952838413745228314237414279050310238291128920384317601204346737290223010951508110978489371051836796299010753934739849911681220254156868146936182373473491187785612165204735615705143529014976527971468709375979756200537468689205946869570937081454099901613404800706412465953333040227143514135996513312740890249861258588327422616352943231875606437766851120698782783419320203148801303427318240333341890547093116786353044305866498614604890644743470376606803678151430458334100423724164983812501367971914075807120666386718282118204477130710321786476643438682667057955263623761911836556288072619326963772146621059039046268552698346387389029985040627621597471758566194681144116981823826063494804773106051135576580832823796773400936533928841135579881185700779436440089034965750612538248569554857026534866802076652737238954196569502796289413821223831151590567976268628172971115849412404874107991753436098737837877071854215167444488760664115359672074264301895088062668687241254026267265843433869144920433497341484175893734969768900320596040117605938342766498725871796751781478747076796369198262899828617684420575277553343695901490718841338635331493913237925193196368479515992715272871074981980631138347592839160462565957276687865782790698814911670312192424116179153114570904096783833492657487920032086268068792240472686172927479123437849546200437392968826010320375380955912430656518677949738846311176041943888221589503581861559518994705420225862694426078970665657317970792067653744742034374147090166632386586548677344401506154618774074607988516009278225440938973772813473782798290374447136538690964572549256740826592679443795253526129486366293080510256146493505852824263336754866866949412031756710007918528039859145760060116044278158919183114607360215568557510170569063543373523214467551509009097420109857043795702243867882971037037941725549511087855265863649092633173230411509200434373056251311645134088669530410505471544496338034596984853150663804587735692128643295088350152122974013863715680971816790216402469232778057249475924645040989600633736106860977780423898380020768139727615636775377923927404888496102411220380419518321654127291895555180492540144673918895650089099504630832242241052447138720154485203083029610482460351132207221759289444430679719372716304628635577373957522935862673836741642466221073671282097467183396360435347027084270601282632590688209830080338251814265647335767466000401779003609957531746347895711483748697711525361103446960055357633864662703305792449240997627109151752996527107974138432330922700120023161733859806050162837460926125437373501393563273654785069565595231988718674332449585846983886622540306377231155164872394982455946593210705896939113956775714879841082295831936684485499120945297318846200519617746079251729581002724138293073460879715275628704916144602550216921620609159628858570928819207695422276662613764804317243097883475333040255441237842927175927894546050038548605830400209455257493526002902140710941563609222747746123978774364861719495523919514614572959471041571777525055920702532818064430239684165126552902043700538681666404621718597831197132992695782501855063772430307908460065541555863417737987411839653032382027022469767992197763159709543838577049895735975904904650002261149447448572644035648973680490329339364575694028864093289436424680989011339037207051541816928612733164797375235680439747564080765457661314538123612716670001455193796547733542062078507253338500292214715366594878519638747422372710472854191941798711581572609395160993186163826424971998937641158183336896002218751578142968339066452664788667218605754184435902877424911007635286802720820302281187216646991297228403323456519293112566376574025047748735111809937941265091378313526533764574488753262556502466911051149584896545607931562659852825586861383135884988556558109622025607725105458423404079469204118362325318188174861682317200869953881042270515634289813265098852995002284986459279593713917422512870116933793907150026024610532336416088512965265112344638442962832665627360100859448434219096886301903416054890759583044453847352257817953320177997131785506861201954125817567915624144503865657524010115073808692850717532208084674386016242282966747264455959363712568629713192626104837359406359355678597895962521569131465279938831867326028970288563569794011869848322062378242158557706467151338185786994756156458737496467952943855478891285468473132833751061675816733403057883248989915235050645431847366965588202067755226407919566549316354656508387522565347649493951761430681364622732177352373274226343168441549016018073194024261716038423442556601182708768293012630124668661194765015766165183378696802289753642076611791017210310950386986198283909623611873187499343494771814621886301202752368913196616052642046720254685535393378026420618782140718768818603939149393705466885271124833892214129053177540737092934443643284398098200918362621511238012138109113202757000966256393242726938684732626189789450351518998975204341811393844077361000291693943325568127283229648564236756454343857815947638941358901315260221279539762865725667091693152459289182025962395133017872698351379918700762248551595989924779658661995420022397271769850494520577173043790105553048093804155317305118206803507977139176105896042003989744094850638558792559522742547014244292695487128646424004669390427100305588232640119121872152391857327565757837387979540024713317578784577519316838906193661387141856888075491169841328352089479211106586863857377995295470850329825037764423271860364210187354549923463655198073977221375850090855368102695534708782266169826576301752359161607283773979206859306343584559286044839136771365854512392174159228463312439074230806930516080028619596160962344672929561416871655053629555931431089744574174734567525577036684970419193913165180442129756931244286170461839794962186937966914371562156258352644182110006908685260548761053296548409251416544700453829930137363982953883587455824969456192737128395319579493220603307560943371613846428553965650823716394774659865491372757236928607009231678175758211333517351265738434844938940359888635464279735113695215890772364754451497350786627975235672022399128013925927751334292520978597602143668882342271855736656623211926787327109103854783633499729182130718285012364522387004731214342018064695291067802856069404038247326134223199025323148000111302775541486271668036668565177007494902505701505875020459781672520941907591221628845743663201469359537278680286293400111395500558998849267347995501026908609818597522341612370685387672004904972823526608021712833472163656007291264015918429705513987294285702489344029611914435751564146606455150544724294699229339621799561917769225920696612359107884062077314490907457414935105172790676499915142950012171302591225899301711302324972334343998076130008671311188335735462384291744090133081436449780226364970172826623312604379040167297823403718215317228057270340636658050767295646462264827393221908149764053646895017205871620589866922993371559965826394762616543365056240381468220665908338047523025854216945586981203386965574247182272912998582501940004838800300778836741167334366136982103804822004225751378065833996889818070902667557625363669133225732290524815253871947720911925424037199866642502688056187072508893209711050856538826039459017214798579384759118333622856905799917293275895458652826940985519136390861000703660433315957594510494949624361722553283089455261289121628973401019661784144490829245471839866955226807916106969890665380498221390337492446535161286050869266405794011085481915432344887535797639672389664739457867955982731475935053674633152999168914588927359700336525922486261742116634191276534638471330652837157608696625333600240759586263789751453278645481601330471017517814037797662573935726160254085632254944896187076529001291799664223457864633319397102928627280303542427898586136638954743526608550850574718558951416048597114505174098422956917033019444267180038652442745125862549993794349606664229673386281732392022413555625503853995913443243654050335536449896880619305377673964072783828663729285696674933374198465497332014817741653250557775142534527027735838510886064984601090414154414065268536112696889240703504251851473084257379242502039689963641118914065792597691893975339627728912886465811876735781152430984001246524620195106225773600363761652742286976529347472544683274930572404202672620301387671377385823521936398393417777776144971651138677992735642266388053837665405753189050521015338912664345631157249384181466484179087935180300586906736391456133107886065819191011986345982963259938983352015054093553385535350192023506827539107610704486094824260155157367349721964280171907911409652544075255235835672308112311353996211561587759262886100734709101992353147186969265881717648491535589020257132165350703858802772927154912589004624675409335803749686904884111269533329384362742199738831972278551252043177552062387193293414681970029582295311514547661688158230133195595737036682574696938818538184250408981463073600089215137454098047880401391669261993398124416561881331896618756708389162925505885041004034543064973772868819623551532462897089206639657117729200296097997962001234002416077038948314287915148950633362247150284973797931075202852294435797960065007183368951927659018032693037997374012855691443722059721635621747504605155280888450275195657260661353562526583102666041350396063111276118170688835276386012401678655928139741399758717734581863758153840034167771582166690386406533818882765198190411388766532767891481443659555885238106194525953766448605716210743265277482222667953226235784581086252116859653749596101079098848122065546605391075486243152990676586277706829826793404970083780951631523800597206282766582808109139911054882133026096067836380891102240380643531397564131701512130851644195047714323400404442905307974544761662106228347885198075893673251838558001992943678286484225023392208809060610256921733372709308084200453950981141208892858358685989997914592484470994840798894392246190060890124106166934002397933272252969807741460304354871309683603333036274136836941665481970052343316332324099797622913699794254583880910222228106801374984930638753896243717662675622839041135500951431933369788572054640078695105386298655563297035479796564484476974175990848994386774688195459151581332634961730699195211459735487220071387236241209447261060887403575567316534293029649540066433982367347977650030620634838464387380572972671968129064132000370507909922275663276063500031040779341789887387116396403858341268471123020007945124326149153943314478240170773006027351572001622090620958513223052310924560435229060431690278143731298915233505863083779850882090893338619496070328819119580358623585303487229107744749423013249158218722870951421219091525920258429883579354432589929812518009461252858831413343201055267301272278610377162973280127357344326291029170793135114936267684490864217898244165758667183604738806863883576339190976686759156662428950446376128421498356031838304881178222561935697555174350996838514097649574283595016096137487436885774794627186212292755590628592488545419959437918883880144083218414746788301252705534982657282054564889000570459752009681201131953800654626574595479602050771078964275365287137074588731006310656764909254827263723426773947510207817310149722282206312357948697944773681689204759319935441000238015350119881075192691546858306013890176590464233381490559861320975101393579175421182760464976751751200779707640280718531844109669081623095834683172470625383906133150091206812346844673231236196040775508319819085312122713172736054708399132010573744260312273248680363353564538874578283742672293092386488948818425929271459712017366973787524316681951643078539583158476720961827146517775378074333030808795751946948035777227094259271061203398367660285426363703735944024407760946999630848560305183381586250034623260487052157061824053615055515826039767015270966728005510877499578491718730516066400651967694321286013204964346707988034231684444589221525873460461263748603184290774923056348521922089238690017947956661778404780004519690200475901523623915068039775284012237110205422387103642350023496264218221459120469135502397010615403688109007666224837681377404088355800702058536034568681347406136014725938161070545785185012204039741672691648382928665179388617735851242830162059999347370256947730537515233076908166072569508387343262893570106678786818205145893632002715177063376387987559654164031812963490176393695131672063006858121886789826283689584058398513218105761706820566415234689641273297787616785770738106781806275054665753372471786054083510746680711945475409091016339142853746905307735678648008884909476529643848782312415678652510216320223498589677261551947942880379787503168807061597099440111726404639269027854242237668431654366009407487284225409632293148389329843306951221974690685795667560146986388586671503913285344609572036279916011041372909037351209424397069250832288130694451916191286972774137698534794949822180504725658179756616912362120596350641299970727762121827040000535870165609577501054630701201727256976542495939475473549560158280845581657092074363645136475757279741791233717298616418122470623903830324665754860324768942749148958707354332116508048396395128010137749854599938394058042397505751293757214737411230640861620915182395756870013435810447815998182440882172864892157750341343888068855113267380800201127475077493726430763054419740376648858089346628633084918929843613557826205518304595104519934770241371163595605676496747819640025280059009937205998951054107422077694684039250043889672239019684500478358366538421001055019947578598850784750922077957898467389572487727860258181357299039064904297649742088390559774978495628562997039399721887797483464393509564154137495960821863467920652301004588882842598483371878496594789229629338750317829949795257841109805086290078391324731323106568410271808960813251419050957970796150310043352999443639398508016691897325917993165448526856725450949115279519952468463560410209976976048798634100236140392137882858864406962228999011821609121151167334154841271236082208690315385466476552909378570976050581396853207427615980307848956589987850489008030002968279786499724302042214273629657312009472851121459044210657335065858483253315239922752434445268973201740673492837588370762588172314872953370432772766738557595366378907063472290694642172724161689811545077272301172121454895728823132375597722208199976675872492456074582198245131697028814651204637269146605821363803093747565710546744486438289600356763602652481121948055448879480410682411040492604151683776935927683962299658134954624602189548982591231448493096444558997759804506687925960589150976540617287405514569657535625392383650072301501054258436480102174821532490131056081811901885586925186733636786801646726484150638119000806876011965273505961154923673292074842840971633966890597216362965609122370759976600930001932396903315957679714287993205720137891326939056022848708221145366288271081791581853645592154952499292265694548021051230518872268264907996560666666222006493650851238327960969826503217079346927243606870039800167193347924519546193903820347205356413788826196751685543398350503787488650952806726521109004670969886771808662995449306609381622195717419993502107747628304170786428494255717073489383540906372433749277441802576607157922056149039973164243588787944681936107227579094652819402558956769762225646880807360595903011463863939549841336395364415664036175890677821743297377756949212951317061195654814818016851263908983599710359287798881601345231120822986935112007229138820451756574622747968844813513711006070330729348335254528242150118253318265606353724857281271413160105396227197112626891591127624905573382348871996812204869736499662098639706570976315264146321746317892882065266373723814973330435208844634346608802521934585291911461633616258363262588802714879489885104328469219573920713399818781064608629554554804795190396029823428856528776077340771574151241252946783398085950967455237740264179864991744136444763349359648928181872453800929857136363665526951715649567832184309263149390018635929635021896775054888947162538549012397354883247120667723684239844313355642323752647832371904965087562286302787334235009737110485731444164205150061034278790490081162912982421373617053518646530134116659080788312116138899862133094277475411106732617720323878933498268904504540969741429132386279133605460418551513095225870432062555652145324478790319944162083712666957618313871887170101489963212037943759915671354151603579961348180506529311590579260823717859356054402926558358507165940065557249631331080243197995188614402776327089225394123792235254589780899747599883138756676103796455795705290777851356372705348819452180305452874445999785477440826294328354848399151190952104251174956282366563128637786563867331703455372807084478551300342663643984923231009579930994496078941281331524548666072667915874286995805256914982421891558285192154772648559590347488322649456560489496423311700425981189371212572874891628907469365217030796429702032495357910152310042401333730906397833261985185984694975482998673882448907839977296204834556138708074354332498200959544567366135119537114756214424484028826663573764285129692686364648960529898982826154237642870002152249627080044716909944583167587938926699683563241482516894928798838165608333048268672480185520965581872577080533999880427432799403004284633416167115599133080533015337145916667100795333817990712409636229616386631693569538227282672797288785368232499618154968551186239064450734643213651853370258573768263017827005721383737333851265147055163623517328090228036698522583171479075963975624829103065082248148634920169229547435689886704121786082034438450040872681686680265348793353747759784878668933885716291850454307793709945071635312881116702222399305476089577631447645981083672608634401206926934383484352913889590092495746958476392147002562279318444207520471724577475547625265194226823672023846349785531633248250278405520096823903783522469613584674472608008639300702304432006235640069390663550022330538267369333828869752605020697115653492224831824174261244809640525777832628259599265332673066646548952841830458430527435490495483810985004426475176112898282187219909635935772378544769660544626242598208983337285614862200495008337518912704812871395369017935664025912245082637442936662628931797844524755101470574792452353318796128817957052226366366932126071902024809592206435646332412343411235743400854860372035206876368815968427617565728234198322308974588729823863586274394354991916100488723014179223679287809007109445179733388290372045319118223057076667845074244190423247265419084008676434389103401313909950443217136097000101624335717192095692443493457584815473072459817373006350845458854627942263520030446517815016878465161539769994238431628160473663273921130156170509955728867232880768967454669397777464726196037320225115502950346748511418963603653287777166190041767267195623766208284548907972024446162842910437024813280105593825882779469850318809980004069900464625916477741880460748304360836368540133513658659533726346002841007836242034782131311207046161731906133197605336391608179513220367717672338561113926603255790604293428509957974241317517398166399171975419973226443193171401674680501761362452781625520165856327822457530390347308190534836564498352228467584435197703704311035203184197956639009642864667879401841401541310926131595174038252000882280086528796345127391088596923224538297140027220210075412192459069864709962812836432139310585115688381182744300334008339864315257423455672145769035031579170284960899383130149276146636578808302585752063394449308603322853020536906287873192288515856229272847743918747363563777419943040449431112840393903571177834319816381499404650392097425011654976198195718753982930229903109989701902241033403574620370621673496342547782219604541262156832375389838073209873380829075541863089961079378053582660617674989472251395266014253502434275463688220238835755398203313244839371373404731618120979046236609667680260916824222717792777505436976735649021690742894749527833801979620177570732854020263606650594166906350269459360523562041962421743888744124375113677733296992935225270271026983717653794477479189262760971450532270345283834938118818826398433475379996484094099856402590462203524310544410155952062211293255452889648505919782559988758370857795290454694061993643119177177579569593794195374344600645648732310889497845257799678691558304479827111738778833021395747125236572915000161702268792954712642876375589360962533963186292456415028045153499068252605009659424950845395666294044882741997311366775447506484240862050096877868856871508928127147085010699875238515090568527510014955775060121624794544485292038661292745043165934195296148552935704252829875519247636291843433985799869780352679216224322293620349292058603307967739131342052640870766187271407828062541581023022112865389646636777405292975892460259318816796392463473466891141564074846214559636828507158246770596831635662509512554934348436994286818312494838609230467761919196768638170891418450314364596988093981925600083583020894109149113588057639297595533853426765639680059792046904090093446175939265107231781122907808640063880031265031514648484896258661038954056884950326789765154951525701161303423667895657931370831625257130592037656547411152825831799267638302940241135927982785113970856981911944838556973275401787790039412487569467140402937925442970982307410075776761216215724283690983466389082053045963621808015213538542094704665938588982147875758328618140821282271498780116707479734275179388132056182563672513746276652986451095153712741765330299354777232910762593945107545493993729538355096820827573444551721879001119209692501322334913796699669739122377767964040772457886051511377920769425820987703756991166861874765128679892975620930052173780017922298464151938873376812602503788742329766092570221062939899319204367999946894301988278239116745630150924556307395237315711947743055419877385326656819469439281730142986586445433327862944788293436905434203902413650964232056882922247842291712187255193680243151416516359626918801132052964302292332019070203705320452501346959468044234940745432240330438557714763038131579680810446197097135444794114617478231627210661707527312599127193183637980303265921421840557724120879553603875139901776970180104881405985881268104346362099119007416401736782509059268017010903107067649565343224756908764915647179997184558334118455843483198428680574076193728000558634554543507380860036211522251309983858246164282175494593013236730902412627954499070420107833283497180105733968058830983692660076893307310768149785322662510040183349995013128409956021340209366577703704619491090093211576939457489101978618589639492570781491314642264792950389244710774462173273366970812130259431381887010143635403717435372381912673544537351529200657176835278241422820238590898856106374725630127876826459731636970569293960867059366425227761742610223874055074664766705039974902433465916852553358016169642141630377710175527800021892395634340509095535762508463092932206110572157196603397879522699624772671647305488533493233673713692936483375664000620776574063526297393197062546013988278351382909264157913097455239902678734569372534080589477536468824650163882147676183948522877059479175646795708854068770453945256945951397938046082057175486123933072396520344079918238272428121125604983656621659123793405005879269754383641458900073738495873780458038514894866321363924484682949579822896658945916397727058993175127460427630087704106953168473721283517393658913735755395835223908989684593720965244906151632099558057011387015669688883988956443306414843925661682149056862998465043866086784368671264213800321483763716101321341390999890866757223367103967885612811157898947527190178905881134176358420799219180855738462607834771332804748358399313761680138553876318140209868873194210132516651961002490256277329075146885684467224375898224119371449830588901194169167473289823205401735988620614400503424102628706952570188428790873282410582193090188078234048132176321890063668985797507261153301982207566814382695476432409237126913377305575065407108064127217250894768982701480697773709400872869585324742786345359956968749626761335246486931746438687652634940296591741799596085365496302698382185350281242465510047291591960641764751690681203212669221718552946371796474382318101772498560730028045379195779333271905427360689587873617319378795774964731964071486000140376813439864928968737132958831863369325371501807108981188544544217518118256887029258768747679164396920207621655437420486210340002154656087590502009401045600121878189152099556367564237282660914622266881038947076442295781077026437249977350824703876803557500200097732205123820558786769690437288330686239617627696968713501303028213656074301775430322018003900676289176839327838282588932270495591983425728124258145326452535526630122238576011624244732673688209714546348877338014781298298471092547328181950629963914713170720435381025379044666960658362180675398560242503565184536453227144923084905988698186361772398728587312128798417641531481752105488575859323988093901671446593306090361563785940286249405250083200214462314991731308155793564416214639051591309948030431998869301631764849917894578774663434601376458570353415587475619074691955301193695345980789654054475580529406778472109735592131045942495570941521002184665113688028971514172876290362461963049016312007676792449940356978993470138578722834180018474250173846720579808840576111293017702154354906697864386811725182331834134835076149845247150673214416055658770421898152952740710580448437730593524841120670383705647366223353384525083430921429388658315039386346055131300157193524830058710923312211457198662009227840513965174711878818533489770916760214725743626621207718119355642225349615221111916167510748219796980008237070275733605580209944246804006401839285730990967407674499867693653511535705642846500104344877589051367638830324903547463904037088914769570866573354775377120591968204084460383355957640649682102235670669451861164459179134219987561268841896156149664956184482275512501770871206629072193605357831585005305456789225594607764955326974121345609886927908912772765550808452256108529918685271642387774047305528003578881536637037699815328675364425889174225443714195689923915079087040368747861368752074971636810868864779487874816861134272719097033792190702623998682521140062586167739195948826989950750738209425710944417123177618145768957064632843455735946291738771623929937511687957797843115606301882909856317641197703987148604303555010076358096575439510830775819076830476892704430466367535480629877117046870785380717791542989192063103305736991793747782259903048889339668856261875448281522736088735757104845231797457155766556843481371540715194893843922777393971599155843815733185337927491448053046910728608259380478077038246830399345846844717449315431646037801869994090487683663497971180120925972592313215989348257011546666074760994489969097166362305050369800720355663063842726441670302463507207140741529036058196494791258340617445244601111422284863333893688673543716105586079038453532591288207478075025794192487191569330737190465339370942349570649337205379097992202924691983076421688148391401375444872083742484359041676736975221108964218945760234089461017920476438927259459775590268849054876524562025254330703421520767072396182071594051461537948382925335087265068189592538532215440949835040735713946043569517053808432324004214036401499285847747268067259553805830034427536856443721097374063361167259795879844539416797454057896988484551267363539859959272581124719742731295525883083758869217696066972257693827736731184025526338576852889186084348489183084340087790735325033901422631371694852014414618525280410885850945668835849961189541433260977616934102428597644111309823599399694373772303560039149178494288196107778508688036648894446339443156935216930799275424220630858699661950677446615858200436721214188517926134831258614980456958905989713643545259350559425592843415089469091823272109148740649210151905958035214472632393847863913535252414939121927282847691520081281976462131570528785638645455967115849506023823240403335066304705493387488976720434957921638488658327030990769498706823964085981358334920428123519590750293586862847830947424414887839308231213217529334317690160764355510381697115835805100683919241348614191754514627228290059790677171516254793010542991261908624955140486268005601332457057685245638286830305057418343069459116884024709545364896007015146637405811467524971356774545593227854049453658457860028531104880353965102716329106630526112722281860258761620844346555296505122513181368844292673611272498738808650140863939767057623514550891921520393767367764532515363644549855900792459107431333458846740100110216184876914075720436552931379972188262451399956067253729687057176663327074777721246442222448525223106045966909453665797288696898007166368640674127121437365092047107917893443213539353422911533237894318833874468353557075775415060793053350348384310942508628431041824018148493978710915234567597673469604573949866351110029132689107604614468443815953437150772626351831176247934644930756155034879699337848019331591984285388870438358328568167281398744560967454423700318885888565093943878355123113924144207691852963934457545978465382740367724421724257733269612285747508812341497199812981364688889903939271001810951454586806518936047787647794906407742502305432605290169842412686593937783119148116846205745165102200827886477760189721255084495526888616269296315533592830996026967648838084855376348412960305196523849362087749267497498063027644185499201910786576256829951719101014479030870536471568946725787161938287667673365691284262710244539616176210989243494264881342742335926489855083250666686142499793337977421780171668512612912115936300064590971607841040379459222334438458997878697149848837984278197356123539366417895688819215251385562456458755958272727456630099023757264284869988821677162990982129965985551491124030398020959982449801976455991191638203245664747299160378184496743231439888195574742969077453413657415431010591582906134469729620559007868207700215924113041629410382279928938224575712126372060282894707134106560601259474870341047745907926989849167229022644849717867250844421509114896061118166917484794182620103993570429388600999063157113929779259879366394141947234623178345257872879217428340823013209488813094691416231216594814937055791955737095241201515630102869716004182674793255079706747475826829330186087328361744183187967774935702370816137660852591173195049589511372950593237854785286429681880583326475748339070176527871832584737638093188728451156013780897799753731480917650167039605276073577073381832284643742615616731077919608043830235615848180146584076195656673467549177204950986187558833448305899944503426885586213408798706523304938939016615151287235874520411452971654974947664193563949484926223832601754637513323728611222709434517177556699450577686147049830385546533539320737871427932153714746131772668589729254027545423189802113958913013508232848599998408585422783375813454814979702477170180065136194841065380574809199594363625796277548708603367297525425456938751216538382397337591802103826381261711732460779855516493017698838007198635692762051557413228849098725953085711564329718334820196694062794603486401672568098192224727018898488616602156361120590345134142256042510542820647433625247725476149959547536713281084160844867588804533939570200042262950313517602237080740101237496678645911484674260902908272932939367056027282490347123075926642066161100147602757797135668936533425129686200942692931878178443818112541620657447601889242977785829323304695471462677247939447352295917732541711202478698176580084171323431869539753624619779267136112164876287833304244265796180762264745022585691541860760114975526530987987286406705552028313830312896921378166595921936524137895974745277876423044927295585464354824239634775890954791104529339043953593656046819728918904822797692892906610823057967729375571428522577851356262502481169883841655070355251602407002441684209416634838149475297301281596101673140468017814951974461150916820739529078087453116762853241443634630861567986878517970685443208635468837444848285652049087025203265171376828234447350454530766759746842147672223965231630233332704010587367876758100004533025845748805867269507866057176961129056670512913488757727990112781410551026963634584801096440153417537565181397439063927190531245159727900975330084625014548109741798146727346589309930655047621156697498360083960959905532781896731722395869441908120603955563062188568883689499983848736887971292374241305896056097808903880517237773394155131629177752001276859085202769531134410949167655507937498702163130928900216595832073719766916176595223608632985146209352401214127302823920110831246025091182810375791386230634508465996129910605829308153030127611681359975042552736678710968575632498182893260774911747687888594808694770328502495153270235908761499279698412081637149268301747615986506264005246090518333538652815851611647204474083799452861399723405465485433620267302187870722718311238562078982582507293783979958688052121906585576952060742946265884671665402111260504650070594734135526385364445988702365795400374505741194905035333071964961196829098697551478988180851730316520353391301513178704656302626371934882186964934252337707447396094355986677452704302901657841308751087030100629559818278075374953638791405365606307276120086318926388149899829785914024519984192742324667785290138119297596859188565935114167429563430451653730740043532002448177471297157152254745924196667024409003755714825490005396323173676004415846359495053621520801007077937461209147057545884171359049800990599005152859511403726749054490732444212191233290500755264269496962909352575832043905886251994816347603188728081285475449438499301150614947327193467962710766413655404131700854986042382465047394788019056089744800465457021922437095973950021474719567242490415989217116982676189075956207992418214248911436690649978261972836297796751152744220831442547461480828213176569190638546973179701899986091299845591111391659397103418966141134665319988646863800366892765587451632753990864313471887614584648333885722078638352066478261161926851260944214614488612463429701667166060540804358173041138625972583765796994967740898875643565914261912955444780529626793987862574609379003292547260823574960251432539871281461993556352280048902361663444353058010194602880997761653569357057424324020272700682728623948048242891235650354787340415221846003713686437609773832089436695779850542734162245676679834266276921566403672704937337168886553039782417410419441564494098769473490807033211555369520732432869436291730649345430148152905892319946699224260702362682042515486693108144572924573255631647967731390490769775866452902659037672089338202183908522407522552648601134767732303665070828798561652152385975411980629930620322365166923312328334281561566401285642225494572397242760035959823127696435120810753566626394309216382810366231017100100622306613096015206434733751952143730083720125619193403791938855594597807947564556984837057775817787669564674607620373276881797524234131816018273025075242825841342759776601294569932565213406161950786681198558092632729705493908457262027745535769322222715636058032372343503096505195978412581951771440132003615584956073839774243429165007048068608665091651111801973816634260905328584004792487504894503532446543604418405522626731253568635875935296512924845151494731228973046014006783862298265154104334843750496757491232879779252200025923957181580806154423360958114209304052507433225175000266704898136538611430101722254625540627917169513337461009912793323079660711961638065535808227408919344553427920703246424584784341614472089651119271672628526863650701247489663045324855567910500694546389579389918671532158350845887304965374571880230626339911519859834904371507860284614199813315761143489884591212365962649219140182752404971855377769353068642325417241284561188261001834483734634154093124555391583516562050487417692835916714681505081385158389928899572615032743914714226380037833101517472279788848982847900125815380045652099614400344018192889730948235207660060087136661923879198099521367155912184607924041988344820971210227762398934832777292474470496812256981027317115345292555696202716963761943808104023725096040791714749382546264927203119083431915146680385341814140938272227089708626397715221319112327738575739059886677804382391013264624847688783856332874102242722425365850671651438219630253306920353860100357107431997925625471506702079867503397175282603122312393813976013286976134016725829833220767170173972599993979571727470854839469679175829533407367656454404178761101473042183300767059081274256636202064290794821585443291623239400489177394279583120951015012295468059284726059446596716332411354709608099133071727399029174193976388858706736361287145021492371095204665439453839593869578553386041162467220339421887321324320705319580824388146138384312178283669980208001372844392282698088375059233664358390406285134453146997343283819539740682539183135853759311112903276594996136975919400478473450238481088945310182985255507829830397419653802100157438286858298527023127841082810852875948751023406814088142606218608851262968448737766553278561959445119985177029765604031207417472293054374539475257217243004895084267640378060317990765982877377336097139656427616285306067323787301647346906345617914282580612874732720069964650589554911798598315861950746302741019840649237617096939493253507998847147786041404400035596602925861904063630913561043682689903024634436742291634271203263467685492970081684068856771853589098599368346573396683377553505814883777107989264594156767156312750024672686499942331506177014845178402863341195791481698453565431670435963585964946015867720961417887991523713637905411605021475843363322462763699146009697366896962296568878439039303460299400854707724187573525305102172753315482943958183945292200526801241090279809522862178010889909063334417400519797724943590185740794771579918091022941886061401485928280816904480287244367592546209628213027544424027069884881457903423096467257872754880819609742005217311223484260137099564186658416177305682274443947094010880730792914109042144075040137256698764052834281415284930896598423223448411056927038489536898973220705500595115642112282250327595126831107535800320719288147161118603646854062708268387675597679017938176603421413703399315872056519594596608711924522517558668851968485985001559803899653519550535816285706977415187869766029318431191419063405589331225841294094157350295479546925552227434684579724362180091015104121237468817558148927964159063287554947737008878406213947166729895824705677720905240609873612006142797851590142373189274236266175580847622208867799742051123951694080041865123600525267239948190305637975203922422478690080300033496691566361225336888935956429401250423913653019390373932154235990712961627861375722268927810947792216026051105909064895893709753389793400435807307366346022701851389623062926448750594371070488423290644797883644003723573533218448809823945253917187871123722907878171157781928051890139090584619371243244360349031535703395204211908891202047968391701550305002301226238759982301404602073929856017665181577834082105736622542770952007337399777603928644306537341782942750847282273769857660229529148695830236401644531405330163856894020892606167165836438531370083570646943847441040066142093809946967676371883323706753913065884802361231644384276145620833966261981358938790846276538722434032586552591694976552194945635028273991043971533602154426752262655343354440323969413142579089761969189059326315140194104203738573969055898904503314927825140638891485566320198631544976888211620102649972633545406363120698012941872019945245743802735967105501157719083078703609524786359840773923689538161925621000281506001177212400803939110542919177368207005820446916893975838053761551229505562025054415453982689804662211309064013980609224721659856007411412868152811564856324616548718596212611484751449086066051603661979397545415577597172776703178345950317181302016988951737452738908266083863483751247853667841918109072672330939152108724928141333674446423645616626328974982483615690916459154094770137590309662566456061258219745809284884452555956174073609294867218284714988496463346710466217054917987789218554227960518590846684211758624880770247459989854304033018580734812246051194467578256744916055760986016669510906041738330023148162060278723406017242227969422624052211151047557083175434421641136017282219024493747880787252028010023900729837876835971817411212851558644502053383769062446503418009146924330745112683858225943919195523544566285479248384092091863243206645008277238631699011348229757024702243894685860414700976981966875289562900993118907899057266157429879419558885315723049730827481755853569923742452018382793717265639649842098718528025699839794021740984782962877985853565869665236498521000334733738764821028998281849136479894265538167006487897172403207870130155585043873778177882469196418070850313878926874391270079417725852059440155549850041199297435536771681166168886766945757084976488364229522263537579634373609890750849402923262314103633253512413853404188949043755599800746208393819145704704031408634857289892174887192557497988418321846126555040071058531162354586074481404726468854083204844290616649006579716564067270005048577313574771020699869580416747820639549885731560693037621953091081143932939275558560820632355070992760305550394668150986365980095750838381133791192245606918520336556343170235473541623664712880797967830027579181594534102170325339227804247409657417634959958880423700800362498544898178108966681798763561895835378289678505024498455116345748835450945530174413300261626217322405222093369366464982671878577771763337674125148452726754904140446864914298749365147217790865654993119448111796903176293058588272187664984408058197077504365351315135274814867656715619983614835402301578855064029586342254367907909898861968451625941011623065219029220766825554144819123773196201092982161953318311208655882583146161668801728779917955944818895706731723804777675785001650441739443612216651574158772239334871457028646508227942844712951328244434452970526840975336231801438834522926734918079828872391188608009724926112591066573407318430069436472378243058902541345385590703969966368419192721257426624669829025668408770077620437311462761383567520632714780493319517251922610770266470090824615279732761035376279258703670751737794207496192505178753201045351218004489192236926709034925350481191295760252022885481318191277060720602342730646471594833325157062545522235501540277717855148037826042381235345161287997690991455318524526989157801444025775017602889134240955946147852476814303538451586464296041970920976892685507695015491990333876796413599854329532795516021769932702764314476414394164251944655951036998358516736991441278683700023517553215429991710149414349983114529738583693084648788246188076606418725489868187334671947236478136155285762186994798009670820489443859509389085408002582073620980589152740022682723053558202816724679324191590964345197226505212720863337638471318912924359534101949000071057554809517203078505822504407015990704985628079093910054647051390647837330163839804190726535214122853097387231096031043701979762974104468480159598975253491541596529594426550229135654478898770754455344964081304997814108331692586700613345517569953421302018032601244348504623196855919894115761627677443326767163293952648045461236136442635795152901609869744428561029842963529892428278688137004406820102935666004969697566308414802999732417903601518178577331509807299760729936604601495085048386407923379254306149126601197055618801683442392953475476301793888963422650653691780822282438667424351002691932552526358160059299369480191840015838625028868202117258935633322239655697604827971142666472249582780403958862290891810567535332520665205248696235325854303954722295088178318549621835385572668017063653248111057033246925988344013426682852082977723749798966192400390070651712724325343980679613512373354228017291546083203591196420603259204361844080730938408039824862868874242913200071051476131153764413145635785152272521480792835170861789381898036242751745091437431666265067217687315276534350178976856739104304982091798234498518500418273993729082340848487065967365306384959737485886574167653923286920181512219151767260211928830309047424916606062338772433855861849368817889027100751269111535147237950615539069292756632806323876812578801639675976316349063013720125597643605271281472392905245808347544400442486603212286549403951662360604330561479162480679160567184876145637798742282750338861127370132732288691939888535268426018748869840218774904045089937555212097473048537458063301386559589648286159751115521240718396261749730572734045535055332573957841632687835106415231275476434689751757329515667160848103435306048687133008986206130783608601582452622805388487793481271535146581000129170683899260872483794663398025631285136097665796522735369373373602543379220315858901978732220202402446397780347421347805114541926136652461191803559629870546179567648914493056529969864438781322756643545260898748093726628150223514815860910803370218086517817941788036767522504650205327532438065522763504256153567192543190764144286522030187557147693695813287915873404177650396518453297745540205273562245735903165642201336185237053352429499673581684157397509780510538192902248720680205321138470145245908097453027109239313477520541124117899810304279167381961713226899751603051869691585801357121161041431542428197745117601621220468804545975322843125658456786377499816685034132135260967469239723281563159046485336549455559448233598963738971386133877659716286788251795440328461398812426264964699982805518452267236809982902324487788513149601993803442666874932312732587575330446712262950342176927516376754345351012018221425535562593814283476457051516724718517526265479625990495539426391358002086548095074976394723415635449321249670780989585038569584788288330432490655415214413869695758457083411867419497070659291973544464509086268233581482638741024363028017496621934585029817950868358389347935998911824073856045103001643956570778221651508973191399391255386423764382761917933178502670029625261249663104007788847018430332658266301754086848173523968042737449156208429677180346731200032650267065935750230842156794168020751314205006575968211466963367540850999540959979096985995904254797679548799893648768778501462003237915455508551063503382968050848942846247536163324866920417152256103879230508246528026252905497464420938966096557006591574367765463033137012350622899459912523155001580191305810832523561662598845947705259718560734294773023657189775979683527356501515433140455297035210167642000014371430369835384238174251080724000551199002256764439712502403540278342784396529091331230849220321571891507977751810620337233381289654113789339793251688944972280884379723725502276761789519978829053800293913691552436662491934955900582622795696598227838405369483766918662905859062179064362032721228727572016331033633508463982283864976256717468905604163489741037153225483319891368889756170403422856476410521500487805308606260027773068373575065933893143710734477746823395671864969209387857119857172513734528322927630164163100009048546245151160440215637384877418121359293719795323674128453041697909673966312472370813232862757134066770961345498646722977955783097131973354597650680666855817039339383259643971027578919663392430144885529966574563624673804963306423381997030011853841175506005517458326022401420341196776770937963932837797027751029869773052039758266823649701248584636972493072989287797260868631525101952387430963881357914022083405162011781398836149977679798136598642964278480263524836543388515912046993113257906671342086907632197970594062064776628927924508234307926844904620322598184011064992395854905571027901953163868304281612772735108167579775494897112224909349128346385217459959104883173369354005807397810803374123417061685891246477141501340616366130039249320181164089483814987939733697529707503235741596019304325954682332050179468638791691936199990300378965122844856522536021173270394077307626995878045764894117910276775054233265951678329870106753300848400045414546136949648834422900631424093069991776040233290593735191294909481425528162926623604749382924190050921697064172053974550094337576177354628893171075074983052811386210743864126455993886690367133159072104039497321378919697247453454895650561509340683131378852095209930467728184043403624205291436030173963546366817062548817467347625671924466007906143749683628501158684650732221210445046741140576562922855268484127582813537809804123675164419413013289551040703325318769117846258805537627554485213747310440219669098508688789254612474718427491939572104037810920804134186641070028061139686605880570942853152875394119460976797266460725941365503421972746104571257995961967559955321690307042119208256611178803409286357165958609878561419432936546124929164983630211471630684324624973011284021400302828282859639422260567909236604379039914457112117684823438464929502305617347560353158201831404350088924041519474014112384140909827929588996686594711289221555202370960592454739799261444370955192341082844687771599897252164054304802331569753785111222100742639205462005164272131841667794027168271017322260015189423465959946944863845787027983614711839095359443294486967060000072088209376995878368074218356521608920544521547003874305498034588359134716847530003635675654220522714592476086932425484946139278838144525208865318928445589231591919236800696516150219514323949827292546763379087465169380112919629091786039332054945549358010001043185750564216414032747382770355051531750020457659791051735939417413125779860149770975203743019659095851346355680912981203079067375000378891349766285452022770122032694834060407671230659678531951215468612115049354851690420532238439398366294322378926640467396871142094495311912277432146930530713173874569634285537565355625908326122381081324506826340003218832882244518779394611435592217508188316688336890123071854004259061742591582997932388897469771339237135743413469973260602609823566318112581630249732077958904864191646267873120211312757371612662832721289033796704782734013699236608008405416914078521888046537233616664879361023469591566813562466025554661089691679681425635182699436496097889982632017753091504275813363502980619998085484114353770942055848079701109552913418122048398562445907340434569369919352193352207987835909994720892003645747139232319347231149734796697891604451512619955420915088592708242295726127975048303012061826256491718783898997122423459013314164031740960474135520347353609629125043177768046051901886885331516137574490319256357972919596006744415152590237630525041423883381226343954524827798129264180978470962942697172207075062615505635121453124023378641287117798105563212215697225969225589908145947657214633600108334450431195609552402697332699145072079138626744465233629540310654420684069338487845234550118215858396235874118625763444036658727758497728100349420875123195219644512291003069898089142583639309208840144896970788825118038424917291889313510811779077399172200914677071318173153939902020874930704763161316999678572378591018721054509203175340736076702933420258918952833924590922399280747043844612761970874028223349193530512019352426660310488644832399879409000824470849695878481605239696095842566398698343147761775571843898674349596304572601646390466490272968081483022101342319911744184025671362791595151951904837117749149036600076040072284493339428588524947325074319735874755177218068597173995165225654824470532582236338401162764641333187322470744910358066335995855965708830193243891842835629207660875031569446556733974062013767137335576744368789434649714578391280017563046476061102232705877972631126046423671192684617727615914240058824150051832977035611495678916599306168513008146750855175919568943672439549005916422213355069513595326224966592544328307398536946327141832455251036258170346071555007486216923912355533154336611648949692754605785991448722963636898127627414732989716229297690183742813228586693444264407749150558180947620590056681508089381608843462166678145722745747674172377332471077971770674254704223145761795999262179058444230917204863681751637827201288771174772874017531203490518485172048413673015335563686232496377476579372933751252900813035619730079425688396472891416169283425076221224226484359590924699635922602820241832671183331356436915367358569462948702190044304917872288002758564711850040713041575734942353173480742295728022771706171286397989432793831626449682009751355783897602781523291663076914051172399819664270853794574207612436035899797219953881232168083685382363977777965516646700420608809783323278015997077298045810544208365866223942848614213237826109333925503566619365005044685060141768815774086997078355164803030620301298170657984458989619236807898790052535383190274698296379487593590622805747088972639489192521910570797868633052280555857863580078016933575180687252268437225808796686867871522565733713605251271992128393966206997025527379413336599328184310701985098661183401330003346075406125413815822228077071385866864542931854692417103098355292749328012461166280387314552831642937584688311287852221340219536508328431985833324121450222548374174244670320694891651273521000327117269322031310212923445096232296055227792320026218790311588045073816778385169200296750339679176632559698647271498996390223881774400505890002595645152015048968738064297120120292678292212838825180604871562437706453958248294896967403481082685332437163240108583839830001888262095196152796610725909727323703430698847714996561904013037393635741950174545275753522107131273665143206338969673709162104970690338991427189190192500135830387831867623111322689740589776895450611223574824803443702717528354174953902683778979297941939541226948340925628676208074169452129861181518995827393547423713758110363550448610321522824912698577668469900529528383880004208746039659138340556153183948808367236686557901896614799740149386937637972372689014625989388516868045522384529865151429166939851514259990676766899794936975034014043062856043301637689408383781694896447059413754324011083260221961291237055806526190969849402501150215220297965550118908694885921182898744943263546467753996709887220906866866052702317247463291175955368608387574824409107231785210894960772215967623826999443074836533969577749506458342422822978281513116195919957448675978513223239607951908408337159708046823892441763666110724042153732431428170720175443812862618870657173113167612721476051028492776293462535563344694583021573960272715826465398300020822737795492536138264656784126060236450601146239892890790101970651078155998394601782954032104832932002656010264022343205950276261843233323081198892870207859101455740579943321849905275462854942392934089939743789134157490892447456640339466501072206956302247363165855829421443899232438553542100314063426755910226420459149984286696195758036026378902636635485833208312251805230265487651928112613368402473049403535984601974427972637807929964430124096428929752097776552764383232273833418668644229571468099377514852975659029797617318435835695570310497788444213137253824437026073588794537684377039899796478556031805631996206273941698570122013624887343703128107840199674296189825395799485032026931462756824311072253122258156242776536809632827296720633630952696652157279698981967281077395146337037241935739459367950232684845364763559497796255772846153052235914679131917668203943231883673239237678450952695631049219014568202215075968683880664985539016828263763637377944978708394992708197143465449852250908744569713655676525677982872486323048772657020275057486832623490844140207556372492064453900252596023100092388254352799574058284240944974560434859717776339157150482099383550516663790924336683018101907802776392973329375826522386817868389701573377403089863988800759574656236023479262899320215771674638437794172614648324005628694727824563459590654859661008499169800057670902670055717143155824497812809565440480172331846364139350831533260334237710357235793584274160907074333349177316821711462932787944098208594384800736597661962800165438476603918946315727363776745884809548432690344388069141611671868088860638131355979642698631003539340218360576837160617079027576833163264992351053118460093139683118762098824118069355831162103771024856954812746684560022537652322113915259641135529365894006951206911549313520230839418414196422324508120582413909959008323459222549509911163817173123666264319522226174066621812470371220351805690200682618416470623934530399247766705829434478182182800590402838700355247369295080018681204151561857322514753210952462506151521628249815312048375496744107690015886753387682188972098594386187039582784057170120645332461933773917133700490195697891598472212036653818810853309758540249357059917586731972173858101806275134073439166941972573403553410709217715863268827095292836238400181178338006009236156867397244442463893478827112191529114838090803608612464431203357731008635449948308554859069259412888989858897835069566252758185854873862290374588916406948197943491022736359336117808789539915371690369542586936505383564428425837290756562084284123617479538921914839198568743337549443139280011401799657618629246362918720943480870893561913419032927980983622669745574697056455077933716389030884606379671237320590256145451813780013587447467916105540830052851901947013593293857965968559017228933454377914354202174862545098285659393302053381872045901994788369857156872956543346418112710308860517371485110577016141107342872015300923553356981499411633519892857945999256195859757228276476588756958061682603505319923188603255373288572443897763413823803094183095111550961595004534996138057024655122765151465701527138383714012910253872553446156632619985273639307714414870401350686023754927260655148413586489089953147109804376487670380395639244965700128323623113148566754536508507051341535919942723328246005270197287130307325530649666214757671758314956390352635471340533748209300302192610965633192326792652713519280307236417649292608824840693559418479056633200129598455283010049316506195080076391475860758640133546216389370332744477500952723948968381487801493827180321961385723438815282250782141103634224496838922312418737459985176498955822199091066898805832040928050847296418190595573964526234389188275639605288076640504897957825121177390994913671428043624933872345263847254832484315868726544526619365665975033047982827775014060592091763026047323030917967552888701013138480728890725770126421073468607705122395560884496943446036252749061822822665840615305750668610492421002264416854195574019122389882721109589890422838331513916211039157244348961773864076625657208791943979089651254914204447577838379151694833293024211616704100092432816937725332682488880176758429672241709462713941519804069480740562438524739592447775641731643031802886449934476526691842188851174841241514299126077380076435520732828197523173714253089969322402560771791093945717356705545368791944360670820470535276830283162657892646662420926135677880738227009064855411744110175248549180703605164403379918350549762620844250142624542779365365940091582134352649712615028016619072855156645543730800693216195598124634115118964784366365206460185793719501167551940886467477977410366901059683718743565877778846058738847366888958128116575377570777042678752825457223273880242863350099341510073062894450447355139524875426431119835256909854064823646802719293969418648835730849639008595203251835505658250248081566673534248512881417152100239257009105043127399586885315665306830352142516252690311144886931086899628777580162915801545719406035225886614768037548835079586702581472004933279517300679136657828738587227517391117557605285273284638054636176095935152470100478319842290142452781443441811850259357268941559580963312792926735274709277088580090556509582437313155995576728625661241814022548163630746508190263306965832937546218133105777130339708839957521141144733019834303981669165045207846229497189356990493747317250078520611195789782046196365012509195229585746935579699317096691264241534459411063619992739448382928308065498676779032652979957638526466289031618784645830025854529061728175160554737278336034975748100420924777251004000399539037705989741136887520601651964611930540238787753421503559906551773802932891168588294615130317074820092010873063455549378986429901361342586732591505356579698082470234596793912380747290860917029017250545525506933916400481507608097195420298379458518961183430985374526015111775733191982605689875516296943063128237773080333400698235563684172357860243160522459137268829263683948576858848805196248179302710440782256858451551344925749069248665865948139993477664022044078750704025523321142111938329355102112402191253964908037273533030447073613306381563702606365837403741887903896454822226164557486699918968741732195224048181676708231827421097325417355592964301270942967396189678102016662782498739116608961018446570414747273547518951163470430018530417379936082339890277943650542203558077413157392023144013967844738950022777125792824255987191240723609465444549791513216048417931789088576442270837151090734458148465837167700225979082493079920839060181391727739509910129033441692746754135686437535518638119302680171400786933990554476799813444809011453536303123925534331778046100332951810460192056207170444449876681922248632624411761978591458398624491728890190530500012701900655186189222086067890611925255198728129693882366725371255383129447298196679424884131151124310151340833391713678193168464199587740184976067391371047819481617297922599054023120656062622265221053926984976658375852256584914169921903058654130334158344790589527843663355845580223938037547955190286928930524186535202921932281346887802544249646576196578006077822714238295006660274112846382467137622155582099476397928929974020277788240527966196787830524426404905218434880252731074411177224930533044769053105008070365505464899980089703151224429120016009459224437365361807984342925625486226392056121211668331633166361530473763080123191642957924625730679623312007462561926268852679399180472753812148867121725342552644482126516319830446912691485726288102833869230349588638790563004044239998444902405653300197183713524509115158463666114917235711040733700339277602564137791540137821578196431821254203202795252701221454609078473218331593843180778936187020295839100564483277063549069225916241160412040347095701311707276455352696691357634713576487291765008982311407009624835479641489596936932838306847970657286231113986877523280908212793507224403711220105247085872781876681503116511264288812661653710437600984992592233272488526433299175753403240552858247236491489062181591010754462829621854750957338190798684606169548439405818953377277785604924821425845555726555485254068934641781976891775039728970993462235116375796702250710690008973196892365936414547687639327175988951012622961817779654197654561040685484817259202521248773959079489190974878227137090683524774420639967781323320789371851029084046215955125445716408683413550642311512700693600600635286516423380727412858419848684522226207882949807158729214283316698050549314892335366795665034411016322030181400993197864008901132401149332681150524564172795910102326883123370119249966672295744501722031790172467152792131310360280544122336864811360459106083432356252632632678311734891174217350163609077314612279719991694108180718733377847548983461831429346884487813907098237273440277499585764957970476809919633609256083927520245643706918327014030771798792221380804069422941815771810077997847854482192297821404742185915993066295376401621962233159204971365640589097726166883217782086781789441293180175067073779221398900690074628271934031087029342906960074656420714915810495968350805295196194397696199750712176495047502818215998437581980198135162595268046988611783304155390980676418118287675708813875301258948275574185169678693808523413434807602527658847691086326453386342327663936105625794762715528886749257280168239325477820755224757014910157225117399862175630639095900524228027966902566073095029026313553221689300761426962464516373823498328346095385652567765875770390076367763109877218906784056469496290090620078954945493829146099481205766547371573914635521214289934052990261286105692037327508674222765138178462645988107510990205835382492642587132759708053016922805704863814875149445220020316114321462143400188146802192795618613967544369236680780787647165305761338086994995234665762805347672697132855017315333517594714842622768131771709005356247145654220657698975405351569297977709398179384276940554889537879550605149093795147152758301149833206166067193025062728638650582555984788863067231059341995354779129574164547430405669277779033099723857992211308902159699768524565544067288028629584241624551435252135188936200895491242027094479579975291086758324624495552335845702956505695951609623229141750167791515530979388970194321151499553869503347084097235652294317143869231392813164089578871802969645493443871476752732726144243560283732568478926970411065052629310423757097361669969770697057704285482000019420848904186523579994377911243585293947224766205782641584024881260493953967434164119550212517633267518916888850782144158005223926626753525777338684136689335871095453426353332167008721790564474408202478186250534223290814816824629903710157458506677069023280428600760661090276177010497023037479883219358124055983815581637405268132280656224507415267443152298058961306935081459031787953810430696992444816250684181282193218829036334678524172460209536662704261649546330368891345367131329126391344356630162250674555518027689891291525524904012895187819687183130418621589082643482326186070184779029387945267822094464148754052447628968669036327125904819220916697475637649727492150254615373765169393066052584499164128962240704375643748235504459779378270915835530367454889203719798017868244387321078722842862550607779337125076838100371521122175315853343322813393938775300305927954573710537693294749971428945823333708733266986618269055524728514711420150927096637775057247296627628179910707241874109076778463826160095042989998285462900810985331299792572585982260782144692999487352136226534357231609200936239936354299750662417831074374044956643754572593268890878882404583480599582887018131381869860455738988805703417992464847280852551456891971265214781835633775361528613894459948104753301531375174382962097288849528913491333627678194007975990148414803818065307709690178968788496544055450543017630146596840854510917390734895221275079998025815086710764062696982442505267180652629506416615418035148203599279512642996353177247248222909110771388793879603057288148944310545213224909893632980034221282995608431696346792238467552602866798770375750841100955623051260445283194155802012639039357942721652786612767513637675514260771376016332078213717040543541121249352542616949478743659778916488137442658402827681559117616984814963775893246926772038630285312662841904682124202423371457279130099315663500963038868947774169100170836049383994055367781866327300100559172822115984502117232050379783600066840542544345179419208821118947266145427254713709367650464238512490692880662851685204565758136968102334789356869027006497396544241227651804074851422503068782293072027572401974844537789945162801787982948024909396477464652037778668764243523040151881183139691993142880120063191818090182811334045822530169291501102199668256005657473957682599127058155919007585035516820978665225903014804079925568868629631180620076074620068181995166901443213299524235851405309437809004668833259588278510139650466511955909135300029489035688037214833645154372846043950283457792379763033436345268773314809686288970864890043656997402697587114187279152558272886085942810407759954693142334380382887173601545212857626396897045635086975961261704734653763074788531410644828954472897147221625403934272117362438943519247472501617312611865309815931638397242513586824387892580206302126534025440801435061060070920049514524008588125784994872396399940428647250254469540858418370730522692816028193054591887486341985066587682100121742205482623298795124193023509901270989720508008298849366677840818979344309572239561909583710885329497681978795808499009121526366120768504092502162696092237463546814383308041376538671485079969466963569477003943975591167458312337052177351879893996235675971831877859872174929753453564742090683248916441978832868959992617261063593192783208323887089468346502231444069446340822204854848581883540202153288973917854805025571384975260245269611100656593545772615066570399734579599325031527968361978242220096776423040623750775691218211470043780673465715885641165423234829605093140167750655887168267260985158359845432730084129090398142452803017279709302847531631586024845504766143480213018707035514393153680336592226725658039309653695199827070647066854972001421865777327542851012227895655605599640333986976512467599935966110874766201906629314684706708542943836626830797687520400765914328613123299696185032121468657343229914205308042372095491469269643410847082136356338976335044480242132856190256057395222872534052273338549096486957740652281523292527919041667816392250624470775969068841759063970463200009763949252471606887119810513348091138595757218809650614561739504733339148009740370488898864145526647435257572096880290686063630295824798141255365168934988893222699695702433642661066478388095200271835822033187539653616138986001001138909534226293805912199911721347568375832287917250454792453769806635641024599844943567581273389034883942552728569578373616928433968413533975155847796508643563902885845290669423808136376227980909349167732963597616708542689753465493511719993363614259182148635671679208570963158741683103590944052503215471011342198840991961525239122430452254523796978243329343547425231786458331611301858079506547764760844352792987855769221394801524624380187471984903713157174173708870849660202485967458069890810589025769919338660068310191043290283062775139692509757820194701905077645956770063101169695951119216862660963500170925717425947685763809176082106157381651459494661755127043601200211959973254084772927867375055920753866850902483596058094706831758974184905635400940950736761949567129670607877861919296445286940345728756545635918178772532876919030586972157437834629577601663262014750869753417104081676750853175623664250226285118035778272794702742726917095645470919351852024233762710227058787608405875763714708984938107772149655146119484634733254299511478321464952686346667665361268215260174671795602682795130620902600421126560062915488187898878950310408790259050860361302392140825025012652444122867418984954476042601903968771377764834393798291175089008190527279123029138896085310483195308886118527786210227833063454569238513328225905490850350743348880384851288550771101496589347156271121900931292471554968239595655680663630284613097043615795591667437620707190425028158523041104097066530966093258237952551177259202069598194807003228175112233207933088126056647162402549935571462020779490640261192574082880071736845272717628588146250806337423863371286094246082711205027326429342682296829651735353606545890140718552129925899475209849227787527302333538445912161898602394934106144892256290437475627968365207603046168737096082593616180757240831298966847046761768524186807203833954061165880262837004928667156555138365319528241342007514646012297245598445001500201387427253375727594637532971444171122561680859042738040319289063138136187056571508901813554204782043075538375873652331070139792473521501479622333463332474078917123710984034204479522098389385348316795346285249228997933476075796652279047613207692388841857226445813587719730441236712293949217874609980005782932929497065302406647296042859907804550613688090491816752853753737814201821789179522739384684989075706037086367311379299811471705161954222480585762599945903441400679385738128208332694735937981469011247711396564307694736239189888634500240598775831218225325831805683479050956163224389458634737191313814065798587437645491061683440043036197731722710499979495586043718315395873037742643311856233781343898900996837493482074037174048713026759300826612042374815283711141112028857718272072244780824533125938551532268218836186992690688024771983086164402196275381423038437802164645105084146487933934959281391187331332702171683824116533321775667964124255735415992635009431962201225467602523174793460065806709809996323032703966645805403132610141740958707256267869378209442248910785742313206747229684325392962300909315985126739516153218567396937697103093964034213490395615789829538151362595016621779403059124221947278338192815491282567145563702490495981699114750294493232288496895379009741195328609820788649616025448793706928555378537438043053053171448065433335618643984257663278807888314885965788943647783969713172796597804828022773705814839336982771498058298128783583725010466898277045409526718722069938451705084854923729162052418836947045318307305697433473497584139709670434912896948041171146710751287045305718548745079946798077508005444718680176879782988847129306884458603411117854371818391633783182760828613098973071263622293159283370641521350484349651380334863391287042849087960647757576207016955798337047034430883711995669621480819161612816762123359064693335759588624001376509301502732669223037628362484487687591550415045549083315996048920342105217997983802731476736898747458926984973826020702391371557072509903184887395122885085681789206026275619690007827655217724143041925214573941441521947618835582345402399002816666607269439360780236953480103437716060490466027765531028002896672378601304646348714600744887849733463765097554881101758128788078650073409020098909481115123516032624730269317997295381866220548797046338420195463187543925461054937323120820236061369469691733953068074338678278014366865092369298642222677896819147747583214079849576167186093949506169319912078784541604807273005143604883787991698341153463777500139678420264944625433440390790101324643817073451633997784151353094842610650259630849481051895990406988783979094831247643908266108491293655630360482070122857752734166156652996078161274414846744885749306361219490044110205732182532135997273236282193101305786426208818814930318374356697561719718886248711752232397943801303529317247592837044860094352227709621056115565047614809827188825573354161810717417213723228417127252675211785209748571625326564087030234148875731277692532681730027707384655569290243618571043652675390690098424843720452294636040694922014845717472804928731938191526595734742271613194860971880515335480341748430786039543238668626667103110634290173097730349761298953520391909864084231041066495722066553583091312327634583614880904068170427319836933092457834936568144168049884306213613507805737764709510545044679483573136965129533587157358251865852864528278650596386672654651843271010138599831518609740575472717744868387464142146352904253056158539578072155875215076654453835057597687950955509997104141983857327196781669686968597800401651236055425931237643650199009783008487648999586269382951502632741384146343016105103385185035969982738260482480034760754939765039337608301900745580008943540044914115946307437300386712914831450806534794545616156350362088710100467273177431690269034789489522816537677236220928214182355482752778252120763014132093044530984238249942539551037117612969017002939601135272669945946888199628332428522022672599897673607729000414685375395896822140004000379421797070757621230960687131674624475704184338045908316258139135486434727768494936299321904303430561980495196374870459308674915260648511140028928354512950961680538957641080858944126432685209447561297282848052926481445880026198232123134765310015957701092586366997259891034125532570186937392340154261350899865613756215298227288948977516940636237211658775515248615442158294345198856650441504443334044563800754881541876966100002707072032778666520738170930074768117251298269430347458177252905470426562216771807186797062133478670917988330822351249940484865145414071842774878704250311496042698114808739105352715396272946948218250645901009596738925541735311261593299173450733284934689864862802504262116784955305703545358697294141131599523894092890363209315711206400224796199890653924357924038328531505973275429675328728140344305263544285000761306300597606673500357576868441649764461550611901179696876526019891483454879431536687497152204257035166951493270995187934800961108875892546574991817084831894369877572197302893789782741098664615395331208567558969286563793962410472923918631854051956429734449951459920309828833590325319549789888412071600771357113888092162780065949332776645479332722445964841295009148739867234149225866724686300871611156207654809952943365054643914356078403029233082520065648541605260336596015781450334546974582470308446978177718209825199714922098679347320537206297679754677096612993002307912311538432075244959767055095208802511760800930619280713345202463656216978824570074713864510301593755914820283211348515043817687295862022117569733292166273947730028239494322927956082157917584847171956552048954681925647886648848801046094322670281895512881546898850302063109887643366839647519709211580274012802374701482596585925685428983980764711963406882718660770177187797094048085112095972796062649359180418086925045909094178637940632860071012706088507303780076158743122297161864465610764232291651303110602041115962065084869895687421571606246625976880396648540331362780235317475489356316521036896343500888202094784500420176000734970065851951828404472021173724094466553331670214719003587593446915713383075863117712374506101448064611375341640063058077187953502024487299261960813156690526197323357228611048286786752382449315513218792137497393177674143173154026256746376217349222963874703420979749924215144281079226212360696366230961537442066593369316507333303457744891469537703960132630511268130100779375602898583104526598669901700510469364449216005294637868256490266949972074119140060137636591320258405931898188713988779611342627332849622843332453152770726398766428701928355964052657159405608544802058932567825839649014212336601938555336186628051918082205122484339742865228238951920911710756468321823248397322709692524624883346221147477616613491740537751262652421756049415774073139933734921567197268312554045693786952499784225622442671935418997947891817810328920764670285454830356671621593306326877320146269253636095124682228161837480374941201001280423510333985146859829937844834511538495733507125672681955806432348860148251389200919572130117120749491967176963606435331754435313090395703920482452546900951994237264272934959994901328553747646383212116169525916497550507876866561662059311603672455741286737955189694108151771259532546343036686119089750982218410557987995063276604530290734674196696227105997504378343328499386696202561670350178604011173507065510873232018353101218703100627362531180367102151621165232961638410149927951642721229088080569783508697321290799084979334073206765004788929821906912349141879060260887931097602229560192212803792379750482312105234072091113154915032725056448326031144156852365962345504919236826807498367687963986172667523486996466780390290744216750945604259090066960653610266050212650021936656468263235794793551370937567469513848918259999197968449611426545452609562269701006897015406043035703808157166241044497433512971657910475393698534383475312113931548600049642601925819725214211704845031996138375958908462740903774606567849458824218057478917737807607468960713434089567705229153492337430463625721108879116016277371482892610284392824769155129888813798121283404573463542880354799851712138717400468630089874656234793526530424927129973397145933229505229154336873100482442456247400720022305857169228430681960678605333191413131376731921070209822641726932092197735601692193128595320281379885143416884360272551597679503800153047319585052645521258600801328050282557525030874565945236875889293258348179912190973123861898362023854157411054629912775832247151214399631467995330848920536182405413269906185279939560512763721708258295911905734639426144182071452789874919794484701093831783911963147931549805395985349660041254056202653167287923889339574341604387254412460794940662860425811772045029446709101285809106212737675187017972544392360683112973421680258953284653260678218014079038838408197391129852338791463406564647191894026489211627514589373888701526274805751691901542337217697978604795721458603004680285962324726902824252091511723952021107416022567044214169726245068929633506186079270240121855522754511395790619771703801351284597506185571139918365237912814874290248505317831515336459148073342329703663547242278234180243322041766557049617619473697789069668689964337751560278076319814605727783609332034016869553503618198277412926708607854512965496213712341433868992858074196224158211449019103586692330830109715950664924309724067035015250872773492698841420926210128003918194624434809774115033643721861089548567070775338153852786764559054287865288089088962418116154687754826631964034578641855839657396814294122921894868978035895422527271961332649115335327117378519779037504620502386008979041070087782499474128632333176850513934230627089461190960530011002317503173905688325881627471054909873969153556900591765131481260087743494376768364019620885089072282676612901131527524876436441834363462264609235419033311565731889017965414742647123373603328954373643352879126972855832047251248535363389149424626982517228990130006086394560597578949811107745234509085192556602568108094141974593130625864710203167163448952848222815172442873331742196881240987161903007910644491451680411090473174708951887067475088492604570943378806198546489271750609640821334405433682870590144111599984583802781888016324960192367161376659395570477935427991741386436537765404282668500706318098673845650487309580036460779234225040387581782116046052997479183499966103146013691051010628737175585992163953468413357239885374755561286601020569858321802596056303152586145054454784857032643680688035677994440330649458608380568698827060933889126343673455399210618869256688310496696242606416704585915639020994635865472409159786058338124690912992882496373526482789530566949740401308270005268249831803760053577514721283180851781764168589207665263196973584193135372362654999695048197293238733976304094032045506889470839060538419593954824240977469188357822813476628273734513083826209656859410029164680943286074477406945435925539399548950762071160988536855327911735008211153135221306618527578233928306248176055257774275477381707354575078711708775880063498283528258910646191169039137729338866442070976447422974708557063561723904929705998964366349750038560982864734105604199694863217954613534680262725164896499156905733404691083351814629360025068920224402745166182747965647022421874134894870959195518182614922015522651942996287009038214784417516535007607556631273571339427933621555080311742058776395540779821199078886724559110697950873787731718672191938400039368995905878596850354684168441840864139432944241157845748360801636748435338557354902362646011306422348512077146117163521383969367414030253225687259854772433003522195225352980978655016236130481643930242075917958582672479579858534126966249756504935736811598307936140837976984694549450910639470335431873203745784627248303164519670938457477677267939024671427363504203586559456674578207328394724280123591995987305452189345404456986519672443736199885210595151852204172265610384408543902586782765256013472226300036280758458918123059157404345122073777423307186085771372062343653281443226351906109242880645079240177037572922763805022509908174317142809211721145200251165524212188542965231900934294561136788746621584465680509974969168199201176883018567490272075121755044919671986149641044806975930468298239013199132079381835964003839347133828788071874915358687168201960974697995359439554305709858631235512263056007694255568886351322963938233120414700064359184445213758268971590309405262656669864380705385715935336282030426772961033105443027674153802966863655628752779021280459545212550606450393491479883457231849658675461558044947408676801604391417927435574213192079915668378891357966385667986098554557638135382304025835407063738388243840239819068530765890520358616583167482125620843110333604893858320532964603992754755583585263186568971012646385486070813962510016293659574851271890620533993346962312761317500172198176545991103980739588099719474478075214557591674977456061671884009480427484600275274355496313692395348674987262227595031631041001565734434945670184216245814413486190870532004451916943266675242815092616571900990045504928369259599237204881875814805145733424685847795016287107436317716189916678821499803233888974121195176265394538577036967784000284607705370828953817159951643942705215935724160293916192896433844079058037635179529676763687688307901048330955479790468791053227368413573084992102442100329794567884116469436596791206501231042124886520402638634679951513666365470492344271819402418191209263679842134776897376716127783030823239675668056809859793978254125410037425750724275493178497533899542905064280658635526288832148933536126510166492858064043723937432052823959058803311552044011022964194197932217149638479495773983091543072692364141808340310195775894866049015400218158640528394745145079993837673168662816574157755536974668948099189240497341453883972203004155093767387854973581177556464126658673234113447685777795136272635243799439774942418675490814294795272789390597918157247424550653393050071543392349412053890814472955671434119799261456552508655598101378732906369414945380556532453422470557975937527347383298627485588630345695383867087801525847294145997337667031495919199581517099025236830462214990671005350381438015270235026196058251253216480220002995813570088688854509931770352716713375422050412077827106468483840199154773800086291354204168334434928321437377889614266817293245941243272906374484758747262433797362089401354181636938232322625864165196418554482087191421299892628266563079483763052804510298674235320245546640969129990106539580178586524924733566527323412626729428772384294109678495193297064610349188388337467870282519710085713653180459923886894446003696902487785743972650443624272179470352594745185832733015480008954820769574594991536830990209267275106154528330071073827973156207959562287814964840416060557491202718696585915233433825385014242513589438462520408261347021327056122246359667762905717850888816057178635648874156742501858926360410021186537620218070695728637740713455614917270681290054601212963960410105287598386851366899811612573044351723876208725405477170068187678093172115249643851904096699055068024287862182740092541953059098694726199723253793050526447644947164302479777466632405334696856229841806257137489957272375086581111252305798399715582714466520951254401316296345505447724616341806787816535010539592700536305523050146135107992679346357980831057663442532712990411363895617077120045002162591123949016558612150415312986706914396794189655114966599031381533336798851255714702571596039855955492169524110220416751471979104728795576857917390203186597535325910600751482381276037329640746851425891263706557165315245154981740122354993285918058833701835259802032539816406963020949423480546555250290665669698587132311356172674182642999798413190251478813136917790344128177167448612217242622511334215893439622809713043084281943680252631422371984497698269214079978883303288480527634304350554370554335913433472977402393939839113739274688797118911718874651037304310761308719169554404910917374826408310288110424863988988729113419123783122882324633426279057775158564863374885132218905770420778829477019577771668674083247479780269218066233432641555026301338685805689053771825702961135037435261098451381706089293935510926373826351892525941428408514499859949733707934252452801504851729294374086114502714200475866235982250547174377795138749325095646199410408641451132968745576664729782305901843171032028022092981056619671564669102873049029879787153392645745459972263675954557799304826290766288663211914422806754750039018512471143978315028148074628897752459172795762113820735205979674694122265548132450386505725075486149585148658622500152288449300003178264133611044521309027656077442605063315346618235640632815760238102022031342840791320947914905275367695381188504658441232446669898874608441798300509723899267578938861571188544862688469489552570816873988264144174553855216885835949795289281163339208274770345200409322086399538496758345133789127529092747985077360682982730228027975121534042018842645096181878394430579170898343743184294194711428546386912446978295018740055649255287236193409369442222928828417542685477981718838645338077100373720315516729893882272686999422758564554195764721038125886924079990762650442222951845460376386302025435638220762918992117549890168312184995002645780949997427737556855020417726888483573473203553665716088645721972022721225236861584487741993100516669628842287233667746315138733336765740818098966837753570753343573745083058556877559103052138962686087971840947341896563963910538186968544752332926483696357347298439449525518155060844881233615918807909956008849944358915350558707248660723454090597151695061632539683662542683387406952890445229963542788347302705035381392529416384607424923383120332497319488352405646973095813306742802369629470667918548239759535478521248146667070220180681502302456607883047369170126829646092380186557027482985929699570980411713909915004091980677531152415068216650415579874122681724483458933302607378660594809113954553249250606564538588245883010221803043571040602661015610611021561933196807294550814108027216243767058096643431356862528650310574072416220426881730238232158870696890260506569945599612335346948119218238411896794740187596922008428088226672968459411631872194980028642649185031457082521758231531019084619086006970691794346975116692130720122985752953980532871126066486931671376389905694773511724294286709287982131989650872518557349175302077128868923925059095041806440797530687208576665930350961144589505875019141347921640716168613337414562281218909502006213074767676729753673643426116877808835743272712640135578572371256703798254008577285739691955992292607902247778379714849905906670855279713866312977908753829096831306913605806101116319356861628624472901870509107168407849841662170864735923775302297052370590670781681745664869031350863067201433090066420954944495747572577810852375625005368463857751177694366323894826960369437570184887403433397218635570944851177387106981652695439411207077396810477834825365626479823346323782208252816502265017248024080939888881481699395317122093730561490697303262077779019263424423562212574796812538873666373913324171860615678598585463533155056727479333638641002463181237758443891607360103070145184515962822070227536492716033033543193534324240561903079785992569108430410303151131176759189951061145014042096486221317067964572755259700342912884862847343608021494857867578534071137094551744638537328678719784335859955247874503084077460544924261617797417095624318204020947095227106185873914967908241116393711223504993806332343003691236323460608406160340461780830256461436434609343751254960696076285767864431195695171723348575643395970508906535701089328646073943999065755252031272720230659823167896643441520808617517709884937482480936884849362807964234129412243156087644294797439397156743054651213294269105042123546537728522041613922450233328574040672903465372404212832884055175319644991028332092413645192024517342738735479727182201196448477114360002476369621644356247419641544125242221654521363394317862850712834925630494503565706333118403605138827258146151673869584022317947730011959658874796139999636380875591486842898932490718508029767931047804676090044506842609880409003150107739785818639050358584892489248941097639900736642582434859007923769932042621148247666908932433261095015376255550966378506836122458009516344335328660695051448884062170189894879080665338951769400541502034469031948119039138022207971200999138125203292601320629181178034775612999520113961328663057602959365721602461889266803005508738457106959737784887863626650204987713305983323370052354118992559342877698674738827417070984126734646852642798890405680857337612796016795430214913479719328569247369184056742929083639398106718460199562232208256106815616101346045247538422553180286025264366277781539450667533127367888856002883024864066241125875482620235673343743563184206622306224536465564870503666290278479668440676440235841498012904965548984903601018144506631686794485717591890301292341943627681406736050467607911481299993375641820608063401136601879190679089037252916235593855892180409982856698011502190438748627445892004181833502056219972876961018917780008221355570157491194174514301178306442829763363890900954628142946175277453785963155223972911743725531690935521581167139915274310550878038181153906138840181688042561977696426552797498481155845765209430586424328270980163595388575598799620089305062963572113227568355069578286573454146408075943063858182638848924093428147223795816773914645836089869388774648672661908092026788984474830399642209101246992761058554361371230382873580047401617520235917935779751714920967221384438560862890091296232381160959502119447406741962271411322943624699946608536019053195506143598921286431737051561637442541223410098388063375723635151602341557036471976891930117195202122615566063143080384874582233983888294677742779530898582972125740527854461380794531534336089948057928544904714027359784307620825123402483702577423076348018036962678231013143670129930339258926617405302787765384929568678935186285653196170067511648159069888353610559640003915467717850526541661969261401042384206622111068243373068841536187021745048882302526936955081388889170136479390658862584148530055863155045481144125754871474965126343528492361795614985712338994039039182678322374122845483436069479792234282246901967206612744383541100963132440399935096789414452990545302795642312869043985758219958778622661352484482650922801580541263964208453933995673387077630756404072397678336610697762564681186098021331196657568207342172632079858587543256491635058886036673693573022984161491176240332037354674475405138520814533099573033973752113367322756424127501940607457186753270056500689768639813617547270013770889142008400721837109119940713443676576930113694174669901143291597381930663915386295718664735872437949251187441853529005895337694788287774268797090689647015926526365568827763292523718782043380516093671571003375918851369544290234872868236026969188776617019027069486334664171506705092312560599552747659897914465083633002561630557697104423159796283439962016586375430341543465677567276456096721844749112691105340740908545527946391787893778216874175776274860804623179527974426791184084460709068376053432315433904701538656249209074847660359288047153792446927957389770202095212970101688744768127850499526274424719554849293150783860427207188662189967069040525972659391179064599193821391416593455510323327317652308827452786346091347880596565269607816228277505129113339474671605748179799424319766128368582145230064919506444923128776900629869752706670350475503818010739163768323520487680409638886605979779478347471878844177449180790587047313567071545811017454959254802803658760530996299350331929467818261743084011055614917071654788430629434226224245239073087590599477197366857574059902356945933425147836982885044807213815133822439500524211619601136529200742353001084419424749321891514943906078279133905733604042492626159527788622216594643538945361424204087885622473505736907691346429029622118348078168953635968701258858203677438389942437848173008641353325485950713299357542792997611382200972268180823329809524056442946374785954662326732112582914669641410586208164923013904469702133412353191998759253625159146617814422497314589285841458893479453052705257877640866461594185362956832609579122839716923950529452188123994391682553485971907547677735229214310591219784355870860263810221928369660493105169492023846039482699648368911774433141065862782368701256655113737548945489752933267892840362005412126820829802355732685174117491391892173361785149374823947114313103170184314151300747103219086886515136310427021723433388460687106415943420173823701082517910471194764778231950356157850586947743069835890125579248579501928439258949299291833663551371432413940328782586326715724592303012106331570848136426300953240328947990289906304887278471268952169566721934990488962181873269017565934980061392216999404446020779230763366899471127084796617303757809932198264012718404889428425312328722332503861273964920206167384149909612338901547624855228811243635227471537994919993270437346280272265286465423080507443859694075886225755826498015678918761486795136739228403300457787623729653285435984299279474155711721854182464712690225974109656879004735955552558486693236503871688231852709983366992715879337766981722056773719903079514734125311644825103825845439364974498897433678548462834039246773314387279498940242128090628740433108216377509354733274803230302745325607635761513266018144611315627194039852401780677263146976984264121417852261508023839615735376503302979577242700824731951376963766162124444364637238978160799135563533567409084107256329180499127915807061130251056695166950444450204957640890702387695164604397573198367335748662169258527950293225952699692512437453506779035523926688558101638387111924406535082618038330895105313162886525873171573412025276357077985757889278273562261757240917504759311301682369509140838366612873536624100676032872784837551384686849618314143227236229385544065545988371303473536933744810899239150896568084195723849409942410486174770536256205086334748645574047469182159304017333636208299837689804846249887875271205475285098236217134262993344378720414903700339449173802209694427666892925051860818256508534964503139670814643803266213004523388442351509550189741470537208360505061936425427772804686095190751328733954446724809446008909845582569488326666826730436340608053116477232471020286706431176465501936233213550119170347778021690015874047021840643747233652303349265950324384231518364086536823618472409076656460569044998914198737429173829229154664823598857197776947762349150247852540973984858403339386894401696483472033671725255473429199107553879816782109656226648185990165517936096829483703824366843407479669520263619570556872016513211947441150292092853418060641848824102043458024495038391406659546568211895192100934171736577452759860197580015839258564502132972544969018793072641596541784987633575207905308218865247562189246449341172571174595391739949752707078398735452814069655800043090667574436848046680486669359391263927401190022558974687181289892906700812489760898119836635344678379845163162244165970701617734680338162797346458028176553766916005160557734044849392867684288432257305003679036348345695977342840763081633301166224056136838628286220480449125370858541206918165780090453262548446744873386805964892298734279974464992805910301482063646296864433913558361419288314898019883698185329899920445452884836138392921605116603187364772247789363837964541212528771051114393830104726051641867485797364937745053932004380936954909713807922440996631486639348516117258672492994108568928045944597425671693654499589034727992880121579907885234763729368999092669007372561469941744181228999218300946121114756945686414100647980972303082216248772245504062063674121902653051954950903882902417557681091031546072158588101210083054055490566132761808237186321406526651866945506687533755859536900251611607236004402645290042719052067443127449445490797473591888237209307758772839135003287842421026821888503951326973480693838806982436615789846577974777728452575328864933636835974283129391379824157744423663693618872145067303051341546134638306479058743446282866939890089664880208298526303079713224723490799644930749185386536609548116334772260095516425661580454136234300641631668210784226528524235021562785754262570785745498772547570624223224480587829936998999309128699439351175808458638157406482412025114747784479003740255575137273026825003759384835786523297519117526580584738311565339177332081600546861379699743891620028081681236924792474837325949584414243764764153260995527655352239368721243119019895658355769151004317246278914407262529992684543340197757745152869135853059797947206345008160487950465880414091892374135947003025180810386269387150438713810334938102132922146663650443964792253049054117234282962472505001469730086397999989440094723402044014637508455177150754652914627334968121919095739989456002132395411031478810670839503913788548917140423610038773598688910234421588523303436363071345803480549441144057629344345065797681409990487266318397653310204876207589654477189276313414677825749761628296392445055200649834351079402082874304636532033188105834329670992687207874587043087652713055484418313888318976330318082138531192391833782155168564389897474924037558174249725364348996831284043047187317889866452205885725079301645349204568836335946079459968065581597779665004545522659680018117816604512991066095836986700044300428394908348373253431419567924254780377017175283244058158948159033329269346730284275955974343059401293191124875981052633140824198419197796675446657400076413237132345049043165392556747270053249026491109903541055363788185669754721851954274910234609955442296859466054765261659261859451059663897372085041982022917466993471040819577970531249663686743112940787314369911216818890552236095969450195737566252649046463192500187860667425049068031292133798418260328484392829754616712587485648053402975514738884268689208067977027097794532236379891275991653681353298212801670130882759000472054696137227242062313981089547310388410910622370957963933424064706434597841383191681140052163500336051216255264305536875897857072225938029067800921776139076473055907435154950944069220232010733417972003628665670853274053436058427474266839130136549109121487818263838466240821019464152499528816751809193663577048833992810071602645393400040962275541253632164627082272676907928053226303387840738377589477869173608593228506063330512974254876992528246192322213475041416310680717941990996202674550865758989711984279566139574357368666752592354962678885440244546791585596313534422756776429796299026505777543012375391110866862242915427243693881563705233104820907725451769177237680623513652098438068971720592909068161736266101396554993946253305216818889355937259582270691685363332906356201922848417389255229423615826443964675420806137307051431302959206379562970002159097220413750267770731651802766996430610057423395346721470529714487357114646199809500164905869298573540554393294175665016648173853928408306343254522706468681127840494487104385946275595184091332795452852491248990014164566945822311771242335906777809105808081062452511909385767210613888934713429918034998647268457299764398488259227272516714701601040821604963634645249026461569402404599986787705460252827744977229887904232913226782141543383931284434257714340147723789287357082393104471141518350745205096339703313605812568021574148733822292972748708211924146491561398464543531745933455399942916448247194348573060255366455469956866633898970123680855837550161530581332386277326352206118365441097192571544259136865190045546109935930154788426336126396302665884893200902552107468808605307042973907059440100519008215112715837513872384361145811888919653301292607863805090756453375550754638608492362145839769443395812606030407134358523400701153857307099825018625710747256592688199729629843464050751887995603959101281813712771881132504677989908866170554059701437601373163994035998226425719437830536206768854340947713445628453966300826459069429529660599702718811616327099003189312342563955573333146149467043982057214112773135252676886728913641119083888014538972831690333510304812857242111311188633010636304161806324545629984683111453170560252145493021285237784427592862719287492779897773466966485609424716977631364551932865533083871839622609721204976492746905564909307965909907711277329045881532701612207303964615830639163600669561778105984773224351860309270802267785892710015420233161485537385607662225786191098010805268421753027197473830250341402637674893447529859368725973151168807935424210444673402983016168030469163022364459039612510306053344559208726330906402011631487524497550913852655657662566548836630048453417113461549919927855984801593268967054397170188036122339674201141933082994840124452019936870875734462444089294495428852560508692212732080540555378062213235003752706619973148671512267269383309178301953410764648063080586344725459218509394044217323589911099349817199119706903580319805047701081876860135115423284956129862721708103883342381304433059413007452165436994891754679933630512635548038553612011145018678132591557522291997672789324096164915147534642831605884797778139265186576353579101504435395004947475616988176516449070069366554648292963118772883860282761031107472303782871733096167605072240591772482484122059096617586288599886055696089094432965110482424365429476213779484317826233547962473297456415779873840149635496096608987913749736002920608076306501255754523136576387109529180823962867977411228854503279663797369076797169005049065363067281337902276695621262266312808342084349071297655595899356112754884084016894300729470186116494979255678423903879782305394799530283623169434902678528589934229220413496460120549595774247117056315491255746344954186428758591057885804423721901359115503368096102407077048791831822023898803688372545162115446685370894724211924232087165645715209843594816167105865259704199589296534800222212065772161490729746733844492254211284370210687482194574097627688532227793733783538665026120165564229963827490293708927497746074733107414362375684864268363367675382965815516181020271392963501333344808897587896949224424679485961893262061591513121324356493909263729463571410155458800700953254124582515004298834832253027989839063224792254732218957605581517346140819382030291357094051341169935292306839040231214773116725334009601927556312572561095273401440068287967227354877682391860842643448167588747132753068080889325461653851606914818068423140703085182573045923334202299861588885311686130438524613533904111588982571423112580923997208885514716426022195464874210651440405536301599203231778674132382555787981697955683066536070363980123916273428283541581194206642362089499272776630239846663894647523842080584143595563712092737239325406544930798952708083640325525283797147393591499742935285240547315207962418306153368289921751377514499897989743225483150766860436318180214868713036607323502796282257210128018803093828958371736744789580491890475674882479451837121740320415960996812542467037973355762404659230917124440369097803132644381418686297269639040901865925698211149646958056203564098379869826350022622748498643497526783295471974964342087494736664905484090172684812528210655632367526750961164339760369601237438121753929136166015361882498658097768567640324044451053230658645092715149447633795447404566860642856995777256611481379878596104732371000752096434609046978896786732454438242797441358077890116233594669103519927717255778229999751746920966340343863634089553871052758213394797897022737807212547632173029699374285142050017202962629812575596288946914151868321148313491569772202401052886313777879314236155650867371236004731525270173961787117762013150949655595925244354369342720443757211255898692195929501440564001090132205320343318891487672166575705788487875793874684308708329847761196443617346468569135371878179269746021587576231007913862160897834526254797843083429386661968993268473058800262041736329818861144126701108903282523833634487966387889635902976601353504147401456396221036733011410571794441256591769032858553239580129752670688584799232589655189901173072928596464435329649461410021618135838897881151377490067012649788588161528426243496251177529563626133846168861877546646498116226707544406203262016475495533558574263932239282108075805564659677096452855348968091351405993304502577264030609274301771386334582492072825400607278227347235288667034391696501357210563585271767087023755206519084806869834184908175407628394829861087661169066574722088724547619962249354811970095501866993460668132808101961864461266074509884175897755319749485314487194085117723404093929613370630641932807931004277363056416128580361434142122600176204784187774747102319431514661434502356462933058449059299543280155353249920618042125830458660449223138419531063995528240398830373989025549641346328827651397936965586484736585382070327943043961572350581604112571433823311838673194179248446053244329834491566620321705471261047808573439700461359252889428371431303574440337635580665223146678448369279185085277813368149799433132194837578506964241990125692832373226611256810594415118647653649229485595509830908262700286552329722758572693288612474260348017999091831968760217985007318385087606393355844714866839669588519391614547425761543207655196887059137163368769769725123458765816442925627505450710227370517402025418035738530810557090921066212411929782191519701644876235350624214492777078142969186038898481512546873520225732055355501378070299669702261334407861106955390469251609739484197756459954678156401076537961523585863623613413892464690497026223039523540381108078596857774445670565312107187616379871065000485787716071989709872729374313928827058988096901504747563342249220796887606344002126440513375330339625511312329335150518752280968670435270194274972816604408317244388268754018394087788352162088137982027787732060740159425859435067185868736921646848446497302152095886693279945190260454389010773482773285842148614385410393817538940983286845349035937497060063991667186680423541721341885182204837089726103779782354994346739809423365412885342253565430077724294371607790298364091444271333303568002362032132632907178498515865963811051837738346022617891536790102354032510001814950052058286067523445327817767439990209043898772856536775597260887070403367830879366327251238074084878854712715237406855475955207100475039094774485810172366074344895770515207710416778047009298802611972813468718299981229411304752921825381163480232269174644991673272786124786077280597351721828687673273317773878113286775190287086616127770613578621035719221063171590486530018101973951984644076635980649094067890621201830846585882413817881270199323590882528656897562009010128424479457261921231782387398192965021468509847175859867269765311991425258285419926344837546496808554552692455741777865864191247381796060279190270367828578038560982306974943266513267086400477491829251761984507496351151075672124331499262514256740900201489571515489169758862192928362834864041508618733203573172292142875076626083286488970137417068099123183368533933569957827391693680022472181337200838009813724206621733413191123774773633571241659708145465647818109704376819221574063369394492175878464560763202495409216337647248770653233998280052686541335449919904235855176393108667502266790507802255016952773422117242336459161667074915534626688525882270295831755566289205149795652400590154929211202568079144966781779948206868488805878261299181752788146146151198449344491410608717802877622804110887790049633497296999577491905498942182838673862594407649428804828538789431192550842177728797075748262210276503704683908536079716779923221339704258937815259517877839224314126783527101951900393570751221641344835501483280002475803439058990934553586705619134727810918963500734040102812178256763571141186665981613084215617379290100194212942051366856227173911287604026805512133495009646002035499125249554190638328888295173381260563415521777691290217886530281727404652559024514199006980592396232916162836950846812044489465342248916268120246081531039627800256835441527317043333185929534608366688374210675180564175074067209460688345612659434057776041686632875924146699840346445431901077760035580613451363626007157137113193778580335951258503288398374076440172321035358573042552823615298470020140001220388872301853790980229167809517050013035050192224472068351817091045513038391423382848190704119054661628779346360232297880708913962256706035222358604249702040258804691378961249889791466932338927993653103334130060699161559473073627095199701994794573022498035519348209044050638546244474011166956698820608688056756252112893903953227666664144003369719449181542697056348312904833572418287985217127758834718194742383743977090859734040768517076568614152052801652334364886612268048733651016834202255346034868775187632365948597187305408692697962518591477852468947443950546671751868935877845397786452186326247122136165534332966706121689863006575787013993321393659385563906922706520308666146770133759970620237702504962603154061730807038524294815951371036043771701015549572304204468218896939894529372274006188092681131652835179815426415888164723538727165056222200796550313642340958765872829231601017851158970939755198122010700347102796113852504357775758982985110108269741486986134378383967104995900398027229984496361352947829079101380684674843707853790723714436108795379816764808660092997066369530185594206180198364269304843519937523645217158377301992535652586117086017621673891490493308219631984161232658948674138251632880579346239951368040264150519864780158715269052898382029487686757237870679623869188574951034246367281660739271278398448498303766446032732217764379786136854223962813120186733559365040745389327294829021303365509127728766524530169807084750612125297049219084529737850256918859144932870302681344556391183936101341984767610760947358929532557016254121862371925925057332515878598321589170483692251453988084119506631414121538969348432226874201325635435491019977682863687789461860246119751253877026214597503835735782739168861036011384118888066684780478721401235929617724561090209051052350799143222010211151012734041773111952655128974512830319724677486105224796688874883820454552776671605490969390731636951633016221977740668388087498282816395737520876390259068904506456050879257923150880208031910681847193087168935743446818480302197491411780681571618358557498213988916350253648721267677064656847686208586919894088389276966260959790314612445388045540045619565150019474552266421889418392397608141892575682933688430110613358794667080332179644481091505506262399354197764609951928988630310951720212002314657319633016301564215289937172528069278530660203437013330587016657054590086152654972687042297196549998653700124973286347356410999102003587148837646751527114881154118414548936338408486726172671864367659357401513263527467092684938098885908843732324744900682802100684794325906451785883479847896797703306140514195502462588683465741411663852798457342448142592153916529965561122118795101371965064451249432609066502869676307026563720516498434331973019449044405144557395331791215978780463956895279436918278654172271395987106256915708027370416323256933974047140997385037943089462481979544014694319500146786369088916027198808027626822526126462866022984221353358491268202239838515443581863803207504783224780330102349740971217745710449678634747349758671923797594573414019424949771025219737644824041700215479616196107916645907081656255103529565303753997301387637134476890055864593722298094927196580691539670231634013959742767321626686676601087771475768530633029055186731314140507288015702074466701795960218731135286065457479555776977037390797748840088578929279103911555223897879722479220276754289390711803675982652785347170483773924160410486828931475656404993117372901085152590406490553506684730141573006489123099325796273135271484890916073687350525087067458963445490287526384404266022191767312646455395787541649886905162003911512326937768690720312878061889151662847228973679461151797708252455511299340639377088654146803806988631364266790666392223536102216094622041455133083011124995300956928327953821722752060186581780742991007234875182930159599204199326027779721887275285846642900874882595246065476446714321555928597711398202394150079369863280686754189909276781606617642694460217526165937718369393813595648017580227667984596390828507474140458939694819080670351586266918150926948133448532600577446530991354869323866840911688257702880480048726904956035771547197550446088985300483248616412937253448898739696604731082856377672027966517168925241247596000079034527633962923967116993391349034251185285049550555233271708803717048650434238649323951648083284356361756610295921465987116363086463109201847446915571683212634769096710301549373116920057001444947785657250597025970256060298146841446852242669668963572775590128830429808934446034446215607372818650358366881876009395226498797201960957496456428252140822160564744167060369271838241307509506648451642107667856091515063069844406166319429883060551705875420783800601828258695102895747902634074157359613110311024487795648784177217586651725270648458251237939280111303728679474804014418200246096458846005135319025179124821739627253637562583278811777879917597938725175584673942989965911740552403534369879387418132830472306890073019147314497160647689635019695500019189186628430502175048715090462222710258155286857879803836924906598092359506897073023035510585506454474497991353529054630194061752064089101915344037360815799729797915660516336873615761413270486035171115171421189708018557803779964249292116409231289511364616199509349947697637910427979792192320275174757299873583735950858065673097323561689515602691497495294980459669116521085468646504852867179381869745180653752989299825038206951533273351270939574080347889164618111648541614036785854496079363472221981170621111941209660007042096417132377261614738595530288889209696216593626689175514031017563492968825692878168224761060843790117842841915370777754858889213619126807762018362689872796058232500710439702266076378424669328085782605290066452222076863789836530707307105743636764598268296542755324149733845719005321754585776891725830047914851670704780709109710585555909502828055722412900849913908648937947810824382907791453328387188419527133244422149859702602653680182088341444627465602535344744067175043066457815777694692956625144623604732789648348279701978585941476178343785286204244684205444078026375713658924410690072100803595874482339020754069294875479872637428158399244034563930224749408716979670249252214426542722012261369661021872785428666346734095004713913980359048656052854797265572152985108033372835722534263541200092908931175443975382559681129570603821259122021151996060326038688590512342349936356442549143858166872592843688049627321435005998752290465442160108326190255865425890578603395558317533545840173523878995725549262942843537841096264660872879894171118617899956614632191661702290032445097616343528258031068039747810730291043490928177673419740909040881825503721962039008879364838627705180647517956750113159511178954467489969362115792886497915704890457299726109334952984292705999211520638946485725883878755261393822053234217844744273532912014163914193297597815462257895690718290872551252816899069800568565906848188150425939898438924388459713020467466513119287676509571030349887702022935410188504477822716543662363812441269871002628218045930823124289556233090329540645050794646092814731858500684436007508143157136115869517572425585705617327722448842021323375016913603252259242186214019801128064263383117916224178458052381063684979629007561733995127157724130155164911961385995528856861521761233624840221270444775766482257202425630388035715324855557796254617689845755244846631324296458422661404490429146957972591920042031367934841984256313253900444666048003294822095284557937700654100866014912703401638658180158149286024205306063110123913062315946630280112806640839763193250939198855034110274497628657461889836255142157036461912102881809329492221251924022184402296559997771682981110410567800151269068088350338210348162197700907985455609306418557755799910933758871623796789727318656924098108930318434243924563663001359286700998762787351344425609073284817344081922731469206576279603402923895695332562701484822243457178755232797212701353259727363422957988507605876792498114433601806469584592668246140111134556954716804809781525242566311390727823364070585299901410481003676721766161983748294682077528757899900095360163567906153779442834731151872726667902089833975217413994623662185354889575792236176298694485344047818297750559870488787213769731356846196549249668350913412044362951210517118008726411606526850269975008617702285286144260537373024676414672484286725240424364459968682847817216990070285768998847411144860823232595176916718352532644002188048383144151689793135957885835860715656111917237183527479714394319691367564415958921103004487461426919725599772074373555071303262609193570758520390183998679959861279287264898537172820523863807302385314511735986807324105622970480755508068634304140256630427480961696664720297769864075542614556785225694846122899701958115067049394404766629006551146617520891655403688532985611922248258247818201054681658797823757570470808357794088048093568625710409469666351032015923001728379871680912731032793455157320462094789118760233131639705586555143812915583007990622429075676344651158205001236216392608724008472020922929306457126525529530871240904098832128679386871650580970704586830376419024424922538530943129411909628558365388999640525605186404567349713880154189611698857125657280798104937690703966128384243712185252678082299239906467301893333555546504680026097974985002637572004505925934394388273990840337954392156069295335384936287648326065147874725788428312577005784761893040691394935760418504645101038668046307353574984624573474128692236949496945231890126909597755290936952176782368727605217685380511318454617901543644713870651012268134240911327792529322753141104407647955725872958135976059136187979692995679068439366150225648059038041570336559236203234918842108047420552842524838975066466696077467488512310638256325704641289497255163702710458227416623334445008197515312870099142510206895920383068668437525631931167129033918224089745768630022387166409877558717959015802138307148712864970420600064452009325933358161037109827300416748752376276015357480617028350491457256155182221721673068313905075465050435954621453681323049489344762879255321050328494251051202450664356836216503023275454125381868493166729633308638596050100090946297837367207488040081414666363867658626755103509126811208644431493209486753901214173207621334624366621123891502623389896917996441224538527630148018891256093978980299230827098401616742409909099836573557083838718061413593695965683125911714919617462549423498665446846034688845494133783158438725861769022522107598166617568794132354752275232012888507267250418471487567975408905564828683419290965751332450906712647408088754163215066828178973817255349199309906789287562830027020150033655818621010265431490633505622646281531420808693636619914016539412836660697104494135194027780407418756554451529318654260827371585842402471029367690509868791791130522118250292532878492328412437166171517767384866526994085249531879065917138671438812725278025679457856499047920854543181413886266023492382099523358725143060778105955960009975730166129375222396188256864734801677963735117421304726201958173035157182337302473873452162459996716969543850921320513798120704760977574967892865372567793097389500934008840454235533711675793225034779208235044167999309281437097366130584115180577255968406995052131412768198133089301818438292922707811735917977894325486050365835369330503472974444561718252495749237786955735173697986621779513704296184879327751021129882751478897552755080772289697658133183985560548997665838251394272411668265276377728994627918556949141682260089912175016338769461720904593180501796919926256845971409735881125088602524369064803629852782867660672850378360518393031719582399597672390408041521578554363004781035550660636465079865448642445014235081678372737262638605822982393715913368082339967532414264377596958261790793696936013646896644805720020149195650511064664003830512092700343618297222486737182793412738843921063951711041916452786968623570561611553338574264595838121520032515113398601438189867331944251721948107033378289010249542566532458548502173113207496658432163025423311737057030630485757128942854002595125454001110210350453316470858254789538875059289223595156045231394353704984503730382294570631779427569299257477030367371348214697693550921422468968195129079056644387011864518457907287499704865655621704397373050256622017194559757521957152739830282733205785317833731868276587990929431277220471788021308553239038769094518943601095895284412235954213269350325984032442479943717860667226739323610381854418577597205793915141157194015341071270493675828878914510176694058436300105438854653526155059639768238367098289167832073352471755432710057527808230081386236556953840461692646811009677905479639463394092121708004227002911393410753488220328830877806680802810961675679131174667351727314826328768616511505779328875814462339094769001462347199159825386012624556298862191258421866475627179077102929840465730742436249876646426562021072529166924249059333322078677872446253263565524917463636232521856235672258704158955849207401097057419699597647077138204294329723354521104964832976370368180455165384559608861778908065229309260008402571856327615896114127708650822921049285422456220439300010037126715767025154691621147322783968545925683421173036057542984453845589329612185927351526221031029192517442230401613426895459685673172452427300456583619768970419123470761931823948649211879486077329748847217764647973222850983752449991000382046060271614393059175293477559232295355207656793353122367670125292030681073846420468190031508111098669552084439350371595462661521562004142913971914898066323658388378024500931010652223242031562736765446041273572036449966398975259333789982739064392315137094062043373069584911575776516130041282139069372412702245337307976198535267106792571743638298112509752981242337160618153110599263938265064127987653921300044743991413451325719900524435789241381517181286678245871148784040892309271656136201201776142644790580844959147162051812344806391200167646458527219066803864558102382928230919273402313619739101338345749736166879569001783337907748337766901755822724926872469249908185993114749303045406722607987171218785922404558086383466852069633040078191532085024608583559633642769352372517792231067885410252869665341584641741263293637074679904013997988543206543533714217763728884812700340583525655780229411040784659086937382664962922060898176141253219417672123848253772138118327043678039140352225601687078610668142732799416882159877442624720673391747874443697675208566577768316156606822820248994514309337787075427099449312548827565640134498143524569624158409358822462277224258543276395752092469198828621969633100082292213743717619307084627843968573685443933580723892526204565081473629199793071309985299477607721175581171140178888640788271687304923202998830570192950998029476710281115765015924324238620658675885545217874399208159163862400091621007711727370990145746744195064378401353938276239309511733295155452183941630965463974001495962557343238187041127156975978851018559729590759253246152941646808784201171953130473547566826504839047648620315000708680175591757591758558797076063618519477560102702412273150333777964589436467839535182978424913390449525111156817632033327465603378241426370132110035476528994451692581176136947325284411674144985533057570640546802792128782194405385146654698667808136627525649102478227545975969824781678775679914781859479805771585027094862464752274572324465829749208541710961304675242910124300336552411404272647304422260666019021754760493908857778611862314263197707487012110980974556426211816960979187871277885714896532571520990981033337425341221622416751157935652771324785767813779798183336531490673035244473960897913877205338915332413917656265810069129613366650755953731080134027504037441115385740388960626200232116456643222033179387173487037386563127465109644712874556133074866854902819119212990891709225967842355018806616447481741287614376926293824069129789572343446118410906311996199899468838695622887216106897362913009463081377991856498464768257277100255339284253987743348019204547626013360400153377292806698121123631692885210275433077139311689699735297363827847027260970826522317288595245391309440945288764247541545925974612135169859227147654836064585902343610383984554470948538025377124377647468117365091870636816861145957283088017185888478279299760534624941250216769632710653510790182749743678139339761159377192838316601823941344999377118833981080794643867684530193304861630036008792323121367835959435936672721222092145225304077441665677980606209568426893023598757084702584789424168266705532384357857072370642581600734659049962867095178306980532812098800286578345929639452554026226510233019208988516499976231366199090239091592129165968729001786147666931191913816108676665613787152516497026524662441604132532793183827029111751191968002904715329003173954036778104454871795152094561561250653715351407956873092024791955250355821794012782713215087171123391688745691638524540195537679143155664247423803514613440494983206844804065968435366635427750701646442781846312816469710008144755325694656323964065103244093900355035928430073152708963950536504639490359937547119375790547894968894247675797315319194906117643341260134904315756500805579341954357627410304238268868552148413828589752973666989814904043651144437750746672135171161101942688056220601550891686265456057901308477299759532585472208173703307232322077158133225591093379089934101042410808293805892075714143141086999718801841376275053182459831405468509835262314532273719253174208838540981084431241610409116528061939758441410975453874264321478281582504478484698637302356529331854477035930285182786881779960562369255506757797198088642730127022475629866145530034613188167717865971251763728252183259025696767818175346954694555989476858966879184155704188034492657261143612047857636998270499291220256081649663728345815923421336668972621210839203302586310301602484342768930086238786772007265396342231931365984091564346886745082023292814522471867955859823745209797706902241978076899637271675755344573338915999605462040937869067616358040598617136717634010885871128245380105629280340464674376291458551428085519405126997168175284237869196145585400224888148627783401778424388688932513016128631299737251768836676799108358244251555392664858802256546932096300621066127204734232408979374080918871287799621477336038653037228171203681398000330145000969798965107861307956101913582146011689245018464286592473587167032867993698386954526667582969034967535060935842082357218389151065099577831483917358185297285566517924655494879871019335618762181847665992844154301321240002009989684839770301970411636236744584113519498759923753320486463287755259919906610135546024005415601950302490321574214771387290168311174512895570190510964554316307687648700636027613397389694994979066859815075144317644216300174522288207766095779972020283590040816975602779162510380763691541022131908413834540208524879623303380796504159322846405450090277545967350201346144300834399524594903322504716523591148756998035966516538755180116963790514568221846377558604773127539301446574190392291051247749525342064628026440357666979942880493906080136294043759752159887337768462897679444276082972006701465123326237902406069981646241979080648045688782362828859716553985613746522285309697987349857444778770265758406282650499447544926761314362531400427516622367762531384000701886227113432909843593310308550493038764644266989630343863974047891392864655452737200305343217334414243794926052427818090207103289221610564379012258419435343288400672276875164344105525868509203878495804368110115999995475463969140082364676039846760546077983684477253951842930018226718470969895502480977369109351784635770338891933012796314669201886404523256942120029203349475258546487342460705105476915401744549986340985613046472585008009240074076322713089448409646663202134825255377161353680272457194879128210500507891172508024508632899589727328700203762526237182327298926173209449856082438127440242561458727631158102549080136764002609314203761851247494755288449074869425543669772255574573670742428977105553544665049592568664489102759387557650676611934294246006411821449533301996635327629724258081400956485209051808553592934837023113553233268367772183719927897229045385469404160241703204793246700029528459260165279254762753109639992501952414772971814712285419375090157406185187106288239911121902971122287801680219086762372037000201811324680513787712398307561136297989288534020554753919356998854914885345273874989011050316089154543881735495361218939352907969019139511073349507827169282729258517619976929169351378677833219713563631984884156864978331232673687076046483019348115904596534094465048454394087842005189580533647352121696571328738347652698479397895526283953766033943167238401155946010429108663827615790539304543382450335885334126951308003837030753568733060889065532845192332329941508749704361194381451993955357320549140930400673646640507051004472819807584362143902049258017659834753820959221613328146707143548687034413003772223902549119381587022874909807262868564022225249608138731374863281323453308147103949997880624314438590723990194911689790028134692948504315086397761086897468439909578843414050806739075952055469252262330463005771845710473634946717771167688292006954495213561085297758145176281714162543639777724943114209378548282756007786568049009536176660125452260295707711206639773244029619293081383290807318366816819289905375243610555250130964968520725546358729384020741661403866030132646601999483325856791843054499735099776568853218675680865634312817509478258953978854453013081036133063773692912984944189678666558981493099137412133423771815340390763670257399865101442121343491501013158011424262216469575528532928994542931102096919289591027511009843559194874743014849748870516037684460830775046349860596613960482438556282056280771625288728778421260917429288413581873533508936280513339083506133061078774884525794328670585987197239295223513053802403100745971992298625860582263437286045082212110269618621839918340195735364977830115805024955719441369998576611704679754552937024782851389281372617448792586675816138504199910644516567892417501093732361354144344468932385984385451235404545414689368025083059708743121337325219890205471813359663540082067676041066052948767052331079433855246616059799972536617810482222137834770421806372296626824158439987763361573646610953011519749690635075133897743826836498330180667692932850330835825575814304848625170155498036343101567116031980350256591017176457735446876129185468163752223565067213340444270416312181357996314366977430214727991089990847698328830348284646826276764712565358478110754805143481455049928390066345222450513200799116957962956583085876874343296187275737399729913342724953466082990675461373369709719801444989898258482530052254242274925818219224522564076672023694892151566837356763303525401065492551453418014080458230271326437843877607184936463214139680665771976350710770673307424254910331904753625010705437905940216881905193389151982270132100651606640331296504180046250073294434712305358386707919962213672403485475013029054104109558480030364333606492744786547964094201648170492536212150962218910698055662064857938109975336169690191795755989885022507654556869075185341220661468736825177401031363475816316538826447999051951339961934018211556487377954513276655867741219794765725762003989740256461643121056687114204005668468535648456255311844686990475178561527454582730695710335566522915742558356142715819977213620902937764510175041358090486701995124923276623106776026251119513593281743912660185371585353670190430240785915151002358588613251497178498256870712774985551727823553254129273941600595119271207628159149629869182174847756885266734140594686112529798592158480821050330022644421305187079963715175263308893456380737402441559614240550878623209815145859068191843421787611580238970014992790229156658399541351697891439795476732616835303614724326074891675230311374270418772812445451893331592486531031720881094051829651698869032852191649795281684741817550133359910345064045678614902396292099109295273221477699425133233809019545491708533489332781624891682017797067863504529569090467937147022004113172179325529791634778518571290541143552919478900823813524895323562455718611365491912421572969497915028025878980247829992097147039750494421000830359839098959522027314815068492214678575897466317971154105877952239365391756900459519333326198467480979339572105812558695495734546337442273633502923557986040508443141174698249153247870950935408388209709188377878901479895782926812584216017021668459241376529636531805255574883794623687600491995723937484195878685083761644994291388535953646079525418799540508692580559458698488116827554321249713436173244680789073773853506200723974607701645748870478656191273843966733478345095644132646637326236223310197295892469451038485698972954328646601108501968801700640812561392971415506493191309818786852221689418108479280602493263205078754182683862939813207447522104651176397804197856825230357981325225824703942317086203603433922944996046520278934030927801646860097809670879643669271812698219009921436118810586793472739662046705534963786561368615339851698058037825179298112251237386149028029207805976261889682679934757505967702603724834988288345551402813459080658627051487542796445875331422656665873976177116016989543263087223612150438248162329666021262408253626693427841092788279467757641325885834259422119035207606469706196413557357715586362280490312323106309573385878132570683880707547886224412401247263507767150502366775490055081737573126748215056480045312870855840660682918969067743117838768705890794357401683465013140208832167662928037349321270387263487097335665408555332399025486889764785051204855509412615811857744180221491864719535295350618542352502541967198258203277226590406774437970681827443572750686768509070333572296785287760224395916952568794111612588924566207493367362002177433914933552132801946154022829912494674782910242210798274047566212537836288751998339236332889468641998462954873315025238202718521343620291271244705122053890716503073542125648364671288880810624513442287443885070592767677793835683116129884534535754940881061384103120145203425366333244304526111003685406334761926666679559098876943399976502181270226053265341222781610832376668791481446953597336418575671407581459126706095124367982526763828688450436632272244689664556889596046377202490892364035375489808036519062887796541011637122233723309857789954803539541046677332281592435388853859183464960814395890362810982182141712987205469203833163263106171036692667537720274192805167317396863037957708713205302248456686399012092153048564904031343289838124288493136307387460307551071374251062383631915726516326506690164848799596375040144681329229064115332995568614295005067295831675190846141959396297709589010780854705225220173624157379600743248483704751666024851326442839094702162685215474731773989276836105972528248098368206056414424068197684433214826509556249881936574323154633179426978274339490648700529217613644922614049524402060895455020178104226325454429280267584402386954589232107476483136784060935708251326712624212185529485440728032120550201079756876152821331620678459942364666544204768138920664436614655661793595320589302734854853489176603113940849424539867331236414663165732312600410112419056097351622085134194483158300496792945135305394647849706934911233480700491469322068841942911203720636414526575246000526731400803040336767450487113592442097383063697639883510441539140386492429026852542756791509903487043673896792735718476116617535959328258057600293416568417999885352602297304409239604856346660596812825304927168222803998625134705528283736398282391697332338947143026242899940183757468776562345799599592663700125523784404384789325737847523132745689660007532458682816573593616908690628641062752923881189882740486935585763244297153879792517289858436262274966134684493440249066256360257820485492621282702519837438293554316983827403495610899967807115632932728795567123886103296178948638750614200912489217394721895404077339878355148508487893893295563648732015405810325627974364390087877089115991255996306974723986049863213101099947284990749605800753014703940983251065134534889742574840693875344485799767115777684069924202115600858840185332586678599015734172464263761189643139167502023468208416247271316379204587889223279228813705521145310577371711724360736927736011180595488551007814699988063595937377363470470756426283514900732361435174316231670507315872089991282249898657962819979868243668866802781378154975211551946608639272424043794506258435536269781692042881911346286369824523668597155625443340657673990552387499972037100618518243268615369816212506770978922988988287845713360640915943446207645232826921693452444342139555587575724977620894961906651879650747861712827813748011771636716102208045436098321051289443208859721693012424731491052024564109619342569329390658271863678730892221547180955618915037667349807760636600634214584438411643605805259230178044212416469886123406604803046039779473519661695321442239032027234091813560949984686784996900738346346741841724530324204116349523224460764100533619877454723303904195924479248270317277206063870312047422598516437060148721333704296383747704938123917237518988315029570333306119093979786319331896146422863945336339887312310700090759852194980039956916533610327925386729845154780063020633216042648833122518747440974423842684818793987554765854897324908231824644909417634951771549762885723937982782587550148346285778781131074640885406820417481078377640530985030428992452937146217849856546432745149824829328984929357151241034778301776019719316080783031746324425484529101646092625391563973701534038192872568203954663139310495938499963084895415725291816970680575556649985494666641299318256908176128724750769659652081353967415509595712112651100737682447471098620165336301175256962350256036572609539618848958792345052034163415966285498682022647822800793254869245608915336853681504443191090273357381239026962869782176535750771941405564395035708330683378075501324999647592080576441623353837553206748102250672153931640279521076913582872557666029447638090594373912463788084254328331699676090276792934172386448466736586323415728384953173868047717302320087568667987198475316751812784465494328469017843967410631224111752918953722611334314882096804323376075447197398048799158774491921804387117637351028440757521381496285474537811941001581662171230911748199721511515975590291854600103638922610799379756416037849129734979336654340953867704510591412192046008270543889966535252094403183324154295865475894310357891421529394601245150133644730622216300622841790172681196201483380608991968628007972888372209867140835061367451194146989443558480987476375275184657874085768160960806913647317559072511779749436261295869981285081229746842753675720768147597948154270903699896856044642527258115644218591883515831220217691259128725546934484526623366590893185562037618645125039188196843649641305042069799952728725233212762939906333434737799703861373667084531877366654776474050932419200640554624783084361296796422838933075149145935513894416611319705075096991058887006625000560144065055552812755582255031043139205627629197590710509458476913860596141311518438241106627589661689634676121022465565648589452573172170144033638353320237291898138729823148610778160618077261027154194640343608583806767192519778779019923477542958393555043319511643304246681138909071727798179249624019396403147266639376274785654960674929372069296911807661081741975172822937015180407501629157129705186896666792520003309715560038753962189743861997393894168718932713412401701243076790024884635618437658125747221348642339842518380887338206709282670685526120337295418947411262008664704745427283414848290545591264001990258663806500324402114259102299077536969359733786751420517524886948788220314699997228736795955338222142671583009168699470580059369564775144079395184177548865456697101676533515420019311791839748336470854522809194261630740615910992266706523909879767153553004376062641152263895914511012142498746380598836688643848131421718301448221850731592196812372367813390658200516843046088749821266325034988555749675337145900005283340827770400956811160127649227790868033133175003536286587181688940709081212871481466673623139489185349928066853737197365837507588057271627980211667622213242992008345482503990090652497591147626727736624154995474190213098991186147346212377437175389462856465313100552037314077036801608156330185845052027295416111455897063650372647365360434533219628161576681853417325357287698714998409572231856115166690015865654414787293598269513262090003537619946022403641473862838802148186503788576002728568835848472168956967623604932034076862294572935320117204967370979118357665819264553846666108834153133544634077029049585192728140334273634734368699222090566754945237908265319929992564503796077686095129987719092224835310566068743904493360717445556545825185617498933265444468158926382557193784061564609149175099473036900528610213207440786978365486067269296926800495052768994737987076532704927440442436877858312007453802984050423516167451569358814369473905899562688932025623741232205987178437801887416640478977635108655923950900352139954269447748372605411037389044069578767776434553404607589318589303988598619414276515711416121226047728365936784611701881549863168405368908186496762116566935656892197392764978362073582686567709389043121057609566101706246173830092687843598661293650202248348557967524710468740681815649221616929955522864055529790420799014707767994690203531948957120093731109107924088786532482400488169161752908434292838623791223025537494119227350752300455041720916824039242244254018899538242179274414057857111209870768917384924909993567666132677244083694247367803037713426735458545584248526315270483962846051891100080561580629064191569848794404346662300086507280211142145842110805028502024078278323946491696981780318043595912340250592357509568960242519414732104390570273496487130194604985934905852826600882650127784870319633671140062533663891420810722653311616059892444015588928481924024357349217065978338318653574588415091076314449311497232244922708616906133506318123518582534041059885048899792834105506898649033204224794687855255884420943732881654695902118661064078821011759626495862472098482437520745440198356788896964751175837877397349665451522566012916364111985824536502262953934114818887680583648025446229058284784924597940910323770454902423364980431503279500052365233184521942575935425255875109313721375914371982025243613967280777531935131335282292905701918844572597116294168864132302355998996700692209913259797881857618462517265271688084356329913928011587701573312416862255968471730220854391508238807065371651346409140803353038101299542013981526268512022568329566045231135389157913299877283114125172194199323280139612080833113956013994882947679886779989500954437239468854502744711541400063194985449019383480368590062610655407773045531667088311928600550654444843678541711554928835658961103488256760610407651442425834849096061477684360148905366005267239380260278025768583225159058665235420102235760535160641554990632241869950898109009800876484722066603773660821118220342678254517458044819089969336187152588360294474878456473384726149479852645648364918626499424195720371345474476059109090054844144801467619367167808334314692380648462721739773378077681911421825770874049144412549183752652976904482294336714066122196475463629513041738721711736057026695296923732260953167023337410676665524301534678891781418283844082267072371288976791109851344357655253490403213406535816874268549238353411828255570334432539101770633650873656015659761608258825669988326931793366286848469660840866235780922592748737502471531159998064823706542637241249290386164995762275146796344329760101487668517154859691359571924638907248932367656237505410040276665217684906131350154551162675162425991361928957182956246614622236619357341335195309975415671170567502475778285210528062682143558646523316021253015543717156819480648442743309630874533266123309893678850171225729637991498521940360806407820842053775955397319224416181166378626240666692701134550069154162171049320935422154254045736758608410274140992918936431671639006093252740371500932425662150598539298572267425262346536828444059592840792449350750492978205632822416099892084050520911187700063950659397184421983295515700737192097434005730827997496057040624926677063022870686534168054674162714583882948977548957445559543051661353261610538777862005690975204113834411924320574020421597171931115297202264248752486822184928583316356029095341595058515481840178756079031559261219501047165191800481199264329041230139799784597433615789240947840686241907593778766732197121886319200540942953702670726264814721027467730078268970106208666750756673045744735065846218198412929070302698444864485095364082399389125406609372001030322076041367302944414713931421334805876546686701084586861049399294522024499307058456084037481078321330918531296584254381155942970613148143409248616408535863702007189139058721230040988961711920154815325810397745475652958768888661684539229381860588844757333425007167308576941374172225653825875660682513939657244522358321156718803671183039004147768764847398422662248852133103452465956636725586930280390942080083007343201803287884691779701933638117655580397633120837751952053744923518491800625179594476813022151013556900283870001353527153666597538950081370357942570300437470209566320609854851847476359628777112441763795105720107400452317285436161371515254454196159865772813329475916767939370411581340975801059169335774399893168900407507191080006682789173156542622210883723492955124623503949106093080377192649699421269725094002867605129545470082267803727372797964153700311361532399288701885840650224774017907085108845812735119307507710763785784471373106642684977951109845945189661731223236769657630273486050539533158793447674934583175480880699204144057845499734036810110700161726464377437705136778667607853651199620302230953508836057216390807662183794761631384625574734754740508037593188935861385502275044099050337284027640375151910797454661249111824132698791311137932080950682979125411869384038847734874390537029646768307678566562479856510101540095523557943455548592528241998503561198374203292901017159384334334443530190306179232795508684157878381545435484351454078913329890115300846866826168634609898829984364333166076415139885518329426628332311709789476956405046631549771452609442141528205087489380893170006454814491126187322802397130201467673754256594857989071759923119037433711924097366586035513609007605318122583221579349407776209519714141522559119269380027582753743412867759759953145522688049550578745587370415034573693743230202444569838205914420837574196442871782648934486512419829943795696625377006178031953103787763792871939744435004097857601237262739908907406336595268382440877529405891673106552540196762182523502647785963768182599565850560738211860270346237476469066537367262297059976669742133686057532618716544847701552098379533137902310805395649125941211940209569624888583031151605352517691511286140307096208250261838823334715412923893392212906758874837456632860751492919265428279931716817297310144892640978345951553798575186278267453398887573695286976824978242629890021461877445081766542453481662068272400080338113867112053873833572387823763486876776057107101553109366169922748443913374980203118006372975979632220654141078442602032008199349197421106518053922814146467236502943721633583567896950932850667309909499514409615303022520866628095394303009603898667543815186805827851421631123691479856124348913139537629022950616326947739040723086728458808371523388956369629934701349189107679172085919391683956565371370455248323829069823982040528760141161084579180866635104795663032206498813054354862333527731186545373473311986895487039863102830145356184364041858446978531244062688351551761437717332476240585751072987035358936802881891491486465775984481066187780199611652757509097110514634899319918334925628755363640991355187258067681929920447918310513093300730705646209480731983856040169333166003689963768659484042835515937684310343964151886295011885789561236749601069312058446507753848847847250658035164623987497069382536306314608910082074113811752595221615334549081332837123081768867012130596563165915817138957803714160135303715955426122029768540218836269839047559233790053528185269831771310379627336144608081215212197878315394997467452051372718118463726343446253213220832925481921998501876543395712375159319890612082232686316461386237328240779478106227395578521970348831488199642222083842952044407535913507323893841539111207064019833254810200855098624217023132830240757383015530757757801975811280743455891873512918756334411299560891809370074686070134261780860541894849614652794928702152589658268720562508701676428959268756474667856830152661270797228641818359383188475442719724949816056273776031339660823188401357828155290735848447168904504194034761850535155774287282747225957672319363027338578577871870756792227715050078050966019125583659165295993922138185602223548347259297766972890070302054431630887964527779592884800301646323244909869141258623311597393184748233602306007714600758734633364879343166875611189993378231668393609889023316316814491329120748691002237090894279804453467589853245594604233310007648329034313221203984529093038798797822721452995030026946357122409036865964342795310390751924953239280067227422145690832125339464548373283842812901861437907917108379848640624137977385336094587002533844951767900805835820188320282921004983094143934296801551959784275289352185957457545787017102025266350580934472511565868669533449282024886732341878143182099178090732830647235122516964977495384299965582819104713185743559584407149440240333245837382642213357042745700404072203861886928568440554554400523080950645046781852339040398355580552712521383578546660506047297559958464225818519639396454704931520245729734140140107165650998068248747806539381554118010174264507449259142749513210946864418037349034262671333316223463257309466837816033938180730309397497488805468548009104597160823579184909731022627685486536731800657198714132648785798715858160851928693871638335041782329994498707802793309007125085946665718900318248416300319142474190667227704403855046164386762708666431518462170253736700070148370384098471623030731389188021161473834498710894999809266433805096988432948266186234144160661276814873363718039924302749691855711118772960135549882862226559521783517238830469947020132679729736033322594381210592296228541236816037468790964375369093814426175794349721470549820612695039275129393954859807733441655305210186032256994204103197440513828630202078249815452703399263650079906327554332860836901187580139798837107005428426792954440785499360790308693212527426013530094330230837393473689751295149755303138973103673615919649780085434645049862042819186610910609787883625189644970899190045784113122500084815483418242999556542275987338397019018150172135302818491438725613617435895738858408427855949613732257590358666185084623867975253183440163786326043668542951270182150819170822292847931170930315867142626901354351479792993111860877634201813259540518830755234261358985583383177533383122845184017059824624322428809266909768791811216385022412333668842852415180350098126153225768288590642047147841199475386978717754814510351626488474078922453627058186596183087129242734573088437731361510544803551494368831274789421772430932585018284283683079416273947168599944601467208163672162354839110602419077571196212393776565704764435455431954958068902951722367321632986363796729763845139385947120103618745620882868093327446225387975996494125366697487446263853375728206382041929216866757247011093514808432361907648157692457788128456780438106771512732249350057323287851415944058069413305506351348041037057905524542242281657090048943472388564761981344013718143773010703788662245262537608315409612672448195024367041733405988849891924807853103546921373639151228447802076352704204293024661180640017708731845591616467933766195033952742466252531391836887538232707900651006364447471272225717061542014780177749555580509840040882508626270012994289875369193707510844522120913240870695348925660278390655031460291158604844951904062231881655137332148838499162221736663517273098765293598047845616086333820321122117039864042612584743799585429879101151560450924833160372054978490427994417658908117230466252629943823231867395893015823375533816884700324119338977563774512579080978371857219846268276267609239654587446786443357105260736521933723203327751330037571594147437873766412301109678430794349663840747419737093017885903569498386176883637711088734980470413856022172013526960321335660645146105923399044075641772440793634025736858476476577430942085872955066130614675538976051244243500709155361430230186085964196041516327143345551483441373600302558238801789158509130983269154788330059202643974657348583797549688410773693752282046571877832991003806730700370943326259058738937571783795746344321891792482110772880330424347865151745240647688838872922843544094809460604652106566920432138994388283677331850095061544026674498716565345019068327021914341508866898907815115598216855891757890336528302131897659470867385033164646825604106937273909155500277439110436932118992131428627109118875012775872235049672336048583517744542374567557547440947676381975226732645691680036832639386238961544484220978603628701715267015401579338605142488713026990783318137870128422192672758937991227247656875124834143984553936905741730241855088871269424640333765334513411517959439530798348299910948883801467591252846177252822913527223833678303856478516703847004561099994992658125368857950860613636083910059136946334712810481018239547595005803270845063546858215761347977322473895653214384088964189272563863366401648542361871050582047791149578254263543909886361369365584569359654685552213909321168600500265895223676040939586913188474079238674250672486218204425482766000173879643006035197436527422017572998877960350236734615451937803889319279661495563999388789604888652732659695896701173200410064803074367367289599460196796495407850488618489515255755200448475929424286437715024035836810812630162143230563932558375899340523500459353321183622696244606357006833603082977768486250897829974481329378115205091904596101418591045620669609366619798963045228059888958475598906865189090202763014497271377927751014548342552113556934166927667059356024938113320181368066057011078500231551263015901759383595001727888214003574480749001944852211181770163879736005700134064053902372463578056777759069265961829894437767196570897191532032339515362286468828852605097524307868845890018028001087400148163156463636399558940429910584814869930076789072076111911474649118709688036550648018861759756097943513663889817345827014744009709547606458665519936517759591828588794656294376627890564166644475927573954803216114187557460145858931892298831157540049428270350065080687624054451206186654496000241264289385025396092790704687066496578174793624389160021343960212362897544034523321404889281607321630210845911079410199370330292009094512171342123886900450722488912484364143947936542025421128023956484582408901230639322078187550241111789430770842243410199751324380010079765319288152302034940920756295867293322057964900253505084409413815424228710919873989457001031624195911800806436291697372155760688144454402095708208343403758223067854069134299178214192970518925995099394240476887257593096644361671250062133399048303044700684554056783733884839585155142270649650982550346669079921800259946677511941282193829490925551493649172851986406197134007904812044302206274864391169812509643171347672076398583881115961632560880754274360665866662932286669111315553394514538125026005364196957560554527144471068119414906892267300377716120598764552005208161870858851837498474881604687581488088294685495739441858005676187844333274705470917589657191572380205322064548832411731032340330246917813351728491852751243444926232911581028790694617935287680856748253259785161252856955948419373112881195607567170863961212786462921431479327420443671381504388368296185152339276572600064580947932754688753845311409269179502915731684936880984413991905595268148386943469868842578617390090780726132098456120337840262975964889762010288287032289270208811846148416940322123807885378692045923820067778091856103185579643126131084851575590728391123043165599602448651564955863565333123211843697425205832605653211246386213217232720018321303886448938001110323095996265622329751532840153286283589013117148796020070614295495618962945747356903444505705495308447514104296659629317652968034701390693785975145749067602043422146312837253022707825235451519125327298940099758976203689237433691356455686268224896473430114343821448532834392459842193608138410753707987697063130233188435231516197051577216692117203067292824453339537294468989046787145294511692724857132793002632832677466476706855104862592477174367618082836946143977150339292484767416389278851005350320898982165353885627906061053459744063811324309604935180166681840256672354206892788367560162171990052405912014961335319204181183989594260712439951550120569545102443093755562410605140360378376132839818182183920232783800038998124681513843123067129278964310167251827530379977676335804351084300714812283441327441279116945718284673380159411703243982267390337193612009645696939863509810635934304176249981220252766328860362925468106332568434031235446830798643921827297109483095281691530640960778814911272212378401841099891180652756154803343498855559573288095714623927546810903575598619086391607456260343048353181824908031304229057960686545078254188496957120080110374001452246183459923821585049168420369119646217818542633743676081031938915171696076154561882282237305883237340763617165910090089529402933080089249338045196046339365303233324348445035921829390423562288508206440673598586791118993625297266484142410721120839630120530754407780491078637792142938168787605007679060261483428614992694776658873402057808867886548487086457995130002943538750194498251764168202045208527128795728591063365184874812482807994007992734037497779588756036504692582638950126822562299371900913210712424076692252946696371365792400356133356039161947090782296874233436956235344649883417327351781231046511238994528556355764503780940208475869412398596237129237415621897853340619799006494177720912021382622377142362695363906513378612831159601160283757542040814652209585792508251363289617309455701386402832361622217371620538096312832636653520430458979681211435029202684234387277376733468576386572856201191978144902025816407836546471459225160078367394644466689898136970115353060000702003436516460868731760355363750212706150273145301989115632611008320927452357188471938554310690372005594806930945071399515151447326655485523296070275002130114485817106101205628963396070636206728132519700492573939898706285012764650099941760309835602564328785795590188239613009570127087211692176839442976314609916365028989396334219467439045043811188904475060144072076262710024775264607237555611627060511018413834466113345719991035321222881002970187423041716879400585392261745860202130305494425072836236292101430291530514767396614826552228967172517504263599144767829702519491369531023294712831042267109686068685562332157278757395380287345173983703109133521373282488252200025760278884318286174302093845816807585623531732237076975408740560587062879898686587061985712434404387798710486727201949228017452322920472281406951294390130021252344733552942895181226618583442767072060047323235318575086008128574455051756532817064120060118894400999439962723375815482162258354586330125438213922592779662486881772574458006289362384241403661374786625996043858471483647574201934940809638727134560612635183356924351285362872314193367376185997694293335388490090686448997431531503294914728385817468511325855305363663754610340633942952833864567690247690534614491761115860439777643521077374853221013755288696576519987381780339301613206944839267503646464473897638973322388475820294795904016473088898024414215310062232253144168282905532380097711454528386592987672716877014247523093657612621055220048305677326410852475065656002109030609422969964216252830527838408332892465081248258358624616276341205559347266813617870259774230193426588878397354740011223915391304123319910537259869723439845961589604393254157777278052123784301767416574304754545120435934628737058350010611325852490270175041938972972074791691237726838810604702450397249661017591221332040831857220947298863772638669869398397247592037795136812426606497941667150489790095206026418075723885166505323404788109109168314103593190298804354226762142200025320732091452387513016829346670803411578268032265296956918215443543754395218075292603698640225814413447328412991985093141049514801978868375579933707064038400350352666645911660396355776686621459773435111971616048953465109033431718240516788686653107780012570807054804592863410793503187465678067320012217382204173190409337083697519312595631164479673857890980499765597620514079692290155549989937957903732582834655606830114048466259982641936720988327688372210593393241363274545561775300659124183816046013213723311637822942659560301211511942843819529707029087317343818158911147679865912148937869209747484487959479895259129464349439024956981965294069144490693868876338250112667136140798822778731759709397929211905266489188870045915996202762989429422085968727478706603109805634831615409084735903705192986377088970776674466503071818198969789203798913621946128701524100319008077623643593530886506511043538574132765186480298820944623056398223426083340038804803195788736251582895065970778178136079748476689710034579865284906385636163133640940322436226659186230338416733610408768090193117910132209116550465939966877359705739055830332788389290076338396165015060041090128625185648474509020557690732218160866371534980192880638421247671621224619472357979388659827755134651190405459902655286636068715449109774654524564176679382923572749463309951884200160208262903457522179124197771690581351687010399062754975996350395675475234025854695963880198826020497868391437516347357221269290423164852926227960431851508302913170311226967857944358992950917767552438065452099520033933300624780741470176832716294162700873889728712290948478402342816387727246740113925303642992043362231131572163486510378723628173033332705931775999456248566088002466846557360517909479431228244498184347212637339288640836993391603770057474803084768159947495921568476983471700821047977301854992855861858129412123816856480794749097819053547307125787246580601897583011730653994070443005370525124356437745021493909935740939161611747437974540502154447995222292759874686088827975037776522609307746256210711061285892036531649494497886054995961186153303595499400969030183321205067146169176999628541620183782784847358752826238984132711301162507213893526697740276866174337411442754416255746054151291994382526887909443136263854151463027673301615918810839146877842909446921522065987323120844794039700655207959404377862518835674774351837186206049390063332257573396276081605519857161271562346493103560596235938080907865369655610839268154412642433553321648856132874355637224110741462434498087326664770336887940643915721238235592842695202393170403899153692080874226100834349665894438578346116145442699807337618747066569622344029867677131245169158795387667046712170830033057361503360697941191318469068857747513937608842115865595861700442266707711943870916747799175986851638618789048205908028003374686915997298416490001121797365487802400681932973795605241763462779883302232882405747598178980367626346994271374851997881816334738237389980761354484247770444578389668135242167546225006635898413096568409275230551270301517917775555043205233066733911795835762453460536315173062344530420693484289363497384521811455495546770685737257818902611723695914804030534951466956313686939712512495661246446524458005816956020016212387861210954393189603573426314552672837982148179199417991252115513342321553430463082163182906687285968570272098142355484903542383495207008322744446491908785201326651827653169274964621425474653080360737303405146082759294117264456866000205193295528624172609354164133955993738791469158454280583467602558649097083248479935350021321916607099380096518115574953572639130033234930991205061363007812958069196595490050285785943836011628365962574713272727353187831441952400038695647512919577215800322218702423077949258724452720029776477701390815482863684888288282250837116474721402014694860207302004836008111480453318336419653117375992999369702088146893491470556350962354156113284454820769666698091202026272844173275454260816744727616317877261407763523391815811521863079845827035855394592339035514088696859405059863556487376580513734748930717369988732936723234746208988973765813545559184325161264697960973322341391971602570476242535734088834679368111544889491736390100453089441816962382800720241576415309042206588890760900251461842516686782278023278268371875169894685771883805627703552219719537074326932732519220204179060337141198618697939878686810193811262434307449686485506098612871775518627668325087037169068168234685235112226505044689639938897527418470114118324061179539628067140664708383909962658662107649528856659450350096928789602573920900651490287306346657239081668162282348940454453589404900050579053703967583485396516887741446065217358440006711420177968657950501793051227073841018669111087035439491524909055542826312456022950023943239531073571938151424882133594556844104717022409910969434121228411881196206347486847703615636294399206526268950597222612408355311006210123641539894472909709799853294952715208536421633539636255374252526534350776298454371511575225776722277485866130242877117312823658231193075977698295007404733382055450556698209528949319262645556510431469798467554511744559129611759171303354517563007074408103094308222374042285585240512164602141149345616359087195478969675195027615339457109323938511398701402568558135575090673973845910551255454339494542970492936033723614557447242599536713121585515388015521860590574943576676057253172170466276950927589628582803881397951695263323872370548629597809857237537329896023081335615398893404052934627567156504812553448568897046004379014884641153139755321096034703803417518779625989928557821095568223897831587531280089417039680104900695272061793862436963991845292048115053965418099603778256814227135298804667101055333096596276273338992078013188384753377547397261292532227561542941436467056303790584630606857659427550719093448511487437518719820593778563854300825110596289503263190061141489811204783918260287869905123146146751071456181464669978300548708850573182815859829593062787189763208569724519203943811425818999681892116052386360703885384620839898845661880676008467136854521237580044338744758869769495584926717801151936034271388982431400365863138561178749028048272158143188829969326618145292048815041729116195132646432458934374280135335100624762571016490221983279562436671633586181173686973305242992456579395528653215091277487519433853804962024420701741584252142787328247040244454890907956128293980108244362040008139061903857954979594716361706062849491298432990163075530386230365563207921217643935818736010863440684510959498024529596535785723980831197907168077146010788146894815327304547654125504147692389554404084370294784989059303857533066082503339022514301326025366085127362404799523074761644197196785596766164209665702873289677164927741411134103851574028059618076181863274042418692442991292204332977810549653570876968102926445709164456948279205093403139450901284233980046636308856284812936654375410316860860812255300715392774426650406117476494005184346283243744971671082711289004311678521293513903446693150949162985011605544067222100586612530293287999307331793293814766117733655306671370329693567927420480087312099947059567896588431971423571588991557600029682310780103726928423772619724530530226572879890742572228183928777093804096243569729868855395737996779028143124833336752306427332588606123111079133269807261492322390940750397857644649685103525078942191681937090711633961895766851929486669317143160567755082307588514020001130562927360551241284574255510934211238230931869527059753559443475960075840828125230982782680453094268014855320775351706870357462905622300992373535507528958575513290795120530742883330932683266193934121444926655348032548037805087000649473303435698271348089711678901304858644522461095591340513183562284177557747492721521009259185405320144247163021163729371596532673511555817367542049368403904427308416178262533129304041869831996525888764184886851658755743896316666766259774880816840631997558889644444965198305614058422382853509074443248387895268539856977664084913125931052003389532345630646382895918071941397575608997167011392446985425379434435487829306624159638144986128650633766211863883651277191851154854105102020015503905738546034704230246637912910692055803919459029251682215906346148192880351940048383596751473531079171976369529991016596481705755786134056027035102369162928407194336632085972617592343866970401611613443269861891559655901597959792349081644738379482251185892460094403239302138128118521337076516814355431128484793032860782738863400710599889407764853929926994704312923844483601666116142037643734519266463795513892601909699682904913564234216021781968089634209302247040553470536144608541565863530984713202713969416759665932749759790268374348494767611146608857912832492977620726958648863904412461000364846803529497932966579997738360589020944222487730292524118236725264292317607691053564895414727351006158206907327342796188334023410156320146160025062499101615923398156454849639881545054056525830422307974288583053429943057851985129841724292388891797249355468317370091325991350280047202593569929593498438232404695339838254334662225243074945693842114082142953519434225219643862388266415903298523436830463064327908702932085841198283962172549916834830597924375255999769980126245311005212965151702248974918560301854834277086491891119089900923535203816707793161379377875749702569853886041976519566690773430063543229206153201763181901276338706856386493411528404579243639565370928169640118100858782122655035173540286749020977878921738886570482422292578474557911180384973441914488611649984508852457460713318251704637751441519482828667152178328498326475076369478322319121380611592554424108799091467498179769591425731400700584931925069350101774050846885678825868776063537934376345561411844916817389506782564107006171966504906753899302035299446633318069102686210945476287685925587713140988267658253444501073110960487811246855071443679377443339322849424785218689063190332692887213427591576635335246813539228747686893260419575374788315855713089975777154692752568421664727450963891807993652287543164006901076716956996277454563000025844437330204836999488930072968720077129866677655240176114787463309035806610523554241140009244414846666937812151719785403423268012661821189582354747492019215365092692122273261739540170128356472020422168426564691163220342784459464037640980696689072282327721717060467843469124582187811506625870100635418606200986970764046080894547506406226840107538374723281533397392081245134185838749990885999900582245801013692353150957415989912713128142912319930985633823466234002351284469392899516483111545399674269568125458723972701150207127134409012107182024307635774873922583978316296449916174498327507455166698568537883150699195529238760727960251209689566744101493659928200181727858537629646736576208847317212495773142355288067173431758115942528811279892080528616558055580353161419658288261489611985983967376983803369313358617576098725615139931588544174986295704707601656625177475372912712393380802631054791662360077902228682011433407602526124742509816864363333339131686021784882309423134110229124155698058174999751785384675810358755229344430968519575777367961175371605543533459111489196118250653932360016902876337025956406552053915589311211617961043173119879261901725430216470641191472893605628579848561881860899823485503227619146814307139080362700942955905894618036817486419958639532522026003076782373899844932013060471079005125620157934972580338893611594878174119153518806725692986790867451051785206261829233946438872016879684281515342565670873691819271320973695207364235662461554967001202395213728883680967366402868685284795913393615396185414979940489054558477907418945791249362627797832798092706609263143512507161269070736391108970482321808031577690428396454520598688330940062937435652941500421156223746984727993709915182159053607572876290302958393849552513050215176073380705164868494378403208047802103440099705431398098608574405229906044974908090084867471431252056150553068947078528215023391224918541736881595247229514527122329433257995690488893042759506593282278309049435442917007254986495353347636020007145589316728537440175791317218156374493724105926685264325306085236868593560194852648968953607691690446613924283998319475497321994111067912060744861106556680018423172541356286192202247590168537828996295392169134612316889672738144811111148962793976839177389707965998144676527190402216060869590133698369873608426147838811103994485274959154520480718190584913879137260233922665563907809195524261373079437097781591741153306434599216136778992439573211658184316354600144456337491134815731276186995775444172251844697586228173378513901722736685365061119672421670426406751863805641255777383834685333143273105771117270631830861656182597110586752956015709457727037130758304137561467099544220494835314413069291071733308863430868885410215954716815381072668268031859966436551890158872524144543032103887619405632830466313842001991740167216568976993045125100038490584593655046238202822906145772874798081391335800425988912689448463037821064378679872531076615950682176645174620918056533219071300033598816237740491657529643842521086648895540645160542363493435604525403831740439758659910862306219799789835507277429749919223567833249507527600671088466329398491187257944859170902523933202386847670177296215575767475883893769543228924163283902446781150207282813716082093065937815729167279123456415832913339202690660119859295453464964273524902558490125982384837542147264935702435727963051404737448811879151306650201520315150139627416505457496505227058428076373453790972334857766750142305604557390769359175206807498668471163967069699827684208308229567714198979865818210073920593881259456898835691061231970099197251383373525031784780051272317494767356229987672754337827949856702473702355821599505501782219319728100976310461563931215196224208344845659427129078830424702393678057576381811752224292397044172117672982471594767969763454800921019981268932952674873882466926139445991316326753250187738631342835957228195663773928886631288822344619591595020550107246769331981833943512928906353614203683609544823976621949363072604355141811667477042158590513540509559290268639058429759924922102250418786172393289871772610460477248238507566646251766000971938660357877563250678085400963806952185033761602419742563481283636355973192826554727762500453552459173107928563341890958945840915735916208902427598335523759852687403090536118638338892751904287088338174343933966751462980284628411432862317194085550054233970403920721589314217614884805660262186184171290830996693893528790450926299154307121010644869787343906738402668597600756775524370712485436764406858922574104239026153074489543063942273116310612137473498746235105516938631067232404799848889688460516020026472944362669956315594403417408692860151411942554499674052625428658786079459823701901356718780470570796002790960133682089631583934266319971429446194064557117918848316792901583327487087491034769896503243080258032872889406400012242649446831422962699845470736303886953530195858047616584081686506949406302965067442542407236013859856658470063424969244338198309217401499016381814614138379444009831161140943784488563250495349108064661723675973803479880567728243254374693883396962150316892872888312195192019094068176162943025049528233453801632992922887257466689851012709525164891303636131435659234202036995607861814022030178179163577051420422465218677491088193438693001488491032950230727526309698392224448548069529140303160804225227793176763254181764478188762442250384464666300881210285655750612361386783865372385939417284385360817449965280578022356708487303698199587345116585119369245674499448174896607116818262325279226930143930771511239313810720617169818272957876585416733897234710941428419881585864396544964548138106872717282253784052956756374266234142322728465900148428884474244771591344981781827589357218179749288710671536120517838210983325179959585926229983384054677006950818885207323662396823739256791977457289047937578464164736072261273059243450473788746744512126319099400630205767542220097862929410112814588810097666815344649562039887873319347835525970902638143488173676637749821991734758703492405396191244916590042277845002929114439566724939035162263564366248730081438381192553987061235307588238977704857281416949433232413912241296950343442047351650844407888094941507383429158122425740805542949701414160964832255217189348917165348703354749143443716343258460045023201563204705915144934129924132623233684196085181239337303387203008496960437409137290248962298451164060377935053346960777580105870459649384304158350815870436960540008112987815559856495190246738504554791926100595566908402416611658521236639492417212991759567953725973009786176765858854078253818576721724826658317682995007097856289577219686767882398884310546004758876643003315257051879812827864412983970427239266823146719657078451687639220059084835790233346307980029641326198280629809308890338874221856188966349277978940889043150830848380051732767835686669979146495728044467898617305554871479202696855010092156606724868911011920025279647552933528183306636925739975671568134280442581124492028437163794754883317385378816222271498231880974773041504796879458653891054129756968245346996525896441786082220930539565386731471897158040734038480794855808655973221562269855439442927474148906245304278696215798705641282764181836922975502446407007546759350427052655410107506417032282336228286878782003933039334258748955519819433672948654753024966421888683495453145332744071882209976019720170107766637512558095994229437528008518355801717215506397986125493809562775096894290937816219068565450401343280163034399374174135358479659404462132218313728559697705166001446972481561937705444855447599091077262338554246885315576768617528631788410344616491253664477653246378046079456390841002726120073224184804474212609831841492362912110662941858177421356237083548556043633258143784902263215634597105339145558498332295879736371926444216419513329282879605050861225101284376538164019345404401429334094932482913558598012048635274877402131105035960183449754850938243028015393371458586829413448918784600857463995779553274465640224919295480566250843179486134190593169378715775343907203023240580490426831430450106577181732248115576079361734628436803679952538982341077924354817686031023566776001823380648742757147428201997499653470459221539509798606890493037672085587852845109456504574429560343815869831432646428878316887148117781977556152400470207929818036982558977220234228610962149717396170778982897294739629817778781103331820610589149181831190653385315094023381618710596285081314271999479637755861179583064430076173618148462784109970802604416990644172931222254443920433249931557806429477246332047344219667587210061391355758833919749874544904417916453913642050440225025985766962257610997435665288620019267958864178201628718740097107585171226555717168298884083429322869827633549183767265941274003248217469888307597510942899465389767027853921741874810456758843456741663783226245254657601810092880302198331875351355218910315396781003591802592088044836142289390971701238597602769218919994496661308499140496903247753748142723886763182746106423426313204838008614308782625018101505758096041694175312652494541381462307708468971356159619646972634433995805123701800954456002691679819121672370996549964337360651201410081979875176437289120481551872555086436017366999933192125912962681779308623668640308762752297834075897265317846070092758760327026159371314016489840642034068991504005740274530641352156264733001903748695948774958032798845902747991038192535622151022666857200171250584732089155219716990139906076759342912333785547475696745084459091503804995095364445533958627993185982010821730082785988504011514718250672812669686218840873177093448086577409812656232505307768166579525964708111122481788140142138524004469070849749958183972223245916360835698902606364349730045758188671713020225928928296715552895361165686278032612588130895351210037263715750644169513077482867276567240377119477613511088003712915167848806208167324113731566476498017044062831685565353499251633262986791533850813586893690318767075905585548330347506670521853847316303479276846543220065406613116010812884426213844738302018966675610785202368594810110951667444775291859837099127521189629160319507869744318298780461944253777501196452878722304088049078133350075179191998358578094125373964873838049648095549966931495374724184184410434642811463509891883832357526888014646684053662982574733111317699531975774908625264735645714536596424835514976342345848656753088529120682841113348392856573278973285017476739556954793437347983050664708275680968494942264304200655311555702885427157722126215252909754343275690158300803017161237568552866164279217229427614930954139846691243632061661353724873301667607890734962992156353265787949510220954214721841646363494955733967019032481135289350557183961113590514396102008597688535322441958967959682682523037250567869585386209868376731968619034485131651016817372703121823699607335315729525348090026908777341761707220631788996099423676453762504015473348311247178771299127559089241600841838992492095973108836025190749331883471649968320615176601628512526706910671760483246758030761808029128103779015936429342652497741751572541571426750211748250275451543595461759748463268982334603715999014088201011484819631440634416544828528288033282261200343633619595950570045758140959364667825829355430246454928277006403959673359722986447868995255538248177353987663919298982680928453750321365684045374690451035274063444009982052256867642976918561055256979073208627065905222426290230401727301613697667324262966501868165900981004121171832767181175934856018307924492379427460100854831128342429347520254045718367258544006565714051173891978945901740144530496760006276085940403423497873607263291335797536825335418457727869287889969792767700656989404340453928928868128816965332231036830564714905361491973128558000744043540075695087752556044076302850921288589224977183269332001484534462724775595493167580036222769804086285655026879241298114202687409075911006796836613137840237609971547612390137922784373201748185464565655620497447477451292501252575899097448664856635283343109328101755963936223057321899134647869557506299232952139537314919667356567967559026201847791575469811076718315248736004981196507953961845492975120711045740810698218245522495781224154947332937026794204375301160038574802732147856197721864534273254492955895373376687735327912055823505264371926018762774444687384128450475222443323097671952228671126693251798451509764231798342226954017848952898236608611132429533796616565602366112120963607593692457854112504967882974069521772236687216325475955818775199796605453220094355719303484888838475437169318108894983334443573343975844525280302864604470282553611287563688110340896929556013987085018489487490976564206325651242257618456918197882508061757542857719532269698641936300996031635181952192335757033388742930579694584750567795479690823152014799437141609791340618595981480177520327786499306097540696877435525067203522119325646842906347697422736085001143669445415833115448829474871986830701649466224044839629461664332195048571782849297168484549865238330628215768684899277280627364466979252046229575750643450545695212442408967324160727771682484331682692685452335296327496898883207706367970432777243052133827230511444197290097792595834637345859384499243748082921968732594835731729094447348729478093502113758393650150529410269890696330992804496141512932899434928313703880716033128951049684659010455192379740216501030524519097924863351090648506588223824517652184770632243507670354149529154502915326495250424932101600797608122876640692421997528601801257505264480661038256238574239304358546857261036449619731033739839224038461085796827483759275433951103219763185121784054645736412130696265168592211026048845998289792608279717006666924228395133806589471664701357092396941636350865640957369477097093714527776362631460689763963471817536189573383610462756920980670428925496343049869519521244053410388314340718214451030878364332996207823116064549750963131629187183765317042703816152136158613007063479501162589037174429076629646215200935071521127485328886676283173908492622219535624751211239513420793315162928341539123802735009075793724463791675600453888424958714530716887997093987812951323960378187841296957008569890185326601460249271643624557816080597918922824936717540953252262327532492020787946517036376458283009762921865486490996129749627001798088383632170348891243756322650502258819123259651634919941926786793336555118165001171302185770152314933819571238083893584857477803137789356118781360026345124757914029008135572003439032521940301088062335267146195611391840959891129584385355371836779650455619466553517075099243138283966444105807639310999964819914114316133409861345086242131370350117350304214023596927852512823124695046254141270230666701712639326021999991175666947774086304000711992874003898683258648448273039828447139126589342757059579087895383558511197001235256787079871356898046096802225011252177579847539191039104583508003015444726610810319377417422740439223939053933334096961503332324774445483908393793603984190548923518097133155773833066264494388544187615584022493808465560370835112011142029104436195598394994593819382400856593391045470968016491701378759027547902369739597770024705068596357589731167093193912518077709003640821279562566445499970213469286749277081627673314826807984110059376362454194100556348528367481646098458308296058585472443658765848240684187816324149422598908670747072214208016152612324873211933702023655505917932954821654993963759565762782902468939259417990348987335095462584283049393464040126747085033199903828535513781702372007119448189516278301775105749296333314465855552701827163761655867058254541176672404390891306693484020296059164552925414978583452979004359075052795573445077563216737987302764602750117066773333448842225746715392288462863280696402591314872340593686657305500145243556685708416890732989824502121708969839883568230975208919428721353204757934031775570939297571028940759736019363307973867726285272348118052432240403475063369306682298974948952666730885614602370395379662033495103543490803920057833052356508825860902218399481032199633137569781782681133261511708453577043889553497546563143965917461503363164551296546830393758065263553156822871250560379413117544071438295578162712167864308504039394039397083675305218031740972265932728649040221746536587447357891639915861642680668788782850981057909507893732588353484531230694943442149575557259152734269304903120868051890929599822880306221859311135220397039497992386692291405283766825601182087229084532666317038925502973926434256872434467237277524921651949921501672417907984758868284255559199794705049660842771879626955457471971913307637873163524187448975414327747676532710461073510336350858378343955336908532147685880617991069881647931735575829164851511802855372688981322914377916808008038753676681994557417041432136080116766872790351106140756537328665818074166389900435382550532927135592491306071041749924473066549094736195956071362580326707586130235065529374969574052473569542712017176816305432564790526199003333262037695109409079240385535740574719563849757468437428736416131416416178115949680113051714499333402072274740235928251424097545389398693630594159016046816857733906793673718030233465106116861180631530703835549792215564324649034573874053826965683435441822437859215961758173068880868644714592156602604442138609814928090712310537699860571603426560738511166121419669188759001933753853299473194308504945419871729344000747615767797318624159952457386669480045617961192936079572481242371082305030086525256077318626518654076260063612325452173084557395343398831515653324314901626272436303542404270799890786010390240477960455431287419609487324110965320315542493516765214487138623823074456341142337722048385095100544754118630501425836518411660276115035434778409954691412253908558800479838315444326937537373623906736627347397632346068407448106886602187641649671433974466579159656609369613717421239408602890689610483625063573546227427783856941558327913036900387959596219451016433913787906655175187628455232088896272962190721829189199640645992272093488909372009422121339555341005708953713208558174734532248479441860500149947089815786981060578068075662390527886498341145091080393079911862409861530380002157368284918067368706839492587844289466344910901568625579242784213239063921981840362607393918755473549998373670469130282330455858187363717550497194385671267371755844327850015304854247909723383759337143504312459598481137387772190426706542900279403227114131699982168003043189653193413634828557292719417569764245066623401196735004793620353788243081927817114805939959394975450839591439022933871403643623541478054985576960765144588903257289510463331858812139592550579397544502555528466689516837416863473002914595298345943195963094924015897203184129395384837491758140390068315438530117113955656697807057761187526286792737805160192630485456251032816841912649917773044718521502272264424722568463744871529508768018324680346371431984494867848531074559703742721672802289557833160829988348383499014693152905025716998172140386164102256676192091042734534917193464501615289182786859553516337652797331214874248862391382487818009400909817294379539573904504259908187606826382086899956018622728122089869639002265013557895025789509060207347929224334172590418885552300003845138478040629807302990562111582062149697433023119428926354893117785700161636487474253738455580008448328422575841312513917670083080111907014559539339679292250776730383480570463932189204052029981507265821062466118549921405784147530685812786592305016857834615956798375113910380897196868139062803063795101229695550351041923966595279435723930851791569240934978742326266926246161333001966044702258364954313506117871498111501996550951410692318389015534187562293526165188013632347492449032138025749298746012140408328830943394122203047675305351130136885718801430016503614620167827680025735322733658887792085138367243925418936226138050948312894722123101221142543440908622802788112477994618418847034101668419908863144807141193881252812153159241950732376742509802205554335010766386987976884108586068845662375558620228670356082605544373293152881026342457432776454653731360644137984969118668561482204475655848482095324277658301773909919841871155069802830732121961723299229259811439646409976667825903172156024186839375461040844112000809547961014483665835683563221679685962254655562522631367878926443039610280701274950348835908300826277935753273436612043297653551668226653293779386649107690289412811599298109503573405936126023939218233775730926371099523379140609278654427565096358047646871339302190787535676046132021002510317546617949819991973253523933456596816343514387992343432350860029070786758307622652635630061561410632247179233947728125478774606547953504767311194292459049224614110419588131263014743081291143868909662953579423980521235953514619279331340699305495357687343246039113914452828185942751560628854636443501215223669183826781450073783180993148384917305194176823344527679057943135812373275340101714542543259327524281277603730778581036259945249245750693765059989031257346732620755654981924591767283129502100470292292078872008266110312142504454167613221317449566103260837673702182489701100174961768974145156442488110552660347860430878009566595794560132708455848202763192002961707367822017924303151011234535771673869286138088494115677546738446937963684355047644374902106446350683179248726894824876318299549556256130030123434276075485356324297221570693971276850394397019714275159940170363848030616890099726906685958982888235755981114523254249346085578972958466463779439849910958168123228170821087003215298267928929046513791279478129048091444328441542432057375786537228725839757145225246685784474237273105473500195716045508609711886791522034539041220458142144609885057719737061426015699968676753027349482053685170999135550646353749035637948847758857201359191651873646210159055883635945560323978705056189522881304221891638412329806221875219184636828677555874734972181194872989800835013087262334626479828139081013236703117380547886707294809030453018176707555594564666459075389196397963296010166056357727888930733574260637689054899682812414373514732212542140367311465097625060181008173953627627937983706665643888297896617850984250486072542107605395286767206538653049937613691802130223137867709803503162192866962201177501970975681545842527219575874283977384877087585025763113606872037709952101978557422334099502842388463433096721038777954685653718874061077274555228902930444155243656728475303079801129733125173530189516102215446546865358380472106987223670001794906591228551859671188935764858506730312301865436789074059342326628311402606935613981460737292944087153114439871223859340625073766108567284395585699847138415947135267816910395624084044589135183865370626265390010405315551228906992741595148718259461158700244820364259340843348198212881912556812542237017170104123859053238999046473668780955166379192548416375777768633109386456386505252396423436359101445923967297860234107892949240117446561857449996996041835699664163315285966266790716811760956544169527026241653184785916216531598523618356397767666281681293740832101610758666701344540778276013128442119513388330296270558851890373354037133707250164887895019258948349642490417615704767669715823733302393375497044870790017943295008181247493938013244898373406029509514731882113330778026153871562362869065214162869292209067604083787516328567495379525773153528570461052280588032281076655785305600236930195778104029236003904575977924160359718660019893883503620361460349171407978193451727130638435112259830129650685314078706232077857348562134659566872330798315426867876946558081689395795820953011039451382112606974039415159945997579723763725745544138623975027930151863384390433915147886633908788975459830631576409319246161169387600490214729057259842316542151063254957703724640544193184856247970005448487326552546082688562828441875087321388866954972187392289367270229568469368684756341456060231032423363560677152820026287641145944095612197332827104606958263850859366306919071317968382731769785830117793608051822542365348835258392628014731538612924812893894136943063433431134679783944464583449919423255946398749673355829044213838774288464582756718571258590715619697322831706249512625725385004173992409983512329532849165111536996176722176044300244672110197466371946377451521814780904497877045483305921903649068878674776109237139765237612227089325379735348626561014095341307074700491496417963391710489840711254091259035869800699006685543591743910311917962451852609407656197577809886923343025423841357426857032061435427392515070247555034078015758341146632176155036898016817863153257669045952040313125940065473378539362888901230115142963187494250552074515775599543228955003272667457818388012689945382078284573857176091333977617007828237206853135968221192399982990393752607827078778730106843419685434784211104738728690200255989105609689427972293824139053997008152409751069224395331114911128429345547171903459433809326430898471278054812019604594779822022139838695782730709333896229520711476322868228593484429471735645409016997432948967273188064249993133546441857518890304632988408665381648364071889482449408370400154672458605535733954245385920438715349266686400258462710947637333444777357185789162182543231030984583319113519850370447904425114981451982317724140555839648554677763583136400962466360164510389094857759420307293785400980024947574587221099966642105884123494345159689371751046446470421079841224610203461809504025484065536485529710065294730009353791297703180722830574912322694647851395061620374896617499071147423268784820713184638111989809662812780961340612432925014335885664970984775386332184734599510748277014118606296639681235398839158469839297236295225486249922773288740823418695119748448234300816092809477125794569655881905304421731414114803763672628227011206077570817212825058807870382012322378196916229980422174805512403924742200094747174660461184943165674152323580194646232685205924469739400693600935814029211922660504439571446266005843128027664312850626493915710731613656170983862326066683048827065710778786971127441366464994470705203202731326108387113744946462306401276884200817420912842529505140043291729837777931302749639699404318723194291792860567472771863841011554342336880374677666137754737128025130723889247565380672165049239170830195561622381136884310066966331473527478237282783968903413825462318544090357921766681382213722789524768547554227502200615892735818214956236207419989865545457649418095452358517478221534223898824115515986025840696980355164460063178235879825598769699140674546916229491987718162474792175325146706332247811869601078968634644185900030667928096094367586468334390426647928113272203871670941449877051111818050913105827158552843016312002017470497084583733725411567456412703488123820579025400383790658655943565828026228539426503673660512485380587413255312825831505944220982708389104776705048433747920257746483861333462228948728578583387596365443237945680109242200286281075911155304685279768557767789806733052765346948358790729750771793179013923830516221010880221221567832690796560881231969263686683618968987337140391223601705981288100261626168509023768515137317333736077606254535346698845544209499901114298772015289357746277084684790734642621902052984301388462596853406759888359242211162469562379891586024038949288383144447378337048188416099045039699729459114392250156749911255621895673579134241217169230887857198131421957755675980833615313060899285632313478378222310933270394212891023305050849750152259904430001292857793794488936542470992073938374159110045621130603313822840408013250924657007419695133511057666363717253881873251593838076053325577006766112761056478205689241705675306538994415774255707081522523232490752219535479826080822148099377965949219498712291598082877821079948013280989013941242209605331322001480211299640191084539277242333701494725653820924112590777369813427101476438722326300538524416329121738428429389688024476418430885516419050373097562484672493248867899036516151548870868424356713932389797406218214356583640436357718906379729563208421173286550900842996989961550283034888253460607423449468064824204514104788332685722146869801873212197207650443782780213554816437246019565488687157997157097112665585463979889703382889762469307967848241264912550905783881634827436035955331750389796582693929951034509157561378278208235949247432306321798487348989662573498755955688476887683134515105359689056384254577327562446620929947727590488309288860455992596359056177482361316795563975317220567143827647438827744748954586794833323911754446589805671045452276375020790122424612673477108770588412774979902503822986449618619727201858109819598712535138350793596463431970920105308658104615999093877568172182450331690738429329714092591739197998314631163218355869857034215462049417237352536194832093942854522599310555398298286649004281259493306400007794197515632168067252580818167189854158780322307470101833566002088739026979801297569361331672700243668889607216755550126889722978639404388062542690054484585711978527627875089142808962714302759712344078327717363366249583705509520052604174059348308574917657585978223535112248118946978476247335283518010003887710864436496210968088137951577432029435127541168344899077231093582968684926902069711082659982231963133558623872826776484290779584460474521944174350388074602357457954225485168431576328297652692780087242028017420632298065731484578557253691694182538788062753379206186438159963815000591653349550815886572957549351372523608888265226551157102494401258126096447786438539751120073591055160565386655160101663555498006493030603539910797123923413386631457531508410039270416042623383336862595036341634908185170399416513253426203698974349010687436768378349092667298244482110871453674997729728710887808251761848177581924546153305768185513021759685406433710767121613125784899610082714945517987309341699869076127253699412854991109450115613081588718846812436685636545977493683351365110604200205370705317043215842353522586546142016862276612435999547542338552829823152238929658885925442803686821453243972256188438624709487539981197284995930129829016121748697980562962372862982897475919775282979439768847660783882312540999669529526105378879700724165669172499092595370279947333545040466819077146977324145593291118453481570902237769949076926489634448292288396473276737905698038336008227256521122067115601489219295060835458963080331118774258036382940920740014363066693166067510266771460105494234487663214501407276893305551752054921319011672495927377250083471221079954371602900180871948744212752879854133597378463553158358360253480421354720488044832373265307148286098059923293840715896333532799064413163084172427129625922295172912579201823406029726642836341295191137074048635102243333288811629593280413907977559749062231288066959377113959029044891682296224635017387052805332028717763139042647004901046925173875992188014078527393095851598311022382423575862357870576590928447726191007255102693461736055527982051271303997932597203334815251308618230355656458931539824388092995696944264652218141407521298184668953465695222327911515829298649151339558247986994383623201557284299055534384205784431993870419906798906594141861672281365213463057009990730943977538316221456038591932726644050287315063916046200092824570392270342610986886402102643732206962479534579101304508658177205909959447528460847963136036539843687416290993076024057826590683127933382148934457747887657042807000183223697786365466511404011479336723857258651596465533491999850976416328184780129185872729711165466445925031110844791793437387107256064028600586336904376625848382094705903553079288475895970720465336257706491918355123286167683808899237945934469506468789857227552865802169514779699311549796763941874057768272964892963781526905837684361343084910146126585498054759169605761012470829040845602619659303904531434912668036380729097785680247587890604799089971306938428716602178096934027340730461369972651458067133482160342101243459036152847686107081525382895783362375089374100224159329754537648615609802438984079379874245587572149916040568466565756246704815648533201371987809648016182373922843573384270176157657490879721418605383710598335790232456140364198236148945971803858618316670530959319447624280785033621299842117334887728144695497305675519082598281745509253611713862912929085728208834608297920465795123490725787580251584294660470138674269629894149093773919292820677570485888667532222686495182779426377787013999310780467240017628513567617813794549379002106660496080674806138026582952754900074072482006062523950537207420615988563842401317264245321915220108805615533171159242130296642623369560743181734024395424987877725615665457428081834349160161258308377412742743640480323392375500029126832137110033090288622050778533889370427130370834607309414940915674435829546907142445580108555345164943624766907125585775261618947027412853808768229760992778897478360102091603911697238057900902347949959354268997756056173953076562242780321902404302823936673711668360776811684109567354002496904591529198871226210506143750243503626777570611514389177248249011738920577377494197094925811901199268195513306652004939234582408685326335969561727643016126950740250985913578920808698511140415854342617615877380978620145346340864779459384754343016925138989693145519481783017915329061454647023660481896020310228825317417743909766902642386224526539761032315542779599193833943877348407282397150790594156465254104927391239792028608460328726181061936343325008357503460258698589876379806520187578474031258026255721053110650278928803460995595228854302255370229486606222780133086323997381382691551778073370161624517236524551407336673732385389985435271927686188267223228315517932335177164969723341047721291774977174300963546366855882024469611567826350693879917571878468434301842817651296360367860742667603236497608583388464551861917492043227426568397634501523117856183563649849219351676135512917569572073845953019490070364424539544563665632155511685812245184561553827680959741652968209688010728928443691057666496080072137566608459558486738685884378751019786078388911165826255796197109969711902498732550863978365782817470283656681767322832077786148644188940692608577541661826760035810641237193890633576248459050888744422367481170658695387406624735354521641885832341609201420795643853146252423042778680241069385735677791080964399796176781169209711963137836163290119035803787062323338164777320391487378904603464366943229617511961738475479886354859274230436046829634618522356626245589868481425955162353050550414859913863823211166726573343692663616644287076050927289928483087516457936753151230696675953548333116190297062113235187111664279823248853452703407173892567522377863815534742729630393801474523796492647442827596432055772785746685505379133324880279960713649547269335499346686197380510898289323766564149087529930913210174537576337276235368872682175103741044082934245371015187188926773085468288763727635654575049446747727415967287312301297228926118458240889367843613098943269758094100041646702563817159370846542931975671700485112513119645283778977414383758354901153385514328836814856958968213889756087415269896616617075004054952398785330016554234106105602495704207165653016007322007637995537303710006921449094424033512085324744054391607898616351587039204928670291382915283391098248486588845033711043772379552404293789970153796665870323920110296055971649513428867555821419849024995585423649587424812337259694144727687377069978815114314933007586212137685382600501396947044695455783115109667778323955867700532377206076801787227424788918828734572170255690136722907083907973361897877838587071484398331318086215253789923633334197544430596109601150533116601263218379771701615292028019448611967082001665611378288577615024642509522886130999983814201578159003106083080848729867655218774864937747763854335395416244432070735169218585965766758274754411845615955210392989440092558221206449186428707352353121812159140368098144315225408122442538135783346476249027151321629774535275207475387157756856646169167835275422067743387285940536351726614672319965926464826477036407996944438351468899673307753614021514684763504756199126145509570282378636998840790305624139830951376211481208739723084821937379551027010456943867544662256730034127779306486205701836432742942210988237841201013262386879831580400948630680901937737369783397594984468982745676705401959355153463866987233235516092669506704414335568131034335680094756916164100399811036577127176500556466208634075116626861300952064649969901738090388164993082454253107576750875143012377613903842740554096640466319712795375255797148377451402141664517080588116912077194565706843842773893989213029880849271319367437500368748950001489459690829987107474261863232590044443817733382970316834263592483815003721764725195334863640474549737080551603953560233668686289317647286111493643522083409134185459160864404764838864705999965374431961966249006654562728730168258400515396093431311904632964885596629130642001597382256443991392070082573762507556133598481033737991247732005787256932003663218400530408457524926863229441666119954334726870334251683842700384034234868170111453183988940995921711338736218193665004352699384509720288743944799391403530005504329507261528798205713855378088146580345516197468511732439922214518498050723571565972261656469040338944883139748910023842496565557071793873035277817939293959722630728792545787224003087364906276589064295214035267249477846806480840289906261051744970385899404936731670448258327327446669457406677206587156387409398622740730389058036335830766058929786854422916209765548596579255001567174247802127485324010378155684755599616241398354031726963420376505186910939064222763461939560442410616184839315965901517695549410759983684916833072059297696729830552706330966602353184019224864926426026115667780262472611732719147748425296142227487637116238274457408582288305254032784534812361919844187947829278698736104555028515931447290938272739774707523314842293163849383388100610988210412244807748231743818365428917649397690167059570006203022188628538974150796024129324403744049637635995527921346306002248358483524313535341302294936165210701050036858033613209189737015477716572929337272148656350969458473890634979876823919441425480640750625102146333433651939271714337997957584563626063775886649765966717735509063926866725869304037754344142168473788772222967594927301211909075666697670400589956768508892000281213971091386102192950093434268399485928826530757627982481928257446099817288041826144403513177016659242255179706607822383882468804759603132359619447366699733065572721417104867168979481756200466056305649256430163421753160433786389450831133929617443130965145841445246686965900772791059283581339844780291615964307973111287442233604827946613996158843767406740641279423315289986234477427240918467801994168707461504871028039458720937017162722327594710875559654888064891366108746838629014503705231220928880641525165656270238036654654661257917549169645302266982553722358627891067748181636976591867665165940709762176621020057503589340072122993974861138939827632124804679558102397614198907407926807431401262910670661149476462809674398296119972718178816359562480290353612012682581141340774236619081384874081869528892412054201776936756147712421989125322003477636826607288213669957761187314843571359329925343908075282161062156098262917529442434002061527842370913557566679398275212373288493875506288179024559655518024620703530426681494938372032828411047841310733164635490908149328058774727093979870807696117982825744675801945307337555373503923954353842982241292252069694714217345326052790406139949811667849022568774289784263515592553626050964748629198080517946386292713283726977170772222435005693256892124867309477302615966130681906054209771636898093266017478699644568285958915951746719476433282920693984434419355178504316932357618235284601768019658224614266247354663065845605931104898375582219655959032820209161711983196123454063161823865610019006219926712469502197180862418433320162188162230042188253045684651547084353545073342519870725462471973644035231316141609222926343998942504600239310029005569967109393697867662969659566788991564264046563451599885820664762684247058456754544970871825327020888450595541649016309553970135478039882768874887122072730970171264519778109761256115394792892107860839590209068671685695601281002547045488313477645307766015554529709678242771305470809723254210029276518007428599801491877603711119341209396308924141150505041724214993227148335222556584536814075081780726729583900072206124270670821120591708355528079241788872136173359184278302799777253400351255951650627264006952955072539387207195719425503097726805229773290656300413007191794605063700463114666694923903738400889200952260449903267684460124879142262235496097190854185607414289748235510553390353372338530069910196644070389462549509872058048398029853838930400139157553998881478052574980684838260280670540823777234702777939333116801540693831825990428203175767418980669708833423956138452782155776452921978924519423078037133254427629959941787653187004522839698326291435501585029709230358696654032826536704185979831016027401830469591225181146408249733456127695299231281185725976810603995627561888882476361858390752276217574350409936292670314399209412033640928087458995062974674314698030545908658647901652095640898386543689911302925014692470063742929135079673027510890523416163867495892760201842900405746952662567083865699547318490249350343890080830766676846004344328315722729490881094180839548088007427218218606127015933184257722779242722859244985817953369632792398088959413785429248123311508629252925835999622656129108456387900554267751662249843494087459620489573047458400052622634488030249385133734583729674072108260680475162883788546914863812099574758656909662471824138997311547478248475210489709163300452390538164265746438749896928346790073962104838508953306960463412278060898213656458983923849728347045371809331968801898187518366748533518851757970883757810635742107745558991010690714508813194030368419519195328995433630806984569984502220154053560507659046069179494399248046020330010072327460869150760073774153870951081094823571639686015647134133988159741322436445546860507360496248897822458056980063596045585511716951448211023336178363686926505796791673981705532563519102736034030344849147794935916831541723722817087439671964923576661979715227542242962719673514254503229917847976334394880867197800457396152670961165126732534934880714411100164291858099181315914357783011562477295952558083374660900345723255298778349634305551702279005180552229350872907772792255369765791126493967472016783840430644582827776516023837674416370967491231095374032357942680779157525673206033042116680293154209659431625874117087061519887533632601113103723372969102046278326651488127780740378490849883948308819398700529898689417136584157840547428057442002102882130386633147358204453567314699217484424858805701930532454494952926176682109996595498673138085007162106558521939065694605076948394930294539963545249866556452381526481226134393527882856069599365821000463778259000284665581486273719973065596887620456589973815246780336135005644953960937011784696640861614839713703480081389710946437284884410230917879492651553102267720978248417622837180444630460045759487500874942569036259451588660519187789498679075004171557983276161531640779817616021748134139514855007383338623019234246540785316608099200908088316758891185431177693503554382061622804388086900482459443068137774778593920495297486664622570648565416864183267830184639013344120789725477613484511950687451477849455460085760857780865579103681697087685837707238311683484749219790774294834400559073948475328392926812648291600183886592883408901460829242584697531438654279356829866755649982509579483222721979023620149631869745096064353875428066524476211219508359555878701582449445808500522998688620922505414627490698430216384458519820449090843409385579251374435554899550682681545188162669910667664797675608196422602338180199307020418335198293035479460712843122048743591416564437406729597670195382050949009094293549204156386239641107538181707775243709392280565350404181788865323564306013497346365037811799863618238954421983101694573440116777888341924798933973822128757173162283148100377145513269052692972060309309235634331991184683529155471596678254947483182307672274659811244305320646698258132406430204046320308036836324098388433866522041628487014073501976937810124129942714766194062831711437258657243884120694947841441955505039244232989446387602243470574336297571649659776744396653938702690929491935941234624728891166330642571314651056151564784950048183606474741662476404228299151795661760288484142532223585201719743712384171851888533773605104907255801423359484389398200849546312418536063603039316650305828852220755069608393193693341335558045765992032492687515266933833834559474158635262870671177151197161148719814413797435457708281994116346312661235903731260892165021729677180637170047664414449699473630998817459887177306077686697784772081021931426441221700459504760369661871586442616155588051593130365095153167845932441595612981437729764505967067366212737471880274940500087900221534070616708702553914165855785817097150687186032693798328144952676256552970392604800160013966385628243596221663730258987172231544684200425301865336073154851064857766975205094936184135292912776120230348164824836584890234614562610341900583929109537085148888050775075000460127560893162617123908319984421354274264888201413381537976432881880804888717701899523980226441584739063485644329073497103099678156469149740403664113742018084454171417373734911451651058552960570472310387818266976911260503132898878735111479364123024157580086148680255700874540424448903252699769417329324576296007529857468952256747932010457182886720706095267643996834535290846008248070907886589169045327025876577152417731785583077642663680863918864263954898997193776315960133582932572376721849508599314611005624844100647398176645433350806968489073030890005168158194366449167506079267221893475151772180085496626450322138505909151204403676444399024983573147228946963916496915743426542573321283034378031927600948553210432763105863063227034772854555620410643536304897113353899017720392693610049178852071085229918373927082291122705898725993194878237014197347652887652408437942243817760959176312905966345852958412780607260069378561872119368040287309974192277633994769485143891755873663858884564644667086016292500214922436484654779244519247315669676065067940993953286241174607154397418990822965478459695208489959510488575359668263567060151359222190922624843652652314791394979834129782471711400640882440971839820339320224542238778137607086088193374668150522746432358549548857946927343662882261433311928313956628461541854516039675549531304325621869040332900968927522223939726147041932003954555179167445193471431284014184464182104721609656824519871148456931975722636330140612092719414701159497188484904545891432484511443471414775684837868088572551515383725049393208747353060975593291218094993949904557080490985854105690216221968053299369642809916987185001329728909600958392413268926245628565249895666465076440793661019360559614492943146460990366753701767111597985507590030538168169940241655092169627171637145427722539598711898318900606054166204620826799703923302550233665774485371429718934232925342829128677796134123498935371223154179512787386837772994267301734266290491786764806436652114074903699265770047090621794380614683047694678628977546294667718924111627341462469162718978783883878827478745345679723756670420465207205939695633675947531194084294944071637074633893312922782232490211682791327333545335386238128098440698066248816292894627088648053008770361865289356400893451024125077445680837142470408670465345371899257616003382445297991510627342663910453746268142884441797538964020647309297198789342601818844583538710801555581905633736651869602572789422544487115299672546108159335525244216242892368014847028917992730856998540588210455121977346583833043507717316156352829219057368396843265906318946822546106128246603055757963233358516533126993874965244170337136532939191710526307202903021630576469374564900269245041387285221322739540389413601420159479613556026840487832149667211025042272174288291530746068043593752313241397789290560209161225273550591710807325694595471367495221080669695843026456759783111277271759783354413467170984690119899397277892682249063617474620927407309431562484452728039146839428489909914268769984119812854388663466860061631399200695047896761145934076425699476544641774266938637404914546264358062612250378943035582188110565515752888304421417029889737942585942114131153684629547155554952855660678448569351417320172729418963880736224091253031079670755122531777789560721554018045551238946721019726772008297197168285093845675825173346562367014373291283313351749842524615978717153414796272598623690482946055979771013852806145587660507252769856087086971796975155119322555738124242870981899911495293924857573866546087712159878116868384680686790001123299333982994144791589436522396151321802530410573877168277353891097749497208894416675778083622428124530742745683616137583451492300600913614032498473962893360593776722753772373497528898135453840484176298991274674090512883611627355346681986187325553759168253066874303125814220948752382766740360665361685584256206418288804618317095205413855344476180357889902299327357365662269465616150728582036931561027602828449572902573535718364188041230373022521230929116741197933405057155870674233466799073294554951571058888491891603425035941489629690849425555380380139017606912433682565096759287329722928135496266851897016521244640600732690235291407904987335030654681087073552344352363539063682683947289274872093075293119744275721842817096539303402389483892587999133652606674057055784668742603086706507206623766071495554736407160642581515529826469562217409724998730900655367489919798383881441824102438831252485233962296579328432964300093026251680100897390475044982574246767689045679523511239670592323841790878187844547553103166841157393150316835039864966685290801584232080839448685499099583622933901535447921532913043709442499552958996399835522300806533344020726370039599639877924632938440098345183546230159411700811487785720957485138968126929826063079640823047816004438578655670723738723886603993320048377984445784251251947460283914229801225225242485037429110260037061533854543429855908775793037750290553047188192962771249816368456789664025361070074903946763867463643257664478051912289811627384606322028775398351190758237846519291591652566791060548605690455656510334087425877134797005827279933384154037128411496856398469943320898995770828193165277137357479900312338784375678086036810908938948160653978066376099887402160501951725305513133846511704287027162928873792145387875916799344750441338698666751847141938665882886501190170275210479812972828402888607678120668949050994569449894850700200948028009103055743918330187556881333813530097482687434361199007816103296016373327126644044426804803192025050063546229452170906174945791730690042491286233558055461013539368536581818030448108072217070014599406053774767768582237832466452972382230944872128823867928693592456698068905072774352616123303748586730839821560601306070383075301120527722545555670847303730150949156712647370591396005072136475898566906784509416558225450695644187886820122811699329761248081187023996813806059010871418795400599455386974180325594740323259957062228983068473442141260374864654991478214723087053857060530549195749024591336091972127716321022829818373470126488252534177783631988750640336784601947110170143261714648987929810981449802821683345562201751215443430791202766825476436146747727018428032740383251748578516772822961977000011348280834465597887725977712551441364524783610535364124385193560645673037241146958527473020460000569837032673642854030328615306028740068867508427897324712604871699638965576018758137963600800730530616468690350946379307620360420749306679595217979302766299224873248954552464174270928469958379885230145282942042895062309418342651260107981015875580104419425216577181612150068610506738188869521497166084908408385195679020671585579321646468845189985818546733171069452112100395507981162855672063673331571781076904993783879377732931816535730497781927730826208489973440511947447987194707846303852703332193568589393570705152629477907569919625960401356879641971341574432549914533446139051640757826344311549084108308119274098520004654188573470597815873540226065336831595959782189088462198413315273538719941926700869915611685856088764519825658251040404091797241440293251111622050538226174774761548631055472824811545986703014326872182689969128026969771310637145605967262130997298473901242846849857141827775754427387151552906234808571048028880284620236707423546741437081804137611788436570672343182824800975944271128030606752192024869782599105190766802266353258027253623766053927074407084732442256863550732663699699844507172798107750700422009560832919889678960519215669208703714252228742328782166361587019847319602553668120340344236279656208305842335534688377757014884435523020621401953386827780098457817439844729544888372264976054159366730075205540102658648162018664049890142528442419292740813628917592648731331291146655765236553069680080576571591971086561480459319890146571196310481824617692501093223468389578262806990908983543880233758888148542349641181657238426203931540454038968399688868816653796149989043083775003017944702482297457855383020476836370675328834008025028844560532028687075989447708834113886859612196024509348486029845894887085800465149393779474138753275720980698049912898216460598462613146465139091160050982460632828044499432007009541462146221729876720199558606070506102144875577815624200008068114436969682627834839014530587325152211573271674148587545676319062469297466129428490696561346259339600792808742244543003567983799892322824671950932170071002267141378191975529456232488502867268004520421341076991460920551773122534968128428708995224771320026428370497710374875061376762120037289827746268415591842490522150952653719567319709248448368084831076711790012728058036621265538580954515671196893533527109778363199724434454086632426915904728254249589097102805079959491451627330054532495394728819069149487819954283836029567367427723546130553742113007202271528411739557440778229114641910707629001827529483113774087744623727540669856221938561295049136870436255599081625093155494472262356911879399337169323994971008824872849778497104551456052057491127326308694596053869243485121568908388721803080887507128998653039915263887827691337277640617659039803249934968766110417122045163348998484764764466498517744250541460591925631566205711784322496633366909316623232821009946518531292488266418482398877087463415226862629001301609447887280922951851794928280671682317306115332110000945771279218772127376022325798026095434805955500916043811687070970188459766933833904179219355060517233250325529322926551455399531529179890356570948073356253304260660686703757578510433522073184302223643004429193113554990653702822503558233268615747197659315182853300338979317549035126839043600320555411342822276926463663244600497936706181056852091960403879450775684103830409999590289290466851090623552433065241511780541831637852975767371693763156444782830049947406652708102007987798397078878291720070021108994956562852965349732645323585913913907007880819217965749652419019454697516860993055635803645204344554613765917666015194243855974755132049995062777325058412624850335082681601241848990757667832636120493256492711426267670802107352308627818798388265010646536738933141958857435384661951026496339756793322239362682527894633428264962342968140617673613363968871342087001516006020070541315906341205697916248866819409852120257127863122906226686269057409431820751070081690715288753917208993188117695135195706998521100285634333623497550040329580585891539682923554645824691306873009296073514712737167393291210234721095166806992592803307211116752439823508701817416847513440715149507452995212003370415532648888020305687724973278982976406343672576514358547983933055061779991341464608257250823526882470287567296415410676009973609084614613046765465059599180164816898933967698326682688462081205383160074322826906709402616256940016271419338774863410198096900645623273303794241001605880527374682143023953863481338085743790711298905073464607352143897561873982768243436402290258891611493497943823295630183195867294304095923865585022857870833169209092597955760508718512934047637722831839583338928600266886072282822780491080956106860250976818222478648205107646821112194146246329457071184825144038319666235171169354549406817860225767311180988822099234860263875630618272595001309976223286960513625614326477321146059367185094245515482677385543935152747596036866821529180879138924207113812921093978837376723948597120230995207560385373269541788163613489001342810136619994178695702756345230754897556554926413044252240712674248352750573136354771847130840497968822336226520245388480817258810862458385542593115807058165789921860629082618603263943585708858410895594101430081327862953817919181136608250844326013848237025969002492246180741189272165628599110610973372369865124255563365875443285835154837227266334059254613778073165152414313794048187047408080368900034532105531479527149899394512165289389671758367522130354583435886410923534343889485817436597359166241427962272266973072955109262153300451853588153419073531026179030874793807479816668533490640673376351675063924527048776114600733554008270937206423573907602213793216043779982122140136300412070822945466924481246758888933746842734809001093969144986551579402536050155891623435846274084448443547649916398351460812201550914457022200000263674134297384343696483211359877592216000089772671785152688587663877722024341580695283773092965476206582971381821300610529375897368453657695989698015168093846886475301586373210959734066452956160038729694166138485675118283395205175475404147533838285896487073682225550505784223345400675855488657234198803022975918254980712934699658357141368450810946391291794508279479091188120272399974089424147927524595245471725290887092044951548754701561998913891317725470267491774110127474754938186020004707499337249147089439775418042552620724785165712489924927172423451761567735313263911057940763517385319077861522119892114611550619798923724609866056216355727764481587628686212435472214900607661129075396388318767767372174754854891818886250962876838928461510940383227245497687760637708292123795075395034504763901969766355407718892406712427804017980888347074351494601754989187219198101350175624945936517746679917786990605119508670410392185052730215166116313507967024267740257079274218066957442917551829001323170642664847500968459929418932327325965302768981771553917889691054206085436866179911891646050071076224058154964211232442706930590258333633433076724203721386716568970649574219396571222428887677990232078828434239235315761814806562249203711102322183742250248050976213819574612023943623830944294970233423064532330004859263080009876129679964212047795682719932618928220572898910677924296104054549172504383786858072525907274680965697828436730720623741944996109458981157353990046244162075059230403815917708623123770139860799446060457964199972483886549646691910155261026900279394313160324530012332151806119312339402485300011761772152910078896301626807856752771879284752269284022160946929594820797862581493199276925705035091702207716416770443389594932894796835397346949540063673519351488202031033316357374967131841152917945385364445433206014255695619624703304981887542952079460675880570113539051972387866191331023242002481073181031345026865920102209230711625272189935018853061183387403142445201078498325812144770598048614246600530280679092696310343614498629491973817034182627164487455560145002329386557426927666271006840659295304129833778628399960552198360862770098296752124418724418244506252085118599080599493081933583966133718393710401596596347873477217078123778061232413438818492528047017789055222352883711918368602535138888541381406291898636475927263508312289796039944195756480620706700115053828165947819627372625658967900314539938218072870427131865145682573566966346470538828278695068404619476262326970520086063235740395024101268358279066302254540075013075087372191060061984569317581431715418287241884988625853810566794293638726494785159412577731986006541299386311144872436255527957035938850816086163536060539986953257462140305382627342827176495911274454328604830506026512899364224759031635829499518279461379481968414461101259478701680256066727053936176282371106106930292077842127056791188570891210591084064814865295903320767808899830703783116353919353350565102710938665100227458604477894624991958197015677396782552171960055455427414788533256836538930890643025395083465908864059596624366742923901430328599758355693561203517820377225880285232626273875597042230399736544790307781083828627179420518591919057761023259452842270175793800958428596588087217556729086523855659269661382898203462534090086108096740425651406903825163627655434153735094804402832775947642718225243822913246748304772657567683911978700095784598396212934117614518032501215716354169433678728013634292142724407161915624377305648252489130634492352058524739859843146504667332635121190565543093720079226764714897822829829501620151443502584028034463646090927556519690396159401588804041695187166055262489629073793784815682022954929651568585955263679733317594933790786998559244226530507691807016668259111913517728477489492260278734845368731474073266211274807035133434196189601578479903841779520847666535742216643134823748792730499219715868782947977222441625654250335971389181274978139042512595664126020934286756880015848560987177546379995951764819749220817489549276310894700765325622880850044109961841681036835166411609514557665058947004663035292835204286134452910186082838086552419381835829787702150223401595798238962070764425080004832971074443914990981016616310320339878108375284545887792093549683820105565067238023251197373010089280692415946156018029892397190393954189736095629096777387782763422955701705202446706107316725307535251872407060603136503514617394772439538471062544453016435450937124795731839471300670075181659349544998693713526219587748981349895847143948403630003474578957060871626417935219064507284279120133510933456134371886342109983824018329834437444819700382328344065819111348123043246809445211806433302798988247222635231437938040601207324743606059390010383314154679648471194338152092427464751833728100043057314770939457452986380566845703369118389072539347872675703600125504074721640259676464785238910365205189702772310128136272803412163942709195947142845571366621032145290037376348616029812523733981865641344873144164643580540995001944867771352563890404400051223497342269864453958990545517856030171937470666891680418470318113529995650148844552695720714594399953624451132985048369083924863808321548453258577546280595932548579134697926527547612075918751074339949304182986062515795715770873517153053016462689041217977963626951443242370206363214499976591358379520375447085024991745238001350406568461027586198115231573403461007592518134753052144238379895666880784620767881027127096677861363528186945480730396856016044741705695802220693632725376246647215045561944197155705820992282426472042633976823377225366384767028153947247823294480423850533792797377985889537284604608509268540234284076216173994332426662247264226317555603541708247887367960848537431202348319216450191100979239309672236069710271010123510958391086898082504531364107011398712036202355009927493705915877701946750579704095431247470467283710846067353499483518367082940515847657921396222304246796444880125487069458455114266768633201097589583183367367546824244370591228120740110516984349626487077830425529859918587467510731514540137462802592749286839494815446128540232442602131612166243734896226541153111400064581980700243658547178072288756043331290537132494079390683427608564144562527364279979048422386272761702368394942276801038771440029426144291892992789178947712024033322555636329279873535913068279858930091321825164022823834801945962126386250935995916411784551821902379038854908214736671985488927004512305707630464664777325569013168027195509568918579785197497232695529149627774009112198440215270494956637948953490563089387039033000987479262787145085216179514875893071463914730069850277227232039665926871808487310688559642401579524662327041619490570232398978316233658318381718709726888359216785328088954900314161341036998600681708273831891658286180219085920076920485490220486029722623473361218158450123154050996220209163805689345247224213502274462680051998599036509934996873344071625330128063788633323944962809587936471977365149517233178985986352638299937641073080698781792031625838612112028247269661515366501722882452916273135101384985117360860098772630803912725663016253203566947404363834239679117731826938819523455977108440988311412095645551489421839780110402977739556893026947242709341989815661461777003709698496915080164664193258038620719501213185297579994909895029194828174042156234741280854575043961958946849687823599629325737810998443793850833981486655282552749618714466643172101330001310742892342035859915775628750608826954939412027579281794461544528758976980921632174188666299090923272069966748468849368107473222123096115377408871305104028899890012100980134494223476364412072211419245018857093524534534246824279583831934495340730375935431957353305487106039839483331724955856162388170545442501717856689226743298080086678203973972758363678780006857367360351012044603750963704596158766213644405685746148054747684510537443817078916755053825945393081364018806350598740819451985964391246334700417153314149364513043633762805533553880932475857966506846346575776584405270859241472977900564214491303194459370798133723945528648263248514389321074316524925052806353198604876124015428942060680180766671879928751502731842361488879798135172040887463256617971374694287456442351097624068086276655335153852003651881390420668850701177580888407288373325436581336661645809597793977297342308249847508510280278651148792809443092506219104131427591411973288981325177011631944790551518816431918153659171970633149752119731326336598328482981907362404022314454765662831237353065272482141276352203202058503007530194958173658175973680973092760188314274142523677645466972492632527399826143281271905466049512768688491179148584520570450167704151723776505357200659848619889731714255893989742277681426532833788169216832743428418492233943379665301939585566999896321106593934080359999735415731831329992959323782725675223155572048688200898893962585450445163146095373237575141686128417023456505773435201212119588173978742070798174789748000690856206323208961508664346629195606675591249849751467844169463033355383076092516323896164256188617852763537151391397475627009398418716336193759540439414611196460039420978193917004870226913627570311227027107510982963734458310031667119972341681924063830955933076323101997329620723069657067407364675347409049087845615563154203805302693446287101796597338793529747175589970719801903576716546233508942652821983870319318670896650711291883391889928196170694613408298335652592662918035171986992790849888914281713389918964760092961149003431935617000301703114035554903021229251346293745628847037409768391666736705652843326991718630260090173300159094830927791739205404054753539274072091479171884212812891601310893987383067898718125149012358699587595220746537316870877108573767172263604590742244606630419648397404450291845126917107704771182352720810103623334365330816760478970766610430360323481938699302423692521728558280817688835380062971640523677610135110944489711511511272301108377289829981165569006143511833103212846234745004974125780675840928453380894028197770289578169654325625905315847699619139593027435115094247954982411869435502283529606467250702173631525430173899739375769527805941522495773042349868107752075531465989647808655131317471802536758196655446324994014234746993543847181679160360217223330184983783196150803880601461253565099752571675654840722339634122409538311332970371217751347231388529052093675606346859969586066714561908411338559037634266688201649778264895162254343248620673952651402043380812070006056706598703551786163714945094487066590506340760946580602584718757374714531842357021824340934909703440913649069385363145429101117184231834784780320105587878007885493418539508883398393370005754210649391321480656781334326038460911972926670303854516296549202201205012703947797834704030198541930752095796499515447393079515919006260274794164440163243313264361533889196891209404585909331678548054971599216847685185971226946930160963798036377367437404749811251220688296552614124251201812533159712611351324136844031806570504065852964190085229764804685973716610762099296407432029379014297968705340334442839730713901988034702371513801167934857543820446783557862785642763599794038068864706128365798955134546058555813841056594665157312563633266788488779791419133848835109724831573454309256293508315673420457483283811038819428756762527155028022510106477899039745059131038603501474862397276305345938159604022211739702989049852821772850346005723530723089490276664685810197370127810432426708369044112734905565075460411142083299695486514906313864661314055298382352998260498490381401148905292888176884461770562076391683185355957625519040595665261177691162612815864226018498195427397488906923119063063492514337742845084812352348145401207813096572546475402093691631834905905218238401503751835782866364067756776233962839796725974561935522549069438974776304080481022275150518690300573321693374860509136497528679838252129824519645028935812858256204472801308273257053655244927285964376619236796938734657725331653485067535572635278433800547404761879155051383749169739632511888950483335899689491468660874733684658648685134548398212685325005295227467967661559449938019694214467505693981080475409762623587998754339707200509155091647741336803690973356804155195688596343104660505423111993957740014903802178381079686109970726711246983444249564763172609350774436919550974621131437953144789747559300425536975760161705540759687072343727006267820062873970699655192069573498482361905850143380870400387794044666802624760229507761246129708389708155998746531650273992327630587486795289963592893573500327735194634361202311769362764143211069004432379903287863754527553905824234499034736755937409744741771878522157250316925082455167569751731105679979182144573250735274017449133675190539922219264649696974524394575914021187672153211929872987068761960635634151577985161249198824509193085909698311351883260600482742968203968594850643342315749142007608072113125732694167827192469881068685828244811923317042652229268859634584451942227806199032677212831141582877226820423357973423071503650515802547808799023619124296107625989048037863697482065750671698169237350476200488010099253761826576023222361207446560206343490888645638820978366574781983529587194855821674839151918234844595394753784749493363022752068966391120829421552438291503806538952856140213820766833646077559748755033277582497256658968306756245358324688773898483231020292626033676639811704030461704392412890780077853469762578622450364849058371612032120800851679284965004648464875768364375508757301800214322921968355021930308004023844406667416034125705617897088927034836487230954006622249189765231539555442187835583647713893350622483291378446013280539321843790462211683306955620927829879403149947616336375344001869565963155367710497216301938127854870427178975704286076882045280063711813199482612036797430200349401767568151592421231830821420405404435965041802878822321389760717582874089962219895240301094796103693187630586769327249997793060322251758688369140511140109933843920796646844122470807799130374584717932687226685054822876036549843962068348350327439934310124647801443322729038913528116498695750852360036035396367392410020383370042792579997620241956601023947722957480587041517966348132890596663408134256834494805983728384061247089746906761023695343094294911330391314070302172450850858760154894129255550329018082439765325371394685428788201556717523188961361466751603140856494901561356069070100229203201002873839954517372986701326492233303250984173350150737896654262006536383220023082711041771777559346535820366374367897066969843374882777496031676538576502208083645589053273991678383831901068780824193351866363588118652150372649176560137127046518749121309245616852627337407803448200130017896374119967505506600800084587433845771917753150464920235883202738258710684945216835216261751551111353558045509975769134387220171838863761229411545804550250121727224010190840273508571710412672494106056111174044521588506299551595771541040789319632035058332780461613059015352607118350153053578128704734527995295245371911136847072678283089892917591280799713142658452063024103598197970927851139349033814864310177395893890613053084563076895775011469594390754655537487741847443248770925485115285739917226364389751318774924465423805205720034043695732392047186162758553692674845144753747338974147511062462345538769821020046805403833631978806139150678833181222353927116017753423851297355252736878360707621950451922440498433662530191184271019855687327129715634615093847116233084823238149021728205401871265047815830617933198968329971504899574126543692619432328536583370022550073184111985646270435063053954287803278495756692053937973380684765472419601032754485528567128014548670551224339319277464484555687216718981809255913951374590802647274099655037652913886637358262854906059264172740864481620169261674185625278813127369117855234318924699098857142401271758533135712779831228000148258161779526553389492294795229955319094193056547922126686796608876277592913222801657192995842456893524482715249572462489883979195223209690553234546118103033706749704613118389732643104361910306554808371743144040409908980120546160434569522551502311728285838643977780074528399229737664449851060735280113856601225392329025649001038298847351096898843436604000419898160992369279475970290232109030205240275603515586106543298096926590234646540860330914874551510039658141296075140204902721864953273816504527378684306105215959249340655982089823463670522848732754007188545400282917581702814619035040434677648026447493065951813396849645165955339668555523053582596269113980363706401844979483206135702541201710504764590096013102324767082424405650642126396108263506601201876123198029749316099300281329921379669910122677695862093450529031416701990809662381535383302177449144401209785186957647079776144241055616786983772693497686875680028153618347044603360730126451455647984659964665217015027628329288448042718803656804665633139789117683268579292775325481893091241418151876509678447289018865739038991273090963462498948715619192413996627087871899003500276752529890243039107253821511693953102813581184737465599513188762252435037106379295374269088367701329577821940089367310060289451789206880798837798317690023035747305299064504863857703184996800211752868682052243402311679622809988029168816711013948336039596537216923447947032920133164636418440486275728085258428465941561554084722133241087550532564428755671446375550869834862752372397603026962143657203181875968208061281746842614178938099476590212750447559568598638482797304400681182774471104218540149525548929802692477124198757458688807573927849165490214944966054091537394762439204332102732095184279021018065525622172847351668971514861912039863978196185580182888212361815081170858596048704876771402732345041208772093702830609894204150162148579658032729463796750386573797819890605432281146768108725479797209070901948408154602889446310714582877197871776476733970093281683720694658711685233256364095853021228129884156699749848853086916633709038954044210417215145366875887669261297937454814434705301230020881143256658232205314733163285661953044353870721708769446752787089722865090414758401493952334744765335635689782233403835863531869089334756491905199373752609502921384645247486329180512004679374986947563160804307824965501820561458197379609757900470611999844924722797181994051504879730874924115792343209519488907324371912993228100244088275958164871125249128094174518680506270278885418021947998181655268186792317322233942223230553631648497565173363838648982485780957491722621759150778775145052472507984935419226452320808509124185008748224057489485982290966450853014701577890087000772678974697563899248088315604666550265630087649808305878198523278164574955934594792096638600661301544586626289754788139461030616175813564487729164536451976167869647452391631176940995370070390778041828535550465545576134740414362367707748600789883396572882511945165870686902293179486379411725283223639557319337504098027942700769055127212853541495926482103016729058578937614505557820204577779424735124437124052037260942239352528149463831251312794948119561488291197061684072423964736362517480029784773269486160790169392026863844847824871300336734245311037735679660548110580467190924001582002547462129699751169435822142873166061994993074001443729388232690280951522358695780619451050474304775263578684393815893192695776383016648814375329667154774732654808017586587204478616799102966730286026669726383701751783533419891689722640871961102234798230524403190309425217503325324964016901368517536007166015043865905413896197350942941165879842520595521527330054631410586161192472768369026724323595218260162345490550103946787432478945517648324052451365343239147131901827233642981393491058716205692575131359643202617837866998378124118715659720952674900579016820442383282216821161323311345080817330758172628155879266420021190304047845656089820104157139995920905747389157567453570559001557241147775053190257409275948644780281059795525106204470777137246325432146031245899299976720809358485793603498672254872502120093554046856461116275059308783364408486856420082130425068004999300814392646046203099292509651067159370916218034853608138159782941244925133402476792479267910186227547714914380085846353479809478414715554381734542881601455417402850537283142831156887814673125527076883737304876017564675759431504664251175337498339641702386618691870136214413356107397318042278433411734095428656175456113227565304562199050440377547249308390503964059437363008687228171843484725865621697442889446243343095318513083507910169892791833120271072366348118207427569799255153815532008980196550077275934094303854180642475112645810575774383308389519510011094335317208785386289091558978730964882951939004880566376193296905440374479567008833586740151242582355838961081967825035248936343184396081719623251358672128087488009263571633716824827061294735782936432212366306571517373536346840980876854792716924637954140243475850208325008567714359402033891439927298873870667689832088201684270447539408313469373246981269469836824822580288386688299468370259327249325861412566233719519466384651537792715412913862627283953894765099015037010444097688635142050987438360640572318188279584172017294077838078702729914436948343383036163695697644756033888509146619908566287966259515226128429832606604273718665196487999366351213781366613934531411440622917687050665412961115024553516215363804765963623197937761988488885778680348514889936910100574057018067293861675516968876407813763667146747287885831934146189259357244319475451813672859485152857136346424867484731227822627983025173803048359679849471124162272469083125573064037397236679679416565715203671046231100821936154414619635665315900852215204145365924536347486414467959607081574539059505941866292917646117498554129297472690649991328299962079850328794104214382199413865513811510307943464951090136554809071303150436204805650932650275777969974121619259329138505445258119007014770005579351510016998400220149057153940893216369513750454043646741508699544309160688408530698979928226045728100492887341759473176186065106135449656766610968767542748577018856646817099583255772363922108448799181308839178506932438658920786270325222015815272411661988629310795342551135694653432118553861075539585105693874844873576324126371876188991775243459064495082473149549119555309509537065449080768549309553894872888951203012232657800156594288684858964325230175149545107396631348289728861906398245423287173327411991834667060000168479524821638899557478903501287510226060782661044193525105527499612633124052695058419468474769428908940873821291333830230210957461109431203076454738661377875365209971314220766009924393129913136849240077827404734939822851150993450196512430329079037235751456139079618733182731529718364491882953043302399006656289075544412654116280155439442112996872502658231773246256699212473327429521241595990715227139904512778875362314668988628063803770573025899560287924760508287039182605526695612524203295577423846480960489452460217631369774937570618770581156241877881959145766828201431279208773997283038528212430754620894881648295275419020067240762409607120642184396013756816472800576578126323087973201758492763167168814797529927819849772016707934457099492921576271165554013615871765917687999099014012534777559547077535590376028962796368796087280488451889090755120987905546819629314516937736126253937495312617912887141202827335758214500259341340794271794745351080709157935355818326852160950399176604798535705845702032868589516105548855553155253555836063138494199287582441736483362018705330175827579491333049324413025017742575845139541626658934051238654378607249500494449917514073376013582454573778646793648615803045357830450633027015182519214723422658550306760139729277784755311796592620048702102718922812599331895761325606522481075477763266086993285841076329507771850697226552654517209558258942275666801968613908632532200494567142910660008513493183620084331037012245822946587771142224209110033041577648967201523782232480391312359994324738875529421324504956397176788403915085923299250535127271460300726614234405444208288466344504903944220920725108347506440254988447388988891293378715927496320464612132062529159036543063694547043417340737076509408768649404647184099016894314779489574070704295270714820861588230320653089696577304497066543707343444074987339387656315964503040731452830635093536107335234388271396663935579359977621168463755744725004900962928505952053759064313567051627583202715242314476449832858735866505752878839262945729360025058200567091773228496402550003542515163429649864091423365632623946350143551374760968261036163223187019955998830229349838125014257594672320507149926301288641473604388857524783135464788030961603296944480264864106728529690619107279370449531514612101046583756821675997913146798007456705328333671523505511034051040409842226525778247724705904096767296191282576558876723958056183696451861227923636497160194922948807876691022891936934650360403681068001462051055344502255364247218370393966156307890213315371498871133418878647036393585127465310217921873931469446279521879881137310429664427078900376724841768343549533177732638331143303695232395591407070507554218704246829022988162252353476980180286880483002359131917268873052649466340409859343187237662999232395719889660980388550045047272909146861565078289120131515816210242562542489252972192974940260616960832216358053546936164961586671478902811747623653492524642276004395240569037746780189370968809188865387092678334430092640677070264790757765719255305655436289300737857749660855528223565325161245631709208515430497950279393728505147534393570382738839072386817965282272933002339402394099999534494761410827593014152396658717608559301190785611611804157142076620889140639265399994809873638872448701551264214404905255401253724306899600038025570549774972553657709486436028638122612052567336793728911159571238045418785126956964509262555026705528713003420664923422020142632221365886284663238451900035858420264952790701917436436031261465139672843036162266840911852876644625231040433093857859130292048152891101481064400425132033549459759973948047757042975881447046943166010239074273411857041194661761325907171721471903624622722972613411931971815413446592363353704178125957787534447627288461160006942235856023589331706269436551435631057655126996022905822900361574503006628220003537690992601885633112518658058069363672437608956855954692006925502394742078920388870189086548737025103212169422548910982579220186693131783865160561569603181686442021528758941182335363830672022600449514104129068710950482068883241178633828341936535388279144902553558788891712868847166371947232101725905897461341432905504026981520788387892728206715965281967111031146576196830698431698426509673749413899840016740835208746419860023614161832887793518947114957765945817238400014471455368505308956794642192683733110568229120461745051964731138949829489725335469634980241397166703793308497374910339238649652148204717457510832818090792008434379204139385963914774386229815836409574498120959263217510611153011860114703038648294626692766196722427570705094436481118638365849659093978178582360207842205560865126652364560108476442923891911458164258643620098388774470471160149301645400078405065256481420485186319229261025405118586100957434961524757784995609293338472846555710800230911926193158939104033443317322631934991630000217675523262868360069337896240328398309610894505105352567277622751188251525132296999689804437738998244218349776922649238905909985673292189505111256212022968785883783064373905153262753312280363520075765250815351043202881877166410102031004729229654652025720976457460231629392416627471254363177616363595966508923627280620917444908999013052968005350365345148213286287934970663640503234859982799237158381784506892164639029766588910037974034205519800902822877435491970214054088474597775860508440406332832301743239576250511845196432896276845689471125887368429238350341326724018380750935594992876065939854751668339873646467365276398821936949720912729842585799799386233940357602130379120859503984691838454657189608461864905746039187836713707609048314859633523394283849242058452034770524645510780247317796851819115128499556486122950321998369594296671906838167794981328547938110709406889596480307276834123868191409983979445297077720070697050480489655805119161077735048356084663580180750517959808513186910476910787840592683856837451301074094445524056679545630589663770818515563832832410209030095472239637871596912864731373639953690786719160742299430597617952038838671620629188647406106718421307792666861673781773708754397236331242664986906209270219815218626310513327083508763687559590086416064740375265918514548018954577115739554733389415475195003248157443782487343941226806625993549914291380297005545582789005820779971050610677230882583030537670818496194073067548091572553503848048217468813648642929439590566615864066451963638286010575481956296901137461114475053581564995527811249595963401042621037694076869387175064102311917227368146291596320685076642576664311836168916010601521109775812644905541418774615525290685028909149662027071701807054873399337577645676927493001346687810877022420292831900927661717281878489980016817733230544876664120979768595948674261235699128175555164932208252634195047119009495684575775409166388019063821034892811604274096365684144981474397874686614793438199866729662834189951339014120898723227210635667225631453434009722215149827827705894753123071020050574480747773477535811289873874492043080786304066194392156523728558372834053559411117467263650648443535565340601751515547601773786826200927841540913491839705008571851734115770335946453288887896850356782485566591567001576764884602088125477371325275705774168050856949692979415257247421606741117533251547549654032400854517488203664225916156926209038618134604081553639117094483078531940925263415460037312062832495934653215194873852987236494876939979043076311796877077605178433703932388664570233934994342826098686033170638899276516469393863730635415262631030132835415514031421273437693737129480786758792131572189008407035263766032088319855229729406011300451784374330601946533360166552065619077170813589111410688824699580091267696192658819064583953498489081742079490631169743110269378763749456632026113180464454859404243698204547887881561184324992919394894447016791405496984319646705104596396731419782248438789475340590940765822792572662113160319489214965362671488165490543075681046463563119064521412339846644194159113371881175756338881271751497298116651606421758904776433073848260214858897042457559513149085291407536441477440126462625069666440878532282639037390997435879544758682713984635200589999691670339007334031936144705910505189666626598265894197371178903255075860436127384967283053653571490533120098725640430801103637051549230844081942926658725810241923391353909794059655754748082660575389698041202593614303512779560448640346197967769026287029690139758285975676558049880231981030843335813509197939437216717844004151883530330559570519779956030391247573671899263305698694639418889223353441577963397846865341361137368774724844798173909246813759430809899881223453821231226754124199601616729190098180953266909871546830494981452111129484016757423671613718799958059753196051488247618232559203331571814414663569297231066629482387810312115746606885314810042323437890513198592835461094082946770167995210993174447424123173197465694262325666770691343732949204090347168831638587677948612232900779513845393602538246985840293001827410483831642927408387390833837307451150748187198901143900752799682059105090481077876307984948454937156459935044045468717485817404375820053182429711629124339097703571384555986403207445443968881316717903448647570367347026265876226383803105334980674689678783659354499987448510942756142153032947797338207201188537814792554404981876037219765538423860462177962124536840454855118953330959558202555098349498271342210421525533361657273406855922430662147725045469939607759810489932341479195321966357244302530819157241856485760744846929056145415366759486329703965411588099303860609075254235206574571258453776366195579002002325370280251082212653822978272580191375548195756789651689015955678482036730306752490172457241481260993334521295417149784448595006251481444807528792841697697954896946256812186911489843394451190433938938490303387742545047605551162966651407553715750293560313510417616765911646880023711248297723356321717261516833710641127955607428166389534890118950178829153157123819480750095205419447997581791817369692886719913728879204559017001539895767886744985030490737034916405904104742866009307842455797076702324047433460363977659720605298656518356510649024429332084794285933655805270413363029806074959400891414032090452830521510717062859763788441515711711107148741859076628270805937819710071355871950837103370301269332109047089031745667928167837822712586347677099733885456033989132755518713082749462145215624060665753727744638179477667816947778816246091397254443928880837805222865715322710045499919160840677467491987959780250085014580280772295427769248631577840819417150934206772573351260387020179932172961829529407519021672419006081820823350889404085796561793448658979627532695162737804664894485756420093720053280892054827521878401176221604390067571807257823399608487494062795895009009577607421742677500889673970044227047167908793682025217802468543211283825211299022234252060385884740992880956169034232684148916557540071168375454307219470149710297128766300104136322079687411222543562046600406347410817829476266236772329087925484941182791706098600880528568543652212639489910208734258505950666019947207382836576882623156347755254014485762115971006031676973951834434249952906329109606339342772332792174979083659816582509851484518261927899085428613219960291783609830532721368744727963364286735350180976406265858160040086397922752400329926112884408982648118607455889025442683388870066478580719259307454849804195664184425822608168779430962721358177458678151564972734586423442405672605323810037306072350375997954691199756038946903332162774388102971817929853548547381873762421539413919665809136278065027022835597791166919040725202318566306095190719337466688179634384698241167544169549404258814757808319088053879507580703993221479871069649524525328079610126743045981348781066035290072168130001234125463942210667586996607178668248106560104648227730842695086809056558571006672275159679284588422531001563600611535156975150888196221856307977252841747383346478392736741354642522777476544270336532582026401073538184036872773000728457185885803056537883509135385652725913371280692004153561917368998727353623625908509963184080634858996466259208251005589782642673210900351943076424724359044032286946871092633755664570128658187120835427706932712423848782343716510723009202138085395041810217812072427400336939876138524110874060396648623523176168620793974903580048705608122991324568090556036354171351503474214256235423585698007789205378258932838780525965326996643902235426110873318994724061548132421041091426571222494138970382108084086661932542160005356527282981453874036370486206611022483881471618257754373885901555322453227924820811187255756160610051052712547506500903974127912456776782019235073125557086168128758693215377466015867907292424725149085183891963660302570147777934771860844356233264430748510181432433658948480065207987346672188494857651939444335609433328638588904993371577677710851705478565716967783269570314317940656731273973840221562017034025626607259519876557103874015823932183142050749129492755985197884716009043263620823892757391673308724282411610700641932505841141105473020139924929455255939831470057803890853216693228092446942210940963703908910333554801366405331879846778336403091699487797974538216966516692006173628458391538884283634748707997387813631681409705468175676110807349926659793049666018634758222216592373430892858997792514674342309845041921509331922138902236223196222376552127162704873192958627027979847803269515278117428822440187844148873994134775302318534292895510329291893240364718783559813648848554714811582530179333365186240643397269030264952487641326286886400363185154168105421672050164233236871382853328656412262785217641957593859541809557309979363094170221856241096335115585900234721910804757441967949717249713362522421320547201882173181783223486269896038632891947621717487215089027681604370073462306137675401837517670052446195065627083680567421090560045451780034232083423619222371111919985248052499642816005994013678430971926694726094528990207624247588268006131663753417803670804451210140553981088542659955734107997214151706887208207879880779744457630091165583190524296213923818773078646939596176476011590516391175519493488546729010342536238389019508454471807443334678936636047811635502580140675534496749622573300344716789035579967333086662902041608053844017588746187982747411165208297094685337749093224477974500731943085575604979852665966834449529747032573427342370528103901719035848858194050459319981375437465504820137518179236479435982656256334533937455774714193024475699712742006357349377824779851483541240814346627857809226399791859424233279937036841918329989592671647077781793546548212843444145048936776578623884719605623876066155068856111802410633479044692236088082350083293354132702493586002219237176857848605744529615437898106831904221682195497168908546903687341518683849232191511539912908758556126751944922138513074115689224410617057670666444114696949686391371764957012671220973069809889873538517367845275533093571457493664286193264675382608035283501153074530108292810771345071030959101196377645143496471878454112563861791730483549488171935660926108544877556925427392572021669805808140677182422074524383720934730100117945063276174682871113636371120552605263360526242087395994987828129239796244928729034280774061281812673001000276596891686439999248095283024658597326073931160070191007477454498456451792248641138472426890073228007666822084481171880612963042900719915526123213211748595841568384756223426148051262585221300262263784769621403391330239610332605125539640387616959013665529699236099047191147362206185166822316983712816581546804283917896140527025225927736624836005175194760754822316270397572185772249936231290046553701168468152612285268221856020419910136645857516072655902936511767645706527366778090338552748252780243154117300469803006300483716072433235998901806508752959093122281296377979754759969104868500998210066663713894488934235966858156291587204733808847057194479180538411429567162831512240392369630988902147124865901842364880336912537643762648094998470153555420404913134481606995601043268744044140688912365795931533853873885142746824119505349230347081761660117173263259555312379118126182968426823477953862004019063868449276775052676187016582828635518935487300412046975838786499518836269568479268729404296796653180923721995175192822469858727556254100930176204900044102927636268760907995482301164076447149500189414536313417761519260009321746000027395297351785652120225401467840792732776212468581053135555708129985962386656136881843326553392291057121289385996601402365002601592173705784122756348938591264376395217610668804761480013981066867453436125851021986606180548441145200584915681294229014558390600897362140069892099992669195176144638433161738597987814336696931757090980026130269217726400099912922385982852396109920603612444921050981774183085224755264479645958851126186513289018673526674033712357662872147980773648352144171472160391325531617596702164355719935040128774979209312764548171178356508247342804402637806262914158392130211999354921075137737872416220304561573310619854817853132661639327928289368208860042326071063433777546299662739751372316230871554209261970941106456603725073704589054392244253232740037650645073141175358405716707059173564290195202966328105177333747281849656189130587857235130590971765482020621119382978502544576995739809883791097138012604817752478871558734798882352792963755907152002815849829308857846698960655665798196923102259978277058792719052407043163404743668106982219215533167720151006761805015494162881078283020503825447116594828283787986534501705036775800333784087016846573871222030455951954041292610387046841462856683564823443609459980281771350516474443397304119610841345702417657573032972084215079674561830629369406292974976282686686660166439848149683757371567694547312241151726476402695359535480343910815818800863442141481321265993524625141002335574708130353804575676690418903972860092112116097432231580993719089913204618008062982279655707355615331741918366386299340187143094648725541384287602994334122455923946910413552841973012718376941911540557077380915971688718469392783370885948711698195709607840037557987191456154765446643638305481265192050769195235833436958430295327256501560255929378198236969536731072578339095483008785372035123660953991722945728264867406426472494794672536973695611029762849437098123914774297980914139071476680366119413516518012363271823789742632363112494048841673902000443655399192342458054742337753974568518514921669649664546960121893036539929660900692353291005245639803862512364393008086833028704184268514341017627775506326688363206702913945240067599261502625432355450627856450817079880630427415153779490221577260985743609007625320460251961789942333237880109047750929609971019938951590726575269800607743986215326632895425452344508068572572797824703114043050714701658609561116584010239379389677622679473759319096645635596167235992635515222488455451830864352400689811833374078123414992343182979491483416000239094315065839691050775693009024654688034726486710037374233583092193720964273584365700741868266324928458985924791889504552104579663242527261556550208587195795637477159893056758987374029499913215408444825075129678377597126255599923631613877717493949081865386607424391265318271141686376939623375393360946540269885353940764091177865558723189223419516726221641136136086560971854854328083698099667867658645964496218022372399073927063107383370976428234133471868865647524546311949346361273086955291187673920686394298559055542309052819852660034883829695698390141190287286088549931569583295551917761646221246415154032728180103797704569832374564433161893710932826030107377233925352208213065617253397979774082090167254288392029283975675158903872939164614077247475500531473763334078046701285310691789062169213255489898129559802085749063385548113042664327148401340371884626262426610022909041344824371611590363723629354652738986375174718402432412458780548764714756603734216659660054032541503085431377315941848608014356677846239349795235520950760296935545136584847401378688431402674784318671859235460227010345177421356137724917617694625419575942014494429598198240611016213604722289674096823908969100028662972086593789264621545119883003967475805493744252479831000764054549493195718877076280551775621900620087118528120539785922076688721360471040765298935851990768279704877148707985849416015238567697455134452745343149896654955497181886868221600039279763679190016155410355885837645097310244404189058157241733162899227527300253354883963391952798142891384477321921180005918486079763340743067026291922492708185704929410041890116944160660345495881211216450012031648182546753179287967631005734719249068152191605164097536583405563765592201861492564673858524584665034521078725368802810888922206801429374201493076108478053118183971834692747119720911473740956453829138757893744100640129957408426631157246622984753349831770115936551701468184537169540908002269098018836407526047606722145621480805681582864059506791906069914055179625824325070514020569132851922779308877728538122077011114250867327380732695354747096378669433387622630423821963420162815092948984579009074081898034744658572050338446434272853498499213518029874347816242010098865722044064457654980044331147236486618157324437865221563165357891658468241931610944269088058266748501172008489850660586322101082816568510789893458847226411662552509643598440439677258287830903386463629948279263045434075974960818411740332231542564593848088275433544023619018780209048398337732821565493406182319391475002524117557506902006925722531359832650052371970896870608867499187008834861354219750525744610724361436383789189540031970874261596846835513941655334629796187175380933406133631653038289012720196396497785702123398206563176093817409578647388854395829274232362264804579531945409536872670459395797289842499808052914718235094145528555835071408645406186637521038602261612559885298293365888132400701002672687246849730068574280791395427138467807930528416795963347435286751400175169124538357956522052635010722618195757210499987117687161214189893303588320854141049890865268223308329988549842006426571171055446778999651368123935012363993481486602260916544703746382849006113971008973841815854028170300655461573741546775547063757187348166940152717594571515483789354609590195929466415426701625391659240823548306109094776852071096401560676435389675174577360228044963977981216042959451693984521519794469719744320583485899033097791753470688358231911225280699229061848031820400498346056701532679923036891950114721841517820974950334950057209518947052641549636830605412916769883614958083397634239612843413179711215447609448276201907258615816342935707415713861164591682941643920301657071747970525981109955089933481542812641890953546910213680888432942000501109248945473929308957425335917228241029041140489124941848150249558106356962799617199848598004548305475596800786978763637820462547871016063886672623281099752691597208692434184256083416466388287353828667076174267360287314192255516803709235154529285858031517392136335034056097588158782881471894587626346655749253528469699736579842583345301780698802590585600932040105799345624158110288488806837561747933778215996461407745393168481954058670201118607509923157615872187696415643987398388882550524180417818038392207359738550458095463359133555256507468959148561909658423707213907521542865304080388913533403068491701002859861141429099309197394225999896648050793072682832612995418880855704135084662025297572257718736985546253487675405144394688934901630528303006857755823579550907789826698570525203000086561205389359352978997296667266289846126022881530476644525796649234096099987940280847420872288194974026265719855599931462484178947200911162282388837731977885407347857807665523655214010518047084946317367626600072138159495766118953209514494918803792641999735423539461327392966792792218224956715315435291470256637781268864468160235499307574099317638001728687981500410341640004193359571738024818552869328993333193089680108839217475153338943541963790461542490086951916431939259992364576299290250531511171684791593733881680932448712096887363377529152740043760361029724640968784420066076152537393081535619080296190857852610203470841609628966032587144224534275950195846545066387834516987169676093278105899451944942980034216018066525235813448912753770290171434868365937292958516686818065298458955312832021010037473769504385177745650123828166697355226809784033801072919724129264873688056669642354715854694565598033640260516243017668188078357460737403008771080933258374166916563172894545662565861683250578837938094093664632713142333997111877456759515787935397458005357369516710082413764880694567879345697722467539191474153000100896031390511928641098884674107691231286368526229306389172877405015438817703523161786769335279836274850284912477090742161855901342620956281701966906650865097981522321726270633714352632183103014646867833871307321696238729342439188938516633673200371109931352919211482658389313901891665000732472887098191902157991061470454348910364113138886766320345995897097397426111221445009847567588795721994951312075909472082989077961858453184276339435242598807732547910575830096048115441903567739576261825917213430961863580498080771912743184289846682627579767786370333516024108808397513661148480895927967845581346769775956446496998114871283756416788557779597256481807804109240850301742024379097550174223329967187436368552370500896371138157691103887342538741633646306251384892375195070574630283376708525127561041520443121579644870858501076506168694967386909432426791405686046788874045987867065002492150573867838148651508283279679279686402865640280134693585823079800373209439776805061490515775903447670693649898705549814766702327939397931938319664395504550879302229206600720183714935053845890549168855977877112316160749023645314227780047848000865195976968411160341675270688002419527514172576101350184734426623767239979982388476104346595440803864668735365342738688906349323894078953417936164068321327481791825536456785118072732266064542994945490383030618975013102869193868072772246161168590148175299635947960099716433766324821553520488423198876460838526593154275028559907036025058216364879749098233992747322619229048347888062045811949614411364868927989878543548185685494685768206051131066784326026045636746146965327819849183537629200079987460402351625913975582750907418866148353483103567226707549264810313284267964583444277826085096533929584331691464315739846625297499116476425460006531040810405621286211727453176305706275552649910180839822395796361135756970160875660840362005435255097622226337979733040396321384685306900305853350835495306871140173638194048692791962769411796692951534635281283399584430243193429114316772065065570616206816165430327847005852410524551296601841767238588204343287311833190624955255888519379186950360855127836889993977495457018194925329499857886422669355225501274320994071009152140067546351824078661491550458440959776450630606308081917052122037825956645703421867400887098616508647083269391347765810829546570172889260687952152099924840214412226216585973209205559354540005707694139822337481294423290534545716253949113676970789117760328520402468371122994661403753320258836384918598706260303130533514794162641028556419592930920845919566950736550032112507501746092017492879942111648941107307514261784342923971037189155931750341170880366330883752287929985942787814137588263491911360019454541004301384222852425461826564643737893958163212526019877308292363238635228519760822317752987808134642194202615024855132065596101803515392976674403431782976219338046047270452288206877348411676472211810131287171249103468871259585322034750535687086152489293384850236706222251512731784185280683145907119892686291670986645048651607574566563349904853094258152142048366773474224708673702956985671389188137021799234161115992259384790718980698475050726145127154271163970427298014994237985678769144036333508799580995718272970502537531641590474963262371864037728924437140471990660160355574881794022824118564284485626707787105775476767757081356013875405902328108129956832089512826235907772786825979219969235664407285954869251525656033938377742516346418618641547372123440146458496030539376733171018343328652312312756138165997330797370515619947932789170595130326635715674185440958859138606538722580009837217019029499477782665361267186445238108839799167471963100632940995763144620556933169719611855032875388542439569693741914899490608985421383784992876618324427160854772026064743083786423313957617378407906532712347115705988729220611262858139173549466884683817863575456556754811310206355134569251708085084853880532217189504070649813678724904293278339425236534093923552450740265045004449164360577501651410406672721232619450893271428616356441049146652334273631397851488069895500343075189140664806636888510066319820417123528567113892038606468392182106339340635802791202512584144132918940537976517525557322663754781863822949031144852445998729914698148894433736380533296716122291916762291480777759876722772466907497727551627101878874061140673560896033954328923181097335801650670242511689867925216577677638938333768145877162961513867958387255054142249797004008064560181658412364000995609304244302652483832099478540779892096084947786071819224743638283441701933230033416872308639140344049601311815433765413377424579622258840907157098578477356484939027054970110873334984928016809887166635463415572106614108985397651787734252260055137996206709868185217207754403948312468129488593590832859366358363019653697826304889859071057712143962954522972893393306921534376842979543311307889777106898628496944025145205008335276278356692467789224785514110864186150496554681981106589801650042631471708001286665096156017142130258671359023221924801292918877496814295265179413653491164007450683265910108304027109163525768449251319584067169523755018995673256396779353203251960003318611285220360397135283723663467575503108719483576112978518207715322904968403221508696262958102888183779276717229505826494114178938260216372102217239136264242389555162390583503556433771684577043696412990433566122629673001145123019003887854599959167159691879949782236879960648027803026117718512040777064482081303725899302808580483735740143868271964087075269939066605396001984668346835153079190747897343616910560925948703874411668217687522662199602395979123490152975790748608124528194577564436527907709123191324987416685394022517137901458615331152436847084321898476087022044579375047494870162889058668209330252372753262384902680241618165996449692210131745317848525672111856510896759553343811688717022342850939026843340370816662764281859737109186884029951911915510040600665556274072373616258333671346897547799504808130246510704491562211662237835913285980728033270942914798029953678965838527974318082104062223547375883810861650754905082983427258607790675266759959692949748769120074065713775699751682381803469210834909091082729378373829457708629883986490984446933212840237093186827505724547753163094658356171595586835525532374923325812731906121255810021451042376036794983606511636640102053594789545143121023669971582092218722176999303250971440084136470875872793021880779357207151287828950381881304508196582672050670625880013887192284248639123796209178252124733292172493702755834267157820102577388938098537799758911684913536578528379030507232288727683850657455997991114935953161857514937161217798469313186659177975885393144905980868464096995048576633731722716408852451168611813030569621245894440812901277381223803125272011538257279835188259708037541526088102971652231088177959798544881905658609778263845025689205618595217028020309204304554698577386716789723139695738051956670871156725561935326946302427178952153661204061285137822410710372944732174333976304370879151598507857769884439282002966438349319012961026304453087160295450227336240101635243659310972896143309965149867841932423141723430223457805168966047880752880648771200925236926391124668792501554542341821914846201202852084480117383628211574218832139100211763346448150972572983040905210754747919491772176500540980000147274653930650254210781720177312671941700573061618634876769122884938746724357536694696990961312085854953921478413308238617207253755230510539029172663092661126864035285357208422989718588508848455538528311057671476321820148617429567743960372473941822802613381493431579727731019680280584938426191694209327482623053754193040543267209487779028431666587824827104363475688710994635478168652739765663949523394441531037324876348449517148830142052816221986681875846837861894497320841718296368384528800139706570044932137721689141564348980046100363102467658198058309594910863947105362552444858958816287394272517101027683671212601398661721295525146964684981824825827395972545904437953346106666302569830172165188585874213727794342533523444448527650822009490719862804854342651282846775335044189977212128722394086457401683666150469353293240917150900786979056330972237579417258734280893398166439167054438629253901969597786534298515537307350906485711104769726095894616142293089263711284138807446638737330921439166230221922401963597920027186963436091193365927069680297760493076089901401161895375886446875844039634462929940253896193415009820107162774687452502492693638963070207980248977461117361633264483756705250896493291352205270764934397114554295759734705190550669539173802491201520471231487521319548598550043770476826842386181725261237924892941008392462320522727585082830891149746395535861005882573498886821385885798402820916786914767865259840967810059442898850080410268391367667181946230614495090051246914747385374167022175961576598912449352313602730239284307138958635906584954073091083076854440466189864275316140150431984480973566245555862837894316023530098154895045815853636195279455451187345005571626519024763702925782655483084842625196282493760271452994988790664081554776792016747388447307810934769405799428940630089139225202174834698759201406903987143067491492119438822107882480002665339497505422408353660120341344775134537612133851384556376797526161667976364016278369363164201907279367724722310143069473831206565012694456965265946039970166275887117749826630605590157430187977092180928349122700467447463154561373219306483063953360672170432529660307248551643563060289015785345304159035508374549583036121049762726104930832057038162774003055225049319301059842708965818797936498649848892287039930326637432538734045072527500886622256333664249243735085464270596093635006826385745337452653592756218928435739568425733185702664502034667679563244836486419317648691006760231390189075028167045524747738566121794838600005778667185372386992396273988442944871673590521842097098478741966596147284856228998684747208512064469910012435529583027636028461539673194635711036087114491760300954341968137585884598824794805577438392181343990530225824920841019857412437959667802345610793713415300237442597870586381943481873474289888179296444206368665301644596155726336851286684279303153688017299164869188907128019075367692826604238057014132176471169169413179460942444922866695992391103950313089571873865674171876945518948137190853150582426529874816524376524894193791497531131244710530988823332696171214031845523697780425377064346004167886294075224990761903728323118443762639902618116776095025321044435372137580038019100891993958849994328020870021090043049206054273851375640479952581093851299056539115992798833542253002120449277792430785045705701693081359089822950089870448723736391302710623200748647364463271481719424478217946618217318189841161731525299609216007147677058701191987945764092549062682632962256907461658763295857225977367368997454330706677992325796034788350904507028685596251663545089348397736684139991557262609134343421043111127120989990979909639257740993376899362959915680351767797037340757398921132413651663723253378877661826814967881727104902224387107601811876812938095616906625692136933494415983555508731961092865197977558747770730508118573304688214966864309993750299494223938869047970451687379601742481250951311721056596898434547858773055456477456072122046013303018345419399443813332634127887850921234288851704096174902439318533189764538093101873564397480259487001457819047408266561093232200590318168096326075103537376995128605815535070819560209761262688137493233611010073222334045683769946574859571357877987985202645788278355151565665806278362164728786635073546624853589565752167472171893226352355347958859831971439090493119148643039931897426823414207365419786917339926490758035238123964935268680406319701638865739347569873955073635479461380743663594566175476933250105864187411665562254171901801116558825192817208534597931401407145344652211331133100676984373380251780246664134605322695664669182072197298822808814973456504503551670647763990422453572528832240498370480077373481032406225425743035370108304547633352381446443540304814835727912073331464144162809306806153208599921694242703555296386410311615532570295813585898194127128859531972487881667384638144179815592468973320541998268904928036591750129261690189451004428408762096207963452504992801968204170899140410580871220621670117411205135830931620355065940540497087596199115030867810597663221525199328349758906120148973728059672016595016130291179072193126194264761709142979367940065485805088784420329753363891012538974933701493947676405935116720173581055118308625879111532680351997880376904976126806675053541289947101021265846424966883066377692585537480035888159402235795074978207835975886417552629413879863918419451666112883455431331065743379649232697468076021432662457186783543469435274137200962490649473255424025194987760781458889521485091492841045734707407865880659144347234032069869069982942490075995503127822718922527046848479343188661148376765163731842843154559317543587570416151183650589429845169613386295642897224784538688714849936951459046057023140902588208197992416249127054476042690294715995307561130285608125350567288421100059315355331861117100972739835321180389813447745428459510840939247449886261137903556840289357515305768390700168479154027075051630186429340371919600330947412678769612854929027996061540633189245494308406771499160006579761588660454023847514183999152216228585863512690863561653725883802793482868810407806807955646213825607921295253688391280077977611235590411523169730170635985375717498444993766875663619179113537650254021304413348226584209565256946028086929043040873308685307838519317358909706715089416508088711757582626100983721137683745103253437283116033768742959727372167634836290052828710158003871351552570457880940293470892955018130648146315029778767392833251155001502718605346433554704747474560444165475715639329673925042591066262559772116580726122319450418848539743549589076538837893938215686138265028050038120332722696327079811936929231148087957579247556026254598244506864247701401432412216201704952168279142276753970088168194536050226181160190057879403571253236124982627119591439951477152988279720040173206304450740769200084964218427413986580859070516483200331630875094425818481950908751978782608091847105036956136233538040640770797146295460893291450440193594658763674910269056628519798925748218553769153845531313591543599026831137294414536920010426612948551868482523604600866860275305610589198799273480868286711566875209313878544385468369155959308223538435858966274804384557141563261590937506948387341029040999254123028452135928817160648431555071160604126761553726283245864378671757344318703906973531568131639184828967192504556049553194890817754810795593594146510618395899104647137030744400818861325348021314502623498605874640302943155594162016861860741668803919753747299138043164680802726531582188725691514067250133023806016658192659222718710395977659773169508995263599380780006528845099458796826306339077241057023220682628166877266949797519721311098683730474548605997906340472063688124064744995474034203535136575157400247450073035742498825976225509984995287092186169394028065030099313120832256024267437353388105518533343959649958198997871724144684381839324387355258583327281544543270654142924571324912689179465944740124478844214750341580818401660016602128145380896109831039160352450685025631500811920656424581027139356583038794017973532632725875500761724892989412862465204700799357122907514099363298427513985556222250745275176303429778273252496899037519174421726171376532345259694016145029858627353711743435499888871539628356072453676640926657896325621378284056953325281462801107476197886319938739342096538316525877995813896373790254620594372075883781839993640257663613832613648702533339690189491644401845562952485288111937085574873045604479962130127716688442048316364464309632498088852302385256820764232798825087474431639500033957658686979460049270574606937961136681781856438368100030045179759097831310546705879222022599883076472492884957022096773962603781375785912837652795692657397876525846764989911361893519721622147756249450129325831880209596677009749526923000739437267146388372513084706345158529476577179378988792464586138645667905411976064899697112640839878724602215220677644585165866169389875408970355905974523592475224023964988418576990504670623616113588913432526380869362283856796454353178129274745687369415903492529734981427828946690570071049262306366139282642406962608643661550056638390146687162947340609879990674931538229937708699417565121453384428931441780684368031104011401762134714502857621876835646490420492310321265625749541988933724049369766369245926545188184317707674264234257513771567973526468516318065372286850179117272007853667713321684233327682415672633233255368175276742573497223379936178737536584521063271003793983925741275619235905084299940378512750275233703022266791592723530877639606245421199751528706482787355307192147378986591695471397602886154144808462176396557111664751116487398653858710426400382793054754366421083561797894710941982117643536229094372352849874628415283698747622370481150913653810749336396202203003588727244446733576987730681611352294926180827220506192709802745878797308998745255178949100410843564681343618597718957407489017492520268852580326634112346560329179170610459048438695149108174539088148128482574506739793616934241286316688450850387873422253985774850435088849345578851009635421546927959761862960964315950919422154227969515571595739879277231343984539140423705061353754562774167330668259224621772082832516219040420685972674444985196965270941467550589696308415808844187971406261858552773961470673260046440649664999614558934005001887684023673819798327828852219368167173118834516484946465622050605420756585960298204646835990625446740889139447878633328150304925084680962173419105279563754974506283294672942566659267824489404354723895696815778866709175405004336287206806587061994855544907984766662865842514602955174690433005068677711578114271308918547151409550480755612810807615777561733328440281180560648734249655386278474915806476130546721865782799558948312864413614631570418125459197643482721693439325902907049700831271338039887658358848306730012896756797632783205591623341873200625259746547317942773471952272017233398342359024730749497572965628346747074216746147687502483944622341722233946165083723074761339513293702793208137494638343833822345101909137054983509238410406819496871386667689735665356312509718769315477718636176416854144795542463679930799992795329876004143684590869197637387790447227721635930950471595522363968517895059292226010194655438103060018519041286278132844648681720252065243253216870590757971112740269997463597688459507897010499053500894176891507871501444211781742653817764143170074271213687352452733023219178431558514641825024465671406722473252613973171742905447048218617705525073762616366628623977759750546891688072990705768240393771945493775056488369708819953132310868360419531966926849786064000586921039643544607360236620559736856985149723193170121379534855716857990246644766418866039257891065215086322291686708938959452373135731594747237336493336965275814324952838282269106043195999185174774994606726314867384808841652115000249558300340103014601526092829497174244825683323755851168086374907816796362437069395832189574620352796107283565829865746421463601315966561740244782578017286744480998204584094983367947803401431071195009299038902788519618932062812823271748558050233852013799010040350746103748818477484963114520327380017458621857254562118671203611534545542116660723653962996361600052194684185490752118723007045442575633950085620797013712095675420585715968369261909098253017981696116670414462980164134889829707646818424933461491138360379753602335728882376921042405408506494828449075637655744866470991869039997539796563082549262421179607312593824043819913110772832476780256049242815997584925265659327545334817071925709935088924997294600024685012307524690892017013056248403750378557816714661280899246741529848020116557353837620181017812698780677403056875883674021003413911935522103093037672712782701774556193837208207024554084901761119722249128472419286499810460421845173602904290210910731095617637473983629407215576169524958840440204397610234081646439862741793904805452876442342339031235224617734065289433333570826461195169714045988792167703153284812820956761120517874916797754176415906406471232743900149684461963299412312906676444522513595438878993377502162026824404374733846914693469121523787619305736486790960789434535878160401319569851657948385293302455484722547678077051106096432297103954881875807056669702620277338340660892713622257853235725294398481636631599649099262844747543623799262900380014377618249871111734835613561991240953982239568553486105251661315305149269400510602248914399992938647329561815395965760217105475473774007565571569180299812495994538706279404130453383785790754449618489322368675769707183930081439273461553683160476071871500925458607382081241168849120496598299309227035306668321028475846747549022420240690054397883827247564776955116292652406735309549123867310901323199043970895927700106238699718231262857592862025490959182909369393489016215970960378991332065281233081553094921297271375228721671938432334411641850372062990130738911839881222481252485474332541641732132745382278118694492272330642080001510584021542562963868309777005198067261665459643877008682634096697430680264031733738858181194264506803573177981896991286206661596393218518518083112554675217938145943252083760966495579032026960441819894784033986485640448167863653356033096017998018400251304506864077492660879023436591198164828986561638635288234503626228096622517432052595449008718406575420830011457222260412678898539645704752794761550752413812276772381880782639716183163093410307289158591655975936908830997814975912985200024535073458593909492834631014950630458500455933805821549588302243811518379358704596556949495053625832810189956789917647278248946913885724866171525295474876919981106436671763116589725779877248675967168564522302800994212976045667536125534784649035809568838995140206108894988796911421175257884625618370567576516811447028542185212020567938348783966665134771094944617130594302153248452273746286028998725536593243096185607437220662204389534016129841170145325819641951506648382602735254234613040770384957927445534704218304224791981422565744723039583084196954838289238649245897566912184657792330629636519998228495542429601522540813247571299944280967244332447640632106161321970224890386609997942932671388185332032018445452792751442655746518792505336555147940700996898741908287140580991535769782765333547273441568653470580722665991316340207143995214810171555908292894716412831430945874729179612346576812383974745009511857408621779207918941209359076719350464542132915640916275373114194794639036067058490040759070508424924384853245924007319521242367031576371315918658400548510675823604301511544507054674203621292060268154977027539409035027971822515770386896837109505143452610396242905458088904324691357217112967541138820098228194644987184775856714124027027736975918298275007187976273676000207700591016992192890657257935421300973794335516741249929797024697039073699854831834303958638514252361535104911765967982235979221353147424611830306443173230928298161660544121542330153114353163294312314900667263998887518511002398045597296735681042900927159705143915854718483110005778817701733839705007564827440960001477106644132867097505027083857167210958859951942160265087788234551154554794928687667063570287897429713167054653447828866680481659709688795523593424839162415563467815100152979029950688101649863903332962875736796768970225981497642454555850747060177610257103851857564504636493035173113465285934888154898312831877449567910212818477537554503263516112982341525090050745405440029214694408219247225838198459351998030658083663548640405141543905956842343680310237475909460630312706160304261227582171419771441955707859363597153753218529970355864158512803898912677590092696276992893684947815455132378100729690962425830986268796686037841241883080468064876548539829008511879456358795000553926048601708662647751623807622752661082367255475520782545760547366490589986898396463488929485763262990613856078184130341962456218687448377258941813582047185595405603267353962290347620888115723814660976773979562999392958946553809948410210870212876326188373043589929739635348064489800993700140837175480777187350745842098791755249773054568143383376661375999954556001831163311981706745929361984769583596383124949882772304414959009727064622431237710388365850755291487804846366483708546438479844794348825117416015547244558137792871132607114339392280534162491802730411610935840411134834756196285165429929804335030372295787926977030412561484430421696848857813365668669970151212132081275237289898665233254038887419489485742111086870280130192598439180062485279509658793953244212655436946764412715703175328809968686325723211786727719433466545369862559914574457909974955153385818630076546544741570288250707508676554661540293823666567461752846202412013388744828170877167303511255931959323326858345164779311970101322422466035555778281468425800962103069669314163625809439714027367721701929684487782645097727434709037536840619724261223899576976219160585150760444780892894560620355843825153811713453759606086614529023847888132304153117330301859888167384354028460349755484870627044618321214999864515800753786404344340399093449269356507180756620692032672001073536972888548954611138104266381769071147991583207021733547194894832096834995662869064652715254868884738299064724589217942531111881816816793122374655310493519975515046916748735223717789127179246895027248300807561341900934181921459217977179763759520278127376836644796023115367057240503628119849663962193490137867334347007189288609927821308007716887057682730026829130198214003492432354450322880956461208666618430414835770074260632140113581046748183623394304695254568817950249003692379632305315164525635013309525023370141667429771347745572949152748329004545946634836647189279949865016652101249068255124306918157477615031297439740384215170219122799529409362264551763129032363563857180554803901377276261983596652424626860609523004152792862156712537171929543312507924519231210274686036072829390756894868526606538273545384109204032343767669874420209950595989455606521455049442293414501963564951784855653819280798581323977897835854732129105061065826017107383928671603500694068829132946810353345027271323840123429319182241841077004828546961574438823382704896891650564528217876636731696506250620993554084350767116633366349553512032822763801926285523114539496629271776719885073419617960931929942208588578561668853856636870050517809888377965834984932936191079578767913083865044214799284786845741204369976394615588119175895418504136845896692962453229881840935472235794725311104749913469498033816295383478844145845382814936752636436703545913226885518050251838177517414741963965430697864589333350360587375065546463255478123599627878808838218656208983358490580499153722216480519234757272067225062093981863270799219550647898589567588332383941505379480761275794321666947691173968900285487594202110688485553424020403335560017825893923858098070678224526063790744407983503711744248513492504519190161408514750315772178882688076864832568170055638880849294654862076437958271483380605496985308941087141150237184196948583085648146131590885099720609359561407559963685877815618811068832072163725067427571352144665495549058285904076953635853978892372769314995714010544820907392936048788689952768337488534124715390945927646794812612002833084525122500528199158891226404421437215967253584487210090040174092623585558514920186657150074652158873919327277331926213235652784173267249204602176280910696407199764753787079838396507516692387196822610481316663521368591376667291248368778838353706479998240885743850791829851709162322556902517355173170793598856635495786788071903197832775126814344212508219903758280178650586512895187039121533657991250889979472791531806888533692827485874179719691147170106811952855678714392362370296915829308684214789844002735609835338189795021680680957212194183568478832729403735526836973545994372560540648973894799192389116065657504029340520378569315023701371365602817611562534996836984483368288235394266703781654021384481244158390927692084950627321981598444561991970973852259137927544570086776167351087200044096285356226969472718021916622777491521737798172296090909212044838635970974756530381090992468012908618369457379598003796194138342523176802058097926203738910668295854426909808889016741437036871090076967037011593323122041669229547568990970294802089141204904997529399210567985098423952924042612410950472100612636441859433184638426579465513113217385144590505278192840653017535446628590641136716221023806582437745008302698521637392393860959821649298211474526413639714404387993264618312240807716149491720005783606824032101452390490728640948195837133555768145195741754648010041180013524327775229645262739985509448860469627666207350064434567136687243141644550251352223726205182469320846150504807335901200854410915908983536651364178203473669079238967799246731406002928305608037234002474428480359100588836168360888507018789303553954202029622719808866523858088168844158446901004338870298100282417893366387542951604192901337297557852848886034206164297974456769386816739694794719992320727912367437413786557859201417113448392277705028521695338166554201727841440336385040065196188680230015992380856399545817009567620299419682867622127786046813580416724708336956217783826683091691243740082648661086252323095597657999337203219589139215514344363433436088055306984119390878979916335680906616635468481939385883272235258729097149419148238605184208803953211538027991390722348287769991480871518737223386289652660539461829486228014572747847518675089002131014951046023075367857630324744849112224606924486028172512871459816796546594479078156905492229215766968392730194517595305174015725794874060999370895183376549267488274292522913698758525504750288080276240477509006894380559501542774810534237276517897680315899404392451473162709116845243739958722638003777845226727119263867881855840412880684328835445554298119277945359382395601368173323234304890079562325945135988088084821243875363900694333385354388389117643877247977972189198314740660064619354243603440505612503136567138694112755931683521802334564515847193131547697517148784980012449948843734987815801536244403478273638563383810245108660304994333019128569527585781659252799936602281256247948075430053557230754975581840687813017066107379533507981368345102466578850616631778473911205797034040977213821793387921482662302827122726531584655571739980598399150486461189075406836007206122628744286504236834296554901841777526203026810525015072445362621843910473361423739868413132031319630840584092702575158532683051478056869873255585319393535283001595778446275017422177434070586177727264454905846590047888720844484726022901764491627156141490964546146999093005146894409735710404652657864006558866932928203383411093602045240472725362766544239151858262289169032768390083243818316017373418588001786494597090029583564398347920924690431606144770951682280323520673033359408164001271756746506815063364822055338548487827916318978409239652332974763071590871731899423482191505848115547316770284600580150626260062010339986283924971788935226043807283645717182114207115876683510926611305437201114973705656259467393052322080824045407383508320928548637591812009681429641096715055467329885643502377931300613914167813428792890716104668202524858783661783975578940801267749419077587721976406409493497952014569436448734183100398239191661209421735764664566680946109947333012193084340807290036138882495926079867627767069390538305805927541436418142540278203859743400402678063248457305427999645835023626826649176964292030015527413377474524049372506388811517195221556367391752419395695552758355750993339676890070510920927114434930635823358250129846791180002611253625769780343381672609298512599732016593705571215246897704443547065104477499756301124052766867400858217383543211064731677542415679813257722725973540978560683182758702139362337210733963972401653054292130251917340290149119750409131970597984932382635606185823284543706111185522169015147055815571547805453880873774991952589807128750555975407487626389669052353880835006924551054509063665263735231610411045872825144405754676218616554886751313733220631219614682099004628603550133467551360980615488991472905345796768204918285189919275502912272897501809137048895437417731940444314286021232812213946135895998176871846953806793914440296900621514624244994748609961740595586612778330809428546664326318446027363030384833234649730984108543379445080363461520903716898515350595740582339301549921816810682008335396787531526096483719587819689301669975550982795338869788642208197648414318516292495485360245277737660020943941014595529845186176064303092260098279183585335015988980977176064447110204232484872817072826469337689745897848591584436491222968468414587946818396045902081141483430987021408704668145186228182383816654276316580333528623970766692991477819642385496971369664151731310399809580295243806700744786466347157852041193921600385854487925473492151580658952245460477853847963573042618362569888920270179653827830749236082025981055960897746784567520954096917068303961379236186272374778582792036380442041985503394340871954468756383504511533819966340874998591242123256941836511877998582543245733644743849457483636625082331539106770825765107447460122175590481054238982813634236518391802551438780405341477528746523226454125398331520545052408098834404263742110302633061653213114669644783676686651401992610839396158191253160616741608868195977074430667772789286788073104095633970980273994093742651361413129184339586410110764678828882051477901882399823465109295393115289315812189058836218685567220717779375930027299183857314686499192365902192773051357412902422092122275671273354874390243754169000547288301971171656507830592243788761637672807033566924603674254740967235583456237050082191372418010659583674889089622784492204606845862907467318300591210060325780993558723855991812838036339062034679649615116109972019615256308110973780805515396407198912088935169294532381215202247214364973064927791621290820983738912965887074664186907592098799236975959677952191428770368494013147986426898996368023409409132833726650672797652622259402252250349205024837881457579633171620613201539647808596693950660739411720377653438841708625563333483228203433168680295355645455985333609907518752090254324397118549560606155461697711027570130316384280395426780824638393310380932962481515265194932015493182016283542266731474919544336317914338416596160797364133631979535998811708526443240815992316774379720878858553260134219770625037796513490567835365442990505648513604700561895746757662895649469539916058728558398398801891528960718483404106260327658366600101690709413701963523418252094137748888559872195501848506906354091081673832090861157058384625089901711544105636944998075897510814849385258186694468037910127392968859771144277633245890267857251928546894774609071060643471153687356352842335678893880936037386996254324141301034176079351544896603843920292498939317182011599063048606374139133931922756620231254006510535443638042644001566524417166151374749035838980003378784727284721722319771728380998579633346356808580548243658367845771315646353018669450925818909086166853850003166047180443524757845039548105621020945493271533982054581825030465964169998827330378502062716054858363274326110173033493774829976105363125956814484551451114638852935453250050968864874721041199359161134189292957229278117675155147699110409777069042850571457867261479282012014803867674276715778557828032383112376429289041771693518918758864691317699980070534747316357743763869068697217906901822837563291523601126702083937032560248812443320789432168928398632677370475073485909141199286490494633436847870106790425831750767808539584711507319145273201115506574632439923676473930109203472379195907048104754035396957852306987658589526016973514141248886261758278186332179818007475034591206495615059889391806186966877249365185108720291456700020108387692734657870790383774171051772489767347540919109382250884460621594960452319267000104867577371782653653647865348293830921630027649493585448082393344123997474048169595264913333081035140990559392536225814759718705268410872587810829833003817565450980254982523747758445648726091911611282490128421713681386493276217968692062881050296893948981275955816259489840079683615242030745678985009293158123236953271803841793415774652381172571374448148219428129861765504843852758222617139790799242907692505133635154319042157754820596427785504360305197223335501368737018124406034165777085333962864106355691421734361432917963566326369182696012172078689619110619525899016659465922343323364233355139834764003607569388990101777449724118297121230853634684036078215341571113169024946387582264590451630512043779218965510823485501927113918207431911439236603598326172231071050376575010971273517738362768287090060833091797579903795055620757871629113407362151721932791993837961622401651706435090969827555478770718342376602744431534318895303831785510413125628931794778107758035703118673941241325803432156679090375534318073043096941413459947276684631104606242111895769580516773928618893383681294462616315106201690816648716629409089562005229290934629970648235731340822984842316738130905254302989264856284274503621744916074547246063345079969720269663696330579351023971284446063047238214984226204737876835806158588901212880320189185413583437091647391506569501118710984638919079155211031517858351851438500872498156103596003765207100755672727539070731556773658381530422369503934617856054147059639722216354676719609856213241169184785993242871969283849834224345931228559499124029986662977117870277019316674207501603642995265973580930828975164407047568102965663673361666983994050461568904647440014694053354375770412996399670926810047599589168894258090821875548980542976626883067704673599176734990302272089770761124621292404009515380462711790299170345200869802180260159762267765290806768398348915732498495458590198432194316459218780970895391183427777571782821853358281666826282813937189656235627952154401572119064123511325921376266480908226950193513594671735861978246465731443981479923708444372297287535869326483867271740427456429674626652648202987681991875681647522945826090658582054219131381599669048571194903200880758306715985475692612968896176225268856344112473663676088100761437478792275492196800822051821524476381511837492335026069046670003861362839403755317304151502143373391751238873152370720157057588833483753267053207755750035892280851466345489032181037461187114363025519662986760821408130381284249902097007264466047941645027576023079280257714448398905708562510591726530568139668170621327297316870875042419523229534155830475124422880571872984133655016628252950610818767395969799907137202982484091045335419582821560479497905876682421349915767858879056555472451336267617093011625331452966224012124963230778752981039357644970299478052745311755639153801869878007051885233040447133047747569674003899842979603762894242216400281071867334534088686708714004007172058676711488856605344877325041824275849201246359849851481931477673376996562653805766001027381898286674345497608074207281487706213084013077972791008619610795489563737309442908866455110270459597281871254160270714053320779887395538119660210003918382673931910858200022801560485307209777627717599692332285574334019612504035206466080775575310401167193008432125330206209667028531633937368165130632725729251156094165429916490259121914756512054836296346106420157664730445522605375564913238588013599612232028897341397534566186294386238410980523485844103928631178147524489354662404975280524144873855703562157469606192573807785558362010020814166396028164912279071628000237160195276170024411703535459590474145330146988992597370225064969933240026754126983206756207085005529553851709396024961193700242922122261476152892918214244631761462195236190026537905902460049272242508151061885911750638817448464454172386422863026723284163305410497407046045513272341145649507356562589011106261285879925337437580967994708071906781216568058398664773298875690445709297753339263673151961523563989008704880230226036206181048106803130762861965793175301120253606820002158229668689168470799613433193272008834596095470545892865690082042010781205692036399722812835920186087043308718134207446193854694746776577641401382731796346698928081626282444455989305861800720152147876078874273296287275011577543978442569043979568249666980038226323006908491952196785548540951991612335854795642683135543469608329380393553846840759606134792562595769509361548492815438096952823093099659401249499478347420530254350741597782625032081726716935731269555268708275008579059882839372317133861158254260523278326110008507823948214944711577629004142189907447917766032439329802816700878692480024784691695395456627838919768131192391509083221293973802278716558350129068552164435705583694720601324925201351825399143702829860487612015848548868047893098989665737345451183929519544364507528056753692323576021982618707827248565847349862582456202070936854017443823994744674248247287584986489748578509368623908822649021467725035688118646756426562117619113350460804332012342896126405255420261544335471458824954355267390255411781429302426145232318330319921144471461363942874017961939891141640927993125594274700101396168710205009404479588336238557086213676195000217660606588024936238194064598796569406679795261818595812064025182970924978410360747992003524861885016955008799934116316801560273354596314728362962064707734876064615070575516573655442614871760305237851372443326086892701744842293406856788412426298054253502072820703135820540469720581698036848330253919772804927900351343561736322920049893709810471438281958178337018085332832175381763916364184433594575233002346465125289279327249617368239423788556173974736627232163002696115153923646831465912609221901948858217375407794852283173416674022305064552835564340821210472881441025008811498485008164882450395006946222708831399392014234726637424957444345143539718147469588435461656436432523780138808647565828555592363592267186803550202816725528056020000448904370931430128876118566514589630136721249768412330066770038020503717535013047188785641220049146576316006573787883693901399770314599932962592222169456852931218057176797962683801459597910430684062480928714222548143844366665200348923615647132366827736860389470236937897801917719222493307203739775349514816465607085345485828768514503506542533553585545935096649525577301685647623154550133243940194878045804819421848574775126925933171826507677476597025983765529472634056144411876831146106854689813965762855658470352058291316995909946027152708337492784169744417841196262904034745202258394349860009565990835447087496362816440846589591230195613059670376079567330017542219322232711123861081028887710997277465304259084850862630228053339192270978483749044144956785403218058376741228873126422590491011012565217659185079885058559050019670603021166914233007129669809848278790509393709856256296057558759486112102754333555993755098307590546146459246717971690715811835218850478302422946611139086050583016657078258108962259408078771946817893886687263363756596882786459321365441649158112371204140228157761428439168206831809974444892855405003677956974828763654610751293718714166874044879720767994397964943056011117259229291167117796821981845459484966150488632989500862330447429060872089436296027091742021822791512479609804957014473000063629602340674210825046576653004237312058311905729136603216757241841983249305653476924003762147210827672386603773772959578876480967936293143400906794993709789658818051965892514795951459984432213977276153739685960456401520077389892490174740521049515068829806049722860545274582779801086747867903284577418624517707752362620911219742259798688460267627884996206898623898752280398169252708553975568539183012126210120604347641019089496243022276775760027049022071190497681200155589640890949140543797166712542336606380138884732886091547475341596319108186987025274261686419139868406401005570853325813577368383634113036167308049067314199630879561201978398376337977207473796340675356581685331618532355806107053750312993948748817055054135092608968040902774879515810778281421064826584707437511159250034068143846411476580353431572747879319244188246620776526361161690685581508848072728415637676368984199413501266265617960971802282338545107644825063220862772767244862528355498194065530690286837207104770190815811343811136324622889022200759410061035844760166499585336698159335796843119612420305397268452343033590456641165008357038029505105095632784961654958706102127555919213498390384390534642727302834223387384895035509089832936277671880184283697856835567323128202040337285002682639401292182200950363947232231142093917870262289571848641714625577990306695447095635005233216477673661273313646344508516754383320800301314024393474959996245266354444059747063482083242283745951069280555196306680527319414697307994678513205561124425750188450472209598236044983897516109537586399535357951048543359944519425917713739995439976026154229187869144537147706615870826068081115015403801431289760621883041464798088096630657287605622939163692540318099740629845708812408586054459335181060002057565742126990542535885838203876196943132071920245892283822266542681051191415411111234005782889525282205927579269735277913203107390614568355760403618474916639205879664820898200890426880849495407772367034625596014918394379778742775364311346768680817476644081037434897643049394123098996829159572355585185372086563551629281015083204529277901456326649468638985214167913070974423206424157374528436085303339242430126384005376444177669094104431160394649512799261718194886864613230447112254711420779046814372659837808204302554781770076599424328819411137123447359225252383551005143115371319518008353198232392146180051201747897152302352430401099149756411584199711963175583017276328083192574505956744393109601084222697755875561369639256923738516836148371822946370324216024458853233944370912998644409182777404448295730782928066758289517647832124573219415874987941890132169856966590648592705891551800157718582592641621774025452758086700339785259056272700012478091831571420352368590623436008463136167472358325457709002227184141816038099456813995029546182214958990673081732095430544035219480575066057232045728037926311818586563764866025290545450215519933904682825321095631521739499221488090744529796628211043744195760927104624924118893237228458675521986165409731579023469040958453964196994017731156783164396631445498564880153670864967135038437952826391443034821593924302309262172916285215050589346073499901692113572589950349718851478120164683640694350849256197023384604510028671810532248682130999488554513978316519855640402962863521247464167186513193123875704285920420211648735511615346460198907372920027580100521426609016651665549644925174251313589388760998390280506405187667809007544972316240183756273848888190399438657053296198115997066047964513201444331363026204368761264732847981891047000886124638078728330101072469659871626887168971475407069878131224023219500699531448112421793983965108228336555536810822766161866546112454054576969620839770789828971442084806802175182412014740299888977051756592784885655919092640776627365362375075022946880723035950758243947310109403123193837971424118361073378619393551542540383742146144255766173796800570963496322057606676306528231112129374450659155866888373129146655631772816716176347077110308744336401979716571654319553839881742434812918127664581762575729114905902180384106483802814825371844741159195095245700391082297452335995797736224042419509429085670234467288923593663143815018258205676211768838671261760548112706759546658251397562055108790400252684992224096209875475247853712316187255384907592400160376675004351479001367064603191694987729678182945112819213079893741642959942454420279105916092847065532939055621260166704336835078685332294739315385749761057212017110930549605106007320813764452907042414727896982607955948447057985924657719756324759265608272184960311930556259430556760398707577899250969074817196879863882152660673908017558907624225202664795281459928372339490834910947884841106199899785915292895747075520983947835865711863351737616986017103284464994316305027862846685710035850763049058346560831570785394035444464848838132464750742100135855163435605964717907195141311978268756413681938155883553125993115872968408685491792224582228129399691098178645108437744406265869307292014150478826605572577718899102238397071738114105215858959070802852691682742728988399133434492558012047239210209062577791704361087267682655283822502986555272620118954995568078042996611312642840229181292694439925213409788387043228280432400448470685512051288131775897217945739900898299456030395060758841299809682007162567239926354627277380098484390779438002749480592522663303401482327937006875496394459158653871027685378167984391868935755233216504702705269241918905638856422096288186707752626095452166895883828782325661431371424110391732794409890501330632964505079838695794684905656875011790110494017490073508759540080244371969424295947576655153264959832028077400535630093179158349208447749392132744742659855321628024743410695554822925736603027551134490758917373950809331920561451667774383708958737567398256020673997679648257846076027803752131045727309970061232551956308864727500375847721064577141333168512962535561980915540080229922024999920015971173443100685431144676618839153737016891751933012620203546248149668084507505850567074846961875551286215904465335712154436680124598331929664943653034555856056545474385119116871213625782563952689691512674924604050511061517984359745168723754420622388026576420619866956978288054738738312342768939996730245338235856665149083191556807085050217441023174537539576856136087066176212019102630436421192996588205575262386773046132331210641462269809870591670085212960410464409247445537141652408835382940618977525243697006938365978518481061946744512574559631174671694588144915923982248967666094401930681191624831466542628752168800646729280812092349152200103923993133675646087832603522686642571256144973043159717878093021107434595385512587892168608325026173679873081768867220617169827026666255636505439931299354525879907381204697442036391393724988697622966222320037756788749692257055420898415232619185829515646388567891376155612373165375103832689242891316711640106871366105791493723329768610798910045326049900629030415758374035530174063849118505970985184369178555599072580478197369256543934670607059507884552574805912744234376697722482398273178949295848048860898018931297245446850141450011459926500610162171904042992821507896241400783640455184266903601027629793361973182762409592951935491320046151120710554766820856125954649322429839090918646172387164943372244150877389713914003854242321934531690278049205176845587325043713283791976962502148285995674670551870525070249892549453295420306099856376324951388677900195494405896311303662738796111148539452696128183129184324947114021517049823493093005190120233783690494064674110899358957289210584175114271368153428744192829391630974918438381828883052563623650687279333298397398180239415731147310988898612121203498220094756481678077132936137497998243490156377720915832028616491456665130385738597041539939880397923435333362398675803278283442562418085306571661550809314502860965886052061218411278013222493008539973005280585635785484093955530590689305067005314429724357685062480973029478640974415524457409402235474975289850290758991319752262507280348650802590680919437626366411833007067072354837053180019562185059137825063773499212228698499952922813603786026589502391186511819631826959442872082090343583280081881544606893051056239531625900992974109362464441300982988277260065449475586049392504034396052655293961535718183441396519096617654708942892440831558506739045539851005183453898912447202588882715093482010551856316495822742705049291020818519017524785430761062178557792997209723900616239442927840136508507461625390525108702475093648103627275786326528202233791190447778925705090069483358534819879677569024623277495162682995028585800862928177978369028677123261804306642489172056780129922716155445498941016551886742592379006600254147325200641698139923438534100721338718136512982336044288207082555780660078265001702819114543075065086133057584970662021529411791072024667125843196195071164188958316156332665524087825776822997887182180633578062332836892177664082814702813713949750494604967316349890374700579465542647789535352370290653586585179781212480771231132008570073354133772194239541138133948203525800785243148928256391418555036698809346148072183988307987798228053487809369295862864375700042385780224585280129030594147394329870067060155851164397850750486988840531034763720507737199025611168096987563377988952452720798832992235840306745715244383396756491741957130478655729533101444231867777116845379786702502803185314358123813801285194076449102373361855006223742625498630653669961431885661205948183566848919354438057812273175995886116604606849002665831432521935270336891980524195007756568570830438766413970704353924663543073941252807794552200826151159946874717089338977364434115566042861097899212242559474250455331049961545459591960763837580145928722963550163049276989605736309485390281045064619290365517284645384724955118404980929578554691856134007983222792451528785074670224898703765527561761502489428046055178981361379527973774394685490772632207819886857521941046079818249349652542871204199270770480531630672358450509223145376079172678891767229229753631259040040639370140461357080135158236545926635013474355069463712824294069365151578430722826423700863137152820106114303441547859966052715999385647712051146751126424738034416459270351759542336479053897881380108029168191108059257578841104426367976993577128309729233532986353607752274581849537818411775395976848175836723965920786605281313203096101498236951962531402300654455244934576754119557470548271944566200629517458381668985640111234185757413638487794714218763995884203412317717075551369449970915368404877955472036893330607288190906018589838607641736641453643829994742295391781524743053671086149681026828144323041897819675676311369377842553128240252915155648033751984365572329915002521633821531521703869995474324927590179663642223167380474495775548403773552018450054447351798289385050752843557803090405144824417042124461847281402604836992602866138111329094673333981927440399324952166463195462583865330067260433696386935778219857839589937560988035120206906265634345281460334388059607292945404327477080707242762763743580168721016878948484032592199798169656001030174531067866843993984520634410534967350292212674030500459775643784261826536915040755804863718745464852063266726208848681557724692308427694580237789528586786147897812868417300160351230350909757485484072476508745044039647865956891608068358697943637733595860124350859151567866667426885770542186185855270373106519705019308358608308100257754875378193709683955364527068696358967723701594375069430435975355564414167400377886885082815835423509576586984490034304204624799912579049244560945851738716119202504628257375597278645958209531100985158152517508728717813529297544357767900714930707368219749798028045776255546904110398219906968473157596597967102394841047448165417262811375798436469178472874442650558384558583286192249365483958078291825571251374700613052047950879982718439414596351571108561218118319825463133830116351182352506797432133667238477283503843183954183576447301100844306998314674718806213654412916924302554216004178606938291002321426288302884497176905737013967537664776289814811854247190312731321168204451537519985230775462153200790312457272474227244075260623061266247250329135827785745650634490051770495033516492585920388536913571815330045400727711004714151061557205900638490496554656148467127284004849643748776989154932171317184771555220539125074250631574481425675133874558227887345908247240567803054798925250221779682996098233446926267956311236604247315074072940519955949823186396810674812884158819790868079718457493304023318720827663617224040031070747029219259453968711500959396442452852687273717996471751327176445693112047287133654952943788598289622792953095217204149865133249095750779591808291059654586019440139445670445053916304937758739774399283796392639994793119187282323407658989391986392653544723757103311909192595778533948955044962746034821636521902941671386304264898451349102955682004095856225641761872384600909788222283986978391489079015395207195248118802605290905575145469837818405262832931400850364477757764396354010287517395318274935863490669852707210038701111051648925934063887719098234724266813032833122099932546073703466479660029235152739556936534881665101590091872060560362851929785682073166257595998751645570018395846279245515344381900974274926792886856281513469685612189906369685726402727680858101523181229983631105223221768020001330861329671645512699132781389546974989970110339844963484777191475579881539150559694936458317532552044392439485895891977798528521252431719285388202812761374669212570159375443337107395205567531862583607550418811720843691258912619890567592941863101284461809599238496225794402291252043696102966438569630249469612984556211597780763537152678682156757589559169707787580760191282463040740284258654319341405966634498485460529260938349851172818787448565805957248619559332310528103108242974618972967124860156091971498786210003770894401897415903940513928129781500802509665029553715475374463129051955393796571143243452098701534389846452158235888736299166137797351172202044432315604333222295790526866439307105000773239048563093523189319483992543155807619483302581683761680440959234804183966323167784096244735464153804164453582732588336208731703711536184025679486965544547328030685368366394573265289089638426690427332009706627004188272008813850509401153720205334518869784174205207157387984565993277393440837364680652956350417446793538155942684402246353508952203777422737081351157694235549474767047024425344023561110435054349616031733176613478310868421560073532824722830990065333148637590419887533533396668226936178503493498776939957548461288207414034584968422591295997883323718860148934488856871950133000344810503442433518943879372899912922600416128559031211264874160384964862891657942823893122444719613305716530095191621330218223838607054661949737508741162907515307425701460126260721468594573483459556875499483379624488256605439582288128686773318492937528535379372984367335021242126914524266782429344218465268136916765633435479973588669333825168238798822555297644505152859407482342928114276456443502611534916196619576022159562884980855473105623295751811600913421513406079158931146894337243544077260252367416963184025943132956555748848574059150426479469516385860519339852679221759876232563471438507143468134473927905972021085752332698645746548066783996044711252283026177457258707642352094760932622047330962386841598512671285860111415757035760538281282716195416637514486216651709488880489119682695377632154292662226492070643879693269500238026123275973071974709834215389777683646399310287096359681522423213045584511110310353304487513363633507936075408653900006333524316293887641919717289001741898134474456950689697643705121678263321529249277769704121338396391769619560321948475319017116340683732068538682175644328804086257468082134189617226058954546676212981621686481557994785286186275500209874091522336177831946322254557151242154409791051514322665898790933507756774581103565522409220001365108233842034070627651360302054603409150579581325288380284517688079513275828816773662455433349153815474184187277693109853434063972777645574138387346325479846497807898398480340312205785289988707211797870497523693095153881643138116672755676936245976027128953582668024011255565072849214142163250637202895429686065112472068532195809657187801089027176992114087413034214395518897231955418258317729994556368394087032157760781857453900201859440404657134323978557199326390229431005566150885559006005822039710487882179337805591100536586369453672760051031372158737783757073907228681838932128040713908895808807350125957370390843419552353655982256287721041635603296327635968372598999460467966384635036628628222141226157477822981587702715501675304790708763379373721124248200410341287448745809694152948738964199524372058456406432442658244545327616629045034242868353203041088028480996517057287388616710278217169150877184564423720212177694289487855738253187182128266084998824915698104645743822931046187521404961069802623728253543100417600324835905048549823765846896175323873515118469887865648370170412547207166865985216528338659821610807624644229366885178964924864804547266081018793621125543325799170808825673982336744668362497458920909195952902243188263675817090018444897737820674787196280861373508027271446289026975909547287324966201973712141696683272149107056963220435972775934076308206972191663332068927430724576084251256047172317859540008484178011436446090548633785787818916983742792168072515124802146251408540608288284704210528834351546024689709644058165827222189528144173380933939014825992542433018921314039734407685578645655255413386677658485268976701219851293440798792172517412884864502318478122730076128737123187733017865282602227558079278006117012518836086058323420202477267757492918934235774356098481361164778358029761674171289098528324434031507592294872848979117252304390014005494280689428644122115974501156803208595185938580355891773699824863460062664879219223722071699995859523215524376327986580693664502412835940112494719330772752567050750128594090575940239960090491545584871419278649827696946708903823006996083979680497058858751278912653463950623347610348247459599705459234058216045967848344453199046258606718774895891823004720483496109385428253513964132578502149332696143291125861761058990795984152574779603147674610477768091061692040910208059294216950216910660956590410099393151839721287353369874606349677123681815970117372843931535204580432700440746589693035283165410334099413730298708021178323617471327987832079295240882974285781489600820084964791921338147837307899667659737074198791852359055610003720942261975996584266131156784888055192282028685973155394297263121016074702617773731373718703866095622094281768767791728436031368447474386481853235000313527479325892655897436577837217807432389678793686826402960055621846263992694693419602908180083757980398019067767208182034873271659606751236957613735907118627620532074204495683341654149466391377885443554028496071687372009290041684733958581134403620876675774897987582181107187006745930853430365436690587779413465012737177396130651012248713933655659524297379883407911322070870663323522326753676389898532063551748026819559957951775031214055197477965769686154489887183817149511934143824104961967090380231362708272275756195144606298465095347886222303174707004700464445864735220323497855521753079574971674393954289008379471758702574642418875995821192366212060843494829368517000887329371525351906805208203855016384054687215190434650702355085926965435435533024380146048414201723127574774079169546516888764259644624118014985499256199667534517521146372011723346978027157385004592944729874171288395938841705472713514894311774429420257891652601491930322860951844402258253825750939264727151476809913101478655014126107597710870929130335789297697350179328889752236388275250240709765587421880159383169831450685721704444910199961432794247624548992693472454732503599450412412252712210626693224829443600686351779686363388938384654231852603624602245047926031876439966927435137736260220909871018750619012707191649243584726816171155106688986742637404112026500002762650699936730685387676112005679747523842858803420819934897226040291125597296409880941488868050102502607215625606260913876729018847123375199125215681003227342508841981212237360358186467552436209188309083727749193772704499534323981099185958945919701045693081642484493532955480992309531569949343022024540228243160282064683227320537285300458761579707391267977547492891594928182118074343065101090952752968314698422268950792629684452319823392036050707824492569214377846797816803321960039515508155789858638304169650585521440318425064457609646618564834778641805576497606238659354540158745578211864702918002524117790310044824271877546817229517785105180185923317757458662055593936592046768006097319105124711358987265575548505526190205875167578416123553222208756361515910242809616741425626087000498250904621310106032170908057436722708548814121577894400106790676214632448611026412453100605871389570276834905273040803285995110903227394215377446140608753523656187495916679942499471125008788224726327578690925155620145481199539125660026331151251473593349456941013389459802995903209172411885709982115567874866729731479095648552261628590417570721285065034047441689722379389389804214957790019413803602474737890809307418595762497031234014421360735762538855068390576308521295612752717737172752597955816909333358604880834982517786250167522975413874191660112076783533078202245914652671856024313558441141126179033336712227295235310593673109717649072966469191357665896610561926535171549903224787750321847732039945195291415131049554156230338280819791564501196393285564380391296645283125502191850112598959148311645621009673586610121933967073214374159945436537986922996809819351422848125218996578236214498057869263166164432450077694228371062682249527195367488650151141549290265947333116243179459889495754497713642397961663143121568754258779583488520835046595031916916102278909265241123478028472247302383016968840366833508211966149940105322848673998204932117639312495226331753791680075760171033776047836665148810823723289040768848767103889626280223445942585356583407614933015184023718126429748676394563821172402977769575613141540280571821118006035310716133822516311092415721255344723886920087575264614838337182811064568544776609879502484524318599358371973777525166362521598360385401916847542345382982978142641918632468091216765850319779554484184033436687546448498463114235407461946421961780861157423905306949798958931605994490655525335774929918445089330212481624539453168629960051521853309611237910684298731385732105356625111503333648428693022645014657213222709903017155387091580227428098901611729394476217233205120208643385073015073481673478920731406871816224580058819913663193424731073732913325025414814323597104461707104794990050277342108269275149796231414855497949793465994796882491263595279841500322718871265265929304825587623668657222510864070981238822623269280014576996975838851189855819930015150944381166139127821825550152107566328519494900228663473449572987811660487519828459664699972964986111634520196065305088722487786054229410610320182437358107894190405014892502076819867019479554993499952317508710603892496177973670487689455991336530998551483600709871237698411654836820797956031795481249770157844705074437310312744652219047814118435020280134413527992109661035318061363521698089213533605559538531977485119131532864205415863259218266128413948665348310728732037048447414291302944359774250665448923069168227151132246296016393380510343506938205085433268967506599427920641287182584824487740524688887828084515361346538519984646529220116277596372309170114944479022491237459979181789109178803013585831900403259154529160778946025349618060474451995155307033150688318989525263607677050233653575825728752448847447452241737675404418548744705997616251862334117050299359890175877409023942641963935105310667757265747729993472058940474086197998889322351521992636213106428963317284957161824269853502265119177941053091342368706156140263350033549602926615717171768345261107763140293370021310758466433427199294285581752575886256408164655032212071716224489351726087860367115128962214385260825102781153409758149828188175904060306306625120621859661539509289275439866006525788971618238847578781376132133011326940669746480529185834479009234580848762175308409155749451421431396580474257583692581064965229655572598538943529410217475837935949475242740841036617569361833132772121737567997661820383338182724820002112499747508888328617401342513595877812445246277160686353260326821398497079594528062085781144338231467417242487723590540977348720449659410728146652897414952548176291628612383842668753809921102753978890155429104977199821793816969764322163030654740543210348110666712738811785039235452417522642254432618358140700200221948882282187489559978854621117139910921760217875126872298564876480122943600181302904102126226204329208040312566358975383079726502912620642042531584649496714461783351808795169447819628615267950405237995078081765769638745982783083796580278228542248518205136361975960901860449540969519391062604116224676016531678433822181999553025301874994542942352660612462695859523463688248955673152086739358237720344187006671540275785068730534881303893317849483030694367550458378016418506243633342775398247565465363616227757540240740026310753548036584208780621558163554174461015032260516451192598894203438299472105693000694583069475098560018409847483080052286579538705835512667326797042878841780254932136957894000613289039156505773193231032406381817193899403239813464195106710184922147699361039052788073028839155208713757157320327019059323845838342518097689180513567616518320977175379571752313290096191859351186669765772810341808855008450787012031950219588072701717380772339616675758423960642567553184860998768655329479906508429785154659884855775583724806564790600252908699537786116229166238107400544642421598413805879434211408721322769030161114627728763871810808502655703655375512898374886437162737119517580131425238098714501915466002775420769405552619701756461978690005207176457626292778186512579460057552295559103116906529219935703089886968604646756660879655937074061471452428893177910457506839310160940655901048997240896793329858900321218880866602667606339957773866341925240747738155884763545147110875389384109786969522976868554488245057166188071047340516814996001735778841226740847255955060827483310349930828354428252071014544148954351245415197763569085353863185390973064501760333380257159801072427749813886519513636312310021485484148963507330422721794205016363755967518233714919605106331919401109747753221030038653181397940701991458131231135438949896888844817821096723709743186509856663087962317464440293210887215220189300816623158349254796591928362760119770963590223412633918587372559651268315760212102083741265111345607336266639239503299848764668269986471964954022575408716712109662270685961734703273556952149114399903852621159456166485805516853829818595384724941783140938085672879649480104045687682118021561337370145395814973211006977032119991799916570910998386503076993020408455117009932533404204384802942982561608441472259471302629544244482844238077925224707433403618017036610409241917306251770000073731901517744883203358498769968599875261180633216610231997430372451673283107116438227037356947936830575473835688639636358624154368460396325549916194195102680695038012557609401843996718852631991676865288670232479569214376620630201274943855374961289553240012384163403326724892998384694338295635236799590144549354682271204694843188303947435971228211313374879738648991794311606768380171890056785712310523892807574469163523377702887579897352775795066786218000139113466628501024943083656111680095584836047546489831504069843022931443365457227091759241651777955665839825945901576349526992624701807045621872031973478497787255684752562938742765800773242154070437749518547693096805411995326728955825591706365280338324885677465086771085477050897329642706271557096364322586577061460747167295626932551295147571486862013297133736536419062206278450569376559472245869686604855984287919634451845766914331796567359218825173133462438311649946028888663413643801512388149392186457057922386669243038865608929940481832902282007518096302592521703328205947442946827409375634011534129259720284485389457681935938838145025882113696109619705091209928426129863151994249508618467234696735298126646013705060111374454440934057238768777662477718696877558834539039882506489567638010206149813326797293531131592453750284622842085724312916990774622152749448102133195078920197824682669258102073480253846319635875254030074267924039919574606460336307233285458354671116319636053446692623253627986754484709505682482757166535382787495256248386289814769718638117007485141564698183817654229318430989634011474390492502804284198097028967691485046401209663829382823837329906515472426276998960819844761099196174905684990773361204155850270437183010480734525544467457015089110705075285727180344847557452023274450638523565641184548122379081070849526104291481925054852501981849270352193250555564328083585101169786711487875886178381604746589766062350377499901884351128812786180582580856427730861931239399320398570452979930673538794949879001222123524505846183273741278151470222113240506482921161752063892194681576664716435150464838174568732655390721708803905556147382811829262054392703436197741604489822375106770877287199031576503194578525634480592146175534202229193734494087698541860487562632999094671235954313982636180898203835362883765542597821310484967989115984025463689826275908254488041344895758439392790150286158646071929394662662183394707022628122580755052719630381746958972710387367885789793995290987881183091890181611329860278450994384400499808501437656966446486669568933853212711168469753769299117183210041672413403624800457953870477314984621921345558267262430917775029597499971994006956998635442944980463283823688454822246749702993806921908360321612010494688520880402465378070486737544542862918187318017214844903923058821132733246672190465959879554990989729457686897424282080158851226669174073104937053626183498552549908234226864209345650754234501214364491329512249878826247322075173842608671721364133583550539673446339212449027595096855834290410364128593397877103110751928233215801151926783960255636536807642850629316117870388497136172315725164233358708118492577705567957151122210939293377171448123275317590478159007501154230447202018757039942912933736142192952523098849750166857699592845809066663921057285055334407538735513816868832372944306243373238473670607642035758145212222546923972965550349440319323281380513332698108352888746079724552987303515934282414158475985133588050252441874986495821811151114536663261245318053335774913352575931098967485228397789292858985073694846873342508722103116842902323884601020100906369159970765968302407426606899381182256044514083256884734234740147428429747177806115234753725798887506944624879063769714578679480831889452979948700704994768884980652707926378119429331589229258151870628529204604592167745126158268729827128428712958655598606511617586124538732501777152381521641917038384242080339496571504810640011294752384658189184560790421868904347908038272124910898776288131241470972260747672009647115000467785404365204202998024629901914936782288239991629609533017417319991283456319867432857188775550946145732743720265784812546666974958428417934346951089434953776471460125981726860066836227046725377472672558544415830815336156147190279787358908093440605668989082410853297147347792657328866716546824210478598186121951950156376044517656183994327400399331851265308096017247026296164497763320409006259589425833179038857007767854945881832707227374536285489152230929485149395121947695132398140430153281847409719494347882097279800706534217087048388087512490594450728465173466630573672724697531900583704041921196207560674870427711299865386790674600392428813758769185932739607071528213176166015343191342931266871574842210433495301973291767128687955502790504927766745209784756560441309456206744017646239618690205683282625419651891187829449159597458772917440079667552817695704384481102230354121405751153791628196140889490719961305715871960390367992757441442600406558571054360841396589599528846242380901305204660436926154242318256612899286890645442978007108983852466617930734130034636137905388719292691434699438824863756145963548838757606829240691798283835462005586642292650484256995267075764999916834367956857129326866887987940050365148969695770694336704020679516214217852722823012284797847789550298528917553222916558948825359871296664315054569976963979466293331440035049473358358705906235461297677601363689109170188786184308116017642385883863234831292228598717472129078023125873003608377215159951660976856512574671317715663715203315739656825807235792580076936555707016940165413003759627304309896638597142424159599474011842429745364975766043294031394121845705705696148758362445169482115108368800068128961143626414477887424959980451103895743246190815255343101160604952516023505085451785397634736278216549920115545033944583642936615246120997020149637948277905485104621549288574586454149942367663502705272206412098498226201862128787227184417736337558232844407228551779948622035703563440807824478583946672814105324267483466228219205665964069096683251736361314104336553854836084860323839674684540905791421474138497427477526701324000696909520014392187893360437748458906182343778017175463668879997247588839907343372064684988415831567559488936509628447670785969008830935439172694528067312011886360665317686997492474003757008546649789506844422355148659093066043340370618468342897708437638556286624781010194460063001537154992320976737398826114924195496530284860096670440274720585021479739959863527348780581164709743704617448526186580324979725100617956231724020404547389524959605915197276408365605045981498603262648733701963299877353725123532581856364613816472700579039947827635582147846055854241380181410769640625793699827973880775102962092841010004755632791401102848855108756792538379842402661529644302999919613552729745477621265762539943767614718612687011362753680437065608429842977115004701117054590532793836283732442476007783818677251037276842456768279443805171021322783484867704509873847440272400705035361423576474085940748201430718635146930132618860032221677663449216714160715912342700335253346416087127723387254409107993533255254891291594220060849837200817467080371541443033758215266720675537149762938685398962140827006986341680974515565235978986875236256626961298408646897337071014516821020287907232632920080136822270934176673804228196158295448340512000139951811691165297339421836429585076156525678452128411938843771662428354269157199910171482117418567414077476203218584391165153399580465160304009467943410658630287074345180924077784262589226695380594858710799634210928111877052156623388567038679503291771286087607922183793299736531520193625417947435503003982639539442061096079822903772789198296451081613230996797521359535835181139524577268875389122371281653497152207045682798699563304362588689864459251133846265427248552507379683017692577389044468049938963735311932054404934899578025197475238498328626961308888990065767091818678480526262518283723350944833388940337640549267529317967887165955550504578964022142434851638867074672833720269033200485472525771283364917935016875535904516199392742239980675847469689277683811703791270415820491691551090294799895096319971992866691518732954875517812462743951001713960035795258370137370412187432236259748189342589983465670604028484257687721478659384897591425126556934197572535244562495208240035673120619184073193703291282383726174599875821453145469736465620396351504965460122888747374986935393725130717115356371618482839591966372722170501331213886909583467788360357011205224503081247794055502045077144736661423957700472217616873861043187247695506791685018234063457265365270803738769729061381688487799926196523738784632186227516290297986125404299844305465177138374477658310888271064287260595834733993190569829614336142817180759925161186000062222404505472263896273731432662319520425388475462315336592278153018401722872489656548930873066057967778704746439410998555064728304178787048745091259592341418336010925700717289024515193512937556224894356149767907506869006241326440275499623254988469948613645008061331434868252398759447558076638652208492942744137822661776332890758368966786092876100580786862964785210337434721815979867315855287477779668164302156128789490193840451535890127768006392793541439116483286073856862328254325389837947223620851310131066897693786680191432893434447950792022897129242227878221407300977893380662833497471912244707526521603794406797646600611539582679055480632626691374578641138857675699963405934513916243103336676338269411608789982045832573225871538163133221728774429660594368643963421272321495457831303436047073175767622545732133875111553405393506128078030632286859043561222487451359009568555981944563831271016508953846390373718602562616345804717160968945178802397284345891872367067643256071044420904987659743916386570956510111763967447399676797270033326621526924846323614397929399337555159745321815137965959220022541115491093074148813564415774735003500352443308590816419823639562328232813846863524689507418817802017799454370631838465078672529334826605923097584301287392977495014088985379301918714623368347074922013500372069158667849313119760967367467256655499827933767745073287669894044452252561533340703894829119536500767576850934870346076024780322945346222209132440430250577338428742651330129651317577566472811537734613680812592036634892383367726493923699583001627602834213489088800036972415674438371795286831523746442571341250547099391736106897266068238251270942251207360575529991231844498402610057398505185991604124539479160232749229340295321125164794031574572231639165340786066523244445368667149815990263851527642452687883545399380195480839707774043497470384556698535460865942576061808915843144314355093854381179275354217913840171910356612421187371953048277554810243325753733624624102183584979373477945463819057682789606914524166677895291456946162665300684242572091134147649812421700203684538506049156523266135559981144639206122906558041280479572359851763943305666982988119139522056269639355841406842518255955107592148148678263031108255556741194725505154633651408462166121834815662479977019780977637026636247074695702838449916578419526028063996004019733207263056988893747544131855500474014296914757002913474817075587486382165786080963154568241700512597365538031348724131754238639864779105082634645345788321984248599075375231109232764234416602412370498205873924321665354063131523767321515302703075377482104173813529433931586285471117886063189573126038067583093164430866396660449957436953446590460036679843255462052822401909664510309150912922127896868933033839020918416552259880998428692972766798594987415502113751318220338036689460295046879545912918142573806412802018192673764654455705671728813446149837960938211030896898151014035357885619289090515364618877727806970120102127800173338877879875692777867652884403521829914033181140193684594730026159801119745656772714542377261242690059423164602943475445718556937931716696666225863661354989196558817709552756451111348753991208601458715315437437951433106011864879980231166005211085591903176213184874396408342034355456958140792537056866590581542432986064032344992151071609926449436479727353759600906093733754963686634830332633532768473312855464031324245339645611975032326089374100570254263289694099428890072344200965879822128412454640517541741124714968986872461687276729167183404633697759215463608244478238787397269566393574120861812129297207961845018464363777196039134183988883298187688715701348113960411513431438787566430921088349370625845657408098613608693130386386256908458725633141691730089315487086250785954940119533356861359912581031785676357939337163143783564295545120680596100353358158142392916200715625125589335957885817974897443418077620427699629365206476353466717708537533883514320821449430052046296850983645451052127785496738176972434058142382104906816496309533044280526428249671884819160077720661492490027677311506745805493695122667799296758642196964427781482077990940405932271455095898782554532468597669696954752418509842278525673826423908360193661119313210526177978253974190936965698847042012872461599221932232712487593171352308096431683940744846621671010947117697204469549451041760351166155543822319566016599856121555823482304454643490182389475153219897690276342701581030923483284880801458244719440273016031435689204552553298894483467094088687239376256971267293514252296619368943752530629170725567917103805005390100825446549649576139920712682174429776251290140697848035348069298597519038697338153508353667050670850124106551119441389075035895850451262397948172636649745453638536394960186350060185943489075893681599811793859514504647945116625584423181417756640070350112152898289820312261639253150895415520380517347992169843956582834885676313170258986328433589575568063126722369521712622738837552088802363547147360950863478625557515756267259745126020257907381605442887735211115415049152774049281585483653920599232317635967968011630452610138910185575004454340010516887049818723140329307186207085094082373377413413537768526101074210175649751799552528613031893267974283160421858021951515465713045570822446057544779350728288848008710513477267737679648253108682740548903793769565871854492479172646079247287072863499267856045519337794416368204143390335617099079080804706934477961230953779943708099989493532757059597076736314567534505265941794541351475457851321185581355786308293507108681265729597139871193616564099144463536204043093129193346954714707414678802739600800021126629725014236788411915119753989829579245960843058698081540621407455138217211570333857700067649150042685930347001354412197559104600754489536878930584871780296375087038888807950198110330313248055690808288291007134433251600091767013737378198219678864451777735676712099679279849143892797266627166555448883884851397696159374833648400608323379560328585883942557442959487652312443131453687196310695918607844489671290586560337375188644315200189013054745167991803914979718911673665620537864861944066254340096072281928998268202289938939763873895336335351248407104802199668735060003955993587632405965077812257416319426212612531295023418740529455651993346243504645411391087695273103636068512614632104685067432617802322393158807514664218560915295438708923992383883595552208186421235049180060739093305103951562765961576577204086562724868057679908483377377223519153930731477732860433121069119046014627440643728950256783529912010812848901244819332213757798106354921326389886289610799783711069001334393666145495908711098211524564143182947546587101518750439388126896722046382368568813086520714843676011549005221694033634697032501568878369277053536260493584883755220999054061845511875654436949457377094199899741070118569423802706837849747457580098359377222046053659481959370107800085496463535639137559636422707786271968881061725027031510613884820831740998367982302588862968311361361834390979393937451958823425578257813311103773349993471633691211672779747183920820663416137944106478962328132243803426871641798713654433218402803027803245606552028192946245029067183270555295131490220844924041615927618104190087723369732794475956546879532624832319224334886673078417048945499680085845275390199799098613577484087149767403327917617702215764760220113752145800714644859512707614696787685542149830402565498485787892649798847788274327518233809564056928261282718583202773326343280852861722539757336570676110144879199273022127234887000891153555312329833944652223807723129288154549904211455481799180534617261935900378180523375999677983664527562246682826238755118840677651712129075457275385212870781624445860476992556275156419462510930111337060771765756154959880391708140072605238590154968590198315235257382672199464578888900323819601580439730754233105268657425444035455170183094249057898687571898804357286393320551065530841434451445415983130580293989675550702045087130594629114183668306962029209000046203769915792208308013437414058679327423300346232575544602707403207710834084423969738334161359138095167030237229785308904343030283613882634344828517622081152427624479719773964997966240293152597370810116121403190858106094312588874273610193498414446395137318860160575897036263763623324531156745903385084634623060498199035547424555660468494999929185993841303948624145423069938244991493646987825681609878012902267246045264774254197204687520517610368686976487325697606548181464312548266053223550189382864291651321643198955980692951766146280442782068694446612300820528459559688892226885908549730568323741852533999734738457316382159619580552020501000421353091592501288122308644103880320830469543373894514125025993135262082821147955990764846548717649689595600850264872620033399801806062571986159449623075483693115144619439515838525153197618779175708706783643840467156804156886548519466984594161574586118311153655613207709644663111125640535586786544439871053920608137256806355634247329887855122508566886808864676702781129866520872902561937033341025841238036832681148096433573179421293792058005708313667390726653716232313090199002265671317496400739457733162379464304518557285458387830609983487286483031718832991277130187050461354820210963388426542446553646466706801327531751019525448315946091243399049822222127574412845907997280846826979101576823526366145297658426923102890512189663373126118829022852398748874736736803700352721770101858542052303849378187522233986346423484576111181505205352706969907695508623418628745461690267403628398042082755619461278300544773534499766423341085139441879635637962091338781397505621079505435188593967001636876436708925011204167635052343497145139854041101418134677797648310266661043037146422329615729555999716070717934790013344757699248687786158328953742936720425192691092001164826712551535094114196557151116445580336713936883957619728685125844324691533414044124339750757912551597962067723808752804886270511410283215862196386558536835586844460401713152653423679548065925182550072885829529008401849877857486182489700893159380140926269166850985785008868788388019136594648767219693506118816972450903986668688281480847542522695183508989169294260751109840319395179659418810082637668168655230383286591769219539742788168384571474811159629704298320950973356092669168492453273173812691219625586088470653044605815230823026810432547968190513351967867145611461172528049436911825651919087571555908318585983092322435295580099228790403578855753735041764667280530152637276573774062534654912272526971723369032751692135216622377249980940831024920786606701887172286766804144675384906887916037988062655966567844671769051081685695299012226557975181187109213855207133121788331799850092194050331389802116777169735102023366420201823556770706292676871442105918267121391919261305994699666002204810798124909498574087337545899292484154563542416754988491510351159842674322632178232184345579986959679100210186505057259396507791655696991296006905049153343392582553248558567155121738563718700158800429649836008521829197110238567985158080677076294477723937330906008688201499461329849462299210988116486444958136195724102706265305970863090663379774438350146582446172609601561038760930462951785958469103553260870124256214192913515897382444912524307339681978192766942870753077760595612574134278099421675842451610205606952225147629868171129944141986725519258299902233497681006157719745224342095791527157056300915544400094623683337730993887854279289697534197949973929988254596462304065910440326877926414116879515167434980214199106895212283341871096022474893634889819571623525549888514531575115126323083190989630107226714248610276894798026248029154642679498715578814827724882037541863367148931262145341208010271360210343800805899075178730891619896970348790066470369208008763085043672524831249437520722774995843917273360351302205400057665026892166252684158089418941516853006612273218602601044508393848595323177385847756456525381341994979711199756399537881339685211029755715900203539022537149700154921268987465886659394686620709189711251931104975733852041944592083128093789112233197693213451016739813746449245804774187379393477121468525329498869586217929998132099961069431482349742484650070769307843198083791604130632683453081198920700663074520582035336443408361081928062983849857456045162032740183287973911678384309071170176695389584051776116210002695546645931926716457414794163514393062426990913719411394484701947353881680047102837036702333600379276389835530011374187253348466323209250472703001838446495941707177650309793791161849161847643652671972231418697944768159885698759928386022384732201638813613264240111962180518333640992233192792434401626785393815531757438165548594941579964647327462572128170798816132717689997556330059461463549238711762838823857629485594103296491594297663349530142533356766887555160852560117992039299439188722500132917526437234212289837003333004231282275615151071065524571075539623463669361997361222576145837496549103689323200500423611370865762249147326179501569322005925355871660744850857029938243857067756877896419070892677674113195703817784257598212387827163353820100547734453916558609490455774121396780009814073204950390709062636577922737670956902031090583928290463874091824005329567092048307950793902472352636921673582457931980556782036400614184321672409840035919056423511586716901597950079847069431857887942664618998158382950780449259831618167270067796636756778150472571553273962946484369651691345703476435137187398176858453456840257178289139981944980352037368894003579267769311661502872035239587244020413219572390170798588062776177464060485427240760209614598528728265435080540528266779810390290809505411116189111680313103174952620365678920147930424091958427921520694030434820044271732239972735797746657279253553528429010226710335301502174526054916107297274303117209927991607517321350314000181216090699358342642595468134148816965075605645383621085308755354245215603496466456661229498530025140817474701774836525608459744017029575952182479411208391433478350114184131165113831462284726765775427494292376563898062190009762205911142475689297525336221720500429021623863405103556094147759369373961231673732721568467977429365078026225995761644352275864251955190502607091502751442452663917318218528895104935111165025191393239491262172326877864511135418771780774992094993550689875449468396356207524810518390590929014115186405511323126428581478091522822663939510431132248169680349152894486192980921215270939865648266404075554135048259445523814800770314572260907906016805024788178892498815940346102667616382169331146047915384982030607050879344330815961781027139249310238276541932275153933214998750360191469296051868298933911593100696801851756505638131365481035228112894801366625803573754194861012740012922357265423085305189620918367003896956359410789588416871082362879036919847323768912012673236865126817878635991975314837422206088517735581721279470880624573092570878173971318293826731775475196371879193992394704999901610935294259384261790292448108154271661430745654908593695917092574378354222211621772718220038618380089929621934627115914740769740490185314054205109859935493509109270102405075603352435245309034044899413321234765317348503637163587721333898449721661246946443895131765240644260772788017978590677151014980694633145661561760892611290738404854081514370579264137116293523920724123633608796965419657298600344144944511049333143789719467638090183805759706313046248011287246703824672804251790637780513592926825915242254139415035158822294444189980480362900558916673863666132908185267004324780550844782357622121275051280207978361748440030831648250021319579734735989825536274164262928562036137003850327781933634673984941516953388655134642580202370391946239358917993482829393495535649775959461923930256850968902792384999223963664448917203027322575172930801232783896049960637863371888933833764791495182976676340591877276415713887251809047548165873337474560355301376478413638536872090268455721624579482610311041853897996496877026514258536502562674662117203288701672546723648046617566221091564540713917386689718505374705173625489991793426690799830403331779303557910536779090332744829439186909477136028160336338257253322341682479082971820576958940978827817719138900900467073768671987575994843390928389671945531126702117591904880067798459250577889660813057560765720658731598882756178448359118151801025771361685196923236760789218008744088586498371573468274699951970709268377466751028909800158552804629090245664346758152612392236279104984757960838421295297255749979130667663314643857777237130097128978143192246839073329192877112547350142823567252554798111216847900474507172295257043707968458253357359442170994135605386080469433065690562742413395437559798308396494309719923533232356992696001851387269654895626157693040547534494905408142081137559676507321069386231391079387354855891077405122613727301096129090274121456203849753197987540790555595764207535983564073895414943318940432220122864649247582644687427272471426998266862856977617984896255251916386781534515531097405439821074472927532652132197032943390634802244482756442968237672481274898475011493048574113930640869947908383212133641891367293067135849627980022806789124285449341977181006251086220072462974958055340635335235698026821494210917561694569449837885708540416944790267605134936272861528501218954304563992780383600191175268082632501559918941359811727676381848404491335860416978961738462105797437757813058101747996082312480009827892708420547201141717121002783697077951820216668554970348986162163086662103571249288175831698265511080086765313504780935248464827558298665004278076808061029481270047775860920882960483922952350820414855737156332740533521816455476155926141830170212065261731967810202156582262265405426625561857779955636274070374918369112061786577545545897603453115242048364035544318545755866260536581153257010767403668605648800355275449540407798176292689816907095450103813124856639869911362212356681368353223215712734479790460747703238278083198650793288848264287620345495882754059214799862128295631353270195904055295056547330252558358111932273959066748052059840822676988086991061010469350455633367507006269669586040697238182180836985265227204348938843541101401523391530386712038916115082559850089621393630495644875804903136709262565337585720255111912830666428953373122628109107794263792243669285234071682805614188717217959013396123120191448875293704909324031445772740663668000931007510876424016375868858375657953468777356154092530888520200397833990015216402182034215209016382093811015761680240153773357768560277730999154828949503836109452987026815840636207664479841563246516964012523198077218631928333225753281618591773453044576884317825783676228998866345955558888563925320639399279428777314623715270731856848816372669488754388333236174401603477594503960384947240616039587657512177291116811478294939401869073546128468601991047579730455367199782872287258014976694223653629138797402756407961530049109854174348381024905125237313424670280100114129580563768811875929463440647012005170390421830759828828997283043980362860559427063220876694185930145441225373951626631293649144215415101023815280840399200933978757901081787796710900599997227374781948788309164018005687434914590269583236869781965052848901328629335215909768531508454628229775174438387026271489269426332032061864266141810276095312876141698078901629828628548013295594493299584378976085748916347266835974178524621437348363362461166798971548903809853665295268122729645987575928523964701085764908737975206908216628082791412191051290168898218458332448451837844188788558012657341330529311645279455397769630493333911623595703964967127795768737698622003090706528195611221221757311746076630282888263299085206327488172803579121961708404446627264063672669791353352201019785163540833187999881078704954456267950194908533409679161082793073401528210365618861968566284888173711022007435342374569089791726790705706870541396864454127416056357760449291915968485636029940957042069221580748930603809560446679246356099333081531142308649559108405865929895516182265038925922217247231061718328331220774837142697560924163454915868637476655362535099833543197998571184974383871376337317678011080835411351291421800962587327863159073272649853056690279504474248406291565548076167490215025723473124651166782003438574606932459339562932587715270233894481418262281198245227170546466425619147376813561192230959896222587901194792912085928529988589050124954029004759511858780273368819636556270295453565418715493000036376612446572509077833191585924241143984147246433915946761605804185100831024570259376133161744756972725946866029707351438601820171858799026956219256672425874330884734541528780291406286162115767718161354056425981441442064951655351139431653085998232668139562795609262224123848518756638056274621815579955685502530772612629416892520286542907309996128963870744481650509294091453274170430210545634374138111968558275727240244923920052331304551825161893653636725283230825690506139339893977955938234190440782483418477293851586710836407898818270574486216297596106737064588117085207971648119265680215776747675483339533081723509159248119790790162551365841638702916056942253996390057036100145675943176751013386946146330555269687242206970497936643525386198715325443883615865397928295488035275924402329556174875104512988132329280105392562435801545270305074859832570298936960130148459517902359167648386877208678642351081684384726583093392916500968836485020527758903213383212384581230811803081481160364874773330718144364759520396676410442354699072988571937411675726855349316534336365346980977937891340336647912189267269638602522398453560367862938264301475801315707298009508800362862285623355516271289124392147830211611511670383329559842660613728807155041204418625323693644568351350690554370536161937464206659567397732893054840782660499938775031485946885143223285571609237442322579181491647294205664553809514121855421952014571139103073294358715975843618084205870260992744117665597034586138956720035919620852228250349112344306265016633143442205090495658616712710831322830416325601903081528062632318571081418073448509284484980027991139033560217925689628486881810881551044794834945462046460660242439631599050274853830370243928965380654236239805867645606496301504094597677243776000844443074120877023497193934179636296797627446980394229915795953037676502792565466387225122658952776718404594835384820565981070724513215673406596969980065478203277726521927229686431867245623982225682146686045980926141989992657843672500615387870099715876786194467003584021036340681843024677294729191239545019219602829469610848407829876527561230978237440153896958721038803380655724129146569476548858588483107350014445217222532832234202608054678401372543157712311618636402661423090623947323518712652385485296742874686781407976083219725380222523728977156563486168881429974274283346410770919324465654268941611915121998217434399363062938039003750270819808612337671691701540475978195410109575066802389127721635869389681254636885071311971559168762587555417454144334200894504057586434236303729614535493448652223806824257395684644181662006971003410082009771778797109140463705227259147237423784899741267226493354721494652150669294340063464650396380000872495164512237588149186711152166969104744329798907739328216687238763186952584631486439513837298936090601321413043743076948004644710463239483205310011558572000343848068535163766754211448628172194635241862103948807271132563493488441103986238425483736905851078473907428919828497785489757901239500930532576077692728509125860840678108778722334722374156460220713988180587546724613549186157718056873651894281534605016549888499466574814036696260127034404885067628641758539598318491083302331555928196829427495540666102915605614724430944173966704836353030814930189692873339881129579939395487809420909146808116144215830271816628370354898069002527761503856935149366363450561728685318013685593655378617183689478165541082619491843118638680942603700679845951570490918474099647674182560400145359942599360624535453079927566651198848113372945013168697347863433875000394024205654162643166362386550041888320524902654815430396546378338939672572517023933542077645502337254008940890054384505021795618766691551103523649990315728825239832228230545870141359953406227989082011807289419908266499646940184619687805838057269378909281153140506637552939544702514672478124812092226904477242449167598666340204140209832239384884857829312127572780718098016632074268005953206196426581008843214101395910549113432613550065991634154897787011098531803215694858488865469456919078080839910406112019042997295126992450178185354488428963086381888797146354372441410457857502292600254131852509523281350169783600497853233631904306029680540832563712266011278638056329863201570203031134537753916675876893552389561953925291909361260856430504678640049102180411839211407272661018099439491657691862428026499121351705908596407793402317786853189871002008636525965414322186835708852298070061009235468687653219677279289350318994755113931061938608119359758632588810207827957178539159381665795927185962594006924175586597244801134613908988220825454588548306939957111752750228147894978250877218249568967291344087937056069718551655619851875970298223689894005419578532459120974856339410152272951928904989067841201723201546341425396536321564887796222757902915394735388973321680584043870555154553375584524599815508775961016218441387821358281439565041779889052605414799130341639411427098823688946879203618088560140607833723280274334758343007607715524822780694141040457472264404828367614058169075468944565874456549911661074103308074796886663829286834345890969707352985778669554095689493521615027989272097568556106917945613684144926453024870668172445409887495521138172886383159176394831459439371085957004608011964992510061662802794455085475967183213866163272257873519836758463856227088996780298707084747496847848155900971249637733760804301807472031143861033731863764888733768594180278778795104278527816820076738330844697641695915758637464767831335789083582213423108738724043494691874727951550827751481774669584852587341352736119795707056466772825294181623652801588889614784856050539907605837877441537120735923054234547566187186184608324230883487197066281854526354609134466842295203312452902517251185197670319014985667647093737283721601355884836263660096757606290505982140309501472394912293869930886551166758495385841999249674983210007504380300948502637386936926104311201353667025373401437816960873483938162025006392788000114429968315030275172304820016615261208648667855891590706466289686367275073271796242556394760179520373831265543898108741978111333081499128879682679284075290277950822876450365642056934854472136424271264699830585599208766791452931828502211023408659988655700079984915379770422437555431629361737455330591800605353530828596741006726941026153616168384628094793117678966835937759586087069575838085905963035487217289107009980722257892120098028856759532847235400790498719528569957175056250340927880154744601041406495760198674283960225472358104674013299424134512064223664288012197257731425117227938321562130088124775995810199446436616905060167071340490465888562892105522381423980828673783861134331833408419304213513544084017464030524016614923305413289697425555334228444772817379551917336068047363351645817175709226925444532352092953082527176121162443000427088628115290918747058068019156667458766263390299725833026419024302344794795521519087485977049133749129340958130329500004744132799665231188262104679491136514870613586131785084982656515368188172164102407712375972248488407310293621971368860643019400128743947381376991524002097398244935923930043363559866140164153258085646789455353657648378207110293850065271369923277762260026572494655753010484663771051801613988955114740626766625497399185401201751910838878491959749575807069561087237963823036708245070268506461058723249300020464929712100703033949182002460481849803049131523940598925902654841491415715063300072744044914502647624037325056098146441731989504200477947511136870485640735368341725020844829154886866813869595443691357919428441999183726380493729771433036171764820378403524454651622592124017136218420815121306467579210781550639804131891722144498815401415362924366161111696772615860013236479509297053380068657417914233897762718981349486655472075809113085763199468153481771540720023059265172193499866302734337340099098382503029510652287670677194588440771971322939573564904755983434299894955515322800280614780426315755952553929390528463620849293290218472316553002452036326225153472275250066560930416804513230531690561286835478261050210036042818753651758610725410521953275359352693187884919232669292291841509530822579338938007486450556614535231833559927530629117857277595111763209906501340119296352923584511327060146619911459500205676856123134432650390757134457396619394651743756190963870051352941166998234516399726517060662703879748992920265630410704561646444970713097351123089227124045548290626677502803449314531999974798036668773968128857467650803662022344688476734171351176578866073622238150337582393810359457874676644190583541192713946315084087349322267112233440866351321717362257618235830965513524603681507257185764653890875753886292473416571436323439986512230884216674915135980951623085065898289882520348403884107714660274715515689182964503434369384692528519250006777519391726982330610017345051709987258099450376518100894527435854381290637073290556184997715470556577237054724730952103507241227690426728503741470496225149027386770541751530884278209061016556971390669565439679527716855835098616124582843749931210765493799839238641471369737804488089642542770637521844050153868043399870813196610225094114750080083544364161895676462751340994592915949967810533528727481834438555557151783869032687538445080661999105335846875579919619545633634475759324839345978704217570442161096218477819894738069589818895866714625944269721940865819801177479421679731339732194730740001902072886327627109701267928133259929340272952204598527506111758492529169924767697685095418692249678691741488774397602270018961366563528216689672813174506068704268273429085408397982515660132579685349330652252263777924631196108031394487259327742782129444306534261297800917169421713269845288951017492597300971898547368046612029779470123484623535332914888245769116184875511385477002557501551252614723996721638999685764822161520372019580727278921580093723979740719200405901986567343459694418248346672901956466134045776506320099116630958808971160248762186204629385311958340296946627565194332226952410817053830928793618651256565318549978151049664064321011888157644311360937681370381572785580136190668152192905228385587670319964161371983930403998420782270530417261372235839886444198641254109135103031799909424586536346987805894841907769749872844264119784109970638969442706131918309322559148658566910385435726881374020385347377131560503150549352821556055847353711372900800856340048801383930891398908555607257455833732166560053534467542296226497508051262819808082465123122683980989651326473046471802233522491063384239470520455845039466095268982654816795844620634477323364473833934385495701364857990530808699382235376420263220943591546412067553895282702306684309770018950412534259545568261510229374871787233723296801606851715718646478821872952189817093131360002990302576895263173464406346407647887927965930306411192060229458436351154954126509934260006936940907285408000118143790965077023438277908045219781366862788403930571071591641393166494483869499293563661423427365994168719204448895258959720999459476841643788630967074565003115941037823532376375024931078361466294230879440870996810837138287524897211811340062976231903250616273985527954885209294380564952814058574645318502687239043221324571466848288267484480517703252812348045338337876837888349334908179896718717184341545126234027435885447584244395663563168099375919283892869205785422632624396733417658884817956823638849055520740558388472580420730859633203565971341600605365370119738568994511295660033679602130414855806434956230562961298717802866268316359650222242905304888652698055856245000146430350485738983307221923520022514054463846137529740746039250660388842193212198943150304609999949072540314810135923922061452517813941967340188929440207437197721270846208457376401804088596024987292040439092131189412432196222866283337964469323349413908024542252806403490653960476116539504864334406765454865852202561735035299407219730728424797400828663491776422556210545170047225126063935429030502589911677293990819841307372427488909946234115319111316038031133466948433448985121528009272806349757674429441248455317249552195193850956105059843210740396909358391701583680843710333744922898743773867542691378791798965554202013917426769967589331702276361917596952520396285990000205132304865334178192084681014795461537775982206350421048428914891668116317154302214554576717180642083839049462584000337355370943501973678861492931504280697211067730342602459828542862473509732448611756599477766786508754924549331577147129490701972208683478173877586219109270645542005275528261395208056555947338478757794327146178340279513835846146307304572093417342152205323731012907428867224305302275408240955165259968643360680545589427998171997610243366406498053762083549470924440790522682513261902610895113035344173993724183843848098727814256415732969776064010493992713377694333153544583897470540040381815144272523328281185277554740293966088111884837370178572983708656863557907337110811631062743388940639187659371424494253280764469749424933517896178398949222341407583571571809904565468669476902411052715244122490602316006241729719477115635577241930294795322295490154937931744689249666658648746605486890571948888194628460153073667117096343900894062602877776765586025297111741656697347853474181589189711541352162320972678475596763918639810423600386186876664814157971412361165911288095034402829250650791090104266180011804141230091354905164578164445571921869014084358436878689488698728504850572074401005921577993811726756732817926746834828830423456688792041628028894345166030721531258057234003056487207408977281239630212320912783495173592715103032676234676570397454866976750637721271298806716058896449981087784837075684824939421030273392659808994782844662094025888423961150608172404250126731139089249506597273011778795095722425421101351051051615327200104123646149739531140015488984022032285858419342894052265851794969750038681525073046981963097645396094887750917980511310957956964326391195086773742911057374515554456856010238955916611172866010579612709248398954999991737209305929191253875276890035768379026438602467101844777202265046273569668995850745269882389225217369164968494355087053218132188944484968510096240463573693970490005707643346752889403980159345024106875638427855365864143253595433605815792955073678820958900844131212125097900323819572431173015836838601201687601141270977588039920633872432261229005932503633366129906891731512472609394078612041007300211854973702311041112412303772806686629155166329750448072004923994481521763559245053857200143328223837417921261085530483402920191549158534062560928972204311539253199903211492887828504742117670429747021003473257334679803430756194310303645819169238264583817670270625806210120015664022282014713483726594810449366865434735630343688320695120260373343278437337704558631267854555195638429004837697399889802075101628861809374781987671251716381710569663997645330158856611563899116021477298801855409312972288628368146254337452136885453836678451986361741601937508782032744276344057385767958806068653967527218642686135059781371563187836936928267962117126089904798582891654509601703199577723506660925222373576615463810432582767606617019277513993996203398937289792209228521208696692840287049209996513055126919842034130674742083212731139603132705950305204121063673126622932950778676448704926278684525677886555659071838353543808038428123260750340172467827061815890315622461922221152189448808877664198648792989704875855628769656854586630155286961100238587872496121110675468920232414361677613994444696463643487802968828521996272056950358996481570638190103150023428165076503315843452276480962125795201316914629866353837910694724278755383094298462589074248741396364271370530505252505318936067551269749099900474998831387294300305629969727830897595611261518018857328895524257926279507520335583789391214191460854160414383896704251444079035436502211305605382086642970530922513531270694282994560892135417470694369651405634322074284114913280939071045765881773683341847314460937658419405644816448281162690386968593836853467985700928950352505459663538878616232218387317184615891150584807543615941207480194593646280770408208576768006261436949767681257724774357925757866715987293785882713490943336242068774411184857036084246003534522512142656564212864741825267055698720774575629406891254533293494918468298563326540646113607426035516614022889713594190500188061832212777932216158932928746572896371253842960193988761111185652108871577508620379124309979315466424990306254930127759896662158322847393505300125319740328155779577396287889463449487525819859439074991127609152989456943248876480749504241578246943476711196425425013089467263958209142229621275996563266154778982817479831110800811545561466618236770466057335624211406938194334302482116372503382055969432080584484458804156604318832164204754790542107037773835388410486710876628964312355303506074715841246880862806844312425341958043762659391182933467903525271270307667053037714974588030377136824563101794552174633324444880970746934165509470839581962492959134528026479527999749956852090796938224879083062338923885201021423442758253218006269886847745271762163160168056165674922471883423484650995830132685301001468064873815477103348606834463862679896322696404685148348391765062248402640163350764051145047335130766571298352224554345965910459029948271526233462308694813873525717842501235164784114302696132145641069947332575187046297521687760183189215623557761396337340709698011364168605449913728877791940074528926081056273495950923930160744851233183247451246332883325015575528687347967907646891828382033787155855226815400587242627738541361204739166119000885636227267519430196279139317368481524140875441155952994424261012840862361081088091224763183773488007929406216949233904101127889274698670094710447658874864767803823890065410490482925269017668009081036766537327929928420915980068737620349961094076474489995232203727732485030702826583616250144242220729431066404946276354321893050365340445472513641577478305160787748581200409172057987105854773282187329415603802126882863277991386391878949725549744532669870972660623400682229044932707169310974700252099482552042037522459435710052394795502899117491059756887220378669835759905282974602401715273951681626482201986973370377051681212345957656782357701768500144259189983563431502202568078927606747066663959033473947619477540793489522436762362564430002349727843170513411221346045758775396873557135077196619925272822745933499102692119587129072263469964461749627563672998096408337780574132359807796894198568069086878651750388900332052288346927579972355429273275484702892300058453321996596037865347278612681429558990512179727556393453901510983872896526071209745716137719922141504105273528166512053737464266141605613920477885168110983588648712084400542594209961405017934242439576065375662114575230829505571702632827611299609861687117849004251853491335472009771291596023580933889252367353815150233948798358076414273129370991550734798498985626893459545294706556475543993222050234438448294938079313665876679410049731044795687361435679285078260955030866739238479510095394367274635613608946202803837303225043240934125540704801077276313801883265822674734177871804339439181214406277878060300142723763047786530091622473139760780574203593052110010955774284451279361752180201166548029097443403662517093126666506269353249324569227173230395102959542739482582071695784961731194113357189728931008141048065774148752964373616050001884729675490247417652655546044909519768342003058631027258820143562167901339435664493847081964223459707132777319096259128057540680506020718178315457486536116458059152096831149454540198348939553204867683114631389004941042520025654189426400592237179197830966476112555411807795652974633446989794916199148148545788208143918647684852836596007048388941174080996424997061144828747612599309902068247324006965243873023979149933974029233347290331429630418516695639357944893339225282448466080304997415781440290787956469716158425923832037468617643761648587297050641698748055025259526341924341185134514714495810442963522823980349578951159864538471024434458089618015393711487526590899192746062247555618063097944959390494273819118567064288251550299109193960053239705836966350435682464343427814388540975402095186771224006345211311376226139063242759619609652548083972595635681310709800866455898592999140628426078595074352434555331803970112085291267408553019267881252286366815023145945277818648472964821258101147861312957699160994123999113698318037625071726287251352902153015554001641224932735369384096000543760177375922315587224006732863893855822903915676554943348723525380902347739079627627668690818641746931320842823420812635194408975355133834272912520209072807008251491730312106346962920338114317428783484753607399703717964193489803841114736808990232578409240915722134955196611090888512397154121288190926862989957174760767735013362446563251328792720600056478820712624491431029807394717479859497083816240158476160624493448687841800044908240707680204772773504328951444471205574774822014156629102312723490945604432234125490903531707392077643187773303153730121020083754585372786144639506425942121249246958194864208784898782627543696376240486747845358076613313042257084914157988767522685422685758528613998365857778602717503749044802688426928202495367658225003747523873151918040288746132567319946371633162553012506044093317532465322546569260915964940310237059131961731139829137464930556512207456055060679813161410332829294918564754527438626331174504009981714627609174616150584066989852896916715772417393191201480701494812801193376516968970688906901113192959602931324389125306627588122776355224375908424888859189552028643904778801830008522549739036482055265033250501436948364632385665043379987047115059623670041066581355939948379744363151059759415976903024956088753065804127002970431360734919822052922208739029803807703013581351761378969426199192611094244519576846373843474671567160975864493603115315884624619550809940609039317201879802545908669398413130336499861978654140846144898631317755380787121054469312002081829090175414587013252080158032763282504553825889800481093754835114718231404970973434296811135025308984216146010559163762539305445130883910494104414633298485976458513674633545874447164666479344955906654943841389783041220340653268698354064817844664065623897876445481850133128744839536806252523731641069569394924553581220118362917689640563417149952198198745920322922679229105953848172449866076691038019715215300290024639312006307743720284039436952136489411135908785586598475968377431784076313311404350125705325569076989873701304576749126374213141408413200467638418277715119127254327311632963482533233430650564156219046999829867538837658388241908300793346950452985372309223924835907210056234998004740236312247269623904184709220298796966898841762854938375474617316381592052718087222323643121316556564603142326955569261449275065818733646283271238370293264969898960868543460464162850696655460230316813669287705705643395683521699601349276590049009692095872646242159287029634113396406235506784446516779103509811990646750370029334141078079940604663036046742484904579059840220340493959381531521490940702341058655587974661655383464440780511020146698613581169334999556882669919720325290795132598553228561725180060468762469580583062399382736125004076909005349565083856955357216371176009824407994072174274959402075937162728651758847383505414350035594837235660745516900498351569969376264625403048192808280649474991912701887528751599694882083708941413924081306825163362420931755437166352767021348655309952727855620460461421810576368802116793513863340974090941449927953888179337264539867165952700375217143825072152962263581113748858216258027573207880339385675367163819418546358087367318724566643162262473451056405924361295727016732279730058633321724930738767939416779386705635686992249036975505728033235593351872746301912070217378266838861297001725024431066052190397151756919394030420581198312359803024433062003103266374401438490628832445443079813812657663964405650644483415783227297331679434848742597244759490430393149463493081175661550602157572065231475570269837108354261254598134006389786181691091733700233329385780122628427161485366525988962353873342952027979537075336367066135221740156140371061284272513380893933798345173077863508209804433885742797509017593848556194189411599383495817179948534161864163877334581386265673961909493913214175876197917903222310501878976638681390674748457026603263287394792316079365209802422519068635369480767435731096277364033711581944400760272398772355730471948779681769740017203559777295034149094340273522502578352734000463077285773645987221094085798807873440052437904023115603081064131896970489037300174325769579440315424073372294949043630737474423686649745670238281813397811739854138712047870175826227509297257933241810137460694323723123063697137462331572066574147807682899368788400298343694595517695371674906834377074992896232714141570536720045670651909137859377425293293384469202567417093971929474391072858028046389472533428946276955180264908338270767258233870310358200156652815635802816125386735353907812082938638975681761099407158710751210904803630416655518160057417753178561137091721972427113176758171064701940913390753588086593495016409217504560734039607971569070790751014380303842523227564601429676159604023638764643973961548047707942474568789949771587712319569776412454155404593316207171853942340539511059856615614555309415199646853708976534820298866783177746976146445253966367411890840654093693563698188144529930183395837269084529520442531265102145821959859178149573146808525173091337992098013321469887959498472599123017696051620288006872591520808473349928341677265130851981136300886371699895468810341182627721816152399007952717481785434658528903328463621245771673479337290564808659174874239256026983082039529417097234813007885070331246106036865292848387804974184796459856211293533498459718155676754860571784628228961786208614480753093366060932737157966456814661746700300336954535401240943137922109763458307407863281227759848342851036964809196102250556969726536559367057609758454548460113468410518405266806501230201944711238573906867222891136084322865974224462208978357877945727960351984738334451747153154325897297581939075754437905029800002747605442832869248913052095832795535396281319647964826002314336581136719214589232234440917400393825234240427423554362536554064756693065791811671343377477606537838248635107335189936114011990901914858687526800802723149131231888393655176464456320636895262570605089154939000289398776271916343757742062958417072548617320077348095372392735156616107091072940391636457449500313421571100029860164890417391284509285899810838781918304933302374048453000321557282832866980599652187258641567095508902421099238909341157085947400810050901184223984736900634947860525295145044851955080257444251245025426733751371998342708576328654077136184200656069811003315886508456707839108485152818453612671307321384976525411740704647776969388395464146564691891375618120423832327146377633069924476315381925855174303182723899797599673510314187489172012510680441346998142299647315343089500270064391159662554496118443197638582885349176824813867593693675557405719734754546117019577980136160691933217234670515451125419240100495903545803968711815968375199328300914872097034616472636898789786911608151027919603216163695904941828300123635937407216462320030419261427657331552220146499678112268838066973278019281928413344899785788497423876495451859631252150498403528813195948551953483326733364206184757554380383759864803412279586207840451595166267188144174032081110174286179753570666180346096566898813200834455163262072789276254866615705244118480149988282302028697741538789444630728745453884785200296757464509718684163976761450344623289258660253718630403748292110478581214872419417225923936065642738609596531752343696580753352879117760343751304632142932932099486001541942012765398807939263757851039361167814655821293273403900561986274014017222481265770588008379195929368126038433923164385017045802068530058571690178628413856624040225270092578648750086293531989921840743644297391057267664224662243409328826903117343266010072004400082560119549555716587490884745936233122026426971394802949745849895348884129449416540761365675405233921056102576868429711547373167044566988248257031309764143969507782027906143206731881966245943815525913237387114156518979307260760971828361141097869861197790332408784383952672055415760368086662166746472777431067926928248895180603407960108158313618454670198106582192494743634226507617954344114051058591224825601142259269931566897604365188359296050532032372537262288066916203014461507827015821558377267358162606544750162383150514085466564666303350382024963205679300698058047335810063211441485814933276140532951970112460904263995771419106663585133530297815962541252847103611450245421105666881907565492942502664784294988220266724349716914842718515878627557358394715497721762907319345871941853533829528645211972519250754096368012545836098314394645805947791987667623712302794160515601904795126114868658715067638496902980520805072520994130785577275525224890318535268245739878172249395834006511427138648148495877571036647852811113636095959764758981733996300876034607133578725758091959858139008516481316641129486227393450158244397442261823419971977369205942816364732312392687807308754916008316782356324082136558882199980674121519341102076477162048532038341997445104090407637032306442015947562926274967581640260697994548509678410768264783501713300920942307326288130078134276614400280730470549817631215759978420669362755254579306770908714533211192555109949050119509038636307382644569296756008691164091082699619126706903801411590219506370058043603142268409872022701214647618585372973213058023330956101063278902348200116634072089473995784481670489293134856834023149566286287070572957040950533807224973045837104410117824240937285971258493906809531669337031315897866156628605581425176626812699085422482461684496899359893298085290012773583343593242340799863006011191117337681577386522228305869076799223583040631057176485198461693810462990166419126309737917432205886146179634538267332987791493863919614318003767479108295414400162296882235097597147985007447858133481654276288779210948033556179356746029747369939118509019170739940169252932683853323043852464738935859328196331195107335952420235307327681920437710152857465279741225827615325147697757627205099823451299131226517614330684558767608276433204411443478401383352354641084658453552791959002924709354342365164533601200615235895463309044110881668526317053074986784389441403306206958399472407880992572288040264827856360489113972594471641631275250443211862345761333179833288976286034733219189102354115834044559246888443706914256576737728488957493110215837557932245484773879845472460844194910792751300098853054518471078649566931691746312180584465913714219630000232303015120829055577308808933132713933420987243478040967219904110313259456882603315774101043547234212671333348316633481655099256493619975179450007310665056417117546953783448788672277177799998554182136328899306901632349740892444007543490794045424610758000672996662996020647157609107346884625121525032544649586382115530492695366057013531446948342295498694239713266687993845886564863020918019986203388571769694720348499638595346544426443359844439654486560879119807648997387618978279404254460539733423768366365094265612409729993985737428865969603778370928063094557732455130422544990036591335874765653828928427651441682490228830915690968665949461629839456491283511372135149369908569669850179472389227404985174889948062325741762686190559933924937345321712455047217320612271215463739949448618098425692947608361882302839421650237662146508116499224771649768166474816449675247069486390363512070617142082181059430432445256907467520836713151391562396909370478995903267134172079590518375244258234160008691065096773923073554269969982358191844370833638896386338821298677485675668235368748705651121918086240950396491412723632592274945836354371725093756480052472054832306794011176423242677871101491573034550322292191876490712437106877612940562897937352032801482183224069321102281115696249366043968385857532061986827922123625583654330970232505895964791929457558680918111108423408840246120364877064406577676539108093234870855784388980580476643353404088316347022791982381224917488799368092947220842488865754983869979003478159058202616074883838875089051680204705500701663284014631288678561053578301852421813277857350769409413518169743080447303429949345706545767444746583590441626927727553385782312411429511247864864091727925076730561571203479275397263440010804568777667701015120688280292924808097774843616227801556132263255543492237355699106238977309246049553264757162825245422022930170191299973631267705506261625219864888301763669551366690250239487949314772414577350768218288742215746194516291304842413675809760534544217325643581290863476814500272818815366321997378635872355341621520034604175339414770260576129229473076105480609692711813736587873824360596465991365261892823253214888840609499091622947428429944866308996393274137541272193087768128272415873031130306659080721538262433955969239510276296846952046147180794875827995100585008533418287117715236388594074429155787682101755081293436212339340347439077299184199006574963299766379646153032198400547955600732555274971156885972754024536432389523128053149739303608351942260195819613619246837524330392813540068150054202318166732917370415801882522938463124926984335646053690102785462936642920856230729671406826370124354236931992066757175380987160014542537905953929878981837095318126392274391454079356432609164640749007366098019053779695493734673530962265434207974166624733069504350653246104789306009787742941076504537458603808016303510123048659051842179361798785139835261422655886931822591980316818763979336654550254127944784334876654618323168342223991983932912385807849358422260461172779930537357430610416738893286535903322295890700987899088157661039920804587889327503523536278849659717394885042648613578776852009171623114933558010475812726518180589976381100722068382487789265693189131240666863740074984718905176949889587470488918583346948845259088923292801101035220332155124794569199249252657165889779337276564285003715662533670463084650280214709741768537663593250100811976140091629498771320008974473205640725902214291037363704286341443427950974611620366160347128915188139358118699601414893014919662961141820148918198469429821971706895138442978893000315801789401894822719335154679313069200865416400881600935007377017070398569672877365377414653297164685869250966854292685258655647157320135930605664969729322848436537412059816075582426920282958367199447401882170269372807938996465028838347730421520464955841448135990620153195175759527813005106639243887248482508978036582830492157389028993473716031565744557164579577290344817388516903636279100706215190313928983679252104096136210106472787470989928070320998619309889924566128802418705726259089839752984857751191325233303815638206876247903584353396271208941790618088005596398978771926567053269971870946492712808374491498142833010648179038528581744562705635533261954023046060549577712173507801190816796448596198300840236519383900403568598891905549289650876664880727969264927484248917571553485510391591618027986011244490697195161194544943829984302869935074253942546400078233282287205333376429003774735590490091371046791073289288366142290055420960010415611014073847164793022848971480806363007994400366608879086523093261135911898388198627241132948103133396226502287864597028459960039899627406073026224131430022841171605009468838862408998180330391807113108277960394379940349014022569293170566423714586961057403085138594421936985371439640001300765042412800491936375260168509138484805256154969051741988231969786844313746228809916884479660581502255377472495260742011979264064960149791247587661838049064055533769068716499542750550577712004572529616590012699763912405908888242304118972497711100063846724120675435977619894631974164281888442317823587551112217514705450902960018678710059733302039564745224910300560421970460997527670836893522226020566575277320716826066127105785596093600888680145768445902187019012530933225025116726309640504476274293052477332938281343232555999486504402597042143068016824031214682680061864462233736284745602920885083261017005371634733886124509577007902262618022310777808901780601679780607855637256253311131269100375845555365744855800056378095652034705029369767067443250635831705004014024369681621951653244734782061748969057846196824442287920607379058550168053256703359355125731591730644192450806664075375741015457087466213199264218091779201644991949177685571381848030238953104823269675265568006165273324218163838260806678306992189086562835131746666266158816186752102955396286847798003380254498268334241777322743755080047339204911050473434253465157640076201098731390749581917629123463089272284903601797182998954072679996191458932374629678696288120819260527512966836856012245624591366440598918145381158933084708013185311517145483860520668115166012890878765589282090254314945842852491659261923796416844580983301216773499007602850602527606962462805304539562175105752576054253179003560788682515643228037008245591930277245073239695496276050143585051811769383366258117005784211981709706815048165188482169724183604625597355056362368810557274358815669917607573739827515657643189485512253424585911306419676216076581756259942180321755436911886760647580605708665647883138648302748654721435406025638884076472039428394659420223836069356626977512933126237885060855577309881143012800223767333471818253393673427696886558989640069752325767270396037166901450001145977167101592125125104663428246862068949525430388762280647419116470967496024189181181316664234077634964831659328801718756309295799662618016781372199253039719530291415007062838864707108181550245777706027387935030145463589659158927071853823639039196002113594672543854336289213776822715298308701370533419924844438379545924861151780829040208902490623657205260683315959775232758874715098972100700769187787749560255764028578895303626533767666776768553213590820243555295669067073181009333862010862730942017778212836728149564727170774881045169995176345376676146331870673354023602704734937138384018862644510050585128939595954773337632735534154942860831274925149081804169551995244627856830532946710574041028818005297171651614242356993147799281759365408259016901214426961715917485283092087223864647888182288217317988396823667677242862088270982243630413166568864213397606467767833900556093124764874460329563526886133633674215963192243713237978072117391334139205724270248024765051211834106494306755127119521732295221812669224745046193011243220996553621819709322676414637444815177626968239628385649484950635671607609062528508999352533539796017816824594997003865694932344919855720807233335560467756107517443304621902943187626140949408673098814169846884376017522260510298600865412308177600976114447415391455664272320304308481876993938280573868819692342608318612581678098639025953445909144696059391539483896756703760303867027187220803485027678913898177546819379655906731733378062102739268468263992021308148946617129669001713552184509345487925711031123304095349429810616767861386626405122695695278083158883939587006393672908642779743167530661425836712675173475289317429386793306796302918632433422827585947789482936859428447829059081737870275285959748978720548948760382492623008647758902126394056212283146917039829267169513777093030009579132641634224702038189960589020962361035534498086466510309976167376585352475054230255288408310385753020442485940651863852756442248178537472446701496595128513368085008857612609354547155594573025302663051073120398260287713656158831231659975662605477625098417558254401719654494745365343197720401087713401452698005933220563872640548507033730465884501182602904490366729407771894298865023580739466525843598948613418443274004007913742874163638139189373119448550099367519594472323701661846038652474064384616773005532356959243524237000901170459205162392413556532890430060149209713476532858510532437149848424211178103085491411992549866131048106321339924991896312419693768957922113553816919167641940651907151797754431138875324281670851306750021757697668668070188498388959385223173846478614697328652724739489636441442831671493688332873700775583280397947000183521595118872149881441180398609091400857870729201235415479920526338116278278736685258898009357113902638155883359014204371844344709844034410661886345311686178641267726290275852494622236603227470663069301945824756085155243587973677167678684639435679832988636651091152322253958860392123185354401730277808036125994322576448871733158343901733123108447640170306913593296579994420154102711203789489483704585129438308430750968139462494517025463734075065407945496035282933890310212680899509652677557989570284737706742479828149759425260862429962570716962623291356103884507377654404357290537617060865574936490602796243340611912748821998277985756724105536267846958530118615366632456652324775537089718512262423202148170390839996573090016598544052586249923351572164369010873392666176347781294947430560011681731165843037964878095690391180557483766129229927359173730139036171809443132071967878023159249839239716384983402251716114669963598686512865043490913235867032040930848406460435368406422617308801253326140535520837989517487726649021507687332655563726282882344200283336411527276319071986165363680806801010141193805692696471534662514812962580117897334973226302161774197880630847727671287479440550361679881560605034937389155212726237164504812983599112003531524734125130937026658895355375890088512176650521948612610400498647571872454119682412933800328554594155164511287367484670835661593076234961757848676917864162253891413559577438270713374609611199481408737701413325178797925173464127731527764228958736151809902407538265329642555647222648037233871225171712849024262574252337146519554266112921326158786621171117203888229290688956206586793669619108350538409589792725906255199721537507500835152140470108736820434392634208418616500465850551438502306108513734224489222569484490510540765320810413249828770349046518450331609559882694785291413284578600898962020120117523032428135738151339347632964144941533811830230178654371717951929376680394165595261783328730311481303644206751602431124489740076952506009569181728420934013969400999976245284816003921257151398954189320034529511195824555417843336202333247255053358375320514794986289783340992923637525698139300126793873699997832618455478545058939698635373784853368230119051031588735223818444726031702304107181850758391346056350614423351547243143474191466561807462136023215438116949393661201773191692546227411708195495607454959720104211979363376680540343862226269170011929306903450713395629162255656669927626142528365450484839277793930766277658460937749608786924887424909583770533542686412093488825317773093110103325236623354602066506933233251676096503837989268777074233071039593015148990683159911645480058727379998554575036723208522338691057771384978224455124770461932500998821599021162813162959818060576035010478243979920102171593669867916453259795414997500136603728961129519209732803660082264163533665750652371386651158171006634300143368168939247570391651739336981442767633760948157052525464517965327568173278457463960494929515610429665950517288207900334351711785576242739409100453093361828535902273368546306787466828109364958747795279748750041960109886159803717339462654446010091316119624208200146448953027379438648157080402841769628786631138948179941411424036999983500780325802405754897619764901815571463238740059469433623120476584589428798150290629511899355599795283806410116730504017125148105596014573447416685684768292894955313111500161587718784784658525788216639504681520649210893702163391384250073290805375261193787605274152866561890095513178480027101642354390656528468513845278344375638181530546261222192647284713240627807349485330782636322759932201795582097165098192621791638928669032127333368182833172466026148728439628286323457906116478798454359333640394745199848766414209645721378511769898270479835005710876379285649713140379123307855177397239695767704853036884674990260975800002896866616817598246885581820751361233966141956638216846226376713892499596094511716309276996399398578666235253208621116387181330669223960497910532049685296284073910813118381194669119943294011834930859954541516382028421896904888825566614159617989613135886910983461233408880249753616268397794853957782309986316640893701907538910643644291853520807049223849031053193782878494656770553373625288655647202198257800905687531923516789745822265464042732078604659956475752322136277447295156586827577305766657187707868008727378445368457526801246302807320053579056752967342267807073363068337039613558777135897020432089841539619111059165680136378879158069051175310983763467549476424034701225799223988092881438531994028107642596336770278425759095278829257849814245803927604099177776328609049944550142037344466911680435968337970032931726384692253562732841711768355092009688851825063108007666112641572656294695178071344766699834013737977196162080500468881439219567747508673388942681456484602762401896290920038996403637116630558206135422357316303024694775357006039627458618506910623415887918578883951393772717829521218564354947757102862269762078948459959732513327735999392064302300521654788579605339730171429103261535811249453217043201006460372197044842771958427617040067655655914103377616513131592218651249972388044135748635967132476210718460447040597465538373281839868561585446127601422645653455385215264774820382112987756312211821961531427397747036789123670127053052028827266238479024417454147516303994841359415877293599167004238173162950584197019806367391447532728891197496748664678597041992644944599219965569958702316807856738483778660397477038569786249517162776143141441467108425462952459670955499967097690979041578152354612842810271811762119966321087318155827095332229195556347571469045164315951463426433799555224774124734025752808850117742109770250422306186631694922032992353249575819840143306170678278462973028356098265199132531230943123374559258490091303261620609390286081660253975102554496402128112461527461443255486714139288399879583903429496954668695707673571175440953246009485575811688559876279896460529443858324173690510466643886374928921631194279661536841584133450300844071412878705790557250638700253642984529883502395898411161575735551897799224105756302600352943870808768987870101538952424803235036021676086336704106494386012100178773032901613579777408721708390487111594866579081361147131863494598079090389344286606726272024675805677124621456995934578216305457101668267826073456197360459184173790264190723521301570465448391486790487641184601802191604853796071689724923035901780710136821980482770385505810270143621800636539221597999560860385250967354454618648072952841460743627408410502501910375858434510351109310571617893099010810970430877349772435009583467742067716393046193753841825462951235418754037352602944627022110128125810799655461436590175992890561536691509805275855409771153918338465592769512049690756781935448422600082566297645926852303867319090819982788008640227313989148264225623926942388327759329625415416470377298069526546418180875049768462889790316726116920761645988950766106509648863488895070070762768745349266112918833688719421111251325025534627817425665543723029926043187525811436619989471412373941856146427182936246930476362940121981287289412809904305896567582182682912786771633921844219585851089085901734692299681819974040384355199968043537929646155825925208722322516791464903511352680922013760963776546593002368086572335530371362056207579260018012221786693111586596174424117765124131614517207138511722358852117936419875936598493098577433607122264426048461002778358761458810399920122026018789612343490420628549093472662565530867504558056818385839465463348623529340704859884263429757102542255914409417009315217808916397080895296356537491886373217557549624161506617403475023759950872061127456813210679821277040462399117488538459860642733722712161619077778938089283729988651702982720323493892591983190768585441368715347722296167165462008398144802967405145673161364296606403190444136517406611037212632493896198654371352122737529542757700677360129582612887175480620104759222415399609481698323487483414416855037914284795169994503939400913204558779580470212565283599819223960452053398723766512432929475911464884275417857384470938006251759414095619149113958906724584718995882991338219121505183314588336690372446479808167763316044478738781021157659726876485014531288336394323894789059860598310773982032237509717867233302021693266784527370613289490735023806727609747019721198870655579448029943363723874748652017056668784216139297345760145972441265082426590479870185853544346899011635455422762840568391452135095105888213156600839640421443081814494624764459836695215944136839357619508359039134569054322924698925691279129716771520571678532425282001825309853991115585976283300053413558099450080087363543344093868491490245345876727128363442822228312044939331792310684807074269804223233679722593992602969244259767881990693914140010505040505674153011872037599690828299840173564359550729606401929971761596917155308726659006540323153600094151391793016200967299715440978977597169878737988669841282368249747907970804744514335812279773428901346212500777148207566495770099352870025606673206038905984543810912377056725443315807144166939183728940974016626297796860817679916723154366557870557591045116086280551136589977897352176529871856803825404437680833203043406633472188493726445405944620913532622103908467427609767244694770837861034753116863019147741571196503562519995853772632384360509542717236926608279088445582781086670144578423682656990342521724178833452195122313813684820541943835394301265667902233872065717335179414136957803678232085861753229549832178644764826361328317384564388425530714582443125126482903504008540271637520496095575469120103418422003940953341927389578520697425672184379206791473498142307929895646661230518372898742451779102486753423229587659783065587852843866523850020320012556635032197006042696280570063784557810617553421171571977960514039679188788992753539916519967613631114916023692082760615702621040785944056544610518000151478533873939778618321968186384231572410367924302867939260807223722713454792796755559741654313862325543095725806805361986973621970391192933503843614177009212015367024381391924056967712854786791994267569570682706247104716618945978245307748225181950710633080369120497726486050792134236363457402991682212585201036839026276909106537250034886929301388226989277028326018797809358323045683346707572172321961115914029356067901474505165080266837931658510574424023050420781377903073025292858707199914841480410776655335019121189267340488552560438362662078702347003948980067189111150212385321267547712327449203937994985307092244824675963166511239925155423770236406563996589801011986211535349056653659144075580539114640234631477424564562303648275300493101391267104530776443945959515663987155848948130147969321123134677753971443240737968763289680005849220706404142054924400077482417730405394149537106650700474159049452782884821755017775968999435993681557377026033221996429387006832191282048071592622769117783083817071403016154231337883545268514756458843436252413713786388340629274293606323400025566691738960230995001381264779398639694506714107506643795388144521721060161505591866255060516836203001530278097122843617980892119722449075414904377073811174318090216715648678077678915958799403572116416866316204757357163238098276396497554780552481503010053161769542981122831509936388191711676900386086478781671899981074150666244341186554356523259425691777809444360391688426721624663760300464018830044248884215756031120058074376178566436147346220829859351856801781339782427063020734121835009770134469805523169943646311893391967651154193532113777328903791703753989939011855777639917511136022674665478738948882128019478759091492638838906072452167098288420916377546650028850162741595106473537616838430929275386422881339084127393086847972119875356537509168130701731955388319126281742790199560014285935816849651303932216560690913227964914332553526688619444468435101454383611838208727164755814720166491022008345554628230451684659050892486129892891575629811078056827642859489767086207671971382961353114204005216770623602517319419366681545757079240412793257212391595249447509676559328003684350209161338490333505398760834941395035768533772413942860422953987697738722873659245439509683630627619935755987068960692947780380306317426211601574427567453590795216638992367768352570865933739269647071273256473402066694710383755422817863643645668622996974172720349459119778005187633451513294691951755012918834948977763115796055478878081776962263692941089634047919958752914542709091707649135150458422509121053378912906761096811198023330953552079277240569867344793129813400118150798343406172777571718274296344873251611925456414402600090575662411041935475017981608393943523784864153933378752691634149976710928949573036360020690431966628934513359026228198324059066745708885013489541952448954443592772517915748740130324689531748769098724662857968029422959337719683373190753363669094550929469097050696713042616356580474314127069617028753394299272141014725920755172183167812496721864742117619101847716538160096014995911087435384825785445851915996498301207445054005435230540461106333612329132384020809401578529531411571965523214287291061811763027705539712779610019838942856508185699734140258374599917354352460797353628288933158318257805304247555430905962041471075529748024457534973925060493139725538740800549405421409886416931834256798632593052452995136793613175224354629975380688641094401314824189146413739368968646114917411452599346595302442875520339633797489278883642909946918843249116761133668232824943100245978492397969643709319497166010706062627463843575528232019868198739043015446437431666442910101234277356602541716910986438411599483510671440220257146893157352246281286718126225061794161253654188424304049763137452078961780892098907546587862561551338510538882399457978122162453167362107728583873723239223865248634329735440146359627143599930359104416308084401062330515595404689728876231500109529325673800536455179147692894366122962230130661995088085460426431128503829036925078880784003399164964380310436782535842828057355597981537007042948350881282549595818422689527890434177010527797916094731516843391128641869725149229743126291689431639637090002137578610011149229166660731210581037021401516589987185949546679200825175386993334304480849662611225774349599703847476963335003946051494310861633667576569718761191117097149932596747033376596101529591449243395847758807928491983346282671999459607559893259642980317791056481056504677043866263025527153924131927673459412996702549314864785422543877779539987344681528502576879340429494320217820213705593773068814268131393490551675959445332420312710641974872719010170924331752515233394039602363792007584045097802033410045906473296146126853709630825080838612713985485831813812561899572420700006250346598026105333896115275577906635470888032852906804740830935246233516447017785261186580257048176964556658888850298182818826217864768006895313781465102323262288239863386281909416860450938906592295068450275631505170825002094762040940526490727181434523100885917567526147158161552512175278568726024658582315990736418587063552884568870152844466174926801823026274644790639522205867486144569561920633460547216357870813031879598792514810756901569347901526958258366318524546650158105595001013788121488002807500369437045527890181583455377637623481083381586905066031315922647086712478735419593429715509708880479656337591143044017292743010393214695110708082346176578286633451972596865199619159220799528678184523110847432965058634598173415571321803389732773598367055956716532678965197125678130570418065172605792237864056521370017651471923050978287425275916026064661538461487739532597915798470490896699655285348349127508631457939901633573610993388872264057283762270578836621050954194857584507716732567879459216635540168882848210014285436510907467569893792830381226329844642741672677044975064725185836644601349723244818153832081047936509219645365576333886522150529662455418807774074758947061842766519633282865027387512676385524414176301656512451941900853512444159832818671724049520740996269952503895217194240406082507063928115783765189258703073927291413930879937912193138595865988779568969745723215711413484767499244103446354314357166930454976210492905205054472841644650182268318044849871404404839894558851260885186791063391406154735935670787852746974889657316757267491278881442571357217100520210003070720013270433162501901726421367574853543350696204655275786790498443315748787743349892254502257402909668338932780190591798832115779593761695886523599850038073302222320299281876648917848145114491875044628562001509759726328096703172055858044915555749378529189372968803241402649741970327146643007585594132154218838007270122028351862692060173404985372492635325055470516736189320646836453405272713427747933395478484977538589832840207443804986735120739490721355699640426430478798580714907842799998358835977365884492763171346516667354704437581184623915716870707677297806657615728316317983701226572672099197188936891076010689520753959575629338090949746208343548750401941814465296311481627254947963888217550487571661180978586587187180278429040183561507467237639574886939420861316426438332372075229272011650555811913266789910114370495948618447334617365499634497529264153962595548639672712918426673297182496834127579288787753966451034279050343593027765270593112822142419401629318979542603481774162641687285634620152875149281837797287055960149448434444497860636200121493752362917523689584098921629353762955016607426041852143119249237615897488010890610389226370048609148874370520019504028035552547546209422637636862335092796433103276192430996513738762097106397352096407297921487965432302291720402183277363420320154116627777452436836061446448778014345450867625578690337414187280243726454793650540556761701223234499157186766132607338994454458435969440283705839326082016469269636029317180200116319975579092644506023661597683150439408649568239112821546839105737778474684557299540608300594513186760913593391921920908388977166283865292080294016952872272791560876759197179382273721778122878401681330549102040938064901482349148744781010721354427762110045114326618651612342774072120518914708313490827675128843991998526641488913340845288153889737490601531015888100465126901853010289723958676016234915511920089472572181135681635103050389439194458669789814835151729309556153748023069054889680453282730258596589090870391838871494016594627972513518395409157755757270989668275800066836948206131068797618513742081911880993471632570035789063188430047808928467448290199870628328838037726345969279595157247231268383705761431324585564086425285217884040520122097261309702244902656780960796015951705564997999594145278974012841437522794156595705845594039650994571199604220201150241576547800343993848957674055319748899470976277474942846030776030361752004650638567847892550039875089445906703205808154604805824930446763095252892457849715367474385280102514839966759379265813608926947965736388017333359341855389042149141666375275297151823386747634161568372460283490843485874298161007025391928149545092721795321551047585058569883977407035268899627610047352808684869760603127810346323932757934140528294942017084659485013929230197672698705713747187561352057376422223299951799237020008609272321916265638311987619042444870217958890114241249507378451623181673110352346264625808652457931621586895659825596243980612864087688037212298678752832890167654070999699857688237191279299122588151550941281047460906019530955317103700255722803639760682829335090270157832657618228756057519554050770967833126869385947895397773714059704982284724997258068175145599309452629211017740044082310594362502869592024407385602970971503256302641743487244699833819045722849066850960914701224681759438428491700574775778324877914554734588818630416146806181531110845120877422035638771474882963133488475812576465678277400406422470604132917769848867374237036981614278928819420936854229612197830865348560493082920186815488656679636027131832785542651871735337674535205175453398256005069694672314267684675435064761202895410998164312957416660418528245524221270236510810297192189133828721879067778404343243520152959138906307754785082169112041691146034289979873364121569584350119522992637445243473538993138533872750144694506204520001421074618933256682849646371659917541729114472663293490457016581219489219445511899471072180048550328456604183439423183217955390225624131911063761771859429954386408771417394252039005474738370256930674670251604961194688977427787326619513196602485105788294260366570092363109123566550900310090080283184250621536559880069507325317037323291374514676420852544546246248017975371984310206626259883838869129884104003693479070976620514605402664270183521123779560252005077571728526992254659683519025828951068400011996159686477741412426134421980309275721574452118748453097049381196173656752577534600668241578465487077853734284157917323717867512473896996104640355570023503841789109437278149566619600399432608018001759060253510633096486394160165403508089720629359058591221744441711236450667210729244213786933056712346489643778179285762944246932103671445719106664802853919741215742769236318168181342722186336690739676514932722606764647358788587539401114346049079388473528007392504084704380042534032409970642193908501975458642898832792933308129882986823309952427849071311023280823161775948113069615135659850518230936099983374486353947710009009281169201850837052564057099052862218379589218603747477644872074938622586608051767679326330541130612570425097967374620361665910662618562560786785584428460849581977913731814264680907501781390580118015400013222271099281456773470462518750045203666394748551517299197380631063791600092574607923682270373637223229981279176317406338040248658594470418575625448024375929980949222567276415325769644042292020034570777008928890614289961115700834013777497541598934770319661274548479931936601628942838112001148830127326214987429287416321786180611049977517530515919155820938934912813727795133517549245760384417847292914844786127540102414385531047491751813255504018094192579858605732526204775181228527133360029364508395224301489435021402269995275815020655521219411513655171755254650949859559213935841265274816910239606360926239677135623133238646283548786298921088324860043887538204066724063939942881831931752167886277401091567078248818660754203647749210918933342165838034349359595621734466291051968484928037372825897823919227876616298871056451610120494632941929015226613631637658094452467231437098851524428106005070943044465640349106483805634352103051362556388311173520877729089262457442661236927397818246250436234897587034819420629285052388298589933479793143712769256431239286632547047509533261509265499552370450432096985090747872014591824441438454681861377877376600332861944116646961167954926067145727576537887118154816327492931752756849300062003492368894384364835630595014697446984123174051214225571725797094589207964305453245426901695302587118512604433572796584557126263056797972306356008596728126163617235638134011889446707008277699039152598389582035033094471101997499894252070381132086185134373036692841080139417970218261023300329310100436105410994717755623858212284018668068745239130938954607898798013270747069786167185952056957538904269036941695317539668405881757929369426670967964183054494081639031091631442102338971513582673610447617688959180890915250977261675792403973557881342165285181638322623999724360281299970737391063636272320423551801286325263425242806223471104134394686125905100786386903589907519873173922029953156038351380035705871945305745454422677688257627246688827677573718918826501787504693690150062475328034973577588813056273907618815947486980816596364019865997843784890261424802698407056888979270358722966715946031551806764306676372928282505896182689315977433697577660214024747965199176383815251526116370162194910777285546807134811808346549493108639872573210318423606710663440953223721732838148966403852442522922845263132652641236600901528759043622066518194440408953892839771795713581494161075270841662339564517850760128000220929029942173680600928999033764491116423863106973297696239263568321582941934209443503647704839069001465811071786238810451442558684325815722931917619401043066213313578224415672556178189492535341081039495567797840887960553614525866660001783623237626292896853864693727595321711107967061840552388564333091542487043227953583117957891827507813022758420305669538641638878073498208615347560433815759229349360232586518120607145390289966780955231651575561204218340498000185130725863989017177582205173899746532387780421328558002306054402307913004231350900815828322971400916462060853326418007922231445745228541997673124293674325328958654646331250352214075968901869828975997332779842028135436664847254386852181156089772369519094166801156773081447984027037930857464795869046588483330127736978067847065601328188774148669173819465599731116912829284798388543790994158704373516606939291697303924002318059779826929478054870644460289251165823304392081627812719680692865472549390535440741821046320854896585231092663553387127486433115194786147073371974940056883685198914035433050918447904448268233748794941643271679243060945895396146212586228124285168230576452732429546059545692382209979134282840004205422517937548063867909092343995317714687054344836449806172869574491500795745371759801142478979727357017560661578766265624299683417595757678611476932837807615574010526057817017675670739760207572734622628383795963173599733593235599902138955950176362638353921861490899699388127060200710301475717120669663709295482870087816134823671599330771414394282568657248526363686999410764570007471879112713692277374743163602062338542747229962495758666583853459894509342352203350319639150232573067576379817315185795788996981851395180270005005335384349969764147799477864222744635719058831110003751891402725791415693831981563295816744680255072879213904571873093460792485297515842100493759969197462051228422435153298062007562421502291835606212696934657124183764640289067836739858702219763061031792825152313912099724764044166073277668369200618761346579232789826033391679099634897457750036576871606451699434169251883167359266496094618553969168031336442824680535211426621478506883824160471585870973405162261931199157162024815783881552016379678133963694020970440933065163645080273135356224285111843947200380934158251391365745662262744606953508215138855247477531617551911482074587554689812904003919104958880811882044520036900829352845928535843509251582011596147848680326083211387558297980022565782679421992837182394313762954663022071774344233387015613546022774010635025966179152382458516501550243712472506898436799391824174280952203562312066000435436377049879236811470514154604039693033986629536010408355903491323695175272573641515564605963120953477011327622560049993190231773402066203153107784834214300098019393034902232348416352880688441831864769359962156347131652847195894898617783991577924124262132377280426018779721234656832009480604029309967422285895833807981224947572642889956427245497050701738471688555986398589653263027276116747988471542784528303408581013325036814755841001943817198086292928415120110982761836887692719722643968554228953783210360808153756760334551420830785073597293258038138014638870889343644510978022783778347019739549305770092291004064967171521431366611744642180100946852426611564410114365746067704901379900756670259154580848674733933903989617387220391123036827312623534152043484335598463962886370313813942252285451707253485186598573746142894410894823535324447855337803805537724718347772453136357573804423272426520923199311595259804135340125368558477140349378723681175856732028554197444699200946033068237100751277801359671677905820586904383827325619202480303720669147154267999632449518611912975780599117808452468278745767652384266615386695634071428246823853638472519644721919423939598966102972029454888318956546652656735042907162943478848147760191965155604725796815571787490776242894689850612235743453537990172130544550282660727574152817672797540791241096559063845890320322361854963446411599394096671331690060275868337124433102275904194384708661487043550267460566401393220568469320995422022453826834331600439797930482196038672450347592202269272212982815909389585249007012214714967206794041262687702948042736887620866462294886142029829373297842973272005120351423253401877445111523965025647080480627105398221738282763392659710814399217236142544658522623386006238964445559701801097049252742325541441256330666947293380445121708439272667820725108888094011544343467068782865354779511386446153277097517113937502969154669774564517247068958239374877496694445656977543298314673552340694826353426617834882576338101174157510999944537343187993152350212930996228563882154402501049391334906683488027799445187227829489885615969444889590425674191167919412668433866378418485315069249511331542799343081463150956580771444849575031512688809485596540919783991908293380503791965892596743142854625330017633532429242049779022407054928369522441799248237326068436953512613198156104749842482676318758179431509024143340732155866958632764704217715907376373715062147023301334218215786761994406109744542842635412891433968978493717762872299405158007600637945225162937763517823094402247826823704858536204697341004007272698619366761755676153003798304903671696650724614010643417948861580461125876747158276720670320788495316610506091282446136913343846882079196289811630679088616344125600501206927659207596787851937449586704239140706510975498748213213505918008016508803425745271771463002787380877378821731252829583640098839768787614071333272048212271945413315403254605115563621930965843766444850485204908757269742938396239070347938037823995934806497885628616187970314063695609646298005171852012197300521431572106411976468443291828431186183176500661629375285582918947791061943916644165613571937744117887923455649464188777457122222444751294858557444595286904800927141084210351305123040679359752404897043620505058876232298468633974040547764862306853154685599831625414605239848669213360857098854032104661586407274691568563071530445504578150326511365932444839276100724811650462515726467061326082078001296189534536474932854043521767475948140625477082791139239262988474085808017137211910162188395208453179072201163064628474870788228423509075910721788553154214144353942051370048716713650375186157475036068219003703072592576178351142145237111357259311088226235190899800018692532571462121763972003149559970077192236093846956899946326313174713843296721767833115907911801912582302876200270082057445622244100587458287632063905416243930428489828116585092423205483887368066399494275558251928858093943999623886550500579286622424668435732577288300656017398293976154759316498983603802975735555191660522612628986638942571400976091665741130399003040850203613252286217083847669010856721089508312170310576953554548539921285204781112945240667989597914021312919365052591154892307684462963819814543303296609792753652775947238206068124954753365872987637180665962657164025417831860450397383515267234218636844263971757765688784115222212297836404894070518801489446502800215753121046971443152171434355870703822935218920027396424466771473948786494943473348935623500091912731312085111013344303435649766712238321927070166093098983296600028135966696213387368646301179475693724126824754883460951718745476669987750503107816689386433401890609866966361194385409891851042742881693814691515552178304993254882185344902198582079236784683939451051291088051237952621794698434120248443313518216842533288553885582816837282082200207270926896827672623651951927622860213874101892414102201330280189436979793894542282766182277322514050281497640443563949487256331204538150215135116969661968494934292736592291820354769755061257076188024359862928022371090729563750775033679082675688676376934325868036220781920729596975581653252841415107118216367395729769734485455959741051489922106982050964692609931052169282749105089416312180939687246044241544554730028574320980926002287206444403803705047491739001346427694787129781353588129552611305171744695339343107734055989199721264224111109700297402772021736257545471944502079612889129689826113727718060343231821726967261141912442057471154384373349200008142041070709335632349402297834712669039158687066943870387256236526731465820728714984491898018570907852595978195441366361943810704997042811091553092995857488603340786914695691623871033855117765673495480092745906566918043851835585803375690410276431166985478980820368044313669900740805818156098350902001620792508043567904615159478583700623517573957181194122817646484326341150011134630029932135692327711937726115093449299250745617461412722222221408066729398099387915388850347967015321121096996235563395114406355476931355967058056570220369275764121478738595863317957728187532631287149028761347544661639983874469018956300789601413251663399216374921194545264200833321845785849190735269583453204793132344837948689304764329085042846861107857429065706191247565667046410416159361324828129478035482944539982557230062060434725225755123361366531077244035077832680383428996965572640518487345361634500975631552799086013951092978616538998821155374429766345047163128307220177449474527949419121978073152256471161786733599607031631038398205376992585515446389578502674283547257633750897084586848255088879634161605903572266269315224550785830436234434775286257020188545115856509956892131779346258437064036051399733853006572637611738926103724993863963280972229262819536457473683244976977052283855293296643187848777977880423382549786581280604721963720731933254645654685706350431359668781726701644299504333553760161389079178968772306488446310091795217183789847985287527256851971885501374024773261992530599777904208496339719525499723650033829769718038854283288072324767019270812749306550634721460043166579709111584887633959076540947461507795526453344486481368103393768992267528703164774153883445330195626136302708078890354943311614532350049008555632632339919087981608428395396210986348336541441680111034988233294730595111204275756051482822330037836579095688554017970913315497305444964944345864485090978134566089046430898459414412080704686645901891713739157805049514752032935514001098874622354063453207427581454594815956222591518396876021606460376750132306129214436471365074021344751109565741310831544765372266526364692154816679718219490493776726878042677851207612829690403317919562026156050187292156658397906800705609256762753740688957410404104998190103678548047196224901809160505660796665594023591261525083269609564983925986103475597056122234051512885015746550464076671682134488596839951088448541436580620137570168171780241336779930036502871575661941312347109184511505449427689659958103518685690266548458045417102634004068589065874262034182160267798368864571530309762629791307183942511650696384357311028350751584307771564162055278516712991545449138183351941772781953018226808420557201431707479513537282407451889979346618363202751630234392849053954983992305489744048356966273370246837175832467274246948828703417158612073040676265379461884211284668419452698905187748440546451993277725619705729968184471281157812672650001626443398403652392494600504106893275861876593073661932357266614912736293599567016065572589450093074491871811965530169106280560554481599967909651160231643760294310484197711219821439400374461902626657071303955572387777542620710869629555930228641305266490232428023601345440602973098966593532670240697903176155440821061446587428646268366242297936136841436204047950189947500997735848864395098063782179552376587690187582103997748002585735996406422467779801156546330802478520355006982398165257098263503397513410332990029497567519865296982273287812583278258066390650244581046165813599719183685286575166583775357914651621170609553386404343855179810170220248796308474381041753322663632009968685385256245583905987529292288199960746833514085408825428041997236204922377401110240907336560309937001003665849634539995270479545742346729240454418977499514340006268539100894365534436769329038553015675425631853153441987908851305142590812718675753957967941263431075780725263695038758080202243067519536226909419057952492996092666828060063114252001243043693575804847978379906639016028561441928848621858165834969196812733098367357114219731452305881249349454357287155238049184747429814569072882961261491395416101823050603727270640325023328718824765139520632601707720861053378001354328506856632502137460826436775566139523876182413468329148023443801445326038340945739000877984800135180625057558849662413404815924591189528631812081543338205284831317388754673714738959938857740660525119395211814650601656563817044800387742615003577342769780770893266655320851240179200952552030049461157989468866826400184816678077183416661903465239641479500818416023374439806644618807795581802086884643267740019099463838912014431625153420487328182852072374819701765427950551752952648059690010655938323323305206227471633600636698510924206610947620072839879576873448263160095290383103151015111449885335394129502946718935809316412288966728532052575716057845546560814567329662657063829737993273347282766722565126324427535899383827082705282907059819549267130040980303970405769123145483126043025181081691809247727100510819917024519490118452988119548778317919325863083061406271783893240198282120080190425134651333131379247364123629106034621443410645356986188075950088622620254605943249968772427757503440441547744288359793750212605758886376239862849547965432844463140181462941617855298390884178864658670533909800101898962741886609599207911793360841852146267764186465944624203895330044196360175092395605757747129968059817350888889437171518214909289599255121763139275978384669267007531730918813595363906265672876922424330598886799469174447723743480069123442132030284132792741625830958546985354672249204842188202958636567051847590718975799978213856536736197522945414798488885398318222411784948882125351975980632033035907973841914677904693417427253838442343313376454767765471057674350401718748163322014452705360737750419241757368773314142378541795150632597601430745528419648385825875736027028476965509999860356383087316838679229517398704453427081349104823996949495402408005456248597347881039601948302114159066623198238746576202819663185017997054285720826134906160253933949943278355973738459027449529443695224834026473242306230137121770234728299599251194881455397287469621526267032074285829523802840072365003011504620856539073255964003647659899787869147232655086830134634094725100912608671113571739020350031356283723445433207150340704124218931163849388172728277845775323520994447591706839894150829470521980477808282264495658171133001049574561128804500821225631907206944836168856710209584573692671220182778682659192392548410222090073551045513366907431017605437823051819558208549750052480367250736629344231658045023066622089299308024819877418904314822970346060984293784650772565849363854263306411319844255186091622817036932458511983183863598804333122392229303325697322368615323580816210717554932373287907494896569246058860911594171995757737266124283136982303426446178922873548040767901795229098955894210725137273808757294788375546004758980556167960040990175990807299186623526464754506426918550449504774335874399800649534275761041869132619639645500634671397937596607069117735546674622700069544269858006655528861488263212528562418906897766351572635579702030062096372491254545142400671022417530102718415825618039826375337832215738989911835723747086606192535530062125137840840068053394559135528926571771752259693781411938816644668804205359548015599308970925937101276399300606190570572412593280736587877842059522835282263344938375208747531134544135798779333031157226578922253434516461303811188201627292260524034834491514778605530991294582820971820281113162208176950820113369010108561384726408987863872859147356778482229664703026949829345266213054834183275035459456132184398211524753552823614074198617614588716656743577308375605746329102594046343845854889743343358602085047232808264701813537881181142185110066048798908417426312892561454735575468586842414510565263033608356104644078728086547575790468633206488393922353131075826989343149904667672706728207438795348421012625626844632850166745297722741612284701043040550845226697829630714976490714130626048958184835564929921106442958644635172843180952232681888446329018202998938984382115405925792481936787283431380037703720211652786665385464492292232280608492235988084714897175118391340701223263939748122871611314417872253434550127467307998063336899644118690141885947736223424338324306415830772271097824973611265306672406185671238843722083161921601462903506782203431146890886188219658292518398751237084417640576806610819804733044126352485505969439319727363749095102369034152618584814581586085172792882953247217532034100267219813615248012227875645410243863331552855180744879699624342188149411183996821573497804136538516968486985911101585858143685644030801034970446815211790220893707999780630418209439000302247165672277253639120374450817904731720772138831445359192117860214820047612051495907254919472802774845706082191149976898773891915270477790851611716596078668846728485767551033860400383505776522065098267390330354886564353093436588327843922805951392086446683440135077813202863263161520217038026246195405098958678898469630762426238100016002138333283012402374660276505909822433252997418471086279024428657640886660802700545860683206179940073967689305456197935610424974995053424731868746256301231896980315976382829261050961666342835195887813696320200604218998608338381689423291468658061932661979762232678432197488077639366665046676315515657651931712382491600252825778375215008743775907624239275413265462142179072376864152746647534666610530749425019353405026084921591910769717393971125052361584476528886575170336434932248180433543007698123322908896469528326663037744806623774375892949987874350409018175895782759590978999899943415796154182626534246937217775579159197683876648535722285200031885184264609107340329675296085759540667021524509982160943614371462844013240566325599776726003744028928067318270849766415050067054179551776606764661383525377958924416067481887656978818158345882541154602285806126569642324404392956089803981426634588110069644143698734656341114635538437372813232709312179779829008560217405370404502166096244854887780321340234466598619010844202064995565255259975463096207042799032277514733227333403216542374083281168554116439038547161926131193198775887529180374431771589226453891512403102469925321852035094854173665541406762910934643695408872379955351088490883981461278728611027169626991310548286810794691242231893747738733576394908921214732285660353882325887247869639428370562536624415399014697457584862620888190284365095370650755326605467118421131968059067656742192573618404551483792854349878543030604815760886446020418900918066604192506339699459984565559425686199802892353313395980976982382913472199123164068472038535597817090030886209596510709852672554041172450275803216233064738642803733084312305510502735459338794320640894215459471083980766169710961622863904773434639089888738601577223741657473590407650856159209815657873753070547643435430688334631922759109232328793831585846775693606063140067998960908390475496758696814810437924737946515120392903833089948391839991254899155865963696755724791198065005944091419818422483154576472925731774363687238709239256263187135307879724486245537257317520965701622036754326953740626871936439250846222572527216416416130483657443136913340849289616585196841363169393195926752385215144123657605021876196200137521771889845187692533251832204569986781203234710377929382632946657462376643462706004956813644579042669058132619519953251411856215807887982038280535980517478633047406802500786900813179858101039130981902467827021996608687588860853507067763295457033989881346117836759884535791866781359132112559986266074227058917145982393233933915578977534383297116354384668114872919475069021696105823026563264871980999820940013149446253471184690028875222327996458224888899017797708506540491089392247753367635107113432138152521261942480213010981744132493782048441396158553992712678443626141700842452766813007958297624241782603964897375530707145667547543513883749291063532957061581927709839624290075099972288417404042459562052207316292015949029004046878560963497988537594692486595163364890753721040832263993475430352365739737276940181136565309122351359924647877995393795029296205711852236658079332219081596538689677722328506458990725440647003968109850696221119668090215621248796122446296285515320983477231681895295792404077733629763973971212154806362047749934115321750462193982803106625793512073172543007836457362603720801721549087600468779506869808680968869376475993335414064560190668367115485075041864332566067231163357373179825303747944686083694659806528135596716238239429904508331801677688691877911350913257935309181292213771424229019745413498632621675530478296217132444125012541485907541539779564476704304746107166849329163141677484454880436060555908879300939786321263703708907401216847557539143892687019845870627722885054849058697744222192135559465002269777712499827738518837064932814132756463653212338142605601893420920162937109284061269698511352515589729409455182226785210170760645044406902622498608046268152259264383740329424749917281897932990859806064976238841577103248328447002523977630479144242966518572887141493563764359079327628236183128838906145951270975411966360098618688185772643425922337799843246990248189176446386804412983293479165468009796374776077055384205827124916159918968172901327074638015329049472711768926381826344832953350868379074525011807028439519985160609638859252955246980230148887149091077980676246509250876407761912063153331846350282792303750320258260162529113136982022795742057743264437179011060056224096436598156518755432955233458414423608136218866646948305121864139729041895920898816582922680624049202952232136314493240093090298773675206536940506689081536493054792496948389799355499673957816420539207338254621008058045968135195360175356018405816251115869530342593170257093957185806293325804607604275401403017139853222042614291187664422401645452272254141544605329899798534996430702987195190501748434550885196552963820070731942659002448810401891491706679431552764173386235644749701590959903033907129317481202671650815184572376542150312869953502227786767771911713080485270385327977652607332865486086005004774577372946220669786467167093135953317945425528629679305447896228442917138500109770580261255309822516571679051206186543671185009083085204389603745977292598999617173990124195247564249550881822358423729557623089647058573086120126065471493883923757473266106521929236098717795835212201217762526097954539993917329490246940413371141583061992355186871432612444116857808924218940362215325521134864521633557018258799416140784753838929304025077922403521798910892552848448732261271199147327107629414633862435243529839694074772088532273615620622601460740269762901374552895814549401685419606322506075864874699717593884646156768715586866289573689601393411056710759941058704722074771353161709581931733727953606250605713930241724293676836924276848598603797561997461040856233908395358740673979372937851035411697342717017860228583297548416714751862728405519893732721810125375324679767729762231557831593846923346169363364909588897836196771385133983098387666823357102475836074322598418251004826962543029099647693314056787704224980648136164051169708305877348429135914293539237840812465519361421036268919975835907548112323365618833177196619996576574939396823653157601606690063132086195425851856649749240683205976102353794925688342990634699280983631865174834220628662226115867878339173278353498719586479433732295897283919868355780379739248635650158239359630690040247323556220066053292238400506130355706581044692945758282245339953464112260432544574926805516874944644356523013684674649192837952608552379527728734907606481429225215439493467560625174960640158739208391381773737064222625619849222482217676939959660773051819477870627581939198667552972277442697590192155336231744332182958826360361385326348241230784251636702164238920589199204286644789510538467172380828810491008290661916611994348796765575348950438489394355658703125826766829257199236805365103839149045732065714525868464716875861373364220765223201183341418722624218539326206269744650341206376458519573971133572074526464974069961914013720029648576826971838171172216321358225161054225085494753818095619149084723209639625612054372192733246279055857958694101192091719267296685302286835855493254633321498498946689980048993550979227111618162662413744838427883978972138388889745273406971979157488735063091814451403017511262860940836150913810062396326504494412443905452546358167960361148457132668937623312739975668628194688679767958799605975724572722806968885606951542706217759030393630173846257258410013830960960365023973250740874489128505803124274958185411244677600034480986814860666428867752941774075093146997662480601459399286811382242849580508707394207891742605332035801735436294524199323243208106005069679938244887381793104617631964596203491722379084513008630939460109419308485595323990543318094763343484489101647379599843525679477187402298012092819461467575182256512458487530983024130813408931239998745623602509721815467660224811757162942748372240392365698024920479401273719356212278966543557192862723767670634265450064811396721400569932561275734828056870386027877071475095010345073675036070257479855310069663858762888442191749396465140496135208417240097020334397130595178496374218747951312032043905822255371430041977803570246902530145566166965016663025594077193260447314598557851961595490760032682664192339330905740786268455005705162175422843976150410054566087828064288961067387167820138556982286096382791561583601605994063237800233246574568866323210081370738115976596114041857353455178248043809791723861717495954078110397497883592048708044835917752334182020282859529557369837081652204354855777377629098024252963021062788424097736699393822489994019525877594024688271494305844440183013473592513269632879091475291733450335220230377081862594145495192869873747363024054494485003135213893670704279194196106798035444094902371612874539314984650470507129885778499553284240288549700312675581677635852459172712682301322389842775078395777290259589793258546514552151889284284872517682907489440444294065658569915957559459552195460371070962658461847143579662020523056884529148823968124812788897448369172693606080410146006319976142145166807887878716679363524334463055867893892836364274869849895655856839729783517993162250515167455438296525516127938158889735027090321112012096370014982923466744433544208335958188306197208979887953848247780934482892673048563223163083235873800531718679703820691583139208661061387689451597783574887060245801833705270168446871907780810572671741503886515243320345053265368262893627560274442935396181854364861042382757147850657101648023154748558785006751863837483900049247523389932171166531486747132611968964822283230555709684763060484941158608049569859563163080168460267358263111988664110130747340671501367528667187667663980329038709081785991710622830562737908070471918176024208497834867725694904623860134414987770243656443063341068881857847024926106008516677175856770343996188713414018009778801317147929616591859584400761651694308962784749490656216475388843473286758635959772299390275204053817217384080502222423728774536420936436336311714846448366573954493908274029592270573500986923920098500773149627893854959498801443472120265171963168714757473407964461063457381952405620277390493774266597235472862640289984215106760304566604817344933769942743273930637146276148633088236840147612126533746790987774113457313411176537604285097976109024604676744976661996429813359040394268418238562046646324431339952554596588804252215660439165028958771640323255784163633948869342590931178871071862019735009450000680248108711670328357625726393029139013604504675796319586514000168136109402750912488611475464901915088550658398469011317968867867381358926184360662028403946506321264568315366469459697403789343697575100350879950299422943059154291939884411853729470153364099374544089980493478080779598339851271496922496989391229471479771866863335483520205466523920538254293328448703612880960481121611087798274309583863959456038614536130727013534274813923506299613392368710446214276140451110080507619911854674809791391763715994966129947383683755392443440014485026621820566068276906601375438676630541769625264194902268394913457967567399913726987295584672042605790725272174766617968789108650318150081996276323642984813488293314093868726892110281335912411485555621363662151231478903198056891916884003623848483483142724615515963200750742219352046497636171934197407882599471302849781036901915680637317668579785477465173737881902139377031527539265342541821777867694012543325940059880826306833398333228140608100452064128976566799906722383083677180747562062176535415436179703221823425253419293359710683794820090969245731716194219231989447621965435990639096018379357083019506357296277288060123269649740159821810474949652037283458861436245378151915842760181697254673700200700392143700033398503263942820865756063029345118940286029161801726637809128523953660518437858017703678245287063433290810414107904725518501080441508006688260674552494763505047851049011808629632285206500532888483326779659038589631598653224981205603164459646435437796937103320288743304881730025893879163215221452182436431110810850684121345000762221628705818887858939744419235381850958324854426287947821645187963225053799061548407815453414285893683934216864210132055080087431855243405832621070265431677927897824348459264667262368782365368383406937603850225163280549312341904475835032378183084041102926431356193492218934844127952721838228341598032436997434861230675405036540001751123663381466390364026136608946295214374027128471792440487257453170014200835038829695334410343074458518198614015335733948772715321059292428093521475127727510005709412962058789689644849647868564747167438858257114300785249287063738058265620264860917140731430613023681247526490837421011898531852729129079353275405699775461420188221987808910097455717539426410311752198729087927307976821186378708614628735764235703536057163426294314375091139527297976301634150628503161678006418760415132293682054786164678247764996278503310272153000524831622146754828677243074823535620903995861423486366672956734517999910022773640827925428556848820800532180317213728919618606467088977245537212835649641983942118373169722797071240887389540994703593477140898677230138528676381742541453919250265246465670400595268056608312274935440142639255780169048946909677557304004171326059491945669614983208936216210969401625488218883256982974671833447231828727144465829792893114189044172298082937622334746823934830319485343112529467511827916962959856924797167420616531439630891046808827099497880570121274741561180483066641474875928840871531807397326505236405894277615268716262850520983345545627151377141858044465942939047041233497580619065005664811134669096544924046995187411952679238799065381892507333144240830307238175376409114440541728303455719624176707169276276686214615883004809916886556901725588792866246772826731670378008770732090231728600054898655329221260252226744223801827846918446815967385611474296039313424324694384291094639427105553513507087642178606348162353592729827283095383766882133403886791729290954969473257111778315433527473097202853777934451884483336358267730051856191664067289230821991046794061749441626212772349429241168100968863249722858065832807387710092101373694126557826115954217128434395547483680969569264159166849930359056412426802215856368175475962819457099169943062269363834706324151625686745003408690229261137192957487557290956675499482072109811376185098931616686566251893897121813096086234797741613050287737473831643175309596473651801008276902571554808124096231661676141533930791090726223518172246045868525263702235725569144605453030926077268329498830550130937134456698241469290569759280136685160948895385104196809832044437952291249772243555468993545624770961587299595309397519945735060884714046642356402560495567637537128147235886532765226319871096630673705843018190727842249137097302010928608375714251362351391378226537370484890759739958512056553819728141536764850087500565059968345073182764293459233300390245962303290835915006877875859433127868907022432797643171870572439856699762075840771889569144892698127731308360362416591228051614934143107624413665818667051552705919377124130833179920232630626579559794354086673477747424932957595487658365145648475305475974883598870935496483830724318521432509831437308772011501081591194636146832415487222925745132814599764067241179275995869886646659453285786173472936788483866957377675900604277895191548931707453298815721480733266363129018266228129658950120085426674197443065511304037980574089309154342160805435058981409568293074196314771343841853764845075446576823231697703136877501013235944975500637331313642965305311680029664519862840905270402669886917992376506852859757998202983489018642428159969166059623080114024780150038491411859621725680444245362899079794999331573678030197321782267955812426774032783613789690433333521465245590659208862387513406704745068665287697145371785665803657802116557616478755653642789067283768170373954061148772434251599877905885276062023108289656086204263123017286887235501567919277715498780394689732604805241849792672372457874254328742127407989664621858337287888979774276518563181861544003206326908991415327218113937180625137878583824987862099603445954383959653023637931964252270801657241930300507991440788481343372857379468126146479326191738121660035285361086440438990241667137562353177069203046400956560056704727060962209431447466351708295746024536205946203264643871105653227878172001929443461735194853742194511240247910154292913948087040948785603468615726348755265702745714909794453511363185048321836424900766263370787752347248323978792757162200097042514747414180262805610303122861562698981291904200777394054982584474420375406073467108956484426150380991785292513528963516094647157467413778817333387808720369327570878763276285232730946730122072047192561511782297404802307613690754577901141623409383204987801923371238702787396267676648103611461886580940258444611205007094447656219763541311104442716199091246785598164824760834242318738642509701771646532895900196194487238516712067854657481032195314453894505086524320542256974050850345599292106243738154573182627097452029579707594224896057508178339548930982344192360393500324195775222497726907470626794434668962483974048977156302717966975691337947858170156834936944354091386989405612927181807896752753401604406392667369119101782561078881416914215994668993191766595337787604898726181254779927127567014262457595553432767807903853347961924341863610221389779041926593386259246217293151233460683635865021697411458180245600350618418618593694667090436093546761814556719157503773791560632200127656341144654318044135565376662471387000078266946838050000451847487061854842381074785300868458638765295817215901693774810292961727821965561452711464447497278780695653219487192097897149805501957820062212976262647571308602326950956278032964644395345206937731055361463121762498141785846870261786614860819369439388576037701852296378734486783403085627765163921114410888230968841432741544335084945419934989610720989769455045551741522669177202068799607254922898661497372169304526930782543263491424880147941571883045953129208456306443887199404947079877893110308948349152976651907324941545629604622127535137349853950544430441059508199646448351226862528846729127739234679960897057697156918340340735924148855196198287752470177650281265764960606815261032368131145040496101761740462643584048865707083558169532054174237283803611430683480719584767287980056724012198258103691751172856288508023046057395204079383396252586720234491288826695392792335355580080605056000878654293065868295795381101740783485308850048283029919117407844889836157379413203047328638508566824404270708645105842304866124218385656856014678900569168582149210995865993005794673536679848103485524305851284964077083865922835723119225592675993278479078083343607284740860134506315667656794424346982554147174543132968733643912390284059775696453241333031037255645039246626494321651472450711202571584544928965481703418184699538416130218098493552255250909256147839850778692969222580770743323293980622655804552577663289349435039363844216210489838965066664273492060631059932361572366771763867601778957093451427230038921288851437480442165301921072967265210002326636308545653070480010231931017063349597900792761804832220457139133358716834764622054341941477789453769793570039502701902324847222379875974211160756244407955138042545928737319991922925036010199524935385689149069410120843162314023383543968104836771368470633225686137491293824439778322823465696321231388390283962331275088000862688798873500655353552085341370527095845206048416137864747305111320187246850640931409206704750001783084259908594652889170487042154975638361891433338763213631461227566540177082820304685810270198526104378338538285371643677444486782161419528775489091592989396270387467632805258452149066084099942451860491631544612449372063913580070515680126708609724756793144161235234823766301658876205138494097096206251629934032472818630619739738565308855389361870201811324443704436477971380783655845284944765088769573512097019347704851530943299156239567689044012978845791008345296021438873647346594759727227446563647779213582029371129368688406536886789888990021635511399196436721263894906485849642472572855658471619573003002952834731877908577958873146467040358995089889431459511417344942183775229712248751288971599211214764378689951948113673317330790681868566523877657952113057369661690827727793680925582155753007791461873186658353186193876812487342293339253901357421238298124922952553325842458481232071129352401458841017090217330343004284598225306143474589247839387649876681592399117858869671655803529946065527502590020159542319273167979277460762022543873677701112774588348273805672383820420382135835817583363922712301614690573106593683686663979982240234253606683151204388340944119288411531037483838012899060656473186766825102607799068637855643304418005827887155118291012115237070225626286721159424999103433387123957398958178039192547624088533314696221589630894119040670256989821152435938965157437529742542247400812446767176636516524830806638522002299889693016124590890491723640629837494668264117549974602857578471170130883588397927523230101699266931477398606767917571744776037948264333302640289255032297357998059487174102464721547166378333617378382382262063658823983242388727464230185464925428800395673642756098851355132958986935799068110752485717234956127138305281300140388822939766590934923342135820797552900064587748176637891845928768707963119001272797064988160232363715194461199822442811085112693873107594244040788389252234033488823054711669103521933064567387820658708354375299504843319612312617727269386280382717832007321883615723417914028743543417765089642886022907033181438266950284573739970635808797003288163525607785470590290823750228712572865316762984744767654979033210468907435005452794811957862761882711664708331948586903174185313439565983143367377092534989344891281413514932183241820030355432976927223340330305801526712774923950038959175277387467682348209530265451390117865009066729228774559486919640073715106130940288722633549651935348846698917037739573951305019770706764079266175848684069422372476582269885281431588578609985698133057394705483848039071376776212418103462974681260809939766742050852230542237005294650285976160637123372788233263038841957739818876861148455628995154389778266397191369730287934876473536242584679714768007868716234388073457101493809319277586296285431655884779567896691696018332017675673824388454026655997182250584023206864602757840813681620665501284711350112627807365938755842903543082781839926934354952432760771310387573046314797361627249739315069360234918637541827072160809688743013953502898084344692823010886271837515649281769109583779522721263173619133539956923436196945432568161210015406197441948994519771093972189588335211277866790209672460195628138385835546575570391475880334427681398793677501859080408596276288591917817731834986735718901153889852778484736286445216928467660948238437798909272142636410363867468180627666061403581924356409591748860081535207533310425644965277517094280460780971340085182431471976269286897581215543030029516151222184248602868555062326951109770979947084637632808133275637102607887972642932799502100235561589371896694974571032388022822852372337303475767388848524330303907527003779344930534303642812336949472838815850157587227365373779289266242834271458181658016618800814479845604054009374221657374219891825797295605281151699496607049919763831172681328251456205312621712449516590509447587956756972558450467103207613872532755410220346849857574038331288342113928558787159588665889833216315826157361366636586995969878004450889931513321117422894822751108843209088229683078225858792681378042355665007095207380352900791905013963183534274193364058890870355413912103822160220205686322547025561034511659743599951148721909478345255411874076436363957547533702673387799539411242112736072988991367207904960939272597887373600059590397063238240397455059531435813895809026414535497222955908740389078056858210670646037404537811686671980501328628953514875545612213184872988993313255938011908125553826670002070925210828506807284333728795739542202758075833870787400042463926368311050857796367394764093682004736792484960233060938318559768482533317338885269816263066923322279309800546252510795702954061771845319944698251710132291590487444460850624521327541234255986395579376051239222705851918563890386466187734600450727052673293168405016501694354071256990040126840348986427999736983167310408617489956141377954373468503240787355453229192963368233627043054694992994688764478376748414739710371104150808686041860878942881596663162679803988783614424250669998183888535480988276902145364174614045844342404193855127051506070670801168417289476140420089241900438930006207138676459855593065902222527818511141665418671853600380688519324462183551304276873425400878860406019218737580554080822499078416131377643465478725588348103337909098163047905021073851778110403167455597594529039359482182800220784843076926831246829312605632837607857454493016796751547747370006352176848638985570007429481592348585436341374522284496228728128414430942271048393509461160819431158955327692045797073163184034469293082226906349161865068852216926105676914969521274328348937115231348408979244070573828139283319829549666234648805596050523834970524478165590262871344463898001138352248358809995730463096311008260229974964998423707251896365074518463462912204920801284605864473048314354980726625838826016988919947186742528313141074016080544439124985977642687657815679926667230481058140010384988049294482298309763181639373786881938474785572584587915046242940713477148986306860742187451524903550364492573989758592777881693583436781986237928092963432671262624369126407551922503129456541097283086161042011323233160995823717630917298127380853275669387218557387477341540076827090728206612019666314726542316623768733820235243976726811363258614640781223792805605834906464439685190523890174375108551489142060560031305734313361331830945755075749874835393718527904163071357441009569202112280314865000576186369941513748667816301255289587529473585883325383541110204260474033035497615419115793653851618513677860125278729293472117876500965682366270505105034230350275495402719212747995517189015636005260282173052620325396859584994577019028677752785681376531971747396021460958515292532699032615761059651397829222396002569355820056267744078852147395409853994704731416131916896759110923302039285134963156170040625178180897706617639418238759131659648819147935412331616065356160870200127020802931241916531051806502706780567337410398509680613589069405111148710785701463538633243754603799470407603159371749224127767479608572238343952144548982887283067298680111762284043973406347727022751096255590868276578364159366481744979968127799165309275360862722990829025719896069800074908612031999622754604626026995861951863969378802090227469288101383694030082433948992576201187640839277430192839358190101961250067530803277556772559872497206209499054953185258756858921484493940470255061501479742602759139328104156866500856323156347009576856924226376481928226642550669844575359968499583055630569138680165141399031630825406887036916940145216023574921131103054422086428405943138071260382890699843034216088149124306794935551944351491599357180584354944066080792951279608045358364437565948113704794638231018935653345468846230932224427865132717317152332068879786561153711776539829213023783087640124275878521946950110027809517810275184182250405445244434926046550185457514021127160773014545633783326275519447192622356820977353627876216582741890414607846513938484173439118282449095080310257423641042305958998846435954437246153021036695343162388189135727813341080283235963888901699944037882589166517797795577078207249463712269697128407514807415039183083580618619007720930370870289574415235606698590230177171063052516153320468450564424084149471426679970546542528120524337553847686124240524098485201849954362523127899925186736733436298569627292494934619782107997571346821068155717330873665391417012176322048524876292673482376148044982475044754876726053153810858970023074563089478510212555104284992217174516198636292989798196452933486730912332062986147512573620327874379902807325813000842126357824671273750659561978297184680569579422094647889354354033730273619457910024389267499422314847736639166745888180236934609618191546809788311001629984682352318574424858923075081702202020357016363416662129712333734012469728544438132312712206352313861121127917034157395371188526202913558084003941546708388539118798506646811127377970673153119378405546725311126514387380539616298763015633309707505594600070127122767303602330350535157879288103598295882454070879228087756192975593731070716357782282275547730882354235770768134838210299411215100095850337435635947265459449938535218435508041132949872439990539781013763902857775893187879421988647314294481738888198532784079125614510518742625138796139149183128800487360278411961717960467757800032702753023619311144646521701710313193988028326681538412446132092958860431889621233419480125680314710418295913993679600272338890568186887572547655295071101113069459856422546881238606367146966691063784184961567200083322668068250879218030728830008489897894809919447115978657982677028025571451264750734030505797417711487422473050719151853351135350437509594868546085953358545621406817024698480688012666064224563459392249429090579053372763953277415353606261217584938900466816997365005876650717571681715778349338982166014233384668960576769072008276451567194056247158653305966535142088441946331654674293249898596296888077005437587666216924230238990412294020382460360260956572810524883726029275066672264685695842152467444493999695739523304515121405087512671266905267552530437701824714179741074918379477303299177836254417574275496916282768386149505331708006344072866748156278721926676502325967909697209118085255844534564540555002676578173938473625767360613738585088998204124576387644441324734704515371152605630176803086916940864174555769754847672808919370947756390684008433799553779453090859033334188702343225672212635434967418354323374065559104761908088212830447167320964493630319598729117509467616425464849494521766486028379274944068096402733721817670155122483661394986823103971933565171386520419825195616854109564933456589928181067201635133345119246391162613574158159451297458899196272520873135305025662216499270551372454103123115264195559758546949624127704628924133707871911600327308034588679367487073641259802210525155306464989141499500839783696503773167465410457093471281790045460271528700832568209270580289727434901928407986405341158286650478314887255773198185330239919232986923804931443170210381044229212899960787938487157316456009471684783957515570702682736807018301292755192148977716805411719509662313894391286113718053171156043502081414907845768619576673542093513248466777554229433566421245230921964889664597973996953235358055918668023510180288925187664172480849179948265556171139622953274292854969877457462243630513797838550556885883441920843451719837655154790451870347147072366129005156334442161764530000920377132279501041578608539534432291451024775859766282522311047162731951999300812292353204305250358699206704572645121197018388199628418938232911951636649694442511904151003874126345965704007442799118675132133247042169647201941137461544316660842838098436503818649701791231254708684128394546778592269294358165919989583301390550166121488023526641090522706795784095785532036671983595531892862941641717857665869694097836039432214722637324186178075467321990310037934037502985645307192480731420196535891009277156908436315529008519554316051154087295700012648612973945536905409181051888034834398413010954687715161565712542571580524997079455140467890048783026797431704834175039899435790989325999150245218129722572248903492683865181691211312726359357660256533810171163583030023658564808529515276231045168046596885302643675970133043264738270880927091049494295901558169394340133628321878851107581136162331620516094499821570445292184505339270760363692040112819834666189564702015880996069830297303297568857037637088608358974487364094399037244603214115331007775495023832189922638928673272318318441656442606806058399064987576411862922605868117649414049560924283651358412970053075617631460241728166828802868951432217659318879721080463517775618735223744178857097573430844726880498084818602952232370311305533010284767892282671243026829516342262114116568568053387880972890159953789080749013205479561250241185190341757294705428194681020051909990097825324836480737379887450668282033265278674684289575686970081699937511999696129639631212349705714904407860858418955426145405655659288496294349335475822720647056698679368835134129498968890024383470299100412715142047023592809471257061213508008222488971556775279377747998907545651198130031613410489045780491902570413825741602440408775042579727279542571565594978496879221795027233002609264689605088719883122905539336917845088401957756379135916205290453713222389865071759750456162807901830181216841055498811187137491892704725520035534872883882712275851053776224173035674838078692444555875773615300017998724988095912243654451445027932066379512651557181444520142817184211108158315235765165054827161865588746895496834774238714972678224432993806031231470746948203850240992317777052195233832566826078665784576566358206740569928629663634420670191588359640796394054763652899578306147190835014699673574544361367495925028762292565663694710645693324934423561897711472204063709829804227090766780227805826848853566892789875909439840026852753690948116653396126493337614449071663578450554833910501843435452506317530639471953047786894771921133227912628047433186171902920036190278275098972972237562265018601727864824513617196534915418376682011313769991880870965249625759707121940481786900770053151683537573455399709419616477948112490281999452712013383967812621810058104566714182211373164938879740572488897927852449866966224864065454202921453745080722820109140171433877295047011877023534464587628633973979232501728827340254104660565504749432642532684566160981856387906872370178785742263332105762178203372560110658167971416657784656325391847734473741725192212932290314077308772441704424912309527697923679275212436677630235042606359642530668727070609231824756438863374207661539404948149955001807766129779156076814758198824510003353934940035714933618188860453856828937286278724246828340634243687838192607923346064352070629024659358903798993478669065917859824289519317429949784408706094295564767822878789019811065482930484049916340423988288450904417025051706620536456788045364390406320932077089097572751875809190115915597268474925272747323543963919818023351674863029910895947600978166591773706897762849035760163957623456789950113716223824930380868667901824183421106946068084431054050430565459349147404858041562566151445275737913192988640207682500672226143430766102621241634156855825329818036484799807053534764807650987541592856454237909994393076047808219083727042370390528732516777963172568011904920492401451282505666764149648191717071690432924417167030063069518444663283581708686106346384849234847581581343364205382804670718529798870410164413954734629724197772286069255115084733101722615597086517927022601944445640100361333316349367255807784330257221304289741769992710765925135786370310398457631185664063437554044717751103510601768319996443422205849529514897600749614046699035604329911177180551313086600956817011869596104486884996510255254473685091438446778534663613525003192655243319430456308819015285673547713001981778586010126049223058370341398209769507779164361655526934698357248479076989378470050394964930443940206315190704328702983237234548975110808758401509357595631848894173984430422284299711232196458276579509908372778856313828017964235169606297961266634632179842452130402361321873685495340810187842554420447893089778351842424090841404042287616427772742084744390542661592550021996623604859451491598621816581446433816804652579706587698821544302804325700721377717680024869308885985251327431458590263873467511460211323221668612071972835175325880746445239898579556583334856664911843599658354797010185151351998124041937151400925366587267011712127030204963698666318716480491844959824112509522435238990661503540038387052433760334007599362890695667815756353443677966569698875969211189618886134162165312043997060447144641070042551933300328503270128358378261080503402726094722358417463857053239653035691364562733794840279116376606906427288050012857192890003904793397466731658349090122635599453832990811737572151221352429502915365200046398982187731508074044497235212384310783432493390882771756304974688359012498393418965293720432238822512769878632680881639698319532257751600567370983276736063162345871807119211263980506044602952984571676876924177277526585596017625304173339943027952203495122085275217368379788396065920788080802812298223041460420270423502837813477620896892829247970145380530610405460405787626941090807540225191409935074983080527913886999077483998070624140985346275613754615644447285713684086297055398712589208985604597693834542511171056263804862459304070250733364345658086095245967942597121555365430301010724135831110615420778724960155826396100151061260652110091208577863267706570258968787882604836367066047171637789224776784108255612934091003476347595235629535976327525638620165902784224454248433869587897805109596508346887826073037872803401404757238797619142077393735135913689595387499333046590174413138888614529515616968021023905675912658723425965246446733858384717371025471559281172402666333778776007017117220304161228741171575638489499396213611462459861773946945518862403287974868090205856498313059127137028762030407035482978438123409782803208075042427560478353672061775737900399360295949649567295451223894869741345077415609003965423585860493839363988998197391572797073688324238221484383387429150766341826047683940170367664400213838325760246482831834153711625551560707246299084894453977740647943686424046276201309375859416744874986647589809384553731085480204179131593054833017525857919679859357032098147321042332580186344862148632465344718884065794868643758616938895143675763076363243611330895901101152574350286384019234332656023671806871497969274576472401711433433326322538415819185524389930997832261850966796209805587795867490296699793526178296338938091589120788731878321436741938638560411444534649478810018328233309879538629644119890442800994990267759094178052487829133857861927820331429593272748263039576995569074816099645679512736919954439169382480522524414856414072106821260157019207755907241771354432654075235424634301622832259130437752499979186508306588370356530495899669964339803344803793206622998786091384101207736827110118479202466574590498117222483784988410476249577310299445158614242557380933566726268340397779536640209511437220360528094646709783704578619479002593572693032483854615985617151295784947046126885254601565272646820224450490813965669960989770484044451671170668422931455307002503041810243775425456767784034107242681995409792324750134508581688871669298986801132105013155874536635498478456653483224634647700105307753649463249948889910470397324404173808160511460970003349668256397728462352366925945549430754762919569076861596597898826971841628379808125002388236328734465501546228635899944703191442357177652702050113189019470271069214548249746006706723712161249035240322387427500443027395501375946130420307718034811208111206455249369499579925988248123253884366164309627940239123123901332781733370133300435129042864303057715871310642714428876837222316241704693293388308593320744175235416554265974760331788549450272946898082796008394991965645989704224663380331952995893179891189322587496822782805544729644777406096797945945446428785902665087475402526434616340787758362878779060083247657419514911629773177832874493343874019698968328554696123340221102892278711119066582366165871023981141922959379829483436271374930418633626970906780013536789533134015310007888852089889596445507985897545162719123116720795911464277840110876622576894366466423898844152395221838406369990190569033005671738880011022144439435063818784632843944196553293254989668695950378915654774454588093263803485350270775228552089969437258504463493411890944595950553584283793148487237272686365620470135856483646939882050198696759833233180084939774826851193939860372353721141436681237814102021740613079460460819860848070628885162639633959231980042531812578745847137905637860417927401581058599825812424978727788539650107523887302391276532963843900642220199853492350476751491765357910380144597571842167139818758780310407585513199603878911486751915021382928229164892294971900068478552994748684128050623468280103021380242739984971033945099926767251635904145272640188947461192812033021742808809238145593286558052754427765465405770053014973449129017293959872105924472750387751312349024503396944283250457325255005989740781331630975763311117405169564054424585664315674415913953625493843611210145911723236115228065820338972406982906164190175970756307183544879404863036025344757320401667577585663702314029436590174345242212197650096227565191755576378789373353540373217213206018597527010406439459471051978401663918089826646617770656031825855438555308060961717325709827644048916870865185161953508002765731402226310602240283087889234775765598677024769591003881975076407352061880019261499385521377154719121842621536603751859116622150285287103088195760101502020300842712606912476185834356561674946908857585927672844641854687285081433059944174037545829154976193456497859164664710337576557079700355086025849199203747204922078833143938070725353879551579746220254834517918256789700078413122602889990663688660263574550273462353763514334961385754748653007646159962823549411029822751626442372322660687510261374998252260621163095330592525801932517662143025090379392696102622860087312411658235855424274978077731210059668090710878597643239266329534794572494959900922299236983006689360805899068482230040048000311451237192264048185725162955193653254793666368395671546276648346584359603504364502257820509295836272921981228773668428205519463072921398175352433202570456474355117724824105064618104860034179101583250636890844848615241692522746542899937609719924806446748655827234960521046422043610732764717239785586414581826973837106756522359755570084403073495258459411024739368396876137302256191187355399550068933828879479321846238912923536536843526757395594088177174345767458974937315201252117907614850458324449023087564069026760841614335594411718894474194502833515674023804994660927285547704176137352240139186003574879895262028488217526288573861061759795184173168646090225640370217925723020345470651120751944981789236614069088081807440722881844970980553717407642651463403603646801789943950422560374410674091095590641124447692084906254738268574015451749898094289084271525456541795821047819557269570427093857060055290482012727948658322801638171556224001021263012933550776514096479944297297989356958972039250893265265145868955974221037669682789072976156164660620224826423184697203392115794618658907748288239724956240402227664613556881929542802690243024030185323687284452249466949932079000087515083719555520978991027653501019137709141518426479955382999499021985028309061552526752209677477259916675356997217234118536569602708134369330318421227663291926882686317874010561117108240345891301025004503341520415419624982389264185862916622081573659479451410635455942978967844406382356369664740396833498396483860784735677170360305766224096651517920025449682693296995480020508579550745376260384079511081585943782622899745824256939264228295251502423863890670950281218267039063606974155905872083232950362946237595909152108189622771568730014971878026292523566155208193207756756253581172523454205767003664308936333430015389841179143874581241130877073851489384963271433274382547657213563115879195846728729706663214320228650611371025152750939841883199254331157359029542767829814187880579713530742190034436091581409287188484456485233717898594868475756200618187019708945598455782229218752781080762231655498824858811029016929582150329166893279999824004014145621459700927902124822301570321256779528847876798203914563108058066204634323362385833279277062784754660538113609036143747509854102220988584386274240159685953226591839870995701861884576091614355837781865298037125266416944208886490072766244552873936094858559577653582700549034689786520826843738895572131234091705107956680753870345261463585747891137732338014240617824560111597186245817394456640139315959685533094915370465311622830368389756283170408004966012809635480111924529920240353839197807771287148677397749421323437006980293491965799792542817930129670650820174833515130283696141877280792800533797776682733573416073000046044836122951509757756685487383068046691972159332954650745928066287583874440061597298456512561614809859963180078765770109868972263707291407416399393347236839409869797516480263896452310611341414106206293064517227824703800657799132489018117767227031469287326433762545768616410984537450434235433255237607973996989702602013356043759829558211944861538762118264102491002205924011340213087174672487246934063035249018998842570159266304462572725635365020523648004121281932660727721253019578086180227128679896490180831651531978053513468541736426619356486424629894692365831606666871181254988655815174641822765394890111954314003125542158310557733329766280461963712215116794560476634798606641368310347360632577718319302497124713781650665638228957652815552888103364579840333527733392065441531598358378937500253216387302552117529483492325401176318805421591420155739696560245643982779299216366808748538980586419418060741177752855288871758743134694826070768876594143252463813252061009274831107205156047446481364836376144634075958893570483290256930598351424167274306867515634755814277600618743188853317529704443930476212289962316273647772318110388760605471535101731096729101873691875441108378051594897340217800058999242928669438527320039772337206918342794972163354531017572818231080742522566361549863603789444107805239829224915355136374295297260575986412147381070851721218963268643847050695808769715423010963153931324564672805275884468851944218557571869259520141483951579092045998467915283064189470609109962408514801110494014188321371893765412496634251330597915839416231307879690614007224526119480379304277553939804396639031918635009074751117530179544900315846862545949131816086334251452811936768683794191788026486679514416151087728237296815492531549721023768911878286457522956823108291058259300167125328654022237241434723853369356422642466302514274338275646089318445222367449217932615285189209652396963140872625435716650564865410025128508113987276517850040262972503764236750752452119167047573298219776408722525710640284961653840619684699357402087150385664834657923502405807418000603158556948291484156102859414759636006812238396904850964173792118141969946562979954858657688979907870748986955249567555334445050008164137146116709483305720874377328663326563636613872147817842254408839059370584463325710827240432822603804530474487758624545585012193092905077600549667270337436550313877607234754876804556570466257175238416595343438294095099443114765026674965940142173046208070546539873559237414042214612871583176090658757582735829458723747289660048433753042237543120288330951057431520874208500884854315078277461641570684386340256872970244445125220269505384048558860556245809587505479586108741371243052310034707837187094623268832192880590161299096624407561678149671267445659372508252838574083212143192384682013148110099320268978951886945013651822058529423172189852695394324929875927868175070921678278570721080870839673872870999598024234550570615853688078094612799043282738241058269281013332741602093775446985435960671187868101851101902277290893111311139502194926762184947989399937771867401877730457145637035440638039850451347885637277687203193454642354326898110105788981532398983632094907707868666456381753750079989420797499183402090169342419353979053808246728105453854131529007506318019976835989396471064576726797194826246477811763822225947413558144827379325869130294786230847782238015261863610626398445053942231939769250741346201777674313931496325639265740175488665553672735787555379552679940731504843440076246615710236730476924937689553594929589882800844414642768402256054659343919978049364074004451771625443529427238454515818018612024628692744772334597430501675395597443323886284372898466769983491946571773721388340808146423427870718857669511405514205293656285032377725870595055080232685292842372032212838485430037097281825470076744638578473417238896591143739823030840594731820220659488799816051043786683452409483261697090403802174621885482730159069572748067062172510641328323146990891755895338702699564596722896043848576166248946544246624158850756099959910346281342653952165008262129880838606421251422848268513328861313056527648813734938839111104262853659099175275000453445712328229862654666577410852036822244036045621938095831737126565012467786622322086136435767367127248592159611753708702414307357013901589014032803254541985648691786464133645867792486649372334202417268094019999234378184052487766626215943367162308165532177826771627953379503030606632741509700353854848736777087982627726965592963473984481738758862671092482478059099422414002765516552909091316013214893963174565808273140162976255188001124403936471946727620725947779625388795538548713770086960653289093631544072070307431883393317219617599317685063509884173040804958860995948020014774199345650506546382367072636598716244491086162808576200336747467103272068367607849935814719558847902376811045216832327841560655500082761234422558547106162703787273425087404873796623810294401316673307608782060391771200383278175025533153975576567057720738162081964046707950766609453386187009335833876166129869395300558341820134590713392981170481057804736980138877631240790973798791534805049486069713004834539617194158609468231499921789625793427011731840652547323373258190519733560928436984081964379780019656213571889353325581762880305206090377445801653978809630621295503759415511501761392832594361000955662749891098976952254379137076959134848204466648843369300124228676380075451037094784545316451046030455420034325075022445316030397928421470971776843336031860785231984611656757605091616067482126362616554918032815702517530487881261977978874714910002672430911994211921926433162284160298736849407312402736455646929514751713346254654377094789679498839469011092869488322390133858789092192849601874671676364450470528669207465248401706387336280702828246293579883041360714001728662147194854409438835641835778744840500591524975299474312309348299667843019588804639722537646652016829137829740102824502886655176690672357504006355967306299497389641180419303615319481672907441263198297914379539328754923571883936779732678038421993440222771715113906245608219935993656964317105342327438138234632354383770545853439003947027280977735080110099405483320455378190410594793028922723195612548879142257825911297703662190810116781114823422526471738362491249832456039717930246650484801780344920530751218815303608627780734633770330553304896735159903633418989273903531856441825063337994671608164319550822828143519252180073199044276612380060813630348967725413179717005978113054560102516394642887394836107973472776571134207524376258472551618241513816103601015602771825390994985273006297000786616478351420437813437517004116635990878212722748126762099573164461295049404519547230209965841473468704657861511821090867298680032781338330779100104114675469003845558315918285035616458867624405187372344259927573506355969724168196120445091654904724934666150659257998849900037829872788843693012402839952708190709042148923411880744772054178534500205127882416945274805287085878680163734780718741825739791235205439477978480920111100826003533952311107756400173532521482454370830636062169539051229915587409382249413254624608636444878439096401576387051446386590105112933350160626220091030523188130777031396749298712764013366484895101213310611124601920662150473369601674843349809992791754508779716327276413810146905904480551814232607207466424302010566066711504441720854438034104648722852025275853726307618033965246504299064699950411282707352544802159737857326298073275090446205223364419033517708711135011891766029540165441957608558175105252226762812298919627994112338933418515558301468240437618774215746862848877314992437005050608498410828626599078771706126525636480269446692909582641124626358337761814139886103654194897201873953298327463026018440746883920719867307569853339277424872542500023187889829044819494273144080199360057851273833181645528117803454023432277289383743929481863817423735354971019509792326935457045358595625012165307037945375728182204777799084156795252582768170117256340733114479956275941101451822829761702541908992538680028650216774904508326692380319242999846677798535878912353640833249233351257080566156747354240857721960445794848277759722310683598561844466420909178600892605523402719547845469016983802184117562362907050838348500906163401225947439780355097217763503079001415055875375314334888528746384947786801450433151602551767267702884367218545328103041008274438709526433975891825221498718848828873631277002067668993641406996761915011873094701924310382615824222222850496759068109705625964602433387888818518126138474377281768156784106171387699270409481643894408416961451857899554316998670494752871500553435731918705503742943295735565141125890020547190773061731868830602535968155966618126033736217890477025404114164581979586162521937676235728469709488574876006129500622170018332725202113810897259696170617910431202868943895744719004136482116093007585872920783304839266686651674453543703135572170692589859541661657575060888824819266951309733814987319262213861413719738232815457085836934333253937188593119624782695709369562934186519616359133561001400034928091474168482526632048599600647141602177253118139057643715955398303609627987832504795957821663333878449632127361772387820538829323323088465926581037438941106240548857642591095107397020326366104690393127150746364026675622029140278536728380863587443502801194031997969935563481140460252429005175342000022205665087414730578885928971811568441031002017427664890157011261280697467410765439719729299071820452812681129196312268393767956886211919028724974822613788528227287702679394125588971431070396960479211460333158677837647865357462775002411391972744843515995254707708754174612928005375616523378637576625326505632094807244700276674635205205203731231416967133265658831540190853391951700757127082892749979901060624641611327491932813575311744531940528736323113553418223006395237032745315061832195410796480646171060245790821211266221111429427307303395629234069521715447238555277716336745952178253594091806395441738322058244073760425401595129430064575755958449550052596487870477156115741311550944830026431480277715255484131343620945163869706573738447852556571572476070404065780916835497326629938344556298392170296281846175879421106027606891567670748613821492995279373531630320112486417438428968618178840024434137899765486814334190621905742863817444330421253408500501116735005192521263023642767816725250073585774390943580801335128052658608478687831646337787235662856098916548810832540229960994850991095652032497727332829410298812177743824999204028720180027669094379516158487173962245313864175828023556219656889470617896946410749093344664413149430876537353623299110966821643309857116363151119589260706434799759613225146149944701944509774976467296256250261024347604797011468913114027362340880527101155244732329244432084026632876208049763515152794105381005015207989973802489020195372823209789894279591749620643166778984266391034906975055946733463464900351214301675867039950725702743414240647949593169123686237731876329882151957916309670832124231110001763097270990302437446111418019663263374927964768728816766940154813592590818606566942604218328844724223191373018637359779656994506755582050220484720486413127977158218964822197924248645262058009590889060597021845512186533402886123562758028422559181915974201420307168406684707988991624172088284489678866938687865691322746849810985993059927814878460937974498610439622862337699867593210782589634638462092840301612189762109341679263720293269098024961930687892414799581335645770361975581508690842214372307396958950344432491481809338229682196295297193683088669408227285311681506219178057280593890872771571057867161572260761656943073141462581936860464048891594671525008858116943657634880057278017527725856770054116103538741631223602798104836007285819904702478729487097872460798818170842496696093597870604254170550754959247327524987168921566949242343721496686459400229902794152213584709308318072908780198200530715608005091825725476340309986487166573052661467139817480074195207478256358611722572812675156122592158497038153403837024943408642899528603331538023128558803684430669907238511988753201045529535816817173477510472083678553935208592024591306148796437218733294622767480352553469539935231676285308819461545364707873343949259902364823560212879056431642737782175148098035304083706156005970313368856893284966009380898320684782632698547566433940677849037072546621374802574158379367771548927112978962475726164258467652983213056717803973884716276515868164927627458533145074860830610379819017859468897451312388378829452083320453458519523805547115449071600323586166168291233752082896694292561608374383542341432344010868113772992232219199157900746494111043575584020596303041281535775642700198014840862221403851744350158534765248289857250494209238702040310066665409193011816022078218004101802819127743428622551055202804681348938678857432607796419618565870312678219042222366686153745410919791995084947547009195644627601356776498633794928501129660344776428734112008058318188363309043700809269098303506167557015939005970763103129231061910546952679815889675219169272031713113487680614777129743721284198723375487405003496681610005337337351388712986312235424783609719339699715488055441809736730595307842264508200707872359797556044644408383574874739385822655581485475299254134567182446213572208584181922507464807846490322869951590544970563790699171121194321197474102737344794379353780624190315792454289581778967780022767776325666043240879848660460898810256875390359313948446877891420264476050501261016873754717458596530949518869104380864566796887473295181601497954377633943284002532221725010871671576049826678798501943485266345138685599869160776534427028470388118130396074655297636025847916239786186195870429622911675897525757813644895884683558093397981030892766514397461977160234133588658833270900664364732200009366480119842908157699635856466702128464171401975898989918024810902517890676447512451292172756674591042418867672143610858726746049624087421421313944493210595009248461364339694573669311046067952282761200189599161472073770297051220040918765298122114682671288376784374958787459262411142568773051574811502796673132315657740979306832870981067623226894587719384062329383605798131791232430946941804467566248345636778622105744067984415942258164692454171181973397810724124711768156161635205331723347593137640190886240240887476995526241385680958311352620653574236625826598602073543465834982878386108267232231686989224971352570031957360448136329781626332404278695361232876342130590639342941093965080503139868033186449990368040489415413585060324279208379394287854037037620165108902073635595269266308137255585751680858636839364389741241907367036050944220073721652172673347212935421864663609607646437869891866685253135931958865944942816586502756672695896145639390108776698162313287708311412265414469801974846819212700462311456628404690743940350545875440449678768726510357234020251910157513306716171310455583226002094850888073526162422178250456178609430890939865266901125833342531083067941501024688398375942330410036316787812901521074421983530521483454645150839065738418741083315220729125751114558489050229674687055333576603159466594216903250594628946523101554126394002980086629188295153676052906141312976800184155433307290531128290553257888618233855979192356414039153470439184935454970251362001766754521315567559470548239330064807384639658405928474855702906938684872863833839714638645582434584303596991375572497470096039635744574375680077111204006601633426205880055199054912996742856911823009017934901449466882571660390610472811683028812686462399652876260388399563172760758977650470267320165266666494277985380929803640779627927682618871406814949263261028237941213095093358672587016681998984909090711138862825408408682203798679623350855673299934205215345819192541959895443320665394159328304757024858701462427484946835175173992538801491189636947184411515133927762599105964362834519755641943074055408068054588273145010587686674265633039065917372222432478360339201888613776465169827981976048796454095250449916045966932644656816898054022555038289930914540007848137859527248487573224868760557462836437765755821318480643750779254774574548189987145296914134312576207435091610746328180622015485804876852779511025704625667922557994389819147835420447448658577514292326923522168811751005833127313631541886602697220832970448173860111653632176759234917386226834396141713838395670942357139461120620993435186956587017872819209992234796773456018483709947952312447244937132148355532913082683116328990755423624556810357089254450887745949086654252452579043014175135535679234517967410133579569535277610060727377133858085676774301208493216495913041088886613200426377548430701785571709422577726324301957114402670539264381570112575273511997786628781671700447176993438428543662878861392017881484473631671978262986249950602850671920197262704343620588915994815465914829665663125756993241437737670657854858026707256346650211285165018148221891354755623268892062118383620110060273720109875272279455200413804829530639692049593979473205511971072526785745564544304714424442548522055296984157060865502125648499937523211027726365548659177931023447213557513335394035503539146186353603802805122704185174119038663842421235711101975618424337928561564917145478696434080845522654913606895262924876163176781413092731858301297221457469102645293704149021165632839614252563657494554369728190824731919443080713413138594382021670611015706343011606281446365012286603051275527156804694856542144512338216932635178011963315148868902516638590716340533617740026054705335710075703508810628696333828329577608590810324653513024882049445042105751127842711452439665564893732524459089131040168656584649172468612678432723179694410892956081179316595504314186801394645973548770891988418366125193679501896887013069886879922637507151032810676912339186956307580442210701866366344577899550838828496751761786969753768220180761013523156536717833567361141890468498855257701644431462490164871091208642676876144956594695152794626634689344671907345766418591889392476821901819818841988294852716481985888832730815048423152874364371801443322091042004325370985083250794861633797743855174308444856478395035026493465958636470577642726776193485757725002854699229310573129382846935844693275495290922018693119302262101344226265167221227455098335227129087934504275758891861171389454588690303676017378864786329805097171375124575852605341949303202022730465837606547068796007281369252083193999901956723151045546018572656526026026468882954061564145419750319299558229357255244981250862797652682438400250655706543680848306174439146250482985537346769598101329873890613862220004194843993454367396006138047260605607301871218629489211920102366501170775753054139768451462853231924123021853934612586791540448737777004017302870466556998931662742021580515707220812818181140434677412487433244083029259442769682999484396165317799288125778925381412878397961251501858808108076412608374073504181732180441036136522081400622165684759756797482505919638554371874731640279097076373463414911741889569809936924212089780351259424660448272985895264340160247302799846973418113203190871642989754854515390598549355670875535607047293032622330906648054663979246735071246739919183189093400862126629558684506420512867571212610837589625019662451712604044698274998274392427893187400838241798606893943682985911447481912774016991088032846555659546539555531876139844797859171853196201304153483722898317990885719465751300156777053937527701647289301227469221540865391559409999308249390839564289881542460286194225343842897290692980016509867980636014189014358274613441249597110329536637965696924484453781932800583503673619879103046617585942118486912705995454286946941939888727180392087254514893599664357729037496098906147120884963238115246353984339822192804421994057719993009167185399594507228959968604806613587674321078238810409200313489752111763192358587797640345152415941821465292167315637857425392932667274700956374810948649959221422598710838039570179856585696659395307402472297019616275223955202380236428181841534462535601271629122379650058664617817710016925320210303645976751613385475995951164562817556737261140819465442336675783558564964719782380951721604463754563376424627133780447622686553617372522251420818445578008926661947627494319497239584269024368795257461363203669027949739081256049012321253106417343067854668951948603020382772579726968947087898189768194093143865175532741578208910911655767938505189631053376599399074517165359607791069746081647938205547045857346509974031503836384734568301313047245568663369490596173470066145971354049189316012642203873336746394366449094552083056275107924110846259480825865036579611366578296731632825981439628597757957890400107054890186852720501547108500430366619432708333146659667056111232229765509988300339530733844990565487116346520318590000899900592683271144210503098722542293071046267930088597347281612446330464834009497933168252632565768196195305621609151803058183361462194384164078773350507907498192290187298283176071266006814075196473984449077408728968660062060147407335223178079059045110703023180106823234158424621702985499470680482641831106895932585696934953520889339389403562585446963386233478463772781389160978761729920686335353122386410201137749436580864922259216232039401231990566651780943493546502205087987724920297575524236915713647009388483013113196470305173389783798384607823183226154219883844483410638465008173448157341497120745628497242427642796473243964896600806836739246333885814401092580002268761603621638203479546722763407139441949224851958815734181995950609513179317800311590644386888557453059602435817353503334807130600853814336313218608296462978519929761090748903357741529305424051958182262765364934350625214970462463267057666511500891248836459944706120350390944878008087247553904501108154627565497416502314133467020339444458638746530652221168195331548144250231200684908755860065843529998015681499011821419541357247874220108166678328407292730803083020299584243103989100501449538498318812008606268392943962298805815780417918015112426378775045357053280513479991151437771157953923586812662541572269190895867247032220310749342472635969614125240269394242957696334420996274335810664833121216527842697338317946079369162798150381020712432163703390958314002653081224351663439214328054497439938797265892616620961161683482384927935624076042064678523696613267350181198330535080994894278851796473539522733292511226865557642241055371585117614493969729236632269826382196944281703237039005909945426672610758159368679832019427542095586702543042101434334706759119470539585906403076420143066823975640521672258971376894895965154845348835987797031807815839703579639970182631533669336300823639339397314493466738550535632355291541504001988172619909647026480143395131731244654154576881242333664710473644487174044862256430508367650482339058021166401280176897915917084237130245633518011976959227707941453296465001978228994574530697839608015609466823519289066951819798396896538135334625528303419111942568261254584692818558089367279994140359585946863097690039441830823427989637247942157598930324721839548026855785866463487231815867070290361314036534994048737478432307976209297689298414094828146851647104252875037572633138046211373768866585474892358453116924433276361729472383606832573412445302374993415096934194506765704808352113240908326379653896418710219493323300952067649896474787559630019117497197366058413447011682414689240579728354496196790816173199768244686105584623094403018678877612517888613993523655429711732101047888615619626261556346012810629487429881403545761691535648877795918419551065206850714780991407525999595989081230035560412807133870765517629180288389228817778411454010622664906905862659223831354405950317056033448787344776959652992293391000275896153314691824355987639546407970898253154673513603369429238091655297858710642994750845988675491192327292117862832155331777688897220977586273488567551492984099801877690518766291489888607155503604782663137837565729819314648245936929589633790618081544852648954243525706821409384334015190381055973967024834219171326985054037768137867346531288835101049571974064556943941934349736420887606443183977931467319365501685851248133336220710642080139176663244317920431375148238764855065824832104868518806847493451209944737084098276612377838171447427993704678229472625269287667922301816589320140535404507950337665006368538987309460491610014566867851546205002708543922861507849541571461066675700063898455499223368239055700023509738359963699420532843141573145468368098732290329493033902221689520995159456441083578916674905984770200694767452035613961495483541201852862290144943760880720622849128774238263375802140770496652348289691352573228014296471595735264270496397506748888644593271834121073244954786060773832222298621831778493890377369902457727045952775063666725371269944197249103892251525952684951290626104541058311665448672814725091892109520725143929617781311485276181233147599423532260941290956270613324392279236875525667627049805111651663494560791244192124275106701594169398391940446505110217302013379737481337721152901463170312520195154983952179752079944179752625414969058583811222336481206237416409464587337409359809639167464148976947404234969436560741868161143598173329623332571091461610367371730704641892387567671833217503748108510946610124430714944377701424190531145610768479560754060300316320704104185455222991993435654997840233083408378024752022741918103542610272176425680898428651523316342229170525342502964809901592171431716891653120949966262208185974388988565766660227618960192099952969233012465064075295976523355073953603725525213342300096300272481562086264358181293141118730997620244490100309254481737272199297513918819316649896648282952401086788146236910423854816194252152942814439290053505996476620748435315549534718554787091684712691399908894442370457139005497750708738238780280824199182490932200256284350441056325329697999581599201285702212212763645630870112681481699178078011004061189910454143424724924290561175206459252398830060755220009434589485391559722017710625608846999540676973414006347773646324279801187268042084314863400554829031581645873079735317302800126878866780887788183824834691314242889756292395215213549605791214655786732741990590218799751596837635011975410603291425687439521505220982266298294765007444650864724606517900834827190977113159149968523431625747988092014991241148329462610595139866139364407206948149785227115720715367865340798120669636708932985676243309492003552198122990356575956517650375240056295485531752887444735455363426663871695086461732835680538672184347909272101033470043237922591191208725565570283409265509433242125192813807254621487531648992964225743617721417450057018567645483033991047589573099772164396449522791161221632238420809190360705389350146644119460650448908456521037901929501230111711819810416043086665030432566659354135140163955339949683217279286241491970806367283213419086924938485233389254468116486292970379837345792384736581419262048110444254331614692630133970386267906082205077207918835732506994046018798823914443365554093458894304716627519534092312923790237209135047820925589304611923002720185697485630705190222604703081188224268015863285687879873418380139306034538413354216395947931326297687863753143274647933840414280199389092995088580191586068338250759301469659337843120828842313474531079822565576032745149741076839307877888267575662877696763103751928431282067840235892247683707295358453296334684384322804265147017760975399418928844854403285253316995223989698218668728881555738415437812921465455321594201957365806552490759415542491531550793216681775722006957128211442700971267389572286039712269350102678716007927466026133410211095765659228218329952848365878462423589254235487197141498541133694930821602471517736583874158238047668035721133188897178943023853235622510403041087151862281187381745219388185103001239189217658619847502731584437844694326797933814590627743675671620550588359477960825544514960083371590595659648597738706870214827697353900204782088396518130115888364608239582458077607015040742389132636966553541717826293469675720241426955961384943135393206027661488025953657779467055074625164603652861153231354915490810726846662562314813110967694503030829061720690587878468863279485939565134145359735754550030724325711453716832907713405405815759032125476967808046469778780038652019086359819989506406354875968076512102077932305113681909022950527362785477650829641327832704470017232086229629031914088453441112155015937370924845751258485227331835928719593118362485383460749869390360201662893581180894909005474252165274015482705557244587255957930404488014309460199784892522254616110041193146432833459099185948901799135935201460545975228228330876427581261711185322588626161415900674603262979510860139462592931142011531347162008579344540156043757616216232579252190080546427599252260390574302056293089326793799817726912503679178417342299486617020142502995590574145570379621791759985086718796567515183114179597339745089351444834032219870766401397915590935420443252982729150931523017437790928428665364547499355411136807296954057149016699660663005853811993864761502692426693671741193858004703540879376623424033808199209156276007495757323472589575977265403860756880067307782955866130463922955403626523305684535046961646418693902599037066821962082183291616793214961525555522642182073152762334148023919690479712576963800899623018412906151727863215484064403692878649745434457408347338091455416470620702306810411480408070920464358479215753755287587717847509120969834289985139423593280903677249725398078098836897111319970179004168489744290154257589927182688758039651892502309499350669456501963664437441225347254512911670660627742185583985017326565508084359788298602320244211245588675558033565002460380756047589788349573328379620187138062160770808341310295469259446055123436587492909420402702415903091026322810353747807626630522463851480394231604478224665836219156921244052477883697802915528372969304760459018339507537391368315120602163925064004533636831063488843821046131411981223126388026155313359121344214716894812028870678950485768286585106687839133086092763200966060560568546353234970833663695539067857945102098920565246028879588428270181653938264765812041997710358880413269590468029355720953255125045138372032278698514296832344984163092218974275357773730971709848692448240556751922317222546424473931992942076443675502514303079059073779610444931066371112309080545594113245036970215149888943653357134396158794867235073062367192589241204414428952527474477153160959621656267718515480768108898968171124650551850013341975479796745932545819698073848583508032465520806061661182184115368235531760277238379356659878580479148832660339520841751230562766553862307084982621608149149439550983722667194346732367064860587021078707040019458311831704234507734973043947434482380744270613840031531337910394523558538042326209108203382093299152856080501113649670590551179672600299120876758733570740597431047907947209505437472166793558815798912886827895774209051432910422911338800193272369262729960955796388306824995858099575783712294218036584857857484552074980810796280336047147126184345679233465187580493308592320727061106507938722386659269646635480600023944119879807113068665015259859630241922859400446062179003970043300493164338707070470504983714552433706099566139098987633504468909829701059017720700046996239807769571920886096001658330063067295106545628597194947637162488990136248181672623954834798094823893826653089161630967797167962287406974783996757273131452666192244377639292197569856330865300165327084294338357848687276141832762008599141077257595589924225901388504255622602500277769364682287914757793893134899881312416049472748145978011004053839150431438213746946301613386546132172880682809522994027661468205416564933111090756247997691790235611703481651940806572972968216502691845420128120566207227603099112914305404219883648769924783300325901699483713796422575055987285276765539432593810490996431959897948664402577614815089020266083210722305586080476941498368800467511163131358433026753877678609859774432359396343536446437622711961596978036047987516078568686169491036119645720926777674305009041417747595160452614621003226748956743061086839984516113267900176801899243419685746909318330725938756427014136995614070127171530498284596767541543680555653131782459149601017691704100114441912701930123832269495794451625246817429556868889045558507613484761686652377935541130643936474329607886966766261242908662723074355253402312072168194221681626847745158374255306018417083945486327523271187014054233903469086631706452703549632290012328322802272621214118815643680628932384221602483384441418538809339635776435690812207072417461397718316414274859382609174635340355219870596882816738979474411018500208950649686709013120573613241158517751370773054890308827015250677428866105476789711251239860669907034810930807939263641040866229204493306932512868335965974711561717134072599254151087320414923082397257302662057095522764350127683542263012257500425030238535115424901893843598870871083526713700045530647027887972376182469492343286340739441246769375194888466398131122088984793181864211371882534131917843518997511136300335556308554759844501892732263768044459335860122119591637843869219548270868979572707834673769579960290916618624469113619061998508798667699327302580271534480645278525336890320302460873963091151257346851598315292730598737353461773003817367959706442618643058802374554553951746057032227408438539415403978942375957596039402843000320169129075152754219254960490049532348010968523834775482282194766202100801909896968618109434745855159812474019503608906996095879525458248877849891864693670418088073781853235340959515557673176700709467466365734741657906641579645675195751534501369342010083012429439403486571092805440221125483030006581704093697431532156036499333415796798333126044020356710010588484341203959838214604074568722281486533537843663543730246356885560756241500857521722223175652614319854128957013456907416308808114784981353522606589423888857164150149694785250520341411341130301976540315750375608754614273616906088039714262808190278089104065643607979791710673588093406526870100325153115583364638543169864911777046558708151687662781961944550674564969458468650463861503778404854222857830044850740173546330865401748381988356563692915075001438636358222100268051092874399648021444839631169874315800079998220788189676446398676420518757375970100536864408490158650306718398656375065933068567131769621532830755913281846172813722062095474856573859679857252046947269737052617405045905807505501895334802251160291541828171174224074308515969882878928610411019011538566824084131317302814362363147014147813150141834193185499332837952335080781718629687847007688650022521113875703003533999172928464398441431110048872879124798225217532551328498987312542254871694821770048076993608661159527738086199365746569630890645936888127854880107360931879078373209523633394111466438768722475025797009974095932300736211495412778985877641854927834878233533579843998015420644514364654666868783199795490400265621728909780009336124622922510702207727790838500981576065010097265670777068529667584981754596812799195749809094287378332987263041115740657130056904481124297999132982339077002168106375999624163834700991374676679157148704376464752952694299801201810381327330079545589409083454242172284559809438241124644532202399615431650073199689316120488251807609704157391050582675523150803104886680074240476259453008784028154646064709922149633591470410409673882178030098479691251740934991506494184962691586427576770477282435611254772940832425558183273119759136407447724652431262768033050794166801752231122726058245706649672899743184781698558585564653294502658154304343156881443981995449168529877132443226664094109012736561706018164365279912448157708214999749386963413289356365403473758018315133289070350228929317020428538382698154496356999161599161298202568937704243689831370156325127632831623744390195587306282391213499285714894465061814906902573664384326518960062797565648675778370606284395921251189836890702089101804544070771371100095136507071511070188040523851098523795849037301604221788787028676883338914289154970287393464822529907035615640124634877236466143144876826607393872982031410656851504776909897644864134925298789502028975155850303994977214219294425324473074015428030470331342371349886277552615531657735777880281623550239128683493864108929118728847913471248026223993879544208530802616641793221222530800024056187942419190918693248178936887693132251321972628141542661906171206418501364879449966312730577610554568020681202310130534483996851963660782292699028926855397528994995784416891605732458877996118775873045740363932008010522135460869859709500644640989850990608203519609850257991030553121752402686851952846167006294191735734423553393270505386187697872062883132374632441890660977976571438726936340538281736683824070153031035628685762843422543190155105323476195193616317545716550016099937340679077321374902931690381650174312398688746756831230133168168864028248392347244243723196480842773883328450269279792063867955242328907743787242330167714204823776498319509203393534388392222623274765832781007238399748579389845238078529814245654259220161420203878773040297791978015535773231428625903553585294690014386120303917213257531407103272546537065622927177561284688990584091942562907659257983864653883894720370887390424955230386414919727466138931191799452102961195930692250921635362722466868329292232267591577256449228129860354122475532082976762124720071681660055687623112885204376785783615262572902133442209306002428387762283769034991823112207679973336769880997405107865588735718841355484278558145434987861374568583795093496676529056024846247387118778913276809915676198884508964799303653298265314823928790490422089982891728076124014484991052637458249513104969984973732260579204656437818071408033661799419593660557224304012152825388445519370758034338466163539112395539382086295122090123836597203152750449568054735472782381671420236848090699644137952109960435371548964366287921721223594132699659872529078386922200159542728085803875570752925425265072094314013319875059323754869012562154064853498454177030422287632199275067167139687997706338904063677938914511471839041737105489947790328106395870686623310808684845511857211089277410647674997747687975606895186859848431973422720627315906143984549757285737336412774420598625500682823107960121761068140427267521690081352096804311289633690184287203736620071728822688905737431538274831097017159048674104633645020970894750302330411370987040527368362609272222868013794128785040089266443974354392674890070530508474807241361129973978341762029616086558703350120836797459219374719501714815066808750445715520890249785077487230652101776234361262085466272129144488941654532393781068004323892975151306274750581220809465167144473880183657574043671117894911248241497082249453304940615369113828236858542107131438080748359062030635919278999823455128178985750912816304746195328412560119976432310978598035399284253568464237859171180614804036392051217727029515044682966728031040324249215263715070021702517163591868201447721866822765041266557848303715214663896601093678742265700388669899097856911962072816412658370749961091923361805136956209034769763092900779104431989497539985478808983085794211884836146296656653375277497492139207120265240951048805646337482926070161517554037504781929758165261192420728585589361856641148769962384529210352329665849606564081750670816954740240797662781054156242880226075003848140195872608070015077711249377513834224504994611720421487058337728785256552320787229423957810541069714271503775531342443413428397563360196059555697738893111589540494137470667334261249725845928935579114825196631485726081521831097993644041659415264237281909789389026939024813101371575335341912519265847330326396159640911694143904627989056995159478132902942927474723745125004381125152255360398779980422279832100001095549262393368565460591719462252474712469182861757058218633371804509803171820019078205138242146747139388213254146565860315663174369246304173481952058484274102216423959063326388571282587132729547238818602778935469962744632284721877064068645121337576781814346572898393288755098828778307147744477326963620377080199028055358542410990661621976594921088560379195815095294039651825390483013157594125206041911829097281340110310051659407272292190389602272704490087434511579111803163948897713942017056278386649357234314447587912923376375442303668075100509336969222053436898750018608944647708866421915672903658400772450421563656973517306024523777495409270436711552685961607387535522486844627073320927257612344736832608446258602381095123197092807972598084304775983038584241428928542237705035704992867587958875811236954051444100374990706102088382904678639755273885543849545435906788865964531923677275599898422572316487945804160114491707046583118080823689165145248856616457278357089133491734717060356176324405677983575693307085382619370384755516780508064195781706003759049045086156949791609071271450141177047343735375441607080713440250077116327656751393930509786470847777501506252771416217789467080536852875274479810994569238062601453415460020489596370745071519478071729587474831709734783483058546123858827000821421114144789722478003045353659863329033084607693190038712824257459306961226465753714998873802637235849610706948877323774051282517240018945946035089727317079770030944449213258010588534300261040235697038630824712282430396124903087452859419268370403984752744922187844972831366325632379576375202342288006374352933232488225036281687656798032509678036123756388572098752830701789750384617035808642635510753773252245751277319794541444849462346873664495809641742482244290700527715023056840619785945376770643521875616629927571987878329782549716545835265873145086699420182906240075526327462963543501516842318437606415776242628970831693106344903272002803009724116043478790005094644697527121850547884368063396043642070317714334063440549874648068370810849788426879838701092748435265248635695767994652593640239418602989140078599198291123134996658716696081374744713686864073694322970708770813709393184262428347476761137926024752163006057587931606325940655909831928054352010499627829066660525250899250913036709314070055063196995679058552976443590248892502592240941121692499940927747511505589898152084865005681149811096053168398486016875023522140481419840585274070037899058968772032144469391387436006067606422624028103845230423003826921339354006888651158714364098877176201655066463240429234544219349114573778290914036663350964399260327116899129099934869867460744647554524168567367740874698715202242126577719998111213263016359146525621075047806866192324427699845045544614633099507852978146961950596974691487019811954282904833729246285413304467414417520464347086682672856484927320848872176836947736867613549391807730856209657539258826959225383004424026764184239656480529631168101681478119422460772984885003813280099437342178813697335269149680377837775882933506349864848531164896123243534287810074240816719601370727644920920626168383391747264742631180355135930865709720424164433030145403586893830140654027389492588917975632801168171973712552460997268323744385533159565144258738997178342042585268807013871351753015864661535418781439074499054767502698496303991458461948446228820475530087908893061651096662501973396018314000006830886493705462330407747325840016582542467486446757994744876792170433215790547557722547900867753778556803094012912680251481554623802960369632957474894146957396891110210915385128632176075179334062580997760880761188769547402775603224858955100642220731273816241622563773675351702018452252232932877060088187648963751901523077051409702262818402877919579964422861935033491009848960718570193820229253904325374453488548241371196836784066394720559778639774657286159113604158092945689982769595130420730738189707427273828836910281320290550858148643979646014483237808943849003008454382439594952382278748579527954882007569621098426439099156608732497728384792502021417083728355552534454179889431253366585323417508323815659977961167158271789019350815099014539131962315080416835341468154687533644364736191607130126492911077615585183747050913384545789755511074648142343531433320568777819552074466918154210103807382734019723502415057758921607367226053606055433904224982657547165035998929234331729240362009982983114807440087883202972692986882079453317151105993089428576212075245949177764254931894922458247196758567656581525218415502490042889646026988167695941851384124495921682758773242562226614489137567552579279376887209420386141648819741658078997869780044621484981254906219935598946238098765328129563446743285896294850959309146855873841553603176436371051158488178613265083647433324618335288845568395890800458864252841933452628036559876418984450859263219531569695138766294855736060769161095483862307688280264066097849154349230659743012066031405714466130055843851960209150854701866265657249192815717661053331155786854485157015136810449286940388849334411550530775925686253928313171574326006426833734298508856901556910630146770962491578559852049049519326313558343715735128627948989543494478238014394497275704685622683767060991505881297434700054727081621284064951834088487215967433870975839102526660767158684086774549261259775678341787439939062117931949216289600003212883115631842843434773253021442945462930151099675930707977406549479253131796842950398249715539655966346216132538229339386971595364928880548014160941128667915097435772377388595306333181244221474924542670287961641123049880221340950878148156072222764153341324385831599463342380776978758422159254658730260522591753881768871474437235686981047647202783539507740890494862920950511795646511205281763975404640340491245868298498223511354098212812582306110195202394964946279004854826444579581283906994618616914615299712734591538404047759359273386534360059613514401038880615271259948115876021575812337885882299443011847260263069550271880542292414741235102154819234643499448036172807709855283725761519814423271778056188304999462096450215429230669936035795125970235576172220770496166242751434576390167886344761932392627935446209916050579262779908011172714559811771074887717884233595770407101030073161169713114183102245182574864581932182419323004365383706308786839799943737473526690734693730172681903021738111107676067437342916333381950621972494222569857830027298401068117091083163905809495556154569315096077800337709959195410106271501948166100643903768667814154911417271835322582791468891123281514927440395259002351967069874196303341434325980654765834759208452015855367223793448411937585621619482237256469800095755402019757842935188406768039890834260178883412706534640619147539599162900229487839182899097404174040499386377318114447015478586439962357824813004225959970207143262375041402705552541516697583505031185908262116738697516076406107665362123453771397865503276626183176591042852958233386720686417945985916010894427976496036121350938801331208053017392160633858327132402170855144502404371416688873179125041757162164261517275480600452809414450517202013642926159686411209189961899578525467473997909933626311136403036330706413960044325950240608049364602995835908795895072213578020827237827389873785108842566814460663191580720719219002788192466508372284153561684259390855518660784945384840533204848750312513449670308543977406217780260253877137673967464353985185537095658615811838275358900093139935921881190456016231453540914566947920994812161786010657909250888127945397891019449321943242632364671438235113332603249630581689533573033531523074200797875815473560558320262818178095479428100968202082371173802047382923217003916837264322104734059998524429587228438477785543700803896568615533852715772086011544509020830840371040238063926740193854721316290513728640273564482270497600705562467911807162412155805268788206458783710836227695981684065775712877969280548582379240676757568403532896812958215774984442407420234998727488463312858700361411016534444865728204496258617522321445522961315088594986641464858083811153703451539551371814138510688052613988223862076104402806702815727964630346140102370365646682808145362375334995954154176511024906907044652813767030520991872433080398867587405324455841492474780381839738844971336781255016531724432485558849162818686510251354405283414437607471622872270121401461917711687788098095675047646409888524804917864558346952729401195750574850008066814217853066554633281459537888030117794525976424865451961671603765467195602408902435235787179021500358732080288047856862614493131469911788477656077466877218985398955422810674449353617467038403488233227881971056173860326254462319195400025538958343094570992947905431284638653823198894483473379068065357358824301138153079605052513273297367373872203220201832237538449959876601316970934956282846110090511916028464596044285970082585451913541331707196114640075084195686071159409567341280013572612536444941200478461493485133501164622404536059501101749413033473047885051981742946675643977598184767667328178945594970921358758947433882970784118679387543966479265834368817436463276963230197173630802865680018087926648494770964472793397721942265137659953991248600819538401287184281157460119380564165167820498318731382066374470946311005777328022130193366797317435022108052392491167038925059623686544418983723368703500042275123265569744986430990108171431724179511281909305511792016715624783006118212185582037857958043969250828195244594582651982858313687111359974531736954888680871393764838126980498193544548179546245766845117500063076662443900641992005905824289068719614510587657746115863299383775447796502209075317754813721006980275744261323686786815250428170674245987389175110957204624549334237003949378758055080479057208265934099512928832223145346383681101214726071098794442328708170625856207623774017424364344945083345454357375159462289159877933825151266559272432330768860204533569723351955569047464854012777300857137473509015316481452749568264636372663349479902626459920855322578922806849342729628607958028891484303068849778888455365902806989875306102260168413716033708163402797208794116212075654468652987356532832426669140242963626708001424543312887925792267312008291474711742792871100226671626466053350811661370169854705559299047570760084447892876981616879636672882330010407373192259986161277484575016688440660434062824222063911608904400010742805399334696726852816767399830890668170078950309744791834828775589311874543125269039538621126667386773824823751741843015305169887654406432731258441748898600606630168002358172075045537250732337438149676896893628110196936956224108744110091998663500448814356235393475250541194473223205425714276171473182350045504854731388367411983138201041551374307971748163314472541852931683109754191734602470463405072567134787894676775069750719584927702983229713438091515311023619931176505640385479112827301457868895754260415047105164405732809350764588992322377215489410384823487783813660027473347049583910600102267677780786949112951049161952802922525924546537162711461134236144335888742442990667250139568673998763665308922888031730273256218440702874935092502878233609655027321174246402607913498164190023881044611443918966579155410294000322171315045869887114270053556229244002626198881985716972250168302069680145212702269972943612323572885656416949180370406609630521965925292934653079396667920589666211613685210443350192445405046220117687789158558258887954330528389814590092221682350946518850017256863461014829322634734031412807906485785057786414777370467714214692138698383379458476345084680785344525533562279972490888502865604630103180693237305823994094774542727026110550900173821646696727317155795836217357558526387446479878738321329773845419457877301867786631858205493259767002881408639780485431920021460924152330182346837532296374257904896358681730686969014020181723729817517206083355344006102178820325147588720920702727764570040797444555911129452062454090813621403762487815117955971405490108275171634063187458628601581411764684372949998565602057564717920215847254822937242297864168397196483753069901399311372162550698929467748357633463806822745716469240123044833593492695004407781035500720851985655508057255249530926923740168673443674858991692133552709697116532532021044183278074447403357518125654670572065248170459075002603465250806694272128627635285089981427386013710642267329135134670424262793308533864537310294844886557607847399456737539653332459534070992083360700734702288297016058934658520843849820582594510136493895609207435860432307801724299084159542199590213193539535235845075715276427711715862993062598163701774780942106963001090138259632989742064259759500967507518001178901225041286115394632586650893451913212422896017753256388046665049575044641451370079772094952733662246962886404917590948275244577457486809966633999726718084656900592438183875154694470438317510056591782403092067885730957478399278657318618775534594709772269389674992105428124786847863968498656751986869242386092667653367196501128418591493383120008796088118761530259533561506468167328093104393216068154985605183660891822928077901212450745992968602503313745690086363716905113857934404316087239809805187791964874978841302810186950304100088150267939120066080825554277734633218835286355219741266646522352252756304895956682967045270627971529891238230240235968280229592862247817107303814337634899632465229606395874368890842614892669250603856904971186224343314493200510560137076427712859443091702863384536687687823036818948850744416896902772635392679506062568537850239264745345874551222224544327212320233341755048494644144014829706489893581504636561645155914042159601292885431098699683233454005493424250506623383301885834875664687644204328357334862681335024290992060605088805825672475570583039742073068879627629421406368491422774061133165898029867391682830770770849242073407097631996981809065234859969530113301273751662214029663457927013517822419954639875598381042100586259331248860836933632936673284747249140796282217688721521936887783454766944089279304714857179720924225184134961103989819130707135277063574685081919503061515652864834170672328629562041558228848654056194062712066681779327178810368736629591154737333653601087507283733852564818849467672254075555944140491614923678080963579493987335773245144590115769308237799632017982671353279162550297864172839871060241985173902505468893514484639857050731562519467969924616104632067921641600019599296130788446035568915715800202002631090076620614380700833074096524532291008144734321019021237921412918951337897402610065966928936294359465869489446468906384415157504129775394748968759305952975443587188362912349923175891542335293720399852277648527094760260490683215769607295020453096391725091002200985368751955422434594781110087288096530125567067519044955110425971541511539513680735370352537822715863488482488257305433958177478824566752005005757882050572504272951311154676142628190217427319975792740910369060427821621467080473762709720019045782159094442068996393754322735068552183036818753502932083784992738523569858957520648532050742546572472606256418628709817525070552352989159764539419741042742015972768417049381745930881571289181356992368209803998234294619512484592597264882176201960556382547397635882477903847922137030926699975812880854234192853462672336974247381563035987624681324924433982399991371723935552691790469379040936346867571381860301113119803666729576927638387361359118466210156400337944950798032697629057012392314754611640411859927159786234656711009883554002611821906162742068400930676484591402022540839122376135577556861542655289525534633716573472387163307217834877409302692958493902342899367771176335836964431757072334083486081509266000455467109364276114094202230596424860530170044297599175700580792746981959840810076252717602505405304608962063686130317381888555838685287614451028046250916087487444973961709460967400074468326015784881862554480594623232365803680966487027974050307823863060679949903989396286469520085271224816148336042753089879991717277776221468046613072401204348488453820510114466399676976776359195043303261563806772943709344816220783062827898030051191292385755439991472004526496101411289013783046772007098006660671924959591353922911360573957595376874167131663240679569754487642740549939701823174575076111239895739541379712053381860247582835621538970017108688572529243727978910922069400595496660689857564659950025490074480550827832181116963058919771614001277842850697747304800480535442000631301241116751347563559964707914149244397424800735064657819432619416409225530037208630302458095563751441314711851502550762269993175399576575996947281528802812768507179687485756314493741171188748953571337605521232285579188253510288135410560408374051755868298618277924041552552440894313895520548821056930215593806277680816860715085712056505527710970634550642317244011619512749844627694701138957997139921222677153208196000492681408693223297733515131565786496447019742402197018143317924417467818362506020706568006144668935855028934100829023278496151816587071263189027241548827944404363138945098268120191051768458584436799915851126616465058969443165991386689243406764840556562630149665875611401084963252804076653279988430602435802956000173438108531476499461593493108390173311566318113876382586853681993281159938977557593230351885613258933991918528789583267855731152590253048679332762366005924992102449246429108298362508276980377376207005689786860455435671029879459320860625505295438597527862854580385340526953005006112685919325410358905921492505305086858341893788469646669329395466523666659002714238524472918608338753924037631720081020580011579910224986521336895408683678527608742399982244993407113850250744477672116582072369785326628991080641260668027434707059112505576660656688025278819635263913478433371067396503733876883713160218882662522374551790790829857427745096443797747862106051998492132311565534248394139549874867224444694210159011370805556705039344161209358602607724414119810774663406044388951623669906235706832393442345901098914769929444939586400866476865357188066116262716744602324460816117719161900988418739408981542111564064076428313611648332649773096513011233567852464354861043939369151953756169449399494709330058412370149013962599809356897386888931586938046971611978205363853051340774852370622094463477816716866737080889489987439735185661801292607816187542017852794396632539528526700470122532677195036100939340757076693879111144282221511633680827413782854900621794974891376671422074376030809152844797719860981079097084220765594553269349627152817039603802710109661846031669378086912866572081906960103541497451695148244450665025792420803742322673448127225424277678645531573569522278640257074656511344198537813890355407073330628393400236046974701947001595864055412442052265143738517868962718491458771982810618209910801449800908544552925239428292501883967927098400254630201201664113514896375561618943248507159772939643226483941109227329800729009096877754901946215376610211048494658443095782228075695155878562244187753912186349854114623321210126099616953672649821008216445001547285207410400088979550761062553087907158457174257155051924772232675088107299669943815693072533487402314876323503216382142013495905691157849666480680028720311741538293850919623751259353087272988225588670715914721825344641178072941339029329092919698110851110468600506741953713391619925940663783079988870070292877304056184515684532498787205384489224305758258762582465603388901174498724245551316578034438000619618848307474786991411249496409348437637037185724193155647135298585851221808814761222913093725175136904487366164787195772036555725028344228452685403165601359519611339112066916936805378152899910449555681014510410477144840146428559918155767273226657801739863615122188512663229085561023692977490117677354023212072658277762024336402007797472358614579409513568358465493672594388744790666161050315574125845967924858975409908132431385073054466402939033096615527457551294670491767586972213293728557957582516668143783571928177367126168975091176726134080392387811978822350390354237678409063024445793439610303877949578625965937491306370704288874971255902143554726354635188115301497167392941213806745201163478397245236220487748600781771175926450562860265372765191440389565496488348465551150296076447033124387884653949737170279793681932821805479108833024136499307213558109261437306840412059743392702081037686608502841586683109094130401715682377831530883221585442683159024143915379279256037237286153717688646730474515155977147655858333731563737800720618856848381228008278867031226479395777101516581938171028523069134504562266759297547343270723563850645685614910078140938789165365252697547111166978301084419171003064973260035243074594625557878038755886955952061570927328639194657169963539927784563040167972977343890477291437984090332659236337063015382602527872082789034062278668984234293872210823716139252294436420361839952109627164056963795560927763475835639787972578671868226375472520150832506582398373414346476813413925093563329133348503360078516757352895945755733749188576182106763714018572725766735523930391429259585072655727814048820701725645880057091223239843506454471092328541690799755754775681950288162970715864209205824922693795134726654857860049072823771621374857105257847873523103670499039471819938755114651663116346154285635363524661210160831513998550505620532282935495897543914663974652142402314465790607037358429987758282040129077870016737352509723155397726469162592162334023850608361541898090481423108398038743226815273190109411811720075884665194989580644370021338628326438216355236896801462547307996848538854173621291641347835446777700854096624708383386887186210687041614216635850626839509889594053026232936487517278995235258853705554286453773020034449993420724566396564335401405614638263218138662009122327208218615519039213259108199358415760832220781963052608588561629970246692877155891022503949056407427240939902338566102725054705452219962346371243727830104838124918048789691689759176669536831016752934592735697401262452137425491256392536926826795931728298649353948445549103134933353587558973746068265681138393953840245065566078674733987283390095629828976231947970731100578877543135242257378240635909131816656281267637880030370382811104726622433733175267702353571693495612326812697098718825442231627851143073126727134354383791918633063454606408369369169875574875632015959875578715465572316714271351965754708512437116808931370772894503018277514335128290619363002925581645590331412800022538546570412727788074070668430420964350105529045529760200646347934536975050105563307221917891070745203390279243680318032552856830997900117282443057195381873238657829634733327215010576367833606440433770263098024859492892619444288091118047765701583184481152238125813101699789692955698654705023479796827526876391545082445645705367026504893257640617571428095714312675100936473666252557187980891623410341478766900868668958533166110130468675154003662561153660445374525215368790211954732901272115235427168776838059877076995188120753749408888350969329043686447311250944549939183342336111782869928447522254326753089705859324807583394352825106687850012788680090394877530546529911831635429076251106516119455312127272126637895778138820636224497950806495375068856206250527523171227618314333353864051754282520005279393434670824450517738602025351574221064431987242155936602770651800045540460440508360176025052664374329264317140844533423939500666452994977887633505899558578243342244420363313200264696352259831055218551136035927996209132234043613669470691000164921961909825730647248762756195933265147266974892895493580897305771906143221667014696722998947275094996754988724923637114327231584015309490206418546027310278237879143464247033834198323639181020514775075901472872487039350711448428152205995602324550692419316762646303346936563335216634153355087184483064916732880521149837396167190607214107440897597317959709676159014895010811788936030736675785751486126867775471350682085767093075796265685242280943588508570234486661573192579976918436163666965075818361380635171597708491568734211416561890714112110779944480752038409666054345964338312746849872184202905757669151327288388523714408283666010112974706164709179215271080721519009884923786500085955173640414615790232976846386391093307171195076461106431617614515096974213518958925176828079968519840205225555286454667497734247030963231753815646198574778482157851677516235050210931396620203060604394548566743665476354604090773163273495700465708293509103531904951259068545987222971391355720947833197470164235601579712224107721438994093189872048171591087588347649060245105954700427617329611936273064464524780836865411952760831425486466116678901962105054507604020318211596804378865936001086999157779332529613151403065161360003751088645835398162150027503415304501279642965884725660013342472111313829647028801661558509752298419970081602670906262365551448895390955716062642115318944777040925141685251409187823117913104447184429212787115507741462743348998863504939543183498257622397602853047820739029005223791612760059245614936347786125356627285920324494813050534212502661569396792327484577383321270353889791789506171478231042752431799200533116857680822692659443030570320584935033452909359887255196308647198537296058261868620336124814456577702793283730848404684473005063468735154338054963322837787455867096668973850050012675309405407358555274782663264777429499999573513480770788519989847760757541022219163745575784560374769689905725479129852674435354012030931815463956422479795351350009763462117231207377137186159262487757347856905395132090146006649706718508237594951454278907958273488068642091738976915305564759477347192745349247276704261526766113450446314037054115901583938430185608135621888868688684918921627056803529472082114488300715150563265574470638999198488559377894852766953548612430700049459374649700041593215057019515708574364974449309330304736690185911860861938907615797453123678707907723325201761815823675223569595656962748901667884994696255768312735273812446849278845183026314273897677018758987755175107634606770637536703853552049393590881748373134625713936828771128560304965206352956535448664955349350187843527220268449781572217382775280785308772655285744985998706904872278739423837422504668507029875669499879880009794772214233702228853719965821419455840570807716344420674566199649993781560946512118559564470937908495450786624400975552122299807348552933381381600472632542586452769933667551355968573348969267266349648373744631044139117697779578971337946414760751720508306398527399620307659892396806643731925279940826349043032731492058228499882797807819114562691118496678697272253224843247938985199758339193539121009940984135164140301113160637111431856190521677883991274145880041724156186131595691710368986739724493384667219817589703847745615327740638660779856895674486758878888911175048438250013869687112529269172948352606549425140693309702071794622256584341522624789131799755583942989686030841956032680993074815153316763118484910506120114321079161391745412058938089668134018081325411875499489137604741023580265070322278022241832198382168413416679022183382849548764240905173288992943984165309791069660567580541999758287464358355822176953844239663419245279550845678748872569780426265470799872563897682980422255687085714115116861847423126100264824625843777273562221621879879221221696966079752954831618074557638915353716328658621450860892117876133766122960447241252626897491009301661808127085958172906882017122574487100775486206426380154431026035166168003009383006316289706137704570291012393498868554753552755867059128585286616396948540431369112881871036970247816082236106934797297199129501826113337047299648189404967613096812718809731597086812139267785608364535962296024627711845559959253702911967068294386371771359156312903742237003439744002409245297514319866873081190888455260449590905222087312063003250409579165404511771422094262123373864085402305364615497159187319876659588552611716553556140844057231749953601684968712741579433903310515346463605810929428861852173231334054670634117008073707677888828919022926971387839849090804076833615037168662936282990705516767313796379883126640411586827046170016254436010000580768597179859339662961209123968490867719595978206178122711022031267179954528281578009626363738775249585125173919958021870463034759599117612184549429973118962722078722494199943572699667585713043091315712439757470668722342488018973617188502016460532490442198820498540677328056962465544714618502588914470601467258462675241345993774073754097589145112729524544009866517812055748059139893044491791012044630385259628296138386914938440835689216861461370798251580487862591016218898113152006433560164408881072641924422380424873482022037325075863855021286020396494641452921932640178758594165434924964300343872775111633923093136789322967415175219788693783637659114927402707460874623777045565722668705728015533543953182021713034376916017251448414706158551460164031018946900868684269733128265094367845801131341478509698533168617460237292121041002101283553521981512950570638591216470091900104751689066236783874107904017397418163603338230280836995965257362699511200686371724086837574329220657482828946621338999475970637615205106635771443387217850783662968810679659415656065057259126120901818979458183818630431448477735728786479513394897240565395629771790487740806891057805889749325560660774205845053380073184424000764038830497705048369556011342608383929640398684565497186283419622800642484116397314285243894288821927627996857526769131565391886676509112209886903962030836961886925896536792129271578398045764020795138639691797195285706437242459942946962283270633105304675081058924867475812941110724193780262282492065201313067226401154012879782359191679349181155008325408534897915257986830887048639093751203205941469553752598925910476729185439494598343276929756297220442732382838001789116502400359374568928633784201319972115142471886787535207685943076503956798715013933202559512544220893840465251539650025399237381060664265575104286629954918294637714051187477524636313710392965032171204414388364103776657988324994985308767649272642881205429940735768897952132151155447460060295293735544073412420725819141723080211250641296902261224312675279321182938322397512693740810820979029402283561542969999850453875901403183525344251221145400057275655023816199041936990604294004769751313010105423644900429963809113836744810717897638437978029444947568880738659585374692709901415945268702550893008093178379174848567961239729946536591264213631211072263768926806392128570788102412601122002382745447141896849785418374815782133604448923937737098934240050840824391193158251216723965698301986970019193555698967867957650434999928392442994178126127599288704485236654896411659406952318645802055189642676961861322991522860885963211241679053128607823738062108529352020765685559265232183635009814636168533067120236073934902711906239573982049251223338488294652473676005721905628703984657863550350351924761466968378973221311515670898750856687809485651833427803715753597833326914291061090103671345128280415843708832255821677794831731842226711556556261932588943485207735342714961552431200603662864155532604206066846233084342908878125308335410923349961323895575214540536146667537997045358229805539458257727135020468599871140072468819134934784699376229923253028434405968186792477233020430369501788072956884236372171946182026959163402024937940299435267941389412674964287643283328588867205642374525211684738046175548694975427015762417700231711096770808988500030963328321278490438715987738099603183444361495449876689207371186338973718513239754437393582845303916562045569646707709623603616811475469215256664249023477136639539690561742701915484838518555111867454775663441388695163772045301332944801378082520272213793078110863650674444324625854084129620669092338525764076476954208863648184827025817877353811857863543155971569040599290106464947105388820317673540397232847065424305786669005883932614126429946376648409607065388637662461394787566791970878931671432200072266553963186790341519267602977736634746683899303336476717906485928822781355710485547106940843597123010205206544478253679070381864920347655539609264077784322875176064545757772176885601423793373477228134128158389918444377979710503544538276132287642556772514390896503621355437149798522800301936776795527091613873089536670965154273248019122466036402491292728979497207849402798525027994930904705496588888982023766846460848703269333815317024111666124567770644394672827670870974682450892440058382991283197794284402471937111358441363408631580481702617427401092444862040390297618597835423224768545063790784321743432092147886680983842046783605578005175985532240852141741786341279551160562991490345720225227479255022159316892072217819061808707219659498365797720543028613903666710674022487277362374234499713344340708714686740460448689608655015493965647371365482168558301234841261790913730555511304239098500357640679664551645572891099551505228118943938696184211962686721568720135301181234263769585870391267946292280394035495634723137292789864653112027289751977463663337707955842576548277816234620671017368068340081081672764849269427874697459801871145144570440328969956353204878123839558347028044678932512072398249027904940282739552596835195954371118221438166238466981656123733419085863484315441798393759705379365636800803606484019711642449015753858131522325546311560349351287544563031487934085199298320700949379257402879308878376895583101647788911007950154382258649168645102789538152638758812299953612552031213244484349832369388774508472628589043577983567564663742713050580774105707788742082497592608976386515729419724365751887310735750351847383370698193126223031163499007730145533816928217173324595721371786563048492846428453933067325612045517681624950261391321195394330755156009691840550981519900787050947227772860012356878605610499734727543854018760844286944314527051306803051752672467877773989946176934386188912782139071217155209917093623371222361269271302716487550421343151629479833253737935413967920362777428046179345892158251458517001825208242891667725289707699572769697857303006426411046311059084295273118907396579676908016460575010420394693057942652374830751478371145918937003661515220742509402241213788540220302002698151043492216713431134038169951952091431536951713852487917692637485244503771782766993656758007755881613036573548556777698141534037903476754632992190723478395455510947187492979932472487090862747397427569398803006109846027790336989036701003489196623155330365745049872136140765273006526436475175647303352320844657680545286542546496574511314026533159144368741124688722451213852329844662859977208526050101946090671818340868707674709650387927322948121914106707801612549550148953219921350497499611316032317515830053871266384365544121979160951481175704935792788577322841847473152933803066274989334359418522320169855456885388434715306987577917117008831059571640024987361184870755813357856475239990451598265927413207768453710305384484142981667510162520089959578362310905570809354225162026580019346431395590868395609343056941732639002815297456017307835703545257736630779789039712759715373088392943174211071652291569377252949159749782652524297426535138023939697294737168372275469264896602681583536009519153628548326144112794846850246345070675530400617684806451489923692877053455759397569544751596267728544481494716336204700042456912388125185967863570425416959260785800843978191793529893327702995104254653752602023199237417525638518281051026493547209511660562490671239219428360661915507155261406360474601911604334629007799434177738209015149997726767046517770591043067968940551589873560074190041563897882235158929202945803767401134919775760278683036867906371929687584643622151274297828710169271111465351248186675845176478647620703494048227607205941189621025775300585177035766438417436876523000771859653594055468099245068323347544481412181312265373742251751020157196042020591505640202745260860603604889717063666212301512174722114161049265375884577422398626514278531787585181823292789366018098927368487481032480417274445880780992851260228745800735299457075526966868658844479573476050095539115813840263606034363347689927023452241083958194336737918726638478482226067334940123251048674826744850345369306804410880485580585448174627028503375119101720933350666731514681271185164353357676851110257589221451463016450967550194147091674401342131624458579877941755616890069823620804382226948015997057519487844967054737190952565651562928078986170314001077902860448742520958695933015959563929465415242031704222201726506364094217621123464750607885496511409506793336969206611289558042143018437274866916676940239774983083113196462656932435059334090102947513757330532825128707909385982881339106281318763818840724851710696440178697315714635787357479082646994171828412306666942458832796067327065454360034532038898345759207173359633487574342339339260032603800240795728020886754977685987768010310503661098714832409229836675163677055936352947061440253442682531764219187154768065019831779001357406480767736440584483425319076506231019270959300867463603208885998229086809371524208729380235056550940221485410669025210953745971066262985444796250846271998954735633348674955042526574959905577961186799427722152651393153723290814133934439483204186588373007128023904792000910340934349134307251239138796392315244112247996336556074425453380846182837565901167928037597414163147640574567249037552653127419632865089647271067767303067022016467256527536886124866251009560199533352467146023285379283729674754870368039940946765710070103884256412231268441531374291927663302002356250218687247768555187191176293050342058271771435845706388227196202864312899351254766717593916754147613479957046846649656523452551438401451789969750655334851018134827465347809656629680965383221475947429056553779014101844572759611851644456472350032877407895612640633102442797727574392214107263803951119041381398400207460381878770998925475195693056610037419285641761337368083364061739892881099221636148103963091880993198484743676976654249171228644535008446400653737444079718582881146229416319344446024430977492101724464905882142901628757461289250122747028840367043789928209667506077628817446037323860407164964459236047112366640329575430561007921699143709099832096134170640076782482869216512119629156156270826606454256260102766970609408357957299213970163412819926993226220863701933283343144785629996147487704775736028162833078137877327564000032166533920390189832499075765640685446137703748927074991614367350968020117544378655962556025726984282332959277424835209468556936440036746782435042204024422211715804749235839495893135411387638173717440394348926979757732799589060032753982727238251942975495214735966901445699878407374143388899984376742000146094751164009629178169981339314880645015251327331407504398644783045288536265497600182616251312426056240791957565917783958525038514796322754724642894847301834793185257521505250794411468656641594127814606123949520541472176069673537817988632695983160933376813191792978681317034087726130062940892629787596545624409982040944896834968111701169455080988301495455179761052554331118912995807019658295761344119581635348353669635366775243009004261060213715172539153969743404455505561558665714116321978802711298857784194171152120898460538659728658377820561435802463003716445534884395377655391731351068575972778100516688780388264273184119540868371445239692833391117811055393315675642229336951889746613845532045058049070382541173670245613430388848824014826629067846562307896024247373246031971670383584077767841814826365571592618067037712602028267798060850359943944985287210955433003270514169741059239887420621329688615131358796801378627888778056471691365029348460932415596509730931231420470818366076554854036617798949757477584733137339296128135497441154054695577625525931495353484186555602968751860553827429367376973843071001315849634614735240398800756655906352444120516024783926145927201508435059586605611181847056728899703110933100386527412743567406452529371271247712638485547157798680018729998508103439504908298615313792645341126271390327262643300232295409545736828557353500910092296157486041364368442954770276533597011082849867164125883711539439211669095898559816911153483603160175880421944887503262558705299607594731005876995911311086103220682351831882474630599000150799240890213109463516650542901319206785390862783015892052448580475882170561357349620802641377414210626161963401468006911379603079784907089501231330772459677361430976540340415009875420711839087550608770897110745453256584762483162395474040759888509824258753491404973955935617583816381592848301806804824899938412105374338229484667952419482389635507099715473739547017543121090108149899454674720825567826846043251033787111227235919281517313008389418836135598944952236630995249860770798325194961683575796715046285099405678633396469663320411496826884655692576262504170269274077417732091921377551375402465007416145274489425688684547775919065316790312855244187973260154440048036392318276428472655180497244757496245311055615831547163665973645354904073478265623612747528700014838157943459039745602368166234649334729267384592015414323433318061565559565811337144043822009124675051936441992276783050207685936969360417322704676053018742429953015129145323293749609586789401698648385063921696691109598184556230431257841396431308474016422682643502887743310605151511737365271974967265450634634183622857625055497133598359293799529761596058307941265139308783483680948510502531529637275039880748635680619768208558100276715690763593469172216909677421403970755766205455230878287083858955870834743545739716462930063819740471315916920272915853926591302585343965662150621546288655411475527294454817383108679082172693206171372008796662209771495907063907317255123080527616445518567698578351095652417072935288887017023468052535620572134746968293243967900256229172325513962175045600460801067084536254881941251784960489082486736771621809721025799405046776121834934194015570003584218733196135495868225947616114059150655910177390818042768587475669676513081292782944821902351226267998656075836105129097607580662385846018733047141283344826292529136665366546977438009659055983570507143429376071645857770109143695591455015356530631187437166215197922963993859890680571813100696701201309411443538426582045764036276960932715355088449640487990531082367359878081192520700065451919037010860073745862666079259470077504086085654422213542752929928290076415679913671683297109396187476314531200026708289836524898613538779659632239728391996973569661918178323546514894488009675542751135454020054359177151776607501442893103818164757678662612520106274200198389743925844866036167060706951575454383323507419363301339631281540760298924278373808345494369402673915480577483970504679422209035709992257222275785799419345498275335203199575528912972168063937611730152401830110613284813492164277706445687924235420241362418362946916806522212032455717141057209989091046914771134746195924234324248099290116290118996396314924738536703444385416700047893461877414366239894017889217899762868361085563107819395558860967489619465085970782582228302802867715291438420654077801917116897417962722049183338517629139537868659109516816937579019378084743064999021915301480620042764829513896345408780999287277558181860315101654821913057158431813507328191385363532990748894884058179405950492031196848397202354097503713028932520627121957195336748498296907594747063377268180339237690003548195479782603527208619346680599150310686817885170597053675730202094205699165151123231106199239994982041813250267965779716058789084213734615222911192673532904355847023128385406493898594913746035123970193092188837247493375173842780647895863602870123584260274526593861893943639391427777790073432388819174786827382917738019860277492404384835945122214355311483725396649558423497312455878445483599063097617628373830250740675758061648057197343501915584207824212516123973013450211022032607787009593530484929110754986619948560650527359227422912667573305475982833614073792656793611458919504209392833921445255790687257358885058628262891575310349179833657052204509204910435627301418754639746668210977575565042736007554196142642804471152735671716035316564530032491636586195000787055966589387383611491623544423548284684163253005013829271079343412955088879399128658819104113035547619340158823054487348957342149721053957976543320624563813469404576074831774180993065038300965026096062152178706454184534734802332519129749946069015116737402767658451460623802486830521710953825131887823627283939881623201588648236521515496081275070537814767482989337312988648283121709334230536635462606163527307130175667384544612579024762844275204457951662700889817944730774405808194963517768129870509267677126137739682624272585077549338283499292935994747882323997032850040777406611687243077307927793732523480382624503517394481108799786608236065694027235272203865105609394543795464709397163745782227308596054849424423861673294159870180991198917989133938941760409599876240105466589777687440575525813796335602400624479101820096127788160613755308694188392555606419845415889402561721897295522854473020090216921724978572302091022563334807152001689391106462272635131504744746048788947882755530739383925800243792529352849135645640699634049233625346224392746698105035375860967257834031519001234231591976081088218529565575404306331480601729773258433588111048242738783597602379548777855716459953057005542964525488079544321495546146279312319519520488541380938912700613393343443119893401229860738372328458409858500247822430043118762965582489489547987949719170029169834099884089302973262474443460328228850603014115641028936131489299989225322291189392277689103270129680305520997516770370721990947520567564822133728898456910483061177492125844643251913649653053975960339719782718954935345806704521220363165832490740742361672635524420550190504934331003089445876531217888783079354969962288106276458470458163502851381266389360060578232285915210625904278689153773980474520922708305826673190308260419418150767918291458920653458669370964315463273080264736272370598886049194408283148967624227060545917316808647795127511922445990532138284225055279587436841856113256244056413605702161172100829893854498835389684918725837270700492414818609017736006074718602173259425266893232140628204537184521258514292916107943114496823480353647796753408638309865356637348426928046713330420820829116539823522209532563087535254053929720228554214028901283075534253383305669026167883092418003625954744516534853140183750586999270745993767759491832987041264022195488065630792602691024147304645779512480874818272878787046887998638741296974450362178189367132133403656408879035045789339248903492129748915383358551147693330263505311967313987688205169004255950605651458056868284974143285716532920846606762874496424499686518254532203118925877744328223464477118100995526405622084565743457895944886082622716917285121693798615800660759620287676089764308744614729560481527710100035540712397388880011767865815126931868583072452174999017084756584450744893397979241472195903646220014011045556458919824236370139745223400732961433786165003098225695983323137631804527050943163165335542490652598644228555790014371064485240283260705415926326951164054208155203953168370110348408655074275930749408837293770918397060680887046093388889510061892358008836904124399402225023894967508384067190071798501312858114704670003415209095336834954454528464502944210180676204345957605962949395169444158139834542473682757315397771240491558382470924661920114435086397687245632308697065043569241041833173954683885364106929465276716120668796278497070547178516416369301467391627610047512342379961343610807139288285019725441713455291826256325603078500566694832385147713767192679088161150350755052668046065799904832267452844047980524475094386160043140676854867225156370149836235691128849687149045878393468495016693898291895600497480756901336270299281632054092928428350850970347445131873251595814017997713604029845675441893788365840779934313955412868338249919530181868946894600358335326223474278530145456901586908664376524970408370298932273976318607324146387066211374110191983850252501155223270080721533487506254724890322593572224351469975042864447049469027626560295150922265829648528339555246568905133381519463124053922696975623066438762919835384990412865074194356474247646573685563799459193557398022492106159387903137200410965233220929075694722665868437790044570510686610108061407690502068640496167925209401159319107715188100733413139298922004032811750020673959633454623948104640602957410874176740161235876265633882770031387354131423813388346347161677892674651270592050785517265563747336455501749966839133439652501263248767000446733219089446092973999302752920040889565837508397444452332138361222123956438163164701048995158677807495721864887027554228772802143802996163249525303035496881578499022523329390001157498693626999603034964009792409852964096450000166104528785630515797360238458635634806165687001829879089504586778799185157617617237408555598055651197950886560014460042957477132843353247002373169958873128336485846943867047764556766979938562800746139482283172729947435663291443850076949483630022908616987100320440710739685073940652056674875382623039319450433693111938259959265337787092423371636048457895872697062652974549356698462436123385897693048303420110275116700350338603232956125028131684233149420399674274972684258218034902409346035115982370033614659800922094919509765119171388113129677346271826030156038612439921798515252542831559571059714966182991531335775725900258609454612206322454206099215852456449808818669280764643355794320504351187572505806688512367221169173761096106456330257350970278744211499439034948728447872694558008128468540317757928505877081391260118317616310066862999069083667817082990405668337642811706513581304054257980610276816718085258160759734283177340898364928422879374902340534283503019734131859118622912217720724595663480390755420103892603215843056319713657113055831710309612926915166143089155366058523399796194932187050675424855252543954646041358971897001372332014491342404788167248087414999352332345716459192895202964172033113999671212943392998982965794235947547500289477613269041370111224300269178437056748907238332735080504323895389313542469257105187381252992861738053405116336769234125442313812820637912156528364429127491284945449080618597280373539978888343088071767164107786576776542498572100241212819949641085678465298574789730149110798851688944482052844758128915010847769217168769937054399977935480705709632574134492877785111461996416772458590823275964692591343693061084149052514902094360657342350468193417245868022086884035612363955791017700667476644594093771158424934889659459650420751050260198035791631543133571175595858628552640726270422664600444835571221535450482575263165319920786709452793204138481387528614061130598110950140441514961658661629951660906707585379367977437855407308373672138352916364384031591094416497185878741399351117535520662985924118326764082755813406822213410037375567162018641265300183364251410528785971689183968592275279975278599229622203602471740288633084004403527849467213159246730827110750030214535304537932424857782030763150434617988765799609215545277267890004162360168571435502296794458912012418286825912728057205039940448996809590497787185228477703582825706047190928972876931965966998079956732774856220448057216936415344216164580648947197663127699242609383141138606785127963652468339460316390982971056798738493574229928091419747936087642035577935999576147039154897826742222966491598697152097661897501868107737483585843058056827675418641782501535839525006125133831814833101117377363916668140167422312805835049248610210807706159117759558563258683083347883330082958644430236056090860940912765130499359404222231745793229050178810807542057676938444130707110744832913777658726923542910605250244394620249614555498803523981004062756346279036798297316434001846498665295686986515133102903964997862847295955060104413599099089792902996895829373380282153212696536992558822087690219917208982476010895427514877638678727330743202256603376023795488631157977964977289552289397578425517013989978965514216692519375341898479603959462355564395389425870595702932979065705775020525628266637580881356186580777747887863024843508307448302380044095335877244761904355088869505304379951390499270905557716292532008993857307664384565802240328314703678415531142105707344419499232165786129080946070061364436346529057718047114313582978772208311398057758288576735615593474226319529154161348975575330545474274417208242427701574717077297017618553510351430971590294529590180657186369601661974661659870326768337135594633285568176476442134572010553785958086398851832911428865793192739612323079047378896197989023667328740428828910531627184851274474570494027435536060676339496474799301464766713290430266683277299636356896412513568231404004720621966597226826862125138044342684195054076828317381350343558158094955408246373126420588731243120664280116679793337233671406283242533273324642940157913433678503953466797856762312932653080038326020860897531391493807002896571435324309333709873918242200849414907555967217749579994115171165875860096622453737273983496126785551279167546006382974946099870925540771245411723824906202342839614004087616722333491255787181970296016077622657200236619879922429099651485064607808459372635015827951444390107638127840275930629168628714833480182809499140524752125313615540465550995578995477088543703342735755367770690849107908825008960361983032946718927991365091546761343013550014590133986041737448353192212542805317800997710394854942269292709312646700419012354685127030433458091973627336769528859318376067822321848518155861547909798776210293696648858705351794194232681170589922630234816251105031649778074520681884809844221833785572733136073356907907609765783003764649785117599980897179621506077822389606520342135582528000484498143268382533663616259927072275500771792119251072372012634550539328459064889370814838331417248325204685553555931492704259118169803947584447956061772950766611551824240482758185293023934260591633404938079637815784981139553407303093302986281937861675173700836467351052400724848001741112233372801447983440825128849264360188502794120157675994444395957795954139549894119575768006195425725857774093192808861453060517199942159564917873439995051575217303000389471608762981966903837057104186529465007110360136044491732415374953731991663355962099692221508436378183757595357269773561537469650324707585206211399789429973041416025641028816161359453021672605902114965536957490324793358691980887370190205447962564676869485404441331424668239079780420921494827063590921961630760611754369320120628906245514462921485535279612401387897246990191886592504805515432395989334600632259507131483642290331466502162385533161726282159150809316547588413249577150967013987392965562865771000617034828924174089832506981799259424644454424787839769984585845352835613051555850879236516023077740070861447588997317653126059767477077348584159829115206949509180369345290477229366416637043870432440686237374902540472596343423802569585207883402504741165770028600818300734350264621716941281623222109322956525490450362059062230586977851922600097824001513328328414343677391505530513757673667451584847657652344270064010744027444668475678207157359299535337074509803409110160702273692239470917278898005860458576151243689284012658589460655005030173965763806122884774836400784169202490076892501103482996399719993913098721728319462945928736886637418370469939477868477611090455916322795009579721942584320141174925857196841397281043689481445549166349493181678412752471258212962528242250220759017540637285889190858804373444450675572980616201895081549884527331426114051721154017440732232825521449231197237706894003077095062383753967435763912873105761266765202577440568864107632467460118272340897128931934289906776264514085075998549331084222316336025130437920776611572795635488358061476478798943591388931887815073296121566516420439380745654848801159034850355773724069243907468406153806131171889448368923139349866815259186242529499418224096676398610700541283216249060877858942902017716672435148330386713212382125322534563261951056001435377358883999083068446006049746566616310990900975394005630272606982204447909355349211585819329998866164591992401675687564262467038011883138839103115006798997584477266926848459398010036555775465108151992860221592097117699653054833522025420628332730419957295173153863093321550267259860717806783075806380830820778736402815144763869838891389611756747217830922391480791213017738825072473769025725526805289620625142140718618530870309592266700239881547966206909729351034493751576648444886152126624994231918322282372643260299062412471690700031275461343551753200167994002115658725526092813878271816390105792736045501290296831842522423888580681934611880258449695039014642422679873137914102089933701931847286329851530994052636679362995563164397087232267296743750360322976999543849325490275159156808827824229644775259187361945369719364840142823989771959923431721196394329429118119867073439259731472476501434378198100653837839660115888445543333300964174471202950728168730690375686235125892791981870629309991593921049856281003119970617741523616543553272353731160131124198046931665153424161411907642317657223523752282177513878732241486055245706588405844727159670806493630947940030677722516500271602911722002153707202441030245000806485170889122370580524708810313393189538451703305471838051888418990061037163854658579632305641120641060875530151089823505407162627841729943786893292240420292250637172797288794054182765859546635309694301119290295976272965383927617598678142607994129125323821131051999505140085143177504732529861403846072769979786895870091441536466613297845397029274009018427091846622441929008054065542225542671796832654423589598256942165526060753495419861150688522661868311171837823376465176380637629548584965866096190092513568621055677754340099419562918642948103675923240002550414022410384278758424696302718332553196045888922672914143444424457050777083986663756085974098266091002362990834331336216221176000155257813326814632780968052380426535353754600967199203886170459591272095746567828480958669938470209584170514026293106032754897709409111743305982050638323356685129529882717505468897735818260989437331609938423525592300018622477242565457959010147155330952066431022056763870605778310353631240281794626888317080378756455965652847381072823604652571188758855622029970122225492261361163958216961362289769457816127745260841412368626971198380491525557698768748516733218938346109475475107879779070837351147326382462214141874801177297293717232625739401189352306430165981210712988104339989412244671922573115400125984362354219174054417513120921024513997999445535258692159352296044245818294772510827771912692933644940712415368104001100012523294879459216150086162624380592591899844370999092017384597001996633136607517924906677230480446393009959509648734838538726993817429505022347959984981646710439793522320344577841095110462794249714861160093211367261220520415475872235637713961632676980695797049201303056053093248274921894716720576695380887677586799001532446043576431776089102923001502913913757413834755846111877019468722440689881654579709138633841685845897766402440670077070185302314953693477014632301812036955115822739047181659404529268278777462081147870634932253745656046568605998903174682050821427780056337793610705515181036297478455041729930546289430129079779163062242453701610349968737512759663880512437505305944400929028521114965287745344080439705884440186438533382408880084762102077648246487698947575101660433145278720744142848139437959884263429628493456593351710690854076540463818891276953496558778004185624968499797138196156258603751411468569268072651254184246885202691854111145774143934550085829407171039780411967631390718135373203282971737576337315862446742506864272184723144354703869039358728563868539468690912244461528155478821175685241773098743007463159143207711849539139511922025619635229248781324440681316278125562527963982166655958472969475361648024155268972951306534501436388746615484774756326228614740976659764831271559415087335592771731751797792788062544146314244846952991712438755439075267717967655947883846484165539196090585111457184840277256720955129053639968807002206335256599540516741626932407384416247715504830649829400857479526615570689378118225910817600122787677976203578208711610588235732403221454154735332166213963667621961187555040424187273148357655729506109810961243193411940634659671274293194093343271891067802730289575839621411389961792851085409619712893743666655968196392755511859839946732993586920954211994850195380026153817386775214415799053729186965012617131614574648080526388660846496616307384293333846660332840929621874445348141005159586097620343109275324870512752499378602849054540099891198135532841217126719470388683814631655337529605062704136728308513984091390981613304282445567062547586205994667679400463534303543618733066296102660802507014479205371602501970251477036858805419896356049430209979348614341766787727847408070821898290582265684721884691725599586480542297837008104394936999404491140108195800786667736124346600889186694752279596039813045693448355528462274344363423423891575887620641980300231523165218031581793788655541837400617288214839640796361008529091230290457921121029857299338423746913764103525385275325831790160448066146913390630280874916901538977884842047325719420446703534296044141498656147585943903806122680873272586807660019385296862765951983405119176818023232779123038217493757032661736755909527226741046124675048054769276480851652582900100237360940583435378349584036264285897300583458477238853557147212198158465638025722674935781714791010261118346925935666297272674286709590674897621785960994807356739500287242265197495237688687997483874951779515265752035738454107875883516813371812461085135038989227366024567853475365166465759601870040343529911416884747267249147527241900816018372991991281620496136603324114931256724781980194959130852803935480954421643515522725706451820236044267464965334701076053773711265007708697779578086311274339884573608648373247585460197739289340364531402740550237899119136468507280455689129953010616591947855829644032399221898669467613657155775769885032919911831434308155262292185018986181721861959775909984201336820873735671963015002196855649941731550208429105755357229567344997308769331280751592165382050822838208141372096371789675936091969683772516551815744954253816673408138871687660329421862935007441825962294510134219866004957476980172713000721113570540229774625702014315129822250499524119790079565495841547498766069355046432788282009188442538255785034207380091633040301366027307896953147378242200642148469875089568430557205570315323902443577973791852818625485574301770574036530477431850230120673310786339988273664308432499004889662764421612737055411150483841490611109681085189523839913367071086934358268109155598496849366848415645075684403189908844810098000973146904245958648685562238502962071442508098663449257489560777709816833590587556741958210943768672967918909858535849971125199237825108881912749794068566259400400323816503673454053578314478260150900859365079357593072607442400206759246426935076175899940475333002056084304964889830420119132353361668949858525677119894547634528789407667953881782011632509111831627493742130420906191577141744077744929612951724311324456736772510786776874166231636278289066584031384755160152622771232046216668508586172362743724576874417131307744023725623802093382991682577336991583938731217004837060479002090887613013164569446756494043840898278109494886164571364992301489306183461984941547143101242219218883443894121636412083236608046487575797189986729971466715629282175346267076872670667289198392496049449385261743088277648572642603749121145559566608541624808012202834190825389683847747771925029037918838004653647339069584653571049425485808992818306210161225280160305432205669809788088088742968876143889159296300773373637144176253940529970358252575305999105858808366364252033238318100983197538907929207622311775042234390642242945182412636034617245689911380124775509387823432100486912647078741564851177835749166311360533931436218560900716517314766993182819198243307585642359862874452040707348477230470637893172088154482609593712483153626246857848035428091563668575416660272190039557155643078573700148667814964380992555600855130283795418670035456915529102632900200213302670961222326337050331953966209648774944518697152527025359612945150069044286831593039723631290039571479927506224731531688353676698495088342712829941091640897948600019051374222134916502031730472687848181354775135932370665675219832607133226011447203094340380860245942190513535449265037059119487847124856613394918208265819322882983886645904269897338632894906822284011166219309597832796916301254085557979308832460126353132281636105145489259561807245886963915564935835295049812954039541517762544499063454149969562602765542774033318800589388875382409314331632066519839722754073757913504856853335230139002865200746016246953285162814633519502941006066168500212970049340339057124312349315060163079550063838082230099444560069801468642937322648979789637171258986214466064286270319459751658193177503104954059258225878372484357371834780844940181991104563597833756368365174575720817538346511103141113379688393556284475320116954816241185750618406321481895498643491624375287434978402175430916813522356570255789963092654012796527891889059672331245896899988114885958228101356239930871322295832870198049677394815054158948490358219219581665348058578393227955472122604280202112004091297300160803316234755443018104698106220796303350987526036992873029176412081140749627837115686688249583910878825148916264250051045717793911925139145134114658203124785523315966534939266276951987074646857775651968888437117821906371788253943041908777836993939815106680628979016372966494735895390927971121909355831582968252612968598321210253715152690273014651801052813091020620329840819344571525907154845125746617654750022886970648152819006585498817857715516025734951773684553182975962278323476126738647037112443586140025257422462016761896458543888506720887331952240545272397403444607166550147584217570901794796103709321364288470646788620159296086942888523829100216643967135834213712261861520268771233984860195517991101370418262363117092523634501960046551536529005922257605595741220053904036751873617618234402647504543900301632272337770683459157962931728776929610868670255144530083346745718391427300082063028525142937596717599363213491548893247226385360834123678991839726701602970561695801986694695749783620478582501316834981849805350075936307507612505088926356996227811781360905693658331221800311363654357618931031199027416280089230121666327894165191155705947320594565762280821055854502091461831643009186812201728158475332394178109739628323320606888239374220413135697448459165184512696553959032170137696017084551126413223054021781906601016082747515473337025471292090764716004527444421780173140844490433181604198566642117387981159724548715780619931181991617966485087186413782349913270056751771673630901641352825212007470977997867795235974249137701994125652566762957950999907061276302021389947217475253956391089050176731020225052863881967848852979467140892970529004144092511894951451865108114743588572538600577702420764258200080349219785998415366967421947401639894070182319739003732186156587314204961124498554556916198265498165545080904999037485669130498607666133875994360743844493073610840132792807396611421417683120253509513553725468570906159591303380083623997222476185742568291724063340684317657625503832160406887225162335236061708647882556910340874361752667262934856945679104549374963672949554622030890050176345856078043887826222435390570397053743753113355713077414550458833854131694676642501324096122782310617188005691676003134076268000026604469214566429633947702310200513317172715051038339723012230808414183025233412003913534138037403952936980257075679084634834669658417952502979143302116081725152142543220765424835123816307308474192960629315533745718640624788315518356619160683435706794033356399821827801435354204901078340703447445386983819093946573882038297106184572466075507772570604190531701639359699125206405489169860699859149838117005590828731154941002530588768272210357300219108263117241749797821452496578697936541489595125086027799317752489394186652256460860851833130576734942715703101540450652408463777635526053429672449631340317275981942845587112052596305175552192481380929350895113963011011272679923863635085171142995988311017200033708279008939877791831577120538695973021621050262841909276208219177525259306975112686925891496820894998447538884472488218509957609376666412156496871989395503493629997628366930776329193843609879606930114468416693405291758445192019498818579362429025756652481089981741282311854432443988762698850397112069918287996462220517270868834344349190716828542363115451747076471453025171177311786447521983282649062202210003914470249014712413089947514870742671456574342020479752160261608058450816643510991738832962980123999270901081827803125809779406617075488722472149338522870380391425855732281813345990534010129855023913917643253596244337572208247196881480339189186680272699531388966950130910825564067940176462703924775028006950967934727110960527718881748582797368009059860982119843206531225868729634404203253986762222500823166091490729743789314058138864010051329770988930175924553471721823044399649326351905660411058123120354802731697354626814357612568496715708050094351477701271880898321757990682836765098839091610218640620606566859525877257802581106623762418377924173169148724604862428411639931616838533180051654703440456851561578246653362599795846293084703673150449084307528915022616067113847993709825134370530757075074359410572156990388050727761633429280156017873651325552688141881275403817350756096684661223904863883402457995347111731530669234022539813916109184303341435078097010846140893801436800655671428564627158036125835819292701746287797869040267729403818354856972162940345056099526660407816130381178577158949817650721608951671281067356418079182683577822534681853972370754876216753225927862369025599057404055709187290815365304004377136765428325749238944692992873902167443616915817877524616864618153142208674577926468451276319101221495257820251877872130552961967884179804975316558773765613614482698731363264680544510650287814443292428027237035816334087867416154530004774733569905391807748697243050992601581020290097412905939601383554287876809627187920232571462042676857001500484215648787745641237914057558322967193721728539382446631836933106521612866771622197159050161911229806116427948257256392767010546171963891907393453476332652731685889707097686195368924764508182152451333003965497596359290837526553384469557931665733402485913322916944304966640809550073496684675456658006407853222153522685933944538883062177832334125729998400217784587464089473634874026247509650110442446616386854817948096894618486199606232516609075855555113796449641449371731830881762399221270623943595379148595670508103188515073956873148091097425363448828915769282478407696988826803133052088414060666965030745536939614924951067388401260194382148881083347598974490973235603049008727634413987166889307923623682768205302256935119008597499653344505432169634669019439126268643997510397812051672536718369894942544205493141999217451392279049848801260443290485747726025949623983557551219416455999367723812880610016366645243576978829854733411834487416973621259798786374158601577000446458324532593998145707675790062836869232555853443069040752887705963674227803945451430379696723274830080629462316283610469947104581356619714999333795103745335334970620693142136863626422264290571199931300190088574056473866032995491560142725171353353182462443524340812482315883834548389218483514579508011155142049572989027214391812809580202141721494287768414372137590101910092192375773420880441488901772051111799021584105668850739678985098205988986114626775683534655990527326336246406663863516860421854947081903273283708114727196502198482426700205508059968030935163650792095095200462828382915344842660108478582542126892157277239569424884244632157476311922463816041459467801242032595450868192050899901876493127402468590767613121082131190173156837448379871622645715725646304750576715545027314383450721000313764023774216658796320315948830494304747009593241752075181669027049965250505382089221215029315861029680829634352650580061867433495577996385278062021809266825788514567413736258653872644123675205420050033761459591752838262740034660478156174828221207820939342015706595694573212414484460533277623265778150256674645132775336508470531069855704541618657167373943623214227325370490319814160013098103438722165928527560475588133194173637824165861692914848583532490275756807090602596261725355211547055811405642698581896306251184496176195818538923999804026930199300308080617623646632899690098303503095699897142937683733047678159694808054536778801828846798732856837047991411218826329456076692084391323429187085606442428137014421746769455318306295913170164541522333116934288142897518674482952563585813879536270205722254598681203474240055281662676998490958670588136987182449054117242922630535814611847369477655312344059013443612274996796570627634679352340622779113288925222116449085470859206518586422933936272391642655372796549672504160200354163124018057231084732493180805039111690828295966856804394354511512044893793983329186801164034063134575477180171831970544523410669120133370842998152788994216603576549838611106866913045277687522541784957914377963809333610539229299837249941587863944861372327944822648814843724753538821107439754187824152551398550550533361756883626997977865398123367492591469310933574207304760439511552270823607763923604951899376085797950813923342680893704810811997669582966558154184498413963924920377687061197433754999794251253207338987943103546122486520516761146977242713706347230516729489025687356505588761570412024931199521968139207501097253326864551178799953567363342527181588306158431198536267729406325374382307107728411134224033879712966188122131878628348253449083219132045778288906190269141635708404055105612905510363516909434704622526339667328870381589041676744702005242052674723444983236929316723804715224118575627154355369727896365508014996594642359851854945527084941606162108939799891431108881951540520644822695589782290578718080059838955702432221593315840334721222987746757526707581177500371901352849309919005139857234678921505575234645102428659171926902243252648265231282204707361676906061548836510139724834682686985330465026175415714867154952197370692144378929864787646167451656729147131322659051921121688642328456259210956625185493697420787932467437201046122257879668854851210993532516040358490311783122948095907441827022334281651935733522269731329290752062527693918317745851080462064054007424822837282884774872735941954264259479772833783120381947789411786940839644725337658438670180323043362528373442809039201019397110902948156187762292697543606151336065378178098009186183003324789611254499251851611626746733610128176682657224462191021687461777703316063143966367240186974370002810811948118490044165150795656627297739409833905100607783275498116459447817862484710428439344715261786241406548642412347905771997754821172272029313112640993070199593595056362947501581709242614694022725411060941057702205678259770400845497685249268343102367719502895710973920364284448662906525870632791559461885974104418189585974107786903607938195563204709139624706465591028171357820083627191790129837209084834135435689275192519280110233234229228710419740309322072112570048955600103574781285308060854269015295102768186687717883132015650334343438087950638583892462222355986147112400409903618103085947667602356048347910374304607460429720082033241278312060854196449276968966600565502319383056088676625884959767659809254478613057230533604632460194093378840667830749380176511858539244131151770376936252586164916097844035991483653607213795503969714088701639932441480721225596864095300717924402776460447891411570874112958846792111140020299800919975162335358964219499207616103544918812614956650860657299625617811418906296063994345313428572485427976887690833405723810277338686916362842258305544505011825024963834664470722530743719099104190100448974387400805079888017483602888081293011558590981896456360731641400223487785868325236972538457331934993498268147386565162314127834618707817952370897947313626012149564376077106549491305389654847628804621057447231605477002289175710879575576433218322175488803664738073414636144115658917980027918455638718112563347152697526190843917383455822478296456275250950115992416541553845891902646565555910181530303263778948840719578793563089459972849898680883988814455886515215088445700630058666747516077813965807230833889669662427249934994640887877895155630619257181505952481652906872674764747214542217036358097259599893359862022038146600668384137036942181516811951067789243743990937624611680143319212818050591534395752666630461377280801108551561247507163643203851482341218842436664200199152832962387831662617342840614514564601309649602003152880315081712182929232604826968361909416455521174745439267370535705425639977370287863546776073732262576459105188744350503282910550457327083647948281488613901300387292005700175478704522821978478375863769246235204623190622018002912833553574937830324269010805195097422791280769620337155711891068854552900290311003088178813569019761694053674204920789133118756216277601280351127089456810032899407480212836352111898529126949226488972957602253126097705625373667030529768871491320613120469230445412296298833715564083293481349408796718057526511767547357414788396055323422345222200633258268217808191759789625090734730553834165163121733662928095325733714321373893360999435777096644307300316960504036701687533822660669478486313570868359784037967669378395506934390203931667786210362738537382828351327594393855386862318621283424749785793230309413693218531907442062859143375750466339181121567234929434636746884192815343136337279511979313257545975224098557154532903404329291392620004895765190518469458149034930278034615366710259344031621956108933874680830832572270733999758887710230547355632871191638543613108270204997499949494103881937005806145114431838220803740831174866491177458079821481941141680056533931374585561197296551370624846129954845603777135007964405217439013569785489437698105628300806464266394031152691679486965982501618255473086175403426473778679012737556521616254964866142023288673602534316730282672666929693075517091355361755478592344340253057724316592165759938226172753716462159644793949544764351550119495784068081256508787898916715170095392288406274801452786062448634948606408242210383170821856578878997377342473132864985527457055085021847125203398388015993409313807568629187340603214173967557585862741246846925365236687607934152625304409762524163987251942652369489287343058659959427042711631807458573452646332752869451363634249114601412588053022415939787310716059232286720806887753938103440590186672743485600182965183803669940204943523587455567533962174543943116004353088399820480964565467389596277670838549330115160637711208789782838589129481737181941382098699794070716150440481062217662122856186154780183945641225338138435758665362296985140880606823753697032931798164054420606981656065630919612957344441838378835157278344382617090980577078646034067477448691875769771607834059331223033193045698703478810410407870979445330523238264902873061552818760025475581243694642860345266344436214612317112612254673176010540974295352744875257287553555768230421818434698584308935697012121725418384927701947280187497095978167199938435918658618281999088986392123618729372682056975107544972496699287783328758640282270674893868272675820985775669598141443013287030233343356627389041991051016863877009782471100886788831929879033935318987051870974328040631400673679633830356624940138458787405172002947376549961615190149209690125938602753357073181431829247573959959413014149920984931498374344223188657792498433685135586291453240035884199325441479343105909105836503293129370440624720679553195791933946187983219791721202114426033216424847538415034683950350228450206618619288138213739181058643321431460082901361349728153619319192623423238360334285118616645537916548475915643256709014648959588031677762993499572021315012404923967240382631047807838151715744028174553433035712084274863049296985870432829099079976094819670380777260883703257297086061618496627291591068942265337314787500046364733320778482590861462110322919767381565873936043301523959459198604757081626632997395999152989600834697522545669989592540043258927976656379594128011712327608884865671125793457251190253206444019967974499268863925155739122584894292757108685644459297165002541046762988175918263167207733411539229597015221970846917214830553537333248115685151930859963667815705792828467726387984883336004045814405528464466091953390644337848155330509290925872609010846778637422232844653392771713773642076676285667393139615224808651549596448412809063382878584064862762750448300957011611777675976387138026493081951641591759549313144728038731120627213908454258056449453128807813128338756261485694012312273686268669612508907582684822381981887908303823827817530422509688740200808094933203511832126481318978536930044899440868257132175748122820503670172617115293479138302951527239494367545479641033255437667375556881157438622237444638560951736168186911979205120815303978324420563781299072270525113952028209761160330897343558546557713887448909504068051756135417894769209131381987433646601645253643234084158852934358786359553394902827092988946703625288709317614370321065707187612553905481895020393181226880733220655136323786663031022531780843871610187926727935356114794866790030002677981711319817930642714343813535545896488877368390008416982986036603335785719837261361466822856727920740724243429525442142281436766045567513326448033246147670894790894784341145963763587786614957260969031070127582572342483819527680688139020749052603160649396269544821234121293261328985700675202607784036725736849673079952781328097884405622196334450890995772895178259221922198899971966984306929835977152220823391716845147733430596315189523385438388048218299573048445785362904739444038066009753292191093579251803597374826103369094565795209328146953271825766552658633820985756048506441555769680837052511470875363252960745080541630587853884103723403008018373337759430468859216873916617281068676501975698953897636564694484349130964231232287938612274356491021202351077701572466607827291774188339543843113232674617031608089911788880778494265899697103536729157636028812116757129513273461310481508317066773287096782260149276267185237074943408383416311877995435069135429021720847811432451260811596731221785968251226308670269505909870117260501785098476728971234098922667432928844056688632585881758032373249290761236426979997015403272565340595957059772819891988030605332764383787004373234659895811625424987319181057324263048865421762378730968351758915615707014710498480553727046785934837375384933080345814250299625427539155745324633358880530910867769942388810134917178152419526554653858183696113245565997007347919160458814886785677319473766803864509380770286855308838544074939790035925108437976839683611135979657418874576426816777289744367533197568139156878497142496914209615988679652660742838852122481324167220876859337709838026409622021288621945671036287974741342377345573364572259135066276224426525338627785651507946611521833710591851612551987722035081727168850731152707557754007761176516624773799889492694946058363206721598073215867966344145609086540911234595897251608457492243529098568849077305303050177739351272766304006073618802374525962605456947840610654772560628057558418721579441161122815945176411009991249404893203189496203279508840406930106317233139779423495408784463104658162746038271130466580543739043591652482374108547052646588477394175922306676346396436843990885861593618758815230012027191758699385567915387992178114020321337356076072009180423330953265951848002718308678438225699067627778137603578989961390262037853465435595321547034084271812768640168294152945503631803507315801149338513959562930188274982793166795103537296004603592720619801730085761931911603684376479958309164220723876336795798188062521439173657088987115064993949516897982307915852173814665884072231787786100135342676958110586414042085056354055079015924330337106386474813860519848857358031519677605774182685773066944394479818933546701163804228415054000438423226020458298586942399751706924832332220808937797925919579247559104441789854108227603747547481495516714584629980516529400424437110256900521904800563064486978917822729580189744906513911439716925735123568037927887761731580619789285413615911597026263787450364331132040181317813998779270588457655950561166371637685715253130749215581916215708880137612634644838951345075439687652995664278066351134477380744264406178056368707975414920111624524229520506430949200706955125381741693200510867838947895534346282441275980484525639586082624357173965168579080533019895213614367474871680984668223878322329902140721755807183369991084041941313339831085883228913380546241023227262363820311066343622915356762468690926167738600602565249705506046438961703084847243248185974509719950010560193672329278016569416215071173205421862102900263473655677802273227839028864006260104975314431418147679878509944223704893119701922653192554759503848590575933450324477855386215097427967298543593996778001621141023170467064650655678968419520594845441595159335695151516199411295258652465488901857443940863261981054650820425531340597729135004651808504830758869894184926434264527527937775442998639473957848706496270454185258002398955773815438481110855489811636478283424262510694206754685202826257968576210535032592718654715911573725304970808071138785307700436607207745332051855184444315732264992651487675742315967024923353860683237398078077120556496220715468032910388391880938540132735053950101035605553662478096132482787951236208007112851251190810869286732635811534054123380721171641612898428806164513358614902228579852451713811489621671817758926865498523942555017186313407306484305294477015704895627899294680540434908519247463885232214419346077371577706111170006957487277208130269340738406100568864560472376809386302040686371423906987024919645534721857529282806896496065892400858412320133938413374406731029704336003037618631052269393851780505836712007622862630910587436988725271293216705620991108640467073704672972726305617721079640828531130291678047289131108102011733819916613019376630796913788835662902598953715250857560415878500879834959339508114514970491962993125986198388887077190594833038176406838533293224615021287405833520112171573341530392228969443556256358631424060894252853848110353729328648866228145410942905500142802223548296260224185688812518057218530839502201035289776102247953853038160383561383500051725536061482938961467861188641307576508268604856281603117238526009314540578621898080428745579944160800686195136661807432098129017458498042199166023083455388952128261934118677856738577622452532140960536406422271569291251993522850984797183848039024302686629799950842667023777754975111499091506320829682131880029031833197167954182791082241574456665694200461390484982974480806610264683000253176443323611998728630751712225397061845939052735414216459592074048493525625115289505271706187237304180191111736212494478232621885667185901812290890648518794494945552525950368827765577014978108682712889821467639378958528253092058459027412785468751401143381554088238228563996762203756647987959504251165731778168958809878483080671530120178898489305399698244619733177382150222378872003515815484527276208362125270589141297543879000552687136237433551532839890571539460326863361614044429582363099964504190397279146997474333469570292189455001233607959263455387894408288390226722371538279423400889873785505477911757374974472097210670321978158933335688994268209938984286991459746426253401569107284807188289489415294161540829018194758671904618420806457045859157871305610323837688086004291007464852543266546780721995496667575597169616326078315720136448502070900708123248795879844118495634508685936199910446257213725537068063656365037411764776907412398780940370406496425170650255561781117668790992320515151519311454491283616088780891450217421099751531503739604086366428204080595817347540590235463185993158914827336774253067336766845634777210609349844396324511571428992222969721045863270603375863531716600884151436115098821532169048745645956531741191942596179839147925302965574297386002435058260183758145778071355266869098421801487588190997870632788414559469317727023353097926352275942976924245144306912691918735228146661222510594462847071553836937979626169205860861502688504536348313532949473628797708459568827271131119645414000862479728496644626751410643243308252195800653293405172875220323727814370979664592877261862043106354676716116547598360322749713465718590620599248671091422159594759329670278098447392206018654219573641347401884770596357377034432946050233603988644193511244057746803924036144030874375626149572988151587738985311760313708678037969790755958766092634749864365090815072899832867550692396926113749856997885633166129277259813835988125151872355981242080629852724815685867902009098612915183964919066221129435463738336215739723566945281896103483806021951204119825903205030851825013501433262175699579727689432243403545464396295965114337722042181584231946257891744797052370523295377106659765083187618221347552615142260119223522102745143490434890841556246371299756765166257833461208886483750082133580846136103096801704506839836920384074427556619216270839751881653295749000285761046089287670559746554576486390853155551695802859977919889745199254006820414063203680675766111820047932413638874890412741592763056218914476779053150244567522627669961158800183249489646025153387244385313320583240207783497148946196493038288442106412592385764594264450658084680782050561261713903055602304369361346509279219934279131417041573116931935542978251275405791621317261318836844357730209880815344922036851843413793041870373152764115897365109394928910548576849873220049507710997510891448908679737111428392276884191665878318224343187231797781299986129054871234852844360314277257020849260306759608730322009478601448665464843537167985776218031447970154234747661566441725801837217806640951769737280578237272910702697909970937646057079822573477935476415251067224743873229643623370811248895740045155255774059417066636959146737460797824411371883792244492285294395482357784219997129788771377620131384575130573813373125516865301116175989682262332242961418143451861342476982079040265758831902426568084695919337365841946457024203147887560467821424464589979174673769263151455546942738289228219818889390500774362984637137531897548856523954518089215262410140460793816762547605140155877603172704535981724669928928831919711259373621942351612548264089717475383424247680461298780335418432112176016059812667141170240733018245231469611690308267429986271174286401034012555147877601925963351361768204599121467770477511299878154720009185970011192656375911750003640972726263294756695604531446991482934968089309081201076757218772152806158698968108809618862947411956457827050012891151347877909338462784694842556731509548600689740071553501020397104698791259465028452352977895300862840196655636049087733070930824618179400126842985182784458838612475926596583855227626265467889123797422950901065063584485547236735807105535789012152738794680463519810942807926637330059396654029077763603352328187655697309733665118624241558322762215390465449122352592669931052764638841223111925987292242974726758793615972454977489813781152904478587184667360926565523860074376201026377271321764307422842071301530268129451654568887705871400044256463512520186369203340968332507188930413514006731449186641114259848843167075632139509411119357912560192868874689485808431635315489299646339850709068987663588425046650008962815361655240249669014380665631813430277356116576281685189441550857093260807092235486657147643023157709721049341851468976851390514164933302602488488406181392364346335004010678598161679579088582919800769665873440813091686331410522117767499874769532332661860206620455010849128125580048290493060923232298700965976192866865526102361335453557714910098879369266403121626481808429284268641726040503667227704716397848907144245304591323571191888730076145306727020850228885194363561223092470871860606236171951404189627326925422239456113096321933780885350855213448558143084664556732547403883129966161024549870802540048392085589294392190210262939187550829013971104879132470433448919764471634853350041965369293393279179545668242329675122894031409165650037267628115724555821935572716548318723805254933260148366720160183040409089275903216835719968039024393053020260218077439821363898808430230464308659350389192863720475284591518073518084990088404854590117905257012229724341754393271443436881406166987003955340367889971080269702051324503684675102799036781392331925807600932423465040803027889595723618859671496732949086518177550280100553616331225601190410507082004748402769355383219222450517229469801305028436447913000682611389592024939366559174346529963564248317259990198077984630876912695002106005324004892065935034165791369156159235258460983036957603533954504047333884485531123306238402661557575517007457371731617307966443017819162859838499269352486490267549307580619919323353124835664279497664573178103376550250948340888774292141725850499715233760131607075801879355707949092068177354633624887894365398724398253479352464615567925632626021457947048883058992230432516969234895118414965903642508283220382045006814314197536246832356156731109610820200074949874824948208891840243849763492875712609881360851469713966017509867471847938213787417046807881412724511936959484880705978868097911235890418911607715010891709462878192080701591857052861585814862848090344089529458139973149800390051136246340001378525052393784005172852285785909093989292142061544841952520690589558208015568235988611180254908120955510320835800225711881415533458227864976777552690780205055765037925410002383567283310590672620750484465893753365399230119738234739578237222718259567897068371222806478916524349885959472341722121973798014199404274490954641673428986847011682504465835845641103896414400300685420740959327315988155790968999256885524358574173903033898981598851240448003853112355730359699034042424306918099138482236170557201996761542313279210620322277630344200306406286247393784553165951892953162049164325696568519640410975151062862290390590062133882789775361934841053010257689325451492534670004268744507949650552258190325841377967446083073507220328819710284945260646526450743445567288668285905605755066386445022518933776470707738873618401635931738279309498006725578858675739201149532564764482971104045485455724273387616226059767209686870945916910653956804224987221016258471852660596635941337500620728497389976592864382601006726441725322265380250136488960757702878625047126262305785465779889867086407034133670826356416315026017269629772910414368482156186346559386163293694460760697553343952045175370371235066402830282569322081642083685380355430364698536616762414710487471203914375120957379807074856988217111671804007599137455048047319636453492841878812743604887161936640763960766605172136387305303335328047158108203237884354772262322947749480313653134958932058432142038505420761694316943823325176071430023508466923654250214792809182826491534490829035328983736524761413816048883346030368796304841481987664913138674195867513827006179972196724026681376134807425255523932076855913564219876476813483004026826406815317377684946532328398538297137489806423150418193855664115356217181928339521618697183502061872943218999594095026534323907799596190103306368848692619275275746091967788443802015561896584699453842257200328519681764761693917856763286521518819061151298234560409749019590672239952525020528294940287322235906394497393525066466452082015408404770429086365806625121915825472751291853848496535379618424119929728137308253270540511632170830746806075320028445403086987880030221207250708563897644663183176671425305064501428396448155333889482323087199369353420029660853056255611241377156074742506238327730771644506547330598116197553493100442799279034674602032035605976031541648082493722895696012789321854136944252249111005414657253790581385412652211590846179612769262377749007865432509865103917695141992313389376966998012636466967638178875968345824073251249269083801979335392097507857912181106769236814082141665928649673985173430512293903807385693297087736074507310289404564375967935494938077565571102829848062928152201241306287333661703396862836820587509082079731351069861976364924491131952057454623095965322980251792634652334299942333392894234870919872175188405721828095450386077817407420382186662209976934097441241006746403085212067251811069659794964943868483378724174758916956846410879339401871570325321532814147153197826846271539476891173195872791057484745622545902903272424329235124651459696336749191547760836908534867541513666622993043812059617892888486823187334894148199850823968134062776952895091889299766108428575019598553936190547580296070304452660119753468026594297928024220840296212426766052145948583655798988785191637921021467822579974911497638155337207647646672048521946224389084835274423003964475992933177358146701929819941603803292448978483821371568048913786428499011270352791509573416766684585539021541373205794891432018466926706944014587145566926177588707317487788781294969991165618277324972437707187456388321332840675002202626555469356634520021876346452097355949237855430085447737423223952976101753823554646900049981001799248956026687030940157175945571682094761521964090498684174554048147005378229806561073035791169577743433798099385058565288655692905337412973995595939983349280053279777569167229725579472789187774946034856806504249782074274117704484259933276693413566370083403922429507166005240066136760525207307634975941399133474068210183374630645431610430366672405518047363441075447483243681990230337053966712489809049900537438922864118913471006004026963235344058601896029467767338673288440043245036067028881690960356916100352022705762705010395424458794455939915634290743887751520289795597980028950071890188640070338501309333574766624254140405573619105048248186254480987156355261092136284828682033811966560436817681540535004240851990474984049975430537464187258690181736767960146455039319637478750831951785514214450879591150203881709354719672714749806913257756041469031223516105262250643716085852058967614238141123309905230302594486371801186039793654340772246036728811021753978536114287938475367513551813382013486551268768136838354925543880405230588042257006699492624251782030375438230797623598323176575231278475493758137448033183948642095018973276284775874565834770328318123918350278298146328990325171423011491814298371285163888743232801493185034445608002690294346698254235167263158014890792795154855952169316975384584848701704761125846192506077598034642672687049059926617411470879782750691938904644789483086621787918954426271389956902402409115960862869808583421528478987086193563069125974966589007918513447622694020754861136018815918653704671397923583174747428810768796438205501572069402755047895916904915192271194480462088835835916066883131433691287794454704738037340744876717546915964448477136529055252967985299438372222424873103180759359147870063247408359308566762088543584508002471071960711302918857650889861502438870779626470916740460766682689945152223560837970254892823166928298283321413421887884286596066664906070677669189718991390777295295016244497034497952460981547718074763959053804452146277452344785124173669893947627557465640133032361950459721299471924652218823975541787603228953735838337189007771618639383489201019875235278585660578811703489008025868955498169803516858489586709538049339158757596996763573530997427467496446085524129540175326995120949616049574616165055361524951146088259311589986690909380539405870811403490070473425276977757818474408830922442950242281920244698071291908830180009094816657193550571907599619377287504338698805779192693927530228034324691978293034957724800616597875814971142513268376787105945593024708654523121808365128080620408534387743671668763931965307776711789728184741605224401463318569859655583568879778250150964812771669357330811187390386567771272529598732306731258988186135212696591301986477103674197691445303711972894478024892285340621539281905921538674883419815378302137451894741371189387550430150065295255732487886436275548543092768118554136996865361015754353057388376737405540150338972483594864921768304795263011671530411513481907135847126927978780107764443448751384155944052414751971728565596864695086495268032995689126802057337899805219633990624293841856922231689469871673711790365553827516602564070874673064986984993184695390598527038083097630655422832775781342802403075739445849507086659296490900758196660928253442231338828385034302934221953447376062379473788662479304650734127476019926414077500106268424505731666616299653060718292325695735282349810051721052746866062479526400958323893961835329038095329989087256849444492791630267095951197465064265442912952262302254313664782456255010829266132024024601026898191563809679770364141357990430845830649755924957773905688413625246145249698300198817646469411655107165984794295886508046752751128549049533428337025971015242999027355550162842725850660531541294899783266317290434803388778302137917036326539654603532106725554678304963859067264848749796265485355194147589918288862162963154356466494865758139596525539569265310453491336923812663537444977212212213511385619225069541750103857416926639429929410132392353537806542351028192609323697417503707529603503481914555178398633986346457387506533562142809982057265563260461259065179351346025574983575002817273032731767099979147331035410857790496765767808224746499236620873436481977826055085875523241907085020234788695391596756202312919017918255548905068061860105036742083544371723753149886678765578915155172778157269592676839765846744239844910556362569411470241806841130170920154368941583139274761064002958461732070989036988665558276553893285636461666131435786736574197174721044970091218596357932141547805265490641347212572713836693577401415115561814985718833972108347133876239495253989057406955561038071936565835817112862394117116124433869398810013503005836354577267947882876622933485742503572062673718066795456476332320639778332257020122571972261950713429716157033898248240723688034966684552620549861971378994734336625484464613874930486299834183843596513787590830487014434966366046324625125294745353532822703175558775573742649838192331819858733861757968954358331224632821477326920972209547786594022969043807874816399486722813538499296893828768302543169429825730896605623384483736249352838327893572944799532954453035703903343337236291406030663449918040025206851576235867589778847889447540005394957989997582234925228260423340752106843587644002301820284027464531447339332536728539325843243731300932634968111316121358428223161216471681662690087050361804344839977930152915207815483683366728711959606092947648678380894964361127868635298294977018426574431713256602876770747871342820770639605281968405222392169559337803445576654591006068153981294485420333120364335871238285741867029329444061685814392579286060957780979723924036922243028063009569543282372137582990013306894827886863968378905451406664123422168498551785381689974434604467106393669875971905278233072358401231047639093620779766841447316994686607298697149614573301390466105064550235813911134426893961936720198536942990991102715550717843834393778588085312765163980162475453282993094744577646104300424823258740579381367594359511024112366360870670891277782335088502610982411375547345731192395535755871336092548848106867887475066727219763469078731732567700493756053450358297086216232311142585799249032067708318206925886420552748344276469677616645288758195005388041239005893873509006745569521428333631636627471022744210805194127801378387227133466863937341639462789170931622106480562431933256368269030420381119004786474184731184331008788035934309722729201864717436411377600396619423551682003761509202667609244183904820340723914821819184496164871843216830201923350110054485890912575949805664152197662474934191495342991656526463637109827825087651860092329300800804924724791634543584077765062942699928448532702213136081410557856792487666227921255105289186370423496385158809100432758431397865354313698727936206639961528845925827766544266630895850667908675318583024260104243771954040744944524308622279101512050485390974354198550279435273993378169322784719645373668408455166941780234291728345076691083038611191529473743927774106638583574699600506913540676121260871634721894114583480251932277363531664352490669720818539976949240573643546515190603271133935065697185095083953477948464141052473269503651918600782179325600427178696620086736826750628874595840976813496614704777250061747368558208768323228014213929518113283906917896957143312378006077171325425636046473508705728972553342972370186280403571559737155493306405207393275647303124957980003638346800010057027459747559869922388062252527325963391741706901720418904944047974183251751426070528111679798599705871496268870555833902190591124501377330092394145430957276428130626762590762745068142131087807516082967431080388309947594702166381207600808023084675872438578148423864683977954138204251227916108650825081028626811668749941932751208788684602947950589633357193604239481448386081331585542302009870734245917811887769907315741515714517183997175378733902373858989071463860739659033103697654064387127659804259429923052323167607620595702819783661515634785851801124149951746207965968614384461945204065478305354523657389472113339300555313987113176769395953173523599947491575595454560991490608541088974293304724023456211145726743816039100696301100199328642589545514621144537724539375056749707975278317131864321926222174073071750070622243238262829263745673158532242774365135458934767794409115017072160147136544955119397005715471631327172868486696825620866734204204948886724499753667456343074462369495748527896837839617519059430692444704083795246597688570156310708500283264415434147462052831572508607993536047426663400856935119725745256035338874926949352806018703994370190509143599722845820600101347127709153662906242630460511199087975151275814941809386288100349550653890536017039150128050547315534446270342604903384340997424517859978200227992420529708317952681330383228402626256109476287791074929136862343270717268596581600553832791582529028851472666307362454374606961793276923146222212057421115320059940023277791752200194536575105685132386916023893463491337354559100694266922052358804816357638832141662701337875513087007682448347373111514817745810629837827876488605984042721218292767165905426602316430200804917958544798889272245410973739907058735240727132198128195543740859570855690892865702007597932463837021768219077740621856480561681399288424145060364905169298486781710131693441624002883920197366401626620504536639783512878346859619171763494793260995226276116226186682396933230136948539094300260783978407308001392959122845433525617002018749999508950051053836020142394764213822019799388037239358066647397534389745652922783854504854800356013178511902261498351321065311889991118480778492452305413126864512880015806297150220047569043142764870837219560224995895365338049933122089607504426607362006024414971872030136394848226446616667220437958928386511129859970474454800201236786343644871506176612110323801994862520374291808042081757430843292435499280397306517525925521791007632883036157905021489172979482586976648896951366822245774975610778055869191528625903692846714882264599806517221478853393235043687599117400388116800946536224612678084055022951603242031108285267924825431397919289591360143353775417444865297723063930112578831841923382045799040592053247696446766907461458506415653967076938283897492384502682632399243185908445253788866750015162665336523695197732653082120103690144955851432516411541175677584844084216283719201770130347511999019729863603251320535875735296616016841920060478398214786176445972536749497501528155110295446521808220184170650822123679267361190697200496610806357656627753727366576684807067212023765351332246053031618998513599905306097155473414945347118889843028836782792366409696273853902591867887871150141260564418105303782086015152188712185410796020888344447882377088525623205647249797494165310540411066141696761666491818994433550316026162769696948714795326988480070885264745872871416568479828998797980106615966017631270391604250795826680679235791726156819383874373935874199137359570060165343014490387245212234171942862410151452835159608203252629242496537854828939803287723745872055362325339600987521047757856377104840164893331461467055423942266201015522434512459060726415021541643877506076946993841671126980656695243586339097396632011597310368479821155821081360135205893182307373324334254268384559954445994328783563720457984473780965479555977904894415848829713863189020575620302519657233465989424804395023712600498052002714968213050975367735619186681372443655161880679376687682987353020041976321553188591268672392360518043468956156190066308559280013875596324785346777997306333099393914658069618537050240930408904293016254022562439607348496779621364341739159804512146606515108404197184585651288767700579543085602475095701922836477154330179618250633742209931941599267060912282143791443472075010674674514707170376877528635999892798968840856275820935685237458636833196882609755700430542793835457055509662412610566959037562477333825744496347321518024374985476246594614825717833949164542931497216456131381086168288954300786290378233263561209246645139944947783251680505618756269681080036322958129492279900523605092316585237376072799019684906931002761024081605489573666901768613434434581933270661266335683942683276029306435336872782921330552402575162635873615982839573331405241879259235171180120109713909805922284928105648523990890750200930604198664106036722712232209370091266006334401715884013881441530645882257785745760908970806904984515134020198876280408646059193651857730651052366670828438856467629596454637227531727618335855901772939527405619862556742599481747752870066216325982339752025189833079166733865994095637161215788072271827963241617250843599153691666115982253357659332990399308426188189332487016051335014065110802469728577267791224514129045223174743496576884455815366896323906223392207669995903755554319669042197009247239082099118805623745444504164699822194317594969652001074378319539333950221127523727259906818413485219407197679340593115193623979260411360877204570147184688656991139559864548389534159444213278091073521831802795370582006972820573914737551364071587084834540478966365314740758751440999677538834796247817980354289783125272694284147986361314777129507149793241592940467121647109221472427481179249784335298429935010409503244540551073744683805567541981597406436755983922219378790569833361224718891044974659513500127539812374489279583402192102500431779647685425255178066122439538347336543539985478820999393415219842620347175845430079647887217512349650162113159882884363311371373538270352531156344909865836746438555004896041757029351942718285544723665507030429285564470762909298334542971353070876199825089992186638581949518001117979856721614098431137300955767766291353471355929542305605663145656029337910873687633950692755074632405801486839403778976897271844323147961991612874565340441623249023310278573736214599736051651133806723721323349453378424839289749357485536085685220869179075582797459793112282808020479193140981345603774549954900660378431839463433443314628239170389654838242590076512144425671947389107651005284263774958062009052601522311720274129180796388954626800917535761051498233666264380106392689845276584067596410336313685557329085240428660403309829092231037764269652660842322883185555168253465486371002219360214744261108981289406655440096340471954190479596437812910791342217143727609322525710177030412870937294541856958251963120946839883566656858505131593091559203377909719271383776920639775420846573725851753377925950967045857943892271306543491046254115195179157665279369952928849919759919849458840936871044320776069639956499701978129264128806367001272291615550540527692848335522271614156055601368262983118648861795363058646676923514433802772272216968920656587299646004587142699665425301532158680246287832833621477969465146209672619216756232042100762362829600110027913938860841675710603717547685630185397678239302153820753275493603757277609404792649157593243913644951215854433250072461407057243479093047733206646412280224138692403596448980670160252987163606448910461965023516103308758107276974281654637210483805475319862136615405301409628334433777001789445750150663950998761003967282499787269754612100506913813387862753665794194801697902834820840441460448662484641843516213984458077783722530168556167096283434072946328343173508388133912299097708118487092479010352432700948459943951907960500718393268447742101804352857648109421380853006196618467799424703113888495920141623623653182868172552608626095183254987261942053088166415776464688507541423288945222842928534833481757780976991175007003325392857656792881090824492849504797721132722516123431453387815819904676271194985284202045464717161706429332314434438844602669735318047684406161533782500980249345097776920495220476816529344566844399932868052396747183366459151453544224349376045408378494242736079057239238359251707784469512405488476562404009386398176806323958712452876752995486094114638682158601869760111860570270077288177105219606373292338091548368793904058490577426286445498311793775276469427654836417943475756966962120168557910469384843064553824257757939566522242519563943900720908216140815638318723994805396977778937085233204853988035359071708345443697496060283843881426553426720066800932190961310905462329737424990849715754365258963076944599976794481429782022705856792693616513118044856529332301115149338214296091781622607957916046008195774371753483330975945605431348796896757151586352048257813889853028284014650074815608396831997339968186634683989387839540365400786582431260407583291454501896023349735821094653228405987816508076325972627798311950513055327109290325254470705169755908248030235798577384256612304461474986403680848256825066072776482457411285752295730952850768450697485788525945444955153973001817342498138097851386114949626263899956118110872210033949619524601486168416972453647439605411176205276923717047007515248194409467308173172542454415075341205964479761439105534371874582764933107518169836386439386363870753978838983519990905392968484191391008105015330324292303256070486987786534924209235109133169499835746057677768433169032230882451124510856275086208592097311385920515550207804934425905144901700037227154081533213086383132740746765300955633065765066184066221306465576211770238247546948711897700187969542300932996706597798329236234606933237305414382467979936378122585911450262023475463533660089033727635863461754560908995045511117905933971710460659623168015108737134698264120851519620482675095938135699701456586711247992768892329895495101467475585777812097024029553822901220010901290054878070515892921558040996981367843663926004560104342093986871470884372571136078391679670059295647068858718120039214512322180015721863129120446213868559383351129748733478951556919309300418610205084971374481622442132314720599342257336913335259217272336283788725856109388792580758525308486896256444808122022515573139137778767982691945646080816487721673961833360304284211311285716931605925208021579261663532166753941974889210251370188053791527464015498869848713187606782591126390025688781103210614236802542661240795887953311659972716904709247448075640328036841923157002575393640066540866429188564561966272700027421548319561964386131345916471345310076989901062621641395598701028437518822638953170282852914767367666677836648686543840922057401284941270832234213120696213016941813408115242613490390965516357868656246532262071922633857925195302770678362028498830219602995961172270742025842807017782487060911830305809381795239694196530967701940716421894902011960375354661778218334971347115759012419329580216774137411368020826249122626149688876262013225160133799312969791951715805813824298025697611190368284968608832260049285973747005726956370379269410672875939773604895587373375024286495581161238936238006835340592218240262017065597436002102266338929488316201232486615644941130773637048662374852846751177541136115772538837407216051602933485990861693824862243274071622600594109308323449713247049145838729503228778676557039368311170703664827470578925208290731127886758392344405817495394537021172935630286055685067093659893536758044797154690220864621298754777616085709690388149540767889271328815309750637185110156161983997545023629605723414583581229307075567249697892107374691234229054850827012640331202901068107034924726185087063581258818944989662544810632135341833354355786186363465228150462856489802823426586522062815737448644908335002421179558683410519854289917252212368485649233366191487730426038127021851335107419117906964479077214115422781441372105610372671852877866199469906463138279430870022535438641145935666573285020428361178695275573243487597265409590915695403098987802561995503148732056463749130803370543851333836873179805075677408133844670912970620919489185910766701391121056051402894370812294452750014986673528334676524889994979223583166795746999123592709631856111691483778648569564284350235431605924512971285397519382694883191680783521808359632041002742295452788429081126069731191225702113247391778911471946161954142615700785027124557657947913455529142931193980071944473005748902154260571463388496894912387366346572854862968713545130213898301421006457941513622194822537750711101915933622384689464265384496035286810733084254622439791903708370691654096850216796645192587897374020617995500352185173257474399129046541365989346492199827718834892032257264212218644128456202324763101278956675631061012359675075320119474154179418653672393649028032411936199566788878631229029811727662722977561221445772484431995168592407150393362373816048719193761175806069708864814380463150197420238874615052145842466124652887487534446304291122646931696087564578874303667903796724989958752228657633695083085756111083210042475059364442318690561755054381626451911303597288742901779739268474061356949012184296514825089028584532715146988735779587093706745693822980052494394533196408343343822973244682367746938521690222633016458891583873639756595164560661001958741867651831742081171938543994857240400602310262701456307954714059320852898579576023353790879539418102222010931127201261750921633426706201210902533010394012298504948757959699434974894643286657552595904764418744851566818035160636849945339656034842789963580843503686822858621389700578988554514036698428263521283347105669966704452809921474459848740624464200428996914587922539210986631507456985605529465050445144715532798897398853175729996267789213005925732506508659815858491056732945920065915601999366288381325127494217378831218494063826510734747386455368541304844846654931774037743671269564808576738249728886584912098385315092539603558987146163778452092710401794837069145143044129009220710261066341672922089644064355673114083352596076443178048995140947735352214873873781530588851899601452598137128092408824437353122473874903867347977526910636271744608920047772779972288151789592047272265036401412446532230811989957824741707814619574465930514533971248828162612929305627515157449353049331547036526154730499592563810590521005943391603763044664379315881582117092780198320539889232111175813048648191563364671142247840788276192037015125598299299532933007943768692414220320202030711206564503405862861230475082967221783618521904735053753515209400464429235908049681664025541450586555011095448142472751756835721844555823361800928064016281769119460019520028685375320961700089889143263058774461900046176753502746809878456044763276871660395583329823437588279393715660414534001244734120262540419118670090021094150044610302256892898520138143353218206126993676928248919575862199123624160795390551320067079663382642734598845823171976047013897798380666349504420945294865318686101406959211618167951457639252124452155984172761699078207046875499980683739693880236160566100562144295643899161479351560081767743231074400924882779207912333571251543959765214976591216139091321245838030458534880544144890025824150023277911428403767942045022558186018124403352027279243353103832280102160844086435111617843508419096186655479667991157284178997629802855487449856364093774915155449424349123764254549416940612545938105574881973743767783783857174890143540369251521588146211473176484275841156193464402736222664396185140467798052924308794292528315196428432587797029614878145657559168337450565354330372269807111319877422690433182508155257654471713555929915957591658376050702460381560403360125260631383170700098465386461890830227708207034206242467714974482982097384961896637660469504032593271684572172950239284089356466125292421024415312895858956471218906943052234673958641720600668655758823313974087130026106937050363642872176401898364041934227425398417500755527660621456573520995513810679014618820540821445046568878306053167342844889210042448709011447742436646104576806739811630213341182956336837573699645111055527924118485822324664242022421296831790238106490281388099170519892962099440441076125183418350772789882904441223471605702415145302006089750405039336881578243068497613277526053985305243200976023749810278974981007458147864520248531578760290089492972760891942645670542422967991450893524797963321764640282685029268385472585644354291270730515722955681951496996023996596078817247637395262401999170644930151632904713569093296909455682298620121781442016625915596843738861382777907300999056809335424432777083659051163753181614292609954430288392800291848439215468157346631135242486707063889737457171476430149682820443387255720477438150344582584526957757610003519201701121448109747871058567236193619505526080863346755630722416375563124403466394610556258120469227768267241937061059762062672597388119445494482606471600084216856679330910689971196171322794803632156858812798676050384283195496557150507514330404857772959219515339413796926149856247546127267952930073381996887959808083647759401694921317348216516624963924633355216758073650984550592880526756097123680273642490829322525135334580585960729425929032175397618830116374344968676444316979039666447677217098818060620336830832216418257805866921909503658462424704390088221366725356537962450895300267085198489304516307143349859809083537646377516979617167057215050884631301471046393013688251360968637059214730354734993618453082458808317937087775536146143523560205629970984260490099422973578052393311153473076778619214615212757736170682087922115686405768147179367555497408823114601428322593974455346642182764250161868829734191513241127211967837276396867114075007190638124442929249549250305937718172752500297293978245986327481725565586817318184553248360546121693805005167113331639014552852183228241527650798893160910737112437657652893956928439641322272788617065906493019651532187672492520183317877567016690120059338812321330581242258211702769403690465744504737310120942704375975260456403109952884822262841945977590610914051628686298920409185877171516068672473244337127001114485517776665920594432729900043664258842726156273274311160910509615288178945732731349150572847414079080223744109384738873006253098306109615422715199437412383602460762607240681587639414388851631476614736090730654395581915210474744858973032104138502823864050703400454645478416055553677195926629389137302541987927277569554890577052281741882533285612259874557065042315276130015334702011330853188220258244850608328874153844907265059411699892803316908900166168753385443925289180698933320584852566434032524561509699380494155038291591319549484695591470660258908375610019982065332715219106579298560512490374108005701534964289451937824408966275926503670786904279860607911629886444032231125137915937017824258788381976684834660620735845813143387352103492678225106627403159880544763085311695331194311997848090427273317888195557684819877446638450969945715892404337477404557224571222308604159804128960993796878102004733120973444011501616707843218008253184094929501370035484454185724477040018464854402634584037141996569158817323571694240980905196007555760277159874570556218799705677163839623361254343603356642625165876589751320201122420617197527806897650214278827265710305303129553517483103119298463816281876181092673261895551978878497844029576415068760825432346887606641213288699726435434470819676435055504577731071972273734207858873335309597850409510274918326071336238879000425985868779983997483522646987594264517266791952067358622935420328024370251443704180116794307768276718857306652379179714499231454221371715123442942580020350017248687238039474236014723396150801749329425489653188150437445278000358717950925744845209058300901373900275193550911032815345124845289293785692799487754141592766681668250151271258025269583020151982859913462869677359173813511092410849306675068293351082502544973179983613183055278241549771743222983087591410911410846241835821970197982606353957577529309166400708460411385094804041220086863583762537215215510988171222116910621291847814953422003136137299144482324628364187504903194533083350883856232038051020495223851155059812580719123297101284646695464757294888970969039991727537549839760994192283814216638261009253055727960382511920531618657012365118184143159315432799285552773271319316963433189365909375471820538557065301307043299063039567084008458997683423993668745125959895666603120688537284576930280080549558084157544238422731053912462055714307758980819915521607746238168330963519881151270884290977381894587791527930024748432315245586442527388741802470867708507630898495192536844829691879645858988782529221493680038709165826333703784334931113916973678612462601020862764057547490628562350321321830115192874896832157904997515219045418748717551200201167121769085676880950516660659370136784826181570686733308382364390128639449246533364147931775117761239018714761280069045608749097721197847661927272927362529950825018307578126741239256865772880750815339930052337007413874700542665371805116690805269908171098528933479585339806938156630787359110519537670225449813805775719266703228499537032737437880853320543869091210893696710490035975446637191691154028082402215368245989729913555470633710868575035432685061159297158082408209172016881905798056883927163016653618099578076921587409458003742136220773934393630112073696322836394884730083521481586571730355680692931529461836422321028997394378716143253969673305453459710004430018874109075257794759133533265344456096467984740163394281900245062936710733339018523512402480618215558680880221960487683605357059074035702706827450359312543717461777399155355910162280303429885515121891147647354311489640146311463673347933776857779518095794304052489268155873246552780576717568320998874841318642923847732452515193867564033797361336562660676853351149484742008468741230416893133382417757426295852384704223618858326438794442925806954424086701944715974530930324898268248989012212772583178706270888416897120634973772901648787169868753917938156520874875092658908429477671739354610187524600090277107546337944857435860899450985198106763885607081679853112935749442466846473912811677274863826057468440255207001383825568134375656632542803097990791388384142521309128319793760658328348916588447899618116323891570473042939497001876680496916039700183269173042212130167286769060663025807490320372502735035519218057391008888476339111396106136278253463672497384166050362494845194481249637946644477312650643707707739734963810764217416532388731514391053361921243798854752178516701459474982660411227853632267341686601791710094525753935121900596556078197983248952891836144425101723223130995449859485353727960688141388950178525734158334335633221588929976760405428747310879342129527867066531674667087620891673705337544529899519836359606760635145949168669109430640159307305855977344814846282122048915257648520048428911099032356406376841512104930697324628111519766283254261393468904455691488213005753885459862203647150973351337627255858392197487220887289649460930740485115159016239049082165426693670868200424340524333600467642625308446014040620018754209910397189467106186610312420493538489620880873506691339318803023380439926645196426243919436602053225123864136434178767218256908490891946041165439114655947494133311374427931428625328646072543781013039670307900936063964023950630320085774982441342576940243667750908229850947482391590035901750017546608308863833899143563712866461734212111205869530127203546030864125371237614504411709217160442810301840053141445375571538200019680482005060217729587600352223444443260167666803687149639420366392461560240017036616901145638268705609347263787458488542568831691317167035266426442350200810077880790671477613607380413040692604318945021699395391065725733310121887174487910585817157774694261433529873720414978938959686259625861243769214318794805552929877434175317448896742527252709784191517561579186592818473146475587389478659209248606501658517930146458934848104885781226961337825608398061323497606725051056182338020059766874363553755121572108672663351828328015652151120629683416336627284507912911084016772469221496735801020478249886780160666418644483742122932029603518933944533677058188596174176971113455143436015827693841569310851753160006151906418423520462924152296834647508079985190102803942727779737388978498001765043514599989940258539688123318573250565645211359669767177989495355784504789016648437230717972657571582138831021939546853827241030537606031125185580928084413519783869789167863392940199215120289355943610120019906899825419315563989621336297424896438352714352988284965846901762037052173901310615700918058888956942189590184159356167102762915512806883972851508420707348586831714228957467641202549405726307644572778392465847174801076180524893831760736906296617463432565369220673265135369714561069707234971778649047399772897171287395078460735141848188685098771666317242735834250097255084691140976098979224497900236122960722222593700891085080982788391719401600274934377751300484120336328808639670753852323230031435912792505338888160401853149191790996973111292647837312339844781594456224743986427255767371776496584962484840177280259646765734026653323122077216392486744569556228321026036356329550481203633034857563680962214691964969501439024696646138138879416347022570650664299227936386796997399264684209242417143896376065738373333399638040989520210036097173120506472356952442066344413305568740097738310055784885527227778031305404852648595493599639514533186286212726721432527605152772049962095547000636038839903819261072640596630563920342869595242506549426448397330056287147131234218087743623590296529079896601109715835072161515778306866966665730223406280531989201968463502893213345696007204675536573574656139660063088778201129026894323254643161975228986190058548686687441999445265033986348986644148607334265958719892404136623461344934038240969835677903164811494910672357144748202884479111841873406430727264028059433466227942117235953031437677059424651710052376631218321956470852959366807705203984534990085211380792425090397863557176238517337022475728102261544119951677041197474535959681291615746245499818433951713179819564988587629226449043615806720487725324722851278148239919285281445655001319188258151427834421733221611240298967199501077885786932686161696161114101396919128410872152365053360153853274407051536169002512726673428557324742502395761255644523841283240663411638914043850147286622615731165048644593900842077417926457874909462663834227985606743871904885057611810229264411593388060978081513702070784135201872595322310927800375004955832418067265505357713041106822908659256005895991044737518145217843066025645673439995884245725386819814901535536058033658518272331120242443901531006284695386096792028278115976531134899491188061477358996660415540207625900533537478511958838346903267053764528787222329358020036007909580681321201016235893006993289965171728734547868286854049790662426920916358437533962659369026431023375411157769154094199509014532324886940603535766698389113578419403427699978846212941610369230402050323556074392919272444895466346418658193267560948869671664827547412602981884326218933877510910099096154425077165769668831948811121202262234213020107391064370152349554272832088209407218188860516471908075334588223254589375742529759695921397238380669174919112679945935950174459219832058312815433471661151384404147665341901398955373221416162315155248241167363217518634413803740661375071636873301587636379145461410355707107915801745229528539714331410564165506965514794962030294392517693312387356204904696391158273332660922251135792554757827803168437436212529762267652316812894413225959524398146404080241451888880783876137579763994882733144340571992452860437529811181796545514001617263933778834053743287764655798121767959459078651940379062971427194857629584952369009583496126987182339349510843992554044015901622610339246903289148981267749046204718721543729717259240423462950130757662719376730919192462593986852582955394700182935519291438644925122370728537832578477340985631856933881472456469268008958824024309900520614365351080713708386455946904556452006569830424933463324541835874530775562984673236359983371739813094155353241453420036905568541723516602274552135100475428878930398148423570157880803525460063934754671694071561258042084186266904780427486949390369182584100636309686736577136466221821342685457720265098184086424906815117154428685330039116215237754967184420840141722186176366274131374460001724176873197490979139888292182862823681161106938458561185910081082362497161543993195876719784373626501110799359276088896326059668936637627812031926440923170198844265082516595460067322791161407304842711221467696210890392645216849015976282710735924341364566277656770803195848376889450516707279593223323629225376638165582594751505027909994281364476616425224515379177808146204474771199628139780320965618229191708043999908217087237415631248231778913983295146277990999137627390568382095693997832068580199185103594580533142070580230863241629920012567026697252421196614182868094524728499161727384534806017812062562397788809345892730777696667579295733746822858176931013835100568823402550751864945463440364674359755760492739419076689972020323081586246645846745931605046173305054563865384633040980741019070716593133380990788648573211395859493540439295389282149864981050598962710361409580304430773078364564012162979533614775876827123223186230199261130100609837927464507275805961221656709543204504006311795416402347815643831797175858065973737391656947551577715146927469046312957324925306014686289278197623218133917711259097943119084210146865144443159632833693829926551709279159379263650338734546263793043601025937286941323052911334590468422863240590262105343733187492810028933895053313993015084194375646059989700083596425226302618054059759204399696982427468662196315735461062656368919423104784773277558992207571996007808434396446474255043079329077161497937053271139734763365757075940289866398763310560677361521271774633217934744162508107349037395344276037128377583330093254979175299115753168548019264078008346820710605020686099479370725208379790193512643852797901449939753135299715377080659646492422610423402302385282769720890910887153720517369455845776703723525373375603913837027441699853622355935734936884135039282763286173413387701189320478580815442072560246681613477323561905741590219583552724905775272275008613804004041199337106682744003266460445909385305931326161203940653967124375776524153019058815199775938160851512355658861967750283767725671802289262376429132313992686645552884013449695293100181801839456154139480530218485164022877293284861775245449194549769867980416647283508122886492824802939894178943555862512400537973258939318586829224850265916554425039879102944836277982659815584630221505280694816348231055187525972883758467480670611163471791359771108823594433476039140992955364022876165254784911534795201991321300707989279895337455484057823686255561128174131841993146029090623853934065011082854806901280163218408957818682289886820230056800441241182513998536563720670740345211243359396413936893395316031253600010265969323275597527928051961639635549128773796475675510261329147695053421878266630803861793240964228081499637171869620936353934246613286962282503168967612736835699050913225550214538147520740655132300318538944984101566093372791327654775018224762212983507629227660523964884263650073085178823776967729528677103370135806931386779937810159847453699064240342032744211653435476372717045303799038848223331800914571473941770903900231071929439385493356712214774861944068567038628065393429474606230897804878747716744561429909945861529868467789215880741307623681272283884964686828504556653605007974253473282692627083100001020833469488658552806644474558181043487247302004735057869392538180685165683528697439049827968133331479501099545553504440716337013348608876257573384889337173511209236945563081392770635613342707967535218940289445755499256338995497543076696265807976683016994419521689554077827627643113820164968709618131824370271824921055537628974785055357396771877883986920477964125990365848374421022814576595104890742652059507356603435744820348150672467497724878999112114128379694442408126293180793331012992149254601225478892671312239695637361997072981313050550638489171274717179071400490286223085213781608719774274318404014375148927633955649477002828238188369812095271591195111452586454303177420867548062975552019744885204096774380989505053375614832572327662795367271714050656187035831345446699886864488301433845418372882453104290040881773979147533806200354571935779429487406427538083218838369241086880199238779696193749116115259673365850385864381080976845577116716935225642813808505136667610739728644649525793932670587425758783987408556721129604370290521184920402649174346006475760572052791971723953700192221082052713320402020961653861212336073696473033738961873705847681938159559186874476033951429717177892738281410574665253863568008960916248352477097186487515231793235975454366504975495410504319733081361823296555438212718933547642277505601182836573828644111810350012473009943155906503484638128216090732285758054329628615329910681012024888578541401241623992926283042979397423697762240249601241506448690282320716751871031917389779300585559401616419156771073015081837966463062428590850922825053164804948704625101746079919359618403868473143521929532180068804458324307292184301586661968023588417822546095077331634709111847772032021069633262701407008177745657328974305645371368537107386646745194842810738075668993746638184268621462433521351418544512216884783634011727980063277075428579755857879648704772538688355607712241237189790558327099472099191626443330170679928317695038059934230363331139886431262871577276472770168884480688995396299489789700868500501945556806952051451584185519623129071336740263579514947632284720511768861589454557161330586163283231753832341957530366885805632360775265246680659145076873634401892917641092974093873566443409246758156680515469365823124318676879284532071417455590633723957249104918207306014030025487755326145473477324241741501243575750027441024783893340697550453973662203269081662826439158313066323637516893814672788768672034216083412437589180882089103470110662614891002408953160439977222199715174731282891673990839326883774844268382841794182695038860363873826993761224262068443606010199095644629824577628797510840969066455706741927997086711185652095751082969114126343065810644268248307957297224636480947891219461711782545019478288269773374914578046007592974722921157723202116546591331772531841711709522794405792284784354732585356604097521392442409614655534330587267487509687524638759012151902189818025284371176106789452048995175987108566218720463640535890129491217438641947497243087347991717501836718102307151875692377917105817603484832652743932819518054071015547144353109856338782121885314857132510071438496011871699220208290145669385469374615369223514242543521769946816238790316780313845022397635621427408197352079656408986757886191958590478902037164127649969676711448661941513114343225930717231839474759475606775710452468368135379701131704386388964593796345296411678616831750001372831081508282312501246639389354978863946329740410868012402508468995037438363107742518979293382328097957090844217471333276796513113923313127448936942519099042480023468355969159259531652293426224277173556181473026619328162549699087050340582534466872164333485112722908286071111116187000546534561268773074174302935652476624020448028623486888080145648729704015297443386627901849366232507705544258932091898906534607489284916742451336948147587020713131258584451692314243007787805526502228319079112093768836587735269483736572877217588120663341255831558835693570970844877767856719670689506984893429197869680107597197188852365214498653955922188639540830390131913477728200015727449065900493559432391984039249880493124058082753254650128174973153340552953989208411171309594898963300194548609984332689500952729063709960676741868419142107208110122285490793233148152650941187172681615739184540403096134769080711503970754029359410674248129960916679853010694400263231256021910896211867128631821324933753269732426983660617931246785271868669455939973634443089337029902826805179241996505503728307002898262247491605030302905547667163154970126184741498712173573250014884148335356623451878091430983121115570868841990591211224504759569210366515310444848658512119864069045523722242293588552879345835118107429666336718298508077934948506688788254658758292959248792024165002600346508086491497430994246111874656329074967706514792142638928588601239983694514453670938400099022457766413171807112249357768531885220620596444779705839693303803964591854849746678869848901416613883214794905677235267712588747129000695860046673007019038295376381664985255784350075472176333583255892423208713049829149496611374886141002215859145435124746677654228425363339977840315980582176797079019157861390880343030240278142076828232401227231109368947676241016362800083685042508013590167309393802978636190262223536666077598276130482302837337303510511163917368793007133029385584044100870589631167019562426641350185480940702702579700675596352918442975766148726343572469998588560100520290000733853173895718313906971464154035383940404069932336171787318293488440874334946843623679088080839530836952372920334646006413993904443332323180458189267693213536063271488665675916839451036417561885075107319571876468405088202342743234589274324041994562951564045580524581223386683812150194044790977330839452630468944595037223641197369843745708208302572413456911735148143130750259566808088675064438686883672476813654912063388767986178403008048884169322014815638609203790279246858334101173170359061992531093061362409753024664546153581628427753699816619607282811604490390083981225021469693437265320630080482901662684932709578218909422021852595320691370256015499515477620842188999231051823617834773654515553751937328196950441600904483248104444668227783669123013900347552476389111180375944446813399002906242321613417620958283597012877601852531599206192004052653660790482790025057703225572402509040859060445024082026054029148830580130016843427580940187558979138578334483122298212382508312106053245314971353772291080191262752540030381219824518794203418666561234090717278308682298094440026068197425618846269004554985167449569548851912058903662815921373297509040359184118359920495780844168686382858505673426370838525702080537046813072852967607720355585377947245073495431470469631037665925796890845099867478946747748760292969723921321135258073176786868624105874048011443770216735546188643885246687594113212503753812490214168193340753215721572873916937331729261212651524461712041232518076462427893853597477619616912787223243564242466865236780724747693604485437505490203832086004169982695674771394715461232269451283727499255050535808733480520661668851005473910177864670208886890627369853337568664197796189821536561179381643073986526439012114536368823620408973423144898600549314082451954120737875271757116815512690627756220599152230069737849311834408477887892911674843383763462100899366958309581673528223745601957217147156621526058435420761346939081226796763678748331073366084787543329905480131022375174657801038479444099211452194883008574317769401085510752247186165747868691215699423130698620400410496926940191794476047451726770124006086458835087770434722629727236114598682700562288770030831765862193064508049336023031575515088323300247838954883413800193726130124178772549151809533465946518912434559093823970810904179689187449505807430067367960068001952697041124719894486759138065124522602870071746799683426098139513489170697076892149156821432246962096409400057637850109352734273919516562750956642241926526626694297457606124189067131771727159173340844735061682113232695241749346975473533080207802932608427600823189862170146408966786085294465677353518728086954620039660149830060044682031528709944447172018697344384991111349665050522437500958408930276754933799489859272924175721348329286190554538720783842508405612770608118066912788018620680676377905186228730020359017381748213835444730731291723518871101609312408983596453536488751173672498811866825774693375173665145636013271397821861651466477483960506015547964295929326511433922157040180210115794487176263942106674594368926597962558802525468523533703265855576064285906856173485798464188198128804185194473715955982783572133562536350965001051448814850689285157412993206217028615393674338624002792229011291164183974619632363913969520000381341430649737108221169329027489844769093108762892478816641211040196947109305875769498202703572136041184486625069683462663260787767996452898739194264250614672633828937259112685816378805099625710266092411379911591397320367323702826567027644189469373026225966320092410744244628374417349212758904209018545405826117153813783223811948310497195628900722235959711327877227420583950537753199387312009118348716456482670699498418730557107641321462452152224758239549180064515448379557508452859578516572392455509771045490859918534980546763006262758194308956550031441174045317398235715146981837998356135002525359429503548473850824974625074399201461684671837219888667676694888490932356279918068200483632960544457361869738544383309516303720955363115181265368042858337550433493349003102316741954560607602171855728003746078670077883440945047383969700309466497859671243278497986751251128183648217335785085933557250363473127539995773914974740382370808701717157370209546102044278594745025901566156429731494813582789830593511917613940449625710944095878108211738660901839795638455589611096464196829497787883927969346863637496384797894686600366511837745498227602095163368249672201202934634755530145103535543153070562305531371158879805111032575107110948918302191393510134466371732458623722970956175969848722174310700511234549126081914880702723609532841899145099339159969462257039444082218516950493503081822994000007863285875782725581822532177515023131063475469196775264578033318180810629027189073127942841046157220966174362469028817493442390795333260725753111176170708076307695013052488413765327890606850190103588597386257475610707778930595675660456431326944449976088180138703124467870500427235645808284334635940787923853135488785525381127863137802603316371373695920627787195737303919086883539411163504966444502225830802986022592655117225385540616351579997177558840147204836099368764001306624967804190926130430037778356152917559058159411965943135968752348883069497070281557357874615206813320705875359679683647152132788806305242703248354933112981305258691402464482704062814928111001690730591386797171514913935720989660664059228717956277448568135867252901308378229486731910364355266006135450332578086261738800031532554512266324719357512069004628890422555979635313179839301748650907065989533445847960670266366102673578596980681375261226906882504605738484455517163374105735322338668095976169094208141824582686514342506087905031287090475667642761800406434724939643563556615810051315560623916279059110936463295489307134280543099057639270940761089081411032285842731199073326020834061691535646973643795347398288232219960309015185208956208092886665315900693977225723941824477574596086956888084401575858725360681762867679644621282519878784603132064227022990307338877694070581869232735166474214960860216202961274646871208666790920809309609763064088854262364009637772155772920923191967343392349275253319717158938693729720503930125349448216280573892929284100551576192397193921085159277312651343389836545140050454756218705952070370213007770759707657361388845490083860439901463247071825217608582385675959000806610606798964980672923555311569282094161401412221625082786535519909160779022663681001472257903490291738338050773570930064597207401439443920980074680247459122206166575987264918237974212075207013581786925712634715629540681162913279748302014760916689064329503518395567067924563644460629926470629609640185164528784143664379041147748634286918846802814257089680332053002414476483679770682009792721057506405786987709942410631916350646364136686466066257929544688531298480842844281683790939148162494817638918056718396546994413255955687571453641664241193258895760130898563303487010904161218988382914393601169571611573337290051584033595868047563161576610719048333110096307545087860883350153808156021631283233590010255292646591858260412379532049653599650412923913397293757516238035709070949301620527803504469259362508000578380340407426691711409701857389074116105555732707996334873187040828075923712051072101472898514032124619077694003005540877008774550778555467692381858836835130865388244149685557628284544107766949136534968380890823189329564119973316577632040412190691809709273827716294113617964064137072817898719006386832045214403609583863685312736265581630199356296294353797954905371830991669644287928329450711682296767733040065056372924478317691776876117596927994138710921729584251771648833699256464810878800927321864653476000834050893720009135166951590501265134855955363458894832020856348505448219654358578775942010938134473549972428373525416488873037843945495329195498589803736489361801378304394925821625402064294808318388289366642805671631115930318701680788304882211814598966431896094612643158857140658056932992743713998015415348576904269469756459979561239437729707860642782591699216384846965431851153683644552442147395939483919855618803344013509387081396923749206185637236786046159542825563556418271326674204856883520491141748101394877539313181138648642998400085019820693901548833724168130370501980637720920232678003829682262457290627381801069003308064255815608979873734857484351842061759149389316359177164536608227050132638876872812485312456975855444645439449530984472477623394803396608836948667278495219251930076430955150839033591165049835704059752430452662552259797928912901208226324008913889508565848935147913500775156932870333619424182634257058745068663263560796733909182676332577440113276853849771604701025274411028157965832908875650731961911113432006621110729625251464439941768049283001848063476391866595596006938153512654941520350372274598593179532045191438823845516174982032742790730808429386322143234127268714904321829844397575840730262490009429309980934967539470388974634154461639802584708097624196305349298050126014985227263250973670720913180380607695617705112135346621060973686838313390394862728210228358371345860352581410961864014279218886432288661247405698311384298568544742577731925126457942397006562026476979710987418296635263010306851232314233618861991762245930973305017082021579363633580729588798199061692874871155326335833856607877010064568300819076599965453035250111411774467802557058698022716333029774564053347670342479637818875689879739682868858587167790126067932848394143365069120691451918675945130779853245435155859911977381904784473026634461393969085196781936610304678573879645538105569703676898618702295497434670310588634589785009736815644242581297607431479237192128669423842684493124480024505257294455647379700009854124674099313948241564404707323409223952207789977498621850633743893699703284708173137220633737586955491760619531902088623523440964074138070333179253428076956071924644114346805750584062340477444635819466131501406244887798629073725433742885822005354079843822138705880999205307637185433733718762791332633712600197552009600997202897746268003539979326915860039766301958806092795621246283926151881796957340590708169135174677923953629416262656861415992094192974276520671186300819568440207363065725334900244583874672756997078380029942499632103779315037168339179659253763764939559131127017278333992143521613799181339532021184619884849922744509304701562618917164054619653616094078394660465482921618755512863409204104132792845173445986463233442976936585231774330045356917047087255665506164825546831936357479082358660844040130615284766883908123237147289550126036998237304687199257767387464752790801131847136563717743068899472818250027988610618791719824791529583321675677610630617563834681412208119540280792170988727188121183129616849341458567332899581395559354386094409040136908107487725887814533190394093493535709875564622428993669926894353726106268718912937823792034242203709449257398027990890122203001207375183170902008614252883568977151955615974280636468922063319290331366402088586505403406914178220000912929746867818546346087802574160449514937719707630115495224983800526817075862652919766085106169433735985080273856447868570772752446796354939382311296425391720447304311346178372506074267783573658064160861243933891744131412384047537678038423946771742227497314777604669134128327570563934355275979843944932955166430697001358593440525357566875008947084507494835976887974198584326547652191713964275003272660235688678275887766604410123771855578521536893422098970758122149310403750557882525201690059380179107341577523428505570146538184962871487036922204152304117933043681609408008543657849061080315341138091066147717221933091578467234314583935259731758731482698889576442063974507197237308306531349374322082386607214245039990529467294360900373336828493625459012132536129096943687759716682080960933696868837823505941093085000792446761033919827429019633794043515970920208999470145959063309809973964635100318959863724542308489964357928155826518042150815326157743179579564949758720441329841069794933456701246355137957859279804874469481396796161936663870432068745787797107559931384953908035455860943993521853343819273489033382542036995552580751172350297838890665064660221817590212729320344223956527788679112487835501433045690620186561121844032198661413059319023718662241388599911651132302800417468823887160247888455827255068435005072429321531817345564669139520993905444068943575603690043620362648617093303648207102458202693280565947113702377698491730469531633229457725158577580428291435003775003559387474492737656425967789954399975620752152312488991437458329633555403778651941689680270186671207966071232101990576832414444202068223837135380066505915229277653564591698888576221190286318785790367808382283871096580517674900541544329529691480974734664081582284433222512085963979053217799337874708202635544633837957698144598621876110007702219870942161410319608057912686660268537529953909603688815145513203337208739790417357494461610830262535324667744306119046839180356997226316241496590916493368890160218931371649084187919501603934994262997604375991156249378090495162329639223891480359915552615126565726321539787831033922798334251341278481074801532843801041502430216003883087697577204947086086158260660026613025291431628881863476166340152712559049959355772378121112019220698109498463750706952765261349408337610892059810013640295601507111543864759896918578885959690529863613496375728595041226076355705730611825691770010365926574484854551407941530907943630575579273125383422497197141146842928175123382715217844455739205402845327842523264535671394716422428606484685171291131082334411367021197581767302854274927314569455442303498314939698656435699364155163614450504524423760823062546401067553280384438419009677704881665329962353477109502096661527574209651910359281050481388161538452517739916771569341129326950310357293576423120774362110140338212002303954459154697061770309614387860617383076701584595807709712787881017054451588132178116989523363148978952423134916321760788919181537371144694004494146966206708779220385948413672972660680184300806378550837777589497528253627129137793904874663545210324153667818563414830258944257272599210779399531901379577384845239090395379323499970686334196388176616826899241820586113026945616379341418798035929862243944875388881718331179204400305155873895854171482030335750996257700558928730063817506841574676720208205727132445405099404692746132446848813732621360623770451363530251968128252785810147655628520225523939662900958750521297514293851319291304913431584789235615298759919469725626908982122606212732106658521184059744895251265161870543274243767264597561058302189830669994958692309478174855307488946822548971470249328213575218144777777217669675306557146289202576565584320956604570778304116585694606473797993922600049589853594125929153207258319595181536803414767606728717546713710624359889033697932144118380124941315956559086401108210229739281118724982430397878054590048119680759572472213666662025418523185818101188193632341575528062626416075377702978674512991502254419409044118267514129154987198695947863545328110127448985007326705205323496361881029026446505027247847532194650710382122378523829564750969346274588162449904783207735228045109429115564387616875721520246902124845378262525291511328226208185978493186450843412017158811947725887208474485358224993615274757778060194310226348008597869677325083810979326768650171481137685521860668896023311147259179276021155438430482276519272997503567481954212799736581308852870452482495330921484961651351459492872141300985048403484261531165239536952770621263334443151807768459193465997094785414246434157962088700617056481647583122276890129983556832116097747645142056994383741699261673124070668831572370243180792836830803366740449065314048872596542386738100709959408116381952518633118975487601316804782870633081685604331412659773820809171414596413096326180604616961627887881964426455677831064105796941328350915454609129903389716048001641646277396725914228141276071902885587097039070293514125629382018160870362518621872249373207826592139285030674674760691939161898516360152030835003390896164625489561392822646963397072348999935552257054536067029339877468126402530757465168963384461960762865991574998080096117960737265537248819639354054451827872417018230717626466231635415333715140609092936533827055761680617876016498380880728921288678467136545493229580956330554494728097857150920250197846104006210186300358946353654306772257676187529804100584788771084229765264720496371882356951621174217548275388407628963493961951760452121477802897351764176543062097469119219224116999406432667776236794701457735805291606549529709895824023046087705875525614514491322700109807810359991736135009121001749658156705784760241805706389635158670443372986228410584096619309806107151421508048916812451929191983434480746816905891402195747649302448053279910118642613299074484729739952034522103168903787802461063552295747970978270181875744155369482891627851983880033125423196159934454919893459147774223363316736325323360738475791055871305665145251916184258650156933559418621011923855371505576714696204399645394713552257878782331970114244489386334110244314070663702375843507546528267878247381133036058914863984947609541301277047501947441066904116452215537916304829668765619574342601623189908013710891037243309075594390738743824611790575137791755872087229268559420511197854327751369036084944818263378830304703858420943786496986249100173004765355581942662073618096035660840830381381046953217477197459990781084910272176389528207012813916336491429537626837763382013280540398641494878229241316108484922292672138156874264678860819317134679457099605057170776817112090489763815399289537746644486233237269500143491015984443548306440378699255495206638663846088824300183103657711040922769606906520520040436354540272764345401074524534783879585346428930264458842755459502520232857342568803766612620881423898821313417748845395352631286655975029408544075274748107278424523840994930634798605052676006626137299152654673258284161070595028844318555973463328453060261997273749730491391410701584539142525202643478843984688322776508447558639290119286289344294046357535912375649757988737167857719042369895178385046682515761277320730952921041620251148651166376939553156352564271596647129472171568827981942891369234853072714037900846776299031764190165262662215198755073538574814986704641714758673455289309927382952257386771163051429577042305673593418500063471146446486000731987874007960153147944132583116119704243285811335413965008777747154668858328092164833766859829183326385230917592114140455255563077336305596200502846482588789838194680695329445133323449297997722995478563481627687069943002245303627010018110532979914151435186112438150372588167349433951128606042011620237506970514023581852188519157217370357018566310287003480094324171059678852523700948239923500030445720848283850802193130127216992154751746299504876364729591363689257242649126460113696900126716722870689844876368235029437163621218160282269636078577103289204252171099722966304193675943996598896069398500942086052758108823952444813710344784711672613950000165649428267536590237393640689250193390624416257349119932221104721342524650217987862589717425172600974267053846187724754377811871156621319124470976543738787500703773095973720770152840485202103475203839931253783918502831131886324322542786236078593090891251944890250143455672973437166594703744011702912121450785164651220512971131861690862997679669837202523431576251969535315196485812743627094385696100308644142727118059656291049351658768592043207199636160636924888806660258539406167791660221900579836488920057172021420888400372668278830704014789858218426262849797799884810405250851732659045531366331885666099781777145149580657256679544326377697297946640198448246667584297493828003395910304762904202934241915423044963454591605160140617148214817970859495806692095394646679858017993811746180932170531127409176090756845134874124131935068090822411334502271380175970719729062702684696434596187000093526071312568926785123513903116769626528699752647823691047936182471229361257706679004912614839975571318327684087554480114545069609594117169549578102880224905100465699856523814586066026637996693266733129388477877353467646003781480038658884654936958720676681164198120183549534859801039806042399075549244017475696996523211128385487734070479453958104572525319929168522915945131609342758620249810951039067283392971204903953141702629740794242544153285925730651761935233372047254480349331244351077693735267183262587124175112902307887254543925935713167648705751890162689099518961419609309147833935021819790102427047925401466053253835120038223840282237030046331021730959064030553220708325725989287090455286644721120175341717604244729828864565636794262462149354330392041601154636530640444378214048110140275315915196596099494105165809525001783603042621395959713953878195964929837883070054957618564559512661119530129951064319396036330079597120917330502531215036493067371261521486531417413204650890874695923621492960463921886970091013962395460562417001571452906189741257954162493986505670007255739613121418489649984660908493881544820641491527247657909234079824349645656356509672507041656380660818639137724406006078188422875189586175374812806783401399141651015430417584312633543374814537305122204296793716603159534202864895580090888951515436538020862883572341427331142556056688699666982446242069311702844068918520708887535684637811141786222356311301017473029569486740843119230310659781550654098998678115399505854935217958206293170902575237214333688264813794798330935780865031301175123728945302252102221296615757791979036096305308736696778229134757819032135339056549712143468917474349847189437597630780522623675658443405875552858349564528082819846872825590926553873541849427190395730194247042794684565785222315182468326355192746426165240130995689567528729196998120927596796299209999477732622077447885589016689289107194296829300056296636604859227394980840148909453712959555442164964169648251589286259027509623082247691300223060409959377705356546692464797441614769605085486898932493103169756725172184689330815142699577982490338748960652057334686213382811805173438176586526088055625185556718799704229589635696853353289768535581879521327105797970977473235926725489580125907450958332581813053528363423500456135502588518791680936996905614411155000940607189889425700572814881651082804916287995244016128307439961128335044892834923411909648910813096996237470622187923547460107640583006631829651734715589105912410687311493536708753871702604823735695875397446869130288445886872954645997473585464224029555547323162288676142790673335431312233988108286471006113984768648142673272288975235307535884715059172497800273216907367233018960326185849541993324447610521445744840859712685177802819207744070483772094770091477830873649338989746390946787845940503049439645021698629799919971962438992677187059639336120873129044359329989850216956618895207508071361270260296573677821990024751633370587189704617777873501373687859223660652324022982103374643177029971631173170159218194151320133071080915491335349787404468687359476790733790224110488099817515262264068602396793118190084193226880787412443812444625519741814301122796224373028690865598814730910486459708099595537222521634300920776516699534422946252791115268745674071202005727334987900753070292288141331103024117062160568703051847436306762496794206947459634374644183914980733923098511637052896379253878989013004323070067600734750998121547201653008968894416976806347015299876816409357087639316387797926103452866156948289954058413513849743434998380513840593744888448806545038840992350070375022445101178205720870476402529255966126116995046879363978717558277830849252170085183721937512333140643656860014799955574615899092614549771000952165656057370468632372865910500386580656359475853026216845249205353699670128640774759369849453111609908110736746208561343609064601543481125573367204111134013213377381281120470111243409613049784631050015673678685342853510864063161592483179332313630046029614533142823498338100845440248154886947376229323453106758554501834415272424860427686039935854938625892338702268029183709106717396816550470272059631501784883681458523522673097360670045425563995011360744729981223555068911052528156798203424556518782054520415067155104227110711512166989950453484140178615983630794366245639406674022046505148431993705189991850636582877239463978075758881404217641412221692982322530189386539224449771274104071143118549095597172114722262944005120604522086744930506213917902373780931090035909141923711907543395715201344950192857540862317991000096518648238756621570925416450433214205290620572866371814746413348737680896606227680302796304692752419874966207748438591872048455710770906474774787850228235342972319611975545546704028285928206868770365520281719953463739413943052732096710465023030923856251511794185943717251616934678644705321715849166606797200788000832352055350137714764874387727690551767790324066322947878119967290539782033822701982332348145273376826511513926947182442341846073971897512971286651054143633539647938656631939413942238896085548571393941353108701042393006377173503446522107163430440880046661451845380127537457214574344909752974267358595187855932195655164400946438996065316889625221416400404335726636026089413040363142050371638823559034980873456747804654928925676214941604744418195262677231918492165564706405352452961297067609807960425225759865285165260574270394113063571634590417226787820238565853915956167931448688164952302919393716221308720385959547215240703556509398469053503819603764594019794060266784750064120976671001382221869617710573733615143961912376446602827232818371540536693670178969111707372352647836169291456871107848329864126277460691390629450838255858767507900560381864404765979253150674727982604526938767664244389853796045315035872722593352524710086936534674072611522426976895229310233649481439607754200063071527619346155740091912332755386351043032391032419237493555505365969095222991483441648445494592506062464187186069167030610630604847984901454621951368906211408663997612068783472897851643182847054104346454346452049834420038571776546056226396218021979416890916355014349174437058019557914945797552342296222453103698226843636524582064680691455865269778886113662611497688200489373991828534044287084605731576459047664032950854205536354385362193695219477505971547635287374381906518903781354304172150280130073796769808444106727870574411350284162793656910705393753655818178532876077511580612590199074856308104961671407423865603052350906394349871576743025830896250906896915048616066602069991412206252752442369453731006551799637021943651242153955024392727213791080033137271422150062029230100108221735282822990860948015808329947508553894144768242635942739589721665776278793796399406982617385145067839318699904492682107551921094923640263767639163061390434936889760596851338610525429917115334471852652425418647320986846524167315135332992347717582414732309074484024256536833367205694931196123575430850442122078414585095483601874003827457082529389297208149649982910829310819257553014434722455589086485878238650003216077297789590002382555800222528688152508527931682689003032867027295505233012365911399688194871963141614897004470965422698083304433241723393355036738484904729718779464711857695600934450328725596349424220936647585482330918825238714887529956578292384412705468356102240388893372192429404283238050049582590114986150722467971647703229626316724840880836129567442200360288877762050834711590949900022729915574794858333540830992469235908252999555251314924303232616179772015765399178336663855760804216432275197843669773933407198749010602698563757124252529996705140990286604456399506910892299791631136166222160745670488369472190845037106303284465567531796716151768350183970966552765152495251606133991664150048303555492791809468601460181429025375523754151227532270559070974144054940214695887756930966519221083012359963937172411129578936858574338497390890021113601334230713443693588811712015339421276064004660673185099014480822121968777882635885702935248934662677849098079466786821071821142301044429751704719369569666655869119652301418915871476909134755098322152464203118791129273730405593177166920846252342614409965035436594844766880733026036563721819302230028487627406899934884270836920083392235769326405169088177243711103600914547451852438375206386690380625983796167104530545445429057156896703500603801074154049458888392102178295501963842942923040006774556888772597427240036263580071146181958038173065881822017694845616440786962185770451492629153252690539774706688462551569902485254609354910698270448143958015651230281544031516092136630973019643188274764655016386984756369961084158339240637967543293709284149753174207359565261354978230135115618355405991089787640591223671503758897527515526290381796554635801999082084052414989376042367913691420601613735868928014055761481738651975794245677493879475349292370880794666729273674981216478855416190691936659265348379378855422443594454156317619617202812373958620115034895906148312362792556439485089155190145115468926085451517542238435379108021206461038550026589207587717114660501501539028585961751615686019663283744960776661085524985202869453074760559240046026170305784270703099991853912361202837559675129448681661709876537858476370897811593277120179456231617898261500476723433794826630097671388809191915079185001164302081612058096888698732016886017835467419889678305214850226804060682250424765324019351636836904655210398480565990185811239243193034032405359790703466385080522018690653828635617599975184549257773649361260426957412232745565325676993693794426663137952203571690693021120004290537426218194517214172280312561705887252993684584642977249942175930162415168322735419959462212202241110127031718601551120217318791798545731129755105720165819359785477976492712788627677906405776410975489318300328530410847499856746031692459024611109760405320672693738423570367992910391644563377303411935219360913581842049919064423464270659439289158664891628682195531448325456503690785587202955196936307857482985673832308332961492983950408720404913246268663537402021574126426169436187475706459331193038140716100785012612414787554596601301591192137199770351029362439924761015749456630213750483502571097779769276049658902027768904517000733473549153535080040245887180888612755414230535467226800396017995710555804955450006437390323728361304787159127682079039936407113398514287137519016618749600417136512995029622619122901268242738449808972490888147910518344249006858004415067139839415054683590792713664451806321716292315896610748644246262731564638383537994650224002850505586498998851656260055624749443726687591192832880988358377551431070077119052118561500797064247098236098467225302561594304900265501186446077199595134043943064043410831153987911258522467753465496410528577880896473926626036543005320017597767619372361965648355674069958982185052530638291857595429854907434612405130754646751480250132097956520885975585629491423828870170844737908950743319988311511153230909759889909388394852364949274403389995978051843003628758823183038277729863241165800439274313158585770055953640131071652353442580718992941075591601284156127137591701602677243859585099204086919689019838564910471124949058807848907662899639477207296585431883712101536023195883569766171741882222020816471625070774884939302284042285633489246060802446118766500750865127088032163476002101274452090835791618337094553510699177432018076725234107957756996607097721136137628206269241768644251869749239518689663806097052567368256948847342481713705749987245938067444507887072942718428016285847736391523057069786509163470191183725113734357219691553077076521595206662416290027069382405637932056592390013055364150056825859925384027458378197330036415704516214461294806768118575980148728685589730010539227435832681801467908939980970047471607708786435664118070136614995051313066588601394836890293072275355580214183834177632135105506709120629686273498326912897281553164017836463962032519280192579033285289815289778732701193372796833424411815032294522503422909721807005530063805808060717661197003573452146513594226779170311518930975520285669064103648597500716287317728923082937171881190228889862868325324074924723471187133524638048514673145782025144121176327831602347001738190063966789504590697146642761437446989261847915972454454948017173869347579351434808152889806175820815436421091335961793393816150951110723899555977787167345545822698667532165488582740182690759868735655139938395879918987306296820914006588189636355665050382268600105058818892071096035697344244315255140446539809651830201748070715465031455058331458694009806060287071872607773724495988222827002325732153922045467843308417706196872414475284601765559115294224250098565602553364683499022355897808353574902274762757591329536950612135321188107311273025991010670290247923227270312925251799911619466790282589299563292689722243960789585738135349543261115023391629083491238709792696529816834876256848801247190245753584937566249843527340516115333751590611286112933614189549867332806829019418428256698093661942472279030539720797742024774236695609783498645075593392706051438360208967548627768301437173243255905412892999365536653749404053225482508166206142503190681075370054202944366976097086697245644219493046497255177290482340264372219972789771408156457251708807096967680164460030801061657090927158202497645981635769122284438794322753386275074287669382027523111753742404664917300444084135500282126078584792657328335320491612588371737516764542548307490925598473718139620984892040637692589171320623356561857350136211073230251294235138534946583569483365825138299272385783603309889764956811376851290967348590538011453940726375107448373039065048483113070745925720723605222349780984334037149440144438546509769372119308171557787303056808811518109303665623736343757005091235798303686547179149003498407074902616307867445555200629456639636302398617519911585510585470859963585003401442790431043841805081011963727698274265461652465348739844746269843174482076528148284483856465307526608427448877809406647789006710327108886606255690268942678239482999752476520383255191619197350991135115635419695899134451750797462673363205502236741901289866204947915316774836193667935309345452386396497690253777412136117557151937760814830834431591835293621186887666203762333524383916024755178048822985466008289695709237075719632569630964062178160311677245547732747062553691138439770150980676657421888473113098070891210465563483424786813717782269909141985075982599017292117399022028431169053579371024319487409510596554049278799694520234626193976728748541928065620858348489206091969273065278056208356945739763567548712123057306093082606750740353260906432736406003362477892558409147493142002404996033924354691083558477844418294678372043766673665723162648163523841539991062257371546483794398009819108046204618556028556500950153064836736337450467727945665047200880621047849122407888071575836984149802579519382051836636290657166263437527620872963694225535425442361594009086138218016362867944334668176546069895223740394643768442099701488721189012262783440279568024889561971078542995956528828693430276036028309996152755801674503248507977721478748312963471969059109769913210915627648906577518596272895358260411523635830302132934956178575233288704779360703428368884186977345538262110921543689106437493648307822010533527440816591843703729559120348944226009049751292821243505664672649215367721732382820002498337041175064433052216826016190936939522377820898282922011393275613960169349341807581442691719957668702236800815311409186481988672422251220605941063310513231004015949551732098938759119921415941669845859758340097187498224110639296669162157314431222877701428027321409202254859171063418966303967273306059574813400242085001144514496970786802838158522246235492402386763968545631047213737341914154416728070703081525363277073439600726353015273032715848841578383078794761187215931438113345189475036788177454581514829789197738406257749556747035277758567375611164355456468198909754840207577152738703755137246760351521202728227226416356604614576112613399134414161055676816137844450184596444609165785756596624237288228842210685324973820845753913328358407152067019789142868993775464406506016172748151777216529374772801377771685805838164095292237214994267848516297741675796969633492095431815588227603823761660894690445475118094760284279666878053272584010892419043701699408741812093166242073441614549875991140077437385295649508929125857593259845712118215782114582649281125367422888575765796182418466909690016368563396845654283650778949534097851992659326689983567311760009957412524661101789004368645544696209684713650862584184154253833685008535573310411956292133392583788576385091807891731337552836190048575335087990892569389774840892655644280142618279725960015735181368688082109357451819486773748774606910090066135441915401954702718468470080226817229821762407251348333777081579383531825471271116736266750926624735281507840888646529454710277511989629694634927751432311825881198690887646743982872224863997113116986123567185420997170331227806101786085051847592216949976775434837127629200365692723280342533537820863332186756929307236182761827566942188603422790616919172635024323267365062971510176587078250568889585142895208185269110000990006030603542184333081131569732407351190161508836086326055303423779960865700482668498296027866260913581214878391222935448329934017946657599755667207015562445335305835005564310321128798086859539548127874493892783274075502831920559557995365215890225573923460940144540946727300116491592297477049746944515243836111320265850136920922834642639168188976236532777654905981119655805625936244710590476866806291828115736832998837643696596660462982221762521775949738884345384891964965208230589459962335780806371767815206194982262577227568552381202465615885808113204062065394600403266386149508898133737620573107009457561835424976638944585196935785408030970949420724571408207985983728922016759741639638876506968159016265999518960863751040646702431425784042129966588585664977169564356939362704793305376752830494518259904467745937280022481499623559389064856585375513841774877972856927586949606270674263117515275927787791506641320404894525462271548807946587949358600585952193721783925714537927715989763721095398098965279844001632849003451011981293462361979930859118737082644686935916039214756565045134262509279397478270856935246242840093909852549945358848040279591788338874204164031554343956617198595281378459430855648907593570918339789941828473733874007043414670647247964669921735838198390345999958672749125962768234703105997259138047311290732898369176182460350550958923269227826054856185275035613863796147040279232962389925349620198998313913303091683228046954562296931158863432600857981068786067369917064517327315351859226139017817039075483381148425952505365507601429008888897035402065321404822035549854254607009670844615353774040694130978377423212935226794978296388356255063238766840255158019362800408356627707626514916060554055259827328733635945541571077132983170640707571197235953345245263139552227955682739891720914309198479376502309938061292090694430699316648586549322899466520650774111584256667556396580073596603026124761816266662828246654241830835297068886471570680597197597106469533748588539215860997596213937644252445773500398925927876785151834275015064909825367591525475447439939469643204860820537186381652190589416992942922898071962247658378453534251328182220378408202912030879989612213669529983595845400693898499880490317316069439825579140603018414248373381288457197275766666220674619378055731100403084449232079784802457881526019408827173500469711239624477400383075461415696558870588136841590435952143431021247312926358754721986508710433365582839724366405016965151503763513154807568006365662286764155940567374927725473932799911928003323223626512350195871956618895591255124556515127304728877797020366705236476530554551245301132208178318011473277112399034148343439421216090770017939182675011013462717148091236181464605902214786607302709835039894520806753365135825986871706113729154313016512450427895235560377055636220869085037529974819480860862311682149112217182025683387089732574314526506041348489405800920229934794674372615643537445749663655033517174325007315552330508602920071231193697296763439988489199339765749687539371936572409975648005265851866948956265120955892955162506583395558718479132427758703084757624562198914889616014022214174832778924420811669424722235751428055592423347564456231529529996638197093608154108393817117760682569953389830363700465303976142394606390037605494508955481715660700159577773329596925692077806524400640031210214503644463528965480741697568458530701065777293200359948403090484153445443109506537293770679697910652013646607008095861479129737660424496187363065440322735989386210262279043397475484687448374331478260873848126425633879647513036278480374772435778551032881796366542770426907986172571566333860952744042594113171856937705451190703630473555879511780604645016016401290390760093691419394470217049905298274677218761874248147316102497337348419110108471227393602469513231222338422363769454616747202262977421107581718712490291920128762639602521138168557796297894522255101882218234623653967413868698081440692015246537641016612546794923891571286989704727513075529072255300392454406937834729745098924662701565742414721902994036659906912410666514172492395483537180524338324460840214267464728616477995012581956011089553998735763118838424467759782333748421206732447488440318620467941111838823425510094269835805336820603266191002307693356857506096408511794102841464341344613934539977140407781494835690440882634894469541317230418325773060743035265063499886730917312505344453885829969335484138771228362790060448749134430091111275249280667515989013048073520359930842315120606566164330819154792148965038546591347662221863399275871821910585973884089499395953134519243607336779108424433798215966542615859173835438372144025623197963510932187194607690910330922501027280828371207983996281227916051336251391458767850475362299347659029930931874143079443145317961621908528411194722137329110956476822429232150191386170691855800682871354283159341044013069280701094077482380048000950247909573597750702778912687493928317449361621853639406289437681935826680581976671073380498476596701835475815703111801554313909887870753952187855511091162176874454571995681630503833863783511900001153562934654938473067990439749679675880981058605763797629793781826662379509717040026247183997359964207352130670386340898153841865781215580194296771112517973844786451154970103367606158986758346627154320899371392225301939126714770237924913612757510233786447359489765936798697287144763719860261372927546675534239556035473022935308343621523298832885635417362128131521595319282968596563097030344018089688719176326077761888713820311582264343403393789517060194941437451149108538382866357132904183138966767017578239200108097647554826358820566874692780474477460381008150326922436741276710504623922670186932564688222005696825697369757542565745604122029918497115009598168509366037307747785961291849239756036461321340932475152213252370435023635408985434612015019857529111646499817902843001101245046838031793031511070580395756304516467337001133151769603298160288973492967433370432940804314891686713068936483598098234400599801273871045900757766387176837512487538866047719474948159877238530177296307917381617258908032327622481689295890129332686601779323080163236673472071436711369600213764396656582694312890600545119774730499716446221814303484556800848368423376156244599576082144078130987830757466915595110263934372462040972144463040063404545548596781526261635826285314018611925438336297788768552048300655201259554247780506422356330246775708728987924173536132352539720358350546812466726101256152670818037290832000066684141757584996223151009243186168772200475379310949414903391470506538823986037272532515099659579994876691933201826124795185812716365465123032542484261491042484013695724415556665882885531299528261291246593629670225658640623038308354931717839858621473358052064055641189888387629533729380120030692416702800948855812255874057832852782679072987646752655393582334422383067511153868438416027828817414707957102727862333833048445596746340070910663781951858318261959331077683209992654520637245350861767564624309116348298920591429581314230629275478288670981351014412607102268061326521707148643675114397577811595913229980012018850389175688850316791531379006205380597380568720868984513091104774475363601792706498911780032207829099433302765295990041468096337297551629367986626244210969857618929337248328677483087642155422099364321933537829945772893908317009157755815730303376443481583548648467685616765766700320950760882452798866296103939977419753418413885254080126379149791087494431559297015055462685213596198842671889524627995612092543926012090669748697319550990593829869917639343071060765719819254028800405066981873165503368670879097568147041086906883653256301246686568125455676095627213203438312480282828707747637924432360345838666791405012443317389687347524729756432536015638644925310418181651328236378989580717476564741335735717846808775181107828704921894674998482506988117717433405419055206095720352549794082453345627636733103039191874096217295109813487974664239872008631619263108582732595105414974926061358101658773228283430582331692276084192083612930269861567586204085564507017434539174133946416955873031493127272775192857805872846085821472170124784769365382755401928222027057201631755476405287002337863435078644134515807425111078490219110178956675655093782974925361115370168770950714561775137196423253311479868851437187441929206384695657218445755295434497335643924309811087633343976067087639270876727529017774830117417141956275993066719361522468001812069618379842281088327278164348393748761939442931560951901691315832128478594785361040378722940636746932681758635448233319233203532160170406427455326242302712936829754939448059257160570755888642973916092420036004131030193907065269860225581088498321666952313953978596170896474861769498754619597048617642524386578506742430786030310702497581597529950930126199580222559990976420422426962109512722750732023332597972566155910851538565982384732229881515264624859093318999406700101737451811977251391664557240699744490177712368184666408885753214719398817214692873441405579736737290876406363314434296903078610171551129497481068534562504068067911303890503067191465477498704239060372039114099758638148718288582735798637098542116082698735605529257026525355450066737958576952583911306744465376668606779747170073191321920112678948746651951693106066618659330137779652557918407767111962478066361711930113861775743247973575026325125829822013818052234062006132956245240443898618968596484687872917419848151464248396535885399243697921851454655751703031853929360834515210975852592301566463648920773653231552417801557827117254597404784535743933830080582099946625510374053803704088163213574699558751079565002064353209267820726000107986228794214877357362447022149530157283545168820117218855033670147162805709824749849615006314340562504143735753123996316408790740678364029486997917932576644862482966550194513691957595454807417960906065969457229186202203732960251456904216261760814393212259438775019001384484632087591603369459402119937265070437906788583546514106151708977027206114314526473752127452978646656126724071851103698217653156924290324315465565360665654086769454885949602896107904580662283560741284945641172185838590690564536932158468794116228481539687979213364330847748522175580260513615999908465309658657072348674553662261444952158070254581109533516976549470854105698877729330170302944666099585438838690196367479857901364035080558012236579382385024419564114710585319511419348447211189450239931648406541326848973035150662575620075278793318454803711304801499135899962207078755765900811074763519918177200383576910674284153084124050498163944966925037699907660916742043200266820945770587676729755535921227513966027080351300082767286528300064877510211889135003772331955350731049054526235778738522899311675865268786916187838910271583016722786920807224222759571942228954168174045427914676937210367796411951122072941452424270212429741223956393661327230198140345902350823145010614778115498101150381732234701794872147064797375373227046266642163821385164521563153751076610106933131615563832317810111460332234971214271355540367830848063284913363566940257903431836403337082354325823505793998505520942692737067094620422004143157871068572065194111092335056728567762019499452403543671463461104761978149611735421919682530193011653982934346397410044092364152730101583757657960355115495448024782704338229775886354711891066277955612480804311955676889377521785473772866199932691170224425678675852383626982148931026877833672798568703451549390789629586898999315255574978171602675947021803610372990322635733673323308364340459477357949089478933281380026908590074732804121148110713987499269306954034101467412386551577580951389157474575136780536744835939138812672550839812034047526622087095571851063950441867575098943758185076610610949572834415123021010099448296235498596702852301433012249342232902335284400139232615742439041426794901944507398152042624511241728723919409324836199711752922149239527919023778878803002748088588393863218311314769125884003111519613019318953615474131135137653388283238942594094828587903041121041517359662730220100910613681940052177422045990201434795806326741031783291359591696888069262923082962471945482514060963327744276065375156284781658481566817291015478774097076945712962420970426738188257838415814766628573878739157774828916731808808923639945693293925278580084559467834739034392991843696093805154317761959059297583007507134949827472736032582680972942195571446928736457933713381510073511910515278161077936653953694451373019762104454991390752460803386866602006755187571676812352417278614227632988613416870835870152159279516872083955741592258674240932390122379960363985921138839813537889629404240974102354501271538210486075234332914848659099812558027187479734031485881914486519771962368536040482383160331218028676463597608012979231509563798018208317014406196967950582273628982991140803035115029823402884252805297382853892675088489311958287317054044976294888230389700671356233272913946732586650115897027791062433431463292741310205477566582882104431800030703681963738080047655672899711828494811671315416428844942414105364871355747083891663024662973245200164690533786518100766022903330140162027590991726108313762855844245833153283223147894727875208942417681076253862387862985158345830472644512000759715215452406340919759615040302100409603120232578575940299729601987915376746668269683226635936219620836427934298520889437950446979011824504517443132271567677449729536393079532825072656385862999452914227390341023366618695092383036463835950355316733591634222749800579861567215788233946550432664423324651944116348982101118133348757014066108093602409966093997196382387237092984171460999024372927856439063722164046319787607350960305816447126211611172321415085779091471831850018143274432659163533182618810505047665417842906412718951006261085232314120337877774301785188329404144137987203289140084531768872852567433104708203919748983542914365339832638723659041373496223019266896066363434004980179428310481593393110462722999660843722945476738936212130782569767949719893198464355769583923397670421363055219136876148234099665329099591284892795940556421162695016613061088933639242157380689883617469219855806225300181940700368286943425734507160582786742743204423370817024522487263234568247605765120959485392016515698673601628486893157888414431785913967477076737651069261846662202680833868437654603700939654303704698888840367200396309328465547674774594000328459843790135137461036722756272085844366550075872693858646326797275087307643697986346218301992771600369471115678436872807361728701076831297367315831773670641764867224318743386002056297212391324292171944862004604357449651139789139591895684750244371418347249504278302724746472714492956244087050280716951964441996152402775362923472959428410444587831457073734543245709379409316577397106680513679526443673367549921834878448789282176556699603571579293193534089997147542626073235166614459636331176981616878070713082420455308305147528987669417064255369355342708853875811115500324583398638480522964059373905077279474926267351450922493204415973431616003500994637813881226724106345958319912115903774584882288240498495459659385557911267318372302058781179741972357239724324961555059959596951499394413731149676350762827291804243556839475384654387484977886344453786607190603850367524989842573562283997881443373753356643707258330684164466531659570142973449737955932061653216799653488579396327337901468496521831859705723381632925361923147959098159758657070448071831089814387593766542919642004740427017474399280430637528722519419968411946378288889136848967198399445926723021129473656977350115644069025827243306769950237042609332160963606412952024377185305197355661391801932631935722072549758478992456456484085488093100418001402797128569936386676385999953407443042028661830433151698378615996846675272144605774473088906766001859441021360487600686194999419756729662887772200486421560169502754669580818159176823862691213827113496980514668187935408766542415759684023145539329459432889488243571077031714236069854976544840617716791895172346414432746706203179869553685200699543271323707577197512485640799091352622782862050064134428079441785837142529748972924881607249171680568299548039716612869091956262674644650309841493711786980143695105838498059016064996032860600253941251881867197844576710743065425085154566149390566087877660382147396132326090513671512144412001025823125936821958765768447748288202439441457015859491559950221953383844715462808869246619204493837779566620992204888244918681789495038032296609955751054885818953178898262563850097556661552289810450520072044021981728772258810391687393522480197309352370011402502780625079876323200300423014453071911464658074749671021343062946348976141767729365780847657679282115931038751568220045269439407020834459935054089799162598191168820093931673913568123064873498817117603177707885383640947844621750873728514142759873481063859909665410318045741633658119711853561541771673300400681450322363124301679429001513244834485546949484337711056745695341653036085144654539339210111956421611526396883657178109900304442607030566013054087780786574758301335903500614983114269588729555262534062577867322740509867014972070760853779315093687933867232686797871741513184117401039004239820568467527770933777698179469255195829951162334883042425409449764632478129686516203458677497459697540959119364545737547960513314987657904758691829414500499864300017700473110144418926068329152017357936728953498590256177046841441086803018906281813968403999380293588123047014972037721859064356169648290757459361482060721523296025037887260019040840942732223026216614394370217400890451592700435673261897789883746648409052355449079450758285056490559319135884228613130030132430095658995145414935030938263115443671170396361802973324591358879974528824732322811895018833367791483081636850864748494008080474598723785783501364977289716633864285858833155561626435160991866195063162836075007979610434916849623775192810129814195251435032783339232789019552238653852013107301693638800017776324140524524361497951732404922868626283553848570157929047305968230169203944928794380945958174819600728269375008041382079390168728779068869700007840580302983300974981141658272040107751397947717975277281372924815686015773422200894884334098345220730807149502450239635650292265408049151242074466227823060156014062410783036214700004280306589556971691419267207265358684628362632107554567931651000513388262569348673343878839306032073090220306325873179430450394560575331693598330019109227552713949487806221734140662109187918565048280259280506102977913733692279162182902711841638221157837904654586130817972354886659102098368474807544224125383673450885708037334574257984887568930103009103631277977943804025323973741601443599555563104318786276818527399308701014277039679135671926839581081168735535571719719183258447178706802899239337049915100893402355534053527140159642384105008354154549979706169155039969267564320240379038803082771511486515413252283924251623563818281738987757514618384591021477760031624739613467131064773564418142803634318308128564367830808701538783246212558868071538115959783942644733410848521482526630190684839038932240447665981171066935695437060690362078863583223702571999011103517013590604040674989919974875048116031917134499436538417631140620187614593110894624262586608398702719007820627840547875258073336353694995394561171382363840948706491838579417071998727714500515829757035184182282947028428714075636521545373030991412721385480499446877723050597351393153679511437852663296395799340826373572179162910780974911818308456235958779746093907129479976461063342310270366459439256084778455443107921879780593510915940264111158256020739701238835151328677338315766571131564226232138536597648511380549469175208883334386933538064398807077899945691252536554164825222661112080240114828361151074597149306921003426739330491950011946598871225042006636546557409576929894495310474620324594284678747104809633396971386478759812504873232524400071932579960472095777730755192671597066485949612144978709745367804267389426141668055740264045495657382984427599881069115157967680398270606735758149410456038304286407764969432278609677493678177157137768928505242125740921243195980222361191926250546786861216136539860149970227237324050091143656809990713165812682624845709255947417596452858381289721860410057594413769392333520633686487740391945103757594540598506880464215702752634800867108827036503791632121481945048481942036940191570544086734841579398756774176192458122506046488491002078963329368370644530678047599422500640853130569722293466052784888493302331405992978579627409716735793581248383628041534559408321020197105807426169200510392994673689980324722114742304327431171621233779673207635446408040558813745300404189958698397184718813574321783265803947772675515706139130265627989400753816425499806036656513035883991503987742344933810412723797460682252665735202463678223107157615257735023406515746481202840146655098912313399438505296532192192745071160942444637346503912195448884129687633081484275582295216151144662386024295381663961918352802228549386250426735866921247751908341326806876926238874182323309541167616416204161909011707803609188466381970637924354345352827333594839756096726977805424695476184910003296204899106006557570280296668811716214675378008322460123351339397401360977180083464035269861522898231739894232210393098747437046701618456499182850144589522255637446460791654671212970091313352019678589719861260701891633694460270414944738242767194167407674027875167641882597675680119983829704876370142700830609440201189265106567605886681759762607864086176820288769444883273738435807258174959690318486760326841779537827403148046208633658109887152180013867855166642084968537521533874588196001368549198663736342421621388673821548057737937780364608599011105217384041067636088374032230590298368345473220256896570826897671283162100504909769194376425720066756020326884927339613311028780475838093045548933878742857214267746589409155629975446670832012724986748543978979523180593329781899656605282831653561602653485829744878054083425804277635087026067193586288218182656359957235648566869901298024078532414927909010484616280648418307150653778132329275064158278822664309139003962643319480508847802224749821527745952087158759281658628904225540131009973140205499720915832495562337368120427950440999501370455390913049018210082581832510545906926132217621850238685635673235735096978859120392569580002246184002205308456068541903916260350265920959248468738992115113831103987190847276651991504858739689758481308409828475808342902735129779095166146675571844346038159606782389554876836677871062861176547528169906085211840155549216112730888945210787020910802748349028204908721051453591275957266930834619878627992394124350449677684728591067339573590747405708644484802026960533714785024198988546725444843030814191977678152648931795014768557466727651786113446388624040414680840526102096095352430446978148686786708229807059997914886505448127115495253812649196405202050760348491867464017148367497481558798638980757771291898531801401605122775161458063280691957882713921950892255639846132176461046013783502436576402318700898621404047632669339582475940431952315347721732438417179263867706014742442839921971474395853748043541405301745287076712450059739832186222790228736401668171905160496318495527055850066448918858711670778568017342148574773423100589971309012908984467988676366109030269833401778702722288401677624912043957777648532473203705567291215281350743186910190291537450803360704071369025020243664382537589707156395615907856766963173985383416731547445292004093880508847247883595728498436299594769540172286945032401377181731718270822134618783963285861840953749117441337792899914552194098557073783730064119810045693108882910573157906229503377185313693265614212609055747744557348345659708724201082861699934136507953408053321574606144004290555063212820021282639844930171690390937732118630548344949427188694137714337648927287220636018323570090244333886036224370639712691718346841743054146838201189403355108218955720681231807560000459092363420621595379176592673964770694351528444125025540516774352568893947118028759151585402785855858904729967738705631676616286881680207679703689453450361883256078185003379456730855074245575426104053247399408400088427533198386714521158669692939696890512336668996047675705627509778309993012855520736457243482208624913386606770669644345289423868428319001359684352979333470370158638524345906810772309441104308046571796470806171943356191153605857497898522558062131018622213322462844262534388413302372477599038900128924843483993178280730550409595379369214778272209014764605128554798486950847019975106596460913123477154027171174487734927509990916960066197371996097327468491471970823525888866711766385895977243101652551303544083073888309583405884478372858843103795710617018158333707966023720802871159082524035759782495062589302403660578507153273355879941577177108565590220382635672665729717948240342935991676302461152173999890892467335957435379764205381950519794685111408873889672164672926784572440888929375080024372220614881291953877935092198393527060509449181487881650596280864672595526501478694055962194417871201209143127884584061298952825640848331211705968671642265497950634223709452083116586753531585414949284683907419137777304693125649453130782691707813216743198336927377668977118844570316938012877144703678427930170667358554673412097835446622624177414943801695008488775532146031349240478974285698661724972992972362888871302175855287650263927238660925581243623998131177545514697939331733300522512611434885464868194296613873718754442605593835653885501763139990067748641659803613877742656458394255102311440457284084135522599097329333506386118411866876583052856734527443239310404447059779471366272806916713703256093499937128142182391635425620116591697222123244900762958412657926020550850188662940167284687711578492117529900694914978409427928403396372624122871720854386502697554056238312405695572630906480887653891842666725274278715075288553401311778008101691334041240704707795966624343292500787750070939673602755359666080642989525442357325387158800636751791753385474578573800773477560061785004810255552657655916189116222672436373523091713235842897251618061297067627736236835865045263818339307766290554954841790208113753249958447926609746812942297139119828336909112879593192878114840188879487760618148460737395214989514903564367937621919691205349873654057387427164323984534544925158975934544635368841486469631609203259412902264007176400184665557193945859658699306714807838585096279860562002123812414702192350926516027458202325859314391295430990916888112347093988341088026758918829258009547084735754069936454285338127408343221172667258122954789329796647831588282890161687890413514956517648399194317122142204292331444428699300838255511227890466595559624230223907700680772878870165487504328742581994700930747743509065476685455347560000852416112347338705815340971536484582484838528216340652423370091109896805087224979648587105946996466975175567873503285200952661612967068335110483876555930352122901624232551319315516486259038683724588757609664644302744708392513144203624181259888044864392073558838537114650223724978185580969711449533274866554347581171108545390569151941784866022416810243854934647951451112421808419205753910688342487139567925319554775434307346142836012750125118172819992198005749039040832832038856831798580077633292567418397778523383884156764385773054167331553215657388835542584662721856010164754952616156539751221192652338521108089141039124298576136374946136252332789007721694310323348186517633949486827311488219910486741312504898581990699878765045869862546409124151874444990807045560395075656599663115354538731729863054239532654111995780041549092477973418943337092795458221552854884447078614464440871412715153269041253088058127209734338958087665656354920963129301276263918054737870037885585564223040692926161420097580110676543776531230772794878753133431449621405914401635147908815736337389700150234941598354886867021828376446161566882871387459704500480144959834609851852738921552760527057667845866280556617804957600207208044780396200193818214770743457626757328658512757763405343334115816795418777043825952677420794799251069665833568515215661332635740792050800466955668939461572639485495995168335430962274237713496830322053156774192706714158930116951836072653456133996142295863758741271065666088450735962533216097241828525492868435913677458191510863590309241459496413709215731280473767354517667772377885061450085503536161724176409282700485719828771605077859643175378515829316234721553746213660378313748366576380633758596172802058022814120198795609373266538236631635954274538932318546260022518707744946556899953013850248748671984563162605592466784018981676912565740832312026276606308815793503625638697754743811610876644335150971393359705290663459949938508295327709312859144539314580053773350422437732919147115182937157703890570458850903916810538126674535270518187221650673686779550232625997622671456473494471313596898247187013145349841146697755333687338017255227080920272507221958060890014025849713304762345216090205376732722170880408931880500857950702960952833448394780245460500032426887125474880369322808191075657111959850802886294080275259797758466784186953516636737567929226081503103585014619454279691546133523995118349777350098563305651660701310311017384820976804005334642108168693777037965458052861805896778311567487386956780624145863992789910973648230600607936782362521547363951584748344616915409002501310025767237065622271702673638833474266160589593883215028566094742601023686079344115626304057794321402582020062159573853733874546735259549475341598658031921649971846448024811411133965436466410247003036760504777700429367827684285983576989014528893843732715593045064650551866917503685130086728528442382889272228215295264871829722634047129788365019126865478330546081470719000119954751148487381064310468624873162123320199700815519241134659846211234122780434795000620968396665501285665364425172629631940386803472034086649311167553980777152088214723925186811331832523203047932966806924016656521587085442917344446033680572652932104843160260846918419682804855446360085877720361396395403848379769070506636120565548832130452349489265069223203349565150330278154866039725000859837609085853406369751240934350294783555628032361873421279029526793470808948432729965600038180540318571456451081533337812788015371464798562946718618129950873362168657480262475199413271678078700384511443962861258722278817665536607245326172746910471093136649045512213284005837290895106828438302369684920803787455369780053055035861355449330619823479113378510743522006446864967658139220333666420515546301784009762061083931570690774993886112381301246837269792295068944381418906435916648921346453586946172184581405034342887550951717919152024369428130028739455418356049343103071413434669302299719802532236159502920162701242477476234297315872619293792584081464140988599673272586149815619437488764187875770401342416750770200554573787831266523152961197141465824067300273696237378808173441051206336561567947238952976704122739206761077421497060139223394358889866367466168055589170037209620824938892297436666084435169165223081778420389463317046417408762035915140894999505982346893461742974989891646614860366932330600873890012946116710701974834235713464543104414323964498030586698299346909000183606800028411103220627435853668405128248435164360888828567246268376942428404083513032455331047129783804005256707637978942857023056709569141189479257535521279673836699917140029143263541417122243140397648604735156176024327798616476902116519927184536105015673835803930226589409687314815588848038073969914929524416988042285749465282743495060679592441601840097805253591020413355300502158450500248491133978831157672508281830150483860589472822197796385586769016844596605502948037005452902993681265795062558770529544484936499461548019645117122905736115297236876586519490645716956768474793016777909958597086922026162560279519762710001034910855080742607339743810008538130976368656363410063280920175281036663668428738701497114857267065207911763651803450068619806912904896011379789818306125108583780401839691227875455532706810372795296579159644888820105527888371885225349259541091947259802571859671806959858301834933971734647795047982212746155673686414161318847753594974117640760574680665612697553969870848037594094636793271049480781546657150110088352704142142488894028680145743737214134989495248390509032922489656067101154673139020290278110694276019074657062657298071641508157437873160322535458446395311553868928078773189656689098041193662669331654443648650372371800423700516374785461252269547134132120433010873328225151263315438772883661101268014116515294426407114467026883566914037861939245791026340917166668176402969494108282023525273412466637075070295673954656723681918805284215201615355695948133904074968440773125551308071142232779909528481718644679409120411682624489119841747564875080007364773686644710133433300612392322773233230742493566190699299143433388586689615768654580303373125822572201468742100597371108284187910752935428693254600734552050159899121074752825832500389226851387207269741955007977397309442724391864346642013597970277905000637209611384201415490441420144860285583109595368187235794150781001773150231921261567215251023705897712360627336158799431567827357102260053542982327316499319913190320102717349176640024910268655477624017543240732531025203640474106788092682776490736823646750829551202751687900669988101991398001747104667120686187231530379524275053926064993408676673080981273292345426297169229169266637243873559153954497524981744636664219857993663675577037723598537960288401247118288704420514283446130213020651013933675647182270632496703456451822174562314635526628544268343974291301360334696032550585418399207284585458922477231940156088966349462663011381861145113944376493366020854685232287603668396646146154553114731970434202547100903844665547594655997141934003496662712566007106536567413280554356952266302258201291390151978147639220700449217642492145965369411318245976902583645092869389510844137638257381981147076806302951296572954712593772819955261143112397154641827817328940236945782839016541563656187098416393379610643343790300529189421641310530102793532630268773099948743020716116625313183384759259370747674316568601138774884722786102687483072778672400394578546138714738743467611837918360666294062953034483455941533127704242152057603572735777908681759924251329050197876994957083196372636929362263765200579493830680512592485146370079829135173981628720831949649593977526357319964461718328868238604683012781860914951228327338703135774766102217469541262516293833207789610249082666366648678337502793248060388173047201399238934012908666898274184465748321013066481259982919242183827340697394119675167863654030446713641789252152371275330004963743402573078642318492633152645568717553831599915084671008054458671784696820636418168607942085212464457189820252818711696479451559800371023302089452105234642985378266618040289274076799792084509939238241022617281365598489681823155986974452090660450386130191466396597816686935033840629869083322216566908867712215513318594639668049244421321425267499357208975843032315568149702164489615250818166328965456256820268933274842001964148246733197951162126797048909432303903940328941697912596382411665768906232186761437439303051435292084678701319072920931874822189028894007028502466710805620887126436694418187251870624732052689406810365306978109108662863277965276636794092539385688324340870126275775944160029814497622196715949658337361282585954325070994690225275738020134473907319507189984601715303341101485178227555567910307459211226225582931235860641279802935121699641376243802433709371718344967263436484352112381345507002507438246980469782673391757557642525157956979614795519732969462562634787857072290128521280429044947379275771126423153963113123884598771875755374994291172143871138065780367131047502478463531275124465812141244947605788044814863951611712898111972603837919714101143404210232516321186643085644833748189773875270618608984758258842213516769835953448969019889158455155761300507810816446051019437614958981595149410307544917612298799473580050519511203470857673469967153358204051061709797343957519616449510433994733366480484206399341626353602059765242983589790054448829625746592605825078899673726727449294145054561396041302398995918008633529653002139437383280723528606093817954272832936877220735800917566815759820983882161906525668663886318578940460801522315032751916006864558749406170341747275213873150930061879786319435696512774805924314393141338435113631997602417279623836088791388077225221111611613736018300251723965721677430489291787646131410445987399073059844836135221647561246490987693829394289136595563846984832647105765449749816763354801217594684273759139133698590407400770206978820133502792750769562202711814064554111229762860851664143545412300950298104063400336781760622328907526385570082578247297813203204461235416561978723442427007348336135448984631489613658789903477096174418719821541637016281266104658698725173104399718996245737040263828247833369308492461508119681696079657126757946793453451617105617933062368743836081641694758466220689437699293798423744591798398747774517714002508229316513347729673892427116735712173063009322844448737313351402639122541744694792345431855851823087418757411017914381107519552023712896345734147354808190632105976620664917806964072277402388141090073419351322340411025577876527601105321452154263881185594059903757106025413204466917086713840519489350039309275658867388719476927885849868597101359897802746012523779876858036401419839438325537505205018492072123054296374601873464617976775874066690284191607988996651573429382618520692468465903664355653207087345513296427152486362543393528592908909533324919475510501660292908627780698971733540549270264408164283856454775731092406637471064616819639806465430328375062936177573069169449986239428573117318987168439023750239546854065153635979884540518192351007501730329888679133707151317735504440551317954660478566362031883804650780825498562612942215201684577089279620838414892757308989493785503114772784163934952643609602811632694012560524623504690177575962170470380121784079929320268740813092522763329996405085826857085759864106794975956604483397610511543558251303042936719488872830848356650021024030771564862712455003265995451177453834308520397174923806300214235949261635835539549138592359326727593820782267810896805003368630000908849353460094431119660247252803370346435161804532928618779967880838040061586943421562280070191320790334993472665934423158417146708442882159935007526807765012979692166150701815527052788005895514789330049384724077173260407985465852618628769885759980858947119097609572202262728169632940380923604910572324567529584396731933967845395605545822640959467183408152505204588040602702056914323356025141577178790596746555035823602292294180999637726357185727442768569640384754591381120842538670920650371438524291667764995190482274453209652520130523694234261821034905735110289461627971488589246478782951493611296164845865005297245944196189868351440519685617065332007830324892464184537777696003237095639319684045511463047180921098481414711460630387625265324549261015840564731906279099606369028465592267589539020817381093385852245369142024625934866274129304161142878540726589431181318048237350093021423040159372897335423044472469803530728069956857737270365350715296169059997213579632182672942574805886523378462179322588218760146272097157520824545705998407048874520725504238923987864748876705465283559131376788171063582835138483806420816801032722847399947554005549458682731250389621586558831071176815636919062222926968375729229665197318031730622492227910846689732471828924065659555363821098883689642165022475225205414125483770006809788952409387971482394680653174181793335356237532505667257082711616652516341979028686532839341274666314277743311881370673398120781114521594274252742719607767083150128113483885628949232530091587305659450230904569886359990205476300071421940996600501564891765139251293500173407730697825998148961747318325041450856752881042475488024856478412682384290105033797118229066323014672129677689081298877772217075994918662862505354722374380492879469485812373816891212410463793030155139808067965851414691025845268716260971622665614054483232631628450803226888775716014075654759443478608385585963447994729428026275119226279677307802364258001535211386320115892739204383658053402632960829076301598908183251319027318266417033250706918568396683893818994877638138229153772748250267134491658118102377808281409846045126985600530094077812308244623619183110055396095070125009755791664902922803815197368829982486026009534790926667045472787142115031459921881005582484283519131850555892202168568466181464734829915591592132131498023638305702352916788931753227239819627037817851048338959896528624206969385086353891711021838266890446090896947091004620338892506449316432982772597755116672574232358606162467962161485444960590043624130562987057949792379733675516473960063814181465266771557240944761013817660377730596031700213355639564941516252175091244332339200850074124389300825170213579354148993294239728000497314118259884237522545259465183079315980893875831771645413129895004711647484970378246109323297359364630252839065001944585382001782819366441109505103074128419170225042291358264536103373591631738828534671704055955278248965098686090697472653948939649183782133144390481740279697906652722617619666330453505533509178488700712651803160483788535729328499318027897315096298090902792643330978300766445751963920679941010718071724001964616074469581568357453244010768863351592054734950963278874087924011368120781093622625406552222477050766025041579738539675777110206620695840383307923799509665409265568420075814145496566364321071606976220526482618555902494418671324537255425154069827341094794413710682300934552147605837713391831291549728177381002215487894085660960384866282515849315934559340692606126546724507551102056792087961447933707386762933365133450741409299372405491530922239896495053298735568860330693820370507537042700913195562054834153923625457717126292185332716050534321937403921434490999114886961379332592548361616959336192567665533218091798855432668078308654013961511318851999109277297092306810336753529753319843440326294023798973510370925666579673583142940654763284006389450696410948485891834858180209628275928834712436727841706222409680046847910531407437391896779532382445020551276646258473381178312611281766039035163280350333510386074764217404186470421935772055788149146585942228104105808169030285011001028821934559238125535558232871230007619887700181085830883418358582065185458314708342955950080789967215265596526643999012668431640882189299348648351256172196491585783665379195146928578744589308832202948810226833426381134048071805588033861057773162894486862393719249515011868375253335055191823490845070960715889881946038688013493427466593130283663442786626331843362560541413441471894644374698399558364632043267388188119938671654009771252711845859553532136327722615949719851023375323602553914922101085168723946924200439807697937015149345857456618904100696904387288030315786811647138619623706866615186307726206469849257836750649674352220749372893168167830946702167487488804238950471925279356596283459037546277219893392759073374916232845701284098886071639990181218434236217747350552752980868997486537795705725396215248789482237057265622583462973332951853900979819031297664195612148674961454588329516123856486333120120310093152858555795625683352303459042463430343518181652900735067559596613131260367938068907202083442254309759317647036197870358257947354865655628772584911339261387109308479986664859820280582340374191458515291480616623269776275689341525131963935483190345848069045661973208804038880683875222438721620959705680329033691093040170909393472201698923327382598696243357989304602575169976121136627054512002950524427316084849015057109449816092639598368572362747413384791611495829777023042714670213469513884085065865698518062941043984118457818918205218830993477094595803403082688769606961892449399008926138878466048273011001349684270996581814211232853367119445681470511738183095842245680370512060802611938261736396762461413426991774125323417954408490640072337729772057467143783271707543956604572221443699597146829045641900902874872520524209078161943395071067646015132947006248501686366624535965546809986939471275691101213912514952281833089483161978905329662026369004294598774365435884972586211656634674866058891419890471674119666357947320591901945977258511900685708978224429338141593460559377809978796119054001734701174596041434878084014029399195877609517800945601052009454546738752150505066186446209718365518474430001169233379453317481218257711674023231594238208256821754504983918613836214968868474515930198865607075906771915774420024373970642864395849579149867671113581570859620389576161368643391164017584792159854083168740247458483916055817370225443604498810568279050615739583139428990044031511483266986465364271037284481813987234021911240121202490890994542328359286860374341854841101781763883059190132273403910261766339566663331689213399223797767730000768233546805214720241129766310068407343344710763525173910551297473496457009741240430553154713397387162710215213520644758226832083897911496076728145055191390419190474709031107049169293814284281743825240341722060911960611710864740683959067069075312239887764367979645237989563132241308594146446813273784892054033196891623437570509276483500067919098923977131863479565567576961668591474473930081279352896340941210033274911434921064120919490336920174439151565185164799358452164139710580642637238715169043221701068760947568672789920187844637656236109828605613714344544955961262505782080862951338613163850806120022705926774760238359321366484752001093489081282258469362541483237921582639014159552258777526281210702983392256230578273973168046789144843297544877469990733548950877622393025008116925281320426990558827370538258543878232148620863600897348699030735767865449911245013887457124128313966355347099061513837789603370895636160711261124136162045593119623392215873039559100995498044910318053173346143267612144909002606940547389276479596508476047165524297999494275322810725315443630555667569593678124534972781976107680964455111429689882877449453826394436276367317068345328195800391830456728467096382026902605352784564273137617964919569190897274928730175309206586035881144649191740690870027508941388497149733629752264558020188105546176054412545141245367763187396526138615987046484304199311354285403347620407510678740508249819597439272684490913147654995445808980287505046076426172209229954789479270033876321151095451753873454882971565002282524690391375846386723009112657093795677830356035681425326809604152940314069738405215917447553237913059413600806797757189317383191252742782653376519140879725143926947370507539139277737763239592339152748766211169993275713329419203057772676541261194470494220036198707371149274159477163502800102815138277081205276664069071305015958593603277252354936852852803135824302982258509287310816325520830641948652766187735663748793204023326731328106295994996080638632413951350269563138775365407394837656434272512175098415806804623535470197702649204898374180821212294295485552722745847531203764810381237702463212852405986724432470676063185906220479545018022301649293463912562559698868035197311530214534682272855835143098218520075112476331345656817408739792452080930132873193294063786583318899311850242962134022729060127603641502684346295529113108484645064211515568172820674185991253558602345647811778124390519923917733155834071505057161535363417152615413803048351661856462819129188832133157260323870134072522864614477916841442721063293898577410885041447316344868834394710381480110810207635640537773722207488810634196653220130765426180827317960614018745421353715598629759024636220898761682962562542456072232871746388085169717504467125419811779499461153023150493032042083647372295841100922054870719293826874725764617756580938227087757649110325263008955306275892246483366274736930875740522559849082377205613871407592099447591463464651067589179270348024470789573138327476961645266300423318435618156218765967961120929803450552676015833075785690812146920388876913843069754587688209986308537755146387531606152231272759549231308406841085284236148618302779429245666610281015664158730271719554356565356708651001201276526763536580269227454934784115206616764017865781469756413983289135309698356040514610122199949535084895114965736746801104967352809179756778272284964316168703083846314540081079733153650654557220703822798868565138770596575229271273312626856413707252888317083739433844041340680117626260489679301963818493750621731374923522383824508766713355849812615931259617565384614538999416610109818489086219442378727798995594260833692923990685970415332823096987240601041485079198803904459923295308416410983474931752668893837988037376591613811778698296721360737092350220635104235908534423216190945166659684140823338831442446021881161480748168155083317757344357902853442273117191783351405541881516184847202141912044327754356203853190403383238646906479683329737248692997875170983226926334277139230121419089959986404131577163181673379251815234567287996098930173595753103444144799813594276949173679960584045238485561270531953620447474767596399092566780140108047183224325075782051629631854634155555558202470740322294395416778007442449774967215163139827349789974941898558764118889102108262088187445064296831376802189583503685681670467254736184254455282372688126310377456881283379549602985087416208870702217867723467553314860173396603986579530432960037046721311867247904026466735987224066467861519050551948182215871716589709735455328785253955473241358602813721770710233760147851823064686559117749433763505411937100723602098629755639833210575949265974626963123576375044322500269951782159351827997337576531141687954494652355209897101857013557589158889668603525404838096205568299780788634978960838896009634842336792544387619600088717033264778727350801594825760608431213132540890973587969142846985807929775729130301089489483221458729279443257931483459979948907959694750366665586496117816685334165754337299981605425927488332907418178237260711791300953720350782474196147875230311458185227065343638107169844679478289989267232327798487316929001319575812348408277170100116680629836695142592634065363328856447318833167799854779403611767749934331693626108850133985822963576593717559320839105810113766236596012428423839148324258415978494747417271693054882456900051809763402377123777706472188481801859743145497065618687566439525815474629380556921230072910528665292981509458536921976858318525716459406959269113031723125598375848746975528703158489324548458829265686217103672128542556352477937890370276425608341794308118435192747103418375582584584482888854412300199060920173863219506280989215981497808471667219931138770602791026129179832698809526239521429311055206908558645960061957807220319358003969308076149759350682615067801826221525595667656126326950108393586779167482116668903540058484167278456470389548439674424280238014816367887199127872993035631950443829057632761013938602076150893785165958996813915366530842281913437352723717106145802036146912281663851232114803143479468996046107675393078418196813197880179919551126518463905821207231700073931319856054199367170593662500175916286565713622245680231327714603736686537527796276953573263895071382674288636280079876301431620716287444669523181955887713107270789811845799146322598846464688699093834121247592495643709360681578884390931801942907100260510066133354557367381380080911369750386305591780604498625319798491558671972012238632227295864440914912712858367281948079419447452833815017968755467963898492709927960305601303251356967656711423501316813140545283636452203703564756883011895634840232597944761429670244846264872048304213018256534404838949300406167166705625726466596594299065565222055960403630370715247969558148173614375894266308088643232066239092278088520900164061722347276384186342119410331212491762145605801372294159095109230183063331284174584474004462316731677341792712008309175000592196058173402306738675392747712519752947213884132485538008486183148714844398315853635010464448506951974689649288274343924085409268777220291965044439462900354526784908534810082181259590145940193403882036280182753660128182385156523130058691095848398354474900158307733738882889948579837050706106742715709856059846096547649102142088136090141045822670398600453659669050774199083033892325043007084623488634603771999142948716875400396558179334017376721770098688997310788157228508672660680123722921010584392292367802256610354556239305205137824742273490259350816069325567511706916892761218979300930776541278043489328997274846513599502752809798511231764229325952214819811241796403333936866206851754076026065423043224737054426182738894845851533013104100164718597411978524060658720654191401993385374259268565053074120819772091038051766186355887847607032119534944749130005630400183026151695079920171181253426038621536324844135869351922298076550545853443479845630668639101192861174082362316721767220341762385784037774727218866915397932031587326008761054804177218617125097776587250581808143123228547593547914056323678968919382404645338122423264673855449767229163951631764255621706852377679263818007941525085787836797360898463947047543795733364948956029067555551212198430355952336963204583258019684446023256196058460709989056851020054570047618902524839211289637580654457821214179492854117747053734819500753711123289194644003277779080195993448251342988485469506706116019127813789076726603092794121250408478335817500137069850828685958186103301958222546686056603567372482952352859303693958276747081195432476293241410162234386254833395228429879985651768076953119658282275881291231985332208106890464420100423935712482284158608727911224207111222505318318407825219841717018632547177766645815930428672533738644265738109258183315525528498132446449426521650072033624077564736120600631518151478462067657961386263157735104824735888936420789237884494565902387828684441122641051352796618649690620414408666707438239262535608038313991581015152445356984636818401873365469594749712239164310824358078277384162425653044978696471506571530516184014975574207254631934968841227402388310073005294555415586536711655684764979027041642969805480942860156542834152044873413630555151629822251262401036856506765803817238553003840404765134453038532349446654621867907115066038464905239973263496236551690453764267506772290259776137240579187063811224964228140811431742472433834789909510003763674015670975658401548791760815844224751406463882217032216473756211019174380389096941816982893235517310988110482394184486740377821409016177133320920510773799867777760198233001396798191075996509321945588560639790333735681851662229315298652790739839324445089697806498559860703433525902155425210895666838348191278811976760365011436696940175854513071425173024380698690857838223669442627404654193861910250874215838359998559540377787410708429745726263498293915464174465679208071368044197661048101873539397020896508601766746702048195130972550757247859094119183402986078811524949490210460851034182530556735645827939239487464778445999718328916241314933765975219416263417755602652921760614008445387358244382419696127689304750652572469391129468396389265565948179202457066850197961804764220484244507566401595307292709601694193636603696987005742371828834335814055571211005743664458186578962142228490508892858127816433560305723345232805832532539776209247937038943893209870178718681025002703276178782950288563280196527936691689814714346087357597985346865572430186843290715087258062747131781160809729321142627501795533944479706937168392714598566494526831247112687866479472846161907207503530592498797251400949574924265095760176525677040491875297523285979564164945084707219965278490704521707434281301939302542953446836226866971253165176264050881800674901564689057765460936788963467956927477415700044041143247978980104360757502844325029115703373834254170430740499202743114689892167928455371755414469462534671743741210135476452079830552120063522986041474381006258354276835219689140454265802755649984088808470533965451487659415029692052016046428016486413193156184065082450034387305666987348389694480322218000143373255107877519416986518610735928798912655048960152193437150112162608857696408311736969451143907718572484538259072647149496865870692437670787025559928341114157696077413330899988271353745036984503667795881635834203669764906823082537968854821543304439327949860986155958327009648483194055083345817033243753878230287577221570915403038911442055209171624159626253337040806319240602366604151770521220745236522011380957552525342872432427844081926056138532989345066477140305138879752735467497327231019498904825516781015250064155802570167340908903060339700718047658597470633530982894141897378303964281571065598892442345452712926934081513605083381782165368428106696517031080927846039270276889602064540293034958383407662947126465554300967711999585089780829327621051309457091755563675266700047862754432092937085346974752039947806232138840684182515725856715861763626521220528714978009782932299903062518400831827770059119701757379570760464841096851938056833205491887080227779519689795725926931244561142819412909837166461687961195781531868317967353101468402140752173715030477234804006643106744392507288060920658305118816089728034512198686821217003293818518769917515051511047828373048916338064661577385739386552704402540425703629234448863264960229166329731747676300389767590987230843535859005471804323299146456130394431567690535382446019455265495909683531920038018975395907174524754607618085130222389770208716228964541664973217693510905814462902959878760640340066682315541467521096717885406257047564783836457029393781826158903130655299269927925923946594279618041584471930641726853923476578137633048423129149722046494028690753708495311779092255177808970525881509034393588884110240810873026800923100122244020941965924348043031620353348409475940732832439111546107751231765751089302241820455353229622374842363260443964425691826910817646052663748361009469431214001827140244636137056359500039898997244060531506178843074820646464999241086893396702861557490536397451260538386409022763193063630419347974070466318324575055191153134527525546010221098040927122288719415450306142413700500396152529802313016034296935209437735267494286042429507296318146597813689689396345250272783296551458387040056984854105190531176048083030289493152208085624826915990945591110642667676254616283900986452248170026260351414826618132045565718207242115601241754249430301388316362952706002182386120808701055749693822507895783129617527940796866945520032686259183158005856777496369272227091596661461723163106331296505041429115196523956985671167493605735757249529825901955203643088223319080443364304967908273361434692868273471081333250373067804345080249853916991669968331921443118021724526403658957488976396686509097889355010607003088489655791592452902548693573582639624153708827089794868672396344151706368768531455305221940134659535183834916017714674326063455211582551256712497452268287273899910351822970720845958577857343741108453697591466319041528449924227139358423875202764936103139985657458865213251022267838104430197335055318488177054538582073682000702495713926847894569906967251261835598259339063271234644157023110882527701147451162846596674139295791488387765629423520192462494395730856812107834074234963219309575442052803826704882018430058702381226769501644596695257832924030095452528682831095415902706791461156394451063963958753457069582645469235331469402398370705054776964756050570545087633168600038683192983298480445172396399024302720597827282518400391694912532995924344768792641874269407271616606899913248789962843835045566067537471850200371495280371323857028947855197143552577831952851696438947223360372199562056504161702145835564352804285050037067286566557684655403467503738405065140804101440350182641848069630316456600379594594109251680401633960391591038955633602484489615269336334421017826399520721062845595035048787715632339255030124974980188541533639060735052406166217848047129193064609929260293809044030920353703363900430370500226198304849513459755788615201657930631819851424512942891212214060005794873754735919895445099040299393501100359766239300190157963863383114672736578071018536275053175576563808221905619737801471154370573407761863016672976597564101505111163813569754454119838827620460328323950990039079501581081071411907920009433450117582291136812939761937832023823983360785530033495860881234305732971511460467674060801440168178015429420964113023779870214779960674308207225374827828243720428524565041610728407388248788529855173750288759762978429503915922153793625219483113117188227541195165231500844728068077983501759163073141302069856978754002335815900504653378563011780883674543070249183050690634586114777634653442365564878778261982285607321690108100824924344827157579702405625737993481910927284225118118894197347325330091094909023992113974678749517068145377547506145678693776788724701420465110565949615498563350608037060575704567302868204598632524780826530188525932891857619810020313811271120975696609479840120783694464960307114506448468382761450226353866389451920317371183557057126471630111994290329781898404056086089708602879712704330582840373871335821310431498756870968424524562781148790136076581238902927441201685453346827734400521400466141094644921317691062564997654804555156298881476434799611912502797880038898954122951749757269942534384296601605682486687023450079394363337065019043564295207901120859728813067140547517945457525409757959581560679597586798978555398752199955964600268808706768008239501580595923435989538940449798491857996981080012074463180366384902156412940519819348000753669998168932245255454481977900185439074075828696692545766604070632561235645845241535320678792392267418987535131601283911192537748173645019118704028155802394398249361123446267365435739269535869777220125792308025962409494467515074742748133434948225353435058355960132521316873736232700706694348895837463783407502211031289910712324550225356544249571272609055335368352440799633510242644732752689629418353010643872877661361897157486143078936469844838971900348746567482817798134447498285992945613863340867063287675430592750066063139114017960273958340680249071400842606041085694680360321329938088205478161772900605321496221225758161921645667737709699486629023583642444415013606064791883367014274648901096870028949465245785753045838065080630303922108499464161723290528063442248559102418798671651802173603877562716271901044967991020161055015380558558046519982257000399358085835276522159931741606609330675332471084693833371813887773650920552760741611024321373714579062259326824697133483986488735009957050505939964577975264140465087326448691453693749213979330154820665527923204889439035118545664847861999083694045624638015643365571501782542254849237165421248081649837887722136910504068236097900337673777160184702649012903277864490926077390292304238161459557891363886445309576492703669234468343216168969405927606795143997387807350950291429097198687031173106867385589559005302701047221263407877823509725810501378744441839308710935870155937922839895320333820609419841674451534467943692384589990020121941215448741777139060769053693518037548331307208783884825358550234237247389399333656472923896478815959531533649714891014714159699187631207883222908435591453956660342828045590493192207342973428408518793249949341619228111165861326088578902060799995397984586194397917363919586929957187996287499352998035842405111340924489394788852676189912405976536112730974800409261045981364174308172867116868633606692564204096311096302493808510965563678870906631207237334870940874842128775908478687534188931444235530296507345320655636116064326949772251367082506755175778607251870870224049249574961338611526415089603101804717587865425459059643090229879095466207733475376375474182041091955302768776595289303960172680623897384074345502629018367295511543718121135262957982341606498297438596871872570109638545877804655279037200188522488220154061548746257268741900670710741055553491203337175372261116899591174699253956538630424229294423060684517403438462883289981757487512151372155166833226268852882337585299895915127395436866269387671863874432573216818084318942266407103837879138556298151328786938754252673515351188797556113253767853411487504476065049687882435370951035836580020995884571727118926808597725936603988243874082761522672714576162267473781746546345729943947314029643871331930048645503032300301743908328945708531821696927431756343710259018132625619678156012098720700342086938574424790726141554776516813208982855351337535785810698498747943696106949190198897977793595745850474136975043684702361327334456246772266462873970113538088733272904624984628631368675742844780981515835943751248432622911333705139732837712568641274761933437123900983021495905486766125335505013834547945388792155169329365081937573489498790825633230738134963643259924946435827228539545007374092949207971138509713834112627580937225386085846854530485320489259561647905696553213592028632542837439792843670595525924745873345081042678206204824616767443125552050872631429379170340189607139934806276213875654446370576387899079516924733144879925413114824526148987810008832783626308916234247598468911187954503677108546292135307882247357295456830523818598895735774414363904877153136969055546496388670122538925347912001091134802933339400407764261189994850847590629081959992847498482531953677073826645723432603493691602367301139534990875381180619771655061764519321915007858244080195816960862698724456876439682933160200849798361150088216077164419464511833519739406427417482403447660591128600705022832349955150739444849191661518818661379441046522529060778985246782834697925831882444182707555690734939163242096709464166548195004536698072973284500130201970572810016326401125241232625926627098093926551918706002288180554717163629476838399679596929499507249663062268900698806772928443251730440965234393275027611356079743828851698996599242845564907149984762143750068508322042632093486868410784637995144053889578194417731676818044737974106953027375280012714344632932011266814006635289487836398343570975174619117556404705612988285944187776194717545763873565251630227078284880075756146896512218356535949321768433922340840340554298501696672875194582446619773513492816487228737031645474606082150564542774469057850126191443900129309854440018072464630122279264347355471723879211910519345020157410569656346089765749463040519193415804275858745755468006118231040715970572320094695098699024891045686994586923674398906881689475433274427750335602889992455763283234384702475679015354179818605559563272595398604399327308269717564892749335737428139943214343417634618703732804768437263706098086260172730712414837683180007651077687686332039295367123586698137311960254774803217096191782087660010430240975056387324446297688166262383706803023099547078965432773198926554872035049806903870623573163130345533944843357784877705301757296054832412938094099927589693574125413596754378921965959237663893346809225557874837373874239550262000243690979588438221146077523241007136268342686988117760142557104661826854125704367064971137487363498988074136856423997262866851718461455848154641964285140667020973936058371289823675464450539274755484571845815121792819687677729449021668611866888114137916271018793428878378789425053520537901697931143411673993604194541415121963829565340297869705922929712533644355056263084339597120104534951559779402624753389669986761815864673329052291383901865111419869699720283433669447740919079496577346805380624836244328815897291842723349010751079239354900896820260039880978486007097232481641932026000163662739852807455777222315075375250557608303356934183803574456598386326078099234689399456159164195587056936233897710507754726148686577688205364631749362779143739830996773701926544158719531704651517804699812517105839488338442300709353732013484741706941317518440644337389353488204606522505678058517190351309143664134074427125196027153094494306579165082783728806815761963471603575187565095755250511660546908490069854668612987687617141346677108586860412318028991427011583541955714796612234271362871165644959759201174510488170394334730022400902494457300928669679203941704869366722258098523047473830302717954855578455237189353618856251936993104125966536490819020808239515349880308039117470394072764054994361760555349116667148246210419643073781810529735857364586715686278733230124747354756654412804211615403636263451558193685763428359967569143040227394944022536377752971618107141649563964761851531723642411161300287569760033625902943165377350507923514297921602745884830764216518338464990838172777025822909885035284122571010026467365589244208482915446295744773354330220306554429124511727198741597093619212695872572207982130730866516159301422218538446561769866136727720445944649423277220100367416134304987662278600195482216676988130686378154273808047755112568846654175021146087086889935445233497239306853774035109767392144798763315491142123459801884384093763956482412769480828187700525219084014645879595679483290660153098510860321352818040800915817395546991214514132839955983411166096716524396218452191305647494824872563928527363817206275452163554649296216566496459119363586589356862020409399974203705955667837838686606578374925400012551439054896969785003257624048629380346152026770919285374023770363453766078599178196324740173756005044775588234991811214403308363728729107910511838108318917149551443024924870332254806361444960117986409963007334536275947902186322435638578949131861277581734337300293825089045309492328969110634582859824868081690247513077480150120945935241770575404646987451072296452918360966046260674836471819993349537980731504001833285825365089757745171388072280916466823858863830977982435110010343098201903735479673548205494291789541413823914895188190262764513352241668129595060922946682115940698059422204801563316397293036942522135594638123123508210091095098312784367551007940947630489991069839354155872269681260228877238480833719856318792568920795760617097342283653268105028260971197893945217243906019945510572625852307254541921940391747917444362841618957235979039839219381951617356446109708289153544156526679554151687242475671264583816348676701090023990047004081140178681327056744393077651374787386507310967957513554405468132584794764796658558955935198338069694594643198233718166585473631516487601253636783974603917195825664815716827321478815313700121441834498521126002190128491103832075410156142520376826991522100824189191403663540189244554407387058476158273214763312156974220182672215818791508981714179370521211337527489974304018852834828751236396167955660845601210879480111387040432171599180529138682313965496927942824590283672107769750406059883038032050821383354706347189224827778850543757015415585543323477057494049240249781449458383068588403010875397762619624953133138337494831584832538303832915272921377767582491106605203938738888834275506031056084778583656707554733500119364896769806080599148097211978629836009533780741753084321367576949815803117348868921574067176060433154214883506920970450186188707054710806597868162788204076304194698663183671425815786601638595538401710231865560839142765439081112490066798712856931804005363732293534557263589384970148279010665680711634052056863907836677489849974204333881455519722209506696681496412309599403696878723169415975514569879427363806753916534576213051685800017022477268781219078205287498669563040334307343736066637927613144756817903606736054672200066333174406126645898719984775394917579906878933535115777853717496652190202094987104243493314957987455523448079510858469068272523774250073561177709768864080232858881811109286228146828008706115479168424000061967924611801044945253812634781751564646746184173979979051721344150427898707402696439207672450284666164124396607182183724804280704219312246061692489672060141538275786071197972478781670994064292811700254706031046860522192505820622986591538799870845327711238966827484307674568985356532434456385422573617404250483642043178547506019904892330683909909996496446370525102687093226704778010788362503969902389344005131216723472418593737318872855454630228028665616358741042301918000841665777290491482655142698405008467302453290358317685188132938930830777530088514258233749058559424347219017374675744559815422634072611407451619228548102645893531139580350474314963669987410311810669892542408463936500012627249868625302126873439171529649500891883314964358410226342885723759037012536148909052603706604093564208066539414247305675699043680586403612359535047580756172399626570651951831673834851202006069523077431519414121152768543465920021610146177296915342539830062895138411848036756854669456063681203644961493819076120284060977882544355128095178865272790890443988604431629150772088426122206226524980932963872495221129096006898831343119289746429408913230253076302291970049739213912780794475654048974529559635909540951404284369611131079974392421114002180007097101074886540882283985718090985378952633587729494396140026017493410591311526412544703037969484061773312114904131556867703265529921818110987085990305420470659339358556393395901486572580809705725122199213842679702694997126675726271166904172762564619258672534213315270786042558796701680914082112366010303352611568557158000164727846306466162559511633862669007824149086085549664576500306975969898482233169954328857031300397999634331580039650568998701158278279582008572712408772462539631735736631284863758562674031796188003343292440996765740050717766564559856535729847767663557255253577619569194672781579782130079212012447772619403426419074935796195741856795148503244559927600899374797004271852483960149739413917794794505080387217893927207842347973047894086398707119637254683924648290002159039611460035878793237614718547639331889971615984648548411299695101626888428094067950376600388910335917810076453985636975906211377580673261100792792821436664376066959165713146046482147696166237887142736266404890878371655978835043627584208696620333903338720536357456873668810373555965047595109504408564490575567757031588752844631536986394345133718817366851065656126735164678151860210957110127834323361732169578838259240726837527626225853407277739415946344477795486679747198000680207705697342378449453375479519895556587018841593160121600621161354732491779869253123096328138296295669984908906371419847085140741103609699571113363426231463411253393859049825479429770423700510033502919106938063244934030123819836216605966883369596688540901448003086599690051712182861671903360442595510987471066764978913726878466866423166375440144701897786837199958307172201478993888297418990176874133878658875356171947137528462826638468019366542517467539646092824223781938808998744295551398297347178280585111851487621010103776657704199235116364074118834380849791495505690461074944031766088464715876661014270457990632983836360946262134697816962822848171172726722878887443933144899205656256341601820433612467625613322246547362922122585335373660174962264826966929451302602632265973835358923565017673893281057747999227281643758655604388266241117234327830465617773286515468364332312122734504732632522281352281520509929946267024775465940187176756711221782508428318613177914763350340180241850167974944343819968314510180286872292160602020140064745641654667182625273022144576661264351533207841899571094510119095007956795555333217277974670265529509678814656977886663984405859248140224181236670825339863061879263426112235452707918831612413656554944194095829164090525086057163553145765388503358389007449790817217475771457101175339543368531139498403812483340547144786403979557095686560977225095407602156987669451612143487082764127615684980129878959820890815885857688483902667400401439042095762111434120887750762049613079405736907525238396658153212922983112767995862384386952124687113921718001264346512290256746430328394074282492274440896843566454149704109952224889339555324176067378643914830490386763970432127436818731647577309638332685615299088737185553045736818490658816094165985948105327605792274277701081322412305191908557169181369029798121871116206390643669413386723562817781456595468712445569516922962477008162024981117000959434858706194441453046941873465411661292194274471112031982368214435240700622429196301831730350859355966535228058740241827142841166991780113541780256625297145779819318982459597710234371569096104808857626584371701195918795329007212357374932717349663856058880563675431613702753671668304852018437413048066020179279983042790900038357118242265689005582994408436704647727790186028186197706344706643137640759837261466079300688053209217186840997619280797553451699530592044223906148647412205319994986968466371483939004434297390196608936094886410419147785436561000398763363730506075341717702990424446246896252885811913316855542144822999711269012646737877264178817958647248924093367707582676161537379128568242934749305888575050412929020805059874024037722591282254353783096139444263619742560549631247018619133231759247579806845339741704068100854820871052593388141364435602310523975798620244986466092159872725193549585388800634820914120664211651361249897643965268706978635594387669989168667311672104520741487699394392649787427208433790948029281206840876508180102373936366196934880160595924159827110034932671459002205940856498758157787204809953624554251078909218358010129910871692976277389723107170965791669150652514378392840252923260961829628424389739893789344621019172290948790593192255994485811091028211339994323634518103031664165036050404763161129691046659932635540510723804002289268485789376243922258640390556993171844619033322649554702411095232509396072495396575075647689416977167590400694374028669367236421181707575341545030782586428108500556560398992418714493566361459987563602953128732907783562134388199734362592796920541514626668147673646663597281410500983042680059775162770634757048914600461281821772916836421252723843069910028307723111499846761784129452927939001186935397843190881435291801421922150443359958769486324526732798176527444227223135642109871697757232557885790955850045548957111880370142335015072245039477706218582222068348648533268341060944025640864745023080328889015498265852113410232053749289505384659758400686256365902895326918812010738260495001849272868027992628038579484004971914593269250038569816834555802724257277443172153232930828962145308227360535060949750272090230528278823655776522836735669830455184093501056364866923638379857771036982656721732656289368227246681279250713204222958971760343406078470320567165175650699014794335030870950435995921670090033740035742568451948696603196203772999601710349743529372796517328284982859101319769581340227712271613852214225632271485063112395200304281281262051466486488659081573875142046628384515143381479656658304613453116276748356563487726395279234374596726978477206076431901780446256493795712511152877342728115148962097031730522352825579580266273964268676802308002748897912709755988070598748992722261062880934552717281500518464076072656172847364506781076154330653746555750326372469353978173099608737738721740779000924445788315225031482264987735040335954402048102569503329866071446626380780862755851497747850951880037159992734938667201257491713480855766369518107964030302587927848866247021414540643305071057287089567554162481956034352801633498009127096163138241693423737053792553831362461186338979231713848992288096273554214238469620561199753866628402737951660387197045936681197658943181822040821994374277641829648034321654099455393653105890337227640358713841128633010363433000390300472032742442967870322446248255234278482727560724454604972794278619702964477784016066453505585317269228963779729401197682640755358593075778658101811244216169881769436298461913433953753524528570148578766103497680818082001054745284318764338347001855624750492396722772316925879055011798094436970868162134917631365069559750969832430447412796405283966698870483661841808463479350418185182043229189234537749512022638604480035286269689734578262353911767930215595025583395999841540958296875414364437353043889902824598117491115933786366179179147470916851516734913621197798833541013034882487408717739164992954635474850786210012993600855330327610882660534403642533476205562946336709750499366256343692026804336273906338060503506538756174593291824599011905310549466154453890810283876342773594246199214479058282341987393686068028656454205639567210458939218342922757341430150856154978199029957171405830548446217655560449804897546037674523157199117041701206415068881508092043924329388242400368891045761930315505763596931790830845892430742283828176030252948881916541503266829955105375497714166689053603416722610873355007269607134030897649683850641440055138484917163509692107054322854618616982117906525320025584006482065662145845819865692773733523801126510647567705458138881378733452393672861568988022079038230115079647275888288687580504290507395688258747343577791186235184986362925091861065524759276706870860577097561010319060409135497007226247069682848948834889656286009235649474156548340298898894507162204020425416634830109073693985430012674400563093300308068015505981827225787044002809203611997199952420329171565606508853781964212529074702588551579387891638344213745555796403912651871309591090731341354924155566636916056580925432701777811336511452605853171700148438399069041462450156977115947425814908096345705995326866020822513528698909686304054360905440377602415572658730840814525253036397312829237005058970742894811218363584594172863807998526136628269183095219000555292051629820083441250882920297722090565352753481124713064779774660057025546117527122211719849031492925088968933388914659579280266095953175029180455347015227010445907801642711567959119934629422785143638146756670207411006292793884695557313405703763056096507159745195125324947432326368387870329761602187309473688924306059068120841678225105758947927743794430592089315731547204184795018713885275529088884537471077765604018737581373425662706303968154855047791976133890530806195300450276862397473870514697541003202118936469475312554308144003705478477840060039859859354106049707605556351320259777600725206849028292213954539218415682705749562526066283823937232391868806120262392470550564310884889619087261248973236413638574843943792686824183507299403912392639727691587554620641347097347448255893223918824252519023377664622081557334281939443884443930897558408332389861279919259537595103091207164480128693206545510854277646034201478206891722980003067047543441041900683406560798089194369090885261911353522944747188982733673081454889150102633212288782880555157523603519635279127007818678472281565129915048950533200522173845940105502776299793337550772069116238465226014629379650104635433937391333987602903941621137360259322708604334327444848858413764007228887266460256799362354541082763613413544590973013228907976174691521151552163150985277449604936603729737010202097788904893325825691119808156451241906532077156748609466380756581803495509901223606693347863299886351742079474934086442321886527963070206975418868171150161502179150578338507055203957333225812492595115707908354346073675257932713414935675280298817972902650701624124561787644277574507447752231836041779887864521398159442995626805408693177118672603902251141485076716625373460294695408869964680571705897551231194248227334360581414794454410640286994496795553308986752331258172225870876009743453490658495019229331965156572750397670747304762935241348007225918474704666305273016838498464479732703474171494808267928104517598746842484486181789586199541916429927236886061923434863457376268032342679859510554653100300661506111391743519074778820872011341644251706911645919950499544616673042752318105323291497757526968484578550310160151948022336067878246914604918443252123036315918677659418557666420589104472649744742074662241787667294572402840373442925687866461020550835541995189036787981583593240829082314629022724269487548102191821317594380951166170802164972451122189786655442430988990604673097344033685123535049756703432689804023321091256971222444030704716896137536449604111726821955599890163403683294946633041096289686240766923555003516881938118203858191988851506933118408132234816557091033146987749941978369540895818498011922083273217171520770127490619440702634222832020278368056125868166361358735342502967092575939508868194767850544875689194674970702545546286197931114700628664578250209964884730420905305648163175631959764107044111884371769903979914831035120945428431625810678301274840163238253980369331491912373867027248261260587291505428053525208967015280613808968731677424715847033753000380999698048389993108506956079979080474726007337740725888356091929777775413794921393771212750321298995590329696974336230402367832634632380079316379238034281682270243208266542691221477733036696182172862181107479548264387018156888180197277163161227816054881239865681233186815811771013844184551487586212182465657709561007883195961942718303972352904206089193935808229838412018167154856436342450415167375815139708028350167351092023455733701433719284681518201249479237929487452132841727455703967873546822642073221935144481362643842018229147633847391591397426597537450439588738773855671896222130057644083180275812029385702220087968035595853949773983739729454252910711074336696505930064824362616641307524936411118476948526353776485744592962061870913250408178348838554300336244417250215255178678527650601900269460089506032571110571890494317359746795839138039012072474648425955630871691851218080147782187064140518313296221201428668097439116520458510106409004995550924850680950902502701767419671474920244913601739618418507475390739421901938021165667778344187433580308081894924329255526304895465722544224390998871373528206241730291636684663708236561987719596481227364715870126922019364772383843178402348234467980841136070887659430149960541257692771342104080945855646971514969151414083721192167713834500474326666852870179316627415257922986864296650862549111022564210586229921208958282144093745452338956100794295953342907567910676185847333265375230612481449313893907802805890314497729376772314623347130979424062447001064245966642411935459438527962354871488038562592421683127184501835073526658267463640450012765287147834652415472983723365242271482260155330613018436621296385236811352143762078842177722802629305394149239572956240607239033593457115874975198489064026560257715689340286872549680510662169452669635441886595485151251672898012411613562974043245915467271489915556056627620192457828414169599314340610581913407394609328785473696787339753263144039322437169901851045532980929924645370943384562517594800608064557973898957013193970281425918976582063292869613585347320232543704124008759763621054471548949469042401671057092800787344632585512630517428800048442941228681834540019840815775084971926931411620273514691902319891436111535999374931721879087921867447892158094827840878216327804820998749812803410844996998899546981620936511601485029583342320289992210863776700373163425266286888105386333615974240389261766971423619204983077228103128215069744939494436968180113542215389958128063046230650578331217035576938583552159775106523656423065879059619695674370387075319144655991978181828800529473795051911542533935040144054142354537622818688360968691198638478615530303201388853338010413844046225972009538331839789033132785329467443364695820191708813250586836536349161191158138596647334480772574471395902294976515363970581034202402974094811384365921063161859898931204402484899193271191795135660156687624120159584254385400488389499282951281234719390638468237085789297806480688440371003742645105304829202685101849137211470460739871310948438042772622741399246767609072550123798402625978047165184253533453383333768589299563145912950790049613601648011259001959019084367610571460072545496938003940167156316952034226135426246108266817153525333095927610234454042552879881528334819550777741644541104221214830628541045729949250691268954151046408554600818700950826199655705568232748158169054477785627502362142710503367950913857510594905378211906806476443899489621728859351587426423646873172728976736513954030900110365096837649562712194425942304224535377977727312637140172315144253494403102894205899685238782174385707910080265821008375940906518617023957977010593912655185243828671205017499651615670580608674593430217129568685605162154143778345308136780922236524360418895264742396775422253938904868778637470965185064412487271592029004535712531703581444789676349645819244475746593087410589346786621010205751946257247646757223573046364692323101708187796727758403589328310820673571099427889224165737570518107291490504743896830297008892741920874524505034264367881192423207139118109092142580274375399569600267542605553705351764210602770362950941576543319169145953264153698920100125050061406232633699343369941221287661163720291627787043771399403159952335931778681169773317353889081248207681738037253052474420448126734821617432693571977693553674022025150157239342160642180723895289887787999941694264155267961622057541318933342819341280238316006771360748359167747237744534226045653783754693296855820425637794041738890672003788018065765195998273961738063899902843501848602672822768538699446361222881494765809353277400784962923763960219260114745545799128589310130838107552027453526566620364722016544507486555988650022851302930627733262950112750804577522684802427803921930449399393995706093217256838009588951093143879200228176220370923396162719837701918603736237017958687880173986169936588706996606614584302916087443873567126154162230570225379405868048178648515714761664633473328951935118777899138618468855527436230601776800718495532775806145348288694846000700369547557780920606924860078200084063076657431762833276113172410252311215660609913576738656433567307403468477712893589791470659465798279365530631685141951819677742122775456793419873058710164831946292733844678644397740734806105486134355440409356968542327098506245912219187685841711530092983759698927833578836219526039189411938985502292042872134319431010888099968792582573096041560441494533341988497626929683076068643646828741407352898044233312402884003059472272873569007931909554050026112098254316092475272718551079654698317164140009524218649647579556004190824251599492030356164783486529636634184151516524709768761128281065768772158940679245374214423035714244044752767776449899706032906862609559313102568418106738090213255244564027817234283919811365215513673422074287584174552507910087987289420665051484713318328314640117834302327857348448510083979739983451246256127155984753072509289044628190463603296633196538516472563227149485830183152070568278795917174364905824521270762171246191521678046907116696744675138821129127931555404050447226886237097337820079146372659834063326735610769193678193733011710935810242995790326329440969188784189392104669725571022985535847281667651040616481533913689307006671631771816641513364040492920756062292975918276678848601112071572370092300109737553590459618265722658736495200364050490953181555758338856575244811781958109642810457095429943947974546070340587612149921425671054035805684481329980963344186413839089588234563427704999094279265382983749744507846760892537815339592911828201152994125687246279156985932356507629295614465701566166965955470369545272421524490087575450654842096092497171765242516924640226816302604058073209978486337321773443744945172170143120427032551857418981425024809457285079147318058835644931370431245096118298350223176096021151710423352524153128642355542213096256963038070000181067030414976834956809340772160427531273572069088367862747836933321290946227761580770418471229958962111537745954408573439557670194068543592228996920411598052890896452205115341222436297168554206414056262454741798766991693630979133749827358709330888424489085649754602253076264876823369488946523156170264896746907700674077794415797168240163823063559002023044452332224277587338892031182550752831740725158771852622872652614335677294376664640057207887988341396963679730757038880109223711234347171417179877968869605320127503166705971654711372059363312302047669427414744662364284863746914799398839063404718642894727148225268292466541451095665139959202268273967316982518486737614910164314122091498048890119996888472180607501100405544657176707241174098162754697151882571419692686500767011040490971244231548379065161998372283852077184971562131246311540681645366448188461922936918340677587689831683488784550745597281750106436249083505224991089310880027591258871095500521922021704318837177090347612272077825672005387377510334872579974860300855611650902446896591627903878781519168382733950736787365380305543250044723627824498793006813149764181575094775763794669292692707041261753626502133215988298684924671696651422742500056372939956739969775428697879279050126706647056532097306137407935868804232170434798890409670200723046836718056756682758215018670163490604100226830471357040478956192559009191426197475205101209473166964205055762826494846514400598420335636165006707779789879544069169149354851824416945975555046978182664877084699754513024548954150569464120527318258267972476745105608990580504574735694024342346150992154784857444791523851809503759262248153475386270883061602600674838086592119399975664583508622489941252592824101494017857538075977794671850211926250149497467874646537364925475055694084621804548059799017046785024382370868544535969072989339134130504882468577588553006478845135505709062374544474255811928387356934844258351303208992760528258672372954711945312236040041935472526232041129811998886399864762464198963296019305044022993971561721014461148608563602605315353481577351799305217894443228812043770370772096077842415182874464258404068375535252502194295894226345773048702686048468732759229673247935514828379694777319240133312574247051230668238951766239623785188187702345176020368931538667153095136015861204927533518744752702498385392541942837820642151883852395046626181303075075453928257681952374686569438053743126271087773598904710885711923549863995607979462555374973337691468787756008806013096958019066254869789231460498832649396626203713954449582084682777927435587989218891792098552830952452651127217045526331904196443567090337728653412730218923459728911674574468577074430093613328679271472615892594529549208908108148354323275142859061591126472467316328956972022174561818304252327697031168069562991198444505675777441112056173325728164482934538986266863464684789764474402394722907564587063551154901984759859046784209466869859731179166132435921482184352956288480762510594310696384427776675378898998970065524814626248504654744311462085405279859423829502654295082663751405990310019939851527448624354556589562535503527050154756839657470178491869638265965541907323471226612944240093149004057360292388773085403791168250792884057929444318707078327181235226701788526362877099304252741014753166839224756690190814973530926292285576237945432910619396485451618032731019785023529056121319575720721119721574127690744522875609843647981910408175292861052983813182641438415264712287190869766657333762442279269912135282417625383909667347125062841590800099858585015500822699502505188305436620270061681488000665869114888470549132348962944148829190525497236129749075828661132159467808116517064379006154519482264186647078520650103392775995463250987542433250809807009264135492526085795843920153178229846792560036206470484309120357099682104990888668810114719842878438799845528158794499094409032824659909576628334049708138491018550061734265619603641677629602818737127429414973012906741866246364330702468780502199094707508381791950514007434958972869384083974068161958568882655899080825218970590743272400151721317490373320717888124002352847705044106989029903678817355277110060060588724169463552562234103964081360842200628385551312420534382900210407059490609189516543684311455099230951065848999873171682340571063027745360813972681331493432124479615809541428454191556976803509997721546115339327519754965153049230334087046554444428893437315131802478332594433301295179819573794800051690207802128531897828267598262805359206298586145987497762258889612091433905541195837606899965379112500624835213902671409252607804010398837141648186661597748072604805448391191436952781502385922091418453170209038139182906928557645175026825859730596903772298083845675942192252097123411645473855500366053673327897407860375193379342840164689301923835174916570872651408033844572000334525972676664588069750937663825254308511247023735694543702418327266620278383653336628081813995463158978179086617918879745832676627488212306690441242493954768187566206866905656579944871246189686736317863427121771876382095357246734259522542172385366223780172978698074111284279258148585346321471557132281671616470854099918963667820079224350670722423817701878576644173232268822507940137624683964077746147380180196167280236825222159407829222686009394732106911291501824781743324469594003809292363027464398888658748376376859411109760046298998828039752126131241243331252132260408525654481143624165555545389557531338910045726891610440457469933223831134164736180413781847313794607682432636292215910877286560699657091830687511990114829220238198027285180804052885528399716042877551817052236730034404967236766307830500012869327195102249354531376959578572770535108490876893426519066022506967672344336072724092341618901511354434739744651321194799650660163035570246762980350211910957710711634445070670778194443618385962113010695158336374415431154944816973171702444728327399942770516766875793825918103922603291755394540569945033730031854899587239557073001915135209949785101267138564693486063511278714019629059375643005132489671927139909313678102859985348805623390178063523579309904043430821235182878794900889469375507199375820653434274733346814618488678861424652319261983693862107073706873900579957179301551385798490714101944418169611064745735543805757422979348892147312372023387379984130058056646062372915012429713559540317989152832040729839252476782843529644126074077843025328835633463829856268236235369491398107784145405709509588599790269958680405635350462545453590052240850154572868897946514021118352548052326211124987340064350353324648788420409327433246272186187316106346405529412157854445723245066770100590799492081112506063558079348839673639646999514992469170319635376346807215533314032336827169551458859380197434067207246724933809845790199714547940808131461823979793477235566555477774404082107503703344630662849254948749943945593770563582042421399138998417825602013444587803571888873581264476014988775808072318289778245900953951562368763054501291532357655420937467965840313966794568744906335878693405650408163926091739808617068429427983236458652460049469500526759412348914731312862377987331461993419019907372079471188277482975771322957092544338378647192322591179496881480140271322189073187679002258621836060607079349876348535477298311518420885684866243968605212461209117273920114825107211858726717391835742906972604297284793193519973811509189756326882934277186938830773539061532650065995126480299404087338824977917545537390699685000761269666006831455010838324864220618279615852915863123353054115405974950155875804847064097691119079378555285948185462420886905298911258679333474556734113206566809549432612448341073731646297145757983887730094452014791044960505981816913043029682026923756845560292095495872374713870595563406785460197066537084970396684945710517954094641734339032982817621161679871220132126263683532498151654648022682270346592070036823065732595931647275847410520513963531993492957293507563884760581984587295112133996131919114698856145336750399622222360657084784090160726058649752794299004394161754294855662501510222843921530747803580058765048960605540713319948890572450088719845479486781706452678762768803362384157896026956063393122011263534552470264654609136227208636783541277388532842874581671934708551806718353898373898432428580905133853761988270378317405650987501723600892509379502362293274862296538798866265665220575947574660439340227419508834449137280566392856197015499585953087050627997235113378365157965851364163856340338503207772250943379022178036209826451274535379647008010930750927553922502096270864737623161209870224111652872620410739644880035202474502631137792378034005211832516836588095131366537105880912309465170629427127538292755074903295270946681793080249362140656939694473644179277627352393620449869687531866668311964412763891165357078394268613942285313122662369740929941542738538619298676245616460113266538064512862098355497374540836750767713519586197461056926946028558075904181357733932586169637879359320340457593004018869804041881324262846194367729359145658692078718904530821435329111004614542726807523759016221171448274706939395093159241336631640567084846242008434340023057787675711678962359158126307465856091004122476703017428041580356376951415748486008282879445213322418665051082826559583662606283756244458690156226554451705168519548632776172567212559887275705521379124607550372730253960305225070573755348651661351875090057801414054720026484631649920717510386618609314353069863315327679654412902479342296271397855679059138758658047205045336868684902763791520743267243887507588641453119924077439737143018517305867849539501809804247806696013697375943611011394246881092741917416823117284701834894634894482987713272283973346644173561808778657425906194697785485408789368830909073223069252150266065345098816862806930999141803035106440252652797678231859871782381663169507765438188976452579038428586677411287993281209924381674410963346034803795008608099324703248297433838238117238404382996845185763254815314838672828363162295619099488148829638297462624700469274928254014317808639019427420521714812574518565013233924323880848832504897406580331446517885900075134213501964118557094348978058085214312975837062393926535186241205205945527123516808327260587260471273775937139799680424668808205165122498293551025331778710152003755805113006334507568439281225162099955928458780108198762265533165202039558203347987350872260605544783598730241116779999340065784447420308014472829878603805613190623490829482954947710566135367965886872715276968199978156511380740405357879458760026858998449762080166900359210126154389032623605420088346361102672670477814775254847889346857067216137180134035468516670261204148230956375693607156951714090541311584760968089577520359535343463442838335543182068636370072398640539689192270560410680079268201577197569878066069703894325420752254444651320605285936582177004367781985821437135312004399474654467072526067206242087452064911037595552574635777267148393739569039892329722961585936126279133952106186669643771444532545265030840938722891382754784967060218270726546164172473994484673935118545372895646521243550350098413236071186389856863845479775287263582299178476048935307446837330937806282894828208125069735324560571441185321875352785940970099185073581173961443807207199517382504883444868752098391117543623242876943832861465397587181543463022578946440371131820437774082206232516387776732646826938214070486760394507344749745674342536326739689448701246647392192320144600199453309550930002403085647557478848605498317650149173374468542441677145373071099133898921009845601114347314399050443625332973018701424946894722039327227614723262536727604348375176808367987478338446589919079058575955129207068325902334075530065142047608683698328502327270056751754381826522233087526304757750190617848494633474835570659696082026334655854386542949261990854938804051502975699347748383266135787672503872758988296260964387261993329681649810813296719166440092493239395768047187290287595355380027947351322975295003363116137148989094290436791077028597521561304199481730753657601973159461148751162051241776256373507901379034857621475328017955755279395665263010128365661946489236672676066531182746200289915594597024742347073758104891109094306849057464514755496923579273714938552344871571298359774594833528689792140111970670123007642286431410943421139932648538812223904217133114233122277358712846330138791338375857379348086380949981294724663737050756931596396667204114304693263392144868263509806402713098378213348539407908063280044860220852997595424526303188386515847380990040583045366302868415385467681176855565683319200297367211788690692298862358816960135927638917796861357332929915604551420639228708201278588467157369344466418422359880960007918897573499539419832981012151336565512467108929046473100732672699513319011128117015367602115837498252021389197943023802132271698883814362309696474150636046545507243807821906030450112799060560573543413517807852421127028977431617286226380291900409396473107885093062121163329504283223913893637445556026936762918462141627306076261184301463816486682543045749734845779274447801147458385277071724405313138924514194417191200391122608595240293026468670724874842770037908794429461997074929098056856999428161918087259717255596670030761032600754607785076617036077629452141556929822284010418666380123863593998577790926077969896553375723585270711359514750204637363311102853759428708964272966337580766768396779781561933975562449724492518204661051220885148996158938308391141651048198919322628100898364440747552479081971003044578434364641250832518720466908268034440984753153567710992781060591828805852521208404128925687715307313406098343268914571151663874273596972555001371817252116444333375678073631797121339123135431981642266651785421855311760816398292471887064997293565760660317743883302081600927411153126936755465360758638314627690000294281905974846262181347466929469966627111736535233538680748191971354361393110749177359854406091034730547163666424099901119592401907075917768105024128927164433932506176799349665164277085375571139900992004802397387928740286977347030895569248157487073671871608768502577106503248778401098586520812461212260890413738749405850174562175761183371103816952969885431985411106718218504598146475859227213217129076849946331727474598347257588496552157240195284887924279682530867455267287785351688575283116486728474905010498201292334999981685748009586892157347426061413716041020106442510721853602704965003926075361749002634734934068978380204985294701458462648649131583781185503043542146150034296090396027469128134979841879144214705347590256247132091971398441064435174198389226156737151248445069166836213038480458397417989188915817598961500526061637796201440716175340805176445133335150201424784518801232900684154108168315535774283462057239012857917350729182037102684174252410252907507544228213983653118733821724961829580393531329833047395266160353075471018226051286773854070588295965764854567825471562675829398645587401822993096704904473763288593195445366020569969250576082034747537613639290504905693593309070880329809014351548575220098231733591004759238372246356027659151207875313733638047716964649929752695337041891557892798158379475304403489210992601933015771165585012558203653884177452952029990028872543477294328567235120530340239146876652819167333757884999532378073681887343797181172171232682102404597176737192767907550169870982981701867115297420218757409952408409980171926858267031787764564347568889851478224272646042971608497440286762765300911685393570623592740996354256137892194289475056341075850523238819361493211681660722058033954788129281512107929428424407407192405058022248808855283417144679839825134516782182677852191159484498950210087974102558306306922566862540413962330038861292381272871560440733758599409437951276005525863766069245404498975830193336839347413689247756993741412425551899378516839155805478302035715070892838860502973877643891877555509970686550047198159396627039744167367218227093872745581111351223684913814372816151210608469624445131799686995479365191671610635258847407833009163274170957790682419142485846477009570700244189164622820443152094983663308290227375155043248961907010994974847678035875772746573407005257088142301256024316923760625304135963916832837825740152474745889917856041518572640376922384771116840003504181389491338027743586895291948617570489202818409902415051615476713526078951852163749011044921605738140400275413386466920960424086339958860915524797988976270721082438642842479225951037796975019163341168640540722982702199100659532836636115486818765825039413230754160929501061576749518126142452565593900106904925652605527649868832671003184704789047285041139718725656849348049762469161759048266027110781519237769363532300679478535728960243002219378589193035668900695074450583618774541066617867921669827217925803063795375537323355053475677676174685037203467758884079699644695067168194226148445102791838149992598341410801318712358856477817725016258760321451135254539375498144880309824636906237084113251197417140584280363442334827265808337235605724884659822232631579448379480687221099086860727530162516355631102165062035168242202770745662927697803050723516755288956955531820405005846679661789844728022241537766725505848422925739511473526587578875951394322909432068939372341708972067984462429657939366051582166257961863019250373375189358934241843501316122635154760864196948685027575814327390707926074483109090096682199370113564357946213021163286838671907087289623520564169813407352127951106810420991647328667342350535460375362134697883865454073137191254626497696927374348659726212769044060660460614679113333053326927852764880766741792168346425531208699932106003263327067498940400932336815125346446957581268619911153333319623794060225174776043306886211462665373075546613687484273289234074381189230997161618568956247069891506895694204468713135818784935949704385656720027171593122707623486954690385971654361943238834348392199524823256444499283237174062775557097677420519057642680186558507796600083897167054761741786118346818571062247249568255263033930053300332002708335612525287776733105050385153625052428536642570987801421650382291201103668799528029330468675349843386508232700393726529039499281285343312719639614626072608648263943727401459303745051935374610021210141316510195652604587841295294048485225028486443308483545140164657650839505216714110985599535171513185825545103059876770038865334738323178102623636028224295908645141953457851283647393160046935507738609052454429633898889065784076046658592676988907104073761036905200343594641392253144875641199843493429415366954624134261206140226993786189977565323258538655354803502378536105690114982649502862030217140670557314077435251151867166368835540895186768900908681016387905391359443941705249169843950601657136438308461787762391183297499430953344860613947958893470422278352423212321481153328463442451119385025225633034928091711853305677333569691162117181959535412398110903529328078201436727193411327688959373778851426951992072449836434873216328409401514158175298506124115740951868397790556114340926568415404088286407884858459180736159112454599646176774167804402710616564490299534696881193684066980830165314893809295723584949363262365268767542566493240444110542100898080378041103156107323039249866358412962156467259885732392844926451777953395683577098362196761705922976311221543922098145920770943565678310841750517966101632455285179090820024361562878307236172435933124821234238758835939899461244915828333136441302738343710371346352187342536401661436939793521275812760558390243173431730814009480612324664340911565588069795615168362874271093764817115043962413354000770514910890789663875361991849423565859780836553243747418594971968697701666661897814963833229680782616751088263115031114137244877878137042662666295765517262649446700200865295701342797870431783051527575845519845015284411918778953447599383654596856377455573517945544768789617569362000768873603369963654396467415934407059651425389121564135543988263879448766558216033900602299252257122159531634548316373062013835202108718272202381130407799597311421852099044772362980691539292380971772495659286882457468397587764958368897071148620274074668379202834422861055126666287577608039102213241667000221179791255569784692480561231465619561597414580199468847063542730819128982917043541082192506326283740733687036658570983343239220119271942176426138713834101132863920541316981816975924348288786995607704816364010751820970670386883857917451129010357550618614545618864152673484816530746822220672149327198156582747675048309039419947038512466596467767347087296452808467115736601099575709430990469012696695786066380960709914823796705181377725950081761124213114184202724888302084541275987603547643854332874490521569273686498332520781739768039830699833463390464755042527921171117093635105511746695563742496569912241811144361048296313120851330134949096412534755885873042579111025445578696932446258566193961799127046055124652521305738246466555117617814091145518974489572132656457875905083810098271505339583629171625016182015340290635189656771951675357497919718853310092824384063127508974157822358167137367439112136353637019662032603498598361604817640389376371868023159916892663655983197503601511620865919625740921822365780900259994396829280989274032517842797888930917061959824769558039796670824362594390902507036367664141634217160114150802163141363039451827693793923793402198211120256283972398904139838721016243960275089980417042501070223642152660554016664855567272114549979119778348982040299453812859450650026805604942652702939500766093137472515090782631597357900912554590803832359121851595782850324285065582695754331335290321597815098971096206255321362054775946013585671100458282842463634009773358671105584963147805312163849397717306661119813444840028963134988893256998072855308566624479407057176628715078488664870319655947970485722356915269482627493635592742613431918249187007040406957918420733752106726958816385802319449022197522079962292035209063300587850725095086095629578525401749996767013129045686209695324177644103928749961371314458955116717377433013724613859488500667054794840112667997159932799863924445633050733694331421388982238213874191497930907658521170709197584287407542613857704831469925360789383475308338318756459937461795609974107428567418953609124499180343514868737989152890410272519833343134561233928738958043087600640786292040525650827704486159616813776218686446515607636958106638366275412192432687896011704739854470606821058914136635369270285006813223688996217237838609518412889039849960637144749747029421604129288394565561447482239404832263068426167943447051036345353094143623002365480891288952367926378934375892895513749292563320208742368058586499761201882101066686681787207949778891259619743913803915276707390907803289137809083327679777214985134247628973548924567837791506231751269073679686798993056190865048290565764723743621704733950838651801212233950891446066309194742545742886102969871334935165478945374662691131371005681703934257209049710595729682337911813609058933809873179845305083600928424576736603283459199042345139783117673699573651510266946887264995756155076325281306760932048241582895150658854924818012219026515217585413257990380586786188106630753910590513450609716962864020902054138815439139832385456572343700068171949844534198794921990831135500809961343670291514091461804719917450954460405746888322940557939434821671035186449389186028767400165554917579081776169333088097783897430133867709865172281229055725308863016541210066594884537174810318885418470929227958364751118618141531548543993708188120770580720160654446602798110464166997805670040866695551229765087310108329779144763688460214631187655374001245838288505836640378306936662163961946628784845320138524657219744518692812934353933179433885751942477330835360101268230087862969669781125794267645043749889227169234247240184095892708980779637138970054025943012209124129585824318286437402522093260863734971048726501753028069999990540612857118424393483538610916280435218079237832567872955797869825221075081137250994647631126321235530335787907147308962618750954710854161301169716460115596440629593378439112896443153891724326608784936838156898721902312882761566907111010595436964096660448722818794877641274520219099924819808447006845605738405224963437197881861645182304250359012516645941307930265520287578634759763286755838881572775716794480352866756068437152608218947963159658398552726807257566993433410850138315917126903858549457287405466561277702998636396451165027402609910229783359000754132734871256582675828696059257823516902860508235204002431308158839845323190227298969967934216886188345182907057695110373546093624168489600433572669928577929286980993875067718477720516971865842112151770169285530406310651223863582837436727534856355190648819929818813890533948009875932167285553881921981170162797493873015012427766287346163723022552825310396509040229887848473449698706281337634030521293121406558604879669412089888199436819492797234644868002539263005525005706525697651857892909346355116061338525458757670017941335841917712961133761421126838841095494153510194276542547211261627777985501080145414438625181916554937177724316925628378033200644335656548558929000557581630608745051558521966779937458027890379462210577496265529962723763031123161681811093643178604921240075899388806256894000207443492709409716402735377218417587205508955992657329259523450005205026821621916060352689814693986158387317763055610194652678550528437077653694124414490566200080003921857087457083607893106636937473568305827325784860769002199608465988340113016982312321770550230753211539368072110975360553709898349751968852152003376895262021698967929424287412241887473080716607564802383306769185541191467023998318455930419975841187904817349477725644840514867301786923919809449904392572780477840425266088480034898440529596165436585050144726651270056257224997173459517947446694903546293755354568738858919780369356283854858026966326788067906125801145689822041427660042159444526866469032242542116163409247518227645158479889041255816016098282391871499403850836633676937882369428819439867863393999253490769316005226900938827358418304679541630946566448775590927334872088788732871171758880118992959550843236068100528711888241238455177753940107797922065979418499862570670843055898636593054634830108710411827382832574519836845337053154883924988009757607044117131751284904784320926541900201278521701676401272469103705770679320396721611528966620124839073184294949078798496846161713242049879472582548958593293116669563197102456000972019085293038156673360585215634365042447977719117278030245049205873397440045297204625998836236576945865099847810916829823783269051129879405630094119590806940269166015635675329293020560737659727848115696493483494548601431786102786561407216162043619851504458981086761568861074588085074925966780933247012579482314092397088730034774484243325106382476295680112767438723696408446458166034329280965274077898356354922597025497822826416036450284166433586240816086753678770285764234149181222310722257641709684854141486280728981016468189731051144876969649408224122537238397036799910558317903047813656359530233622510538420401700458994110235656395667112870046031557969225865904089174350549566793573047410697761717541054368490206539824669945563202256313754878924954838679034547934444867816297681285140723377938097208738910290555130702782540732041783743264777643747958792840799131443872660986279148595598020211795596890970018296537239666099818465987541803845641132547586015839068044062542499826658137671938986939057336796734539712004654263420691246253600168085161206850806728110807082181620281712105392105623776995825828307632888481940251214368193302439817334403337110766769704374554952641398203752356187959168282293740118090441275017184057862264292387588267293862215317912782151265344222129831593330515351639055487373321976474482580868029894106425607976668207372316748371961861489792168533864306901650514555070287820040133971012936893263668470434682224177485183921765378375793196093479736762941562483217257088043217278856663487242343845629189574972720533658231984282603984299703508174224653795207480790289176930162940914143350390063543316995643116039928523200762377630643417435611356660960612538188962717762432073616582135977767027799150360060117135734446720362727928300442319908327987448686311392723334800148878622869547022928315064394119329258758502744166085904333353931427155501196145200202380313248842284134106425034416282544652044031517650314366997533088597778207278051828186763067453787859821923345761661311489490915130268382739585726280724691952551592449284508768550006197560490836337036986004498783408904884485470035348338239206752829750110148749648230344000738462532668914221688574768121010722269995494347246823716195847920161353379501385040428031500785647854932492220786671763764244430724714848125124507248000572599619472996564939573364292833589842901479257265543009932949410557645292054224532535171752388235638480072826762566556768380327112784634367819400256450365274406753070532054747173413169731008786680394643194815533101107783004754210450705837101938484582035008125627168364654942580079714354879668655604873486007035627991014317104349398711323158735792203790200569381253524777116974812286088228518042265539344250272880028254527159801665811196794174534413995805345609023646563898070243849135474602412385255298632230047294257531279182368328319743470299759090738343092677936590247932157381242668103112403710732779099757845819920479592305259258097466212985367699281096362510467833066892618185085379842886047213195734389707171188100377249362425346604719214413397709861636488498961322526311058982843791193852333209915729924695928807309541711431547884973181239225609270141113527304520047100808668915179861182678865807709316394942778337592629590252740003899388077330040455862221681347933864632726438346491424433175122863597769725933595243962002947282361793917499511666794542479996209648062461813543762435277366606653476708862153561088596168513056364561979085285797825077123605906712809374233473037326678094707300522819879997005214174572874029244157470397014215630558520131789283193676660250935644042145968807227320767175402208541482096568518954623101257654078593802697874679601140127232972381087778741747725167979190907748477237963241577506570343597978376669952678962776964742384504178216876497361730542171791829056982301643657311111666500192749527042899551936982602615313222519516877712169599104028015305439576621736490490561737010190678177101209730947066295845287874296685883089096024519281444380239596636904972867727161879434690839246581783729986176888388829542778215412542294034583951504838591930606466789051599005119255334883937939558453466650658918627500230793260757853087805643004004880370314492492465533354522379336023596506704892297359373170757101969069588400651507101252620453202266041984286078495674664070664324061327330455921798662651404359417603975032101171351635900724499830827208787339290873451566787403710847631813937254305197608011228608300120669305827445993106373060094053787224222807341900546260817890884001349803208649075375743364759749386050229790240923813436746271485226823394377650338777621685850623550982164974456076909377877277026918745416170317459081629528107052767957894588411041583983254347101226193351666264877161322203964310231362659038807698869939459918979608022792371320134680557138865037364210051342641268050505878187140799798454956751848638728834106468362963151383413296633905197145541841781375840194859943225564734349189982765610310382623874306014198824842492952460843667813398220560667076551206046745628619555165245615700097016161799349327855777234497278759617771827023470619770668034052293863421451695209091069308331960450335409805555483590412934995145633489097777716983269880335344592963178767455615815055739165244638094166849943008109016490746756941289441074822621840919754100852494022535989485911769363862112581441116842824415916274918610770037795055666287633243902371425925690757555928387227719206497090165216409896330437540869179313621852442430767516066318251612826473209031975377803007860312988084243287444128416723995303386093102026679782948021656466608490352282585179889900327337120467758285910395265136625337001464055475922780656767419159094213313766794701563686500896792687504172117027822663376695395293636547922504746185497046954853128167514955827120250875947883979998656007242371908027563288677285246925999302870438044346192177174998251221937047123304052428637385301720013524467307672971927953082201151247344878416908251626168763576964510991063180168363912560577584128179317880552632646639344017771048596207230375217685552236180896587295882929702331289110112011115223608483413042096512993909931036571898857154875740396785379103758705918718860555033016332343676001347815701758098061698760423797173212176216156649548299758771584111802135585905219169219477024103541450116341239356725154029159898499670798811012659667483902875881111019491032576451831834432202301693390172384111827348469388642372811235404713083888626592412244724320324071505749024322056485806965253041877979280904846736472497632456351341275588455865814894358624333666113526026441415514744233402997127104635489422261508158819778615210565275577092987716022348130258139302549690321745544423492733466395218661690436873883373582689308342230233608248919911176553513068853136382498664763959912615811019586250265450153779853256912837181103555333634979481810723120371345298816484803662133762394782131190083613683066090979943202481862084251501526662114081636794395312881133104746228935951421723070962178652965072514649887741537030261130087068033030234521583759637309315793255361631974490537120070598721447556242065806986742305858936068704331680441596375817871093238093987688228803425385576880359446530022370254264143917860033127352078177267884731657583510951963461891831610500589286097053986976237291409937991824190354495593272812908733720558136449380682121287202666873196363259338870735201275861833477920437324722019857261155497405312563742430396493991356571907027316657148994533992449994796128484771586806753657439105426016264118166915611005669351556495333091032736272526894433190990280998850996012696775479337755684741332862942222644287410673066391106165070311826438446269696326599615467835040817804292852705264822882196008137665786578306193513101483591403803546141697567185886864450786922068305968713851304192184368790583984225656736128141801706026273817258281327197818220532829156025960119489172887270203956111684231217881744117159348473726065117370009035131480377466249519765319890922309197261403456699868835115348774743416337052493078811381494142196876579339068455349151545903370985745904192055708806992699637348128723928287482414077229360214117612295954503799052144588754692976028983755087314407886956590505792937476455033059214106069552452186203862227884783732016231879314078748773655152504686031318757511360338016394012915216306548958323479812667491259001616796922089070573833466119063541619246065954220496472176784432184842838306363158545880091824981258600478662322372919525126032527267377939588019346234446197250454148039349530253957418747905721013735860658013529100829813205902091418180352727158401923865448880663562676610402886136893579066780888111586831170128407784925182331334581704695716473945682741977305754260085382411070529686024090599268661331276221287745236002129059652785808205108996902236683068624810293187086171778184197853827277565324366664214722327274856288123786834823242559399252202012955148583960500524479352974441030801485728624175130204964779175912118758581387030381739359465626473802324768530062647442864753288394853741592022130148196297689196672039589442606204460960775846929703208422064385850310159605163806031893503453566692102650427418106689967295992614540065817398174802555874770078859067602529018794206901721138125578639733301769539127632576240676241692920023104372119679115486701624935991968944994248144841437676843767358398775698197323361462454548886897431487751217338915797540419690726432212454043306454070309188800869618551085325487396746508867775895066134531092980130798126180493185336382985308637949250566067975140856496422861838915542246833147241283823554757883646357071462511555320072527202265608938888887003054128400793854595470269219949562317891630303611231358411217966127171176542489184307423970913188285592266951792999923117631392631956065632546492103013423482504854948305107595493630515960076659445591856431326484616903339078697822330039911725278508619819861146481785340235407356856298562424508849238056352255305744811528964074390513286842213736738154065657970906455015753576533601707670562413691676075852580179364986494647566220510117150938906634454013745639710631857789120513269403962763169835988424784333490535680169610818653180473128998472798116613579335880826723838770641471075453532098694937047411599966070907649226857562650579098343685775183608519913719833284026159979814136323978666925223368066103798985510142052994793056124810027851564850699736965288825809967102179793639730573090547086604495979010718361254967397059108580671388988760201665985039358407411667063755506846976051211711845142580001791097713602243846186671870275273006009769294750740259780431587359157053519685031353678999146202323525948389978030677473512496033666004800435868330725033277375009121563229802760900786378586376624084877618963185703875988334589869072521752931155798550429231290512791647586370138588986699163951028104492286351511691353109108431847706318270320456876045972847091170395629591025466953303183041459675639549548739061893302542013713955473605924126376000077194047685699519235230370791012814966652821447438068712265983371921011152822206777544746039963576997441531469496061953327935469369803119431780997640266958855894466920631375859119984330312871570095140749365592207403197657619058491784118985323757576954064478362198362196238944782101952640739672051376103700267151901894098841247473238180951722159860494321860850004358544697744438174777505442766338597622515330778377135491182117659460758292091562872184315691837719857846553193214377794584935464957737507981771627771334420532020810946732860510858126618029464333146156373996149702621381456311592795115075886338204307193862447362764782186537421287261829682263819551189702408999274345143016495460010920150481302546608292205920242651062225810843932923654548309935738971505219880313677324477436132465073717906726392495706370939165947871229117749943447652938139892423139837145079753677552110770661926170491245426700623271437138822082754093233753599898293663120133632824243850647902785867394257824529460068890285819046428902572828326015995748630627934724125016983276387003095617912375887292495164482549319351185150130678528620907140096235734222289671346466402752744819815398208655788494754536725310902185994144543025424101157217136214176090566681446512056789363620393619466745061556310120082019284850929525223759464255757963872524575780677174225621330873675922810829874268795809122048604691037585881225834693334855419027615723323456177746852242290707874157279945647840477460549184550826929454357672227612419897542623574944806521738055721602921291464928578119727066131033557501623850083930179014718311634019369503628691209956962274609154602978281384151205749391341768970627089443043838300341798201853780501727539290874018555013343568119359997236611344362809180047027767956113934113084228133177498384162088943800684327533342854211458808603162485196162526293819428816962491992921720566496214518747162756058129119686947447472932118646914463702806255420499126203816022320386594333564828918053996791415354288456654782192997235631897029513944286995614970078732992282574082256618452836749854575846601235650545605686972400295267699084934072875036103627370527406335902012455932991935113390468724222299872857652977676738924957059930338119581015619845283474006344257760966814201026760667134455019115302826932237047072878233262536040979931093024485098489370678884353065276452661777439025148663745907015709264960797810250103778402320403183642485378065987813907938691053175980412192935008398729461540524359392210349656731807723272556639734493584360608123239571807414906732994717949088142688147766061391259708822229874697813431693735726712433354584627507454572498570591021726547124299397315315968088760407132642990768139640618888757836688509819069921062296941399448561325613387476836517299477002529274943671747599689693112302879315581298293024986156376303892305223035608833308310145540323687246388965679768002685903792099519702367326938970094576888762065844381197337482766607227361611675135942688022178912315728544611996673709424682472191005127350815391205583035642933130912694927202327634877600324470908029413889924534321531645883985158988484230105745158750096463667047026010633533936354511063292723370638623326294080472385593508766426974181152378644555350179093066165689472153893961962817159356845305002181619761536293068552430212100178306996723889906579516374426225110570821907956241211728828777845535953981831565519653397208793029729883073114297760627255059242794167517929678339373928312324110676840838883345064433874250932747979657383690553294429686677526123333484136350022556171419656814413391547679866544912366433446429016942271249245990135158884993998064730855240888774520090382914077708612144555465299350601892262093718966080475265761778187000434866388645634117015240821456866625186346906022009533876309203867071507166301488423310880836743099444025738712359097766468998204646934774538739553938633966347424955290443268369546797405574248420002502964204391281449128674895943344192834032807253247188348865723099225839262490020870630561643909768716023033272630816406351983624530135879105636138698612981480750709573468954407081267253614180255310768969766121447410700250978672025599568346760491267192592989387294579614799987828679945799920752687474989136042844617594391637848324210804486592422048133308411652527698313412794803229158157512964976285186318605415393143857832097668184736174929068891305304327879300242134832430745954623142557707841378808482884616297103323782586902357591482015556262297357847279783789716461980307996759315285466360727804746421602095108810327231854810588931019129652074584852898162848600587849934122318539457599719833808657333192523653197264944856726219103096805161775882811928810003476572479270014724600811777923361248447202599707191832827501025459664072636646499476492651296617416563326503350672006374403315377101431648587280210476008102250962294249203779046596278897437052209261932140622038884568742896500611667182939262276030231373042723749018387000103926327731149077135105452681552081332461041333764684282153460159154919438816541786806939848918395718629358559720324520440495306157330838355351930571229902967452060426172823285348169205190409857261035267814708206628818063537149670939288751180359823543108652484367835540584540147844797833998409426745998008823582931108943640474092209997625436665753916177574851436412654287823874869687255692901767277729773263593541708624944388397472949680823988061207279969948961101545342995427635771725990909713902499899552024196601253595433512209219309588416561876511944499116068442489301312221756736122699942974663039610471793203908019297415604368196432600446192163199434471942601845695132043116323903763655196283017240827939421280575668688271315239133604412205979577117666195899016039193993618036373392569235298950057203401834533496203223779427380811805116928394435595474240180690017881108463721297472367056321333761395275432223099027955579314558250771484095920680692317141246226190707634787481001398305449345586128228148205583933316597037105366282006874679708091301516210637105877862414450126817821805774073138151415757520106527955190448311801770497894884474385858920494705193326852551269895632677767503629764307456495417013444259025181591814219594305769939738019294520659324044453751184896136762105253797241142463128583345807756850180898111542732269744430064200255778934039587245551566145271724417392481336454559393593108597561866659862150229241195101896523120336444001302066347491179386166227679821980827452140380065168653028373959449010597014584742340397970658948659134253546677560834035397052852019669332920867878550842672464714317732345211610991813646104331292642708610619781594112966856883670788119372275090252932131067187200313247928755845388486513231499878486279300212126638125599939374951591429426888070970278606437845008005235554187131048961116187454970261054860558196422504553973300798499014974233973652592402030045585304156804468046614156787289852164581615017533656931484297071694846405474573199494868873489930591111767642259777431588309272563247473341775971291137727105097878244550984395194186486335015215943355322681499267477014057403262147999397718138327700022728628277293297377498246585393638400417408106179026953243040480329610549181854376112823408804342206852799918300269668282375635221755280756020364086366443913400667572617734934018162424822103009585843016899669444577862345936369712148450237503679722863150394738930536863358890429669687807306329630119531980842037515966228871903565788223705518607391244908313570426280241905471356615952698039747419189832258474236938766680242853849990872025686026321814716876291682424360124962478032248801627161300858305692933129303685010039346197582280142793168578083340954308608090863473651678840456635335731980465861947312220846302933658458561030356601224330736183560676230556286827742080923870184203886186693295959900169588653667667792232266611061542434632741614076379421439979238675670669722055104133426322730014550067067037705471760463322733130063340145897796170129573092073505246417012680398525473918578405168748395394518798828981272614670718444660569844667441131339556191824588036760373707878636293119139024848233252991326246457977761357695923113880500985010243362125674866359972307043017522196319170280996267063730411050737748671572635809805278749697162498044200950691901158487620394174345801643552904181429040284003061479495708384478868229143669642774393656814141392226654436036125631901447144263746499046314467121561837658310464499400913303255908383171466722709962926632080250030213426961697006877464610022681507799927839988429013149832926302357512395090915916140838255934662809486830158556807034156065068623694849843907586250773516025563252698343768811325201092776944828374050621471385714309757446220545847663993879300990364125649443934030408328930487345902424374360956580159718894043370264121035841668610459902318643374008528679678623838287830461179098252756084816625781090885339057694435793875108488543077624981083112182624790556670927012837023692907585913650848301504102818786115909764418320975845465092911062841403936211666224637858124573285558114163931109882256444048245046335952367058956552399253932678064438423735920213309450099178113542424549341410002844331069264720342265548614916246024830727972193821889065275171375752531420329589198039212092726133670130664565536375858351163492305525458758366007021148146814190045570465454707624857656595480163284519011811190614993369216147612478566758730758383876964695633254130993996148553045209665725533140582829398130095283879277237070155541107883967289549388002515261653125813570604970790762000049980634465767916511593221427562502472052090620783731431654839741555273386598361164730574172286801999766607868637107518421596152889027058025197179354503542564070338328665353114506760053021372594014676047377705895820963015705279667488800760875540269507691722017396293456418328292345450701520839860455871713706670849219775448699141176924498209982657057967412913763125916767878960494097919211556831055516334511344638701898601041099387537885015592698031088246957180271344501959709059093336823381582155588564304508162190788049231551925266631672950185247329482009215927777378692496324613391578697905763445127082273614473554474016746985047697755459225768346610263129151763030432334614637834338100619476452747469093799450168516105020020295663493181262269055552553728444897818229134895318641099587891873490167504039579597670502954210698053907185781320176920414322333012071301597682616918381158459988716897395499408416864810433626432082306435523118747310838158170981811823006898952260590241842438412037155678910901840575645088030747784174702554972493265518437550380845947684949316986417904762247107237477333107538891926512040975024467097914321734708562307898435819029052540079671608305880633362425860361127455851704740162256210269339374408444780644096926088173235903670022856210236079423603051921401960202550477213625126370618529705249266462002015182338392197180054938570651373508578751965437592762322617882199203376145044505534919557739035218962933748026651248105503893774786469403232754979578581648633754511224176511493226172078893030012038659296425783000469530908284470745733734824807934332934786063715523029760190458791627303154825467255317958206132511366767040422102257804496213030767380530739792216006071744677500859447476850465032605144914215009503294277066673696117747626810737578056458221047591583851992059317220553024429995882205712335980658234584498803809308541543315459338561316565006406565954812783023454938237339962012099807055369151634838741511581985557201615683292687516144012704420453687459229008061717771109599297152157066296073293064067899457363175119573209323650041584425563456774141638038744032264914436813149101897677750640509073941661298932268292299310520095889439654208695009466112934914836820699740884854504023052950810865621674927994500087910852210314013056284697691084984671186647018616409686755389327411645245201905505719010899925490723484752664690293755670076437051487604382111230164999199266762796589248584741112880962150562365802311625852471536264674134103546628382144151488863006126614643058116551467290900110756130837522950587566655653898081715944877260928312637231387070077342122071915809831927260845142922933784698184603984030564214412258142304129860000807297024598817032471045602937362359015552200307577044877510988378860081628034748795533663991656899420580733255661298160866272934121885470579166839944310403521433955850760065580797958300242830277978205921095632248135858592700639770402910274641260145822606387153536166870584879156037400912788313063733693702999566393381435029265996149467849137562163757268012658958969928966937628030365139937302093163746292312617416096718317159711362604269935102376822866515426908826176212216924038948985746987498979179855323316552924826756615784785101173917803822278569898143733483744723925268665530950142829214658704593559494740917383100541029324180909936931025217010350803756849189683325718949934094923016225581750990099807772699209765199220946196083960241401408406453619444457975443028365129560448957021299606431719007188991783228460765013664441390860352924944111242310500937728330801929411775984678356973700150156490839753573732404908188988087628726157640036194578665062775642877127317896010873621501672870261901795250233565433838383208736838658598162098920537354312766795690342703036816533108109676081094639517515695336083881136217796678767429642958693549268121909782562719227996698823375302152952808885849812783681600433858581400322350896170012575718236899003789592269060972947957781940782677975173178647509257442530775657529355181073500171165578754926121234242546349461407826303032231290124593143061470827321525529709705522880775285308398592591375888021238296804605423382941861931849627055963064649035992839625417030428949861299915445754965521581705004887028701035425080769002945527013246209211152008223608182643151763687696840737800385573525419132322990299628661663700301639380857528360475072430579894159568767848534892688488148594388878628358051956715995438509490469300367906616534997669795488123581542452745258671728091149468742400421331701234743885259330676019202574750658970251990953264097468929750888237855661510078748204866376855031309740185127502646906912527029570879972238974714734440458616806499172586842792669590940198106433873906241145822194764208717530234791638070535398255238208072187670987034911602939077042677217278032049977933951980665604080919547272063074149715663895499579429969491741128529397450990070798748703025559868902645063931047977360939635515139395319992742496210249317755636657683464839076824432263849179279490557438917613862377631082074110663697688757810612868789802621689378655198856938983636658173036918615172417703266705675844024296372252690756662114153007286569659303539293239101427667555473325278695212408641445550801900727092377927643184119201615399219765777365434152094885576198851060141353509861042885477675332230250918156582483119538442421790267359923842063121411047337252081888538626707514839759282856389646256819396629571652200763307648016008298178986598787434869363887417643196892497257102100236788580376772717203232307472825142172296928287595160495955923489773724590312624599592029819866100781820924902016917503604070796730193427616761419598785860830101974419036677522882937634488310811394472252132860108534546407806077173493058360415664381600330835981639782323478921168759124599111480895510116550702324360271967452479008909524615815513731602001332168612671246412224754058009602576957655542757369770729976555799198215855975822986003218723847669461041589145066531741789505481978166540823709918336330188691592190620927031005350862639358798210450345622319116456438791186326914313546401511620315489466269874225546127162333413407615990220758770696258947281149472133787202820617919646350720607933577802528268107525873970111125633757015145763497744790057655154382651714479128464128107205804925101644593905726336349440529638779647219393777948182334164914915538144923155229411311187718968159770482920935155254526759838123617008252545199485500191982076667566241889037445124415666957535763828874574180457813699399916984849008214077926993025944360311277055861631224740585625796338498515974971390130997068575118953898720632714806004160776486903619706875741596560915120613924679940712868404302587295364061497988927292426363944350423695220471194674526977466002425853300327798260611461874061131374061499143720861718762280117965033383280973483848363000854415158002590954102071701431145173478976840907852166521739821589234769522192909127876922125144337401735957254010997195020877927600734163901875187347701690264361995796675672077140918499499382641586094328314836238668405996666805135188863708968711258935008916175440575869022494316440631583027643679706261612222126799681094630703385714161323324958966457878505037856983580241691449587789102075084952237221838763709999791996437276548288170950667408311516632853866121187855701990497824500564490096596362203096223215573269753609988869727669784095918169135911055460902720596296022538895989725588791567332616274492788352501115408538123931473257460683744446990325751516702112965076705449666892493893880600646383076536324194221639116398575130815072363658604587869801714308662522541612909052561269769956413348758546774938266324109473565495358301426624000858585496004010143691497283246730536754072622540087075130312557545406857382579563068476261804837654000401547717271900885978676057887031098444418003481761556130551678164259823268192524966393593475213152344860168931419540293510152171700447100787654152311022755983427260485398077579324721767854751728385386631335285659248791996848752451544233143434025031178998332872337706592053761828040721109442173787238093778781846857493419497953911359418418671761646964486070531132190798487161645366703733500348296997496984690269335872934435353689188534457890413018638443832768358951514432289615333808597012356389296675097722217913961240397775567700776338545435069173220747025168986963497289788481382346229687589135392726824526932867448587334491244765016477683381080174291607499963779855211327772133856628908921803147683030327157749130128223109710375189052244518062342064644053305741317050579250317737014427759841348955775413142390585146540799113890985185605274593608155988739912926009975718892133347515910718898445323310425927643196858891505507155720751388139274970057733350092589895607059991722739445513118882989653032220203016961360900053045878333154245019060203189446670487036897183239133308777976127895574230523980387172058869704812543907086343247918323144338567859362521902749284879240299534075070260368161582070653579167486385909862785429978327458206195947398760814083038745577510020425878584446708173532391287469993260126730947815393335516251802350696010684371405321713653428992937074959803325559100963563717403199733661170756566074782794802611357492512287010711217984394026343815037916778534915569955210374636821657270244498630570878776522734175651753760264059213081812299698853245246592425356080436196829950807716239934293677241226299089500352102261504854980605606648359476574759382124107731331181701234690342381893881270245611894143235996733947073852503883153311590430619797641623698483683940868578686684496437253766635016878561698127865063919875451829649370345908493113538228197386065647591203451219056504860121155844438981737031542294948581548675720464024724901009035677440675201441536261593712928416141374116132988814661478555088923836672287251429825129366732272655100173262372471606585034563847246840098770859850462958087756601039717595470336352857777093352763565084136269196869089958139635560299978670668393660316435206961719544423274912646236005360532863329676041788111786902340421624609395329660246612959345278630047092597554656864850227022595190327770200290087195108631109172119229502295249081643013955614012855593872495692033033031460170885254214323447032884529984664529835176466980130309562643605688180273557519081438075810901212138044307662972438193218707461369981271442400117231084410527263123816938854440541474497489169402062333724174669639074376187981113304164473625075149561104975356607502690359978558325622879870630056024590454764267074227421463296001770213151158740727764019023687429880296703230815793273947147478717742655620973717729987135543323669484250878611799876410157162720291825488494589955084762058927070126354464095039333228176963666040379054674089517097074505733165096363465695263608517715030261000172532591862111922097412349002206792326676984790869550331453071826272469620453250836185943243960456759114229722979916833586471292097993857596427512930111640529145203745981725602254339090195657677671111300012836097321101225213434502217902080297127537778704231141512123296014628241516710066236399311688875889375704686393955228072467379880575421525975190364754399556228424010467066304699429346141440540633710786090521323244167643925979756809566521391259394290150697192644810579088609011922445832338724046124531911018889002900965034956477198227788522520324736787556062793732362119902863946508712367254571970114440164900662522567248317230637872074170449920494453871605402913346255440105172823805238389432625400154150881760165075317140151941210341463547558276212001401155813044396188748897222381091265784668723800394981872964837978568536490328789884339386391105127718559325024409813939475257551216540931618183333416857026374612869538889412553901957290361332205687267983416148713679487582078582012734500132930175862374892786375271103547541694947479831101436633065537428300885931966787787580519546077033272490438735698457662251345375065370877169326228276312433673481559502430573452713261002661518146704155749699819900923622861687118593245012953054650542279840474515084061578571734169436827712135491790410257646668053160289221195295534704237633044048954347193527477568767616150637927202315336861418865870119429917808978754557726490416817902725097498943619487462088512592490775557052037068043571158593519869412341993758207256824189439245067080651290488227872487818475211715441356419790035222784666230336786428951556357085675419788304709819696840067860224834455511815370923982295288935478226857302832605932919523769818756594685654775875073729204089111777684791444649997022824892416196501724903176049740429211496083299610339355109663666661399838900791842329668961279981094675049772874097831485659559801343465598526975877901235254080652380021165662557976924766882389450844192929343563213881433924283420340732332593883657313059839881860814690544879950726219845694642789114181959516050520556507439124788168804984922777627344001778439637596859383874929740795096978456740017906147543189091570887230306240748662345545061351900053188699947320747316950404082288740092934275490541635869442670233588761374172994569077844139200300176583833490785138817925034763770222067633825194938121944725323561634155314039933771317483031558880329804598064440026743650661401692277534166867693736712958070899508769776948439657242504528573341235361975570482507693635979954608788841733533698668522503103186261574833271713123249210321743382058807053380882098232580457928875287378289457089686730243795060138795236930575276555542332364356324987067660497304708186464996170418122750004718857494695244556204970483235046759178074134975774672405310017784947844934032912405617980759575610729581040217874074403545564918712895591993903631911517541987990342223013399421247728977213849683077578190067618196378773773134827088673976730139082147934235894983489251851086024880491651376939134872120259050650476241423874887786584172882495656633492411638546924452851151353891449101534435008644847397959618676585092160300531878216731825247253072021439700172079839272995413103147754512219329117415837577694792187830991836857543141401714900500294122667760101025985042507718063392762503623562128296272550625463219615579732015438128395865851966906956716105004847147531782206883706277296643989934759387194069357210380952653428857801245689150497191530208566118104402989482416247628011701045276437694162053511540079232223121241278088671084475370667578464975112172760479577111575615951424031489726133948416381789176619625991845511470354129158274647130878337808398983971657062778744597482404491482222911173108036108111419135557699976491843865754466891793735726643033215384390647700650177272077779041162714832588053384496602442421536131141728770855680610980890392083424444147097751345078415052561911824505521928934072790601558413004873941128127020916273583430413770253142128138539088596103114458936752198804696420118607118725893144450225744302699408786710311749209283837097807958070948363139491984676744953594843218074156810027151420425644956102159821208712402334114978849556109250024059294896063143535448177870614236380913258117658138754424738448936918873794577018215998016688589354590181498002029297599442354131235015281011750173392843832254304006536118323483826558030569092604474346462018416340201127653160828334225885880629497234926244979142107056527096985019229713349135653551436867648884323476828124548674976489266695152324544569480076509895325414073721047350932355763212668772576307543408285991790799876371419326945921256745558065307721262730651652231788066275319110045082483802297033436756915130729586711513311990889444952950369687349905132626094747774194500423819617323226197828579588463275599726640356913327793537495899497287400337054674857197911211067695378197911189637211860089627963321530022163410906778920165488572615911263746389859383793000616455602208375797921957607998016802543066777217043280485024369547978398796245352501134374471464637228016830423711394729734970502577256450105820967842792371018579233235380170895746416503088144777699729955218165078409093691462771785946114369351024122067595588737297986468078044186773250014091493133411344341483778106998380997162359098490334566593077499050482543254411454796912758386306044982908400137473549099070023807488131832389934021336587713682043448413566994352638583465701646371202767630646956109067594471229729040786648712157119007557490060535953161921269775076271520299549788324404428475525970999196965074204100420340228685057280785471825577549209774886071875876213503323305838516259153569819792862908562157726146649871218307702747447331674085362577799185173611761532479980053843018092532142161993466669795621121205678459726182245448957753562681032897399798108724054463592786410653065481014449219391130369700235892551697682697059847765774461848249167183267300197868334507012307553737254115438276435274757397239748840669328968614539672683627867741445054039602477786054865020224702709324346736893113395003368478413608926149741802645679801244627911343078779224313269229527206282143622685220236618370168191794322341241810413789591697541639081971651976817567168887838150705247708676588506208765220073559600489076497018624506184796779796997091567359211572758330689858061578150649197109138987218416792784378824057458392326142143565303899760832040067935837311942219624403301404452273761705840258024148281526104507484745690300626007754107788816703649653620350743281789693809141870241945199921012935562977926482112241746427529887438200504432111570154471245541913324926720065393378578796563471299080520747701379833690953096946417878455810606444221850625867071571979357143358608534652545153719250476959291942219910228845327317370228351586475727285925371302617330417260497850918393948453971409387662950160121090293748037506581728593467885047250218274955828198945495176079428397702883502162168766437046603078709643462770149914064411782103253415211714788370532861542397387868430769241881884601680163054980976230303204973747603581212975227743939603106120082629772343493909866991339286499435486642728454970814702950938823623006615533836451960019542102992569586361885441705023059099455060369857295510848605347101082303732805548161505014650691857799398392874570760458060142437474609957970118602813335023552868558412911497098878912602610504938505516192507186871471951206284331554895257911934999849416451845404597209343946223639015723609128699838869539703238756278494916373441898748208923313457367789770312732831323019509483546511304707556541826316023784266279437576329524098417213204755856458620231327216830386583685071934603770536656340726342406943719283665135512936700707927675056880600147152458245753864237699582765518997108409221639252793142979140793999528609304509351840385670022283170039483137488862898521794389513758515985467950318918051564539129567136920681064766047617994716325598193975580146510193610383182921397677130163504059331328347841747583487047312840809134861735781210245039450792067140451642891459926638265541950472273645113008675925554503656016382423490313633039375327802170459756972347839133832894968925749021322025262386353060498156950376479252317632647821437869547551995368857914851731252850362977191520645355492973851839366005473251315076115486534078255200701193446052436765544119224026037392088178660972582764305171263736344099032938458913252999490973003659557245666135447430799020453868752003117329712141894527019662004322544480440226136344927042917423041603079103615732309586726993640311612133780730155995189733018007073632045175269312759056414384442692040986879097099449099198169193437425154382860594278306812008879315202004625842980847606617806587484029208238715102227444104892227912418565432440081812079761625121791234729924077937014259610013476496354667712161125982193773779048736323421388626445262645913394232884844662809548021421316794333567126752286219563662271033712577737555795860130192318990964671747287004773315267814339226023830224098410252820703401930886209323103358683474640293078813023320285098970183070185934599443028766909192046851499632992832920765172241419062543595594520728693820951792821511387175481167178274202734714317655562277171524829249281712640406326691406707723459149204675177005108274997607974828358628153218141883507292683327011268421917828003564343907024711972590538698993874585493190453254029908192799938888292614995921044527374722845973130913374104155193213165444741596946910027962197034751826869716960637443621411236671858525933462398860600978503001163545931788798028131317341579464196022073414187185634484175535147958855768476853995563621414935363445670642201672115928292023204372765847629724207902310775919650668691939878610289327363199729961420444629274820174790442746186054056962658343873887114878819377098167933630830298825374224637105291345367660185748803784376545412778312015510026761465099015014429418286970510742729434179646393098717600691912154571374200345858471775518099126630877574149292012768862579598742403141383865155781990421619067304340576292219935915427895149434712958600979260499735647413161527477827756553186491375671933629804400774643300062616471592293692219580911832340974032902336307606867613222855075919625748332805230049223281232664299094248480718090492119225554908583688665032074822248317471812829075175191496357857376959666799953450756865387734431545790816658680708601619104024805079367722298359973487592926011508575364403930566339584293838658484110269195634548285316728778980071239781126740797673733643015220854277581409652679398809652124673242900926631599601953670496529910101520540986697350252368415712451181672603414741557830111853921913912989475637182856147809273576951864807804013315344643961358246551219794899301256041878393496650335033038914660347447055361929236727036320527180291931499909435830066789212660319831700387237693028278531094137306340312079581402058960764250942150047191569748072354539625516614503605115046894562769052546566957279354249369645190073331039425510442750775870464620966937448185968360326551621153578311895048977695162803527346628504028493307424701357002352841948876091492009228915292709954465570718829692930332013795191073411432191642225960787535270815316795315786272299720710339946412843348311521690902215528453791004123063217571511854587548208345339850091321633420410163640693997459815358719651607867548018940881726347825753728667424997028104519775582485072320446919682452171405425403004025776729178035666199926171624305386795624597001175138578642688930024516151954572627276728618027483267196491178296872255157184033005167927077343714161413772263018947237874296011287157291769528457068483396084079227538799509285028204395644271606242167259178040694935660959812458513315309376667350270010418750532109459861271470369609819807431889058038169636733692598418120677610520730399215937533833691943840912783257693409315548231284660553014050585210529691389260473404202595216251062711052123759710605599084992936397704880508682756074820994418099034410681515025519762916241015477163939211699782931011816289543986017684139123690153805330644911167198967523194272210302487134922904304801105067497365958651797660603254101431295843429799639358015051521961137563015578715986015086171012402171404374799486966586891286363522259051374760838003927834536222550675278592272743093176243930861138947999461001239796246319797794442230641870063330460430751996779662193177989538703385010138597498877077441899660725706374766852518673231343106021547303836464396496609334162651795682473744620334070737014180339823197538251714348749105496895386091578683587853879423384038957902207341117591455208088551790430150025625871514177077891285858131181456305971518380825633530243893512331564757229035057102213238919339410333277351455871081882374659395773031195131859029037126702165886883143161464173521549284528730370830434897738557989788237364853373116618948730143759107777482203671798714721647699226059852033915471128705156819903412464157179999177446325892967208983346901757516482535680653838916281691817839854479522249744224490100800743445474885381605035275689992664744669302539312407425845499077322223916541972006101792920681099937468253269917574050194371101701269577405217182664058514053216379756756872345534413622389035428336884390167810988677196830362133491964713755344074875533923333158840705498927314718102461400411245318207947414310923697775743043394001670702125828097886663450113776239787572335877460498273964398819958319670717949445527135314768748538192512340380445026878341918468225965836197921182006565105376684529437247548316576056903705100467511005073097806719399455893482235020489760827864220263202533007968671109306028072243343980012098084346602549998155258696452542563055277324322624461390178168909623750135843632125373754401716185497375988092630780328814184544071103254436671849349096873304182986354598528002516988810921969962664149819034693790822760653694883500863813261381509669877304526064779201054542051637670636358242579056952404033489474014831463770913692823470947267578942436434305553134149692336322060151415722306436801656113478330345592067516288697268512591969665300579247640188631343048787606157969692087398722386308915161689018241727152432581909052823017558379866695697728578517089569006225069131211329922485658013674535822329469075526515308481684698478124803862263764139171054927281130762366404184109089026773627378110734857055068356900317605180415494359546511871430469413417170556013176310106892205980000778904801321997924930683846234993898031875830682687203971826187977244947558264921647598055316345545537907175399216878525106525996521561845251541122577362673657730335481002182627252397910148608359984071459698883284502868133180873253903579036566268992871187242868730552230421080497181387607151035443619505534280333824518692909098660271874382430994973366632019271752756491372544500975695848145362089641756112552748578958571631227779375949524420883109070498144326031441386820685105730428543253343420340301739149705075297351936912655360469592426105909535540422786543885845175997152135445530432652049426874950683710779334306408169832933540485747571060940330410356776620023195648713049660304923694354213057144267963721948588780841874289361842896713966064701272938726935412848924788497906542605358102521986298097186886509475510733093363198716060761406242666054138247439594723440641232091974895632239908211779319310643887019985468450883538995045580099538806432369721533952685476250132882116080878192911668346467834785633377107978644498499620527824324782256946031896539233793371611981951327171894319451119894760929713563835329407919308235936247968651481236730686704533534049561851101857336388084152677948502378891848640998954796464057047172641707925623789215333255742033936201301537134566359595836313966451531903581981578955716488166291843810108793565642952121997979808942614278110146171338440120268328295512155862690010563800838154066225758959872300602955429825561059846719097798432319696943194903265898997589088084593937798525708831014823538312592845301958893010042301302972330464390807866794355065749636406973415981461670241384462969044651488646386116948310280661056254858201241802754417740862443565844066475120375771871283559654049150135706808625679176983822507525842103803261506733247032229588795818923792321822003816120704278416224146937420974945396515081609643860193906064011477621742246657248841195030041971924010882075870270572546329736284948732479165199629367417819923982823250430690938075826341885888179328595638472821903642563799580079036803915957472448300511657549911764982558713185522317252272528865035859032632600016434977944711099089235899683409427471620659863819188470574128533253037481300031346567959900762446669777887154826369268641798429585954701540133624290950368293628611239715447508055535378133403448533097506453124929222578625471550247783481071288068250403865755559400533484859013784723874120557076322877809109284186995867970216956179552105209094656780628938996569167783947819489742669151572517890768881403902557227866474222610339301772221374292062907226015901793791611724042757542523290588611115986631868094863093662192324841358372508869301459028728971790040553944630308880096609018617818484866310707103776696090308655228202591346988667700747930436695271676999040569547566609223037030014883245685779168102311593088305209829420706232686099582982936069422102752259436387244975301625084647276526701172201428653001990841846313106200873708596401063747362935994872799118045773982982761445213187486636622069811777934949092969882622090601915851491629632052911291497679280304221925913180020989075710887434342057262533320844716500930453791675525409168719339210659615263928801145129303663190563896552278029771952364363226267478534362694531224231070204535468156912729093811707501608080101511305074657061636816250215047929401422763411083191767484610452410176052136384813376768194155785625234225288679697148216305086214773691736506809983321558036902214390285136277522079074096980648175268871716399911977332722514209580179781218710817602768978903886063670703975324892145632722903274675415864215869214919354987932064227040762217262021811247909747570949242106641492510880133808266802556188031742009387556421769132643104769029234526196614562485919318850758240624850666372545671581799062661399789017308278506071616758979136593120982278301209652507086854793092919798414734884961589392883737237249003674603534088131558442308726304643987766106316801984936627006718445452206426294679836268570990369723013501302717121799434213041000065502403604849333669204535351026627812237391616697998493079982551729345343678731911121084854104735163198259480110050235605878513609428212728350087278439716784985032845434513683217148799210134838714487855406384726545435382783060521650492747511012497171600685464779167731264409293312700700325930969013657981155450995408603035592769128108219434234462398681096420692969858406874572525344168226128934928074088307913759179074077865831718638234866411948815744556544267717351260612183897131862471251528871157697746969521668606635789146407306014303452266900332133102145498111411080152494918759832035302992366057513040585692914265574516797795631409956257018558197702440884220715948151239790454080067692224933242668048123319939605920939053769001700150593345270491840218530941113947092552011158855534195407755022216293030460612112978932219048383333450765442988546965303436244201653525732077217563262934039927585812594607382737269703339091539340375618824810601990944520945196008884115272946248821262771073406680214501656681716956575255456695434397213188868992556117279868415940954487179926496869399096868150785059588210781255434937458095065489072596569835403882613704674297371040367260973025456371709334498862235548007299771836910526245596576385268832551684228650973077179162957827248251580081681438315101777721762752608397583471991620970673429412571088195464995482679494652787473550452218968471942668132224294144099564976168026381433596024219504730326568770194764272028447691396028592127889829578004741393181350250936797353680340235192882816224183445683878384883252548100448549948329763469354528860174703411637286992935180785218325835489773549297792801237375269735818592410047483610167610026371767440333123033826956197276603892928952561795901768269156605228105418478854472456061779912282099217467080163271004618404026337443987605440132891320217609151531004435224481987061674105515908635493831458929811289142397220581090506213442602888053822634062097878231999192729371518726229859206051961546081195645945535432172265268148294541432077744541721496158227338835804743590235911861259662491412333459297967876667403001320751500631286909986251008593356789292308015012363890356544206992536362432152074166534222902103872427697593918228994788948080266788285380290069844295233454786310154811452427517914438937993744931750703128214007588540480154280141496188247538029457765472861327890793554117546786013228432868250057246952609933568518872242993833120704378459985280829451314869238034731063905149857760092697042157939723123118995745081720425063112167586300323591220172766659143374069095750211283862050626025965482462494847066299694359250706543620297770736046726610545263757648869033170442621123268980145958590124148496289185226474811522559221458657403294470123565384276161533172773292703163844269668409369862873297587578358625519904113480352079443100449793164841107686236790014127526556132380354756930494268483338003453982287706353819778371575944813758874592456208759396460210732037824769307170880251563937482872242225128376445017273421490165315598302301926326527487269855259057754459172687475153342551568515535763919021196041732714254639758828703455712837842609685867653613707691813600435203376507736702033086215714135592439792216013693160468720692188511819159112594596336098222041578215799846337688220986752384621855315748404010462563107243566121821380364516531691508747932988232907581242365867015104269214275178757397907240999092524769089613441195924830203267084380935414282729667520831079930494944308300101266851592464590368153095419342946742677511941655313057821709475864965824033530632781623276430330435381654512295746826905301213823012147542932625939582983738863870561616756749255271880406241570144045727465202652626078183208518678312102726323116440424469195612194336611060072024189355936634818370973120101044039678962365217523268143351883415726506392619025203011037515305790864334152104963856072177563685616991604468098084197783709471787751090332918714084108885903559491637330723177541621548879340138128608086345934469472941583044630297913844550158788609826474229827777303829775698090052159958725354207747492697967396774119341430943929971789399538569436949788068841610441123812996594762936735774081442296732053536683165295461529818431422194405767998758642725081268744641207625349664646962022374575018356153049156083169363525945316155299813094419093510436358191044953317320908844188081447109660561886133648656823078382687544524466716106518222152724247642321856437969822801793511399618139445803463705800380457387115341686792455164288078375080294629221157787078787047811238301999511729085624823606146493482217252397366858808731400471355933336825035060756334955586811901585275972855573117977992452437385492020934010227070980177263699225423821490587463640671006997015068856502485866360964025604379068176407190384178468429831210473146550406230506409891515700018591020105041284488047319430093326197949637833159914395420124431738327174640732347442912397783752267519754717509631769366416792460817368573785294601839409708824435239656193654243007884033748209838268968499398955815698530629486077377684553884563022197396763922257751184728575257968192238034217144715488835770545214340340989585231122934138181865100153795950056127299914655471170173658841546614669755017417272750854683077571213829325117036313506817761646202358540100509925273725866158509018882324335053187584080139314310244431593799431740474021168810610127734163331828386467004653342197466361511686885698835408446186025216000124340660232915387562800913652122691901040191949730579937792635879345073352117322206920226159678065711116406942013736584914793021808625735134438378467596978829248001296039409783698652111723927935731714113685280587451468942145242519120234787024383795461870670788386773857646621912827269279376787602673114792931938645108013105804108048909794903713907806770957074320386911622554773079240192011203747859892786761906898162285255374566447038765068972638178185045269194583211873640338218992873591532515425272875490894054209727227566101355385350110153586897924649693362098859701652935280443119902798161157485897944241393305890823490140801011488417625870654044175094932680914791407435257464798086328100740760391891416167708031369760706585667166299852440003386300849291891897549658649989666153102839481898977432576474009604676276103868395262155810099024748079542688161330941480623348867565610931447437674980512439314621428091151705055662363562518872367191020844453474807952952621297547735012922736793190159833323852376005219874199072416022719830415369781869654853134024004405820344119624731548786456964011944427428711290618940620886231413964323349172112100107564764805106329790917647133583718936402805866820595372513500631599249014729928849025743519474399665605311267348078925089396843355642434856916479748590223482950641110530880893937249380637654269789093174594859611283074684323616604219779940523910426991855338583275349294777035356637727156541648890959549994238549417157704942123912286528994083817344295080218122451911605044349682486762141105836396300173115732782836398111702076143661678003676800285758433875559428233805731468131193688184031294223200934410637186061140795141724003539406362676993125178787837054207690929073470092973139244751482476225353444976778224071086673810770447725465317103616415772118468079330857157325706493875481785674319085725123266847858981028836690670888959169103732390689306137331785708077481073133154122330565696115436877896739217476482290270916887135659574659958201706536789624662541384861170512196575540428362248209754243823480674450095793641179528764775720518970131002393029961296191475116095654892848049058975663317843035436004574278210964525373643016608683600654174812131796528044840584102547886985630511627770751986249721161909022718292288761902310245725320583928810122496176482518223311398270877261185742798357565265477951905808915528973797995032906335855609148141592560439530801870974749116538372842118840853434231804455816621361549391446336297600711937658222468180485503409184385407773450574108451485381452816325024403470344135436127867393381242109749422349712756338057477487985777204056416953832519584226223801171436741067159492643664675703545385999125784658932205123280101499952849105636775884270407621026530502273867968492570221259601699182393795154794740401791128203956812945582223792737796557633542435579773373968993861404079446051078786153946093954528874723672087027925765382243726884524226743084460996400213487757631792794682037077816541461244506310041128869557844284045943733646769658063500586435798462850093369528347111180361744302143456243098062895232122932649072854918899646047499733530784392286857203258101192679881586592163305104518146566396377265350032497011772053406154459603896391720669930386674880735643016147361868181167739743971545152135345774909408275248342575751543559390566828036693263578836308449916026564667857196247811322829000885566814997464002252303548603287099019662331815847088212843730053560806456431531923176107922841472476751579572451133736536656716301746801162417481188876653276057932279112316012282225550999875511669182415955541040420755750949995920324285895972483616491658075583051869484501108977844630501412120437081020312514753172442267542552463300044398222183244760251357625935783115123323385542106949866028983253139692256119235293636176154891431178688424834063669253131201113398365223967004320295240420900394774353303215972913526340424382513727525577328432432565536484916395959772331846178535914430239168440137277802204789611200183042418995668728146741343910096376483176043974317408059359509495007298426302463364619484397001646325827921296391287689902215392587597944200887340236921000325143945300446137107638520248870138041817063096764085606619936553635388699068603641655167470688743570494621528353412210533199824995436514001643269323819598136094720659127524730908563860243140907045724630898587429303314162688205363774355306923820772680038320408780898078437230656275268317693821887451195723909176074296255025099502890522747020057631873539289244820859421255248641225201826191295096287466573194492511225720635073290609830721553249714971393350970689350766204952927526675790449034967944852891124766074683770623594314150196348200501702316993674797990672373471702687371860619313368595957000187601014624758490458545634550739192426194005423074891049026877447220780723298442750033693240599302176078849440758417423513978518686343508708684399741928311296938851678603516907068873991603006600235297691820873397068381724108913317536775717448760153997839819324034512001306563770463355289869218817812641835277193058076826058209024075938985431913063265690561166623990997605618259165964432447296123802665647628865577762962782524721856330803228030866150510966134906244962860775980336972675451763945221921441674251465129855408100950024357838968377278583072624653698305924272134537797157352181090702786384408673048249879104471539571247065250253201688381805195836342862564156625289464139584148023307846821920298652508554850812114371556291317169475155745346116835272742172088841438682081717733397983655349295381660695627071526888129233901105499986619021183671015739506807309193104160402172938246503889619970730317014313565410492882625607887631041647837830304254385862972672072319435162702954255385939101188894806025457446906186380542199921649269004293792152578493197642052681360022281165150127821510427581814867443015447885128142835786828160959057844602973279442206181552611093090218414342106831290019644685867241413775200234858503295784788800395593618762444624153223085996018758049554248577233279982529379321366351362491954838753476769657588469825210366499723856347750906263283854875944009233881728352347881151398346119378615992367288509702750932888810965829668084061077140012233729195180916540109774692205194329173905493021546320671815304859540824652358646586773233303594188092884626800939140325214241933078913294235758376456334406775883053668768454552540359775962230736124008895968880082546203512539676965841907590367786267694666974467823171225166633066709626044850250390038798255589478496477295470790021912068677977359122995580111345837707079069543998648870948199959825533723898476116247028122142086513302741243580459707360522146677852059710371389660121192333048516460210157375540846552560436298569933700668446566016758224521586547280702420766654921028961363302655984700146550470612686058906607562289393790968392561600782622337224812593540108066524590769180063829499396234305216844406308935215400337261444063265670568425125782974722514446635457352376014527901223810340068197731251612283841193737442464422409814018695300001163724149392646066571285182000607463920136275059343299297915748364424796222004114224615350093127825539160182775883104021266726037349272097592388100608501033825847211653498542821388325664591956396002204636996332555553263498805459428183366525602142873941953474083504385848758046758456160524701714024352563207907519113334211768484435369137432074628220008676767832161479914568596034033004714137136170797287127283829811464152374706959146891441591314955677151157216983974302877534424909807303212412722772162779851810936054348137340040199777109026208039291605581348452276200887256026872563000269444978947875436190515600354083866132499095785356943789312652828246019064917789020714106009266178884907286459769695511837783509838382986398859526893216249191027840026387864170910293900273428817939352514803568063117357388918214227216302929979407586632351526807142543197358393405170854486328417088243221689780031422838558957256874838226819802392255300711186783720839101422495028258018947286814904208043311143366503841065727814632056657280048261074599506856955342014825019251948218169401635051494570971670489169600889935465950044202047357847393388163070304997446963989535344949393497879152893540506796295167258893194156356906261371412016487815623386470868010333647297392671595502805395708500237049952728586227544555250519171139807042817773902071957611705910342696340991751549023702743770123053416340604825245171566568695192986113717283397916423117427581003698502995313261020921500631789647521729974318943039837353111056520428956620737234135280598917489972460427981920502888828036802340354065091037452819080227089738952833521669138963481054098672359171112511035080076223535722246826755397824540502562420072326547545450592623465849088346939904975877745366533393672426633990360069446861316388211988136813987770553211598098668636835782690862570855991468602205510164891074144550242245767738131196309192840041817644370137783788843219896939529706148723262264841031219817192760428111927256256731696116379910004106938318232462231732696844938395928894843170703233831808927501447714813565367248700105981494964982170156138964608999963672023771093587714747591507858511757763146074990843659502291526016399361651011864431395277712546227710695299312959731758296281935217714039305641045515451836258446462241757851014820963166712762771122651046901276135168781537772790633968861907471166977494093267837577875102272884314017634181526343953231419609885268161190248259380284990609213473673357499857639002891088716725000262098489302424802635808916286291679908777025794217265125535566543462652623625747226505116756450845620415603842771246832382069274322291109292419387920634398975687430077838831236091828386466364932914511143004686896599630211636222175806270065726644021339218182948798830576702279350343423270074046054614057628010199050266743049079590085602223154488722569326790895522778491792142985960195392387774796298544040041655329776823950961392493499517491968129401764273965129363266690248116885539259768308310058102671362612439868226775224028217374764214606541977267589210063323266341627380389504017948375749028957874667106567394201463590836817801817048940650305059607294074152771080093041544099082523062067983969631130637343028084386619291345509900346975895028142200463275413251120720575791872506168138782876619652484291616440512813629204662624308217085846136651550270322506053734903947132159986198980203820871040526154553356390992903904371840821939049644352852412686772237216560375426650683911125328823333117756473904354205441439112650784066807692285244704918626374634974632667013364901027251758655017434087127446461728115727748323870166617545285578864354114744953670832999378833480257808893464942196309772065089676833813488959351844722177312251377737247522664175586058579981637607105008300006716513722183309058603015149298173873961768277186766080822085048598776374696994811264034908835802264471444069094864737680368039047225775365052205209495478008850725076411944868056221092671403008326580467595036139320878110571965221751953756925276147580341912201075608943235727207194349279468129465605358523953247496843384628387182466800099898231687636094453893082492817896447989368346413448961495342159225513045864758654793941195716625635464785319014755445514637618502244937741872740652255647347956442404366438473073438299768515357168527938953101615808663300473686700605231859797560747083540841954667352493252027072293271372855563071338059591615733208259137135159672818337015599676245177747758510046828412910502402480717814906449347133527972574590830623937999163420644478847191902645931788301843515409968945569185753168140927242013504700874676669013778382241269281316049940468679543161939476497286916182180920322620536135294408953779947539094604898595171923573730121155936092319313920693784397719281548538961155237855656770768127102422330789866828577681816092811141535321405627045145488246023122737841889077534142607559196664596027945009515405543111911852004521233652953947711832642386876094706171019287805763919012692595518283982110322642419651990521200323044845269265313718220537023800984032578651675878278171086674518824581110244837069013265916325339152018820256617890907246915366975891176128840227148523911363964614229199838104208684479014214236445216096454187475200424972154797450112453844159014796394631451294669170383399068545751615428072079839005818852375227567837640869213648852755219176841574654329187245026754857948357267520371130346720130168979309888367339481649579575304562595685990801999968828634163323418961598184364358720218453615206011143916200312583362439307616973633711538861952693973619282593035665233680379908716339677445571986521169259718053733049800957960776008984681451633684332345441442308795606679049346344018868010964113436877537247719255858720037303382642618785461117704906900151471496184898125223578272000775951866214613439684498428690878516048048911381126951451210315221919245797472850444027741416597740126066043218891593551952366932486552080922880881806268797243817462728318705986186951582737034791171917077692216107196576875158041413430144748262625923290097191084273170413080527313697447895149149230673981646687005576930301847104273724451980439340341600757798865172160888259649232177257714692470534426828288604226375931852817776498773899274414265179847398220528208564081963221586196032304286910046983800765445921015443355939586295612246219268219681312728170282358271167966831076527446608221703179445722911703720028421336812537230309264894566908536849758830765387518055770412124977044455471453501233544476789512708689628554837192982070442434365301678501658127298041736870440499520572032735099490354741843728121297794087386283328208728956167428047588832919181213254404719656468312300846288106162958615127212990505021951009334989380583029678252756202545875875188618318768229405669652471771695025115465713114162222513345386345749657235604198467633159414498310672384023661883337631181903571351818411783946718898941913615976483602211922930458477271502090233068714729153978512599514748804843462342952612337557568559025616781750879547841776921299448095099246679473714073129575022876910601656436603075433823926663274120059468309821633768091171459807295221293299661769275795236533690425741449391877782527436312933013807873686244090603417706938189861985590088056873745917750680165107118213923383384269135927664697258660039502734182132257684279159439990764919864086325919894783468393072234693911813493791719546906828119937548326178042796380172305045608348432346886924655292965647295471776340779125646575874579732322801984948257343034669139400321561073704810074369363789982347752313055056506684524381110624710136122218954519319028798051286569545165611613460505660880174820689321709290458918463764877672032866630148887377166359116680053219388919063638847903315153474142085842725040059786995447163114776378425926571588748679552111314964421836516018784145446060030716139325546640785344075051618852352853642199344361347212701456448567622020689986013869768865049301561239889967244585801440901463554722858032129758190998640245569795822256087517531322265600447276712424069631511434921197934290418283518289448688165428847206074095839415074517418085378901877828662000314926901525187993530744950813760052642898392701002049207934828743747316040035649993102711678737001071000924610103493503079140624766022567743554461153141555363203089728410361690026960868915508846122785029953247827007229331115094671716855338807491249008742393487052515974274098458555418562625189984134829457229581503370556409280355351617490499667397622823069101764674152000966820877473187590842110689215668634030737065901856458372076336761297132479110156838782176478468702114625656922248762343098465490142841590892332676763659148350335852391965875005664277287721433585009478143853522782389380170656031874035721547378089490412942915269895520359750996571451261391809450760494974978507025363211693238677800628478023047304731646954674609377661968950391707429013475748520439769301995251536185191625374658536982240063640500080869898815515721661210497600818388806329828713377502933454261764109216269475321297440049487224732616804847683728223583950129291976581147328680305939972517876082527115202945618514510228545888472783695577616727039032069988434790243113774194650338642265532265562742299346115052609127717502584152715244074994001808525856494172361610193550645569841797929792342269913326845256850670487272753155501454906086642180367812861710080703768488201549120166156174720598507927165699894241710754920936794392831141807586673264471022636709072312508890107416210906368558689516800241309814016996038346286093488566255064870101501711022264139999316165681132510400400946656840287237791923239217559764408759086291368095977989993181196361230058985992778270763310575970291495758846151710614702176203753990755976257482856758900623947065640941160119248784216720311323206728902260177762455689789451840743510387687709945234259825888801791377545422192044669632430012339573926874256561122673874724060539998434936532911900721997154027736257930133746569199996870580463806350988881497586113311744049176891503241625144885925012581936850421578392389677144618505906774520863357490559320600544328779588020909566497680495971401809876330696038487924510808528502856027041595275878760884072090714828158080624527399937716364919374057586784487431224349456479098388499385635653389686657218178457562004578832278733625569631890023872442186636601018587134336316766204361926460810851340606091241933300871928153485188469147186964582720830699094166290513385823294913967917687693781799243322886302293871447313327675573920879909171189329133197885277122212489934561777442469378494813796829711446657870331294455213812373295118857866514108039192726921720014987168080749332166689991690644508723028926201874994804832062159520388965294417030587675621576763581650144543581066471891105823428244002649509581181999749268410090364331846254581656466594804752883768640010493770639625334658923827543268735657195026510032613045491541013056458816434213344787827920039086139091168662107231839982149719085968666278758711199969836275463584211732288940982184086796116906880795387035021351187182662505998753472336489057099528250189361264831745835358716989246085669019554632239045343712832605391639546035246335105354527881334121877541056630395186597335021372327451422724264953410122934940414909521390819304122643148486065329595364982855266000127926084689074471813092672152157218767337686726459911520184936236834694604454190591231586086372411239430986118053242381278362571954600186560771613913014607791714291608051621045192341411170629238506990420088565670601574214210246197925760120696668088685501887354758051206626647344664441893379367850177850972960513546101815328209570557661610366691397140755445728506053412103503011859526029474606922752267977818125826699972457249270785452514061639187325938181054162795537080094769069949225713101854961095621580489736330447564423711130588167571138162380041335538093875949177860884556661717814174005941284171739357153442766267434308320322726960223324761469652349513696975655587299332441502239506405022079577533380589855367010590872274976772091844773845283860908341850561847849370563461483592016883861996347792458565455693875300220249215709059458115979871995371945985366600737233344329379284972391525841992735763233734476190055791361442256018137259693135372232718954192192915582087342327556286897183284436610380830544624978648443463871362045489262666742185218536632700779765652142543341180715513374569150623450424467223315261005605752573587262593698723649569595091316899531586803992542624415124450675338474569998845293533299431653320937112264943985891444412208325355265845644861392823297119981074593637541695945308741304042479254913758508155015297819019102691936868167052027422855114012406930586016565753595774760868266492317408790692298409679949563731529992939568034786902780025075148872115009104636256224033932216202844253379699527541320671633063621394678109449171715833505854115677623147719483816448164114164643478101271578968203155449943170508868465887302619816324200975039840706002990889150277528696318088833421477534010939559630941491842074088632355576200780423027367903105979658695349118904453124755152510740999912659642839849638920297372024780130339717308864084680161322484675362464857799326540639738768654821500848341790224462901404303784624984561004504081829168458498145728839129685922010800892681863772624160193963645100525109649090168645395934140412844836123599969256810303846777354467844579313379038839851105437713139753133834612295898321927636008478378553998733794368395380884495845574119682267697356481652756521023967704741293693696110641036891476918069229956217384682925648594154830846799478731613482229988413833567716512530700704125655863938631558753238122895125192984821454620246858386798022090590238661410115330199005744322416448939712813032272425408644434186684939484428148877906725109023761690446100506124076755841881037649990905254387739631382252221035174764365020186255715585373705950504346741597895251234735051834445122512702656226723597762418789542764017322246143908493562585005789286643924869554268134147494971781650278248266784936201770649398568499752735674701560333749994734175220982167175040372274423384203542593699157197927244928777217472503600022664090450024860575409272486945339982916652084725603092844476893136001360410885189762446253916970931655129017048870882820192748297098454494581434949036270120647964335070308395366558148955096087420768568664552723047680896725655193995884863401577429444130624675239314399055014386800744349411976047672270085407230607650776542901946297375829923447534287529732847426853651952590380401878235341166067296263286324901824875451402416907732468764153971715853112588481275640425355478786547740107465380070485093108352800122557035758632790766898927803969724628389583795374538829229060057681749055445218630671784505455785812137936075986081270985825930391616626244374782684383362677175179240714782272472487433632733532243188740644573319884675005429139946120877035191162539967766279438099835771509903620662122579528243599969529537673444591806474884672252947212805633391604406275376010663769061516113838451279655303369232428346257827783198164494679233661741809386518907169705340936788085693227270094506638131797006970023986157143828183978689196064728998594368037734429062029162682825944519791414355524478808675904215616074491751138599765111474974190041836493065247824019564170693750233592810782351400626544304549621854525181151520141645095735546779771861030029970212246122502529884290343544123367080077140782477672391501044635048397797449090955706778733037248659468221167482446999683548003077200591484269670488124733277930030681975921115740972679969388654335713438555505434260807862366697883075138455637594799142165844057446911833914299265751168323392335528635755681505486267134785728642000600059825647739663670425368265996694777852763321615447153125643217388509999206523944808583300615593481999496223003635266017384211053801863171247611442576097679247080315481364630168947534978973774735307935069653516111267674473056440425861211004050203942025070148719983072233543378348829713316655099644578077741826480765087916505768857813705644764019733790063354288697073796562757812368759772194191833363818933126040743740506666609540732970165784372890722157454189983598462145908709575213485440324722850486793327621178626552291487582640638530368335645722430390535381183850148980149786979297080995442963174097095163714292448662356911677850407686799566297476194482387639468899652741695277906836245401801773146257070238154829912626812564071345256580864502158727101661638814093673108512457049100572496493659798444058679515320461594783136714691567187771319317788358879951060585459317547195617482253079527486761668315611012008812657949637816737120160434962354168421719116232903905387467037322088174005858873198326713441408004778509527177245768040991755725479880273669010234657257589477537249439707846593224756812070193674103677202123989752366008890318096274991164122279096833131388281649388547201911779020771143932228806789946417862799458946444579576226469854785652445676062458221749580284419251257297862303045268393276805586802209059773908979298705866909265561930131451744573438482892627661222606044032064749647324592774273153673118989391749726723645805681782223350004102398576072231122258677538768203618755576289389693989481837481351294848156429168308147717439297913805078185231714684524883864675830792506214931760429498289889584875169616538362246474861181657053478811430597641461694141557225227955459942199701710049415390528329283755738144863199362168209448074116744563281825308829289644170235400621804157361767341455317303173975387703508450173202423941992819022708023889362150078302788962492012983080914770278010921006407510087727377960561704065766531811190682265211090968282162366601565184603655958279467356233554306135663061506960349958053608406716292604164830336394711055945764029081677318780350979707736694459645782249806096601071832989045866958652627407045979215339620724861504667731038943805025247934411144209145445841007022222656976576195258028363760233344095565699270449635478410290699146974809511905960439643816968453327402353330826184855299131240279657731779937205179487847455420235543022650919280442945921103865969420067391539947443688393540137405720950821398262868178916721187423428044664810193147477755360069008708630466507033822023245742994176092058778373791894957579607456473853043443503097422893228932903042022300610478210600469488030534571195821834624156856362551805992030991311262625479953532186303825625683190458071319595222009904257049439196520113681170864626373183304968929147514910670068793520156137821197485959399693008025814577734867089813443188034284793449593137492363556126253198754907517313372228565241860266426466904737743049269593332690264614588282613584943429667240240633578859023905118725832936410571039782403624812795046189175493835930379487215218188714114564340496737713456521605585721640829110611352160687944866018231336241405439376088763752603783659067646057036262523495302162697325887539321402901556910491350856481731114480820331282972926294419568971529240409605446767562421345708556255181806324468548569609925009194999587228423212016645828124673365792868723347507298982443107264652925899154627733118931574991753326632903196786854348216321197083492062063802676033100300067807378111254337378321330382407665413889456615558211634829108600472801074982308470996412876673746431161987559937993412066468389270207929320466125640674322367199107754259889223047169557163113053129351908498322466203372510796051008662174232070537816684561554681390432432822359715305461571230444793677048444965587461984827442853791706686495139911084623266539297467087128823362730313885741949105283750679481036527861960838255736722411594943340976786018605619777765000466678769343632329648985903105531712302017457453299428533902272306266754261357009658454242623388998780276929001049394391601716418622053307408816561058959813483616211391255332240058859480677822748379302123108694845743681477504671126624414344733637393115068671754057362544060092660161059000790525825770871508845702146233259417616238822478189817587434925134131523220540728530710821590598567694313189022932121840663861793564985381468376925527605773472211826413831910748348221548526312315115464539570360223205250683213260098122122348152368556320458879369556375329347923225019009941586315726795599440213396215480413513234311605035192931975000106653378072412176809956246849054815516050325993530229754207860768918045583823341862992636311325885939166851889932663619806818084942104056132967080446223990838039384344739288029717319367113030509856177438320117909176879370722555380140753379738542035532087504704551285963966428530272320679203932372265680766056947026613356302185113829499337252564338676775032625743022614297467744709419434123227560280211560277878856140577473666519468519360703586418117471717054639269284467650999810763509272014021385361127042639753390283562851704903455087416332747547614323232267691202767758908360308004244470468414273921351756329786096977891460621577472254959439368229101038558569545916820665449404433407205225356588235053814100314438862635942820594096926330725268787697009191606085842826721669869992974023739848609396182078399248365933656712742921778383489161837725860881886794540427295795750061121784233055061811055330246932263325628965993047566942944963475995325328986326951151963670532352709598774848997836853819837077810594964846793394375910695933847790791993621220372579692246881280911986636861435959180152391014659849316689872514480478272030959198976740326422290466850738077913004106817294531819670289932312638533655708476300212779960988823264222200567306344587055812540184345276123268864903389824150102679000520155919186427667748426657691938471182647727915806158033899227476872266793458558495837075674129996118737893798790436790516538932393770629485773548551144881736087548461513709425483981567262931094946145420762829140648949585049849095689816505323622252130287230024744474206004045356974964467224769942785162495602562646449569019243725386618570446033028455372136885567152103861784449855649011276698414283986467417443651781036503923401886671017605541850787200758185579014492263154792174757360128290321966637764287679649945848245214445144728951563465144524246814158590585189120095899509234037106695351860268300803157221858560408532453782969608214394456782772947118905818778472233412151037823309473324348070948283086310700104722379771090938844447648776956281422053224898928585798393120767234055308159233790941071188813549739199055647593540263820230573544726040416920571827027154586246205977882573694684321046439857903341326073802707541670163853922623849745759368876400111887275767199321721389011973570982551995183607090820346799236670870504443080445345013792162195989130209227002809315043153104750187486291688874151364458556461210550973465566089982057172498934237435280849027683680462517485318301939157672414664341337882305445922160622832131838068453670857402012010050226295677862517642646894676423086539268699519845233343618237532831007706330948549675079669841955219312416833503442177463564335097437335208393405279919534023933772151832203317360748861460638810540607942506007575434617115868327289208909144015638229141384062539775288629779877947252149663503658993940216291530292755940902569343436644654596415230554406158952124057314866727370479640817438082661583888938645831178100346405616864937084830557522433267015742303598256170648997295967276751074083500360948434985177844817511653104551303304458581293205116005951214875786397040289007438202403773442252194586917312140740507607982330719691031457161151731025350862444030965509839423579187641702759478657179342209386418181339442804779500681135220294616896634364375761484361858945080180437683935920693917176003563559176966243246126502457120610160655863049991744737445750455654645675155986599943494888814061704250117828928148265625423918916195379159555500802593266353069903393239371494864314081978483339373091389810065587304464950975314977342663769779796965389243190416072393008674349065358610915490515395411067894673687319281129669320140686869346818226722472938129495672614633693095874213258563174162720928336368524039446630847195391798200349553264407946994964184499284668101354450331531465704308091260877767706316329771782532250274333318211574230520934851097966274324240468370784934562806764935300526144917857350826819228111890471737894173740564090700065855495706494098837910339619266598115769940605810249851815653530415879578596013157951644586396004575364526419752891325699704062744592622922865864128410594298040793165256367873238722972147405613437204317437636886041633552632285624381211354340098065946178576920821512561093185719890454946131628316824080436895176943147807583440330294828324047224935638951561996662134157288175062663617705049809597649571557258521082815687936096744516870166024716650184703025014471352744652073400017507187280188938170602505544493402012544224144494061759898646272793925945407639379661339862421807239110195384311420982569487432337334908593248942730632549293470383161066774579876740063992410330030922126945729748748632527843963548909747341769697952145755964839405197163452598602879167263719792328117611975722038137754262849297320754280259279095328412057395641074388175819966709928770798623127032885833460574114742048086870988767386453131236602938893268593632997864682150945714600273981118161060050726424627643708940120557527684742488336076355790646360591957890927231876835833848372942113730885382319072884776389208081432714857084126504936046250061414038304150860459465473926929832774206644769804888199645262829288365344862482913047707105480177309954448757976956987123129327724756587221491904828538429428810281142204143661127011542364871373183021426310171763051877775169503002371283718613925760210347400714027498336004752443580469991482645767659051214530810319921149713387989135427031595988753525246103154483428450519197210778248623658835376388040864365295453556788654778888644115222809670522035324472562225494478245183844120899836818977226265844351744886178074839766530531157121520759807011385016128712962264773691698352062822028009531417308024899453211278622932887362297896890510639438576046163189361464081089083189343382183259545741521717211851964834937561551032758833118332517765416255227664582634276540105714378536151126026723627309960055369133402109349224155345301876019147381770225618336557255532229226050831734816521255045109687977841026554731996977626656530744055041683477627894735009564027908911450881171736819400121366936748583673496825898477482023535674663046939496547773097707324577019885177831624143417958843853670540231984839783950016716756600413537222121380112731091655591530960442551072077861698909187954121621681914627947929508312012895187968467543742340527124946112367248026268326657519320713503847546832083594303285536963545872389514946548365732646932894780378898482822777791087037203285414547163424771008780677128145851138445629947884398089943323429728424909092843804053188617170659931951895744966085379662808300626845253506386289730867199951198170589268468449004981440638610426650082216608035041817980655540103742015788484830539365820578702343244532276988429051203646630624429251478388765539369582795237041023966221774011649717222707067922934711014087825162582825393265626943510985100841943437868583959411723234512457970162674691829887395902871655719912251548149446108114460584453517629395417272359175876063531291335752514406186513866815166021533348396178371703586992834868520174070969741078362022387390540111253729718347797644926074943073875939112795818313426787846897227766543694825755023224906412003064167421110841319121221578632631764375054046732995848222071734849083935478758273172730557082742759383848876083988060980323728473128914414164912105885215962229363996991305500972669802835607651726914974604857237560150665745743884951352527989436227167058287706422586609297846041469405561200725639106223482515326225053153293164104073665322359621401090687175748899761113069004377530200582639216012402935443678518219760893596391311914160301743315616748340543812095781518470086122948056021265975992927956903555974305419338365226764496564524790766464296574996871275098081991780502959834764797826796233442541995261009162792535362218342984383573639472799948026581307857099218808470711417201472904532051293709922095240580637066376878801266286061627063793992626526584267303644933065377277799822839449116468782448613523582231523003923631578309194847172914925612688195891500926149531696935865380537675970955883228963994466806166533289137349721877589054360443683291955230661143854129148258578841457212347576613425265737266581433221331265867374700106082826178300929693819317551204479657640797432267760841855658275469621773940212940976020061009932972082292187159999450084630663828270146569602958899524695327136180069433447235241309301685419970493039913396922648530198218756929944254678269456600420832467474525278093743343600783134721809347044619382205617621321472696491341059477740952907946769715985445454441938552778951142503055568164383701205599485391451126579475641871751615298964529638359541515111120660492022184644161901179756472695288611186553229645701635642429482482183908304474033150539747536323592174919402763110416376052808702748403761643224115032414527137330225141028875324292976103140141402241261098597149312747113959614447360584905382497979745798530126274962553015158181908954883228344233954684961252097092596204241004344593068578698030009078454625899718881578781289680997135613860137644997958951078833192016221492826033642039813429826548789224612733198832657665183833420624927236032057394465867933041800336048693113285073274557565495867751350234473917052929795534865967154578989960073056661635944882253648146914346639894156713833770010240475921845457906540310071839914346823250781527422599290613337139159268272280496229880794328832583600020887626453950940011654590550034990613112004333978969246067172894904918269970516245275628747057761494511232813763663608595852284110409931139745541618074979020327020062800507759643924902325768477771489690912763464549443946704992638798452404419476711010882709441982611124544858248637056738353155697161978273699068437650487062622971377231971722765338735668096842970340510645912586715504035598319917048256533884036949758137159841806899724528648296332137098198178202671261643648998727491450681934820952339168791909929051545581827405275512692115069717294410992364237968575198842689070594471579291735467246071248100103941375430596297184977014528402024164235649453420571057810427232227733513544968033541018289485296355262759224448429962140066918097705848204770712353262601003459648416153254550924322661015212989996830752276094816476050731812323770987639677820463235271342135933045211287273244621493668791049686530195304093911922001578136536314358247540360913919027629836604451383770328067887771883050456695409525003412030231630535491992082853893863252844805668732616558854545783198197417798917422448176162338508904212050997352476293052279665828155149833536789176770180538415918489939210064834883834741521998745725090504100372163642865859409983628452379697733941375877451938607047609753339203638997163269805636458272002001603886621017210384342442398652413710623768432922704802534714212275131696733552153258840901408535567447889140169338000631342295113801214902768453489195033661273996626144960984592100770635698144400827092594377757760502967922171219776534926193573196456307258199281368249898109585158710193316224854590206427758957694676898280742391754331530639094063436934698787261611358537508422618556172492688209314635552440308475481331762658705160629375609138877149304909479341869249122183480008772423153453216115014286961678157741081278876314520846955933898728065259324099312259164582759507224693909366775973569063188213089374167584023355138489881632434886529287579103504869064188281643613696652871407994375116718311568588031618513122387525960727188102799620864496748975527176276888045136114224440238821567649876385369766850394966813268225188268948183814268536306930790289986667908172990683615186308239208534133161996199184468703430302691919963921252174102306644126679150474032037615799385500506701240488234757246450954798216286006430953509733751870098509442777389727887291393587652910479226047654090632868037704663340371761288337902546193418355718764505442471854776976783725525728583663634275875552780557980955379783186010643911939454955033753474069254698064614501861838960365271348899293987209413634119271850628645604195613101021469667071321793276057579679260495128110593207859388072610744230235871347052738713199928712173248760900715848837466215262231642556900375774776231127846852352127630422610290133164695601486021812314767920997808057889821286784799266915295819492973622063203187152383525608529973737910203405642102474933140649527150114296717774968347724679055567467151438768200911937071416619697551076105471596388517621820763353973052781341148301910855817782586968106598682318743310754295934804969284891065251659729355154069269055432617056762684596996348120856410724796020735875131872191729442016057195813691106465882451026608314322738404784943287278181575006978134590167942198153619379727011927245627531299616392234089467347641017907833044301550282037747041182049016469262661882104235849408972036161901318340588025449164946605333194384894794866249524870734702673404218487282017302923087065917097358157620765084602883160367104041385123576188274829343967578977950830572299236181826414530010832302715764515132545434913173512132672333866039693047385969588254826266570333143882269652866178447439971048920680620260000507128567206783993373165335280115564559694469519396565989146948653621304666160217923195702083178801648586725986895080301337749791559054006688692077158094632440982370203367647130850613693220328275605622071646817335146638683954472279078172457439306139838079075239502176337616482062627945940461695157349531881500222561624383538206290469800558656265817937238871346773818478700345435861732523171762755647046800928964137239144109653240442206005689826741803228547198366565908282816823467767987865640276740104933718648478585570495170449669169186667121735565600066003458651841099730677564795675482135128964891467972526631440958896679952440812074269050706862552320636857428235211306584899894336516013536576675450263622225008246984431066805743583672692374769198039090796391653657725982210758718867407883421114103935313775966487986262552612018171788421890887218842413914707352725704926401247685541617622903220138801283844098913860852438837503944736300837598972340867915377722100688443689957594341918298862544762459939498087859740900877733811387522521969942245409860394194755870154607737215138305185003949415065038826678419322770113680437156608729605284061932621399380618877015734894241250473420745401078547651609725846746621098384541466019292123664275620158451037500706683366963311233283540328588070341819136779156071373605564732350762020118135953941947764698597707617051438146559924603790565649348149182551398168204001949445932571013759977242641005513538058262141472895093102246088816739341582772423470182384087765276724124771989976404553994243013466178811862420165895517171653691979080649192646365914880008361238137539275718860094651255351500694944879406855005701953621785661960559697302584964615870519591887427113783767696750724332085172610871079914266062342877254155501744865301005866140254959483743695897261616824173020564871337334659020661417097456299787742279136504088734786825037260199666601248616677944059001949569031200939366684014677531265944950397057651591378403823946224055004190618436874289530199680362664021087889786500513297389704875137790495865182332957849174868547495422912605733111549757660573071992555505808109542588493651955704339024404358785915530853996139323038530859963308224705445218007432259174587109689233434905135912343185289400163964306749086606553359415254228244386561781366177428436440328295909719097031072463682611476741623871555452260471615671996907999138622765334478773229373780904306601386583710903889645119875596851058585143871788256126225970941321055120882677447745175290414851948778075677136680078496152754833872163691872051049790465852412627072194179485888788565840948568755648887693092549695930902660237381392092905876272565921282493803501748879035252802833383903380204360590506023073559579734648552794196999736126085857584584613199652635668737491075983817198146423601806395821714097498534367227404626370179264579186872728585536410000730435876372588291481104259208627752358905046588751600325772726740253414401439523650654215927296261597019201998506805852329214694486360981151661282586293850746035485676586222017574566987142474953438689534561880066256664248200491510043906764429927473247868844716156742651392950001263873988511933967715395046795066942897587434461137988856615807904867446996648306177462096033074422239328663203522627666969423382899791020345551527363851480478284402235647992044039317718554509159947778101897826564143196901896599198055845231662315622064223850528544982357385070908901373712627675957526446962458374200946400668563421888599635040558804629023681477416774917705065073700775878075209678012629954063288962035300025056869175749475637546015424152277727573517018622125241452689078625653545019709380138504514784345116715149970378309312580007058076431397573117719831042398083504097354887197437971770997598550058908148222164688074543572310653403888567326446596498294424790590740550346697132700536386775569688236678858215683928187354607062521830495822227910610738139996655324662334426948907293480006900048228915277659454101425577133484211479164856278626726630980116735866842375550446780262317926866002016617764409597993591023878930217059856067331645469540894168930112983057027990668907352715436696202768917371153533351686257586496031213426389167228346559651440088536250987623132425219143486984512212730826472400452155645736747255414169362324322549604720007394624999038877027062510430345278894760257195982076160766468112353503322062178981345885601105799393178626614496106278397012890456575754331479332581396205015307464283756939999144810146006289902807963638789397873650767575392700364526188896212531663249170292028065485646885013799374053943905781502912928765936198650822690979037255142072993700536933283729670224713804095721263375381348271692151518408389369403869101389981782245837728615117818666664420843036035199925179415065153321672314813779906275821182035422645545732701499477304926921147839129934944151726846281415280710518540014020763480914326053571093005626239703920546879082957948994111072175037338582581951770814731558010070728676746514004241865571444385755901280419421156008029894446409764793558149270695068790270386266704254842184421920097500003173664472330323142075152162523318792357350867416610042641742969906663596079911304661320017910116579773541413315700477884265695769740455159056070521072564509128649589269402805658371892953532388428285447145142726884738010232133169897475448073633164799504154932346244874053722932002673446588533603339349198873889321584164564069778499185634010888169927862745443130963817598428864441396308996051804634708836173715873037990241953174727862662192719993347341604763954175065550420724828588296183628987184410595963487389479613701982206413163414790367222692677320405770044185612828153541096484646743311659745013287787854514351464878702295609722157359555678611745758076509124920979703369025507398501318651318686872391311257910144927360920321806333046331525802669384981423155643483025419305772348530717228680373069751147244553831858522659891632023423191402740184935238042018636843621152199515772017540573291320908642642743963077999468498314071666590452307005975696760378035510328487686250524788048596498079686471717791480647924053035905105156832750899082525306281605374463211745988650920431643513653469374244013736228640428565058955148093053392311121107488675647721668233206341524385414324256138674542504075651595283346816790810509360925821449401469686859860099984921044025192207982937430375454007663946057788454451246319266352463740382040783987133816297399636080275762159937414735074812227041171120529686970435970241634016068302068266704266463194956193108939921493499793536911608683120831497452788232804767011691139644183496695073487556357235553089586780634813437670876607884252838085109010689104294907909106179711064619525535463774338213503424678586630189140870993008264334530930224180473773810281368279753859738988274541662161647212099053810498817157479529626435885788342155555446053747033857226323089210823494895473709817407679977630929562088513786788196268363530944830104115749165816026810970920436567592154426563410050458535272143561555548283169865785388407610141527807874734742233512028887791338489214805413333269484507133738566435206985912584023934545787389704964470807420710021664673166546881320293736377256585610584030408936839326161449769330312816915648964883742010528055949785410886711332026212400534579812192965916012267564758295864720660690309187464952796911963363329058680685108438271566153473308147979560905325170523666149539457638379241715448373713954469761313358928338778527639921090315641817156930981706372834810307729695820163795611411780616301792731907757109547980753927767310177147590264303708114886402601496281260911536569206051818891938455778219455539701747488098621656872403335266054968214667134157235084870068090409200933907410017216174519998957600949084557985135969181356609077857232763294742083641313269652784566219809700459526654212864704343227402138046045693516238232934588949032018236767658723205725851389246688246846932707085579483907569941197674080509847231510246266337776216326057451874114516648270299480795976638508601768148518032711877212909998940280342616222371167514828996967054068300461162545470104310141824031140940715915471252997228322902741404655253947933485885497291898709547256173430418736984653367226101850294846960831623196769836427545708154564634038451688787159646804922509315505928241940472337025546236918941325564310018955535218409015025492910316583445694405175887150066978705064581031656324725586365173348896062088662890900319834149100261227209413605761520424390462080083150360531277851695752590236693961133263420994201092198407461682856413227794452774406994030851115776376352569597242656661611594726838711455200895820684340541202863457622755019740220527711899114035875914909244704520275268182876124594708742243501394802741596523729665387854180664481242966022231578786772090619006818981859696094593142264296873783715913619731508230390967879489874966825060003458009428849108997502650263998022899339577800832203838074289386179185552124856827600379648873701313966664070557866579972172327269067304374926965030953097959842419658418019838874033336589258592445950621657681766813094676269234093983724025453367122106683981688702378693278847035679315433976086023086307917170830450047350776363610708812500318354979760141095358451010785609261036640436203165470313717551161823094238089698561684696296569435992034121310240258199341671155339387061879046163628821463203796646455600587154618189098115648250459579684527350034383748902404904601034909954904348435401440533363726768513932043460107030587462016625322920534860461583275083328536188280457954380710984898973711715248409252825354107530799248018381080756636465672410630944026056707231453039281310268843152863638596133321491474486669268027054442438444894322328395325305682443203411538512235971531313126215492602671854531879730954844238115720588583500939073104195572369259000912704706154475599207825634366829228892806104331342393724974245073546112244572011173688970314353210253622128130150753480992592702749558557026219586550126026831687588482544023408195772086398055358606134820700389545948726670653438036416367308949852986514294256691977550963564258027412649244191753285358034808757354223176498728700774473877018727090398103331096055089256229515684131094390060450749321167728029868159132997251496741711502217838053345959706757596341698001720752952793090688185119251528373948809425956421575650502823349671703475190571882966429359669700164330981723191665168475756641576540047568993150258087597066432897524297088659131788819091859438492787996224778718668083050463846460950906146399012077619339100482275201863623153340066385811673968463877220644690470035519832200925275098807932094997367842119113721926389087873448462610292314881223755549915484201387623991607104729061987070718548839577020543388774752256840191176613388552311955421210775083156052900201664924667568304653996695764580561107211942392501777338226538622372027510783295023219095228844329047068373788319421231640110280335378839515942410131261753390751539803451019962596947806855911330077815016725718721233822973997936870313692488315636084208934659548885831231689737263538056605907311219207910170181285859613981302018041103363600122164398932037854412141409191424063673332761462833108944599902780087157021099527710908509851097957310856410300720833606956481980616551346038907018263504167926847570234302560043018141571882111902435022712263628746653260329868135967728488537587322908267250930188437009666317375534054116943510714749722513278885266055068437829396758439595988936699166567306071450884910537029704585877578597756536559069321439361936935822834969739959642241788716178715993039006191119100142970821896403096612292197879777181217749201749730990158955814852664464584775435398594835463133372112073400690947790429557485492369840644709052379440779266096751789221585012017622756828167470134014019203958354267478671236510014213395849990159981427110826576491684402143494230114683942714956313533468358698424994808115229809340618375468919129388480488692786797271171957265467940279705206087475267158345723913341648861605666367530897711238989732701854343780631959187780210889903696720296238064408277732180728109383108721222829678914815813435193626492808395719671031271874801107929524094662320389293304233181049227215392001812123904063942728526976286127475189347952380284944166115602329603549530090111622835507769155461282595747435463351798736816122971369090497031367774692575090480778143633288943794258130421351777566765750085354977693964468787085265403402253768279866155325961158555492428961365767927001464972133194949409155006802046579707949031874403982413569070741951712247430888107349461606173205779070118780938299596869671866224249240779643598436153761444694079264272724714979699741734629331890846751998758454492701239156108357932947909062788046997642557943843306444115482903871418527683127544414792926308685443087105880418166949821044449406107662803165899110724197550181462969484842362978954542021824779741446344131363843286377462181992021801647008038769351289275064225686733420890108737383763565187132849051363859142317262242357472685156134831258228828022958365214098471928017519299012170693421575927866918897721018846165026230857086487112342484817354432746203057339874640511027900350872568055435602397668566762084682154615459036466136496703671974496489632027823489009946531113656839582988076933458853575144560097659032232540941680524724351316820636558560355982674868506161462526308852338382322673905073358162618529845212747392498350581916594744781081592729293405442200325893683246361957924390793662209484047493919595811791042930537864233939915307878717864435816510534561912021186815863353170256150076115745026919665903789214380119436237670769935916681309804431711905052780752718152326144395647258611053074254282125492423992814260490226149435535021201377344442843486326673981457410606991879884163946253294252783638996548547572653720634766428383808107171226424103927654266354754034229046858304825103975753383046586534625563506928126950802635338265586120491318655020079932582157521875822475036197419115855848524443547464628830610883035257889061730122907008401609828348835574957654991481430245579248400189864274402796982667775741271866999303977138413606733672630760440749434782638700063497724623803827186617711784074218241009552648564489146639926855205617097695861309599607715303059714750657626754852219834972778481950126035338383393959851309160190746062050559667250127191831319039497870539915908137872486323984971793136272268909065711779788909091546563311910926144044689408312278104346814025548291968540087497199942185850617104986608916280762422688362619074406236577338674683201631741819403362776353712976916872281856667832637329658512813498589761579563052593783771257534403724338335932243786913843332418073515977722255686585672814873765409346589761635816075882894513865056642030463076263862628787398823316342867103234734220497688830924754371701907158501608052861757207639851361977429579281052774042673410459009174402193751264400591787184491303773390131841309186392564072841205464565557082308892198346796295794420830658860919594745016223017651522696629554127907642998900602252278894778379473593263308449310421355085061461004572985181356825749696761355565728638812879290538675852043284569550292463347846102962603187855749483378628458632939986444391392589667501411443063132580478428611368708154325091069242216027028585889822953880320397980905969008800310627314474196892372318403401257923877870296241024354476840668007887232047850737201250687203536062593741940250229807286205675303138795090206907527522151678269682680954844366734164001280042224806678000561742817378876520892086899119577791027004597865605139345006017069085193088405931107302769369556607660872361590616653929720593669512193029020990068661324991851949565005030304444165661816963051709090594477188666752579039385504725726159376491188033461919569363537322313770348593167462872430999401162081205378810107353924511581129061742602975963736156437940674362937435850152825432810387443373594200061774869323325551186771169059534919695968061053360290020294003015028256835320848413315452479857620336982534181603456550062143965133551542838068482106279499177948750645986032435207219626921396101188923043681314164570793578066020870518598600050992529000816313574759123556733932902128941381394878388535915251528044131093995968653276128179610660748864065219538744631223369076675710180221543637601395103791543202402580386603084195328009265462198913947628150556444485556460434062777670064073881000942244401027925555429820543319074107318650247968222755116069214323351048896183554225893804091752423435675138720289114095855597673890697927717004394412855054326143676067297364762734737757189248585619845142791699994327450349884469852831693392955410851793461438753871409320610189077067920521172210138232128429370494223583904887813926210853203854404514881443259378463066144643252619821784287022066294068802376752284012937910423852345517404017204125684263914031147473752247866617425082045398205802624019335819494607163878740679755919649808991009546588169756426069532521809252603352891234914599146420349542501700989664034261460207277109443366316839200059888953376317240097761162888649937037268470193235788207822868612277754914611540479079334313084876679320144142634051220320340565165952020558002920412083743892138168881558014009788189479577680110812188134336148373902312608037682780265513745417975890290018979279441357706741017206939342689382653492856283067107613705532817918542901299649315534285826471488435576084864596476468729510273871833110919751780142618863860996953924412031227821336221035165719386790865391697286888152731507646592452511012752608305589931831465376408005377346716208029433758618656668032656095821749087842722995611268009251510330422698826730817908860034031713859396235678109406106159785134876078798800262136031412092241924913155864217815312787572645433137414224255844628027951594748152915145334612304148896122783373796081986865058111185757846011807698063915424343555891782542981102538988353921109358342114330663265257311672636394049934158270183153763817075506866342214768790592526369332563711381285297466053869266412844890329685898735112650521970960409578269434101355537735541343262979625409204846094322930241692392333051092712632149103605978894911228053184259947205757211523792903905905749193779227857379431166056644868385698969061467158426815878161203152549441381310984772008282235242981197455970465066010328397992482560848318195218384317026784284506557028503488485116159110175385505845064118403133461670926360709005323023035711834510685829036542805253526746832696863129640982816205793721223195011298618277381780146128369434550372795439478583204654711355389585263807426770533810486882596428694595142018163663348720373992613882908939785234252313220863835741833391985272923587007169143569228034634615373183138923389300199715135348025652746145873175869078420872153358541279327167578350453712934912628368242400909648750805272830044365053627708621739947175534756961232838517217891524471087012077319481408291215460811588240689889456960401617190410615362952413803444321433718641061706732640684024729527789341620633302574286839851503767201316498434606837797796320744605516370892979859553406131934466678968822201109146470749505808252186915160955551383849453795835794755875060630330702975258898653319354051972019372341199293441837286838522329662936925882920056647107595244565407811704626577468249669321284679597440604262323856603669636857757793669429715756059786422669485726016518566121767421813598365472827400983758165465254942803937624703272390616758370182482692828891524948955752256982305325256796490536353832700905136137511428512866297389237066166330051099247806132868732198807169394808698405214155489236552528413593724274946796641436156585445519726199455561089742761344349000895180213738420658014889192498783156012471002255751837805173634538498414488025940612998401737281169387407213977003018373360780740488167072001161257554942954902778605643545320160767679035874517228469535550209195503933215705204375850479772852649274630600010179567643255056468423763438538990029694616267730623284510870650073782062837075254175638356626877171900883217567533210135896619190306010837786477808562332609167639514053499142282755191006642023867457211563072677270773619827388748677886828551518111434691990389554579213373555480189662274177097661023934941841167132869707766787306609439155549356998897980775137803847416963694643265880322893345505244858851957854675978917498488205362034182523578795023089980252882540976960017854912340238621393703111307222121376225407977234735916244260452310637235712616524129811107406011102621310896452098864639755049056487131291745831203379849368247564787748344946363510627469258990572384780132995139379326397239181252545674876727612566880510177254933868800477097275724074380784559108912833554471948784046930066187768519910642398806155499127562151088373763811558199795879974035611121624007500522546115783173947845084711448303599287360380032762883902724477482481006560224007186658524533957680820130943090691127016798439825474952610740219845513398790662643691574757960766144142166956788653376289762173109605710996381367884252710050150104616990164618662836091996663128855723052267849225266834207580345712750575416493527697596616978081981172905863668306711464841564855458378051091890224555518021480285324738564102172989181181705034650717385068327979091719535960915803169095324972799789384066354209335360899084288280938236663954276191792774520260375135886162406202965723061957075732648255591391985344748899501201267596976064851441454541344854684065059279365895162871921437891411796841651393075289368821360902975365692710147387690633513463662387088393313754912963903906240386336919503732173616770697481535350385268914794032569080317078537929796805456873406822531725659518934542520374546616134176757999472224569245678370302943246805704059019251036661575384514025849507709505536729701320103420856021747702976908427179067633158984709792500505111447954832765813189977820684439407663485238259248781691276429440150561388513967201896727587588187578203233577279428719449195930746919248859711369492772945125070559686802557510745883658462533957593923447324262207173366425947678536339611217434232585429992472153903259490837323591905425736362367850889333042795221635992872055706921645169785806262385466497254765865182398921834139426998537850544012818232856799849657238669945090005551012137342754388743578666325319441405725221363352539224899681978245965339581923019690045861139901789140997668151109563061284645919095814256028225393831061817444193409736492963834252610167148875247026857978648856314984391760542984534976127314153522086845542063576931678483604320677791323719021744921811522935683155482778239477045706567452296367123461886784575697018338875133760878304562747636003178738832911722247321224240124689060486997509918956602734624086251655326732583120742828013255969260534219920473675877049266544572723622488141566985740688604681468694499667788503065149424291167643934162576555692953404577353436478862355390728852280595640877519515583814934924465593729350475349001497467249465250755566999369420175392467563776880167539297919613348933143952825732065954556968571995679574335572296270812567758377017429789053989105932178095144540000837001903437860172759122378199426548928979371001155097166425636643163677285030291386512907949674286919852024525120858834012205576188077945694054290375552869447274259929874863866348162761313890204131319646834498362326168891945049717386798261153514556563600250530944335299453980672480334703584336409246983794467755114352550880864883286970801834928093889167609687804286562100637761886459908216548213627922093442516034407318532203687853891692215597380248726752368422647012993706387141685957594640431531197366754597389851040551189549660059529606536701028355168338851662485887014246832576372319584304374382335424392814950888863320287342109320142816840606521376745671507233172669108296490953642126028613115371415404189577132986394572702053100214470612062663763985470701757652066577169148368646738646301727764313547609371834264953307768990655562255665483382187952322102759037373435785195814167576562156330712779787778473802748464014764245489866184372003609161015979101386608110350848895818642422260276595343047573565216110733501545688534140833740307079698063373732062210272614417201076932769662296975041309167296577415909146441423774743667818178914588529595054921571183408351144138938394432824289562990475251514690419562956206775460188914444150451336784279579925568737198525801165404736591383191288247654036407838102044073887348494251107152268849355922474289842416549330109237849401068752783146627106415860473988198757403875048528973245953051529942565697739086451963818694615470462056561997249502206266479486125536130719164350766868049821826870476923162128588070012674450985590572104317625375754647327688679059213160337611474966510917709210546905584420686117311081545855586905501453428413147997966352899275350839324091866498965985728000801718222516687865475177051214180977228111968245563592519948769707384141290832408704399030693521431451911159671901577452980810259401790784308637867661354202040748966219247795987476992492625148393161678035695659702051785687523599377678746550586687480336439404927293967463625147948307673204357237497767100932225623077742482400617515548135619500783401543530616118895122285216419883300115473752948154614633715666777263884750276929263104660857517786388262924276038340123446109602594431272949216459969742935003975970660008004717798662658713519054543975783331798901513711067313495790462059470915121665908420051927291033939162395786258379540179089528965445187686449409942232637416230992262149969144818400424396059346776277828885272304660562751031931009458258532252884791167590379569846750786288837994242248573903142465690114687224223317642234545704918398474696714307177509387492052835810707106243087999219695906544236533458648515302326596878072331467815104081434569572418827231631878666137451090423419485816428162721454962157169380972401776581078151475505995458640489353345163196842342551602651875759668713041625087174911877426985088605263662793641957622079998655519004565498987397497728252856077189023093381831665070267836318254408590976813324039730987436215952481909150913616867023778349937116964989770083097651812374828950551310346388689134649113456090640646875838500108430778340623231345691564713329574956413409167784110710006576350482251645966177379292333780685084825703335738936680882197770744609387552412061593785110090286791462793017597482285775860453408659928449513782905467803482597996426302573180661487492894142149322485499055590952530190348161392743881297417578350586062957883148390918869381545890392922309016080779066706813406322683058049191068679505571692366303537278270175834959313073896618051585219577960345675116168050799296579855288561514125266733499671948125601432734253984277144385888230009143901664485380441846670790221517240186513333675551268233215106027195477867640335923585547824350195808143657966051733558314341904661840922349491151204327327641980231923028056556590787905234576251788983875536412270868098904229342879770662817151423129699692462424406237779210036094121559388826889813132966324680089353339875159045972210115573791943153498211641762109311265309698138779225245238193248160408367968509853187024014719993084631457215148042205736279332155978566122414868837071915205645781884465272341220352046515006424368571240566814761817832074152949236240138752247865146154893067245692845482195346076278794012547142124773438015255745426375008311716743945940796518468207305778349238857326914739354020138358057388200420846054050645432841508876222818127109918957592170706733672127428783259404555741991204793767467312176097362656273624683075148034160385600227119126701278798854022810683388694936791100622024579523048945012729247199612705425972020989003946421599106691234569880542153905425375591886746346491737483191929026489868705875162974675571275375244205543177657361778394264082070074917976479511554555906549660146970708585605563839996262027851678154245094557579680331950262003051397229250508319722527700029629168438230864008389318304906425824086796129002350885262511188026940616513180811699454966679740526031125101557052335195502947265353654523302802848290956769906766071256451008206647844349758501375003724745150019098372460231022108626519540079000157899337316592598540120838898184198193980521193937515679098477446796069547364315603130153706189944003334810707397128128928200462945692678221550579106202551812081853028426845423584012930007335492798791616871985249388301712937758238252816446898556072822405594171452165927465143209643533264886752515493757963956290865398486048874204062695076833822277957825401293323377167358418294125460328871692749074642343684259982419068396234339690688848197952917396919048454841456688640647501227690752340437699588598205364161576158066574104669817668581757683886575573970280766022114310431911243172303435821938743511224291620719835350985094239932565400342189998998436342243377351458506319422448534545311519714218899468872240941217171295730984702996323111902252968297742677480354406985648585560953530351772469129440312817031191661261683604488352818418849664883935176522081969776733313403539008780500972148633725512052363051316374352996887346773702563132258368723912655001606099684383607110439551114999718794586969035403485611787562473621117281370482075248145922893442564214050113863000141474760900488456127558363427376432243114411243110834216319707716687130054406145845668413300675994414485618701443516424565215492794852684550779053869800860809495844494932304445163040662969092895121382174693883273236190016162027620522454784785265570790553231838129727184124797067529222336003824095876721084728317838568376480487454918188990899335158238144133924891309251782224683285500505473484535296742317506624398833745861848456058361493498877414166450510047534791559694607122596861831807862391654180351829861083161683252180975029013432743986087844695100335560278291069101541989480946232199480057177732568753258949758492296640239715106274685925706181391974461372070694576416196049409212762298769375771251891787716996414214883619135266476028765042076614495486397431332252258351824672479538433969047586535580915314972079534300471515737550432064252469807128279236915742772194206493550498547736602728734680756209752485331273143881131613146697647760065910374079998071993134319510421301866335075703703556189486717826687708078920535777873258674755761726002200121394287665732898835776376618215230613998005197797339387257096518961003316386526001368387911354147979166088432609404946199298031282025158497575122949620092519309073603062609406672854165502572237740532505360859411451118275274581590737207373020400792625353001026630420679128747050371351205317476249836319873944591156069342835706097556859979790309234983860814041787576264794643828132569699005125952340498967768002534895292161313651469820864019318935106387542112795819335982600021660748192396690544379148414106242275784002382083142214712851363640618777076446882289504580327290414489554642380417767620913247912013002759270236694894339802621747829424873236017837693280731526585395579949840896565644736496087085901354218007423961805854897093425968038201075092443230033583009894021832388900300896247696330463145526164799794478365244305689848277496810614209166442126706940107859236096590757170173570988894922493927733020425975943204608720912478278248632513609628166295408476641888747575520625387910424321980037249735786407917352400065009868167079729320391743752344789180261158699137570467683040243965004379745403829169708926494777566933936832819265190614821893376712069637298157705873575713811730372797173228178756990520043409242782030655801263735509102952982787725803127259047799446159135314663733957138296136219048300599232423522867471006104789970838921902866662421456442702222649215042762187621133825188733143738486202227231069679932772957679238397611171840629532093976368229917888957436640772876534587113973984011519697502743205878961631403302763944992013476371714774447513254177067079387806796067939384283093451648831686536648157042650339093562798460774361018137194465911254911442053662733627221401435649886138723660460245798379628077467209176298918630412128602086529034222000965601788273225629072488665193314397641327057365928184299653629346123592929553466222271805876980365811194865567248119853164211959606934722722743232179403445414979172331442748015205160594286455030843067928854592988200274648720810794377472336473291919585420837806573261478676014074096131585744436795714914788804650684561767077417667454121557149239923098721092995812232910272556208181271724324202108274830285090787663425545412370979487644987124604387907767859843626688841415564990793249099479973084588875774581517804608422338536134539934802783871039722461265795054439351622508805931392266449811168401644443673870055571314612810803942263920901748224381297874128633292002846025417131524027498286574134911308065676137538751279542235723998641786914734605119546802614959765968878576801644554832235763912600146754082686223060716510263774614969341500599293970407265178831095205513601950906374287290283673874999523495637317735618469635921130843676666485679246793206116597750415774554070862685623429704703072244608761987477781649926363899669283096160096223521060015428804735034468784387953058863389999012109492601527433908790962640150286475415985442695986193463208160974155351116268678016563944353300898353717720865138162227642600575645670484518038272870892393691209819303541069587333424560531807397260583451048275151117295499602431763905600204032917875628595628339733821429391114138452329150856976929035583219448989795437025700952016075762401325849369747353293843198441625695821123566591144927170994862819850220619858543270127134108550677347450604003405083586637522049007776372848677675605740696364220615860545072919582326431847496240651956542403419276809738873811874543408834350882638819367442278320558039057408957733155955659337075257625400799662411745661552916019263214730236182495993923397639899302771218436141100344301394040783000634462196306765496211169511857221629756093435576191391751224087037127096151046394925253146276080988542912203840540771696021865363503369895800603834534151718717667222857851799611326924175999573699891682954538299049675837358136785100695611619327725624977214226916956266234119341205235984319873911998984130758567454230702369803019759930825506791813612322980400853059593700257509262268558165503565950862562712288226247127352585621458694274155414516000719747169031451955545709101139220981849976233769071772482366659477756428099229060693143155402259504479157014542222397855668760998278904626211268667970055717973310272498550541235437664165556795681792708857437599658183325524993164349949927802904553488881260357706270081653903254530451548405175471699593774932542647941001473521397631450989137719608320255130856027141261729696022396335810193444069602130945764964640013659672737656287081874796344068019617316757279336516937387420537003272896354847788330012581871389982253171130490235366902854927556179199312908930801971307417324531867963882375832412385052410839565121750809371412088663109999881804527659415110634222908186652043478481940523574606321915324139827574513696226068090140231431030058930793178446273362739415251836658022172698405014937799379799728222326336306582416056275961626933336996533053991812084193812895916357017896473642071887863147218136745193921070255004739082829604827670379601457182653043634928569515586553530875265049348054177159320639971835510324891501387564800031376713406276901715145414750911001663686565276998391692807769722720998988725194330948138037044757888681030982014898120602559740516371391116813795931932560072516533753155495865584366270111216297748896470113524278866819410547191170723913034304742729283047599836989706855442192147323917214051652355996347769782698210845166793680213013453026988355129954496001731552840305209654510590589213396011969540320102529293043862404619076768090663147946664084119600155167292779189848055617273023739723667590112881426409876471796793177743206462478510517630425834151763029753849916671327405646320052278150367630395537782168835545880269775507372025214695266901755736085266023089883322568099217986951604838813590243986197286302164487525448203618629801045771676047680071961910573457778366953685383777521263696067376633970078745994375074146151311109328968440341998349316150717929831548351585251747945337674110406931666290395082633784530842086820561710691538570450760564845408412616691963288801991651832016737862091150945590700885239264166616368413907673573223050538836367639786476497903155711154647440657339237452018525012427416367060569743758496919811550848227508119429525583596442482319868381955061005316577862075125915265031208320401623248044254910808436659417593637158765115133979095810768494897300251541949824300431918655432834642486285004495805717541804621672588877748081892692409338961038200609011195391261404953300148615585929218186131720441407716710358548045626413945112348880504777774062538987443133306733733952472425153367140954518909659945366673128181321809110757063606946924050604651067586314369075798764483557869699635129132289941323568517877233737863497898229454950305729768453305892621768538414548804209485763369595236611791171457134918696622032586381315216059185267953896316946753085194979566379964596836631032933869881566836559732887977407403152571145744603486995788889775468179223700885821520995274728875699327091817470272282426846029129399800168169696910983291977275794483367885485782562643844767759362325858670612544553065936770502489163243282389798115866332318923703789069462538655611787390713873647308881625173381420856578179992763337984388765033284517356753139347262732347114935317686205758504208680506568355104185098579573623269791605963707296698540035263802793132061915113488164963286828151242230359296527139737738959279448033041609130820863481400220494516856031658734476250099066012679957753223098602942677374475818400700968186512509064567494686761728146446967235942706488727236723538307312146617141413599573277108292524664304211663548712119885445389594610044740434735747607206058370720598120856949592132541682806906699254914588718932054369545468746331993383621415142017447111152812699935154076135373911042954669299008597343886978712867567504960987728757162292682898323522954707395063802635890560830515777432890619783895878815901365684922030107926585209203513433167653218312913243112804220689888664711152791222338860141951534048208144462742733688897395185772824976743158859842812921574501550035695894452744418363005203017341860484847733433538516181052866142381306805401229796192914273715477015742220059551293588415175768706083903041541975956096677926139447949112685440630031273570921828280321558872252830677133488989500622731302562758145459755761550081440935849240432415441777009766753629408951140258213981349884460877250476971722694167162434576423048328572919365800059823000770512246153140193440418248025266319243267251468342027155846975618612605555645107985203292345302987714345075179018322345513732729765874973800485938627514262152130574891082385408018919354896818695946772913509883824899238575911395605691941542350558906290457875779892420841143200096486483752259406944891914571235797373052264021885153402042141578970586668618062646999095427219243116620373191394006467569393274567718441901053687426851488332408688982143244285971253600515977753361109254683453989078395049395631169968746328129203183621706736495357514959609325721237217025046770457570915926680623766969193412976558839477044270531457165296563269160931244408852417066711387100173304372395419008705072825203096412757811175099933004649210333125771361556299192857191406970401753404910969478793390738670511004458978084987234899051741988881714713814976034836982985754072585285377247194615651182616336377165562018263215534187087109261631408547508322513295805968730902218762394443154928209137241761948994658603752322147501874018096124997340106006673075304808201652689349453671540512880218721418693031880313216559639243605096621140063276542066649759156394890936018947282319284648048918332157539948982878414532366802099984218366540909119558073427100524299837936128307347370725209430290506137093581242780606127189323657169656687899260849570437592022018608500909823807875668001078724453986545082428722913287122293400655684473706620076521334688516122530494899830362168292257229041740244389441394450393661561806606797328145230770419556742364224433175333611522304945504751666963178383733360744998051703003502201579536300036015181739710254900533977178685391388453453671481897452322371066131173041589997473116496110208983562483535160556592931501795430580205843961897685829739859894544974169005286891360785473987374263114460011840066815321637727911029859174696036992112731716467891637866143697965905516760080828869923485075790555888493789596442064434281335946181784626964872637896536369472261260944774766612705056254978493177998352213821363703287547898501800039084772686293629577753306452772195491492585048941136592152950554792191500839560168225052269558508995947662734056019973286432864658234965352856073637425838249546071773450925659492954041637628962536397957215408337778054884536740876062155664812955704420473756971656860494422213655812036145507399026527426132309647809968338720438903553633107019186551845919960979398669694574056576217590086977734628923220316366543126214636320382806852282966664693725227967359865432622302636704597167958516443800599202133746260349511729697489919821881950751287885028714749075766098329062963347810428196244161052537389856310481149967892323052964130191801325335449161922871716408797524306266610330469369702761544655453120981620594934155778904021784846104218287626294155689122275960585742192227975306193033533850554455667343680860122383068484808381091529630212904813635981453556937939482308198797381495005950039980329133005467606733548564753773258929155928379827889017601384465016148530396685050381408903794067321924511816088971696450494300750303886253678997865885374674047378976288320824656630886111378588366714232412718847022693715369256065037154113792572138754873873201911200678848583042064884256646425918864212803384562839986997825215575555782876943356939165011201596458319754809263651652268028818842895151567958873534782039947983508950385374047306508188236197100754102474626949357973950857706265547695936095776608717696232258857103484139527422400504913804856744201164303416529219602848615061785229041511355786186389344148401595485820169140935469425412868017401406748883560069265777612237697283198061580335043738695178237147887960469710639454061726949367771597781128814870991280996820422040523668868972613981862041965264696481307262214424329752120337460092175556296994062582400921423587002835406310862564162077562964329407641741221665576957494158472579479596102901719122861361855542199770436176222303763902861440030634546863556935180313332078823580862160631880483423412400472342038031477869025127324359861356777759180299827219605005573999888149259740792207907529020311764018107711840007194779995521103600296945042382386984804869682488585897905704425465133816388643861662305095310837568580477810434018558704648658455138170741378499036800885518358199096103848843650281090281895063092547227616807150670399226810396584321552886372380586998933475917387591578954143870997852138699194375584985867137255911638475862548027342631165024084178862141591552773648071127313203458813634134517435464592205277070820202311037635222537567234551900873203681823877605612820034820665834385170046133512577922715256814421259823260680013847503781806957734732037478056425551842318538521923318874388117109004677165076158014446883505553148995008485813772651219503570625221367598897190755808099571744605538448724077749129841916639033557946899480512611383757978195247960325678449767404363725169852603771098997281701260856410315451329291802652492158857060855388125558900401327923139426767214711496740151807791147311993226460689667799932086350716388025400086766011348296646537371672521630148220165864387217354162602424861928578170658135953640033539469085272503143951616990657092458682818707177141657085594999251471729967097927940734473298897595785165154580467454052289876310943516282133131046330020564254353257046452747062881861060818347320994394631019918336045389716999254353709257369559432392149212044015471402922931521357974549969117086339514345619120049927399782192551737401905293870213981632362143735996229147088728096049432713049787160339390774612281504571131367836314435608685824064666135390811742122212151601981356453972346568672048622306379279935937693010563651358558007452860793402747158635740731198796394475068130998489011248077728899122822904533895361049878486056706792572439768900431218636771911419441784632679687300706298519259092572203712623929500190340209081558866589422081559035240799270375617440448943703823167491474016417284559688596192804368733130986160371539337574669709370958182145460924510434572654403728340379992464132017278191198861060577749862947825355068493841627355766463187164964262926775017909090222763898317193689756891751999025274557756623084362978528454233149064054329894570355731540810793249248446427464672300875952843226743717170335221757526934739665260515958730048667311130701261535399927141432357913312925260971956896166389687824085758297099158587523677897698048604334675320130859742811569570999233347800760922464412351951622547957457370276794300816491283015409962551698979151584269072011743661151672841454078711042627473844010296316012139021767413329437869704531809479971814339480903237847316468913258582863391883437637201250957979932543285337898782898075341999909934900625500391060773287387110463327489537330658368349028860195542810825357573878401868024203187297162394138334513312388512600176106128985372131175009361120414968252336904461172818120949874655203277743878236329439774552719349604185882334690348309277388248859406991636217049005422336645469644227882390436516360545010310865765607469855075093327330662621192016114190981396426611559305267970617050137060573418496331437817569535553997050710018289885724497459766858340343522253465401501782794860790871337373291926657162773537706239089051138121340726099442436989665614941444648484857615013960093859176734406136262461215982546958067286576171908447260403398143738177695204628728532714835399441996056861286994488477915327702282342053446411866249741462955521023154312694002995178689976458054900927226676310341366917518208847759666805024152186973812853491675916448739455216079619308327353511679139418452715511181118776133615001842375554088068236728388877528310091983662296742129473106935620626715682461466695544740621954976634577202990130363258406382991485653246152444967509035229450225953322868499055605019877773325226576705521163610858532551328922015439178713341301019466604191757167893532921943877280472225010162994621155960657759611311749807659718174585408424324625354645547454207574732898968684346671208168856492236434457397248775446182405472614092245990758164584113511777545621533371968061043638737447024920746758485668143568385323208460538841921935224661222145554238050886350310014522699307749450178155799817567209466961328214729879645477131460077318444886588410070061436661175548279291177248145400417853990588698159825725742703264148472911963356916141089845872083121292019413474701105253275060469563104081695801210885615749903288946157029439272076426653940519014735925211425952914283248258268803389862479428788900623358038569807300874607152701508422096640137763426458030312736198102060597338772925033229978452437670943335847801176345619330560234139115468135605468577512244318036766513620782303043315106797592747003830018178498225606367952654200529532746064545401859503725242991508902967697716427557952983718946880580107037102921486892866521592513776902977212915070492295599463346640806630476857737825651444274902536809554008455192837965047509752488051233699958838379219838675842013404007277561225941557791685449791253939939028910419115625189074323617153260084915265390311847650332314487274198456619374530051699873408334089390023760891640488457118592257724027705018500889447770949572992057412187873994285504379972436903050147909418078193708058872795380594635281348907322197805974569294882210407434161755632268265803500146232676282343141931059325309876135848446385592917817321104353871098701764572116119263305196631869253300557798022027282595834907249010086622036421016295786982911017509083489778291996598673074065738414797954420082721224931301945226555932939951133635823334219987502799437444241546075479383003392493097232388398921918970486344131540966670726027489545295369222121612706848810555139008799078956780771196841941518642670597492380955984690108523477918060762412404647321295291492441123683043408936036318243445014715228150231287879436496740289040970101820131151008713974673803945463357636253567104819432514559226441096836654915247166466776505486652880889986140665859774478205829381023996863870741180296081183051239303849357988517791477458920641145074483726666596811397478835507259798432361029450860429509921839648452538187838244397990783833222182981279456905974481402973087711577507666641112916272929430435268136755463308246899833915024876647302483130603419262691053249952734505692955439972332390281335548232579441552496890328727226465867205411153122607343284878251489259950425350479098252645650923254220731865897957751232059509458213294488640412559546225718451949811547943945204368083645918914209697857803905081680519442522101208219007057029834632961020755376715164157405808979537743962120715410290572041012775057208296850995285852239157964879694278053668613362082233109804280688862495439847222903525376467853808148883662861156070957575376166960756693718329737985085639539251655380377744254223165777807956480116329877729117020923765636203923712120316356631179926783160640047818432514936043309561858557928846249025359010704103493822280793672343852418227790571157665765019973100852710341308452988989713065700533263519846271600970137330878665691020177004388222724273509056513929068801534884383712469123203844293862263641885513242943489545981066379367869784952948476414769739112243058453248905901199529451460783444657820620220431310303025044566933561245604567017447487941543676754859052313525149778550357986651389194837667075210132560352011976874739770297539973395243843878453324425553123511156149001563083655086456481300052144358057261092563148352161819732521612576056814800506809195841190604976936785731838575435445354031773531887762155974819647151802463074966244804243839669299190289776264588899636798123617466103133446011606047681056225617516900992764317886039622898731418054735213751303112372075147548681911972190142903598856830185173569456307311946565575698612942687737272819469106006852038624738886452824396872224909631437900094544590953777091951190561584673697317900402009375670091554153626504118527371918130511270120506650036113211554617568199037999038680223442820026298272751397857731860098634159903307618938518929983771184535719789925656663150263485899025811909923428855656996086882484797861579783622900248038390046239293975538328472854872803826774807032697882943051615561595942834176222929455227085947423530321845189086699598720969129971293433055484768011459132176656008171586645207469806317709321862734210884605836393435030490278121778122827547685792749380521464718388968127275857559720915451639196811610608789449783459823923448646532708982870009387698787586719048624506104029430810345520511046552063910559695060272752958539097384826787075222452046396441199660439236426747731691379860156412712974642096026470012758052796674882635473270628256794303033827370521776305807233513261157991111995150595612954051831409619405025306160558685509066103429837036539772123838077804339691875007206557074346059761208520486526415528093267348242825791929008093468091825171359048029275483807225694191635003790651901668434882259078238326741211635574527485763176224842523328605335733100592927887554738046048551995175791908148642655013490100514913894471953408900779397415466210513333277113073732209330240139223210584697296379092936843927311125940667704993971320158747358852139905626595131446812634769732126719407583180224643208812179043264733901341982134723922065523473554758839687238199523619965533936366839866795823087696888499549875922002153593720877760781366251227097672314761151200594675434791294404497748423667159828004857147681601221479097855085028985800819573703982503647265339124588192280944903624175009075222003943869055444645395641314851077693290893590310542347994985896120300230760989138086889369591902276971198241808158677336243425289742431958185301274901334764790803400648518143565213943200232085990202677738635746402636117645161836537893591413020818305911621401055741387006263022365184802525595744288645881897254599151041381091650376979777689553551154070760486634810850096271633570882677829626064849257827136417420310804579548712854710674499289514995065335883896222852067594024074870172848098801949575485828376656543432682662865485171866273793945805471027019397805555182091745980003035375259573472077111323511692057550153837269979983312934468765661791723239855720594623670050334917701200455705962035681573540400318513821822397805044241839813110440908831251659688794035642485700355940327167711052701577046908936391439657103594730878421410725570772098368016587018616948794580765112392982605153704733587124734674112254605043987461319289557396572813782567027793800683113577810954329609388897744866897655475559855552005735766773920132270826442865777100284586982769558573197929457724158878852376141782297975851168191887283132804101169490841045951558506229805582925800764460914202827695387415705710122426221668508280418248505039412116387530972458769008668181820487733901498033684730877032511089581598307143140680690225758947501380455669878429505135493590799217620458054924632034862422413489939360875526950415131568616833797247786542855313284646125782526768006212522433292638407542125039518570620732369614973897150822593669798699623302340537151459728327331584138644300794888632475753134648979685013117685927146932162296663515497745899641430764357617099709568237467189493889600544931702305812087611634394715421946661208290581658724638262786832621476738515457124503666515126742418563058234474044225851096903028883766614857814609392841725771333243424480636613197939536167756489208547862429349628201270919675942094337056575624434079793642815688741704079551126590963886653694544332564067612113529508241846768564849075064815326710129383941193623462086598310799888871083593516553089856561906350790670225551932291844795787579024838232713483640509818500936532652094600508991574853778738538404836561738625803124310467941497247271077150546234118296554001172171130578190044663610427123960876567016582175944918502579983115797580190092438497444237441351110329899569434053881986064453592805773985496318185999545764860214008015671524676024462940109205917938601403651074822498592123480142195070591146296461851542341054055770590798276099116173622634519969639486882740477458156871258509696082257936325288764735754306226630696323679770637257730093147300664433547349379376170204024936560368463902169477693418113943680330736298338040596995618414608937535308179819685553837614958802066676829841409691108864261865785700235757660083411095768034163027208325883427198588234189880371458283756241982858748715330943313952152578563142907055565223778988469030114885829126890103210852310617918699858372265203165188085392533367054864826698538630283431198651310019739228983556959045057547935166519140501371407825990540551532785322185755063112605552220996838610263774409172345830076378120146985055329318561861783126883527352812181095835440761129333698134963611303788239964598241922946009660371502992205771577763634001660758147562420268362023732192966095391960890661272069125461008122240939965864036201063686158115660009941112534141725217896007624438389975924698406852824647114450673869803942063312833712601072992138870268701175400339394898705570160580770090172778212069776522911463280887778181139819799444822869766656602412050261411817210782819280302938411144860684325670426504460391611125781379511617886107947666384122904770850799927057012093743948018362808632971688051128531336330937957899612635835410907782253324650295595443114820531526482627401132249942505116615023472572886582867511905516270440053110155060683218936262374118051794090307992291227232546577965051858511620618954939456653166471341669378443785024632453450770911851435560204795915914089666811827356515866495005562290747841061602954024866646565675602697478529096991057017455101613098113204316894218693112075848959332742253120276931699052329626597167936517002191541302491126033930542698281874702224589043168063797214198193949727517482387141176815935994997685781903400103573376766887648632828931151521662051048031301611543607134637072306598321668413870060259172870521147807138147296923114782785013055238123045927918514547098688007034824603216981408799429752459673384937077825854290096034231509066824799545262138052029881865245298040498897228831694988239835661327720924214205953653968517071349031558595607906017236310194498952790345422375374334588874154137427566490468367553559285778639069757851811168082118187672242285243395059506850501052992762489470134135946714392167487215395393713540747811176598144063415533809953398690434728556893968447854010074136330833126056964793352016580724942269666585009595711573789236930842123754910333510379142364990361387919670784021121027008404456191870101871662126047933876360905242514485085267944104383162656249864433157781627327121482111824259747679675625723073734651686275042082899412687019208090695541932824016551399113179514527886654560932624892923212858441290206315955048787770216537742082665220142691854790534782025483996970575193093724170442998792370191819438819397865300455622394484481806785356233741930875196376381148996734977312008368439567574842972762847039845930880139427989636941894474529060636932009205323310152712437731251748374681876358874954805579080247677596793164895260278043690744167285354916003801901906450860494489402554630278821232571193608627835149892745745403560064675197676886450171266816869241510136307249151170785030902007264612491010703318813778445762239382526022170093009116965120643333889561961144135215440994994897714476972455841147195342376974991043787211236468217811530920164062048854166384302528091354257817234392623666500393109011037065421426420626837448766905293029419051620922910407048090327153697534802257933139474840705022920286055528591225012945663380972653856947359584738989626994897890394626539038422851052269082713740265216645704626837829805572025317071514066969101532319254534591398091422191615780503261998147904225457316414686926083412096509280626785922506625123106360355861527300529029422356829969630658868029085497569851788394734915608898754006768344908958116178574023146467854755695076840738029380825429028245475025074900599579830119176741717913145018003739794926723952310956313403374780656216214393558458588970127685851005024639694211333315992415697161719101557988802389130391016077804439146501587085464508353458865524321155072225513360329317945897151723743635921300018002060982828480743988800215290304042988400694592475327890862762148124174595557680768960259077513275285767036700868766083815919617210924168574292110731182518128478686007126340568744904548050867353574563370862641905461402124221551597084651754824444207737942584281143769953188656020464397195601443572938681809506538345905486124085263987265325390588230359165374193321890181182724182366460104144271278308621274818599356795609011581574300952416443355265670019301658994410348501517779749070096656549345831559076545687618138194926353086230548167861219554985110337332678260701783193619051658182954370909350160216627610469372808711987402054363568019708971043846376157825937977533701956240037417608534317708533993305876097862418995084970387787552325858306184047812508107857108867968884326357216766452900222296914033907802673522974980345072492071867682419609624441105143765965196934564793651353467745349219510765673605596902489720681349151764107953894636890785096449523433480196240606532968648778798928426644491490754332904111824032124446008734444398384541126593444813692722985550149456951283722616467878210731496769023566971368587278875246873563882051896569031649287197073853705372491998047195305651834305195744836959924733677379850367867309143050957902951780997341940817627241925018068958500052221480070189233182644150864300525081718795123082580229822917122405486678189374794572251759857277381065688300069074638338484490026367580204415356062579571353881127685750378202864747558047316215097949081671005844893988904051247523727536105091258481341227740453527386193004798107936818434736574401863132128411897788564811093520432717102085920055924496166069159078264548332023468018564216879684577249835683318709001173118839048252724022036583823735827660788946421255209862364971053537413156289289084973922137797633590158681744561484424622454442246025589168816851012199427984534026178422962860058407352859304651603100117985002151607690385536864230702194970533101963372702996828091257381464743371830051660381592380940598800018934361790179557586953449801164148487322493113545637826392745225457868216232324069336176740976396301073329903591112766330417504004535773669340425116899178491497268934202584234678189429869642460414583208356511578928766345723221642265097087230304974572191829728944866002723302763319992065833710036663073503280061412655918880523389881956095189200371353117730901017145773643603426163427095936808937131183661598542317610370807938983477265857194727656616553541581203774290251490015320500717627967633908334317892731572349712162779795713037045123448785861744536020969433620315653738279996906574792692312587043106026412971011342382280326664240765007840113246869352663970099326771176267623947466490962532444325447210304881954791657564066994593552580669149944231325992154939974038719084079895108646525793030669911662136412879708974901164326866710008339484079479933809609197674025601888338962038464580470286138688919550200892499330985160207126998873474982137712255784627984636969087989268181035676954969476722364860851964753987554233971015794398842506887022403016859614635343192560330908965427614368447010180929842305921544722676614925500176844179899758638442328848057591402748802811086474150112290477526339962684545793099935602638433177131477202766922447667756153304956431018998156859871341383519897534266978405563821240699810367327664783599495788421533082283432561646506408579553550391879182916743552393814263355815559685900981253130630028986066066304792202098144594371394336825413559305579502176479416926073200020391832166235527995036632456190318788196339899457331311165771033123941578099522967534159286600229875634981173346587510905757484113106198441067341002755046925604977975762599850806404264056037987721408785410721348261809206130126461074611709235044947141646561648238533636576968013015012782255258134256500054376069263891887678267815236618869619906617500857512589338840793782142408306658280978746981197840693777123924205303088060328238605894582786180510188189367531961886801776175112495394300647036379459856407585382973189312829928654591514545251123523308913399285883688473380437193084142459628999075134429732011780398440213342784850114004194407374269601213134135293332313951517261725671824594395171391958644934564317393567677185842956806883531290637288774450213976110950124523239462584882740914848233992008784458016653426693716245178870361197777935745333566770742247731809741638088631641686232558185888514587408944056318167126944448043879857223822510764511474232756814615453809150092817045482122136176020024869754733481041934998473302597105114336981471189197722583762250448427813314394661290390740721946584653356684753521513240363334683443839247183460280909382560779108917353708815407581001540295369150047397119313841560064157614550809409785304456925305001602211907418479662923433464887412365443480326049886861180642877165684084439413925629080691843182818351022570287695534679423810866172677611208179910512913445341376984502401436810410979214254800963275761622287950019765789928425093816001375048600368397778248669594326761821513776110917211902424403706551197327540103228110937194720471545903137434484162712288594199963966872083957253971013060694216502786736343734357668237886930488048457756709660040377178174548823406577584895947983444422118210515537428710014296647930735473622506640988142186665458513717710602450335835103914690196401438455914291959042604083465553444807560532858394248292064454960245944141338465376420764668453378977614487615958460785801232802190671379216897758379154999326669395689402725948507025580269913691872622715410194063639787592698408136051901408843294410080377663911429644577849714715510104952497789974402658762549330965920749253200711568385841227262084463659704423618444429608203262592545560692130024327931156851301538925587950768489465375548477276599902204865988312753926261763820378677764024504594433162958916289247001983258151423133667414285696308494041516274363458705797843131547514751488773269752510881225219174179255218517545913889292867399978324243910155357767644743876196197901285978532274194857652665475365903688008396745637729077375800008532465489241978877026364189959376613384462397706304618387481576183806056302736323335122040645887438250060602565729780768583236664111775682279658182941730647325048948370034418293615485060734881186990012445706458367859027626029983236705230296552460472917753738552463017118683337109840408072452143794424977589248593755641443710035357368939094729733376292329421395615109129786973860661738769697908501725381931637073552288730024570349318205183690348071050682003066235520958209190018193436922209394414352085994805580398112197111620535296780695403974599760945241450880935729775632075179540176891519007575668702789986387066892296949712060634082411169015323304719953961833228830272944967655084818122429124052302282307504506273818134809959846861969277787902291807821861441590641172610749880535422136726584477808856215546370124383776240833858506141163332556326575467022354871057940062753987966656321527929849165681996126839440578816035218894440072088570384131497940300670242687279542144922732461369500231745007803250247066704721359405570994643064339551252352516449919875839194316144220331421255853269807884443092751768794062274358439513498257024314489349480182305907690123254167946184882100465865895841416396854974983210802241379066065891188524336300497531784831343719498945031441380004368037824122490826503981443829096963440203422649873799746580060199612511042118518223163290824391499007163267556516908738878356685881883084717262035609086678713526773351605913054088493927751889679977911101867722887713496110701969137332449347110316992164504358668714504473932858616272910020218506225954064843514912055309405585538608187224409485729223933549501659688504699001485644255771909914845704380890678928720983243978359413421385116431386334738013230244771318655562523411779483228554257442803386757534509137520398029524482563738745522001423468161295075034996872573411958493561692640245708697276680706612317629774885450471382472178522807488716430854104440527593859350202494107390591126897890070134988768945815205075435791676651713220212092071437071917659086104736900859370401391123143500739672952265975554269140590147480642039485811038921358596327504008825965469622575617186756321425052005963016312661334767555563000288983743151452533727188987405152703720419365605526598240229544398179459691087588030138405137277428419666802463317304265522652835298852978394092162840873404287954878754193322454726212557490150917372312267628968877229452892525481077768421632177669562294430410449134403313599677007760543564391414740571974330843225956525131312384638234176305083888116721192106579821439298824073229523272119298016696474977383011515082851825435992242875825834019296720144511011088246705214818318300910315095188251738980306950059821089760571584206171004048294137067799216734657952628880942388029873292618208254094086884259909189939869251037068650092278757180033721709365677724719061888232207917728439926513295342078288977213412028131830191452733511952340283135238323665249378306501865635531388018991339927268483242361789693883124302860309737898983153762032563322048261231955811143531073745196100074297064787774711474053153660486843846413879538317611447027310870260638206779634530912365816697743223298758775097091333846975841780209143495484783396280623926902299056609101019581209925712941790593648030710613634425073849965348419622621279966760970826193820254944047263870563098008544060404646521399951276592572264276286932477859499151660546438702549471266106287142748710493288357770863156957457773125224730894302057256848444324616785053608827316235814694966928957689250745634507700141856995680301831573559246529658420083039155885216142575987107752668761078986259154970358098317381472256653335802821815587353703386578007334770615747159578311064830908129370502938941765200832668779983821226866722066292589830670971718239245183192174177008381809088566322610418027823339045138330655570451221259724280912532497231080250951480051937065768576677648448798761035410611938642325414756670653798196829547470231217354056077089070588118128554302157906877142126765504244663179153735058445935071530684400164075049777526469223703266509519890874601741221860839070561280419542565493747495689110341246898432990606214294918991704066540539225997991253805157124714388609045617436388450013090942154476103544514722654615053106370499111234189000623419948472203786626226338163347232265251409367807492964682060924840932208433867342195003236776960198181127342110477062471468669925258287938890911319349364032267464041130905107602084754660299975642886394593497194445454501389188955008452632899009863469649323463597056802440994825883378709671714322663436888163736693847989209435452893332669399550750941600583220358957227636491166152217339158779666926659870224637141091964235966429347110717511091016554901371402357294307993766710203643916955809647283889410524847088391458108090338077900305909809507470808128242139009524197081751741322126233733725856294805431773844381816075530436499167695078748998954491975474330086144109600326425961732364930905715522626653731166391091864463616326431963420630029017677099481455854358531669675598530660662447935510227953692579066854790558361146358329988955216320909148249617569804615883336275003671623894811221286758322586961329048166250957174861755222159408693262222027205615064421160107770382733388498177986343744576736693713687573537733560586352714694252452226750053299627106940907552614139247081498846119494940950394063982006295023548788359375188690651051695256404863504280459728584129256212965032735160501021404376379628490340654555853335381423983574474804027836912148422462007978354157728268371027325371915804644971930127126558599409473310305639500051870319957221489875477143210424591478123210044073315400344470868476878231835925782563546108502695903239912597781464151795831426833959986639577479759221435699842259497164196734335388303685268892509388788650463739564721532563598383846217488158405976609506342366363063926909832915106414983322032498356274033024410515784376123166854841964962700565141834680785668337434181886534517740563603604531569461896252869082764213918884680630901290824973940285833555553457954234469638353486660538067175159045902898605690463621447953680793598379705513596361103243399490248178843318748584621393000156607466953696906190331504348002700157641272633264413250612388093227710012412455413771985630745870682650620230157556478156375648123620272530967484159998889341679489766490924282458396116993657256922392076063671000677813428724020190677397656123897695272143359378108445098750357225104986769111051595251494096296367391012879272649880065711811919885848458547019512950632593419121001272634737151336983403002921387542501097242078497037179287252958363662447118960812990104572227816326565235420054802329042881091844853129582674258330013599000285772223277757050757013581755298144181743462682534165765581429286867069235328119590800534911216404178388086711979504970124079951722905484336149928788529515477530109568353972126650481613503805038981363442001935327147893252676962214285087569514150190378207920067832377383628230106738453366125302987770667549222942368551266149208193804914971955243484927905947369113673395361460669601738306207070872669991706249900300713335857141075338570033564569049630269465376886349011098151858856519667599907569530770706946230053732072628741542232841555776012473248412877154521380545561622681720012748839342263123495946288509275289537035271662825262505152906231640916994035119707827435165054969040458393213224442624727275783108129505730316575140175091712656187207284677435761250567767807510967967451497552169206264840577745562788443613278182975102448188511092948057695634666280556467168650705059901375769825432188208178503412011768704193023190034457863005573501036476371116012165301522194979045055019616795102484190788407473674026710832063174156485633678933304071789924372850593666542879784158310217123010819350936192249583615668403035006408080154003256095932838234596809759002403545027428450404090295929598309199627281568758679723469971701811667305208861458332337390187123599578280640191995328466466701005741784480945625621180825032640969813377739892271764782379463414449635238664228559153929431432822289364543559271997597064356106071498219858752215941604407009462917526142202093452930406337614911391059579232400120444046263028858127401086660623765030033384939392248797806932917585447777734473274449852118818313916293122261472904898964023987607411359695480698089672740619151993143196401782118427395381160122456638742651374431289884887287734990013107061282693941827820821966226506747246433555560738464564017095094771676872521982273650307791496683370241572975690944293622895692805107475263652484896714456932347257165417655031939049667246160070735009364942795204160936960150495499495386862516915750439403066816204827390078260309075241894794581914293491215252349846388078847976068383934199721476160641182826824999988076424828790459860202512051855524123937532695090108711357783641976463985077591473863823956536552108619138478321302684470829270829506879168830223293451621070765352366570128394902247481168953644919773786028929917400031978502534899131936184557946588161675257661946866709553150429597036194561578494335062379299116032104464918559325488376961599000372729078598290172421866394153848569253072850625902533305710758893859105306218441426973612911411674177066045128811902537651791671293000750988317468656260334280237407488356835165270572997429981491938555353306902044123974185343641110745301184025231179106309711126942311374054242104050632563297659561874162855731154010135358696371285099694177234154513420527316330034900760727282935412990371338255200087671948107677207148338058522799467970730215647875779444218172283398976590404965087086653074787057779621536052994651004910184436729339090155413138181072045344641352252701491161630255409860255143013545597978424246314459108603128464897312486354466393576626497498290322543467630466753633478392814896402406094818161360534234782360655260392801394973173398697303843195763687505321030435824454717343876760306920561556475795881047431465493008718803771862714483636125070453055563696962296988641801942455955297867192686697049067072057907290125580667556556550788233193893162143035941974511388224147183245220567947272857439017101783522295686419776989093875323782781421543140525525588428371716024122507318123455219163397903723832101516368220749382640737701916418960715627232626283080498444161377638097045264622219079259675672271971049088448926613085762517463576359282886913450630862868328703507716805084078667533893666430925366519970569975612395840983528901407257772076273855941379628790886161150882571637672996724634124202266409643308347299426385059119797259854226872302105483354316340646746463993834102620665885582222823599708678136940291999551626726833978182007838376575476671596178662835326362551784918736138758703542321816285235424966520772518414823809802890030067200727043381380543450730739417716286593178643937792241737174930658577813758713329398549224020483929698520894531005332343671316709992478014217190634032055119651600916886149516165012812375049921109289017309498185129479725833483461033628686476796581610714683737000690125055368498078428017845688339672646800937753348030048082704030046626836850823368853616249850370072391597647532853532968901980760975238208057674161511435241911300354992811354966609814141712199402129520700957643754946980085517119655382661331006068379787633117824121140661331198187509203446221901323217352235969354019485461069143694122530032753249836941385590877011845874650030159840768965179868831622498838558296350302374948041869115957754911710524194233593730426306083617759817557206531621294516604363005782200351737267729749912251603045962487347768847235112231190971558917800709342990661064562465154053061402582261810173806260523389460733533875647185285175466634186557607410878714485701209291282997549808211062521770811956062850508550891577182428491548020595914452413751403951494816101737812390849619239919699947668903009682899647911090060468668081814225301090002026999057893018498905303869979210258023735721478807780212410664219157517254672010758980285513594984453498614633561581089419618131260565272856108801127714244225417175944764286869372369493174586646053887018294941045170667842223432775549792745649045051598486143878781327361191442787578863132304269412220138980460735244557805625910656223014509119800251802789923628218030469491159766651340746139072494130486982838761866748056060564557621369390998662992769956135025993396325640176685021234538082768298246187007983987728351623005260891278043873222138571232538854624913686965501314316055280550810927576338076513869013130536406056796215740373218312471507773617184678370451336906285012544494097177456688467116589605355976460519274112403634560400695253891761526361122787204143634266990844796005344772887658912115488529920841845719880536357602916328138849045693580816174587557289724164926732424773200046489330097823434815680947645422207562955297774248303571014449056254294702051300160573515297520978817548810085750172740715698736270647859877575613709773684689032186139210247433129347077727867158156953857353979694980438617353349425687776437148888530694401330794327285376342002520327819534718063434586911528380306286769302056967090713974299950974193890039412657312422825047312807337474892427217008118310864107601639659361471572245724617767857432602182020460116019690083431058026352637934389088597824877183374690094042460470485876535867495706840478174899436179921525876281906976509719291633982020323229598142990236656623892306987488515130327729495757655112807245804902906175933105880512066956745930743819987004116057588243522008734156935225542410154607504553073404014542868239337276657110513945721108091814516372485357914993576750470089326738562384489746927419173941219160198204869533496211444893550337123232594378254894834095722939550370998159745124246844246623279405286462616445181193053476023973017299101187560096341335816411691116118591552404757775462792114607773985479987924266461051755089542801235394881100497488599955154117216947382498194410682229999714574421777304298743688391093820860875372841722509204511031138523478551576472573389042250277871366800601289770429698066935450184619180455398404384776886879277839662186128913847228135215420453181047133513290113378358226539791857976288841174819862480372535774686765960654201006274769898279195779514025565790071801774450695634977895009519123858188290196833586445964130290821744374973155279907525146876092570800295171677277959501976968723299723656704853448779501921167433606676927921173737571171210752793463421927958137201114680836930082198343984607884496967287124148012296930386082110121819256181797515442556645971241744570292591725952927862477901136025026690838346823128868941644785961683969243735074485860899955059054315180090466451364449233982651257023652805951526425830549257586377614318384036025756484103956597853794194633546302630522048586976386449335360470099425780449904459393146776551323218788441280171642475202306623095594847579898399754847623107539463967770954002009498114401657408240613583154872519721162137596160550693895297223521800655137807067818751284204280439471141054276998402381956360150391216544175273611958588411214751021581491050854618620268317662398399152388041579734286047447578848059011287136526907345124339578397479956639336136485294732462847475038154576318780316733698515179688539102273502955131733970941161516962159876375638763975660156968286588986291340777826572481358159211707405964903734470527916216817938949394362848242350519767431937756766204678345272208477436863216351540189973185504456815178406604472247413377515486455714238040010917322909692579805305552629575346527209515668083699882426378746375083020928825888184766959514166238204099590751599942317941633270709284503245775105842125912483444097124650420880493736680042639169005053675518380908827025865353652440480061792337589455387129300064144933720165401389863375541246312727167203253513501538424054618497759425974458378843388942466211227774266819074686519427724749656576888830125364593129098857757272499799987055099674378456905296620500832536489377635477439596236503056021605051641351034635030705469623372176984525254958304066382741274012466598661564616268023029700959631542005640534063859115619121278661818286521148817452661020876173008667677810108440344914153360357614362172767813707985143517884163910355907846653451190740942253082240868763441215972771765830253602021841846816339791780026510229093237385497838217622501297679639933873256809459963084437559453908610682557112613619494169303122938370883913064062640046039292824250015131639544997381546811752672047266639896615589976630387139474841944964843249740712790759504904506525451783253961742420566520696952081386112003229689477028125890036183413021901784589719523264996375402218264096095985635976858259403602713801782584856019467039296471292471700651251009851106798769481663221952012518142635874100303142900471374557084631732199815542465428164334172470350274876299732549619141266572616230860438459533025076690601585521464868685178821175555272818850785106007309794309320281590444439976274286509868788518918169772825594706794535962288418569450265542232289340584179264951876781160350173770249139322017277772200408057784750021982700459568456778387153190828558072375531611951025916780810415106900399104201665210751445893366226702539882062443292979873367344645992770014348360277558917331766286228996025085995643865100413566612356786328526847762110542951538864868295166563298387370375878896798067049341541862083808663611850130458676840928247239200113051803427170313046252012783513964227692249054596773761134171768041972894871506304867527762013803101110030517009881773335602745146939193078330641663267437491792560049547108539395497362996515700783122855687254112947936030778352857653306787522741772068271274604576500014129387991893211911837979611168060480866084864206972849329482131963537642985696596610043690421519417688893936437325593195582067597827232504189826030199050798018621365709451581536776239508673181317194829256842545099343910109035986032590924393853924765040080805861448495826281445366555795328112313253605459292003595726063407869787462693342094132226058745363170908050431428318373149893384902633216895574100659649300895774150359052680302409981816960665561645890872966709060670813232383454378102623740999133229511210553205033678687207343335949255912804010239073173089567856665764966967582268205620389974358226273884153041878257918578785614156701586407552860611726864092878047331583754895216512878999637305175022068438608612742103823123395899566213673532095942873730350765079964957298016659642358851245645598859203181244272336952249339762722423013874493944672575680585901558460299983349497289122052558586718156160713963953796792870612969648513085205860919086701757893215078370448419243201999614240663699818952563717410262497321362986498475684444150781442714158289302448109770588388003110720641551086232470939082666923018581255965450524055511257625747802859816860977441874603235328168529149129077674875555196377298246622788650710193584500487079711271971750417226744555098131205711091109504436849952206159176555994018317968914843004779576387211265528009287508428258211967502708206272321733679850164122700326803119754425566942030553143832531773081061207320958437630788203585259420995787337001233644009774372590362124872598542319290622783354013389154300917704553596753952417085577635125234737259069345373749042301648294106667122996909739994921756954959773560741034927739029125009428685269666960235201149418169821763029361553370855096507288511773588726783980204255416356992284327318595516826507966567567123199987663207042679751736843137114671002090458965364039720568082240020533487779476149518316580723947051180740984502591037606028870819654366966874415250093500858024086371958603261001815162555804960254854392192299066762592765497636068601663573344811335736929515829283296806177341169243939616149091046680096911500053547543504594871719972539132375461398229710084302272868185183467365280439998832832528408961904359975180090937308807437175401642469347452390842602642533405511817163273867944982323440394720324972000894478215585504032931359219687529173830406807933720093042559187778525196263703571387780847787686512150170581047915710440372874537785174085668252167053682258614442713935853365219659200728056917560475805883397694215239668296021315700023965634812933484349106877433339605298306653483015394673724616993960510666203112820575155325691351786342785853670560678866297140792301085117028702391036011019254624208355779621323515406660985998392216960731365882830514761603476740674860494028896572906840825337747178885166238059966520205962495835947202159500252921401285561682714282951338948464018290362185478686958749881471126743410434049430934809644635810488305886902905241671898327735187886296449819584782447606264641777401315198752385572227029096717388551083585088199667648956844849180714344181726113035356870277737713341456765298054903213289988590156733419642565677154609635300710906073749424059028542087886341423531711792858735417865151839395565176118143949261037691427735053578711807158350876406517214547764065081381799622059717773847366781681153167899833855660798993218603500172943883914923122229608681892679253514696826400095905936305261130294814906940697689974743730854123062737345134940586217774879719023693146612592322757578424679721405144083296316672113390551708779678499576259913348324759344503716433196305422164200312674684013787395891108202696469473310172058786478444924928831691237713883439522144506758813769186090186488483220106074370354589322009993386334481968262919492359505757916572228272688693596103877704792583052868246440086451272965683983245785204684335909808108390016690547709203814931356847486948195450051175458903067580876109982650018930243315319142948421505057618808173880631123859021478646701211229543696584467143257851230758331337442869318045478471126896836830004781029064863472031573739061105261948802873710852640634894478056142574054575263120775638366200680907842952990304743566171201771033438083305370193388797858057680491707283456044194181076716115963901276290297387300414206428153197422941959122116374373398587756754125373013045404898895864330669050529596589916968824897759141099142437325787793936980159316721332619172590451864104551882053157584602354706680349725055058368283461111303632200105834750805154344837659529056437712529735999957532778732000750304560254063579739075397825269367485358283745825628674857183341913698404473285467129993961192780417035683042608381704516752799408832254124846283333276233225377848370582198366296359796167210980030214055381389677739978078304172903254229891131167267562517529794540036808160177641090949729955808553661416613550995225521801926752733367953279374140115270002034337661303000666161235151561894558278153048412794113683981969824675364145784318535823107442151361391467495787485887419655915026237509368157977083200976986990747367390755434462430847102851663635656525728895406602018855337936669603410859634333982425753533747599856861821895842690563447189287806616296800605870434850692369169714520561960688727310737516768709560769604518508105468313354809220182884706996077653026489581777071877835225048945379122715785754264060556978251857040295439596519186228168597656027143655730764564062601174792374491636215736859497560610121503295157556732111094582466855162035078272766326588864745713638824988705894236056717665406453429862948771091411029079305628569427991940440533151412946334991508670182844100562431020034398974905339849794709492518384056897100340000069461558568963086942133818035318926264006349302731406326396915871967506842516615216886304799344276096354327350959812829729086063923919710705402933003060312771805130849007263869985338494239823282755484224958127549336081381867819070691951251484602446501172725000409471792050941429611844188666123460272174902588651814902578175477645101318811540340714739586928891360676751585326715344215846263761393182539189528991376297301435651373224107573474590355904551830425191118580118550475575587785507760243663403721198140104896183970060868701546083696122459776658616627884543736134905267832121672013904145288740582382885962408241765341933086866972482026900636658902444303515155831706571200056348175852164887549099971653572848349961177596881133946196515498860636736292358333679328003122923371990412064706386585259600367597170570165613839810929084383447296732127859229952904732614514008580596202234159465908222284023771069834942407409466431924359965769410689864069150353514828584451055283519934320775269108828492258076055691648905361622147183342887330189417404251604213392620655114526070575440500995899553669808469443928367367260919646225051212549681979941883139100026804436747462179252592153955693319584015170666270009360596392376324932708097947687459126401910888473905199865217081446145342585901983091692163780508810572517757782812038646046058521112862728316290286219398868289090171078277435754265578745608751274845340603970939364042957797500948766161213625247505580871075291449204269873017907431321885991813636746359379281291885779408900315004789224137192720408496791280780951940086014637587851134519336382941910652721118417907610181739514065631901421661009746617774501058329079674737038924132447907674531605765293268605572261618045267620192779760907810152174009517984194387104747810036816005567618292758744963954445133086207298979684635832498221684893259234428822107445571773598796624785781172183161925194213663272275215172088535550003728618669824518911875583217704829172357721121358180186718308352679006814801038194159945388314080047795476460156684134186984241803223155005557394491630849283532544754833558327859494861000286335834839863926897810183722303049664845506125101480805855181291653283098815067081831007442659197946502838665038899450045811280957544179059704498794463315710166645693086511895789427901591045569607990481158101954761012039378178762230318993024701645613292539097979322833746783005434668745326911072957232319840071389367050691976703845192229037558787039040236771127301611752893773883635516275113984687705916244648577060032600650028587075539223755515065498974348327703949550337434299141429860869312594715121177051385862129256606979925644376298474911326532338263375532325856955688054600705424187883713271382835141996630557095413984451972354516465564501574661372826136209460590417267674804867642498647582757951179193950155095121582019320538992394559367654896548667741328898213825075056994820299488479640311985486914364705128732353170913443810257147797237177761605624730035698702722409200110885178069147990095791483932308912840404738831273943341520262617191922282908058237752421713917815122625262177376374708032924462164463907952100292616780263793670094320644702430399578818181372305731931218743710650707766847629145141447213938991432599983180870002898579401023058075734753226493196687436147509607962905627621854578777191694890410046062346982092019359017699613927086351556837197806775363383276595011314599765845348331538046583235839372531488984950469218394022741045559995761697416402176546518100762360485411072184124049465608900433043275231666588371195554757426124989529741666284034395745816648316880313631869249294279491849070927852135598090607740104048722188500447163210648775337410900445521661986760490787470521062129167912123786514902890140660365494953475518686000583670135634541743298617512958831254328262251653806177736081250469453596132622738325210049875808484591975534193047987810835473791698986401398804038823234416316586082295969916564228484934350525839118874853437506772270800816826632768258767171494924814065868942792727618282881760840994855041763397312025299309799029362550026051273175264542463977654129421273843162701465957527012447333178148459300055319646367892756303740011320613759496871802358396583090083259135640589607710276929230611006707508006330689917220869611450014784108043238568820466153380081330450735097027653843003464351325868458990355796979423789228097087071063786429094113882431961824821000042922702964856343871373083304068505828762316095104268192136837726875951629136520659345057548126333043548098819720854845442151536120514939379102550422160357359334313635772404046349127740194015521691715795181480266331226138920858728227876569181647942625081417965087461976982723520066852023489040485240874660331706031832395608025169559807213019328230005667232310170685374637946568081548564325546291962670271889937100528752942596375039587404722398346683666846492730563298135742560032372961095233047970011592514251431348359690926021027255394611883467331828102346151101879595046714877184574119680111257634319750134382707152018848557711191599276870585248771460630742021806683649227052650158612997465078947380016999742903151422370272460759708830093047419336318429792220739785438227027251159675664346813132771604000856816364752675240406484603314506769094844079357305116597459839375158680027271619386097646584679050342453697928167585067644575826624153661061217630814612377773438554930822814970895011380194198734120334856570885932187023406163861167220459301199521924903402134283182349048332638659648730042068982386897324871036204892829143690700361367151718211185535569717314167860251008267791596447510131441615879467983538213748122158929888598035546784467997494476008444059851765249292237444425275272330467230106070271203911928151315469023414685304606272204350971340820952392963264383561611416760800634151805748717934617749282336036438269123667676712400617408159259953536913307655196412961251092371338698248724686444331918189568089015651541185835317344260335938743442252457613460268474182162131383380812079260750951809158843240392921532581725458793770066050592412478401510284704690191946249147334453909084390999054479150414083019976338545680265273108244909924324451433129495422513850516730553424469310091746957544019271856637445033968661965422143844023608044732568516565931728032640683657377080970428719551484580901300882847183340695355732747302864064573348575117808548536732519945328424781203281886347694248710200401699530461166203048753035546058915360049109805948939670261804983652098298436440577466147056226393904733912653633543519180335304982096300856346796098520077969782498354656209027592056737236118741918109096063123932824887162781202734933494046545105190649451005367204900884558951664341132702670933497678848063009169393450650588355340863022791024967108063399811313756812991795204093141108407432293433002636547367417486817131099271731727411780147622898819636204299164224751905570910524703685423593350264040861577494307270034800949907725465451707878749408464668149755292401471251839918989237886914617778045540368580053126332732437057072439913241811619650861769016611305700363499106825747613222700868241386796275195772137922348055710970693911046182252545435635612469950006760582418979885073421218403636024604319751734705204842650494783726861790239587935839951159042684033486767684044831866692742328183862132238350975989393749109789378623950409749670999799968837531514640743113569562320695024928751145601131105129412957706697538684769378360652793139335201879504489298704674917495813293391808237359181173288918999289485986285793084726639818114635547847702372099369621482085037481660885508234339964701375402378048621162189155921583865074997519992039500335143465691356136119734757958980494243759948310297279129548552897319026248201173102278111655768281034258799419349587139409359359224027585269677751158538541281177139084538291531047635216748425334410581780390594379299866203735976166874648224323286465629887133265913187044602696804841071135084051521746961055662677718297328098322917804282810353042968347473891780946524723088579623293041736515543826665904371580409512846921928575015608706115985713243541104192946446735179823928048372857395382926092654400792248205284670633551157586819908624879703608364951431382497368141624474369729046756951797956385004221279111056017354149604180706905558835312055935737030962988061450758082758438072553617429647275465885191384867388512119684547500669201945775203189403892390271425203752848793333542523438337205424906012536840792662480549517487289740034801728957616905136185083581406501677773724690375435915423630915908325875698152169502379013856342056055718580334450743777150671284728195890870479999609696072217002070257447060592545890262173460360696923397656103221930140978163477621899626339989271307548108621382419274234378027205281028840000441042949056745428769058398099983315665525043980494857438665064198190674677237732761789953420667587034501173679630608887798569348339990211368293571816125796024251282038899990757610813231019649730911816005115888365958614528220821108670996206190040686064002852187869313340089193034511594355110586332520400101154075381080230636733456473927872312398470892403501552597722502006952731522504242028692374155573411309710349295183275811294164478549227324671622587118339019172395502045898386056922534991912714699446022506939510905775121230824119341639631369495103287030003147226420306844518091176850922403864051288227513792781453073803601940667065706930980509402409751054369510759877908640818431282343126054251201207335605339172299244605972014785805935824569380213946773535552097558980203936913436642203892977190592821049045567180211360748080367120408121181602264924315954567426755910941972351757942653769661919066416844310353926818269228100621105715100666405410078560678731234863265516521105016648949557424139770815124581370685922702524427926932226066437375651956990984774934211133105757627601638162358160593417603947093866949625152777275126978787523983205295386953348311748413081963009438652625477860815281210974757041231877798455476336866559749368683618126797754108182427498275168670067529611713108949984465881461206615673584716212552609616516526445704747919318007966655096034491456341763447771284805870739242801102528604555978985100477392056918869573217706516252953131901899836621715545299772724428324645774669169906056818792064488109027191958154248328340733996823526451057010530041703026516018049805494492703945665664295417775150655587061301490381804835883292266145690530738807027961123095251848337097294693581268902930354245165652984071900459959378417990865489244491233456151164630016580782331658009734161143330358402840967346110674754791834728019807365613999104649580891879415858724243814680933530022045177964096932585067398797995920688409950815505306429488857903144805746286732864176917223583022275879748162583981881682467187758536504640743178156298796332293081756358680391683439263551707367555543722990956836640278194503028608275077817749722239993481965300825742658167119937782304739440370413687996242728312924803380404022918270733921884461382593580418564173875320822249942076164163655721762037377193445150302464035388963635899424375301985247963530644160125952795681853250479529806800114952371726936990460207357433795157729237402987303227303395247157575339068844742530264759274151128671894253177291892688509278931273536542864757388326598748475765452240943789932288266967281997512933860906414892472077683334529652524891137190328057315054787622537307433500608894037115312614829291513030847397615254175465811978687205622985944451156289156138250035916228246936655182756490175884005954645935993653879990964988382130646891230905660744824880953106820104612934691977855445591052736217505127397365810267587782622426572499659184786477844942248603300411403691140539603039624841393878623491706896877007007667612479136545885550290047363490885240715483799838843900149385329196656517559203435309880938323767280546874037695939623539797144120748693698707229444002702989000401121542719027372110396296699094896614484500423511000912037207245182917841425298260603824785507403256646437405318588793060581749738994396237978642163588660000326766423608389187873840962322055744456755667224777544546739178798974161944864275660495582362702524924289090706960542092521865859229179946971655459900497179773459602070088161550745645976678502871142923889808173486749054923994199264998860966799281218047196489261986768098390013430370755045438907736528439416746514933697643160398036483503705890760689680643193011242554280134854338342074481532355580168824239504170585135946762287387936467076172493792299317373511737790194570816436372079648584239757063455521227492549527754842422537113028466895766282648127805322896237072593769502714108495944898968746627057799324448557043249881500063537597074838021434399899864064958059277373208771514713588565673124002109789574165638709325979249884702249718512983454666965016664048743427808908017310368767591923285968498981484365856205794461601138177215567763439198713671961155167230794624468760439608740175509695598310790217869388148087668076886269043181118669615891689625664626532404776602638515015372350037146338283738215399653045174889498616527768419728089173454613859874416855771989889932109907483751849520612579462630926823708297696357228230156676332662897211933618936351466982436449066580336810430173058847214212617978375658311179946655278210759235659067135863397626746974782971466434561151207162309532357957072684804244478206565754892505648764141222090711752396586985382031224896179915846858422091226448671982761574652286237461330651974354573706879544400742166672086587658532656729691423203319795188434690188711525959956753631225850514970136495089495746232476621537354697123283856672684710040357450249260805263703099067094649867007794972574642245703135663482612987009209610547576653683562491590903738855630110552099998572079220939614699396136778538327918404558381904256428444307391328188186837975253477459164274043294908969707349435550689266466247206576576862909640765579288726709761529028316765511094201153071982347230923726531639442638399765398907665979527427337291682710798587699877558617524735967370337347858520472016747971726149561601397416239899219142049026123925658189988260505711973177790730771871403981841965058654508280792738677552471354392960916421585641246578559606471175606402611508883001699129633439624435647264560175735952493727531861545991320164557978099030423053006646226794568780445795570673933209379281745960040171453875611501649205983946639494803232946018579253414197318765132278891130614300235507362548226694041326969745075754419302179012530879701755208074092256854828488998733204108120393607687208821532798575363078811787834948347221525064221340485609880231112902440614645852375905027183079516480084472416570396426301881430553647572225120290836102472549243831579471841348790032953555800220285070984900905114764918857139942617098762851931740433289958836638844705620664365489179128400498256312463976477893712878886496255106011841875455275880866012537016499885874230743221275560600284872157836643442612355945216530051055767650347287013850725039782447456040476316092636553146104752702522950695295763579012785720508436420157483234265395274504916689216673143651868145173920582591317878751840884890393206488103280442270507911197524971907104352516183830031170949160252566983247578736825879280492856726173198810228599121397362261008225426180110038004961121655580076135655529899652718235929051885866121698983793852651981554844755436294447115721937357181864966486999930189227793052995872559989046690288835219853515037277040044890604523198289780352708320966901700989441882633010027311215690135873266206674082058822547803762599978496532081766569422019216143813284545640764097896054711797949012611706839912402756348848817912923373391366548913760507284986202521029979533375845064431994252867175640806805055307332751992724034433278154087184145417319682302186856241605909134528801503314722723528356386507251886524135301273574064751944488249219860271363682147218576320014252303237430279136149844995963451823790820414067345742302532778172637455169052355002251488106437963623089685168931047087885306414908380405116356269328165733089240827836194344863563133109228830635396840036344921538873860063103166105666004792432787653016780997604682387017389697206259376572736019537096885812870002515003653360103232257818200294623829253774922008938056471946060999041448351877523620128932954024094250705249709986158162713271670599004827140274591368696766550609464381737822577832057603069719637260248664796224906852753892311821412895666656041425164168240904751360323942011811823727801856790505762330316028576581883239357679271742951894935902501123253395728765903234788687993609256263439234696315696844374703249527730910558997184544884006262523509180381518245809256673023230043342241860855302974416893148978493340813384241581535729380754997379104687673051591550295593326752079036536505565927235073316082208943887903855656425055244257738069700449027104893932465780206650791935639045093300837468298431480022099258912566848491733714416606004251891574468613856647055385464021679293819453781115912235591661234658457241019883991979279636836016575324740753192609546906838709411522504662797671545517110003767768779186561451601329490169071141768257752279077234769055977973102297638726462674354943388488561376496279849432347380551426474206892917390763388030001935829593650885772714321017167984493667672991442009712907128356894736825218499050215794679811211219471120554691701229500982342556685743089699014641753518489515441536758449223003790525993297292888243047700961033561851513985406162520769149649246166523180484767995111200225486038973185469477162988846785795376511488014118519074304500397731162679780317284029803621022598352580541109065406748093247001146388699200153456141706224952444561341979687939882001469243754746646852164590558098082620286311183758246636302127014810927654865270555732972199229968881596903312445284250484881063786669415435688224484868196712301125735104605393063972923287674513629503383815915105114959186119800297097687698032690140212720442149272099473914928356180147633771157358242206844393058963991902383422745735577467507110740931186196694554138533007679551399267052351135309735354783151691643420749722250082532627346693600709488395265555041332253826913687506440938834697224457860074235283011792365943821319823239013909397489001245140310233739321520627520684633999249037697609055508698248546828229191002140938629614096883468500383485148914404296230827286162696861071879305190191974076188710043924097685669800958992121989486832745916184147676636618925586628467112242020548431713981305501982742964656054789421527445152879217920280374124070238014467202839184051284457891885441956708810794111848156952308028518343691697608456135400282357297500898522323071477483316577430051576093228846812656304715457671669895249762956776068589926021810772851405711508051393373006674117465249102584083163154161332206656306647319043311699330642292752789280595406951995897807858541849077473472987609351771198343143918852435098662808626256559663700494835448494859823648263053806567436223952545137187512414664824798776379500807394975238939470958421968713544887989045164896456177866692023722408991006575389894311545979231102187144093372391768032453988738190304047135252734733117590877625442620868496498832298249324108001703544037801282699596999800953634614647682099008958320762102549068470482705872978936523096436067134169541629741422457823684676016255417171079641623887490477633123334591129274888797163838170985150007004680478352982915767854849572332376749860228505438226162907375000846754923865078285920489860325979518622489813631502131347465951646293318209703208091596432915991440253121244426400011824499297426144163880972646857419049662457920247201175534625067280584041929156357286944740320674522707118227848685821647263965161321790062548993575655850328363386202476833176345746186292388412919746665372941617460795938382188676877403878045083748914797862364925650340450603113337507714534459228674361504002023686398734119416336685140066297734828757650738310529798384244553446088988067526601214064744702344045701653991719744287227156692464173581647722876529646485235489793716831906773261116385948325373818384034160570520902545649703978833369352397752485628238310932318046768193288176379871727117690267651032237660619549410248559660374957385020072303561684418658607884878719730787351955105807936252639956408723357520997404083663034540475134795985460493131988938698519745159444952056766828222648408668595031673041495447350119861846663091544929050281123939356815461605783574679865070662176400866804079648140604939942787945523306260419369242104091124136984199268030754326147409107717421807207635738685279477426998704574485825377748055092375112106524949356799334391738213332096216217125690490839662258760894835431229211256058654145703852109629563453404574636202122463932440684267544929528442720941211012315527907437053508462802667564054941600650360240573795517381377850598252505055693528442100367118344922382503368215516315728115808485867205974386124875423844982683580270386902033176901558495248834333270727575585588651538958119450828495011184051269567238369293601779628558861187547010750021037008283748232133233958436192123022718944683063687777526638944584984461260855710380854460221860895066360935943617036574212429766718318724833920920287928882014870271694445381277239071563423722330601189521222140260869563593258910840644857269957761485204597651701915955885611334688395142701691206516462292288664609298159414526140909895395574704690889815994905698442292271705512687743074938042953765535687110963695655581889280384115753877882760413579396752446838833711393276582656898688813461117498418904860920638576570579293456692854920888788450243386344035638298886521935318277922780169626414362907224987101897537933289319368111280449668711149026068008515776979421862309907645592295373722596043368334272307468615989596055806952580266641998940147111733795411077084080873752652380987926472385983608095113646245815532314343388331021147486927342954656505949311704488005666629734603965815898186015677453200822274003557084026283042726708694753788484416157394477744529192426023477490543116208322591740686269530480298780533016809347618047279576723907177875911258374939398133745886006413676197370241428585181101852576996554018147890451934040302169290533225613769538507485089331211196983474035291770113120833440316731699052453051183046488414368868969304440281203331684074598764267095692631202594740660819186889524433437661978257560343672208597914680225910892300916336307340430230995411711695008267686199006165025819414149702141046289921530292949719581527792468369396224665420004676720536577271170503270585173305155323720745530856940769626683173725547417119245262347019000897679176803813220216766321987145955025215550451672019201537064939384666503565536085081886442447263079650518285091158040775485055245433437328616868588216783484889237094980919805832507854253233921285220342993644245774944862065833930538454942452223376208759898769861878000926029647687562276126738463303659836727564483562502246013714786327783892122703077597102354360473823838997819072462346662994601585145423459823341261144146480777047600201178688573655978647246267643812096728965468807012853599947169126616123844917480568319636874267413593977400143543902463331374718610671098958315321172914639105290522048400158071622446301058275986137213563979027310984572322154490731639910651768286553950801316256330403474249018504671800719720368100340850489085702760700333233557136327870580925427404028105626158841686514792870304777928018501034854520645888470134036691468137993568997786729369483333866741798980487943604831806163963780803703852588737423182912183091469823134896938601471829206860798881480244393994205192200850035280935531542962810478764359687091956746171156660787248246087482848168914977941350005598802718735390613919037787418020321349577370650018035758624394878900813944559355991545348433571065471506119815317113814792759286795879265293035354593655272864356961315196649097853080460628803288151843690439201198225333953274197887719777103381325646190747204688058538595338552158106910939958223581505015261755486887326294282978003657962232558855431405438633841594035097168040874872612561697382674061806159522852300550916292429091683969178704128810860548748313611016380960146736354826037533117091113378047975160701373714149073167865090645456420556669772559040370678861629834532898238226802567757336339134054454891782055796619412633332939069879024997247425364887127716246346908245349627429325417533544047246790317088618516028355407088318893444218348831302227956329106618542128053126906246175760574001093005659601012062442837000666109754758132318883722169459545337478480897489912125313267568932139473461614225746917154865683825647753064336819601554948600475953377729496404730040703307767913559966233624861172291524695343970413908285017920245633364034065263040663039736598348837712295167340526576514377519837348500504753498835915634501060482971247422342585414972067458416471320885770211899339589327185795994224109692135641833813942286317573662797867227998773146188138691089971271813777939781275605214530211360548379359507123432686714443724310954805525787365707104785691928369452842152049248241344207856832866773088662730463518858394623621459224125353502647160194741523213162097607703957136960088762480255280247654543242988600253997269616976147202840847748282968754886700553460681333020914405113382666594979274623233370296994609994646915898410763795410810726948818531319139122524355838514674617762512671826042602536657080600951336522802053177066595904118881343924247116518200981698695359187968017031864183802891122639863139523693412795195099186491570114882757884236470137297095071564237598808176294037807125471524168208142234964595283170468628947323831857919907218000404773856056180783524447551361510782690342096101343376647714949828485212665036820431987338780332797908761247582522863999016769781196614935864123032284768306784010530547269844171976629502511603532390376050197741719678158356878059652576449422204000648383136506861204755810644367735846613939420880858663452757915379379551350926283406696659941803258147796320389074216325835516857576615425605970518810137728545375792303820087176268120026814536378056956046068220190037862846883201529356656980834627161730623075143222036349835280294156754274323855094129953553584980632964206339287439695740434576700938123277080435886244392385076844662439044806301753879281182963698579405861439122749854615077434410709016340575855694064467064961142624598651700356689235957072369029557460604264198814121554986530782240474687680007924714505552700869102069626943924828652751633755044846884994540278540679172283031057194651054704734102338065608092430661739925549729680687161216695498450763550990694792214871324255368723312885619899104936604494709425888856369502638999442727207416307699322555330870279108574816263692542311147372734592681382930648147889653310169059156861882216471384707869008380705717783609571503205264127730326768718685609408233653881256646297161062968182646695425519246044046454850285474146128685192081595046776341915516020577574940252134210052868013968952278084038154594787470035526857425976212392049485333261142991854466849567063615363865183830725155764551250688839688443479594535519936780124521412725891604697283688870056358496884176261242757995345715542023716885187924680864431286659049185143938915040093069888398214907719105724415565902048287208939006378261919476185729442616257579584424128570097314025233707180009316413676864976952629812696133761918745347217722751540727169949078026427527367134893618167045864692758373712373873206758060381148833719556409742514594100251514725690538734144467551820713373990833987536119293558898405436398440594869394248598530450954932765276723824345332177583211412172248232591231327031800724782766521832543390981552692087650074317043126015553697484455161249409355174234995838120868248629971044952177636807891471327814902325557616513073345510829874613979751286560835201065187752743351307273649288953456998210090580196325044146455858784609294308498855022978812410140757328759857433055484347497069006951807064271682642144079092903316665878141113324161188945759644530333344664317792315539358574401503621168807554326413571866372269515858911954934263598733119530464851360532352416933479471350782177097635550890067565600906744487837113032153677640762464615517537897707103200070449868619729252610226628305871552206575705106391078269030469825065931719010355263114217343820888790891935518898037373037993009370284334481676259637706587165005851504769879254771742643482208317646711199366578030000444081767294987455510221585849899437146208396724529567881225151741310085820281717281318334816206515720678961145353551761867576770814067576775612964927311238390805089307605124037316969159651575125314460012352560498894709577252412146652668959549123352995480865455835894947134403130558990547757446368121056934612298833513433284619255270157989012979618403835119211908300539774085689221229894646146442584617030226017611155720779844007791376986382777186603200946329743164184736913211051498376593902643958710250404035769322081129980863736166045831318600721146550904066065399183129576833175293168053430416236022924966256141881185329304839753367348977871227612820801871157292698553156344334090675489199097261949356022800206883435197506337723620364124820077719124096497902756719581212357600988730826667019616197414777147180953298149222487395951799274060849535228346771857292528213582394796728400084105505431148972005382685283275642916131128556075362830721186376636255989053399641039991256903897253309310294336741818737924054049187038202832523567478207184248058078340274932139252534520487456409362169380401535320663002726942812590215585549315893222629573579497811722318199600066129527026190329522864328543289392052057881091175671112730317521725555084328886148832481821664905840987520017358878927484065931850930529570150686179709507156451915496424110500181902480857989743938108979976416015229136234318972228951250194074103882819636162450275906983943671611294919078033091964884368670205457090598490807028745058877118690495395459388747219518468661726552733263889250939980082459972991688520587571039958650726364784308107479912024163395159225323568692006629011999539222890864154305733971016423193414481071225878328808413540951516453667588690862841593999294067838898133582864726951036733080700244325667370867942070408565836749780537942018437349118038320201097776735500490239666991042615785143369754225614844447524813700936760114677246248651993126429764549398671402987325147353857112934803522224181043711299456548151815775625928132249187726332526024202787614171624454351177047292301639906855222117274704459353050499078407466943306585331055394345411791768378072436557435224202961081342028621057611481903805847860850478128716722503321789334288909553511400689043393136845117577594346001054165039685034425017064544653405920586453527915756673544899149402206439093067717210310504682189584041519166008894555302932449315297378376499658233209900333492886877080898696341460475101132119390029862262682633383861633078383252555029194853423890121814165101955620279760014032599269482262360891077879948410210461763861105245181616514278651093071891834749632161956111641995198645000769889824575026639771648497707801841560977373490549949671641022938402504178246738304687345773496037360175477357993523991283158960689800329006618677530174093806854035724295016216923571022133281293865061318151878295218890866864039900193969142615487903374161116772719117681424861902118482628765298545683613503982358298953254251933380511938183552237478900662994770091675404367587212197011853728285502127647287943781987467704054142508160905919011978730334150813343393444111601705775468737879129491937438774539076615286984285952171259141724962288322826176714515068587230806233866929919237653725348292935896935483740057710859964631852151754076026513328568896736163366775064166009681298114538301604233330135307990492433614103320176841375326056313197860516601430284050042437923039337534082552518032214802611116172475867921642544234347454670326599634380379211247588368816619694214670241186978135642573231539691623328315952002421513843926234121201679478698480971398578983153156883849005187007062461000713328220200341483964848133284215224175629182069571050935041476763002791246413448422397356782680246981968961209864358211043427319460327399221154369445380978928477653749298022148588043973650870737279204652766126172861370527675354219214249150269638997079876720324257540577911822764995214863879999721851538189737027006230446179947305357876606597813118517963938351375077236295532950029605619704724983309950476821137311659555708779751666667615210557936808232530824031618674643086129949227750706945088540760686321849260842299173881223952226464067972615830388931080202327715247086664641918759565923494553573355131146664787894555123574959244627484674228535112771555968665373918441231935153011519915810814669504280547038174168082781515468759890311104767185021120642287908486909449888690260365867103634665204448242963900376063601192865534581677480740673016946179716632919401987845045203000980625750106438278707844647482376608030615677951078127160189321251120543831632313801341401504658487744241832125248348471689538787919153395847272885633069872528550246186886574126594628143975816069531959409281509075254392943234197335987776189123937073541107178256355952975873073116228966460371983853542815482036730397876306171656099020125920960740813226533811836421042612513297311402004370889717216939071482520951878553967701376461515288209983575425020035673954764915281661294711129199669417248045039370063171517847094870177977959992213421196197616217245655658612721391703726891718701560471009671250311050720205212654956443792180164170866145372394371177392722038321528638399665984869659670539761616063827134510680877369109853525916408845858486300632749313448434056758800312585110383802582910147686419741727472498860767409885209778780237076115263353379475017110758174091169948176136290268903160718680627471966202179675461882879109844721451025360262100143998391454660677457662166597135198614758199992759751821227193058160441994531286301616975769187106774883496935541714421992662128068586907796458203558265827705866470243124621357833401059355399869882151764390897059429204463394743211634691827264572720382655478093247551778221340524089382395936602952402692139709048835508549881703091071737980091400415716388996144420604622813561609491378895789554445764592704900117346754473492813594657420864966909978021112140029053828488472497335982855524196932551139177161925677740662538800949942555650178282848781211141584507305749573119206974871789653756666137775453106069971063689654303546636520989400833253233940770278404436255183944912831288856816371008346246013862736837672134407331486623433959721306112623964943940355129215968054090370131737995697781323787437557868059856710346497434008176096817315506730282926892102421837035555587233397072337612587334966661796249648583280823461641892162204816101427431621642872493430836444700532815534396298960230930028756170758431071813083062442584181030960019746666526621447072847797665252055555938294541458466396575005536450591777022071779505218520930502045135025002339726492100017396229876510899168426830575653745416961979765921140371621348941484114604457090682931156270677588931240411026477886724061014606051993121777987411972021697932389181296746652913864904111460223085724386283252444840920620994823015220329209785015886782397038591680651611239898909617679554315199988084882178321485951973547799024710123608410854016693221596119566138731989093880733470969139232866731238226597313493239078110505099224245244690246087164434165491686319057737357324177681339708009402331225753061225500855025403819450606867174960380490624220148816086743005172053051159792577342781998710039179475366049212327031567947305432551049694717029408463199534894684059235616941305168345600811284572442415991476210770589380662909478458461080354235702626411666298792286974569332889809967354050548144932344545198290541554187586256052020263912313367289360762579858119768596423928211243797685084018843786671310002686114947499364926094080244683159611555208791762132068918342598644494357196623815366307808849358169206361824627744178410270941151563177325348719843125700612003328513214241437482666018647387137992113236985126189414786640610354952667209003883012207654816546333736906662753626589695913938796742140042023829286855220919294290842049166718327459726383008065708918775384817897189679299043644954117824902831594635353421574989203884959255975007326813106428010568262985962331724710523345104336902546957593771611478693762909003070052272171254891230499329835586697294718869981166717147457906413204979103076201190285043182337534381165723815488621002115662494005981772037149828907011472190023955036620011996441760775459480642437950381911199003136745135233009922652486555485685232226009129511142032406609765647398123221228936635684079399524447101294933375935464524810294764970254795818330914336110055887030847914642978789965194589365227967922157691010592853321293392541879022996136036861334970715498676689690734612692388027801367498174688992493298218447307853505866616748388331908178525451162243975693328367233319098902656816920303960100184606815792815408745585481708990749850114268492685863729532958962281957101089875211619182606587850827755162198296721255331383312692059555072842420269165828283925113646850083738013002442027112857138113081026774359796861642250063087564122870568482679910925736292409965439403086729985298415631614413320349666584106528310852899749385718086526342373874581560476031885177741401072085558352617109625071206811804433515006066115910608274371803572604063602824296430183018417471078554013273031553574359616154358168935191198117028887589831436520114846791653373238505707804994951285011795521629010161836883880848262348439175940918030243915839245603322112878902527838064410333277522489726154989906190366033275237017782873646866847344514688044628616332618529138033353395763336026290510398520467403838553993777961560149944622662045077030088067084022094912427723346930590722637388489850906985998417923572535023364660637217716726565818255348634586439545875725817761251818468678796861646906907614869876923970544532167606515464491198781333664943802729813182203405926681121645308953481103187954246736775331477900416164666303373748206222040885191768297065533943400606336874775675678042824906170001125527698535902500898653730719750601879999376781366936010914247422839308022861344277710056826396159535462334447121059728479834908253560974425264538019533296190197764503269630630061638357549299368391918045783853250245558088010433938121309437083233776673922492211136045552984791895344597054701188005906614803012378458150064486190126391244306519867896202267067719784669796363735716542849165036308447261118418035980505001477751540376137505809097270747524513880173713251493938898449137144678008451100828857632241392932910190688957165550979397762231543041700227266112669688408719237627721287673549825744780834998610821320967022068256791774543526155694687539638661595212800209849954327859431159046818377337230036429165133248337759082137588731816609934590058126891190026437655118997921919994879634559805115156473519520472099508761445677401952808317278629163246447598716715481316962055259816411597884374096585154399391945399010812300157704304516478718951664571144256042348071074955249591883816314574375147580241330020852401465240361072064657666649257166796670742362328779507515974993843611482582057332285882306345294830521819916820914701499371665100574621712513336141623725772797278561418527560778551590584111743164118284263500883757612126483860278675367305019584194105067700129755860235793889140529394482513907933324997601051567636507889799061299652303828980899023019054711392371248756846396058585440958740268308986963624865400803188102304793224446292569908845411988019055395163185040191699979639625121812110438405170928398133386092871901099850941954296064477903399235725560267697080633146035196808421507755895124658304814888900312270522151549604847641751027424270880271620467033393396356076593177846257075437681503797740397957979370236146188468941904338748238648007372282371637443697812768982162567778974161650037662207260866950860051215015094434987748746774374362487013353092552430413807838821907702267575377755014897421170479916989015955315694997402299812552590568482013176282601121437053678146769726950064794248301242329132055020590033663279881965121884316813923563267968565220380541854998487278563455084740913164137354517021335143310262865766895325089690329053774983102294464035852634076995145508607903394179396881861772209139600234954932001114288078891682797227357658442529644641431174872679130271797166906330572938091220130503500156980582871199445517855810319443641975711140096959046069913552239308358726159989390252909557733981251320294627550554581847170823282058210867309132707142208044096480031850782239911180446091249391027330195373376687025237235674313271008789532044483743887553482356587864412356684600243646625082869920943669225863896738178634912944697805333475019756941406460182163887569144260216128921532262664510838416249899195712542019913224341907402344811975944470407608872169956108083652305205896340456128855418080830628235411657042639886755945266705853251646081796982311573593525088173977425788536530190397851516614272150230642653825033599805864606467810454321301902701687227122910137733729313276632144786127761733956326917600231868759685038836047100911600162826063013756926835999895840762670842688554740530355869494648403551438418579469700084291586466006285928862291337791952161098896813775786271319365235244336296999227474363352931761932722017235609014134212669392598428007330989717460486722880556958160431712086940323308813663359635107140119912956141437661943583030721858064144807752060846827969156350680912382842655497067558719444445131573413518319666481237453284614466935219844632338387851772471782816048373506633628326590459296099810803225559966671443339921157114015484313979931211506359063290063661034126921776016485983067649045409222523053983448920284400725078933008206712181155330944369942431034512190605916159533493023878066790262487228527286228710943631777043530235310691256893004702269008609303457536851958057872721665467394207227854494859471316989045449109657353634594713151400496947392808393229753995999458819355111094211706162575322920478454978869763146231590870910012143797074252048146619341748023820737050173813784613201457028771577148570627037659914917266274630032777249456357862671425021509512385978040519401700191119991595375982752786795190109139903012303032789021256410690735927189675126304435665542739300267704562772664565237251298015368933370744054621002317090422558757579086874534912784732944946501057297900753583018503337288324397519719154715119297537966816982211917982841529334638615252573308184594291823074887866613396719206427550525724436436008423630471616496830812632233420387150930214195390339590435022896954418695962414007486069032999823449731906797762153350698006446754629929518283722984097152376672626599300940279230020964644593029155072360653894047754638817144297377700419523799453805179640767210566771989898773743506961647433955164639020039739371103800642600178811029634841667375104114448916256384828135554554833154878730186092980042625699615201420554824711124058990810169825598597613112842694893754592986621283233004154878480934398394950039394684223150294327337155642686422412577996335935695957591802999701800298119369195692155873045986134282071546760055483826774980281056731201230135312186516626106971068674227786167430284998354604526489744328826970930872396538473396517750964572951574901295650467267671025783216081724414264650748134968983602638758212578255651461561568250944369524853794918499989928871369134191157997118017237910938704688711740845637453083481729577191562902679158380949072663305016802035649776276392136516391920307815843909635602057323590186408557857665808052532960092467789581991374878754978709094356121939038479946124386741706365144352145525172847876064272982510619024931552237871525036708552564688246182125342600651005515529964157167381002318846077459905346141354558349161664465873709914687279484516781730226663269949201516790404592486916547376897141384465995191092956341415480902337778466331630666721807652353526902480713492705259679442900342443291258970597548078115385292705246234494349635543286073477799498068394769461910226537535686830545189376301608095638774170318455723696697199686204687103675970598353252514342912311868018726079087003987528079093550623126699630057253024518595955310312947202912651671952391761641401475244201957603916555642283426271227537248136329079730425186381257773926517769427756036615758229365372878669285149341810090185009721178029248414179483341303411266760120685845266588549838818786003058113431408608787702566369617911794792892476831407072733570440417439914361765111599511955289186763251986163597537533962894505397140207061805146138782089827769148649163411670589496056739425869307779888962845398045026239240115720570926871622656726136980749242432840369198725021066073447610238685083174938789328886277183456589515910011384853527051122868308571092204213637348273399972548885116299119760310590562542154289805331333672902283065661405706817200371389671385208371408430074852116641331562407600353518387621191833354615680027889944592998324417171273901889482018013753125190662460646910207617708009337751277500409422860903794039950195775110914639400082016067430519388806298496317899757691348540682605827661457842014542699597371700093389494684634503436527145945884996560948928983925842752517189756757663519671564763844876632035632914794348341117236964831397131406669335888411111677974566321174134538377788276795290055098963575030321803658254578422768910511292502810792719997133806538974415130872499368318809847628305791807945242368982580103794124992686025321235170419177783954146687946005144598988187637983060878324810014968676230414044190050015494617292326749074408248478222384077973413539027535590403583825968632072465955756386977555808024973040281542339954890702803446730985691878735376847107856459374431268895825719487379688365842710730021452414309055112710144268560660603148000586723693884097210712787770282456353218351737608064617948233454202892396852281186653297076532477086852078816277568921777186688702238621707124282301090168729643729087707336926606389685285637937087009835183362225495662289281405567303083433594935818745829318165978931116053383793428481203445398295963926670508135218152646242490148171842249198464211562844698863505678209138196296722303203412424160484970511320605395858738864545126140896936059784211703152986142885352784420318660152729847422994134897885974732878217931484191449828431058209920529114460540986896497275846861555590346959180315255717903743044054640882695933409565711264394648123184768535086491969036696809607686937705644495434280179102296351655010472424356677390328584794952454916361415632755132904393572652451744116114019419534815678518161513935865736805777892190467004031843829670927699341872509641337678536124647278675428113403987614070123894965688487982532166544204678503685804175476573887481890262559386742179156653399729456152762386005485795017253112353927176980376380403402349212901417715161573961737752169304500423027363143988908747800972764029703179565317971403898182657204342759630310270604351943257575078878747831021571527496834169116984423238425258226350067269980845454588135386451526060243439162330066775357716524870790618379832426046110715155307108495028281103940682500367981409297575951801579477680148714823108069057722789809764796789021028229665410845253434711442025011163787856706097828857405328791659030210189982211911549576418087167141413215510153663769063475663610780237948976903539893386826337489978181493684385174026131586529525747456628806993862845525169303702067507384914226723874648914910739808114627518501920646452339847918641048027285454524724630371605859239953179144399796898638501250039497510886027610003939425348514868280948634558699798045532252938708352751878288710399136748952193537948904749898904570794114754796660207940078044799413606516256526529908431979422660801349328521329842333388130291406453911879720817917484679847046561102399567039527915181455266546014919052104199567586267755697891054883325587819806814000691982851286389507747389237113466638967418524103936274023964827577769558121231143143343937074498955899748332379927117722489793013234315144630885638101842806433479300683610273856004554117374011970547043234789943782200838096683459989884673978566332073414526652667322710226444940482062332621842851513857208761803956762371666364599477401261878684117592294942604046264698160051160840317204808898370866139760074893109658458636445214065269031565928918860242718976308274302986916833738743492981373245055873433913821169762340926906695373630981488226247906892778627806718439573549424094765679247188433241969384423242202995316700391231899561378064958479304078721994547578529950262421270202573597288940436321029743656484522719930069317006969742687147552383022409454311307233400002757701850873864729825913178220846047729313267955211999892015274190341256746248229266900475550338405829028758902304145789255638759916986693488426109861256953316102102775755662472438081229036632875626775315503216272369054477132766370324995545220890750508036601089350041530037615693909585120311458891845849302621673565917717396280904655032680324044734320650308670055724299576047863546650270022073552963235122329998021934918717889753454378067071743704658791611552656602844495421797718157782256932926718525478566472716903213710380317407459105104002843658655261641836565832694085503983468089323336547719173035136943130746171098909687497944894071155680082213651471613809263632978498028309539522416769667299639668281205211688714778800595062252542034020037898591017126087009050183968967357398879537001067004995493845968744944946323061238181239707119027841462434721721168388739106593937749519608127332951303070294558048833551441580088694229192850732002413647020471486902280913845033812391098943110867951211807610047862019192831484930090445927815270531237311304191200540629083224069266689012819357175773416169934246513756649125713930395425295593159842118275014791621562451470299559243835262898342454127772070631150661544478012555242678146543280297723202826299236052733438940201682707796977161867102777595759528553655349674627872993582038450919955126377494488926840905754788221162271891749150258641633077590730195069260660764152857033231534653290783401691045858268931851741585769905412594867489251229897434733654124912835453704819556991454406480411195108124433030042527735673369927283338207066380643020345770827234916729508468455656322225060393061752406076119327801208048672054078174374088551044780526430979337576239519690491733635397281465396484408947254139510694859770258593986914998235687449225562049814192075499529829956490377502314932926225145182431889762125656710930640299004765679100081706468773129682942388225940773459478801906829778264481989552581508051229456188761082430350110081765784088535956550671296156032142535881254850242458386025812588787430976840176045132755302831684957676714883278573096985574481097886333583102885290676698671686631591415861353701192238836203472263495892909201458913553632264117571928238507469177881705023097434022420800709409120691445965545633977055364222369749120645384792382888792202866885285857355526985095017841227105771419152036583751563100235974415465076151388107128518971247910526875124649849650694500675088629981594651786869489934487912429334377472124939228383063356335268151250459447495125030146308030280326926073950135918975763334082570012337685462506659411689796077869628276052401317628916246598024956284774540313837884068991371676322363477015974219151746425740797241187526582379816761547148452971418744996377793991223215915722274018977590037786457448105861550670321018035664855831654017103345487188952615301689278608495746980878066149908241710189307456872430214518234386865713402176237564109196555144828239828773040537205600307573786218228664002099944119977697198364472860677455857886119951049086362470256533727970706243850526329037293584093230347307313051263811285626910315424632397415746344568231495962283667932729357677188356061272074009203140056181276468978583951267575199192768673593307537617851159659611816876489443539153469400220616059815269839811772832338491272429379741022853804001818103208640225152254091864080002319947335712738854112960930169797020889597885768796400142214665109876230991873883102354049027946441666730963187785948875758941498458732223911595011935583222210919432441769879980393616710055942675765567740370875076698235741177957175568884802209520303365606054865020666670381087115154584490335814343658365172790688643935069422896122770796456954713817150807774111002206375839970422681978309214469917894819978144734908583286039698569108803376359192516094810978001082801635642101445271826738634412901125724917124495281500631998239728530183831633181309657965908660581676680044711302833618209493044575180122978745521105446331938504678333523131382454471995517354177316536909549072581557286523544221028640256789663034935782706092732529422160840131246331579025633965627832951204658137655751711515710253690318183609803317425772351528654094042096206462510264119465619021102342159788285884399727220252184095180481963940537971211526753564402483923752658223948150007277510471455581867557712826333323014219688186936803252473263455910819445120689199645987100855215862274743044946331514369192615100280494270741727974896613273540379539400310962616303967711201570159994983594881529480140752977722984674827708798337351062788230284488655586689097354182237848704427026187660286469253620210327614713546227794907172288560202323930804486559567415534392558699967174746597425230077482351679518681077615212044256824996109175579580235686226366392762905563147708339894032907102559845797173472053929197190292957733649472051764370566940972194906716055789177571969162675341847824987116770442347530337812962877320417880923477580604326147514870502229615763535226150716444015892427590329259817448502632682203783839300772622951021696805310615818665852700797370487581888691455422351808050592494462518241752307080878644163045236431811680040424129975776565708361003884484730802959161409299900562376814500041464453908981760269159856653531711371253721531860459312557869365116990447158106554259138150823969622392416175059306776492868103591289054535374036329415482464438011772444864882687213762638694344597891841176920982555937324065874360379048219069966201628257707419691055334225540749243770734557285123779057940537122834220158478798182074669396136334287909177534142254584171815910396464064968622986303796955079489719215155669989089969723896707031766118088885941642750435114959980272170293553010222673158261540804657182072319780257635847110393970967058689980469052396736770431388159283197592924014072231466312174822438609035248526014708944317983686239465659534479890211585385656160847142475680816001461211786401952649483984146678753051417439626748555715157019356561570282096869748945237451142653887666241306442932348110941037648100803891347630182057024739559831235487778154980558322308731711463157007160425184733118385854707319205164227863730500409335452679754256715713375565917823012227813124985711915248453018898066296760076302503898442690004838213004042643013159518802156967276659672753934719672162921426787048948017149672858895744137042507750536495609939515792138815359514072267949137703371256111842841223166147840171524903185901745647426276490418025646884450300226646967942078162268007379505360346796087583113810978501551743451592382993559217642841294152515581821820730000312029937024513289790249176613388417927433666382467374420057752189643437527826428613080352433975534081626162369527494508411139278794160709209054157446805760466603738043533874765875139597474208899146385075275090899424771525451071769224833940547569151569743768745419640002824636329408786463393615179686355128996050965044481234746945686176972685758260460559589834357641688912943960914968509445068972176934798764129296536259341606212563201540553317500528353033793652022678111768921569269672770820551840903785205986519038076019846578446601489259731895028118463045296273923821755672241540432768200958024163434097124620235319559033369287973063012867902876521867612461759369643077903597795368300146875228997265303888118215376593446324172131271219420534633689999500161871467830542494449426746235831000487202305420397122640470439181487824545327517414454498073202938370920663567519408386612394369712183299643867793319232653619228371301687631912287942730049854748579331715126714109271711635387911155012511084873094330065393272814821363254431813953360913101428707741154961125220721967116874180061630781751179437530734789793220997780938953943610945846447322512312300970177309401053608859394237411412656813763214079932785992369186397777359685879104888611191291054894190142738275371750595042398452923088818554241858702812953775241171398735420896613555317430008996340809011725824509199065063182968830631289569045988368571025434461098619800948343434375926511607537887040486206821592668593484147352889266829593578247738626052164514332260535412669686979415544017745863828668095378974779898711884200471861477270432344392554972774800279327202935366851141834185261030213587527492705565703315596321425369433234609709545640131055238301820498043499989330329154604285564536938545808491422263474398144689191334462437286365222323888345971753736089766595530399233668318440642409000737686101720523744088185756478295073065274726075241507428868158016287775934635163175902989229174594575195650603923732406745076448950953139928156969265768605270296496405194778953759662148835488746347697835249363295165067274590569163510382500135894983877653116858770190775910332062522964879873341245023795988220530399079942551157269531704946116967480125329650632349875499634576033516267265388804274925537025500913568575913978356433379772339197172824091156983132675694677480812388284761088744090429694611562191441394883070845014081526735421086465967897209115146947316809640711696601901798781651298357081580635406270470062879742701455375174442853483561163476181673582083959397447822870564720105024459147379836237598716505694730480865757891008360265274118915553314063583345766342436281295621244540450898986044102373737610441436027213534492570906437701886289935586952917950644658605122633569159113925009044801226832398156804577304761398066573026126538693040726385441102761421314907574007435254449453869605972147617016786173804651013178317445450419530240039595927965081577939280910939074822320137338188411453809515384600636232526978089184513973643652977517282717321658055876875083760846893128089149202589963923730752172273465833334961476670221469163320967376036892432059948917656514780327568686441729186268188154454197265645767409670389682707647274187424478870615868925928346345895387770802649894523487629252953998891420544127738457691918520639134144826021690424126138159213311556529991913098677302423186337906267122819509014119322292939643944222491799362034340058246255985217791805032675622497975037581786652450185398088026862399743281348417608529105691195503102093550015063880080843246841426553404070328627538404749931685978619067041031685996918982239974787037250874012341982058332764656455402880108344382151484211535471958502663336352716194802910327759486655666529739151922038549187982009271723314159757358183147101583110054498791180478525037850837554146263255728923437927003885669282525326644393004614170426582973128783841866208013734317542581348434368279775891510710615832403273919314272913875297660831834795456558360528492999052805416385730338344337495874525020683144269095370962942026279105319775752561334780901941257956381680826693845383473676016656261029991727534960125904276879386883729861171814287888017763171118377857686287559762456548643326706466751449789268412959238071200313894490118638237025945910231682867229557132780965575991688922260737651304083919894179764011041581844060146152908417143994847500475365316393017790605044210117195658032846394548938352808725487072278670735077876910314233642565694456727700607000376895770900083746536797419538717085666648803581894816370847764031791452882799441389871363942328517899781010497709264483911180704737320215730469458308303914478724715161439197958539797419085119921267929570625322952275494196996132584592124204142480970854300587355534791388176845093172829408913666414076308899060981711226485496028034126979332452216411349245028280019271554347921825999480189986973112869902724867246613167958464115392150494601249795441272063123393588224376273841708056144550024158260857122463216734227330789278751487424564702466728579915376220828816832114123351558520565647344821514404161166133366817487167683917711651552242157148626343053842879358748825812608476566175285499793154441421512388634995348500235110129040817883508408074199020876996782744874532924423815344192252416999499528119012333365957366409010716394333885976171420781120807251822755867139771143431604401739322823029585627258207752648582300329859768180128744634885622052533854261527973325769742974442187249154858052113749637141762251588420016578467087347205611304334089487791494375927289950420192285425600919608076542121808654116526374650209012504277522634137718773442298619047383551251169098777689753300113111380296256432340624571864765616136605672577683581187650523255907635848737015892228601988430154237511262702084186811635624553196061054724945564263623067193767511511626299324892901190439413599005640932295836582474383785802604502283864958539413434172181027647255915868397636216927451163358341921070160763441005937566807984523373118253644443774581137443876787567590101247126050053375022773101765557045269956622689683337682409079871049363863004598931181114238756806422990096792877950254413815981818014843264832691123053910192520661610966357189983739004983446434559302460352081009805872880793296044765367516628048696101649034535052918519510295849760000694842153568586602223131463207915082198047883171039789601956470160361953274249973546686164486423695662521082027237625806909150354870564109004419985127254965120419569339565565113670252761144922861852373413694308666447062357084721835647874101202595259110419813075180218057127051562948190491650707098614333833890855151084691613482224373723234424664320543957472579396068356280744507196697991961484686266897186497732024466756646671245511365878977218123735981348756314831941852028851193732735254338779779410861181369880532664516678046351735965680256136881596787561627183903560761586599381982445918238442422920033442447319559013424534276773512868560792266825365164370698763450355780968339960368385233809181114434351981098418634047815651895795690362525009414088572191512995859498782871195224447680014217935046543076148333211848353179886310306191563234029885610358800380430124779555969035325120197982098437243910414039176604783533123350639378876176958986576781912111470854032627954878625120506606220557554548611314366296630571310083642554342900982999627975823075433939106222954779174979220142832579382434520436135369869479055837239563349513192000288872336342240717568017711812085704101545932632656061853465477835172471159149360755333199828954003471622556590698542888480315852847787041077062009809662169550347307432510587295191764060516804001200202312242240645565380932501775309750350499902571156173403876744662358800211521053986598610816742604227287121864960604069562046796472991493954225177576533869602270955878341968671189979300902132709508143269794306720104955725141387963789563884006644015543829805032807295696941025677736700099866390504906443703150931591352755190972457785585281962341506442644779654862976664185150973725133012333423843209819689746996253820816527378051012839946556911729875852755642187417990934692380308789289037498644347664949351634592651521916621268785489691929625766811860959768089606978802859542901435336488612622164111361965578641802620075163153103830069679898071673394487273430121982412087771123844157671111735221066227717628624496767103538433626270686596006414348837522181437702104364489113288463495374852417946030723334650370109720679830002568693963605877729883758447536409448267728187822608385743530418919221406800501520812486835333439625189333501081594817698562508059961925035133569200308975548180938725233666771416819391496623978234495514531348696692676959332534938568820663610749793717581558150326618782112986688176562485548790467785363822491083270444603747224263469589539056224399034546916222831868243770817980490370357555146662320786603366003556196395834673742302974862544205281397930932394408229444452966673651156736449842558969734182972933920836473510308601751416926028121879111036908334914545351685996677997270539812337004474789495644707588659306940715534680167684096405397942035153888792672755450518508081637284952661612527657788477576115169420694424828394833570093794360461041054238065809902739867303597212043403985778315880429210244213557759624521218520692597398676752289547911529917789480821450019466275418865851521716400712109857197902129191709492305233064779431294896792216548465590852236419514735596696359264001635321406765622876883236539351514212724843538018447675927830397719318179472604782357318172777186163632875820947653608221958819396564407037286096203459148579054026959054358424351215644483615616200179897776114958130191916530075401544040977798965044282478286215860401980545182240829771657173367436870787171612868105374084715098244436161762424769670932506976746867617083888744703797705857844973541909876660713707151795349100083181921648671297352180395344080276490182201071969440499141049112512901070546847881256332309546702124886179472697167915459390901103806475874344942186559846864494037937121369499173567657650334904391133463767001865670556266269937458984508806711816355424363088910365812418127751503978117039532612686455057367822682931347291202332848213118688614366505227216771619487863271914215089545429228225416895169723331210996119451746040685684874220303473453370713538842019455161377451162738135350392354247443480504993419175635001037465444453073844767985813997476731771411642206951464797287108133797389058548782759548107712628984385471724079787819100898059878167727549222342023306459681276796239507200700727876852474771748093322400560847144654138943825400439846380017536582574311925364636726235691472456939549689480612203041395203903850772663923140293011733176200766674660891027055866738993873279198805752275632927805396361672470452734340549025730259908604268073070482425528635640347963858357436581256981668879702651109180117180117736246940307428521820339078691858861721678389155625291866935203288464338074753166766299843678128580031104291113865512615044218658725714641544707590252798873907447463918745316125329771281460414896817200296526519825839638788145258423946774636442598100666696777161965004545330471131760085723500239835844515380093235903048876787642258529588712810926998340798671677300705612375076344239794667991505491181386811085666979356444040306938066398904324485067652120672586834367568835347905276102637946587787437117527279372305703182390458402687762976283089557629794324076365452786147718885591653551088739544319141555283969342815038457247551608210349802668595465410240518920823015562809930118198835486351369321408269636740794160702063344873373737385291680851973881992319061751048842166872855951075348912494300326470211509708771634008897144175777573817516793887377615112310858949903374056771973963482812043572122118416499825149338990585333626253340804337096296272821080207007346787542585130240747721402559203705024947008555434045551084777545665658458818760523539139533383256356358290925379843606590705551405708686621359085133545361721954168284546731583412372427384008154830314406512453303824710936655182426120912289546959712577227821146474740781718174673038624016115935881435934030669181284020657708107316160514409429569289749620337679707677341721237951746992248776903292052291666627998551683909149661386859264783354664230424272793076432201741635614132775238341201142934717519457676876371555840303000331288802620472914730079749846860844722128877006109894116816800387557777396441655583607249373517554411685760608329452744525989518470909051326403512392226470934696427405300278936626378678406335430903956439857182886448820896411267394590260398192113792839662440261346417249425196124726178187826788617048472341746479384410532172411125274801956583167854889820798036968574383142418804739752269261564698971243237714266129834945487855627677418592295695358266387147769131468421477880760328270559417696024181837521838197059019930119672633477860009968480447627505759662187415586800449725667253559712995988651312574829066026027069744242850528325051835088768792487666666350614414394555327296956054251398782230004552596568242227029494726130181810750920871918052229356799687766745415341062814969608025419495499255661812416260842530419156867598195168686473065682851891686689310031148463955842186372206006565880185907072839245605067325763068865107493049673155506170704733687099380415205900144557053625133914530560892277246474487948975612534103538015474406693635681861886278130159933777481359215455218475353065289605326672807983977382383182597614071767149409289872472974314509252001837286381612873919487713279158082550928979633240013908572422595355900775376648526022200766406571129499446696309520202130702551343622389681958862455245299844503553193539243174778512014258821126782858620925592503144391124720295209040690576888532477834952435158065400595234910420879368952448412432433914193876523136748769156758167043682666166166831667545704135667232462927892675144059271219185985859380748355411122324034247963882545061800747496237387500320004025020632473868540577456070069039914657629563858854148700710265372365428373725692921692582726408109286044778745500412930732279768605680466408791384499648472303929663281841140418607230920372248292141283237257921528602599056187643945588372021670101214363664860579375865818350883410055453927548567802273066718476430346854247480919477808734131419085922441801494702543418304371896255136350842159258074762897040605322604931904066467344428690149668443139725598163957287596386312479048815820370847919792621870541185866933418538305878914246209263521987683871680526181582221179662430899608351046358267968680514768513217036336773320477354553965623023794102097520288078362104927068538597506891040188756110738032102488973118507413842884922464865414827944035107206545192141164251091815121475136674704824012562077063720687911456021846472617138174440057911972763032924458216540277095839015065524640867171790307766619180936374529638665921506604844603786971196264550843061524551965629738950180930317181155161439865496820819662566224908430255474567294605872517446459761907964965491604083568352242266635826695996252466546786171697199968575743224811053646148764450030647507195253472339357855343732914741385007473465850256893858505731614539840627233778611742202590591548017458746507761141340877429918776715862987880246538518165714974905913918809716817976109418315239178884992476471059722757698665862131444389438847216958441405359505002462686106213490946912535053844684987273671105972107563923014022122024714306249861453635479163855792742138973727179241071346674134540273215233346037777266135022654832392935993859294857513558761462251633382196617733205286876618023538480166426755613446210704219881151630036202311550416206618006501607194817156357986087473583046661020734053935270606602550352626208229474702456435853019587837355260866047326660193859756708531944375871577156118550551085333560916875659129558148457498723510716141894558594505668566390533022018612955243214912400637469746980474323520597748865326364519504315705891534085866134593963164741964453780027065190099849059240177435366972542290098439518278768991549656381856881177127085942989653738962498734178442951301799709044729064640588399743744628887083213325000986462810195150531060032944848501799699551891063641178627224239069963747332226362143223278105348157445358801427509683347500170728136194062272638912461143517495174158271248671671200769338718255113893915888582395654845268024090531998706268547999688548372942438317857108337796878576186603631472905200105594626602766626997725756409636210655003901905977499058969642531506561178931096394452365035006141528900902312007840044172546768831888136219617338958391142736267458386611747035019328157991218467780729596491698749599105821453941280560693444022675944207193352618937151968584067154608748357786384980249741495452175635422574656532078958787988876818785657226776841949113302929986481298366300518667391770296942091834463472985988180979526559137623715961729788944203034157229621501292606450843683313196061122098822420408713099219465762575793433953477385865432476826148354086392286919115041598619264055751422995086492771489903168578755662525221066634557512375131733720601476282006026285335598789298966305343025595483053658915131528620176290357284215231090162378278158857786078563165553555558209458854595308261755360449865762988980294989052488842055569716493979357246238115684340807910922191058293539934439378027124237470753737722714302445371226998789949210999047953716111859733717207108681869877965790726140111919698671000735334534594204690123058044908186946520947234887964823467172387879445407260395624667873992925188870494750442998586201235964080707889208348260012215908680295047554752787931239321586377430568897180927400378986072635329937371611235998222542975831457683950805405930978351738005850671147429868847433610131981912058220709108041994972731031784483729449524042849186501999304044852664316412819325113280051774588574836114606073142178482455627002928510382138006705615733000738950393801406961626736062216879471717123984538723623655353685701257431738836006241524107009510094429285198029533602394658302824496642563586463495650079462371117106127740776333537859327900085485954990034863797864657910148923032735268024842757227501135426859307438737930402794795774358120129309356095476876468121187941519849073087818334108434539022480780480345889037568936789622724806179765122904675972404233853987426838141621824080984967637713413520504265741016145065241989881906344838238509237865002385557949897457238423144354350694541733448933463636396313560250944248953461273053435835350337465352166451580107405535364327506928201002903722972196762653343903969562883728053136997025018606203722140847571784757236612300478474086229788957321802230888195723791517467318151728862300458993987643023824223773837034807579302714590001749147304889154030927658575407788915414938944445362799803608891084117881819842923292111891635205534606081612656989333701140966385013316116651367219346354981162931372722361514786840894661823807763213171245201243161603800844969199577740157466681724645854444196567175146940529938709420794867149459487617872011425726389617068846860032756904480133688122032208362063194500466227602875921462822948617155332188917091055782413998417984233187667360992660553532812064243283244994680422094000666471388464205235194574571826666265233523879773758075689044750391652029531434583909534310863090639578460279926412928613078631881550698698087045158964086062814147378503822781797926821374701066466612759945381658238526148817869721337912162812712555813082029398235022328522536631745798191783978674937410813820892173078619599384578349482435760126739270512122108000013732166938383539711238832221675769739470136163778988783795915230446838192054359699959482263697763238290460431494325201160345567799939775541914703635504662619728709377917239282337506062696640499914966610049239920818508121563776190890587390715629026590672899832073825502727652540605335146223925417462435273442328137562162063774436141148246608319132485614197794974348029541060356646692979552692087879786566062362563295323865025732186622357029066831204166633898743905621508273491457610943158301074474578944355628300023539690040451024275897954860374613459808448417931052946054541918335245114479436718213628207143933458583277990397766705171652942964649614113656575557764646637441233118392556297872607554980670665045908787751190368933318643204547846751987006467431518898063536156012561848293846611200802784362355610172039925110487501565730869815675583655765056375984177345808692096755721243515192926120373172109807729218303674013611103080459702846880674227212538620533633779517425365959032197079983117761535056430233631806206095325847269743051923384235836963830364262034618913227309766655837210272375142106393448744564458132276003175442789992723879541558768018366972407438522675438646043916574052282524054365850397965001696868220807383847958059585565755557362503346194180450044683356606957491523800185568474616815298965635279390673580213104523233038356699170051406966891439349635994831966918873030061983120657911420924478513571363194445884078156709440438518124692060086218249108374726895543830528956418696639925156622138722355321457273821407019299993572872203842825714823695099550960847532161981180103229577512818523436601583962057770934617801805869087512209682907514360816554610718288300995256093548332294916013467779491227340765966759744165176724179469576373543439868465012998361459231781187275097657735270323387441902204099103379640254751972182268938382219043251072025833223591383108357061789009411349598777791488635509888405768877961142453099886742149017847323664061218279754431156789513275949016368690493551265237917756127985070284970642034996399453930527762467975132961170828862604695744533097732732479430424995890831797212630666910825822001223150761232425443256361995609565714946297412758233221654140483250251031038149598034113156567282685185411929098036173968191536717882571179926325241610136303098151602512844328841198844436674738253608108665580303336633514018822799879559231141815557766127145540425244266139373392659458749999852387780265570765365247252860951946063643734170010764546776951855315152488492597549887215886630656824034818946465993896851662344126770373183222134868877406106995724215612011787538015844455331749024790961256611309926409718942085964537525000560796739464229662352942113498795467070554526979403335447311637576131383406833880919347116529366661280758769696098502836776402787311347706294858522846508942405835522790186628209750328818807547280422669673217458351671107560400435202441840920199113151585991516435975697063085246791622491816243130935851723287066558735407633056653443571802845043984714206541585524086208917722891652646607233018171362748072898005212478329640329937480819510253700665477520111584532497001807524291988590557109321469295912479649522462774544444237254163437047401791975493058565069591939027574837740306259599544650468713603442056620556538802212535178049267732177358669711882789654691502798326845566669473386517983197344879766160711570699655717062238169577481485973435074542085402257347775425192450325721962823294355962497483280991155138035868180581069248587752199289090440480835211331460604922207491873356045921506983723928211625058467711464404644029552369685174100170670185865399886596847686942969384009606904424129398517883922499533562080969583884545363602194089431574312179920327265595809800125686143057718234723759437236826823682803546540821420156902781637055416945702058826268158566592114931779092805585786496585444471164761993133221463530249374979532272831647761252111568969355705707216125746723828450490138659382935144236439886697608471208242855340530502506048992166781802433133903141725196409436589262417870413842173018539330705620504533358415156882311972250356615723252392925198924654213088889402530242343515931775314555234628010853746642996278821510507271759718827361953180067390803186932555787538671728005701550960197193696521100898494073451879552684085142376808468049499443818649510037802831068274592585862832392246163418092962503901767408122118094257397720916674024130245167704473623388231319145126070318654533314944343409619829670307606670852969166808721778597146018105394314796099625558679155119806101210224138142041013255126371735097163692212802101592819249243674678574562661436573738602814892305961399592390152678858917634049950803293930852747661927040974914355800894666743483875454828917754351116948511030738376173016715946616747164824436192909309549427375591422571660947390524775529996265209749628215547411284265517113030703991995998781724188318323655153818170078606791665016004298951321229933633180910719373146421887583552858859978212046983648883094798086718924902019538168982885653048798258309957961399968662601130004126041973067330711055790951953475829815910202154113914683136097104568676090696628039214395074309157843904517387496786831918417232534240180131250665375345868535194887377451344185127957530521428936412674257780364132957647501531569133642330645142031697509943549408581463350351942904786296346789434472063224381329144668010745031570838030951428249520098108851798866184566898591306297565650546638217652010117295078084653252209039912172763200621119652485790504830968953016431207157902817279786741247730608474652682765659622223533155845025457993909145052600851548823343179659134536198774473764894515984174321272771377337574511654266169717811554941983247628306836720995929118479264442579760756963783886586777258061417368348842568870714703584136639225971507586907957915553498398842360952806203050901223700186902529620540864416394575287517173361258579638194833069099267058989866154885137359087757140332009091717093225107088156817921280538166213789447039272465699113456842263130914694983649313286492528403063479696960764425680317088464042260472137841005832308312798606749271911917096110191529426917218288740047066655397362514121623064181511459466016839165445697127303477947167539746061696869365766304045190565741860422498913502428851220925570368687303553930003303653601972541726167065222409730164005473495208990026482662979096122882088549550646318535259805985489913830180814507144817002944294875331776736686293122941996496330307216680293174907904927827792820682455730802294454024295684320695466361498709497519287960069562494946060071237823483993654294125697785252086766737267053121099545383019760905963770645452298535290305862599936189081714165556823351017582823784034342802629607408341963128052098883950056283586370004553866688057992227109272588156149835520843842732653541793702631448538482532522950806191390972196239017505083368214449778134230482345961884656102938778597051481771371107199107689771396600645485263241245018491354475869230770973248384741145958777222664791144698430496335843872119949397528011976862821104694866697115207645180672785374330556916723578482692444484714363029055994709759666286781898544750262695884421887625961893577119199004135738479570242344861732787080726819655231035525509028432388505047217520914602561653555073390133138374817757698833440256409176478628931435816954758393792643480383449094319129031504564015461707495884358719657879703240625666715315344639442643024563297952049863420545745189101649005481795766187155747731206320022321917643406617890021292707316774487263717137352587145097091180230643857979518301704108758716212427429802481140686855309504004854869144136432772254306534417959881516264188227105458177599695274862350290312178210444387278466414720741323170526720144631815324335123237712919359900066818172893998080299159713434974433957535657904348544784160361561336659967699281916510896612913589146092011737779316262639523066096369166920611697840547593186645568815186611596171284097845892989377518161690817139420329930523871017784563037639670047802902256294523236189070897616898969348839146116991563677626839241143533519031322119954690003833583849265648606601733819519018866671375807374881592681831387339305201799861659458781538442458752420124109201090412876829152190695879413744798718132245545882810261790273717953652425193592594401140445348616811053274651371717493323296528938646812675804452279263781227787151892565325814032226346654917661097885054089710825995959803022654490705369168515324012966750907288989286408596495872948880544482089629144322889803929177295356438432448735015384538281347404589370372602929888904704309658832399255776982282526782954608936856291379455050598324103530366285046655916160589964417722866008602114709450482839785386464336138912069662466370007480783590699969613515460728440083117759720441927250060462475820048024494431446055863809732454229397669620209727888936409948845460480237321183999671874944886507996084652396327626886524420006653497635979849257610715906162815336621090088788858898370512560466974230383643834895667997192014279479218253477469430151908242592385099953503726563027590501065035644834473666163040960602708593552175107889549391759857876150808162936485148095056211310692127917704133623408870381933558720424624737348704938050495185910604375183861196930011304366850329353189669449326351369118400323004416912448327927508776309253409831321514324393189994907150435268222252918387580476464223040220571943709434095562593364197583928957877523258423483803169100246062176057815735985915794985138963239377928829140127302477651567673668374942862182546271932624364209854148798683536417479270609936581410747116176703452210296470350371715171404871328504386105731585265081141058308724459627392575758545795667975594116105020538231095271056112057836891800489368004181465358674566352426481758988096525829548601891459843291557703059344664398303341338531987810084626617220164613440581481696077416329747107029838554489176820956170255701840861863230473633324259467612911804231737033695930833212617427362661287130988219529691475330393950172620025575013683982292583092685045851241249481022978431124989911851388358973671565378811822325324975533977345244165973083707259849651572744120587891496653903260413970121897710298415781045387549067675229238146485954425996807246752127904260438111674007730087099672674759684970988631865623563810411267503994378583860142367962247865740496369823918664217243822514392375112066307579453052318251513473254207954994818363115403490715181628265036082221199973139066315330155253468200835916664129852771259749360134985205421903461165750131987750539426667247118777374840617704316231118096502076206383813114494305459867581594275656046736128785060433390919331033051566756118530767088757876031016143782426368417746223303578960548874292495784386492023692973079276162827177963107610033785063709241845711460067602876455490186954009713420019746128635137897659775229373763517380005873675278500190500001717326623936185426094275017097591685826379462762130090593681831481245699894829526911167234445610765463659925405523064034520206247624680876050945314285170694414053141978406194765056687639233076692898880909513120137219202143762244694014641045799318473098663355659125945186702630803415821635871250479223050365792342617612267350732757831127974816429573904801890919871815766486884855849098188052914607571668564703183774370098998805897479320238749548339147633731120571660604687099366927049023407342169043412139601076004968407098743401423877909200035543574991034129620939788426622869195856138278793603689618415498461816766831494675429674149731758450414165076784781464894223388299923045065825305542845976149938279586722513745318256777024810723860192867395055610911169601570116558626148830984298700085716476491640861629793192115689812395506563072773746218813487304760123842622613416562095414622653936542252424601235911259612155936258453013993577192020267023534707878585652891021536352499635824387383217129303441690466081317553915982242167899256631438841487181477345886832143992394279932546429490257511677512168076171136996665360282149389944902326423658894367785760537995334121152785159867811356657877129172382891039895017346093242257344135087567146826921887631091800170326000727406201050003170722979631398218882343129077031476730370729626394728874528967163633431830095608296537613052437261087767000658716970310906103383898390158006077845809087915801770104092612764585929992721845144761717841632820968534614577239570184945845782312557260124755745456552882190578516115243927676816928182555804309982318464556153508156486107178885064162688944468714870874950940891629203270273773252808820317139378419129603137118591001029201611981969932335214911049125157107007241448294285217680800504443549826793053388857945416574366808652878702187971384145215206520759709767697450900252667643611907750366543697932730270520973562564240003592577444386411476277738871451169028589516762277638725064436156596243226489670177944693390982804851648644128411122097059516358733247018661640731420063237958699711767587219435335099705678766944123240180418766386962066103170659149465778071442969834391189920045290142543302531081739477584273988571025759673704366484928947124890292041546105771087043934891566920624914964923965729478025746752178563419811064407620329786206975896176870491776517616683801646053829063930020591843198114112431779768676393858755042653503178979176564669695748391284539380176722451085944483091348543369607366602595844565625935454736604366706298454881689762414967945270543547794793084190108936323076914178002531760372745696484415262948634265158911589409272655430577997640991920557997803362299191999220684360379540574009670758031875092614166486160970442535422802533340249093208594377412712542899402539785029613638190173061013386655900531231320651465099038688022514485158388512217355419808187660610469683470224882967282473376155064611835262445185317867779225582303389283590364535495228254994013658298571160581989561609092094894379792655789150271635544921940143008560471122720498897186792090401110779200778983318801202358763551329206680527784583238357364092826773408330898547131120463208416279740237762249948413562975969598171000149114374083459292889665003948464733940175953742624673626371615262713779091765258694958065639842687084111392651046683831356701802214605864663839515262816905727415144762874955645730072408095111942243399608257679921659202838234061051610154220447461288017715351007000307798956988016815187550000265045927915387023591905621576461318607511956412804409967607812456498360356057609267617536979671685419672791203175247051911590231492672661443556528933212287216496428754584974425350153408732341881386384446742358027044352025925641208534887273804905086634771190229751767442449118216387128529494586787497805534401157307527747494468649549339532016078686722789461477385749429665381654456513845534203455023817664989457053288801325575828358557989362267225680052967568408966213728047529659954471518963430068246705912567341217811941055329667352343522990169286142858220486499421676583109547261128557310441450960970385410754089833408401771304614089477299833441940304684453652596973294971394072502190574860671796019004866182326460083186425940408343930768445733671485675187332784884377236404361988743990863193222031279679013062235974696467106421302325534920447839770431866661873023003208198366278741104625837794129521301328889681024168160976411008700596584904401370269749425606086982371178464897595921550137108253015820237549241528306303802238862354649194234432224297629689499780163119761142772528982188958159630614945878707668175437508981007138892056111799223865070331937471528039601228851313003565949288140981946152184980500515095110694083823278904629143956066690052075082314686450870394823107415668015611024227352083626541424241809567833249170842094663204704441718269653810155787825759911310268046273912653142452591533191141713483957999496912150515762150328628424380621628247618379178079884715794083029414452634268706804974228601306829620541217885141165240061987391289444501082253031079486712533322423502762294090570036583699793850155351354391788862593034212803916610813743910971198515634325445045396842823433272538833658527328424527374259919089379238698534092151348217381948739260596609496418579367338788814252215276807179485005872596319596237225195094767058411120901419168100927346808574049997844038099466951962420495989603202654509775266947211841297881488141675764861873711718228890790356963961629547030830771677153179375530966750984433935388246799429187808457169455898582444225195300066117784944802522378656530566762165190193106617675222603999621561571009205061593251373460801933392810310793626036939669997300025397815885430080280645164406208358946147709495890367412120633893785174572489692744298558455687906822062523722851966200604927900291215106540485041875673090942769108238598087785948802478780601032365966937394765920470660457966486868455064902134172209476618552732965350069653713811627904050631872778003014410613062075169380701055524368626493502358698033841887079927835541042291682669634904006925632700659095304610053726368623912593020542103370190558892445295387065651937102514010772629189056053164217603390142316057752108870908827778245754021365830151298539915727032927945764190024796329001164342915556655197435902956881986595199756073305576151486423502358183016828619210507645731736638026651796561186216706141809490707073501241668207943884693305635118885972110765211500798290808251919858555370093779945142997577487639321275439603463910575151201015682815800328695070609023766343325204687147448577330199263058755414917084365572439637170687825138410151356510719213243927049488713134563214244607910696975730879757005930990223824235920457354805050106574662893710716183507405871294694123793854703241191669752034350744573106537802424168591497998346801668659520088605103689759041225181164512368255623714348118844759628490168496208190332087140509248599792278035262395870981596104054188851285392570222234419088459091432170615417869384238591942771771876296923332709539751271651137484021179889274512708335996806919864393431644414158990650969150381241916102404104682128895976628033834921855799120524602533762411502360586755618100502515616272826506588469860305079236742755164888874021622885425469031792253176425286454409962311171358799583018561250954147767582913012624849657473952750824463894638429313764932998462694093240442383137305271383091768336841657855184635411133066792263941071284343206853649252635061749831614466181142873274296420809642233625003932801086404539529849684878769181679006880031847832256655058654944874669368554403431778804701516759457909407741301922252280422005743534871753712826076695143905756983956843741807791071545143018173557607436587725478179655079424655840169773915967789196522620899280584615168365379113309803466707267342456361576364011806331738041076409428998819611834511587582581978237929486336131752765614801932850797761340643122560573168349400731069447479988375054455076879278700320526044150963979403720406351446722011227224287135125431799850126630213421529536208390724550951431858090363458315771530971351684087766463420428797781317297715627676644563861735948548268974743012609793777472303742954162272939418685010567003259430205300630894878559682107781623223969351726407196389710137180887995427957805437393433496879528150753566058929498192369337391916494358284635847236644784835043410909251463990718184052914386360907729257461487476095276319098535256344370643448427884146415820058923940343199370171938612135522836982851052258426100640362047415788914713914853940862059833605883533146651383177655164603653444716232400720380353888141730866637545297905722399621628998709046598420022267790142623500308618034567003126818970836652020405391437394844386364115434849806222464247002896549298445626405239001053703205040201855570386972230627973547935028843981276877766186876456166128192045824621244744205035677999639989332203318113614329308036081284525273461757804338258463754362064890562719983241330748456677238786212289583305597747647091041217775748298434746807352476695506945108328783717222435859139504347855277527812651442548860053397652857688575317513876233285455960636552289528010843427524382381905971899049749503280382004175553945642248898719133881716121196652357128643154462300527271753638987580182130527684217059172651105357180379550273239436443053332588508781266671685264850103750690037723134360215730129250426776129872985891301403730323172792759718947278021757907133489790077684538530602769369784486109215894901057329231024675411954133131510490840236369347398714856890201638279254397284325811916838658255684694534920175847907387592768716108234508653091903646655654167017189668691239076712603781190389343499409201194558635846609432015136269742002071929034995040294410273852643694214540590711628818653128689376445144042413303804899527957200634316212326402228017077939163228544734010148811879594854371386070924032164262223317162484515481247097588716366457116520388232531811371169335841587137597649499078102581157638998584543243528736521364708541511209435546535453550035851607580397550221957808147961934709981639959931481611842541982517692205323911669449614626850086429590645323364988740057947872803164060707141650256800657346250980690815620149993893849622774084046714714584963932502052340012286174251821393071256365054800888877873839621424355789009536470668606017707534899177054298996163418995579228337035740110550847410010207996926070291474315975476346875973572505892255478222248884969897743025310122486681471693376886949821558614214846746250537689723380036254601454525517442052477849673058123035220473211535643107547324125228425663532643786033266165039622503148804747357752423475856936650881741688006925097617207696481853360057798303538453075933515201698637873352160393591041980248918731686180807346895235606851172790360970908393358236760233403778090909747982809805259435083616669488559967382811993581012156400181663851941825561973985034618334584582636358331190633083550667135663882905110015095921894714378276514017434001167939031434564500478701598533073869476236954032323125867771305487286346439168854274139620031276509722027258681334237283620519867319008826422854220382897666405966774680993894297380498954296053537766007861552530561404727617243971252449469016267333249505416389510505090138725754546436807868571820006108232912821606044586240430342889567141840202697430741508840306587471311484448786314132967813821007289177159531782763326845819889050359521994579915642902085995655068802075234410833012451469796904180359027572870178578264636629839486769059447543030122660983289389786982575413495566464615070571478449878266632609949176149244383400160869013966460047200707479198143262094402794845033963114509902185105481173867968363121989106611085272223467680088069771369132932879324280216961288573048645894653751637404647086948483288412087784101997764965708666993058321162063888900535147289030411359522010949477089812224089126599101479087172498512524586019967287767587005502666406380739913750778438890753716221943995665624712769191240391771965020837910885684072176713041551007474463301442141116567847612190030461580902977741579974573185992691693188000739445668017314381134263011907511581378064436670878469113782750642766670605289825929169225290895166313129862615946157447678406204073130027425315344077126883502549617296907324656155286526822725920259864052286908312181890070886911374873036974769319386946256871696703925999750514980265584250733571600943580156471260698414977272809217535575968411154117232277574084421281941525818017769341634948194913708576887002520173328768947699680576882616726510365437519346051040474417933675672997882729101495016390281143631615928042488472421621612171316193572917671692026343792820982038854602923584381229020582916487156856837483745058114134806593167557192999984415028847852296298053663184292060980347628550851119937536079515637463789654632023143349121743574837755893258411097132767980173753223325704395052360068909414853804900772151673923115481561444934855054134281605634656779331327804933726130940993587435549854586026277477634220974504498915744486952858160555676405347048178116362015994353887531340006071408865874640790775704431165439824804680308777197531842222379989289178950412764923862471159567903443458813093518536855922760016469235600263253979124509577149467960628909114185192850751594652690448338023497064096789913289079540632404007698383046078011684745324976210504798857230407872304826136321061165781080359360905252268060937006732689297948582058746424284134597766394374383611455868241885763329959272009863142431406174310010870910379047240405708014340994232303177531845744775784537195032516311820199623165741660899871087442591633857651168538482776393045490846292191442434320382866608548208757843937754730026746826682942371419936484693333977422888758593764892224281440872784806674088425680489824686988644546352143546730932403162671979571068349380318264412528531146184230159760054241737381330897976910378113719513785528762659527372810888115320114131433368805839261122846413792451042378485201196264250930656318840921162081833344233497337111024632827709133233784600227991224215007731387264134403005683920296249921964147899635208407358571122617946533427394137296093200626109110576813982732674881674575619169666469129980937359646319662070390086712591685259920799008030784484759717377996249825947630689874133165220278708996590314833564453098496234409194291838930758244039697608294381418414805399686629659062900850390933754299629073162048077879697532646839941560793658485923922545742540971139818564586816439760227536586242490069036651020537675250948412455800621779272536221635464686048119464323370778279827589028691068792192230057987803107700421703725276879721819062375411136355024298914750860284732398612446012835888104097392460275403372282104847331328299505649044389986221627927743742794116293518361511528872240844060507371782748380950623330756925212402877371207413650676777263558694023264261092667619420844605241671824298655432766035459375910328039533505925248476070915128810860328169187310314897143571554076742362830989482119319419691535010846853857810649659438447819362959912762188912696005259372072821999594303530383205028580187347073945463935648024253270322052397387591210107831866708338280992325495395296723103375453262685117633237035074341510525975755388549572331868746665874416620629472220646814410795796292370868171520783191088603801812010218307869808332617525845270966114841647401497530874613201860527351903414543189586289563410934128626296247070137904249639432359023534983701109454493222668730175069385669460392264283325545699379599435039523856199089550184395523736016362215989610750553531845157568921687352271694570210994173859119115107643315261222560132179024339880887820412820462491070141975912138359521031994698511951525140960323216318563404335019209503939698114367957642360384893148420410666459876545618727730437745797895361333263975662510801895771286426212984697016101957229927221820029144554569802575533110433795078599214639348593524429820641078326774388041553987623055869706538359805254894092630656305995641149683234950534709029261349181606529724241337057693908361797426528894106722194714327106803150634167349928268065483107853077333154428342586692667387198828875830575323083999539518825355068636976095963359972141078015922343979925833731546393689904547277525191536414926785999764083059900519715094813839850438247801462193443998715161688873675174054251917067704374303699858688871018824683954348953375851490374729608769416676336727292419809581838263603301871042279122093726419802043910407992581214705872406183650381919575069973762963546853593497528551986842174534785765471372786006924581581802083293337511330303154038608507363268396297163344339382667587993159719359237051953882118237553747744425549601385738276430658807306367688623992119446824615697803005297112593104642958503157856222608226456857254059137122320301158021708166834694413114357856301344128541355404606182425357724756525908015868925445816085821308083050172558001933664194214691096644450632446545085725231712827109270227315050102342186715314965796556809968284771561807915356936984590316008732405195202289178349738793922773498012502012597980992499017872459902179823646138094895436369401784235268838667622650992633045914280158104042073932575947663049464214264735292491313408450615839179154345060689056092236987960241586241321037866877955250282522541052280981014275371669693404274240051746182373747177198205471090490592011697222378676865009174801254653970135160258483595077560987272096858777099530851450711960981406064672549432456297248483155792049192294039050584372017341819213889697037623827072019778260366296869779428891937840523827755426888933551957032464817407549015378263917648836500659951750521103451210896999434686917687195629341318718133365008525521140151151795881044024527967406144552688401498814348932020241862045018514663868943134660976752187316864362055872359211988055979567188126136303711903994529364588519422345182746503161824549599003756541103577913768220860933623961116943493523192579829057423143310766709008409187951541432186559942442249399903956338078273459133548152361624795951193892588538776028718952993853469006422125875612543346752604420818286168058491862954143541218379638544993781985632589209897281743300858490244048999154904792080138093190070909893507615000931152565393207336292257353935973300721388530588492182344892854156454788480353442795298738978971834237722881790481487079354534787997333236315870163310818773414816505627587357578917206804492828985693540223340305358442823998519187083579626793276746135676993784368681537866073321600570651656084159139151347477168659409040508595014519584597498442012312206081243091029686972438717283154355322996177681931063799143129443204989763996897852207060446264158195007965038593261564470279995119512281428945476643241613375407179312630316387255343855102252840945589153207553370905581746244091857536939929345562261922919166309212019021802097528430254792577831156457161724662113389053905086206354205873365872893562072985424661182179273523784463848186223314303083397849445000651916241181747294684907303436301582048211198641907566353507228354701054628532309184413333099550219907881081241598783825331034613251905211227215627335814178143857846846351824767765556071531358037299089483080924314995061600570903818667890483310646645707929789693475357072753334741646321948607086183173992707175653263903490340975612454645940580352487788360233609599890957838922704885785712770622725949551904019257997028454307905736066202794031547593313334344525391930648042315427419391843621692625550497230975549976029042237640050973583621863619539337111560019429993772873460120453242952065822749405841532270252571383466496842878685075912332945797309768040463765323819141165061972448493553755943481054137096989915745635867874097204787287832849158030722300692648404947070043445142650846569719886474700799232380191956950165417634732288606988793525929667898066492122499861452556244165402361738662729836708438702073089007113801261215719149379299548762537809192788324564394213120635061761155908358515713593772047008094167642289105535316672584846689384600212020827235552776057059280306837894816705590825233204226482685452925050464449425822230079062726788882733240596961076581014292217992296222903060575562822564957226880538616468471951045226304013931049059745331921028135579843048979658847912690262020532758738769819635079835334538620087839025225303498971110399473457688953363829126512211425361446813377775369836737110914675552990296048458269901426623553738138269430389068751988633236218000464415649463959352423316911359721102178075525774398849314543362271853890215379446203551038520548770322534732026188627128663720431412388488042839741749592841574050822757906173593043418781561699376911770157782041580973928584373210190610410011503967462767042703004045968885838877320179436102935943368914915610515119928009873466647715486887576632801455000500843063247027923450518112769216087354178924796092230721277228140082537340341542839552777438722535955797210292140132566003013643389771514225220837614362103123219743424358110922112355917218021802637174342378805220986216146989349835873829581491769535787930614394612232203486722636642107863851173921635050934789454865102635232970466791875381464564638335784826658484763571237840424182926848911694698097778813755333436864950865771342902667870844472000980314121492148788167219592634508357531313146053658510517677410782316911240848600015781233371851809793131768633274166936155562924050901546637502821191822374948319200174319481406037779746555828736204652979952256725449960755642606027102357153330402169748863759058543222563190710650689808931733711434988768621681850752979273236154505217537224749189448065285655238657957418304555636327563942354532761075543891336809909209962475674648396866834510265462321492999998944685811879386648341273111208770662931918747310189549477318551065696476408512055154490568929387710026329877260699049746161097148587344595968027782668345710833119140210469082140344202475806663407298621981843190639012729717307597487221712204003685755272358489606021191585477979668122901124574249692940352252205683083418683165725931887036929043303672095540180665899853102870117586071280548915859188572715314482234764434481308522426395935065068620913804639070896053387852212071483102389361536009538580625976273965001081392606347329857635637847106700164966860423651610825186499798467680979652910898502039826406294541582193792961570714591049813117273682636942724040604558669530340624755528056370619915292573232430236204139922967200181745030185370425172726339859602069382557054541636734057340382399109178920629894437560029163610630558113628891134422243874772286279430202375247293243947937269818216045654095972560219189989467780594341888209597717047804475973938590478304820810308070791861449982074731318203675710038039957731550001940371425321711184462338723141069453077976872162766844992357728367440242664250332425803965760404496425797097626452982193901054517926942657625701574070189362756193945421041414935540484994804217940070788947482619385472052299017834691379978484093697608704913219779888296632541815482135814019053633369233001226711701800015274977093799953865294416798753027564190707900483972460696967309696682810971582388578801468365338727895243352517393536244569253163994908696227133349299679472532532194158643323424570829411966487547809258122224912341613605844086652864236780760411479650499527677496988468457806309503491472262093408198697734263437954627864008841585195150922495263287211051785720099623861745254789418837867783198505167922471627139266412526789249979386385527462762036667669017275758739187741366929938178487048695607260514435687316681979168948572301960448066175983686149827635870012484533512996347012647434885861691657459370982696240145729513134540231235873566456350583416052671535088078763230688356766687123229266899927347152422514257238545143875194600165277765938687075864106115377580091479513833168922164631123169512716513854025555818095851914177198504510975142468122621099084285687930726817303893874213343845773022671298535002267797982195186826676419289042271155935711805038279963558735338353031390009952555234403330447417759011582525817357031979593589423268856559861999785279324583665565849078805955122881384175986402938172931291347886803967461456313236797517309708856152426077042390172606903014479797290281392121997829339995023885974848489484828621685644751525472864295583588219712132452498268830894930567050663426725847763508317339222509360527154828104309777624956308805855422097418861839202748597599798128245241274441474788265269186358356157200104483876500947759547734772884294896715106715920635038664275371023683673797581772409566148832831406761018925886667822661518158419407302726744367699984058908780344476709478740701702489364609788127199313232581596644274635859795018903735988489396789786803053847108252139710912224271388594237361355585914507283127751325465155248557329660307798644283601374045976219865351071399046841857717153136551074797359809352563641909408147850257140225054710142552960400430959789433329201607090452558138992071063897180972591801829062982722192810063844137511497478812088358898538746094581311120986433491257502305563890113018957143818256522672183505599418327077074978014079128494425743915536260274386316649863402941166544798092387987034870943630451074333208801792974197680440906808719792911034064571424171790622646317385514248269920193378848944626064955520549596974079348184594311308801051524420216108949212006305080799079018796201996567021253724666013475148554721130840428378343768483398037605126665782295571562030453383702004705787747149136366895991967153558589523906786096301240588372422396095894109172294128700217754145201974754238070558238751343008788454667248615982448639397986157154679231224611120954300290712496431885671832805463865518898476134574485850295074184743557368875739288663596859056730394062058034479175425250906694471328037482163971053044104869684633723851704963990824254537799704299952461151704664954600695669269217446527573054746761173758475545684099664659016266639285258072258098362803935736810132928339085632481715043204115940278361592560967756936170617808969926992930706158364789522819117577529040769391917754471979692029729125181326180874788425073089625914490817450675589987493825321763377200061005825153101034848482504761530057266550563562066143637722752339427834063096342148149516118692256648023394001378065191027645200426744783734163645115476544962362390335925421182527052887674456388914457535316405304170247795890449266490759073016996551839358862758989601433512576779815472257877814790232914989632365597108995912333542653423216253134524127336796696615963748865318527619999730776660655690657182968203419526716411369410414768933062525499661618529954581033365718716050158627966669523272863822717729108095025937790620849386997081679995435581038362787961427925618847237741110362596854252347271836729266388022369104530029675514196175558156760900990159836169374695454722758210273046067696974515027552015649502659717749623796262690418394772859453086150385081185598640767711222515120994338515354733632116894086972521086345534729684130802055150813986019437371634122324723394340856938287277957599894466686397474474423760432536172338410422237423198860478999071523583075810007981448177016178207161039913896554002151797515756949262060115932559658723710007340796720201203173362081102058548187932087211749341419147836807712571426641807970434751796836900486290949958157369697725854825245143609954348478082683717622652094316023108643293194851259849903888960622819583305940609906325411386525858807864313125276604327588301161763564394366652653633935150732446325652711852368088574180774843541654935240095118704478049903513387207125273817884114176275227645118065290479190124028468965424488999784510970384277221676906759276004247051391062174485361994857147151705021646589768010700516590942389092469278601705791632964313248245002161604589022410384638980443017522901696572438196348208684476771555323388927426545018110472311649798630625909727054426781809185888269703571068875510364152847752663117576798088208295346506461644675802749320958896405913508860042769614474372812135767652391865802168073260105304484280151158279264305713842763726298098376773503558045135514988214441536001269477672793154998239735541221807210244744485188708725159588053113956262681499147528693336866172681681103280305832093970750804362946532840622368340022241128202795291819111116199997206142468033903213486755058314380902055927076178078284222935073360090923070004971312197281120358938272915389919764369963834782439380502069381645366133050451190990830747013931326230732545369721572773387819159226252613876883966947762492633162527839852381758146913458008441613238574872184470797876047619122822171266258057357363823160417727254542757940028285079289442898973742463460528078540718604054535265029762335186679145005337664107634472270626665234674285484448833314308385144413623080407305657929491566272871932203761052052111749463829214974637353352642665597079057177093835390336504052750672722525584920571290540282804644750627275090284622373073478344296861445945026762469001083092885388920536718046124989800608214800018576327123439581779723275446399553351948384840394177431629641576826983408737599861466363789754392936983152143326496504630879753849166894564191493481695001845174051278462694078341456220879614834867906711888103076562213058957795200753217116271107067746766004864453005690827851438308167549918284279622467918641662481369026786608088357624949872958947059070991705910822431759192761850722068268588013565327762855860288714947203917863764771167673358762462208056815329782284944441110040105890073401435448713279107986671808361819710215689795515707069999880834210507658673978782386109066455441351278221452342427642782413350801777678230918180437252192124707393209159010170741823174398331107942520613035247153978040929119783137131346789669306804649935319704677788519908179162600929772808189660979047485931772116662660588522168966638482201363455914374496953431697741845046702581006784065162538325850401486362708261694216983295242135193508960903671754235592842071240127436776114903654060236349607977451937484161031390534673507068970326158158165845479961838626361986577838032175037434442855904596605277449033461671378453104631030895976092651789725665457878655937238576560796710357095336031232754011697853693832786859881004278937226452999312547591550619221724278059994490862356195979290274697889230006184169994173021437388297448901007627707909051703196005145874504390006216027916655607324841959436389614859465788971534502702992153314836088189541120623651351256039657048297492762971301220183428918981186215824338092401904088902779119085625227879186376556085577168776162260050356804639708114495694740655676850364040342864312424910555460033259884645049278478064191778944958912050468535377948577681800375912481343438061952749739822682608562354909768345168334811263114313723447606689298607290628782331748400083994060081388227159174792471192451701960544290679605784356545734653825083516537957181499886161108499873706425587607685741620859618288730569138324965981104826137207947613760205147374860720328577186167617185965462994513336875976962030991724740711977222137025910598473224701285662815607343595780861820184997627463983442233780658113906452092546516102969692306144770025848154452478079311030230297336124951137200537984216148226180503666698676975437716728058560160273928895980999968076798928761810577532076343154701191994498388239115432797580117086717716307744259150502395315510374001139071872627460331005685841650735586546050739697343448645853704800178624823450065298720283554895455641469629069717162016475705175802872096680939824899707173902138700713404078634121162985935493135214289419429010581360833993292014949039720919349686763842548738018169015944937896984322107119366474836976255734403018763489114765593273465386418932257165627227064900980518289462026110448541888805985931646337435274171327841337448245570770396547235946848556279698293978524280645839856515704822848380569381127413594861859747027242560967551659132572579855966189174540595843227255504621011233313326366373984831283553250200517909338979422339665513721378061719922742570420485883214936657396247516391616716931727612207496808728721928181793645411155524793528707962728203397841994934042174835562935324403817616314789551719764697734903424615744582237257285405455346247997056344829834080928970322853187080087285723219691365796299250964825891514918975015390231011212231639742347369079352538726285616761360900513270968391100342965785809203610811795084167563947352136201460426095142808073648559704865933365100358817384597494077826582629704243849696343015728196461870462447293988177803221402867788112988306552656914693026620715587440115586955382138839533738699330913138052040858252931942603026260616000578298723686283254247157599504295056920207056944233329133602368149162501671551613160875897667094719886103388944281991991399939547779708314076700890671993613795194490076362869386694870831593500959578757303311480437121829306162151693768979294573300895957347986383355885387401410566358245105368715865674786069002841096470355112352337206362611702185188361912258936311607023535084847950462748742436299038430519036686843139772166052466842871973421681827175197728313263012576942795179464728371423813410281850235171373075536751165494048889861711678404702228508723927414468023933067875757444518343018754929422465164211517726687619774957743983454257029854029788106654466608787513270994557259837009914997107280132555018352115724190509553156743843153529007600427690706656495232856815981173565266206880548700366629253466319586496248160717615304706887355517988100531113506692334865331350242219275803452951110257906548657691870089448080046206346732802491121064654734251580898282012163005957991434918771291669848300246555470814814155673284167447979465844418511548154264422488399320004452063682553833379804661282905435587892368235403438600253974044058100156976643306797255000200775265434562172090106410829600397887856729801724171346565590650644570715528725120134981205610185764988748866792744901388433212600495481212377373850249323474414468758311098428663399475634743264042574682265956116138108182667809591021477812496471022242325418962073975459833129904583685401219852543226122186634621408836183615930832725409382999773396776404536794343498666096293788253228377896644094416240097946761354379797791850631706896008381906169691002137642905443648703603805966201260131040822252049968260939175865088734582204284025787379469763300689770434776848050210307253105714404058011610750312138133084179568395484143290761861507888116407673609795970815902643227151900908103799826733903943682989509531976606884955959019990903227024432004460822477827802866405139787755915238387644791143397008704838865329391839801320035579949087118865638261648627792976352937663864405843132268189830189902806711253469932078989085010087294906642532489888833752942794227704241920550116466860408983712928619702212251112647565262601004067795125298258075590558252596888364996368377814995709961089950796961165946320441789317673122442100419479935334941045065636819426087445414150257003138544746914107080304573805847135879379795640043375892953033418966581604103182264667561378747061615376510827280948170348077084045918056508909794943795393645916657666919177130947280921691076209601216336813396710699499465894012897476152702468895188964171343254723312548232170819953369995155261101541099184805196098162819556977590311027340821913449044579985836526105002953922717137030068190272906584430096739833454682259180064868021562104119530059038070818993583560540782195930888708472807329161728974524690329165270932692473505585262917005461787599143692510636822686751169354396034120498122545201307020371055465476929153884521271594000156487150971541783610432098568578238141630865118359615039088984039128479596735347244762803582717145800005473535018794306135572984040070438462850516080284036617169483309679685288660682499895704288015766641499222499975091730223032137888026918180881563875917504532391536635117042145071608057469792006400098342527245135820059458058961322637796271232137511582269526130864572428522017442592701417507186333904426885464426739604026250304692357521878024915029767752139454942524843287190264170005290154543468540071299828964199498513046396688067168416549864350293693380523886844587413470396054771638409740054728524976975965598615791257906904099168230973906796131444682323667099347991854096933659810809066725586613239185952928945465274401767235196410262618973511065426585007038074590419838513724667209659249724716820205402594109135435193350690214361828998942252793587721809668286526100339195385443768851220776404804857506335942312100262836480530540583677868551745830132777334419370611327179126279592855260057345339976765425079105007146470672889699983381450700540567860344283254711890846624792640587509060287015928872038172208304222072963545766807411000709405350978111693286364303635248559424151842602093107140595973254193569190725940958067557528561010092662060586482560227232687488599309090286938593682484449249489707045779532485362790624030732563354601679956558116325764290348198119352439004980062789349231944698946608159738247992329571851872753793746717043266789866012877277877500396789328575349109828712623782554465349738083475336221035461313209397111842713818391371595717495987297734459797080454517898961092696972667855645443851565384021288978431029459440530439085354229767799812588632942598254486317808858989489874505682347010306837916240249715794991354346843684984515181025010044706886637612349696528352644641620612117592676822263093606002328076159248695069787434728738637134527572219345846252642429840051391080284399996809980802148300478792689561235035773206678821001978173326335234223473221010807725437741080728960752370622758859413510480529346771921203364093624906883104188990859498559560953278433836381675236419227902170817123769358740248303969076476846071361075881583340943146871529446696896275925856544902954097159093775860742964680597639266426147815843449678458758866448778127926679072319386202675512601677575372028501975616265350032628637868453581217751972619622215593636056679533916049717550632244214318439263813811146984741320491794082132492409147981387688649928529784028645215412543366647958023109064884363051896179590858041932240629750601769926663454016277836575577863740331603008114771689255624149315351233608792615703872562966430074120407135097946388835751517224893088936382977662608602947600322666829103348269258054952936259027381856544140282643475650523325906052832235555643435361293374478988991556956174241914771543919439472636649308558700987516831461838225618566089881431538608277185759517598581593842110265136920940079930343985598416286176212085945087639074170772371933867364514588235886083933890118631540609036105849199769718134297870378848387920995771071288105563405592396954700861095099609570367532963617907813308795941393250928756561079336196605336786330699710529013481895286696869931820126448297811070290184934875582553934978929031827190519129360097699079630896485638358891195811675415769038867856475399648930287071514668582555515773985591469711615151642244167556684849862937273091027128633241468645464936009498905856024425957537303080312859045277191501754381587208838902067231626620211798371812730965444675204452344704329528804232423060268598717131694772153173345975381744170753650690494492969871246920619310874061245392982831462304647901613686969987072479807999547504259658689132504321567296587157355855047371819944058845169701705863755826114828485602421690245962230241089593825251658405835239599995363555720702173276829101572159768462096505460285135429548335828640814197844073491693505716019342858944915038214487992586774110778016853542800631492257130389928974694014743844157273548352401438523641311231047559839349257414734153589397733312285280826366734099019654078678313769469316612574404388117282433802622093094189602318167342754596230731769245986825075033341022303451460879655254890431373135426355770085091234911578504006167520220064572696571571779172716268279908339677804664520493873832479396893655278252999743667524142191827368622299829854996948506972962321750739564856899530264332840453235202321018589376751559965367772367853312075666897312086247883137470890461667927678307320477274046449226765603120557925903377409019955328435308870041020322633238984207308445671118479876208719214055310457247870196872971629803841530974655797478734001451526567472116655464796503361843557718578349421007490404108813788945142898885905562879072130915816793986752429552382981443060193599097366710105748239744470369659808136596400169109145750805702657642369555716347430783389358558283581929347425518684320380810736025797060260758891400269961383096405926066578407332602998868848624459711532512364524901901315391102350554586536429463593564585952859340687070831267641822208002733421022593701611610571575943157344928851285851503620200887600678334681402516621400039002180227799630551447686916996352892734222265081994893583257273474474493432941437402762659597915552529553876371009343762957326618570337268484782399665632453659598206229469727215316262181612394925981044681605651471946233504464669079578880325437437515275370039344609916905198673801009519559460475728135135754271456081731707738572429600964190778211152956185911706545346347340006454721080706141069788669885265634201878220405019135981132955860894533298756762751929181171833180661133292075863890802092352665400161536822129975415038011572483169852546142100508241526037345973239826831852636144155083124444191638026846138621175244673029777455008135527122082867249242714654916448173090817804157956976228901184416746599034402084401895056342145009566403389851432176107056770343975093705629980332515141374423372729994591066949762027545693240975374855800179027716177252606645037766783201577058089927835465401423119236115158303388567959585655443199772726896911198681300344826301576574145759391335548797661741652105287992256129560678770339580324235805626795219846947072720955160912656142833044031299415059481383146177413999334805890777765229876393592220735339057602213959062172942703139276779576518733839058414775456230762544312284862301568722749357258409708147961855118976693237229849193797956424206317083850385416999969278460014192550650120126203223163888130361866730289549964958598495049037632007705466872808498664596109465359683587303458218943625808646153067487240546493441828559221197619398646643280151091620362625695140981627236214346787664133537918818010037529388832890328689113032232724358567123569421245707091424649129213591795660518619903413227457597745862697776178672442811433954140841797055458387173202347758781457475729610640330089485285382423667000469393090978568494971897150707242018294417497026319227509724767896793226544569466127370690423061379785206379113874660447543472249467272113391110640932288549968931792921026667930323957031006383963136932942935136142123570522649135464982200257295081910694535428771837429126347752366401040869027769285758126554887631650800548873225987680380411301347042264176177486302449026733807859788628180899790294799918153755854246869376307196715899111693409087912317131795798285159066021803053490578510170180192829112922331934449724758492157346181444603574421873714885189316847442799259433814454693931731166416835261928237414156986071725849158771270181065514554095820144332812623894861837845682351087342776820331625721869365474858545780991359431122511168654791251460951515548065255173232231081222934655262959355840008770733872013247470299766428043653651975381132813064063840576079554722584238633850528790015914114413681871723263900263281403850549373981321173320186431897638576719894132519329954416388639072373995633880397388963528137661927409315980063385123756736601459231041175799790424058844159654491644134037207877614277988944246916119751978829685428666576045913523046925545858398286992576034825808252932901378690977046820508363360375965859960834318696925968931742439201028889080150100553538344465992079425687771258518579482071785280770244739521149349983016722972157670049677000769407079023620340673541757144403925857366619000884721359308697761162207934836444671950707869735441259111631270416091468295367873352358138698694839023483067658712726554936115542218484140771656997516259815089017109530469898115418467452149562495330985686666384861380269614035157217144562454604522177265745463202812069518912573504652446481769087954229043590176372713020121733567961184132950206809630167103532744015562649594783588729689781444082173028744327414004995468872703611008619977510818222639686358321758619641459074872615919004367640976437971744319327976796217304606520222269284534766893597506095988978670472163554121880616208939410825412633969811591173831070179042802651972347774552349225367427295296992063987151683042694350905400654302083641937317691359239643334032281239030091881018071691053691117339534633903964925952618996731887988007117028162959295782949668722252123852608778198880328891020423822128982054904497586488066307480252021817748377749857479324842108232802043994550927889542816881845481298207844630875306490885725187240263331480463684176907133492100621547514993977786813024427954145518891263554517521690551528567595526521140310549314451524468778409990830430204292377522639654718711628763107064253918717271941400372775433217963947128373500296678234711726985328998313423841215121045015645529454785506328076808577002375461434337647178972167164116410942824423833331592639241285987733264000159117142715838904382774550409539285595804954841652802371836815366906249293356201508242294668642731430329682064282325223380786435315848492891549065068644894506972512830379489902720740616832892056069011486273838143424640527133877040021066262990312506867818635892034549362454527622875670894870649833770321804611757246680390386175215769755847091219760484583409699331548518215415541118339629637235068813039664358413599699037427199028144602663199701561714814923990284930035317926733348420226465127868079027786325285327172066548979946874095602251701004892143485251954676220416084940813196893695545403602372729054939148036494572976057530852602981448681482510361535360363363495024427133006273001336618534514028079688623740412341616524820263036080698192672683847613814110010448942129111404903505579549229057827864551316751976406654203233348046794562789317530246326178144207531037540813776441360823266679820891502133489450126198401837455736277132784289840618455966082172163699064170385028995921615840699842475225208723568469837625480324858350232147213475131727648317712207628450752928270790789546628022026235746603918970948651491757172775242524413623202093691269853839759032819367543292529114883304777400683871629455344069926292743394176840395766237482445970209860162973969090260055862479356979274337788554005602751774333614919550261112778238196170781957446000734029432396770065863674823482193846059734328354910029672622561340174635771224793142071358650669025668571421109328894897144494812670740182057616635578195555895356812050151801253935794974375329502246818796645367098297161832600782746913478487136058786298851150809417355707857546278548113972501133549451050936692759471808893586108569935128112050267393407890640920303888892816101529635513348219212018585732857369453407346347498321626246930755852165736986474952550075165889289495037069928804448520780800442860888889178461259946892130590831435535373480025444329657813908838801476720373808195241641178999156120744758332085207363454196476781661412160340866326226658481207824273036144210244041961829526831963284230021167086846682525494516665669614548298892128389964292039046999359063840249265853776359074826260750079742189393914924959811350182149796845931031646453888878342098499468669072320802606336393679255976268456891623110649657848714566283524253460007993961975707504136588948060429064655849543663961686568116389707638050885022210800009474837203334385673579971537337855957028157831411436066742204082706465645063911371681497055808127228823095490685473023647543409152808054612620276610534891647902176569640960058821896973297832628607265065689184501327096458459918341043090252941579496548344806153215197472632589571527435123117577200599798036100576626127872647726609430230319259061674966408472375585267155020005042361950778201597506012036308698585184383261973477886467808760501757207338982360219789869042568316848857238924036057222613338976455582233242083108661219255228981122326650197608192902885105450989356339930406754058885839673931930151558373868496859518572969263155689725802159177375205273262841726833247231054399444460542116028688744416989971322995159129329621406939753493788422317000675586418888553773461537800775741173487843889826858691495564546165763659009262881934334638842281630112044986211409970887050192373659888582541914028307450991552812050124167492455849032187792646630455210090420788118004586948495623354666780086848518474377641535625170643879994162593485230613521323147694529121041775431536876977614078593899653924327149802963859384874145020861164077875603706388553137389276916984479901260007254383860244100736341018356559893145421802402524359742506168581478229523115989366186992691465383220028665668099256397946496421520430450384030928265425023193804746226739252234992870957121171259376735436306838774819886355403808228980743950193951053804239540062816107164684389511095253112762504743726111449127354231069358841087110907082614255490200299183745171888012784084471808312222285853350363676563995386107674318013383519476182915456567643163842658566533181128738995936529856711935814566311413542579225127487128095630676672923225624616821334630902887245679965729892229281069098657240492517038102696625727983878891628058257313360453627577365891128848331829548720317610637097596742124061239735561861142581417903364612143236482348856927086013583941933858629990608375789697955794403903995432807675362767342403657005364563990267457102190080530058160947683805006474497694150183649082922568290499411289184713012152741950458812201175728275979946945275422396628793465071818367778568742295365289739004257239795338192304177936278031818140932317717897782061043241025672531249203925880975269107243234835266490760524679090817526854917929191844222528013940023985031067435126621154351695897548115464376396969873814456913533095942039171180300463471745489802655559396502694989623997993052192001832046201779721200451120923498389744726026289575952876628299692355185647127279374586522190776766836437289017946985549044264716177765234616097547146611032723404059337428306300337209692055247763704090023847001768232118088130437049766063910853962842040532233240011728992468710938102496874090467015260924947964276008315935317677009295301536546305757489251173515370025930464253895527258903496304903649754276175086827990502654587578078341522886998587648182152800223863923284666948301254465453149858240816454202789519535050111594475085158530949369889711703973420251575804140098767635292729176708507182128189371197492459990179904611337285516958849148613910253468403922343048246936598488948644234932050328768760720513997083491008016145969529522496371198868253184980374260769238543757921170934958267973168350494397024475357917442104427643046694211468399787396712921724227421181636917777786181188016982647183717331534977012619112304199925372944860605523293617021399915668862909904544974261907527524012656119741201169346773071544979369259892911020925530616367479118933597454308015383855971796187138899263604093698291395431410996460894280396906055880796427628288958831431350183995924192572308762184508687431660938567573302098334787461199586761879527911122952208850943407524445507448559910613473664890391732232601943384245161953886088280138267004263964007819816620184906303566016810861437373437711519604075514689960228155383398600085783433983267585498048117808099750178557160260547647359869422072647712069972561873401140236230494871583653820533273372918600687872551516569725611148051641373813955455208586356683655939651748351084238883285883361706093493958871543784875460367246475602235392989375256542573522372683628186432580210743835396311812387095930902532642025561974964331398962851742842945291051029430370312122665651191682250242976856499335190889452678440792377619659640335473184608048536167012044002999661262414714622031201103537333543878579483562394980880353792742589433556243648756992525413315797516218565661496399137296355374908214695789300414481404126347745460845480054807181543801824039841009215022677561910653774248784839295667192588626931563917164632056518997566777880033310417167231602772335763773560864570270380027339200894697858563457775018831095596841579958608111868666181355778897352828661630286902060878285163644964626694961773406244232948029743470808117533464274415512254341329691341458247290372117735858584602983052799331200147226738055557211496472350424640163861863314045897626776614717643161055059720831186767351213978738904350956308475939370714537286330964026950647139816619394207779885219464069841848062681372363317229634616801290437116051975208038856346405619687954187311736590784870456927872212486789896844366674356366049954966454375640480611848370611260300854886744620048825714832006447996407687888866017928165595458139180949230467644143153330043947701315329074179325654450313385757164119371258043942424923163091360939979371155861225794861327019502193628382313300688701883689009129890000572607311256941827950392016485424546924401733164510266890280482530314524997789676829693594518531885091882597815071710268009485274506074796186831226021229689391602718830878514888207043319398632174732241878952441113023082047380471734204720314126531395539617827519718428024797358003369980891840593280845381166451025829443232406551861425199881510846173523682883474344459188118861343133743026051429110495297282966100361496636390161196133690768170149088375708673969161132506786341234903177458343642671447010238762497205053586298208658596893279617550742555138791697498785214678595727096902794852755303654243474374411441422012836815586019921810589381624954744479330312522126603970101778926154259839665873025994691760471580366961984281705203664823819724266305581801686565555390497219065684574103815234134731633944333150768710049082272017037181374190256716296729964977595142433236464761093817565803110702443875679458163929172894862083862617260368673570718057431526893304615547766827192201738281536160600243817120091888765410993655187512072432474422138052530921851169831864188772058001280707422723285006384603437889521854268534221510437063462110058872429686304952792151449937048503296039306927593162850906707757439748924810200778536502278696885528370513067577595003655286067786301841594051221803315595895891634307630773600591887632152370196348291496842764772019785746322400079944292548231344683615595415635679903250751049199012364624470413596675891260281363817022130796757515907724541112200372302499542101844917097515170092324560975159702994994843521217507615079645083238952230900772340995717735702934498950104768369275609851562734964231574495743709751087860452402089546677679277255118044766907760219229576246673156686176198283236406889558493541317848221604083806387242951005703279485299545393009834174781329214589616627466497480839078479764673164938969928447255337134109080594430810496071560766358604835896923190426914618238993813479931058781549957822907666111510821074358729621879689277039331313356513535439481869799378014818622721848615795001584565073604208094858169993683702723065643959440984562488489092076784707667472264946718542004856859525358145749174698700351097880687865847952530606413160591186819277240924088217983154407683141307121617669352095278468906236963053438206752674129841376938539118191074833809131399292841404464908030576233560952068871472464919530212546818816634675539422039129162334882096345332326495971978083109182257553913529334295164237471111238120165221314548931426116763935552875191921903375054872415317428000086529002045279340305403459197138083150716633116293725419629583148513335940241327683901124443551807175225118269913675902036885500804938655355878259784656395500118569552458849184982048039708774692963057064687897479352820870289094322939002028218318930338632062041220888321445661972730615935126285910379911450634727833825442038505676666266836462851949260416978199658012327937667693806376844342334731119483683977632870789340269763806726444337428027609310096685722462525601408950085869678605033799099594376405990497417263941199619115058076210992473491204737767060439693400548941146666112542253983700147720813585580476143422045714980813200170033158533105713126433980416246496118127824201632284005869882741788351707930290811259319158079070865734024866508598563989705790843174165415732356928362973745808576571033850656919984032876828305214582351685406252210825437869621545574073149872683822506932502474154805684831822501443441120784445719573028215157838754823503393138413752907881281216578880661917939442152960736175608768827073104301044826072860935109265069458088691863761713812214745790722603232715147902226525754816170718006426809674809579985764657771688426434860368256931636853728078102520332481753902885409134853097160350595500419809047064524611034417061116967510491366247846988749723421333169983362774502479517199793016391426225608220424239582118220647116758727003692128883692421461249986375962424669934743256585417098651773734214258388097401466110783636672115471557695593782581095766349253308356321285921680740145868511655066922102573381929025131600890985430099765494038127589278861307025154513713180892251814669420948262205588497602298170174347920081302510532404196267711034706828876369254247013221153088468514287294849015648123598138599183437646840842078498246382926426212140963093453859368020778015779155446239359835937330482205448684963971743951884561499435544022258913728479098269755515652524346379755206952146710344156810731541510502877447328169024058325666364758825196065305278051110797870092957208636550186573500961424290473131136815906653951469489850737872191252769978261001820143916802987021662958839229480729627327016407553845890260717555210188110138710761996090608258788540783569180659645976688858091942575861675664423997938442232117224149998576694445531267161863642847046872468648991403122708457220804293190117167163610005455037837354642993543436154431357782298138671016263092642957804736831982063355176064675807192455309383188462526107728470772423181655750251231555705927110135196484653446932374889850709115252511490073565592800556516548688262900794614742338545183344159446912721992306223706016866522585584790829940691227342108246083357951564877265632657340721193180431104576367186331000767121770040841423668597911264400821123129092958246545788422200278479089805274032980998019686640032692109175116099308377317755528977597710535691459578129569681852927898829076767839197145035191050887896617763677052743037501927078748911129958277436980583285839561575860305103043742731626158443621875224511412356080608969921950523770671232802951490076328853585757168471141143868721053774693374515043535325611904113115695537198731168238182509662584720918034676429178075211015811728617835366099380774067345850847762063422451410462269913878143765032433848763460922618035515089427739537364966630557363329035509174771654261014859984160547915500970877192265821109234945898700871605950375935809414702433621246147672896085909890213263170227684210995715699599028679472579497352966653021807449848747855726032385900515450620317430800510893856300702983961113547030661069833501630320682395506690564497705841058280033606091931030507555712345002767455243227077259704697882387374784254854874160504159385447813874746883039333045674913284596278184083088213121756387489322450439036479532266401527524781142464194613387200125214241105453680705167964850567803085652015929161753568017448253146334635014060841093615328643395993366551387311941317836449986847670598631754367478834463572350012503438066295271862599736293392116217815659919446979788684031625842925366289573605603157005782393583790295492036319118069714896043998690956583781792883175832433404555388731614360545280545921250370717120569943359187067491564343342550439412074565118138743285706088934298047841451233017450441581584569920286275299061826276934949232622339344349591332673938566335713721079146467676120882716454001648358488592750216811906004376193702302888287361755759209102842086929130852595795024551649248672771302190239899605052165376649189421919409102925471486213539571137831378334648605812111536926570693168232701758958236714827641319153605314028705328260449409564060565985104736118175640415925746759404912357984424063841287473785492092421122288687838089543027041264097253729970518088270205848476276005248771283075570422193458405193976262486523601569871853797996127927147006652937199970170276910134683084551177292744569832208773679475025148714771009486932514800029489900491740354498716494771644574361184625218865107418632150153731899319200980358569205044245845764312599827467807381608972117413406240087608475789659691879014306979920893885749927565187082549122850069463466503036514596101354231136157660919313000135287261626432079165825842299822152975507803316690611864064170601731177376803316990917135387285267436040160847875584637838344552519422217979362862544561418965957339743158148684979967384980285119783901924544626829117285756251653867162119132648848075673742646555369170371075353963213703596644918057728241607061974395239175497230136528383142889573037635040204128680198297682255229334026080468798308596004042949828361652883225540724593090606080245353655069849687375212564461750258885800372805186094048817294294717014537467794333959358165358759307937516218829864338607172057193555721773161616795156378755069011940243760225355948397783680822043109926832927838900142183983616069661808937280650796008656109149028172834687305412610005485644814109780139843148081600162482026880828918666587411281434989237323823980759392241580037475521240234706100441260516288852196781392465441067784939681186437634044844110456271470447037204617108100566489823107414287392887717941432655244193418966265169966825033019009473040544352217851288907535540507093289755169463757262225947373149663140147056892317888226104031106278205666419971872943436677404838460968168626024673257160704417091464647156009781509547485666111985539044048294050303705685948841228317272966464045424035389390381207427647555559731134944563210435744220987352378970873575298778313025199144535273576179386197650265218706320320989661749559425324714940294682120031166355630746009197609674540849514156895591841423725143279795080653417449347773621445362661809326085197853436853301121710778889343934269004533837335021326757206399387551179831964758544157753205834246186786824378535444909361761318244634030192486554203885834534523075419816820210838978155813452252715802711186485745042112575492725043963121136216974486365945893017727845739160220462637244212154074307979535379287667805808314486165365015216567455591829601074842067334799098591645049543185297443266847392686615256619562751430761573597216645354298091365013308907211665178711636908048137532039231691025530019659868755809226474090962901065188592883125134562063746517658536196961227785752429637930936103538412141101322543561169134717546066967001691564728735108911305523781866170790719920947298857470737343161458534040107828381539318610111983534484873118933595530039657834474755934083796920045688578369662763965212481992683185724758553412835461967770841644339442915804612419522585152732635490323174931650068738176213093402903031137065510036803388839266305642205544870654852538115250520317615147134255489275270371369247305240312299195117726037117599094294980272233997885322270207902053418032769859880079244893611699096733649308946415097905905212935422866309981710104560052720876231020034899986922475951991783009234576431511877124926479879266999854286960299444637976317152699217713359396205555615357751396329355212831948565411384363197469535470371900792772999136238626887660008923888399115731429336405571472424242432893652133672112755814808988464601063265592250355484283225347470626474637931371443915103987587964090254190252714748262133206881350236765668606134247764331770895428555754160727347404230814331723526364906249796148997292386138187680254935925093821524835802442238154887106026673339758925441993495757333424688126049571976967248934555291746357524421983216609809348152199516787532474016414697252773778387220491778291707696110378536382382559581151135722826955793104823724572785481880506853285310496343094278670837219535969579646020187769965186956817513292457835974032092519794985379847295776828391564446100779230852044269054604688002262755759361520128612157144106235529342476836058471901211382160834872273125876347767057847900938552288671718660822453329890842281618898031340004209115904127472903212252261914656493955219044786969354349774727874148256817764053280725492252783949491457871792376329965348882122770406512547973833895534966944198511608346797179805046736230606043811551505973301112805757658070153394112138245538194865766552059339706956084010910713461574270834285262251165493333532368841603197676588168213108437776444293591681060625436962802035571165803138641637476356036136847938622889816885420295968710993433650537541291484450250422054552712603574230431595686266835668658463181916852529733947044114055814159061178294629747624729843990354630824936699637163138045232945604041465743177348644631512735261687072076589623944906310033041690999369387529583859231528599460334681750133917959669581418442319827370367025126750852694436693814805154315013309634847992285549360195083511373167224897386215422702912726148093668047767905040693836796176389362395502250947654142043588578173393816556625164851574669195904228697400990405842416255103516430819100632764327331821919604401618409145634055245538071804129678291388614207594302182733997855477765370520298007955804228578691302639163858853067093129528438390583580967937406123171233520627363504994765142967265703150171793256465103145527557810916958798822943538930924914343438128740726451369417802089139251421251261296819444169317940936940029029755974512407563977286384424131822541925576172429341305777877830821714544820414827670092734056063076814270957895778324522546758763489191875924247596354564915427960148877493658913678311516137652954282990936780358616101464675541397384471703150930761952202602174973457287952253744190597225729592740048376365390775328849951516037600247292909477465617601989294203716048443899917778166689244417242642896484568808266321255214502021261684416252525127611432060448405100270544926690690526952027887623850925886233447724127955616867167029377619743843150183115780164290565726260677324968094022304146372940727513022669402498000861058201947840412506208292215615614513645307299076706872153272069926456150469148386056404415037494045196628203039545398901408325392068528391895326981661709325579961575397408975425213242611235622175068301890847255745262445454186650059290862758689526345700282306749934844286555955285351461732428177345463183825133204856858484622962112669781984205935755426423785419865530439182455842307809693091170966595349359308940373834680747498797390077538338848305292188956899365394684842229787941099258327121718645664650773241890659618916019048046688158413997469659800881708773801136448748171946090595997717956020528680121194047372062835195585609416021334980245063706567115035930956252163044386227939789828984332035180643414923284128100098802626379042574666544489994718237414493611170979937872151873688511527707189850276908251946766391544662363812071719416423050402709718653566755607725183206979092052993306434905278254467198340453944162821938754933808729847904442990522949669618573734353724327761742421167006542764347327586365656243967281054694497526973159128323515735297061831854375442814250563076380451466652833593616469055117137368338682686890157884396506981389470444392885245162003321448554162640786095096657955586605403691406259131399622607067639154743577167331001330425166277181616221884130624320292263162132302248873278171823502644500142727692466121512831671435501407914464458580906018330530221377601677925713782652963254136178138467310517696830166814569905610266509349466612209788883777432560391882262862970333878313595524883158433774839091065844775323828472490912829379505571789640930111872789555569831389283517283699625932911095358876414014775712931063327984853267227622757967259009883854457508995029219403663403827192150923055709064694961211112989896017922456947740219855746623201516910530673165669453498702722779016095203146770656492126588827153701087163269237451919069369159950559829889020193148209617906210162751061666589265914779252895168189955678587087148185540033285639392768778865325236033057961180469894743610912488122188108862207735277211110901793602348759781644439542447887723416297693267087692872554002580073135431596206145034904261664886709771984312930504260283211048365084358420979826653787591589602204739379781903198698648658232013801727070708440088303606813743365859895289750828238051562174146378510238670544905899889963225360923855449168411808308078410973581140856193159331170090152203603992491018354245759043220723135692464351011607344125341075182668466113679215818865645767491625948558140480652401843988910612489352395697857239406916352238077397207957272738569948583140827133725586102427505075072725400028385953098502715051654144086847978203636931937738010137565870963013454114536687351849044295667380960871719281783999124668717800116328006232343914538551006827042583433356614609527151587122556831728073586661950744781093887081890778635616114208691199916663444676808623511436799749968710125457855010638720119647720466819905167735981682107325025875080573112737221706413407655273000163333225493420285748810908971369910924206197666251794961077719491086030936815270279398963483441531640823106726736848576271227446425918918618853879803312944151561913432327429694387199804233572301067233944717107322954283439241052704519642862532436112322746544094693220354198014948001643647843531365671298182595129803510077882940679351029343843346791793902016242293626000913380971627909214915443833958117271546226006178086285798268330491320347038696003915246241098613681536917850770339599685180369113543083816304110235443209686453195088824869737825366073719466835752521837111385036494791089301488216092861463074189039028509263964531945505270050344308420647729750631982221863332917493209823833090121192779746466495528229280170911048091155335634909740949304517925046245122759724484942630508378101331841744347124521588674248586560740624420857541406229828371988709425749247348588159572197462724225819641679151174367348339209655793001131262720990405206002731433266990461162638366508555562839942322527541154040103046267211343712658826258791957021021311194264494542407425924881050361927467943309853592816861687640699641215101661157384921280328746072420091408894319703650014111142868206778502674146653447138237210911836524305260666498263217205624483534735451359465280408290579942922322828428409241024094916966582254731487786093357488781395641090358114818210014275597532292352872436793846344993749818623183657868591193021547189595986178679180696991255657884919385329909928398043479507623855687816947965369474410751540937837751929204704800453319915316102491704042002949879381967637069525908363076169771392973859565535649290540466682845919604053368013026644745276455288003469088971060744415809616746336865281933915092795834163259438046397534450456672952445984496016323382567099137758086099813907956887371372362432254456140850455895868836402060183431156388821638958903896104550941101279616048963362914292511659743853887011274071037215541761839064582078279067562297326182908057680997204107785731703966668159764854602798152588661603102198406833572876185820773017978225896734215546807907838786432085126544864027246455902256812079932248819556866082509665904577991373145314617292899074333137268656598904924985887562770668947307544216522012487950263764015035987382201192236861092940954723006322710785874171879291953628809038509510445211345587650636179051619069708619541015255403484110764385435105859510887003487920007359770621384781615022351528077108331384495170215240567548055243898895388202979501318516030222341040116035306026204644839117511505853941585979524547521603481367738193163063367667554000937756354665617994892773763414496615852191250961624799876097104045047422885065447499314066861642347017265771642711719208197044238099264827544932254695647458035195753005430288250616014563388789514845218852378611213619490465908809229486572850435547518884803687036957209864291834504896747245636685275567007444577622909886772362909380601123094886309190189434232427445240516700783545529648754923515092410940058579689128162982969638203279734939467001936976688696917949010708151449826136479799619523873331007628415068091925056577458809896546070420192542159503739458058765847924282369044419212377129449559419837456518006133710996763974022076342316878525580096284216008774039147185677316244612017316616859592719081133101323160395867770539724325923831879058563759058652249206973705539156037007543546146916873091474354092782192098245104897316497137002367378732430696686434468131726472979190047360351689676219625975791854455628568546326129485881055508837589509481845181150936488719977364511156866312106046818898244006210312342376081757521632594143036236246483041805472997685359873189315570148767167786499684179028636313551409792841253210397986117685274593413072191010117103766521052780782263411940316029238328993587931706819876639830298501640065388781741757101862065521551689584227956747520862072382343116893173959360315699941236442479420867488672013224541651388699184443404679562160286182195861612816379159431446364882529586929538909914826471462070734487493819553016940704590059220012820544451270615889846258816959666745653783958750096987038499127348778524878179694310979143311953920464610615917436879697013721032412894339643813291458152645426275083097141893899182949658408397890753107025537097731287121324603736325825904069748721958604892294040973417313268068189388394836107730744098682788016519427617564750285448498798838336795475624614386903883329209118650824197640814236236551734562256343830543629938059173481447042909575621551066889134748982464800774885243687397048649746919875848245943531645336354340999937651056602935263067667148153351027965048915111695931023780474311844774546280781401865359780555217595033332987506698234236819383509558050952104184140315539563241881381514458725372420930286760087957422434016413120038088376699702782889737443010013915042872779820032486128251256028772533337335864290934451018738465296326677612340404080895123503493325785619001743781578602003294468118161807331727131227702227357248382900276490123997064102207766188707712850017593547367862750119155380724416832490891922905734601026932445385883903360629616952838337893126610190268819491336856933471082788231398443996448644922863813372258152360247069000996650117878485326902417057388362095931869141862819285235262002898718530343486008568328926603433198752946946505319335624501143531168007352711345470232312521532682298811249848857455244165938862569846053815042612161433369251318749062878811391933177675422738369733937585567075988394839084785998031311402085225730553691928080298300555517181530854897131188251299407867266726751365018020193358325715785379959045178647306403841732027191686548298862814799042510542971894958108166303034596469505509082133226682244947429041526520836468272078504660614769820929665980235642556219488043130933087959530132484707083055584248365299159100038774126794767566942196690376895426890572225831956815445365086748155797221300670688698729520014865691882451593313021633025371633544168917438216694431313250142178300177313143420327199618119193163391447257547801055303111825567404463721029316494844989750449777780349236150054983491104652218864847048154157917188480328842773277356746282090961939105153521088677215477306402052948230902988964264026116176084244712319746949272552578690031633879388023555754366127160974846018798713258838269519064765407398663116142427708596599609904950778212428119380189878252220569928219458521954937339995738942380815061969432732533768286504970565529095881409656858709262432172198326287669441735630966797792450583164692631695949278499262452568648603532568022364808684366561178909786417186405557745215307912164387608775508998583991514122840337622181314845544204550307657574815894576242775990977995290172376679470165163763115323739015645873909354247754616382760454634934818705587892204449870504095596481332807931600276060949609086679822308586557805552550542611211364216148895352646728221971459662933714330669437854829954855717297233619083656133676269491826582813004659035407911938683138835824289249867020275205261625684256290262372020480013106475854508744650250722287161588788581863040292450112521433830385799709965685209971757650794783497520057959772915636097563005107176150021568052951431268140495442159667867719991905169027178845716660290277424941113202512699066754910821935959494772349173893552716032460705260448263697395803374302990960344986824266304580110581344074713929338533413773533284152684285884196756655767779550745063287867741308448340021545312832023183574234280514345971634093835302212048363900758679152630427554471039102685318297987660671331209045809219055744226441288820909993332095008060415375608091409153976058771497537683267904243397588364634201303953586664066114029027080428762340657876341301914371321717236836337188243057535052186794826943143667119612063829996471745494515164829686192212055275089004405958477414962759623425426014836295964366458808760120838510471312647628467127989386715723236059007751784629431107588658527858327140682099871843778409092139290498756336483612550056040343585747881879681277831437047915756749426324359588458693385934192680611479527776432001409838310403355702613064223430331684948565543429234521196592248468427277002145345516633565174554483686155669555959359382069653300424118230353447455496932152353117515325097418713652930706394779448529874001157836073633515072899670776894812233504116065450361718752738868168084811741297297139732184088504684359453034013414694937186920596886054790788022701840846241169017311622733737906925942397568367730983648682669277605168960651403141039171731790407869210022823818197598653514915753807540215958136420195368949122969113039150793931708480401519670129949776763585054889108764092504418247902934357576173422400450309222818416878893330559552185311507792875785294132479801426562816296688311282538545614469187485188275697886421910845654334804276307149322748884024530972364988394178587400337881981615374919187017032547276710987483126508859690389118940774722725819204522739101316125316010427080255843955073664822141164786803420149845195248625293664740808297464795689773401983369813042931428543398152570771975665858102547785473038021480181784579731707659907992026958991724307825935654797559205767898887220425153292153560132269119353402134942053308206754198493154346737063949926555820378729650333820620918200037993226632394069288403598575598429800191178256274203621877818844629930695026501664924801142293351565381329650923492182096925981167159696312589464068542940700659001142827849258108596255982480971659111939671093942488352920203063042238650583192767498050338952221886700044939665482412550450449324466399988049842706631884309135699386506008060386662338447771033455093318219444701501809005716206109536559194971768343172508398749836258085861064951260728172366603844473441781416376322505174327836181100235166229565568082274243165883240388453149739415094424950565884672299327303549358432085215366740010361062202518433018630798093147643349115340538658727953033303975202393699015588123744160645245225840810109741146607910200210439921046228527362388431333760798781580270556676399451161188489289105689861540150037895150356719599940759223431981513285132888979671589578152687240862591413770938760711507785627638739565399278230240906054600925274267210775691707729373819381015685161759713494550992972091916657789935715938023782254892176606986022933051394237600394625712691739059069133342096306175144008655018739846217718804422123738072930518423403229145117028929757121619403359867853461739718732784981207105577508538623766103186955201440166823747581232592367468512850540890479788599766189553403644232986523495859994894284018499346039772384668643462318160892554200202075246949395011307970979316629311683870710159418113482057349942035851254254397707372389133916473592433847336846599702639230025327330544948372318850907503853701139035717906253180521260243745995277404950766918858022087404502600621352730952163560476749192076320413758665251681974106386771066980366985947368444430873960325440532338432865616002798263942353658393648267930633314324918184021770278913035615485796407798209949012351402397187408470112466950670327474908811623598044220486787278753908981595580760058227573454954806162548166186172940821376372298831546076539100249135311886779031898166389976716644832171112794795354109605884726139470803968120287360815175718060652472402818984391184161998084030590584864229605303682241374778548643851856876218667246698750770840694047832838997060974014408666573012927182871846278202410284606004737547088043409859043862889560655636033529992755317705958784846439861622399513135879379081041948844935569440219655144951476108173034455101456284291519980980347413729358479595116435770463132707341565328384448818316672730930175536001771856881609407911893512055713044823569458426182714990784458653348631589172549820973660157190222055188519098003163392991760503138894211546877754503502529379732570068599207107669095086616011736462375314885976168156895974750167831355506900322516443966291661752194830769140163737550522016003356835043749224213688363896053239495544870422846783585319060726854640102732076436535204563346165311570880772493522223170724153356091800691919037921158533312655887718915734407617473639458329292121081051034433235092661277482296804957279212719470350650818170228238384300208867482165904510691361455256447599312309121690746147164686093059939882134523680869439445367821459329057718526340619769452133565774522850014498049176010330080323781056941432703940645908612921632979604117536142315772418739360551826980193862064941791610911921649036155204856433165287218423027891141374198523443400095112573304622213689975176860274101265901880846979800026500647879144584191343588028778961204394250294365278359514721043909616055631059992398944046064026205827206849102088152212673708811834778873684895363229222109822046128238635727529174599878262503512980160532044154542821848613959092806842322076101133325245786640873679974446990162280424972959025856435044250622047583460363692476681118821642135746510711568558388461942791923452824623716330320025238394902229046204468403820728702208110388361461681716303361312342978387838938396078867691393008754649248948422496402861444708250015110027667719211987628933336135573445576846345264051686649797319515327741779735980948006535455529166693625171899012365210631923362304537458617534415545481662519329695253122537474830574657528495859546083514095810265657545434163703069204074859342769667583241979745542475129341557071235870734970456627643851211860042542488788802650893981276561505678959227968316677490228760734563871532221976642125050095070729899327193845910350578445127417850460362958146077304846635867672032581640158771201132863242857030386963673760144914061229945216890590421658993085397980246704859389712423649840713806686342849184008944860319158216878316226787357361754490893604731715153675271067783451429026314106516869134166663370640809149536899851644404277831220479078970740723924162441094973250580934146862799962001193969588507759756858827227828393014692771423983452646462872065532721108425487132093230636114085211820683490361182234966254680769996931132269293274716185196622203419057984886656975738480358357450455936127562833499362333781891896017915185842681667748104499796686228952968152742320525305816222183170599381099022835439894809500420611766244309711886968536374104028919868318477281032915214987565159324699143832092753592081920525754113465232727472773537064429076787067824601911458215292799289454061245218276913003988581513054400603422147083612469322236304392315424778523598376359704266859734339529686774214398820883213939392086833561968597263740220309736760227524822605862640259144335411180600881452075060395637981847281500134234591288921183239263968922159547988226963011037998153805128172647413166204344471318979965909968302907581423262982923267632543687929760616323997839998068965190059330681910880240028217520583089576500084540643554648553830510371767875581751297043837997699321711788144770179044780949919283997412231887943693094429671840874762364728809543015367672747443220894399525590561878304458461665145551851177036729154455023090132623156327956497896479196016306383193472415287717242917875837872416017419472186575196225193342826243399430717431852003376861633837380954001775438345585820452235512433958074803934080566861438366604214547217972514803135138725057001465752027843573319874676590046951753935601363904232752522858695047644352750136000132487601879529229931389742746612514197935182816267956987194882388342091534027226229171616668466326838410669918100402162876336692243145658158022220507155699906642045870849975344486275839718643146751595208791986414793088015816768463723020161714680536701085231480064421442449193239924158042212992127679911024218355703759939639619516575744348314179653222680301456528969644819238506859121544968682934009615255745447184149875602145131084956725105349489165212055924584294296867094110990420198250045651604092781390995483536972511361201850872177407030123303280941361031331791860378524888226180735648171867399762711493388153173204780138742781719562915589058403809839868499858668721413019310834404384604494694132691400663975544227241052017627054431960385105909934105342371352025175186682792754823890961706132887857972297969916057621257505671402840574125660674940470889291442112346839309947087242931986193722569113726186294639491737430044012561346294063756964096549854855463030181102029820397986799635058448460445155974746199338691476339991223710267548713232114385210204888818642676016836013338525821521505782392993397228178350522303178666605850573571498120757736617475328602955732314643956766656829374821397726845757348717517885024974866628581633463898873677529569545962434517089415669043596353210623196797170883545380813534689758652174370469444212841328856742793875239708478313998821298535605146102382516849846373785303000088899080625398376494537508104648814937075883079644611704501432792794778021201740006270414152008816474050263239527087522185183095701134427798669561173140698939379543297906266415848625789630379383506296459129474714117118010721443246056170822166355164912928736482541702244814826467822215768314413653020143359312522528727117781712628500781474947606594436134167623961391368329564983185987860811254374132959435063088609419258320880543102791195487008564766937700237747947021404209382478547786381564992142525012349648148845561922700845496091960725377975438668645011422507988256960955958796162581631097258435910916268453949806292607331829222553555444484129503971443824487065278687761847406753466642410152010784003792292412597210113250407920045069558768000154121171531062770100360847258880132384468492169286240867092179487092241009665461174675159748039953274249530882989290566664350153562994660870276043712005629804074314612405998285593660359529352217708964726690387122263523788072707048053817587813112479925237445745354842398189084930255653176016076590871978627861989060248304751740555499758807424828518065728814611549131025695837273519103911396877755483022090902588673853344278931677740923700736558875918322312455470670629277627000593841671981972277241219958957773529949719901030985512997887515987552121050096890298273428446511377127807630290936071134941701666440586534078481698882261325777345759975023388212135601282877651136245421116776120423777374513605439193658350515516715934173783329538410782553227272180880796000941202385744234937198513589023512131596538126231955423732626573882487268631193589035276303256624971032377794101732923349103880362511195539921208890422018796472508994485621474046500179964691327307992933692117797993950718292966870423032955119801335939134957031464317826497972038919097832201176025025566456815849652525056595340602777565386409644950890673744432475753418316835239258046160449666719039176961569475326652004645186958204437125664620314426785959203555669952384612942262549123311011167293266596369786875821081373703726258987874057215602141181703532889657598968477033200456832281502479618822993825311485781485945926498726114150358704270142592703581589522294993596380306125476819807750031174189366924905631268015329882098542160444229595434141703618214037889353565657839191755385945344636492440354915263591714498865894248785084653730309559508288738800881528084046740260836423210364517097698214223186463390786967473504154957756229319819877191181406757446987423482690084999992991122323502806410278977957015284463434944509335464255333501918758452314247240706836571462994369518159980389787870502020250902063779277634016723565727222555462339952048181495038517407703795507995525712091591991819641299184867492074174982933064020750733782019332327061174639985252555713825054147500644667526366702609792471477560662247411246405900572484000792728404227205077333416364737068130735539453132861434220143380973976870657129468948189469253031910351034047294074576797373607454274457113507131978929591364683893570604634020030201459106197034006756458796738823938216568799215136895123127431869059726314567773921440453181716873971214551522360686917767532150055427161720438835594571365629389118812017529378465545378087425252156303379981856519598463412545307167464272858475558911616571464849185178974150394828517054880279470097817260857278506150981317323269410153782298550023462375039330824205655977183420221398767136226933382958923652369291459416546748632554549753094413414881515300197391820116613383936138747661407601656006453071409745395195442031485059533778602536138863596752846716305978049588127758254217698257517396056623829485760515320606581977397476109297951628380297807762419396546771799803945712992988915150601965372146606922801298891453589541622239539742076879737032417619729657319859865663355026111225942714355744872465756998404801132291352953806495925815585683231193523972721899239924253616248750409417155585346901117498215856376779266634516066385747406555610060740424139412930023415988035302369324151347350126270360030343758307464516554295186448084114181452776967009750006882413405915574112178288295366149331118755690890769686400205977944233371281872766132177135654707375041261452823504313182954296248094222530341211488850736885054276374023060475807974041709134505834052537759793405545921592943444036743440499484732109187013477480609308474056560052710484215513775365921955315203391167851057335457036234023588072281903077468800238956421263642937251352025513530708206863744415070208997991085811487456538321699083430054448817373154312980639665051309623658850655744598338699636024383623193323444989913162862070585531498390074129107096289531268001114329610185493334289124142867748120936389625087785350904647206268961151607227036874019907957509349583332390613871335692294793192015843447015486163054845467994451263251077914477315104271892637524321024129691247852551299524725757638621938415590400973679596139973627680217287509186381917632143091086460357509792826557524242859688883722684119242915039180164949846811891453805802645639238838698734478247352450438420869620718849982588467423544091283528391964896391189988900899374683550947853294114096267274528213105226318113952104200030822688075332691340018170555973431916227897460114962070471923561460096254833211545288456767602343457004072712780407853451738060064551403636625505554530246043661478455023305088462361260791666587308605213052705389239154482738939790275660371786932256932534091339613599786177356996604970636019089139374325591576284093180328575140248447759154135644356477388186783877561769642418134173728831190281447525041844435390845949443054249261367153788697507059353208056672400779665932680918922844378726579643385547395723762969851419499337457547964760005568493864208141841526297796778943238924356170228500876924702451216511742173762318110403407766956389231410671951864948362581103764642543469707249561883258564962218013720170744120498831059162748183276138494626415221887817951819296025695387771055705692567683730443251567939292684141430356699850453916072492827556051325872093873788116865483016712294190248731040879283030578225051474071292299181395631594557962637699067638983526979740859477084907126707288010185368552919172651176152736349364518899794255435636853481226643019197127999214514448829009250087507062745233101550277192805474013191116499505823338195351574285556198674300283446331346122038553235918638127817957250392183841600574437517101830822572362381504649969857312820083270457919847283820810684263298911354650934339557752374959026827743899876991385949423684952075866344689660813789465023174134677444306184581865680249617614257774209449849070886657735564382525696934779934482668287196857276667876144554951396053385191222589208976726443527694378592518305275251020352501344229132469801887559497047810009367430032066034678347495864724493133099556422463880640030652200626304418733153851745262282856424900403539912055029091903930368280932986076640250920437875532963409811456785475286159704099874072494938744674293354255872938970861710709808861790362083038679466131541404398009474450917199841070934341507932413315119442452858829774336494795549451128497694128773335973942729842023748247800763600951319611469473337544946995096058303549288665960946536145449788924660045924898907901152502106342891728581781587566907650327350980339139090228288310829984276343763666281410290922313379113807695360008479307880921384366532387610201333016145108295923014151470302932780710734803537396501570796575856592344851146444660031208251697600814529070806540748234783911381837395142759993657722119623960272378919155583565315450670806252197179282371182345338018633887398232344109937002332166691402671545460728264825792363950749525065134163240032569871041916825466060197441515130408953052841308763805000912597008475676440813620371688059186130733160539612602131865879525659976907849158476625276966503725457643635201189236808252292199816227400130662998541672862184058256453905945742897636279220768963884594999721083291316539987888908933703483455585240481175841713880117112840778351763480491830478737222708758331010217219246045521333075081164049758275223629741715826643508904889238616757062108572173571434612541915509082652640010935993744044995739859167629847900322605994506541136563788024942833605944701907160875749940294408134351068524367490479289340406912125132164429863485756357430588701799800740450209842897565499554904569905176025503637554437801298272104433300807165362750796786661257679874690561994732656182111993845938869998770957115091996804634848636206030754052091484263344872369241134607693699957587482746548084489904389230671071074537568186455559185725842311939152661059988199034250023373261360346272829692649236237759095614599427172400766554727805946445365888143939018768398598635860614639884896725074062404827035084805455847605497133374689509903560956254161721718045805451929590937917687043377083895624050179799982149368603779267848497498666014538309438969650349540174821437881573159427030159236044912509165891945928125517086965643651898954963294763811306350763144422448701849722039813986436233691078973091601997915878851379820697271684620905851671898939285319356836115278330291096274067576536590675678255792034543682619236250588304043812241246041578317934429501261558150768972837226101266419031333901195716642564576612636608544020010885880220286822442038094928226238547786152901236558403223960788318715125594013625026250597843070179224978173620045617257438557528599505781230303235884087608897052156629224742247497705301591850835281607078589721499710789852053680997808345871615982036050260008585439403878372460418228326703026956835502347313129485778081129425131744091201064700731026841292219104711998627297929168331599882778154141020117387401817252267728568755010240065992167426505445389929895504382006926077807101706175498068657962574059544477941291083891781288612525900898294897430236024349080449519394372398710636434925171028915521859665834448224319577429023856258546307951242286698142649620899684817778347766242888618018540807820938103401727582798359275901491971369126305874461666157185908236764165409627279087083664115969910301019302574281821931495518377172537334832714695898122614436901990965150112614538269117272678575120824430317345795368129980042840383697428676742356767959271380682566714352636512840657853958147710015808047443529539987420439498108928050355998804153096909029926038314111868493818338134342897061103733785551467002148942920934420987703999526562227558665335221388124920592901933570544959683156787262696901989293820558783270863851338132421536231626763682503037372971466210071590625963307275324714058191946987631328817280321728611488809166984096606247176437183171610013975354204211243704186737981593036081422293037167770348051374922313266758283801942687839086954253336708158387329216113333181430041293611675173823940142625603919405200429793357037599247541177638374138368634299339419053578468291640518103619255974302647410482006864407918785880691592879613583960252801906873654478547365686853055914663928401270653073092208940183334959286821224262382785023038441586456519739533561184957266772957263979539659711462683352180627111441848883540329685725496065263856325668805811388668280336340873314220478220823581742008686802764851441222071361493986348412732976908256580166559903619979090906029786684761589451809022275346549015298663985608134047087868400632968551015500021583333044029503042896175295323299635648121652313353731445002178652385591349911207268077078472202416735229381366113862491594264141064044614876089531478640674622491747811598334118224174931080996752268896720692539896979413469483358349725278441752333141902446046327837663569913702557581226310184040632275547650644838083748669220919327060494385351780407918251995604685291486208247978572586402042339650598706141733772940903084032741337327724992564197824242794593135880124770875694410195404551782607510721515658723579795754627500470884669505529189962422939959710997398354482318767305947658927222288247978097179442789734260326914692732104011089545047461529817756441234926985044157185136985907962078470970880975368078901100160793821056890831646146795573322788611662035910529102625418949320722973913319159641220630277231452457270677334796596553198566088025382770067511304199139710324045491740439281995014819642208478208313525980945174903697724196060604051350787729361660741731393163020956984995995888964106892541907021708725595314654597924760363093865638760186240618890298364272693539037961324096644119581919389438087608976620162407581087191089663404353280864245794458544590565078747629751223777977171394021202724080301031119715487817548168588353926957756983155643149651481289105274510692961110910654616250118797994383999174237854897665438954714464760740875716423560494551617634260030455408570462231079727031300474281398171826951164016290741378331506910658889900454590588301584926666986928196980103977371256411966498721622187456755030291707641271513782216770042402483565703287251694195575247606740068747380500248319692760189953202990231442205274141539298089623048341221849413897470471117375553998476201436161690542240999771826385749466310384958761784202057543757309273104553906517168360279410042571007958548282342173984820349186502398887400769289435394254760808053493009070927740533460031800582242388602796981939807024374659651482175279690876244773878908095941647740182739993067697017026270776910137799192554984218967672937746938300272383161281800818766689208545357295964748836784308318303097307947646280452311925585352921246216967662295170208067114940543207245868831067185087015847909920857228731657555689620973305668347287478867825894669866443017881930284048479101148919391965347565294562697804005058561929931657067661645649153363158579570770471037771295543408901535369311109444934696555288963958538736681251803824005499772960972693188497998045687698431944343242421788340967811361663275595050180722039738453333393524369701918579150219112048991469297066417715131638453862263434762972788533270211408790547925551547179410370429562517154516164999686366404312184186681722475445083386680107797741886702797706436557100914363193637420947798145157562817865909500050366195566195078807566755687618201757547403217883501083983152063042753924588638151228281160457045868817111492010249173337105565195577064366209417036933636913643908248957180762726788187501865094733988834377384410745951789316395514767915269020080199450590891914951105680537762152089789762268821295385751627041830742478236962771016002332433270787683495275730603837325355540602723409528776906786190709760560856443749958590104252813737707268271877112474004714107553505614164389388557452179858432255803989185958195683060007770445275229393755990157926737916493975059382426291084313074183127799370080546412205202738686668586026483368222111584431338344587876784433918468147018005555781977653722394936871435470769968390869999452412855388088919954600700309382413590058023670981644638870579824467806052971135963414936589766832781121352375615230695267018733209226621207202662231300678222214892195432108423334632742376207458544116935279607446195213951208204347850790091531692473511825861907622132014087897800365832182707789866526983734029379808529555006049829085779249293800273152917240715884245219305691037549474494750766998841853924184343089624240166997505820516413044543453336874955518488220899985550193474796704512120603525584378783743812059505606023530414037936498646616486448529255189244198782906347939474587364889762573202399250891320340653830250654349045128478623796517865465898947588543822272203669391476007743327730798154178723308254139437144789715293318021986587227912894729466029480632955341824177311239039096215353208345676774934749226048699390213048199221170747609145781813758427878934555062332295433007439817443433681365578925775709892583262952180912813319123983373238828676880206894964586966443919874444698194900561748101335445579350669189177627918449741268550364820033758518971084625081032249210057366416961780926695771846401212841465350503282357362639784110029848068196964789587032636364358445502735576335030078427047518969318371658395226472193563974823593292889813554424233230786357453071045674908082036361085295632143233302047995851384030053020399303185365181838370257988996664263152332730572484297621681400116268047718572725551711706188920233337286918729849812343353352629145986520147630292334798998699557824123669334688783681821099212674577115275162736290935203175429845745075250695624640476588014574925038379442600606155878070742447077646833641753329990586844773760105042401147835202643241121897393721700661841214911954075657189101958071664658402791328078380256815440597253976210994123824999363195171618796378032308030796508621193215055414388274696898724420516206085226747515366082088318575156368343458133611370062091290552889686494568487764538278448005322422622233326560509756808810701401216480179516520942858004904962779925322218698157229560409211077080928698214862833062496045096085449102504528158990386014807664046606605794539753762789891627246102574526508934703776244408465652593898687816503497046441483672334719310962596965946189010157775251602699831753408445642318365176990711546052201558593094303779220781740142906637549299279185952967227220624732715399337376858947556920675981109664799147428461801731763050127195593289382128356157447885993680007656992484313434974941391065495678074499684146993345428123087227847958192646954212956351561540801016626671355874124565816263930065263653200874638323353695114799631420204195389337326325334061684017852796781188708193081916967110594065941442129809380524470453061486875605157727869497227875987180229839629559280057397339317074903178672568688142463569349448114952989757600247102013629680413936294265824895078135311548397495918530084104862504456735585775683996981752155721518812156901323858738148953104149821889659367278016686317605904254747430840697563947113785756918017679095967876638777839663677492803417064362948102256583877624139626714555365882738826333376454367816079780771840327541636917126296637791162222713731628084714315789517919077156474144822400684781809227514625908802901384905637161091884864483221303854680436954371688180292447698425067961952778928866840830875007143050091599252748447612037514888423202644725927336624317665096919110644149043943771900050110905836952802487391563490254556114604315700273463102791337415753901038124996421016106823635724395190432685497964058328799102873223884261676416944253348232996071862581908816033415794002003800747125506154943297750566895856856354497622772330859528476389407165532217024581129327764902919143682469626708521004629752152077432093122937975018557621250682371162551815738094733071332472640480913737536598642569010207944382491596828447379476949939807651777712640400037314646868294548678492759332194673443636384004452301729614176246108822998919740677242875574784865200081998095276991851492573732880734445890454281774078558350334165588890994763825025114371139194382633105803245278399950049015316081748779009547979304731699146248747555525142559213751024706342292173917768615331486970875556848020453745265791877212760362529527371698862166459444385695548589538970087989253123127896029505315808053294066763929466721680695904953463566347566891574602886892473017215852980707600500391843698086274910539320882004978733330675039837863043224177183483413506287712685454308475893494081908258374299686906352583107296032319189638599753089548275143464225267476095776127818743420716406526999118321516627740658889890817220565603610322973108095031695629364949523501277471861862788469675463815679298066647317573691197007599203683937308828806321839592551226543569350002730479701483989137975367754172118065317279633385066740438977340139512590494894787537637411171740683521737123143112189528989099184774213615563106704971414649632733714425444924061069629740411746550596748046232564903745272460715812697199825387233829838272071352891293163788371108820826108408676023669264870660358368744917005341991660556319481690495612135160510458436743534843190610543443679110243620050762163201895203438893410711860199020488957919418245153984284294272528035805677034592937651327882403583721410838030171710877299278687945762475770471245301887091187996234507456042267949372416093855046949477531219537198355589804743145228989347279427273387322876558382789980635324108327660428883571134447945676472845417966273115374034906047246479558485693947508901691914782944517061757430572284515808497110372160475712543541697659252449125965888844235028560394321863557708752093726096037181410415262649937953006099064955414353273724788862178134459165686566116665430903024056494652814443797026066425851559023116226363158951044584681966140833059552586302022243605929975537736556142104708845861534010640814425217921350559225996435772260699020786692826335064220784387874419870543327160712413921107856206216060262739744516074734100555673905073100837775106284600386938180993151829086460927313264945509051335396313458046012493808166866996371137787568675472440642450430917478409034269697681211400723700703002976160371579204128392829400559047660805600419034574280151276955055961007920621808910616088189004926848836903637749873057534179505459680212201030399013374068949053219625870110378205861109512311867794941759463412776414677575575561800184788450752699661681505829251283320662557520265972856283383316158475786852218472332857933528658515518215210961068149012940142376594102378850292310184487213731375623350411302858390826028536727149805414565798139116581707977513366427664527153483991951031631472122338409444798027694488926108933373599730951096695943094036226957884733254792980102206003148399447400936601197714339921416064082549136216493661813383699335169869550738170369677067562273298889918110804807595041508541538431946604807869668767691735076663406793050512315068739915700413447614839409509856697507582833453695956400734327806926543096914826126267490535456970755841482782348814573031462123937240600205814319057451043322251056688706605895910540467833425713362372086258964008024742173006862902177204544197761630663835073454361214716550721908561894119813624360595388663849011176133094822637520208496045981021049838761608394517609759835351196714866934642193396148400362783843988833179587702851018839749688317189873952827614552112539856155395249521202088931556601164865330532877820765551261631404225088035989986664760184801380793803576930567472763627308328246838032252405260985291123220772205038409554954140707858267043378656582888264096495524780006778667434448049819573154347900755566619466900236739546987689169236220574940433799464997784122493879410658517686498070499905530750879321635484069477015278549452564110238740502022556063359421076592314025346835763487538116850700637214552853648070997804633173820544455988480121930733637223733859472128528033726601582757240196481677397831745729804959226029071742496989111448645907057039457853738306015370812627092659929412588832723419427262604621214837079632974694980166750249917982362826829922601737423330019051088771056234683138587816853815352711554622510505732217696688330378762993008770503440328767077347774637041204134927347404000333822150106522203193097027162521143921900194309496712450069833698955943986860710086872914242123780883519678003480983408772742425817689202758023852992359465064496728209762498170388256738556390341772305598530617974144062920472106681419278898078005973122809133809119473087726163249897760580495825727301720716573180958040066703076531577154917676049083070062519633753767807523074252367387670816795592969194708378384300446177385573788535024798322458120259734262963040208634733474098275677589033535241455678154199048309662949760775012109864748229222118697685459225299170492809118816321518188992306947368894627242700879124184579962445580827188365580479612100536113526715668284943634262353625505394851562335159930321132958231209059124166731600183232172400724512548229134114583036882996019780204596813715860501309823295404607903302554948327231899911341208980796641300309331760721519988344337832351009424536831060866810099509984990484192970919890686343915651603088322000107641453283191846865671191391582561229950222711451677739619312064611226824718939087337576912573244817325448041644067284125850942783348428316047857235512963043186215470221175371397824356112889137586618001655229246165268615863112764430800471897763194402911390453238650484901693560342936984663350227352562891657499242792551530845482139349691652571016850724911022702182311568456491747414699720278181163717143973132773875732998313900506106780050378684252831949947671189287200975674769360409733288841807618084304137613813206421084335368334550497264927593883793755608541155906752793189655027543851857104054485974684977774545137172384461258378691372159731740316811542841568995417703133146664927219704777999200877763601870675340036594955935047200871733101790408716981883948752833553564052109186908411319145890474476484741513946332113669590789915061602407835507496327002753144314733474863211649928615897534111336277461392398084136962636181914012366677818636311234171801379710296769491834684786329862901640146921977070168016093574400181372478795911723415476865933368886747748232109490606231673748452348274184325633299230837558457175937098376339163355211372084576195468527289638911301510049536686008565267648087295625802498203068429465709291749407393098502017028499538549246802344124042661631681578897840439863491136697409545835329686812179420347536107771869600723430315999411384317133416128674864120579705112622514625965188617053385257022146333528603578934408617396380508175260361924282329404578167825303029968642281120335091530466463213715023840559764794831251820952696485555846044931784664946000401344488201134068943725409620333229242334880618422801057422192288736142921928723524856712746808377467709560909851404023798042470177029227050946251241103908649268441883805962943904608014057404591753719948524349320386677693916340817390690957093692164167832743183424494249214648620735172697939615965412533579606357552978457306337420442007010829257841075058658566561425914353026824204965839654195237669185740278117577219968797238343305236407047702429425672250803994076547379775700317625942269886510440353179820147135874481315248613065001579937958813076927872969606694021699522723086230777777532477529288954212788005256028950029622086779603419312432668647456813264448086290049243142952620749625708163844699226754587984166662445489547616977597563521550765436196387438838384806082170707170192746345636499083248787871291521546592547967044451045209527947293970172108540883300386002434693522855198655837025306392902854283585942855279300718804304293288795201501209804341283472254091451608167283359344044708119519392506692381864835327643768635505212895893107240515636781297806606262558857253554330592671838890063342532555687093078061042314423654077284529693632286157158465107941457476042205015917622675231536979543389471877700277279518370230622743125862741580503445502913785571634475895115335035215338154721719955210134215653043712873246947549742045981336916992073786980736575534463401253036051259528714937453891150437022139426165670675196083094405670165565484113357784152255743849244532312277835625626577853566253594717595578825813970835097604739075680895257508949034526812419484025310262435268544939326079121320384742480866145103479334654399553592551714125659607034643357324477168117175489337122409953246367511826817959534251320854653292171863194919996836434594322555221302516198835090259334630972315673672782253213120845354265072091332972858210736859049255093820691093163351742325238986976831939930552126462259624554517447294069729525874198330992761965858042706246420374567119222422097125048386413085693501421545543652868723907206480868484641861512661209006525672383798849193945437238196258405726028615068752925374999417556148502941761574000461573054543784877987870439905461915010652562587194044078439097078528774570767280490414172826758468877586364911438926740275634356064541896888569508182016570337655514348320854932831595631612625043282933847326284797520734335535647554578898498906454119437016681743590142509741330475750109206493782411154990859830254536041246604052979298603357700301756329486237184847811276168484017939523176185298707954660268040064232414026795579439373076489964765618378033746270284339516817676159796493979437850921579079916936795343706599125498865499538540616485983585813278736143270414568794600527195368575298823800644726312422115552405617352209157771933238577517048314147026375276532947670804449364199630311684153683165631984505140207292674716022206300693067232901570186436138364804318657782937445433060704202112536313896691164723030167318627990574309578657836150406741189914418173504052141855085714908636448588008171278582381615596917579281333029037807315283922721826920525320354398431951828228220532921111598198998172496339924170934691900550088197210614331144094512048276812087865475927563492870117628019640715263072004762919995971049280665953243951630604082832964380442416505663916690581396474309181108547650626471083810607663935670937927020184942244591372123772241754291093640359180768278575930103936159066118580694978831716537183392469530802545350237422285839462613306044652970166450739688278456382818566983163644928262216100806796060859100476532144283067954633782723445336623461130110460834603692826230270825170252698141033305325956830688927916624920460683545728598936432270978458994158797545364407164058988851223945015106941954942433140089904437450261641856641317363110482756076458916894101774614704920589617039795591441537540269332252940676271875188300527257810498361202876383959489445297948075506731311544699039299400591091528750380889863834332001113524879255922512969446433998025160984633425653792502861120196628382848355626178896257564957432965594505433216517118517202316466801332497113452275018879242830362030147218274101935000467391640330959199737297375872039862815519319992706442063870499929803162222513860433571263007172715541460985353239043181583668309421279121931180966266036141087796474420991406964584914524189103406508109169414344341701601227845526595674419180343699192410530600850294702846653913308954640753851926142085939723134976300939713710754207954916113615932490526922976735460833821954527723536298881159587261744409152916870108937536113803712580275773120754524146127524844819715281774392830258797430641821220669993929849897455725523456670318071754448692067393426238837745365886246626455089774937864561807865884912434822594198158043015970019356407500745300032788788472851340525040735211812120164800617974817809885957374498044212153815621261420483378110499644221178532879552987675837702044897720625382388428550637942861271690143581101616240327252841025906251568463491767185452135513227612280090002101874118984503312776427864457572993873752938702867193508141081146584210561510559814551290254526715398099056453119749392499420194603401683387537091095790550676087824676223288510355368862160623193849656369576654304266117077050379281606149014060378303267240866779796962592355718875611367384113385526451884447131011125578839585484101451087708273147487746087780245402168239697185579895095185339335424446742457298842675355780874352379580234877814235272373092228325024440468750479154049397952021561914679243809192075736962465623472789106611299372398251521647496805879309572682168909614418935632676069935037566743776908651845472105093740376520820029206564200339382836566621554212443584724749305891832025846112082801453402379691066977708142627973661847342178949599707151061435056505742755347897117806934750786375523935500150803715679741259574949060231145255625030772321446638972301990431269444453056061540032330579578951707719101148976169727334788607966194773876564387070379903062165245276978434779229180306202309696170417089942897780954029471822332878185454438947411000250297266621106037961990844247859696538490579131521054514346986690501283075617291140001494984029198027709253364265230989530654274463578901359362375340420075082395293677555199445232133243421803122453973968173589707023055268734276957042716758150843744368310211734938456866271888491107939173282085787574456566314795948540066490601208193962321128548359460330628013580150695453444075206380803997938451924890343964356886268266360644213948528233881496093826430835270916490882780855786578141646033898815935910661166269735469172316494173075524129079542115201035328664457174935490089655152044342243163155195917433328829014727059981380859187474586960186495736720970081411735229611142729033604385812967548282349400259952575811557601688917583287036703474998348782686014391642382943906464371017950084222676607237525436117475654716505521624793242670095052181047204675799694950920935310609906347543245391054114291868779804327181346595698279203171475367827813406814125903882672366045498776648679057326305916754653043178295629883755833390121279589878768398337104972269445615536253864980360865069898558769167670293133507530895257066987280121495054501054249822802748858338373115869650522139284879733853638215469571042692892012577434629032830709544721906268425729015602955636365893975759032751515647045081905795964668026615744477581121175221998198930824698439480053422847274309920593947445155584538149933633756867794622172730390939437053624853591879574382366533864153702435465083764011510482684485250949274768707875592610479605867218964282213857257837756795954592911746677518424773720162291762381752402754345383796712190823744074897253670589560469580506846552729070106143436434404351761749625262423363093955205501339975270131646363404858563399419094335240873986996199303191025499302605014486198510685681196619203513322417822659270601345217729209452868928980648490044293729760737946707710778704257271924332179423238926197889779413834593257400647281120068713827954325969222292196420103939318312113967973594556587257177383742536777284313927520778057367888849544523672491822380123730022903645837581233609760014370045636475175060510610761025795027754940840468529289541766674206896678337223288259992919247255831702825722453424722527798772570716010290353710235380263303856112154440624994194629098970326079292172238434001832293904737157648674550547175017358660481340651224112034573057775694464076953905391612396443419038112752201137568695496452729281614164575933687200392649105537679307184311840953659689655981535467866326932885077672500761187632258662913433929051740334712338412602179542389896475178260736702451110682966445842601735154413175524085985710435859313630027907862212173778149319599427344157471111194037965409591642498940354440124411085478991784278546775548790813922573178910600217149172182907548699922569259469906600282924143061737166520067630456619209077484073750935523927990887988781036714306438739186989849590793694962285057689701884950846993146571861909714524298429881194594031001052771147628182721786619645133871437107787440782424883851262579653942538718571013744954469218412044797295581337294772377597570186505135949232905113094904987665976779143051748225986803447954943278777879224495019236845306628797515516572534747242850253360981507150237459389671522642479480321749555820714572531008635259706647335461996737571165216739394928355406515495688391768998837452892461205255854270174959665712366798307786844531024131523434751093860558865733008332194060841860315654494737598848955132747596332396829613162580622637346470966256911780123048073243388581857378157233507371862324605869152256168458498270534487624639445331250081104268973799462507289451699962380566902263516846757260509653477223124792783541084062796850081686854537985182174243422197678302314918061655582978882710476248356492668356222800688826967717951941994830664628100380185654428750457080452215940641799141576386616239374890691374737056386417774599404701666282166248515190429997262751072708162735579358062940545882987289919983874642537775307972394621329801195144658161370777780079806710972470197886132360225864657855847306256185982662759681902113235510284552693205978323001089332252992527401824282435374571023595935755973042002355139713263065513725370114345842268412097830247953614546358610138906290241589701645610971582438383598233473469442778828187425837674706433333600759127108113591446926826414649301035435609903496946214274701086129867169816282581641091445580135291323433992695010000603755801629032554728650152656134625822521116217054424406598926155260181438946070768786091509061855568258242335585905573557414600673434020370716320489388974235889610486058182003363395634714907380838840829608094718456115303282382040292984328309327886503695505226636367337248094002791399642606297771837880466113552915852813166565456745284998889963011135268955770138730267705773922213349642513959008114950564278856637680359052510946127447393519672127211081718517186893012508634430412760085946379600219144862389130840295868588513919469342742031882272750280826397421132752237266939261313704699602617410944838703549956592732932391304198591899491817736847246048863153667427272776504682003796947810455454200119859411388904766145144597362919574209510422600642055387365124168094325171391965082342157858652263843328930276844376605074351871743918734614542610913515425537445460366739200019472474367822944832797253581906305371525164697386948663500655043069334565123754656930656216822548771226760974329528580574580620412724479955568499443123296250054903228274465991170282292284808279056682330542101307856856824415347382850999816452566624243581238979852188044715209199449189571350442544811104231464768397083994923506492320240747376370284164420751655777204335232046138588557067921282756562037149756831455528947876540370010076818658067897531334323246164952088057745192692031547886679922715833812190283738846538711321708792946411041042008482738498899876100972510435908533005539459954785087125881557412926101174325796478937400473819916380187447474310857175658432036099386663565396473768991450984910743956106730545927630845375110298296121846087422574668756272459950626002926646465499719383078452468399165109563845901295768147468617468421920638042987522510449934491355987224696340002502658343408281263881045029975423178729433180544104772538967558720050990895266996588051950691254948513491669529408440044838383008269811357160637222976374590063196388831435379513098632555180456600080874708065165694302889044931453318875067753874358084951326739107313952429997624317534316896557759776755385289646406043930839097157498329197571622491121533245010280594294514836480810914674363233496497701790150569756615460170461355473224355106383337506177373739011548899253460568476447272627195478412120279185919214989351240862543120044395427386148931027696890885799011361286290023716030180563216481678620630222999581136745834175691960580464529993012658306630006197788946492970337355717314252179263317527747704454590181044346033421882249174245460887302511374815896807456260400613688789461369331135899047788953097441711211840058907488273742543419071927248088134288434565350519604750504869637433932515478846735059079154931959326292487974668617428796772945898742898098203897569318112162716842072639191331890129642945653926846446076160185545892170670249732744525805433143522551122546894945805082122008190375655249464246256244593780721751447988842857718661492395725017265461820488157101518741346534182319990874758776224196672516345876935528588441419922556619830853542787615497193412241115524307636379114117904988991288850785305532547985238557245722452024600483170569214725172723123963930774561523571043876856124864975700338761200030454293154047786688602803856036548307321896856351341229379609307739882050926142419368587729190524077643447169921510182771823137108144648180135633580682926757679715417831827173784884224109606578329051546542139829163970126571177096292974575455893707489318966640125987006736007208482240625962543276324195261208645481955875882810945128489459114367512641587906851278196362318572875448952690944566535558096954337919310866606738634059393760945432404609403485960734404387085403688066205502494779423980748179994695730670060851555063851699644436714740982825739953495148927774890993318945091654509700457730482814131915125606904324293339279902828293243120169043807113856076860358817057189182550820654253592210133177394327072008820729461496958271281342826018737287714907432695718841638979612460592443473653333401738484915269355863184705959438481195922867313887271958701580959691327854859463175603520851570212015148579405102697275706949648356765207535242725329077889435162183793365304802832740016348564756428207647273826808022912097437635684738088771589741296710339572777834822952468824442441137586718458286417932687715665378553523633533304587187553264838506400678423874574738626993294015915236365172713898411451559684727762754783842098831862339553222205325647100316739929665884171834012342938554770163830537743091121568711389534722871583701627926898443653856427659687903876708100236752105180122245956879257040555639081760863706789934268732796627417852080033042098170003217687014529881269082148871509641499686214714889929096091509750670524890044126967245529019388657704909322429786841663288439610023256966852536931667502541978559301818613424768925840339134948199087631978613925289732961871515734074693010155326426468795714797893636790573847381885423899174857119239394662493885399361966213094347453311851338939857513169430011505205762432314837772576504843246735385833921305235407254443909037500010683873703433311706437005698597446003992495104176633348963577136134787609945847250966896836517437136523198624993038146001093266508267707520627296334926576186712621256427541435773878517580992823789815274098583633824021014108399703033139761263424994147388584828634946365676735698870343021627458301733455323227212187257452873432836197777167114724979951743436604364327308719241751235361798553573552772352414398548507662355893714252254203418920538962916846830593746736502338753287638878320455582134428043315085889514514152903590449296116830641932521631651643993513108039890050226998652080656825635772976874250544306038126697422845054831513601742355034429986856911446679432380937366872403335043611117408278773860429281091349249663134328180522693726510588148679935368864737495514921836241225400768467408645791913401243813177915444186462507427059609204036905761985126988604609627661556947832440832592299769346687507273104325880973280467252161486830210970547795885020463608655535019625996753620937866024011627442184249369983315008976319005892268531928301683021045762687045801328310373260834272356898180902549299469014055257550693235633799574542056671531074769467681826183707865538306313924818400819925018337644401252302578751621715526358992421448662532558318578057810835229238218887267526953420873500872351736865745960488360555380007061762071939308916703460982264022228507336508752645442258019426249850051924125771084219653532767160380091162976058470247638021096766438169412609351290280650810279509348155292371951924133572468234104054001555884141789608254539868018713265132044681071236704829285541812924685739416413580855758153851761086645720084520848647985316255461433262675956134955033768465455861584046535964104180524496365524280943677442031122857013726113606283262725412196223302587293733630725132241650911766608944683410054349459248576059481822751212252067310161511073405855953036766128985551464627341038935823454820493811411164576733967229203062732483845081295856159263737975568297988988386503035632229804847058298973791594504170967064812185858167120019732595025279379098590647320210740931535118778950105986161120122884809142993607989665730416388976849933492311912352453808304487036611130621068502460508860956792300215662920736816543637001067343711326559932738130807363079836717744802394269641764702923132958743964751095413638405611351891342406425730234493635534401618820858848980564700302440852884334061554907001302153279234593229326756574631115480861535056555244368086248854566973007604194684993419020828421443604129977711097963892724785930348785713227282596542872389858125268920704788355357969741589286270808225620499535037779869090773982301856567693651522964412825705921651419242852250730018230268545500340659960484994954003963193914326200621619625439788206419701965953399353033031353470448937099948252036202211143981233196758131132995786622772270009855912583430938564881356773759124771982337810399011618001047812509733385285162574787456271482834175864294104637033242379948647454526207043308139990504852949141404743525285033862924385821554068840275501358466194732801534380023709956835027919355940695619553476139925427682855745759698162363694203955891506566662652045454324491263963020342442608274584383454027369115528184127282813062208328125449816451801746569423854136471155111410665593216252099870085624885363614686763845598129276705937286993491251689969950963265474858626228115850506835095504931114544617088290926446083647503266691219685329479166902089023661362948659718004488089227056511591560464413134197191603485570877467613652669866126616748148518336902634978308491907627326556208313084116920328372787048834444853845401107132651080054614132440298263820808192158597325433124600044129297420371442985325972010649899845204954011513657072403065751106189169723695289023960417837084188588332874207629994639104245612487719705936056067451603661835287821906217708472397749326393271298228163231241724648182314406908701473890678634729136877801358607116398878107921760797773854791559859846585522230353896067366381975933937079775461211531480110705190585420790300550424260286945438486410580326287267073673378936410972943534364239900828893007904985264894796864234747432670724325998276162676608326673708263600804519511577592663042551603804618378586380721000807901462336428205720402497884634823109231175092997080157891725209253207525678760743684386961590661883680049332507811277432739929436933199456270464324008970211472633639478541161244072432899883594648112058175201553759078763472691493041687201549337362077324933835038382340297230057651849361678223314919200132407413671024158983835703348852244109556910063426005740439627833995485028262322358968083164196021983942915354401497568846420132206688601444042307858491430854783514998906938869324803847208716614098565062264250959217430094400016840285550473117643257212176179451096575626642586746181741115391737854189134553687935956973897915672437365345859656983746440392060362138054407261012200128688569454670848213452156793358282562324511411965490406940211942431826519351859745697557471303119108021305219303433112580585806305923012689380829201443794614316138836984117931087816321835232156414256078861629377756568266178668302748995948735373674860888127888367249068813426791777618081725453013708258262522557271661040956136786381980760053258239467341854634845941366205725514506614004662731178104880785243923773222629070325987920425863646477893932554231765266965729064749289098387464068512247044895516227617325431409868126046609234236649532987969352072872963023823340357233060058131823818299428013760070833163526022232854614441223588229008487056953629186019917275941748602004534741567054687611580893197522757263207385939359208497789517728699783015921547602334003718890142484118930021733576785060001021986460148170635313393632433270240122488249054222352962936179745791346368467932724170900080901191871830320848651614831642800025939907095548662863878160021330694260439476207936606293127344399083735960186591228955034932241383883053888639892862806714120114368963559723939190853877581638832408434149413540663913933394270867191592406582976184123846273969852521626569482836983551183534383262602567311858750294191904356170657635532243693452639278212944425744462728498836772340992332604391706803442537441087490499679141152324434573690769788347956235404824321224364381727781541024358404702053451584682087817551118254040117804899694614291438920407432706248130933868108538181403797697271480693620745524178082175126694902591013211532186199925814288815874452023695504927442464731943910107610834980506527477848353644348157233026588891631586741324264856879006262373804334777253695183541109895266954925263347334318302038258234897393868933612592963935483446618960464477770086711322896748395068385592251974887468637714713513748120407368527657838039526292292393285097402110641029774520834920676066750237566622064161143233618168652382159031607366488323491964026960278511523008408788591585338062185094547623369315875460769639624122799208549931348095762360577138659030214036209135079982319419040652009762424775816830783362514632875680320260207313062201004363393305543649741951519829374170978005263283752318792010011015356646574677047158654377005396072797828120360075980867047089761856222156696452865968909881956111298654589146624795125315885873489907465518912143829407720696638083696605525141552629235046246892571046277054173872467148180727832492371395942808849483770482461047572912454706512624093869444841970470595090244915079176435297610027331681076114013301652053480531856286501573399151134422481239355740326132395899797325169221728330564101567704389087300014793307305455401358613613305430075550339402409781052824678522765218071237872689663482476104472295088467599959161212968456602354588686231046336420237142088855526083525873160070799275849922797886253038284014611324014392448234423490841405727421219710091055310769727561406888114015529230577517498641393709001342576113168163389779751575639472104040589699062084500226597250997637272263290352732279612200272054020098330130497149508206190284379451775832496431095792540614421214984776707117870937874064176812660411545406017375941335614632878447187540255252150363478156360688645501188179626655054844607777211125831094820387042651000631858122565563642916244927139227754567058778611733487900904983051647509305428190031370175097028944667949025488280817489176487808037822232327624629002269756727586265697578776468018129217525239800639060382075720575378601847384789534004311669548873250754004036793839208973439874393454515385015601526233497299858084688608475167138786670025432361941563550672384407804727924284630375102783101010862608005393672827870404561662354503494971730057752879221569859650316254594185998456602070634286222497229517181616706068439854789262116255766728394734700706250305826097797575731304222624422823572834607870202329947581868342282149593648552690404196401602869933842348493948536878187249883739838564246454541748517615686957963792245526725231298288752928389977247315580491244227132108059289396225451662041557892074394143920448082818227493223844238529669689278442290418273082114900060069893382640683075873366906755353148360776795736803364720311359953291405539712926519154211563840608034674517424368743823210483113026911415991276445388934842418979029846857025050962313210614729274518724613166973396516473287122809962713774836953335671613097370802792264717412992722416094825740397333951640378964823100968933882336303880473822468343544379073260098259359717780639931445301080143733802167034953560689932179713368978672300451369576033634509172664460092600334801333587372225618365915920012274281025619067965515922269889545441757031333858773743803051088493947474357866251135975275409053805385191180295679003522973907920798843612825217625533509076695839682048790701758638567765074030514908014986731123734991343765339010689073248969053985831534601665055877048875169859601786317889036629410911318578293222602736596492480470287647397155638819708211299609660829711560466479470880506801802187400472374194293394324540360535596973973000159806676901057017965044295938276046898362671202816580080968416235762850356318447349406575505778494146566492049717400641583100944971871369524646300257625349269344128224530998653507068783362448561970338815972176258224605309480133004534431069083017735685798612244760761294349552898379697966682828892655578980604055338637357434245812466901210268089123328884556193488801970973635875563989045061127345274412218368820886053083305305905895660975694146386527288600100135257997938039613919610463676267342668883659375974186046024759622912929212852002609793306277279050508535178414652206691986262262992039055006964110762463520485041531507217255261843404271072780352267255410369860092121131977507036453092738727473601125280497953263299260854668730657578635602394843232798686933140003058859712255338784850195922993620339280082232302761371222399271221102080899136871704426590245660866763162568174094847638992882966859717517723309829180529939653077218487171149767450614798226004914273950691465777846442723410986414402566413286991541761281495012647456340814236700267238945464713252408188320477241560984436738794692803710938871868831640393328309115587368592144245106049508590219638665088559169772687770696140405734860979175922914052545163095656095755424493206882365713999389780523016605423884261895024334272209803740931401930640756682017573078704719296685324257814080079557178961424203461726920063485527500313999189096052643738027753155557612883476035985537321144294850814386760918164054241537282357076596240122338995887316869482569710055756394062039387197638005793598856071467858470689459909026783350970227544563378323008521517856778918418273304898707823404394245679887465376069962356850512894393294478047218678523802470201359868531535462712872411630842870098322128016664087742357303201711144925481613961832224751397366520759817015764879033362938775846718477810130622227133136789260950748551275104435497319834759318861333179404248135062841563321312091358987439367516833347994693921018525882905393443099620232291120062499170649496148584930452786573026454430091319469109567604021662187797491772843495637202626251210853319243180221390765811917776791488248179512549228534411382985844382566291076601676698539332943492425039021495899704532031651555246357040287922047085266970797787994730680902902627968718938933314930165488104910169106849982068392373469825183008329253579161561644040831839248360000195237387834593503766847547427177743820280935446358467610797922900072358319279421172470458597980329663931830800958002622555463235247699796336048178769270877168429443526208876713484054265313916142682835011708019583082131944810648091083414464904479985414462142610234926640566858712773578947006042285728009857125833267714762927111578235084520730138506530477437357366305649434352249916478312387010436514662598913662608717257740355626985626569090219428448355956171984684177557007599719560126878723419273704870515400640196810136298925765056654872673688341066937856212976619662258347218851373741407795487911045358374405171324310781698095142060439407736022799094564217127236825453418469967337835676248444221873008717137759879471623588755059218590008610839606965041957617974623257957675959834976683009543570221920386779029313015279413811785571834936844821092224140302022311669959402697577394718596444256175827518226574911841043547919279343104742869104243939118850990764683118632965729573764228445621282147901503822110466096953256249468963546765598006927520135597278670999351446463306983785687621057153317408976914670460422701937713461830532389735009488548075515339394999880594197378260761659372566851910106847447634355286382678487297136417770599815916623217005579403572233503765956617349572832600354138192228306488238625055174672638619405676882927875469358878246280249856735451927691277402755127417087963548506274862505413374497358096224965781966923327196645977140644727511236410716183187336976717983867993247432574996387005468428086163258711279278634139816975420059808651176139803312036651722066276480594649200273661747234372265208834957244645361573462520966334001202518730416508208303570381377578807887547126036249968050336392125527414043610833494104918036124472713447118271894521658144577475109800982079440804413538720597254394524079092712516691219488021942163383636257049296790602883232609913067962041261063405008938408439970147222667685799010587738218440727828039942852055278507693504393961013031148222366586877758853796646695254961805105317502676584846939020436457124616651871988640047001914123754343919809186014987783852422424911034684024802801349194374825313511477118795037699114245773809117062439627014122020580273638317199852126743936554452956781532711535153963085184035935323930534991102641849801099128301062881589093712024706129861512370817486511788975545007222299562446210234274477795867899325224444806701321032288884781030945156735802363607853389578225438320029143956426403003950888231950456728093982174941237182455409553651316097245794982933059592832213959718664283346904710205770516890688505681705887507070285008234627818871525995894273498660655103652790653929150212714298055605003516989730423586675931060501896858510875934246674696790112451224416394393706483268305179956841840132276374158648572429445157344364167631635352378762976281940548795209176488697041121840790985823681621417398707524269589127413840863194647381760969240346114962985187589119413754354038723941864756888640123373817821650938869783919916872300310545218497349342746979565895410788554343099806682559895529581802734853696374636291032942930257538321626963112962649379703779038140080062752359028030088657603100637587200516175611395652429956329220373364940205628878090390667604758543139682288416130844373208385835930301278457752001441698439542306092994594828168214958968354603712307783484166969462034862255800709796864812521728395100853141429833044011226163095398980736909484228954166448604265891720273103894739924441185647945892567742642233255189423208585448396393757428262414517739085082187694005037597101431614504885957320623442784000409434164151818002478764526802724753712533911104051779845553781322387490731732213031479317033511759108180882056362008487555983373472139711307869622506916584596690312663096644273459323095145445157817140083672097965839786671219025075681851678678490744807454156816703042992118846891421420550690419131842997774433009712028246523487642353841510131825310211628510733572341141526674468771723782633713549465312487346820059065957099261029424531520802608520150618482018604526346709303457116118898373228286568145743004723535716983626567144417781569967651649365560483671350971477033830302913569751249875847718560227002209008483285679420270850101972188312714059227706284903920030416979998702639194957847560421595059222815628797305221837405766198422972738085364482947652885150105199551172093459775528128159626418318708602912819243096905086249230271324750926204357076295869441410703575550197418028262134062208251509147637901913374809533934021556209777353041234579368677388118340151065219316047274054778556837245875891980036385820619541212258492980859147989120095842109124782599602528778459381104236082597824255832373062545791937386364439104885434634998048440070388531451772117620105093807464733008368391920625566871141859153514631094729363112619341293459814513031011718974220653754198034454040629406379491907600544174961652738964244969609527023719977933402281039572633636045016248096975853389170023177510358319702958180431097518654283056267422910944194282558616864791806201927076339613703556524315358691142982370406588581323627620813157372834969372067678581516409855385016050061121410216430009079966816688820632317343835203690593863156934267575222693773301094358762132371538631273432936385793254546360484747114399491772308642601352179536463553157592018922136670751015599174881498472218120934296293350117051833130704740917388879533895368680373519246157434838732466359929256220115820564498744620927540588242983347681441780072112241362621968418361450528123374984181943887187812162843167979890388036776764688062078358815076955642315820503654728281019754526200859788181860212000748274719585334686243221210299577794728346507726929320010520162170881559777834503085694439419927534565829308086048709647031484518517901641790836930346736400997793340724630530401565117047103325696626702910027653024037165782030359209672711434062561247795279653875351386529664038429314108765122685570454802673699550728543464354046473870501368384920434592433819580763829647562177231240758988890426683099234907096548156719362172944382464952992896481767521907080922948749862376704837895051458011899493412885116755585299467956088825074728180173870037217213212137928231977487044380422853155721541956132122659325329477753060291761332590686097823637379936127772607593883408516890133212687457649528375385272557471696177036502551838949612559471886154407839771121530140678214073522474519201004502111226877469790550781398219586417380286645268212104413897456468793724609547565268209019575978112279154430499636094952445826159827565340197062101721467194551484232684703322911518118697854510626595988817909348886419801107320689666154619968120164194150842723034804693819367714396689020388003682523693470261597452855921305687464719687664873543539703794915522426331851352297694229132496342454013358298997565713693225668949596708727446846451218985785547170098477373587118248046551697749211583280573931931840320641178326255074767717577660780847032942673118737996774823097781150697661558295822766451043983428079800393978822837931349548073541560994215959377744729660784849895432466457449730587568390243687277329860071690660237239245037603395428185496108569600081306592889979759839574471791824595379694755702329323322733762754445858695464310653645650677562550141544246001628460081859123318781808293971572242666622126695730910367054285895905320216835039073065510333579151819722866857232271676226253354253256018997322579863341294598787298960844372051665601378022436839822944431415817549381945296984407440289818093339256408989914591868523688512644461335489383193776520698361200891111685990666301903300159660141096039266211128750783817342426181685270958135917365907279278682205520121086306908829961636623143613618794135460819638640984145725605168675462366598515449166564800882930380334774999656787232308993166897269254786495818255660816453623295565652420187478763072467900318861791984492388547071726883827255807963297401947960038755400025327230594687683178797566102001552689847142615091293430922096001020081023913035869192432693426619439393255952882045424849407564769524237786354304732766676737848802453695830139319565506917724117548827604477554308337815014425492632030659281468690103135643036980930166177603239365337549730822204202044229396788136250456894205465465121615959764886511775325264943752005256229237125134818709064627171299531244741717283525872561952803300437890375157887391258064355599341574689437505324454921479857937768171375952201400107037925079362518153935296072754361818985868493080756811665031615662548778933926032408133413853189191189260388463225375874560704304425586960458482008045829602749655296350618186265419475848535167683924560413783559010821126273480548762562301340806639138356421268603654968947277002586506046061437674225006362346376304988562205837522001157028179163144841868922609518253139288634958879039188319548841373140092093713806596743957301463351656196819832492512552774143333263329023230671401488871804474499019578876391004416495712443383495986105356376162660881380894183514919616743067086083380082874131173685108551935787846412638977552571408060356816880566200394566977112611516245240802571803339603713889839093096040269267353196517283728431964307768018846046397291651683578940405797457965646257444496816950802229752084834422212504149594121556239284150532652866445830867784868479115380436935151714692122356976842296558630533866617341098532283972492397427779553781683777440069020030015091464729982136470694261004984717210307436634931189586817064539938904846529139557846203913048035877741726305449172313321660335466405734237132923075298802351698278429972489272745900218921077844027135300523112613318127304227127959536026790257677159583694755200321093782212621289381202944844960010558030133002256671986205649002793527259867556642912309771043009879006294453213721312448840137523649420352751333063213668788135446143035702198482579835998409222885094727754597831032168515426327127498967953705916298976325695931089169146494402797487357336107040670771908178721036115057740890117575422809455381798085398230002021782311846141395924851367591749106819379359246014851615610637435148171771639708877566491371828329674904307973253653953087434353772420886835811071268023096121148560505450242713516791313038071761927706115884773898065097268749665747045285023912679490925579097139901423976274155413431760645967034370106577549444923833588152345765082847830185010571721465903909738502491549019928689854780457825809267857279755038413408176365719710569598150543997240173649443301224486474881449759702310399610674318689049404525136206086824565989350851502904685735585117654224082367801344552238066208148629624525687999812537140468233074876913620860675587928679273466426753430500219691514232080796844250530266098300973060570623783650881571391045292934150183327672659132994416172839901195395210900122713802728500283537949439837974696838158449682627172770431240960284735269490324202906517387501340150579443663979738865124565679612958444672216347336308563100635106075903891576064475472041183868710836539131857646612496938666618565815609028351150656723338489583514550351967858680430179838264636645096864902827434558425881794720647422453802533636709674449799359142108444241411376010091257017688791825698462741189552479227347576976981759094999337788577175338919834009623219754529758293764802130342785805263426670192623496670142558010899292680328078728705891140891027570615045757289160938221537188463745272507196345722681628252940960244757388639068871348963894659419598722344231880694633436082112821608388635933937670322390868361199766315111234095294018959715894598556723691309855483372240574248331927809799683214220420829368158973907917752821310794658029052943128737730077346779468519063871318499209958549910093500542988052821648611253728494188912780709804334723239031626040550738945355317599152876257420880069996593945908528945205439163062806651805983253746370223920189868252277297881583958926211151273429043287818524553231692872087872419363929986873390375103408430917424253251687879321619161846651025714640738836787349442699720544118937918179996831078387423354035825881694985827472201242275530357347462400532867708489854701296801322011352211486468699409040434277844735615477347356526357867445523133857038821370049888688417806729480274049285424212869471732315730290602869665358121618333766395661364279282485028097551682432562762603384243343243943472242040420255324687265206628314477226831707264272308307688966577374278754609432993515738680924330698400295936980169507175240706056524417168156372442851949512475342421119785062856028135689245033054843542798625752975946191734661192620919426452826078647385058835653672235054178905939144837892863574267531651944208739387256404670719541388890251128301695868964011547441355632798432190659641613129320223726617410922857425281956873301818961630793802075010914136139843909383435976505957542035930705964938008350811865364869967718572108257362297246311378224383371612981267309241140952364795757763404517420696281386701101772098980995167897140037159272199736797972326185753400387644390090260524252758732137032648636339728487623373918727513015127045058486271675629791860787707306902603116215231669340251126459558816031527202309392135409780550704780124463128564398302071694238208010677906631255573023676396688988894446235084438789596109239802969863307814324947099516404571550855408175733552425212055808611716564596405566907215146361999840346825088155470364991849123594025785063894705743988878697757725747232100884818486399649589789941167533805139848533162026884323649984187973173411051393387022847998264268139211293302374340553356997159107311091878021944040845001364906762028068266103813172365573938407354656131403383181214359661344266037426265195020814250888932419913050116962980589946773253815795216359274900644864729152577058509767287850562678232538560525216117520204765250443195478074471050309224403409549875243310841195686741502303301060284652622448362862847012984695557093740617024916423650969844362957647750560487846613623385876770455247642141258769058783286900323315378420875931795446788986222951134003308459346254447341870804167579270087550416321435010761975070248756220831979106677099382284242491319339647649154703025334347348040695196125273394157463087192843905889370897152472035088011656119218097335147476263061274440459794557292904093978322298460976865195253039589477140028022858124183741333769101300410628333369235641340656164790162971085125884620464114358444311090599190808354321533669678183577040590314627005412661761538976044702345326307089507777209153185365123710623746882242296148134591705574016697503338416250268063621728447606666836346204944927682138816385156863030063696463739620738157325211283239820899515389015379681308719640416745432614810819938874562700805596410888283048857779280569104759927447147233564911892671349351168183667839798496677155531914906304180854944451438511807651030670729012152912361146173468508797448473527857849087796112837927812743130205592968768831063160603908080880280997787811433638747803872949187700963891076668183073483195594051988836044916344780702425846348317904883039651219868942727975828000601955559623113464642392479110219985021294418377500190968329728886845768307023243338763226616097422256187799477778260826051764310956663111657496626742659653005599652156786258201134539501455229978504033589554551182520595629425870180288068823055016075256215242199469125509509682827072749827068809968846938925582212103963747523040997370269821851082246836870021767433670055429342815569240136869217907362692687104949178439263975145428349432648892817380083368182082668182145246546212826730042702795880591698951634823594646220158519282879181225753153709906965037189954772816710482393414433216697096149922421371881209748414340039465513345364556703684634168501920985756545160402297180833470782711861281002341450873931737191975070260935253735852863524098214414762141871998202320203037592852801784602540833794329808390415733678189671267170147188816942770611974765836614972322741204524100878529208413575088066932549655650883577020758952598090425338999043252500325887281745748142169260216729478710650093534214010519433930472975731007526847463851580706026738628285737086035181246959772913163014773007002498735070075713999875113489405377743654282015857666561393893606585463640154977032754008962557941787328523130251885765626147569266702856740643184367618237672689561511864370467885077792571122860070818186286477085628235493406010641187022721880077939193344063139487362857695937139821216923339248615845067862786515133739719481698386502102391180317938117763914078620306512954437503941217187069630917389754079148440436157982228074711625030450656509391707327916403471660790963789822450009045141621989156279537298360319959434701938485260994512821252597934748818688868558758199392177261374516899861839610967269315231025730019875906523336166728397804686268158554373496517239752232363724499876650994937085620817641875915712350313103682333802530179317530169447259029642524004114077160401645228549671162155088365043724349913793247133234823273167205579742865409201315092672564590516427061716009818991244295057880975673702402743735860978817131482623244012840951448905036673412296028629380529465820460186120207635235760936355882951511886253935379043279808706666822082746073953802035547116236154204553976621265868960868301833760235833957186102008840052216604366441487978254392131382011677483512346135283292366010008813046974604267972746165712731784290951804007586659577090142785729160801247847414374079244506979913157857720439787308961028982861971061060481982350419888647699935404706030735025326230899775055772692277500019623751812027129086586346915455474825109198104125110603992207199107497652666449871836716764497919888375436754092218727166864696246686114827244714678669067957565766042677411546784324863344327988724010319389138377159629864975865244994399222595847644569401205974040356523485120605868899934726337776473010329267624939932428682131210045212209129115480477273102585440004262120872525822584036908179880463644183206992559038604255571582222227305213572087447493935154063368764109217558163260936881264003876383478049984001864319330154257914805443919417369000733559265018119229789102819292327953597100969300241450570054661266127176950180699207729616622295121960483360797763683848684862078085375236200841137794330352014130686166712955764424062544481983120822689149658620903589200785962307512099993713428429055415391450334870297048286381460484680217544294868651954279632106082846193104848299386404439055115873864422553745790818099651466539247758800094613987577820007157254489331954650641901963662858379717440588567533224391231919946386798971964622688082772747044078908999889904750846025304018457597767891193654449537165234075293093261635695531603669192772403212145181190831286407851029174313562686480898011353726639038581369382618329402141737827508967778164408594807440504032252894345203362239772055684546509987507029464879510756777630268554572141666925881265250753016584690510109980720919343208983842435159293969711815944841433106456672438271009463219289898289373001398572798428048673368855188077542870226110559711948457125296052337751529178117784536299008487731813580346793841350769064084773542667132939584784796026022497176064918755138015977763179524590353200254946366045324747414004303944279768453765936754047141793041521019006040673664637508288226728851770894998464156326581743071634641002966884551549542256596688913334153221082048515305005054800851650346927355275848679862350607087108119514228530067632883697556128215281657239032773697360883411593738250105818779489523942912587297677121961783131919783444585493797709101525558526672718011032658659378113217148964896693485440015534779492407341657671475987111216681647677981463859153637163194591922057146102168139859462565662739659268964234903201802984787272059706155989165222081041598853133728953775250852238477136601772750636618345426784730451191830028318645511870459786380640084218228929815948187375635327274817549366875230555501919722487747751826312782875762240192756715413463115291561664674992365576474600557351279629319210814701042256103826667198498550392577714313584939000780009066338483119829391289107283457851770100477780551167845496151246887703341782766286648945829591947132067974526601820580239422320945953438607963248890815008016119598342598471306868039337211398846021479675340785730013976878075753693943673620846958545722974302568052746934430354160250249743304719812989110361995447833948891672919784562125001110459934583440755507666805653980745132748821550009702971905113861074994572283230163014625398304092306234250461610876324074954680129099091542892854910385988009419227417769928438572962025469398723700179503234157924115131490427349674282201240166300692902125562629292221649925435871373484916357899512859879650903502381690586358176503200043460614149613290566573004764135602282093980118911314644702894172379290099103758514697835147789521075961423742149775534928636412226658266731431189074462927481615883389390089997291636695361970167575494405787519965219713141251482669704798972561207703938289280094135168214801311300914071550325987262749844870732828210507319344690770090667458563392069426507310728308004692649536094482269045874498012102052703906614916279963765050048165023106501560516032080787512295155839446616537807670953719722572259834456186324653954900934838702210684671646823510518927476981020814276771775800637957752610343641340924995562052971318006997496875821779285371003867294634058951520168939825611357021582696599240300208393634827057756697525225825148654515354050032869264966958179570193817104364455742955335472832311644672325577706717507003767240503125371735690204584880782795555592509695538753692872997491769590667187254797701622859722599111040271295813689733948534766499855274870102528724815989839312157745215445151668006270882926727733056877835429937371803201925472862880085110480208586594006540572919401050545899345181800172757314475881745739086198649585210806180361631838102418268719106380136913890302834633857761031542066410001995398399655906292268513623832609726788115157620995054541764472937741295125323099692650555275421738639321964901714676496153735693465935751853833950855615041778327072249537121101539082023437121504267329910957780954025289187219121148051796065909418997704997345051244357154122787649063452286012790903138621434586585050102079578576082981029097565003937311749925587399115904322284908927959339367657677676751155303181072743619365591102203440526911537822242591903453339537147550178613015696056456670043470825924306037002132287538770673676684165293438769097127701245771079947121223728445360396368298339217418242567726769401333564601648608840083698801859782057887110777285666174140675116497470598032937213781990469432566753780279511548837116806625434898010967516443167080889355008709630638406934770605389388491606666936843187687749032709644353873917848671671931634830656464251102117948781402283794148793002233498266211833152497534752767491958762288394031915249029564548238549670733718067076087204199049466681300277317231793826519630851878693784502537205769268788248077763439752860541669491800884667881395266132050291995468608611576495644536074792695028613539339385113011068732512099570547377170407887836985395684716990578652549805536556592918116478986355046395720869721441605523279469864027742315770184442817311871551509801244493405820018534419984211357748339030451328500077955474639715552925450947816022656527497448790115210661761991410363925795603383191280610675666399862026950053825099582466657466659829930677262772599715338042752226285399173568647667946673811625483008664996828416374042548212402502712296078168520583714618529238671706842714450260782378093636103450681896351855076126026521567136371862139664413774656374182598693543840527925272198459413604582815079542610482372537392509323891086077383749956574496356231007953232528240446517447669159331102782057406034976752511505712830774065630882967047685164496671449378429111780767444888869929271673540468597232339922640257005341676378643788615653019964483234687140587467389454247182281413330999465641702964614362071171945852479096138626242113156472857980523835591848336605302540127537291559798722391203669033777886630637914431080108439699337627772523788871996219073097313550194699251495797248171329433279867580229743599715694530549039063362990812208321101891238087637280005607990151698811632665446446190973020028810008497336901393720453899400751407223904266625873985750141953388026221716443549832516308254421506316351988621494510292000161245917471019098069328019123223604336207139963838881639497508040143346717998988345861798685857791783321654384410807014304894434343746145190093920408648861257257197118689378825773852150977691537320455837179883223164820577351191581529495537508477090222605784418511201567711247259296073480846658077633478313340422010877091840054140888246723710917909790110128809430786236445658038829821440838564788008450138436775911865361019114856954519264985229101539134495132225078403450260196199624232829733030816931117784812293498217082388342925765294766428292169880070607752015883687157490947093183806157288115743307300276089425746097616602576170679906117817717610422190343860295167791709312252524952044962393309886749042426761025758330199590412790031993419613121045288602065400060781479946951254326956380954241082685874797872758513381523523685702379743679157561564158136055968236367896011996699103267386848409144065244896465968611366274188777603307464676814576129114616766326676042344756475227766623851619815737386458624168245683948088209631318877247321960739648072886154689662794467816196522729349968581451393188167438205011573946674426782934095543333178688116042400505970497128334418656586685154960534315912658498680074646471870056430806966291825737743064318829633630804335848549894952932325445198956453790950070063932301550716673895657187654806968208003976055814091168648598936181633767249410608501530913292787665111214102731458521224215631761180931261111491048429018085430503685964717661975416902444840579553632230749937176794083119642906766846177831075737157808876530345208479894053797959085490457065979366070512876085249617425982372600655613813642869103886733285383959422589979377928308588143572957044762575818128049915618675789625369342922237663895381366036121399172935853505447418034915639632573938431054048126631946731473797364346424438115843394813475905537809802021959251035486863397682827007617749969967913429492487048942080483438374997552862050158682495213363062850780807879655400978979599151035397790452453723630508742460508408803745518732090181202735102499396237181554871025170416709919692397963378780374372639475042613407929564092796943878017573676670634844170793436337149457802415751144475808353105560980709723595162356707681441244876989894842170116495684864636993990186783301399554286940716376381489977283882911392140462815274917249657551697535377712565066562053290584863652315514865960506250948718142960097323770040260426659315090648133335399403571399714644344368608793235065984715556714669471576517749751570744465301774410938992301336645212419828077300325370869287083525862103360738654872242599244759407402904849183622298480773637964463981465712961311735960126704732823296266936372691217697995130919812858336025409723578632681258763044647042752057500925020493842640420878146232619545137927937577583742544344067739174302154632572650583592232336265457875265199805559452381372877862311333815894956306835657771621012789485110974548037301381087736058699909336782058079613213574547387949174575894196297194762032179255861817836798203291434399378392579247430069635699528806850629867967500711556408922624438308431471326268577601775267442723593746418690516444574460878992011166208931567738316712086150698372000045561071380599971021608579307644939296312339609190465884357831609402960592019212697330995720974474009124244276557116152712353592016155190964233593858769838539811937401063816124319330059179980504084721132131719629140572695913411378156741335669055541717348147949977540830078629828575680374297227335541675107516538362330106453395482514391200898171111828661995358318548149087111770694616056016807406787667235531977544013274248344927333530013705647170249011162620469972185321923637855400800155050844009760803768277433411133726113703727839393887025584909667362240223410750048583495912642737435751087681784884036600689534056894225106924672939301274778823646225136228935135211248808508196160159739845855519181280275380243845683747474344309654778459592142410802826202732299361221211707614053025844139103382321887600502890981583456306433043027722797674789298272852692534815421530401586738126353439452673591928669687144994556114490487933601450872505005653055141773243996773712381065901730808387948572090027884633331426551691025341373509364883667426482139686929975320498165096092588034172113696022220252793667731515966105850398915534456069215768034199389182936130603778515437719906539185705753496528710292647877644435047903177133072549239390582788157339804591831363287582088338386534409067702502848673814460216042223766687889324669603641734713025611367872016124621179801069033045603066986765242246073025858637473582473693094063975268541185440504482143779101054939363196783859861394711513914435874587360596043809300437613500165342184970622195296462527926782851518941920151047413200620886917401560184968756791044222367243987205141317644380827677481885964374617386897948783851501102942407938516799979133985928399569926898255080875583830833863575902642330202229014724720501209506647314759957956050968882505291168351144260698118168758566954532999341815877275367309756157077819278647716711142963364255375160010806639936132442907427770128354587785853113416099153999456225522129370870660654410664374212270058701805400719507110961340520950741849297839031105555594793302977215534489310285296014721698732339582408803522851925386609008977634935204323985735720388425545212940835469189540356484669594176584639779725268170006718170294559464165398753056482545568233125652337548210114342341806223183555513278397793222169805392980934551709276024469207253155936022040992006274792310228025936714918650031357222227570300441063492933619678941264343655789549394311924049503022388464771765040346158483610595595805717602502647533648273299015090834686679743545621173016934763762142179159102440290058934103209723325093898102477316569488700774417625121803915274781031862193770669399749566162487448024537126834365381866528281120795668261970246858576842394159567223404527670752501529641472836557427633038920953151867057906300021417426869960670872737454840713610937040530181896898873605717896816305270246037187657609460194324836278421740334168757279511307598067818656436170293922221618439276652055338687830261342168607460443449455574650997351116365795523557803452168523415621581463034205632838077184894678805934537813642992527594719603584821363003461577691071167130071915579490459041468266794574612568782072252762669517672751077010415874041987237408254855455465612042616114820601165762831203288031667760957715678215876927534435096166885093687344562797258003402856429564064178254485270853246028362408061249580094697728798938487445928566254233048374435905587156501715572769901660910875096473653309955150058327460165198788530759243545893316900355855729479516752973552767888961739572504027387417657422400816508551458018510836757098214951937557187274334964341151706346525511951471200300221774422466640845979593937756428229856529991457177515794023489238512616662654508617288820721640754644320032537589605381116523511214745477525956468693481213829070704842588485565183897839776677594246840821373813894101731848785191100875183086913352653259312929017760553055608141824806501141667026511671988319752294861962481351001962885253071918089511467663544663866024724109344003674681066466407061513512994387338859470338277809618963721537307747125621267870181696006345800204043227169078437638052086591021338228343209394050658722301180520727363361688576717204004082112804395879711348604053068518150065218803630689232261896758922857427276261876148984620584179183570919993375509222954179000772579070267932524044078108838843866223738884740652568413218353015640080451520990830051987958894071775326891902480530309619234016492731741315177987077607686740232056561324341898358118936572735247917973454523534993903700474536396556786761988249985698403271048255106399492610052331629201447487440186502906171395109438391970782933236555549901992448426663253385255139674589643508384530564015374981619448847385732993778256208570352523594756659551697409759535019806963500216874342220160007867166112874300005731504474729931421044836551281500257714978530918500636616710305058324643221180006685777362342465034796209355866872377064985866602119072848540214421860135721721862324277972264076928448068965672116047778595980290178765517939771485663585952387646336393625053502412614286847512997734518033172321781343067115832597591263929124813034449109558933677387561848350609543285506613945315060838531465519392059850972016919715950035576773726658137998701818513535285354040385576046804798279369878176751094685577393988734374578782335448323005686882852503471393423384648672748359240554982281001059997463410471254601866815979650146739323893041735385205666972790624063190598761366443367368247790268941948348834321173741775892191699295384938594381576526330752362342802025533615595152118769264381141895444220894545700620292945846215666748444919637704907067966497615826582508746612417992104670576168689898049888284836827238067948426373179385373079921388667297003857873161093848169461832236069053332337017184366104468475311569324970018935060888246185150367588911251015463873023517334353762176520058634986201041969523461368913269550185772264249612082861746543869419786152440205509598011265181169628594870779515976556699103824598555188968288123510562875868386124846786691385921588263794012674973095245146617116657995689627233798242978691194310549400062769235656828716786994727415606316479124439526317222759448532369219615913744058615014930570537196715429092081137891088120148438852647467239402714195606460860252455221853518421387299988464486063116295642531033064199300670277912683612590599690019936685262872920981244955033355163963755678322527062527165011955069078151973862393588282193220241300743282458146490880094487854994611989913658042014116883241376496446347705914640761747646638853185131613343192930790846897191277752865728686805702348165811182123652124837430982364193547120460786403666370721702744561999680769937596549067161778224204272138149600658143203666561705854590464607734278799494967030689956543550850841363413977350984837984996408018980842491664873382468516557296443916221715869212797341061089374312934365701867100396035362284245414074751278753316629750282545556263722485697984608831888307954089957947292766082604236106473447176180472713992427432801673143159520240988749089815268906792334357748677834463654952433630489869110497325592838856621018378365623490766344532009132219065770944897575488884171280043664851300324748738888761270144144264682827822680732407551717696848335398936862240242515215700640265224376942905008063398121727602365560728747442463532016757225205033180682499448490520247287176218359182481629848537538094820167086195449294827927907217551758597937407907207419077621957800029921682978065692785028880372586591767518405299097569205790181571861365836323449904324424059920892411988754634399584028795515150371772115959798156059886330400626480216027788380756093515721290372189377572757775182089006505154104511719463786331958560331966538820565969677080358891710262548789937877416007495704993171991258772562331567119623874682681421009071343629891528182933723894894174036349962849565126585622344843754036633974362850369338183309826260869184867927536688794669372349070653675522997474919292629188709439997669088303734555291074688964290234454989091316582914433338520541206203618334374087745202210125385684476346163413409167249783926267677741912313327362047734997560683549338741168121075175221607838960628469743370372662807788787199932587928564980324235011505245273863308011050570073647755829823936813352169795171163436159814984382222981382765010706063835269654013091598585825682951301028088846589237550084471097173819472739765665288072513164991727103143618622268710033302640774206411821500079285303657338636117460213638211143321450362892749577403089878338405968962490914399403193524875353283430834228315066359899930759811864094993089839054608636151719592626425249537195878030354085719361123663772604506948042384336908304422988866013842753834748613705204839382158097461944713016536152253087727109182441703267454405909238106708341925292362249686426335617519438077969304001583599565740216730468974001223409131305858152798372153343047700765914535467282884118066494311782291227421683797171530914667688305397244354975815652876463218544318535448548404085764549699844226697201688575282169674510935822020809056205462918448131244329207654110118570738086822452546975089595006766965230745778515605808009097896505533910375522197620996017366289736208126160317121687678354550493642410777305275244488991911404560898959842574849473613792690782703726764206806233579915030760030493334150761837557642629498826618409979431408934684202391662604455439613823339048772601773834677252558383343416712541682511480932919938725821965015610606352624777626929527038909809275494217897352519865302200285393651267592436800113289090872572591553316957013526005974047392474499268073630612763989112780110261403119131162859624765970528215011660712722921838742491857497763433381646314973269691380782281557425798144683482296466413326738010104798958058928843262989433413020991594283194123755862015599835686176258628378691065529356118979649534888039158902401986320872628640453331812310052981660532705871247545011438083204605254166322280491491412642417006064201860742069744199831192126146828116881611549793402777886273148768552931636104969074412596987449102528648326708826927272757236964352951892662593347436404998148768841543333723054520879046274385798863176569967774459245897068044008959726289460722122811437642648373528304108627142258557521985420395635078759129852078411535657665819836235425917816186923538822773019048378652729555007773687670771746293956079903605457128699282602379494978022585546125499245825752891481170621137142650401189831734067840484665295510352374497242046507475072227141073353227534025872599235412544254877450310648025084872351284094765759677001148428951789399239075628325994684623726156939473535688394324530223611374063269963366015613606316920736856603344855981227571866598686597385337021088117553899018707087891038565509226330634317084452543614151347330399368118676998441085023325063908394288152778733816579892294508808501497395967069311177546151841806637986899725225086398465130689615640832209425234805891189635067273151362091309445155447788878001625095666425582616087374352187530400035463477303168903528075097391598083894050152289314635848901156376985624532494144278981764961967972819279530487268966465275215466729527478229715370273114987102994821065537217169958694451003591776455830906026339639796188072614758027299102506438319820412464763780658103756411159084081160410339971643921711092228671070196247863298125167243029204165711578484438918057116915731366647259720230030565430142872759773653794931393586521900272300393471585450567319686675846761504173826499278685368192619577926727353614502963410088671983398762992232861697086789961508563501469336788913846148798619524727659653487977723341325137624460259056053070829288336211917031332033633832650964705883511266273873776102683569825837515913513964826795764521723647404078890150802947468803102188884325665637197835390994014809800607722157029657964714502739048589382903128138872175671699310291725578266793826894512159336800070934028205279088191223409048766786917749514389446678043961861648366414796638908631080077646181717349224990831937218652030021668263120718289290241961793429268494971682214286178306603861399165700884314551911516693123510290244724691399106406457754288265456076600002900979910939677724218312427615256899633864329018611042712656648940341867011327643873437578315098463578434491457061922458855453206965857849839221100821078655361579588662856976144643531445441663941134437352366054995511134470527982499173355271650697694009668344501963687076342870592355137070192550795701006716229996285951147646166054940140450691491378779790828039552281047572745580573210137857425060361434610848455128644206365411891114348117559697326409067436105884552940146107258936882637006386874559345679728033008679926708500337036874786157218588277604514237413329142551894305741149398034158031275263797388282951549082111668021977387847900569511609637740070664378108553548009201215189623608160436458841815930975757130780187078926443742756113998984922219114740749448651892474167615487868333501396470824389812468341431025365390090893942591043615086704431766135874085113840149813409227617138259198493430905267922913763710165400096240286421671902987089280524284786077865231841733829962743212862881636389877290978132053924107015095140011931912327960020116819575701824446597394680731244571952339703597497289055796171826060324913958011054630380899482623358037423120390289679062360414263744330329334992432627997700186427522866310356370424697644428719284635278102568925361480650070696749914651079147312741331217697841257761495160564617980844252761823192326195029285121210976011953459119997735082570674542613742975234082565669884931698501609544040100247566518057953416900423611941886101878398547817521658340345716155064414815017566494104964997417402040427761164234959512423837329091427680587602556400775312242262474159385309371032443421630388282832610404299667208140021797500328211518249343524009718627081067686290022191666713993944576784475596611697740764007005234807649742357952378184266444777480083104349779912924517096675670285157869764921447449477820291393151559030423469892442206458825409898779208257280206120083174294456583638598215876583887909935917015384330172153318579906756976986530499755421217922128185071999656638869590194391479011317899673723986734894567601862237365924056565825363251995955722135059211322501686001606783400680401387044871633218615165028596279895396555634455503195943027145960164893187744553242332459938859357879212010360209628654469293881238298392525886755094137554369565558015259376738956132142978241648111390243383326903742055697944973690424498908796121977087767050242375770546289667140575042197338399946176461025001844320183117064068749045250165960018370518672425092156108194366897422924634097754925410983475441043920452744509200718071844907679498845248026240729792766560951806078079253205920485599614541291527778006756268881281098210320151971575013365727588504203686928153683750708401680333867305273767824012065894862494426868271911914596357989186528590834824746611844312370670412918794411396006630194237027077658991669552382814113446171274649510660388653162157331150623755948360386885813925131016454999531511116136520439145653550036961118446687610668964476871995718918809176346897087585568992707134382429613453007020763593511107511111360578282407096628713241952469753387744060141420622772809725857941571025155695786360764080042329853315449523630209642012932418075592042609041677829280324177985567885503684447292058319279553511648829288869928760253872562016441473203767999344579572443003764696549135378094342099283063402968689875376973373352379476323997081240176464642317370637253205146463829549537799178198819807654467556861931366914939890593784855235185320996970132259747611960445497784958143568213587773495216860526561779515062237169163378471863296840711397136100660986356091160809939019018551280694081053609636800045611502054071978905634627058372711191607008837022823708839412453728683976818086976831385117283134454398976893010332215563557566874189553279576833934746801304979019283390049839350229025626661478368509747560523324071563685511339520916140662006252076643176213783150529577391701035927504836913665440475380972247452368958071093863738783782761950811317510208795813030736215107688004243579358451409447908573508895933396576965922617985246697039669879105572677075551413442079904042050018119511828009448327114967590061121189836220119820520554447121362725220777943173925698615806121483388114707816333207604910250647109600666292113390631278970162878627979394654933624151428983000098433355278381156164675202754884144048049532307134853627800303263290666897774351925497384150150549503192385448186398560128504253647614607122184391461622046069457118328073682983471266417907415275785546891589902397138927693040206287378512637449650466405093624380859889396264592315824437911073550351000045974179426444578229697735414795849305345708660363401557829984859394399439167063191364170944588630786800946894013665142026068854133852810349850003167950302395718538776315617800910864270263374939010524310651485481370376462445603864248691854847860660983057868394347549203554068738723843357563336691615553029456617670425647366765304457488603696151348378472066412089416839844017297351236185305459557577924475044057719848866333553963046452369676038955148037678078600649347158896157971297137656657146944846503732064896276829602874177324857967069082968838238937888197151859343354113085146995676161107754560386459103142426834091304415224847336923032855928899805396653894276233225946162208245549673055747104171158383102158186481365979462620757796601080225261213271524962463069529959283603462908983627265505349091752729582484473234769434445464469136402922314851975993423077785750939166507642625456613542108852018136426169685638789276153106941402778909380989567726003327886130089282705057647828274871118270701724772439213599419428003211410650484595771113146736500089653808107077574538178841485234719497312156962553693312687256933925656802228810938659099505629444767438313246991436394577980523468153955739053270000893709733926635538055176895136246217854418155878570052935829262100823830678688961360422353689713787175411786191409234283996794613993593666081083034012620222081023998971102733681474116471976969197910381467413341161666670865647062781615263098213706492077080623301971443446379236166387872783766986617597589268435849186474957184235696254133932201322128313803738885830341707915636878412806104968702049771387536501856345751030737721588012260406671620400622659583303957817285071342985083164359242831182014229361853744478253113771367646322262147301780097542809183827091674185157143390501639574442520982676079062134733323559499556209157917125921444410372493304255500292097312468284965467840176645623331046754774926221983396090890794773972256544305065600079054487572775480821854820638587867122814409075541870280903283553072364221861920230155503752572550926734205729017484609102210212306894744265393862883775847189291651059450775070691962472653497149019788211342222800156619594217204864514489620883178276496945875418391184907241698774505291293604195217486621030890522203240701243249598145175136481595195251768612787242562962237039591393039715036958580044901190005019871207837452763794940952135510440911311793963542418800395057514391310450710571334436266779255138017403239470610545748720058820076407427214186388213771146640131553112559215666968513723675796627208492414769194015417976453257413391503202992937963086127166894954000706498435132106127082172962674889009778268362610594398705724874284021302284060689685472356739642167898847814356397861097525608399980739232619926578838808842699385855725466366555729047385701863999797521695874922394846402859112820269362011529746623221030237258404369679825273618576822203645089154528055087569668578206302757756388595339803492182519366671991010793102494150940572380139426412895323598944494752286341756367536212102943417032123476451281352305812705625315860087440782696150637793757094679605181203336365879140252283532936583748703463800937049665028049432066514784932970079995807844312038535375560862862241914048725213565520728416686497377227719049660931911033257318019109400421069206848939341799596086511673353316103569161295726186248749099489622411005914016997658176943924705778108485804478093016886346058570541312317105129162641259263355026617649345503578546806583565425354897387509767286930557072643406931859072572200243534634392176269865549885188738342200105798747214849509915875945133180017761865434333660317728817497348813884703091353840040892382747306341784417838977235884004287304750248954926657085516166090884130479996964783505146225109900790549194526521975870825354029123158595298787330399123591281555787015206786343933641687066486711373202727892901659997516728898911190581504439510221522218788229706980890338846374599527636605038743398007874767308483669333694762976018514125357573180554930155678943809284899511182899791778269745221873026008997954406036721321305011623072167572643427214244329125041478606189404251768165656118812226835013793835619554861207939692882610368820181882067829743420982759191658587292940527610454097917162447419184972690981964111974807696113135141024574644761711325061478869532489924813024570597942668531468204582969122426357492119550207934388727713812031654421962621880217271241138480653242249114901893363776836564246817341762939425507228539148548762755512558980437982841816129312816553814980890867015239941603007123453581362517204790388151694332400368617648527254858572989292233426028693699735624581933460904502523519381370221982065630897976686555035186888503899268021798294690778713640499075866910065738459462967815437468018318847010778761485953065031345376955835556859054331626501883880730998885175336934705761372243446673900801240890345230766594241334426643935352835584190068689363077625237799759061405148478697641829968957574885175167811803010405150533646207276570135939726306840976448711909959770845909741171225770174903854387321919679642902870122000316702905340653765605265644360802294572810646075271670710996221735495784688768158662658449232004040584297674498642131084557687052618135841076821250831780932185436942518937010512604060247630795878747929552646995107426114471758866596144957082125919836319544055423511438097522778041707423202021407881430402394366008545009314865693061957094212091101093090439249687218394897818021336018271216791469004813576388186746050485654348643751834337997263404320238946567964642722180866815932184211513521026188528527949420099113702488277214645403622220829916932612768205985262051980164106807859856310296253563516407602794366308731353688195246072536188068740490997767232389433566904057849141038515721005617780913666737134367413990294974591466194879938579407690725752596409030809783159831350177636787916153757580386434578316118188952723773717157579071400094040214646438963812259091619816260767455029140505951688222726821214622082062647848107481679437828547863619036933612680508401847392257677399956404847333741876633196489140568557584938204007985727595650545030788217439365203241171188716242333521836931134015206249705126748294093038256542673569218500998609638152170796728915047563112747490899633607817789910308194265853684048153327465199432922549717429222322185164523774213929852413632611670580266242240922419256620763054161322576417334365172330664065396120455774927545713255456281230349149662879933177636068410324336830236110579128678864336366264196641178068292426308893291591802020246326810319604749883098462659403756174766621872178484825707209174117001252708413370719635754282220687587739273199483600700004374594242376484689304305665061285782357571022749778856185254564717636359540500256933592908809648531850155903777605328886832772169306310614003156670872528104341127014364011124938690015671108401410598262660142952350648593805235411043620913774862466345407766679467039373831490298517650037299805477737720719200139038603758388636139224302678029595919565980338940353728538696005634970981399936824237819787516398602821500466337205802152529888759865793664951030123877911347972707248102471346757198122711180864010267553264135573966569390284292332530309247482163658395984076615947360600767736507463777329178863158276255574088175954371886427876583402122052375148279668097873810159307858531017616483006321943677640460190650533882918778583739399987086323644526353849186381363557172035655896826625747111570846879233213535013549416867368083526880271198124740013168849642675793778601367764153268862141205603652007142741663954210829170339247965796729370850898094851021530744936757710145629378536293477446183563794692708992891463754911389048952013997220950775385322471846869652192947571365493252745144756909806312450916438730401076256906863411073174728171106802000986237004032972803150642188768187483632003601113683617520064223120924927099933547878762970113869000943664762077681058429586790326532061771595374963436625242026654430274100106775226259349489461230670609155236851119023637961574216454096188543364328040179579936062335443591879543091710484372309087521665351347763934251192482988238373388710158542043074281784501388705968704057819783673049640857634083500153260370943447176305607714386414086187503401552264189829764778034032625522718794537382365039973591569892708843169101243628752984268609366681812510058788602407945676311556382619267279982479568795697896036642495825855075732813124485285761205225588077158058153444392653070477713961746505347239579966732634748541047418810537908519424978299047486655341202488277345315859958950082487575193012951853316923261656716675502298919682970772128758219077955424528234681828453069194706208457838109060361266359631443632954984020127304644691560958330911766244801851015783767603422388493929029483939393006674991860229809389488919946994794151437265459337593937644446154649150057445623225060650666135190179811156770150983212700299104959122307624009816186878857083196013848729555676021074041676130286477211662100878226389033732208949109195735278466009901011621193489093249621553679575387187851124292787804122956290795910080352102660914789651148540438747163168331888705863865022137234294039035088541282382564163730453010096058637116655892211694896790313553606133808434131451368040393971997278218285854947685554809747112965434860484952843274700531908406142686884659923589574977500451445067780380702256216803752826254275509536843110047870638082870695737601901790747970696736694493850932534016914507919110514834657101407983582157029357262723094568821299929070195725192263985658758140375159446901926681740328851186311333530231144290241441465985328128313668014700617517645388122236042778360438353839583654583437933104034947214940630633314320365423909595609079489042719448741815348701573161081233455293693275499249911212594791400369965854053074606442053589395531188643553312945218049340780081650698268154009714185283813070690189350671589932030720921116094476425379354836981761652472689332351500118892298300017028697950218333975728396907259746154275252299558773309039746739935082756543373658889993457675842670168102837624251600740077045977928848821006728976312042084905779721681011779683191990313906808896088624712908804393046194072840276962263364881095145739691453044200252216451739079439723571553949060017167604658330357037492788335099762968543807422538362267604851500149830991679895415198918800140953469983113482901308819947097753677936781844503899982130456159984365834209575747247665761703716249805406621995872134169120758060423206190409306007542207454751980724788797923133294423211008954401888358402073813298880721817732489505177488168123983862488921872455425440479460993000509046968558579783388160849739705318654918786680343783392833911578712759338316923525102098787987099682714516433291409352131503171260562927599450476139953809108369500174857389199709924602895605590166756640659339892118838251041255826317874658585368255109994409482973412407439829087585565449302075167916000188164335771009978409250170075470822406341096337853207931750669096360467728401603168966018806773847196730365963816810835441493463743631332609197441884963879864757030831822214784284170847444184489558762153117675229871977247129725162355844952894061968858059809941501703669533440588729890861516175026239724287991855841789373640653980942900887723494888809822367282272755478352851832811727951567562889816762321628805311741628214662382082218424209020399801828961266549706808693282563149356595889113292781115987357041069247891195275049137773201560678213721280506709542298754039239572235636433008179195025593865502010548768022142412820725836267808098435616430995750851400960537204641395564026762026911964462484262282114851199099201375776308192118442579931031491519044842539557809071780724378828640664955594821223985218300826914105642956700492029707648077710871587928858185902404050155382536862454974678425328004003524508926178680950412293719642742447109708315370949594741379953509574704193800878621415271910657730545248891207657874719952050832648039595710839566258543909611727908680190712974288470244676921174348693916987182306987975106404734807967350712981490542784869234538196497813716107006103356860188760727688389260107158334406122956831463404553778463876642946234970566556769334660387275102746592127211798340644323227601103032865288049962886017428905502359484547039802683355147606663886428370770690985284906368680364007032813177664243085231149174378464892776928500504278764140218461599061980251386945425685758668316563758990189240024552341362830823355742483475027658525946636584842157362442634317159656166231179761176073427627670965512579591277234355791080379687011396580050757123133769095016195116823636728540974964122999896971480064612536625157470351420194701846866544772967740915483062519146139739869393727493834902469516726409322593082534118540305236708959724452528720311100961408373430643691014035078462302885514082701292679510804680978984128805389308726345187488143318441329646578315288469418524035040668916633671061229233535084580130981383983683487911240064742333472462568900738631302976700987707079402453419529868103755641500133101014514315715588478599473379576697965003632618818104558667195656763063931479768264501105340929388099264929845517684808981850767359653797616750524795019100006142552809365267241909421010796148668300573438674434703299010297155593895930792573940306786516127248262643679924135903897369963155684441726265684066095651498630403107161608290749059570177336078058034269862488273010831735689612005197655573385335957206319963081180629113305333927378959925150713351937564584634121870820348118640274098603600842781129369336961260621941798865381625833240790602409514680882961150981661636843415439194285550603805961742371404529551245755115435380248874898716319731566955873069628772861578135982205542272011614119723685493052136458858399712088337261996958129487933454801715618731691854475118964905132497108032976833551072945950798118077911473029768505429919752919858991101668803090853960346534982539856668684394297401918312295942715194426902329659420452148799479355092581016271925231617742539875827731778772539051293519843417165139798342548504658079413176208157557857816141061309687741325622581756861696543949980608189877351599329258527507359546172591636940751006296906476100907430574405947263391476236153403647232158667438185638130717094049740844053692234474508507857907228584995898189405857267805740916693494975250410594682878776794290999009309176546285522469222543071209768492136855354842987134494209244530773638209087776696494957698801202489395032183337024341150387226182142641855706736314755385173178185060400915086020368510463944670066437198174539473988397505107918037297607871383773689407501856171519367824463115699282290174506178185366682265981796872833473579175524695479459998090495667285441339964073681548815222076125912522822649901565456288134554999955271608765999623215792726602315364671482034674570639487365020436155958361310991486090837508869479389401831006817238047005601076311875108291693839131764217024104207129870023604161359593314332980907223759169840632313134139171130344106768437926316733593870466971528758399628607744838571795180456427655453265659561354972301693626935780384138647460657995326820071159886550047530015683255390158574645867867231618362685354430014539485029466629694032953954006186789660849118359001974718733857543292663483577953373932472422200068050660752796050408777097711879193234643709470992438119370578836881436413324660742662707231649345124610439925267524562486645999136284947093352953234698390022604489111246893868169089430392150985377010768848943231390707992772060628221374293382650547191022049846325716014021690284683078286293471345630768663050052201251468008934500696371651127876002926488673382328267308443820086235495422074944127733410241421023927783069309551437831513609948469688266430325918501345153316952177653499230811989485374068422500375793368622565918704157826389125428001959174716299170938225393109059830571655809122554018375542607895866684454131400370825936912312152713152016491963938901193027236411491929998979223123733006225761820341635212440301989742932561240112757981176697094494813205868979430370026630168379203127578583692337020798339274462813404610289016554966822835789269852195237791834619259236776095794307024241473852530539229464021416753155045983702781551067927130850456576786633591211620772614900078047773882162495866501205081391300384861622797246072023837082304484400970683402287012902620293471010052040820266981582461517688940726063095836965552183943435164551879502864777883522920424027970112043959065220542570673260202436084307933509057534300802326204551022782019611263744536218256914386457072127162759782886832231483808896272201487999254677274329120188630443970676099941979623079392359557937806555767651445242378663425341932538907469094356562510543453383261448152578716195333464660196076553454974003036152723324411948432805456498088006125829425028343853349259241963424644315323015142484504049105207660682184125572555961095357653158434839986865363164748395983118720227389585507965852377075280485500175672477755540135501084353878489568290213653966183552684134893250663579977013567208732966704199485151335183801460987215140846754716521271127752096030513808696390005067851484144106569809595094669483165446483483199898680426853941930802053832449984586784769936924484575874267311061228046051510529484377083487195394531958112335440968599767986432557955059837810474269112454139096304336090599487104281742761873027060411567630104859578139531076941898565097139982829840694636895663549897596585995347660552073266334924124352496093913201212764466329351439525934187878809329754905102939070749885408160959328164508146392652820661664945360360960785549849852184320930597673940381723431522783902697031054359534951764398153426577158267271837942944746812231136800213477938257711168484074854610640494974223514275172460434492410404370845352889557109278081500525261484082751825648952615180312798113697921347774018536865373364120726109157403609854565723494987152602442412564422246311209969376198179242318201306122580815447157893205459367661793420150032194744161204525799594995634246963052390629332704439081160415914290571815074471473367163013625572358906353208012245673357526063101585411539041887783123143196414545981165411456637928851955339972836515436158857480029674091341608959788327218373563036707598341284329894085670765388640404842911420001209962173257816025004739167540628869656876013064915865512283532685486661702351661034067478209919648660620990803114932696024285701464356866660855378739133423064006207603850424039677524236347127778413686885061425072023138730780088288820590103236544259478359109841822587416144372979560391810955883245452070661623939405215066912387352760363157096468546156151304078037165050927807080145417761756595271141975399980995969403561211548868106215891232163917114511119810600677579821432781204259342898149863485508642063365795181520884876377405689414335401084799336844707329941344858014224704409593833325615018609890501107616910757152902111216333046177979539695878598328125125537340588890483191701752871360365679684046883620802972695600447530474976331463137876871486087482659786273832213710431410017997945604005701595200141983312596583020623525210829638428059122969728185460202670090077853631110824512243315496276292281981229003667319565332535314432942983977853758830583931984112588911728913607210708574818818009393615706765210494403796817221536101101227701094233518383545623100922760176339789044391698815246124587657563066688468830295565538375355785794578362065439644260137749777866436694648753382899231005500521696703062039328649035038624210796819236999410596504508236095633760645535263186454934360623870713583947171983962167190456198885363899265735887195330255009497762533998004425494582632281660862545073177750074795071059610062939938290882537756321243296326063660674699468655657976875488176002468852861122461309142411166168055205935806639317694174963968061948660846838578136871548162484007283430923232532773165254217454856428123595218092621562631710330404143680158716181026369315434405030511638870672148062777765403120382255990884094747734957769739843574574736568850975248264146907804535274240974398314697407834738726696537240764732091649877900922049399617555748398751961877631032666470983422335571204688429988189858689994693668799171177349475670556591812347352477583088931140315097334153512457062499784719883099882585318509306436916461472113209757887132903039522643297389106896978756768935211585866475846787097176163646249403725710538862182737967235581935981505484162983370754692433360891392038408028316641603836184682342041536079859130197844120078651940794755208039245095641331446457782918070882291210933702351470133310162806123950000761712999053347422174761489563432895068402389545809479838412516566966506587854935551965107527079928069630646412063832318244444263527784706900110152138350477665005296429364545022247272739797976856817074295762005939507626749003565299882528026306489835200102415823304711467900125951667824021652460167688457082940356881120791246915342979069158532737602705371843515411038530293806743358535778939508580032253236665013085898973334849036315033401201259299923937755040055064994987635408392662041097428499846594502574444017879613988860951057883685773682993427036521776370817992346016643989594163551325371518566625589308335352172447921699219211390313691390656719340690473686417491045063850918867156369240133352948536417842166176696193164954331055098428755434653796999486336299881399846924563348332829159785531095552659173131811954978300319749281638055709319505642405787420440506263004264698680502738148022298950176814095651240780450241461152957901452331667585480672700962811617470246604138885329654616658870955124330034274433038045499564639104470763083731091473590606666799048101081661438969240418740541487303024410406884515586733086204206320238813956598497515640343976054646954160100186668277108638334737832261203050537295567510952813361646194383256242075595931074319638583621712058190335969258762748673451404316635753601742130477148461162281381303281169185097385280123141547316725432872312325538575705166610494350368178761537237508137951452279800575330530103385408463227080292098630599788842301374370299658468548470261631101771707697902824970055289428146906390824449774050462259496599899164759960063049098003427143827624903443839522546628667689826436495955538702599412474627202615242712754667230714302412236055097278207049370994724556077905332405712893891671656191476509350394354473148301438717432411141957549739508078693713041484777576616721625046221206627299384229188962713508457676894042769159202405817000156856341767166250534686034124216948663730132970097645966107148033101305978146020283518321962364509731245098590010883611940148813007534547354137346135440471484078376939037458021093723795651689839316936943693492085085867809472470323828137190849908036401499108799977110755563916084906220638431976781391792290230454547114759961353607440448484213091178614197856737599782937893142652419835402443998672748541784543521474740753157521033630306609407450443929934664363746855002043532279776043687112094112351517851457319582966312165887027378800323450604233576587473026402898594826928949640623574139870344483145342229041619225308713229819435415390254347486976051276165711381485317302445641175224483857165600689921210101779700976945196245657335350696010405513612741964200278461590422604547033394237131480309177453237340156213920514145967652436580439633267140300074356178208768382014123546808939306069552000095590214336642316308083048294499910365929653353207705707092811935909780652527465945865705193695405920716745201164167679621263458011911693546724748319673792743350332670123071400108410799746101113989300586006190129799680231148533662407484875688097924093507530249022286379914380326190608463045733232548434422252485650200190738623626779492186566903876362146002247225172409526606458936387469402192454703200105187489854694668206017298218105464453500777472115084938770780404004200517080904296095716911548341036428591113301817382543881990287156860866895211450298137150536043968532923821535835432634334817592057914464087575010839017819814126310579081369581735808023306573062891083911860854644512229696963916592179993336110566163189362914677186550463897139221447857559144576194125413357254831564836554052530013297694405176671412617135938749882390596744888871803602815997262101170841478740549501791766169050604100235763677243108728644870180975775888939629472576337899878356379312726720179548035681530700942176099075712382541809240207528023186089352919440903604832564069722414685145515279785511057501801873806693430826182755796523196464247314165077159363647928126869470116177705006352385727510360665149128910320694711682923460480864786000350993849887907899180353274979961970670010265966182114754343173739239645780374606554480026380985915666883299041281452606522934312882478772681507366201065463455400674557317560727442960520799474184259459469772118793880230978914142022984436191320759915876036987697391502173157667617595021175752560132021849931211797176402785430999269775350981638427622301869397901785989558909116289537948147794418538474839686241188150887859660428237267281616173935159402537074439010350868548580033572302739463021865327811602805104017519912477132858115304459942717745334926878220838600604331187228415913685137802740515435073293475355691712914450336243477728767431585180452341748586738764781082330537582700528670881285482694632874031970887962576908737480713497606800565875106309139367871180699415317016902130770636806174655523987473592891582615535592550687976516359114313053516940450503354920005824192002733746962637250471558433793216649671557447902063051695468550821338860197195028396874537527099863173453998396499653408418640311567225233841199478137069394457124166319421416402949909431671620095505860670549019494494468313631758846513132100830512396096771298143257493426406005956447962652266023246448009065431502014261777733846087173277625470315768713494991448947811479953906042279272401807429012306003327767714582406127439600032036860478165711104179101990002623976520616155951010657877911022571870245678236968913228529040218320137623401406597708645745194375616576154618202802291962833044116838791372822115722201170790822658051739010487244290350697377832828130159392694523319852784944734204402291260382268685784867305924308845838735784631833174470966204230665101308868586306205053913092812077564329952871897832298581675469097179471138789408310997345941553754011255026488637733674568203797393090908829394941506223115407743918310899645452273875415002205052069098492523163608580379990559679782734680944744934364415087106170004851065712239771997902911035707847827698002436944479495775286890949769790225429051657917006549275730385428750870360942293969644098721774094509137162727343174907556104238609438421944980971237498534821579918064996084871917668238606986131545671886317960566695926877580941380978382966911826578159318068481998429460610903242502875273675493165948333472536125481160713485074848109075548694929066230840982443882386193764990213613624342069370865861557863678867752907738751887107910203605936904704422304362716920449510073818988673475654400519031640653982845319465519168260871781133040187854660441753006562057062092405974893031467056318021593181837940093419819626938034109128619640866122109554025179641788740272504902246513110224771210243505796651914663574925779278665965293078098824368743523131980194320632526740038026598630222975423696415135126170430478442919801899681657761690442919862578963664265011179615835926951438992289684364455033335484853988456013731169704904317465472920790391557199953424208085876269208302464818281348537653689508358900326792163523065780239655154076621133943959781675485835309893325358299345240416145192999302812959395669955253407482338830254905789158543779476771184892523977032503228559365444575564461376264810442155233186615075726795847285800833142049155217263849713940564971764089221764562040316719108797855222768796720854225419965267441439903859116133826580893839921177681192354742497463583834216314728338975001323475659547915694621904343869724238287963695711261415418511408077560584707775793244869638229162911915686711499017816407025263281691188176688188188156595860580821810221929146553510780285342182685110289961030654896095272875539603438912321711627382482289215030111898728074853094406959142317048483956217883704066127799289925389950430264801618981238746497311540071664262346875744125977038005404345573302533903638705285638613079751555153810224480265772451237672323428874614775314302372151888716026443028087222984285626736784960417991678414733279909990603357892900963246960479116185380229223919660789477138730719143869904146783183055187715303106744876472918210971421732960341642516981874100169920214356838685595279030529032265032845158436386328127659968662366742914839361969455979331213046690280234498698155456820375352357534621124915401782500714346077669272183916575822528497691646828025448459372741274057000530122188175689445313252641520514160107269431026890855051536636786508039686144777823796662681972436350718265833141236125402060841194541732460219115833983340095586547788452081932650610272233009212283118783339294316786564917962876800303654222087100840100828878642529832004918063552818793792422720495863571690137452450609982622499912665630075037131198906429143296833729391919259267356709429465175074254772803165123097398060624125435576400904941251916111406836281777178421671044620274553838666717739848864356346155931947997067819103453667522301680070268776507192895859705895005078642572331852671389964128155113567603080987212346384180644735729751095328840768175433704067582853346131177121529699681373979065158293277697848412562626176482764191321756099600165190299991411727399254275726755850785947805615010626503350239758845415754819719132965878501297617558823134540461860178949953579426913379647903788688310563098864508447529745665783475165371282480354265322240021925163472301983428199649762793166584314626887725807925917066746345101959294078831960374089848234355369099013748248237314091774377995421071503335115537290815353518599582819841168208798121734757718010365085095470922891889232716052628082346589399239206919659088198006972795450379254846664410851496890571925254170141618879969336346154100614558839406965346871901764680782316431267481685918745217089417281860537979299566393816768643600384694062144741746094056770623889051272233160771883035159648564691060436827036051210935821611723664571486073533377371763282396406281947575829604226631056927517361704274972456414151010093520398020675241542843959048345738982818766521665967575689703902087009649360989249037723472078707533591088050430130133349702974707437250422231757196565566629789565282119843629738827308320753654630867052385058519636366131871835720099771157979528446932122484023928801124481209072750250880122884438188913302476244979352810588913695358302843220524433373254691360778265374760529063734259764153102847518166724046710574385513330707421568701855040805672737601223296437081360017629833921575118282691946365587172110013186399742732385987503655782539593253339552821581762505726946390603948718776911471895021357024419322906121424533248584690001692879036893392328603406518231769287594489077502223850792589229133100151643280614945470168788343031497875588033219196046584172590736265700446205488828267848693656234900368299659550964793993775823752759337397436174626831171693375155482527198341609630182883167949591866615843087728111874842977577584507319714333571093471264131740617851694462002619607126532720896741378665863046754979428022490637354854012534493120812592018820885653384249640488903259448621290052348855700994850297345698419971313380055555628434551321246106323078755087403228660332665380735611229419837280506696881514713081757814888855117417133198686199765921842230583330984996443468873779813054032865860904127476041607295856966273161090655628194310767860021494862604243338885080644541381065903484436941897555405381354622395018380828182034428077011526886330435428594494676708715869977972041755894624890934900935046436090648039701386388489378640071077528166747239555189710165443237978002811435796234426233125252408248295076277608062960838750955979628612992847963107462648829862310130011522074957711320313172799376294236075804796196472574942084556609462167145234998150679089178656749775359608884629097559553136057627383241788874778861728279303536869106943514185924716258100050091350643951404208047232286157033938400349559082569084878972769616809000633763762023033983706934916118328822501202452700302547085597903053903918359641007248676052372490648855783064429446093187470259046718911575167147944495097690612994986877825408111538471415375232320219462618121475092742775760235466515608293022146666435989758487169701874897328308093066218114788386498308813381148420327496201853132355398499573433312490525696131687984462145984130348105779646382438303550295368689112796504315194609273560912311563931629277594930774239449092309493229245813922601691672792880842946552262045808158017255825778627043150664511287986568419633341196340953335206405120365384962234414462148540226389516574590461275812058711502226833277791098416044741891288574639776949887101494518943563730647472721278338674800357708576466112507153808220976371962702469043040748785831206183424037171558713841227126462284913216531507607885946942486584184925632409252069499239274604300345080489605511339818370247330557102376883205859011056424484908445255849559504423884327864697845978106354581293554444275004310552606002022247792106773712635451216581081316960658738673356238573825465243790655540312590547730262594973508407753691045090217523894875549891851232272776770553116516898044960009512573587277656758920278846018836291776273292236690464542988585718312115778958455747968104897023239577097725424095903770534897101712186352102604763530324591778185606990672982957266668381646090441878667831604587559472555004270721328960345714524119593739502592189445009482614039089349468913278788220425477965014912343292371332992864711436094412067477126488736081806119624210376714029875758897312914879325316490618093194909192020031407999647478137046543293548101620992561203168654053631336285941160313859932470485560535342388827663298743711146240386949621919361786682104142233894748488150402024620900624334854830692623239231059616937924461933912852347530702584997470116608593126025357210497271689602684101795024626826222124574670279127249997461170480345842260024024265939349624545698026525846367217262303760821360419152920044041427221969812452056234956138930855750595949452333145065920439473726319338132532279241775084238065169138127833182139872434631028766334541178735187840539297247451557552659578778559257300273091195840000832495042833081467832900437962590076513876627766590269936236576307218944253134129291179179548060734123457293644040029194355444154603472670777829657528274642641116998763137848378345584966030054563179807368568354935715662602735898642766685173609979014950254704764535438173176258352901742689620178305334228703375641352545973167870749462466250237088017856455895929931379642000000732214380821655097760770461418281646889827845376983665753726194767747927541899899223770526371541065204996410889326640401783263243257637149285775524169729979423828367669354015504904063983043818424549303728345736502995140527811504927385833953427648877150794510404360677108745651877964816205767480747299281186974241204820433200226246218622429335162904906571188755677221165383526756484858508038035387545078571318506836675500532537779379195473856072639271310607199245295610059177402487153404886903696380988212628238324145861516854574085213971012921324920285669033358532504920455326821319367267982543248980752770337060365140096625160517237189238874628704257522306661714450153916352884060570133164822644737606031320548558557832088097361689527089945558982365867027188925422912953247423854710186059174216142257883525771999539364225556210255663394865615485217397348506913659310081129991595616571890740760905271672217701220469420547494087863298694937798451679696037342544762902907514894460475763332240989078190452705780830970029934881889668612924913701135421241533270332407507226115769050318743751473938557885649811937134768909696780588374976006954608320655123224330849183611887327003740195656217450294050653164048439963181839139491249543790987277278887694262345212033364968714426029939360587111096553757168231159848090245529993234914059092261235413399428185515760229195500632270857261668638982681396917038816392335847510710770900600757104695981683927841865417684354753532525369753105524364678208580005853277773859769306746434059029429730889629278425329358486711113240515987197013629035617569853267717803482891280017406834970025719273651828080974544964011427251667897789698848241220520318367445898527445986657439103576880611450997495583899904486581296580142812106584026563023645628072256118350871806249656715996047215879728610542434572373312787246941683495133072585920180060390721373619545478451724451174077092206080880190620420368000718106291925666572514717725239471686792914405128321990372659503210791577561963614792970388882534684835485479825864811219847598278276960708175727010416049408231241169835645178760273676027810675892657912136277268743243169112024978837727698113434443572508325520550970602802407716717408185791431979518882735357426843761251577783698893439134258420662033468865642907127915616891521978773055351518397287367455525646596128121278393172447250153799788523710807727558792737147992034123140094789675685762971800563971782503748797807957488683968467952943290721449912165484505965893489437328020226360781412763080177167404444425439380560164011917717058222758891954559792305291331805139884347104699061361083324502013384216600978816524719730068297859304271916651676593422200854444449131594008545480365485482485606665594672643703670498660847839112343000613498993214400270556106206843927445831080175741226053783064739866195361134597691300247769097261427208225067229278149765573003644196365000584625457752700931553958070903942095239248364372173775208221043711971610423925510143506540893645023629923479579658497127763748232235750260456947200950700700159511138403001755782266302335239135918651151512330072687950712663960743369784902323200157669598459389562567668546978797860813842434473798841694443122772818655659790716961346474231762679027101032965693657942055019235739606359679059145456003162879924776411242970211675764403459733161806115328181963484230353606831959712797889764029822035525643943114405240522270870197295696291653932281830138933075787064163706983974116481337891567025106777012780089773100520607736466022679664586083096127170272446218695485461743810353612556097380182667153421729819543292260008153554299080781560542136173985778217055897356180883243624486583507288424607790703965661980980184911394837853920865892995692335286006434568400225040385719436196245453676840319898828512427148173054835490946762258796541208047887150847503936872272396592767969299373787777655756962851905808972673982103702034814736941898530063627265260446484160551885713865197755227496702696209026210955459993453383111188928798563112520636930536823421011070809537017113378184579692710794552980968110829601576199938526520473415562834555553163185947566588994494854188473301470691846062594888133214654661072526580848018487517074104153125554803123906745124321973481349258691740898658955110042558664927911873398217974603472555895695701104619644483091345426017558724506922390979108042019386015019003657342991447210006865561395902062163667356105504446884487411764649106870722322064364224282586109117250047050384974325739052007914260085250379319134385819976201914378301569296882657651514294498937983024191774286848044611642935942483363851228472560585848020967600097025409718058524663389635805902960747376213999778363321730236516150782438962779708944942088792202896172778461128463587427555296460089187820352079474388606567512521973586474650427018465765650567408052800658095505087777796494698786823767337049855768085476382225260893872083204027844886066483411078806100316403703034876378559733634377445093949689427269358943039496299806922257633035859130479758014866248760067152636068722818275267978552248321778732202269851439036342666976702345724336751818572722318265358816417353717699054813157654083775720385110949638255253615894537274448282985950613135552082610189392178022140806804265065507479411626026237652635995917009182405636144947643041509276605412549736543307135530920056667203408252298608487632187361820181170309732528931677413102067462721995333088615457614441998990803082454119731089190726742708600649673160595724756616633842969627293507561831536394417346619782395497334457519253316993163837393362128327425740852712494337115322231054929148585100818710226142528886544384136294441620669655691426035965441769102689342264519248838484215744324850657952557694959441372310995538811468575212060152786343873841760198796526755017401284749948702370187651570373507180906163086332524347581310158834238952961983396027380233987513833407985279262159045679422752923922167470515571993900655974557775349291433719363352571236895552932389132161103679597617867602408302607660101567269278322394365642009259999248738659242629192107579203735245498994426752448569222591606176189045421648842567204739263689398415595534745453717246416851729147858280474244947957695656452307541206157206728511644961374225849730948659470547885496477288315666154470564815960052912879824986384964364096840282386196276495187017160076062318217548181536686247764089684640499739169929894069981397822628834493722043278313050432307540320820250765843838043258452192316999687213760036710073953403135439778583706982101601154541921924822273445924929723464085195122060262625583789883558246371858054757556175442921282265971965160222254496037102648695583239267821267280013981698951343108919270143534999627199105831720348591212060697609758580873672731638770578938048739854695802135846905425899648089564438302431951962127125758743263746313771613012563753662098881520662201939780020126248410949394199948985607323255498747139166793225702137034054823678036091699241973698020489312360060150609885971020262680590097364283312104605021778635638052980406345568876733694960646037206028728862402797244872293514008440606267332840900937776589589254000705174251028300558876024657455406433329754117402957444277715219818697503628991026808909107807236820870201820596788130521214657725323439975209271831687775642458810323103733105880249829477150762347583956933961791650805819416560719979117609696228594789175200022336103376212560952967035935899560629827147736218164671572895542743466666461536781775309455968616903412359304879012866959761446703792705583112666583919977115047960036280642611933978278491588839351641171778645474741087607340741511366985044675903538147092136906743663931391216963268477869472624593716821218911140539093812828424930976634423424765503814735880625929413969579328737893791834107936887887566010392369912965310316399975421555950493754235658463489533727083545996674618082436120379423427946741267367202306766136718707232939310345030600663187466429509829751334102506931416138199440861630855915676062901723254720323531994119453045901777037943151646627208680032790285551600388212310513567703820106960902065241074954922352829869457051287429586057590373247585899978533091246312069234081955499379078319416159082744733584879966954164452016865461125579911183364388726635212541758943703379147309832552462121662278060915263268791676747265497233050414484765146673072467264111695366680125020577253846121047483769981493202711793469735687623874005013789887943796955294712832101748176844532479882021591577819339298459825492049068614399271398597956612671762956021998643346617115051560587615088458371498061180324846581672435547310369599042139892099089109959325877415115904903747978388101437920662571572957296185086455441369620463673874642317873114366895671097722652374677890083444072707439914020722577615999307824994815934552631491585464208862367636201787501966648092964560257154627857956392350890810650953727769381550283427722217584679814778753527480559148312073261284995865048436859897091376289147454412969042742519716698600092325554258051734498580317923936672683313762028320678705405993602995819583901020564838095897635849877821389522929326755805738030370409509519814096424043380825470642678349091156998898164549306343943471250392502752728863334338079294447264567951473123834924350468824181730143360180266182585991750989745085167820622247438920144235028716852841143553780206360396456413173541812734488575249035072850524063369260814322275964139992092172452239221876483690308379531374950718314902033883156024954013708874085000224191421134735769574667712686944469818767070587978523968454070866470399906052906096720393267279481516436677015884467714817244132597114298235083932473365209756088860243624496334339423846734484260075999663628580647061437634549029147727863182159364830876962130831269818118706564429386656491197797632201646705489849712173192398270663782928012430682342023487066254954566659437367315686477955596370860568583101207871483832333009799330662965045262301719970743452310104558196564360768556366355139614781871500647923723359330929648077529622391699317768833881820282601606809479595629652879940974770766847121844788006669263429037457007602638908713905936693627203853265592273435794527663258770289817542242146287395244158475911402315448605580100877414533312852703583532571413696499391268527450754532414256008636623946393995631623034889649789155041671796136975269130861000099505648287537361668409123336918675671338182004464640002807013392635702197528413526314156616393707438545659215190644061908374004304874422453074108043377144677322576516248798068320356452379495252919261179389692394427561941509859768093545769106218873244576014217834201455766231647961997712816985155056062949012845862752942058609957215211482219907091165868224204183054753569382686128526186316823273895181139593062391131106417864382107120855724723810253645796137259226054058547901741508724261663336462511600184100159769245021227757855398353083735664036877961411495529518159935228003258866231677152107560514139642914959957811765031591890194487373744988536477948952034767170858433482291367048178761424351049263628675354668103326229886030338644193805148771905424409258052569431831623907203642440659451411070446768559537415593424738102226378095200982935851586915109309570088837373718843246570083076871536247665971630450351138374993503257430609329707687907225338123870628825358752529796378183837435309171603377567540639734075648576399973986059382967775137894058184159822586518096775550085132718833468694094333731083813285501270402467672271171493113655574159543846905897006133940629869242023919924566417263869676716096227129204037489420509728085054102853828939166883437252695440909875087602251994657614310758805609190081255447036510761283742617339931060435372937673536854527790742086602608858877721453198474287029762125431083217344516062717301114662114830776947133567949622183699010305164833874633738697628977960683432291360761530871839649388569248161394461687077702050548836466015083639154164186747713480485142791398817910818857951306006870336701989393509797529720159112461149178262995123612218993968303087719918146284810127018718162525954287708975021651676478375114623349168489696999449497514579818731305896169421395817403473345144264673881161269614871830359696489514331894414042569805504611030829214650273534950190434639120070737917524069036983208134259236023921272222368377918803936297976698248076200904683224905377777059860109250922784558303628158927467089853958944355399982104845222359990706886209074547748123811555925899136601565834209945741855279670852314700835640044330011642764618606855255874963100340965495006539744097568613833418263877734650036265628835970161657802331595797082944673690555986425224783074588580435071760555544476479999132670960308244603491917355355066010935699648576726058244223045323958503030855795987957108328301497011439641168736365999384330119020330519671451880044299375003246971719213761211928224864171884196207961401702185405298965467764510228556039061618308031866086004172880276749521504765697444074647962520025703038305307054930972948234420473951545163376668223726042200320033413402692713281874835332622776307967795200364311324959584397734271141374048241542831273049184085373060744791116298506815712541118589442752884101549228294941190099986081191140792457693087587136945332495513152280069911044106117345211119725839701215258917163515991303543285185288255127460525084697836568135994518770767413549761379018877653974284618605268986994203242447617774692059974091791033943166906747457490040567715343380321395738602187815340351257165464513927607291412228808724608617599849966303611529959661487707271312795693915900648015657949060832555785352485032899093626556995566598701563930967853086976262996493576538997615105056847078102619904892544259334404540112812356513384263269897143506834563021536304947507170470952687149094353346728308908747346754372164890630905709811476523616362281158850044653884050399388059125345652434537284619354923608919925472393003969958388222041387555597512530334997938553683009304783105973884127187329405463859089760318907287142657700246711351015554464901354246818019605307027300301679525231599605619656952855380059727047525655191273985752976936092864163970977187120352872121740607781045594341683353120072071142955467060250470029072947916845256399352589929379447989950818349391078689436566367591594558766115483143687566927294530439146802075053184150471217313776673158291700910158459434003515730507354846555570295148344541181219428551840921461323295181766747823398026764996759631976024371097867490460919653898143311017894701666550732825322336859755030872499014657514868405292780666297185194573321334287356650534795270577547781826845425147272240200736202815408637969762868007387162315864023585323023416083032765183842898410368363923589779349877616724606756466555760525913103424520014485037281273981327159786258976312948038478949367260841437180990946445588550887940573498858404249715796109562550107033578511218470945084889020056680212306983447724620108503117907167815647482328970388168692754285699880143071280768280068926406157266318036252765554929101663644945806366179843506215589085457983258753355127917043211609410961054687463732623222410433730366926495498720219950217204414930151855313521229535157610625614422892266220305545278040211471782434039310323598738162328859951728599802065197139716210916065431484125906257070423378461991604987450762137251214458742738244870460880022006991903797817713451693721780281887177614278507748965549769362472033269429222800475178623375557953590867987946844287921780539421485087786330646006242623060292424163029173358715521330958040751408330072520700856805054551468856078196567157057489508721321103550991994652175252774305027299357773447543335023533308275236088390259553855776665580289834297191438667630134537454747701655144328735045208283099118130790558901035869566703713597825227156052830128947131387751969936449762004148055428863528082467304506366787124426196714670707473306627862489398681704311914577388788037884885986693056369981664128631172177939220361832115900047874647080243978948129382650653215509674382381035332935488002843511603429557086213815410638532076604529577445794063732184856459028005175891952575975487967089963802285735664333226322129937781509467660889118434953709107662089717564917364995813912885245456472682872759841317823416021726102275917054982652474151311450318830411842795181380730893771877218286340811658257411272861941714383332785164042454386448687264205389172277877820127865383937520777319410627927399095576275092234735600130991908451277111442315175658976086532065175935161239577219962676188729878816378619348255891980257455916912139222277708119256816154825716162969655010964262069970184758336509227790550237254772289129853930920778241853601930449826911733327153078462867091532607061807000136950796269180333862425474540079210666923235092837499479954384029643149440928057887888880678351529928596880715356747207825915095722888889965999912084752757862931176588527629379457920694973861463546858242268020897507316682181607101686105014141758268635002322104789150931209340316698199066182396031043109673521596379847646741392957052334353831630106692755930106846983334965834489049101259478138350712597192861479480031297786251881642662053378137819334581363186988013740850717718734455087414564265737210774205153095845727275888711770363836730153784376108525170707790719445128207893593706011265607545743511792859189487285952764262103782374817382279828010982089930121540291008593832485135428495899791979570821033540720586841440853495151656766565105794407917639975669941854790404873783117983365982141915618279819298744478945354431344507603673400914882743715728879123447149183033608810692297731949748964044620387476068014112203016811565956825215390278747928261670343571731967741051156361011890038288092638784712404365839872566975258003475352884965065673211908942991805229127414329982929423726408268360061911762489030644195663285945800809622571047896202403285239828111558295559624060713185962774818780412551874323197936095902608383387612755466979109778356475996094942299936600653108630464985100895200531960602825936221197305686482727763162352525759857561036688977713911776608463542685883160487213373211226141674294730344695944365341434715051919227762023602196212014713201876555953181927527815201309635848510809630201454157386068261754227223810373677862573048149414058360989849595866868297852975710841359625474907796672151907847599764402550183711350879121435954539116653299718580079956864939576209486026225107760664584331313505971481699188586554327411520270375279637725270800919152560704749950922739370760612330055368819456024202345695104873355784822945570373344824487568023668885967652575798464877217030307583954980639265615614671677681509409347595742252719399301088324147345042152410560068594464742706413849918790278655165143832795607241934232793771597552078633114264733905755463521015158582261059263236324890035765368792220005564260568919876145956833678464832532445201892182031770288287532200976224736182624358987365903917104534960385710149906555637787624191182814037667205063844761865755192330510060892471729073351222348492205179708532039299043727132870300472699511188841213220526994577718695756567976389040395131106758039113929991642922682431535855205342392289944344242441127767642955745555430933728372448392852332327738034407322113304211566194489936327393237580133677029398291080824137369635107785870361853111787457063006416951325616163175127502250202114283782379408250421523198122791210842488135282073062464486332880287244220632104562652124357630075737612932817115370336552715645066587954155695325866043439907179222927086320583533782323383091693291835954864188150494015270737017022457949873737701339050570040063257758782208832558291031627610827765235061720942349879753295098341181107809745971899812406022189375203405823268451574527939294071839958404186255199660487434115628493041998248023022464828793588487762719849847671523568874449175961803406314683960809616236149450715497867074918497541758581617594446325898826276100599101687090949899891979031958893158917360856822894760836717053032952951830250410806922676945092147316105330901909155114991945893845031336597775290881586674789998231017353603312582197942253295558824974552259642844143989399050570094834982201588569800277552619491281694830284429228449651020614140611160754099235392527552438543002767320141143940272079304802041569173252288634666898386944475734493978843683861672851659567997219866724835763891100802640669653424817969481274411542958189568049664223298680517936089678398256034034319784317490941588018326460920909635253299618485994514426591072970347684638560485558575698553357110083637353257474268959053431687156137843209000259811524094618747178753216451033868146216620663930591392061290148212433978699043507814707375796295659844781662847732282424314630838338736833876894896271244982324049001738780354369495543358831766257594967055328475977613479288194947417051680607206455120512049852341657847491689519847696165785069107111653322751589794639453554658377479016114796360534286816192696669986727331529630514099904470616735782825873308058725410071201316137891407102099269810963995013501286207165601120745286653115730477088896887741300355296893007094402712672810369068917143778977660198003576595301897150893556225127220882950835810856720952042907665411300695846707605912007946391031431497895797449719124538507430535926310507948805243921995072551157144896693464318433404194686770364789548544360290187999177137127088073512327959099459099848615399490775686230401318395349945113741010457475791607907900559302706347830356281592121246417472017799836597606048957882226461839642389740309850322381513957329193182677239109572875329900687774616103771337688254256649390497533777236245769847094317806969400344068544259304981502326054425127941960352802627949744286569547084773741925676982542891111354265879761119907253345141662534730223898948726500213704315973392701677995482259474672829764757404597189923839727850615067114130286632781574448627624453137998450002133140392541368258070220039800550779606281363375079053406334438663651279267915022260234879764712028431011622192694159294860476069569866041437109311845909842151684497498718204850708143028614530880131417676601793988018464435289768730310574759378434958184098186462931499528149500582638685796760395743184376631481902507416453429132974431298923229547571350826935511285236765261577207084948321593862958665922877803860896612705094379252125953712486134274278988324144463467119405095915081746412201874788618590910736694753576328171946855542962691293592022898634822007015853666333202454938449547084391619316613637178883404233582332200703835699654877039998619589899458630815407267712777679957464005617135779020080635689756689226156072354358656944748607929191222937221464964258913156988706328086679232747673782544238108076830723323814432735089792278943008795235962007531718371986987073307046992964517880907722499779387719370717235199233120092694733412409302473646061883766206339115480491225366972727202516557117670345342976695608281102339903143460326458425210925529240559846029893977450692940238069663473480622062316859915261268800957219636113584092697618461650985118932683623051339508763037109464745992833750749739683500653736754823964464699915891555566568380450872066262605845257950261624840280774786995455630253635656023867396196454684808445666193932417984059922406486648751507177151375334957473597749948221726668971573160966848690583957421419032298313601093250112868843919029410022265591816641732296037184567500980108763818909401393883654092629435036202100900259019066016488479737264954987551136333063020208710035899164162071304316150308184784530465648387539723605857679969270574894838284237985505681063052075597251221784570339040863033390271366766168700540135491890195089963296589123204758242809090836012538154974745054784614622871427174092643973737352120954839170855447858178134346732229360753929213615715701689527074511298546064184297756186299334007698227757622603192248387176485252504688108906257355239572178992781980793196341203250482930648137418748082057486878487827685179610726889153032712039702457825183875699457126286970462563351961802540422557173171410411051193798148256287146008397175568501603459372316863442979632341507802697682655545351597928245634127294432405481238510859291565745828890133944008018826155408402540034201197049880818954491319470423112847853427553019705663125743304711867351937711950169661538802909654636411307906461512381185067909593349463729860594498316012079260387852583899051583025549355441031166786560116299156945037006382455748256446786464868707177229015741282181209991103835059346862344690611883169707005465431830500702792185908982685827829032160448448933611050274058690983437568471935808337737123628506168225978416994040474246305179656366268732371736951781171562351633537508492895421395630932324040441762668928798416634410196805646083472337581157980876178901863768646848177600004362623303711391021376203893240753620856176265529301429652204008314282966217996024936512340762335993809629071058515223888017952578569344208238910877034085471551485705829747452508771339460228188961939489750613353035360306234465936442110969666190567069469912277471974153896461718045360894645889575598537667057317730538969431414628360468097374503695119856613869461889685148607144795660298934353499907023530321648226389244763731809060919036604838133154108166797207213413735559963724333765087923681230753353107657476832215206721164654599578258027442185996885029042784902522460471814202760449570435275067891942296182580634606098752278804120324404892674578576545921162425816095548248739791994974686124416729249985924136637413792109098013250021732228737869280950106660868291424209895572723248344402456047973965882099466371938400909007263600869290257980178559461107967627980988609638915312364726202632597827852612001250521295806718965022735079978219084710510346245292109935078977380852470603909760962745685283744502375434848824989574290120483706215552562721886987106219568719332130047157031268560513876934888889681681768045863062039782714142613899227028190840162972761248774006279444486698293813646233858872006125899823112350823377656031807286927926233783443391282950487141908736613194549256336334409148555947094567434724088986551074668098510236545783274960577013269467273304316717860702808257918596634668834795000202642306516182536049323437392420921637461380273610107481223837581712183131907910925734782390104863173337078622443137044357967792190082603639589851760589574291098453344981425045192511076209195120866990019359928386869575326407410589458052574221909395145401998075295823251041665615576952980152174987036153057236736883164702895345219841729991470762541794701787929388315603885495746063772362763727746667631772620568937252985427183011315179878413869797158590143869390149757445496010486708855497551533563519052893218718120789756060372760477605982837256918661388187235173880387094182098784547853237603066235840005757242649614370645764091019902360061235297442267975396734681633421292159700412947921054944683245981800177911142038213039216795434565280992206405862636617115769607665196207820192333537162086235489564921062488344473689532501746614924252708995927379957540029695251581080055892874546651073421145039609497106989361651010713257749753642502505262725369429431214959887333089526493223130386704747575066848988286979937365365566123205274152655326240387289175121067238068769864827209222243501181181868715251439052650959006168029720695449748772670735717995338100144161226348497317990389939581821649729386948894725464116548876729829851348262493346371967487521254536394444730091276322333006927257353469026451276023718821118082236879594157390728345074169522984030684133984092748293386180210763191304492840269516057320720028517829615259777787101449856186612059508408342576668709306493979022298852171754175983799631594416675854117495046381029223748900375017399073724917058097486940602060184781060819277802363797997353468005048716268153875956525168620861391945454878315136812537147871907111407374204497914835497996254787866423985849008470926624913999657017267031051792303369487605834532408411310018562807408498388096209245827148082346028181694901571612754758707009043181307438875591689787090245552689358350404085114285236406996405863271358955725731754001465565218494181089436195169635533349009131129104687473469015802853675996050947539496416487479623957029674267717116392797994265464762706919750020832690284666810634885455280862084935522860786815132970290455384635695687658510394888140905663750382980711790637110240345750218271617829725238071775838008369476576852502920056293529609291003042245765534909833534680496092261223101801611221161438109586838129394992834553494642905855587015502517954843711233597299025198977579534049139034287615848613521293578190962690788074339778642091952094155336622276372136872600547310396999875742432400978598271776292323016814140433209690816669319740564157393654168551751520608317008083830160622286085128350693021597630498153694226575889605138401253845614841517210002753264297412772006990642741224000701010949309149857401236794715895530015680122341709985585868058458701627262354159836429814405249938291778036530083063873272924912928632566602457722666162412847862090591386757456012694137163890899948149186964939383570558098286818778065961072084708337195635943028035532266883447728620304972483349579203871087609659200544739012044772163659066081711951537353980619047325040934823404245592790871415887602161396277571460517921872504177988862168080033290316553624601457692453543864586724081867408862656943926342504414638397197495285949791542352974282520289375863719383161122585914951226756370560767846647159519955745502426468504149400904441169452322761226363170738685797196584867562289461925511845509151971744506985391425921798838889024922675505408793142894081196903384977424017817865611222561474039285305721697110488091861779123452754582987405687265575142611566537563604038062641829614602917206306348059138074907403350413627134730919511561585026328264437144392885995277853239660531977447700465544179412503753407756850085997943297704329184804985953037086199133168200574022176874556507843522583004682966613454337592211320185369847892376093815546535591951957939313508854303107161197356130001448117131378131978345146659386556275075596095146852828903103120923397048003867295199286410479237785884553187996645509828365524291042693148158790418233386838605693454387529419682684765558971215494029556237811083071413726241830205536197955736292305115801473122858243717768784029901443992960603326470245964564066162845060649348309567652225027450444836572523153725144954750750943644499008176269869901222344668731226317454359111469976907655498673068457273696278669528460767058447608264527078203773630994474025736786899237538526317325652910517809350979985802389698099279988008232048745144056587236676486313449424533515694664551107073311862632848536632321571307118768067366245045151684815461415293003796272275560498481482618753899215156516484308696552678674366890526141749861461454307708539959033857918002627123864375670909705113672551085208065434858053066051580790883203328838343838591308928935647463332530284261595508311769447910833126606916345495284061556568135452363188655738565981074132144643782652605700071374758634384798970774124065593100033698208224054749964016120660415404804658048509360025161263649103867889423216064383438547318996610541625351086667757073997883225452937496607240338378610247264083202195427733778188397634128475522738896907167156923348899499373012114562759645427462764089539332593447807536372311174392072217180952734927753256220877360490253364010707063349965035476924751206395475650856362222078165379511989373219235887495251883209360594247300201536436517417671667193449227898050635442882027860456197762797804007241027090163836034398000755290343762605071790134851464665212654904477322924396393798599910185259653128266327473149791893047221729578527433624280087491906133292080424526558571987114309313148188628222439703262141431118368689066713596400162479222077724044618841707011175437000641963561397703972841677516056506621790574713834078835268764932330903844559631841960941555186627893963321742533060357328232394004911320496217596719975962663641857383966353198048975788672244283394254741643229374253245154495701218383525367469771584764835095381932323786768749138135749824064850425470607639096076075756464392352138395121994370734009017798554205764580316627756772470701182943703914223817575113300769151726951933191804480657927082424127662228473280814636946217915159638577118818897830636774138935139906810494012225021525062296962161129274572177215080949699394262261226799025309415569064531274655044538299881611315301473514342128704345070173949328746075733486602687730815485847903218711398656405181027946799547835035308136210716661973653859828303155740140124841755653278192345647483230514109303244022772463680348313023381186300701046785261642374199457806962004281044643742507112197087206016599053281521492066741010751390195367412402944310212649126787751511756183143775543455892935481140449176182452829437727305023338953249442083272180501025411137532014204130494957385273512099211333027379764809655469040836286948818118001216495658244456613644435160907797365540613407016398318631087984327623992193445642948801842273096788321220768641241498390441991926291913272319906718795308203004982536012029034110196131560884789587726719568070167189815692099985962609454192163586099972890651777242902860452152767588417505724656000192801705550590615561253859774810728219359081534251367934201824777026770599119270447741647622372406276940560083185931333244981961962393780945186949807373536773147982024815536843772268727521683547726368917775276892798396224965826966326674616464764939731692600940993015854368811842693373243601054451545453587128733664504977879110206797295252055788684746823026259794978020316962748870955286542169735868828854537546894872968286479961499549525739602505302055139504258478454432209572817255439719709779157176226944563781687032977404548534513647618251002777670384953878081671821734448813235555636766564441722752627636931660650090543993646796996261578735146532168675511274042928992052471864839733438659326561452843469954639431776900685835192196234593517175710167744942052845195718528843871903808077852875509724877286914284464119611687786924877711767025916238236735031095203602336877457241424617560574185337147986419544952326358937178108213485230958473008184959935543795163661414078992514065091228010325203866372249142093475074384266491033931642550809055465072552061095731214856144672629730086905965026585537123942852666925962855813952156304631745860616592592302668314504510897945062794640131782105399924471715282859276475988772933694290125014716829742117522036842585325557189502200126391116600586576754120161962075725084968088711686187925000344260825513141848682310614511610203735265923345907664280382323024291439609311199091927845715739744719969475849209049094888061376298090332017416484936983330160099569717211758225327317146439228985328962433873490544888466158773638013836981126787977474178989247899801971035759507832226786911641604912929170194999807886128112224996463238160620047739293084518479425761013038590532633823637123151902976436029327940289081649849035932520580936820774544353387641438679472166538063778313507193550219093326787761369447059401300742349134808897872248650197417843254665708626653465760426008974983155265034086044570219192078745347248010957105107371560863010946921672661279023849981790991425974278808204765607687041429929805343230513559996466016013596298285859184517185654348502665011608741090083522003146378653986198203278825148825660596615113458784192050747898798470320198511780648154763820601615786872777970257477466672544618949303711697958595815137400532454259484700574223939031370232495323973841172224946529824392851356145678133399552615610681936249715799914147475185984462085425257988063485809403787427395396869087248762168780972573964336968490654754771565340205631701725651693953878354311850828826221839117380103901011278231364059787488521917122201149307715376143777081569914047192446327814716149818457992728827009730976557190297976221574615736382806720712222091547609982708063741947995250881885565088610598148226237062174206329031936706999630455684421288578163637597751560804259520006590100658089679670721034015514545808508702124504391039748139041580371352628503080991140493751656978467716301014947926326997064651139785714010594767381948295454267890559140595777811406690993726527162583421808857686615851419696291528695706621377140396789724368578774178557458362063550668517782733554204477083374793951200202941997321985139739804405237250295792806707798301250331752388982356507114342216720638408256734469706668488744442601389089746628077832166318614052785349641065312718191875128731342028157477804947926557877282344319598561007589810783676922007491397325250574743614124048769171449700305300104673341505791883245111781551896752574423564906566530931508010329991404197349487170858472299572104663420380209587623377235484620602911668208666649894469620991974114942828956302692982879474832631038222772381883447238979945124034311899897865363477944177201062376836575319708696659994634782242351848663199332759220172893876498893367132076404974051578640627187968479332824493910986783369147329283646140528421043986786061535488002029044094629833336150681350476407411625720562939431091251651661477889660314979137836659767080923438003362751414168533426819815795476920842144790486513135234454068531252734418474190339428206638491752384175176169179249245478950902655769112313110029046990085395980866479378666585029828667271684710522200935898730076414894083232277266341418097098487259055297480430079923882553739377657669530041885699513440645788374362790172275913554568642411272365296257795825237789373743329450474220355569298282160925538815373698482224064271373910288719042663619746909946199848572261599619566731384054358347338324243859411327884043398178328449646035960788299987485325075835335394969176320671405527496884779091207330296903492369883270791791570782589123823984817141832656205136733487444783748031959179685537399436476233967325844187960389251966121265653805529228264092586177781002590277073719394761741732801848437682223475598711509730434437240310824968894129011974452574693580916236472327008272691283646039057922957076907900938281679186314072386159114016686116955208893716524867194790109531909525670189690803681802774186541891549804949731538175160372401682921451516239511280786872485656439050381805879328308903540196316139378041181349127967108551727488297380573785937368200476903724232220405250268615507842738273064709025913845986022993102604264920119825979180474967685737562097192162514180334541296857203861600209737623270443794213655709071235057579434351627269039610698002546323537454856379623398047624621383392293063870270665530029626538244758622985815830834269425773447200713692172475587053790297540490663919275044679847890303407865259830591268068077974600840634252577938081625680176418493399884292425668202413783354407970884771375224280973047004580290767789374914996097017596322312637067726931097667376743267600116806646906615555304111210267668550299492529939076285449270881293585781278395595647116113111555144586141319711612647176938706671781283066707565532921222654214463031751613867212581874328457439273233259011577069042082375172979555495098091423874231961131026312936020293605880815320985631037893803208688577797976433654754340263836616127818086987516977392114209088018305975868127655619849201028408147685362647964985359479142518323893936537966901456424633006452059685556599867822564520951714549205592138501230413831014972440704838132412111249171571379986137104377391593508184998895120026372222952830253347391615131266897038352480986220394756517128919828731071315623072465250236553154915139840933439562748937411899077987453381864864930987598240070737006877202589682884364339570987989459093966136001575314517036118915621755439695020920239294751326652995141308308578256706665427575479674119325453482944824367494931115394432847887723752971113143109921330675992316016873444802532295233004289754139854874624070416061496290437673901157667936208733860043386670991636373842041331893405637063776006992484696269076741455330742408243779349852921919045328767217133909280839726077187736982903901169118718850884440504362817571682367479207117281803463883071907874141105400620797668629632892801371632341521009602625848026142698973551278222267268354768126598474216505810378771136981159131903587395623720527421416943116269550893911839361542313512099288398845231411637131494717801577086677151259367162872415828266364767362935070381746243073947657344149299013535928851173625761081372451987971666542314039245187040649590806490479477551497863411965931568130607100235598736538854525087039502798378488661008718278085047512841367545502789433435458501116228072072536263417040052359599763029098494902790632204621383511524712785764142028094946890555957915074044281227646463444616652827321394005097585961210185059325619682303267166033767533516879577258127529055473001659598312371606660141508714855151107638158244687465215673639699913466952304942370966924641198020424145306225803909726840052868579079860814434972802201395065308933790287625596344132854693000408576390998105617727395632287008624842529889375573485698528389698908960539000788983218190590015399963451354978384278124799240389216350681356016109502885270076417001963333518508429080238806395690407694188175868918529951136752015264812892641688925143933339794189487810064598652803744851600798311315584702233747061469547714603557933485182026041180272567898862493470944351275329987112259140086976123096418436324985685726026046674422785157502665416496048583815721884990484423744674772679268738381967607568109747477880680948819293745131832919284007385994920632193394965656238628305768974856557880196667528166104945999339543775093457173508193311971713855619671625571998962987735242035750833670884965284216120091823812706737877418529634997384152236065277910607612348035644598557937889762303242688065820085965840855174315829417740774649607526547492999692563511565387899551282628580822495133734807952301376693665441033970604259919313105773862373702290231710901319188139824115936208326886446689896123531532172621420143756565583598545892879090356720666853707045331829623251809387034573463227168325569991885630018569011392230519845005255093810790727823107877654609469340759375427510139076429879337144739636420998863383480152103650026215280077901640319605066479496082706366887211457037202292513005406874834519911567873992002463988337279313382675923906872501995554866177217830461842407931163992258418428172360723379449573198258992625216396099957528824290406523295734465310079334181978114496738364356463461789106517404518135225243405268492786971315343923697325117627471453751828313407409293303209514563830513623223812024087071106224390748568102643120235975638667150976469140653670880927082952111296714267360875058395167235954405296670028958666154594064359717721787078968578974034697055713553577247988604473462316596489959411509980112658316734436069853844591236942869232397290587727675573709276623672015735563551730235551527621559406721418603756024738436621193298129931378781672029230194428423100970135759017264649466083366780720776004669820154224155933933934425799736719769087265090113689004375721607878538768695166718200525460050755462102081213131880126375724990197533305641250501607404593443328408749256962548727146850241198047752713590836102821664736194487573744498460935583758827592702152922949441262524738479303031050894085563244801258075455507334018436347220498030255137851083422433764448769745684268698734938604361176762211018672997185974534394370296105586901651555276815871156440031875795554860294818981626870487332453769809744563571476065329190902802234510335307313776126405626620752181753651823228084795727386206016444497449453401688577792992604252037760058830290686242188336829820029434917138893712792396995946277069152457380533799763085287222501518511013793322517442885530576231790236117695297729129716813384427631185329476904620368992419508507202600230171438886167300645978915686429326188606861906273401600989775882688908547826711907071115108693702683138513852050559361263693189654192720876348377591648357629534088622399589631605761717841147375320337464512527477543877543948318704484305210608033928444077286086493744461055239538659546520817617117271090988632640953573426367994531322257363135394153799742356945243855843628484312998926268658711401976853692084757342641624076439008836379624996107407270646631386351558176515880097876651712648377084623109015137595590685119408482657741309488268245423583148441707464654853366098787804933420683226663479281505796716789568262077448247927438680476151588427252592478757054731271351863519091678706230260733320947423697401182187184975203543272541068252283686604375294848970151045361372433617654334097999470497679749038831691383148026212761704867839956086488153688535427575568936661174404251111864899585040612994601590303499904704418591859515218530693886895943572640380288691752808642923778804243554440621900932207311051884070820017644009824637563627934068283863833037590289446326242176346838965644528970188437757727215374401443044437217279827184417358288413583269932872652638326019085264146969994911636195832940746053270995301172966989365211329328996883647469544393924964508935119318440041465862812881224637351367045989362009976815616814298916955861106948086623476416753966366469669354014891359995389859050021613573255620119651137244224814894723081330252042007557374888357620015782470496222958818723734990169462222068830413302572397076978604113594746914777524060114832750387046048353766369828482646171972628811680272356761209741305884391460190295418657269566338477463297750434363789817733167116391008137166764190071019884836392814604756889395329779028703729890218330801118022986354304190941370904411447677133805657410414711664077977146033356434977462973686501677745837714643064085170311019982333979649818920454724423044813259471420257523601562678317345924748750011280621046930995884331547120166567517724470602166063599516526001630035407824113452188634056884992840174313155084725252396953694754590890989407753975133073824572200544309149242593135538631159904634508369327454639429651342229829000921282230664810658748884871220773511689478150105147037650447475161560184540162848101490865628708393077128320696585682875131086652014821895956614863068362001784517190868751575557246631983434302822722062063562889519823777640514194252278045648685339075986902280522801751635621938894043540563823274821951020984412156634895318937736950006831665210551871372093890536034161372719684717779376103313713362784662148513206494199167853417815343820215579828664638320587057416506638458195492529780698827091930612680799062034674036749567795987901906542606913791141379876813601425358654408633044659227953322516638680224810171319205624255803013595396788096935864318269464164418035070288619500446865929558593936266584772721570964373111232062962165863312045299860837486770698062107416443823416022440987551022366954925895524938079652961861912089171915195810254130238833618571554106675899258263378706922854563524795679201514717900488148809059325139233703994912483471354934528209241640427354461941114506839472135037062382872708584283864549765345656860162217419972770641435256375270243400712162214649711291203966327752045188439508015001803293027895014393351310431211663116767307451656446604824154775916377385824296376407240496516023494316044722692489001925566278185845009247963169259325966081965214628508409771393199954689052685061826016877187847495691551185443346743658847656395594846914809933959034248684824269773646409262127121233240412839401506421533264160136990859079423499438881214926507423867407178164245707283140297431069935759290837838731311739116479648066121302882172265378620171351473173494861597210250508792077791283523168214310327614345115395201124101032308786103742738437994218776842292199399923534179712883198610325592179842725759211488164031785209301427465874104294242999457672646382353266103246975334573641037116157313465247775007986888997612988334663164429968377488863330520828536867684668743784505477376487219975166176657807615924775771601166206690275332649891068709700213352009670525347064115094265058330289061682838235734968588162567979975459142106237211190360853962917686785650210397120732846335883769123925707161293211988742836998129195545078786971923732980391322371398243732094824180615716761217143074411498195700200115629356907911329623881798278614256818219595621427102636936422028093469114278188674620530771341360959110148600628592375699262784258742441495210542458827577374344367648464431415867106566031426884842822830275073494090012608633671774711412899503906864249163061512736813674455286293560741860751850584814566877201802469094027881655760185588327032180770433318080993169072310347078194729191620758525831790404136851230489936969430167143809255359702799224653036266571229196097091580119873432365062421759418975615015329311423463036479528246580934927101638570283129129771618234255186529118525287274041985109038659334266730977345275986626204012497034861757103026693646542144747574763738120773338428486258774654624346866992595692043535412974288669497441603702873109028542314509425132203836820223629753242154306136442085660520141639776098626624416018990321041555648467309000361241097794376215444904589698217708796652269042115380079078944750131108939091220780624985377280851612547593606439186743775251135559224937839685836272378887861246511259789319793036220988153569520172885800741238438015459036757049227970237050634583678415620735089377735936146319363618262848608892543415046297824318658617083251497929341747127636611865339757705580382221986710012650614344364811268515609884638279817670379174398070636745514403362653203019129099348193582889344147481364132758633467701398480675252172655850378921851375285905147812112447090807586287073326451347055913002855345574557156066113088564792412637061252581124218593003767636393978410225458918632672627408351607402556585834177052418418072232344232927043061313436532587835836388916272653994399314560237852645838394323485846130342778256717066766402166757303284210825277452311651331925058861421755690548807605166838477861114925856857729033286869571486350886524211174257898307246580482137255385106705239190854783805681077568060253573091392742565179362043385719462025792219725668681898632849418071369101479297478970053974840215848803422624632554556874191381642652067516355389641580471265608540096709132897797405302962332075518483264841262125129009387218956024260346278756592189840043038663702587356679874564317498441919919796543556976236619905273193434248234175233601307832538984172688357012386650321244645614977700872857092021196442288540827895778400702723792412823648068423250395297673596904102214421758980066188014399256619310594989152078974175038550902518588254920699529536608949942212741340122724880403661392955295434157900014365579199068465871322245674168477961342511117583508685069928998163739245232483137499820701036641769306834391245426140379208962059315360203847661700274907426752733610680662821082838445478942959741964212810682067179306942806610501458888138358426220168592943276069984000735437320865041004174849054088722062646940267239686603090192402739064077057586943987453675068861820831971275433038408454567645060762301258827945079873316733289983777385076295289152400615055238798299967958906861616210264628277764277567862306212868142006187601851939648135457593876809209448179474408233927872877832687924639777542786536247724988443915008148346527427161368196226844553473356526228465513592036257544104283259822178195402972636273463451294768689316080822537151414382130014704436749836214117597105563868731791351019113295375556054467183261499517582546472385191380525343209133746872436693458586717188214591554691889823394616245673121156021723479637644823270837171928837568413341318302035776202683957396613802597214772519620704056105497234660180035439480269373194185988239697414959531590435781304106536268637278505452623926762790354689715008846771828516180887523509689329604552957179430628373709766463565511025704105342928673417426130273586193088179812396542437575666212081418207928004640305836059746203098114352877421408611714202615036039887574318760097012134481459039214533710766607195112335513843214190698068611088658296207953076117287574950600244672214515469463195913007908436055105431998468495108984078710594631848420183044279158872986024314582626985795187929407390009982212578538466680488248218932964437295294407691892108386987408197982190408789037955039529720063420361242130344435576536026991540785206723974539546394393021313286212613745576486202659101370440139099374386316929797792158070555964477895970700662846713547414642889798925807379150278214042610793441407845664070937929482224777029724439518685379365044433168895963230570056704126543820267297361864172585540302390090954297321771252672785568983400134419396684490774838372476923158918462876450838904571194642718467862662196766441273266977641364592779454592103798133140471756902648852803000513613809774951816763708598775343575916794819021495745966795609458400019004275444425802874910453093114035701699704156365649584161372208978492080494736302101258883783028601932104509520486849962670388330737087933552866909425420299809923151426137318394174831083162569811642751385893163228785521278347350962824963381392809446565702579394891757048383129147638683351380700422481149838277789254748508585113575425058516826177792628331254981575581368689614876716496880040693011482938788761363015745052518423827167230842636407662669371133546367755637185765811073375653013028525136340819623034670201149503528816114041352738243107050947891332480280306826951411059592806912398397682885640325207467535177741974727298346764248073386444108319766898164251643088070388688978724645972673560396813693459388330880334343840951475852169481303143933733602274544120459972628291921621150034342568711551677317206199546942666825587024897219318442255459784946274805965538112919046648595935814247611019826441330880578176221148414447974271309047765476868658233058237775596168547940880024652719819143864401797118445661347002792129068175875309341875861175033956873363289619224091603050880700992629172661181496231043379218815204524916395604862988698198177389517368702840573330754707451725007485190993535340557353310582455537569337106213399258276233578944534476053194103724357360698954545370660468587957913063289440484980148174756931507060930427006517962546819259145882158817095122283615879490589533044137154491975157137202110844079296005547066339416274920155263155910023070286654158307907692579658896153258466642792768379014082817582405458956121761524170679906188420045894051826169036215553101929889849942944311427673123113459033936307531016322412160885765233106191904342799742611701799400843994523086511918212269584184716598031781010297123741311407497183716085207010922722396048124687172292995630390704863475601159175262722055585730909919154714837555899333261190371160548759853242251030352980069347330494220405249421654093247338519323784676187607336031516416838765417069291579094937510105859199410453245241395388794824739900686635757114967744586428400288022569698873802874522549542512400512824786910668396829722578334355792993537493520862926180015565237592524758164461136380020623978368462811868682451111010937744196931370522075830449544488344588028813067646944394401179459481398753312247402636051131368220715575865843674695848739626064380064553300965564250227082020652143603534826944945133867950919276627186567664715207753952688867584582110493014175371342123249877206048779424122847619644112104007777938046104319856543729867886936926536928386018243694194479026295849443008099291760318535954925806757203168850862389563153517620347026579396827662008591212166046842602155737219310247458976282956986392661275997008812216250019320993656337648295312759150290620540253185833614337566419047340571971941058701155383803376029113497728613172125027059790284570551335462246399512194663704147478183900002099070520649359565871734211986894684988663886012710876569062188185229389036410635205626279681721598554655114058911260206228457273114124222297429617734959577259175262663450642967420921643518818546922345298490094239556133091781579997625073290441270261226427792992777359367525126706137184036368892793137229342524668120062859694420226856883331516945597864096602427814319343783842501649400901732720970122916221357615353725894660166464583471311221458889930901859990554537779327583433779588196739908690563628177389995213990154983393138470477217961469722642039374013508560040679995741449904046992142685212609675823038628693874090983166056814762709206166752064382728016760743734289102126936720845581306948444828495978055509047501025486029308966570427977546836367668531172683853791837308781884519529757031552542745633546166614553859106519781737506545590993279979601294739076172470844632060483578177003151752191652498082919382391451082650101832554768864825813152268822768814157035773248451304799214480234911567704170740766756770797943315809572246034658584435769988117384292830204762510633522178586565300605143551775717726667903315554171907048175353077102429861181071890710424915536379825155756984440586390633078242176262801410905397674907510032329321517596566135392982853555922701245911310852440449309344321856758969924158174623669711510161630479335474850358971162034429893874001991719804808890955905029777143005517140506287683044654832320082597485644733237123624465668289182646241715829156756156894335592889936684952641601867635814089396181890730511451661980731444330311261904876388759625890553192973796616312705733204157411602853511553769678373176902580774459358510527101357029752802556374295172312510429994656078004784624811042031170724774136635226041984321612724907952239437329487541019192319894106534308327115429829580749292941461735744088070257857616433530034839872706237352332549967660851198777592107871799007295522850515746329767941539520275404441454137150446509695673085641590741346529684555334174963680939345538077126611337118179896969147873891822829062081797269895780078927731594464501968087310415348899659728371699428014675338629333185316419117360066532553288522902488182722537958296265196779753501541830758883202566342620018896315520017972878891167494997203789704373725042489482132290232974489261078698095898224321045309227083723607719401376938136105090545808440037204545182129664829556835297140032574406344159589483003544798124427568346304351068300558250298245628754482360276633497485991171245330892888418288817265823175307247915339584357940691372859674967563941459729565064217055932025300627209844497925086200967955942969267171084054277925162465795688682449499977072176073509312033881834372707599954795449150369072587277202603982008846660930328820522924026993954652832504283434990394024319710397003091563906849946436193804890770284550845193053890665146831670442218925625238321666284765882259308898299420851485156876882464429136297741589049052731665860245604873046135645756319319631452261128121387079517255201390125370614341441392287520263249294124443404412460403655479095086315502879793881408029014205586975849822420708880421973523758774009866588864583020766970397557962701566410176176031119860119898622848432743908523684757825657739190567318183046020070079137181410400696062342002188895323167704606441617747674451897494745997681693467982530565274816497436200451451051261663810494373868292775629910054360369364284054245816576898908348137669657100484684109351502507530418537320767980503978955930577953654514571156122559623245300490043556611900043514029895952042917820243120257901412691359528392632514463322182096839813892106676358831359020009291671696860208333532130134010001616931088691329751901459667931786139694526797030362953130159999619765632591216574649771689017345678093940839734596267757880498134321768715937891858647989138399745226554745085614205971715964678728411939522148271133445008631264774793560406977273863569319698367750125013524065991494537175150081134543139039755413622218625924021997414095200994038048419774686183976820679568304427249565903760557508742236326076747903821714833049752902641413220820295867698547448432346505897976847206542237614941685309613270817033810014227766652859662151769613973871650026482147666111115734884579984524175515781529221548024101833986934772687179602644073162251329187976331278467111592337955030342562817056140446860471611877392437344516968160750822877487162902506347200003842897350545807856417254180581848887659343740960994037785639971217539285563614861471385800218238521055782725369217535544485921085046100622181621416369492583767466751532087096442803917432159545484765330324874930555830573788384891498747555614136614779723192645098415510115249187709733220271693748847061695052885932337211159009411289428848804899508827486737704700966875973907320082445770360623663431682470378368339850805524106701327642193943239953928569426332792944245454002512263222398747051052998463922088010472540401698765238618986868573105709149073500385890884227041634793375558408046209547962344439439574562130762285564754443692211685323311510163112431901310311744542310521420558787831836274788201930446831326233492825614670140803418305838819676043158108336662075881918688769570565347893430779374132958493223676060549293110088672018966172322149507713972877315342787471915287228921304523076759948621754079132768650892121139981154565216423662922662061076534708192663420243183158002991396418574481680722586413696170852846974782080632711006623932291931607669945861976753339235209609112934906481243482409724368007022760007314381333834347528548489891730103912906918760294627773501003297854304461321081139087818019048688666727626060814366285118922795332792352063442654081031474546574172293438885583521622223046983725717043778914669616370010226737489438352093939903801898878867102638192471201085130342754008009347047779015837413441763277679562722548179498944159046987755260033849801653437443454333061823468975485770413283855205964792725548677910262934280738623780406661825751996502150014078766655219876423222868866665339647002401750593635799586082364010932175918300688172391073286255383508345168531780474038132958338827746193366748321636708871928657197129481178262715578975365236060340684648670446169458605931758306482664397810575629118901466174276430075583932452883395898636836097601759645107267432764481495682846891254194174418472731885948568483914456167574174184729423928932501449835877574541849750315665675661262834110607766045389968491464680203980191526479040204115984585027714627668647602332082028887039985893737834867868748224185407444570894581001548663971585688312978542133898888836845435942038827485872957579220304403637038568891819618350433288806472106422092814183220334645013001949815316804957822244560685212034579093407943551501533076502113283668133404301677232592645872574376769899064268821501930140514229458724233281191299977094196121842654336541574184513783636521558090533145500769252757472351945906285438319714804791354713200357527189463353274351549034131178158877579670471456399090520950389338107035270114630924152246422534305709635355823417710046225103632005493420987304209253222296557814118192840790708989851792776024692733321983472461320723023219881930231824752848242912330360599466217726404475658417043610987093000216387142029018688480541680000370037682136887050035527534532392254262618843652155197780366598517694936635891761665937002113776597789856809233250616574481516510172539885384030878021240961672321591417026483788981506164905388600867748866150414421522535464906322136148550177114427952675097744070887822215775970233131538514930609159157689088557142604966328167384228962164404063690727958814169965987647462217236204481275702641229387663425050681081542305597561295480605343140179748093239278778175574795906018115588064831812470747731319056100656372996914932298172159892706148796407606035905332612723054700444412269907584936302431048744763227896019518348383835854574889734972322705371274601134475602912599134191055607107085718965616224616486894175140729212048091608744258282914556923812758552854588371144076257239578207017623654302471135935365268628871051337402798553795736838478174434206201288411972135311000800314173809126884574984558486606395897015540699328409838970782057405924716645965096438693488734830909434665043342171932438252229545401031612989547761425599063802344830810635166316685245223426844088000403002179440365001558096759826066539553371747802763873300189300493090334079520521972274645575170715512653099315567335635454005876515005854955256000712563665455884880987686508693718687754487459137634793955950831744601910674865661199438073553017078634177778527457084860300029255373675746857614124630997100234229875996955135259479455142065343979438383081379256794535151273614387536876349754952074204980903088029021383007772218349267252349508623466037356585780382308301887820391609211993457332220987703119948369516120518163654221475340643880131307370901922396003246770046430037284999261739333522473221366814429197408460455820404994595844775926446712805187991986773167083218126382945987102467565558527837638969037311785766624051021322237717871147729555109222974983863244951518209325352788975996844706848245382177500829459725331189496488265008166609740466563206645664030498411597118722921910799727415606559567264653881199188407507398774218010468438916744829248792821411455039904399279516570422232059413162391622836080507193077504889598854629851208990542191768345961753436682085375398338007621039691642737291694825447856153088990381736639478451148732726955013109764166201050423711869915026899094682156109887807367759821930271689967435722467904310515687478887045747116412278799218599435904975335287575264223567411963380091691240691215079330813735558304831561221496186551544215535558017060062605705715030110714049511724619387359788255686096975034074299837746041741066931169379255203811432618511971859853649911710883101702676968186590111619507944981116547264242559787146400351131322139607192481344556504701263784463021311498510385321483907183222142750291522239001158249414607801403911821487909158458210860800736215533580360043918550395832898502804866391331920602849429720699478762145064422054608142015712821682583700320615314252641998553753257576587234004998193423025246230473757669828087688759710344698832583450424322369771237671105648453246257009987153531437360736294017457852574527926968983842375388841240522322890786074310695151224709314777059706673477136575711904034961164999393173297952004295736337327023777791357399072951369278419957425333718618916321622302260004468106268805652435303648974164748895592247917368707108669715120165022376984415454777153026068504352049188192690051413421175628291013217060226168199133376795511828744416163554949957271426903103338065836807980328320793922139717611726517839264774833600401645475749392954067309684106399683167300563980091963077621983971087226551269591100455380217117587786184328046973407534574805556842668458307115866991915388904919342280231325090213693192699741786539894350810429946344640738075838398160566626612379375180399435269093247905540687327860853674931078513995709390862711001666956077560090374226733775175073791334068513049622757140158404180036005381354413251760844157386875256065663840552297337032064496267467145127674905732273620790431132190910146416742896043584198843909285610016670689649972398101670263337821553791094435199373233802193676282277565310615851715034464521999896247151365715061994853784815392082357190532997888580223279729140262492767101414356285705997818154164904895128300742244351759735026040286687634957244575972919508379456654884528248086752567356146025154890400129337687469071333842031268083843335405699934322334840584181778927558796442115943135679123451992550796276200215541139508615645802991721216408143299047384554949165139541410502979032966937720760071045246055535311741225241441998364039453538309327334614700551088937330244532586713391376509936610834662556487271356031396021348636668257324811645507178486909782144699882687486192916681035923153316197798754226815898549098766591197823737405139201851205977449976916375765753307150346668018975210097131037047064266346981040572255591506475158295402582242744357796651285901787176444962043321352231367735533114586916339454609957279305684539426505449550457679611896143214312548308014332101915778089348295672699258711570112256246354893454251193037260104646721090531683845561727942502948975568938958601513096363635049085886310619787020297658089649753126799898157830646141932300404370007720062845419506060496093605515747961075844670622870405357361323565950629245494652187002237433367996022481366403876714001933833202804591295544517082660296215698193569348717952389813827997114707015394478209713418914134415871792294902954029466309729816368011600432954824652096691397083912668947729649486924827033146485219205497984381064030055803717354743683668775170144689808313115891021243555457876788783568200967695355474102162300733224097827447658522429217611796512921911231151726227048282112003342104356394792594950203750778936766087176234084112528565643607663906199214580972911006020177840751470393727732864673130805825478152289179384000894733842789786446146146194791143377522402066726881646530232543606370684703579785959872429789149083257192603333312188343293371654422043317385903968528844176248721663969675979467729991803852386511278466063157285974403396281311430005540271133621986915234551132452667635106521075397960924023530124118145546087070491627570803056583998972385573413134423399749884913661375485889754556348339965998478737494177542157300158249010929182750142083957847989567053347789493743509048764375247205385015796160659467797917054461682739212537134786413362919243867952176480355582731122305449476894169193126798454040129214708761096896093967524892220332276931542131739829164907115395648771440891899593555736043808962874845282604688167050277036506087431719806121512798626695295464009882476745191873170623979088312414712728423109518176016467146628453254074109586105875941171936305092494555224961022427926330854417037109426418729664868142795617912656555607880801852916052641284462071248874031294486228555613574024604716025963656345345683571340934761016274399165118550740299607800706916621367517761449993416402229348631139006980244387228585982785026376667430111150550266878780938539838477479351978044649361143152471999583489052454485545810071852521234746283188400477269002734399916078731323639543057398901971574620491398863100904828215562333227781771935436733868692985750459092305333660678915021191778897183740941441520608370863687747302889294092437346109760311424110896836298941009558313809589485679441071644547465828711398301727098002061795785950468385568313870413752251669298618972029810114823307858837290745496780479968044705288092824543162994039873285012987536490389834318769747552229875877298082286467732476689798282576203143401657645508704712873122679770935475918218424276241565833137338515721392684033815780109981673918995212239986223797997978528558388654671264434953703009680920618649583979953943333849090824764616115889009230037541733234077157227402625395942381467421268829250586000085178075927234502556568635828067111211409116078706280288493193748844722823253220547928006727408232304842645427916001284170707991496233332267470166375880064471757429906832162573126208865614247242807322278887073473029566136506892822116521515608020458047260832009002659647799898904443183239688077975051977824121967742215582835340689501628378284295129249478160633083740545199774266915549183421747190738627508008343889383276057181803301146293565865738505010766764020517279597062302354707401790017551785184033047231491266004000185717320074878293032842326165371744064708757696261742386604122601872208597719006746022006725255858243140880212215744808149076367151166491489241907971122798311193762119681466036651467451715968278748135212156388761365720715991946657981873543792157024711891190650224163245074474513347502201417844794544803995271748179176120355956927551935296990281682725519349877721952639812736744766618613451547020087013700560818894732279901028942824538902635598157649852614860020744956023430814262167298128802394015370235697508536544220016186532226561927457986914959758368718586840874661997344425480391092883114405876785994936914346649701509861859648134016870473538604108987562235296267019983520477266610053173318553650467502497664647251005642712433295621554933444299164549551706460072605085805881114791231827409983445755428441630914562296894259135931865681582308954911429787839632017336091538793709732986796331829356450433158884033554748270036172991668348895626409282980053338334111814847322043266016714937373470854338057227522157367287063456117531974059894488478855058221829558916598557736948369848164872249297454857836001378748308548268406705673154222966604766655522178209536224408288674735593813457827889782230248655234130642392778185395169087437443789230295255078075687882016404753509988537397349545080090509716891389013419416450474887470536944206682496754216410699516194708940841699816265974974452485673249345441312798318333333268657653650070993552443535679481576857829406060504538732085121264244997574648805412786681196711270294009537047926649574627717831901277892881850059818805544558699298939929933865122743120819700777675854748434681161995635128351997833174565739831280861075288158195951118422601046988095728784620991583656598099876513633003751351502704100142113128002887895717730078278640991360204685070891380589625149926638467674372609576885090921381560066539774237219207249171462170833421115633559472228629047386533788392516209358207668980769128764634763974888040735654696757716564767669988112460084766548155132270916061238680218445558588343792650721306261849582927159756806723061674100192431487046817558683280031964618440229387047164546953624216626674239571610445919982907825940699837115857626034391995110504831718151514492801208803630652034029354117060090440070281726043266017711853334079163044373701807736703303905217239079910893572969715894949283884769690103009285440100163086136198632246769805297168534984461714341894158247994412125470994508116403388876667857406536198701540966189977050303572634920426222133064889937468535531839019303114998778647078160341590035236865175927022502942229839747662618847291074323714825529301919786024791342933082923052671803552384529210584289813292849103032677255967936566475486201615562002470349107889821473968579197975368520425118231559084612710743182436550725038813750092241797321386546268728419277711686528870990226326645169965070501821993992109747319188313171688246366026956441951308509159324642233241684552912892306128176379433919083146241409158141200571793663461368458737129377042204440617897714608646040626162987581808338378521847926508948424449062498929795099953033439301786845336032854506145715091711445553300143229102092906844532608829905214106646725248206415308080646838002803796833167410926897419254637747250842541818298789262015481069058034966935321228848032092813835113263498680471170382279624180846933402566880898432092713788455725769745525376892466518722692565573797593114369313805078447086423513449304703879285640272983481332989060498176214854521187418756761818672929773901115959817478801577556545747629343304175142507992999493851986146874234902263726851963007666902360792129859061169184888305257298009695701334929622524145570212874219426349907361910183784270624227946464820309686534702979857121077990578226236145265867413559788660181159080261104362253815517924993164628287887830029694619087951480023030971821818703123587499317073827933686220965840194966085127093959624838624121482871796504887938669220546765576362465117494766650810820565806321910486305756270095955101021720187372267089833565490216215711778538173588255725874574500896777804731875782142829921341753799796618642628348887070574753232830804178846427775335413860520385630050020360948386207349557247276689450603109156050633385941159083787994442875311190584266072745873323220829023189373420540650222775233817420313147924870371973278751453745608743845005099366964691979485331427737492377638516247167993757703811302933302909740734595307542668164448022511684848732509054120281368861104594352488955363270420795824557255044690897381872516150468913096893066297159275416478958480996987107905747654055596233525789287621551994486695049038760005976727889148923073915711630839300487557779812184242037446170583458486639359781883156658863729068950487871005740665068744503607721225335313539616057369252379234874523625212905045720678347875669245148993157380033284734998414553171850404420608348614015099640962499608192378180095364273306741064325790429338299025718627342436685726745407740206892705277566134132571465314649846279097780633554359415004565714958095457095006495741165387325465044801603554126947420794333860917872765512915837568356865918134531706757263777092573963388979685684429699275040964134201101732495852326011948962236643557271578711439541569732900402712134034132896914225502467443735950983296299588090747424113784687117059116509104895033451989386804378251929604985910106668743541622419291812307717698113669195116482477813423363929289122986168258532727922974377842051616919228186479707974480749383818472511847494856955033376058063720026597651504561440756502516072717424517372125593774370161778840934367525034217123811336718761987017933847437617562251404924862026896629334893108355567077668944575159343178632689241899243159305617664258788567976827534679699282106653471593561774381124858246403250959405718712588478694501903388825425156583615262805548435552158556594135272988131384517535985961388274586121769590982379032318563123490870191355934244867058496088520496084271302581374101145546781938302187629728004896356697318561580789552241171881135727413001114688371489635279720028500844304358800911920790706164121550965012536420461125245140175818629158759657691416016092389908383073681993277153237499054844445938411575868598912366215433648939780686510344315353474447287752195476425510352725137646173694999576544623926182631699319064043151600245540902447900555296907939291493046204448998382636971278245864253471076451648521062709827383762707893487366482042391427453933022415431050750829349211085103167950846741423670489420376007630211978865435782912929111870099475935135340365336507850499123970251798340552142935521139939863344660883843972432540723757428597746768077703861567110730737756093176679994157745459681569036181351143477457063910381739265860435512942569501922834128487109992526940242880661485850082198859673699539632161030405895528259859949761600123754758709332038299563541817273787025648530400700467297585770127465546781146863075542013147465933609092469989074171085965311993419319659764697359274113896496616977104398837027784842432650265862496660522055407543462910054085293358549976206046550740296093535561387787124920796708138887525749791043547700917541321975105776326363022438240544927521637709499360643026871434149383675907325642609449145698629258079898039378352332382050913987501870309321817571647356889829099475128306947380383315844190597371820601816258512592915150258706851036025525759875180022507086823951804949626317127063536833890435906258009508791305126616965352311176820392726440691870168824401690326250322911732033331363893526509246518288386220864267687378586769129440248982444025985067738946471942688953431260061136113635889376135709206639684799115964590721743821319075252614159803078330395116759886173945467837605810409624122537069977149545612191835891576656369644082231014139157290611735754724330850169746502755262023023943238739607783779438500499838128653848731202798791227328966683950864046406414753589059031935198598471029116836378173973088331629170450845729608312158052132260393852149075656228653623382134782233898860509464711140239407369987530354666467780308565718031910928885291519603298914633071804235980063391677840965792805172619293296109645688858980666763345969189036526469975155553361083679682237090072597719349743028282628054939034955692280396105185619224252034477476311942790508007728158637276551613246223115178201344205190672578021711189325537758015872756237414137507506631768464971201999183020761637706078413316765417914814659606021489720939837854009571812681630626687820410852358934206159863488416093112683001187023143103001071120217405728349943278762532261948100948728015004966248298488129158184480889972133789601875118366229401499776870574139876862652290330872524202194862948241791482624524395565763354058371861174239578545184710884361940709288476831072939115405628475604913507891013540682857558764592170929285558752173821814313613511495488931454714276117199014021007733399613572371594309501667649091734521229978099843001081742015633203961777712439036011316019542316383900168849289709241960416341017465305390285684343147377906240850003101101675532151160485630998012505186781717374300613481597491409595410574884148632082062592396887013403918635287965678327121023436225198895022399669536187873867148783790143745384462032615698749638494517213011793938282843034246678207118999590749761860304699411721629409396534254580248594727973217707240169934945210858281235555306969295412841586252650846906227186184475800624669771203949780051171073141665180313615568212749171566753357780063347764335758228311064113923617162259673156856453317651603518690251262749510263961988885266842944484485479161621151419191455866582897193236571427389536301106635476686509790801230132249549212157135063124553598038379274783407792689635402091936334476253560275829871168856773690786668287442090111518919804830828256875328722404306034863883153295975230089628836293396892340157600327532888758585516767010601641720230699876572871402091415335080892981973661520799473903851700022550644524048313949974390443739088145422923440730161400805093302020668729823920750695358925708661856525343054572668900550425265828742974381359516594622758303176312471859369372314261115739440060718617515118328441040768087217929980881649853987480482879110515501091919850499858805929711017718576015290244119693009296517375185923394113167574515523769445637438103126485593822215725232417622645948218001087159281357997548618077574908607414482230740127802359652127641233124126824811154954675022811180583556414777074528864776945459050139417428376434076161641088113466468744735356203694173498516900989616242507674826713439302405290658162802508442780644424542704061466454322899306858199414327454506155556763702797371718939553814616605679671774380958586281829886968102131327405696613659054461722304979749896299344363429192396145201929556430375004636474677052848736633807247625549296954362322895255000960518913767497625103359839096304250890721805172997276091275009665190723751038127428268691022299560196197672923097533163251154750215915497067125779585969581060986214980515398839436596152756661212188293892807893963873392567463120239215837064971758809698469358508157852750521676828812102423001551181187623208600614534525182765036588238631657313333216276961287494277128631032055214648885940137284561761136406593546594216278019925944145433371116105992454607804498898853186933095026998817245075418912294816198582663318508733216653741997819774501925241888477700682085759007056927858850092606203547772456499396774037076121596011573475874790884313527129901862061146623761032171640579026840182795821033640076630544663616065487738231966494309125558676533334575521599542538181487889253440610982782905349504787352284788637840307277975660739218245036492112093228730411913703786803929781127609470025144303706257304488410184061721860703229495789575533810357412836778764087649952532945698564033038807356194897967750446524828131759832264128617946200507443432151667153177307194529725637472587112112118603476994208513464738932301380487638271315328104185330296143813782843377654954027132334569413359515709970006241897174280591779661955826401279655627060341475689631498077412670546692043754753183356530428779855674477187928886496160610825892907284518183576251116339070607608700663854987641496869046514298568521696551713218284675454146878182498881600497695850151524332138925301646366305413627631823222620973024214978507228703196455884005787893462946473214851013387958084008959649297038604102487792295186986747215397474638630671720472525277207076429781796766199117372073745706035436595422518110190787896718339886707615981784224324754932216708460159466763856881091346474794925738488732638587591189938309925880191617041189042970796149685738674110633287436705772461326934455166570163308406058159500172984558759505499888003427132660576244017356047720555412287364088093816690742330793586214104425423034893792940486930151107351710380963388752156343230053714751030415918022767597111563850950874573190162473296863116996543251847467152861746583297947218034337691042723770238237162318945812350962858065193707138455994852892266001759283326695701763603316634138347955320755764944569767026765502981537600145623918534905149471027737511562387623142004346834783889830703799636418237199971041966998560808006838490349236069342031048527951048218894569532331831008643951327874615857228928337735333204566375626607670980417572896597256888109829552578353579328632909158715628812183066464401168242944376692445216631449852857986683492898361264896686565295942719369803278836786728912399621991142198901571177571436631807643930156318809516086067501183992392426494835957952844442851981826248608296969596542452906005836960148527296752329721695409559557899494828384972506529906377278677369062963934915966525209490678478334011235431505210049546888546592923672427477107403282046208536556643894881664581658155825797511053950750115233980431745471970465471639774615713214889531915674807790107651444978612126947613475387757596672262441253811084813769696736557971483637265920904116149627227246454915489352701330569901236447077239995468457642115873759705340023631347250776769745024113065391147817788101093807855955275160497290976369234238002236163631809023890451932412976462870593517144415061245515804648565281556619372977603045883497725597876632680133925464601380375292850742861163869297190353072598668464188060322243556184576362773183567333068886949173621736263478473632573230674057633762578289857108083946327400771117533480677152118366919118796709331632085919345427547516885049861849060593330583568533989086276731063877679788893296608114851183649552326794008136356180712689667228819707216394085572501759934922826493072609633439240022064699580321002331084865567410153460293963527188817717808649314696684823816359766883709667748612265572322246477926362222930289238353888117459803799748586384883038768701042497096516664208017308881152842853266837069890901759790365688148788438343350658815434107780334630017928335132818751328235034346623439640390001343721845446655932860057944175744335899789810628881613477049912504734534135185010324145609541892746093000490720234980080675624112077413461154842431224037231846980142965390238896002947323859329336537865925387970066398759928585307943834366656934666681133815925124227939946069452500779812550694136028137678067791097286686575882263741557196711234994551638667701228725812859250450675066396196131310390524932565499428075017806965908852557222417636838667779745523655888082039892365157160406549821733343480630355549861585075710155601344572277120036215404244663967439568342037854415896400524166492029130574343522040089050957207061923400169846356587861797082906333153305246632660598921085871310798085852052116451357634539931266366268484111751324717728364663752339033167734221268216584694102837398497270923115313643745997424592985551722842741342998148481499630008520079517988093527307872585076867540974554809662069387862650046394604549070338764209678432134290696308416692035287818638625363460240938257985780527212808738320883880838301209694940931214249428892781202341174177455065034326668113555533508779594222265380358636399132155247888114464231540921197953394253385174646729147201107836388095912070742495622356192738003394282784943261646244410967766896669643172847547354670664913735338086722952045145404195516492424193540510243929688641273615333853593507657672721674064842248019422017623482976165984610805167330845260655203932361756802645891587377203347759978258413346864411185900802682460358623822799532863520819896241164967172298361799424402061464731345954217556415766281451710336539674039370928061006907045911620403515572426037548079187118326950180525027999985583206665082340813081510855673059920169816260119263369945201345953461602700195513658330071874158123512419038046589306143430661874240904522952781520814759334501100566920993506182189372744277146857619114799448079834713942555809895317487587915151671327450822947762493570609035359982646896286207265277813740838820406145313832041380064178484272969716841179002116037073822291034152738897482165255822005349639089834262129569018267924807719253659896783733499804914139563427797973709815426732670980409934127986898596182516956399513974700425493616045723671008280494223358549095793100368259525719063511850967882062309161860802796749502947103837324066598958095801864081741923766622270055918297604052514365372296882705845185658384206097326893982063946766437631035515684466773473244347727484782936860804136896093398981866354460240986151242635756930723142349693263921310848627242356546982564855519747945633687879887340138942031068138399361710854461956839246242764685449751832786765026727458654702197396793134140829356694763281499066023813155661322595746127800388903972725979589767654250515062313644390538878782020652603862134459410791393660842163027374153362698149748889665453890813815249581071254621507646926492214138438495378123208214450569182616233533605861070880035213465656132224854334619512939448267725914956465939683760482636998588504933600255668861100170888850727102624350798440980897919798425305912664448028503126629205378139036583036244269016654480202936442883371494441743989465693824411614171747507613336912361992113683799063330198538237107903059124308093163105262243681156654085004308804886063701036527096967980526845463897644968487227314935143506721330253198736906913616387925193724297915985219253976179838147159378353934673740025536720684143565667689637526213030017539658671267057309632698086653422211090721316303279193195680382102627853414983880299531178623228848779579721227670066103418084865587481242181399408070459536333592956793362934573494326420236265708719103576620440117316247425523785978327924154252281902289059038568585061617376130947142672901762357752369164462917375718072899735798008694652494841853360174097442265905077840645075053222408645976897696464699109176028632139158549590932957312017258224682761966330673787272666860748362385575551274721513744847168042525637063127898201438757832279680947331467209459453048488407391810525519824760396850185652005279150316474601563152318341105824273116060923244879060285720313723857550080970945823497960991470415997014018715841324435437742555070990285305409429591818614304621507183189566209425234783709396249390208031092080823595720970986229683661836316748412464833083360150489846871007237302870435539309402384398969419847978595907186119173179364085561498105315954005697814351709161655811462656441571681195883814599258898657171993358837453425235665944668856745069892470059389071660272855705206615288904577813844279684342431103846037116603880728114636063620141554502974271477263536613689958531914199171179254825831079659220730776708460490933262700522805836173100447993062927286308310608213574101526935971740942297137331659409997828087693136815130999204563553051189727035478302712720595045312892229962747918828147416816628175195698686987703338785853397866491211684850300423809112543095083392723575625684870125465047084931597035715594295514129332388988444417629341878383716558014009900791070488317485409825280055024242787049656411469136475458091411678094211918374934191537920784674567346074629828905419155633351927957932739770846954773177801454298780369623338825718297949965021246265710192401936721363054005367016072957552366490073082967794307654067043379309589261307071172923772997043989380842013569467245949535182869953215920404419390717431325084036018306463837032734864293505994353717383986668930134626273576865541253663914393385748897166453555087769214139414184791218362590837457526398300105933553708772021989836147941907137948982122050880768728006294004709421937636589918509562799714078465931745688317692067561961262733669717296038491266946426152572039390723658446211535412963206009836096064403187245355658427190743069466690709330182475699979074237523688412381822836569092391080018101403645918816592472790181802098211438454234029845741999720868582652814261288992727299121620069844995711535055872094101833855421248448214306072951478782687375637846160499511483346863655889681956925624676000867964882232232832341177899788030424099865305337609155036738798724819349180608253254212015307098979458358660939459147187174813170548425184073179018007134705654621136341226442118145085748544582596736104330145690357983660383061266520792887785369750514829289941573507627171715485839755403670983925157266697912119288270317259624129923390125922763577535793430762510926892837636332077635438515345066035307971720007787566332512786823812049161633079701041335661020930466600615093164946962057416701835917588445662078303730539354280823545894109978579077948165479153592971324985761118908172551537127855460246171856226643177134385533478230863971292320701489544469436478863703479607966972840428219344580012786105708499564294258286732881004887151787333442724086597978583292150000045087820055004894453600151988078173044239077593510041780938579749018793855287546883234120541022449033329132110902493187676148954264060063154337890759848134148089462663183280142382650084558700430421866416086799827888493104871436124564242752614960232579664287205853006750719040532480235901080828319681868103616900907121835840179151902814722039198672292119570129606857728718513294650222511880017308517120721324690307773611166297546322306460673696056469254350783418081986108576498442280212966108320044772133827593085369072838982952546514513902844920576466842612508442682158744895623485632214834017290222718146987723576989007637562502474288912798616625873495424573236991302502964260718927251357568039106334352506190008857677965611539129124527464150309847681266440888946138280168488203196281503177781854212424334763194895664706247682254258169370835522946817597254556468694763118880494397817719989230540702508838323524577209674231004113516056692389750628462081612929613685180012385930040840638599800958438121875186619452869567862051199821129467653495546880242976384380631062826896466163910474944667541282495082663917097190031009912738994522982544862141996438772707773519603808732108561541350496705684574469379760755298391072735613950077684539560533971527210342181442267048899713755259260590131189702431086784522314445557981511170523752633000315355115249969759296618690799890277166398108890051481697396621640027847266163033869458496776849887941080800188966493854483695572429983898847615164437607447704645342907689644685384781586971760572785898100576158209737841025628601405133756613012164312494916958065321106578176900793775885965589081480758731344103625072708837679229989373590193657468665417524608508686968780727912024799360470244105418368525879460905871962349602339315383656854005701816022796095924249188542648906419429297398569247982100081013294073751986428471201721374273919050716991727940773069863074696081650452346157867986316392810417068698882302423239998466340027014374300282097264976517964428305650399355910226396506052477860308535403925123904227784642560882300192241518404411228551056466706243315431851629359056442944729011927170136376686818383334697225033344309545710111089110162802105020701838080746115546310576961078615606005204965840229642591234399146978888267214205142507980300577240520005502516987496607558929921947380057328353784744633859565737162715727433582521686622806854254872314407315331239663540581643088862491632835778572939080646109428216671001954279098957318082317950777509988968912767689824099047509707769352044935767556237944688832512023901644029719387841663335070990249712098304749520751897076191185016113267746374340008242816159594805433236033905948237090988884441824940591657403574269686739015705002626902978610556189835082753810343032876958928413427531202569730413630903335772019570034148990409121464752764411805006757973011473628971302336724458350140592134011013998338083838959539929238861209475528444696688554049690911746671993636317776647485684952385399675751143092415895095233125501914921602882450844144855019404079398514907733269403903418034536676988817830076579723676435044625871292259889752426182874523809218242659714359249887038608785579859740862580552932474238410281440754008818433894897287252245368136175591391742551940745728800192438542815411675389274878330617075339146630533338563478766106072311127839605474682417465004333251933140064435496223281188847181123803540021250842105336490157006142090742966713824325954607409150018672172601768362097681016902097933837953229297185132412165651286424716743503085549982163586850330642505019051699330408500889313922015880916320446301596283148088513664200833267886489084282037597349260270569614903721384983396453985673834350265200768573989750571133394163375107667084483950387963513163254666405893190196863467051915796867336019054366961851409027182871466779551295681658711809232461278225211990355599007053731250966979020984770642654943600938107397046851908055221736600448864399255476891685916423339380447938371396684202395939651655526898627032665167112705656599087789733803531182370910110551723105976857743500054778956471683683101349573072096756407044833523195248823701619086769114445549640470873080202859664484765961224706086791922495055078947656393005225618005669369060294314177078987349858332148491087362880265945917725573640533035523791771281137867281189271249758142794305579807090674751164925096687435196983352225369008769496255590076605977758029294507232938201015488237961608145710404162989922063644170925561116507596712681550558859847264698092303639082986823879917552983835037648062260206374580836977501707653134473301996445292344932279711694681690857157633679400597498838480702807340585487163969413466357584182409963577479719032550720843960164536951389817041899527359982362737900526169914307896567221959698202000225695885807893685372401674249422373250633188683085365658947526248852042343636275352405390696663898420149086205648273842295281589258937023097322293054370301135101718810790326726925514021787865752646275044730443243210265941466264104655888964230602918008919015446419890019782842081698668935956653384896232175175114026022166961834864653708394491917774436417244129532086258113832215526509462049403229302061479041886437614950620978751196455082420219223835748932964508858587403048513541872016302467254285429322252499393475499953362484671889244183932865487211472868045644614341017801747540099822179330090476876739387913017934148761658102369262336419472674485074339370798999078722133763463296444927667809620335938516531625491173795514230015006425388328469213666089382014980444449887440966836656658047044690865414828058631222456343251611131892301904952660902385558890238181510412569122634213887624762759755218528995320684392732079861857615497693289294300765469940309891472658833105910738715893643604705196394376009455101818856127947432013162452761727832626994821496754608183697625884490427518049881718690740236769265706516639890238695429444873133250835640066016361880268566671405466555657964353589618559882309618827804285767143555940184290701201733308216193576437644369156169951483309705899682645480574929226734998587295197347728328660809411821123634697497980921638993223129589174997584169752765703953412430114239966518404349137003577732213116137032957313875923874918039756630528788159180052462419647507941694938667020563872132996339617853968475941456171625159789838533177607550604839008611586318748294768107490927682726979389613499528586857958439512152982625008480744019057042538302813814379671296414488402861961811943680941031604194957511135122559843414301141711970273235641396888486791721119431843238493012245581359539580768565451469693843908447685343278539686230619461165615751072199859322031114817460579077747561576724073148777415188070688434449471234927320722751975420884610556817441666385264913578820221560827992473517963759020055134161309527255976837665078667369629779946703082198281325156759866061089100682239678256243572513244787529054171653832573055029322820196877944261369913619745900118794553843856887936972499816042910276587810340519931971228789880151477892418484433640124249022434981507343166669018319583050149991985882534358514353707751054046932614965435630836593012925336722861393577177552629470667388739645892681068425705177483331821947664656488941449626932914107797660279030803457918161124462390353167930383877091827128776660428009987519344798716661276688034883380170148265020988509680610256927806896448566307078924300480782322515803059062605066919872305924760908445524649804378211646945555404387448647493397808018526134722043991352556001706961935940481125340663536212537670174186409482578628246339974788806203125103300148417626920582279136098353747041127683977116134250991823688576483765279204778001377492399946300905283764866608892880497869856825565637928186671110166939801650157455129975398543496174895514430887764660533749526077942926713440571512186849900039521346848940645195889346146396299711248229666087611645791943879959325215108105555686073423051882324571821127448810768303129152330344705939501598414171587211509647637674977879029822322857159244090146910816952473659304934092181856483570078577426939553338139661056826882752686098691033098031239117054710494395930167321932176857578646842045084433810873818567122863338202618828347980452795784512438991238681399089774178266784049173551231832322894143134749173178570308707402351307143631593003421042609043855878117984695305900522011601845979421259493826984719457589558051168908654955046874914215625615043095193440485822068264524414168320174879831203433737574740516895217906080777640693665657812336456565251688206297720942576201225990106144415189353574300196721166164652408235100172138384724758547618382717176046323762407878875045767246589964884430986045231403359105922959620597904543010948395029651016802793250390807279589952282465011314449217444055581028886358290745815335341598975650267951735045025834233320660188917457943416195025604455466093831279176914724870312178249502441717126304039195692997853002631763583135599592206137403355874612241647302106970773446899839848409047401294135269708711406742798852056101088976555203191283232799032182212291921629640448240889024445689940470388533547716021103771234362575783565619729918246824508437567501660235381945468534124669472980723219445613504628077722678232693120139004317776771348779199714083265466218601165605062942533434906921709949235689895052733621368650869107033931375369263567197211738397059031815750426778867981803157906667584434714009311532165889133261731445429783883212513241962740588499336630236718073110278824111282631193038968702303240508563582031935627356016728444497833588534901241738745763676464151559068289710631389913412103358781455814495985907160822902942664201255231168585142758768235796118822336868915830419242628875218192430850403258124000206745459647875413196102986273571521057753978010791245655243370756456420283934314462096033821060966401026575002156179854232486210476183197684626817542959653642179090184777834166714455669316902116910302102043335441612264155332249083899603686474153389155492112465670963274723569253190831745529147214071141887831694127342811553052717538979457724744202976599013621441175159323844261300814015655803640290092493919881620407831567361873021818658787867868844560405221907785123195500762811999511084286285424411035484444591053599690588152852985217360708158960229594664348978804994543272457667625947381484952434298670498600757120161557527608731382105479810446475795705076138823563035488411983598198376383488377273159620809521387368470132956004261408446838292209804054867750680919924070401643801850027195258307840100318253565634560507931761194032011793172976784815490339935532557696011439068475972447354257743904732744781970084549006373755488907466321769825243062745849359318683357063372054965474023754777635037964225199003497948711584185679359370856843336578453878198672830271113126183511458562731820394322362912692041220174742320644918457240967329091513494826741275344125809320985395534973135447761116029209392950686842697853043678192161964182655578842877348493283015162249059064104018122037401515162625301670083178978693515786733994585144598929853727998633443589487924695435947403559700940986503136064753504439505587387197366053996494024186431137793167137931719309755496424202027312429884439648500239129659330240864632354379177363334498425958168498989495996192038674223941239717024484127748973345234207986240743403163698020974221523122156466507147691116535591375114067229189046216236590259019509665679841396464176282704494232229874969127550037865104059652045132501926986287121943729450516463412386732070358781423618664518869384819465834392123395779812772476132866593472870743694354654039999699304854641641510186717291741078181503434789225961466859826345556545864002904954485948476816741376608697348338296539654040983268666578530388411625691789123228020156065352602099946081923074261837833722581154982349353003737104228600877223768594853827183436742427813162729398196457135616959323817386183637118024321625221322300244439114846281372767090273694417916834698579986828941642526941170970268578299600698986973300599014820694400176187101142061749189073860268634872390983045809079447828815453911946447826283495742112311348837957746017572676642995681278222262718800141686799749160429950183449412631044131684723646670915571935967511253096168695049615147787427491842905495361710246694981286545879224804684404066408946821192299536508830700768109867937066304346633561058450498426320201496084256545355396620368058197059477819083075061913286247357729699810165013688036669590449722854062380477833151785352875835522760365687675796963010225359043756973147949698157943483863454093841586746899672765887199504401925301011943290675508004843067573200320228442349909697709437045493810400330823970575925646677851747555478925046068385294239908632194456360231692309061196586802807222268706025316851899586254261293651034695856919110411593732565492035967665691320034010938279478388788219489768274562685224746953908240615881786918835352586744139944500706766195713988813225062421305820530158894901214304735515621040818752072549748138610634221094228375848024928088933647966993432364019416625805631004184829693773512571664639362532463869069525635006304699017834398395198505946639786304841962047683732374083672654440834494323372622576775819550582606122387481637591632301124938639340789096425929185546119963902072897746651965653878737757473996284756544144644182457298285487857124684417223804557164640137121889704010841248854786247393515712467851774715894049451220734571373563369203334407227178272027194308020667069274907277141712516215619609163980677055341769468233873403426122643284453570681472859028656771113237117497240329795170124789235246689228208670524544375464113518138131161145881267642344114969663795123737494736919964122639609783938628696880014959616914794297050857863132946254987392959102445056599395792685816919995533090797352046860084813588139349406965645087884228741585364233176601181474961674223680990106016546629299092050719667311312291325814630038977332368720241874599043894206047861583383263209168716038328412429328839222007598499461944101037143766695296176686226511053449631531070005233349346246349487840109710813269289614916277730333563127900244724990977773142235801406387963181456333092337381741879156130480626213141683930415411888464286776175247442321126040453821825603881727202487950093650195913198348654609190376021384895628797180523086974968979283289923177081485806826400260922914620917198182062189033974374917259847659763868292756368519010566916961164631108974474026809042991521614336747987923992104414849800562233840329108170284840812277921152550716260572420023694781279830379769860458343426764947285300498154310544433002475198903447731508239130370610622886289562010686030835754985613057574492075392284091056636447700719120254044082608984717297631632101742820256202173179252200279152163716532974523058207983902284641603824694915472495147218722931999730856534459086199368925846544817510902268230304398612854758291090358779094354734571368854850831562906829916548260194235610547215140933355187314963330687398556509986859859999317266628985489464763238803690535571308684598704164324508303327211842119857962346436261398176908346586580709856281241406461845594293326906216991483196444968577111824797268493666882528491366049105592523313763295013499052945201974283804237649152288788531364318485010330459496499417432442575924291481418361884611556596449425485286915766102334582506556205353474749290832939537114952521270959432828345857896600887564376743853243251266549329125091259168250025325580288424592254493251116799205615231038965890848367014812834747196544287562761740858293160300455418191480926015847521509596252541800387281627232343654868575128368045563365055645319329950413179685135362582426912354108823548288991851532848658796426478184576174787857687608692923009806677361120726959857716799585300433269449834885036096635949813586950661284039991158454770510438733266002847707468915520089486535583594995567188779977399423089987278364605790067440069893956220550466611658471961224782191967576284947950193120972234790274270482141653573896469700509943594538047616891639601745114490427579891848769122215802543756593930197189504005622477268052566769522368288638104465904626989805483651907429197496544412913331285221100591237925061116810959572434793461929191437096760845969534755772314980385715064943240845785558197240425578388554784713484660045240946211792092111642503696786064131862772470198733274259078542377330497162866000291381527855319679782430772764666562181360745543429497146293255933285143318026611437785834074293095478433091679692551697962547841905486305437556927328397807677078941845674989934822464641899440350733806250382216113042232846061975964498345885226559124436358963613222096721746632300736687965130229315462588310950973529314444739953747794156964984850782192109453211640187591196292371214884520957734297347451143280595418889984604337348827513948958743713890510874845051546728376455120421127744886947167432053076977894862823843976112057129060236587871423247499161397968656946534247450232828014695694176688140569450682877374975120129205633643498593669819420264134900518859980597831575604885993167613494746321014893481405194345550867041395363933403245460441153145318330886961624000584560785329204755728487907803929683975868286018466849882367535119081336184275431153030404777773379692441108006994053893255963903925340266960969683747442138470377086630979352658723732843895355949714158693038063339943666732924224180788777907925701444389027757488804803527212941683065052857005218635240237548369094495565448751973197781895720708997884338034704103787626505360564742053426353768071164217719069185350605224724043485753259656475900842341054594213783875063406001347543052039018398594109819491539529842053927982161617168769266608325528085804182722044028373427334596417414100475151725122774029746247070743851063785442924071157168442243424650036050778745203091250123947720435737781957400525829100394344615078756577777098053627382272705455164668466354878056266377241095433703112007594397502121853752933607639927450326173578364765940336125298408725429986546521148939520864242776264595247504336135416011773186841546285564882965008234764184455722779139146966411395375911794039743477614036138420162270213829053953508967356935427174561022679390549075291333179159034131483080733906273952682282689234110278349454527096227987024672777142004593130758083957681563295653288189935895921955417001220724319771864439067862391877965334324746228908617429661383078641992303316300735488299544762735529465899701302991726857475381118249682428555679442730764631163035779440065186678080615409885674344451726295773542533348516851393181357959716008795650768931900181372179925514509892071483741440243528958450914345503840464560654622929828138164150127251631691885434104065751627716024009889663667894377204280764783440486640016580945760608779443135911304893875814428697042261405802096493333640861932498848890776850297800853689284382161911877669617785501250361389986687104593025844785182423456541800266605402305289379462227427085715930267442488276431814437858481542264743719316334038520503494939198068955078956071856003569344081367623896955833262556964225689913371884462545769481583523731493309400590420811462873033109866433702255532631271299026553056018408353466226627743728267218394033649831172013805408580898407202424489184838352948616751091390113225935062659024720190407785158040500984301699112577343310934066695595930734939791619777108054077463576011186361803071172935303549157940456133299982905517215052055662669023277344981461266110042261638858081788468154419143143429980204543491871452612655818923750651805921379191011042748392362347120423029690883770585724499583245364415284668351702311702018295224456568478441529797710656071201692899466740994731628506142159918354132863704909049051721124929023032475212172420366748293954754975403270348935310167445742503009411808263883885339573621522749643030049933298205870643450925179070981862069346334178511678443936979016735475514563121893482778846339750004558684727308530735761522719956284027418680919914516074844134283894270207607186155272660347127215689957147945475836342900159781140338943538114260082904128877931819505578905532355911629703678301240071949751374412976060555156556533143930353934597566119049450144751635429141678674342535438729421623767056649494369388005456290369513217440057147365927465806815964190469431309490311558420160312852635099111719681036657329071239128289833793921372403989065310020276794493286976347204601506032010762109278501655658783342606320494650735561032169784651400906698698295871016642892609130507566563818467994798794709558042169946542532976197422712652101172103315660421536083899903921491871052695403860401906074252226114902213827307414840228720402456202732626904058153260234501721623323774932580864301516234262122708457873320350201940347269672889898691721245031733037648912284572598867639272643047018771772461715803173436355024596125914371517572584714594264615396942503037279108958429092042855518336872701945660813562826439867853358727769746654516252764194620544371246878483217685254178583667696276954217236151120207553982309275381291792971567349442201555145726557800727113931191816773266489239116675868677778492043369884649212074972164166165964999119200296475223683972657278836337720484825265419212754174426470185586629856799689630093010795624184189500839559061401982347543239869518187869112344661286711428444911114569554805037505028838435043779438820178318671351858501454521799472453635247670420169141516328714958848889328865496537189663265662366472074965665880543750624066766922511916238484657208491887063410144527586760062638208232701464695825793021906091334967399406559618314061925379678227974952523804518497345472466143948584124761052325596375306622087146391222232047415523484073356429898492956179968653936097052507037958103197214363268480857366526896395445940497041853747611195668404874739915360761302994381873905222872675887200753085814411888245422064459260811017804650066502651142351651059694883767461176810605829816186026954946225994975109781074794093253073393929867063280654670904465671286058295083092638875295748600012596812284298092226933444683911669128977221632785351682606937100674569941685332740539810115241900007048907577246037245323470692347103405093016129057807277994355452257031884859334836644823015012801142102261988892507615264657412869609666607546789707969744456828466051949247791736277416133262114639335849864703662817160098039034078175008864037376224127120495529295382333070704272406794051449645853361982923469861435561324910025977773187911461327348742829969231235319320547627939311143348371636346876100637419871352447361486314583488752224686977833798850065407265418260298241997514296205412990223077543623352255629003911134271948013825313058079159407695340294902764147829588549976731574703234720857083169668410439699663039944180688165691713305652298336626472832064975868165862978139781115108104188712154114100399350454601942234622078988531913855572277112313408299668002733362315481216921150590741102572090003611548558118761418735547480052486576322529757178732841544856872821392742750435190942746126052956818716933165941851839288587081923816450572933195446202596968797553509547306036005477257249676471985567021644536935288090633079498383930532009307138912414328734752077301694593704869735060089154035774352092001800189553926084119069644130522381681814086504708329210007271262708734603097334545189571126170537924283769543829008243828938126599510664779201394463523665923818738396398646706091189484605724746979683694777824872616486304829478510492590576422679203991702689944599160011610637485399739916967255508943297207258983973529877221168685645130844945159417806039359112520998828872153662077695043877591824892780754949722793934214354549066291185480797803399329583206422117663959052010890229448308956136095222433899594148058786002215120052391952780673475625734143967716076584953110112384667760078410731986293844841881333225872426874226190469684189848932752305666087821982421748657070904267358715822951048277191399856041856568925122312905572745503076145971286117176292590330025940364150547211917269527840044155302886229542928420463568727440592197663225951687858233443573829641589294724806297970190359748178902530615471097145513917577697797305876253864301744909876314057306233608145774311537521413459869081947549664947284320701649023398571537939584133541747568232302368252025765348478706629409183033468585523676148595278953854487649538642687383158675388106775703368331307892872786071106984681640418228848870535918827399114794053425890144564611075343223783135865688038376512326021454205987256852838351343538436717759060835931630193100002234988860833956193860794779790788450688838400573065467126226634535628709408854869757078842447338481238018130353288463119026483048786882694253231428194318088004202856610851065075251244707632819329191080821533739600557151831895237402336525066527361415866579751628826436912081639756786659444658012694510703897372725612538109320817191893425454946444075526285554713517236063307453108185626785524694431432732924630186315917167288261960604631430699933565917691406510271184554322455859234551643460934615754026787845718459338709029879550009664201459415775518902532990614379616506832159942885479280503951636631798083665489159746560505183261536301221372924281777968856077719299212644388809133298182960116173817789102554442561454953943895833950859204936706927948902510753299356404678539546381540943745335814805809265928357748886907679902793968511707677677312491550602448197578782158603883147059795857673687317693676036647126191718392174623661110895019271077834333716261096454926861601206141732148531553732730678711825212306681999719301183211360332787228835837836756963286682993633813586330672449537306319673910411132569476738834252435680738541052828684892512761691310058281425470475583337033556482943625432610149839687791050606837930658141591730781164437515401247617483639261173676712374352913187346432983544956726843542081483501038591006211111553867829835154916750684896740846578135525371603543413962514488539383169020970117099076384392007212578746739677295313610845982374723047291812421165067859000358688209082445694230377054930813589619320831308242754626325515940446815383415829175272016509720404354370439367893476384856407991828187661644626594686212332530031036752840245042917340061008465759866846374405270261400112538214658102028264767830645785233709957975570524576113712225067211575620923394845269519226784671985150269050323763661357929273397372274039289796520341355287879442638322184126794014459007157469646590109480894615550295201490016209006542433145708564965388527334521568546283560332460882855241334528609676166885287773000865940618901526578595817263889888448797302101749743928136081738643804812522544220358821898374739647938354564592932051063659032329999842689446693280538262387186721807011212399325194090676854914981061986354001810067811792130739841335072708757422426823712441985423295234751582804292011294243474761465931211154774394968151523081679707484437975026131882941048869291455021931999157720664672938258633745337750828720597310740946388154722924760077221635981561927770620083535319835352656698497910114445684149865778051068689378374837157794393586457456203342147945034572234823659281554206603168517928881386632530556958592237286665814935554720077792850082575621700085643843562734650753427167027479154024601617733592019144395915518258378922330214601336643246440639363139781316436644841256059644022159474065262072004654517298554329173964200831905002191530316263934237061037965085965989684505936889689906339672086770796062258946580096225210086844781368038945980502264662142532394681166602082368569612000162074063661646996066700792591725168793152432653351114969747347894176450908796871408171503961341095857331658587536348886375514536458772977194413097078118747841904842924282191176642355480886992627149512933979744878220967795516134580724867976105782692044924141670774983250620108255841573824922828224806699799968357170247093373633011643899057188330666086538435860776967657379464008188510320823216534081374589108162977156237005547131917491073711181464112630235258988705561532037484310488904273321209229908591596600064333046403278799062205733922638330614778464898130554103531920124279765626162432921187754965196958569572796350139282847707144208978022189251070189672028059080744212596482935184872491448972949905411809219464233620520243654773873402074469877087886847184123119666163639158747723665143747785516286245917295086627943137147143241598939841809836232919524860926235585719536937319460106959134561877038749337890495719507353274219469729193162036250561928119799271680956785992250407392361419453423558727386324480617433406185984293334736631626274886581111019366141469746891836347562950525326025450554650389525600957895388337364294558197646094792201282102947728122797842692638261425634424054702719082184748434275886479767832973343526873211697739145950866976653776847327789294305454413981498573179309186873967578861718856352059986383427712166552911105712285384058220095309609450464908029969831837375462494254176963504906399095593086280015826992554912423841535002513199622032010277346966624855120810249370307664801609117300453504204604887291335641005329380686952392483497274858933833814914917931498501020586663160375576007274918032742939795633213219830892894138699084170793955893806000871841430057765511910465468092313300257954888329129164960202710481399400887819437781180069465282782886101684543180088197909659822244527665902188353132996803680673616681699480702273876233707311885260955997364610858182969852498380096481779052253961557372825049528628439343246495458795058169114421537469421862536824596466190401714973224502339468192850130446411995795898472927330518660400351054264141864105945641874010941860089649222168790324818729557764213532428397640778971111636617083386717390097690380927014274922444493488686700294999239997019598528806664180060262769768596849142047224435783653655298140143915908165628568899191734291445201180792537063018035653646164959529197169593641936768570761479745282900191402433119934615683485962007109745762320209064017139316868725087927558316657930442355246793193304123337713203447741609517654005586665263290643233212535479445958363494492123701056925178424751367634027973998822215375761160847809753080414994220464151680803140391229403652425882567803389121891789839907658553668242264901400360031703836264909045713257338384693252092482601576287227927718493581743415810911983036011370881855601160893641612131897472040195563453623652884647948361390061221115902367574692119471417582475559515214242085110639073741393177196146072066506318974940705163630327135681030136733134023520102646218746206152542274291232960006805324316194068157272710853211771780935577108679360848175212790379628836077008124230088300084850160598746351160254042392195853546186358642909864839179692989251104789812741304277573881004971206778146523322869327283133287471177120541265793370272995256977941136197960481703092093373812783800462684660435299887751841768440686386822859493820349281634739637649255777070979643840423577290432062778303693937062187858157388045956038545832126055727264840069462065141370015506487598074159804209943312220792726292428066486061133367568368726002508132448976422373522883960287093382224925611479834684054832762418328956638073123355016434241755353659582860235412301114566536024524137917230198389729003782459475562717807499537985496062716048671108562919785992988220495396327886672928655845542293915680524997880794932987780238868335345960005373864726298804058675398481247964259606735255866973315958728444948189621619813592119522470185085683473233777208017737438074739608589791493923101021414738816412486031723961621200149505475813902600272901128296286900028852675374940945489662250652878572303976637551595408497818425842091585803379348717708570790670638822544765611001544929286404687757005890978746736962460812194851670130407424094616494676780136898865770992806372094812698765558252764576160356057059495857693883812241438323643170295277964138897374398221109522693652621085828049046808527623699466020696298507772893639866810508733535142376763621581716588252434819981580876067049735576211151822005826752615447989726249588101437052867147111702620650414338508468317360853900492156103100465354570232833069524479514504592669858556796500215484799257699997740866634423840793088661497707084835016450798009803565353388894815734458376671162326840722010038732367740913360492918648037586168546321898464988472433236696609746712188732277140379872675274748546458816605572836288701822154064933356091038770850195256709805788010404180636161182584098141123669672278134024181461247425919660418072545504648950840618968984863090898179301759050427853500489715972890774202473150859183093985052806010756993834371359784183931641376548183190910340503438357169560495726660292307566607213932246584978224163112076362919434755890478461833277942411026727288159155262604514635039639908218337509856285551789245768239822089953571036906095484132326253631938760829316124735854845267279097277948149787443560721373611396524599411099585322687651273391755114288970087937819161603471342395511664715136052622369548630943587751317329394857007505478367746938322107356156835702945274849662121337940341212165636646797220746551548459690299166788722485106225474862535919940906463841865302011471879417779107811504288633348165767268691235459078063506103316492388039418529144777285193898421898344302642458992050055533919190578608759312152776191583065243864382409348134994291844754680151087593013746626092968748142927801225468179560530377598609207796207290298341486024095130997473031506338130660563077962786540171113373572781293375957639558729365206018367190154856256942249852437324854852742762264970319357802524412225928420441235496186154545593781438944187637284627218594285910376573145885069716357249859433283558117519866324228920640264125066724850208842629952563829823098920283951199580309976313482572233774867371724675465386144876302806200898858156805773930448943486653107448357088371088806152113350178221839039509376110965645088699036982256951593165926998823647696145926867802996102195286571607649422500244562718565553252101900683108531123958154014445902407044541173907701715337614726664128743397636247641447317582438179374535709756848539104996395742007411053817761599042174091927881573155212459272481708484897885291526814037668487565555689781457375290020010252367414282484114767967098098771800482249905754219227080395345936091935493235226043906886489370606597396957275405400661534537648324658946756763473085840202016019167672634786852145976929053227957775089647001059249074267135095596489380041187816548833717666391139262521622254034809504742811930294338061527081130938809409586509009802335137204810543800308820180686296030772353027951604390086207971939191613468716428776635844992889826044914406154028585310028419709759049707699915161066825990375496042147179008783142564654715751057270506863285541277044754894662632080181668182257733078988461870525367812416476818693760323912315530855198810254098659998322699972335587061199149055572986562899423866518443946857106312704280386866528232188995598372690755363548604234354291120526247811059755193241101791234845055317765455932179210556585847593159030021442690949852990187714580871103777581805186815129226084253962405022214207136500764480155577924685814443441224580785669755698309806950868174809952715797017096024924594155968007106051294599377476467886062212765150482184280627509830925933771146001344386427043471264302544840894012062349063638306644044654843301277542504627664170944007689980203941913409918340562906085779146358322414380733271878238360549961536400733537120560669394132258838064125978388108467398852525215967248606439511474660473601425718039637091458368641721722648547128599602703725899708322976397964547537585017460106399726921345924587119520665693071026770088017022318681248706009201345639933020508163138889367656784041902818038012721876484950146633220603979991681444684531060360555434878855770890746128758942790822782563663044056960391389420655163387450095759674755962736061302314615849905870143476733813423672410894512988102598740240627373681085202003833432556332313873953351774938627590668791085907322700019286618940006829269664348110247523843693419233809633523383861488373430752569060970950018771758301809371425960259322853738800160399561492761023849373258363462875466066837280498665377608063636277767233679273345200510580128094631840399360992360576997010343314494478603822095341804944396454627032538674915574569339957824546804038545845690760672323893104128978588771860312915499451130978835987620145477541168923285285008471812928816114358507601879816576901702023444409172848717653690098865089708301878024805027469914332050885058357503643936549822012861522261629561903418723997854648513917710934070674703669043809950293513505816691912065526253731580433049073989041131808069969744609034153592793394835191549370482031585316834723198936592019669468708827563614343075104199279931697801064928708242108499404422556491736409846814011086183530182541274604028740942332607926914366238121852615580282089325063487030533091529531637970598392268368340671750062781729202824524749292416823683866537302107048743759211155378628184174381939806763274039137929413645236123747278151342258356237359317157929465307265837039790946677343840282263993948263260879985531666082726870635126331952533060525315325075292073817143902349659943605669391468510365207866796141367605555466924780252640924085869801679582544856759835102394194882338409850762389144397704341078861150882201852430509489013884976090460341946432039271847800654562447184830019915133162965168726968244806938579138070743407031850741271084964833186459617931854736075946110913700334385660377514255728851463359953506902178073695851295008412746859560918517262121044839043354279412228751970520804523957847229885620725985985827358674815547479468776929753157119742301712414238189696002848301436065710751252693045943755300465296527854679616729833714375262560313575062618724081836201026919787782341360688944000612276303987373473262595481380732045511933536183604902299297938628412578260514202163979041421374232556911308835955429301181136324841950267740724997589291901911823320858833557052597818434916540907341279634966258468984873483939825520174704279873985674429910415016844050939201215556336421697865074479801660490703819303893107015612777194218897102701468983704422829200560726252372066412508467495199052284400733166780789241409884072888758863950388045512151514105667522814816555448411497599194167784652800583672271867552105803844176830236925103546668271141885623346098806585113631931894490836322167988229706524028526362592858935671817954590877267067081626755758057561433779730746421808291404424242895532067182890372358665042582874284827311827916186846605315695197955604488123803188163488959323956506239472833890069851585203001787641975732025447686691813116154227045393738422742143985780947859567139892059480088609065632989296795504977344238387956320909240262645261190050308556525316084597598146140773733226889423876011541779212948213310633595571753155075692267466965733982845472821631784230186527704803812982313721499225168169625263397286326084567205103757777844014483917002902812602322909582122394214040161510395985369571207455617228190618810341708662793752231558585958763434507043941973427701288836413166290492227391207763266492179768244190433401492533596062993210753814089714278229043009196402790762918171491596524241890859667939298736399465432134100571363830493325680621509516301390718133893716843274615282308871071367852478043621012746258733667863239494102933718244932398171359377900318227785043246337863738884255218482000077464028319650032147795481081888075349953384924307538390046774087616955934188502525080085908690270165685086529154004478703857360927651236733642068215447780006226905873648424023586423882587482451991636872487337553602681046335860065354645956646085509489509780047227863226366710775433482408274503557598665062381773488640774993854430572287452659639461741032425698100052936904953982029951606763112653197182097145649368238933003492625903090419740376185962257042518668253349231780936888083152236650881079588161842956306565679886064609887820598766451114471419986478345050896147624419829518263787854835354690678704209065355468711460162525724531981392914792324664257368894254604371541291737211252738607591831558004867218758935630708151681435315036905637764345494784011117269487695834126818137040867676962229694166967766202060776971324717981001151190144897529050937885080714982139716466486529816453888894274363768076708958811341328605170503718016342713207926670633672308280831108825494360769183726655195428141796470647529666664014421846513075183784162837674682044375999939156214420293828004781060078543738249644930352843449003727845019465156451174340825643843104482962198082437075277054130080416147533940525693694696042662185956493041334338094387513122429091107137306247756417347977261107759591623686651256279921457071819798710659000532345632951666288641427483930676357568113259844096686696149603973474799735328450565047846575449017643257659845666902003792935899122649229638209571902060824334496779585626950617293668832098250634122384828403887392862902605179097362340444883771882366283581693954610300985212422637037912835897003326712322946940934942765761422361951214689143257538226660331805545142365967483232199769131972659771209030683942685403464754306011516283797074110445305537851765647289070749566639873704887385106629171169934211397288385716690905618356087847784653308148446619075956516155086225694379111625392678029430268903712877267510149830233470095764756396160798181345483269645152864725490631785197046454326396681151473410576437587692674084665062037862807181197556422371944887613716040200577939869307432036238799398092302716314173397003250850529159751059798487437058116642860102903622675391871333350759837448814012417423454932875886752014062249506901265734515802846169524384950743730405187312319017598512773734227341741388730203732844149894360953748956941000546325312923153710437740363070917339237935915560062465235426802907104044605716687623370148620731452086546371855117014390553495050246730666255172660026280193704391821780831289826693935197888107570090564312858022664275467298905013471123064323842674196730863997192695699793351927654790349785169273125027059200764650454257736222862596512124254750990017115213115434314354213201046503710402373024259487992655548944575717945421131524923974321922412822481077009272488806186666271430581412619642508672763037789567264312317085323700269649170030333337437744396025403987897296200891163804596677218608004552489699826188638245441586224984294773919702082459458630719528914217522345975065570340386765917348658859172748040948818992016958591756122083928932195294356810297066995017782230399070312153691632619543671475506614842821725880612685175077381359742353722081416365022288969962431947932470037909272021977708889125657725938137584697813290813481620988965050074736404729768242582237060037014503205712491986854312772588232079603743969500962656575085019904274950375487331469694285761629622510699254532398586009157234792242284228996152825496013549488531864650404703524742997825599134383742782417414661752905981630077852326816871468374616494864130254867455881113587347184198927658699342850349332165781704131795756424141901982439529425372411436458774026840646933132316408770172866201294291820118373607225770963413372027125556881188373124237528105559908764626734723007979144512526187148213348874709903081699066960149406689881314102337985022457741133844082041557166664282556864639164765777509013748388915592197701634816989103775687850625800557655511595082550295379958774159670617870309174305210849860811147332076181634755121374369768469179945823470361275862829406044231354993995698077155336936053020581711521990803585083251407384317659276876304395889739631712083294929117235611172766858997802464536935055278737891216684222047860028085270091114810543308217016435907666831385186591346108424496083881841884430755881467050888625773923001990180887544859945238384440572178837302578720093379323514549671850044174548712762131931017850271427602037392503400996619365485202013556315340226560000979739262171865494458290818122341979284765074520558000851318048992526916333090811805340044728382149331794748605816040944081130722894054878175210531117363309011562125260007639555589298745332879658460835639967849797739587418968941303357505121721498035982237556782581509814791907105075215762118739662000148858756958485940136938818178370813088187088819622335109338479255705075951585079600604843636651638119839220930454715428424900027485362046392130071560167955157743630351478722249469187823167974503873740728043892145573708678396939088421800618673507410755175023198434820030446776606955344170313289779968631445363590980615361324013714021634012913361978863518760662754360008538469819305004664722514179276017640773139162873383689132934270498431699002508667130654953208615346672377411669906053274312689400906044245289040367748925878872478708291230149166975612226626126028330870818953348103893675283040008879026153673032766147784783429327651014758470078942468701792818443245243698294917377458273782727303370873231968567802467842125144354729621548057108875201352219523423811599315531755495645881231831515442941481693372822412953363675586583022874623332293720957393904448466872276723555227372066097534320248004584978436842832183583976388351567339240162994741632291894412743321681450369835484188469928522903920156176221915018405885468228910992762689090340503766052684295868845611704684888579172699655579440823239118851502554166487977539436549236756757352810366865424775453967567029372994048109460498201071385424551628111047465379229785513100655509203570187415613447682866565113117323097114002249664565978346062212437362186676819618413095981712410968411507092724222831750741890417751758872488927505850595672365778378674907907952181119488926279870521527724030714756809875447642616525408858854859759983506432262358919050356257297662643159275153227729635577396423222536330948655931318328464754880823642411176464647929704465201672251883141283372972325383534606442726322698166718557892926340381345044627249172365150497967637408294390927290030266727026307581691738599909562587353844953699997680652702161784841147026511321815871921975210521823569240010214480980908585961804307217317919235809396987729051514111970652339473604080709772767210952717027695489163370666240854245140671660996717492962623878415589639333819817265098596060658217224277333264114320600035631893323351651139759188453888495361472429349143722889418219254226497544217252196495542015524436772770272507881852185226734325665407332138283989172499016556907084696630724871737019932164665473926307941590542501429604336696800641222497170522395691684778166734462780693449524050704306150707521189701190568550646716994545402792439156214862741225275674126580246423054491838683708165372218517646685961764840102108747026492037931847826183872320354054982190585775815902735175692061530670889070221561783740157265806604920430188559053388732406224738925814216395829976523729031647091452604726882365496061191249609312054962722528867264207883876808251564303665219106040061489076539762543911681029497090378729565296362143099631431043342946595920918610724996880150835538526057951579849501706503064394801131027119949894985374287017927128058408487015316616605053069154937156254486148673459451777566546118910838815276973038322914487649815099908548888103864303609802839221848763175538887460897162257276984893641718678480621033430441757921195543765457257845278250792921271759045374997045987599373068493297779325459560120342805395368512235495501105752997639045364342685011980912786488236175958739819791095827642593436334146012973738269084189672434535323562656685215204028835364716231131796508405265013001578782341019670178441844076673050422024652197892077988388415160466251557461011558540337362809916355120559776516270261472661769561832636857844303693335224504772211071871846589719943896676681041958491842122143613438949850450858244089392949346204306883724450624542085428875660903998787619332722910993202334467377669850846880512192991190415414924243340018944214674143475192702605169558134269788218989817749705720073088217822499461351421714520612670573378640601959020102496501160630296178777023696025994684104168588273580491200069259906443405418545890280607011009996315514955199194407765226016777139901910298042506321677160988665867891584829899151799016318771870951468107835285780856732261153285187356721654375445237802632212172849224639903894229459197391223085899296373190398737028223988862851344578705396181615095629150136690062674683895995006702831572120638566545692834747262084581890381140060463958675138731880443948083893742788783544562228289087843234482863993126637452554414643451739063868678095681354291395187925238807711795550224599420235841340337322574341512562939056956889863112594791353519633245367130684570043977299028456748211231023239372857050479300593717218004030544003767021427815594301493367252015843171081599140442350413206017536666545034879229976541456935126396029727323391643862025218264906952761690210168134699116437501367438546724040715043774829796618092836811505885846894199429247021786535673835198023513624051027572907320089635896708022448102585867455652610981694034151346298020088847372282098029449001014830974284250197588572676028047855758770969101558159121788965984979331171894099348495452648213504330663110184675285529245910498762400304059689941979903677494577431089573185453854800665256352266324161209589441383820559987205130606534254638312237798179320761101011116463614723317113572414875877948386246716303106758259223997154677576412840062940112267834696366606175700138238544459464792066750214009944714226062586097885334852697842100641107368357411882584643503874728297795660379449709887703854319440740481549943310367941544820388956044174558474817646168742363273193672138023544199236901277526665965958545961411635541594541246980598921179043842226545277682915463003812546879174267816120469715835882395426184550613554488019328421594019290709427210096208044755229801262059844879822051478047186614839445765500243566408245471530048268402587853022639506378792163030309319946294296362040798777644775112033076928065323046728659477278413439174989104579219432465897695161086991920142091443100682472532459843584222928519233072532290138841473589647684246818912390302179412571315032730567761001055870984443036045906157662826104319149393893152302935016824883575385759845252188054816573998444081374695698919442441661356332128140235468082834205241309450124624394636017594496329299292140503610780142251856620118515291330546120921827509011872115120428619890476516428822162565957855934008876379518616678073366500865563607134704546079402907621704865947824295144671448686870225392108680919819969033191069328735163430591929285792885338610570762088688050928186272102054573112821775656641352292065758938627695761739268586396343112259545111969875755843922302209412793737788371521377890293802468782137348930425471412126910951167836834183446359591243796174374881158657151190122010940551132579223743999620075263517213718723588453419714930736650980067952892969162528083647097845310333228081872616968272902974586757610693450816400745922109918521927171398313380477360775279104620121806798744776388878168774003404250401120000807948686570826860574571969386162423141211988962453909866744076980569914141425039324571577868765249562308569144877944321098427904331454616437718801313407150492199378298300966056838516678811884375858800617881794340936257298207803414457239547671697751080654918481525658502964117040244525452195623804038126785342825382424533133918418800531529697614078626936407300356854641315511227666638086830328791519595199282100073562910780111974278276243392784855757616520664319280024961303156451048498903905019606624143716781249921416262138054267004118084760331967013855389383251548611405289450519364925005751333822369780516207891991931965858890744693910483221276888775440958004867459710654168298234076104924741600842958073913425702120633085033052455097107448554151857304820604410891953046861212569274622997360205397648843525897411594701662836766303807413134373302039539464129393699426190941700624086372568988422130571029083834948871112668448253004312320425987666204351386488616206256960949479191555736293799777416815708825949328668068097317952459881331454299759566575459218750837042311580536294387864078463480192057769934346504589354068754822135352218960328869953833413759885669863734881031083979140940976535881310867873811024796724490455649244182659347154730335043502821393437401032710979991603370424196436746117689525605935099072159155538398117773616833975031999743040477238460247882427473588394024438306126591579257060496132410730955017450287749038286269071777559874066826138240496880466363424114137538272873713638889870364200396959079446414145902218449093781835115306390482967558648878022186833386394277612776559556226514424881916346864983554098679929886576789733915063628339446285640269566501617065482274620748097948233207291651566539348493788664231890788279215238714258299408561732677999824513147088295438146523818794840890208483881012847866289338470592544522709899922245955610370723835696046693124347584701302641071831958914358235648961413656582190099550703862793087598515364415716426368584874277829275781341096554603990593410914248480277165340489028413103121974765167692513873265398199919169608749917007341278985941653216629990143963389924000970216056880957429744904811575620082000314585565039409015286465034987606685105928053248174401623996216725328449181583071541519707930785036927226096764852668649286277719991565381445597759186393753598282573258930754175816736924218516876637558253671272446823463484773707281172864136774349794385591904353233810146725432134342235339997357152583274568012560377844298540719772889643941733249006630805988705020470444858677699703726609822478100137976623026574623189085435425500517920351676191431177679095926536959831456027819091359600259501433662302238265756340449675339304339560455297283806712682588905703474475631568903220244558231471046810420633745570188115380950910797419385364162639455972589210598451187079543059025734873075659599086497030407382428596921550426446220625948882922046564227039569623168239471028588897368083640569613570697309290085941939146445576145680241611481973905102110928520120322152408816925511454373080053292241919423344400126880850187961005510671664830520397896291484967272723874525119104008608592245945059687346738903555763705712284391048543588626201510498522650645115520124400235416297516283792035124822912694051288209689734917871539319224046504540290143675096535844226058756832114806673481046808389510322605873546272830376054189229388586035010678876631440465496993215076847864170594163255568436447438518600930951268670812559043643859209659011894842325437433333235574445412629628129326194549849249580508566807722501385802450198427812276641510213214758763049232439233914744763798813151205800078604775120906563880928989332810369945600743042534163310129245230634997181489987262310557420363922031060074983044853818199751154186085490267594849965743213149102815372289541052587529492634567412364103184520707349244598476657225157492129387524671735358132031640752830951560528770046186580272014464419535070109607321029539267500513152393334769751619125869871718851113402543316009502758570351894759371304990318099653893518037507283849304993759530905567174368167496082263096449017966519238727291840124287069235196166495304231079981963446483660300474379882529362835377899079930020514509162022195481331169235548944208535028446382978678160970878272312037092134138384533728229846355990395268726128559806878703951046212418271076248502158277076264888211978803871386042108753778056734884385867172413575496395898569933329483747337266430566597143295799023373850767552722374139005639549750861115908914327458939174624332873769286883127611346789078731775227981335692395138014119983418003893939833441888952050647373833270000429388509524015598539838695570073005784271999874017756757216178355704368575682693844769740234163454573045041049719068764723857494871187213917443085018401372195540524769230088450143154720605925920628756685509857817206344231711149767984183323232789234586291459832198348607778372759093461169826497839568103016959671287264937785927928021895265042862792756405625183751055401604305712741135237242445508706571780322721209793005540998200880056893234115402906971924878605047492160198892155122398305571797386388421134002254127629965986056560540793719853423907341885213979647771093300389731440570320872243428328052252832903234056610755274992610188550915115566715103679592307381104669609910398596344228213370575119609097441273823189430943547678713217868319670604693824845285284390087117804701599918016338905142579240318528548075970570602635431705911729224230472115038064787246097746412006015186643432479529826702037805259872633912663801195097810360217481950304697537618880504838216840313046612959861636950082695008773831550053139413373105716596047796675954707669569465693805185948600882820295845465740661774374971761526533941378678339677323559178689397770729607299960671624813973018872503285813353052859611829648050450026014030209758433820231125804919089465302685261270442668966994351633052360764883466277332538311808542939188639407957468984592472964982503564829586191753653746352886708264092685860618978066973812589760673987509463116880373956132570714322394842330913671138211710070490853273681000888217448128245563669739757517558053988762882298190223718613289322905434535950527938154436499597972175533902395275793002152189725999072497096596576985412547428635900939182081789287099642937559987286203713904209063994375500380328558898101111793808800452404859500097032416556216263452445003571598898901677359701020159808118200316155844990955342815435959700193173877529547377265309254733762137213422675636866398954913109860117858114225564694632404711466752139332742456532737918274550430981134572879376381284533363381229359151417321949755078543985743217422238596643745197620250716578563146514355008218347549744005476164718147800244727885960559875491794220777900306504486915661586048381920144449905915707868008500774286294842387234758780537741415874193366062420993528830617608890086613792200683503103799668414140526063298961154256848835698834700914446303972865006871542732659799409650647332851053022818553664175377539594967638858426760975231747191641268655203663722668267829488922752603306665030803492733616742855623224730981177733788178667317785253947291094780219952353750424606792089378991529622643835416066715792578848002051399838450362804829705566688385359149316531465719633529717418315647794331514770552459924387698777205468825557009525119694467516570635550126353053098907286369149767461515383903088343655325391628267742815877148853170912308267808562999627252775000387052087728760036387612449256632263443485745726461692378308653469280028376243452171528750800959550492187477492691146400266385035241517886979156981764884573938587191529046933281524447703323548341370418947567972412658266166323954021231630760863997282939236987566057964847796597413370101981445669919652577514057336009425211326060443000811457085061034788830672757500660774407143463859286248835734261442082795893697008810555475474729891493890771102994283824986358562234850525654713428537890444532165614741989639632505693434862027555451252353840478541257473934705621110747117916160958256777855593914419127054024484885718181634224233327475288455888200312863985325737987405699652068825286086171504549492749817680496735301021257556484549628107451577280297499527319547642538326951391694463516189861708025109013014422383492262780526942416889256168842540441552875763605613164057249461143444816043081205069926526999645319591324075722065870978472482890885242798423131814188044276116324534354365611763037047715774903499762463008180324173992317124147922076042747245159195992853139381491772109194419055993102466930293962806133170362422439412505561796596180728277949153830397007781245001746310294500573433666723618708217638730124322701517177707443391374529111781825909669190884682049831928790599637481585254417815460677023176654590959208069938105078318731983592172182746677313218344895205705460148026490307950460510418307521363550515600671554114946713682488955451788937343334813287048990261720202831477497944477089356898632700683538668953479205053221100468626458312332496851301171697379982767339985713585016190627231471347852200299114695955734954523763011796130763973292418604581456520706331057205733124253671464019578953899653627615907086180712906823457244620572637318953492241700681653321779074252293021333350833713157260326234557401889021292111694128136465704763437464329375471685256376061021139400790569529387923480731431844772290047870801548544394392008126956154507131001209294724608758545751651106213619476461737490742109478186832130847433339633747109008034246617368148488293360026150979112361004441541797473772350265128166502324921711379200342325021593092461512108577372512414869538407876836908730455885651485095209615904010232879343929976370309245618507129085742856198029774165934731237227305456089405024852924446323213940354004075405834377037186965934453572495913421519994693665897976363316797978316711566908133609514674034423879706450055926936201838119414318233197444841653851093640735752953515834238154602791775351933722822573752848110802674566275353112765291123011923085748688152366824501572555238553160630766902385833587385557629516432887718500260111561661544946678647008731138630163233861461277323181229905894098961765109860655810809274955898924823613471586284072008647367673384435182001687451213484057922295172356884271489422277687513577694042489283956244627437239252053323781514916580139143149389951559306303160753364363436142314221998301613623574068436975339381383919225111580004772545669532577936619426907662976690669899258602854901134012265297274003979537102841383812853046497821600763012604742790826717582438211181540098661258005964650106091387154376476179727961257865758253618964966674292144681298155786085862087466106120813621893728409124959835871129954297100562709362243317215007832672461875241108636697089094527391559615165718278549793776744857699966901482060996030827025245033827835998820907051673659785558485676356649471563538143351593685510243867821089228935620259402889137776062360838862875616701209831040807254198015933983158709114902514693129972624187010718471229433161241624312867623161849823521012022587645814765613568449072435882739991049515983264505003712933034061343571148785261490866189818534758088687374845618655597693863075626103027140047086011032053725630880503017984887944247407804897794252465332215349927322192624588811949347085495313521383848384034208205692722308613319727118136695875255423174231393813608574886169144537224886028895231590069449185558350645162430699240717141368318853750857273207802372060618934357039444898364489314508521802540341006120858855208844322849239574880083520438089575356002538792071956310540830867222006548389324734762141329580052112915620863060560508726255797612338917053187628562981383589125596104788744927758302258497210446894616520962081341625996025976042262206568559116725819025778783153379712397180563224421823486169162220428641312347459473310264949053007233123541222969224666880279572055961769871569073293616579597783990156412182930327600264651790850174931040702062744522969856461514077416294771359996835010929304659933069310333968682556135988724133294205510699116356248611972831959263777770488616096065281511010818984483449065159101697635707115416951016545906297025973757988632918824468375674983903791374579697150373982186815422583022833009890555537029355217672975766001521348149999554690939186500871484722683258833814100167834306664984710913477223597456963050779905463146336804657696382710622561881340380654207559503253734563349318452345165616785101541622296117683675219565705613963840473262057143139605279147976215835000085112669882724207279473832940097123285933584636395410277080915740063807289459334812283301120401883919335888111891699475236441923401592528448667059617476316315250714741197456933347451409473161809326840812783151814960175630100457117556821690514435402369092832265491370167319954607939345961276800227003861066166010453347344501480401129310170760296619051971570792371899839745192910431113967868184404162013972339498174523066334447255271583567230269454510274011996087382959177294268800383561457728609209141378125395457085299294295221419545062728847423597197331769422525230004373292947191894503548434724456077433233858767891867661043507585822964247239774470039495456215243704573316865857462752748174592578542160315725484477242738005084581504399710322635082277458447059966309732718882884216655316568854590807549587783058705701168230798882724278681132958783413630053016338039378086207757111327131017286483291789947762761599436758387519899446734233157568067598122953749342538923387755185771296428352518053726634828726562575107819466346753100642977295249654712130415012410471549844907034770221581788102800818344431396838992530087823699023876482014016337988090447592289699832559656998593446636442765062532875660911551254541734213965087799180222657982274458884694299731392877425551168622938399305722723626743589939498734486027424125524609001402330013763233563186557645289466079412127507153430378186673920344787524993319570978930074263819949650008478214874001102358954083239126091311584523080058266305969149127710853677365239821081687191799680027965438305202962198959002567893685209434349047629409607659410951485410621078230601281586913550882819897930152603904761016903563406661343829257322024894556893144556529306582471161340071487213200671417258360841018192768091006243467989623880568051961100692613512021332848445889393695826570260952749063976678293285279525177229707751554759685281841567711048459172873589142350484199870767432390187619330914876212923951130098652923821346577154643884066738225971618554036861505444635905491346278438509694490566850422893805939441095489202016512049087877707313032279426503584638404641850703071939680972213053158558653550004872921848140759815084456623965719759368573655622261129828899827257864928876473558543995137580361787903031052241364884449829539387993764330510079048305458118624162359168329080765504699466087517859279606057412690947220613159445683578873473331948722221716956250128083292178575520140293875654622476674765212606462652450130279826349754191610760445664816974024928296969594838366088470511513208700870498339362958451520500122110992119647952404602461356194934324058204634299784285157651843301684873832730728814651185449546074994649577512286825146176735591862005980806492429675462685365595181459251646635533617788872009823871304567681640825268182192216530793435859849267807298876988434531809687258802276608792472909175788995479566454962952577909921413268651875479834554275401537485533679610370947960244459969805361935349492073579019082662853568757392486346788891907540022540832404164841607877357553722956920282072498977504498037797055474904880005279825399103850064685216562602813525742065757258619862706940064026734773428950966914862025790063853166563621200683665542747798943932705575471033770478771769056406668187979845711260861818103077516959315312302074277464747967039366926973581357912042206497164341948863550422551307452773415027637225370413547377513289244279905326195903261917943265728370574036545728537112771970732918083056478403831696017547952133546553217364449803218939012384119877859562992101488346371511037096672323611129119313558371757052692464847171380768929955916427282349894161739335044774705806542597433298984621377590827591544644146772293837835012730215435028024868489610047959817993844813869162808369300685173622989122480333234514116937492632866568318831808577770820676729699627105388922603533212234338506309093263381725009308744674536285006301692932998476219953724546580790659501192750273608689016076316469875557716481790313538732589921732836242701956473581493254351425338430093330931980386650812594394925525967643923429532053575303093160460793131541758846020555535776445176025714823601290770241389850306676844165330803211472238225959589851310837356837515274365713183006493380884419070528895183647564981293217127178693953164102429111063456592168145227546538178011360192287126696245332216528099237043408679776484787100902946646531039783262470848440616507269531960225337473166204573235875084402122955982438521578564712688627230498038514102508714040032500877083086935280596665597188180947211549383896418715181641638379940298497244393463691715675241839727592901202899426590467020433697656460815847945619086141574709770177362698057555953635570737133756538606115956947309933635843893560445599906539233268083763123604354943678469628301956614362432612073825519098282745041796319806140071768339236774115027150529745170373020173834581355247970361637861740918824253926686158821441338672310369563528463686013068588471868422890810522316519989625416676301253804013644587526070335700265305187632946950409220773586561626747471669579821830403998145029168066780783931231105008544695018841114600391655504670652164418728721639493226445629213160877178066424654811680408892282426612259532672651683216546224014259607079350816400719566359939373430811103858966884785533600669911748421092276507498853973991891177474535475546192111527828587168369325469150962968807128806005559074473732283189957422641058150842545053620756740302275690243678223879388811003376968147317975226739629253003182359420932874503503029941056195132556039227341102979623766707873960154320477367270223724718095354106627443494298391335438603749672138558646569571251813866605659335523883125380362338502503527429178141436738118885717050006004987486739624770391157722661467581757932996126193079272106538370461543644815800467175054743297925353765760195351137199930799295768617032373861111069826116958504636264047703935115884492856986076103222590793817488168992458003647709277472582528434985489846395104768351044609391822865661013671020418947036075808345892660503539269144572940310039465221340370985541325865024150935918573102718437980453993541144398512088768514275974513585706892212067459200086745712850971342499043439751710678996521555446643372565116909776531329133663263483712097479772050611764042583353544022639702915188633339405374596858508392344003205397631010368906839219567638123796244399551181648587237415234799999884322449236513474749876708662228300514712084982520267938725971958579010054673157852550032381012523546996354566146383056058393107081665287441153802245483490061603207021292660078488637395385331701071831748430709880461731404823897519438746548637523201582640665530353462884618837947549226145287556698904716721765757356899819537515550000374128221229026017358286386809309169619679441948786388309316465185306664780242687808400816571340860909907612117534005713697787499469047279560493048713570818923220674916329902001792887181596405183481162017369482181517356883673577527081683349710047516962447703717272345479861193558655756101033772376106300574074435534488578445021525035066776145498233677144947139652226249365247111291970698080323614309530780901938178817144696150891074495368720560741667124393197266850270296473886619037746657154874509605597724551640208868783245065638037466548727949301341033232044075213732337518464913001862172415667785333719255993755403925208163632800829861450805493611500221361724147202704210524884195361422020994805296157781222400957810556383526671073099319334650848578498386360417930521932069721170153973233740916029713972152646346546484922789145330300660595449048972741568562778662690058628152792630855085370154547783502775127846688241693743469943125540530407144363127714213007357467717280272011547401566555694806959445196552220935676156210179546407212930756009430241463852132828241828077684460541136035212024455876228653130614106239637362724460896657214557074509092300535597803015363857751414800631982255417407000003968762130908773659863796476645413972544617566438423825316144836988109521177961200046587290298736093510148045417625665957422435718600739486576894055739482738547222642938758334718422176841610674225593693724733340660533064808041053704234529798762131404799147315814284875831753658467052847512349737872332736041040331780922166891188762191234743322174701622913899539819916996999314988908899519512240308122065021940224806672493911709645420501711915872740726981545886684596157054558628778645561753829615471373896922150324939103624507537523568712888069428325054566772659562832779330176636593107094255288550711256585080566624262313615725411517603041740702694319345974224770056237340183584766445975979291771561719457117338189881995598507714844103103465699915187429421599254833248893206752730504346060287067377976173262201815335407766924906923309140939255924046174913600699601304327951722860156859884948540814504595474545814414163679910299425322954537144874550004327702653847404411979729829978886138184918202556223005431641088234786612666791504503567306150034333915747429013825869092453826376892949389355270998478910450527134987554699221899099056454044540744110629370981847720372953709633073526836524417358936438271957052543985119065797252313708060286935229995836162158302111328851566203933359786138337755660309972962085415313751787452267215391037243300047728031974155644583598750704082114450513248341126399391838617680154668792906393999967831059891715228282473993708287805036939004470784947423324967123250864270513545286720349009485694725872469950051643546211917118549886821128514453112268688559883369282555129450872631986594858813264221478833586887605905834028212417342843200647938536571350422299089583311130369058393280600636810888619184312423453028486386093090652982372679397078670344516284187326076389674988144133434918907384096452948050174484028580600513192407353632913456537280583899126432009697102898473102575640254727770139978812900527008235126493841074397508252112528961553531759451000154328310547707388842502888250225765526034464507447127632250236180808799571950051682806374031390891370554956071678649303485553931738821732615918443737117016243619191393049223078951379671424975786493581292031563949880111262982619980314287118714771921821611026050427740780524717979091509967655231381652616444156782390418659806472625596790606538813080014559599307262431744273524992693685369764670680720293191244738062986307180299513240547705892405375232575871547936048291434150401178034848730562893332601152772551346092393983682793396276246987856236747451488129085229273788935188863001508994037984751049428714105976744488386812071720243463214260743238378113224429618227013508693373755336358164441338590234697396023606031690927706074357244386308358293492575863701680276462914815452965212626778996597712332408095058826266249871566056476969370967545572685871731766717167510916944720873606049649029390916456980507961936720441111501254277360000124617953213886545017605805875015234066893746607782018757769174392154575398139093164955664790131288933618333407857451375369433668173174644628998629345489574689734909111368259048679478367498835373798640730212732609677436908455701712635573683549273188921838903626804775556133093249507043990842025535583210192009783205283774900943755449237329611987666829681629664108057718583937790315689375472282999257170943354889051755680060925213416765245584835822683467258187725461428533997887234690353559767993827524746921991601592678260232121275618913056397094050361200285813172624911377108820781051416008247297074984733744971111450541645399624971602511683115914124660753191130455413037638828857636960050990028717308789636535470376548743712929358235343676209970373977694437904376480496730419167055131918526308553295302139179761309619859754322173688583559808007993276297346955607084629196078234467623286353377891098958263965121927660368120982661741550337003772102931361236280233426154427483632976398095438780439708270865288520044697200477413542052987001594653145072389048714183459871437306738283060844622312010946564847689901516318750650881507154267946938177309034666188262287076296018707152588930353109976616699991725734261115908759849298957023269658533053967999440966751669355063091705278409404494737513518857721370350766952217395692313577975706871763393528280933505818808255160729199561820547129747073251912949220677404230125948071942904756704373710700391232481607435196363038986978345913160005987524016792096287964651845165648979523378431538039950740686068767937206947054915788869499220490861780232043858829695336741843987849271109831264833405572904790910323631838242815940222579479792390739862094551077603325377103620535606458009817540683000233190900675539850016896504805170923056257413133988057048583383039599518053732270249043981438966324388754611464986161780414377393731031850948429317163134656510283533744439822396862090270898974077615145425350856468358100067350891149943294881876715998844860039243889132725098944633171900224427579544607300518323030221192062877914536696643378411568010385351890576397956838989750449659267931827170051465810776967900919833838482802414390834049398278947357463346897789860885025946553038904229755541180877550435339169008478534462891981978910810454252474437021809958363940763542693707364716789989660864774651338941436755463670041888392107632655568006274303978325826231540644627780534079565984368744069877500242355043387012678969709353693085324279264882860370707623229343380345445561211382018366193597955366030523932815943544676223555380148639557898650105328418826685280120047903060588416129213129367873360327652861582995301894547052372235218194252054325973679520780457951647889911635319578820001674494624173631385953423269802129571662749718237510987130156966344849167807838911030273039975677949802781952214098319318235501759089132694226454202017069797167482156986240827987602769338198675055124043111435777829979419748537228878522173013638207535233075899552389895974390401657066500053832911499897102584284252012782171249557491342545343227571772603110711857296245699644071343831929683664440631391284283869645261295686728949854207526404515550863138379950000708487964017838997348391024765135083122242187264080154388300195116082763280560027059441952808613246334260686386132905259311890493333900667862355735854257259602811024152234825583856280675167857330624521873372540161639930077574936024714280872688277629862976063552407511440313349588087068169800853764500198182716333597798987684067125334004456333891401889827525223737251930937688335590597084160719238454188248132312818224771958198134313009849780326274075676342493633012493800833540588187461104097220714870108470864230330218029842639407260886416935103645704290046019030438805490689385055428383572372085499671894796233204895209803458213741950035840331907655838992638054807515904198030627661044962405232877648636553592987724784886020136098821084070349063514322495586923439448348477176909264967251927520067931832716651373095560372160025824716048789246365905902331744571939602038111208493076011942330227586781930117829198343404841796262141120474809859950763098739552759020624785681786790746616780306080200133766182363992091640825623874232295253821017572709083891979555463657912697284092982831472558033962443005815061092304281468075741903596739753212661465113769749161416103412212260331497503864341647517458743141726169393087855282235332293720080710363081196450669173771029718661756261152701307917485462583167355627976534897621827697176645939580542706114913818579022610604052056126714819124372591352304020932557311365401017021533005456551108915523958163390574902796934762327043178853127594944578844252266016347914180127456854738641747950955720543129489597647579311574854940838716156039395513053730655855814957883154567757792426534078997324401914683759604500233735212709782107428102783599723101474786067410634103162652321406512036533178620037180033145710685806382450483816438106509767244448089440482794079425429201797194148884475738491541478275746798522319213662770889028789451479449008661209993674264553020951744296972878514826751866920223245144673104580343182214750664009466166150833389262985687205506571764383763426829218385224726488374545653980336035595766890595251364486528091927190029916647342912867508874617451267523546408172961234654452367407396161303345542482727469058128114600464418241062710532147610758846341687520588339035838643242110551325050677381525807676426058659745633369694087552301245512560401410304793109218522563653965885573553944666764565102934275726735536655742371998458377328167400103341261910301636272838208505610038524766075930661932246311178104501006502133478735439138748636732314667630275716558036417376704060444313823420764819577564019678057042174082147943905889691679263029103090401845801832780724677832029486082087030322450595756508997280507168961334669607131460185641021021096983203962867582048199124757861109664095189828869577308188452510368817003041242146915831595328720072582568975145663043631453438488799647593344261536640510139676641918758534474712995873706347130590333305357690658559032411929013720274953796574196466619780195302131620960857291748451773343891954562685896687473868491636008500916414049031452191092386239154802146604191695140182732624450766041699853865149178728842653726842924344871399997807329315325346610088580036227201028755920098472241161515933139255622495578984547022155032058150324039089767786997336180243929858536265816202592117670606723424077259817731027762280420071816387673017249182893022335756337121236911189851584009897918806947342391748212288754477690105169373969597947444157051016882690120752174053034133968319860812650625618877444464165639407102830384211757755928583711630421886576907119199243100146795441160403153616122195976913908685582018491446256084275266966509937979021181933195631012616099730188247939294105559973082388165000320595018159373478242521460338456429729716715419128982571671381132091298465633029198250518184068362921750298464668600736720800405042585803097693581434687096194383229406917239044804081428208852037863780984537467285475664607755946545976867409497211984782172048676452685149416789966969106398894386037255452893862067459292664846974948634464759007416352776881381447362420447525475775049290644095613139456836967542026239176409949198245220817183216650236842768835493388925543133357084519844147917209149823744664923118611030441731066178022228056895591393554306684886551075725465791659101027018253933777597679369812947434947450806413857400823603710136222590401089741730969845596077394575279221678713540894921028521550914198537917274684693264137916572814841538196538753870600819861927481922415187473149737736907153767591829754553307187430643973399382536391439359221410295942980826337816904798297123446071383040834068165905812006412447109054026616620836617143069517248545509068667842958762198286496562135789580220074920152749285242180960637608671413429702317058769670589127201049642741608010348513041932600262254420704918339677260639226830713277695263968705207225650765990062403259803099466839070592160229278705847660504065555281069700774711759525904601088974593732991322815127300507875834114677447766738294552451050027176468771412649581396183941618955302851370050012936276517897684398933936803093834801038352236294686019112551035557351711969174630736321877344824657821754420044358656216879475221814970556426563189669366746528258179040717608304782366341174692695703053040361617717126112699672079476718650189531817246098459810100180306329651471202642303142674915867600291727333396666650336211959924416106543369421520416609981924307159477040325413523551262889834335106157901851368290962986919453383821390930337080583431507009069056465033541455809984029177453315094562717923342761142885873999584987763129181380929899394279040359973887087800540423703883489326019035701880570498532951323582140511288943865523613744706539824972165639041310086519189394439281227041143528242893611646695959324215227408399332799413475773671550348532846370079181427779083690593961185184801779620424410056947949522321197655707371640125310544864010623108616641818948407499355090596566068707526171246991917359959100345409467033286380327910685092733920436568714383035717166391657504213760678454350265458548331503712432009161986860463769662523226713781582386031691397015530311209128745432694687974131258664271416876310774946080215475609522085204790981348240954274923445904154223244724730130853306507507115231907815289834379242096407461087419194172126441022040001419202656156567462955550377231883173397016033378606614487520410476706527384578933988440820943229418789211990533348684118942865798124960128191584389469348952527346577827861737970744106020098108732614126311146300022538029377115355473030546080187441084079134433857678675471334973669622536388487415408869193500705685929326449112548859106565689883859212881229665683353033264078446324058885611988587594151284173518597257162291432733615906686180745226354173902609701598801534980770947203659664876223450779793305975468299713609213467973540426981171694968982111090790755659522862369509110029734839413573142402306757248074560045312501957875116817871051397319405324138787981734408882904902740772728355998760835897735230505042073310695909024368833296065556770165752270084384049698283512248487155106087150294413263114384352161660332333274584334322937268540983769685129826779504791385042114642008708833762982205667334567163468513155555061930962678656934694784572101911792696701528198964399843474347932082885086087793534524706063162754743004357762147626903283427596047215682553364989857380487563528571772710619612418555594845413796596004358594320717845733893955467806727887929518943186475255505755647491563502654990223097978224826017309419111440204631078041310044669246196234485335913590354318037066075754056806234362888733568908573762669940218157349781736187425284168720224253839935825412136977899679234565385877817384179669931652979378616405878164604038612256783192975850104270689507092531330240524073604362071522581719266392497466634926319782045549382658156100314112628566657445289264134392811601599539603308132888875494634699522584502341567411591305514702424977779665003536483946871693716377784639853117898351335723910045373198640283332420840641648274438458958442884507401988472338276958621223569212948066252477025688507099947799377093223832547048866329240656163866261311797916899390897397546087951117843111693411976850867389392880677619807769068733670824557470571532597190267044182326192859842143697178645367171583424722603160313047423709835699856240618072321795978063915032821616528946784326675088424376876269936927536468348147527517751620562570733549311426102454823038417898202430624819729806705733635114316271028433989117670309648727721775010598440974092966723187704915800624085388518146562242966314495425751545930136594392340178547936984908476054117580368187718537772686510733223602075295670999766751885595230376684129501106694723185992482408836890872476557164360965988086277028208357767258868697194041689856979778717204246474789026767341743129529364364385282089211109694982937374836301713248391470827872742541963848135054160767859232437753163651851320855767339204440842866289201453570983896834037431594462851035877391285761850406401832226168558230528542226057525462936744006323473851421127571302585633886047193880311989557565483194652924263512186559800621984394614698264022480308693703334880417065447162896211798530614206393730452305521012523925035806720198667262861125370091265057248014321053721023469778603412420793902023067404366774838003676070657400412449234186516220390451672670812182353171200933862119022348795524203920676207489069586542288611762015024387104738851793046473086505963363269185037404803714806147495685493215402762136930470900057858379882051785650908321059158381468535380285909465778152253671375025201039166655025535804138958611740707424445736602631809523558040244158613591231130442595390878435794828237760543143186446242516104734023960492006350331196788585066093732535377986893569845279637670723850744032052383004159545710632276912654208916649555347014995882649915414816411380696393700836589755603109820930146204176001375472772408739076515330642420194947971090293504554080196998539399718717908559637463889279109771794128770034563295552689791433030579661950934721825071322970280705043427120969768126337172811153725436694752260158630550852186991818008596738330396898347259683816226987129802230139100672349686040224502586990614542606608509587257110560112271605646148780408482434537542709962730967330736984348388884712017996605714327665984751040983403616943700280510418870110885500503892429444421295316874377134526349999051314565744618351851232102643035218650199683448495435493679384520789282732345173225902425003681809266993406188542490415292053333772821204740183206443856033219040209361378880590273555465976875909960206306410745026869929500384052994203618822510420378337596081157566929328200104432774348749198384752934357639447876757325641220097076232743719212244652167139282161098788889496699338427248902001228956405884096816080758547639686934356769498549260524089282586859358284937699279641932036227589618759325284047665517356713561607060738596690336170542389686424600986521292270360861224027348090697045105486274015441369984729688467874087551837286778370986085806019473520318566352460479214149127407829778225534229639955416359523811659730079836942397479607113157817119369027186585606814380870009750255813494890636264749980540596211563292213209590794377447243003911506675901493187118704098825282726520826816763764132648307058272280245380736353827815787689095091177687899523459009030101346691449388932338368513845380330200255548233755580362133268866163348443036459977896972447070006405689278834681745248406161488141061310676317731280371701084466879071985559319567517653178513770826458147301901504405904233435820441282874698231129275599321436279957773433679290944782210155151450007320343251070977850844022362747719860326583281201688426968185141241841875981782524808957705081775201817469203755065316252655186511789289812668442965723777059611839607252734724845447131579268637479137458452412077748775770599330190799089629285684551175345778983403323326659180130523865754730471379539882996914828210858811340785941136306369627263007726720680882273884478927066888987813938474421880809080973407769541294012267840639069202086529648878289519303789851631725665728599461878834545570286402235004274188546258533223126039542891128562743819473563754944302042494580491994248834478658336754670610493098726250785060112240101850525164412857264537916219941820745404235066964112430331773901344632723256717893659254216076288648464065647958830229483753201805956404486910801524824396554655179024066427982207111324932718723200980667031402953191487683586792578205319735779019771470290159533032176993773049296759153625700566829926678131759855917045608978774299057605028371711601789512738119067707800170067302056609790949812446406307245175653661349394306298623677535212088218360466718169887564171193205048151241940464530428122334527665413527557463470960838561988221090736176504758467822741775538039994509855917858096456851484569618691538711312151063726287309829767250145944561918869137664827274159443479127637330728967740686636092258578400285300605258329373180115520095252492334594641451441889147038583695838124593865410721246247857325755454790730907607862396543661164466033233108106678314216159788055577558262636694970450676057235323521235397838183638832712197165058189256822686228151212723113067840474919588783369133088681878314292220740471580024213667643732824940740650532213454118616383189449816229104137984954570833121952206722753971667790996641842866396040051232725632625740693180421021783893313188073286716935084395136353563197540410929921267287119763497396977094236002549512697594934684328545017997491215805626591929271831947742079892212588113587621330392759600659204400351771514459218212805098976350117004979613739877701591124630268046637483729932869489414321060396273337793848690230192810792297841030086998937702573381860677063213577888946939652579780606106987294698890146717067990308545071666384462943780071595501876090086217520533089962135194660503078621363762794968963483790682632180376948757132205751440318694406875138243504801241312172469993309185505383859709197759627310546287047259822035319344231862310699594807161186871974121448068111289024116602734645769021064808167815373028788486692119557285667137050795358495978645007164599326156307052304708985224294274217222907979665561143760356807986192744564915427705120263919504134231979342141499192598106181826782972428840265406133895955183184194733408156806485962127361125693310607963406692063210724858188466328088861802406886466046833083558388706122922707193916762006651218737370743676323292946754252355917227082826083299173506108611232582041020537219595871791000335427557597876218646765840386622281230147399423040608465635723791934788468794436296466264975196128621474328979792778402787525423729479251865687962306546072479619192606644380201083306202941511448296502743939108242809109411550841656697653079531426035289225496921595415239951444358902677920587801634207146314968225708992103914746630938970884523656976397913792977444653843799718700835404218646055679772526526661702620337774221218002817248018907814116166812036789696813444858213414506313551821595128564675738397727534882500607994925288940472727274294648856730233728769759027101329018510061693125797389599652443550797840210412194666753112716279796573047121892391786955191741751548126553430109643250994073004825717795755463431928062579774997223461355893899541587199247871141403659118151602303790784003130138055797895959193239099320098327861846064286701972933341837927081221126482383000087461371439285835543165132209352730939307721425983627789313904150050237867799135874856605792612662411942243249520617681979552666232696567632904643345564768431536922964363184119236164326807727470567671336611242092511392192505278755247691320697127309241296405259704624297088192568433627684476518190283488213053103516486578572252512971943562175779752701744940262311563388693605387470599727512195466124734087998142912105432961292533213155773548218978361062795841434214803623156353814678897599484816032408887004934163461080139395628265751619195945945071071251247911691328462146353759311023146892349403656981004055946960003208335450597956460611082788280730889946097572700745189769534055324677947560007758660244653578169848092659913901328588359654596606582794579202981425204767042057317565234598463963128638683311989975722239671068360373552692688789888085846479709399031699196175585691857100096607632678667260964844105906264487824516293293259972218007584239272057811726609589187169539957306632162923384011806534372934636494786417951967408400864245384339795782057486358489583549098741211160532140639462276829586299264813895193423677032382785949901304445653627578367596353508557339372969543850035181282895983188131090732039741428321042096102661405558538088405294888597452900897621368986300562298929098271853874151210105831901437044977163742008414234131877614065915709572953134227061859886844898156041495865754999640083495733488544178636336476484156384311127659557565779684942423870294974127174343836214330428987233300722608969724085883004136786133364598880981678927008242567064243463770513720856639172315512078681775206736307334012923728563276988655914466558386868709870267090522393107932401464149181680068968471109768366318666566054142020680863376841244755371253386193626277166636555336860482093308283317419744367583421163692668337907277141523527217120746610363803212506091851761586583746153485505822806480135399370097861403874506028388025188428204507750263637293856575645091589367360299847520506430211468361166313028065569224775334023988129513887041827863772306971651379556821384028085186139276946631490887469453239133013734026068928201610846432738270555548009687353511197668390702638280212932338343886369947306907385946445406599525784382560270319673059911410319800537713804147085640421277454057921093728494735743287939337111295699037386892050072136600054602076625331328677703729160607782039691452389522468156127432045226349755777832433354612543619385593122756151545713863833688014662084688812662945163413313557786397743877954852369906899231019309018618657938600098719866111640351406989786165812566566301521482030984005926108043796428509662829556523172912202893754649123662210934363743360013821673662094326528997577468067382669311494584482514895968202099884171773263037096518648479092843444779062497696667818978808413260139504876427156869250521338603876907359102675811617838321797448824399180604532885069927592605036070305542507831462727782129072604845429224793062461144641541291546711885435538329259086258712211043407007600594202614722239570253722868115662861454885084418309648957437786056577581925734206856597426098813327813536169771065537542575471739578349227179297955083724636745217683041730260972469533676448748781535547706527382440310313918760142933015257831286510494967527974066928202981322376243804748922793263406324053352685607232855015317932035839288122064918445506004572581378299059301886317233813340382110309433447002174525799072246247630359355034680487109980425945808821691198260542140071749244190411462283818686997457711398778459561252334592360481822833465511941589327628629859228653956260378059478269672574813015730533466783923429830399310830794533340564070042144844977630584230168799886909964838280367201148241815568534428605296234757286560304913907813285753491897598120782164463482650217064370209323746409721595431935438743979013695494381310228277748635608577778118320979421154918811733804054691866378258483694795848499435848281943703532625111918076339747499225650535981306120254083520537129693584466022113758193951515434328609041341236632523148553437678955991911057241705881213928741334662889850631687403347904975655397693007123207939136291057399635499509228900548230478355942439347256858610085415296721014468653098119695769988014871845745919101659729895717742548602252401109069406371105280447434514570741924070335880906052239845359067469220407908682252906481211005534331768920793114125539767322712006402219595912051405897821061928286330482696332297260491671238698486047727522828951644360090037138290161267692311683681553030137279042630719580556592624616120274116754972514361539891337035424636635936975706298533252883756266263493364947901147385352314366762527307177757596908904214241378302647855581664149865968253363628636548069080982361603665894414228067940817714112069232372221628945827339571688735379780297910660409859757663215664102002375742557933433555814672131715806048716452872869033539499816630048436450112937219422973302641080967090493551576745727271316328726087052784421015506743205402303076317428856192602554436489637959950305765034881908580359355593399248349796599976192168183634229243295570158103774515924236985753937392664375829365241826462900754987250401614562645960764796499118357346629992350548064557546801062864122849176075932079159263890769599196693645909580769307572573670157266525721594450811332190077566978631300436068228717032102445061077061988267680058909651548961796395992631699536891935019159882234103729883917245071587922967767908817093948932478458239048211070356875595020461434115791471218170919308682193550433821889798383972893080101033544828500165675600499691936067656017638587990662818589717064225841627574502549220263554280980002076262639927260220418705930076031206037692467310098457153858804140626629149391725226895218824687697209647442845742534187367920964145063606951737862517377778520525430904592641587800785436829810735172677135248304022815467071182149334429928450505434185227318906090688614471515813523553337057523401661718784150866734533237764010436879319105376550843458783656201088530904844213735604219313883691762216520053686803650644510973789030171809753741818290823672925949212060048605571097806427683874325958381778913378856628713252414191963556517631336331531633809266639259994001024991704053252676702109320451978829020335621612822348005541963429860580514471785714915399677323125909263260175712637567087468369732772020346767011157835758366992751809322636724504409167768461042874656186295401442770104438960380293845406974533828074727457715914139916266648867933517183852965774755053266003747045637322226678361760337794394163720959635934955271887517457447301536498154430976854334023798185146710892182218721828889463153169530226819581496603861789039117246850600683438998255841687517219145306388106671199379061863661928323900655125246836324722523039324915379750481588863529744189697284614061245904454647381261181040535155445152199692534542828527655105385679084651924282245611319596245550834882713194580692147988240327687758633350759872981144917585833674186387034146513662475872563328409959839862111800615369039753549855390263082835227001376428036162733233561803819756690497977201063527911845110027330826048548496594865960732454687971338490664880063873040525184150762814227880389328161835358217611531386150775562240508181793282431120368425119850258439979352398866811962132165159881168558116992429258531678272802027912306795968689577085140231728480404438314477934264164017235601046587564890998455898552125220916534015861738839516660918281605853666173088490883493206114606246352313186066944247382536432834562602389151165398265547691541233943773086142654867518582796572688903421519974732345214144278980420400451259996289579356179143552390498053892948766884220608302167790500348473445840938885246179046643865831716409133430598563443884532136618260950861995030880554892559372779445359454714693593651463042391052606562237659164827737421031392885243430597350538602615633640462771197789829236845582268668920497607995505454660950918410874347449086328381048449091193262959347126667539050823287542546521550527769711824558688129855698751301938186567069131310504709589942648029390850292383297277521080045994323333303865790492050964200556310686633968087870648806676014054731097690643095958800817885367808235282228220635412552131077838243990325562641849883691573963524391911720655746645361466972004429016557674646719387682617865009389059451505049568710100981623697585681203919764202068210220188203165354442156000360003290801767879820170307641901939965617148129001462521624788654732768423629420409853138827901117404562148120881545462352783796722898447384181419931107483706408668794399438103127235207590522735063354692767043149069963937425382490152186582252098510897994472693744958766542763115922790153088906290646753128101281094370047769240569170892672149126135424045633113157004431950375759087015674128356311874350299901269748127804417751471733262034693044789751311988928068990255776187755376905224572236878609695675855003520841178446647511271843208655720498551368552488147568595090896928771245294199774000544628489348020753624062424897383410338544529353481720927739484715282817820456226578664129061926652905670387700276693018722178492534444768018251218716873971206766564340748135890359570441704057501617900590985240147720779523893878789938171445473368003441247404863493521622546554945926142826836546614109322346177031671793936491864774956632357148476996414365244921260967510417555582543577667785820208716865853672533485050019502756115967316069081999590350317537838638787527162268466198851191210905170409051428710500143367320632620477313393274662074029594865707090031430311710494571085766225533127001635331171748796972503380744897627542029980028498301504221126657634145781538603177092575356042748375879978603320513089997319376383663896841249301608772115281825795019690915086922294812803679991266241025267741115443656044193129674740821094962901464925268836795302794937712446882235185210045825828424608781630605457148927870092156264524942205394158260584087456025616995502719105609973396887733343025164138315515654119743438692736083040038180541161970570312019837189197021237428378763238835978607583914087619262312256885539170247279962245238752402031678605729808991022098180041141477856410120115612652043386760910128902193769190592530782746061433631329958202239467908642354669885209372848809376203262297820674514110225533660780860674899060321027783705210072241224220910445602593863435004178091355420563464321035687459769229367973152780101968560410529823381561060321036445858559038669285960797931845075484982953030345968632524077592945590460454894280376540168574184134263436072678946575190161536098208749188202536164498526768123301626530914251601022659357290047709077825184585731901684471379621531369106205516398066565210562065217363855592684467822409238650651018672975047434653739843944814197683599704523954758242053650995362557291425516957484838852836309059433763163811704839193197691681683607056741741032154313346463279459214903117650208897731790248899397043969400068417628767048986804243421350256446561228324774903276172444570557950528864389007503181114362501120496130460395535023326225129216008047482096131304208531084281767698914632870441534646502326766220998666755516838341798550198879533220612385714995354441956660431873251542364790051051729421262763469262570967978483160937915176671118407949079381116313630011070491675597636866679061207870558725732581178832452980140070869212938372377831689507689719234381287640085301880078621860806111503787031201161028842793811417929838945279253650999859937387591383909430904439240054329935862578860190670349206412539404038476962682495427922555450357619711170895840570121704178439885001486925531546068382333404883142104709792627955470069698049620745265670230136570737037044314839327453233806495689391494363279451881916454874881541751905415381135187563611261332585296888795658710428203483908015304486849356290804143015340479103701954069676605176496075274145435478388880134591794288553415164945986884225012734002499854928753902219675018881638374835875868170587196042859186812782555478988921333568735970486006050351772793412146637747536264675189010733320243661275914758018643386766621411740765787131332277394499335440443174974560058138802902285665872362483794622127701195950169995710916814029100147701257846797489539892542187837796297100282223875325193652464006783787515455493894959534725114211622804925401995381739507195318788370019987989668157037345096464706302873442001690705023578172841932079932427223368394103285896388490975883842396169781287239322905123595792654076588406360083469051519290077574684693304421248022204225889440107755361813980518400945398285061121303002686762025552277214058042399597655420848547260553401563621495492280374872821061605782572251674332519173895535031859787213153961242974916057186558842703505927701685804538932867670322432225728291059223454949601883463203693339781695538682232901416993418773259357429049575925248415979617721686263710625089443093973084999620026634800336992407388371407239397317393441017454177523853458484059239513311715203535167188927843823736746934704000789149906056290206934815301940901724876426774543785646356774716923075075182976711018823638549470354873368357132438229801737569426405441387926581498184790826849882265930416005442705187922849732966966367075722733968909024252879285433498813750452895170364682204821505581650836708861267215518909007052348859603296577297190988611722670052441893855114521958784703031466988448053344749904260003734022923972260914175494704273657297692781874628418253567027032934550843535839059821505706534125998432218690600925533264861596121436309254572531377724817765454076475406809905758370159800986288624492461966281250205663612987718126649851522103006944281427390362074927924981048955528733693390323464581496828613855965327844837286550912028486840584367852636326335829964898618769531048239614893497423142877602224419789147711315659343702668716101232415301194026008601964921487752862948531244277849207137773114648267639067563373581619669041096026331817041695550403306307759797187694572343873863666673274749858396646007102619480468358097826693308649909020911103045766791335260483623578587100973320648832392181430277755102507927982472517063615732191236541235247278971647694929302977301669093940086020992439898680735750386493237376984978250340953845889331755805198171269186194963905517317465110894147311720714809176715738744801749823518355316001383617059444181425102824187019688691855367532414286116801076083092865105062588000333742149069494714844799736729366062474361952197376931350501799983841464126770114708148906387284709962615583826323415337004892127166493147369856572733982517334476537520258319232898329993423342604218045784796646447386388981101376732091689097913955147080529401282515090102107175489021107559548997154168553156086286657376947927399338118040259125690303172757572000449766712362426936187421734486385335985949909555956903214617441318492122024248620771944208795434122610068427764051470019811675222589188079348326385177849412527962292014949841951448307879230548409441573363578464009705712244456273153995153799809425313220567572235534982669973365373937293562660031621547195170666621431762373442145959617652508437037468098087876310807790504186906457052676769332280372944471090702292270827570455023231565681497125716048588671774295939981587512469990747479143427596180443144992639661588566733911228047871750312728987637761418045676440779364464058574386560675201841260708928213574306280961204670906018022016515098955768986446503718487251976618997126161933598777149015733570122795921860275457431384769088985689119856175499672750608300492261888730995512700204426696255156565323878478664593300322203075481592700582788695817905217819344668715307109569842562112310788291091372262495531342599534404694022880107250801691422894098962269280597578941996700429961698869670012334802669188150625706796916562657186835251726439515030221989029191234131957733671911257889477021069540978771434517469815815718231761079084152444476689507966318133585153564048948456411805829068871180442562217837167591440968858399811686682063083699204938631778432821039327958931650067429182352288264817523037878113018429181196303395090323041147492886548896143660206351706048995083402313961540186566065574559965017839201279121351037853588382613841332588633169161889808542167528773448355011832745060756292416997051366037510243736490410050561114783265608591244724956713776758805305263277027009789627896934422556171128308659810872742722331238345995462828718132586307364888733004567191676635425029890263686333224941957641662301192252299711844980582445010225045103851663565693286732958457060957013643409418437703940338586229339008178304297701372491974852425851615568065094026223305958684735244888393994091031074306031727257184999871965868251328872967722269056873883295169258435615582735561586628356122417168020181971125054075333657968472793927940192713648032604346912005297106694406798435609583452870550665517760385036702704204851186341409373981884121457840983701605598425815762505977589829236338202694940174471067934278005749098280303313242967182376895362368695093884477227516313078987104560262890210310904543747839414892815193218478043658053583526942516775246599588393786752715911734570415023203221585850041146271028515782446294799772236514572982240331502744744166615233380780699950867231332787219628486139121234007328305135613798849798196328678223287458759490094798627233170661965197588310336886090769780933413070969317894646523552654789456192250796038781007431699385143318504158911129046402666645168322985129493178783917390065813827640652558375447484715267380089067114492305122289889160773827324642926059808166427044597178510384094587034723460543732479631889941579430421594641751333393990505609061221240312260355548363602182152435626180875248188933299556611013931330893909911651717557825844886321594697868466309110393822092137279659897212000912764360858169324883737269028570410539876614496857154384954706455009906351284083524752886892578647011335878483865250721977876795093495727728947705627232191409016456039811212961840375340401039190078145391709797253164934824551852821377079571010526656679795643538871527328344860569633820756264402386482327120150067651216713363087691313041440246616869323457090441927341686123253240093221416967694309408966593058006271935742999435985594298560800045334390279952714098118505858363308272603472280532141698185923993207396312908117173648198228312782027557852063500823125774487183035505276985329861461473304802295521337392534323661488183880827914681661892496893196020880557995869404227058668803526346068573414097501505160466740921555903689071181810647530978856088857243297231991325035470586692885042732212294116177211459339652116095011770064067856776018015093269403588928788896592673762768088688371298638253267986399931925507563336056460812913815908199938642563800432011144699293003509693288211669748336748618361061106497010793104799901778395185877618296753544269194092280723509972373908784432073909686463831026440794108884123721025722329347592459610728420004621489049442346814598566200913515748609691453338286254365164257757785455793911294958171021856729230974822119208977326373742400706426690555387862792894484892106077250323556293272502092242435537866518281525405065318057734442911660275128422748079073032744947240926632091347624493825469420564113856765157264425314633742984754830605900509625820158334920404552692808880162973034010718178740314140873933593386572730282183633401864855799256132712145838131111572659602061665081170121542460934254895513630964743328250695002162644089471181917609725778497046620391739213677417404126142452674176804386854948302039609238559886491031677748343603658455157984661552028031208937492241403827383004803690873868816917411960023804628303075641666188079701383651850036826365630897778564765560523274736149360979959740715439903232879509555765916331097811580455416015477494340855180229722272343254934878099054534770497260130635072286241970840402072180475556831843574951833008570825460604518587053934659753393106294369063583593611939875090281598954117071670456981569984603094855030240443556048421232304678484177909367421912384316212480143799009618728307014475634754027144509052390436619724612096948159642580695359998577947242820140947377543982357394593592234777691889532444330645084348884518905420682572800936155777952367006776850504077665589035241534374107308044935591205001830591128766718422217263577405944795480311976460087424707381600656345810929435607708252315876431203658379512815121675879426738324754335781830028189737542333900342614649029873087351108855902686479131782194808706097890913309891103999745942782253279816418751382094701241683537671743511692706231633625707819722651154844872370235656933846927098127837044866064654050690396530152991468418350940581774396460681069150147544370443587424861357713366975180278610227053443801474704164482536191038533868975028114435449575537829948004997737992062970541319222819832297943921633689820225311115264992050252985117161882491430988215744215891230797296643700422373994001311480085626502264744782931119095545002472473814669975139073462856294688232243380051266213187981278546830017667145504732180493082827417762270683551792977041666998572826827049343301341859346548834316919322139585485529079331404860597087315505683161890778111684840068649538414986842061002270203388558711250415110249842216452816954531661871059346831475621298380094874907128865784924129348506831099777361265364173008817738166234977448722473636793915486857143752742962814834140712461268663559239522425688914050281465877953343102597514325021449783399787528605460811760766404592500878296483703993547984110958652105734340179297060988734483665518116617706013921639904434012158901227414799812236891972471484499799766919579955811585486400792995968890654901039560802393429156646467047749969321917068028756131356561819936195771907759544970210669884875583055133959812312552280154491304045176175176568593798624080532070228414643823673766665215593401301375529495591460331364992002702536961715271556658670802723595452686847348050256810962627794109562734437857464655319072399702634037701742287098071723894481163826026151343330458794529182704615378548514681657391133851689104160729215068147366124250764586475385655544150086219332468476610018508280121308781201782921039920322124592154963466991143239248945264555450555169596195041836683832073115396977026646453235634352974249010903177942012370367155783734896373068352399353641684312913801125206833275494712507620698687220129078760824772759164080173363994763525485931688909181399402780960492927392783007054299714298107473790293248202012233664741295527041509604118324969104690097649465433087281332057097640195936478321931497845397872859826300913714003620743159373915604610032214194253588559801822557214306616097434731552798879896637761336825243463343330382471651741778115403408491168350361937755016232292190779792431197023869500273353523390151469973165284521552448333832390899275621002532730918946693613623697591274595906626094488131982637584477300517274077590713381218587105181217455308244804682382937789287531640906027423846382436137416085679992355679604424489270787869172922010274139557763139876434771576262119227965078307600119990595261386825595569189158608451674099422578810422590719015315416006604376711028655461068760955679869247738720204759120082530297628860069708076456574057112533002029485582338203090147383027392848122444168653641003145750251327505725937995002732089672512973494411848859267176817754283481023775065839812463091888671694988272159236139475709359375478595674485457460570933353304488320606302390840455661635612501204711062700828027305700330409208024357689742827388753785677708646774875143921221142297164225482637780450288932598522888584044347234532511099280637703774890777695725660510009692390206538475659397700690584657988843531168114410424727030594217671753426258489502407540627924213796029410471123931700107522349540798879025827534366109320559021581640559779985526997172598141557112263222487678949710530346311077641698523412625838515518684197000471726819843973354732977292888902199804657982552800995361330552591146516448919249275943031280573461316437835267638606272421721843763776452720773358399723382058465859361914866227189134083034309525788418942219404711113264949191644316500010559809136841187627156704798647567235601912858790916480568021883553245352230710763943287930602546970614554194416666915175778356526942352245912450165530626548544255754274247207842369127219576357664344628547627589920476765954204301678066886990589100317635426183917613370056766411746581692120980112350698666918090170066950821171080740253627308300327424177455487501455210635759436988105988432108966200709454892056161367793184654006648996558433895926165261506860599829917973374961613532716723993687670081418797059973670872152380947174534632210268237659358467906533517634071268495836341094317089383832166697604455322316293136518194617243027575540479685289018412183919446239351967120305763506204072788700347389709697321676181752626972903418798587862119207063851656323047497257211709916063255604843710351031214910748300279429738063915989720887718498948764779732886718395898241076180031430653498180601784721737541386842443179580521176862687518630672083450114839492125322980472448668813861923127901231485650062707235798913120960465714030608817871659650136972370935069934151741447754706814612630525221589849772222837055142385431424329394515741418502186573679728740733402905638367618789796452620076534748743838343581584036786878120295505212172352726364673362591116098345941624229102102997875356480148014512861278996089592310696072790547046434076243739090993921232880889385768886661667645129040882080397780013371789064172686709087550643510784660238239545359051480194153049160518881397987123815468455986461915720998528670943396236116527662856261610330221081609345666625833757705119317326478285053810502385743123516400642198821860673738748292471694559604115123974342011807358816981546374035251882078005601894283153923860070501397878132922788088917134004011372183612587964012331312712158834971789505219655436130160233729782796233879020736000876933384340073443374444085863873851027561612027150954162620854387246965326431531070272404430278524450927294925537210019235939017241635119811987729700261650944606840580827276218773879753804203477211771247987006952068946052319033063053412415845900901685642667811753274336654815524799137396082930783962086258184844779880772320709967910802133471305784799357199677601638542750401266016894014932551741651987036257915654455226951151518800036309674650195836505319239454976991837518253792951868638923792402191626550084938088114359741594688835541917707272454074649059476469554879722996916703057612865214752764021620518563937555454311911297240857189246039483174379504034318005273162897669011521116076037195457145282927434303382504019243684604004967788404586150647387018752013814933943477898029106660046795427675364933412243498576242357583441692348642567318435354109947016253300360387330546766701153607064740511141609313221551911123822131915077408482183352513323450599996674063932252330573118716301501101626484843597737393222591537756031119085716996319396742448067794724297138469132800229078181853076061515837951747849078148545142855267607066511354669451241332071455486922894093870039182229024111321215883109999170631440258088823192882503676361964644157918323730633386166453212572222696512778272564988648143654036101735608805149302242370334479143191232595599226271918984976797599417612050325260262194981734587734493325576064611316952187381295706664070394252026099487028474280917370624035829855939037339433540314935715860353215820083319907477753920272276292783513319050909551544841337321176255346375322940517344473415463533347083878459694317568503686866433195515567821287543033883480899504860555896187962997198204205014315038421055460309620658794523594370922730203929831369671720118720254498982339077173343188206896098268492483174891290312913382803562152112301949617802022363222451677949877396150544890640945968455976614655031139021739143499766579649189869389105074308825270960797871234602113976394170875892670713193479373749886778727480579891479016033294467323276254815564613744507997682002536195163572289410501299730168479658222678568854464430775269122780480299322185772498147093549443468644124769304501866031219956686640308171281336753259385623140410204868893522540175222835262784606915575835121372050977206983449465160335995727688041556669536769457030169260090459845999771891125200947690696810950657153246011200111394274203408806816932315385785033307088392047445163013876405078019586442377348027344665535907285898446697917461963333776460941391750880588060928866353966709962081434712277011813096487634709541701087422575137277566630846454663021416871517200220569597785447556143050495151560354738611220910298364402366198242842973988507171318519546391736440263686480711421636430136639781612822284442038901797236964230102464846273754578432337541057510920960854028494450787054658546128677972455266599730043026387326412413773360603289564867520273699086325580244348843406946065192315830563286413957951551808760560538886305344125342572946382951372949678671819494139249725635218353259674359086556731502225239150169707231526307603550758664304439853321296803382631746213859343107483639962193162959679959754141382356586870657014670904147996087556365619240292999241299519796944123679630931391061551735735399653972646071644212844448909574976885425973447640903037299329713443215887867274796597729291085045279878561900400409529898974018640434048620630077605828517628333845053465933195139197810328639133032182409303246282098054590823462039436310246870446030221370415145863097497044229079008302306949447612983807125789276280130060476674343392287003675631365379465791409712546774663566398281729119707827861360386089490325597864066247463157475029974132846680254393626592029350195721248566051299625474160993180754196063094342370258636610869486369511633050323849280239117694302751429612486537812045433860989236503713306438510246106541555154699706230386677559841171739407720017234038367776071369994782766649143029283433591359619646830000480815413007217725880207078114339465000253307677289618750735437251113487027768498448775650945902890955283457166818995224239725930219334185415737093411528074451980491457945830839573718518902256233741831446991586793925824475805497968160879672707932922354234879564172782711046414162517393619538377289121084352813335876421770611684355331953339966813549127128785327348890738133196957900480123940793692094192231615889402864248080822370249014191940703156214126327295981322274662024174301671385615401893071368513795398739369323106972462461545207312839133529988232514273421048302951235263381903897928262810734170041807052949498319456746485455050433337061358470965076778798300395010849566599206750484612862426149507373159582443382524758982298406277268171119519823080947168373927967931968316695967423259939249469273538419310970579633288157507246750551821721029531372562708037929307400030289661825274835960379693341067298827101390585559700952526765954735957954876187947444773185246722421621231617127115879302284449830609291517198927638628599452371291534578523744501193932488612531831056537673094289336251315987926575423075517920897532827925040262808808701826376972250378039882846878641216715150630269165964966318454180833625383914040881988547053321722127847512589700936546198713627152414483429527289832936801304377009324644902342652394781511553438840158299935664766129462274533210096260849478821056038784037326659059049163265842839494041201083336534181640600715880969537900237263331198567241216405618013877268204173178492526446696070047516910209408445050530486248747514746823073536939910579047317545691340007283677370380402037805123887367290833081148994496227304134426483342406535965430660689348315545467116860892935898708118679501416585569668038638273127918094525195672533559376964857068340455589997441977891271583299907814416169587656291757239108554597425095214360211040427933832919248726943022683691544476248457083818016689327187868088843385154771955840834493949254320861356740502833263827778202095256433994502592730278644437650085326180842607752280442122659041850389979295356855312688163866511560765945837059773704346961252327203225226800758572840205366270713532136436936201791367886186600982484662226754156221344189560371589443894656117606873419785379475731267830642472537981097438062369413536336314617791332821540211705381639971957470406573991362557773844731677974828165140094592246407792515298957249440933011043254767611862334604782512801095056228022712612877775666336137858647351732313881218842949362043709517042852244225737822111402318118116903572999089700855287278439021226592706628756731405956366901590637082942081180406564064696827551978964612383671373680525005411209612662020738628617438804066818856861273638254305676303699952732480929422314227786997863821147992276905621549649864215916054368129204303980651144333793755458936232823526545886395417138111948524275954789633715737625390934329678429066172405446567039087825918157069759602104472395290049903743740141870297770079702413208884437259082944963253169345552400145094832768908474831072636417170012726140925760381977311972581074823205207184121755679159553421700884633154492968630154832572542058026954331232182445227176347921658968781178955606870340164692541370613451170920934324360422983579809117621236713763650679931671826250375655912459398411539767097597792372899288252374329069735454521467098762097959508953779824270639659229882003191419935101425997845490345168401587878925545625018864170287362797489545070791068213107270848925892009505397468345160068931212916137260614673670922786037209579557595750698968834136912942482021149877448691407359270851057516308923261833297062540997044986672591236831219618852232802394443084151496754591727553810991897196911377865805159803510541491491706942182319606176940827146879901389616695349576303724994479631288944790487594039049239992043607157260835694377341813973452454543860517780579406670708286696063503915282199913687683189151567565594407475633144900197647485016857253749018060631512988586209234641372048221125734286282152502941020372710167994054050739782296154488003549640829865079638114580929637359597650150338272776295870512074748297196095428148471670575941833414744938339705753267455811761095458067899635241719317903269088453945124934686607749611292419742098157632761307909483765243647353187763733286942365397381472781424952185989594199189748338471034906697645567449020690951599538404516643219296718891488596117054671015697113294708283472369926813328606060314299763095782436712813740160915234734567037661928977443001357952217898314035532589240165728316470890318922157344881253542688078450974244611600548685510666316076425980405098394170441956112788356864141517786017821099219053179184302267845912861612276924655963130399094699862052333182127720320739294726067990156148736797812577062715804637556621506923539193706033873003562170097906457915857791179513077341731236713255731808720958940889574983409304955369574410165025569519268934821349587171809570137659840976104496226683283522874779016504585773402874240318110418565178283277967480185497513670825585663661463027335073632229263465597062740917895466147413976979089240063328641715537070963079457096538948555304587935043277982419054367277358601511233416233349909663913843748097059487353178337191027261939240290402138377535466816456350952941894673004541080823845773970463072102727309089938052804484121229844659534014360820704298635629529945350294113921104027695923985277152593429599738379854085684328014429071693643632083434463901168683542458433693913967864959463141734271349711007945998308912196032735311190700218698468087411925425631958706026754455162203126521749460690022118253386073354015329377074108294680145490894685563251330367076172170640176202991503995744395686197607548602355825989773280711322897282986482129423773357602403069327436898078228903653399518155103068913131994060250555182246241632047239975971151532756637013989729364158066434690112934151384971071318934424734150565890272367166646962736061911016595675939737263339062423192470646024530773073911096466031461587571578201236918820463727834869814457898150669801214405739603370390930749808573897322849536669319987142469619456342395214537092171668774590787151509132448121140178766327718441250761046709251199076056561193656729753901209886130892705728607125798393204862623743767762681474067063281933587220973974173805929442014988973016714756137362288207331025516510108543963425774767918653119019301561573397117134408603152586894942980014859322279922436655474985334670408722956315368786833528764485824836918973938047198700084544484560025514877061029713327758666932903480175634300297389995966524833078345380828394316178807370005950799739950595246304457786837379175250384686424251915094114651024443463776606592096235180040095450598120602432799341015976222509200745161060044588939635384342165778154538945971669174385778376710064993334686001673745912450764389056429863415205734692365587239904623416665467571775911286847429792398423939744606828203041008216776461041590591576065991914103399769229718935528866846005936887915632968187712734583120826774983421331280192291677762128763186169922477639957990314233227954932696608105014164768496135035621161521706217598527737898162391708883818930406757203012926614116065723435270626631276308771816713126848981342378646330560468483436098003309739449278431786924811172105861084728404908011330300742097466105492006227626296078108820980870379930742808558579077171702318816212600584441394878768520233026703411344933948648852083964413023884682524380685674625348041193979070040448659883931474228408151393867520476335523388963125032946267593209158143987083564262647962935176715569045505626784743196432072433911807778056253552060217490519029752396531126945013265241998688105816030345969665348786174519190944108643274583132621281180474345790451489406347220364621719026969327004475572304302402141108638674925054129939889283918387185505898551745968393888386010670443190438869508390911588776267845685036057342571695054669595847376492974123591702898036425522224636548203629855102915116363785645160439360539283974369558993193923973920189558940559439234779144980731460144709582685639030760953202389844532058307165378106745932187152464837818950207032702868417583826147725724684900778772328815044536047475285464224233049950565010376392932388816403249397255724264817938305518339569414068703542064162800533593359754964287928541424266088366983088217070583706110260520130994400838799452355578121840392524021352507818977735844291698055754753990106860132083379105561366174844341938223992867737350048959056751811518184211147875392389334353231675798891962356586222294508138018096934991710972643231919629837356400752644066421783124656836673866123758609148347537633542790986064863941898825138135194708083015909913589422387279527801009969015579938025215530341411637919979556945084708913238621742987998559329264373441544195724861893175868352781742863599799184029704072745559063814728480453324484132587383726465656703290536536961014123248017054065372889966738650549562887224413478947467406390662869219645711051779622202945341768216485673181611154437021520368452755470404808104725950239529415201285498095733532560483708070077697802774667902356661997732318380734387368252258373803247925425090492041333721732399292625381875861438381400098216428959742196838268897030694023897032407570204635985662084664040938118411843505274756977727026003459893195058231981256219204946881325796484800090020431062904354865387612272482869157953183835059797901420487208081983368966570216263358691139455912510473721181867380122670499764858636923989832772164467990644074176384756546793840285249475757515142387253272975441425272999082081824784160629085222352263895760080495340242854153039729706551875338873586672769275444602817346413970113368736665872315958516224534165590930760463549944505237374882494465001291103267060904037640505984828021181464620272194076425323625334424312160323666812208665926570343813499526018700703366918355517183934872963099652583821950864063347541570261530606804094989303324425672252188070614298073514040707861691472172790760904013266873639729972771946049712314667113752538608280270385418967372418174924951625289786682115667349400725235804234384711206763141604052259132720535486586607493027160155022863511212483148258557598751240799518775003611336974454907993322751715243654470857747899339795513322066516589568166717942730550567282707492612319301309505449324952567572240312994352561141921541155917305035713800311624283228608121538029062547022455511840419341076898549097512883720555674825629856513111276829482713561047505159995737032680215541356650117543142292171033722362171968539427391805010768262485608939111979128097309537196428213881286253551305928114689040427147919398428930747326373342160274753321882085988150212771048320408109257518924962361480120480623100651159625841696343124990773577249496085789140261440015580928796060866445440902928494022780291545563851913850549829775530710646428741689009886806561094811481793955028091816536801271166271855003729220580324165123327364830149692110602998362762339535816805308575406377389686492825086796899659600543354877051678898777788352639238869499769241653298524506862705842604816729928279538267758273712539691351305555597140016367350750903708288737382391582782160332793736730878268899709923410923279953930582306101001352736001699963493317011690843947585021954115326585038724265080059415722421397861269014793890725418426224473999212022729490094264812985365246342916258638913996339726825252773513665336464377211185395617859091198784395143999919203437872444986339742211097299420603286411703620907377272829969918347106023108850243063304250829305143993289471118669538443983397741022752509680637646538874473065572731693358998969562548034228054940478988941433000365726292395141692005783425892749879097577303591165537717048344226826660892354880836700303034599865278747683470791663515981085589139987186603986274422280896181002624179418000462349311128759899534391705129684804912103101618085786784087499502054296306285367388166883173016655876327074994116797793732667370271161068468534090356126291418962617832487421626472709433832862309188627814533804719823897817857126776959533899242079013465680685719874747286669924427745246635765598451812580456851353903182636991836534700485831453249595025537993276860427007435710632444374816784962118576750182993834878017715434037384804135111942320856981301828283017980683904607591586520942417100422668664964614182156070087754449146376059835082755863719338825488722198788446849957359476291726396100836601089016960145538012074243474321451349483522234870354033217913928518716344431461319342771969393950942571330091604617464897418482683001080205501666250761811310387565711635330684523591827641770226885982805889885580497211485267953740727618085263239647571854462839157598412180976869170206147738018706768973059702089691965876318910265960640980552818241021260087349019005321155955098085768941802819100125402484572271462398625822855469315881875549317477670622931233028365191940428602053943454240489104588599561564001115764526544892089014307860667060232073560578199704454305597400618037574653015380583031333758893336737485961750192633921640349073200912282768216663278775536708554482657940948727941840089492990861485861654211610577692411961253563024540631408235519017615846734726518717290537864987991956897573122372136124655135375489933992640311635601340319908029566921115749481041833339451308278072418282575564521777556708201257595862604893967605854809470716570861590761338161946950392727358024475497761452811858835960471648196730121275841679536747022744504803323624092326037069287564525008969091293895594218874867964408534296781915937762693434267435527409621715563404096681861027864699816938055681706416235899432284955181802634785815975878190623356696403504588878105223891743742434859372643913365102206838468047747505989827148891223978193214070216504141906266894426347185628335049827961844422917237929717981051118021381610245179766431629066740876155416400029811749009465357092057937366168805764976592105330260228717056265576214309172633993199374307501541927182709465757063733700019793623240295137453318675095379211722265005573245885390166742600150582080587063722792914053591704394059758660748622318876742836215664073688850238189119070357301267781014324520093503572260602302006353541025790740646704668844675738442496975977846845656086401750352198788605646439704681826319929272385339652601460186352313711861704399881000087529172945317914569352151192610369501726533270509044677548495848793942916518709034129794771893013614895203804865401335450618571338567088747723796381993822461150016649934788404259738351329948684006035918264732107533049025842962401988140608775748864031407915885831390040123291621690494358908832994914375620487561182456362612301313561176764624769550064165459069936973606617184468105395744911919742575282433328216142831641033023326062169640281480382450893244603676234223987426599582773012340286626282127726387146967827517877582266471031303728110226711603242582802353759623532029304614735934104709028106054489821017393776100608035463943140033462583228992586092117447613079991591184822523799077543733210209223171659046904652031720793537226963009967326277146766065833721784054267441185597119933888591565196885023451813819873713079489727212399817840112230224556070812892544230269265767962280227637425397008212996374907197966012367210688660984971917496918312237848512153267683932133416878664678184214658559939308169240371428192791570138402843293288286826437951083461496346933346733069282085479018507723271666849936736935193654397251255398090585146463726466895378544311302590431898227611346012814860597622104516611667937200256653776153368581543540829714111012827293804062905086758381603499745374116047218909664392474298231491029942477576531272321857805162117601054760421922822100839500809330865792282679722499181898993789944693841547516576240509881582569163162905668587189395661208669466907278909608367406842282729638373802992067561891936050541145679602603175400133092045858314454029093252908010981119352165201814325767081800500560590996844602444917194178171892340738500540866168585165336209595293172665804722603759261990096775307725174368638970692499270464934381118095718872284518163648067996767967153038335981232630263801334953245728049049849285327226537549760908834581036312445838487264789947387739101299599185329364420632296564014293984942038132115228597670920463923705037477993913544675558279293027106585383656390244740692563882922583173823813663802818087598582021860613098458660947019676631697854805279353054385211204360672495250240390625607061528800202452377024563403997997068771944129574145923340552478603514635238833137369999082065232767855079655262893803509309556669882378337393728131561118072892013080373018336438523965126331678085857439554529486187341326120676870272024343145072638220621253367828016456834132197426729832266611663358300250703089777252913560324701825093900294448297891629121704078972530610502042042137447901841059894078615086979337063217057760728726581135974809590504630696144626971932102904901403315742594726933753119856586788546673854125267258366519365168916433885078475976232223365658159543634415407839994618129561119811450609919838557212903737934524984113884183229390330637882392411065988771910557493613049697680845386185199852868055972711217412697902303449087202176834530205092070131687494072860374010244736996541054536638359416625483162191567726238743251830695792080449759534016534173541884230277682566461354706271504074212500032984362475737771698668779768736744200379502855430625837304629383774973450643190126613001771454098642542600986175139349090496076332414654370287088058139542636346114662964994416622757962459832598135713402236262525527782282591648694972087421628690923369913233071828021579933150048844639944793418542928336240549762788661191778077836439020666221987609763913523124587544519593918764354421159214433252576951199645830162554365073038740286392960227876246366201407610777599115387308797213616222112202680865792355193049303537923182933164020572324163835639513914014289874042062964520353534560570074771952174251570082345004241017570690160655839442108281674650335522729841905801493653240568662330535752344270571895000543822796130085687137171873169540352046580608766298105319990771135602592286559504930875293292517853707382538213488732115073002426767246282203527968045459831511333334285168058938061473412807477326004667537496997590750211123610041566217415421863105191453414996266907940932237513419116313745890603418604784942646588420013493271094876622690423535118137335756279497619419899119691359024249416956530926085566366856038214767371759133716181665923557977244257905214538239205639282940515946835468196378247952519265339822956328710578627797034037805639787312804268170024325866068722496055074859535257013136848045051364306906888270746648515530860132096889292243139969877019032124548387488185309743309643377416534176572510345901446775137720650760977346163161586999778062155388505514601963348506976354163044566563148711784419557995335753550731789568204818721734397876014826687041666543412846483085954425041781316766866932730638971162417069125868117555847682573531702089082900462196016756423995378227070720725321481401901426220776634372406309319460647661220385059184625381304260733078592926190912376874219780525566671606517190818339767355281491045597542963222981582798476454026749584577106323277975262414713069795963951734922997141524787284528769703469178375758723659039088029518079038201781802770062484117621302028441608961846429072386584860213662991417169126243786141293242036052450164927591201836252318998827708196515459123820234315006037137284595345708000883998859494890148600814094605475523452236431938129908705567551559350948883667646325945660238621196265211995253295612250263247066987845172045626144756342250171918017098353179136459864136784989933280946499475634678656038603661768215664637715536090735631060378837509783835010180650647610947408835129412694258122103392946077969818195712664599431108504645478989903711218784622468448575463077457487270899257909563489345389807709042309908236676439248489953311874147158901356038073784041831689384822267632763881594817686209920688154278284702005414163720465617779531207810569903107393499970285743387421019425805511654433673529775327743013451741527460367449404592209592835467588068066195865508284312146210244516824486842001959521672868488738685623193652066401568097166543778519646222034614217288181499963820990955008643170885788794791323492629826485003253101682072505114316441907379150250011139491926241768043049201418410477408086293581427643501898031956464283096343381722546581069316993310161477764399705330887080951228966045338975691241357777536200813151577627999813394908669141894068840522901786650554617623429854120050111655008489009782245313936561783929854127305107240072886473765148389984507838584629083070095369465731527245199132615671068289476930302677263543945565271654801707547769217328452972600929459279679610028582792595529852177564438527627815138970722577504115671053113473341982812404446151362176599523417113150390618285242415535540830507114834262972864360643690442112960988612910064786136227051144246611356359529870144278006473118615025023706165273804660358685503153801061563102470898184333268795793485371036527740867015493080325176848639278163035594164197819050576392348686810424913330204193808308785605560939029691533312527303464760593228380567395624739606376994502044249332738084382598547100785499936465324718563778561650986867841960676063827739435496462849738355255172190365942376679828489158814562659447902368644258977982339553627110943421922284136482263351609870102566968229491547753255740247245483734511207407090890053433411588045837587888242385436432012799444797587337186920458593461352479317176598366615296456147091087292522087785823430459370604111675492224882244890720674460638024047776383768319081197734379064058072966242500737072343821937952102484283141354091692204904770639985421642851514429870732463075894253549718932012385704997821476462844947268393300231732595349189163755851602594066435269629764309339504582369523050946428311878790842701356140656207622269393498666977027249015722258857162104315671755081463181058253257716896652830446934687079806227943463580707625483192601707086994916146098008917480140090807485518147078274763186749253921566119696793206755082163092834169208794346289154822991455326142825557580621961149757084521276940082638021949264021397903157701907315931544629145195731418144765755003620895259860887059083657921474043748653430375857814071118774312922478726088560245007127873537167604205653306952041577525266592678787324988059527401735524887527393880402227367204635917301525131630183194952692981113617807047658646350382045678621577527780497589570586352395890433708747519536577600623352122670738041687614581588738606265735538049981667389632434909263718984872313200728720007123894461872994041065755788095025851256636752935049766620157854239660449201575946283160405112313335133666618164368937886786523940709901466007164909800280575114296647968076063002027877860500354960099009280313405865677517061373407225847557794097637043481908140932968775587964975185808982484505163469575521470513610218814656160017030739311522467444299854626315415932478434909961204018596186901346519184401971037431456859352173465584369625583303447249583880012718256562113305376387823002299867257890231472069673888658205617038217014314370781026073002936999963634197726318566295721802123650402468027556080997217600677850952532732054299505690620378722719028824651863676833745574268124410159969159152701300194827645721996956918029015377850879647306180374252038334948284714025356224223226124248754960845568465923418871857644340026091949851716152311397203514436619012370495892018623703783911397583682017557321950277599416011237942758758425890498290398790252563067748582934884809688597535178285521395545010050145231910109915743231395874071689683996714989921078319002008100293760692539039849782211229177811661428271785256707692105951505096042081257367930594862278104633466758694639175645794109126935598789615780528694513601095010482921184497064057527277285056319836976541703657002237531307860662977655117459356079569728106344263826077669664883315473718575169675348895918418008883379640930569163336292078201970917566347282542566396094301962704408649337950951097720685338415939405133012717704174323974221120171842603364471019575805788542875167563083205828770059997354195118489169417047689732566440231006389473532023026483535271824459208172719448387799372804603330926362532047186010571946705862515331306160997702656032915922328232986897618519004125564822943823030861823395479781303889430939709122328142261518576323124551105169679076336383225173558322319893418258716289492319269226145399727484512057800710811987199963390660146689971743201868680466555220303648310160205259620643125927677644345544981397313922638844594327685941677567675095309194946661362766898260765450263163329776923050288642604717177318163778576101424088751113731542077365959413069651029630193238610391280471855104879805021305468784244064485854851951791728763480492063896493381692889004917891756081866988905589955205646806083732472636169407821682235878063082922679922862903852109643054969511623009084755151023804424369075923984637177077640841875984568245607518755886449098909585234539923639437192017161710958193726598977597967827881771979611982323092177533373049171755731511561302641620459142646422969047448439321794624359794800854461857336417504248265497178114795552881276397102893314072365673986345608275393759726707685590822836545318890915535523260275200107774484990220832559680236284915763396699728139365402795950611880974922283102838633205346382720083480496662544915552392777236705847117948357682081060938625880575924414703450087728894478270809982420413220566539848079179540305128089706050027348923088639463274322118590722514706148652592849471838954802977638466081575254375756715855097089492042450191243168354620150453461658814535154204290725003713661807988282772981867067419854736812162592336949571630731291494659511685737530271754766410383461066180734932567285837968985303279653670213218118749404663286960653284734818846377092244961655459156065644734143420990277953225893022192968082200923626826856375658323459180197125075167639402609419983994803053964143193719534429864549100486427813364548538167272579295385111991735907524262271409853976315799521165864339049780684305249868797601048926893721352082054249844535594341294565561549105352977855243670993588190770068413994760967284706230947071057202357436319648703444911258894317725586101473120297494936089071307124021603669919773063567720768589410714377277714171666442057354507115158280386633254721986182788452593045111077829255044412900193650608409945629656362542181369041980430497819935557687175833610350573044689630992533422827703934920778852148937183827947288346035372365151564272833601688730148969976769030983436100597982590253858521168948705252449573833501290870381835838081372994416676030793439895673914679058115772438341966471975455875459964529145344577390135467349974390477163619237183002501177327209759895798983411395347112675905810345843328390687180191635036116427367866303809741574089992525716249157410654869346207038144390857588958760377036958989183148537468762720891374287238779584180254981346065930708146486090168131515728142106141898091892076761243628318195764101867834695436363490745141474760368734113544995673406343050457379227411168935172807712997106313225064700308776739968657102629430012796470807035299026333430219225807302676984192042504093223109762502335880027399437802358161588793380993962370488513476064342510311469157745505863682013085738293951457061233778288309264395596999731112753068447768249390062649259426892477455420479512177908626846296691624278983773336542478764201337904120648388694591487242210534996911209530684132760359110634079464097955867414302072009001269498671654196223213121299669912686999583947520660523038497841192599825015572835589513334337654479898781180800662966313644533098436900852084000584062243778559176656689221484123766375680887995248030457267123888733342482552743652410881976037481616740459296563058010997002082104169933149784162827021244746234287220154382064558163475452147166281248730206872568440431773871358670452370238057917266062771156281129946916060078565078742343668421598740182085043915892435659957725229080226382482038437553915410845453284967974852472804888014919513970077444073229710018921844022976281235893680628371979613076920907146797098224801174868304746038068820281309590739612977692292052712943296261665781861821779321046366899663797757014816126903626599314804727170002942518141726316596270230590757398890528298965749429671202744040217015129300995809114167332733580168327788913541781723398521433979071153495753637640015228321715837443978722171609499993699618114801951270805914580562469512026082897101369899130534421233395145448526386403181289016441025740120407370763357611350100906235047678475036175903698065761957389358690934382779282553499240064024491143173565893354808579833683881184487018870914103777950666130897421161002662297833192610827986474521290943310936711197389037518150084642359086383794322206378797363263962395036910485532498965815011775780598151499805476627313113193468077027559889218684552808182873825213989767801239691258266143570435685680674870199620597264873783612529309487520229594522497329009470268242731516967675726524826523656137004376977605995974159167684353320943300823517366874316423147382277458669144387068796096794384838315178606068208241032881405944626266254891112349786325461373105259855714240195159484126737800709871693281689619425730161548602427611874312019378389412048750063581009043035651506440697515163570679309232572680002561325948552753179284866488972077445586635623403587592207755914580749277698097963538675337310467146760729134455656136777160389745166839195821951282223386821734918587076169836632415230670340989170535508868738746164961979721062418284045445727061158940308994751107522603594796471739343534885864447128259064026674405459064460032019873119291565363741738825379666436693229331105168811751478683100424960276456672548193156444842251865597876567932083465879664998375309580316732513134134150416593522927607332097437896370305346106465154541724282145004168705530011384860426688362459119992405001012351670806732572820045729604700506787836472320673788222762458380115898669858709566783106666364675985051072293339739091507802127673405027818601256791385537801440879347126725604845146615408201343148651542773168295586706459191349059179089189304834886566564115306584177310176747836593950437058794964443857836212011836909616565595846289802656278737386407947126894905242746803457342888852714095092803576977333144165369566097915737066019308083367272864321728641300347117319756492493879711624777878782719666513549488572152528575591406555417726362776102508321325889445895883211445330163981829879897798195062644040879511577863439944521778220702193594824425084750153577986918323407307145423095737871725536079337269047639888200770987295879818134376039186583466608756641332232367415157165417878887519090230177561186054011341051378112657207975856090043452972200171084399940270809085903572986156722820183859185044797957177590262513589745942231595460196521753342049501548770295585188739368891003019267210772481384596225338751166401750259215785143656668194820337778699794111216222220174917187432099117281116969000809652881364868465381985078355440626167378914838437594476124159329680963001105753171314231924815178885970103572859281878206262638138195306180789266773948166921611844144229414397962815598942013197716980041172990632679126176042470669758055130195392621520916489169795484259354059826019947590626593963136680280624444794394060175285601272657013437586726256247437358263746568740979764080959014063329877639482495899939691724949919043986551111175177948030733230050887626056208528147742350769386204874087557995827204292792962992394492507134012407302967137112865603642583105208020836272051971761934204932414986331070842805478260534058519562581154129658770587052820409688975976673260395981328755861403955887429476926214863524543096251741355396964192946609661889892527715491297606800026611206399884561327326030409399481286580427251116654396656557465701421721013415072951077866401680716715024675512263990979156569376533577274014120172660752522182245422687931312303852698226021876252403457969363905958568811748723822697234844004499559429154751535450513599437819977311981189658812529366899240119014778563516878723821554618289240863605252011610696916854329240538708648995130147578012709315816021895987791080403919928212296361784109185392859058417677489861730627862902503257387868955402379868264517506759421033383015278593724072966998050542396707883777531014141151657705814102863176075673510747746331772594706471306149854576745792654598319312760769935651589322446543994983891808108208525186937224015580012668569754766145385267721601705434046310077144365965903355710311132745230647928582736382125137448446919041669230006347438680737761232158373287713380924735315546862419176186582344684494016620767385008024661211753895893199298942887441202670344267642703747459755806961392943134656329279969477115863784826010985025934902225293001932420049546762495897025041180473085376377569612260469508178932538158528794711469003249742286167565593358606450122411262206280976166493076823629704404918086990771995342535180695129078314062841683046647377932741273212751577398579582393590228322654570804694677570545520699216273598884246937646095750869856739655644817679942041775444949731868168924095749404071605252176186007273988706223907266171456689789444819687821916033086948186810557559112554282856415595120079993923834860848557560860434262673727329750225523329357463764600209779613769489660021656609419216863822249924324836002201405922443049593088009227540450330504310995754145154596003269304116697147593500381809122385143680548184773223890758116887161730617711636327952291538601594594595028289505150387571343866952225998647462752246086325025939166052132668628851890858374087624291559556112204280481164974667214828587676769239126654667084075276637587114184402180657404080896530174738910789928025611974531792612275846411356531326578243665491627718950897489308613942061683636095475194209040338822087695199528533374940771595503465736103220442136537848129493133457277663986029527177490449079575172959096827618266847729379904320066486932628188354773796059836242104896560878049289571966800093780551015385957508241730681764977546693523298454113512499070562194406588562287984527490094961899144586795763669772350011934731198614332107500215656631605994477759472243798509374894609400578407545066034451246045669228892051791788496245095337903924369318312892160144754284968121517097786001218972977975061254902211109563741795197038858874275039402171750524801212263126269424331547409996131450862671933985230812005613246550423705006918368463644727855107276419478429301303008673548392411178252547378143680063439205984519338802976600859992772833788106374993334646769171219185811643409637734340514502420626916081832718674203835335398428150445468471212124479685626197539184088052671486200307469484802635524512220514014240239278067640060965783408758093592489814081086806809194469119165682461118373946882093503330115508604871823089382466059278664922929077896163813501113022732728249961591725290230883332900039973991189857502392817863911396429573393289011908065149797359065172094480131751484690021444812125178054956684014460238701804053746003164792792582849281477438810119963104829998166667844466190063542448821589808567486347591636870682014466640180520981969576133867281766346031381605130902558198591499820616078285370464402287686536446519358560726178485300550957059238332439626369990385010419420046498468557757963730549734407235649299171808459595052667142235466132678536022439196045639275630279215507474608672321838096519709900922757348128957959195271639904616572236982064390162917992184182435174959624179771208403823005010506206380821481988731735603506321689886855319044818109415349594749679835106324440663395895168819634719955391355311690599975105242942028121732331907944087309937656243869198994311748932227317095105740671135118106848733228375033488681984287907091121899164958852038837788527393550422825181705016837482497212084354183830828698374788621414415150743253646830119278205990591787224641497232822738648240348912159865644278900138872268490196161173115972897831623664957251018847988572040930891268294288673985127206486654354042356112532330624866268501435458304088013795474148487772652584108070678845162267676557746023712478796223782789424708063861220754580308965488257131199472371115770794102709350000668756705288261934403017797936179598001780860031771982749561706090095747359972464145338305918093384811428137255446535598347305861118175414064265985451251419469689694332914841378168762765596076465236415492284735771213424028727152852054442489709259199905661762100923406465819306198906287668083788318526839034024569748572645561435989091922557062957131443745308288311562035815115698347690071224781864197802829878589220388007607166316568692475833290337439205397103315406037563959950302803839251368413434456220105520008025660301836063260035632337536204307168234113023605887467158030935310365889684932607590402349177196627708128751977111619760747175865765666623571822678290891958199651829112503561483017561833948908782567265146858330218015278934098521038702635769043579137299971584735013598797239330573246729113672718699501567117429199472594128309341072268676771762568645220226422537297713223070995822822625200172785849520880165574874135976476869772234300738593713637702634575416320405881556727648862570136403176104539996362416051476332483264843898886991958717281266307502715137215463725049869827239553382724501781592541111063269111770830277652476427340934800701625862468933918767958628701043345533886459520858745893566514906890047488112941920043208076438538072620144672472950962483927441401717660432525374452015402398822351684014712684291821809987618130507196849306345429230919042346600150773018308585109340007361675089462493928737555947930819199862454115398472178008197938325854473279169465262665342279442414675213439264396206918630575646802668832384516488634775703679888424646828043242622488370571807332372678187567152700373186050829874610288462448517023993666278284047689155147253139893345885004540225580680249617228488732362426591575088289617152218124437576111844403605133545486923190628655603376097755116553901972640845824339184944759541685859305292517123090465480182080214446061488598728664741297709381170705886209136942369009103712902447137043327385760884614902190037973715115674743471368124616409268575025028848958571910187523950124965460990090618436953316283291537092339972918157621776865226899159759433065922829116443300506975866983268998229045017300987708648406771504900657732649119380650150580367495192361878800967659942754803180268594118232127171895490646428010311938970705834541306746043080042122300885717230710848661578562174052746266691285021845093146643073858884588562272207721555811233349449471967750742299241888886512715189767145662767098892083046185839089563375531092563895575660703066151685333582222521539612697477483704716703225635287795812117261198006570069751794510997911774738487723836236469289089015032629113557448504168484636450587845806459313669387358052052089367796956192712331651030386251263155728820158103627776475727549795355819539998205837435385636649232050312653949101462818322355047364532397779919826546391159117771514065576333832232467755448807821044836121505376657952607406415783133897330629491018017937930657809284705171287438911070469214536049438537510393248239619284981733280547851746375216906720766009649031308352037795946202170936385363172954848360240292619032701255248774455952485181526543285581588356328258372442637027141150851514415266583281442046568443709667898416714499778895719713558153797447122023816241661865220369625261512760499704150949938579286759423638659226383009869681457256217700207658358705090148813933248356611998042042959437555741783521207452707554283615401909651837524621345332093222240433716847617716503691600063865010941519462454101245440722730323937850211190122242698827559135354199380275117761215443380497806857890074019067698769945016655606414437179305666557312802852735307129141612495177717158629263886233829019551368325175761441025251953378202337737562381882162264691697929355119909566368020095797516556279724940170994996870032040815167438030652228028338330599946499959237330889012659437120096417847311605527046713000320051455328829098801551237207635747156765963387451223364466470452404369636166345876442649202018632686806876166274893522079826308230668987230175618554613618715892038373532361476608818878612876869157034055017961892353235701818641267007310523534699223748386619407934474860598169680851766555403682062716912761180441194452582984110769881212161314567080854372077803393457985590107482494051462644098988795143396280025913880730573242201157718588118475092720492179620601136792948993715640316973004363589657800997311092324347453616478512150858980629240753505156141195297589583184672476595959616874547918975802667776203752765303331994996340506511304307734235096616137039309346408722979972275384709395144722588898882255287041793184698240315908276658734411046034218062120816069664045821200833971505945043264706052811650482504805742577995189909354788275925051789917636511080708563165645463107043732540077657623992301480489735701376027510542333320972385983374224659680027074799261406465154247994560305375522042602309774147715179197205712916141676807334251461302955704923376590840381494117793240924131870997585982855337834410593332584345933757724171305165647822095854709475979420134174780857131217866763432068346530029800728433327139192825354168893821376766569801606847407252271333773593263159278462702722019908527246505670241998195828463453268950448099902991237964234549341522452978740544138826134756629843761669111487617348725492921139195683918541401537846396943363764168222612569992438822278248849571252742915513586196740515240051951838168662187280384539135579861909250611385281549452482436683841337938419817796107634386437252033639265807276644691681269556228356822743089620852627582804996062354903187649247700218374869413150965765668087134849080168940172474948752406485046308354734289644210395731337482731744394708450406887201854753330866128664434602665094780219368052036128464944492643474857818608474368937497855337410423524270425500968890214661445618441642708751754446881113375267757423838572501776097026950006242205268704096667108593437884528224203613084707370181650118874208131588736785114574455796977932636219856822908758204410003907676283244363139905162327570853952280718655144549377025023953622806149992319760666687792057476922613729795394624963686305244913737796954138715571145681106301623439270935698482931097528051356986302253614482235407766382299263037237542738483954300738246525716759024623165044370537054103749735639767787061014410749202644599898458796314897129536420244386325115421037290416667843379730375511816175317563717235509811285821868127773179978019307961591634735505438106623646984256282533388173069867461951294675848212036907124877829722872941522149694579150211415620802461687707594665875882049264010702258892038607359460422540771617774455017741531554942791813418157964662603009675804040851858047084136972296568386873107017176588189646146971391101056760785174421990531678965623428131078620433302565211616933302037289469609543767582018910488589231191545811191435953603465292623579044861975029665058805423845740959812127828720740547771899669974859973059525504276466384254355821331352996800734384068760169773701101550573279534643826356920646533246983909356345736442911473420559278858224226470868795069032312355496586131197219261886928864364603393248382923390286670371920841136490601033013194105416257639760194274045591143814159784225342174988773638260339928605654824098474301391808744406743454300559496911725339385408915516839663751632352654352515714893362078222102399532647568551423473902696399745316822492540930212910115642187868183849837501546131837940115755573859508417806770965940317447565039911072250856096322210907011336774297449185739628580954378613562056140174968509893013004358304723954925333961062096279461743973527596022764655605833659682201258403280530449156303192801359397433692522812938976713021322166299308200023157187074211021819662382372167806559464533028774284127969888115475679224726610580224255835933741060344763669893125033115389498712253841350369511383898294902484740822626051982461350901812982328500193692477082426538250301854280422387158248179462959940399654473192974043345843899318436926307556991491483289798600376254816177334162795727650284885083702935310049681028234788760118999477538838013422803582707004380052015160322476254591761661353886044817631588011423988289427941725981873842935831557731498137826660634762330823442388270732143771068314264962538038752625577892760553151875429831612212413424570822267254292154705395975723824731196756759493383745471796939417554673326076663368176796995079728468146693009803167391768825837038684757654488305546681131308711092765794419590805992925694748412704050433993249730061421710533037665717350152476581345638303835796988935786961069167299328844596054052695751327826520109625737350607244952875375425574117030525485159019898733552650397360654140394068921383751632952983317454535798021751521327601400908572153185234953791181716853069458411381558923127611580920159600813465168239643785172599055658801599345519504993731119600559449049216518148169449125152112435138680304521827032518435532700425631984927124153634889002070566224573946159495540736232983574715000116524736914094390797582699872365384766285695047195997867002902981994156428528913419796252101747752590755761164062050483422726259327504323576192593127791498062802012659582197876609364892247629332663910764953057149420877231813316217203602377824007912701859351255334086648054564198188606554450494821112045736757153810357989470850212444616811520147626712104633612000247390247162462019300370501557010255005191559165138094892696049871778449390179273220949500288163239121307256835472650060462266358922137542581386338053046877478507909548896764691438728319757481962853892858045622963835079628083545527948697128734002139324038445609029484688036307161931966034999349048700962369773325959761598250007869436058874957107912816806234777589089253010141082321797336462626110665293764370370164282339455189890814473792300157120951334015764904751410984029994777864921683100402676664509166582898213944601731739823826993605684364539986197744223301803875125225767361461391163721003169438029828188226248718680237972691044099779137162630218789114987530351455437408086019514819593290632950428403231969426302656285210891426483261580952229489973736363080788876137878500759129029703330299082458453695873285786482813830450822586194727141032451968653149942494791322639657776973253190416037592407276804434277132807784564283645562269486013512256101156840679098734441056140283471654601961364426828754045481306755835653191588173535150417252526413848868621875073518136886874213049489011861744973011363248224964860109218897521621130433003278447361106381711244210840249124772695948896366889369038184744506729383387774411665859062042894867609539342363787459571053172984680782642857490323157007283856205499734301826195338779358909347062286173376592400171525659074668993395975289131493724333266969228286503758144280969963348362372071424227107937406289306354035687281055286634890990417639798957623308317710883053557098292160232416692058690665471159684275977316178973139534407670329440565834482159647164988660709163550389758854333771894057247535059310840132945310508218030534465917090672536717798238383732381147213927336130271530812531655656611928728100271600727799302203830757663820133821537460972302566217156017680742957040555122384426453273677636486886799718795473641497565434063047551066304394717047132195824694565355825301769180059644507211495114823199188817546664084033711505839792720432679322610881791791397845335145759166488693848509744722790070049882925049565796238295945077392098315972987796045055695476349307816072069862121013084492218476493692354747550939157010656807523419204284141549976353848485591194633873831109548498037106781881984448687869424630965281675970615503511492029171691682457291149820895029562086315097724503100203817599933648769804371789098447619403402663614056464251450510086824341980283265544544495215568027932140946072201509585510966147127661326501411089366389164234824095726277846240979802138345276744195758251348209328289186606322898727310203248368590140787080698010254813881115707530018118789115422611242000075213351053602978103975710465104780170861405801280291175357118056603659673751614975236768730889428253696224643670969140697358469629977144362511604475802354415588436871019783394419175197439755707465635357819602003328601835851308598643824790663753697967312584827212748150855579519049366151017140448653323215126481026299024556832407524817322964472243142638395706213557858550016412196666224807609983673987589220499151481208362935504427226947747036853313666268972189627968072495950860326972658684126574054185069289772836433484748328144831749619465264602415826569381219442761112963728795238048315688848752807130740304607994183474851628506932225999075824279179393677409749575487186094507167296679869254936609157091916992998060098873371422008214912033431154249697301234947066996259106056502418865469654493240361024803079233242090077741411787210651205656969472890419827139096914750940208257883081369646319541581458028742222884479890269145165460642562427048203640919358019202733475996035700388077617477867032048920045145170431918091894154516593315510386263319200852767310118919776785629562781382265918501738599321887499104047545395442155700517485966510743648132487302182394345299975740439687520191152189581839395417116205773272252168331469017002380294575682263527803342790241421418588792157051079694884577973909454387866493172203916745351162647397380784487598444443486553873668907982851283553739956160742048902124591452422778856417755273978810165766488104117883729217808682398269094735240844287550790484722090206236342733186385287607269589779501894933360552744299469086485062239028021168967000851322920822761318769206380099700331248204813720054392179614476375460484764007781674476790279032370505997981504212710275906185000835822634673732940198606150861008210972549089408033702975686989583789794934336573140533287743663224049708618306279997495437572305430957155292348745745211426544698054767850644336962041613956556724903060773359138510406758587819356399005474706176494146913388385910579163946645739963785514119557592430590282945938137333194490371279587394483015040902510074486097827600421789544734049776461564064704304877296973811952290163045922685741947694082072833517277620590251308934674112517102283711232680094888670625881164882850705901368598501624413005283497316566984788932362186000355800495163463542392875008265024115929013557791536407180196343835373469054067029522489420629903568762250878887950735229388883712241978663082842834888835254210883839810573259416103631451136916063683633298424912246006565786918252684693472542748008338210102231755324194745313874147632488008070945526205359595280436101675466365014922752174820319886687934308219952308960036761492485683110070452942314383301810717344154123363554571185287230427470720129516778713810493761182591808107592237412009538608179153788587123624709172716841733399819131777510750507561615383057294446239091449434641550743677257977579705937022076158262427177135088423812410253977966842443279438306220105881349079288041373048503867901869786241948962928701558836692317410599099816547209353701585187933958999128114264511405661601687298330545757878055333326235110971106192327648031450184647374073093967966437271086138207947879027518617864926955885448124733559955341982580097711752341889105498143247742020679459176932116952010563488567264349195492667400242773497634713414444443156297639608048998940081410169206356991686934216026720405650722076666732180233233724211192928241231836216938547688403462836292184682698971310550478448502318717211280541171669996054313826569344617106134407406946949055269784122064352660674624615653242252364013781884972708178523112708046293742471484232305128723502478448969943573265224840230412277653667575923974136861429678435174217894502856423358872802803871129404556719910594689841756343550996560849913662335144006908020753906284219606336227870457958081376658738229387246550063328995699557997891237892557716326748520215317411187760730272087881651999704815372693846456710930251877667070012669997722083155685678795584582453215623047115083000373108806211785829764161703294825694209916507866270978180853507857772278922840680794247971351659846348656318251188758755605364234413584744642122851880032537040489947943500525736120642603359699346659418082687989244074864648914636521630876138594219463439324275707530588979605168496111300368398657950560858645021464170577563123129277068146037830650844147477879484419474969070456437914839607278378015696945302350674494967637142818162019913178393622235493798832295590059407692023740946919571287104777667125095319199364229813923579066882805881299763256091407893781623650252235936312425900705005247420128125196243340004163106685178150954855965815056507260400318097748060683051439562213669683135036879416470179943153397488030706907149949818967685545513919731417810538945529815727197027626187702235453894194418278161235121289025206981111278071630945165362438961478600694453867043641428842287621917732892369523983396420139464316496490137981291362325189858639415297312332803850716082397177238039765392086101013330666167584602213399370931660339572230043057936737916538193458636284831310126665424235443138880931455941288660648230191902670207386597229859640775829730460907891368442694559113441536374822904838486666283169984455591497081946763974181519925356716483291591867711405405004315570503201892800795417017914805465704813054751320710827459927428252736207037122631397091567408419786084066064728257776481395447109469951328523412745916625861047322942933632819962795545135729316300794473116771784835947195033997756530282053270432426447016703160364471894244055535393424296141756935766462125750646421159975377980651448482720538551881917612675864403498378505951055331094741377825288439609518804531261770957207944096745098457796736945720907166998000891243221706637641084238451674769981838292050322700653889140629622493632831578783166588045025315156604251575602909917166784773565846317368501570875458075839417371578316559896807682084781323958057817438497210815680382082767216139758507722284844113916660585149538517720463959421762986132793015192919517531594127761719461509386605201307606581895765992061337775035585169998743955780257425560388527755565990708583667191366644315253191686655802093621019307704014350033999917306129572323856159227341647304130179175622218391023256771116686119021289390065828244786439481127855292112080141547072079137173060435066532968458290934171286436987219392743191987082899836419863383864533877652010337718797184563570079411216317090224527784708958921858531383732417667883608624818454848732715883902082730168127923538308446104206301962471046472287363070914418319900249422105942267247852579181309908651337500915174516084892004746017633524453952244766416577631591846581737191457773016013737625054178503936276384878389126967210379721115475875437447044488922670075330001844761016392902729635432830838721021583687505137634846608522345414009447636782415365976577568572726002285312555081949604272135876727998246799285647925504100069909663392071425847214161481958984822843861999811826801426175126947015665951457758476962182078873179325569114165680300968448144325797018565065685703547219889946591562508630932217002108455422528064403704784199605441329585868015983323004557374823703283275773568520075458055217936329425493440748046139699945970325184693299149420143207727197298326818551488287164941616760350147251905432426904761235316359510529704290839645359798823295708352742101125903830703958722012907819443812539239719755100503252565228050142812434553185483646227368966593258960930101929777178326941963722894481471141032092889330433951697921098992941120864649562805332845405797233153929264623402291159378695780155771985008197887985049871976651112640826985525580904695020006184136471662544725800066394611018924913652173742833020215168335734303079470035183457781788759240581438382112944601095845234384366941091230756566062269109309972429689478762906727701429353256980053704078140250689335222297944496727521093178717531273300854062211010513166444300271677791300784608864800799676087696024115593460640220908285201826410976370457527334581811079572602643202792115682984431364719168549111684535910968626152854804943240556581125693769427578874081251277843284818003765793218153421424865954034688005250776743045848311764752920911610957135655132776688896450283354566720818082929728762932740426883316305244033013051437254151425616378226712876728705881353617782898167108218937870955857271181659083041339931180603053393610355392397012954440565534493381229435107995508611627914928998789437083869163390676729477383571235942469162867104480980339911881598703675532110467200969405642758132692472659590744389333793246559352480209513518194949821817676647618362887520926430254898350358413810553466499563756741661289517257890110138092421683646623833943785769109955254503101466431150989062609635343025889720541259899851236599358368836161034589356224492924759453230395421645281815973083121654131574094174939593601169265226986056608693156867137469606379213563860794311645771758908289010813313820168671461415976584728703173888673355996536757359255546954938424669510913767367473191896720905747788506243892776410351926680219387324337210818420758206864147002399699943453355342053172629463883467145723362087943985031863217710977059181976152797526639923200712482984430313888043974039055630547197154666126007094005154207077508210335530458468865877747490259114552834318691477972779968750237224368585442498230772254554221721780335908876281546930315998581126540669025610969057108779217602023284130320599175311916184955876060000639219428237103401333162987678186136230642012520095607309939904452645841458536152475710694052251223467129063287423096585502140750173355394744558556237487457975166398784542045786015755078136314784266255123267564378879153154761188257470444282829189215890700926928331915871176292237507793790367765158647717066089225034305088793426131700794441714963611800982675858931963356288522304230100253535561273322177174972931384319775561068338283259742490931498147686772282838279307930225822095514248068182332495497619730574461249825774971276675602446495261636016649785693380760214134034658676546679018442475258526471731883451535448419902622298116098526176095963089338180780342949494232724092944495203677578074626846144340846917878227392399986933578565706295999587125375958146773294211891548254212848249145281987993515485379922646857059878926295910082638699687569102028727719742973539213560318674686937376854528454719864678556625891868202745385167316687040869459650292195234108476364396102204357296595563593970472326218522551088046683739757794084133190178109813608075453643082578165969671262068645838827012405550078782796462494612061801777356762114307452990377112945823064753370180583772179234512545500311426895860166884616588897123930192015857838246874958391898272110870983335959958411306303374559573435848556703382361735831644169360736610059536220798618012954461367369085731726067333913557384662823190038366303267045092911250399707241094075975599347456829825742370676227970399522735412534940877870169309355067057251367710465287433858918838759754503753196431933425452810936246432348517343382138127080123478773225818640554257187189110055631870700095339330362225179898808360593793427958023672604058666322291390392571899474478801831744307133807297221547842975997803592894960354271954765661227122278657791766097385038825674645536801735778357641309429788425721511620332867817273318489005302581466684796892816411286841021219938458236980134088007141561656149793159358119236275489639645240618841451391386877762824683846047886212632269805472858005423318602600163412752449803786117499497884700563515078482680530369229220850891161048226139070225470145582562507284454703944863288379060588416151527214490676489359755923321003345423444911563614693430144590408251603518585095995323685803513791090862562343270802317687371767457991212762923993251544916310333589659702644874708494685972739895500326545030764847883798998556903884452849392151079426390801838917493795661510270674636694510515126218680233659299698485030979301557930916348212397806381507476454805026589070708034137768800226648283551254173241534414643896990582818313104349236469635593790100849070870314898328724612627568516086197531776983211645288391327977790204800493964719651411013485463296932080114951727024009614182084516848751323406982031940501195378498487887932438599341967130077072167513769384370465418835459145970741226814571172215317667864532029118418877929341083470744419678254813128158461756647430362009574731318460982583869574902751604848956928832469366437370844374106135081355201457640443003090092094267716076505222267212233301353161459775383832050737172553546822894349880283559535628534498354142887651929094992460794889863409240019604634659229204097899019455798668382678895576110933808137737051654005885549369993799955387040590056615059722224503704567849149177478100507373408747449552780346416078016725961689608409253266392950408202307076623678792962961091159791500365830278684726075000629855543191454874575447142626738366816982318223820807530114050149323093285595906710937764470361342117556312241026554621430735583243842715047762324258993095012293001057593709028145906983499402656096292010148807552825222477737732780790196330208161811776321839533075134276087544733559217062114007446355511714058937479480776008687913437958595512371375446224954671212309613324535050235785606262817369625945550431486811100820052673786491172364005269384579610357518541038728567508809511169441129383826547741171785938023070162225940185202583028987221032326701802206626128432720005166868264741487972147333884068509693354690552557807859169597097935358697645584842414555237359405744980316529152093422619104640370189766343656756649984865205690949051831095727795962561232759030621603754232855110496008512178355674114624960550232920590705558989038728324257261209919268488959711523613756425859795710881612633329707050212584945845223178705753899636814210722661879631628108102562204988809681159589394729870182849190267813842520788701280559271531869910172508004176382185484468919342901019207848081089712261018514467614634302941087874861666845904866494660991732289068825924412719851099534774976863080891172623862411009790405819450778345952384884028567196846843087261941014125167686250291761214829607330184978434114845525208953420087193817997691243575518670547640536172531122911761410162476265348064938039692842643318741253703392080468941118619504824080572971341543338751626331096036495973269251443475753117608769510233129298647866185541717035834783236456169542988108288559917126235195663744964184448568036859938199237057791848359333273464045065854865562200999210496512143358311788233146470826422135152569344449302793137755618070320263000594315211227530812040801019192461930133622050556834260361272932708559277857524982028721985229775553363255715091183040263686437762896095621341308143408615274440686858092649384476046091159518822584822663949347391732184665326978980456827459677537444165828016103698186796301561659212658056581391450733083337366147045256940063111860987442168632696359593927307520535522590926649233234374521992787780544885447231529778828294079489548501131372671279263900544704327485697273741046037347999859387956466489401279908031332759596519240489530675011826024428802119668755488199339165010672290992062418635583065169733371195354541336622570189684372912448897365486124365253740057388423194014123499798394578692303662826201140128505725496041549216365210837141379781840237176409317125127474388080776216624255004742364393528303083448548932765145145047891310388752062111432874216930825248638184478874550394365023645102387960886192542244350179801598992075033112813292064366405994873711165191297857862033545177581009759836351823735149096968492089771814599607287719961758463520862640508915148545681547280595040181356106417990329859162898291493424320027688429005305778911049192518508991699991886379860681374780841325399366217051728280221301017188089645801070611074405362390768201171092203798978835619045808330088413491752485970266732339046012977110841092102836202865712293518758813044663662843485586831951175084332278084716026627958879909223335134263476478870982282504635064749774619300929307496292615709994130143303832497227197633152420611659770601975127691385402770561047580984195504378939952254273320684953304510575489992344641712894879683515678850834142882509424966064337191374329262986753584421528973877035990171534619814365432285707132760327022851849612796493099249336086274310825915721584939198806079764714458080616123979765451899442385542466146242190696012740667246766133374998758703751611663575761174374572367057451632809102841483742908200710931233607515648524959741361884441396445938672826583959445837207166984552259593121052511303598628452708286870701950343876964806265706691046301115005085622008883507905911978413155716036860213346727430642100285283915086890677123654672382122481838816721095193214222851545468686241521215350072740701757767128102251240981514083589222073047828711731399200372259201437093869122570701810503829171320550497158924072240060690083356335363478114321305320272080100672757991203571223616515976079180084423814162852643362983361243125858270501390056507395589238389742991455416195083907551333710151391339751168103437195812518053093668839564853687340799542249063331381121484538219441100808983356562328694259078002082939652391156837862181382082963529069811196873555252903101045473586359758581362671347676964687583005518112404567828085180635643466471219668888060493424345462426075660713969877634746366770361474012026890945203347381240129878588638659800454018939377000063332023619427179364471807468449590545837069056989073814432807183757724810893868591035312307218422395777154780479157089369458517875784209940315969396064669645493900367737010034690386631754938884735969973927597120423311913254683281073076856581646035896499066924686032349753456395498404521378772543066289093384742091969492666546088308145132443967212304070370952989600937834303054608544345472078702368637731858395833509811686330275064061447678535948029604689556338964069750139839949964045475428548122478809955198965778772180917897583504509375941945441204370166820436888313795365181797946032527842948170044162198190357017953501140225808124576975762739751192530840875529837867873880488101745418516811619657797158463682792223435378644871179477650863830066416956471872096919985358559002581818906854198638165736931976574631865619110749158774587223732130835285301972042910193074003393931402614364143204351812379828627886776005457227331887794966588808550879515154449238808066468763005808135510987610117158702298795212802627563653177438400436180234028128105384164984068235905253417629768317002274708386440553517736627352503016233932231227003158045828441721056884235279700834460959190060183371058249230422256988446743108120850584527526433311846991457400929569811262466145789301355536562062127460827359772039753403833711959081043287767305890629983105281523096110458926332233348404350371654807004377039437081984127888702591482324782027081009977568822806910380345933046499333881795043135132473690947195000012099549268363474130924030646139340550382580856757849397576090041714263172601152811608816145386853827467167765013536192152739009237514954695407587884641812656659098066008105177136134181739965545387785886836365518319570699503561181492684262760484574139523577136545224612160747802432733210083807098347151724685123547754446151163753747571193488667737627090575468779678831774927677676073527582686251350857016851204763395522247543596956680414980741648262903664349324373339058247046126315403211564306536903858824449087238597575464922645322102924102119436603383214410485465682857026309516413874046247467763829379391078469493025652241175413019913776513962317533696972576875355062206920633137121792033817855650298798335504332615000562431088563074498768485820252532585197702369352805429131616764951678000258205334762159827738223854697891655485091328117132493916288052346912905815707647561946313920007865581816168303320359301035283921392093710261023000967882255812554408148417289514073211507670037661723982451312431741224634371019801183661253122427047468952140166775301013828874593593998392080559777982554759676348996803759547706548395366249465018059780056270815455881574366639637813868234372749662021136857791071568741168579832943893044453364308078796324590509817625042721997564209757487373075237960803288222096909736170383116109062756235942949616434478837812434128410552423926496443240693935685735196276084834517289185626974589699798396918825987770074953797834850945632424639477111418557310296318849866745416268433377915501736018763223092374905428587395490060264387277891782047187923825538285393842595593996996769047185167362306049371938024999601590254287302329557117931960702770659169876541047926177620565960779204214295359702075109449269375658122785955413017504907305150902495321941140799200979602715642348138528731886547418814730956619916542975971294898073223951883970107464424647114334986030256174626046909328782424670440319512508401123036841354337912886719270207387775126021994932090120445220938647263528713802689886742593564656453149756931111463292117019101121391101480603378681878354859483349395198752591694465467591209177478379030238596854936920854449146868747194685448707139869735019925160475848330775165697041611033389664852556182893797985115718403745909816706389862031461994990597876695819873216969873697738477401485968006863186201346783474053656133392868772651030189243255943223914315169364728637750397163283231140785692707801126128121161069646175075400477132819243435588848198378735514644406766193445559446479517367343656848192238877966685538486905811584970180934727300254169196275307383098285017645961271019461750626537832083084160156410267912283074651866304117618358421152971750170591556476192664412188243400589536800658079929076695619718956192385806796646904409416163892959635801565042640686488708536214004773209048867664920297428623049689633701163710166878293453597597369170313231702680905381450772030400175596686840182684965754547962094925826043471711239881181447654131515726268671286222671917592881305682452870970729514693150567819844895556583117563756068573479076936474235534715653678330630542645614650722138536274737777679481820975817880881311501461316641808820785933644598430764919911817695431152651774476500087620090806833507741600762517549109804035122161894401659287227823221470138791877965468415131753804133272225464309459817081744534574526786597269277704593830703494006869673040480441387943168120904758424242940508115482083737722895183617342730281798845216402375667502477272983397030505522597764008643279731398856204286358513366047598416413555579923341435641515691955231554404596200081251456352785930973157340229375572544474907081952550359002280522679206134419002345521895055916413856159511744469458049973088126611249912318516313068951129622246898772713826104758579478375945725809060426535856798689777275791898752623864927962643950119040810568872500989543143115841865398646871879500469506959361675033920998533546494232711441411613699054117663212342681172924558737545681175554649125386507035236522157049746234683246487598526197282432648417277098083718843188563016820756818149019814115227312408481745358606420521164912674603452358791352976436339634691901113859339411865117591728790640324385138168059430869054011000184803253859325142953091260318971046534653222203302620631734382481970999851329826506978638142290905759421090304352819260200228158659376786689143422637044603883339086704718921013096514847541302150415917519416757584855306035862737978319100402739854328305066354805354061256462308007223445227612892539463876720481633813619191279505486756756580659684912106796951375142276162649764955177898392444350524278857594755310281251632014889941661157065808920199467698699874930958872350614779564533669966712198342375644874531143973999118162944849250257071468621727807158177577480113188116999585560700585327212374704749731627405661452006621148274562824966984408710355586254603599926660013512644650956870679633084768226373543062485339644775457555628359834113660227460336998443560364463653415613670408075465744647423750539532685729802296459918005022311299161057018262502521065324449435572735819138489843260622819693957679691908694034091395303246585041045114070068785774428285799966545929900171747837145536258469334750597385346789797494378396708214485431237836847657719598577664997614890342362430708588162446816151752244826496763339150673977293121945099256976151150015808729049781519864899030357117213899533968934755690119816327377027801120751024824235651130906608910784332560462442007480660672104622737502564965300639921646202908285037892598853733424344826334566917470976391252431327605602306768512638798033406217052400218591882121729508695116801027079870341551242692055270753180127241674252722244680411788254762430773100546530912270800438918788853490758619570220966786373961368859013269294907679556051565350322117325393741670668227083083193302770955733536708070331524892038994700371124364298893207179032600902959846830099927942812015990592314104204376645499822433778064164706761816958526162472160813756440130629523439723945832241270452614102833477229068203533542196744948858358759985680827272011485913729238912922245440102172476563408459266135539024463501282131849014643372807182358843683387627707060133047173284007050545847729439651484705456217969340945092975086168562400638901881762156779724346724797210119514517213466215305682751065680597009131851853451944526950824792256675667869388257766020213084395042007707234554785935442298002963437558358919768206459635967482193929504216184657678559932805012187018369747601980959235370845835779992021642258887298547960603666886611733378049162944522987630926609439297040965633601087763202411799380900255460304199756318118105364597241059901081228924351459862610558581575267310498256923394336633622051292753645230656225906355581048535311075308469089629895437022833829563748824546393839734566608543000365651696830676058587422910992329239763618298602203728876148237720534292054824415417131941361107786682567136065641579917796424760521092090457034599770972949236906298872932616481264437189500117064443213320006187128543455679385827034915877032484481726485434417605777092683029180997805950894274639728867511334113481507408669725327712298437061851068253814916115340568496890823247478089056742661284037189255392903348582092190475518705527176059714426734603755256555498019509067070404117202246960761139766926096029501106517521557081156442584651791706712057652004198002888898254465596373098524054929383070630346850829011404298967831437856707846814526939821575382356972215100924700323468351336506007499107962429708856459927883310097733399987779937449670548767671181326283188723549509452228497255623177082841614354624157851540438018860580827650722127380399442217134267392575039923197892857114987960097728468068019678326448121980040930825798557515525256262360101935697247908892736923819014086182628274412500917424136002516040819877710076354746702558992729824187586874208846017103632775045852868355160996708095662006003841507388743976118226831950359533261551583211392633785998180545768295602076763482900686625345055103127880149466237113262641911235681406538600576549921654822735216979042319643265681600737946257154641452813609358790552323148053854659683279639402713770354138406733618568795039128576478973994049243254691992173762408010957442054798656934036584168103848646013748435319580911852227017726916187044888112731644103114588581716293548986231703261832729273039437214596693469073627746761859331321734878391073657193453245834025287035534144639599353247978206106720274822213575648851141306203086358209646143324399607234417774124156563400816120754457018332270756444651682070881075228135025742919655480422584330645937723155251651008443004268946557581302865145602809109112461365796543639141935880309424714224929696448777299301202429652411066128069913273277323960453698501542535118316055021639117883329748322200896751178714187698783550682663065330711445778243335334169419596803781953053384998031242495155923119517141023405671037610676944906747656220012411932301293843166429906937907647074795784180664614418360836387341590649614532796610788425367808291833590539521438946285239197115510894449708568868837849562097022188061742858804328457517785796630226961057088857751035161850246055248152331363454419348361914939662921412303141675492110613078715322457703032934054398126557663613599529180520790852697404096534879461272673949298785216133469310106215237556359943582406576364237429978836080389942108279699767613099205131707325672198246986765561238147385687323238335519916188117170204665663531902719849663838176090165447093523351071933498986775264487149640742056879462541542418074235142647592622863017912933939717648455388516520643638513294436398687369132595049596938012485879751951968536557486187128551295418559677019171438837112148705446707122509084219637818035185792511335128642281154504514600486227999694592230007124179360130426434681786846607099190402850920979250305055947607704206755139940907924859715252432856957907710786379684138473665932465502312239911770006970455763517969918643644190462722456631078872253046184222524263585108516403197893721123174302650264740202496965274413698557584125766149174983628709103224333282634585233453231958331956018110275395595754776905454618664752498772556894236758692032267370509162094692654183525297800067642349324797818559261238265479366283054643669304996504702313528725013308778936165461483754457482689300869651629771698590211673385215341540288710978817567928869183665783516014527923909562564750934340887277928802947869552931272210309704813958467206921750107654266511672883682699274243767777668759768276613931578465907179073686151555673671109046168730919175819848969057894329225952590227049608160615962634656027329613554212609969353518654838848692365572682423670075059140248760944277211301316718022169912507434442254402239279098858768613842358531899748264570018248882778901257951598144953868826382304490841681991172802707296324979615563086100937675934833526238006731840217513535660501387128061394109797295573863550759823713324156760544045212315300946524766134753511074669038772543745312841274008494877145248061934259500665405582885347381844315427494090701826539040283293102671769305630753278847957000655336699870293765869472467163791787983822681877789957093577610641862869013650960680256419379481711723083554938941501716519341135807209377775689199321723080328493263989420057767268817169099261763423850905486150215287512323942052243638451329392759478937247924853346987011465250648073925907132526113633927225199102991945791261738784948059452200277164339891536564399343089515988720016221500764955275745481842435671973748727656121490456278518309640520652866979717385736869461535997255862484196130915303239527920086153796122930145099586534743945333466232859307921203893137881332383243436918275456493335944378776303170621393503134235259716889362859068925997841270444904264434109389117270373997751817103528900781909003048227377077775301770793972633377177414103489954126804214719597492053717341191641717417668477822359194732758488685403866034726352394848751430757307766547196355369927463205684459378682697639606712129624506237762174490830275477027955036954174308916104320085402428736350581455750392833972737578970806363497162879478304890336921062475644940005261278132159274479752529640892822058929516546268639589667463577542903940876313059795064917864549754346977120491584272658503923756609579070870542262676404117954418801732097814111815959543943148191941763201783049831179562510372246561224066161410186574178874034483183363632012002831996352011472321357393980118393412673380533058968614320033907284019472400557064122180368454950385724512411188765244048162441845560096513967504181307895340745239793137330569795863706008859565140818613635719392225116401355884240347507952127096479207020692232638034523461605629809445447396869010743617318920331626892203673195048595760273512997344489198216406845370715178805840350436478505315663462427338587379602049839897285132253111418850983207594525085160699223896795651704698285350425205388087674557993812963268502965611684955748652588038861203896968048898114509076268928641273875766046218975595238380830112150848669276494240971988402253225495568352026740917511703714487361557828376071467834493490964723905285526395131493508588995087906841306433865308226749792516993310161346230627686165264354648748336993054570640454299135766188980384903167805332272615191060314694789220374663345232161835597802400006919276847159565045216892339410126708661930519233749771405490819240304839901459793759983748022761302849758237578340356711286251101296095795790897386280625883683828892218796049329322757026444796315717347439959918290037966003567796214672963921917345614319009958000245746607304299321695863648986562348134063512035116819456782201279678198699039467675399684550419795943321851127487556320298342916441695034525583956914819245314412119960192421036188267860961243804071193716053234517033366505469548259618733409667034700872342595148429306559368542780693135812859424383124547342410556793244183907911119777685395429336725772364992953246896407235786894614186525448440054053023704752047396616272681811995174356210510317317681012555818665646265720931291746857423595824483569733045935976029237241924134311203625458564755231134325655652480215151511386386569979033341944440141756367006045674321683801023120332273964815591015064444841230932411695683242869465014822133431103489221480672356016107891768406663637811953246955836482340084395171136656394020182969446418297579736840842133008865558099462589603181890878649803161450954031475528564391733863417853062693416108110012410520619175565316769077093694529911973197358929636480047202063694651518221813465214797460957300476995697775747072469076637697742108739003000497961411989383307016747075310735414503339947334735235574495585526474180616453983396902308628016510152666218371126357162057502753699741538200648192355856017967531864180569229889680253475652154660094654072246821542243806654959294330175752218708378531809232782327796730794920654890332518068019217509039862049849073856453236881815310951190860513266235013025150353554328047701465237854220544166863217600370200308848926038972562107389779105097753907343498314171911575496177907864405881100682655166007208924129301502949985132965739417834702412579274751929500986212723705964119607093057743057913005187530386360209027985909341411403356626248842236978535074743257269943014343522849856591676210267894133113931300620728233359230059546675204531295565042571734875340746396048111686528494057529225644744760039044418348771997798982690550181417410243118063962926994495295094666098487551983754663339891368995872624301408427484843414068288337466962635811377961647322502968400792439508423760914385339865499887696611885137635604297724077821476899250124926013645014974014617485329719994155434533828158831536802756659247610482890616711725467463227925133647245453432524146950662040291266103005974843468100179072867439589913420861704484853184384957477033438004494355406185115248081955183167075445496533228655672229749586308392353915521949098636929572198769574479677724841755595335699568249879955347817202051362010250698421220086449159941043134677727109822905160611579227001455073267849848204940462023580219730165321535878542540198286607122550545956130275275001101469674506121771165206869223015420379408513821276197283264753885264947662958212108501652918869222312647964480343781914324980846132355331492828388787400393933979792169710267193168906185723702207518557340471474153548980206356002187581451736745088414711459593310920885985345802914956356570497109276247340849646005279122561375764563667476971863730837081274355934942625919429593051996380512567430069559286402835268312143083437997304754534167127308009048983631342532911610544163027751253575004823783564490620627291888758552573805711697494580470738947790252298949360632715366203181333432799774590370172022759520959637452700195372112307863200035530855055537033218277993781046150247896666925245342137114734380299893656781392572641591678040477621909645449337039306927337782525017922117820781522587305653762051885562365783604568687475126494296577475679656819117040763902453066257715038964643609929342010269341060954963751535769399829060522384421288336609190092033584524232618229555519117113709181607866963532307315814016627711699710120681587455191239636971038440538265303091823746894921631649431784777067596852328288173687331047594424708718305767959433463725564643193487590373988656185816264389267016993126071940858611753950003163134486209919695361449347888675966757281880992831489568002352032038710385402050640207288654170726258074931529390436907514948191610045704850856505312180479567454923207274745745321086171462933462963088772003666215980608753698662324603144932039424680775293327090854347764386803582096742845896019864165344321881324973391530570502880344189914350630056450999023313024970289208090919020558010082513499834205100103848172554633275761570332441536664626331780735482488394408746023774700474767592618984813586488811341991266009866511216102127171619127974923565844972067887253947542817012433176760754797974768820501892832470996951821905775175601728898019538415476494733233698374128651006180890162414521461227688480574511153801946713173989051968300673919003101146244436792345836756630936516779943517690798899221940264506847136119041151234693018884448574941253143564807664596068909814280544520596285179053078736345318331506156441603287438529364588422170156702273305472497249580976745884157365071530023447588225559467919837667174686977302778920489064728092430370969489435444519181053009336622898298868388597573054142468487843629826159418052862497227432172251872176428810104785944954577467482100077845251440962126617444182846526099960324652537617595649887618459528671102039343466791308048073830439104038476863885571960708931292593164495338447923546528193577332559569576259857962317791593639202983257686609869128035741426760581169361133436502129485851495094263698616530513918020328522291765522745323079328450958497069292858393766796432473010130042210523494238594950928863266815947360597325411945163450276170709183651907950767638710059929764011246920494258618227349504984240378968860174026005942739028378147230892480011432133073701155336951233754824754303683931840226755643250913120790826948349648658027374149820721665662167747391978268608425557886266965560709191929898696028172798534395418847745044442367364357458904374409327860684650979298834872139265433676963138005762497567125390022034637399491025563478889473010013599716762441126364672163248963305790014924334348040531653700483608609364403093785119504028075436774586111463672208706184745632799046353762738772996770360971967113581231602034342366269891541454118321773507986224402512370462567001631632953217432525181292116135818952315415513213813057063342322242496076500809031899384207910863168726974943459943714669748553204264767269534066340502476506004565684663114129815202795102997551095680870942391083305538959001899919491325171198781141073643194295361177974509447428994462102575353814371495022361640213367897527348105099551705945316651407001147085058531411398350715812129180901933689213011492640993170184589187241405218459109807654828031928213255909418108389670060875025633056570145420947051197209154773832679249255379953376939690782091279175114645124895326194661189272420217391261196974801866221328397443032118066079610250950630530954904987329690158904277525390232331169243587511203688366879645796573502998627777273508940271214637467958386225320585304288718351900598736062746439723714809632372377535823559242603502974329482104724712540880880622702347542557401296235624718513596986823440521771354555260945829106502793837574204852983679403842429988863892016595292359369310325061934679545102912172853681729805759478677014424839978249680915858291533404579848370068585941647988159430175789706827209466757970606593932625789400834721635721572151867730657893834015359104522106590890194953219676245612766098864609795362083637124076043744462261702898362011405268497233571101077062323014112054876872157093003789301303099482540705801342928777957952029258321983611679826778993374855715047171065362927170527225372504740254114499054372684380630966609184892608765786287336294542946456722367330583809350518750466932221292838862405455448894855329167720419537718778502733953779644694592232167679027700830544032210069821898789971275270820339168553027673521818989240126059087945483025288781656691327024562449237180239023879209980902133682714309748138372070330300197505817654023202395535841832014645522156417955692740204516625817079570724339157175528395273172485377007269824828102076943177097412158536182820994586124478313909508118506745938216890777640217984117662175618110659734928925187557501582592888879750664211926386493884510975211478052021835833386084199710795220102258800846440989025717734650677361568000286366890612963271591345864297861384932626951806812807636855929195662345669973504236869144350334808031899337541192169068921967170892953246680412386446931612893391043812164802713129497987827377660776793366806239425185454035122068389465131719723427884005713489755817110551205574592454754087808060626333830932667181470153967386209194909916509182603428971350435832459488115789390509992879540444022763814374811051112902717811640199487250985641987312305782398808467106162419750131408523336209977606593724957212737479487503014296794061818642993364967241716379408901953462366152995105612454920763579617041956466672066332072709061124669451023402754638105856361042664912409686756904244483251553367096657240193773941927431042267361211542822619784535864917500455516949482333768061641233470793072628912326366752325091173398619400658917697860725292312131693729937308650097420284813539057543453119163250568489676728125894693299969378738773703601086696380221159335568702418537110443926477241783523589956736519190369406354795159154832192032378514982415279819639301028145987643717203407483030090863336079631435156910986128375835601557068927832867354835571509731935090868458622231924421709191672240141551172929947070016667598237722943338532486849786788497073326363241472539192893351034885734472115831839272624028491722084860237698239355452895938960071251660743269365115494408138697973784663515428054325116928413980506097914187055106184624716840439553116698457672478420240637883498612819920418289806022776195562391477681439193350482784961305180363935478432698816072621488132476521025036660373465110464647330642527857975386449941598005585779043108749231862643216335874988874665776385611221586929257659756799083881933729552909591193379578322925455802399798790182376485662314599987070333002113203939079797786934815209912880816556466959367942997455531075256229770436287457885881778209752242133168351785683017978477722696030115642740362333645555042761457174329176903630548439206203973980363742380014390306272766534867768065768298312704024639425616745541541125965483968596316802115358676620254182599482401055449186190368357194654419887016165977020118709827925579064215999442739419206810036682665483722727246104558708987231460627333953954951797243314788659875983793367862620908052305894875881583255140312509144669600640571512168126429801153685295735555027392104209278015514722666664593282905646608187226137436160099952364090380009478970711231032933677433889880238755328424402323101541071593747679060536823403025499830565367545783113380727467858778872604677043917733692333902779123982641033104953783982738529116496451387247472452477865349002043038253811896249886903350184011819288820589204779250266040696750137536909366374100680171709334194481291951914152303569643958302913348209035025244268784635495527743049390893884439990505421813929757582227689163793274191279235851785844154478210348356577782172026156599358312594082046396746919230249250580588692152048506263541880507581481666495985248691901014534001498890186590342731931746560345912607487925481603677463737868413744002529242311914781751510597667152374550381778881075664797094485072214715621019990740256348712224182626432833530094645301557991766906261317957843714854536599991305439071462522857960453178349276435450279312624845869093212055815674404631357200020807427741995081014763148745603746330467121262742119753220674585469897333622596144342444613875413733975384871257275184964058611071859044771485471375058081762826546917270597005267464737859250950070135768267045897581370928102926519311819649654986155698123900627039072544570281145906717294554476984347009353021968273524669889513188993016175536905459445512129685648001749865200393817431811839315312763343221775478016200034030188347989602733630447707398718018757790041989835583694046934491700339347657877757250878643726370351400329588116497691304048257656268719243165099189583509609107102437191780899625684805506094662024636439346981933421495593554737831436493584464779418134759945139941425116736553082588649833223279008503682228343035139408002937732869962603135635077928118291446630047459902050310439777865640846465425801515040612330829519604567490182144677558030426686591452288053980254247257469365184952802317720662259355765993399206453313756663531010475181403054562436289147512457315740545240355856949077023412694268334720757433193189012592412731521644662998575335837665060066679506305059088049508209873997772728729835130723577157918249804216870852357743172685580616679541479793200747993631161843541997458975470696709806080547803920625920134235395810822334883254650827852510925984209441716968547597214290989118290102007091602468257625395568048597175520036012669725580340591932696161885132975506837830866983932951888818592931578287936532171413104590513849450647067169198012980989397658790251072164621561772806988503679491921184130497399203199531760340494603735984491560518053906865607270678887869639055536935345623662507939068179044093752695943385806286604769744280649829172763151543982234158963955567129949533594161766513368897022207189301456710328915231997402387847230888910377010355705430301342940618464913156965120851406586279378062222491606295693573252450725699961721520652436710886900147310101999292106393305380741779630388893606124242591302409917459786122276333936552555315395660276410942690214096642764882167318709785514880193175390834382505498712178509319729955349108967699870847929494436708483516147776162128294442520530834138118509222480826150307832322209149463203272538891322484268814933484822767344761466702285740332862600938323821656637875626711304862910486073132734797778683245298658216287033963247424092874690658420128511147106080644449842008447854946142778298753922375273344598918549860984639681913444306844512342673111036295413394342233818553821119415370798951735422654043952139296862558632039258444055384620899804227074585328598107425093499534044740646231135714093158682757479226396568254531354838462596051210113431609768091634372872998924240818216296211145334987748300225384189514218536961353390090721222119490388769144728402471338540791353614184861000895327783025545662111363784520494159885523657819485799775589024859058220994824043053641626290617468816215081664160817977651609515858520676177006710215408927424362112394931696409230856588932806361313564169880673573472824042666672742666894133705022826282629877445446340077076046094655619607813597746488503833777670274869786241358824822642789841575465616569714021220401384824307153333861695072631694269672583557161179304741232535949427439976289216123002623083346725642395302981834776937255647215471991846078473597306670950655656818813456385357962237374582575250730158571771407378650901425018339097016057628991143233347088070401288120697307125702808666707065088324139098218208970130712078215634114292237341249261060121578929553239748137094045157968586124330019578794628818331902179572376776177323865521427426906435423078299047468583786762197999617468494957852191393994413520300767430302863229832772525433711063033109765806611486089557595249242188849509315035368844845494263561228035115052939633864376055857288019304058381220113710782783427779007773671455424124580459146525018806281162783788773579150890728646372870143860784841371077948313262303836397122210411905195313909507517496842985788788033918090792918466558560435838341877388943614590779811919488271375324403524232846355916648226454267258677946837221750838320143352055600134732220164392113114617752698030524999242577635314863144882804839024989600118250542487225738301669339684667033636878641636830189065855349923714720774276784959698513829021902256506915012092847403520015796805250137612389469818248246777868436123285054530487392880154341848579314218233029907028595693788198337843461670137636598270851978429661449844911852404952723898362130861101810684997795207180418980467644455313995173862526280104057445555419398401329213565050782139701022249849605338608767795117147597298184897129130053650470457955423197209828847635379531741622700354390309954302666246098748516340019426001042689210359353609366593908283406504953744188605483600761678526782506376161089544288195502723804165058665780260444218880806916258553756638508188712709987254626411789719687615367102531380489766258962644053374573529342647327826911483652849850366130935766925897615470871000029045217736502886627086072203255697742263861509142791374893713396720718739700537947048925328512136975532354957973040345099447891045932033066263832984563675735019158917411924072657728022187466523235102805235179200858900134240975575903578572640219375459845631129952158178942203290568376199201783489970662406618299747777393844385733175651697093364172720379276835384997462502072682726144950394759264004406560031747556739474785782715031716349965696950731034505156503476842903452879150293704777347252437578350015188743523671228429286568491931710740867545746176404139831824083200161532145075948456129016136674635407134779523222217954283810633917778963018735123513180280646515659183923942716194169219401802223428648492372876423082040835430590177723557286370859510010179731787163002867562303139274895750722842811988100083850716746114847942005098389547758528429443319181011669247498184700667708376297816486238191504422367886084335597871903784429694305850958300330821954011746677042389349415857066006978334867727312528992003828875160670270590337884234531067218517554514882977056147504857467498049352408992397390952475971960117454083262518521277561738392584132139629292827849424333985441942974138604999547780857495629503404836685215088384877652523931324237054043634811592309745588711897915711985971266431713475848605317702162725082953130677330493445924299114975467429391280004568179305113554729920114567661017607835074682890011514701289580868629689423211567221877019572591819438935753766360958005475317174548041349298743834719797286088781367198970991953325212280138288445908939480094322320881467293695850327102399411092826248952319900901015788146579388190341279754704376796056993475331230817962136962724453336250313114088889575619283639279459706372427943267928160539483953152325186343985724765417053710222952793744664873073451480236447955543130136159955752816946128920968852998292937277929756373215538366875624042035664377404841991036882124132228435756673024028661827053329594360781389200245858729618516534429788892305995560849210630914373554516542328724718348507148188965624448523779300493054442631035878950013290428585211451598895572882965583114421309757234932050698908621270327248716038160811732661696427523505718093895424803214214526190478737821335568654640846372508299706659742915693603581994862138216067346164113191301300957348442137442235191864354569176142375028143783319389459603220802128559869611247460997025926969978384384927749166755368670071084482375248698817551823051760487808606074061111871827030424392202880014899948102777548689258253366199586413061561400066205230055840844906036164868084021921460969767499000004236218211941577210756765083271616531023591789488433952143246681366568846445445103826775824924531375605978644818965199362143608431753269683445397369855647540584282143838945092130696632865911935836543633855621695924148041368295845818970066830087161888988821980933622493129659337425927886454473472223307599068903655399056926839367291745074159680276246709542787004982758104459560339114296646496772253442429128525854012552630284383579799449658607620873444980017991171416523837778421251768867207191582293416345001700131533104268085679673024403620973139349822765897117793923382262759485021061226565100990008916193882946194385163866356289506440217179177708748942734819892665532247141056017797354862026473368813157502155159026433554140999777712723483419641837321450164150564696680522918669157089651546883029930137542415802098166018938482778692053642846123178165571814467991700261621398806891976566106505539506925949639313778715698465807231246235592827134260653534670650306251640574181657944104584743160992998267551064055318743029907019899947811391484782977690455486476926184278991030650445494333845552541828112217127563729822449911942434091007263733193705074029809048414980225687743929230905869562523024689390148082897749632091646505470997601465834965639729569180704046951021153721280337001521056135272975072846048218450689079133639100671005634449733223055351541783102614151399136903687902641772989304418972022862176414995546643916131074024207996476287855456301000400410596250112605646388328287655814086896243237358549226256166221006278077418722225612366979111767767858133284148239016286495992934938041971335961909823358967563558490188955054775724382526138868439179110394260419735951356308189065812958395150156028290743098051145223894455534469950426764201074372772736629814290268623106310331370412357604178251504259581722956486577076670147510432399745226920327880527170306954403915410862828045356809535562030075707744386810947360201879838216686817006457695743610214822384144251474420743654834277621525780705799932896241314183139580373640325447749641516171023004251726604045339197141893446846483799930700021507316048747729883423061912827027211778874725018361211857511625787548666526445029913122758351439262295523839696787748799448715942342898895097053013248556309321370146094527202570389496537962867208001692520854225261905603318786652757569402945030793907734258661551846785256745772122776739964233504351696381992031027011603608920552920233295331856429270871688980850484737568056282710139029961225656680072576986651827529704013829418975145296461233446394547728757623443775825731422549108367912103636269775888279098706552826928280983447484995728517718231244829709116309431070380712132135449025001524457516679525502175344516524759283739127235100476699142540197207699991105408155230972518587685608632087841365917100674691917373930375184593443564871214342150614661775049765363601560394277264563069262877271772423628266542432244048896896053208999369542804424835535882851980212820541481624606747816607817801913046490656799129909600475191871259824961695419542398248058354861072468265708077764839852755706670211522066863805797781966375533650782662165494132113667915477663648656315959298835707161761010436634563224338427042821340392659618712036493778621234584023035728759023103865129713646299987993391854190503984973204047020656212185629021964747560824045455460784043183400633275722082123789841053854379825730079139804121417082214128668513805239915752841253779472982859848162563976309680753909346748301168472389697164454979812379722765720701211818592526515952756148403957533843623085779029365503671247457230503335945675470414157684093843316455744160712825097946404107433860537823871465775331196662319331883472069090414228445309335969704653953860243491230198178565040437625174292948045366659829247951903792581818194514897773688930775231720960958214264640394847855502722247574666909733676759458883551424369533186862053015703911331781965463059004488293314652477061006466855105593601161441318803386809166539620218847084393828483209825604302383104217112163645042787353752295156437010989574815825393512117928380705255753994580673670419827976399957163804959548241013762672297304251419040775601849577235594275156654033537841540692677052032315139023021460367319124107713009180441680078967726121727283690263912866639899506232162965257823942260646266656134537791669221449043615177643282154346062455379051884360905234602327356081530115773793016135747600014712383786695493413021688603776591967609564848849106910133121738017161185148068163257237390110890927897333132609065153523744630035434178882134536157652668306979734222894193031410698231452866968743263430087989189414331300464779744073194292415501134686170144447509801072622667310553406071167447072975447857296384504791456618397652353415300429182529728571320776128858390694405772452605976765757060422632101680156892588808308422495141786122729662349016164496202316443048044971380109764933690693352070348749059259741980178695873728924974685625317499505619066919218730233778089868840987099740228890412367356056757475712640915448341419917225548070853466567874909338281084979676347535254725922868232141222055136680391432325587044943036091776696039343294379800179433721107753971655883481846721696910059499496499734487628194143476303655676918802542435414464457572135868303909154518847016965430247797709154909239324367596950539053077054310589223030618421816578512721214014616767299279288075521389574780765916901172639927749266578059856617282258784089059146135025675723354168714089691759553717811671860645625793250785391219008399879648581918290460441484675634314072738137138847594963647879268548083218505957540532222177687066672786676294246095729420584217587574816032446050227080839734500327635652168437467462705763694222252245968400251625654992227814566315979469181719842600858779657225788125292539525919025603499347599640651815587313021092360434469345814945722370160026782445351147548118164029762150684956175639864300074327507857882710921876228027644768101440819086633679820902141614278878101690704521013966424962573640570251419171817367978498668343052515982394780854282847376659333858668118528483887133855599870030295017369399846562743950131330894096375878150452884398054551775550661891832856110275543934533493197821689464760925257878328025151007456481808427585675248684531322909571938495233737303611608380991086580279561348523367182846377449850072160934966225688572327346553285956151400561223986284353756836081344522591764518314093014267061615774404250902366566220923769843647077456044041911704665311195033586093526375446678598807366351678983423228718661639717875036624096787006947105793226617572426253124933003807987660256716948149894611503072600887035758108773072318981056605377357051818655468923228435354773866580957191652298394610912337743437466255568449995799378634212053033897214857942642635077507159750821780778491440702886590212271228410097029759527989698380248741605208325848328701610799958938539914828976028928093795131563287410436553121252082290709456798746251812221933287099486564632868869806582745712851467781887222261182317201074702941305031100855784813617878600367768502020343382390096813668312131113435971383787559657764689960580358501232220521787359958866291653944284537428682229621455539401915962288944025001661683789637232925557837676940808967900624356078729190002968641482334910421784465960208832524997837699447789835301485518480627940840263692852804369056315892101880825131168994965536398896879938732246335871246764041326252779622437845422627463587539144817846328596375315189871643389592236695718561714773112457966468857444364284647445461035720326569570760759692378919030856622035202256303748725388544224543347482519840821435623649391999240296525978024466029409612932755515402685346478613354937768640424998565331174253399278492570865025177401659435930952953186684522752216280951081728734735932862396602444743556257754460169974211385879905884390457230989959165624538967778208115811126476718694988222931971502628009647339895176226325750612749778619715217566628756231943270019940468878085715743779936480301173342703006194119889349515883479500700756944157941985969334357844642369433816323623723645790594667621761762833783034407349303346185570534991053140820255333054513997435583733722921167000525110189353557635205990462883186448243767377502849466727653310192404978601437203462778908506842841170337269361328196647191404896606967530853528183114542506986346445615196106153995792246560978227777627046793003304715652785876819327197207926175945663528984940291463543360756452483102492969759122899289490445073716886884268479393121893789131934963593433527279990055190385134541203146659385924620982835264618602630252082086402881651771697342043018156722981756190035213461735972852492973637482461023363016590592517378069544277498171111142423358746900642687216525778808968313461968941207932727582049988347019050265921560327621301996579441637388157098661977348063092003978120241569987858537016879755085615821287365916033875827765536659487592242921264137710970132288046075979456182187302330201615640714636024126817116435483039589754595055078213592477896586573227497424210595367603953704806790684204121467977464184723182798944288371318350001518706018257028107449084883337975596213633789205093400071432099006111130316170727004249091361292646872979410941107709742801362613367936913914593173122037712404912003273542407127838622740067562819999027103234408405791926991716929027992140055702993801996613067549177207747703440757624910054947931415338545029537177537247494314364037024750614344157622221378713957680892327654463950437267511749312942026760913689581339805795337963859687296880005238362164596270656669312512634897274458754231020327179912824128529544052611470509680181240974619390661327185554039695813705972528356451237032286578988599700085953264707422949234649459750698619558097128007081649254287679877872629530378339628097697041298394537031864055359164299134067955644285425314585501371004352272760653841284681599722579242551685507852257489204452350033465613739832101984538847550412488138293736393795782929110892573380605512006781480775253354983458912612680669732755207842374912849450427117697547057504551247921487944268960592367547801298386482790595439018917321566800781976854925573588428659235133001200332369714402811908778522987647215665454160774999769925402220478617223591007977011534986738834267313392642479547839696925419819419646382748713689662426400177879620446769403670577753274686131469733679754116718582979888455951049193010045028410081924019513306856611827299029656578158557625844047717286098944973361054851931688985120760210987013043153008274391086046996097426760268400939119829466350653424121913910102393251178286495370135349696471847576069365291856447134209232025731873672125635340031409175015567640868223291738357220503212359609313631636236222127004920927319668631579043119957591210837837824024935927285971333519631814355550745436708530615614987034767445464079983633987327914741605714484828013548453914523061290111010925973982541475572927024465555825771189291703419473589832441422077404665826415880295714790646628598347418537101873275127825226156795984056698534067826919108607521416320590355295461456342438134959028356858450991770873182205384651809639487675211561429682681638688584651574567976688450988239147367244211054691384566849546875534698023344598756474599899600280916852663118572705333626998899070100119745765222129743021211072585393924842009888594243743826901801929479315313092345410614077452569328168184639422087353968882711531830580961640950500970704624847763628644951927728397147251549094489699493447676832278196644863829164409181749610273510332236522405419414090607239067724224848786143555255256768742769932594489425468402656320372445536845999004732271099435681736978158063568784271615616815731344042636384147756123619316974423417008439229648266422280949742722230452541786053828950449284979158190334481540332571061618195746649846817135436586855192380793043340949713560866827713265867427593688843192876314770377844173228904685834008308433581476400942198911140028329366499391628157381854019367951531291240017028676601296783663675468501101587058652344530654054681541282109051119530044958506775287918345059470440012129097359278141283861916370506969747447653417007087794892440115588446692601742569490299030458657082221144936792361062139624990774838477336815399126269709953103234689978039273030170050472816735346206043229971491341544726638527198920243818299761794297220960451263191739703210294876975672014223527174602123687972686098105473472368112834998988688993709657986672253894340870365863038046021948500451056913199730500778829058649090322719292530228756360924789621818825369814220876314003760228377075866056397643282391366708097081991490201785379846218674418738932975466461180013793165488372863324185340439990117189125608227939115316311223559796255114255859152110416240036809092926590867200189350914733728198260898100703219394731875233836675671742681069503135057474313580127087035335809672006115833829078562647983663719561127435486848086004218002749279680915224656865315730584162821929436925166516988322611771036732313513030101032330957965641421454461259707696408012827261631642205509544080337992824145040363704207583344675592486240567449734137740646204271991198303642332826346359953398279688385723957542652484005050379797870187108195899117853471558697477322990753589195862079586686772132797625629499477796072571428687684760380163444718627606869400742860721102725874946362758239692696099882488406423453191737711892080910099441505671432485304890319600024997857132017754470325916971176127391164478714930155013784016656710899913665420467038600170712815720183698908764020477097584148434499082319363257697707290917314968954451311151427115007763671517056443738081778842210596127545731299591145146750805248614713738379997973615592176776819551210506309973019970042963349094726745188419083732912123551874994013188523814815754677188593169883573977302509367707778461652127025139099664979477350404693372880970375179345755272472893104510664908505981784890789123692337947447678452679240907361000576068280144526832357605501076099598174619615161047928526319847922088706649764023804090151473099131468759739190910614747585558807082800168201882926019592850690009659109779322156355334805753238060173130832035357222747606579575643895177714673826266753354502127232766324828897986222015079252752716841134828472494205474777208993189738141165127367620268279495561973849189761207926898285057575598596279078308187483739635231998304455878076077624718786019988917242700267410311415415335671919918902248740663691553881249290579852458184777729062459627150399344799692995972499467874958149579874583190900249365457436095949695255058971230053937383126076115893209733496967700173814079411171213895712271623681937542653499760696260733670828380129610698313663173145030934999063470866465237504636117508787865262523125911529386425197354854822733224003715186361528766732482559358163615122933081782216793572634114182572954073074933093334384720571942067298144795507759915129740670840280021969378579442316477379476229239131099725831288694606600565248192679919926626814374996412991597009725974606270729481498603877557930622958812204522870534991549433923775951161168938381535021978861964097728944859103479154463795787691450979815686881992329838190429334365907204721453921523777911577623922616865538311900474492526470809611148894566883649876925576886481594075094284925328965367103843034790821656944182321718093576677542127196572713219140827711868349723716691841254231624661185017564194218927278906067422928644089906781812735464112153610866336504093512726292130827967523527485258348993093078048841887946037746910686823074122857124702590983901873858741248678183343921545488566729998945035702050233657208355357140045398186351330440343380096318494670001569446462952974963958601757269036976511815984160664063428587896918209694516712949357651492003164104145892296842671553929605171746619659230290512837383694287956556355184874379402018261806532098016780435358041562605312544555375923106938769468164841795866569914853513808374513287075334711598044509849628546951401581716935551641154208701876677375701225803305836573415660181224919844438013174595239539896430932325664187036194471361342932604340804897543035193218564177377219065446395671195649894331441930309788362558914243329618173520417664070972006765535512755603842220363302338329568099666400862921970065052962834119392562503084403177672079425108350215403169083429276401897056477311540618119151921714715002538613409858454965108395134440677540332588486113114225557122413523190374593902678048783843872782551121187737438336243586598594396474216942397181243138587293753238246433870455255501633981589258244869584924796616475143341264884708485129973155367948807571412144626732921820393971452049295056387502648407290247298747931922965136173637064244233805764613072936222684483743440945171190052444711138932931053958367089652520230410999806746727014383965552078417445249510439089093221488971287367259392279723515942954499886239229916197643384799171327328091939907209564823325472214936871694791921709819193508087801755135511425903317762748694803336016313059598728915865290352679381391293131065975381879568231237057343468056921167558391398953819758835398230048471385469492139138099331878557755267410563111072734797314189762522815152870736868143653784727622702735838273905974099807942451567081818577804485705286668074244319150710202961127638479242519887892964679033121848986646020703383804823088722095191811510401709157911378857630338608421779881205332696830315927671036767212463077844759933182672724510522105746226801576328919243925783766449016650742795150000733595967014929037342562187608325463141142100004611459745042267894311571067904701818811130930377464772554828583675750710311958444949243385868392803582166794142305592377159486756851393500965547508338832975255470138674541543233772295602555356648781366285500129719614572933213019219047363994745470882654991892676640660274744979337983724029656612778429971637687600785031690224485340916358293453732305478834173573917186492155344408138956969692524719696612542752264312768004875146436764914494006022865440257674211929660757527686207725352441258260555392654301688427952091168501481108787543999963616411336958879715643841980211450887888621613566637035887630212396277140336951209644998808708843141546190940559285293896495898304318694302772423399862238602028427190239657389740045486626010163814441827876500529466142707588948663001859782336447391604880408888189120922059596041229391440660058988216319418609427650761299259798774322995247024581048988987361047469286898534686184205702878044793499618823758409390064103191756239796253117449797293421608570309238973915313222267785514140772033150168100836413485210531907701192840006889747605162046749557503729105612398085249059917769817567627490276711120074202408737130559342404986910636887718826837406302050870297716231400344000484191133498327366121469843276944166901300214198427834895995809832552461688618221571052401815230995577156127953530354014008730008253928006293001044955258518288104317014850167002591906957418811406235255133524613334502945709721048147471429158029069047620525018191685225831216440947453676417021018450453811017677734680279951330149093996770670859287515719993513952401125066816563902290142739498861044530723141032588267183360904063794286264200333877786519337251602828000712419679174784645718871591942041054501592584391372221351651021054580706167145790975714500509467224505328091070173377553507103459868559859039000865510382750251433100514459694487983955610079869992569193423297071240348106649522391524832041511264315696068735252448748040379332596883748165352341861186097803511000577585095541676038187929519546466351740034076506194661470577484721901252696902894287940314331493132391594905570660380585663215340765181217928057814555995135895282731845345552546840190019650401847992891334834099351565099080437534256423902990715449466417838700733301479643066019775384716914437438050406134702901599918921969830402875244318970878934337035513753349371812641724849914742703422391358240684006324172076894471619114925837492263536260680960702733703179468701732612613571575564570461262127745971661559040930173949656667861387551453251617777273964162088191267368513119678512563121917361838121027316338986022308420867285151651211610203045419443785686977717875047712823665490698290176204746423118466702552865796189286757273273427845388615342211675271868316655772652510885343547719946526316752398551070462341876115742669041802948600209859339247896681910883325320477618366139543988904153280933655521384487973651843121330639020612420678236897126805635840669401008119950642932870046685076544265987183610633260681668137039822081394674063357231575092046549460024218703749800600761400622773170143649272765634981160354195542899244210460864850880836879381309072562264102439398079465464701885164153609240380918143452105449213197340226668892505671681437644583216348336504180970282051026282374246612880762322426742136657774100648123233982703418933856103481340072664068943642953759544504008370961209052632859840719358318417612683812071937707623757121407124142048582588973760155595694836566327769523483251048080917733072634786835925429616801742094893544815833828195450149355942875674860553770712998812787001364341960818388568211946120374342281785391532915553806868716727383490180072907425123422460198788558641245513177942680174771986430679065499409458096194916280172170968590241946180333652142887583075628150308075658584732903027062762350714438554206618777935824999672608363855981707475802318075836592404129317005097610130460452512462741918890849318828638892798054825148941202000694044803470815265608184815017436982255295710025082898793546155445744614044793169021159574848610126890160932445055805958390630378941442199963607951080225135933406420991810117611258506428435779261801397778251433013330760805626225951822357714797710642101550324457043214491134668765470476214855807872184863423159516676522145289095846366722446327565950512510447106707403484068766995768884733142361594834831703667535647844868223872890476368991089207518817475101229720759749920226324088353144557655999592346021976289185630362850126807254362480325111328263123061588668732920055408386829950165353749580689640225401844378014638893561902325277888114892278592954871882864038809368256135325272703752083128077485292254436824782228344140076203300114954239086176393630817968179517274135172533104049380079128954928481580816082164194958676626110661481558005585937286780552019427855892115517864171539835533293514304783199256875136866823366379423175405326631305984415412910595642945465963814961884052358634153212242994803478202365231429815240177963050296161730829801558708695053562925396250624812352014314231059971476748164486730679660576646922360185396616784579267655205103298273731580176753424897808317044816986698599067442628681359977190914967859489043001027930251410629274057421180706576638184595908263637760869218215230690419854819381699733719754179956571848041469558333536867077691196463275501194947819322347144602326154338968182578820900556470564566969723381371906403998904952124057604048068427040626463689589675293712608023105618919883446100113192014747448315734660930213074078784629680984023012283872285713006641596271330214405429221722439066743045663503836250850823813475108544771585938303540375694501614454858546468016377613310773945610252937370818043290145278521507032530381947544542722545148635743062321762618293276907131829174455126135070169638373282347702942488046743830770314358331638920629334143571207155664254202697307942424793383650592656759585602299272890149368930725620125897765263548597282416070351217915229871134147841171472560188947389078975759496706091729986350564361550176242207623441748317809499798301315569651319800663622349803367280259889792711057474252266713294641634701128711609544801509268010007786956059558724208530308270491305559706379680230136252900702287341519918064318375252914887376437336305144848326925013619138931502205672307597981783651425707080897891432960583858436216318592396237495165357739559731733357068978352658540225656607562883915901383986918795985791793779766884849401183239106337620632054285607068023766554123103978191033422776627430185668293564058133607530384301051301081586057800286781534882286782681222588122730948987047847525150849329282301966331394374833405144520341263881907008828387166855625767169988580616685531655385662082276547063766791616067143571394369798177877464902406776916513500224627503070359973419562705929772379774190950165976818386315761192037003163038652171971736349191763317062990060196768156203788240801027377667959687157027109865688570808599382621425610165234315927970665351549378855101783500073446216665072440760464529000943270576476372684326380784006544450122488397777850649025792357967363301799751040320382245786952283174948591670527648996927927403219039572506390018062258485349540933903582885987346411121730501056812409860233363399363350115782224586860666157440655076776535226181449955326941557706173753104752815330338190510101622749208293601292237537677346377841475627679181526464175443280326801750278234285087626663146402074410974965501496877485030739005105142042233285001108485328158372401597468051473164824812040334801058127920691339161600817664516246151825577631944863348195917934971552501911968613779734343758030114007881236684978711289117713095931676211852960368777927691637227612413360466124035530291481849203734429828480868047071121647770620683711078662914376988674868338779362606120989334189411487215975850950836375020812057107190504104231065137119979767203195735298397843217467597675997886061365013087928891675472009405234168366114952857932863183288569441319481030746077420805607595957116293656370618769268776962147330677401392424565406270777846135212829760982305834047944056886165195214779078090467669853710242326818601706317764946663311548851552120114480592618157225423478438553903199386442624054101433355400153427127342793851543293126263922239219259215825970331302268289259577112927677091880528683315938039775733875193052252211464687304801820944273551550009078377235863569513439089460512834834175675327007912989515298074059273949602388885102069728614422383260451155962416704405985003704256494121921031827100382221604359966717279119371091638805061619287693731332278326535738040858933204781299424855833454375725039121908137415084549080704976937344272233137369797385255129766883508251978126933015831540883509710924475577208205034633630679446688035323339794673464249133418187300194467057296244561158147387213467473359028468988115598379032043126813053745916232017437350909030986160337298513189807326697099484104077734446333237419789105663826524327261125124695093609676019749509487918284122999936640244153566916834511085310268074747199839633621812489724240636295116463743500359109646475490743418462225521008089862985876746299105566657685221546765403052293003907943132934485934016741749748237493568865912334925094139242137928024648046831130382597040511278421752065886096468658563806064307747169715405926550140194132726287967855092659813728416057550165120033541401417619500248515303524514615715141594135675357429258971274287277634368092131659599020918791531102762670593134646450455679742267510738308823983106212396704312691232272208336087246042880552322558535965649306410328191190378167869456880255487811753315432588240378075299845324447654113073292110231054790779034935260830582061912048415836669964176105933809321123821649713189984021750690285375235488462636901607006434555954259325293474516496775062677192647561114805172483152709259701752601465232550920736453862974162940211449316327793928215008653086974593654995090653639882319576378000326972128869438407304586989683024566326714283528595441850926645936266717517320685934883574291984102965494799044547571291609732505352360658597999146691471756808191174306171618249602041936643183239055832436662255542526173322283208188945166129266492965827272972399682078177115610171755741839367964998543729896877717632691820247177058353330184695370595802967169836157249583668819322693951211153129904325164010558852602987426486888038318943733574192361482638672720913181275042021333893862682455775077232324783914948550966534210119112540529895670627801495324266579182430721633487385384057329094764745901872343173499583503400547879171771623809100508100619888704046369203554004772873362353287807899679332642009761488403720446665281963489156887219869446094065257676269253791400668119588283984344126998581054294073137508383176407776444674813111137537805354269900691996714754081372515251797659909160080851302770441878037072853697783296214045728182033624903178279808490427358303231947801804331249608672537784577359456568133676419654546078642949480037967430903802157793126626176164269948731663191991279964631077946646832426280854227147143473487859499744401020075501616758026475851893321407056770171333966851454106634086476537097773999113742726845585715816558228583659856079081748194564581710860290492781805224727991160740156473228184661842805684684996527728178612633537559420736736929710987951094119610789267847820799670789233798635405860608777365183633400261710759539906820835712324325196751055260601536979219144636611831930786288678898214516892531588129641913895939709488032811116333288005695952267383680598316813068503252118086555388065004548035898542157995581179238300690848160798987786879622875171338212635500261274241980867434578809472550524951881153929479263844790372303958075150714242496932046093816445083733437425792044660862123966604122850532110524372729438307339860263077979925567841612328415450080165817436279711994676156788554932528582598950448649742207083388736248470245212833639025242980848166158480911911215461558066476219032720301069636289664855780790994207990648098168244248038017149297123587966934752361488239137660427239682858699625034435919454990053262795862503298156234508838614967008254295636056961674350931060121737699126125098242671753587043036960349298229711107536800366117434997884602910172438391645841446010916711212027658956420448663024509440247911035791695464398659390897217152906542620801446996199168147583808115659112010470666294081215614515701107145683536779982157266744977164486339569571610422880991584714208960926048041687555651991970820215587856603740811074596568026776971115885288955478175979739475256852633253063502669852953157413268029862820284382481730880292469785184198559243191209516142440579215471936313053023979551687015918883925604914315431447921098573461599278045906162270662060036994531370049260721879569342121747420544676738484437426306783492537405227096761641933344801073304503249154409722948771301301188103123952203723840297578270998792722012560340695889285786550646698880200527233222002165793161289795807494070644713518620932972900546169081554415678147316553985598283297157093929534335911197592030565380875544201516196184278069959306984121664286507148846249248915712274836643525376435126413391134248214044976328830032777062873739655500979526555414066766491170013966244350810600739773243950329162042660742007326108239819661312955732182920320416360234448586720269747232731752849580634331113859482432612618936451846848413473454907192691608048916798386976316794726248098208505304643191923461075556371248669324926293778249884452532358220309864704877736094771170006036656885830075497167660674081324585163317838914120967674707492874175191717127646020041596662699762045288572815068888692491697351716891209433520886830492731981627792711174640542959334917754728498172569430687197418312812569775028199434642664506935566808969213105675051044540815610157852242851131852915244907438199541418868221410424684122435703825246451141209349038098615066555772034547496391335445325215880094494486932515364102018959457082641921300648208396938731592320567106277454977416817964118622433094107476025846197916925591393285516694423464939496120624334959226355292164132102621106749848015260298050068748733280044574253258843745777670646891383419881597538771806698840090538031422002743718127336417420498970641971566139531253694888432982122204560599253073545604676952785025434152052509157801090885683555784773548247682575844444191840935482663321025908940969922611198501931369144653279567956557735218960456263207074823554281338115442501475024055735576769397112364592617367205421386014024152608879454013508008298020560861690267271304212323021741645006764950203119166433881015390809626607808142693481592096213515653810725143746322061285305549973757395903088211033777981743820638562235748344919895558815763807659334875075134236902145545719455235873104236912495683345030962569083897531731558618894912293194154415682254630286217368442772977881697838780302184935224705986123811455119328684794025873006326890642515871282423418952512466644743691388785568929419711303025441419817562084568026049354136280147009562840090143183081786678672886795586883104034664468802175073348591760589122543816227078372553130415887807328661015479257810253993727470903084627692720636659174606685376872863506633036458387961145628804261529343625149661901278535811420621280126519179733858296231753668532538494741006158955756802089402367585502256156451481267004106009057837582387939264026139173445579053978672348745651629540168877073229398934437627629238056676661740887225038309745308088164776343949845037975921498167305898820931210601691538674505933495233252642595619891524224725355393379864492602397224602436512449755300443599359484508597359587078183414654993856816691979369947231971681634820371155458192862048013843465133041356022562305047309056472767616174030608089227195640201354830956632753595716469275417853293369897136646307333511856396558363656543631428616249905610816461173681739077437558131540026418876424630724174049150369975725316671807877975990356340546187282895618563551015687355373015996173676895479043707224668760214772623160367524818952929714528279757951532355661390052407863522766620157661743399323374449801018500807695331325580179434652178163530682811643112287226591927635681006393648931396232565525899068375899313870306660609111235089541134677996670440166385194672986799998913404511190187021643790210356276981576863030763316243068489580017586549860620453055554430088952700103136415381217406225505942488763212236018226864717569872323515140373890236523979371507797160746809878815233633476896999613400754629680100416596145086741462043500788652195396983280192479064461418087216542697403128967084470418264909934740043162901028283988908521234172800733521719311970827908831092656565932464012427809776594763384723614647969629527672245438820711014296652531226070880846612254384111266711857670591360481461127482009967836645744376947260752562349749678065569684888071932708176390053439442065710873256060740457296435039455269216075372554145423781258930510511114577441816323740391333550293569254383354064054049657313574663287612554308133486796760218795246460587078205507064253792912832526227407960765631993142977083577444713963605163969468538271466477881316213067484194936366771548435409607434831330931132596923059709401061755954799557603519096296089796538374155422904367013838014314929224322849507949978602817856831966422843830630696662344985750744571498368747616344322940722731609508078142698720058815164817861364582533125706559715594532535928546229332340626847170882770666424277663963404993547969105470204943800216047776695969668855479469162825629043221076604105753270113447742575947154928488261118883486657820861955859384505041971163760618376992887607568641392643042988069716030627717142077316113743770395469410027010093541077714247597513618746543384906382659481891760317047737581472741594661130038252946014565705932710647687694276691034603473337509620351499047698649089146379785461808241129653769579077531388615073196451947137493304018640842732846758228752141293794844503807686882469169606402526741030270526981098304866061318736412309858727959845507191049577207205584635727504351174423191672731699855158198271000903108298782751115427549034883585778983039219440212719219688607835892550004814773015918230286862756401302217158846233235060987475639960099121308290951451237712759078893239354169132560397867309233329367187122929876022834085785409889019976501992611003611842170250696190412482946773117398620431223067470373019512944450138384025201182012561799396769056351091296950652518034676904154042047484926782746321686579746117525265157151117750201093199170670975311889876303908236501697814786824605771340404025082552482333605714387205831426814547644426362019277328674932305452099352434553065711227253548957845237372443797313929624100989199864523617797597318383037805764438193257731292260064132192046586471927784509309740384647928451529260564795204380329783631343142530185002718442206090592056390559843600532906759704587756797017416336330558358173435861760040643950490041026119284250581670613703807155354806398495070310440281641020291568207242455274524068526485272734657343642167106065665118015606240106974382098951214110041649167168305378634947732575679444634833705725029771357248948524765666805107898883022064183907035444160899775812741167224787022046061344783850338394120002493703758434714648529818139375452350320672819436335634806871610165450306581563597876202796653174926024374854408457338089820476556267629397257200731167950333735352963346837717830828114611970235813571215911070506203518165175668940979484326207571093239847277969188656021885783446963937915350438377860280451145703995529347617028132465404007010082664449401585243913790365841355709782534508848257726806374867971623944617491762693621406602474120808279913122245484450550018187215846964366684930183092638293767672859779908739468164255260729385738289036119344490195882985871992143687266650597853794144568200786157765344839913836838378740095632378003649229223412191997367960723549439121765440739872204612307734563080119916560054209663287148269730180001887851912964457206619018831339522517452370459386724789117101572450801955778029200937947547855501287896575621907394966113656773259328790266322988126894410465502707525100928593276101897802514435900361322040726888994221091011925602271318685395965207914046191408476912530592790690761319699495960874461862611050532772896624958545861161836301531048726296929740391951637635518234387937559392123826533889356926209067067588399953806540800996807732779166877988471790481639665338258320815616704060543673049878446682484694958893102296285898801604674249320603881673356076289625632238801797728673076654820622990434632292348777414222053175845417347980707333905675741971086521868796322501071349101816098761248758510300336702187793526490676256956698864331310980377742307093824028215366567870734171162381039671056579755322882471542821904660167847484991308532256853196097071400725259534355127446919637220450514793380901899734625904373424896773541557638502952182112540081063994318157401665089517858235637864336393994719895864484592955651446337890005716942913006328734357065404374590020404805103147029769380240418203303831198592750981496527093951901195677951732230264176214277587039270696520196377733446171503147461668027253870812783721479278263813291330933110040666565579715273752000737656039199648926308299147934295494516057917776164097215656888800066571628559720537130234514629579391221684476524990666126856122499238259185292552729144864826375859504975649977037791023573745119441108145163184756122591180864610509183494938017324018584226828933578377405427326281243478617955691354046031248639675497718283936660968181429473431773265430764698194656134365401403417649630663095067367237922209709059234040915418488664361232385405395047080395241261375701532106243669606798148811287300593919281489953009010186504108414098145901718301611093097089556753819746648933260502196403965753833214184921469527116598071276982633818021478744381300148592285854051296206224839274075055307499442744503611299320135237186545596771655102051198029691017743060070033046538248923023899571796055506755087832299599425311713511161323161548172094750825495623732061142559805837468410319605565975340515962094261103933219078014126890132462363116021666611174654649326680458719182821710849927143989263587330551796902894135556686918677968096071196506688219905030694624099829385053907960971715612330130421291928124052825184167461467950112624062174392440605520600928119651424873456606692735082358188672152970782635871971575882076591631657192612758029387082748278137605518889155758404152946558271011168435223949277967384437421821920519663583445194337417324401158935458161488612189582118296962290995965101139885890351771011995890154022967808313548915941882492649567005780821704886905838501710887740189789624281047107001610975790656094306667157424112120209280729759303618131167816815928495185528820071420900328378521187928491171483507050393934400156907120330469967008561556804776406658343771027975997021992017932866680965606997697706547161540289922642588071902006911316258263900898491565887083103866069722495897190536231570904259313751231713001535642843480167116415410884084924651040596797227936304504410996903785897902891987055824629541053993999716402554986344684970158909670550320395609183442944090254762950513354118583158326388596198905436888495221387568264465925817177652016344041911630075469761390788243383389396627855483787635510391794475447792302147372050775826071351979321313230530704611692891025868893556738506282660514879881341370665409549579845014356338606831909304484292874929549648180792081931194236078336761991040530415007873913353353879955570712788487169484810878846637171038034904741619794830189586583014366396694743753455196016737001656199740268982524053109244136836778023591482009642337098663050990250396356704631578753929639739591729288278089228425156548948862232026659141294432590054077910891805608976636319165270226020692125544764559507621700177691696552313327408616791586042221621899485099430991843844811567904670316749918718504283295123068728893236328367841904777762411772129618225822378482810841480335941522711389320715343054951574671047331115904353951130506244969438158901469390936713015210856362809622725386695128559746086890679087697430123257335989421920452373723948327708247118207140320032862441081098944124648632716537925717190756007989510812696051637666650405202639441738391875643421419296940167930427583668773148455743647916741339290921148241734749930611460056385276523165356347047383715217447553816432443238891369261549895045440046975690296136526877750668061042516358474161563042275428929536139218206538408095614849619316117864396033321511973921501337668068826395304165661587113395553469680900833257424719533313625053565748025302753304056223700803484264025024217614491507792180383514251601984834386412734226264255525642343149104640754059821200597025674081818916205029661805754139779241400403083674931304554443904815928350398489266957288605289582092074063481589594159936693128621557348861339704774872545780780568161762986497347322969038879514869622266650244158962641517062232872542924692564036759563807548940331254085658091837409516249214663463519023062147679463010507630589385050072131807734429863673021941030677985190795111185179759841465103681338066322741687450434964871814584652822737253729455897048031216397655188314175062357783146455505247240361233934550529444343916965534562221145847540932407202480551628606275639295256793236271715636562562892260695997031566820516598180966403697035200382763525425590945867421571071952028122557309940884658256769947399391064542488505693119099147231939138444323685354900701107548522577625889114246364636009083449467808887608126388720567975124454434156509258410679680378067499608957492978666509923745600217155323346716840538141948398280125055178605625397044401482247062375956986771130217114886603498078005569352719967012500396561807443581788645185753386051604011313715586692814352559067543018905859193848571816617363138443470454391823743526624500647755847573478892757320524412766992436605265710463874292369586565092161222112285588497939370534488506478355649020127249585310175233356852819298910309975191020415030654992400454285552614305403402746676650164500692197921887233809528658017365627533199373173830749985113775121102261786540394897273883205738184467504172087189871532834446022169135731119834355697257909544132340582018700107568788019566035755088838511149158134107386063464352168223535624499166739327411224356147009471928255672196692503208132917650465022080958289123297052230370755761500448108921272519894254791187585125532467399523204570476647174613358804932610091783862490068581703319315868488205487193388309845810813254099415210187544567989427316000390374201621829821555322747550105339859913385639584922412999565573151423918165856357834043676503636097007548790158248321377482089671381312742381060138750814628758603239303437017971985394825030178523972364926208763239482818433597127158920946613291203208158339164772701222085395839400007069002152806848516256486953148146430071965435735689235273820103169829764734979698680786409351677299701450324406553856358557833848534737772783025090297851728975085388580528563164325637395407327569264336992902117226734406974801745666248866934142353869273424333503306519934273776639835136579787903189979517055552148720653178591268954996042842706603821458703474555824119045577085245462507483632260159982650676553789708554209341051711046260611735637180250369402184361818372009848561053956581932056798378783274705462281931960968268768304391258074180334182024102988232894403464818943940102438837346943511033234454997256481520530578144980440392151193441070040197725935563777730806926300679701485928496214003020005910723114273632714577866103952177311193611043553801921546165073750766280304730365125939973508610361330143963161428480420032336624819348388574582842172387947057588890903017161353514773653441968510356403759668825851522453481896343485457111940949322944168390824336808441643533260900202605539613264879701131769611744757686808927541040919466167531834789212593583317878561517815248949494918613066842172798490851422095683604503069134753124699961180315420642585396909969544843117642236001750809544314882706961583579842658632332801815282880476686304096343126164226571417251170611919395675465968340542766347675576676086974224549533854967041776671628057340527515499206311833580841337169261697324132769426725964165118676554488170774013012842440883918652167877994855784092840742064936663507125052882893974620792457874422431726931434427419624755790995291164445811510405330132396424864373908865752946971007687841541676751152014039623019737955638037296134255147051290289731663635122165420718079429352042305294934648077190044465503999524937036691675069365830657597285771012983395703843923780821947539689366512345136255067811606045553554831785480058746252883658313784307079525712339803487492049651765360180603620214048654662540462006050991045780702881115181444371220241361806242431180489463156805828187834457887796921559986302617162439534856170387252121129290725967374344862606288858177042245216309685825567945061057564624678414806759576766547659057134311231851041196987960712589907770708633518107329016990676908417014660070553921990982227349362190383510327659407344257526065557437978854073776473240051703762694346906140879784232624571807038906571132349597420186456172398071551493552710237747412970675674011316648210394715365575468069842830710717616542817909680418506095312204572133981647562326590773083412825646882389549977343176467137715680986148589027507501407648283156597591878377581216716405940510476060772911217503896425532757812135443278701129603137477549730208436227493530536668807221893399449392794152142853264645063331967421661902057149700644085541816491898975804945085691691747789401666543261917779044891869758112033752126399060308360896095206343231877767361413256402432082343931845131944151956312936894169760234756953254888642270241367232657157203752149462926931128914637196084890205963041395114691961490855135965701834001413391032266771990312637870993081060037534376791447502740890519961515343377894157356471109212443524184151091270075874361543746111151485983877996257600423711898830233630586945709934343864226650632865370321617523245413405679163653762153644472158690157442601982297381906691344283739938620326785856937681383355860184842838353064063447389074894350859245821492377442163329313800893805696721693163875356440912781751295502357353115600831593470687452951120348128033134043001765676376583664357367573762161281658029301965759550181938238643499352566594803848960576642358667066152619185135037425813334722044236455236864636920828323167268179829751751159844457239338558960199077686422071863266628280147213532231772838157287062190887094049294391460281141960926762717222396703233579003226776504944413048817162115891399867564334063356201666834155653083908475308064361423973526457442876891844799768741782163258058823057531402988006644748513934703059266048477687234018264778751623382993138575554383301895282856368051447714446190626949451164120076571035722191924785465333764875261923859285869697649699650205506387118649607742283083240580375812491183318985825103597235756002194398096959526978402600890329339523503370660637386622524365700052658755685556383667894679149254322497504630427644844015631322178616506447249229379751192145663729020729479170124690802115516586179250702487175067927579177137467826537581037559833508294533750413934433597975142072501295532618713280869523855465178661972309654082659141286195946312545450157395998013937689584964312088997182322278542814195285054903428215949513839994293130063264036051182692285518245721343317692209742473847516742870388084102868061455222891498626300635441513046332050003864343275026040620617805319799000935744424192261698525454995491379587519123762576333165146512132520639181529322332751928025678177546354340782499709687315226530168235200914612358376468775036172739688338008998598638669465599721327143103894715787525056422066427013437466525170430269559291260531677034894741335689270810736345968107952935246215965203976478908804444278838917501866097551972049997328212313895175695908480206787844507188898172007333944337724510248145340919740466977602062656165611037870935357071645987634628052942046209859118235035526737581477357092103912806912912569966674413969925784927819858259710277987125549743587318673482909589350475734960154584980411342970180639118864900431436298666431690815451714839892828272344353012354837178586561661797068759543907620755616031775693380949855815137592654189881047059483982237637926997245610126586514617214022590870368133600076541497965292144175417186230922870471280344173694522960108605362954557572496930210575676131572813049017017566937171326838770104465065987390572838989914335455993859089221849081162165439685344830977951176453970063800096342266252605827707326747315185178478698735383683201930477835152028800231196978469446190945230174387550866992539807843002076344942918206853934528120036600378410261107936903596871608770226876513532119188450675337640898722616964168043092023171814108226619726425991826524101089420397418243344966183713369364138749202210188151177318568560669358734767609580573178877079485501736853126683231806225425415636324563669097928807157078702530937425939543656999641617139359185488176492699747428665346381678787078769453578749632387757933286705162846134556719726894515417607611252525433612248673589766321262976466399014556353630686157298822250382144752133980765053742440716673056733773620498891576929748011642041732343430924259909645055058895054908114284817633862994841011884542418891957197190205020700676819885063559819190590702788225523811592952755298121424390275174392178616967632656793479208791333604790089069266388037172285977074895341169244372953899891745865580106559391367004331538524468645878305032403259188022603664139200795445122374148037132066994805608724089516701445013590719274918748185136333118183792509895468008115036583181754156547742125101168667737386438881978682197032072718610526406044191203580329118768628118409099811732062418753141303325586795695149221178147776618893642223809814537286541978410349538680750194868100380896901828675555025494224535638790630259001740544268479854042610772182919748755489334689605847530416776789122400790314357122501578643780316441047846981592017144937165309132871140722618810571147211486012988033767991330008697779915325722791390390123353897672661141411344949389557682047728938234056486537555723156472681123459720498585027603557203203561775390425936160556067042291690659951008046039769392049480484621678038182036316685593189164196111497357550991344862538056820598888286483231794353874466352785194101010771225201336001020909220056966848882048314078077319733054272105223431253136769216484100471291067799776826688699465295985987451007262271362552331870987852049785317150064752232990316532371049484434191112085656071621400674353055295294789404193821803755096302490455635321387654642430536071310326700568061720573473860936063520544610112685326809583296326234255830395132023541370999955165855696911785066935227345914098336073975783535545164174060121499134182237586625086054893373210502550352482471378876631758704505321030498850000876957369196874000837176087708108347284097496559461455026252568969386000472474037954292526929883335891470622064456224692165023100800616757693131245511330451745858684576431235215198223679384559163305156518841669890601467678688487460943101590730187055755056739930235763230216720132488377585239795589372158555315217512001292581280010174331762179628598314157448178258871839792145622736019557962030052120319799480921050963545022320351879759380526518368724283380682223382718962767832162459446968645092626495045922081673496360935671298817668732547002465544585810057676597253787256556902670305740006226459388075956234194548177457320316382094675877256833662725349030648895916433893865131557304308750970585457842574563463422966686898142582111385921786747131900096938420551720994054370693265069012268155263530491726517354425516653624988444453467925065503727272114368004166880909073910588932489057691948393209087950349995720558745564598382843167185644520227953280099858112212330708379043888788856795640217934136292557428526790855124028475099210493924168244509424055216696191509801496474814947024644791390519683317565481752731751506253768938975846775438387281211648060063012286598179895499468766015202890860018412936853143959373548262741886554813059150849197571097927190246204879387505115522764823836476644217483053644404899961157087510274232341824334397233715895238052521089528129265797233030951922413787259630297940846958068866729694854474616160076976650132375278828569355396813036881462358841251152488667030255169330487335562438582892590210428766321859370696484127478593725410806286277431862348777708842222748954526421991137710024018964473713734097298715992248219828988699437868491903536681563513697390937013625424746629186456787524686381628023514472652420639158333886996070661689008537502058352348711831679321712757591413009051945642635929790415506046474445755951353681299003638101845753050196020750805897744875652126024590343502578937985496289912789890192209486292927644751854399522384685486208765800278839750901207729608857592342272457437259861475043828317852050500024581543365575360895483855105408259494021917543015632179314320635164601495591594937700873367504747468019871137271908549949283622908703119843833806853019513089153539577404984457138190749845503386948404863145513417084913016020205822841662668611196540250495515570022845070112616239675892956127736905058769965932245414333361661329894844873305394607691794200009289798849345499684243847243044497251727776407732639491732856070167632781681950599533913795774049321580179291518093423370914599192354217402934453534849528292293973236494184368491357250953095293590073787999254459076727458954909869643429745340406384187315520174535430154838116471006590431587590955479194119027490006014160852273074510508502189300068286615594938246374957672886021519590430183914268016454954897892365439417367017948010244736950216924737649506509017220061826308949143786453907939649039209609544043478923820019289773069068534513156266133167421835204152376676955264099383438401288532021064676165326828940215258774052764729877358186879840331772618132146427482149487617848162979777332287271623889764795866092026763271619904518747210324078214558317011826668685408080297658226070231793376912011196765312624787533076145691664367669230225914822854048920267568943322474573324415931582995276664283165079441738640634327638167087914846210922765068611057043551241398580167703060085264238068512884608713218708761587217866977655315930150911952119740022677656604027969772829066354830069266411071777387309866623616099627988828506979992520686748214577376629606442646326632578656860516160249435015994420308096382672133879253412711322236897406392657648101952455546910847278361136308114965314330020383946592808972026560388621468624178059517444482792659306502560346872797375345862782348240889682927451571048329288370812685370164700981654717551568529966977670480849034307251302790783156452511654582164429757964686345584314899455411841434716249011598846543949236565574222158183503033472962350492278128621387123605338364616816607421617357549776831042072027855787934128532116669401740986710289438093146524356839612514983181318081804176177950799088118861215523488850839538718941690822494303745653520984699007635062739091385984815613440598028420250675310665224624999728473025222896285461297280017307318466609452908133017680792689629398819190917364774582766946522944204551143285450068666163512166494507156532519937571258686615260804299951213354888483659962606040955847298559414926191556146922816894563144145166131167731191390825611371733391898198782152683310507659989542134771206808636318716726064150352410860565697025227080304543947111115890678334157513439511220996213398679290347905117975159425311067600743474187136551872105778036476205611534513602529799435078114785169613365195780058680312680856249555115708865866554867666825841470820078603756497957547422603238196690793134324768315251868688449553426917592741877607599597537890317622894330064627965350565038071932493445871561320791733344177419403840559651325863108857504400467350294609229580433098933806389380205026832234518464354936296421857286520643301731741404578862054295911462023306263642517626961275912602256014761353828031874318857219513537777217176371706074267165498285337906085653548681735317644158668398418328275960319517973841823734860318650689585080349661237577310838646604355324289271723680753625785811869032976255117263318455971530883444307577993597273789913392575154506560347735080293668193376126477315975236841954294256325810825271721476543630533556697404039342351790170569970407085381823827819638752698976199310759701728994536445600620938355293996655506783166287210068606644552261205188173891129097354380647459867005070246510002066001648663685108548536067811400930643883791260662656065203892384367115099582458399806864904354469972288728135853594892470513941528334611176201501322102583819324612131450945155006302916387676033770170098705689469794747741059941461525465742727468649988334317435476791326821459675375453273439895013336862738832610556607742464246021171695140287383446029761860960691805690733556766463847714407746467947422323896575863573054103478520802344187986930375186643955011075919865273652788938464881419599617754363445203413790063159158874503046335477399297808329426358218417588887888168781884927156978622751569137991861393645667670182241664152028729693195194549839025489897555509943804611337444956697824575359388616584162857134181278342672943629933222784386086104356550597228727717990713747267627575048466883478203705646643819257249710668597145948924218104426247622181012365866766125645317697414342925605413738768457086947162864972231764860176849456157575637194715206500365658567859770957460133053735569910250384853764051833742756802180616872433703858906284952332217761809720560691250446987309539057004700985682639457467113414927180541808930066913205443163718854959399069467035387111347726695304246847337198464313615151676988714322861268719834171874246295860621696971883867383663395128914981602508778594438160337287561792118860924770016910433225918871507076079766022054822433671665537929408951150078875322230159760109573266867984547794274175535683858988828779923270644363838950379529210838058016678283254015313097101399125838636546749525559539623957072300889868214101596923343682862593809456463604591767614697453800760200137671366654021215894298425124605237756017558982897257621468450256853599634786731320966314408797137682141855474091583782147963334580881034240061025089164075014511114978873802228267634098505480323440505995175816222183705464990303764537098532240351262792031355728105185674538233356184557544681054601617521089004436829615416055104550201502965108926758739705830325892285378341343107335413330939713888127144730082813060070438910784836388634509507714258846444295920175750313779823342210883657197880508279956383615201522349581440942034928467101730550088214007947122712338500799991907372421818618560072859689842834931929296171940835973698795061393322774183321267011205156001691761935207990304386945269503131268449318404776384183466598398768133565906673079976920481050558698994553072894167076912982787827202025112678546280361873083184346728868415426113150124512484976662582949352648665526150288116424284471537631255002429403160277907400236084563179102013958007734008046607926395455565292425892683850943547445734103768256949582570909032009013500038039882867384718865796441050932484658917261269301178614079357966335498241385034149052303114644134537016473696462453936606958755255537897469420304844535925103371523666522873180762014553346462640209251217437584410237557366951511459217208678955554841122958779778953071199476771151882276147622098618232147476182257278431487862958864784730442302322865521476721205554252668633594710643011026174291934968545745557909312622009658909309155206618430957930826729205248635952411448902006868421250932144149357200544626921728551042304105913678457319583069678962947141514815097340809340179197218083236946965660893230248606466349316888202604924764446784173827865683882687812648421933418069272760265207669042373086701353363651266015968519779523810108819480692192182935619706272269118102640800880438403392575681866901164055701837246515138829577378857710728719808045101331669404431913179157343522184147642396581344144394257371762939313319213545723623243520699737784316465195018002485640640300577832368039000344774192900478502340389170804157421668346342240205311660485195764820001053231786468762545840675486779472072731564491519318491854801954137287748194541426007967850952127934235832303045256306839347333021798151803566734477053770035402789042053866559206965827446357951299452398878797146885338224014934672533147892159490004378258977459192631497840292137007134064918830074893552948579732745244825952068010114795809474947042402573392086489891132871439166806256600800897716524848634704036018233235760195766862082320131717597286811071144897469123450725515291458872018802284777402939840787624880131188587587525360449257758847404084895133874876033599471344753651470525703894958494290523902006521310338711992629593872073023369255540302182699364708548291185313840130055379887316051850920248504154624117826359813219093772187932093594635391892477516568158559003702054261396315894912279741915353127797158896880664754953010862402659483340384405061564056484603444554546159485209423950444506133565756572151362682000611862454754339958921784186900180162728986633637898739164874008177438106992494225442415887774571840091622433944288326017679405246866753146602526976683460550867053744423682071283391745250493656902401943942118356898208825718670064794259005070883661102931897418789608856036651363515918056381954247186667975529399619611292532963342869497478703579658377376593498415945224702732851689111925500672423870980938470212389787492159515309511836943562133641395100315371675615873390284749020673302975823000293735846510767605291566293003419959601490713191270298246703206300764796752519690595406911361936846392255128010297036464726353922891491680191482165662531091504366772042957353907752237447745751097291375192836419773082387784096686219152658652378765620293716300734598693649183786361700813028512819458342325418377375286103689638946037693601795293065260140713537045083896371227979110800991766408017423258774819414138975479733457270280111736444064541645998573332386306417559093259295586754831415845361275527912626323610904166191598539942031581564065487787923513978765991276285702695087686118948538400189992312440154829731754985181926642395900332015626737428672364967953391608003483933346276593263197497238183719782937321556924740317331608240739629679796522602716589876030295201262630423307335670168943476418738691542076715411387105175787436150997829226591096849240113325219687224148858926862124771463846424630504649002445998574699690114695420644434098026372781615678751373497197803679334066022677318219537963183164032229965755941729060058501485056258324318528181876042841522956450694912970681814524265261241617935791774461342565673873314061548479828804971275015946874289873085747166261536798919351775045745987842073470992263553780472006309907482212119902787658467603628651922681017401295480092449383274467047380367735763146809751327737868736449181014293584933694829246049969965254385878254877866945387362978727751946447924797983908003059886630926419513504329491878312299869029947085081576745013656353187718852573004115954236442573402580787146774740871452653845468970135512392372232345680089132155432906081221727234219954654525702135851346146311170775680062166035557514761418528202867743297639435698075998758233835340040423706975580910124670746187379443689926903660821408148913435933849120566929252056661314393602587247894398200856758667461291729846314469205161658805218209278104514030067422462831160280097849464472281217087214896991169208286665495946794472517997308122757400016736046468271602438018161096582677880332416634659167968708995436637471783922235000785421218049745654190705507697507351709463939848686827837986719284228158720628522239002107438693335234301508280963908665897615951993149172674845340751597891209185814297637521152018877074538779812225393407706696177917041565521417569429925781933667415601024726383883508269187400312915119496929658595954011080443442200697535090546019654219191209924706757587192771928770947946932337781505316748761955324043837171214906987643060605195031446321132385029235502173868631136740051610820543611127029494523643023491385556249428945644107270858825317890634870423348579553794532735569842399737850757727291641537155232057029899089040167401922126076709589041387387034936180536781625703793813117517492846784289039155903594822991580257041865379421501167927480104428762984780274394634252968941744710512734998555507592893788164909500305087323916648262927382974001255091321838095979675421127559987816678017963464867810260940092878446465565040576492551902676027174445943594326320329885320081747312306274533317717010819040660119489556960110609428159480511246529642839140069131833580950987236034751665411792803402141913476747155300534561497790165659401286641543359034569601673638492224245768189746070311297720257955216586084329292952937128912416880708563508272249581566500768304625353498927334097154230567802065175193268808968642538078667920121484414963288192131820640487539070428547594563900912160519527138190446256668013027823506054662641723580424527172844559134357186481035241769740028460248641674419269329550265199922019178680916999395599381117866838827531731113468491404326730674711004003370112732552192841894412417403241309772304909850779566966107735393800581829701532113691559831044792848791872405240712828170251762027817513115598214783848298891737747699024705907254422098591970623950460387289445891566295289799783147620334879738152078844552933921074834300877338682156158656581946262742406841958340944608952481722225497623745907586977271176011360979613175185461716301438127587406817339809154511785492590273732294989143462776219160576590947013838532873845423988514367437780222710577079774483084521552217070577766344696219498559671693819423919475404059729255707553237360437926613493365715875020301766323600016630244135660316979311690046336969910647216471093664260820960026854179838662326975801511114130820772120523545930670753111959206297426621448987473082216958724040672684575027322588455967669412578358654497375792903012611818772257674973219299777645647761642987121239401244004866751381927107352946941789471054948856764651537862689013817207243635811655834048057849891671389101681496512155668608176229209283071038547116540447472453365082947953179115647701315120997827414541196668245820625799042073583268088122362750159536377122727619827508519482048026073673157555824831825852398983797496635635053670088718774212129800823222278721315688472532955902351526903674222420280071207111369958808803348128222034348649165436390084475325758001376407431473515975126289069883156234555216016722368111860048145043013674265681112282799196348497394032722410036076364424148928608777765160260173813867459970838994082474364259842533339455155765887815759627735304758288582648863924896278737450997372836153877933332801189045264147174452903276351300099592888740994812010443331391402188898339137433181296631486019120602437727346749639343939271172805100624604845201905696068802322912197510301743305032170164428582601214240885093059325949351834299364273770864375284330897555074786163835039383494766187618652282853884192038285600953748303616633323582317502028370086910264857710302118928772503805650148086481185761223200951138255845743457375628873285508357428212273968720310039062786457688247183816886382002724432992097332600568202530718237177918080919028718940036751058050992576915869553193805541653624248232728142246155310517435574567218167183703288589163284906007083214787884405123156471536651806881720504313750874230148751268906451373633726237332838885478786142099631290340448394925711986432513846731718917081668806221809696452611885531529444711622816568347454725822173074375275267364133158980185757556178225940429065945068746910831162087787464102864517585694363606297243186178572402567228752248531665844266703496877023398895165465097626918858952945923003942907772524331161646318490756629617745250042771775088211626750548983468557104094153318141202121025688508946829263936897305627211695830425502281750879102215980685559583553187699504188993942764721115103921179508966869551044001910225347020233488790670844738885678925275273182596019278365497509465205397532573273280695870567286918750571561116117484868559452660337449242933992903338232259918482731732913906059016420287878844339000900249247233765331862225385716504236494594778106171282406777488721565331718862023269817111783546174110830933585499124600001899723461307676289689247476475198835254265615541793420433587405158021640316674929434715622536455068391075827370458742833542750077787244684057520827035436332753695956419139026499448569473247843169409006733372989746640888281418887925274210500969679990170134932037588081384160959482466348060314317635081733989778511892698420312470007530521935697103294936044610918684345035456259240851960340693877367813059174280092334878473735736635196799975507001614518918633327692865855947245461687582701692213193209677808083024824845854468463752016613566000204102771612190388824467126581841379474739482717292759015166217973637291777724984446062507581111290542314925283321566253830075372973646258769502209793273263654995772789933336952175050413324933031393026857804437704417250715144057946573862906202390686966247492252484417790925528416124319373238103376390636195676553804303688515169538845522446462808444618618512463901465822329476426669249808749405796300737166637296729266772856121588897356788798114257886167566111136368011838458762071842276297266106983060953446481382285094476585054416001805430158920889884821793016311919968675075336942627136738880171000809883139698140326818523913882576482713425861457466241720115800327358578737105668118829677457467650042270552085137188830041624656312136435790760650156919856420031354878618084502150657933027086861790052520210600052679283698854811059675534149134441911813316602332574581068834302546115269094303359348278376239544548613406674218563558682800638236912400345127044359724679609062195909362743336685084897055242397352793434610377665125411295518017885790273512389618848658965602549406079564220623186861927324173131373600023571687194219634595954194252308123226596073147957094031776415139645738367430227510897626810696493122762300704153792109700072791562878228973409662584354841850441392428311912258325394557660856428713602278458524749756892901513245356715706411230695938921690319646611829175143314275559217108873133450113028225886270648563351650511608898249786701219986195827430697888103643046404150938846705606181967184013068159544108289780320333734016709300301681438562419332970428562547249986164335760688314364314211966664244370523865622147916600948256299611983589184662333165083436588257322493747482344759814889884207949186893942424489858171076177401235701000395300376037137893611643706412684492253571808345255080317527707889979447464243043941091232236788849783066411365496632109604472105793422228754936964799718353162841386000107345494322226006664765032742461795817250921892162979547922102355629096498102217113703163611355357513031271049452982434506578877377029196243041825547949856744958421801615153062283452740877347453976850272976654416647523103602005638058912177960400613688730540330411175642045686710844100708723611451023333061431963790371215482949389208875578826768575141492249862103440832108354714431524280772512498337276707898841752389987422551692707085655423136336544337231722404941495462508889137090615759026160228626173434817438472711852996072301371644886814528552533734773247346567201666379400086020382511009586421288396598211743081568278901968462143791628732413741074817180282894434021170897795386691909614855069950687887206741547878361083942196408624614507846454138387122472133683965450700347796435908365888589210191064135994867945420216561178156051464029152800367491566359483299635939001373500554139266493922189134001647798397612532563644655794925822270319918557146319457837902048083127422182042248508947700861689698112354839644336247798479548293754557491050943925898068032491936479439318524992924727496553582887621225574480420760349062649382605444369338570016429098098766487394169187142981657690055333149024278322140053615380441067487200319957017654054163579221515446576080985559457380461258513975942669224368826752686371041360209252971566294873962001134320103140948621307939053460925145780458123949740681060357031632737565100561426700929609506507223865452723732362684132535599908219859543062877110423813576543327960537550103435535164190438462875006625009380747756073859029931984838498885734628590419803656986178602447117723715520311384222712230323609849040475040568051219151521510410848342673171891215333258247897510190398647385700616923847393439114718800587365751005065232893723172915283474117224295994769060777580466895162985936502039561038355085206867883746064042587588676665587125099046764508903930752312520526168072427632504599104118545447664632407246160463412113399406064557331558848793423497949104561104886771515757342547203730351511552429756401766720837175300502384528940397308899166523871004673437970592432362431266151193504548511612885070963095687092340409730563128777005699971295148354799509374699094757424172078384188200986948824767887181844561644071535236154436377593052525400751089892054016270990120350123887405797203615420938621757824436241862939473924249282191872730214089411370433415248354107179908549300461413358552000826465867418957800010524476005156584305884220319670659242779013124449232970936336153482889012657345472904318248974803975177142024201835342359918417257797759487296359767868554724802701918803532941687473081355081378845863975620730910380148733798755460995012390520563620691887758658432713606836339646070918928909034017120465040414026640124568695241179444477533306314752971897230435338037850202759576433595786501072983917910248035515630385407436410635030823078706184621235328689224059093357917006197881087968497748797893619539028233069555144567601044466721524467658265699095739272168153481549553122716137821588542600350310007415181679667661765956218416045060558096882545413194687115149879607510244780152904913130934681577614330624950314449756495738443476245026109854676375822018119456755305013223526218084650731925068662800207017660865650399505132372228122841878921223914846923038512266750291648709302991882774515231789153264189807662462269427418954551725334945224699167137508046023346917163593554004905465840753083912590787839948045230830818524815975763408713072837747410014946394085249589148185707568012542211711908406055053972438932169698023258555052371328325674270112834323720202463102873103304519379685105076552909038890324380067649752346348957193275818656931482915385240821456289255587036012826553289682094306465351040277213653520867970617344286132031868949459554229627658121120225115569077945957611366771550458332237174568758346680632698578623541785264026292981854534356664004015776555193501699620609094286218273544718061556247792663546170302927219800221737409837860629976968037413307679667340739291935883566841028765990690616839651804469560244719519344791628004610138468389534524320280468472396430703756006773559945414944422738938197007675424162763153382792528092042711133177097567159644687694834228199893176948382016469490982205380187716591556879131831806694542583584048976613020736056850413064201774443218916869471118859472907509111790249933914174557323706757138640926122574181285896798065441963942361949876856595830392349452126587943637931397895467835669376031554447045119470972392712142370391802237210722078038618922456121430290565883506738346041048058274757211973471482826269119164707231769763520358367158413963751205148691784951914290239506622816395213590922775399402711444776601986518679902458967186704511674822113809969447582672842034887757758360625532454767670855409972082206639290116111909952289864653629007908034051206732596646252335934348649087287356095610260180938400845229508054037871304626030480006444465987446779242973121539372669834470685335745851987816057096316427610784864710861706251484665209156742599940735294531662038919207283877776497479914104777739494846554926067358431998528473259693285311916259098306472368904916288147129561868321900668184286634310431787741862317418544658424794669356036669792997727888656135112536596838066109933684770808292043207207231501333095115364974129714426561914620662531874643460911787574765441015675116096691471347173409171091085189011743016123049632401251029724694461347653023464542127235575900421680733997532942432311888500210597823679244011768801365895019929331716191505189321817316619740184770311008787629564153891879778280487529901064488548652119566401825339075822617333280547086404878424878960004324401824293267113226855984294807517861821400298961065283277184556198146725087939730025265192177442163823263293937749852025461554938675571746632294935219774271209624235922980850472544612767351619036967433056048636772777514577512510283593423372505041289309722271860870463389021450701995054161633882771769101712749333730181816836599871777763208563188885886092682597180318424300402190494983958157544012416186808906180053664032246258522171533758455953342279302788174649952886997477708126776957391426139323384525308954164186135632261580717330796162959998829932877208443119036930792604705287837998958576007757728839542570586816696110892548902727687852208696401738819425453811702788576436386857400360982711801005817804066122468002495223585403859310657868648630056913740957978079644529623278498262540902753960098257775228547055833969943473426698766004418991757280174840743132405379978167508138961481851181265796505331012050542254893181578004811746777023382862975830570261794541018784841146772142414097471183443448732270446184338006970179768640124907504305643679363325078158392514868198320466156377648563931856298310492316034561582384385471198062533793200418671477377548602525612248104362055998458898919445440392901807937961566727205594443732081801612808522291150489540955438011278007184005795347801192410578833404702129195852218173962865762852406487493715924309383215682331701064534100015896530048630806137515474998048580870975716265196697069386098086677418028126411378627837809829937228355875757965611938530108299626192625062145149865641022751660602097717583016680619506197087998786091967909300360713259098543188203454923723791514160033358303435334147570021308576940720499598390730310299222384131402071410595730017065313343363153638321482514445021522840109808284590597956374904552490159853059771141192825766024127910574603705460064335747247941239403624839691894535840241716437926453453969081467723556940399883679255209279211092265935321305377980335122194304463182321382297783676162087729390706865363915032623664803820326108270031008197517411429588603713475874057413893200936120753924699376950872646907153310369166519470121425955951435209384027836056169700572582446117862074780200740215378324214319616495417980351708383340518630217342517588847645380492002580652045730465260389204500518835452881199515095439748922860275898615502298428694176581052216480938741075728457202209616957905731382284429869401072953922711998856877150908782287942030567688082533809255681531816997314472434889519759734295597663880068290869303788567170254626813988487624478742841614376012909361518259317803346919717836513512297336267876222182133050799297525906285819109040356996763912758244388428957189189259221942649774457250695805331031591397914257977799620412135101918479691814225073198926854991688894812140844666285422386609922244084719376171826032641701793011525753024437498805855447107235188247954175558315707513726961776497658320693650559821842672599814798410095112065344895908710130068771267029932818088418789116179114354710741186275232058313430147785339458762613390550250715916733058384231068992803973691347739281029532441607263344392245558213416658448951491356548227517668920067564916162798707237637216209460583536398673170725440029157296054099056284552932472633199831480149019534431622302976515964988958194216848005003608036381323490828639191263537473929066740311994915805090857101924334684765056857334331876435850170137594926832025710821186349713199596759448763033966398170997412047907702471631901896809354077011063847512223319822684313655955743374994125092709093637402647915248959487379447622294110868287975403922714913208858087914080187124106713944201554654023928906253920569185061495645060212202759440468738263009889711951672140081448155087639918224907534586356739734288211806759023914452641157830925417531860113446119922742691043510724672926136073321717761437982688758381702236992427261168530592357834508491811169976079468717533051429691905591827894972598255059598747045706641430988561676840412109084440143303493792155118052938956690929943342272607003367771350270120564216983001373878604505059001824064424044642727744788114611616723039903709901343522628322667192262545394450201861520149292330910835144900257031246248216776260065686411397775902124301915898063973424354491810166690814168852336933606948515420428422945486040421756097936344524742669134986059798377264450557535357399336026995961200493732807445403936435802190696684447550887892061642659890214181290391057256247152971419399644838651123304679915312245373144123793168637711468722835082740749032781077274562690267346308826917365963312351524078690847111518954756950544194682264397595597381565368777683745413043422979852423368230935579534778010633127893552454338904844190046364653403841037092248356211078948111274869690063674559684268597983454744872462153160595643055942936392027898034104704911370165165172030332806929958598191902436269615045429508246158939692754246160708829361611427070981571164039973279229250002494369229584081435294821992154896509898642574328645391914640229982203165336349573334270151278151915503919571457327523180254810311156510257946004762007880488571250688149283115566948474168257813392652477320932662420853403787315033588810777424022783873236740951592234157189058712015535410073375455796346945004262658802849400492786987392321941761413593472355004366723368460837684817696432316885914721625504297785866451274908469052290960723521591848829681077838181560280458994234509202804519163410350451075875664377745390490919938566524189972475475860319588477173811809093838417417616369027310183568587439907392443494506970948108113592625171955055736685237151357676100023668307364134450316619733762870916992332671283159661993048116581171020769430115532612625783854955719147750489666777376069110000892759400916200553748591866415651577924232404731798370034952152594062497041278166581842286887565579819030951769291484243979203896285560019184174425228226575481038761438217466816502804735850487624498350421172071569027339899043611099078003241310573241490545244637551909663788302417597659588221468839272116618146437967840802514047221448115559195197225706171343262106357591005126177440039324034923458162800537852447674453303463495809653698535204497678785617562279067181946090517135970517287223064747709393137967714983080070186279738713249004169710279237600962297311204372448237378026024114995346401146019831045775725183171029893514936074388714889374205632802575825351933119096322649109135493253378709130771748676665757577055854709629430406781574043646690077729229161332900665268187727390222177066321663132646343075303316096459858270491185150189333283256213324387909084875067355474225541414657310417240782879471734238466719064806943255925135070472314766937711225315867013139616024962662992918645247179752908811349291848821216816449770075801594622735083256933077039769222158458046422507732842065889518148178013587733352344570956138848664140699924220281328910597149717787072213714666913575820234676989635186262804877697872053115154109374121166720152943835044134276260540245578120012074984826763964590136264530671290079024733939341535711780874156177320227820670442211441785522900905769012561525592824956567959624706132836492217554138900704479257542246038282277607637524956250363010707429239771657301231292047868153358950920748675052437253948682618780165711775090927244947638686924412779129481255734447041457897835198608603393296742591171621224301720120040952324851071145561153751448211224301617395742371549729075847725252042554338774755682749270504889267245749829158550638093042755142163482096703980773920518806865958325309755957708172963818884539800484198295535089842127811297060839287273990316402449368916724146248061705423413120657508497252609213129588978924795677526275437586991164657980062439409790709497998578850429617009939497657974613924624214543853329866336733045948761307322626497139836323312369362732961008987754689506918453104292450424685940411901663424660729524972323497171831839336709990521478404829498972724723981126340477410515265896145926635332325544044640939010585488891584613160925815823879281920578496133092297870779921233692077676100114993282045015465500697864833799436346838688619285794175381571179768633551495302941702741788396726214718879125888980676111927711490873507558777502806002714277170836601708438524550339155586161191817314728578195932917528347988923730928967377026732967960113429010755900790797606053425101756315609356919864561794222928522072011622620769091669721398897892486198729572511186428659285078910724203652491154735947275529504266814607800376141886225378944259911336412051744038354305411484669592406230500762326033836271027093276528998954823351410568326248855263057124410934660773694387444985874565551041799367952338780660872426851424158459061821753054558067694531993362924091950818943885687077766930251979422732505417825850084690813552429153300839481894904753209415369681660275819986905646733799560537415360972306524589762239984859359203746707468581916361513331393617969297240805511549463588898079809198188449799997180096718910588324799845361076886746983255927211182937335166395140109021768377150326853272871965864683038120002557360737179432992222165770814399546245713964608406102933484609408518877870774877923796507907712871713012027030601747266850744122310784078674539483909431608137568928804306832748908106308781590396867670049603373581814243232246306451625863538726522452018959631254015239316442047233912614199108839791102960087080888882380356053730334124411746340916154892890621527361719728641428919507355100892910658237923134604050414753136651898032853912648441335008872054924794523872226949535042557402726372980240039004635942362949028114344850497290715994110330382703289963964403092413272744567753079656627134837356770046218331296014607848322465115704633324974824689390351467069777083869476261367925790346685539529019936830326164738401675016993053448892642907484365808086702131916927180045801620701126128914176505296172600743850229905208993279599396005190129999109685669288128884519447218764403568576584907008110413661209679415527256499477031920969969724936659798894043028985027716273281069896016106349964790414979766384559219462840327075256889821535197749903408350940195671359697654436445713057384684138700371545292342063658718575512589092330120547471297329681781929533151598610444483667792426977886349777533984152975474310742899099385223833511971347070603531007121004853222898473837049992924369593322186939348754583743270565859502167395797307822322454042127191302096340488413873328934973654187043359314666294517573567796144123206998498422443427938902049329318041870535438922352765580649786191983770350349418296095512858250000143703012466168494391316155895651297528086569462473340685946670227507366565046679419783087938456723100481135896480243149407441048017718258196995244483081009103352575747080600080579140235368640593867388486663703978798668142541993113559820138691832078919964284484191073687583851032311189638037064570159121081434077866217485760034137283520507698018021864801833394337004681872506462854395742167771144286929859892907418516409968796985308718724461908316071603676593984655214364781473984232549981680190451708869680828888423036271858788812134691663054178621155933935984866869218801018904814875049876489364985375111502271224492149775069998928103741068538553798869460963802171225428388064280705203132433035835429819715722535527068095373883191792892372478678414567832348444730264706188442741493112016509059401265475120790370128379383914872955793486592215559200513031853122159396048997704537810400775319243684641123048772474998987117374977808028923052483603854699069843888323466663101584428651190689237038899148322345993830233853860158931080399929375394122484815549823171203506786478392416701371895699962201991936303620402587416259354707059093376542682554321976377740867876920149733199570097152110171786105695348840858070814821844320183031066023530459273521579939260437501493094533246294342882399554003617354058265995234489963895719961643465724363110565163514331828163073738454586344093058378474141420563982677448781200529616091659291288199431175718014560806578456420174785719680724321239217503750706968089605125871843738254673904808951666067728167682471578474262195091960373745736753231816444253319626411875597551536335526616782173094603663898411222677577803406092972966140715607592265400384671126099918609316797521355241192470533443578815896222917057034682615905909976825868093943649490619905985240615324845700788945686631429163598007818406770723207743724177177414181239448085666237865040654008325327513639557821105322922017571576521828222868381846483310557864108613453498056247046434436273054372295908496912798805865162745622927005016145100522768118060475366290245814615474886499924268552452112843095892905437856674416124438833367779576648276982990369344163440109430181885863612960544935852806861032884196407321292043857027542024372740012479380090040110629015960788544254531625805116913204278185769336381291082119747645725665300247131295204337338008797573246680577479774549153413033901400933822160435694909952090748260054972513497974683224788413831287649406940730584110389303804024547809919689969836417037794755592762442806504174418930265996709775960324389686153680023884150912225266993674774501021546365021382993054688779134827269945187127384966686516460361135356450757468451409885735469294434811179799380096472458346199477505448512826296652932726384059956966867925867198973845811017825978509488873806114319762033381486676338778182659159603070517963119726839696905185876381951955588331588745586257856083340399463035912170934710806394740048546711841847475532860164232676633488626111471928541879273516406618330732715897931539302389430510856569663196761433036443324791680510022211157195644254653667954789382652887775356473733312309067393569161564235041519966546773865330056581120763106312780983536128873334089777336527844978186012161981787812185834743017300201301531157560546763738065403453240679544334410784319846332191771397204896082121562678101767456538366747037472677487002885643570003933134479109093426763538586179117769219432412552496765221769238358835952737336541635111415587433696427581975772723906519346280322094257838704626675157748081394200554670976722762590360213035903590291963690347957885630736410530596186493601684430558798258627932505978666697295446465300172375431443684587087829220167634160191484929602958737029170343277221917486844544121369389051558081351072310289121460975835460740970803191939612150398504398254165479288048019400741760159949091561986475909990995021952060855505585210867521428600848702788425401322777002484078131455965964678681036894358490200014531688914656418308700168699799802795780177127688033765341076180133651425111319620098002694787756917772837393606296055536894431722157831168051741627451944585537141461506138045466683150028304033984746239676138528265427714000917361579494113008649714611047936118740361498737464115343015141879532264539659874002583528110078861683720640336916005150375555863462430681227963665722318555420020402513941051500245463342411917156265824999031862606991958439912551552216498415798695759839873105774240797975525465500870198651983309122242544138966113063778511291855781332882432012042301938486904928777764536390481265474802873860484087554797862474112546380143484874122932725906943641382390891388350932196447399162283922875804139292851197554108067226902568199562320678539954885942850290540684182323428275064840492740442901115786504291084036605643091818052456837098649392409714176163893882010897472807851862308085277807908229745790701901341404754332046799960144865856499881502472509915953521500481688191544669407561786026175187979601279224498195441906839631578998982834964643488666576683932857166464498507169225404980275890164740985766962578125234232218991197228186672869532109871487732221674362650043000385067793001788377746557778832987790937801036860808464633031045287237839003782732301136647590176951726104110851112990719238590091108553765885435336042152409782420364570272403057160583193068341816136227886541870524174613300066241930273841125518158855513994178381995875343576244379600274568798675486554241852418734206675297449610227859965418893565022855259694984306389454994873802380933865273780539937493430523042695737217257977616271086409802245783787888207013169466125309616262891386540170346870433557857227822132654581573589321707347917317209386633805000251392050864780239080144627435140829404802427100119541762222728200074745966830010882552286943297975621814227276564202132379240050429096029598254028124286926670248374166817106031448429306072503331063429477109969778341117630035401717036564530219789706031897974417928866128706025006905098136526788337988978673384708366637641159942745355127997985570010957074621880532858026299206524484406948156895192347733898894758288367564324359610330037687882227806438136952887893392941139461510033246879053231243110392847248251429563249286495532381906367464588001863872952599868245671408806646436364441144445718246661376275233604194171162337549985487038102412774252562631353257384400440965439602581932061402203217624930097651413161143033094119412378416291102527074395682696434458814543026066041327200234691456137179020863099119136524197294187759691627012805938680004435290943849871416751061231773023419976458950476652846837716979662407071399308831447050732623915364140380965609032042635272065613213852504681020379049252184628198352376057747318458043622086754780163318427469936856981184770231361197426233864570693894288807153903648716284383562564247957852460669889261507541875622267646859870394568482207053805840617449563842685143796959711905886911720394411576906095311374568222989299245601988168996683248023067498080536937019798921194464587091768048979632462712209962300009978095847197811133405807988696195696295907652600507368060136960022910258370229358659417258334305082051672015234323777577903044998524791645857659359517659247814184781537056794489700265240249416348294816160907842828062607584891366000799409277914439876696508604007357872566530295822759299982126921702848324135805187106344537720929881475366609224874049882964902346915001117943542074047059041231648763945472338038646884653627316167738048493706643457129518843483161452900955624112025165921736291860215647803404401370877810224525616030654754549725401363316750413085953136247853804663099890311618659848408648028597628320480539487279605158032806972938034187350775541395605817013153150541045169849375829433619530541316005925533125366672991210395359291050930238664118618099959900641435755041534708436865300884565673938728580078363339116122641115067064589953272388344249096147818277996440844098332350531164703119045957299210109597414338288535922695055444417903619208525920858171429626557174037414642475046999123368207022748430839142285663132604321680560246114661429147003532164214073423984125228951859544579936832795829186863119443232947367240504048710611760561338873791480148843711920940197341330323206393190921363846206499267594935282774484730270147282584027560758345195438869974898098673849549281583187390482537404734276485710488721938695976894107088367598101413412266427395731345237904455716236078502837230066504747717352682745469270909238235652736876271985327200226840746205828205769413858656175970393431938615014423566099211820802088501956779336071400062678761897898531822943457881070357672669285380492589300730811987211339552398599968666545026712866975730992466063321313575897145279791314018533175072381202694250229239376424143893519441168177607326369196068384333337112063589428685407432205158700949562969833711297060945921180303655458786781238766376707120368445838410294255511908964910299672050080093692524098661212246567763934682535557918324899185838207226783731007254181072542182831306042680712617399814907928072711370882014842868294799593666923272661273175933548309118876739716950244506911505927738887670623620759090492142126250607310649037562604732731698994458242296810486771899616335988974206653084261664606836173399590236278470063298526719495774013416973135700922960750859874143753630834100964316373069314968024831034190606890833304347858459960696649612589755427648832105186248104753259227549875179376171544835358184484387800765416770982505754672557678991207430291305520175363057808421357951593343499053545967526473550553396181906217440755364799388829130082139081839456683038404748571057116424293618185539466162617830109461429877019236362573933617463729171552576808704971244395710642084206832174413011806002250603747800764458305319817932711932790932853651445686585737489601068228233536273950769326213384454857850483307050985600320351442314949994702824334151922834451097192792554085193623197859931961557286876671257145492225681803338523170674401677881311752825263513868932788385210969392387149265129939208254943359835754803023818091140045728423002379134510095886278664843219012118117237301014987591597495289101369574680029344551507964556585075364363574007672424341562305758481043776011272666931091317963290275008056760788718408373520368677232005717257011150322757772051994799856313809038975758232009293495512490602948226214765915419179997288262525930557961603511844852154344302320058420162447857889502178847792199279951205696322523759317588569299181142497464387637964526304051821817271482549471801477717386129807075814777051500310109006297505634685628168911432130093963294384486830249710706171687694285699054665334198250732479894940010675954597064954213705506110958352621695362156964800037253781213026233613943590295133805228396389927223194096840104500179587969640442477668302820936488086937505709889686969093930551475354096784569674487298123597886121543482786250427361575247598016553706830297599606329581961373458801594524372164809718164135976090954451284058099296638913207741607562077896081135677523243382537172894315529385140657983438162403342290147631025896908095758559983611562282822222615729088840556441047633835476947733186586170450360051448591558247689168737553116886583669365627378621163680384888518662738977006317103043478494849540953044717914923054614901789147939161812315459486277083830814679287836077556793399813540028007264920260994715221878031860025927914747549806676373566703920321286720267113334823581100607441381594456961651498542654476405042120324700461719603268568663104807148561135565061964266654848356472441313865004063967383499424195352039533310500245885814465491445690463856097100485788363272577468835735147066888726016666662073951191770114927085770990667294357305695493906615605415730457398604342973681763245800355978226242550975230110331364450709714955060691423738816590643474641049430433590401740225992645145408984765462409507895213549991167846121266650977913622480053066246772970897882819998961685763161833787062512679076644376424492193093764073669389806496945334364563687444285270180368059936278410818511545187205508017633531982678456427934155548477623663278711762151842366079275662655320395489493668906644979705033076514052456963260205619844017043755205306006545549492984506367135144535319036093108113673954621361435098517462420360962925135282333817052687973124391291774538434380989666323376529094674639007229841989793603708223259264194239520928913462713820168368208195074512286832368136049625723854281584966127860643827342937794376412891729714575191660599198908026391357800996995032726100764606940974526628705249322402984558601860819476932585168920847630074709496552606918995743099464459352276754917823649359794087012585308982892156881655636129965590111753838589654216003994102981939793952243545914956288360194105091609861271750690528433423785232684950226838297605684638469588862368938336170992787948049120496369552275700334568340975091608923403402021553465491008279104551577645857375037949966080303665039281100102699146136939022994864643260169591384455105561786842060078569795982512677177765304673762297510227470872721886154353513452358664701260557847968102672429133942968844558567326441812165475458473514536701434703740038935070973554821393219260406513606984805033242735906922152893303163284569994754594721108309369465484904282527430741286407622343580149324170210424154804281608323285271361255197884271351881843590891082599815740091989637988970652526853601294691071324425729463576061833982717875512245532707519797270239459549563987490521251083253919168598211307718343239932804157617687289460859891818722193694171668048528726607111840333650764666377447431081277234680899712662237677398586109936227644225423218915423262509366585452093849956917529346212265633342583014393236896328030605044138740145249176390716958629212999976175501257840544706325911356907576344344336243009772043467533029531920580987588171040165591336339710158219041839585203855258401233155089894295376414282813851226727608032682065704355071124196248981377039212404480040739590902992715589754000024890603430737596552572763279306034575291841332093942510793704955487017786277533894983216810657993908552472794747745451202319697045898992756142446160127433422583121289668077406952623640742299588573857913527938342660584953645781825570956685075059151384907903051694314448363537428220389327760567581468751812705530124576586930255074947521737796400972899693451809629158085647240683970475909460665448943719997185354319359533776017541344857282129164482468578111131932907352539984792436558138373598542439693188456258357668129750962347731641807349182747949981983721611208693133377209859126291833897873202479737537456780552509491249363437673908813633469038326702367022245023333523428256616307959309739991635961574878098692957974739902318543622661771268346071667477640806297167118317501914463086707605902860679013472977876106918579948590006495390735248264311441306959379686366131186757300933974280167126929970946186851481777413217010227123008246018062877628721841818469860006469451142240943211571829987614269932477041616229889922357096371974068668031580057771709815227735544009105592817374729800878008467615407699908169944566307458961991865036754215312283404621563678998593245119427267674118276869574903334252839387718422828449939530538970827191959465771875052234337122145564625863916540560629748832917452602956977477295918011194483794009784659063216247737164568993486728907309449796836847345745288280866021093378852472449202596188106798289941009018472497185488336543787802389499612056745215671912227107577791525949536283523898957686794094536594974124813084963118324546980425839147787562511348081490737022199867568609675030776645767248639980191082759537456894075100835601121256609021889724555932594357681405985612783557370492467184716413648846377753477832511782703585041953220905524807524515758243665787062604747010428278652482901993077898777557920065997053501446471773314473699032342046676801998925081559527201937128844946061440037712113198754218338688163610331202984470379548611987262198250828223497519574175737237160625842817532363507612634079010789472883112963146684759798412998971007425816572427274067934031194788839268770809356877008351771844928855258588277366784264080522072306164794620695398180000498703216828512808631962777881505199614863694023525264090497216165589941010093835652793778829778382216495709724750023492420246857322527127918737155392380462514174758448496048253658203363082927955514610618691958812825834273344104027347138648230248375799530968958709230322655219740697134605806063212420119612886032285671093341567695799422766717118804226725011678443122264139186647543084491400692982266961222697265725803879178713962149763123322890317585077816864988899211911770707575820948594504998807755052073234063816930416367975354100618055756081102924355998111084646002655174262881031536361727089030516735894137752077912978105452366616987294435717200861403611959411740962250235547788665861491844373220904237068821840534672814642648134556386531575796630411001501463268818156312374845913910068828423307635179762018826645574118305486432318104204177085493491176116883148548417059617902539951622760072135790680072185435371427676215478893934564976260172069862452166555607931847649819541609459555676544478532583623891267763941290889566796114540057253801178952962130532957529795444130936371548377559164450444496178171711375886900648490097316480410021204760833778815830486524272091605594882813225979893404451741825774566190113255937811297037408643679814591535545484329392928235198985663684964890387182015426616511409030228827288186527901997461290610676756151146058379454883363087568433859268992607235417030588564261458561675985907702257221101061001376234130266434771960265754029934404509150757898868026270833817805739431576757185753974426624478953957447698460817005700354426043760165752600100684688974692177638856925371266319015818259056180742523591204008771627432985924595454874391220359324266654517575062237553257417753708287058569827174319647760769716645219288967760589613949765073443453985359573000550400729475136425525445562952702987461058263341421900231639335616654849500822773232932841582096136320687217380913079639732454731461189337327623500632975794416361404777175222941827040646899780953948554300916604239116223567499763561192098801158896952645656754036406588570763311015770885922865450852812777945737559129440199754845084878098861769286863987502536013931024821198823056693881817769960994804308559776929397590973077143484678145566712881041401515050491551326205912815387528695249025961118476540366705491086319173551299988207914632494609023460529138212057273316678022265064450228060790211206224093438623563246294577893547323857193598033535099624333220435507292994728867081706765919669223944261640380605038604525330614357976274514962836888699370942090439879131733624741575688842544071717197125385656663553617658359526328047252360931842241083812770686805592292437763074227703597353117202307787894024787317404542186067719523349949170226652099831888198983859846754072179776610280331706102843513223673075957172700324526748723028238912432358569066686626249310410942630493327552794706312216689260402271478198930081058970236969880949423655539177288986341772141881682784066050803390431686516400978649668198981696309575179481458307586087594280099085377474991519790940265538024271659968772827005655645235060121867027616186150579448212311530973377652236830990065080774225353885199989893138867398864142702363156887678983798174100614662875169443503245017537705330071618857028428897982446966100662151242864398845632347342780513279610563740765063845153678274945253738074277053295923179386150417627471370133361868694027983520740522876579158714930684071534165382006853891499528838916434299775335274906976870936384262560146397317858645006821633327219596348699068173401701416038606378449926713901593830949308711033015132629016595610227963470898477333484952310394735595376144569652163002744587914141242343783760867666190742451992977554214843854628623087114154188290815192302918767380145974918464459908117507485929859024140685865365628038250525209560294824923705816233644886625895721544664532631180975284976823859985270003770395743356691236534437340694218212585011051297798091848489849795305054231572865422345207536258554277348044699007387084647983631867812976166731831650464568862284734056838016609831165639403873892552448203645627504539992402304347197685387131187573395429674167582024876755387635828796292740893886347297606287329293427521747170264344288348919970923844133971239942706096072370422580966270722061120657247163676995110735478049970092011325096136695069999807116333798188112056292523273676787660326020277728344384659573333182612010711259080149773651987500646341046004796817758866350911363618595625327107517130612729614708140933775380536875900875891099024957459481203509125114012496561132645483882572071618697751574397964023774201804809165220804035960358578541632611196422317259458085242577569087438864056119411721052826846543506830201518344457061866935129204384866739151523212318718938132259808002829713391522971354961420987087285353964770632715155809113595499338277600634154335332288982476630923505656792217368330533571881714399036619548521240721462712321750380604449318684152185614291309561232656797270451261069761370241388364954788160632817453478721968209250166741769108877445658192175661088213600449495658620520158499021307470590948796446500253863997292526315295043824514560697539411961679591394020399135004749809389396810017334063172186670296480774777788259225851614636763949445856270237803975557884352202815093886568444389827510659240809947993659007291531245145081655272960991942818912409350935225648260336533694225533769580940585852823068345401789550413286324954706424403020596158785500917683923262093930098512427975799761447846545400354892540932540163465622172772931563506854329555545383102917295581964369880213210026187502112704807308862888220319032980550052868925224432028558107990704442926739442603962107049679082871884617639356601914542849332356821967751477898770397767277928011575874283708250569943792669922850397790568429809091021857705121107666282905413194298101357775937132937957049197299815651417412452966856415373400038238323049373775757992907255318282214241346892129148139281584620587157452865501290838080915442216771226257249451211688744399247177633104814774050017894319144083072584866339910938816869433807516769031253136630032382052329550143638746696263794595276696346611200613486610371875625220313277757937606096574577032982386378291270281256698654637815402245908690250161636974748769866148426805025899541684694987336977676313302535647074284218749930176993284912582063425118331494071228314750023836617293372287536326121514556613180294166385868130067884908561104839366517662479109918899172324728782635918986451370351854842780662473417618500647367348829869681906612199979848783358143115749339045417391439443224890579152322489791265429480557291333674234774018680457193428490103797495078397329650711503714097065696021468037091257099746996390883988093061499694694626561460915295536903551383297015615933852864123749229645092497349906045219605023310599449020516262179534440486231397239505542123638684624029892762585371795502354619245246865043886712277556633287658252136686880094018062360873283806184009313551129435506241453409383552473614601279523650762657532225062737986423136757539309272482565771205511792800805994473674964670798784202347031969050182676713404258524475543127107614015793308269255417096173663000559314614848183008967129943432843876979223048914153406120818320843424259579760440830168051591428253317481537748866210585254060743266642244821048413252659175586455063012931701684906295582567559432228747946887358941867436732186444966025245259407633929870703267382715434877746916716789122664794983049531469335535237023275175338973172089653867272501319937201973176402151444823410625178418031507713225540845982822035321936397789674544961778994064777611589885314552939325272530973040561594933393873661736256238214881748576570092557517828811790343357684721359375073515199353648430695298581680613585225063798493084141781844163998593808689860728695830798780165907155118180275357331121569446450215242682404280587617364937784847560787478511081829214782445783984614386689399330122081759621102710639670150570612018797992872736710235055327100934794732440914529150499885781893342057479072915131976200450848241510609258170271837873990962825037178140450833397023736449794405820590210636665823150194270912720628195394841692005959610925254161638310821178721574620755143839138367659586914849136044019297633107220637859349298934603137865618658826419626248614544992790227147517188906968903163904433819763553489774672758653078623484847989672816815933816231848464684069991838507849402438907658061850040291660366481370810986487748416966829009426370711680815513046479119386790607623653733574962530782567266194578541469674926332116612385030777395493776566917356537526329404068281898769012452253763186441579280105867638107071506234271130172108960998603092876501606917371316713747838712065451516191343045337734725176517732843146225514749065484410456791211853906118742562793380149625888493636078853531542142852807019799552216134965872645205690088343554572907586890050314828020449477937406207401116213922134776193518203646521858131150563053959661966091582227695881574017068832218598925407348126939529909571129010704200571120970813988541902500423188331606193127666590723615693553663877199318593070134125156308780728386071297417607967188646180911892095689625950942989747519251576851155194371586145985411818867626157066381579890105359608555525541111280984944376940870187930473993556125615351499305186868794838511637438655074394938766169878335430114361429819025092333393115403817338435193700871026236716783718824606607638063716880926995229195968633916536266906061582517172698675406368871320602183381661194561248683880649886915865449733429813986358527766552018734394307164684408955163118724033579670313517631877780657421129758681395632082560471291901554913574666305009802922393977701131186590218297747733787215229824699099855842243358479641798201863907659938294603339588204709590142833933446593021118967608134924695630581155392241549864474737780960444117726995939777042472584975737867705592458833611636870211332127900687810165577684717611284065574202573875322050317943956132298429726829366417902911910804939964648071228720135708101524344341859181641722934181969430105063602546585428604623869761944524596941969829140020040924781828785711151229181362383562861586536167965043744357158835215487843592296527934153386264661687697935734812744061930080015664387595502951118526417225834275923717334271380638481616161563248213930633193170789067518661785207926742814083652019636003189512637659450882401028636372890531972559269429727422804772476613166139988743004832653157084534026906680939694996147210084059790921801045014619579667942073473241277075936048025411608095097742779520854204025415963078867605793074708762994569164578391509474693686861738986653335038883891397858138909046587676414329047058732132202838178452153702041994585135982583441322396006821881368864413900118554132253328253107355087905428850505523735712438170942799828857425580212914047108035581567165646183624076536705208023937213051742480814104090563883496062777966726384891624933012390038300654830648303408496121315695834900665990317621552054039681086611137778038372775114763052985656847159634703838375579130880969774410450014960928743052089113052877669187051122639421559042973380321303121025708839907467644639681336251541793314166522642557938940054143866874804840420358194109643146188686730616295165499707426536089213081743012159040879154143375742811924804652999956833400646625138720978256821909721693022340397427076729790007125127445949068153618189610923651540476024071916960045327629076058922267538238963507342618248342649316905204706992260003139382991907336032229632708569875388881274337665507853059008475733237308808325369250596744134240327953992282412676518354399108598911347037152860641305632908587306649006934428336942505379786185021730746238104642674955982551376887687551879453288765978806926417635319477325509238806514885186858893178117054959312928149122911169551407888707857717060106930674329858625093294712422431264902699519481684743646466170755942948451296750610837613889750449738451835476446105569786697552399048563364905857980947253987182462445247642131996545183703409440341275379875901749441557991516254159012261149619572623877405400607265669121106458213485005622063055886409334959627053162714213966122345796937112431265224925280280317282239447000626307714779060902469934363081830057842009578885451920200974386829921607570310349054283954800819088894208597998358095120838753206459632666050625920407660666810409196277912921322334901433764183260256234809703395812337386788022252887517046783282414951499792062720078913354716507008086191973091667650788039784645176885107819587470797525300552164573150241098644534697007285325614724510322980874847470430485071519438703996638482084495223945587722203064601321944527751689774654598024668621108965407907817722983834535327533547587249225204043009381650302054912439328975670614299847422366626738886465909312816561750332948377313436349108695266998205753899727783109072029854367196791533521782326572249106418879802657837136234189179452264762020083941088681243392585415270046010954963084518806590835819408234352550959218301666710633091926466207253634089643656827178458121467753380495902029670120897721055882766304894637555096114274273157782280798360847269611505753705605270466649827554991495972490272386493416540823313601661801774687120972092974014904118583373374074282293410270776722932164816182170322309395669562187900984261621212515675681087453525006239249049958412753346201130125253232339528317575932775848294827825081271217091986980512881341889768952420708357950047546850730652558662865393559120801879934642679883607225383728530846639531305262531058427275739863601129523528598634263786474915592224382797569718500757166962939998495804729278242673978489994864758152779061676320128186696932708026656858336680959098160729108440875768937977000836544436784610177367503698654026760365497216150805304871571479276425284536916083419846310113153764281011432452871603511617795765408223410435858883966523257938878592946729458064006998114228913364370677750151244116106729573102373104301864041467663207704091302343256091635484541339587559797946302314325115635024563225934472160488111155845632489278692323880897611047723353023456400946170938090029672991945278504018312428938178432677478504448252856511005768965116540215832632768045660982131658202834845892457367237017100914480352207303258164759044069845368820545768459834896806051127291945834042670165256097567370633398079708645230897308336830346958067820377086954528085201594976136665074179076760705132375777917716527588714458805605678351428544373204665218399032782327000254939383142258960666972637275734138327114986504035299553033811025089756064102488993737186690729501596841776465510157152844341307847575020822829036234134532760637901570545872831654941026751118611315810757778859182175773943748845008101498250590892652339704825022530156279167324840746858942667455327817675353378946204279549806334047900754120304615164551346434045611968119438095031419319213137103976553356318957890953714918273059090681059994253720938056531620491893581961119081555848489727262244137089666834338848735707002431240441950564835186100037400543519405655271933394909171397782336753659551320693388579168194325626262803019258048427817212549423520116383534098567973175594575110386052006917925363641213195694666726263787581002423443904850154999924850916455621325614536129369979990783473984181122651566241578700790841378131570677046047737764557546693760055621580105669288268908114921435526867349952466857942285008864256912597093296389903721007102994841692851828040711113382683038560413131801044821814629455996616001037291468029349858499735760106670376214742763879324824425787565996611601622226243443948047188171064738168554367573190669867866537985315933169851318066827166665063870862441901535640105470773168443962445542766100279112676849799639614157288350998765327274780888389002054636639520986959423880135163638446987347504912506923373707310927805131712370988867427484745532676262075342985775821400084481731443516217399470900822934807389011585217452231284012131581733802023838187292718605072694138896175638849471872694409890526607354587695787267648030877289670995898183404576044185406053725328423366442704183997486568502283061966410980014587319905990613269259869313888194398606492329557018908003827314959903080019685124746673570961242254812421844485772740802588558992726259714148004332584217189384826726635962568394431654562489312815673862912494367563040835126730791747308133154787560328812746006404169394767340438205011649862696028253835174064070436173673307756961556886492600711137809967471710732920567654305330537532845093298415610839525651221622376365767272809346746918798912502978228244665872526311216763605754988168262173333197801418520607880786501333387424769470003764809173568538692986267218407664477367502846979295073359069731446157964762383616450878023266082045035717412588341663235639842261280030400231883112194216338819235910910506217138321146404687455938617226863038107528073215015948529870680172718252238913758655953756550494842137244727496881466365333528233723622480385967955120621120653599395373923807417155025344740844070001023781036913785188571643374136112208123091485229769136140162149260394154382506993363261113889284087861646536539365882369036605810495175340474835505849210462700096222969729646436620199645335745115733397844561545875252904401721485624150119020433887078754248487727337523080665629210065103167743159020973648049745584327499410943502941979390797921867424569858349208636854335892227970917893137080439804296743862466549245021291155518195223907194364004084764269031914515959623593174395199742097788189390331841719828895959936505637600292331415750200317090271696059243812898831783332822803279930531823254321169772209418206485655564185507361826527059473762004004404432488015340614709649076149354611563416284313727450488711875106350394888086653094714886591510489591401960993333753917332195791661926515467450832159680623005029934680037071478754625710551932701674789623404930741393623119769941957903551049622501498834977404003332249348865074004557466469987122498763255075747317148383764807928553997640708975762744746594359710947987227113656261089166390357254058603395494220631666830830289695093174353111013854680917258652136027625239199937127492398019783809660841622212859171244228753509900926815350856036557727917270530997443530584256563374708514335278216125222155618684995083520024635846042725324921965711648978406351010487988182257362254025451884893415931177417086889932345738824336539223335367862567079177390088746002377920058181752346094014393558739935284018940465214323733499066855154707738459528911840230530369080882397285952824214420267270903869799848948855693431466918627596655270667058588229711532254083324513633646670880620424095378603827651475354130538173935215774407143526533633026301370890634687803369547964828546285166897165769163481652437327349480095707780364830528259360147084124802731892438186428007957663160080399098309919589589451067497603648112264480819108590341951388207280284454417308894546453954708063209091679466921695498606152778721238413808593060540385980239203306123823928513637461325288073178068794574718845680473029563688787977405817258794134271511514122861358965492943366881088854458433944551904752487089624646613187624915677175740440045368702408627185626671308601800894048562773097052452972668381950138723419836503209189792064227053700735548697865728160896421999787320920623308105219979027464782016765978715603162728521336744634320043604822394940095272181661597082226838491723436889484827594805390803753102031980869956642721416914662005370574732961563314383156938210444957127533533147581241502237121609839231918771964547574244024824799993741854715451473801902542767320778590554919085370667517312582241209224404438005632820468618507143676047057433273613532288095531063738738673550804330975362950873858078332238717396370839757264063981137816045281908912509257680171406177650795007072441401701874314861886357943626020377290258539704685596025866507964976886189356547882573263752545637603820500587023293730930824806974252867819120042321820993740570455967595080118897338133347832909213375623322974736304890083301006456002963210503154951939888138675179776518627948460377611833930127443978727221726305609559746024174917798907717563221257714411877424976714095450696000771279385455046673385097967749250390389711421286415200952887275996878607174337803565226025687650722806704033626841275104996731876157815304305751855128675730149227950018801312230958918941804670953620526841508225877234163426082289311293950949919415082721398414747585189271052174117286260462461772618477988830656001916135039853593226587996979181832064864243880071147706838615346415017290167602684083784270291070932380752554157447673966388952114770853635980643045060749251049738453778893287014073790771652486068226259251231766878918877984214096071770954400952280727652104026325414551185117124993888053524740348366686802907402463040524180336118235288956760998121490265537825732939996202106392815582381004492043726177914205352377175303635997853550780941141545810646229586218258371052303798737023908206578791940555486681115073746854881939217886276572734250535497627420683406258307248841241462491298042805612382976557425108458412456807111229648188457020973678686872032855815800966342180106791008977758701297454407001660172548989638857023333113320527452112895218722463505198960550823631733675265467356137313949294952561038289993650216924751095233737912357780989296607232686687909548031345561832505869886525168430919437388608669469767395158866471888689347883325901877239757595858681040973666558659754424843003515171370518790686874503306009560654646498896335375427732309836159681999148944708950988251380263304172391224418343242247030057337116165572452845623662471849027992716218279642268577718646706095948060784480704483311689893486057918850573541025888734687584970086289463166410727109485873674743555112442384454569983526184290520585457168905040210097587508935074456626552620229244520210966850804011448659309871471924132063136801985295553800538809166657389130846404158285955568347522559197563992829145679255974272038127057830085928845054380429208219668142409655337499960893147874530219533962148403028108255739904785203957710775729771953064539262763338846718165467674585605191147024618814319873788814649432223180483696380961938115682723256551905399406249901287429649640875421086923415795117701110993215042334424630145670530618082808675170727946414610337199106174685722546755500531387792065793148553242740058639270739342819565808939622680758344101438160511783703329462564397519360251750695429061737518531069369200103558319438038251783185873922722718306198534844457080175350296767128529284377583630446889110950721114163030650501862241595755801785725240918256403265057195920400937539314555346208915053410601259838544417724628128889841544794338450037134530709849608842604427723969399499501780276243843382542705819584752540258241361506314748516119729970307797939570116134624773655262738395545284393132809749207912056036541921579183942219158132998888948263484196652727088901890879460093506595357255269056841168386143955316792529879990911319168674748413059495206539353964909731876106031538495599817066486128393304121462954279293316125628621653314378878234309983379699711141844112418355025640520081339244694118928409543240938409322518445244898681502537468153556127805270144756158519315405508547939917906480411193579856462195847988466462447009745242601822294413663941793455361055479560993760710337490592249301181225970377231781297353584278506224860287482823641907720279524190955950001521533989687719199557895926960853205755080459512748628493074240955732908671188481972023173007028708336080579158670135103217720181469102962257736826066062190171905874261875454073865478239986443282253061315368976307857329841043323787509615588790730291688009910918339709692065006432577755513202971620808007884264633821863727606742879188882138724832613182432450243814694733678078938075702087291723727511218170350402716085655778696381611719975703237746792990018925272676080904362242566028835299326539078806669960354061072107083076337808700858163879097154746336992646093927977889649572159627960522607292158076857618596042797793879286784949061861685359543849220582244104186511705946971645902284717676340727269516640980842327776253396906489052060824044300701888065335011961732250110423619383323555969653023322710973022954040604759633117408904408225192170070155105096679920919297309961409393075152611781050222105124705587981131505391921035405706366656880699975415226561517715680190561551990651773921339260069803047032387581626093343446563900550630349830543860690462755087028150557084526023013728491705641721952404054603029698502336208655917674036429534861214509746311286356468128074103705199639708178459337662770645888331470349392883353290665881983724235892900039822254972397846707687800831150312350105709941391354881570699174249603288765747275261152400241565142037914054366773563161504395411529745893464590181360287260846052074187151409103215255582216630375187198531526428150883340123574089180778337212721405605474904378054792654889433463038005901988223921041149508386525097837387137855045472138397016442396861877201271505510149530451827439571354482594010983402569977937338264479139796095027484796663256216322716264403526357966160069763191548967672707038229669987649318319765067169142583879019257769689167286417739717738086884335823630610154502057091282512980235880492320573206685174909301681597746909717865291336431659567837853376285439030195475455800719711435425877981747428637415747494191378555349671562885761810903358921243837453638744543466010107931914351430234944080219158745909213250449042775393805315040248118087478503868322111629106113878126135664070042136071714372939054077877229039683512703340628904299553638089581965952518963838569677964129632321350467636003867220787129575105007041051299417600192628746608247871377904355918999357677493864577273886874663165316403602640196409283147209886801894517472985351219897108128714426338599968033897664158870657131994119073199612807728582100402315605848369349353430445994897234735452154753460929601954322678205829485505937761770261661625019495342200142166053408046624811616017357518239126650777677895436119614160598483570241758042786192993711334524337842835248816636826282576484593602011203066422524140081498237541743115535763652817061825908370052555439338414578213781148639316148093214197034959915576798770808184840886054640008616642042613858904362552792511381205396342136460645711956381027726585811921928072639237656776984621136214958580615120304102030679489380479029685971700715840986643061550013331716413465891520587561010676488257656705408178503418718444301017884287737989534699864866140624819043352824665116867545207360750856988162008390640993524803786284501208029671472445143396917991512262698898890891559338032027314606338165456285187899175891993712564963700140205338767446036512782699341714474056933719066897929723544976632071340857208982273028769847923950741889309791671197898772170797522813250035269703659660797615620777973439239456665208428067143352331392261945341345241224003889637653369695119552847489102629717174851837634343345724803162800550140130612327024017679473737409837116025211912216339638266937260144205308228441724205935975120692524822582588346450904240787010523943461138081614172089180625686719499228070110907799894821954012746554742710100055843470268913558619016852426407255149569028020039560859209616191504473674370678318854638545978427550116822400530440516350761595141156018103710265454732050887903376932249572015996256616444165207750497053887504643283569061390801244430040862732219267716229036375557116252194621455087452831280218934866176482563072886913084185119593518467781823653293903498075980888856291540397411667697323956153266901885842583036318104348920235488459478525321712311604373052912381081050310619700191668072550605186266024014324969761394887185036495627858557380924763161254368392111281419491559276411670430627039381581918793731572100329542836499099192710050431198177896226391476451055515417494581121880925745894008450327904585554781778954745453472433268268696778934985732882885311013822207408781106544246941062174052343191820039414807658348412985729324167495703394311700678461550168862489892407033899627976723398510113868767904441796110398957194245634849729742004432090395687855814308506796567652229573853980871775481761982243893295732606166956898074357465137146296196828931506258067158598682962337180905751448006075735456667153102182079720793090560048557668474892468013605304939157718628271565191276129017908928637210012798765948622700017622997896450239377129000403073142406696722761121836711740122908479909835049627208055648660984845799350415422866155118107660511570066547360840420160294536248364869320324380824281831656905852777459911433609512283323984737019869401317405909996553939179116060017842923938116817295801452828336694358242856151387116156754245974630025402830920232328648990178694628914696040093815505763263603806063430207021107506712215811751719957666015504587132943317111970637823589122809483343723249125186999312592222665330755511050973114332378974058859251796042557911870866992891600961866949107245545013485955412749932255260518528576857404122381452996978000034623210263583618810875683814030196106525164407353407294437641366426417147699604210619032083532160930933645191468448515403236142580827172134592555788101157466481384475087497286108095564885634955950684854694607463954300727423321126253652731923931591079719095517140052394346638762572244955163133056310046811377794046490732356955878362943077376175887443622889037143473537235079529109983350340885460062818767277915547485155415237919849800919381894534969819799294016639181055371586240477032891113612034487249274776881052219863539922787366807295259921211397160159443165482697710301907018750411933138566456833125308733381219914530743416154584728182939844242758507651182536107482166299996067332402049683899716338977977966480308379416361421039039012398417006159595878638405577891755716376560729991338592181413339943322093625238030088301784081424288844334116525708158787221316472595939362511268636556717344351848697457122032317188804196534101799576946029844700890365594129252342582918204541041769891797861056292041925930846238252272160416856743276270169200955483539410396589479225061235810172365051622391688117225339917599534671797392562978529303892720320974792992416595840137740139186454893034224201057132978655905558029055660484972669421610169398615585976339089168221530286606265052568276857204175333085658040419422195448137460190848302473845122119327452655355850141916404823436403321300152929895474839092428224813292212030363349829096524909713497249027385858772322367130515721273997628564351594621276892231590864178850865852707947794525633921394573075135910811729184550716341452145507622623037338300702095425341501040735192572561912657924894120727166521632103237423391904010972480254598409930094874111711239150352646975477855522739532671545365390164730799218559396795667136577523915710047179398758461949982664371315172276641779663922050816545949611982318502758865053042008750075021478229906374543327102759166227044004240267038378433466910996565456096757434722705326627691210636667715206866303647854145030422321130984064798338909280938157556000573665858830186986220033615604667973149166656210217331602052739655402372846614779584580011225269043237672966437997134367663148512030911543619083518518393425608290985404934435909951740350949011719697542371650028304935580648383300136915034433080131828978783893671435354476062234451147726906572740216063603754898281283443650593567283404132303872592641058301746607021758835692318581901472608351354793283944602201646649021732294106998010421092446525524925971007061681522871478200516057885551364848914543319479324155187045541975384230415284091909128291838569725858430320816206843144666552664119224211850476656924452286671083087450683028562685312480294308187778862225805030198557700677314678500825363193546112888317099883476172537041678736452016330245874856984601431772847298423817422906752333733784087783341827890401115737892520969487717042320742428206240805008363893574987707496454087879458349566662560701602311993342316420496300170392765614093064187555471181337668069286268292571993860663808719030267405332465911621597782426415348436687254999313283020913037764979139963028337531823558914564663679370999778116404355228234973834158134336363937283287962803110843962355354016363062492714504279276120384130551050784259861859403116160324541771512509779192769014804316408807823706053359127459365067901988135803965313301308076953822597170750817380267837317736419274444102325835875067403140511288277468963609585377949057512673637099631381959349161648947524280238420413568140823764354770261931239934312244080462059614089408265045809629756523558509970516279849252400540144553797081075169992295347084764102215881000068741847744210042260570566206934389964934603268928949335822585020398607867244154512307591081229333880600956563563682453968058866129257018972124606952696309748913193012733050621593626428972885174193631191244376129565398912999706250025513007342349415665942971136720692355871943805624513058673326563563010059111051011184894749186955969635419538140558830579747702824850894832692237641017030410008873254197067319947996098971666998395831625012246911888478077183183329196982308683297715425482758021523353540470435103913370462808723103520176814942261680082700687203530620305614910061583313443031725315979534357868378740653407803759013978676501399809378582832953638443300657100472072460244983866527581923144946802110809948739732992670121301829149604640990392562644422065366652291166915022145361321509660352303410746584466726244998890977961934460380440897399341248290694113532854372831491003726015231154114932232176401682393037894824422783028193035862866211451397086347627139030958387675025961303118532899574593831301715527953494838173583761364873350431163340456125904966325535621826652532024377378737040274193435108913073101230942531276359673472624711389004669120147551270206012134586824991458124367403164028368835866256925269457889514225529454366793889406092757428650790685642230932234969332087838878136991909656502322155538654499192911609696206637145638174904553188499637629253384238726521441490539707029244990165537446519801718575310344013363659141227579746538728391543527880311339466767344534625034470971642642618487439840849751251884689126978492478890589125761394675095159826506128667892978486224168760134199061319065360034886618466377828945652685499799785899800073244911781801800103864160853413757997233547496752459975866897762317576961173053011086114609915355218362962539037590821498362702505203602449783299257544191439305229529163549849516022606590115186787000675607023949991372594974478624975428514305536048728060258599956045112854897156401796608745340311264645672621268123905336279427667708476308636177960677160742096700851224088060952354856240766333517275150631630290226354477835758922111744040704194078144290347283422339888740765334462580950272362210830911080081053153868203472829136973184494590682481367407985225001759192785219301028026453949354805433507825021560455471953433887410941195702760362809597393527567639461816653234964170734207923588332196316781985863931257708162277715764731595144759868680981504686303789806176375025416503047492708185758481893382127648201504075477436025526758207279756818044094749788993988951213070072825052110299515991837067069052355876084704903492609556839012590100789678088732460467362078942949833305487960594126014077646755132115312621701272054764591287252186889457900166413696454586816004883049988352084751785905116624020894520760027337730745417288749110044132453134480903420276407221709667165868276728088752822644645371496429143483968343739907968623162351426443703295848646728395310950103379989551449264221764474681554937221388509669639380390376511123221134641611134157205871512924150868475655844349675027966393130055886163716124263888110903372184977076799635484220678810796506427437736000380484276632137830832490976686270503157134541364974138037036203960155834994457988356149384832500188744697441091713615886742110286229744615296439718318176019200287984800638056993680833198909536500950422338298751740208391795934376824253221532677441217323526368333917017061640991487169648835709776140338033785654650669623561805576099667600047368677659277641690911664983637750094288105109026579867553132935110535893089646277402210271241180316899363902719372349830810955735323627326652678828860634762698195761104780739227635955517921898826736485852552727462038558980957464399373803064660284020743447567489239831261165816384681108819171815433955920933448763409282719330750581960495525570884508233963889143269904371034244397105033542103010787276151119418620128703497142549043378964249847029304588278684783233831472127265614900520713637644470939242547876053451606967480652568669237704043807001770514427868424089756983964300304550467289849883541940387947252201699100106761510004709018482982264350375438177370534827892242024189601412065730141329637275896508771353970100872912924761810962916598226186861047593037769699254836353871205324444806242084622914998645731676490965765161696460979703007084084770519099956019560759292003035462267666565103773927265260861241561254987705314127234799508373278384797867962807722714089996270204974507308166619220649239111324739546440420437554440037152407287371383370522631902539025549907299332174477282169410814830080810639504349647709925636562046977143919608052944010298643908628245272632411095017751395847456105372262264518910889564054388047284922463643541404117344196553806040247191008506218059126947217728310006950547228493685174245012755169293610079528844892085736580550900488543339363957123898919398905240285604314602809320465301415240682191848020585840982545909123356016599771639271730753173269969604186618824636787315454808226270861781440940855323272488616780100926318999711132463774529437651841986427367338023644274882502448347702203307899730551044478927552516771031906045349934854985472112359608437646076991519947056872133088677701196950085649052958853497412665412523078988873426288309917205444367172111131958975535935706228058485862480332700345894110311732906625460216885808753658264966722133672213872830555606588883386292194783825785731818801628355726161909132601554851229242561299343668209450133286690763095397958617042742248408309135452793085757065395842634692575090003426490547179268461932216060209557442705690993255778744498520952862237087591798543944083402488403076024785755600939465732435028741277160395525857530468919305466067158122057049930262040551417895657143765058542093239154035012379753622874919022736854635054889136034081445238267282643192535299177749901510700541496821111502807379206207093949928399452546438561224493160384444747788266752942988463798949817131266218547516223224015179073611769936758963845658529026148477298995364054426704374142797814717879635183164359667445302281277369690801085731896121111425668753071327557973646286034003499340671451358347634462715014575916242644879928181848673348509812314404831519787255424089290016288185601656793317716096732929423752325342166198188260781575815128294629358123471705870489116846446164049718356427673749718678255822073170869116927176652225301366096642848540426968070180771929389104397121453231095869599954194746714336248327574153184811994136336536079719202186505534948885189546635603082815116018114624816830500909559376952820826849239365818934812639049042035923426341092562923350441596625632696356130684732615980535745313222880552780629188160184201921834202690255755170419725962400753432441173811475286848020870755671444136044560638061679559887217707211122773993224994387554216841391390019359881817507910745686904109599332531456631898805649434047607401112615181690636024730345001496509193875848207106214755362659424761803150152890678634194459684271999869416843924163805212050676329669071127781054655672225143391290716460350121147020113836034368516108697926905888846586128498466531294464413948688261686595059721619428235931002719200162737319988417935579865507671750836602556132952434048583547976812653063365016523972653546735502917107862942826958126148882238573402465304226986430219273446955029428735245827496254311881526793653535629065059287504953943853614073848583955527246548442506796058220943970405855594787445037016069854249791441437250679139371266791044064739103462724772847801335261646534912420045390606747866438922040947244872048843258121737464276365371793548076457675504999363961336915206752664883204968520563434281912362743385807083211628136940856978967200830506476452256686889316733095960251662167267634401904913190419811486666109431746423747989812938793833122044547207135350359195159301232941836541025236705463322747025827963110857692471485406369392639600370673406405279655770643476904190398427968282880330266929014522721431674617216528835443208884453313720841128831777045662478248343694468448920352831692282806601055760100707242935885298460808270660516774007556889424741813921169694624169503475801629730468132428500056503406977027378273968647443886899935194087887224006564898353134090857076163920518815266354668982369889900721729533863407377264927908210449652780924889362619454146228759344339986800776363069523608225059752283381793499655588030319222080299039160726978036304675282903403284893860555660757840180131249402030637170571420417361586480367552079668517425821812082206067325660923101888354471276978967364227626920617133051399247596401169686366061816226307357588152113955707765356401963092600246847965648065582146220980559010626295856377850008173473909111812257773387664790733604771879820346468583699605477262116377060477569662783601054091394583758326721947173824008582100477038689809652302772277597418879404083368260338948932357532415480935515943394306710186572941777230723128962649711789823571249096346072695879557310858063541714217146524127399329807586569475083195806726776741420607577297625092436117968491225831863864516118578669786645152399338104705002346756931976629964525699256100304668828646562073803270739997988383007796563835123953599632885541432594670764863465553902902179762288268894274742281901005298118580610499500541398139806077170918231790600128332097961017033405005908568958799349203784402989169402436269890323196919872347082765598620676158287904043415062739398955578270595073795715852080740363294755986196913012159461620078284441124803367032524549752353368099102805738984651262561850659765162023532251180710203978248304287530364728673653451041051453627955464256446564857070258832885842094814583549540791504563489151169257865913474570505801668654021866647228176141159163341497607593579838273436253063548291261590500603378283298674572396101049356707345197264974443377823033502595242973548112263359759644941738075205885828543439940689927730007548065074428705907784802951444283963648103725435139664530465541218151371443721274481493870809889510586453679835620349429491634040995771245770950563980416907962398524685927585919776075930480751236642167326372587652389632951479643391207671584954769779216730482138393035334771975256836234532941149462641563680701966715237287648810044602231378698969969373879010754815722804774070645113045752950770364275519196764301075035246338573558835134104728955927940276898170259116504463221517830957928232318483757944571632600601313616353770847243386141665359088451599193895631005122408923478359255344553644896135055805701421109144114204665809985211221870288564452268557155882680773091609923771530107298851495991582749880397749023438274905246115471294011924475268345216833489197463126266179010600495044879612631428518104314018930358924129256668416044432634791868290806954015147264050446886753342418380479310026645194360596335540407985541132764304271450602010414117204097688536012816852692994347693333397860398663949967945183741123207968320385829496048160626423962752956681392756786792095780400009150513795683163810432939433080774159030075726900103694732628058308233242933242785764287272459364481282591152650555146055678597551254846334867822447262713934117000083988023711439818700085005099754131071623343982150484641521169759423502291657170628447455818742786006047714486118368990060484990638779142987042154761729941226012349622549365542629341829658130435802048012455856109333396809514034142669619120537499029185157712767088459502310547347984397927044604144771528522404068794277526745317165866328975717519196164421551061519937978275793949619358354541815237644155590187574565029968622559932738497426086347218242980357184589737988936249170287818422378341524787188030256393023128588095714078554752263457459932788214092418983380873688270394104627604508897802561776292040231799808538747539776441884637529054872038881737092558463340225455980286332332251948252336635711953060950283034347828964810800054295513556848387838322759908540864302460630939735889779617276880872766323252406049058371909523468190774900243893966616156029273261653362520522105078744258101655079859528153500702184395333651286318287120331894691159633329294242487273728700396545545308098367151427742044836940846187060622938084042073939164584894480790261606312682461727891733606847096803637477651197710633925208913758823910312731118523553034780625768063187084066223947029429372579447660330890686823354607946870212291279832645665463310645381527493834506643819132559234012076102939987013890754481379865530119215546571623450115567262254261897967031930361375040165953664142532165693911202404657931127319342250163894605386773750201141599622242488096111267908840478506151166484087060957340663791856318929647296405996327838118376169614819967302298133692582921792003061042090578052030825321502505583922355509348518749394071397681857356832490105057221499525401385977353720204802231877041697107950499576532822116712177490570288482183393895894500469650191704194022923089054576997663154701070918342885876921684034553323958287715768177514528837380453670337973777181299845400494698752972465823614760199792580488061635964511510917066772416997865411186701617177373885029297602520027658790238706263757330208355829136365346345408223552973048126124757950815492562135153138993085610447636472084888260849667583344495549750378864026344887129089889279944666723976276643363534491680354772943534457379277431575889786207949355606557837338670700938721784234510586370065467064678234364928061378612773431393026464475208975618462034049386259463683121068012572028548279521338023964412652280467391964239055474749881414551971244015918642061187555126079710012714448514015744839594805582121003108474556420735287961194221707240248331962400655442708176345920593384323405155165563828356637663968584052491679018321182951160197709104487972913391183204220965320786877459857472927661815239620580495144213909616601157711321113641717779267008591573665664010302774245004226063065391284350952497180021644688447474934608784383657950182470284626795047931566139884714482882250464129143526980615446182471982586202192781786097939519135836314929812477668611255650609009452303059548322350245767168964293936724253260198359621639437243222540128718917217572573076151957622531888714525513866732701991076375298281051744119073922500960316875188037360747357823957785741575289954425840227214123705645564505590979283628006106890658887159363313772451628322238610519225093826896300718093381993838637135406790973052908212621705847322058281634931747824160749444692166482334735742062146842212868573009979793445308313194007210269780159554430310478461550700048557936611511771865341432954941862995525364829519342875996861348991748341999494104568662470125406429235764935733939510646936580703179629161978019317794120587710149411090910763933170164739765298695529647502607399505999485562185163992745257196551613345617255025267579648620156902181535794112691835053179981010313233338731950357009285549369802671021050978766130792252869208319209835395286850413377571640038347141489632588595185286723465621304252696320203201113936269839301154771970050921731418629974551267451256147161188895270206314707101355602539538994432082778532335925106935811489818453858463627078395942559965350245303634877839158630075214992219607615148753606251570368086902995432659466283169189276383273446031231297438678962317563162649471867133111062108084076345996643140286505783364065524808413050392763527445267496961202191587005600328598226097872763743462795066899634354810415066021745687888757013878070137291614881398134029623486863408501340815689461889663203500494008152380322389746739296285980290204921056546231615089954758836465859845490998725471558747582350922470222911844715117724315391719924930031345513248040868710571352175496901554228700042550708240597386068843357545703715919345302197342632024065597305084370593844846635036464380726270848120680244480397645077349416341178721766341258083055156090015677327667256595139842157050058874969301284217216950943826884390541364830551705917554541563958144633569538749203651030189686516338549437152320876539128398483724666945689394068739248782987152769227216991407685918061682058360246083770421530883480024616582843695371167744919652525150474941100534432411596403363601104753263783295999077657076322414325984388158388792683931964768626295962792602359240470212301420070212929760173690557634326448871923013097572649944722980103052013229027428100861642654499119674703331984235518741346421980712261101372410586146462506627100011412452266924275125629738266903061759770890056726055669942837411404572525770015082902165897887304627599117758524853154297500796769847418447489850728817567681423074229298795957093645125957478602519449180983781353952557712081445954409390171921087886692985043068038834700633094289470199186410926252516803780874656504947272583644397076713113295642047233594882889426858864896085703160118483572404086137542003985423880044710909641683221518143386198503692437975494918556795430285393559202821679197640271331025822400547292221147643041665266326129770139906664905243162341111923706808048152103237915231806350354175847655413678471276558644675476505577341193070106066126322812206357418467249542391055734533633304846957485750337081504597860989857442610343703921840206182057170106209349976886656436261216442205282947236538463680912218442703436656751029429050151135387744617649600648278467184230299724437931539942308863362187640667688668670685880725518155430247439892407517732407844335019712367600340248645360884178474286503290409368935470116096591587548558697431174031737986349480162999159438862304864202524184971383156254516257586898945677094664419686145803921809441725435998631015533524709120825014418346024216486294691126455133847643307837223257556945020786468824594719353581647001261139944851993965066980266313968890341882418886594836054614069343001297068654367423292600045253625431359293498698370698328071422135894493049381519042558727879712921465681157685168436669262729264149830981350037085558241174135190275937761468780699076624632123794767298444708344925211274807500695562892351936372479715894132996462802651377459935716189417146382473159163107969807933434756123886132236070504689198434106883884894900242379305755302358761941091405548084188392586105543104888264766453075114069079127433573394348648742351700126305452091942291404540804674867243465542879909966114729057756698320833917066025990437739512344792685355695737224704291134186060499692163845966299584511127616160045420802056390481620877399446041856780104890467845306443610273557144059467447516471128419848034833079646458915957755339364158340455240778806629971813548641174560124888754012623938704683804452657616253495526352869330055958380728695412823379195507870797802460108250304737820332013475405146238690252869923909602625323566429990038255414762822884256266878847020882600204912666873146358041379562300347723640892941415489530970674035517010958172357132350847659489390592630750441851845218621813411731766786246124796924127767498242401255026241943064657037759373044798002318770506830045138541175829970255242574525093903540877605558650119347116472594557896777345288324222127289768947657942174954446516424500963746533828439857285298203433174116268495782379367783821750577680105426477322828842860252336660319343208811340634574062432410920818968980342882335128927129885476263060394213832611114409344064672613870234123959739411352326801639001211545417783255111155231222192087375946299083907699771851770918474046208788054931348172701107177698433573232352163986561922297653847849172220647240753141480326504701594030207661878966790334010601551091508228429812168939111718581698633291347528364625060163047014596554110758843222732584120817377533665973207298563325816606718287511716889672037272693536032833154710912029710100558313241427965059910012288485651557834674065855440762130580430891775340370097455819835837351702961015729481523179258616286895396548647792582362194166920648542231315296414606360929476216550009813653489311489058707041995874614181530273589526569749380673776881161526054939571534785724826193922745560961032350613718269719439872402086190595904315092746504606414004855455490425745416172863335914660262078503234626589421213185210423411666260678487858680051772711715182136666646490765845840699918354296484133767720151391547107898829579466355483508101642790044977186922613046154346426788703632755159733525512193091364456105181827702442327208864862618188044813899804924144327270669131335983099162464997031690404255533424309754266630045244294818506517719885760491814721005570451593710929648114467308995736316822030542175042195412221177126891816230098340616695816289729943670436400852567939341236091276320562352609810397606030155831302293505158693812505344121385884172828076258425238393960966079289571242915774789367939615161942085512379609476212451706084325225695206882680335051952763455235885050597282859166909639528477978105156791173887155772577269319736487282028995752635012230549865484034785378894338653757426574575546156283093571977945745468792021172719801768959244401433184970912386256838864319661988895354563195808193852007365391564311431623204755297576100502547858143073795086239549295256390424096329399873030558033609063898304839807476370040531825406623821516384341357956331775342361848685121098915464247910725833518892881558907946812778963443348548526253568949190014300008844640324635209038176365090907244611567397973498523140181890933632446228694912913247855200804066879302327659623573739975527655767891085039252510415238046231802044294928388226844324880296749337010337204350008446043602910073461178888365527594142965596279119681686643834443392764541797143794674397207508592856667783371368972300621732629814685720050090322301303590545120984569470834229838792808575658146940271856064281134226654735815220123704944874040029577592728136139266806512519460935742883199396506533952289103056954430312621885267394114203811324945732081129618008760759315793432680175394728876436012095963365186746855375724165002703216408405476852908113486192610327855061461837497980158977609768395619753054826021797038291566477408209352124425951608819957907160407012523286562768808656975345663633624524029310884780941602671275260435537350792545543054772150247580231996200793973631126721620913075242256264376744962471435094401026478866651681541665937179665869958668383427751158368003471622481522892032072932440225018833549359195088459657774237730539619039084657040194053730187453820095294938966811343787888279390291551367585081009343529672971055385579931267816441612530516216587862064537673482104791372276031500704082017447201628593344835192968617202219690328641253825288927071959754034132851563037291342359956522461852759745666297707984360362488715432815297912456324090571092251932295696418700223710305485712707336588105620461106680301548990714196642839520706264505926156480168165414809424282017031276252889066841788814388718907350369515977604753388586722484713094392614606407506110338370960299106801995795721327650412860385733989838097076831186917007868653940737184261990744956169956162745160216170551653854874933506670771832604714605820729897276929167316866728099989387465262605503394312624902811005849045886557831196276938834535858850311142191939782966357782775490721993795869251358643426260172198863562254910573931307593653546168201915335660399294140843624917513940027402215324589613929994682036722118381873326177644036616039104380962673437785670493031750612064753636905871555286045902273518638248571780683545442398114708738235935204354092170657777882610991648860023281287651095686351612393217821672005849501675623751805901721567141438858099723479597803750594343863048566702267208571753558402344568185360423351695941727079880244683502399178373496877932679876833284580683749389957252321475537560514332908936602890514133728590867098792687977979784703998029498684501291192389689647204805268857253813131603012410415533604873764940429846956336014475136839714060020514948128952813429478903270129355384805037154977874565977168486166631774458478990721526593946582438598641914215172670938403644718588668377329086283717456187064904798868057837775387549916545577034398998867028816437828661407083054661864408206952482386701615424914602565287121976552287324952203897384649369848708157064111382809069479160856325843809878366114089272730174984852642880615298218615133044744289028699124925656640312426817250021655609638865776402875169913094574262408221400977164601584190069658637802195504829761178720620692842503207215502391936380965973836459878108579416881872773439281649085248904265144952915641440279297646431331424880990618758248149437501208254950327573245461575068981592508285780926067386994042480271638446760705142873968287122774477402936619231224238068390940996444535990864209170791286866245606052460704289560077453798846847326081116597884628231067219296837805965002222740243585041729392887605111848750041485485639867669163628211230340061764526973124519562483187161168664665738350547425915741118083487761873271505263679959694351161442286589699793301691511264145981785185674865583440131636114503116180362918100028514354899146938956111875320399820449304049583178786814120440306078884895841335590821496911194036799923019595304884195204118191367304440792961991203312132312510324311390587611891695050938557681800504729527697071111323742016121295843089025232890175472687336655901074135982628366144436802042650074969116267767539841663584780550526899855451839304678519156614654159041676567200950662250408973544365723131813642455822254373962995757234775172870064700199147528165119056090317516061319486889067181297663100797137515262873236571444827685461250615640749931594241994337365738699957579331387415009230274361578016771922770452964280325404704758198330442024311449952172328844561176851409227029146593065349771342642042217201653057034237419773679055295852651569603084941133345849091179958633004790324335692652505080953710418008093350431351284272062289242723454111067302457127425635849034872003293206970794540481854892030650631426961156462185031612322042975152847356259531017060117573943438561715444657064110407091280749927801757414851662815906607705118311886086857156092381044199546875796800872013277560280019489404967731337527502050411658455298591385650880199250403221251996452538932813650344285460987128653704621453143421941804790419646312252497058790948197288728727424041283186744653894659306490098565441761144857213342259186660104373876294953264649115819012187803529570293871759463392772978577771396815616818161759307181212919845149531582342741187312570637168299641365606211568336814774594979868757043446889272417432526755729194308621857798990828862369930428378124926495232764438843807529655892224052998673843312664320962553331251550597800628409175480274382930581905912508694600296066567180410886677580528860680199057721802020646984018000724874007701384250999476046032430113691539107121148229587742578626514840258683303988871345645756538955496186034283142214336426865111984450807118101877164422513069089150642988807991087842697979187361602201293662778426025734680315588761895120990003909747369515488368912163111399184298925624221948470450282299699897486643557836587806233202080048168224448152114900581552792019225221805529844905950076444866527326833970304754271355344497836613213331698537641850163478411425523988125047887476323646027147556294082756586106140531037057403035373781368995675022212825762560106062178414700531038404496015532236027088788143372860976749876659803367915465601152968067300037182031369965434345046250069669155784905097670314947261621044253088069330332713748380324177615051812288950748035794797842620703362098139253893827512120974498081335598655306188668631508321739104396637039270118483957271008053362074046852633862567951137361306265958338916853805160480587677089650098733893462681506002111506162670792086927224248017584217775854921358033024261786901255154568066312771315743274206609577419887793040012974781327683740724643058582563376152378778839861109829150527882483299175126842677026029419154890937787951739316974609852000952213251836036494959878892287707295340933226352118505241470843071048093097708565005391380333142838439380761187456604406427944810822248782968001389048756665640076596506537000392160249549294588528243112643722863921588859174283092669009668820708517940996323797538772911624894406183221238577976261879587626887583269476722433988044425083290959658725738223298268590843607648123282859526211511691390635400556127211110832952199448462853476692727150009470272806942141077812587833745831872463096122705104254800897448160795821126233144755571634390329596515650026659887718957872397291819458601105605405573366339892977724879065211912499854016496704966315976826221044231177168654326709750179134054397488890092002683473281593056036915023057550134282773333117423293708654687341446290195200510012571230113124723177371397065677295549069450608042295770542053334922076392317409750146762052503246706186227757000371859666553662816551414320201333697661612608546138075289990641283852932973323026361990053843821323466817559341503310589148550330283575404798147923981378625930714172513865332596593949625688651034513100766756056472421027094879531320849740842467366006281908307511476113496368471942810846188326244685054344005575644998921655469068323023258571897269499936305671025951113010437310825683269529100882160364309563460616857386670161963927733904644796534004026021298650813049336870984821316721946124768998428438074697849494333154322543396214489430620913886424892581740706595414154628905823666800022808723190014124718886720778901523636275739992256113445051968350379476150483075031495741162282564835916582876095728294329304596273117887474744977309104301385064225025395715763302138762882426156543420759617314311343754924391061141064395739169156171074510084480147104558970232745336433979228139271584709273125472183871932103881639199119155846057360237826148280786310928286700093276252306834886411660283736955681822318656313795011277760415015132568474562556970875412394798387823669825651440112813724474227419191348838675112076839762176972291192642827602891871062225231820749167788553095344173760540343941489184743750403301268479898127171031712878174875380359107218292890775279505193474695062923785721354943574910478853022486703858606859485336123598801077355010881596015990405664745032030118004998621866648207827575137073341497338099064358622452665669261700913539874922983575937222909823829742671646114288132225223938279191796053470852858439358390487338695590642252553005870989537830200291842980252742962592938437717763659378389423155200788570850639598009410275396062235688971773598700437956996490971976585362935567538160691683182508544377388150581264106052279131465963188496614492410650031356610061727123246300663610830321266195591698289894352015666460362886772333345009788578066833555795904686354278531916533454082968675150019397064241897554520798455154225640482080115012534709852118451456457508085576921460805944951489114460215299823601806598363995610005404754451271688650812078437769689037949514273475919589433441374388707478911292276222032670752954360540476930004221938311983257542903121335925003928044466272332047226236140313733899005523346558471401629180114937755103574440335384565520406818159894260700344544331354571881143444399816172717186188778307475291084510199209107687020721758312823478098588002456150448855149371882109886745039733575055617095054035544022540324472056495285129962186391466246891831268432229215092428879205918147452307396975936711198177840748798771163157831538095166957008601923676515691587733267025975397982123121353072713058428344662296636101681057351534321767105503931726961952144303446334579186060076561287621692104900428133988666677674877143154997164760133172809020465471851307320460766926285201220617060352547741021085038842376096354232188217283993921924195773868711780059177044780717813788851384398102070391666821602198069881430082262353758412609388842226161614240487936882883638367651977313036837184783266633597637811943456130222684919490945647884800465895688695236908133881229064458765894500071406826043520358715607225902115358471678439605453649974892810362942597935472221454872488581989059339599477359710059757317432466961517210069293383753224974160210047174275919457357198192904409459831916247467308258851344421985512241889131780144466648010043724902293898796360470841397197451155105386278883810029413204685661548065117052474602089478003710744058648424831376567497299017701149077325866196294013686420614122910800255814828549918703871607035358354179208044451325896324904341144663438220541942700309888729825041902176459791308153475927247401986892327096082423042058256558858345720290587013746093715750345236284526009468957901066922921527370606275387632490388480721675094608674480436614090106674590482452806582336867896782912154211121226884104286173424101806643958363933155911643135145407843313863938888204858158692866402544882884904628400996637735880231822541267432893291499077468773181034224359365077534322119475593345074902757725654369556301553491756676164791897185103234661266140325863016841975940285427307072913157990078592290088171944944496434584889770007022771849019155904292940078686306235970312656896974229957495879640177655969319849812427253482447198990621180511595018992665845201186094611869076631259934849224557787057220071463301419183360779598450908369599849021822904704737536484104664208340164317359289187293245646594642119840213515691996580513076703320131257549387101230788193365166498091516776528016149020670739931889504354281024819752118259836176506239210171813469407099572495215886140260351386857055627575709338787381084093629390637334311402189207733643068965890739274547125679520163026773666349431005818110138467447775250918345158112575452937318696400181227344653902178751039485596667703914157841262701134189879603439530892188878934826197494399276709283565210690466291794100342789796203590399197851168499147273165405224707424410691993273876121677971780840406293275516765165952405027415433514430711576851688528763163422160250753512738605795704728422643702181034270238834207187820544951661068657954553245548100923761479448689572025131853908917967103281688655849589019675596780677982232926839055707177678728349040501231203380085324033015577095193680476144862395805787623024560650120668510768114213090944576536775123394896247376282108557330013174593754987052318943712015943006611106217625323850945424786710168225107542588121438236323343899652916353772774893765780343302666093710639647061728261805352931051384781141662574520306307902573727156977187545182183801237979022994870827389142111614435278801520423642666318233761272082121279506416591579170089901021029141783243794097295315191249240169168369161684875504942390790680620509968581754365632527993728375586677916406356095319056704227505759993834245404418823647045577196553895452045844390171483325656221867752350073668975005673413696847049589379945885296359092168768005155126562950738904017914523277713245518793752147703458477032273531594460184322610455224404090049420643013166187121436118914368778479254561757127828379553397883154392618871154840693649617265693849680018044013930619688815024977999219258181762979432628439982141733136382045560271827838274110610767929156387598322021083128791028378996910082857290545047064832077270958842224469040311444952783591243922610238658839413594649597243699243627046363544802372875621709737694840208463529966514433629762236514166366001206322511746468243579692305294421190703434633366188530153114162866491522091671515091691236845506769108377374387096039671242039594926024009007781511654025053598545828754859655573047406585825687197921288921483230651081782380359033237982230415081966186219863137147649484269740397998761495008435664234509206251703622715635835087638473630990674564332106174115127681285678499390249890701380808257535049992092703434219393999393164960981410758748815401315906798796082534535681484239376332051761997765228524689557625557926882830740069439809768372226034646441911318764626141088441868114405925771310725466480613286790208176479121266436568704828600758329012201173048696241792684977247177464501830937895034298418219150351254026936258214753147671129308574612469180526483841205812543387852760328690183644702451213018294378223395522153245729453311716782188803061786980714264070306657797852188985021377335552683831666744934882765375134646671171244858982913359524138783754337667730341371036617840347567262572822617366936015318929052166068798661046396437637913007304034726256923352048760826313088392746299172163842155295062082149662347810354460876960303015208651060736678248135510141186838672146289188123690319740276767174230858324858802290229484377107913359890518314614894782626179973221082245358714598793309774264690624168659541720434904212798999020307452508973935469943801330948094933719419558808738361643780628321604528576257465287152186687509568424482562715433131347384510523225933482596839153659825278397565795423250706395563656296844395649445562881061367887690839802280277111004693899996260206269308001619814482145764737466508529788530108219854667625195871618730263087821362457068516258501453862460089127006659873829300178271496264706443284222470855401581324777377431386932211522133639702367365111090195500996430047833866321976730508996785088020789035231260577839218526284448082436224691464745110889624634457456829572913265727501484618875226186181546121402747311172753268837529588719386618006901010798529615415806277205190930667366407959785648458256364905555580187375881648283035610096196589655824250729678495236220022159717511966587325611714263345730067894122883502545363553067603223138985720576203658320610855600411999513542030453172959444714978220228021685226032686860642502504640385066935897789962227993696901654449230913996093431821801998493628337825510922211589284547918508607780817780438722376596750716901062416649993603707036613122367913143846261240590416090585571977177701281351987258154584665274637214254986921598247589607381090703036623664540400669618484565779883227177877260127305036592218674500407471786312410999334065812692534728109619391249846394726263322848251438020362893892338330067910482260364121537153003077478856783582215130356639177918981794001831864143688456943489869740846368816384238272485388035553917605306906474064882575629801450578580353195981718524646072808950067069669416796383023639917814721185072457401153972851716133366179872856107030583054365422413537666951996283727239118052509324190901746197814416191760580061903008883277986580697003287075817006295750120274066309607188855072783112059863433115484249667578382220548681894009170045788556978637190797137504708236400560632936480500789416046924224152332452923143376701668830565702244791244280953093197024441498845446934050282585289326738967726019931220518747745497504592566521733294894093760164962553098462505710020456941503504390105715211136264153839955617664949331373413302005265952350349567248346228679204557781005476803309973372561170186938632798556709397227359173474277523079847646336787169040051849299674669676755493100493985404995871017000608420116428250772166694962132052100577749864404040192284167110853674189887822083441844186446081371116034762323888073259003300123104953394115571973833445002003571080571030954560762531085065130335964344114509278899504154361953792697578789542711639014027509131030844038811164909917450789780849716751283417959667487745664504650745471840380817485674975704762413964956002247177285489310155624478158669268829303392407686698610813348517269879030158648987329925885173618913066374754731049724756636445301414079224473686932789984449913767938405650271456595495989399216724902882208076841789071943089861535391065919817688862034877756204494828405997059892308235944686272593509531968021556747073468611243702689198720768813037648336507691367617334463064619489239037298815603750050137675564329944398130824066856615900140546835049723245337620646748701554173775933337703566266731873669831322091773683649207429187279962199239828627940456078905098770149929806381198452575615140994838416816313525966548560320174489076170413998166393197261005676843101064717627694937650511481823834693312898358894347619086577807543072198669574428969604459176843578449152342016170920840678305410887420261412383403439202280532525179236984645859722673805744256402344929198149079510179017117519718854010523625288956768963836472199711014459087149166412840673055934531871192473348808767609026241429685133183897025964122988951579477935360931828246593130416295481400232003532497394375201057214224597967772233514518569692571904769539190358017251519075188057231369355314568808002415743824653453424399201699700249954102215572311265451983316761438126858405138798864011169376726674097836841535843118196869353420815272153725863405749953982552525428239110293453978299501582928914164805599668174475803311602535003597753167832521749413836583616718731875109887034008853462366650052579751844901683739184415658878685696117395677199811877501642932347620278195089793701419713864821505754077936444572007522926301546908073501744439573395123806448086262824533690592482942651419777234589152138464054082108185449803312614023369006463135098474732422551036600022705591225353030216257389958979988129359110250585505722497048400924009589288801379978473607929387016123023029724988706924184634189153286457760670383534205246666573869935826103129909240252630979781416202575767018927712605779684540153221003308672750856006151888919938189790898509122820382514699489141214795331700496302426188263195820995966767550799679322806269214268538002278171724166276868370454204234573265865639535635813493703468819945931557760252072096793089508122820935307333057246370333441049502229998861533568279439303082131178192154253217082576246469546079063591715438636542479796593080795104502735526225903314987468329020556286503764225273731291153611460692561642559492925333276229510342250821770890962463193438141266031946353541442644098625489538583597598085766040941989450189150230891586066516816103180561586552050256662086314852313685984109399398509190857830146855074057727421085991802998605511806564822686973854985930265538594682769983685656154003254461297769511206017690892481040766402832978209394378168548115536617400339056866439388930398635548538597704209553031179183886951956114028589700009908253896948722268058889064013732575741418472808947503792689037389018694878517803899099224521628054229689241895851257811202388742933024841636952979414006691270853567356166311353444123917868307930836631709005192979590325688456396282300343548481443517697978101090286792962027489029323124237644974091779473348021503689987876319537677990423840126885953783839720071604625112350188023393976829980234678695083852518414370724169581705626434611598910085701677443822557657796299791739858524749206991956354589735031440120972703525107706056237679193369384329491253001591927389247888379779373355086556200642546371485402059859146345894831202195058600129431822964207925081429226552117569383683492583714988416276882547710245709839624059621286878582506901817506895823336872194176768662476262654959320180184628974280063379201106189426200979539660697546320931304073063286351352717218712474776709096987614276916847354838719987357803637091840508765160557508037575203324856388412059642492394737489361141454780187387917465173227347527099989906975631263851091250278329741423894863603177584937034906961764248876153829387790145845393797345302782837495591986742091611065569113024438703249640017147933820993646941358016646808457432617604493045861954571089470310385359112375465825038209102375378977384950674529499536483012879817347090415941253539225703791519390672259246983243182829286825085944731187756615421724723878045834021545598625696203055606117625238980370839624845125826858390309597652004724628662156032697728635540878207439774689848895679579149501889247928117354326612707027085296238594874946447501232219703254793217117233811633031570398024195467391878750416116532496526832282742115864048462742440188592437190946997350507646124318964852195097025885493742693677247626767238924903834964515922169204350902253239919218104204283206053464727995053545305955142558373765723667606922686722691788396061305739794056701867990108747056503913993755752054532337674868047634562210271543738447424849828995647090297226844873373318554158751280190105606018227864277599354686241418013950012740433567284441464100693358844926854905199918917247328045306941363807409459410822601049335958707086176548007121060779345507175705370348240386103703888190736711086037878434811788062139745509958922754705458248053863090623345766629304817812102843399133095907991294737015975405381101791318325748284592558077053179356693474034393537314432322995313147560478286893474806064732043951507235745803296799057197756561470710780854702374120305589029542647226245424395160174157827741328468241881103626056301316028886891169127558863102909832558841894198179061487945139781306387604827233467532443984490707061849709100852364056347707840066999405031681933388708469410960587045316767282732145957731358657851597320479269199741572114858415952362562568905964519655721214666877307781795323963756357684772442244363567187817179338357353517817525348500242834375994451195928490014832543057604042372468203063985448722464691019188553418653154636478665372414363120574182441219065295804754201087176755434824538020406812664062551769887346213743888086504171141109327289325992863273560331886710408589468525735973974546372174172303140991028744701747841131186590136460762327391560657095085948998287507280808394396714401244776492775582953900351775280949926039023291034052883088529484315583879334072139611272299223692879780664631950866336318418243567684260975175696117306156914415166021274523839745799651804132580574500395961129518320374318458022582112948085140692739985453075989950093727661805399629879113675525981089219706345314977541903981454570379514225786849964019455475845897490238002624156619640725768917219386832931597975410943110538197280948239463841033633639337706008929159437117527637593083513467121321506776076153401357854553252290128764491558443801991705142206572336864021241365121663411336349311002014726059806393324799539999317528604573371083323865265838802944049952396134025175399035606631658619722261457727387390204331855056968706868745770596647681606705040597581501367282848813795645796416797667311575834083374192392959436740145568677651387795464087811731368840727862489354455185835265066403067072370058160294951883011915164445090681904499025124934258684304334879624275253688840837783746423391108743632345298256509435315951755243601329472298460254730377269245685468670969965264154689492483494990603603688712356234219963438256085993698882237926316630944495756165602068059761574308439925037469010606267497872714060918477393352407716287552541283778276290994511876062598271793969391464597834766553049923748499486268898290639361911247284766913959462963504838059814128272951363539570417169572539668541922990458056354645757912201266513601935141247037306221282446262663328228735859347143861466050257755044449075483767314029785525414305332722733146889569047611451204347365942555466381453743188407937208979069144664719843186758910927385588174656129542398972644137756324092300901929150008538062266897700750867469220654773968616394042835796941637193455268848685548700710504379401474321171998610343758522407081879274269426184280025352286984377671661690786766425902488140110798840876908568400570121610031485505299805077233896637635648601699952484082031372741607521206076386988702306176556615310133025548247897842197732667249278679276232742338617189138629344129326964508390851851548007575066882077213566298769592346902260116322169938225630512864935429528691850776430791607628853475901243111386622498939813905494307487036442951239396018662030076644758649504444181448640564045932012142770942230742059086782421305259265915338943605579457708470148927066484632198538489596832074445818527124068623672420283650634740751365420866442849052725204559494065894727495898257537686274626213396657305894600829360814279917895687759989145082227282259859764378473606603856946800928611937337543955398155007199798408958540805538116906758231127238133159259767965105776536030285587761823675937526533965887634982411934815738675728457474397634411509673352631092538915804881727738156564673618799087743385788390732733469403429029312874515997081778255399323849742794779107719055829846228711575004238907762803444318317898450250151062975550639428280035264477416754846632637123000087734242639662855062759224397606100435656269455979282201964831432700801791714077872878188907326704976223774095891165504897771473244884050239646065015453917274120703380459488462265110253330131262313038434970263153537734957475409849446003959149983469726205777243753444182094523394629648115847738375783688059484073871201334482003273305711672141820157179842593946601416706379324531157176551674799620601517933628046494900093231282623542726612346957193018814307747455681942335810562769517731821114329125691793712966816278826213410094829843254200356363431802281170901808678230081310826041396518244841210658050341633021522563574534770592640475090576104943520753320317384772023537825312727224073642555679465549228787832379021530148907669523504105753646091474216956199117222133041212552401421664708212212923679470006054038263807435822975160155835821168168170472492926273015610621576381848099203080810874547706813431241232417662646428516953672963778380742329937701314035966064596209043036011383776988042915820138516102879350165519402671960322137146043631290125489204978584739933713027478096623015987594637732289115470312990712430188912269872078011611301839004801132413682075844858550381149711558293802470532509216625714356863514647561170719872702203251167368324856366682033340406489476028387198388503268962802626513474981658275114563053593558575596067286441684007247527722782175742122031107376426566595185910127762260577698410037201209307929929727644054719067762640903814030368071374471767573199177604461196256357286705056794087699044343600892474725071987879191885834746897271014709959070117182234977446927656248480185469040616527761921815267295574708068376359165324577321537086658944160499344280210187984728848178815587903207845643030082268779994390634852710794392084742410731313352600407316374182748974226094568782547884153790144819904087309559072003366915579866893900085317565817652255642800984679917059706885789765575750101095789632418075758201308581536414499063243795153118576449768105171058062503285617106904957249006204768011966570445510310997723717257271669725073340588417016260661661237189610655923560978775517315318932537079041002557102312463502531885712740786475022051104998986931328514471684483953242813341922262193138967543340871129906682371709325492400545411097927235133845600924567219188961895025628656366945239262462067673518997407634436909202396940287629520052827819629919729066363631686836755280843442602365795198747205407967213946936181591510156994368538722184225860676134802624841929974144559285385918258519769182729396790274055460336387660490016715368043651365932742573458376001819501373303617148622407519302681835469902040562423375739676242492313706295085765043218923234413663658231083682152805060840001197080471339489165819432672086788114993302363844140389573262375779267381992147108122838806487833964781582558107962266018496613574414259066960353587761282275423028206547274267278947537642873121854749786162856402465354411135098676193397457709021157353737383385853334595973809936989074932579668490304937970444599023812729766722383164956852370679214016465339370221069552692185540225809699798427166097487601718643228724410895293195069775579691780481242168820686150103687161368444055404262846990684721678580875838865572924611911705205392753786397273908806984331807009544636199986512402192332617348534010071922097571864355853239335438303260494085952885502716381646491559271619280090824229571619386319660127942996573383922346944411433477498745903566743294663066093301595838252169965216108539070595220752417369073907535019626796120520200714825779899173734335921809322883741893886561146307087784637811188832164534869540423330004425435570022815172882013578845369942772609573736119676608060708501945988217397536004763882328407101817623867947817253881895705349231055405187245193459372095986471523400549739917855375132248023589213007652861060225765509278679382540419767266578006642532202374183550112896411222912269464596648012263015116903653180425997331027566680400388531310347989885623976638506608012794698596144643190404379659652660581325919012388731926638988446952857953839483140560480393917270774080258323735972014906646113824368072058102398209776476835998872298610255894429119962874987547536397358962726066514585693072841700017052886451818453423913281811752854130402867974218794015108455898921968584271524021951681404577205812620207811282024675864089026032452784168098901160468473030193327917752054882231393320373486415951846326528263885888310503848866149289886791071608721844524417913603652548485580528022404897307814086095832204226675285027310440407966274088186922834139582487526341212295991414667193547196036574174336267392555691686055456146177619053167688356994723625292248759001508926327209490007786574821652032091997476004158364187451762527800420547816914791424996245788217838994187769565883627429476856612072838750074640525113357008685485528689441100305173329520347971801275872414987198437238916850168423604497712300581876880787679204111685920232186877804414275355806183911560280277431299545302563424097864885687215881703432054928111444185042954367388514631509171959797367716448781468151285833818761578575023745281623550032526368161465923258120018123838041442913139802799561123199629921399249217322630684331296783238799443929703516295854667322857896985060000776800341870908415106122692440773965586383933452368216075042452853403347331537655763111986692538406950253492657120949978433485573671875743262182239911401512800171850184501884942113510521498934666499380760913225115814841305722976137664968943066596092121162355014304795743917378987439978508992307013533884463600254780713804809608083464207801710389999886488997796840380405775359656183347135929424853591846047141399854728136247676012708275111774866664404908720949484065004142659034836127776908463341254426130080387302727310418974422974577802684505446873280696288441048581322964136115756410839365640414169050005237307299560453887500066631820713973118190821255558349813739948477796026917291933609025418224634294637938418737272216718626276615721961352143715245235253324968673051197109147759824121865934309634530350669763427845734836065839953944388191437597505590829015557637475272928452720930016294447168342866008852857564348130260854245506352335886233572476902939262831386181649267488388851908659991761051541748166169563828170473324233675665167334921442702859147204262184268849127539272981615541267762749751079945237780421551767952831711943246310005842503011386976072101766687652512415372850483734253945696585712660436181124606585224659711336300008401088947694946243315393234832108930351596778298114671201092951683118389354111662166933707265089353680973820499430446568052849167642127698723171453341263990130434967474289428232915843986745959840486509507614877856831892767120798394050026298699819634040194570763378662274739165068973857442017067136934721511391044365031117575331250708932303820644403605479204167317183189336770600601474580991504393577392709535327885788697834338168062785699367570545465497625816814764494045608312347531280681721844321382190716083406043283361183590932451426145501270335271206220198911025294422522211403960910034119725724863998354827436528171621276259023934713229178630517242797240083531150593330973240917999993876983873717849614946410601373456154523920992309882886470526678986007287288942655687838245794726843496602994706464165078707583530381497204869061482776896873018306615530453727679123044890354168764379810050952291436948446578597376975775377937421544999037670477290380905273536860700050558238721071310592307295714789203718408104589727705756861311441313209543692090947917115223319210073936971234151113744550635333508463484664786849599068647990097397200165703751576265712116231005461741148848825911035637952505791240979756763729963065780017002719944172857366222360604306002955728845698910021645789121430392929102464133623975254744807267164062415447830613955270194869685062839011485659813320072070981873633612380531943057239911932145158081543133878311969086585999395261133869582353759895534382115217386056580575565190692095581509257419618232008927056745763822091455614598004681143409361416239664377661836228310239363681078683174622611123331636210327564379744599012432058304129529838298431710037210040711090422179050042615242638109191723222201340308281740167162645267961091646052658845183250120996872638331298847625508709976076588975051064084145393154790917685741357540164366399437580447270976509471790682459416561562304116805971657434318158784572773711663905118975204165062877735253276769714037593056407658496116612462887430689182808671848222433865299811409008468113367034813399833830274719966025959821711721985092685884764963362737418428428222442821932394556443762762191697863022914345029399030517694988937807523984023106949029492295942414397742265629489951790931411849319182397681486700357055685585390447428057271074039720001670545573140170089612000532343028344887730799739667122212356625432689280440819985860089187580526519644862975632720940528813709275361101970970587140130604546641172218858190985111296631032040922393489859627638910929807926126829987269855023653936479614369643688282659831581278244699399441233852983604899961293580752599718751860376972462437750293037610002808645657320224500508886057398878177935884181759851706014166299144067234628273083065666458508576815463827898245638984074332374404792218539260454393096031819788682656535697366533483798921947386196427428253478857698605377418359420750034934382885459880796739099973296898709258957777164728102740669372206112311607625644153430008415864585613728976837944480422368444054025464887184448420927849668592058563552831630954645404083568266929267640869829363935754403648289763657117143020649845489255087250124851851967852899206719671151955503036070448981328212541414172502592154122205600451424569360355509209478811202133149276492613544250129420358301217710063866149657958754636787963124300331774655866418686144405522889367719626096986041639302002701687565458576299098822041998319393642713781956956758400670845496002740699988415931562843625086559193274979541332420216494281246310599884367273618389047905051048027434628070333745157706145307021464167911276995918876766446868775580427810694801551372035442602753007188149477729485046654044618874355447969212616225428753998733433830348137294217484545642054151184824573930209641932974803022517080557720501068204306325980346504976622360777112266488356631746061216664607793686790862003999630486324804347360585533420684983230514679323814405622621471768802166220724473175701061745344022312576567914049341470475276417133377945113419044559556742925708556181048182185582318376937527771160407504546446395725818865142764686251393054597497966554200661801819434243948343303960007576776049704332787802298982431719636941420225691430006938442299604556661190648355103566442520427186802564097804875877716447161773649197336857511536745096612093831318363673426054933275453544678640294269716720485591698493721911727265064586988468773709962695380348101969286857972504229166246784277498278086070992096965595307372589540205096635190918931138964685705678907655773130036222457697822698917490802496054824939918039873715853138200780559811624593455198935254224118797784330509848186907068033700905980906205971659390594645161238385091143743216875127247231687290372547648115666993500544291014182578827389073016212135715169412666487725832535266242981071880743728030073940397990456937007967595438465019336751915486279295843998937825050525231285958536023795896226743524718806162899108700379287088791273259797679875816211828129385529016524141098820069337728136813016734446560714161771308343271922880943296230064251366653975948171858304963546420137860006514874049063627017657399366732355713457769234991651386732902420747375117068732036227236397601151222055732627204614873082421143323926120674467979667837629753622426829163353802423978549951441699661999374741232698735580410722136999933513953874522308855319278589752263268168345329607231623452513567755588327925170536633405546554337354332891757227666319719063865057125857879048593251420993317450110457387200394559618294197574452261860559062452674699142148236969328032781108483895541660817179157640358672902231979405658607046333447845950083014284288333485843735555099173971762077534553259743511579923513116452859653553003510210586605849490745717050939385403745593340403629555698671237799937489656484922997322268078449920434623410784662658294036465883993020894009468360309332784164798459596702891720455041706004692170014883532142395528811804835151047246464921469246114088191853894536600312627441976809438014360466571088262929480511227341967511596366315040010085477623041275440109219262071331882363508358828244650640590584402974819244600265055748675532688550184217921749583000039448207479749128646626183530901344903531648992612538219707692270266805322385278655207404923221898686097380792692352969755872410545963486528125954774224571942184776704977728751359971577543386194528945908711822256954257860587726318919418202613426981661810447354366361833901696036205476263951410594193307677227620785000043379709814266632806529615396326530665057703247414430932881427316562689313208319742065624617752839602334436661136596897795526678502474492001642113651976972049543780779454729587733036512311519012568397813774255011728085969318822120629585237855189962767340727298000034973239112105795856727937820180161088088954318098829263233435721145185807317039073501341098529530839498120538500914260134567481579531809084828548335794919081696383221464414194961777829018949182283927251082724412083480543030248055018297054119793836299948117704880170143086932827718592737838878390239501756101960715860553065741219473995905561022849283146700336300470256128003485879024084952756788884554647870342371417476244170029210786597667601356089321000040687024312778304106455302963488696138815713581279945731409954670267300560807370996571924195912866556766223434511008704989132384208782460528554817749960519814204696298065268737446873305168481639889083423174759046169346889959297395256902656142217616696430059137614682949761860271184769566706428246863822658813856873352556332757181879412909216073638777398295633214768832135654256024006492141519419519253708017008758519299644857196025298631098479278736414626301095718557940233977019839123400439308363902226315166000382573863365968583205407480858812522237956237231080073746622775044465538891673790478617455393959566515802006986224827808767371352370831876822682827514750104693113691403827153935386003827353083183591046657987287555300438956916474474485581801213629222512094381771591434213944765545870074895905129384000478083861472989725407985004208962296321754785445961015624246095191839200952210829524344277786994306269541860819539602539825667458502459436585922745842340223139067094220067385461824347278073369861974084721804799536250040688241538660516103448730664753185989017408204056289328762400241102744031857283180094162482652815877039721109485851678608666250130743707756936050400497462019258797587046481038230437529108753967501412415634011275409944968666683597558180294314489641907493851091911086552008142234781290592456178236264635490218234646325217776880372608167924293976563557725275670186503849201599821292252396345946636655631055816508053740231421976325722240603301641208704595811598466691650746026472473064739216719594928463650076097522216707169280376682696498157402374971346037393865534449063967840205437415952695780056049820564530133206026893131085237895456787068915675477277768322825379938192328230910101352536894664246642188346470933816904521019002518759878014582857306390634003393324249230061193016483031719113303995792392263176593227617473621493047878262941458113850172586971724348126056572779184316664667992246439619901702458511027154942272959309717323228713546989268922290931064071197572464006570408539512018448496590121227649883764905482678453412949512082151886384696563610217797238807051707292359662301060030598495718201679819805794113758164085031772540941287223036629563407351485429117345416963320951201627339221380103296871097257655434567384208911345522178723281058196026599284306706169919823716981938592558150960163739420123472985258799999996956149043142363450014156398147780124469048970813300871026150370634840061022366154660570405755529919166952593261123645103386677101337761712838094198114502913894437582897710579414300738848754736788002956141908388016573246738724407717687910385223414531140393560101519415561730511652595907175333145970083600057203131395220111937822806324994291410465962641136902899498020713646737996221507990101633655886648782442347851530735432945750916887389240306806857348385174954504718243823265273202144353018387233574731640205617338641941920670112643759506462223428029490511484954519202177734303003040784678020644611839094462863881674463616079913773815691036288875481862175775415367986298031306339519399069155910033196610769278593522675115443312228107250163212813460460700149536128136300995340993674645133281774987277733496861037957799871255588324528597353846549573421793932474439660721866414655634644021840492418894922101667400750482393095727716556035787362194460131834941425031988247217479832180491092124516424082175974117961570502124939550615045525208844004992533291100612293676157841464706573475323533555633916614731945583701029389009182673812385326576297450400224986427655330335838307336368921246673137904767966693283849607381952909523394022672000626771763700121449533846290848606628460468784445324470367088326981101580549419059469012493408303433786574701174604115929730509786284056257376915985992818884958109760808331135474146093171944757865698091603250739271244883598837560988715755871402857806155057553293177840830662599696046219622139328961139833647032810269979751564403235675561664079676043662211666199175184021373498211959317385169767123457751662144551280285784819819070133211015557856024082421093860851368684272670929483496950530476766711867443933185504595116458267053269975376347146732841425911395580117564235342581140798141734621722109944983499257394569475033031406611183971545765903543721068870724467443386364366644684359016408637351516874913830164245102278515923777501246573939184897379558752542517394765376463076597521992270877720264532332789636325488522814454292919104612759164749042037664112494815383847284060301684601574081518343398849937641967184918178936917625606993648571732405071391887285347981852159150241889424261947788190264745881144357803875926013173768326615545821429771940011066706832087954623481724584929766615135314932907921490330445869585559909005251303998520581343053110496711832522327871013599774763746308016677460825712676727418689597855908920214928035059883872170766096993258255515887585593885718789126105598782253955593128831567978492513306680780664490208406399271988707779842470507067599162477489094166168637527267612061648715384005892522664178967913366374018099682952727122716671170563812325584421326953210217178606187279184356497709049169605360513656211611351860447079378417797759085875221688296373971589912705784120684067161514306391379776875332597444593356633862407634504100824792647468733161538365444085820114282314966530373857155018615987815159922591988154834729629730437948122762014749853186998865373112716900235764578680704377789858767612292808964993748231085139574375929193954447497142614020984258570406632815305941879061841781235492894642113793024333141258349414360842870873404992138597232815947787267486353858139506844889886544526979884462454876594783973254169883145381178689580519875558513137146176023958107789645173389939670727344250572394368542531432876727710520054518432630087134347271255115446633325669654860722799013222533045540230818832504670547327234493157531512260608933185551257759212131821971174954687121287561728192716416233592946629841797547491070092390386808563918428790104380402122831527740193923337118654157597722582678340747894328642773122041175806113717920475225133343559376969606482172733018657924124113136011563357908369337006640757701236141600228576564943453756444805799726908648098353704359417626246095788237581425295664811394330794040906491481813475922966195609079410364938750040658682418749078275474049023082904260306671202651195877339340474756173286291110514328390903656195758389152797084734149857563887343144823200120267016644331990768170966437057967192124708069894923602416203862559886240666302901543395807716388492522137313965659413938399825422486958065243861009494882627025928073356697937835172295313062881488843086559164681749984566057768113630221061291861770098118829836755625055039805699043903974773468839939596285569438890191699570558593261108688071550600763014863669235947009158434102073453361402833314408156145846730951028141513611773494530270376664169559434880003569011216145013003914907184181373582993773804515462007304611830773178701315456008343612932828123311653480626317661235944344588008987883551689089335479407556614680471967696864606690403112274545294758351180858857081901332703988342159975113640490173413997341095986967998242092466841331866231703175946192781922518498420589595503381029769124439425100770158104348276535838226881072595381055753358103474961637393602843686224341451264051518187070052962481635882727755496246587485049075923300799572652501134856327695050522465076043087162792012950051331777551804181087676699095316648412517237984630375792278606441747380253170986943258090188620891384890016742913244897968425301857523691591670046479909246557628296882785668797437716641290076119172766803857214910587703043164183488028583841133614109785671974176849693991623350315721233354867296019212998238716226814598391827294363832423026930715951245018469580646115128489988701832895238309847710506205060332450313103327964395231034418563189040109318629226749328368753734815546676786417096055078555173838013100364819278470271377754763910027547121547221090306944825953646319474194758545719860549183725446169379255777348978838411897427395166086250903247480750208394776868489507405385103295157599805763632560303046300876319744596226505713363578488695993574947644902002659334193065291344152134376095996897620040097046160169985389026597975262137230940683694654414104938829659674604215122871138000099041238367071186066287188263815490334525293070859016149502513921568571958127576856290117115293019603623598665600520516148063954040568287935761334360711846362736059130125959194418516153066478529156225032404007266916630360278279235060112723428511400698776701734058874050634340723385675738911672898198216034900675815770851405428834866070161074659882270203597321275253375812238683584291155005133333998788208056164314974412514552993756233063695177094435089605951656534774063225000849666484753279702459303914469632157110531019016876549684838000431997796051463979833602815361599971846007045256201389952111642236302310196345984161896546217576876625774846016863394440575825030238461958962781808831278023033639974582612703280437096884597703767846782561304057137576126179284192610092089470859315915769563541087800447923002350262742003157843065769808645972320782880039641626393741619243927078381268216896395411025206326054329585252425292804684055657374614185253107536017787092929958922214043864949410921855590106177519537144607831817289705140748555319243736643463222285558717395048446016189526868704554947885332637033853431250862775288756208793728817993113815426831727872583006087939856718698457665365230432613540995825571795280454832686333230118652061338065913503919588120872241032917124921089981237230355726231953197371722885983923592912651191041941553352980128478421604366746069502566529703746950878567468150814263827053044714895106043929104727006915943303944591822127462024574940441002452662534742076075666006802397405087151934162826279762813074264960118568930116103181426555540774458866298353448192039544494910142134757002183720388326323521471130227719866022893433040955695443107197075982807267877569596226794426197931428601502396603438876407166736365743477360526625183625725246383710303451646601303156442409290986128482322697556610815329388026420678480687822395125786763811753470178273782117806368421408294266244469708193890946277932694316987013172295033255361719408850238699122323441959542514687830266035124453562026310149641955504199799533428504327778053960166030031077040636075309261022072868244173708977593452755482944036912780982124452177047678757164025616724306132175455627273449676223286799590381597109819190632958445508255698451343270316282287904936014056288813620738484303270275671828455802875436439445750573289325909537711090633447765593549012087717451983867201001743524500643818351211947415203197520239785861918417986953446329260475176829008853432713587328884164332752565181749537220263966958375161175022796575456600594699677701332094151339763681002633102344494986509038893602534296111743853091792292146220500495463062824532004220644859672963810260372664212406608022478934983477845370119619310961263304193348362727325500730615480209223667720335758128666608513930772349157884272351560873785190709817725003668518503888955539222060130357448685909159802057921813512285512429344011796561849527043501139281204325443572941792293728292716569789194402172620942611989669285417284127246219341562386755651107288536897917923080467528056610136627091195214321873692586577680563283194174125052125732870010191595856259875716249757322198037000055997730762840466410761195786485367731136477254373463086175958637245244540376533690053873841710250453821216774563267419976729707524309356418239472246934672568809687000307025770299686257133171287659205355677415444311398983096148661380455187089831762278519258601368242140922499507277301975792585562405334573720816783834503508025109886236352031870628303080339256525084614416040368366580217773691228765179998788971680889286752637778547962244094907493774003248324245317200951172737551962422583341044274147508829854502523919863209104302462763826210909165058556070969910775171373865274221655218739310209243236267653783679576089890986526315583909721389683331687274464597049787432036307019181139900695994715519925567207853009203863618851838944178119676741193709723763301531680867133814761972859825324017597853460216258660976348362061793946909202861604350562852914661659714705178515766449806001642414465287007150781507834716290538362901828774943897208183104087288930180032483596486242335491320038636264334563313825399784145786807863060307150109523216671811125387753749698913202576277737720011845714933781236132320047885990024254991852891548682269144265283519023851301164374672378163389730974688240624959866128913031497553220272767859507041779539356855728965023136931369975745137935801824472898949990401320359124430417851341341583375536078967658305550201101730205194516294134563136625430292736046798921359249323932451952989006576602583224424722186890710651194510574467513031497194663165074368956754257727398328708746692003627406359382867327992183155749393482739848877437802382757410192993436885629532778000393124840896662840252027182256249220179340491481021636222077593915457857658313640202808627742638193755849454507545054168302947275485982118349057989185227627182968386214051806896306992629976571003208732600510697981963927052237385782158013102392766993623255971910189309306392585552293893333399816725582348633705507444047350041787472895900380254313829873107247542499632831515431049914654494029546017327855457258538906508507118434924563964555357959433535887421250845864215077440706572223423128658871061206349349173369446292735005676782319292799241140953994733699534010406902114148944281246282906177458116900502799946067080870426449897736865631807100865376349122243223403921367167887695106964646462872022636551720463933870438202196199228093272820917197804432986478683467625741258102610767833642035294866135300056558285439512205653203014205133313516618322110971378061356630171264477261783862323245317798944793140409741339078001583850968797345321598016171374390959789003731332374409914139850259112526831600653669412292203734067625523546767230153824647435298647633737196432094013617083281933288335456714823447322307121667295083392580004967390495924931643914023465505338018111720777986181620816319569318261152566089647942896561154200427026845988161353961827487436157115511994418751634470864418909153041312801644600161993162061467219331066634306498915459620271785670912003188615395404515477361276109057366368047724795854430863029819961826194156636460775413565362105222434459983592651264354191161213220123598494414881193473245374956622270166579564670232986439922137125740016754813479672824077937503094283263066408235474476571127355017280080660189847607767336507672443166318147318186812305604315709522786427370106890221613240434074422948119264107520508818200632291013032338017407690541475687752513507010362611887810001966478899187491455547917639726647968227895978741665141707282330950125999060724380740942946016361822417101150412255985966426711947721941287761141582827054724451684272009775437325713771602571162107508884522771675288404514927127334931303254023094577511123831585808470728247779701326547999888604979324406175690746520207788547814300068954121977616182621379495843239738657727032936070617321281769524724284375736727787468464583656057987928956480363623078364659784600707224986011089836547652636021282479218979567106561845639060601939568682445977119647785834924376632334124935032217597415082637703865841232298994166678524819184603673367810353753150676820699150253995941504657551982808676837896953509575688064304076456082117542816439759894308826209604924975457722131668533085467853331093588704583302736013454916394865245538868339569235245290163466557446183046858376062967998665602518141988554428181388666139061914688730131360801871389462712421465183797916626673543801952897112124007470879843343573926693745912331789806883344844073096690073911949539130257411809869978931531321585576897401138549961807221592742531452406872440460047494777703951328758707677270839022733462922231375484021394638527610051902385625685743468997244257838433706426358195824557436660784930390801019043048243252944085156665773862706137867256043346463172234308678161884165687315710278651273797738347052200091882129730955916339975746761760984998958367873113358544021183836327340265740549509194927173702461217253833860324917669581248423197204383892653208560210280200588237209460980029743706363136558182237548202386481381925566547384420764430803747817933080266871535209042203513211766308351655135928353468567740390312044590633200723471639187825150978171166299165848911963474719717494289181192827683761643828844577775334109640516199347416739637803072705031516746915003784539488512980710180005535745249700061741781488904377337269882091026072908163472671687394342359511541745603247769744256369223991807504218084292204558433608951887058804291322272430331043665130899180289721276540577692845349718316904284921784837117024721113829603735347205123237377506581107980581726381367194053993942926275731944806342956693313625388615301384960741545287839591727753099863088569777124515376676148342830711315559132344664283857462156252682290884762853443400030047804161825723080073481418358065773630729045225507241667879060744226503267049316496384796326929326328112674192937257734907488976223408206632061733249836353197158954212766024877409735329957785911081016256513260550400533800287827580905368767598101186296407613351993872255944736202568164622074776911742916598224445274026120351893413364652924417041184762053510789900354235797819589034306349014655549019434107362255207032252184873491104084259845211836073640829379642885158229599649164246438228064395379231827438554136383769241642854815701694310675182026299082419098354216491528419638060081861632391670834129345328491161582709500920490533045854645526176382630483184543094128879304960336782986710983710756313607124240833730411583258778255531474405811646545658485342506904235921040616430736750972085048091078390305676393610529413915861341052157878250356168989894099099470167118615824619875733904759452920561041177318705795900902852980856720888128042037210621409316373953481622173633044239729703221813504325681674067148476236941179177340373602417421529610535426006453237468489624806998745308308647988444715509331552976989706209343876006165395672432709441832648242245811294974665740639346727238894048835157495164754957457597183616345541081685981191168221852174013097817290781281362110471549244876408999649351580101859728066766625884990312266386728665328762866289795884770462598606280389663638704520794082628374222589899566520719651754165464553323681787431783628457813594707566916787402166272672062237792039552498882878241963415788263458776280839172408431363008202462714126058836144654686899741154230073866878972316626901223462614935708365344617846623992383920926687570313154328362087480820613574147836989911322351061374462567506326729153816135774317554828057844915248532248883922556752435569123758763845811796522321992222134282846808390082565409146814195792586436443283279393435896295292901252818293057208581301136008547167443863106973296789262251293655361656349869514318203255949234505560318258294231427712616144938047544856801747996981492410691416978385440899444514940826475241621154450907114162078461360484595113775294711385381434619732881171297432666400100197651012138421501038000957061245851842867258914017086016176688412902000190905074382292624992200880369879784518419391928213633537245766501970904645674809057672587219815271259769567446550861576266841628185742291778228938712586613168109581070661621939462815412052720820915249011566036212718805272395067907407268138296181291560266403341992089100881322297362818269956228692172464315455915800839838612239178379360432732605666314736144626602918847332060914928779604361118977268754318856665802139201310777493683691908487235744628415646207768588138633405255825381064286102039584208304359823230620024508047598441862029493593933596006761682894407024859971539881338144084055062471568962582586607972931356373587067543059133725458225364535411975668821067394917841599537755648324411017850697369624528560282736861215504280449343806230286959870873592274117987068736441759031676340720044714651256113108029682491559945958176188935728895105304685173531833385160007512380282427239006057497418158051056238001735455770318392943122124370168817596868591693472736159626827822861868974699446388856400046858045604596308531680685340623007079874333080526058578529408002363574168380149700047147297147890837434458336176911276852281621490272742353939586949759547819768125501300712697857530519687619257174857852326370015557998525155314011630065613808589514388732684483029986516016162274153221136971794297804948872281680713848607597465691479406908412499770690207984761183438313073030660376910486365734829003223162020156921484492762911908157996938012721640917085869178739216386394377630379983503154280403226031543013303144282792952136519601830666407725127718393107609159044806434440980348019392633596182185029436973376579256774981230546786641986073380452628310478280319281534804740593564204755805727872093152957725610217175826315586426323782480519593557707216875067153026251657399901830580716869562921835535315292184508139224306678886274122438595498622334711571044515894180766917114232803103776395578074616153445194085852746864320267520914570585252032916036130102091062345418655779274527919571664006467372429462195682416479243439168240487594205164874696438032225954661816261817634246271920495716723473880469783249057397391354357477075343689689309278645153284884223078729644763563380017649781422294441936441362424991243226894920496811303957176637515118013943182390136619763217471882112489969857986309995778293509769862454713863364559112994222036295425886256302088921692406233393877687662064390355603910660885887916902433842955747313928484005912357518602844498523017498252484254364373303119611587501639741360904446962512777184049249310130603738865936456871569381873609946535665520694244174114667197879763536000327395783418555045284878230287946302834880235342874662802233579047416733513393171661772976587854548988575432231373720350373829405786266250137149117016953869933016005975624210773249807186999319312660790641180147163742402093007800715695034219662530839716273863101867778833768799166362576382328240028127410538892561990427763764149185242080926938815961467424192371559037810102308322177036868977978101278743036559916585465214708466346227966252005105385785621248134339294642626242654459370636647489295214843386484398772973475340019703212296509206049028009075447486212629913143864647725165992376744516286159480215455465596152210049080216692967652372238813223576765598434457938738110172279870556337354273520677579136344546759109451534350608793475644668758592840869829930921878642910645427300052298910887448529062465130593793409305488877434231561765601519800103198909503415414364706415933901889127825050253701636768480866197073753128470441621443668522592831592208230500474306823841788246080308903767389646778183709428858158778675823278177349773173162616069098911740060663384882945071585208535172972859609100484464261372077934434529255902989194332967971749173511992953915199768792949206264821200865290673074127150773195481359230771441018457977099133429945714075013097397373753623405284289462752955384936873373360206491542893862748836154108233522326052126469418199193369871179420364330822920483686169134797546569181264465229926031854018769870379373324097929214286505911899775785538244663957650696774258939852834870918247212606094833891377503626286168013262194821784073188374708074198814519375840423050714786598720407757988064073626728804163509443189887076647631908879420630598583193053107592288642448407397528583053080087268641470355634893589563057667858988098751085355960342562787322091734488229689589816078275101342525508550348442754547387267520876859627865727026819860119026094331901988967634458608018240959936847983616366537512964510428553934833349620027628453129179276958840381049115951659323055829560326931274211882936667840122119225874186729725531768304291860977030898141190765578247413407809303124122127478869065350886228687233075387629015730171076386098479589853301151880028528048854460984390445919061047859275907584559965376047176249603169956673732277963416900554086518615864388500793193491440036452266205009381752089164547969852794467792875762586139009666606922615745229695034571015083663140467371087297324525744112692024731292562334850307479620652598652611541798668210717699137603602163795217178585162800958446583651324719496121174931980443565072058584049224484940458279461741814002874852209327385210467426451360541764517186428688629053582257725852061000177770491844040434885509278469784492708179553199499901823833132495201561202245182338048337309083010808238725975983634811848167116214536947185419638494106364892285182618322257775266285102244084384263655678049204830073811754843517969374460298899129232959191804241513293127383985447242044028844425086910881431479023260217260968874144435320441450589466368117630695714073447153420644890702056440814515221619524222985945238929318644177426250410071588148265227946045245495583276304452347383215936307019170730553499196993375085131052084211076367182185028023108741472491645607613279463787528773937027782029702148954580690453833217001168763399144818357397383853108500643243643624753027245593603975317906708297125614877265127210619852144073340722880959738492066195656763641621426145388627339618588999851167732190604300523114015926916176663466022274450007049955573181314157763119276756116231581681287673371737538681830274205039618267660520644916793751255288482788992853205932452343444576576617235504701099262793857777799785679052246433173744174761756407554241180754056072185221635960961442636794393701845791272500827358116456595966895514352335678158990860673579495392561787387760398742796275094748941069244438377741409010939766738411692704186779623463420845244329968159758826837519294943031473856445276566146397385042907495416818714968254172130752070258435430625969409663897494592022819737723261015682341554125975226961339991583238334259711696293175496510346546603978883209977163332763537127094608718135788021848418478081381317745776980713108580199191542720817365867160963157429511035625040000496025924460250673117437866402437213818804420196075157992130116204614415151799408523217994994435354784251548441002755273543358397834574320390528441395113601238831311892465482284273706561920259715006616781092071872369398593604182647982390190352199832190153219481900349887468639042473053064006015455454844007155998034716761895529433384846698543158015037667419504633009285861996267053198755415442886522401201601840040923699397323109790380870796375520731606200300928374285954049390583903316520341237485340290268609141336781903177906695488909781676007855854975811390855028417738501468342195011033054532235369889859946428859217224681301890173033794044642451450828243374875258960501627258954648141330816388548569845830070956434119521738870351356996695815228074207921674588029326461189485016474038236920758368014840593235135025130443062776279562881946781979468204453404239732020941977219126601717488091721372557833129204170314981448063235429171101438039901349704612827585196391917640019502772068526272703802653270881875374706875961986864742826452157240708061436096779709731042545890034161938531013987070082092318050813092935041698787447688600342948427870008474494472795074924591448168034896505539243831803290398367587303835195344637880224157832622531692593506413190834150010974642969369527747888635013026844343008129701306033645443542907017282077001683946245252885569952948157246484612921422633871532574684727826086844860693239186624129948376866326686533667256705814510988383419493687871322460805143327804793235089331446867296079575589911248402748589296110063062812292631841166793349107441226346660801915170086212308320558941178934589979783701161632102971358197344366093104127028076876946988656257613862740507356487538244019593052126569829333429841148863288896216053624503279430697731140551512950283346078134900466859783851143663507324731646288367109479963983153093666651369275498896564589437489173465461560214454427805381534197818588529088824910564009331072450304039619584895027788817162590875380808219337308427853735169617349556013521611964012654256701551695558916321273631265655657752432083071549556147131639948182976491756146344683987564048022133134077607013988269193433058186123717394766385543493038826473238464040180499357943255033945361302091524777331678551991000603448614287293086751218131959022954923914688597780125028673177499390142367859160468192763239727754615467289669069618225464840856346463596617334419346280494567397876717544234368762010754370806345075010298947838743602862777521475452701191049044380285428151219370582002838437937025356673850297442462651151240002083905937315226777715288628760379741169864285936587624238794989795177048902733778569177739410550026222102201716784657853653207038962125001714615601568682519113593216740785031527932029882692205950546216969605609398201631902160862993334013896739704774195867090606155653277951181961213402183981199456686936152902174212738613155306294256119570322308855562234102798150115422012352872059775843317079619933330409673867106154066619104708080021437682950666329005607230370647786851367792477421537474422774689102620924819308700026459372152329473637979056017283779902509027633434380693020664531795883143465717888515345097799290935492659020325568526329040578241303621981244518893504063144369857948875533427332803788074834154252415968961980144723120789208497575602707007021472504800497258178934664328128679077687531741841950782276717636084514137271935163189935423838241716552000258158647642806198868387975086598532668044653097414473385617856443196339170019271091778839796437150780654176498386629324942102167219818637605172494228654019199951919897356301608053057829555017949132175016954044137920024812992217569024414592942395540228547085480042290484485554330516188010795911747220424597472578316605730325829535647082570271902885394823537093471264794655498154560811923107374793906093009390746079594795967277272657356870695309304576845922537449616874272215548347178581836533629455705130311208054322173776050195862247512455604127770064038373398503268740180149260341526961983397581377709742329546883815859975996380360991737486661743091178393550596616845389354842433263237807906959116870652926612374823732288725958403176050159884866592339108452225350308447471619685094055218894856611858952401267912612509749435727514990020450108334136141278712647820122310172255491628438716376116633246076001194537701629778450400902354013830264878693276155248245781191824990001930360132081636343470755561822064844470146506953040588474739588768375582217856237482974695719131342682946881559841303092851347062400911418704646838436004663730529673623422482516955198735364628350114606233583363863960638256712681825515865793592757845631454826858026384358470563285917095104738093362427525957712086452933574083690497783466125738267934253891121395498994164190817506396351155179466860079519269358695803084912083442902406108591584118367196131726506082312364784225517098998846948985187784234277020380808753151563670030002706585968899731700951941340225788442191597988181347712027573083877598058931069799283481471664657897251487711975261293484819581246912423958203097270294161625811624315852547936691795747646049243806044105949680846859639827172414843346790208939770342992383310558892400936155217547285853541400939332913759809955985459602465496675542153176017443817973096592205185443173121479333021411150314613388580797345633604078319614176498130592480428523045493647544209321562989318429438819439285702076802830193764655569578282822802283433008325526457470973515341967500150380064369420489123220282149398814221862508971574990250595733484218531397941366289282556835156844862723025140511521065298592077433705182012489863642641327348297024331983904705604208958017375941207135132021469410433837527282049947452126270289301918681575998355996703934168058739786969536624494270133631569058319357886836432417534930146123884595696630365575938719186515073517228925030697610629019830320653675146253784580496635469354861045709203557789202873152045976453862917690452654153779597786929601020758693510870784216880497698355284683898644224085134196595862015171837190398913847169193506992287151297575566146301026147073063532940112062847087453113630798541053473694566393143815184762806173551335161317074683925071377679264424243105140685832913869167242199734964029742488788186837504353319944386977854227566698812175216272219748113162108564801493032108798055437126966910959126289268212610600414812635672711017641137981841578342576862490615035592958896653542853853429891030558430922416727571378497852859596332233537081880151553034062435583983548491431851287911309178684895724249432661316425427163848931913448296395464026242619483297401244312032147621687803494748510558659628265066202803387863837622757599156303033307604958064370392282202085184157311319187332336700947735865384351755650510583556426269422384935905710316393274102622931121204165312081700133265529116631725309928920371540148508278010396236990164597030972603704489898497360583288106826502052571440592397761763878492780494653982623476448398421891996679679851387897455734415120176962048985345823397710930859899941886386481744408802471416592617146311557042647035088698133127620215935932791192037081412420381083122959566442678265201185055245389974128840386395543692093277282425445565551564684377260615060203304442044066204611663070762382564651182820733875174136853390247471987416208478266926261750553799827997685792120990085637322500547963350439823478675361270443151989579269584539865252376919740466877149969327775897793083672771632313807955104467614966986041095267090658007209463297259866785036670305230460431956351796758596217778631170828385275140106405959221703285828174631666634397951233997525604887100193781350479748751792985374646235872167762306669870816488510597827169043984348545483392818708262753767253467336377439638637261677584625465276325068620820567000026905966346704340674431450192278033377905532645734814548183632827810234802336754452864393166381057898051086541684419610643659096511405699030952857852307033494863493893192121282591276286013384771970495674893241631887943751601872740031682131349640478350517041666549783209625847932808813645137102745215834863235601202581624748328635790026847963702382618793392302555905104088694941632286820948740203418133874180472263393788590952912434928480277512482873681337408231572109841093443529323573053221531801773256034730102807587434931236009163416756895671404106680934131838819197263696107860263991156865105652042250124289332860247926493315341021658358911528079014301777642700614634836348265171881366934262595171318661344292869592977139038084287133578677103005385741421792328199260775066804858759137466571152709878815844441183610139776917088393920795882460404904471040615424104219093088177404188989451207785252064378333459602021263671111450795915918185620105908260397933252953872431713592666272838028925690738456355145500696025630290095248367715970120489115130514899756645802591461817967868669733730226636369064395409744146730494663135178853317055308478280609372075731707160905730752630589042509154824123203518218423767525861290246737996106399852536074314260929944097777075941324210443806760949952244686003985348776986950385682039314671600254090133890087488544971866997344437816013739370180776092048421492862322877238201739661517951226070849405244073346942736781282776758730424122186641620975052097127451308335147971146270291885921328865539818052363415696736355890755462420042712210563950018546691169514081781655066400411320793649999074970269436693293281513973546777545621746116720713836963102049626488004411958002285036921653361474599239924185541689325495458537712355735162963945777498766707517720226107050537242370562941370280295485654251342743146492445518651425225734198015907159528948312010036293072302253169420802078895678137284450129143592648020679203008830192998808967003437728593979118257453539969487178995625943393945559659215374920982568410827628257903585817161462228394217016058290145815527846402051408259728632181408417380169189482889138824019031036101597241225690515218306840627879827120496306127993830616357182648024226495754082267502456359983774292049115847622642803916572567434464668837230947310084454841567507776736742356099706811299306505772422634649997817984573433132143575983039851284861782298408662414266183364210932895236196148920079755222255216609577443979601528286131001683086278020969605641683902998386597800738740841745535788122269004199123165269219425118691707456114302142152242588964397454648348578987015551584455401402571934298832587970391123421513439596603618483594772897197035419264767743999619238437891919231588853405730244356427207003679148739907219220737350134856577118722446089213101215171215097831995457670202214377287184444368477010612620658702820798332257610677821344330276261625493980943272280529334741917225209582017389633819039868812722363803934771221067221514821595858724752373809169332042686499280689761799878807311861131588700157951095870260465614766234949656934247134416454375141524589365378208438220657247040295130680329713242609447701229158793623220279827934945822600337653040376076189666836953699924055555646026072156735185686424506191996531425389937508408978672913641459384111502987227369076411599766904910579365294036203389578691160809169550418619694877865584063960488988508518368993444160965814066296466866944681660791614952132541892667949278365060159337125974354707748739853493363309371794649654663153689919213791292611390695418707500258584606418855758102500967295847130999221117636818595075317071103274143162913298391229318166326505823688407058956988445113939290838288978913622298318239866031671521475453609492288883252938989091451843619276626072593092065053446008643484468530016291405385338020609023234951739993928955727131948414181092709018319847035936020710617334819667139365195820941809200727469950222253146100802947700834272048656501079631818922171432157337321623376789850550530385876700052361375008838975482404836571980365052766125551146674259820371276046510354402087857387486001811868464239656727697352358338982317047343876289303715282155910847913354883427175246312697292660543163103461381783287665751974171337158900856890983813863551172640220350971048539228219154838566344019656779497391160196048345226562362002900649798541558045332181933084101857148724751622848752705243981469315222526445950156925353698281737577175082868275100389957722598735950293518582262488106156418899365255097112656087222103557912201589538939835062556154452057160154418387883493484240532627123603030358164028715711797461434463879506376877577608451937942736857640713147590109190448050123862557095720997028222180744180073697124630419876041106028702002218201801778879653930058873678734883452616579755711082786703545370965088884125195913669483253064883987096181963006543416733482838975788014507334246660837730149364717494654024916273549169420368892427046058265411594502599049332297131650078037344869925215712859154914088893705286629820740796287721879813250005292561415096041522968068748186919207700472563270891849632935582448383763339075444611268109169690596095442602270732422793530292693363382731791845734016034447811216364979701591663331656210281400239915832306941543023778446774451852086890031332509949805806325820703619321883202158554553386667028131400541268060574911151309516610831514879815390499660210005157226199027059525523677338922773829972890218690818802400867808721937845726649805100370925154491424465915984222508404509503441089616943951780254827780011450587312837753507077101354968872836643939946752743707865346064059275557145570071036423126867695898427467136450333152446379625163189707815238394833770523031835675764892813940029037181621400735322798409424226013468520785265812413093797839529545552927843002703834976378195073969546376294924598299555277741385053676234431270992095247870480727176218049644609120840643123686036183701175339995479248714667313899386225466582068973004727646335651484986518391766443399433959834463659138246573266859840158777180390157823767172519980111151003171202350740049356828016481154690721133145166833950782703170553591602326065516443023444809974522863367062931018035228909841594022992044541589223235087953776496556746509518420816123962738519040275666466538386159462337700149138392650477600422188667128906708995465702856970637947625984076603346480112478152163711908987881610873842389463598438178339919254880499489866530286353861531475996604542592725307275343907510359453854047569949929603567754250720865861909219442483253297491687196224481400221018422983172980535984718024989372193852532252121553344274596758833249726973554289935054808540808686324020990918243748259605411331625637034010280634252827592819046182926169222922626107099460174820111301403689556106964608888711196197202360741102325054130771548241431542104734581673006890031123535545434311985818160665223827286554694415218229912185473798784099144264619434776959717526806265090169242890537757618456195525438999271943318143454102464946226352969749219115136278920780267233308933492445821247751147650357279871107694044417859842907052655594541896456637740513180628940372497171561117761533229339931762502039038240248105192433111706270025366989693231957338318066548982583514253960374308198468699781734794895748032177124748385258561512187040424954897228915209542744388243493593076471640512116736633720212505876005358920044383843815082125988647299906445988385139072938988288263776188505234458813563749641517642603980216111215598113479414365527917805642166243072926825923219324738428080178356075712828473207989145504752930399079020294039091906793661526031648125353252193522087190603726961999919833752359831929055386566092334300805923287453425718534336470555320173445268282280465174318845254810501038827397431476725790205214290790165674523639974422186630580342344757468031368426454210046982469325796579622425858343918093843625485093324544927703334613667067687551610655384376081304820497334793100088036430931228356767724171770368164778406215776079237694258876071835460509849785602023522463719867103437606311338096635405376880475571498834513961750316743446523380557110589725971912011729122677536814837154733075556392023784223917508306110114204184631412360592769878679655371770821292960949251380980918647707854963593672650999154695606700940355400386486553662421104814898958783279023894193943161479829924466796294147590759993255424492072557939280321151825153419586292980339065053969731684523208043674306678596641301579444337291435241117708432842927808914316145814620098564952240914539414340511431826335450977948868551536270319077533042512096592110828549024280269235112548411635836418313392115824087442576490754848491585699117510792919473824911852927781727729617432855178881789211144501056401848960400866467965039209860622682796544114259929817032541690239921086765059016247736761644494243046902772124913360963414953875803331657882519266977314797328867084013921400974728545697743358755479420734181803613910145098924843535906307219081637000750252670214847764483912630960165802675931163600550368419351961155567180052128215171156586125355674859063235243650925192159198567065693464136502413666887177108013810771034125525715833783899750903463182514069759385448342956113104147691274054005150425153858738187591650449601756078398350881462527876878116911081698116425241873401915072201368089742453199246257736654693101546935264148864409922043859968967937021849737319818995472421118841535414124701895601033672328854927305306889822270495189812149648428082468442837600104206066473727634237468257671292245090333626233364027781502372344946047794742402535313816561045598977534576888619575242789092862188204845094822116632189746917874841484890308426364270463118199346779376920223897820154085777343637221284957642175656884192930285090965846932709717808556450110472591628127908440516123974153183337990065546144284713212973924619055086160520313936172930436726995201209997114776475291580023098800431911684959383715827839641473198172089720365948766922617313696363473868745558369366499249749569659587379246528878305134630394338405069394444259018432103293390771176717624043624969834339988845142301518839152578897414559553798763626153146988180743357673946846603798395974440938903425621541813063961434411665842290644282826318377548174747504097073954162585184816029726373258944329111675828702257352493968972574470674352846294987695529266409817488902735408413341635626713424118944851693162179849666095215741194701029854600190153694993096993423146130081066654478133645393446864080661378692247455466785420208023572891476748462853845067507368014956423697636716233610186130456659095153303785722771988613403578593535104764233624748468808103982744934872445665365920289197154509255526107164263295670481488961804023963136784962407347274740357065786705824533325574762073394111829895360702751789011294629619218138425157379495134496514031871945341559959245583460178216607507284794703573422594407677518159298835413369101973085346372299627799500638387773879447485779092317679233571234403018525148300793613356209028906662894268075751473429985784771381763063180014622262150345648472845280051119868381505825617231865358919985856127182428776933747624479131615365612925127522772414246016059973677142383901211271237284535423734577492000041351099822353164533696833031495254112101465446252994273502214622548855249035826176300656894891878827733183763049486586559733851593055426264785860797679642302468903157458703586532667885969078458849167625122192930849727119305552497279514308397101406603373607101619456405057472072133721743673901029812212654007760352416210353240370940878520449798899771088212772120460909831756629449812437232928887473187961204409553638999870479046129363708856461031947822622324274491571146153679206858971976851952741707815766097264034148942064300028966778812048823810497478086482820787806719376598508097341738182267205364434839831717527336659289497601581212883063322122696290098967208151732858150608449044960472437871677573010682772959456290642020228788571842247798171959902617729289812216300012706686756239447201631822386312227585341535198894994691389297222799130456956304168804407996183286071409611778235725754273794397430660962870730647295722787735232477972621744762094237141564356999041719587376980784155136513573246099220924263911228914757263580620748427262864819500483272853195090447611637979144675311957310589919761160914209394066017426937254058025758062221499596952341996660053993325718011009603161967390506795371333317728410705957671359875421282250383788960967361462782212781501202963440984745820268292043870749304635607967187565629322520239664868420444260000953324475940958199966997658013443695328900073444265250192152152382387664861716006200197934955851634549401300952390825656572488589872214321381553418492259197831482576034441623300090790146055540219001654729746019259253159374439767660690404047749139486430237564923518360575928900359600004431599446871714847813584003173057431998863457930476898362728591861414401032333591581641362298080572783324671895797897038032880120195566202641795364227348362209909474120293325882267606609613560408816596553394501176410544775005395671148566179447368558958685070463004591623371666619871772250911330143044888547581328942013290375458496081996523769123886405694088426943977526122571869470505354695338837797350242171222042523650867295530096122653377079148262774566666504655054327440642360779854464526374827426158009355104222364552571981619118565555526424628902675488382706264668250735131727693905745229283591170636003461649637913357108233806901461798981919273270944858445690557530720995548970931694762423889189632351216476267845204570106960069923934287157749233470404526509255554417092184852498942728905717738209684625383330657816243694546893081411946554092165168514232742526264335730730309496035860017617761235177492283573913336417759829333651561327644279419344912532799353910467718719463365019709539848723105779706067011690506205188277589458368800303496980193057950672471376216765170206342854312146153509241222780889469597639743569768770470648178077895683758422590741755613820493403928584167181807510620594139260169254197876488198928527664565474225037395389059313474434523448347591619777487412979345255213612913219500047384271724776165512104760888453230382346841937655349915517319259075573263993290703938192812563081947996305288136203574436008576304828026472318207798221922766347474522763109560764673302806693549225551701079183783419451432918876455121568932511864476012947457291401435819625607928453533409453015746263543181333974797598188262077178965633691202133267403343927556637244753262179816881692932848790377435918685974579367608511633840627859881564240984801762564277703392299172247024018427524709057242615525179295155406424297513274238528538356574693148591027317061187593296952382781339880924140901307500847477471062914955766136020312168917253687109426698009642857778927137263217966481350348711867489106116220960744918805134979082132556279021643270488956447086367776637046447296381789358574574506752214856727198577622585967240676165532182609749068225678968899067911993230603605567280387697824563472350623896627822962654672402966938766217102382558743790445860042948357268702524085348471920426329655691213004332937969461798421233145716081629443904884822185976402653486152759811729005454133213433420556679508954828873465298891458652730826315441383393575681744735637491180279175685659817390178412464339729068881728625495329573629191809780136197750915821227542925168151858373296535659012429333611088766131159189327519058457689527996645460681407192694203992932025661024633484344438133041731868868812681865674569068302776624281004285591246914907632919532134685884846115033799701413001225799251255892176227135563004181182946854125111740247665729701989917828257724836779514498434418952668621877703633048941137672755590857910551732596613530516382611389438514016836832065368892288719044085837677227974807475667771987399131239768294957680885723440150298320662126267376032504687134554862231724730432028150563057851376876754809758096572455684369924207124376042846148936062773124539871439157450704955055969724689871408940753960655236337141296560208594455142095889777912083053714510651258619300072605845600458944291878180252623503895704969205827494426831980745849933694220015522369544172275163481225619152217354748603285636746548849524548359323963302839739663970529043942563385932740731295344214742900676566565773721403021873561263974684302750394756757475401569769014607945763065499168871223961027636373429994689145490720850325992005159538853582075241816781472034101470026959189212740739715009023859899549158001814877546659171665958236216377966227127406486084453927127579752124380855126830079243291319069414156714987660545045532867268263606581233477164534351814507966425645235822924575817773531205821344261337124323290458936988203624059653903410270819984574037713603749275978079560693074910492224661462889812946829591119034462925667807828369855984352286383099841903694703013295546300135202000409322766803247174186544636360984570965799889816581613581328430157426365775859595997800864115215479234285853403703622360349894555244381455471731301726799487346210237701601596232557382884956887618230513734779660896589664279035640202003273427594014786365281620702111925003001844720894770196074244775760380036720179530682922975951444497317776489237333706758392712950760382164291068957371973167247324469899082107746632736887596869987015540866586568740198588674945212165899154048357775710294665727700273653266176645236059725190714435326569105045898507317805934789927046293060770752981426790576856336831403449001220171995427495480527136127252363609127444925898852338369492001693148078998250005145447919941504727652742373231651637004505785652808171606944808153028140217506159640633668554869684285733114199198229819862137399669874113295507643921706830518791561282382316213845278784677640416526314160040045650208939144807184565297516140460615054922976741346983176120892019893713089760750877725529869060852194195413192682343122928406092573033117710005723609929068392400841637880132142910468474539671375688541650414722958143600644150501070285199376727029296688931783596806811447725408540980052294450608985289872828129205522810808211168149343077110655524709145726909066102171598565253382561519268587770382382576992769655096074755327845951903380918908963838585496785733057115524610998336449058412429559316702640661453491612301936142876812818149370120996069422075157416146380200911506143742863012573155191556443341612723144109199020001506945684582978000862212318585855690050613251673771785285667736906141173373967647450779603898759708284902301961086284312213654973615935113362227761639884832344873587553432624585901553548507329603571175805377003761168063166449449514756225494253316850767701246176839282212878005682105570680462153521988228610859870576535347342843667074969352581695660676756293498113035559348057336693108752342414175205722748392952462222641663627127907188435113752844475731318125409025619231764602733466623162473456357172273907585311410510325161634928501825346022750874165086869646836784612958276314592506512126053124087799711776746838654556274713701449363079636401145761834622650207997391505074346374878539934790456589115805812694040464060568648240333951284703792828100324097277032667459777324608839365308430078079402377390440891668170604983736825447263851637468934213234891689792558929392898529292769254248897486552616165015773385812138932355066487829615602983390629490583889056932784934892083472879601862176229291392518595686975234014095129992896078910201108606360726463542809179543050182247966254112761965102972891126752400526949797597498416627165568266035191982399179099710379688520337490103926026102831856350861607560756603533174533924757233723190488593571986291737517751856917009841667842096160541372229400889858720014080198395265461334430180766876495428104932129620848929445931113643873534048239116974244747372056962911412121412620326479579953417164505241852969144379006255508823005858942647039991039343109161710877464114855940562101165737449195580974132499838149342893339023635702212873623249844777887707329102473229802012944484928566189827370772379204639846891659337823553918160682349527742401141917434424059402631550184885323248681031641120886136631581535277164216014129153436197022421907576183219981857860738650222209872213290598367253425516856723295157441000518488443999606479226283853423709002180958482855351136830871834481217723517098205730501765909391560556076811433347275825713677059664199246985040897900604859933408628557882435987713070493470449249540139833766281371337430567693968281661710421994861262235576378748371134400832260087179201492507781154370357211789992865458169988565575385592629729669487636720451181908283856688113083308396628669983749682758117013652798438556887125647710958894906038020856618755993255861968421091210316248759095908979558907473048666215247431715250252617186147369490107194241178849864225374462330741341642829231666179409176634904051139219176179359642761105006391654452370518500609624969230647795325277472725989159449576439301592737728990497117144715782712120091521199633434228415984353811125906984614518511563106733392043850573851429923145495404228205394750010401199383095186955701267119848920553991949807288761066071364039981459771973120429475025639757189570620834122657079347806146726823862783739279793993714993593598969298495191137857323496315010075325037559721244424728494900771885030032532294727968853281512864594057928420798561584957038374831817793633910446485148912320904275226436160259935104263302455602478884546107019955158975918014024453170032980622119575028175461879049951246450198618359199976462120409836957186418149807260569373961034645689203039751700961090424232957651178291077366853576221565829152714925548670000017384270934288625778433602896485752224243448480109757140247609831126695564451052249398799501626890243135945793584432118378171982045777030115275334843117422150931955550978820851035746462650865022468839572381762373149893494588833590243778854693559643849314507727328297190140552759530514001592022479074355094850242463999665311604501839492594188963424323833458417655774050968768795932578455538508962483723149350307474432165927455772356525763972601862386024142401917906170101426962675525742385471902127563152907990056616049701115665974146349867605509094583170455063463155026703534310898811049127376778672435114408835007898107704774819249727805931205213711306731833761378921009594066264427072163917462524870641187546076366612659550918330226794661597924085883111358880699126727143218431665305658562125013186988786316889438484325187624420526914807404238132934038182600639403856215827646995733689115176798051204495301356441670077220776224779731260612812977531112863161096073539483888144427778161306520229585821564269626330881920486606460446631262308735094875640872387621066215095921831124307147470542583774499705289291046239661023018770337556714804033370044996586734165957761356783167325728742504026706098286796702687302409776273954377262246344899421261395398501851038665601094810898526027717556787599607052990693348091475149140760551331037776706976636526477842574642005590002646422026293855033789035822293211214794059494103269352714528758630195949706697911041127109166459666161447423369811205673714355511927338234868189926193840916228071818612726079002959805943964309038133496703830343894546484450453816015802642350885147576810130943912036821959376365253699494640646096152730363653399718238296997496914859127073818595128214769729630847728266554801812107546057215048639660795480832201522727290853493922340715344252025807118989918332197698617697201183188365440689718962756548318212987550309138100260375231921197273154688120246495345924885226210755459674499005802091797675870582164722610164747570684705745834128108635340281420801051670049403342974842923295232888239358906204994318459382483450860098750763128277871656120591836690098943697890145687649148657144881690624962366800416182347466819538738288896813293430781795592695701870730956208936635336466979698781225213000851256909646772347697741738831302827342655590859901403748769906488258980836032363892975332978851070630986490711779536478901179993038183471312879988743193528162673782157415518507225186361532094228657485194527293800608669025344563754397429606778783336948509719182961387863561742522843482380993352163809529047886903130287165257178624657110806166212791047050879142236931399837970207689382149403352371722984661595252223638705304674908581358959692503789244817915071071813204262953945178122435844491862280383760184509460903930473264590505585360658421936416777676572364221063448295291933729334498658934500437264638923544451459327984177439838155313227452978955713613370207922847448787793953268032939477095911784938453253580709464293604581695802384856480356721899000548734483145052543734647051627608029962540444069928788710730305415555954820672006007765794735160976261482404250959389578826401496257979877571465391013735647906552099844621505170268781112447948943126294209388057941143298919035725975292689833086559423675839829605174110821212224188991662913128432305758211397582453613918490269100323388879004641499622686199267716659015864944138983900971514628818375209433896694851353987061094953481117574656866796403662208386456388936989293810619990486207447606216638033246820777764331563699152737171814835501716483423549912127087671695188770558697236806557801857427655576415223924427565049898676581102134667620480144120083871707784608509078091244958071556585994599968818611327408736437926423847369356581958154640598414521752885327570751216571139780398232208754449761267237418623676499407865487578744986140182104539583893114898734350930139215257659990217339095775855679598683135562678293423559043592142029607745089136710020826383044126636020028237926431136203737926902031741467785079766983795001753364453642194802947871975438501700824961227003710314997293572015954637752820417471234223999346871705373751447713105710934560214398381450561666978594117832619151291171809421750202505061280769188952942281418334864701795272300975804503585801918365311991143406443719996763524563217018498078171603534730106268835567068647633480609553000703533116310613274509460938246830719313445374361742036969397099215265627242817070272958206562910344061120695592538446448113514054942550230974247967166875479224616303410524822306485982506125497471969402568493934010734396437949224175741669974190040627867841096471773265290384818334685304101772082915967070980271569867271255982299453145372291318553007834636704598266453555673358890130843151007092401186794082620596088241367828665386082539983693112544334317973727289344269554319156439751854250557539232129602139536745161371204852077129789622717182010659793168129592673292012489266606079447461554957487384449988708382030527761454198741800399127865284753923768769118402453466513747649503855557095996550778288937870540840367961526703177408743612134889490313399317926944261071937191691208317873459627881496849579232925094379440571093245292586654423698581297052468105053051707950642992339193587183373997385538717915992467445057311730825252161416792782845946465375331369936069266649936620638524229196940009361450833767177870316844733091823984810324341738007510941389951152152648931838510111759351763366515039284198465287735682412046987025219760009760376691078469484303276853368397109583776585760855925047219399569364888574870477902702600554834955406021699282375151709067706729009529098836597324458072910431022345823618546708683882265668285110515959857363559076453317166801828977497768391222101043120785558902845138703423908245456038928206167763665838204757069993040635829939371213506534232781596198986476866934142763269322155305161374324595996789494106798760362925162040496852117371028241214715667122819267230701479909177011612854110079900451696252325015450789838741993748066803876149262338230041998661919899608717107895010144041454539036467918025670627991659395586351345640249843744350409993035394647004480917797502077848586513411121512365448486876243269944017179753686849430746627690913779485288917669628488668279997086182126922689693367992383745993803289799496970201371114998840611220937986514524659619443668118965687624347794227980888876312817669330404913928700941751412004076617655078979173093198433896915985224350678311392209091029715195490176146247193366508186732705706818223725901858604991815290284772255151291107061816100070938709902452314790910174918887517653462904026817062174591416596437676015544385355015182311299460666186757008110466034790914664120692711005757260385075654210504362691808083629510100017150864890243971264002367267560972212977677813773123687253405318854603713469949975351288876310234566973102771849300587982653691430114212689896614202975557043570691052138165761673527416998606379668905971746644906129291262227155808264399452830416027810194888187755690089913406699462044701197577409922310722759499231221140522700457345706558033908788459677115203987399288275430775133097559759861972996591887770771001696149977261382060977832822615033251984148190543808465062481309732823711875610139192466648988462000140257940558086305222613882101235288973104980391932595239378456549664782584760225882101443611533129536568934137247079630002873107808086355542146404645481561572540841307817705375851161885911545844504277533175652953457944635649335323080881922654319305027112107551863803221368483047154791017529553939107845923696680190849830071585791069074649707303637947174317312277551093392861357989562676699763478781766994137145479447090944573244681575556254132482842873405287212455486960263675086392140914228602799258882130887229035787448048295833047241739736089436893557482743502731616718874716831506149646308739741750346693965859858043185810012026312151967744648718646411816931503385117864297158321124922980292314630171444559168620594046158975911519206198429963092069457027015265582057151215063145389936378813458705470117014616572099045220226628900104422155338321354176995912225405349618129987841504761481487610810071256493860118353550232004616540465123822623278729607582729770377254230364615745141349841371777665418245761829394177719564920949942144706570190743638226075019480892882674693024174600842571088919890329411863235424017030039928596555269370026118273877694174260308000794559685411524588213685083931627438147320136062201790489209767820368752057411749452307497597631345978590141459458344277185901061614375268839051358671900415507158221390209805051734885934244058275101767266624030005666452277721337394655687603365388075617268402379770561425601515797784881117072851415353772731457719669567812877112942187469608818011408219884836937551424752902101038675905778933606380349199659101467609100235470444062383847736299582892462447495709860728181748889856227743452053733267371360211026187533431504432457432865461093268247078042152468902135881512953220314086400989883139873385476932756195911630644912633116599830444352930917089938679335443697659446287215269861056504568430021521803241820317347161648832182186320553582068855299085160845981027270723562454858773922893512301597519732999789759296752487862982686385022913517986360682620296973990222682280149113088624840833494521566326879448400344888135494965609237597098357659272579940867929316162234010951292086266278687446213341613322397351998234817667712441753371205697504403866526744761009973798114275142787853928606216657292023158155753579626932705175818878292722213549120140623416836132097782827148600763640460865576846053098579485575484914119447664520114535714447789137641453665858779302969384511973384735638283866704855968286323681204888451521580839649534749987133389896263606202802867391478316471148686157134370461786602056781554411575295766653903854052528850900174692545297671439898623706522037828154096829923302604663185084013513756626200892982136137961210221554462341086865503102012575036219719496318075852491900224354604788133851231668495838121297470437088153073465448699373945165519557205033247784514191748817984599289800814627637702334400545357964980946203605739407283977772002099562670756320822476944129048486814487843278167813999747553964437338964035966499574610027923082966714852716607226227844983802837680691998335540807086091984811070018915094115158872524736003781773456011311535537342710481446719753239533925761971717355937284881241740622060628852635199875013798003649823581371987747553758203946961965335154515026324266678643762606468807328320836944632307934736426976943942931545009006882671550491057693030383684291016813995663168062469390100612151225199889036532797506471474469777671571620128466866259864407268638279129984119728606388485076803937797090248143727377961935858073406202126565350650496912256553515505012850392430120619044984385277700119733210219489265414844364356344956993652585586578923222510398361718613391993335922134522800484633862396108604401751083297158030097062517143662261514319064300534648426621607164430855721205150749316852415791010339246597072094265248321750495588269855626666814677732964480079497471201926567559342471729251470238591573786085581065801985041451318746436497271051487425385595376047363818409335357573782720651781735764157287567276163148977976948729482048023920629953472814370927554511066506885195056064866720613716670175794150481137975006835914421556247039518402607075619763667464965659941087119157852218400893816117849928592375322074085984423860762659627385904864942233084192578779430433032424756793023220217454054249218859966712534734112529739316530680883947771570250625790820720830263548059563018699352935523970714439069924996963668773577477333767582594365043171118695542625902472419721787750522573605372512405015480625528404495652004997318736689649685334461408504324096601168969408520074295501627856245332885593018620320613296212179793969562589471898695984317432240695924734682479761789452963960387427666660253942006070651746120758605315505018625750538137809680866088207956730079803096030346043947843272845801111958573568742866976448728573074481226998019858556806219655512238916498785736915424403432076880112821795575255840703394340871486978311867159175268470795894856425969870248493150229051867971586362945661253945974318677691839917451935520092698065211195166995005253076851093575174496160458289904487933448720069584818820097109519673200089256806306736719669427685993048052434339200577246789735042595707413180294356633609187359854993266616257125589710907583318461794953684246192101691214985357833832956956755887683828195241367773130738485347688165944791620147129278010193207890960766658137127097605984760080165838434935153525335307187422469699254886746187890901828096397064057411329693650221753132567392014965552105519434755472447184201722004966149115254068369691868938244525583321649918144828946577948791866805825366353441577148872935243203223478683783773623267735402674565803948291652747213113809089312189348599084346113259942514539645584846675968271845696491378523712575368440358176318597396769201400396129525889793163041996832374765315367714455608294627840904210562015485322388452441498046106031718897027451275184828295551888872557798227404728229296006846691966968254956202332429848660539907461719854283424528137374841862267166429394615832226773649249595102615938741810014617529109709487197803408607373639763026472045897203858578733932811369178211422886321569600105358495167370116576580981577782820247452520040839073640951675026922200419108736471493215699450300823838207747494849433848502913923647628674848152295478251522490425933328097316070216007325126202541317743914697190297946800572803970749882736856586206933272658305695893823165005892053400723838048154041902184584677178737246276649095303831281476592700226151744239404860142288322131587310381723800915196014107873189573592039761978233310377436150026915455075519581942406928780306443254974707740618438859841203668577054621957115539105485275939848873563438006003722165915721961152113811194742740281327123313263609381059916464821218392367005266626483325752123534010881294498771836386637261610547406150030069314917936019079958120803930927234568061659396083999429556709282467314454370549700855378018413349037612956713279989827138196399156886743506607829684727893572011675899981650094716540166476046447566283691463455982928664374600723247838657447658259703656051629796637495405374241659488424145095420404046131478535124409398811759535345178920508089382254147958412909693704361993984704056433165582616787858742171823811667806499053634738989203991137084888263116742098734609359532718308734485658427761147067873742220635273215665056562723872242892767950461376674318035009137602247450354242836090638866251058733785853075102134971036821575029231160955573816987516786289412779713586618431877509665343648909001009572719709688197889632091022486332696748052148769254578901335172341670933954099166157329013096777092655062717219190367482110183414392587970673713868869836727517504429666089753968278786167966082536842586939017185559105129930342849009852952835776366289935345137450152819823408327875195919900229492901456339800520657231916795631453602733854765468321548627576716764210153686682459399562963474911256504149249541932152528364676308121959828554482939563039137893823100644277885537377890482670860591590932082926111645827438410379520775815759965109466225122111762662921897587183979353695211916480728750146818273842371611622732364346520693076796580684941107517359165761208202122654609180462797070137730107138382531074516392608590872606915685055724239364376841208442457264920428111392063947648979633307840436648015666416881060674225696710810228632555404296462226245559136953028790679302604100998443847510264596911099998877312862679614558277233054612014694415912583136816107965829770467382391073267974233800731086999984389513838539051326362082189798614228745462236603527652481955393428658362517371951672166133358708263155058205426457898908427882349741325533416646848792408333708522314545905386253703514765897271770086510989611109033280301334279865139774419750418228024501521726823120293325397339151606197482956272555324843347271271382096268651819637834103349571802289434787282430077076058589201985502786005035251990144482120320137302428785356168035934502684502613073888021418954054828900442892955028163042686364451964521430969163451846130850602950672535327512816872077369045739837441670838813937900677909750715970814234607959459600331188335723389946493111049629784173883273447720866016998564669835308468421783465994892470091832372468980316350443434352214329966804073009942277120501822232112778454863969140461195215461132954536159778554495290369423686101396515129591392672168248288527205325006869769413642140191869498189360897100749021592111591173379969966034864204009421324628744135235842072152269483804899327160240931954186430520352889890984948171229620625864970641706547552819240992296246858194002184109963143890167325179127722023767571759702573584717379625238804162747103564683697589160705953759624500189743715345936937902607891405135276383867779959020730516832861214321128571595853472267124367436336003936223553053942623889368969753075479385065160978715118145473054481307238382109169892318732831302189425672128159151809025734020061679740951129072431517626311191579353589359215095531265364920481195969588463588431639103862552294502921805397404482170192469739256533599882041352916364633060891120619311140283930742895758742847551621457406652507506750485769886736806300117876318698928885759211694684694315386043884288520884225437799788259226077984824412477754825369285222776744070173749033176015584624559439596657264006426134642039927540649028671989945941115200325804272376896867265262546560823444410125302705036551121250758601699170742699434381005690972912377835962008902426612434458046915675904767212203912686658366565476803847436669783067848504371994578542384322685150009342157689766577397484817464012872774856218527568965426463936997599012583467930495096525579094314813442279000702545331418736627883257212371028626703029257549126513254441729591858867129806460903055572910139513337103122364649533451092165845187894009100758008830481767170020147194488594486725812154664311407314888824714183993833016637451496557735392272073379647771760470434907872097707333092954558029269398160179443865276383579338275888498840810122274196384190395073619671472223345605441874374491140157347962611163941719899849996306052785581645169202679482395866712404644452434595700761307165041103201743433428456574471194591774238247365344568813591685049986268045996070524998174055525339693875341787540136655539635244207968265978411928336785856763669636718928640118386490731999462308411666185720724548244654068585541099338066340073512381453375395204081781075092106108243956239498305725908625007795041946462226972550156767994605747965203200207510933076282978208536071031824804252094899601149398881829883889766674984516571672719921066542563117281024517597668290742924915712168720918118304330236180065997850212343285050338634870365265273336058098846003622814170983781452595036896709349163418246514552522198697724803962222411383499628202646597633449172200572742141123534584205843292761499763390594243417791956111755497356111617377928952048832730216168038325887480898400329021576187519068859143161656872126418037155522534770613367446557544933726693085838407965333256194382821438205693822556522317867162276726032357534594629718147226618267419714367281688184218162031728551494044791051449693929645118538872776593886580175214481420011228460860246327480330339050879727897878277704414776440990264952402213208315156220583768115380052177831292295357826275883450856961135178138598621348140860978098558841972573118781618475283678710563748685128968587336096094633745566337205465444257739622705693088260663502133945598012920956135316431784340128540630738068452152905139652032150311614291307943530341367480358842627052693075969040490732131423097795009875427909802948170075706164238256224720742684062794504578076703285046009894535043563128264209222020380272806992984721693404520121131467633714398640258895706404418222426328816228655872202955635664778268960990848971914642161594423556904838760071513841261119290526778692192088953674573783898715788916027175709785146407149798360989435088210634469514913659214790889974778496831961186401984962495010331412976848686287305726359923146526376494141851356233628073497157802289158327423567899830361365549681430542282642452066361712032708043497168777555723503605080049516445366723362885056289605028063182010050012420226307786482320399854195530838304064058164424902771329600681665920400735715323408016485374903921951051543884665358022219649654336199987807184137236472630956900304824141952807271246841067590658597040913408668669115769775514141615627689853290539475930217429443805989116803272495911926403005046047491463882268715967737040170967632041516443418374868006566021917689347526930308916831528304442205704684898602113285572291183468587689926463547762576819335792082022161824331192554799773858290199364199883137019174416030058034368367476257110912293764963773204654475868229793289783560552865152116704619663051009568769221839581483928432724531974668744818460297638501674390590301470859639628732678715249779193990105100953267876754048256532320117330514305757481540839464778727231236366194383246067055552183002414278112894517599184905123668695992564848475502935396299974762675913138257183353405607379095064675502048363393858961874517754547882261761069314363894776956931358003809911565918641169971145174866415155718012849567935945682215849837345352505097699917119255831522333188918211442644655945473833133881911733997380716289733962450532180065687469353388619398897365601313954291584122158555624432183130820476720907397724748927320864143049329120193371001085185378817413901100023200450305323105839127985483735104951187342151584980124735533210871157467295007785507338741046348293453583112379443972270049832337994324265760101105004983903264838287311225602868427066365129713268495551395452060549968523258099100307956253383259397503731100214872533319504935785738537270368408711452452359431833551273957282515611080934008052270252335971661559553673130640034457353347588510018853408631872919008357698406089846577208159519988884664547474867442862749173263623937707055887806932928191893669912120807808047741086023043443752167484178444013297792235075241221693828819564948431378766693494093030073224977326400416897208442372702152464647172492498902788597179416473917590608644214746653256637345352958722884446745641514868482622757075865035387196305361056160660880397958389144167814266435382080252395138710564998038391959064086874354557378089072684728125552579556572054525900747410604817076268036513839010055232500694857021546446607422944445550963210398016861826285738199958288454586417526148373950976135345758331345742168525760122122872603841471496920922625346470507532655294435936976670340228714119009282807213747485524887530523092998583202454725281242136259665302454328218874439128943535463556543607415835243492712330427415690372860260261107814421874595475303582920616693139343131435614045153582412428505209142166914024101687599056780197029401774069629243603129174308459266479453525054462880656661697496178657016938267142925803502502214074821725516982753667212715686729885432143772561400452444563256576918427134486244219596393653914005460975471463828115701626776507821433243546756114473234692279887515346422480861588810274477954714058601183842749687387945120556847149108891325962595359140028555461034414798613600105884085851046342846473686432807861652489373194669903338452422361079986843294021597955207834555510841504928752172734664572176149449411495519688294261490679823866647212811992481068398721007974731742005424580924714984598464353765812484031938647696533770749809935247165828942433845255871410006339230266453400947736843353858789324083758678881787086428474338642857532025167331329835788508280382146978297862273064418405321078763525754104231486693043879943535993476988473801133222252209394174568346499412541383899343710260165735405545936812704037225666306167784037933355898558924619855647130759291697650127697815553543363202919661126125790242634684511123830079763184879091898644799402660950252672952082519073521261709423352982832366976694002357581826689077671550348614810668372787757355238103633793671488822868383478035957241715886315468075086404795575789696499027732876422345343055641142090800107881470423626124902823204494512764764941667417404642351175087537931738914971278259954100106759798792717107453789678838740214559758258264054557193695828855097730864496646840351714106238823716661828614868034952579062007881642310281474941732722986101810602411128049662370072719262253182044136480157043653083605142522705708698298731654066321661700909946967675309123641024103563567767994834437711488958800559822749633383950563078609130161135411263587718852968515377749227820115833267506693477221635590653308309633775914334477878279896911443853862281187190053583217896129563935679679224889383795802952773827938268750466194244085148654034331114885372740897278037247719148629061575939380527040246574474965611163562299703371451047760498526800728217331882090946958464796675089220806118145671617171651783754758554877073767289646047793292412177416956838841205462312482136434790838104440401107267302524280941314933743720591583501499363438349180045135881504098642104575017441631916644996492137083003572448280257207395204731791420404519818812474338649068093744044303457691622936908140529334952706745128515862296550919058655637854241094525198368992437152354242949688582536397256348485837646977313881039749534188316498384521678295278195126875949184269376512933652209518506196671429981504428903248573061572651428950599621189692463635719347755174529670045732322108493929363698091380716417651597333386935538043033784946634484972255178578820970195694635992513002065670595273049788842262762749541625907651071875048441940035359961140039622549667202145869909143888502132509516576069007536176637094117572545191010849876850846763517725481613951991754345463878578682764214546554744143481442871722028926496286917496932827280478056973400258897879392430145363883662082504958725580907012269999052722257823936625096194965728317969959940072701675421429673654580388724551035272736900402380143476409909538394442097117820111932058185234393892333945146934580970037598165405398023475166138610086603070489013413701467052327298510173349402067426282191503226618841809585466125808777828818898588153719488111575904922550589837127079359118056847113903801793684605181132011281120209684958344008044622328399345168563342845287076786650555001277898421636636154232408623368482528355340596916167610021732258615645394744795223729998657147504445528169597718779022037523211584314196808823999160908871919481084637204201579242985011221174424069964210737787174829360097082900013997416401694268606800495488873152293714821654411130434608008668161820105324089491689400001411625450897752753112963676069950704038564858918636257615062337189816340647400610528537434450001370875934373465217771099647993205117318009192574271173219248781221066611559158873598878033308181460672489568668740512506687402298817197631650438548887566287472387559737080221766395390240298983004473474690315315586225130377429389363478946408981148574677854074833705997762726217142495288971826176408887893394515273854890331589424909934983037664292217570961483159321278171053648981997014409646002318731859251921802083748701302761682261942615764315907443852967128979447435092121123988784654419347176904410844095495162583872681842837673466986580759392167369499674245995759172927499465593864689034564877428886662718615828809157916444968942684305403077332026728986672392691361195489438397428776294064796112758689957601537785453745026066179190374894021388224852849191938145113683748249315858053567710224596448141238928524906061100916389522764797628944092585043360191850360431441009208176302327603877417908211606564397757601667389394850780257910007813506608544982060352971205932123301627986628645647976901681442467920671297301860186087722766563508925247152782956478249289174585372969447377392838347049677461432980265385380509516835097270414385781337404222179703393790901287723494787087882969691176356997640673485553999797412315564537579752543601491942686499561692392795931087786716030399621534940995043140896307567426627962790296587168263440860986306965847993027741043467353592527882991002211311348701772048502684624482676020818325600041858552422253265970238206206850455077083039099558687394867006938096986278950783578173245224202664146698836764808816139283933770571955075943333549666056460206316867309370364098767985646124265685540377871803957444110320211945370944901579643001502896643640225497274921465775813771407831191413768925462277299869216025505950037207429056255811916953748541034304421773649552550066283417478564098895345124655534734388810635689561672395410170498202918895897672346842258022014966522005739004151325644573463468360987046462728615313137316568499167086056456680359132958283395820873557079018622982462513640461934489203963780553494433516594775325474568849075332706597462536596455281568890650032795469900950413162257253866274622341376126961861932224943894290541033768030050172578815536081923286462325768848433357617970348070268141825127105013505880357632994257503266422597008308406326956414904456673261105998479221346108495188653492603040916555406996398260482874255091031117176533663259062314886364583608568762863010074440151943073049138740924861540742713862857476703271420049885334824055640546729226470114026123900082200880415562356724132923737397046102575553467577627832192023135387692097616736678134190661350954104068781525224144552649625211190060205730317601115019049371181240978040546159924670459932845373103884292860135267127980344364112069398576790282378783004692437720060727309625465513355862938881081911609550603941864194081612795167287763030241391311403874922545238997655805938580283497931436861554274145097385469768591115073231278963918414082840585745854949294736373815565891355142186370669004296001259361519168285594384992387588350732922469267954395885268954124595575743419786779265622786097507856709600920772544649105460978007049375150500477868531209634942494363689756659738212020310876346566488522499464172771024402201919086758630364182738236959807919387324565511580955426431780741761224786278790092502441601555748554680924922116027508936033652883985520178737923418737504958639237188024287735338327483487868571462156354288894124743344549711580828970270608554778489549190548501883941475456227232653293435112501735986196928088850230497007275481691242937076925574884614584549426421529941373371018796042107372535414230016258304622579294723487909778198420800844299590644772865988618097260105499017376228292531647199490149277153635036061528726418007101751737274862581525516613190790585918126940691634330132564402404056110934529142547297927932203836492203720896032214567388998187136389855185572745087389031254841620550083033181657537919629315954930962619322786005598542875711620320408057249339520977011334873165263553494541201282113311101031567536384256001527146480558546324858937011409337293228007651000543795265552851696734045379337757454952803134604881213608219696504956083166729985886221043539083556635390428474526922900106606707780847917023584345982595427665915432782293991431370190549915617174621786632555883539390062086599678958940448578334612339208657510219860608440123440505035713662535802219023357627588904676111023378643962559586845842057898896647254502236382019591009798830356427807952944645234026185180092914180132468411423822802288688217293890076855713985860089286843156878144821025636028919153060442706402751755715935769782740358013635990442464902537408498733877607825330308202907954119652499618042241394685570685566896703421281638026216806293042569465566743007951661963980348075940696974382904483933109504902344816659938724864681094617849544339835407653767317123961456083932883440502964966666224057329069646323606674976156911538260730403316731562999557882627185766022727645886342011030917153027759892027310253853483681139907332956204714899028820314319276403799657459703931871443734570986934697382999308251885947112524320279196061941601965940497564145494744483843239682935669598577582719924889497571130031732714752306746070253776124295089098494735875163770290633503506053131804894663492116876029966485998401885453721791189598308902613681977414910842267482631251707133355315023985006800678410745338631211199242274123747856846699598076177126814754180765520204210910472770980707565098463260930062691835979318024356142043238153382197169906870380529934116066897536301133878575659567769753646836711496000713164338044206727129722402308369998356138356402011811362508537067350920005211913908857587479983259590091996936800979392532042456702899451849543724109335693267528752797686102805694831872361574823580558739500019432730793039621819866066022402896646104746328241984360169392005292308177629956572892375435586917385024565445416363113839832931677766545553970134715516063795585856296632036236088586024795588698807918554968643128547230162890341923552716147945972682850021906855861727416024082396640717159093146671444301073895310823481729215308059307975853873041731899091976504659292744998340903285561151968533396563976025578126378710717043748901944779742673751573839396911909916009072879170374064476475276443521726802919686628640081401561679485592730109533226894473669711650717029588070591245768003192414578494351978237027169959425301737746360635225685026602717011541085217087719862373632916191860964090994422934235117764591712467445141545723608783254517943740983522092362473375002123205496773903561491102530495637091915000228037475822542190581408858542670141605054352282932978462350986107068344358409623913790412092521417189496321046908172842908357019082016093330580383765215849777272200995221865113992037343743307218787580211079347150972209352893734508242684280705408369548179697942107845575689050205326261091393861892930541471464660016155333119893250218389756985291153739382495044485313946550079423001026326402362133011209385632004908408426174172215540012819105582036271987000487327188872470704405001172051212284728635594725412700982502500442490745428281664398681982119598501514039612321856518477939650850797642389554461294616821751560177431099178803933759959944652529825260747827688657008834480095883882622558178856016297569406074895583122556633232567209815920795687014749486103378881545078321888648883683313874317766705985176060529028946381744388486598676309483644577850523350856144620919035786550014180828475345978518906544533834471512646149566540090491141961620443759395109931092517865841658142209249468746283655476519711740042787571463699940206046671691793648007251478612756574449384300015145919489951656842885742071555227783972157190813578441122824964717507019054817474325164751014459656891736633355678967337923583386403799847774911639693448108400627809952039894365581665772710283664869629626084390757277794839950403984984381751954518462888943326229736175787405126532085665676358272525471209041177335053611599671545129042088448704744572024513162686867924700445887842912602484820343364100312784790050656434510695035651314788705991464566412919781819201962502415835409382372554177605695535350269444696155645673081975421532706397541071360819583839093577417597705111172577279655304780099923349633415027837147536670024988403751637797972432476937864494674352224986141728743029234766429296173220594185726191028905439980731783146103909308183410704884460295882134407168014576793995751832695000312670522517764035677783672736871522940675005887878652497499631701617637112418272828087520716260039493292040021219330247150443296875751034726618067566486382838973409437502930209727427756302998586009299241620824151974634309245810200392359446753131591467912807463368521005083030163019353356971191922689761711327782157756447548933463201464986641544988203665114355732245094711776207950201521647366668375983764963775505992766501990235078448026566465051884820842892216331894804839651729188493260143227716133224668133519911333066243434173285070059347771336939832159078696653418593482330531461515055170041127581250840330111702681251441449945567635769168261864453446434254482992927155960818583468868030214902230317223302412591821867356716248694193513237364699277070171288992935410978285785766641263289481438080901142851551597044928588390583977231095386839554722800255910583763142724707530613476789172122598494269641740525826448236865374451299963418743525965515682140735432439196341791895961858262935373506387893770627898205955080815301718666973374754168983401022909626536139979566353542827870498275525371188533620418742079906689371797962676142318655720229568577274805832459008565939448697474313035130105572200117329354695246828710528403004932890871372524106738971954979635197337755237241776097579539201739867855238789657568896076450667551416557098627768816967016664434234205129998485699804863156280182596013285045755656853302981547036792382646712861180763237661453693483862349542223155016142525364137650092509079774589581476199284841609448663020968088086673391887209094501227284341307596053090722611166753154489607831970387841715849751902471273692838410476538301290862219092194279816318059743672425790358115617526805573064722339078118406468695266896693382394995271217840744690878102866519562150714476279568485406510801292264792125423822785940579122958096087106472805177777652839256594167986782022778763759721599136566042022476804608749251514838639888669560869252319830869378705487061506904213495807679500200327706858432028032582618557540253099574943137071643851868326740239865045904679963934341211588111422679191060101464166868032075439193188895609900092370351164892146230596525867018985581635439675926981827677760946481002229038862776393046910212833279919359623078763825638941767321875496022360440809760284088693048208180737667842643533901192331895320521072534639788808165405377750098775737583049129465544276404600378451521418156126753361248605424746326488958628463750187275854386796464321347582120450713265017775505560501872706720633555195958166735992304064720576229994104795836321800852818622166988656346032665234622290057772280405575649818796706713025473943439688735351114289219253882987673594749862013405005133805324132314628461810708683468310786030323378253304397868142322772849002962084394287041122722039981941027104693623359799548642380635028092068479105785927415280628436340167829424714753092742828444112828970672808539558801107735584629398233231530179881833387089976425157834409497317305492237549042197667597558780683478757212610469621713665626530993961973835582510762776280819184257426101134980868095196810658500462923767607556971007449386833498849664922820460589475012182095329525677243484916206823712929219511725581963095435167420391062989824360432963506785426712336842772322544241353851452567137559200127425228313185540237894035813752740150213952135517083959286366574483450143586476743384686782753228883613726059266856451902678536745656475604597559325453074994270614311424846647341621263720989601336338051209621223457822664856636849209960845076455307783593773901703033935879956345094715751350576909462908945272458508897858097157755000829827750246398056349760875134404545615313278810770559106677152857013972504423911387978275177110931355602425455789542568473376581272660762005713844108551400176582589527951824853520189356082884278730047625469162650377986683969155716077232774634757099261722939793817082507729478766695477541563724715920963971525795660765821118825310141061536354226670191560458194709767895663246401454503769203713101772663651469801308987021885429602633820211793649249904708899391670107409047067392942677579183802254359634778667446615484359560964271218478662406991637925218743171494174459895181046539973103288332323215911353166561460138654013174526756678486892300671021506680745395997491745389233047876102474687997648187503807792922948882918326947704264333122967013571868018738316055876853034915147784952539720228974374327695706713870783073456776541312541962052995279992364359991133066715919252220004794374825744576608642560939081375928014324740947203888274510380577087471287712856195946483330204416921527933526245938047704372591352199964610895003699942963671658033274912916296164815351753585806881528216523633803551456558813806660977426589612830589236603832392502439540459471912797265684912032683468827238499040845271143434280611266132802261449247353252644947900227645065435824474135981078139563813781657563035991053211345993145360510883669627023267625981885517106639120055209130599100303470393153768077868590023509267706969766238699244583389781383906972337726774064218850450106829465461302101599833006256746096142967029235174559998123607116790411740589045317777722826104554923856254556413601604675897769714286187137689723659184035850898690008235481565481063646562463868215814858946730580942671481130980639474674852435992663682185898576092826496631657494644484493602500751564133180344136844485239903073775498161754454851255159379946303675861816432048692647927764943670019214898034809260254241732987077738199507046817020440837396131423330594329781610696331697578177262837405120041181161565445292881101637514918015919116771073095354551829103183597107179456195671736000525246385948833947067083326607698705601502015884892013395855847033452698903759980629612065686424278280166979245924557485959168198350935098980128181486569125986411189187016043738082907151695242556144693212526701009657813590552061707208456526912346019967325351583401803302915902153471322750803884526393162686253999152255828101037101464868615674179130743861784703143824617047829980303770163518063675948087854813044459367098809648924518352141649744259081556416700750380173962434919175354393063122864145914727315631099184034760525433863242460837270834360240025414321664246784726550278077671583042785699667512289598731598680126155687222458507783192739004666288617664690908296185817877130665227028201721151092602762455099256448464050322398253706348085727504855032375835744631659069032764034716492260708170980854544515864137267363219783966750164670968874539473857425226978784600009251602241552043228189689923731125174840477191320022279564105987364425453450801130355851164918192664956040930493255761640818332929497557911512252824933505257067938783717752795515608797424800272070943651683696470738364769302196482057549298887938978192386453621255468443470533813528606780442694537643114040573433300560714099964735863945108693133279528684644947660187164987429719221669074006353143731401196689957318154680400686347156154469470587142959863099304872028443997509248540256004509833962145737081363022647959970772019193560333103545870767011059783540333086508200305357887204797605930398059899773733091333151384915000774501916876691316844081194617889047872416370207888418373105676243435884140402501856885752094854448393334569006297922494651874799470365484334047018129642633515282767507299334974218855554782678957995808935316891482262311077228570807975046389357667312794874454286411969162682460347681155503185119872724581344219610833423329359038721190876383579668775877861422480901066977419472088883225957488567330968718445292430717907869628107914754310937785615219551574014535747584115830632292604245367257324979041308821348702499672227905928968598683014581579847496131947638257267051657645940166931138585596717974126783891501614988223326539889881951968163840146469612456928454012417939481060598759204617363762870189853961034482166859058139362474727720152917411747598237104249727188779221505165964047641134272138335781093511798773546371532332887253738111077484292800801703652612836447371643284935443459023001256217189309999584237893778457903630484221008849986266432817186753866552341079590578640318575510388537038536115654162560833427002849317915469473400357541271096300907354298406843091948638539599663254430588593621387602681160482721481186797418726689756108682806455848783357775747980844407873725557609091564901414564589742741164527872945014633433195311790436747575589293092211870942346971699276844265313958122068703056397605673377581836884752750223268756209306996166901240305264185228217700732739318221193628851993924095607616625868852485949110540885454264510469007839037435703201024274946815846785659928138676357012696654992860346923796720892085511259492990304437194808706896768116711740283934962740953578424954689425907976283413991134875033035618588971837827132831396945162568650643964799656579075757252597048075490810006249539632109363091742978383245260671326363282209910419685369339365692430944896200762325810710485649415160525550503994963883297784304106101160302491114913957885824187577119954088443106522993995767692606608742527640152397583991787410162693537753680528792952922258656037325857555720323244951782464857474639018632651112335078558298320970266808031172864369505063779230096872731514380550769484915258432810998651940537486869363490393635944370636703214335653078480441166676762283744771701317368134060354559097329964599617647778742125231201193323240299939181955913031018121894997573170024824023122416261129229012995727402677738377389977958798937306673485905240774769240737343198716126016374342540566745048990866028053992864001376772559114179771973535210049409956328520637455687960610763205557114503865142049674960600487723113891134849887313993682916317284684819416729757275396579477280192961513858503601867397652334510581214893598286671535488487258850089069264060176632142895071962345997531322139217927404700328730582112315750848400543689950777889561220967321887725903481684593637230182070732428947512185142477510066149223442808712704484544382821237582692708749736717216035838826048729439634950727058170905208708755710359783724603524370299012612989221537046987717899437106008994145480258188482884143250793554820943008583528064165225815895893228263532744988607181393640862048637295226001686195842643441584320802857328155196270286866031478644965934944471507757897901332442449250546198389714900871174594766555057927960066355173103533799721783215945404580605879794067805987124349927946501554840337774576714700600538921980118401674494706896801280843072303041149069194883190969922277954018154166408112682261607462580309149142792225934902711571289226744116893770954474420069978384890193318396298654952561319902114000461322831940419151913890643680779487437397242578773122035462799600716678112811559810577203841027304820319504232120505781362965819799513184267990757834619732300650138220794973601091424718812529793834386852134109022618498490604128300810010818035673061555984208708296493080883570008049120203295198489827730879155263288002283893527842840293380883270718418823518253062992491684627586940453207521847235999717007379373872092996300544975547458138020351027857484070239293978531289801424061817326960134725026908100857409437846169173253990519082000187942213006147074796275188919984190288568526485262564320293904784444540753826711854147840976018949365712987909582405864552978688841345816795451504284748038694157399932339551699836172325645917470408649650396187618088938956930175613292863051284900877215909032911705231066522667582652923189234737364289658455481568908856350123195120234605638312639139153987669776910827141259645997034479837984192700241001068717593129969788321506611298083360671704458537674774684961826823323296776308141303542893228262416744723213371829689535432803692416184438661852076043631541729649118915286467595828656248284010096368084785299887775486911366093600420781490888366594167601934990097834183477174217736296842650658010276560034348638348798660955109022038741021559587747888142164825528963530792152122213629564563006835631339542694964218884702157840434806045969672875185457073734389218572714563659342543703106052475655306368144014502131791220212759277972013261024077694850018227508731580301014520367876710681328833145688399021210838901711883164262720085677991083504105832655203159812116489269501730319995156476107545690978966473037221145368406697165646505022899461995548761321161663769129515685116092116339422454682166391415444074405247818210483716536266809445926580566436419152997279711848589406482794114980227872200220505821098489917269593116089000975835671602955944300242700346482431392511653695366765420230168368426332604127594314585839328910776021876833458346065030985355934199010667395607781610660948124256715044924718931923309143753924298962531551427550996775685325739372168099007276031713977900883687079770935252054772475179136939689336042649858998083641184728395372116279582141359618036179491520715037025733641471351943166772648447042450682917088409191932243164381531791270463686775014494567251388529176336349293251379047429239760118152816898423385952131783025351139373555005705365814346506529159776542440805332948648454343083581184532374108244000246238981354903474947679222400658224331012825154862789462415959659208225714835951989613353231938487426133690571696408637261514652241308400874326598616757186630063545680529727587829460643984498785215582104155421441598823249391998343836825230457558385830790108250057731717204993831755973630404654574141407779773745590156987871283580692723967141234023108911612399681155696431499165284173899292618158050352330080567032020908726524715636524742536155986776525331585551510141538941915896228183357037111552677595388633774450469307867080251922545629214772386033357444277115905153084733859057406228758176651080954215624385881732108620519766692378724980995019629183218154888472806774486075556864135592114021423832591173172867931817519141310575293510345153276414645644527241872984925376176804300493947863772998974997198050375138925134156374225620323829091360156457480807440729474458711873766178989507606879722161524621544379396774037451167297554917418379868172240294861041137795421997096818448113180731918196596702717867461694369977111953064979749750594158170797950213416344164725366362470500839420992478669313195807376082266313580641739856820053847972183698596048148195824922388421012524442486526461897720097411477951803917465037144441488592523046747086129547144604062830338571301876582098617520529427165769591930419671716408580857290107117540831245263343898338835062358680384499684258824273914555310287712423626753185171784678162405832118553015651131213159456852733221750591502946497629498328242454909884287957274054213450824380522302521768944348399374776025945111944285380774769327863515489538210559372579326886215984905976337031679270557309640326484486407441072445535580672514599557392632284158038575624988248908558481365851981960274616756561206615378820185715501561782093248998086234677236552841061888459866193171036581961513979686897415254485685487662312268903137677849803747280167220671219436225774710565257361221888015800541299032766008123260499514215170801230211427475125507105345560352046751277003154569433563701323956097331664389812525383924435730277095384163560750058972079883243184111060695377775445061148946263194499651445906116235833537485205670296944787715696022281206970406329180187158394989165029503457645856540268891057793040176211864080370095189588418199047321544045990513525971209035508484432032401357278419993985393318084877359053859969191964070905978816040879178098976092328695664394318645825326920542053722965327785112027726683376696191810113018428109895826138313511598859373279048433741654469741145397973896016583322527630061403234676354486536583564230026340700279741058128869125443647049652021680991563874522403987944215331521756096315337388546840568883501891257585750105918977157779032702953340089935604693156440167964532888581700714967782657210497703304971602444800287437494793337768632217771992428253446949319787024891751364204631230897526625643720135088838378919858104784201496623686143336726655045329577190404467385273843962951299524011949899622310309217813397936723212737202189434001468882627523599752370962366045308527418669784875857488358817163862308219823530502858998420850819853389972747993893150736362735600790307465056617907683434311352960174664528263669157529086726261760303201013369601077221101204931336573099645038581973112387287877424955798254459890881801925108927840583647517328397991818621272421390358565787086481323123401226915119483311744827053688237554983967760610543737084437196398844992108061170542729312654624959853248398815334677822877201921961505243902187222389317090522748611446946573179528412403013353071090644674049904172739486648091667637176424687932448508716015180471256294634425919110215727160307091675143923991316829839529148932557478389624793693791423036968723282476433693029903783190449888736454504778241315257048713688555348952924054826280181992617227437837031066999077035633917153692459414643353703021480556357680444117920601919046365725671586774342830454014598759558231370169112151663463275659944162681981679732324986538285246925166542527293735615031045139823842498640176555431533429442078400183536543209273854227608650858905306651703081154152840091633066978304760632402854161317074372404259201761355943796235616726040871849156492987040718056332307338191977788165212355026393014910932773803168094568533770319996015709735084041278149553399564341415571159280098114843788853178220841227270871059336640353126337047639101363126550733302449196452316345436284383041828132533546976244782006128427325023798383676796729893197932765189738280894193432711082167704573137116679705318243330871098414860958869024486351382782671875662156009448342768692474670843976879091707655245085551481130488765750239462277141671393056848940649981866261798272082407094074601065013314748395430096483371065018836569600214730336270816041809628498729339155355369584308286060753001293971425998281271761359285276390429800355243021739882470931624491466451589977901446071078614663004875834309532263503633966776085892365764313423592026925135411980914309133840569246817083726953448560736175757928636362566659251563344358248556920168450452733517567585927671898799079316028807727258014799401816134154311653794641215776654867792771156778180778502582758790900833711357328857870086989465361418737622202297042167595380182695752286011933762864870389662149225142246628654335701564175194526623255238241511124951533956474435372378044537270908204032913556538504717327351129225124227096422049674195567462371637827785399416795150109459915843269008173335078911998956108133987416783578213174400123860338729519907918411847768712032882052220142722921430320602227509992656610363193329522754129382064402645765324287111362283350194756685818353452907141886983274670098564314395107365816116288193690104015703717816819751632176134418713996848903447456716729104613120963878578345633143911375991878595888669115590911995255810265677748959003716200226750484298232376164044053455070665507230830992766590684231196664311155331752789393854793165377494216720103118438386625781250531479657944140619728349220562408528486329671262228810159757958229008697576864181241746331244659069007935945264503592341236871723544615960594645632130194469491629363884757854402216776150688930693866505450225993541636777584966295947776827917655495543821752117539753181266039623328877052175746494807956682705478067090302176630808644065063993081645431925319077111352320092644516789333338074154783930552344584407959318462066881938313470423619860175214186718507926636158607100498637610232843652223557416131126053414619891147237756241639175036585366330597545713340197894249249833006509012599053205777457825239441910887452371662343729308697641826012292824249928605416758146272034958656612127961448240902491978699763504533972490312771142873864924396304118891773588029288983659555724075427479489698235779334827064876016915335074470248675015801169343241516960785230686406448956463098930061725273626633323077104302837436709791528977935603287241568735891776253364269505728994476761681036136675203052839828617313445820972042542487354293574985251083716138072244484079724623824245029612546565364646369153096065786276045381784719946731233181143435958795768542887131504881223107977360170966054140745531162568354474935263100619968999222893597911370407706565998876797640455299366415237546615278004712334776819234794681926503218312838610347494656596161452423440675109881312246872358826400419065028100404500865322434525787495304353650891417858367948349258899384041122851642611605545348849884485516892306543753426620597974767904784294966962439531764383170481446386258255518758037958066697930381160189231841975044566271273170781163814170410410965843944836712313503682722024671929060165317912804419216403689811920451705195265754476144947328088927316025837730404098774962714878378801105692412555627742517586784554169486102939049709098341861373545931693200234109359010008353776841170618657318729322606809872837575968689563461388979547370194751496542951919110187736551469788945323188647408479461167194121538762775082023969120886387963070876226733496774392032344092841291748355071359111155475112746918044877405854516940787660379391566769901524761326385012262818751189369754909239351593120756566512564480268843331586810751850573607312135758157106832332803812811601739556635106355679635407056648212034814276219439291701177522092665100625994830751310792640681978472314548125076756734969168484736911157200477118247445006412892907861829429321214448032345096918821843978604863374750198402876006309957345850273042050619558799885904705362477855211055618656523765854540182632927896106445354038448429909108172544677104126393865206971061586395183821901832755555376119879225964518300793001468417739935763790521449884810112572116390306004113729343050498728465037299856850352167612927408340575887289893575270189865196548800218276499744473926780678697665627464494298128713708778548687428058093144454198818790150281380599062771448100218127085980465838000037886182766816516524035017830684100109950363315671499416031454958325566038690790626215132484486682049400393290575252238866227722746993679313780710462920383622013515118698942864896311573504735758577369265711450812346260013455203696927257813334961581086356806946942013930740797915766475535329154608859658813175045697822844883878241658341992667339011711421719703414145898747967826956857149355968529448639473896201915955382902033827834033738652230462954318498380356654328631050904821250092511388178597721928445484540526010345795595361026543098213938572414765982063909233900590134862063051021652161525810795381517906773586843003087025713329142452063703629072316433944334953782814019444273214328729103618975640321806619421036969867601973652797465101604302030526138144381951124775684570980082942955880163845823598467879534543450584564381669603802905570608206340815823146000896016669567132806427413927941984655391733526058027670564300849937561969077949965421106077388673817125765345529012156694610343598986831434047620565470236671587295351626911933404222626268399003525113346348165413729400241812981209334040189593701077908388362341962765815591143880777422651878164803301820110566897140905405948438903187021522188911547920041228406704646111745701542532292614160739244717382312362208728721690246721955927455366649831656723818735900436545391113295079338646350018325936361822032889862866796161734941133443650812316168490544784444854050674759225028452450342423874641017047111269852870148099511121051967999743087845283784408598038603721530110601801965763884818559706421151333036797342424401311333931478821117536640501430584176546636584111633089490642105538606560540538926875910797946118150612143177105241856244575267068642906093696501479745139111439637598694385287818238332384000803911515258834622605089342560930275974173840811147142461264116960555223553423573792112091499068959823267689604335753671252689837439014072705839548598871065202078919837270468851532416424921766120232333841823825492195601893524238201939582488666018195382021828647281828829654610731209164458148228966676267016715038984746902748713904338413793081850684676432480515354380129215692352278298774375796456532968646496295836225173283026039895569080588828842739770277325294381719792313114429870530429553261842818092642022404895361185467480958231914260957005126231361552992937698000176752679955117768949275350333995470916188248533343557395467544709766373403086514086483462345281705554510139819741522670432161710225400946846629810783765763708630539830916385188370400832621051179675624024542249915377491547711642384109922784405355597879097905172311601507280934782439088281915453103084725236289428868300228665428468728986945930725212670791741306449743520331744867135431456863595569611462570111353646374255782462595637147417710332571117023215716279455505648396167086695248033372013963734897442714841143789404618785628228628521721057507832547182849270019827410794929313947815699808266106959962686773851142108494794090438080292833747524646437367343181758689569310852739683683534343427812461918180686986669405950498864600262711434762036355704177659751201996393129457186694915703863569980909184965874511063651364765356082195381244972928077783024093166585640571125915432213983626607856112893869644533170569260175150608726691516167348027547025204450236742904198959181457062391410891631020614543779048667494080970162708539923176487111145403468824850065125436299329463483155582680060192201213628875310364666283011485405120930296513224285245470310696421543842138723120796562612173435698645823265775379315979471244386715398162257980294724284368579239484079851995191390137801590668297957860338084588257431646880075482158840058985851414669537823284404264954972275755528017615758429846980585425306014715733139107457686739058870814902402072678598166574354192973316416731699789418979018697422141009376083929023892467264645823096112260830458951774828950651202845136593972816964360678926881171166308855376641294584948897056705035979330778265833107494652551429892158661953098324273618358711523060203242286590015326261185061450575817555103595727986558902859757425812448924615372823491146737395452206738063873018338257779216274635388223325182389054114660713043245272082353424490296613336196626022497603538145293351817572887316031109406952134633434598259749672202045452419143060048184775624272565950619632554911075260031064860802241295233962445474716186627939751248757094539744653060153538401741525206008176783658253472919760905857165315976289415622035363326328601527946672379350073302278604535524957926951407251765012883884791604805908588779616808445604931549139111835876783737723193474685604033257344838331657570948999765191391088306250798239214360861468968712603129364629570405416049861642323923480138416191270906115760383399172210212157537403960441485724021612888402298576798721218418797271114776094246420990257195052539049464753647817100529111285360620893376985175134569908801137579384486309760015790317313267554782893738185251365164806555521851700320022879480671224990323628690750438697496113613657342429208279894486896840618348488308132179480543461745779948436500690955457472101232306277176591270971393952685586970363228360020110324108982699283630234888742737701722419945654585062402875731068602284735514367253527971381555335774153253241753095630923424672873521579347853337243624124169868623696868055238369893380521925279465438615536069261104748619629574755245893940842322759902992988075267593289154712350107942143254494149880771373463401618074753661448824493649336667753186019739884888600269991167046725715176639887788245518832386445178375656989378232378541410646339126756084165135679490580427543100696917740132580398709129536921857019838620741499226835422757407282758538601575930429824512168945036812569965915076590335858255435836200416238272900502149386426738150846004627575868886824564274652437099554486423480305494401772902159199304526458547674367393887365631026702287006903738504915211103614610894602831777833851130523389158410875401151069690412560252528917616905747240878330535974806289684391539314719967434795815539985804169551153467536597387601395685852912747517041961714650212667585414607130856237644612816389667013602846480685208750076057142608582045818825428243544997128081911699664050811211725096141375733577771944658880433427822392849051900999741500371396299716098686123688959915984655542353930678152093495577351118053393712486006712173591069840049545808747451705585319313536113877701387842906504103770075149287491055799804267854723934019105074848692366884021501997736723960667085169276905413587294618334760805322878343069806848193293468494703478257550280378112810537626116828592857743853037946758810636088976618599287714929830652644639645473178389998404268418998580315750815742977199882735645749221819897843738127559118794187847832921102405162736201408443393216734660340879494876950760451092231989554147862163181301343446490548623234498163603158200718575014182670190263429430395205156121279659796681304420526900603506837494199561678468944528683937172141033372297645294754672182087528774173622669177589469234015360288664093953696523212527471054351800240637894998001126235027850411021542048770715594625023713358251544762249741689957061605885882404443043089967247746141156170668128282689621096101586699651885460791259347937658205312923494193771173553718398199622643828145074456173858473380810875425409012589952886931270345095212350514739775340922563162861976064911276065338394848153024319358230118190968811758104801007113826773870148550209177777351925227789855913724158734859253640602805898854367963440556902465402213359212286516470806089347569393181781032772470872068228970515672318032422093169687259302370312047466484717693781552454871163807438260340420342363343660170346758798889958177344817327429865723174824806030321860907134345122786986853265038391105348051164917314767957974271814652922510819817415161434219150282960501317312454882457763330184257446347437780462954276427835411569125578913452412448939040608750326918804365470994821220827553919807463707482281048024067726601943682772290320276512568827052487759981532793380287760967159346040156658360999135534483546477068494956895395734970110793737631516718963184948035181795851160017329791465064996095213721503323749817266978798836575485129138352484982494518533555529885484437174390757246373687663692839698163367364344930708228893209195833391868352848579680208201056999073629089164346702336343858640938438592123613901728739221558029771772876778694202520388785598833980714193266654363984757139199316587842485701984084343139961671610802416530459759925740628748684174212728372589405195266788435358255013527731837815870447619282856820990658112414007645272583036262917464294415725000109215958755199338529987328805126587955513592572398626083754862069622286049489348548027188347734893995805202639604171590762009287252258784128843171488440656389788608279543872855713332336016875438278361848619383874003434711576060915036758309366521176011563741039394015077014900067261878205083786498456846707648024922466229135231285381539505613786172659588830970262564391402597279002984275798333083962550874033508070075325750879176679092103222355279611348351810726031759154318012802497118166320337378849173173471340717040999640165904018345389602663843260769540314764117917677238047895976438698279123500342943374777200174262698352110363819226536575610503871811690983803058587024007841439066867778342946834157614268623568239278302996210814348048245749516349823004981188272467723770649700176915297850291239949940414997006403253630036593013213309648298987715758128277585825392282558068692643547667007089999293725537649759901731806484368568173954956341140356461304149231234992079250663180493401443805147049436317015916953914487031540559561611328099637109484660168901177490385464108796731914194380261693029753920174126688099985141654419875867183509693012064481126926560900752638786610383179302413007374433174013272138436666497635564186027383719942188441799165004273183291551910609203623269509915714711980763629686448222605012804272856452553585359647300345290322524328310069076279848010584393441863241711836268680198908220394380759365011108169536058530044776125476076026982615233365710888049931104556114890149567768363220303665936278056778108213005726283197360409408185492197876606073256765037419022407200076414065900287811695068197443043943130084414250204768776916785241612547663288529859212671691348916537409138695352710606666140914293489030195101470984133255579149295947208330400010510499161200463833819404209483895344181606428486449706461293751303672207401264010667309925116989069318307360064893771557886985104925754069062449858306333392940722291576954394155869507972818494864031962790128986913347312928146051933855771068705727184110051963473435839843244155292116091729788090480205123250726413838396851399895393635466969921720404846063461855301789785589034170039145981145261533961872001020010595103385710147127906166290788763081215491259600015011894097295097624057462717948321516772675802700138316775695954153392547318031880872950871663852130130784695223815328169154004921236099673241414279938896541612892262428474922466765922358160952075367027817918073583517343999626815492965842219386011595713330230545130947030926477078252861326715936337691087894251971916701792444700198622456632578605419860281093399706971378836156537865290294384596959486499162490634768304746175633418955700203182511036491643264104855377543444085992306431851210916955472723402823633167771042828384931067530486814719433634279185940794053201093524047397754000571019805899915729308228300079578570288307975938865877098627930783837497048331645727953632956337307511462029239943613294365240172329470042968873726623989479565981279578135301604745143418004255689434707877104747934377100409601427149229428230556368909490160225401591847066566811441803325874782716566885660080038394552691367039794635608758299847443122379773446048871879861078233754484225501075426452041328632847358806189741423067739443185566957613124673860847427700881501886846243825599657955783054875527009897736730400243188750074244706254459955862557869905061623631483968960362907394033556126519271991997214944422526811939797459353948048611979955336438142364597369706372461893839604947573859331428106939415387411483503716050108860186146657011855996647127608134091878424409267532368169580737167458086223455079818562334984035079008847129566246832830557965592910112448925329246335316858853939717974240679537933092303073924216094459475860962776718498714401114904353792286731845528745081787420028893478765652475021212253464578162150900908645874196295385610575819189748701867920301586462362345986719592490790235592595572406110954799141092903859718537044926983240027480080949068104210630401125506569184598227554726114987076672756836941964816712187581990670088673658508196107271950877481175306059637282621114217748683106841666708693872921985800250928770294523035533562879519071344220047217973866264341966421979616172504598460974166265613817733387290409642425812166443065289056924866848164098473424390319720110162444256326174881465998256358895021931017928747460882474929852280795363384900917451862463373441531069404274557261339395202783069974176821278347267894934910711415523967892600600488714435684749672497227164697237058131430247309370220090566207072816850621029064551574073425880371700644611326105185320859629879575084612996154747641499731234067483554801463652136874344590539425223627795877387712164335496950326971692437400530867379393786502686043402103542126287363918191593754578139014065148554837493189828236017245413998963841671710214373620159212365267426781361881843751904249114663041565512865202584158801958712298744723322932634554066791608537322979601813080534449297593183815122515161845856257329700803629755551505688454550732073498016133675066712812468509299840314245946918919161702283533145056443747500931315667904832090776529389530470734241013650250031680221179924685915649259599375115682750453168379992417645297125472078308820733310163483680267029460481072954949052302544074077707958376754367097864477068242805912514029894671675219150579702778687750387168779817234898471967184121483325803215876959630242905919398273830659794276750982277558527298893996192587524833432067202106655839523606892511919386441580397148629979725821599453938146814023369750199621199843158951446298759354271909445821060018613033977269433893112122109040331592316102468799425209035609240036460292881897724268813228126392716305474227018092899719692910526700652316775721221474003945003084575508859273335445506752208871448357686022244604812252566553306444324200842402083488825039818968735495525672960264879273443052717211466473045035117155492829559062757639455242593290850535822189609211011616085815640407308409571665524882300321612521417585403888236463734116802189206043739485825426911003073470023560058733225777931603392757367484535219790899107652310658850540524670559530660476864913842075942366520546285617101572706236962406609886519815030227173303659680230083898171165262839781692376888681996253756346828539863292483065352115962250821432587998908465637937653668000449142826430905529982268777422194750205776041658933495276944948983111702536576743365533222545749560736691653077577080037861306233183998458703297153705871562898931250250334383081074880064035605515580119652590407382978118199935299169599653400032498423018023032379785620211509579422060803758954856176573126998278739954933990874773402386071955874743953071924469884982208968638629512458866863005392835392237028895893651102840455001185173909859106671386987876576788633440606673816374259616861588017841390067651940704917866496671985175830381484130368911493601290303971222193839978738452977624643211276755794975967520598554687073662652730300268970782661262926210642596592498951879461727038815181021650849139535721004567879665259170665227139399718307866567918461643495925849743438112339767881978396269818769932237316338424708567168566169496262609616924551110365931769645141757192880182001149870523546228306262297166730750470673130553058739456641514056662043006057047756864824473313771755619363514525135577224998762379921969914678455931659395993553084309547398556596176956204515178701356650276870269704101033380568458541282857515601777366290972046066218789575934595421289598261318936026064461239154371147094310207214951277109285786639061033307985581614187040220103420300717038482823097211720653157012895204523190941114942027470970354246486093625086131821745391968677680310907959558198215489924328784432182158626981453755686053981749478140953170735150855829247404483668912115001437618827545080164303405788565972511193689525280603011833932888780126076070941580535191082323056182108085471066633273736258423017946131824816077500555679828589638923144854509395234610078154421706234116479438250065423591018839275900416184408075161143341255765739531977964981785013819559596865157231295933664610145919666695485956854234628517030927517002434898419057924799989717491163866855764576048208277176490770624352396080654699597676092789431633918832288110304862801960755530993558456439346932956930472752677294258936442943326054472960254145277028270095777452791338622648777248752167703380420122851967109199682588874121677051743634535967835848954290499763659926000101140631895961180957694508598115226129018327945183120698589135588834296889759353647138668810159038745018550063001794890526012446063117117065185340602052035383785028748340114454796913676238652968344960641083966083300841211420306366277869201761498223632910309332668006124129873560415625127582152894115699845040348913947180828905317645181701812192465685535842373146011760567345242288574438162564516735939869339384730700577406635219542180739016815192646000640591209309791565423765473622178701441339579196757270362824350612555886819800091058530853300374474631120498854301311047038554033347104527676069235017906610617821526946431901307303219296937778251425026311979998005610348846974293937288417196821998324638848809442984448945116809786315958514446976888421999258408089254917293074297767883644448652742541309651705340039226877320739594752495186145775745460500200339259480115089352298548580663635839326647332700606120489762468140419434472829024983929610274208294144219909904126478764380967423341349618451468984455278614191531985406871495504589145422612914116039746859823064086357999065363050674057852848897033942981746291825389089016387561296849761333203562489856145477415174127605174416442077461120678218333784065049066075229464314650410213408267791250382813363577605485431216495293629965234274873755563325893992908532432692729542529884769846047527136046428156156206242217651803957734107121369690431509017892603346788842553498140646978273900136122695280397766816499068664351393960358397583514168924911116487412840951537915161795194470927196203340742288971347289067258431718927118769875414819441310827770039635830085597298093517747852946571144503253607126542974565265153823050013479155314392317615628485036569548620061992518394422948046226377138848920435458305686784335015589172089223418378532518181020333999099751225489285974344909007908346868555851263224912181900203499018606753381547770111962109187968462778826088538562312017739361124438812494277139252417063071242372262581375384553107413617690718957619483580359577657545479256062145042853489129980689817447524997102695276685741417843093894521617588961825059308918516297475009939641067053407030277059043499359378326482216866016193434340742096789274851333154720857214780577489446368097396067847406118734781831898043482429464884568436535277118114086931992633283814326829863144629824879547306000641969188421165037505354703481680577764963555500558067362400526053939073893363205304028972918226386161827029410617731404890457527979586876024956744085813147868433314825500311114314143992402527368450238053882015862137597348480929700195859162133451269691544491038090922604293516052330584940375066879246118713991757175278050840701481984094659883919504821122742869909164342409105728486511340663528947570087868887541028940511708624546060751126760637915778638810314325901237204797950623770812765647714467029186595125494677320376449793370617934779880258938664062042500862036969636434347012807535860510682459994631647303869610730348989092882538442190473162395540771861977009457504992073003730014084624938372189881327551765246494125551030512393730977106181173902386237479540492291680325118505661352316677423420499792212682651559948016844879793105027610207457511292400934809158784371856701081802259713355474327115461703981857318209370448502691574023513070234038423121282773894636999512252713454174338304258966977752001461367906068647941533795245129800062325717097078616696733023768008986525772845859867393144136229222163102570874490159609012234178574206443778537275145178705444638662593936274475233216702881077481398224060032486589169470720433288482408956386187900661610594884075954342511939109109699687397349072309468366040509867519480515541371812931720316568983796208372462045554499631355817545881134934517830302644738316923804392461795691943528406715036353518923390156537654872748950252597474436895187956606865694454046214232964343735646239351031990047832785924118291537861069734972715161163834295062743253975136250909596723220569480462177493700462006235780952247696380990958220590284279237079804729070302778233428987652277231899254698811003376901166298354759956251216846949241970953055167414341093881154583528184200378997052006308214279050812722427773337294024259593131781336544023875994383388463101214120701480769840459475434472603354606075506114770830592661957055174060176343357061974771136213255811607949925289363107586402434492834300407659282510211083017904672704600674309864699016230737906209200227800462832020262165294934580247427352149894611440184321589427311206910778581100498039743903441829828327695957490975835607035429637210320610458456640091714407230650388341084612276838064235115676297042669573305373779846778665221375748307620903406835175368680106117568554171178585746411948400160682422488984185125894018877265227659132457681783653556778781299327510644774122744226575444918844200341783776123020971144095763066592154988128840457342143888623850199941179216786080272922500386111923951754276068862635073611630858666431032925468873469187548914769045692209083441640205335194119092090055364861071470319417893998699598532138937609637353783439473716080863693977700362044560436943872286690454014075269552682183913978583620087845080206040153510752027594783858326788789846526735622183059798199496118805501451227994895220885449702173427838974397028736518111804462003884967758735665743282265049966382517760401154677987697873091368201905011181491217798643064997248507885398049207234683595407401167074158292651640514582158857388291101318690925116633982009642981873429825763378269066997125645037819351167016067163944773455530697216242466341747185828005841954260929069761528040852473668002419975214650572661301153603598540139851972145557268113645043337347775123345443118753854043772317437082025569153477879114157522751720642633139009236276211431133246219593672960601621812243123851900603299428389000968919807560491621381136294615363592825137199971336722920142274626724488308306781960819130833327849600932106902055755215066128594287410291977542015090778271819144700173337730677708446829565452032031686618378149921673480856154618319484738120598740064040398552474705957995743702351656867278194102721514159728372016449796761680130660356857415659346986850547430325543478221882014001125776257022616316278536052331375750051995358254886009653501764486306195474517273307092294155747054354786967657639903422419243529233327518113999549796454777711817996769495764631203923335751120783210403070949941255399184816362650165685851501089559869622123640596224003350081880845915959019932349996549839310058212530868843941200104663268606344104051815764008152307716553668104461119328454552143355774563682181929152702578928682812211835455009695228484680017795895314712547244702852856884902886650666643240010785732886019199721125716455738822251258227943452463531969541638869614911828495073767750696836249193283098297495156029390319871461033921840166522217209844869219141903536410544579537464530758943430996730244625911371607505499504536914126427331839064153462344442736191168167824853201132597005028348983138327133388523484215130572401141516948652541413704792716651733926861794647779175049695696696958585029935964225563345995429082829393216395039847049731912932609318272102615523828227287852561871975909272607422568228911233190304190043696259324284490619076158664672510021109037012717353660279890304732507245548442298941625538927736149701016455140313217773464506992086488774573046659179375530593689854046035012168952675623389351496598103469134453111727711522363997657670996546819210317778813865355113273078946282347110086025775875956843910907005607878784631222551723393383604756310994985284306824997897328929207401603247861377402590993334543941869317331172154580295717358500887526502100474458286212980413981274806234496192763223477020058658747795889053310369412971419734338964133055014053402340763301903861674888858383901141878780303254706002519021575526856885922754772432249596982059611941048409374691312049189592572079528550071552103073634318217030642993009700106055494556958596690913696959870716115356367282646196167147858006988039390305752997359018807762022773784030073665595222247919264782241861258665800619841816802642011049352862463582574389689551660410038809022501655199072094651620651149944866900429185592832107648420841376619829627098521781919758813530452646439642795182414932557757677497157609144464459480007744914194300431922535390873308762465702698626184929391284959728304350539228414044252082632340846057204955802158773216329894927893735162861623840910064678874076661770152833992797217174171172596292203891577218382840355105582891598320469936867794323059570233514512416141214335300560736172553473757665794057358017010882057839209436656490080909823919155336534167498494626246870015913399325734978584062941276663067847648337730084507159218030648342460375421673058603256638636458847893637235757153958865398446189028972623698418043385124809926671312814578047732890752213936371323566422561261520874400608074551369240114726230911950640694821603145532873739584372900940753292776672110029929737473796511360427507792793278977203696345537482777178955345211418668437542553516116694238258374635008081366815065573308288856212499315167584347584311694218126691439083409067210114633615078564387893449197779749656425764752801366881416550841891160880172784508770280078467002891301453830084748334314030579299021853356946366385215243827009958599938084206260039048120695835464621146058984610109066302297061342526242170040471293263484191807391623414509377539668282027269378551155825058524610074116766443001666668177017584767035398656752378208713436151580645475538458971275863720262209177238620490225394958904855627771675468478040874292834177059116788740106034674129909292334739164800897284465005041666270948333481088124055507646030500076492569675192062172653711140307952840576969802413116415114276016504702981913315185179997449334347733614409966274834039047180774635097453942667580347244734805979062600771710148494193419187722843733379207841835575768332476996503980174423927277084327654359614667680725615487880865305150175022548943395614986971282418227423154407782499860521910494261020997608593791070823790359706098384756683022305539434199162273754041906397134416938367833134706210477125721484471568545471976417195943327944843111429628834103380058809164463216346352575426167638217034295719209741634843038058608858099731517958660890574838347938741050096358389541804449877953259996668659150043606011175328123996334390772998476536436893915750333216211093599848165179055387242695678026914038885152611157828346127898746236696315547243522817049358191619488319807169495711350907966643952088991348982208446262786942414376325334440512206169977893542687832671831030155196680829058247375947278175430409427220454413200036989676505168712073025443920277417377859598845730579304776076099398412105624491835498142058281510136555028765310185073547764420987149921255366359469687466239918174431486840193296662190614936692068440565385109956444673359513110188818698393985223522553605934725815120498193143043290857675271796721513109229986677568136264671999019646037313256806362924599711399982663588390162919222955874224278321435054294443305519387726907381129652079959836364906359659900499686635443266254890992508969335728425414010612325327587052797682055308867778745117479665764438073612146085907307987495845507252939217553369092964946229849388680578500910102881862737028027226161689584323568807748383666285101590481638492690549186314887307091047055976959466583699574815682935047087643222885782530036333577545255602981877862187524942479248936837961157363961735546152081233718473512116352148830646355568669245614922899601578115232728980002073370670091853854779862979171495262389909219752151630892248929001584946937671089464979285587038096448218451825719991605032102498296622017431395786226088241628984388143180597363427144563056026666707143304740596973741151094113153118215980566559271142744680962311658928425103644494424035214834449585848746861431731667177461784508331275651630270324129896844059026119249847066155864225608344038273627437415357789109345337185109994385720557923253991951999492415577432063437192084964324560406279201599834797567575053086347552732205350700829317219041942080832410357602063138497467889258574411648949613510789328728429763745335198752645190481865851041866447294111173340726274780366829426338118786530598584705686412250643148382743826840186237136897036944435851007803512262309800092664812778946210234615114332786803148462061681421471627411663326380347366074316025580977208063667422109610557135682890077520246378665912014625472583924310967684933790895258023688264819547362329790086780448656002598539800719693279527510535974320485602058848157296440624956927126406786547357980578092315772590969794916526783629119299459374269520947481123337055620176626815299329393786319232173403987597106607733722480888163172567358427692693022494652275363089239412958249069777381684018804863550482241749659666498011044775484741275937654786584752522564479993295207814461503612345901323140108214085850322171538332935183274654275770801825544056900313165186578163654160147874747253319221393608754059305695707399294809363917365160072534980965511180250114273692534770024858696863467514065055200726320058067549742440719497473102890212565378990974639767683388148910463079416984921051703048478938001744916630682842861980278408748336156842570916455062271111463886280269472411448344142639445912785644415371092655893225378257363073377357209765520588909804464824501487173376959427325198153899165759652734244188271182961674872364276732247548883536847994878540184327770924595596471328747645440855917635987547687071155417383995144009342320304088673969510531582309353625241581342275152007791417870780012215149658138359109971946131640000996306682560505212218406960639531264225028311832461360461217199343411474290065708474075562695136193788679965209013399250142790602927592193018310358438457592290825874632048250306784409827899206717288748710257145102751343077217772837174545726214844341845589100071280246346656880745217736823240736362776264634558326080951327121308255350947108866309056961525756189697216986948853737274580385518519842176935222476551233061257918142360926869282251602474925422414094664856780027495440470892546757946888503505586622327109084791394088114290383301293178405297433403435748520865017097283043265275479057938903160585164832564462441175146962727557446359655317956898863763969675424766511619937997616832591805653479680564007792637644061891743239349194896736739017364007655472959012492329621810507633328210377745219799886550125663460122811436120913333866923223587220037904969276442946835271848745460246369487135441481496832400139947970684935865862852480189104591539861627672936080214547143952504226641540723627299798779970014293003039731971740557235558506702614670529273814789739585435229380067687873154818393684995338086474003761451683558156220096836771365788861766142398825526100140741636745490756813733523974392501092893737972747711372390305221121373716061171413069608538540471111131548390326704387505798565158822311883505766312710457708241077374618855893570573788623416190369796523993767710300545040101492085435651360494851764132643293452812552632973971859873713356539168724169090329836748099964455721819578332509748525227060595678949218125595074034794650485920395167505657131390616291836263030445633189298806518857849070602981906532794230116545674373949367389403573333830142315997335471810429421850422808233556121306329658296366030017869042565134969035380380763908368480358811709744523271176848052643989619106557016993353819098810665773203180842831474401410141131172324708507068635571073356210039498504925022663404961765238532075454228927600849384463271159607086247253316941086862518922307691692315869683204516621780901887836746217445033090528663813062324473927820115474948551777361903474076595706825664935368997158195508048708822278127358169599071321209596029055944109279778095563784765960508372759451888605707308878604919892749899346750262666973270869375931373514174517843178938752038899521496740962751136538403402280287016352503235385889029874855757713208763419767428425713324424270655958888168161460749455450675311558433162269129448029669927408773590723802981990665818428793287328643980750552346193366788069235876480426821587372088534419739409403497905658498861716151737103308899307910590741697178185428565411082182005731781336922248944464426375533506934585069475354807169431467678972880901512726793161744692909660758438008623495869584863225549596799926590413343887360152160682882541184649885428385057644858359793234300675437786381588413350693373780366526336143990651089293443634973836579472182268493553199203072303210727758242741153076389448856899969361555535115189211362319715072388114193138924220716868274670147738788743410859218183217188983722483525539079878389632747252480546647970400994643837439638636729089165682491085438958561924820409634074492148484418104172067298507867366865185131213448803701605529187201915142937101302273933281630264759232944722530872067380809007865021638702895069806299933666169878904577483906862105156339262493097964919607046519040841758326322051209974561232489993761810696978211040284566473417259113348355364532612428230025047123268618007548373204849837632705469439687657414370596104581786086547641464645420332578737526539417142516324316003456300796266266228596657658607276248006221326697855152067993237283983980846175474116540335911772923575225438317190775577563829449611308149086690264229222131659171863813337373353118249362860561055188882420283600073719450024614183233370899883450547874131060111627223882758565155681319370667639616386432653927916818121783406933187684425463497960559217476637997610862023811117017600096743805097303409086820331705881518866701818077017918465634367088120292457103434786447631261565605870954323001908377505741760724507125639350237987113600010894277441508160864583794667075329886433830745696769434468669703452803887452168004247450704595776120296987163310693410499094176514695323793113094940194771477199987692836427898414022813242370848857321836260867084392592935046615440325322814414255778071936687949257719110728225267378788835747901470033709573707599647245294174037414529846859863321100390745831423565184684845105131615140046666338049303248961972877368045085132821297665716239893904078678385076564562244677882959307899991339511158558996085784088740107537477283127345217077451936231471603769415545786677901394563141494537176275238773722570384794563237310712072582864447613322782255991209706003260368958473760980913747475501667970261886639395432575550679195435020632172465793254705232161696188254408127584494404299206820819526185287603623594496426266685851078883208184622764813957972743759059563583121001741293238087200923966486492593052096600499706210577031461688773026378905280805314591795182235735428987839818851958728477761064247633350641006394620779676478110301206569005371825298990418801511988024767150257592905699558015793067007691698369428143945452164115621361141412153773624808869763619975728752306573827753962644592706788784118118363385865582389009472958978480487856391779094917592053971454796036788992293873871139122052840615451947594007417258947388610222415882023008813306443353537641527586410882868561297806313058964327621751981921424885367461813844578657651269315716729332104166706102768319911487967889502091301946489911132732093234675437425004817778719455355992446333029112179534356083704094493145054609129933892910706014725863894346848464428168434187697857062918630248644420020391434182786182280464556867617974642188759860649157198223675550112788852272894775424974727916046512300436358583420953213503493331589364088585612864629188947929790891445787680601592966302021625348529697510718107494443915329240148038645802722622354567329679309158547261650912965438312977039260764871646991226914127962995465647656209001047328568196139019826249489445318997313737463766212477821309309843396413021106009593588654457602084588143080177982750396224938545348640773791092665818844095852688889581323523297318669213164644544263052952221312093605937879917139221589880894268711858823874024420412908859810172413575340298479600754052855184552087956764129445093095173731206085665103758750435512043899873768142117398321772842541712834551314055819078549617510582371070693277502471826302538082359836014718974735543528815799621916048414053359090042592633059643379111076056347679237480904606899179696614253789927420184243952919211589217588940116538045647934584697185657016563830892404332587429154171771029190517322667567728112569524064960518389811751604772336238385479071762867545804744240091619904432793138471769137006087280185280569021829824065596209938085221707628209363418265440679716493106767026512374648145439358101168943452697884878881499895786516767063946565265972951832201748382065239826762922781574402106945593550139672936493966843593492124682129041562848511443416206396517309337534194277273439114204935231748690196618347810454310660665039284508346313520729115126044608215650904415744430529121170164795831519290412128991533192210147405921923668861712151107407628588137230559792893786629845380588600948221051544969895742808180606710648661094579616370616956624595134907873864519612238962261731969404227955036490021466402932864696500644749434666236987513550052433304676010044987755580257301406449428718226486285126633354419317964486841356066577508758356404987722060328767929871745623850261669422779368090509494057197553162013993901174502904080724969563820138361849409826232360339236299973150396455194903683172819922720801074146790463621449494741225487145210811540399075521103926136141548358332218853957431069710297851148288828787752229477323472197156771943658964916653259592317206396865812965796559078794287578045114121780073374147528606691396329337125894817978991764106800933414822322418656400019529820807014556716536382763611886333511220806577050058681683359411471384324326609761873444002410606116507737234909371005368029331469751387972530465685458599857599226466228719261548973334232181864385575743087364884365065771930035054865291558272767213688673446509412169027328261646596008358633473780772814746199445471363365457088104494334464506244877091839477391934088210709735283937634495903102422880322899202654387923685916513301475430620250378211218709373046326492296626584676001845642592558220612856652920077115229584780052247503814017299667035593593140017634206177400903212799212195529236677613957727094040279200589704593727083475130702725374471660295333486146438768473787239397766207138119888254802813755453902131355340092144790880420417004429105981225598603139013328605282925754586969260712153474827273689906719507295464209547391602081390617428228573947890942026174424453736076409778044513923995379366243349870124453623083123072042614372060983602846949300012205111138794910038759600111689636106329758014480065190472485941094757744666481177749008906255518208861020412347272115850531933222992117096206257447025939834883116678699792914361784208215572304873408407344194620851590083098152661238052071734603945864991469425031901615392206276926972671591247760588946076253077363104288335902710273310380476155860542227809625092198601953389643067606525925613322408379280297237519491796468714455796597531210485901531794507168359811933523134883312092709506682558429341999361514378985565388873166443169851574340318581341779754809090556836353131993333914833132673394717371456450668417217088711875121722007075110882895558219473079937724550449992370517392362096174721216143667573392112230387112038551231690867760484703160830739272293919140047315445247291363842761095774691809609161582523924829209825154527260558129556921012352103741270714259186309564235751401081063381676274877550054968918074512073384658915082005350530734283512166621715616776030672907869333184453896817941408435813923291847841609665552974629478585377223149779456332017643738294717242707972321334625848537385043497568687889671640769356088861183724411622463433754510956868012095776671553018789004443417381455537080321064547707746984363721778898494454927869421145259571641427161137799271956463304561630854309265720743748669623959771728078275273800290618084782340024692630048318618733218294099492543506442695333211199085090780119298076628610253104199051732866665028899119613718171347419639503266015797070708206611955814120055725754006445848026429611118174017675717213450921044477463668072347367104050467291574487958344974601967461638483729786366614652392370617413135530443842585902070271907704926860256502940536256943441159713120320611610843877004149177584379488193654831546397294315893489176751315392612929751657459470985266746414675320661025953896430569634273194732157589687862981589403350089705264787730710463942687430274194164209252662316577830821745058126367618849081347258517969625796978915836416406348845878021967384298702895900147477424921868768502269109990161775725390458867595209512942260855327140862287357632769117462832679375400098253645818721739769404490690853074267996660042898064437802518148636160096757482471555259887949262450981113453771982607346063919013001529317813793795778462645719740235712592814693396859463120086516479576854426953959890430600734363347504497128869152844274277687940244062391406122664018205919009649193467402666636270014869979857082076051412642947864013944437370791024133643330084428183783412375661778635286069130903159205490668392659785762530307798299980548089754991919479672149918870734872119707097223556581151041939754307983966438224216843061115850530647796884199184264626758713509819029201355648803565087550619409868152972300921878993037913778959632362787504858867044217866939673620547351872602448306779518075134766626377508483189153167075736499499684943895985414185302890440207840953477058127609761270372035255459198616798791400075874750510095369224669127477872325558599472865314775512375341409513200138377739465801812856203988253344316853498271723463211132155261434440105946049670977641354525608186520703339290115288510928191099540931079523999807326035335573778240857072630220128923313547959009939811890404270233671390225606750283631985636018730210062875349334825053417695956002728832348717777777792995473948619337028651731334991737557680155454773812858397292988264573829386088522840698566814662121559733274511043783695087185397060208418862798306042825379771479175173850325048893732500441973951701408156599900459342328905734636459197273284543019827777690769369476813605881282823889069169486325158343112066994392029835016880391173341301395697268586832839362347599948937334672657471580648261657241384685123116028134546541093665232659245111175247807512016647945778698194123585620953932129553556467253415085257837643524880546295583509686093984228539758828903614042393475883853823991954617342066800573683495208751721409892521471543567166802365801137144197650238596340320093295332819191836099633543641119587207345973931047791656055149097263563124777456837935266491221968859195104297559416906082027904406060141438343558514327053405263499346972926416862626911773301277992651801993259292660691864510236644658156471165088965087085245931084250098663582304926473124474817401346885026568454569197532056314219172273846217997499181964156989130641104473639287080844748309609207629133313810267313779689040169074001770708155121474864689283694288727996491622739116648378035313036125657654566427273768014259847062611779378817081385054210487173918767294134059620809902778934855766191912845430759085852820449286215056334434928527800834955189945107192194956943661603531722353331859494811324776473942653595225620891726950934235126055024544654404155761276905083018894021805768926881248803126001293134304178511301172962609595944230862219676619547421173076552857852064406912688763074147079056085131271262424555334488492016511908384656989086724076766653857347893188893126737257425704055300439769313196252772883040697632790168886598685998675636151649453007071234516378260676592888503131932816038288894007797683627320718508126754229140929477170520864990740088768727804720610528427208194457627776891373292028604977986782640315014013479428335576761925200006695626977885096967300268594488951751256655139764816369755429435905446130880138176095887974121585090429013290307085664022283184982421170775216982029498598341004985731919606906148208161929488820823312675213656175397239382465676367549846439272784919556643319610774062984588130993280722500612654788875330180003915344584827669441527412561144278995984818222290163363433817908405475001832491823251184276417842572581794666309328433509121463778067543004885605367636242022057940307260853703748276293973121237830293706932064210956239007552443004357598791890966349457224164796858086059457066088108545435127310589102876480760813701346066339838410950958372219717909093821835353754443776754586513421815232233270558457019958081330299704297542482926083991041113511043349959111762118181993691058672953420604292720809501331405891147986610936354933536333249156761547750238681858042187085266710158372765270723376999421262311485262920759146152551148699877856134559252284729384106017344934479694601790681794044058244438976972275401198402051021174625885834690658883435965011219069607648576739111898591370996257299366383252557828297567322382277018815794659642419695503973705188208125086473264336480085336135362723262075196909745780003743059609421607871781044728946333310273294404115994558819475498758736321505239139235596289995953730481129357686786066568609921164998229733404100780726175589950534419647204072145024311482890326760196827061316314495003122447789544082708229761531847767721771088960934760953001818619770309247116886443759104133916641634406828859579073264285198733244631584267894681630979770375813228100785770210728993806236563418551761146461228074361107322551354522508820922338594826839751700297072257981140081337258759539980210560391706512519750425122485798918795018130820798187305155614108849090362134154015972401777299942270074758503342543391404058386478810124029320114029981536920139230795591826535974619616776406733413178642615596585486441456334467133219095426359235725388868347862309030950824194957053814189475307749896321535391837291755693085445003786088327026353904723562199355442006527250839772535367395012753929368619926947983070414216879404728562631850625522581531370718897027527757612692041221319290848651325491537996480001903268738186876857363157913007504503071900939410736365032207918921945036886354728047774575076305043378284174005053787111639737397555357837187592336057078158957657454393144159357112905759324042159686206426810913667559117781236250867971558415181630522276898960136356475157021273651193593549598286756393214142570468197150600767835023738929681873491641587256172019178373683262062061752295387768745501982693151346962461232975400071705355740117293160426188223871510851385680137876095216121161409516498895845929298964591244222344314362324236197384312200628657610980530052026245672927911439194087959924447721075767743368061480705292633700979235953834218960067555845830758900770479847346177819212447179862134206007794439291320716557435294946696075114613156526802885963217892863744741526408954458490177445268470922720058892240743786362096148522329825350969600405303607281293688773771671984368824537513560221490565322550952133636653279475131811091820455479436236508098047884276924823429752268344942948357204931207897588644096599120225975748789866260090246464391401496965679726656076232633897185895609411145260420541548666210021144676197938126568300344756824610350952092069341624115175045443008703172374930781142095634316914239522762474447000298343881518066592173563701379420452831988120541797996873390124550498951708794139710601882579369406700499430628924406350564315377816498093752102336971955746486541024431068488184793815751792699118792822847978653502819524320358797649804842939352971114569354615834123903396065869014197973399629506687058291225864759836475662090432726331841775385302775310433373664639400704316048609525194679713107579663327471086631121709685496573083665263487234358102737479834153184079505609760959088560913695534337900390939532418559606314804478770694726856183496178005847814541191358848038065499587482834507217505481805717121050340429453853146900122222596107534508433662257252087778241852413071510328496632615224913914632826235147925263430683297669408544319640266763484032716904262484906163085083183651859257116813220652010450893194256552541414338629401140130074059935197928205068272222109605440931894968624435238860271868260156902342581615218345643733662773171120018252769177505777774115337295919349069742222939876685224770061165266175200657965852323914390497764835571403757112446313110733642533616781799518902394032670374694746054812757791741799223137104939642713132123950007632801658691766183397367936295132563636762900888232593106241240584099651052624657011142106419164540891531518865126684534644847143803893290034674392467406770061972001825787415088431842032000485979797933408821198446939555721262212750159857868278803847641079911720443220307116179424537544024740778374444589210551718856028951470898686063384970517261260976196869858453057953806657054784570162996134986115346471503838707585712359791372034973147570749711436848603419392164709894422087226303871812628874959173868289731671331035564755181013422474750213637094629229247041507309329591050025314344278766659768261141301236602047455023037818447952894183805506065107452375787525184933381265968344107780331575134641750621130778622279387423102851780787161293971700922840790603491659577796898740842145567674520635062069495356526623423546933389387078038238892064396349117830935736176535525178244466768198257127193277703772924061190475983240907480459637578487027526972893841279575219711600556420964795530478909211277836922458728875495400009766595777731421006009967483466059110258676101966968924553740081155851533939102962964317175987185691227936704405886998788661326536377419205830958295747548367171028226133441211520473057051869134923366060859861412956514934596531611991983449200240843661593078850395954132395411696699458108766748699916013612070918103172244008337593896265919045589582552738661194082250720886078893710389546424427050281175288184270259157607749569873384251536629231735572898874768540268922749365688906544497427485934467842832453215272928543455076639339040152552842092481426058519131855496549619110149541195628288131672967839790031503939958203895487881349210054707967277955928162169648219287674025703086294936209241383805183989663688503936604876241183376659792631126725597742963968997678418123936763393230023155884093159569864963378935283762253340755018297970617424722694710356914422427930111672850684719818863780380045638177363156753041664430641598382465465921400348505675352803771386055823199495768847596696150209920056101923978135895317211132406916960548636662157196679269403317150148922810643513640771729238580663900208084504373578524629634042218131609361094748259060939286731831223081978667213043376337990518074633008320321684561834374267466765182710470091459474385317173714747237136905049791676349029888320017032145466858950580698866314086365463980579553546531922225006265119314397155689026152440612794262841067579500080027526976432020555368848835153735230589927094951235912573332327443478666806290196167706294362459420012877647511981077082404153102861843315573347014232200389009381371564264325629714901539336149265421094410671581411643577024333965376753452842482457628764850414635152663677953658350062505811551007728589354877118657594366441468954863535181710508629253223564161923219610565578864752315869789739145388773994308270678792623154821258894798634967606472474312605733249416535892854324047691457636937553632204958010182112434089553873641195222452429853620463646367811171763487534803155732808943146694532956517774104113041351584856313764628855051243656309870655970634714044262445387725812312582138877130094472382433389249301365272512309468125260894485396002011249904115383767964020333684791899294265758688906061062116958472012708602175524381629420089893174484762423592502657252460889180589574513933250207581525348686649275353378800602208020861797892485126867008534413095384519888600060218258531752060831983082928966734572826361470881607695550406905363633487050192820782446771604070289937169305667722450123603120301322369856479581280130906531869486058448702117521618892657405223669966593961006077491615790343818010260445223916549887923410593615079813580172217271609257563120732200220333940513911816372275054595621513189520536775796890364388197649459072366184561692293360635774287956440352880238310575419075061420949419567259678962075283868690812536379487354183629612167282065693745691839367978637652219092081906824668572035401756780822192692085401912552115458860482223705921007515738245201524500947796068674088463255218677075976907490740179801835920666062496639040975195836272115421477046429371147767269823990547648623736032462739721160684385561868629098013611330517658071104963244103099926642476124928305192605466639410755025026358628172492585748446702509054797462603299269942450386571072716479781602218549692880561621283882578568895740803358517266879370330672921988319196444141364497371800845342585640648393146894462518320926016688059546738421517005929368154203146137282261573646023313330952246942574793621210422552297192528102325745758026229355212709644457298607001706788991443585662536739881118890712423972987160741124750347793932361902532325190262285019096961556209837910081667876223733955388769076657493336882926969738604465122236859485433642918027927812138064842557234968677220559350593088446487612001335204522828621945083841634252986545090326593972491540176133066168745655854358124418769490769707931895353015465558894332516164656089718848045406623281508638977532664222382072030021947052042068073453203635974634748437832911997688207309023925270169617094167269976015220044592799911998656892445150870479093055550836290604888990650739433725866895745310649060113600097125198025984638324640950629745880596572215874483337252091478148791405646727187725712277586135549957594407366386976027455016005287887021590229457776948834670798989811306662101893156327981424144825300983803845084793212081908449199495374611756426995143866799563870795596179893696033842194146977957905022738195844769013006154338720284701508062968434664339829959267012588259508252043995293908687131946715853701556974634998676721984485851062875131390003600734548735006995126403974083933383070354628355449979280960477222231390582662211489350778938033096070246631181392133673507642171803153982910536889781670962107155475936686004608281571489627819783131760334597014651823361159834355349888108520888363809596420668424297335683870408961428671740069467917222506814781396491694111761583486737253513785281628773686823306269558344324842185483497572304121127328786926273623873896382501578104018113787075167206424039306598945561829422568711727135193654397506826867225005583036692027481605586708091650304043058773649407002032426066127276235086751739604834100199374799989185921396857225411571383218836245365861366959567290585126890218655039499916702771700448025312693410352823063278411568921214076321301557139843441143057115860026312098442741487449626240549199423342408547012377327850699344766556427112841124342402626187947184744741633266072696078760799959846490316163347125230986484627899527579532955034706836182044335178745263751187532393157422940995206250988266138304808376000197788348472231435008435491341832017680461392857293260669731582815105926273761157533500952542138038675343515011808738995043507739450106316273558054152507963747061486077070091617575871604214260807021758222386683972943231354353935333918170208436511769805010878875663536453419654756308801755371815124860683716019628644879799386725189944028810248768445258838154205660731153151657152460883083350734869012840548984498906948099128173961647759679409230374420085929381846273643270143429039115363556068301180820315967936153509764432978824661259691237516791928568500948928337035716085950735480586683317482595016234838601071791929426785046531985884230402535798082503020238924312533851665664912997312484374759435595017084414080126148108929423536956153457448087763256046237608369984660923323492610848738129625164052022006759754269481696534996465951545108154784802220832849106027752600463391297393257702726404180618842701324147479324142300215623501513113089503005928419376888829779752497958869529189040705924158227140604219585322539118467390979022796284456580349515227545026423451354247712083824607196156446819486082948276772685575387392705586353588210227907914046671358423047472952469860147981154471697555600010555933292872277010649835507298119450380963932867335659780421239883921033946062991593427701044126236056112287699749313386642285704732749075772223285475775588874448843136477913244885013737275095602241683349027313976039203661654250569748701463494245420762662439136686054527592223434607495644888009064264936201970527337567720233067044817413006495398339403988969150692145568578001172871223877625982745864481693969188251406581552310831758950277118123783550421363019330524563191616495834550445059423854933886609483472276488993411135551177744877975412190843006380885852891851407225304828063660580550676370627939506627230213713799248308515123932620436170359340087271171082223726044623612365832071851483178604184916102606703690663275363559039602908827575684805581641471538793021691756652584588346443357372946243202993859995435844081815890994516386913233883114806896625651707053337389847983243815188455897807326604473870545472296177820179187274767346358338385722455328859030757693364927076149078963275155721972494327182012440837538065990807017164475559046794274011346164410082880944346598420559125788793517973926323499326079306366288555993294931767250805360032202883235467851711297930877360524918411739811188391115664485708537526993096063000729354093798428587792634572808170437565844973366650914229807349949522936232734154079272220319302956351481841497384980354999845939094559171129519104790099790747238538399746268636474052567454449079852447326943808164490626435495261754848722555415578686929569446548716021598899147367561109028015769864972891592793729378513934117327356163309746148906058705815574809252968108484277877999033025184115418667611746705218899057315918744262441707186579907405110418421009668133984933106212134374185414332130545557739504726730756160125797387391521210693138759515683603483533967018642382725192828913637224910505888848039317986408585946821130366880923893289265713162293719920714401174811834233513398194874244408394733625060408664463445983013535612648885996677629091218347170114891688825523821580161270928536086546861869207442866201917686774477413916915550600464913200542811268586482761459708228864300687281348129537723180424147922278557891999884008928453657673330696711574999252130773524088266362288851601177523748939723548551068065657644829220569424536068096381379532718253565981111618913296555131562740785336241358832973827938218573352297172523143599176593416446491329843205761290438634052335044411988355677927076334678666488074540139375282035439361653162765658029826707995357946713109682006919835134168146395052114638553080832214262921695589789467884735400597618533149221573874467741713261303637759026285565961850636971227239994217990744027971663062508499007624543798834726285438306690950144234281790296995077794368644484902506255189734714164408722453829253099054988824043402076745282033604030607932635361085805338590073578708083196491526356686020086821198558092237783111848177443074726766131574931418396534052275634913222103859024669324492269243868952804649295249687735767011995582425698535477541763218127429398456891413657492741137772852487098263899407485644146083325342085362040496558969214582954803854802332778210297753621518515405075708074966910735914397876542216279683876382447416997455286049316508451954753124244856233439889511191077196513978094843472852806700134888590688752013679382271396641208610062140124219313041149138695447381341802094166471817708506170829337106908377172832418425405263202305754521586021132341488289166462978788581615895882845899622918738889457759960917242462579639341651369167619138671164917478198376668362385003494973244947673268748731284634094963056211985889943082678625377997728649841506938070667808571523342289410154161043124304923413149848112425515363704077087213355469866057123775060539198578784706352319588379998507513223424615424389995630049873679192047382745089965374219531693391983499473841905641399864234438858996242446267704840024817776024985129736688508297760972476212273624145023342661501942620489790210946606406592712825012098241473462195029389778032712432379489817181484907306440749097487460258548890595237453915624314429005793253982184019818267367882484010596968323673625790518180624365962766419994503759317068636747579583165555879689710353878661558101744586624849705480880607179883122873310705627809281489170904790405763479287832841157375112305723494168542492513044645390873774821939176911565659203185572941214516975882443341776937227336870047271216636307545058498246446664307468210426737194244307646908094475284159462031980174252595832007244799874337186440887885090874015575811872649811952915883696684982981173207199354232832453415109681954845345139542478088735347882523181034007832956442693262863965177579654539293080195686333442575423030775272371780123819958873307682839829675149903238380036626821871087422170670629452671195912406135221445426066891949380273692769281824177241056112497947292103075019368439122978844996008327368380267796586042439713199465701469971542605826912848385514742914713867995727055629920918957330082104664703420681257519682825030956525230325791657455560656474337388197302830675438467998320133861709891087777161347624767438360633592142223323909145332709288405540796587253587764154547030624908738381565039898828134879512108037623525238434024661262411608620672757511258542512407799326345048608470898350919108840904380007922419925766544895564943499117611587851796225936567032892471197805568226044811743378028519195352674441288310021964747038079349791892525574704075255881587052378995855648275221420975935946135014023763779256869511989282335800750904801461394372389513803326061959682415420677407285437427909837897512520205295579776954540764633847823098971496045870337100530847805043234116210102987827729833574903028891994740136895542644272205099017580469779348810808643602928385475692464990508103492124599830844596335289702623078571624196228282203520865312824240831716463763118916880781472807062515239267521225943100998800804127635658764101742877763911277265444494369025433815602022483584444184752829146494741496524315902119190639116085851614751144271962854458255319266413603627083108039767206679941241360224849647935047953079236023744303939407647320410134740778800354532866016387466941017129974521851999285074090757507082779750982978132779010871796639402665491384976951493185285776036730349060080359274513174347808214114174702798012862327838420175960498935842007716194351942177044978036658907199363917800446097852239415533162386955188752781072158952589923420320277353676890114209168957294658960005544894897550022671813563666176672776528148490042528293413234561956593362842722295718407026495186909771760998000347313585102973770448317196887923966415294803147149500751440325011657401378168387991027669991301925579735971011319952696907466475184714847334721799144272466404732635973223818510374888240886029211704631480709195304932277514235993026777218805133632555719793063401858963089911162479602148986204780879014842183548512965820449129714303319128802126550602125867433068206862428092824257968456966378185924391313637815019368780266530273846664616603017415788051072405831836084628467976886857877992803934542530347438911119898943916260512454441557219257292769375625614093582021908451483443281019069536928464213193576720177503712765917531596746053666697795767134412147208804575943379233313028629215316408603385309980576151917641356536768454557463817444326733815675274216500036648075022329720553087859510668661562806831191567026864223282341280699284745631741403059679209625544246359118421764912384909329974264851784418469786890931008466769399517706051383541497142951924319918757723560047407627038750424519345966529145755295691510752066895440501491748745120355640343217802716941291396855371383166128808052628441440875033990306500379693911147837901455127226929538456942326998441861054922776760947151616038177455023890220993922968699618191032143573951925189630591931626453598239711549353424488195835751556902376137394581215289519358596537522397598965771111888176217991089810930857736214458123692418524692335522358464898313062602708770578277163751394357471567123911962686011890943988200742387766587717516222743547343069679576456250491909709385716274585375142278627501916274571111180020902649880905626249731436533416642337585569069848565668054671266117196301699959118309567861494637769323058096420604238390464359949593371062737065919396191463124296082848074984056042338337464412414103416051131605790394759658216862185917581598643015079783232047240224459708407707403602225273851671983728509316104711905745230087813934637833347947498048428227410326840396456702407366889651043604464282705426943358666408023963477198337906963790469651806014091121218053677885789123831220812520666295759685257594379753924662443435802175092920319633472525462104328425940546724179309262845350191958522161428284726486223968094271174649819891351026279545161382895534779971996989714228444295323637144984774695273914667891248841917581340140341687888020356973659523655153394340138019690638771202360766631708436296026073352813987535606282917713763244283901691114181143080786985238832108685012288131889908021234920053698237269809499658950405436893969885557840774147702793892811283215955717039231591040905830899248636200009471586661057153847640618012796176057921081997778855518536064786224982693255588515204267501398600166569765463548517857272012169297822973416269633030696175780529628834036091362355101700673812146027321739726155052887358714532403916789578510627524334694608618911447922627782303567036975625291917208120753500491336173386667436071229400922162218381013527000228672721883041650013219665544371627982544790325884505628550520006155532097391253063365507976036699698500493187816442348688782207539844277320867424625578721548478580388875389019092091289361500238270269910371831520602391616699312680896689735014226581370274476790502221082753107059972556709872396459404037259224910713324585403907413902787252937704545064876543244581999032745101838013964414780222561292514010488552722511829332632064169277984079998242395005180933629064889804314479007357967348093654051662901429282856194027908338756006228196178759125639611881281996385040806715208402478844729509584377190017710403920921667566813886252655957541855513723083989344067680770240397259606325025448284293405651187148115957781743649286198758930766080041613060995614584440738357905228734571889227458278723484280002336830255323533553089386668783380577962605443401653998118606975987734857675715787781218873055997841359115744553767532956138825251514245010289657320230456237593762576224461086245206904892774168883602798158234586924421247286225282626848938959925623811089949414009966852600972018106306453776133740551065065320505650024984696023624678952531965710315556878187029843609994132899804712585836403233318899896321315440714739639657696064869381737888691492761870022496468372351130245605704099024628186656542706746064726828141106243301396296798678980896344699285103401045879695123997027115014420871286122387055859962475211467888253059966029993832909782286446223804331297114227994168649930830981762855563832038963217811056026706917546267901257360233041966177280129337225763506611934819120388886335087735284620788482724090427382668867561378242193659299206859652459676191139583430671080491216974933498295242554151927472765794079054065910417774449300565746394802887705070000048210299334497094043197049165210355361305943492361281368924913251142469180162694228310855835107429211382195342857522630560492507949710694179253576048212124798926975727262558669644229079530339088998052775049126926794774565851332636342240338179169287926118075143504498287445663445624239784682262558550644585794081369388731194203928782336612370602539009431880733528034753653343549246011130764014862097818582412807024146549417713579474059110029339615596641259181166792902604809134648566840214718551828513173615114894827402204687848817778071237067356573361431614249395422214235983865903807423180101060013422863472820327260313134703241173711216610620976767964154908796647814027990252341507514014088952911387702123980571866211895053201921063106355196974980448367090680063221028243106885760463283699534996399792028311920729084754220861048403400725796751626441615852831664924365389860371194517748761726605004538927431705023535377070263316407617334002356163994573582333450696953372519631918350151131931700188607046751534657851608158699691384974219732406306701133165301343800918042408363253990890814572980720502514417480936401472391188561167274055802787647405039406106476640934427282710051639457325190653856090972783283941514311245941517146735701838418625505725275330954294922340067548258179683973157901519323349731992796186840132790427709203454017488107642412839433767204752356537613257617608883116103140064667923173897084068809738450335335363922826094517722533184445199764761978925597226057402848872054881027968849895881815336288041549397453187274369417655232331497885289461442882323724486526995852472243772267890854775818424339328736114806399088767025206298427117443239393347979551222763222317806652505210562688201958751070602529553102180062804645103295616247016886287504888832390968927379821450613727727658383104517512001873904276895216645679504669080622155322235610494637693782683744120070056048999097229956401764021368785290213825662410744797186209827439982660987611142784662147434627428153543119611274093458190002084891226546178289508803968392726772318339224876003498761886008359839195013154047735504266389869230082745174693572583601270869758384131572287123127577955500574251969002471856838288566418754201091345651204310840415513517948268501576904839249629359177307544252544131399011584437351681709536710370185770763729499989202678552513830584655235457664002833701213851901369189131754887797819114310812587980796679773301977956107073837519379049777192399358742824403437351824993564134874364779176195694566405220938452626994964628347160134324472707387925635280814445676819380726217724109372301091630734553875455891925900368685950204497325684643513460298296617693963436681370395724306369501944830455305531468842427079490538915087800565058599115209253487809251771772882738195098362895978566369899605774347075153242637943459271402149899201981379096449967659085953904045938682669333986478895161708036449793764076321696069904683625004155561044854967025757417416813027604885339738095475268382578540193864657297134439680546303799292509707813150149290929952601341252818367568823748756152131355089542723147832157655768907416199112593573125585539047145537894559970961780562983959296069722855682215717085877720152287221092222076706795240436640260161714162898308120204379911180574221576192587195206800095283190468033427018250355610637696113654405528145239806597320404372298117110045955820069768126519521028363294838652160025868714733725162162372932719529231002914370730830361139792053939526642466086891333986224917014077679361984465683848308307841761190558759999925430430179410692547495068370454775309335433171096923589873873554198641395238114844701857539075228113591242067265863809568015321219839981726802773598960339450509729044831048156050807461028136900512313713813368417575663984727670172790095306912405111113326850349568558639390283607594376530200420107090687373565292114522025634758388200018335757224982847385341704548270139961379744960147192183888562758111701582135215586105132156880740141866413085508193082360574698711855428176958877255820641764111989375103545066068593340926369122653961147555705181572071483929440766833712994859973253278523734098605301009442556326306984102389593841703548667237369604736702101592867255323341360257062670269849228644006522818455557099135801312947221996593666397682720674885002295871586022005068336526928190482599818378853388953220155793277899660563966041922489850132048914751956318257731502673605203151445143010285611455565865534475532151012196713326918263470853145129014108008797132774853969014904966720270913540571640849905886427157248203689704115866381793813636292580429349132029587729275180858057041832862374846042442220588621669963314882092835296854695200185368588793069949171165739060628031713024478048972169996470191456034282713281585422661012980843522772578205165580209416733457939149502898962196646424084027516335118628740069304301637899980137716106802341157115968806813746347170209055143525904789877280605329934688263558565064336205645631997118034015224742650244356496617810624747277468729590108789094674195352405979089034097135626108949250424916829195809550252705613504386028728129927612306005972490334441982403865070145339547264832536603086968864951982074294741977476378108022183366631397809051946881440379311381443798053462002841494557517385857328289138178375865301967730382674210418957278864544571572836121488081895910591727116883565526724961701118908880134229490839292417270469795504657897488051230121971556198391959895625443880433283669313580120018407509272825557733262554643478199425120441434220276070583796313434831736769885171025714350274359221951151358085727408480531714349478942817984755881928064313100762402303228574143536324605167300949859051889141891666871924492579156856384149363483619757593058164428474552859055112466704983944281647465811764946827850258831953793746804483123606382740128542255097053295974506779420101033421198667070707246632442404268686892233011978930432650949080384113195721558102360971309472790718085352429122489663485439470024592488875525430843952273913498872796432337335732767192814402487230633388997527701457605430195627984879391143364446876804331968915901560298008966147527700668206280333350063216865764050575237725254120528201349647061007927372410546856028330810535669490492857632782948674798834996026207769728132357338784934452605541858934069628445166614455091786952887633857788550141615533614612848311505873448794226596255737104686144321443975774252303933734635132541863312928038659472042169603809258792633297111482209369382620990322132921331757194664582095048245307461576979749188178314975343339272921665083971062933858461015685421877445580544569438324258693749175824595784027293821419451390298871174241739043506331518322259335694454577256587446570104257177439412784832405448010403869318429251285973791411725984698392102357802094540342763840461040527118799451520531406565814629779475976176567157498465755562141680667585734620361474925374334783138712097451784586646487086511202937353041851290959119283577284039254625265096972137572422702372467744987592694698622629807908058913009294140193959244843432600233654977653536174860174564331738503729230805346860065345818373976992482677605151757061956076602887055138015093776015461629964110497068710701596292629520368150984618051360563699883036923568068691488223491368327174501406837173851241691257874756468098468339536670916751114258813161358040832174002745046305144549362321091212626823181988368495683749531488935326883612218963509589582578553746738160940949782189505099272033541624329550745214519710102263014322091349774187689025832827271963759242193181053019433931118283397221271364947345430173110586652317043903629614201033207786044526122325336427496456737576528953891540466174369996891452488565051359575382208061360237989999515431806380401291568858156290123023141149095639640451629035865185089778874151919286714182802430494240405317347966322094745950412578273700115272661087049243549075050614648332618907928574915883384826158417982721540850572612202803932672514590787802377754438757939584160557249695404440809725152751648699272818385703965536860789687823775465973396360917992768734899686177947796754586427231703863703674828100184656115769037227676167485470211928403125664493718829228384810451647261825474867212576206834651003242500244134196587639476277607904534944653494511853629040832729222895890032800096081017025292103660323994826950884820259622728940048210044101592283617370532342625718817484590501412084398605135231935710320069317146095726634904656541851380412143152441302803142629446816685530240288702997124021999246286713264645113856288215996997079879151533409232220956261835366991991084455337598985730384768290496782419975325020601808378469273457251389285138320571141753890660527736082554830994077471939328769878808483421875719772973993847377069160891938267609790730451426270897484643500834221317536261828088742417543715023320007720102500123451227012188805542150347100663011428210571001438485041842165351768881890702751806659575310560894363157526967361844481955792730802130024291855584202458182803656198420223439634360489857667107913180093643360028973423430371331487750275192655244264730831777570111388896603941844502624429346329359599489511711670795177962814926595003397953397169061699667986388344484108031637563849089447201570658988082764222530886551773222704255505965633233181977386868969783994973038098680938336992822974388710857635211679387435774311415963079814359727143138660196777619267988608979142283890029415022579687883254685871113782078377365286625300873354162032917141049985122299767198335908073773566180762088238881774441489587864872013717476946436040886392910261953183675068404540232766965111184776557408152761872012346675898393003519071600285120298677849270178198430963120696373827804564481014534186986174406736953573698356069187562491049254359168709503447765051806475641941100891855114298188060651847541037768110029819224517723427313874484619206009459550456074952448192265017370005597362093854533644274318747498093516135232700950709048173897778483799453497170750669127258378044732882816484150101636920177060962034510088754076265532810976022860051582701711136374217101266360820071083847391815707231799555434613427475167913396387169878136352738287228399772427473560556638115040983758883802015082427894683540424845354334792354748144100319439406790951113688025743666859706875829944098795715902902509531733554581041512907913507194928864071758433667604847594402388981970916388337142299784228503795576585409142592028159873019661288747598988104204218666400760845960642367047466657626978347099129600408348064947709972489140964776617174522044933300529685449508642898190163923862816388602527374971391601312032654669762123839448894759507075851510121860584655538014012716786603075012399950225803656269706911803604987647655094256166102771296993769282501389883152686547371347144643328057008605659107062972027334690408780320472374052738264527585267855754287741456472712909041962404946647243244041158472217867318402794477970424450282227839690730593295215616302674447927853258648990031688342402379850862801130741673459108181756242433495824597852969021161007695060639242384098987235784731165289107689208038910081210889357871615828073627028301141565618744655797227929064951588372939895767067506166962895079995026624325924348782289869641361796375754988846353085495766633375444542538721340211912656487647232786666131241215307117039983604375890356507890551722941827817863297529188113201428328374044946072715985264082330623866056561836105452631719123103155514262226132552378458837230002663819896805525644168316506745517247281564385188504095478420216937359943937088444264954972868934770603147014784877436825673999606813114170522446846908644589424058164762675965265030279847570038995997567987184794649499331283096031656140986448315165356002597429938660222988431838752710913415826440032069335793895582134357824264123770023306281682414492283932793629196810641663034660035578364888165481805710442659176403872371382746269015263105950972423444754289005895497464768588662365064583083472509586410594562779495204074647744818274024718684002156580816896214774263058359403051259513089877279375391869574294520457112985855143651192658258474456765524508900060247818804225517553343125023471424835234373531618917416901485654987626296365149643119455584179249041356029111951499424470206858746022031544609734031735078496002154245922718328933730988250020450971132479249277809577214564203742609160255999955596176183834116613334738827666089923051698741422987403368647764758176006785629479261473730477048964817422309606672760695868751388853219213713342021567059303782532519937686924402809983131257138562341501257679387373786704594590168598652671347031269110401109353686360579395220909654862684516056158670054661205520826055908388198314449857913933946928030455485498642231554100745158171505874793026842542491300719378425994852969408799244805679281224264923623225891671447188305109825631146880912718068310178722837478772838493455340342850898618774487626066059677966397443531843442496315517958568764707293658611821544107025110151152220719731305467734712378525110453067429832333885133331175292027414876878725463890972968212151972621044890818295322200305631308425792122360651897601172893365334342690877192679012781429773051955368509764865598125094129977087142849162533501322162019221734997884939800656269846179383092996913898660456516867443956249809751079875656442953675604407992384371198208874886289175625683420704107501103306467864283990451814607779537376002512586612813130567354282005903559165679545296437726483055325784155750705736575824016554932908129984396828020277291055769088712449166454114785739817066831956231674771124809071204861067323123879822678664892491218253901741487704198156753890923312140941661052816897687966009459548558027941082401337028988227674205633479361336688910077666403949380585948968920859219661836191643836448366312587452807973240186199271260617831768330931616591874890234980633784235820470905002816643209535864840758272319095094570512820156084332646937620384373879299862962087699504455125820407639860040926672443570081547610436466444306054897879476568931899455541192848568545044231569243340915029965616303540164154773415669683700890044024163043911237569521446348100873374747501646128790933343790570585683577157491353610767375861087535035082395212916350355943865754007572529327072036951411768009651948866977383467179343053748401095466223031629633463802115215433831516148735057220376474303573143594712930199199354373480499494418525429086841136714981979163306318711466350402776998684422269053496611875000244305222627149733463500424004061252657569024884177894294630472263493903243904591319783035046863233558515256996262671595080954419826841844167418517701267827765431831148898562165703807267770074054845413030985062939146519760164906663305010631960966215865439523906309705455084756516569955202001277716096169098136314999670166527782079810596336554802376655522910032227951395389752831314283722821204016783436499076449577273349099789504089351662663328691099727687015400559206976152592907971674064308053418965974871306579759575252591607625910098321962774844816917889009950639488334055776597389176106451219300740038070175387315946846986263183300592502268466788582898391769493727780714566174671099411388424431992595716738926812398985501194385232326725542748153171917353427304506408631759560153654942947997010694703394955732086880983580173992017786307455587979516394533179666370170707592600532719792685447293881724461733049607711459132565897863780591355589550824693127380558255429050949784044926285147019965322041497211592226883616903242372289512519554090646568660321452527714111072269564130022439479436906688481690242138022737220808794607941553071916468481210130283772044089524163340525452373786035038165816624036825989674683736094093011167035102594546693465845620426359904696428107569977343815340242343588673368306013318090486971412072746568791039144140963575803938490832821976515308165507292645332606431567209688138765771259075929003249457578066849894054754275649143583356393268874259977068449046949449291510389610759273767128489296411899388155489854708468127098413812908759909453476988320433332295551554908532732506753131625620420447006871317411300459595612545150148663185508276671349123500803733018904244744733140317485112949334999860542545532814343848313332311392131612835737649991821625447515613336606270495137436663723178406495583075729398713244037577280035815902700203825828522374833306257832873593353014943402901593171964664842024585700910423974483731398319307420048386411183859688624832429555340168436324608770917719885318118847184673610184438933898990295305402350685075331627794452585498902826059850223412771932377346064244050930094940436957049641340765815242448597725167621852259745424883314406804236332379988046639305668944703292230807134989487835460320477582039910173915402581594900213804041505235097838901012476043616605957509818860353603966548891164928177011847109468961166404408848941526568200695802890658998673649182008166682726567959137945365714454387239642034716059605484534960440685526939768110141817847170543618360568969157975899650103457850040740802350292155524181775684873961787246117214938570006798080866347370317720185642685840642674417749642238413386173568318032055511330597435069794953926672324194165184571192047222528816370014697937480088526948718068982816669964533027378549097093718442324031987622487075400124272405732542345688166975891643594382817378730635952828234593907426913860266001747076279054275010555683267227794915629098868078180165470722077719141044984820176397310113447274526948501170800671188143629288742576971858505338226470981198663930980987688163155707009136144905635143087672068560114100912675151305226452274392179545813179306824383441592515729772415881268877332608873969568283050015617848507989517730246953964725048993523336191319261774534036256002698328280943451897273091497170675645154623956730393335626741700159017433027193780682096180030969079478631474830821189353815847867866086646327634798722796984391024483868628518243385038860790276922473776022755625965926664759807399527289252026616344613089701212217562592613720655735318684419203433408513237927785301088527892741234507443997204313403489254923796655105424976942027390926958599476677554543395805737066013488962226998445160870284356296158616408434539203443939373358544176031969434297694233430695072340281781125470596829907191649089100466891983421222319521400588433776813427817665004250837438505812138384769825571991794325502541990476500975056676669141905819346300891738674595224019563872536571736603289250150073641604058474676703532236077659613938547811960301714698481541970714252414004491711237547066457347872202378545535520703731280449795377162861554434497825112269184581937799793544335485294615576167685305894221460273970709273252471994999476544838807918674338536436568409163147818470395029696717902844271540145348129255359862174609480639866526053414832447326380414843095318530699931566980850543010952940299817028266186302406636035177125786704254938664802924311172327797686419549073537992922027930538927089160987343804534859186923638126001310680803876966979422551478053476422072753518836351950902570119090783373333157244196046502835409944937673850848102381416617990856627875372776948153358078121180460230273777972624574220249793244909395927093972509146700283366176871480161725509121184067173020107901396567383568626983175327627764750435900617504229128116022639071629247154849919210795791067288353880721533044216993751344699491823143075956591291830520002288980943313444027488818257429713179030249682696052825212530049110350309419627482268506423801177306505588600983331140918296808940002313591378898452150010504786247229398503975608401790440934440047399685685567506819677569114467268457444623688019421896531801932160191338611529618120966520636061888623336038940370397761499898201878707801943352186492018780730014923425137399827960903732949155798077330065594151519545526358871721837418054440965660108178139313346146501291119054885169347007166600998694800322347745668366142311424404919847563122701471111177944144720590715953490788551655362407073116221915361593383861458294481599406729384181977218236617244087503468482184175632648651024641998367247774674112363940895245494540219695087086978334538788773313055168715233502907140796195247018767850089812661897152991528699735337759416265666111947306515824637469242538854787849664918637018218801383038483568468498586311748292259172597904669153522598709102829258325613736200795171967799333938345451417865941445976234340667066283904682395919384597521617360151235753062773240092759201025497971386729149031341537617624822911266519143934799179501018225582688668980588121212079793810939259699258821076876223771140293930880443519093777286397534432329648636969902432761306644778635963622534173774194371746215001602946708339881490156692704802103703173616314355990787180530248860126526839750129711843521458166128844373180005167664874894878798642650390010588856225664629504843993136836965167589726211273399829738141426638026620312983064562878544721312789259869249807246555433034562610569169498584093163028960316599546575643665633515934281792354888959400048752031551411049481182688925563990006047482114243780033854806366236726224358709166986406709598608192313610221656348880341888844148702795712375583777055669625624387772798032975466979699103165789213459320435759136575619662234678727598891034154466812268153505794412656940667554413789125164485786298427636437332555899272249832740380906070986265226209750690930556459654597673288324250198134307691295263088199778207068766623569355268702087339579907364578536559704190157142032753637547198834797775613888457607419561512529881519239320815036407449259251836709892924862696969505678811397715264213279487410437174624436770347082146852279443036933473669307708410417093203365091460211700353846477848561237680072124428299847188839947479922481887637740620554668184535641121772129963963352297570772554213484827045854335306780035663771869355801239989551227608668730775897696273667036983215443587629606592418977573010503768300749408921608536858210664807664828483726351419002071846092989000920419039844855579387522686645255763458442408861888910900342158723629753581735770033625694000190266693383719556636528724861533650077300425090605607469256708340591422123956724309067295002609020326115302599869874301573139940257869319677610188914397147938644381411611719360872356318549902335788587652663466650172193921448020515175391462991175219459873091821058306314168798818216518871548209634456850831801566304058325493265481604943881856914495844216114103314169544128679562718574934289427555354663092043598611200289471810244313839895322481479234688792611221570246388906180684293049231858413479513162237498792091040644584682819787130589600484696767808184714889140352393173506311540859903151339953334346954822027985042578624833243845546942441665082216500569091602467166272208585953570814172893013185206890086049354611431247551944491217899521508385843001912499776780488088138078013075508172555541102725859743781108519303726547987080886554800355428720502272783681758528835062633105750304227111480093102222815504503981896746559415144382329288622181881843398283312957864727254656771351556565963669319072722005608476292040445063744840668602046774875448436953238999036726804752817526485523630135857059875368240129559292290891285627383677277448236244950773024873542672245724181770702959114328549137278552443191734859246670943791815048424417670893330806870773816723991167916732218583804688447395866207483709962072090449729867051518889653241241995146274154809449581588547680123433627632058693341432472154040867986737546900007617157822604202530915567852881676327456437964971475908344415043897137826185171013511197525832843565100930864091309322631285605930417903456433585392758413838371359804688649569789165812133894995535350411599140645664022953790396760138728006204802090286543329924131334437240290797161181366508422711071723995224189659476330617026195554674840041842019014143619140134066130092249353206364513988878637631660611032302805726060117754662317510571257607668148511812185006927194290175976439411643356672260015514248156847534903782324541960557314332528032057495277731567437903579279767879772075166811805036964467018852838290268181301916492675446470942544302856470918797819841476132377594003295721770549341941642437752256064207799905467374815777282572395385652144843177542084304402048485701082539309818874077937197512818309349983721367740730896629158689609521397371127650501760810986012957851558453151628094153832218076370478365358439346307304955180023754678859680371149398335907575884388643487721562983038968807027968672377359838838387951061590635021313033403217466652964991510557555532885407646314626731197816446815249441779868490543466743334948547254299445712593821211668842018789556388588839509988198534589961855396248562662447945494202581117611384799090989343254782635368827238547822615807996542642468139662924392113630252653000775932636170928838652030320577141830436356212191356555489999471988838393349556727321507755740415720797442652078618817452589562385506389973242874477385796345299108456418719437614257938609087173746805501621044679910305979452894446108552073742094196525939464564544765008419871648833473116943948993878886870977720643792562016597409053505899974718891148859379368468774234856382064858387367297587663912668958351010926387815241460737583183971875669559038083295437751751176872018184818914955095634366675097159390149726869689862855537347700667073260778799959877307305312037568575559058344563340600023154594588162361408179596561757969158147899469531906797152647680183848694723311241640776470009571046666581172416514825819322740932470667334222254797285505091772625117193077548988748508422647226363702260552037053927174849255846063707335415142497318336416010087365433769720069794741942475284456472551152837695866736569771980099992858573586383253069187521929565791765161912989434115375770883932657570655895465090279158208475761903998547774714906532741093038984165121673547867909065575075881693852366474902003020270686999211701728898616530664316751917941095079274823615939495659613225470731310805028942365083946973711398421962164907780808977149997027789032064763078971417122507907744552036055874545752091105940633252369253774561333837249806594590629282521252229415849672392544884570378897480057234665729892331990988945936875642927623170844725202800346581255047588583346987806465854395142915980658125603809488289382168663542853283110997478370802326025366201917273386864424504232427392111261613403136991461188752912224901316295784067525431691273831976934224674788924227424829922108362392289509028810780497324354969304794916008802083121377352248581086014861570292350620479157709859510363053506622969050183534908773605991219684276103360568251393662023431667876661533446254095248594333759620914715152410974783995624556625271180342185776119214448141084516218441180938346071028560832745689898489345847211560899876743856206121991338296157831231557915909592485470567086356593421954365930967226971149401693277140844579346532919004120479204959594272697467355868462147799533936628449147794219295222524191433009390248679660843158550459799270871564211682568687864466339146874857466000110384518523823322160063436732991150927943245322440222182610199685418819299203408481783921840160653078601891583969708705606250922399652908536929954203679665940247604855461707892849530803188461614512564025650579084664869788868815580768102991936146435064789534028128442174479856212350172380487217890455771847879831863323956279285272260471404898024482334005593468918884060716932476509904058004644309315038797376237048257186616061224794679334811089847170485124758709702737205712797248209478025361081287764652013853151103176036183210647301496587689334276787609172260302237875565448537587174966004821461983011273190298192401398699943851906128850886221064370712836498516033880937965884093964641487386065148212264345736835114804836944902396707140651813316843482790842959609733710946304986131346201282104291302110382504551509979715859132899752888248192707875944122898465855190811059846415656004668907866756283395027525033375766985530901678779366977004512218976800271319515539251569788771757686333319964930938891298507638341012142744831824982537775935840163425719266400343645012706191123497022553906647550662872804988725606170372686260052156691271244141607479276486355014127847898281972959042006073272439417647461103608179548072990615952010412219960335388596638464784257302999035540531095175443084753749656716688857388580980596117749189589054640027068721215902960482981050445792832078437167065638460315646130305082922406429661873606175505845664880669110280000451993826539548326169852901988290478316868082881054391507100703309411511444154863605862639741452902239407161504768523532456703121678036859548288914395050724984297074176621935982824507207139702472406316406295596206405536019849565224593063387330221454868722841362231417512890103229705115911040865416971220530779348466908399006696041703251852323092773172242214219330766615631844607073796321909464774900416781941253965810912188842162256711593532936668700766916802512783927517736198424784261778607737581521888629289833893330953816760703439487599953704680762425319982999984756142760665320788839631414638135263760057344744699464662187140117972996386710006355316586739275069670862823522460016212259738714292021023708489468787251439376089076825005803440523665548948576850599115538974473336398611180190959743686744994896359917872511162774160455930890458114273668015520723358714465715418149314849939489450373393362832587254693501430177368258441403316021669021222470148684033173325519792868338876144374579982799963773290909063654200889186752794388780051361029961909880221441403477706754366317682826965257480755436856046171294872763809301081852512027570289662965431385880896909272478156323502717238314136088624389365883117416978819397925173105861133111540460383317369697690124856674490119176060508809668949845444260527377666904955651396478241321457288153980678693616630157212343200814632032589584566656932530154448271054171178679208750373785906656854406375546861956453893642925984419898222735230642448568816222270210108562717621283167802108450456079324092302134002936960398777967883916991199984494111747077166178384864085134984656084429364070236475122811522001873076948218978377805590119495312938260061598520910764462904286749251514661381631466798625812582566246764562013765914042822108480715847057029210117456127529202028681982754095877035779856014339778611454734470634330465348771251836934894304102957578854836163618097934235363479221940994207069323252307559832221697866046040290354041528648276968343231996792302317161383238076991701964670217735692166886915584351609203198493982273277911976390177152126671603921496933230609194116136723561124636086348062336199300287169091172519268800324192018812918392429104868443220043898161083941484613902900687634809712309167656358982398269820136458165394155427364955694804846290723284974964592258052125116468559614366836547100515774478615037055207224689423374733533250961481331156311750406958047690902992690381887560095992675653013784231711464434127714611267560480670483039034681830591227100679187602873350508666525794132332661153376952157584549146386536445746945841804988367848284427671226649265324437520459322886942035658445960081674034412203546405126600602897749715893003165400754333076627886972972612955414279113037020777099307907453996160666077232434575748680163765745959286027481460353073963643527023054956813195018452912176721428247743273011494334260156742192104732262906459101999187319157050942061115347139897871348433892436049203395177267234612181306532848556373103094387258940822202728455933778281835511781103140868920562830952719329160318772969586181222488169459221952196985794497040770132024500910247879516161150823362184850354614575215074856260172820863300285042917631157032446126283316955532292803818572692964985936353766042304596987388006660363403109095557042097613829550875264056384162876305715778256807283255636302977800521155868374418727981734173299981723346017697190584432067205436066587842311257113492258226928629103778375910218486483904504359308024323232670334470830888637393496713856625167273133706994720272997525953292714151167518953783828249760556271971991887771349477551402526554223365559815001003738842356890834086866594796693823672916706202041694823896074786251967133954981549460305606439860993596129842766316469894504308090746950361862726004771835723213369614209179015117241734808089925190572160723070975396462847550529020819762614716843120537654073143022668934114352427806064732000644489622296042920968730452932227168706883290465223341517518076162530842125667516961246470273468063044463818697403375431057490229491194362234445028944945164420124303049536559470397283459708492403355047913071746365328319474901834249673444723419184105885402782304526678978494023288451075598936595321493685001247186762926596894250005569876031803143573732638066230555166490907350774634535166112995279526115409189743364197969733373444375759035291578298246558453836868867771777582045210556759702226025077996963083517161926938468542600384525328238976072600043634842902596375539582462861153732641534603537415150580550666989224189176964452868058684725193655483129004037006583571946338132512814034743551947480165111172195827737865639607870962849613759531150847363698229435674024937037732722724402053583993415823696882144399406331308130250446973341104938847382586878416900639157345065985269446412966565039256356291671111317972917957391020503146031318576683945511962109887204573698126176950411310743056205952503563610533652923055907037545456209313761407743672052139837655959442104909289368664985560199055757368817613314099145094860527358157472360382659887386651428988804127841557283681587619009978586218768306016871523496603105641666522338518750561672850448278858938324315412700132998146387680095517886409713214509500044203671421829650427828367799751858254956401983099442799000974110649176824187966147785251737506396480387411479355985643352748462336922251862440082246643910689290040288023050846004808876524560874607765876568120774078786084252345834427092975099189818193294878738247168795194176393523551930232117522606138725453321055612663312234719662070212488024469328658630311966854002346908445677031138918282856046411010965217728982869294431378860250413338886045891736457883206036742335355848695732254622911698101600789929104622452139292319019558970619732000888187653948845486290967272031285761136054329453254510539539830283074698803445153431745820172103038810645084337668734958727796647091658362099557510084914344368223900348220200823213435594155772522444838774129735459844853253748048519025135803788116699240131894650354747031488261615485398528184436747741419225025314142789758007530815839008823785292023816026783088403828605586340219668784025984820655514077139582988502419342552986078245381854379573138255059687183707112543065821610727361592006862017935449299926678512547063492680117844699791350977719601414966694025238743568741273617359629857197456670165139169173436864236518387344695391084607425126684394882379713024113833522517760837378158119742160077028975680874957449416169402695410105552885818347998321022289979334996967334545664857639787959039844440907362843000325910837408108197673277489868908884134372603745031741616707478567963479355245615124072518972561182904413138790773045922744157981245948230384360476752199595817687531349789214637285109396765703890410403774052037448247428985517262050857812101435114482284481148282406969420818853732511096538084039391710151538222451106024515913294933302501845102784844720366341933321956370758415742239308137608410967589238456517737649859590461153493424652513698226284825446827278397726503300950786382772983800930198142104013627262358074429791651121513441700962335676340464610157148067757384897178036193495010313232605379776071526831701266834583096934612247605562451724590609124575294219427956783149766890595634292498897488845132670070133533197582515642637024171265385896737657903364309094697683524760066577203392842561303151604745386108656418608823523396782521577691896817968446508237774698471926637317182880058753257256879759313146508031140615476270090123756181521011328694754817893259236273355162698377218245531446078461373059486851861134620381351560923987992434536115162922385947482160261828495567127373484461511901842187997053169202774047241477860931420954979554536587315914005055097327047471331259283629445242080958586511454063284814106837302739203535042094604656441740272078672178126680778645888966004045523081877846550228137063903188750691700304145420982512845213143949193183792333893241752452924677100669196591379027779305277417456333374968688369855519964997490086957367928581070788051446405755560715041804875560842785200057755212654621964770769168387631909393859213497098216509719662283034749662728820232657388235612952558469565513443631129542413557139407023754913022882580899160035730425310774445714936985575512311347759978263342901372932608889399715695193307789880615334046599673287421556569117463795193769463384468942983582518689903289977819251913000184383064185729610371013089977064699216664794051185678157593564901177913276991727262129304687565731175132014045098821756895973098635389812254436729753669507593132107581018873456387730939206457294053946790691077823721091834684581073596267882786797955580882349322387486419812975515970599320664350697524043537976063208741561124490728354685113790723188704602778815722104349839510434771414246450874158499566913418004788093382468380814933834380060988240696017957800541009957748777649632431570650485756588091451858970730590353391006724069522564004067524701004191353262547824166333591946490250908667180447563071702847269125361615094968187690594968257919352973528775635319837790643766163851823476894295621760220075260784432767376054187620159797888162455108339525483293033046890515978807383219845363301224102856264129699092434095025086447928328329487849546025931872506402381652598375702054742606351276960262170370525131348501800202927270340760598166692972881759238108123325259384104772808610296104332452790330835280990287753102123812541658183834074675035241584271945774813847636988373542568882714667746848166375791097693039572125051357078502597026225226021693220683439873637899815314441170100865895552829838973360435362042933583613847800499617708048484974562172061422435672534458993736898176226666221734004595186414550769256235014416281744576774138811292217888059317668374830369469554103779718100044545188310080484844789790012794665319378021174453264764598971611315521823439454971805341671719849993635968598249738757331876861294047571079077887302150082229696894497870641108218775798397851263897082435084051507172181256029186913847635142087209486025166720793495610689458787282239585248405892087355908571745709742464222905758862725772869404506758911502339380800370160111780065706444296229045814709326577417114903600132250455790106146641155305270372448494958194990032134135923530805632015470717082282536607816918309786101730033230163706832151435198264404156668955566470671454320549407006579303002581242311785727297604470449376091754943660454635207922663513308810405976244539036952663649624351393079286051967035606620251202259906289697881356704102734771616613087020146368122503981389054805675113430438632972455807152266129723624311308038474510497208169927381905946522830922696292389866828776574895320311372901669593123864891474732433344783022071552560562217374254192782651186882869432050900900687737635546910111489544463451602034993300141543421369439643148078263823615826130736092610041813071969940612461107626520175123961730056301936172804872891316632884699078068091649410042651841846321927627819834846607570509457198373552290787202963914910387108410287909826413118276723350326932458075235552595429238109059811168992471925258517773099001993564964109356883471229687651575440005964998545330249502148190648290504041173982008864639540818412453938739501527362400006540427885014267707579812116438173754392056487037312539879107624827143440393709753456487114299962742241329651898646508548040359317958070428437733433938668431743122974538161914011347619185538143647139178895556097007058872206760321642140798880300101816394988102571913353515204309173123802881391552580351250240229576650514986452059887391118724578176718075877187240285738008158553241749047479769957164169370747461463496689642233411506161763894200636292120130291976775439584096999809587954596825820290764159375414168318625958695600618471410095283752733837323007332418797080019558669982564172930256944639429127381214071004450292386774297919599354666011344898871860992945156700142686033062387273311136918450600792400174880842463742066486655649226470851660921611730479839381770055430173143138659661227497194646255816977128882112868776119151209844141563302659802094436760844511374533849734877350953878561324538357088424137593739858134053655985228276964649331429180403804380203583484242293625851561677448994427675907146129815540776581112184498698026290362338692342707695877489313286188878337127284608758870751069524090924975181633775146218396355417425361748106754214628057439750468360044627672972929937867395633859634572140479575879740427952761079771854206151154529805290815629782384832329643206683007979392071213731216692891196455338024235154632714379046213814313044886022879651716561373434742407175272808760726051750197942215702201764623101549998864867099845706994007280442165970978881928913304948033479991072063406056441704186467513580437395599496286379825209984695997725672322986259748006138295028111356551757042739417888457558189100325604879107791382995706910965229893550219353558655156113961219263962024607979090993713002477775817082974566474730387824234686977764907032046708638618479538568326899567038426139994017063083372478426670770149573633721504240317828585610545834105527315280069342976167899169739207979819006834675434896851015020923160262159184188395030371683651001435835595953216115272319237279792502247218737220127349164260215420837034985681369019526915688244913433816676302399807025311417711650283718590257515886148156913763946258142030936853139959655073679965438800951106276696763931925476094897621500532412527095083507334066555289173770165156138398122688460078400175511234380399994899480653468965313380879220869819666079198502481797896907981548799106591451830443911989051388284679706275299094969449321821957659557747907740653562435329861231907421818901552723265246941925480959266723761708784806509764072805075970460507853515575170862664392071879635797300026669975640704541403743106270142801702085065431095491955705086124834644471265944424338130035022652653357624808398438884704815181726990098029000843096039650931522268419053241713870188658725972807126470320473905865067120534041892801575636608108877137316304756313703194051952502007882110166162853476462266158988667123547618899196607454444107291419860696239550375775440697650726975980301069071934489713472214442852503776781298576669054604880446512168944550478651652980047694395289105261205611192895135795494147742116230797313957545648240110904593530464181457612714507911142355374989362657718699849512815789985422326768047874917154305633976099564100989556481188085535193826791242000233622478518804684955285166794946229879288358711865167694479579407201486626075772165248121723708149201984175119679911844209222602627595013292402208510991233833777964397758525755699168204000074336600560015488478920738041568143642493825444895327762497165124780168650971829081170006997182717885275514381482224900933187191535976933960171988287965061994654928665384701331190886432264202133579177515209737664688311436995794806680872280089019460191169073092569265044172554249289176187911158457240010974789822026916895556242761963181273228802661155103369739930838137548253799767904399599187303172541844563917851983535622672409101713348405455067714608266050953198881498272719871792215035284673096930601046554411977801817998800232348638387958628153738330458224454891986716039240037151704732466808333803234852634457705519338427321047070424326734862499190160890855539254338997565936936602470747340423911604458514201046670996333238903155410108721503005911359332009995472944453665018730626116787787435095297235960616980373935397184591981143429145809208366915676887011915427136388620241997720655883043623770176148404544697600114151349600329211322005144606050242400986273974917828170839502095510552781911489510445433937196128824145236450723609370431854349299083729952038399783772573433688467689878973613978636599988420233579420194944797449119682834445366451733708915298672258274961801725678037158826691977460801364478274817025840194203035422109821236060100186558555211981530396709560556279225398289532556970806354823918584223949459232087748039635945087926035130935683278980972074247560396206752433733925536112691110069690956173182290951236258324661047752145439157615346770108477603428808944489512522252106665233698402998254865219687263016079878731749316081813133572763947775424999857303226783370531003835680735900777079331720042382923401795413175945487932177793827050690438096198734158089767426600306784708630626433404047773094051288375079728879393351912407187170031794506078813857078912073486480583825959364999884156668859010159372752091550402226539337217733434107184662565058137770776283620151573360685322060509119667608327823156195988454071363715793342480367644156453353403425942655189012466711637484309865509075715934963853176768721484724305485578958403460702834197702346767619481008464546069377522623926676777116688405950182380264312925244869816767339961597417018603619907816671680771117371011610246885240170587800819735573682312275140152364427475977037203954336322535070253792703750320490899031452556594286264305657797581133915468447211752910133726873119933796959713192892315869018377933499892665787226435368925997433526267255305275142004316452552691561464777678033224534415364664679295571309493460709157513124010742043585516188652041377412433663674201407069730684237283348121858544408963619228456396179448869817931088094332202335700451545826856380480335637290771804077208465119317235425832134903134518349274577626674054889617980722668753067454422089307236230557781473569387048531995772103418177245802603822974855864584569223126242637309887608926568141088745370903469408889641440354747735974209951469709117819648636926480085146302905041708291910016528459748653147285824693344260752805106121616209033897518087095833605285915619168512971118894462422318850342846881602984294054018604607704131222389168420638792628893087809254836951029712145095403408216979791303692775892668110565510615455030704993463406822058774303345801123227046891992779221611898518707923217621855914431732377518814225836846106119968728726942587799978313139614552402254753422388731315156272056681345994073950940374439140551460469895414991780817464135245874816730716753658338831462775968466415450759786085991117910481921582778962776336003957650645912325136571849433615404726542112562010523493905671115476912417621388015720274161556198354737303134099494269106767120276244126046455244893026770863116204595023433843635620656414894894727680483533447999575809940750241929278390345947188381510055225981997799360175313996241939696926088446742045943038277168879310462001377618449316613249538072302799271171937407432791137968274348961850565198862081854582905360356075749818598427781101180853799685094602089025219436132054633473091074286249869475822141545947834102506501991194445618825819304866614011064875832778540068775106800863980975407801766272714155846020937334423203764477584316869108713834232191896211317583456467385922438631325263034950642983392816340567763362218038055013275420952912177608191513178913541917150212780046592817529072313502113742732603543265157769090511454829805895337433353744483066923425957971505598438162339715996671519428436575443547495051894995064412687323417016170353545921467699642422894936034495626413635808658560887126458472039256068168389697677421979215127380624919391221831441382308997702433007126081726956237739440675606167147495075691376837736405487416374845895581381367987162206453769378326455548504284319905497624685283074307964529024540981961381134477719962174206725522408210226384075146881686532804245879190767469337710744913561063256296884667961683381334441988016236817443443866609277974783584544908105707509764213124774578878586298878751255537361689541433966647496076253473679346037572386029995641729084072316923321739063031433742230344287752993954848600409037957807976583327102269139868333710928542054029463254073484271134258053880815943512403559610693659026449571208694126058681399287727242134562474917523731230038882840273141277982045218027225479935218957755571196723655237699772626608658472895669125594446941315413538129514115225349505572805095437414370934999958895964848853108236739296263915391272399888128110560411632504428831638661371946423763591521000906257934069739880678671175437599639433440760252492628284415524904370301316288372989481455812033391071074154035823823379167010420222390893992557575122563542726642714766398838043827059926030131699253919116395453784003426027276760846088378734759919603038471408192031934463804531122574791181627572990462585216215871390658103105726356368411543637120485319488684952140916116832222703279772287298591902679965430853299246728043993836385790061197197552428432663043809640378285107937812181176964160005540758973654232519114526912221749127796805089627613821869652560059787459605492570793202842932487476555263563436751627338972492487100651294396654960328255485597392122822960649556771925349557476881456937410934444447818273031965961208010427941124054203921448842691784576524655203059560949703615819803969269443185901826965622547265193919047850708358320724681229404125228605652154789335180429515911416444958017865194391071023208370552138076417500690545632587129139168424897805207016693408742792756683181863463002963999433107591952685550717809729508483389911497689521761890615840691789619573849161613304950827164804963865884706334201410791597947459047007569385169389255302718780374113554847762886995902796102566042755386629360589600063416774460001138835009427024083852708339521397252871538213471877084064037142016339284648290840099360082796656735930016357254736344601321373077188010147955355430630242490402192037547305753403038564167752031781335103940008438795305178308674629317896247180118656802389676951258803535075854819997784854945024836958218662527609047564837019706470056458188889801448923865957685069870967990931050725552979789033864702526574778486286375794013800379957981357843882969894974896728378245649966927514820999614297907545862735379302076310585036535221353878392760066605887502812418417961744273692674614206490472914481320123452995086374287777157296352000197689554226157661429913028905864392930452767563220533073368237871785351222082310647461080312072942585697201237756756957527836241764646741880111308335251342577211285299083040702139203946985713928526994511393772943489780136595417258781670749843480909182326464487718447661531970159612623809495043764038137942124135631000956029359568372429296887847786074551776053535459184801661621141745327778638680687516791448891283367438557286303194095430071403127243989916287036249524649407302935535185598119537355622615735700059206142736394249372434698951222548996240972095695548535428153499558291501736946449539641883809469235005445479323201172771545264230955069280683759230337675653570597951826347717618896079034511705377991154353359011892491301730548626517120851545845340953551013544234871573267021147992749846925841268177441339218102952387724068238787174020055146080848788141542905930285253435259065239193894117784743090140253097307674793243977856100808227737916441240399159958413942118611827636302290883282004580913693045100334033044188287002555769968281498713893856566058945287426093204132426132314978792556025630150865732038655899583789299877965586919860841492354286003148877368361848820374138417350144697367416162153826825957834177202356967689501566698393283811346965256929250892657955532990126953503313837926086764731210629462204776457981092816352765248045086323328603019269562499162899122807926139810037567903815070192349377470053674370966797152416847478460462083861590570584107172418755356968276212523219997165523237339576949082821690685841359442189027316858624542207606920368111931958404012193758837525196107855981340934280154795042537725931911415754346136530093625979690976819304373422297898748073221639609855752226325226243396976512467997927678876960014992497272659498775362303423594924731585426020083855804465038587629683487684568208440937004339975994558834683995342166265022006898891875808928672700296565492963068874102733640147112906716688425832312281476534313621810340809188493802100197273036535986539225561365586748886932694214735907976668752164511236571715485591003587784695749480370943225099214125490238959503537974385490312839235306897549835849531542762116925948772097696015354848102838960880672999381039533794280678907805841281643245132409085400277829141643395581925860693615481521855467227396523996525128912921586044170225837531240114960601809877889340602360155856281554595933079404770650426579792689180896337553810767315247388432359660213764008560639678429259251271283684721283965803607450318038731847483891018337303253721268091615609541058168642843823157095931845709851871564875667260715729172323025014390107288921182510404058503760615479454888873810925941837682104076358777425292033877625438974312557705030189224769130566157889304322643525753206551420614865451223505901916525641836755142974996795442559618371273210980693535679062093537667910162063559837706832958474747228130759521652823275317183220213252960593457361167132729625448024627762394782955820356636722923857129750594065989009516879946005691677545675944734428883644028529490552198137130233420356116227013780223035061341141446517987415574616533495386460390664440596957376644646642329285151196593068766524980866220001970272696446244257271181172939049136430037528701141820495171090493492850557465384300395817699360140794566132724936532723634530653188722163707496715101189850219046628369948888831275906402732982630950791234564743582737768996434559636136667756086473119213302004481361232276164768427389111685588950594420072800571169177372739713701939289121554741893149913260118274239739070010814831663884288977802895950899467255894376641874517593222946809318770223429463225049672288730733520099442141427865761681084019737935423668592816766810532356820227226574190902280393367239554117019825607600383555268355260717461220872256338582983991540300634572518540729673018783115247261356459940240224290177136357769060947463818050799760869381201919945887073240919386757242994177705369613676573296517230198486845601648314511035439642912726335208977672921612209025354324325779987620746075308626535532944075798050278551274691662630846456318061631189109743849088043315484759019413454411698807358655255005365967713587399168725919922593297284945250220253282388370463585351761695349464431710179739881817779634061534441385208802500842008516403783528971892399630674337334233011069793600644498581048916027315078325084956735413462565162535770373900958889499269218324022978044026742098373500685631303009549776514128253812028630249901878755284989782355262175913582716434012766762239324534434778702490662291043231756521948173436877397057091450734378781066525955222633126351073853889403616032499258176851404258933096197092310002642762762539424225654151256865997618188205389178593412524977713872847172428226835491461392377049852261055513397880207805936108613684835255909482928732131581492918593554564008844999080444359002200064990302603904880480334608491849208459615603300279371867140511897378074518714720387060959390656242107924146415603663988050074440264625472267312430177244055146338986554032617073204834585541409939892347121440326531276506688444558789486456239487578803488248216640957817898124842058307831303225776316674038067898444921568674352448116277034679449949427878859215912340168318373484619133576651293537135399324423196078378706905685498129393946717961325311732155116782039898408245516971411511169463426404414723288187672040345299728685796601755560394046003096915421140201967308121402750159986563302980175387531666119033588442985892105097571103541255162658903633037408424638493139053454985220915137838904909806114884794065742690111908101545722855359773465783098585591729524390288634726069796393835725778222774626906646886860217265758908846817144489543861040931684409492322238847192614696358980944676146136383301275452767188078441600378358352367590976232856829632741116075350496376627380629498686797449792835305806279099860702241506508234353967901533006691622758219324324925650295652062046091834498014374196302181176337427048131848340869298169636911728496142950889627702742756005220639051731561489772314579328339189957076160478786590217280816394249670297466056074767064655100266924190573982325737854126149922031602684795340642221193111968160394027522367430251947981576814220090703331381017796651135019370162022588340349743659013897320632437048176774657498399064943636996395765563895213803444263511606144230109789120131964884896308499840760694583385331816534584687585020414458221581729317763689254317746815351220108934309266245255537068770025334435908147016658887887619659534011869694086163496538636434195899164253472962286104166758875393714909562868057113678086369142464649880450596342026310472152030485833890040536789102865335956633651620492441283376555787618574055626322750710952867090324231176936040038754825010860268205017555009760452782929664976580555590090594530851097893669964152705710400580091729628931902778555197602859198728712353585500420075690989992587394341119849129344715468343584229968875518264553581857206990090098416064429575801806735493953145215212471306029500177362214108498151633920989558821587517483571204835069886239845356335726233295259010040772836216147799536772511024996383959491388656649864273440266072502629210591472345322551745259749661631523235223174429993610996652637243313419640992067717007055630564699121061078666485189407254333614378954700429662393885047150683715687760908073901475788908889578056474993336017532730040659960017064894278032657470374439878171395406135795124523597894588065599304747673809087996531824412247579447705711040391520443953864931864317726492029409990596578723166661062997384275856581410524572732931198390241466715831754595163784433353358770402731435029324026948451946072530824990070352828969912018797544943929142939486822054252181279023321257683564339544344939656188149761168269943238694941333004668472144538262530482457667391803901341136975997785503317595474391172711264273939398218128079344100556707132214884387615053970825563814508071141867315622693490498861635212263816102120558137964474372272989081002681743351620948280597115062768569734146101533043867110084133456702984531413942709254934920271043909388558057991199327649595381969307324484481420425018152352295738634954557961010731585686848521321726861507304551550097718215791312718410226221599182233183854121103488275366121615275928556564343883704742567403320640810749563553771224530958622287847979842646723097935690590400418082510745472290916267579290638860176334332060283119487298894615093453411659611014059410947239112918300701581086164504242794937352222665719373989829414860784639546376470023391684668279961181678098751841116576101694665170655031937508321548852067535413563302738557265576525083319174175900788464814956351122119436778028697667363668369253743062861244935867746683666771319248435744364782851234427321816353371166719916669550763982443913877345757014710146654091107871515610818036610140460399055698879348793761402297640979416376485879444302773729797805506366164703511334663792158894524500276621568563968294015130572404492794239772168170116992188883240542447784031037234150386308324655522653201035359642033780583707049036914701124690682655307941293672533580018180530024345956523991529527545228544179017098970861166800770475090691259953150325791096386721784711215881361833351093314051806052967646428749190893475720265518456607321687710231469610474592787394987781459500594114456984818111728059433768745968088077820915986725110187322746584147316443255678631491464722551497112908125486558024826659221255910069175169810160448800704619138724459630971354362610028421004242339132745867525505115905263372281959944154049392995964428295608795127068335954638043966200101843521172806106858166481339303730072742555132500999676644413558906074631947113496917323416781605173791356517771749411946800738028496824714138505849243916188654446161710516193208606700567517461295392529704388972146009873379694174718619996077387768783927716249509301391985332458598020979324972597434669005693323508695832356356794348895685441922674498351965493198741011107611890410720586812018234609883419211980410950820615121066504118787296813698833892425956718093799956014350753461513734476164510233178484788988967885326017161135935067959936984715414288692175316253695605217393726454916510094335242000646054966206185465686765080477952868184292290025801125264854306096434599421820962292033781707784850677197045266282607212040611330284009799838365674599769994907533613679876772639779883871683393161304206256918903684447626386729083661703254966628123038814463813956173062874161555735583139002430056831802942907415019098633949468839225517178684718165595230826865366968540213185254867243888274413354369710858265887429031331403439110453528474846701568702817306481599044945149340579348854407729471002720169014071845038336517261204165610394139160666314027078683684423676390255201775283010304651869846271508645898841718368931791279077011524107566662265410500818186056626442643400647445496290696020510107581766346963095861609041140933224740847984577577301223147841585271521345621986014952399643246798511882448776637565041750638939536237873484262669882590316544701882245198026427189920258596606600532353622460435876626360999791372635256739102283118693561119563867456865099929063819410014034378115131280905256453385090289616641672079285996216802252163012410073540649774475191182712705853786308522278388931733087607403157082837423490822992639039323539156387904461728305883727891302467025665152224944200449869636794123903847376049189669035531927673062369628455261144261472819630368434653232345656477494480676449153506651745793992744888134077401618898989483394472436302526855807398443071083319041612996964494364559359384877525192774282705106975954730636982107789552106594958174109431560127983891446761081903730527619172267222131016671164368615368236244240844506948973055534283248274160597930343248960697212914179240368385639323024827066431920972832616111326999397739299326054867258263143122152576097503595117533338183989371510529226676647230253728971298763508426044544205359812055282332250860021729366392408651908911986671816876094315304509484965890155083595385245842703692781939893383055653829815072766996399647987794389950693407252820578562599230316317552984000318472910779994498486287699692808310584680243072945018070055029362093958982923976364199721151218319091742485117584540869114012910088297816530388969454711355957599086876223894960992702271175504874890912545292621367240578940838202554769665588038028322025904798455141189579199033970769784568135880571168959805480469600905598456187504111997427821802908666275817204524225023806281745101213556355565110735769589769801586621926531391417645908882985460025218522546009912982089274506343438623457024918440211970337985074974142187285705800483486488593428237791423199907266794256535710615261377603183576216296757388140764474368556412241693679537839345023494891748853746108079819566639308097512584509624492577594764442229659669791604724992881334554707139569303968772974625399335860489648779331359836515349320952397040500342775850500305295600029855548436302475672121257731020208012983375469833235890280064724022080060183099131234457668058633409403277376280994161631261231190235068473136658645875337670196281328616320917372005003131414304547801316001674033691954868832869389865918231759166344672111620909885431479451899229981873954005584964855952923249307912723911002694663355494244963318817014501390262178194172639228278984772673931051303453201766666031900443369838367619609428782573542809090436480773795256859754802233754914814475346983159506515307783620735340913123481891996428200250453547716270321855170851641547483905275098265940380928540754348996984601441473161004953558254766835948555291459220634443240844754530841829073859749463655435582443896189514276825928767176251658135600554050009983593235154566907907618107688132448702786462537844654091899974428971807524869748920351983366095590492527969448603820059597998139067178157882102797099847214111121562013804644007756490621750142834238890035767193272900174634106219724384816585234246763062716663278187852799914063330589429931166988142359092292077160420753274447186888209786397805466604188734964889960206938880117046988726007732988276978910397064424519081626671160416735871101134790129238850544957707502061817034051157778972856529245361611297900147116524651534321471500494295648004156192658327537231346038738459312940635462739553072217599703475986250879157134297597189363373707764471800497665713311249968066628648444798546149867503757853884753869964393862588330356655599826388603631600848713130695743481527765980465974423881105355428461771117138183554138326459740678124018304253605905318630402985837976214306604776950695261523167609950690138268862062632910010329312785825628976351038730638564913029401933243030412175755975316363628540938216269848583119516829677246606656345703054424579725256585066729741698263457479803181818357795602330362838289474811654411505441741834710089755581043561863847472466617281851819282837147040350255802686181508341661372966322062148702264878657429428142089519096880504404374930521717145883591317079282771777419258140258911481603102125216064534276015268015966995103038948186049389215346923055235534071875269485561422201385198318417360275787881357017885257929303857454695400747976051896616052003513268688598419222930321528367103267847200493343776556292374221055752030225096135842191902525497366969867094593623687061732751940319666601516636799378659237773404887136315461159987183826918802106562243672551133568329056012083519912877021614180194971194363445642764645783419132288821824611472105208197669526404570918497267562325174773485754433481622938657559419986914499465849827894624161863427654419836234523647533298399356728935711327308641553982972568369265838790494173772999462572310253515141739243621587133776086629036742573449041097015931363961040416895406465826890470795789933354868468535175671212182625898147295192126791218208006131080113054968292642967457686998123291750313050747476169460641261085193403565513657641643708969238592607470909093235360375431806151459457295368120990799856931810145287452141521604691310436821562974493027118082925126143436308259970352185224585377903923691275859331948747126982074742636268581285326091371354377580160147727857454768659516164709561779353903425645459443467851657730241248396385761380714385117176063758277586602653407697049471845503894049830794706122650418130936647096802223490086444903375319428658000010830922798484876965349780477325816662146915588282494165346815343054070515273138101178123824166261519835151861873178032180024279812342489491078889322390899077944420259174190107278757198443017375478377600639063113227371786427531425652289565984752236617753572228314614765282718081418471114881017559850217289326849943049347025749586640633819033881233225351712320955683307489432623956592715915996165314078068610447685374555443378383334868818347050976611862671581690318233317264007799424946329616346215995194151463622628456718017305582588898992622638934822794963894707371864306798544718370257612633877674010574680661674888738168849005485808701662363822780725851233790549756319199183302102388595852541439602737656132371164822545754396735590214890052688253362743514410027699574920291478651983263790927064218409877683851750805781374577259315472794631954668833784512287436185094951705741982171028840046726108006203573630689481264251430926145935174736790748579416489775915370162984850139293052385346894107207012849705500156285906452811156866913121919079728417443231144575732070874425085715998982423004288742246384747218548812417965927681690527215370468557049330808547455727431703026160283823090078173431609278022396231965864009538891935683622761223059076401484107849449794535953610504538309254855202967470739110303605432690842416446015165892038386114156651514854571654964683286263431135460119699590991286110838917864585927552672318343295685555186332906602235979716867145694620311140033132190447098645868678554347836084326092965316508357090941902711438775380015662783594188714256676475864243081959138906161549631588931515518586807805327267847900220996734300186366034919711150076572522053054660267250948391307617645597767107721866855739902291772956231327784924736618702863306312839404406662704612132403902777859836912788914510858436294303452086571571429607523959488618824683345580439465906928221801095243819057712937510827316190094310542481020051959926893375913353466745204439607095318922473067606655271493660559357039818860682238080849416684714056733601137508491195301940773459392423726317249389400115079982932752481910720066450351364656706758305887728840451194710279679053268251802105781371465795601066717314944301710182695417278356565598057381990096671623099179256098166229783434030663462456317217978382283080194732388511139450754053356825664625516311251587544941446034964123911719506563100897504356888762360074064019887299105668299296341403916459635778916292337391241138060783049897887687132179580720974335070753382464673014837925800635778781042621377837809263797198502755550388271508485931003509332782456320788604118745426688331601788877240558671814708343510604974039314023095477227474519012975349736645647972663873835539740288840542003213351156363219823615973144757582259669295913470202710830500032045902028245508624583307015863212774546020503613750348602793358812311242272772258406773370617257076761851699768875010764107672607096948747659128436063327791473086048821628368279546656975253094830791474314399628208864395856570876173958094243723345713968697930843556280949564626452843740035195805031116420391423270448608943965801794283554967732488490322410426235003093529518881359050382377913533709419555935991007115103205882257949776559379047016217056457900718850976327439469095417787287231399863531648752072668581813235865338295708718952260306134716224029917104538630175344073075790454301413398008429180577172953853812961927419317142510239328525174158181895849615038821193379923883871147116378908263712101476335518056170179604037398339371253858521765755301400896267112947006064150922042564934603944489071483719627648332004773329646479778907462847029773800237553513236800176243987165176183356621498375925361494937360424813644809493385317918858492178151158819217511316323210852999713059955967290650256576906454625346610329587300178703975687723185718458485519902093003854463221521364342602255975199907713673446091314205676348229794194752544669938295425825226959565867843145767265876352540805929836367666927120943681186780883923192198321879007966327638390500185785720702858235269200592468372658839935378870589670389660747663768900281852457382451479649776585972685701917957695180137606698608295308846590062395310368752115973053106870126165045673695970476866718363571572985113494150710520339908585603687199490518669817519669836021726958596759737225423713436599841529310427217058989135472728513297494960939506523241907756634763290020514622558365890820962119636371567036321880597982311411763604255539174529018524246632432468309323513109630247997795124734181540886888653177586040747249669914846215423164334798861470128909571352165664621818185701522401145556018015168264485328836710036914756633962323643609647078369245294778256993925029772570969685605589153206446074283619247103034107346662394383432561255982303963609282308389953833907900725521372697769692628495748168546959690097408666906693972142375796200947435066729427884391359254863681691215597002190190913383992700595653175435311540175763140130482642730247715618772824423277858109391570348949102062731411843915756782616173434212810449222047046237387430201582422666769901720387605995255678413154763113601642351779048514831100695615471750636509963964587425383149174799826362964921775592894807458280174704101545315955526549717722035903711742342268338515220682431695756143623481010053515906672769811025068740952988275281985110894768539994504558995897672602208483218630814741373697544628993626817739794885431855355927588848549612075519131324655118689772576268389385057364438557701326498686524090630006883603805451557455460977498170440336448132004201534751715166247242740685090063229066725921255034117290863446618714968829955149943256716651827795454045453233639833911236345864642438940616487000260779953441830645780634841591173844238470374605862480337039900196972229792746397801368318955535115945196049965055737692330924366664721183454040685187395494118885758942760469999117743248669829326327601855110503647379311769618745331926965492786601152346868407253236053126232292296065250544179772814250870549874605284880101627711804801075063464813975736106514111671132224256750213479523995555287522055676511816927001329465694734965205973070383258525956458964683204243555681719645532986427978710738747373525490843201008751641820055955350425723043328506237577625353015439961703102048800884895926835207366309378104081855000663412824952193143291074941638542721869712481887205904792967587747332374475355703423703060402204666062214345782778645616741198888165861971002954660423500838661013967443109675522832001906481340015958407413521500434022692662045101628434577298438971409656200358379049060634965908027327518940762821681732662340683208901879782343715481859834833314116709810414695285819896594268678865278562754291228766569385630950271595535058889516719067885330894619294196042382363388523534614812454573770516775193162102160474843318845724350772606099015393908267282192699411608938302563877758666512251077465569121168179051570420130150388590787841652786307815677991477852035863028436015400329231452992768731028365051487128404386531669113246602596796417317657629786724492994285606885766278582668235033345889913663718809291949616791397521882511959467910737217453364295943039722851562602619656187697370292797814710222368261976134149983886800721167274990775197126030085132286887009381378475699080041761063792786825753781157130303044072554280104557875641763257362817343694201716868210656052658130640253052084066435061197617675811489763092631524252609725668236456870407719852145571437789367027704317601134141764053957016854263974678979635329015826022580474555181529406777109191687852827148688628532111579619757861575023985666962508148640930100139745534461378612597720210712545709707691439370925939241758880002208352412340876056289037936423357874200759457936138014373555814250447873714174845722558676195562384159326440691725207193292546102506170619600353051550011189964367882058372506213191534155415298868775518977676785649981034630901074641401086394382150388476262009843413317288498514053897666417714504727997168518893875517500050764990950828336118839454319239713863758741175384708055339781682692409625628632921262740562176673945325951796737113052234714603988500371365668415878336303232013684071032709260838591495812100879456027393137138789293247900132726482873345951229150715890451330652846392994060541507014813366050725123745063156455393571620288583112535801998495744675461925080540103283365738630244082646984230590412359703912849200685631475967811317014303375286890330403314283784612538413080712339827352634199792873132646279220643227235393462423954638169175154897276098353508091792577075473834741675310018425779913046405928447395471038809446693402358671165689640463304159970204085292689809135834719321486128311972970307070760611136772440543837254389006000592428557219935192320376285942212106658758791099968292869986585009766218695527441022863875434382536297876957530789413646271564068406744800892052738068987617210150577236868680224567941904995097245184512847859695444326012099302187342302981096324995798862262239531227503162198161486151039603702133459772246193893106348149177152065883449643590817004211652669325585130463442728963349946101128979421926008568913688557266033073324925198857951526883198483652766681186972350703371381034984813106930796137897818728501673403656020173621200277375425753409839391234052172742503616819605051336353460679649477090943293560463071951893773161044884552676399810712385846841584256254042723760519065579398080786781343143999139044604906089821488842401990525085354418703617554320470648915784874126537440852405159922143689113832254653475689761845167473623515351506634200254511711437821581727012042554721854955976528708849921795158739902645305340470890880511915693339315239292868552936204172442314517927474340624527313875999868706619340254006469682996355320796716005354791493457776723752402514686251195008207601400954628042905550110118227644256301921167317878293149055290356137984946031518433459217199202799081589316154292860853475749523445174682125603667783761463662349319846159002975966588423754373306402287510622352254720919993154640331905156760392455854547780760695957268701806420079744845276377342702083547346193984680952266830458021322074915604566152968904131886228681695818366180496570611548717157592485330876629510927142286482693209246328940692906292839919291867022142669672273254521879571187046947377148401153276710340224180392754885200921478803399220497864624697091665015433319816431946073644816083047005956873944677801557012124545845593660491885493777678735722294706316974711964058247557931062818258382238744275739813847753536931996079376411953196266768176761772314209744399837154675571479659755529650082403688497574246848683098420295499058672838850142614418558273394512076579695884540122878943694639802821491818082543144958941897303893565030299561473004675989430086089787532752670564072574622758347509567081271808642120554883809333703694842668408832528020872465672426110810656377918582718198723022373902933704602431955603373708316380447314173111237805268020639143871626124118121432176738818047678699294281648053190447149263171582425406971248979542656695608080967385068857375534068641589933184540959127472404345759069911026471292094817479861751933318875408004240743985164437603021305543788142326309923393663216746668434083625987880233979633177385446718597543255169219166990021960667128698850898411508435125524453585700617423875576185265659199925164035672286052251975846955342407542881537336271651306150694957689136501752817173518858006454508657984254531195521262512828365966548357937456702554607361791920248813193301932274163176007991219015824993661767299118775494653822024335657664264334280776136514888272649529388728289189082099777786650147154165639517043946973578513295351902629432105814633980068376873852762263369014792775321094120835601176005484311493764015269760624706553978533865495568515212976924700875780785398747325986566351071542523013493485737787475307845463453211781749138219056050343300625855095237106070095766967874104686455040840080578634830023896660687477109422912198948655402908812558750698515017411520286673878737308507113721870678722559806930824022343088738818808724052384862365938919989431655995261870285089522110810064287268201999967426987822237771013063581271744172013953567385280041794429029940897610008506198836398593770913672651448905188051584406790978853581670753821451845421709833710455706650497245364635414470312349439097465128736911317680388934007614736357493235677057542927777214123583854172772532337428363666981335304636370899840990543600854761065912662806474742715624049654023562828914935301558129890109759129313746540599879389463890205298838823173396904234496849134654245356153782306796405623689023490288332324290743311094600133399834568218094719292400104333003069710607381973327177023039697662569119502793909204360051944658019534553919048528134170449024607709726170415661870706410618854347638396653542121646540286176805162084977667698798680236530713929765430951926625892296079717470949755963717822841517220136388633261767892265411432856155921537517798732924234750395620894210263242295809995176654255405264428634559008017291057933596485789013274137927591249085987510645096104763558586243047654777397083980858765165628855895278974991817802720613198911205434621295620401262325761680301053536439927319284606690797096962422687254374140279657714434570082187586327601068006836744557140054220190988297609618576259913666152840035198358834318964817324860921432830633865331972033004465587800346250088558866177072880284616121907741593452667807762176859254551529370334255777265404829577941169472055597763090489477161342602134151329999618936980536748740758317472742674025752505185579376676891227664602817677050718221171912611649215779657671120634658267522450322997323664203128111180981402141328260842692264936374292834279177784570406900544564154171309458149584022763917668154973749474143789038845421812965912603360765612810526708706566901912578291685462087571981859627037619980119268695243659155796620078290078728104666631538878718092431339386347724037383527046304696251003538081398338185367121236354154084375640994560140103578663408562240701372490601185139728437701841864263105953723683714600660064597570279558296258423095820621822503849917981108130421024825026881666043494215469616510959904469312413005119963644796785637267943428735110816119624202971627181370023174640295228855519314468155173942580712241148579541055380590848787512644350466611949151519196152624727441675490463170744402639612298816563436216316425423445767099772407712006902678292551413119941202404872341371920311071246102260864322860708457873765891383453986160663028019409464887146660759430336450694707822879352568078605457926094896675193446704110948246524651761904601667888588595542728922908725621387579266845669956871288150455628243728007252398410103470131305001485387998854363103129725373571131879419415477416365826081865475537826786563574719165817251621354591640440782489694697449934109953592792417748434256137333072621819455553588109910609518013245179066980042424182426514823704172762818181089008055195165147010843072270804711045712020561773145682011140986475970909756160485786164566215283839093842499342222076116407903342654560751663680300586354857808034932086344678296111427310487813202194137169796101468246087947738978808145116001445223937276041845735978937100671317883163149528624927729340069407922261105335786512633927286900558280183453381490215060033777355696741050254084191758396543212450267419264508530327986462550011146136803288472403885635013725689371164258078981496470329159860524075623815057775030482797632603241583637085056810864986685269809489749048917251911858360716821163131970432029181933128055291732875586122213116509765120470935799364240352147893113356581092262599590489890900122160384833100172950804708673367963472904320648401250933972252368184719666828178081028874264774538129803009431982794909361280775566368606582230393409802957134400543384583390049908251617358589453003544707701899639348702138954289064917269383036657850956759069599122074315078594696723304075344683730357260438091067828209659827337720053915973043067213591525431368077926955225583431645689758299283941828228633639623353903916048200505010580608407795121524780281675826545493187558829941784774902345425799518045399629926319241875072262794104923667119715926381620807938100183535640636427111400300411907833819140810892442135759747268659357947488219211992944364784050371306080008723608421605351449625892580359196468300993387068895945708005998588157490132975829888882543562319923045475250483779788635397990180225328274731429255705109340389490995696322888596475935044783036261348842663962556868431001358466746530779833684128140224784177232045553958486489886617405333192565437360309411212086922088044288481870490477469285661652922333402469360920150316361382234842283468494408974461315098036292212678093031807612287080006945241390592692221766492200273122842573828484736114057596518898279525723866993040289120025205836802817396704943793306911183633250183149031490289640570645564416091675441622072106134395868946630068913635632404898999180948364456762388074719910531051216906339325627700705262455666311257843477380238383644276955539190543959641577785867532060563738897239698160803701453276156289987206227566412428135567445353821191202515183034613647961250734125994702430609839996479816310005611139799380450200172624147749668530150148184826798667536228334823145112494158975946316241996698086775854594216731159678381470485975515040033580485518843259914884794851126532989196534111637465018547764464955608554252555751087464709378673014677143819797052808923009546901908540455317896124185673591179354800469971280274980248289061314463441659202265975208111179269954552705549276797011003601581346460394325222056301973557292051335323747395772053317142111558492419926666494434385921156493891350756850041965087986414494621724855061765539266564517927470039309231920521787679818000302625641026436894483180929544520155648341944445944461209878190087169104054683062433972602711229717455988291378032978193235111181816567952120412288198784135884243133296730940287956357896741947613293469313548060286352341597179535737647193204881056080134127866653312921921306773331649254950006186712709115364583586281411909693731137909912539767840602545267506798787476066605493760566937714192081281017069813764039992646673725028196978507212553175718347200683285246266775724909887646502524859721202399656799339793037414403036536302341026268824854830493640428180415282784492528220905022702182050674339727412761305891189274151079930813786668463830703417564035876413315981720701907065033781362192623258778402449040829645949186450115765825136505382449052872709244574696233825495691364696743685938184343815191081787549427646390417127568804351028473331395968316023854692479956400067269911511589303686667380850111242129446993742376461312859463131256299371785362990987854622258941941120947041765789421067926058613716210849133683562567778369577640131894484355664013355747341361114288782962988369367857286089548186141593131740381453198391361302398432745566659481643488320448723020091836617820243199577383611564655995671482494667557719987611369407751427806013346883805246062295447615073180649699568100425189897635947063264493098281642266910433436286486003811117231670353348744067935347823678996594276056171135769337428228925664912847556662922038526011700540487681083103997181259325951537224077196974034314595208141723174593010347717753837486284837897856871421126203931513799172095914824508757874761383455648127845101988020256156715952735054367095635091966326659160826373442235820853549257108848046354206031744665546892457373955941457560464870402347216652508958081093573219842562006907149987199343015784563899842192584371915222042274019445471530113075595141616369662500663921137454747401496672547029565167052148683308669083377870856477895998633590143956045711433345149310827072937897441161173235530320797253776449025149090360614020722239499466086853793347380478666074201914056166195911872665446830473666207453582803276629529033857845919294988541645146155550378848884034672522046086140012134709557588473861890490446257087689247793906563161999369981123321226961457043984150958637229569593722036624348991070903519901400552188463723764683682829488989525848908292522213756413280957226603029146517699263004981963091357186642592235669239905171607849233723578579742197507721402289947776758874344068832711213017555591996122945160220112607958526309779515484035745270013164373371933033859011022960359668008929285209665769955768569827338209013459129427089998973381505060702136470084419707224917151469487825978002947017476407288776276768739732315492239351049151597741238401546347996935557130361976844402802701639292847984637253100792615329569498333911764935870469207618194293774610688381892732780874752468743686010142998850430784709246296096796860079749782107262884535407012642338377602685104768671236317730823204130358254209435373084566050047295978942570551919678507875054075159749488568471415807134817460767668557773137856706489294027167584293729048826442682004602514488250317787050267808095321652496928699129889821961813953583691803322259687413978592543206336229896332976482482026476557455108530104358365747671240571815230629574173733516626171719794757842513108535783049643492452237192251601953898473864379596614499817519569471610126969077410417746647664905313789332260488716706212897491524071097988801143988275610880576754297888676752717735113780904020787353908140934502752550999273757145727489537506890889822072257450701776684652293326910930432372443515285391668933406920841766271082490365698523842527833737497159124767158707701644626186670307339299926589142843203829015563140417901549048342716919588598243239879628093824923526007718296548368784532583647943396943282803929881929199692615376487638823700555847076216817996731416981344499983153386847055034993071401705265174239541473504992932874738090631981535903061322204966140277755872395017153456140566849061116324025722257712202663028968989624779792810544403264338554981926295249502329762248385915825540591498467876110046903264055374435367177606946076419025941426234568934247390612327486518701296370883667238267432789848056321439051238408389479206553573814789757389007011472641143004096787244733303240824812906158491245109011973014223376201452379842037920635577857991929473304018870080302848986255945268050694943559111761984065578510350481588173506848736489093969710269414395753449618284735315103398472834403074099700653331976208576445658256845230898078548694386841808558812752209697795136621778456506101933849531308783247102240530454276969560439693183513783404471246392847027633596908535325226494685778871764456819536238294249595095701622594365981876162647507799450228759328132771276615915740924642553102381631518344668257335805621032224881004701875493528109018535803156227489398798991194025272090117406970134872227087026442788927013510556186251903306034338605875267322087960755166337268744306649484128877795453207814697007367389164352184008348182462053318195028664659147343540314770332052971125329038730182718892016892683152529681962346052273077147856159533866647183397921085847152355408136933748644745950272594291073835192978681039194467707998806892685432272954770067970845646446235470334386076861846919453140638048435488216384455906723265212901766912531104920131847820914401203289180043174273312581985990635699982761845972175468290433141601647579938036236259705084785105200823669944697732450177763192219497768777701041190275839908470692494049430986759453104657119074427949510887108139769033418494068226460527603135379946683888353306630719036670583063231278894245609417581051621805952184082564310467899264543127809138777852642184949593190981005887607897761157578489527191560295864553686220643381669662338608361228313382455649306038417528179563443596158967593145306828381160170161604839039795787946785337501093266470622658429042984280026501461078900324550285289373108556237703989504552768335808664459766829161629464164961186983473852140154484237235792515173227309822830157304014912485564477511246488423713334763283015541392230886265769206928131842351433140412249062016426044504321009752053189907223940723438182759868244473213741532319351287584020549142257893680966667503741811848671285202522951724846044651992307945156492355126362077057645786602548670076882846628797036228292812354918423468304295195236784415829325647738108842809609733283539198905909052358780975571386918739966674425654900438417487074941524585434192424354895596699550610920147731649017873492951369278327368870049630151186022810364348817004014802087992163286817796185978942034475167196583108602120214379430525882171116124140531824801423539191894438898796691714387440787573591184531518325420148532524198618770155817169901941465009332668985846465476400901554573944981493851473249318915227653544790071298684334510966554674508761252363002936766922668203277633002994448623996844532298592445664330854630568389068592259864629510432676788932095854221665545552076620668720322102049802513696212963418926416035049892577572289127510286151158777517229324369360997725709168406282141818264080893848169837041969217927469546699264940422931587220613544832547224749944199368403677363952638767205184551131111853652857602838437407155019684465524362494088929678621248864779848059169839962269808743312605943756763742291439112470194372053794833919328326116091342161667053818178265070536629931847965576008815946703972583519277607977770355959259675234361986270353218457252778896079250269444242617931976898357396981580750065334742606262957967337073369356052049750831845176416495170558970989322279937301685444468798846155187822543594459192840940858632206391387378382721156204780943039886853325211622453913108766583708320205220378215424313855675502782045333543120492173001467331636803118488196966871466216631944057848553588399581338910404004398093631801040852552645342220614439327792643525307223685457714916250323290341856391793384437809767148949208058365232949277666012260343210752169669763472724377749784268014637040207982829766012509032647083758185804837812611328561298352671308029418413321562085762572342567768831132439325819015012676163916670091082559281015007938483051631187501650569242354915740003535826501105506396542560486093388557775911747316364175408157805170223297451210587425782903188041678880452954513668038744223762223180374422245677570567966711916278362356098168325662295631321037641917325813080295074367390255556786781794071830605828969294331615527118677812809082683900964819096985537761017007316846939639351792907126669594147812024262668147075646671406068256514588977039229481219229746726842113060288468919626975727868760445109621241853732177700953184655842520031550793094403194720980309351686156943565562007950470144300655919534936801393383478561224450148329169674352312673770205170194396020401813608701074148099706758265739699337139421061177194781035547384172419075875877115256838535711501623183207077496391117935789301107682512166202014888300249656069530118071889923894866711042357232485660153260800435141347998809313183086326917376132076366834443175888289476871539687242343159061551365105525946004647233829965889671515032950898550172962462137089201358931561636959795331233123680408226390151005319116762595678456695733678341274831989578575594806887556890490554495939689803400116028903252181770983477119886794590781138793230792485292486915046424956754216700981097474470447731030808015298367119108925583006260908397330871570273631503213516409517733574584332943843443618989726693999619671573497542340008874581520908241076740353170001774267200195042315487071382503557980781480663830370637736964111364396491256463578410939566580499934121141834337309826784774135425305307060413345962749123429796168141607325754190516580242055883403000768679208463288015873919824789359411112657588870466188768383146526061074870079362287100770245170015753229780395689801138203326866572907848333989569145360381934403391745479157923747866489864765912695342023573261079610660271443118012652659698172328075993861340774823665341637965518553906316975833882498011622794463274709673738745429976001120589346931854425277092874445642274275849454681326477395978724123054961006039279585435791064807417629768619507144287304128902794406079480757276286733012648808925487703641994772311553641415044833017855752078122973397158371261143806184511978078825257122690776518149360037300834620202297459468446280351164899674397371373573256564364971892140812885758062736086514312796229086395289252905573692179283219576071462389853108221620675110118430061609236770362410582815753174970277630407656929659454372093078412286445055653902054965788568640038074260018557917620596262195151581974323702371918299104648678180753599370036356937064760041422359219611581139741903015540999755992566074465315726247559454626924249312197307606400971600388007144553473294752659682266360993105841891989260320745658395497672727972004556654972465111746202094299782897320297308170522368479617584700124227491853555775530738360500152346921357623738347197420199977282347866518868170682396756257127719977660150841700052934428906791870711262108270222478035886484478664245181786828181579827063441420336060316075003881355980179691776083444690119998270676999996936765370230556014525039021076174779740739031339499432303644277694671868760498275292428909734709667989454533257123049645761181118362729063883929734813081326528936108493486248074557526843600789096707676848614378149129946774676261583830109455925912817646077558147084368227622110145587366133141072448496837502645331073959339120915157381428025880101386939735766763398998893044645724288176816541739332931502472326322322457603615290974572318704486190376910773454552171879487827500760353937841518012713903624832027469206787676719376797474747988268755422355615954194840793327873304040665532957557713688638838829927002824462688076924515991396584474097061063210571639002234556943871487215771931471293830927107638686484168575789883423761235021057599088377766564128321264087305889842922668334492606921134083691340825499088263396874002359152338759281765787593982857334279960156380824498725392184967677457100864434176450034896462757921729795648520063815612660295771937792487080448063955446668948337464639345359220071774644975604028366324523550612370144077815169537498411294154429986224565421253408098987766710763942173613585544826527878888397564247336834612356412765389798422370835451566883817267408862922567729664072779533551045764298160382792332945730509009950260122800245876906477722118355175232729996278846379578058890349666382699182793460828373596293675381204007958624479616222727240750070505141810715548227066046436050994895731354255901211662316855386236737742867217517930283378529493517897492362029886098801992026445833178601804405332634173747562471288643470837598375759066977858743946413386525282122017640545310973159771519284950485229179447747866185894554733796040990382930128619616184520106694459021374614819027836291721805222166470079732871417039388306593291245986468319321457661661353284600020141578214023068807363941918434482818844832755826927451663698824261210745812780474163870247605427323117725077690868818347049783116106537784797544586276883507104438445075846164669140734562704497196204112084109598657407549938309496816337794328510509369078933560879230750861089913754497326657259386689663068229424503931333966870143487235933832709375041097848008604176440523826404694268167432852456837345221012353633420084171550716147932003597107525056503426431795341005091366447570953872588214212421016079255213692206088743945169612467011210697654714400131756244148770282812704632760273764632454654083280718010717523886991270374655937192442888009899810078603040147646268093264137384297043461154376401497167296592833489691878691104052699827759451350264339236341868442442251664380863458659483703226685730186228081090310042491911643638161813390471408206506518801084408322728979545254509434974035662220176968357181957326115503882218084915182409243624904165916997931181416403976618685627793696979633051791215676043874217305051766939473841761943839452811919740637043054571896415776307133829127254269469497486325150960402420109816392717567549359515487626862916357353282149144486115701328226628540928774518141322066648302295800268557738916703797381262724474605381850730975737404075902078679264102775380831362650273706171049674397539016704256414700837680748857285594693106383537436509487746080599710189392851985923102068754798466844982354819746362925523238462625299464841524994486907272948015841428992440187178986945360384324107190358333688822171005735954818884122705598570295553184202912667689623112823732259896218715209026165096587577512480961824212317459742153132842288504814171248626644415024563552789273729138611653963915902657286077617643170783696504231530319158227339425794280301549394329206820541159970214999203576077074287113742590353624742451540522068962407089951921953151420092585731624090586381672751994593457427567138664877297378534003818417949212890856261866748720138277510100755185907410394921562363020057298649925118190183009564330948354756334073699916069265915881047691804550741354379411844557708516194510504196089972462882585985996250256806359160925967328062618751968395183372797138585073903963916581424236578845198015966201188712176976306622997934626488928270830628250266601641271959348787145444046554073795903675617747000597659644389433774748743556527148411163466611584832904333982443993168183868655066529460321300048588845718393900139850261463257542209246410587233155918457601195837520524797617898603031352171321942877406047340389830344214211371073876481580028572475009642625852256189750767776425808753259587156804459336289578638672088054405079916750089556739016492169716026133222640578526115493221198201171372439479374546769379518437474924081435649114892453405822687820406746167868288650301028056561854759007533122219266413887717727570686854879684037744377525263805146694710897559314168916445476374253671404208349238571051368547691179287791800599885387255738026470027234536525772629288217423717828791048861457876634928496836836951007606528884284051419817720430981435161593359946906980558260297594189185940323188670735127148143176174479853399182237067190944059811718717008975478156968459352811617014578177613025524836505218133864142469271054906384831074048248937655551775918647893480639145486468212061286622259295800892470795437267632759958333829907422942072289477246376462936461389693549341582094051073360060898141011499824972840908240274200074111528307985294000614840689126987591035199198522698083410549107374432395207172315407976499318027671147139545759312208000237335381519349228164649042113651702577799199054959990009182093430353983614078336153577309070231614984896395516594500755063430213589912251990040063215341159958500923933989495626236646634546403811979675032848818385739512965233367997414621742418364840479688167414698417936675441209071445299101108274732542884412839410275979653778140764792784181319982036111611350094692046462285410274168025276320682231865344263605432287195743664385413112857247214747199402940199487500761261590834087458539768755827913502389747912195899177776944106277482946948404432649634123709347042652669069318898798029450399480732412829043988652184691026983802049246654674817156034344500452863918082322025627349204650299461793345563459139121157258311385699673882981856830364964620937158762773077550573562781287672547910789225792409146753019244547661721367961291286712608756686319160053645450847544914606251315462576382813555293149154781672206311674292043328298516833800482257963441733046828409389302956483621760437533018385638945738119444043363496886507447968738744013123814349285464674076283380148096170824670986495136354413859089077168806012272203260675958691970733781803174177593113171101951910567996686060913814152906455894615129695931448644934502761137575232174053789457226500424271747128914532241581880206004763477884897131778415633135869592894258353631652908296742627645683579506700054989958058932298202425666146362191501322187027497214134137005729549265261802478436887518573098764771085584024913273193114708616404881258828883842310017403783797052092146692006493957321705222552496866971109326929462161828517500217868143799580655297829190921294498104649954117504263118027494932119262217648557641130473381754035471501711145121268729382744029999024152470920413636062979533061512813184671497588176131117252719618081748686880874761718263732379846415185201760652453720033274251172305753272133363942609797719675536358817403878452237243371316247766944073850998309843974750441411416391297237540509452419820267130323717565445998419867113911683568297126612368206954667361481097519416409992605860941685432469905652307069226551227931655525905372961977315958546665990123326205365681686525507296674258527498200559158349507952802006392513759830846870861378786683634386090120792293613753705258080276247023600643970461637367335087838028811188170310859207819101206031420717071269308636895204968060074804375597911644455678280034275387733002566548190066268942218148798274557995575741877146232793224082591615057943572371896537748449947109049639434247029572367613065252619522129997016726655444892895935478946479212678081679060452252143470251788510750699215038193152204202666936613914001590463289812487138036720832284886295557290225637578434037949972409764722926703586594193489767409257353307759203528937856968138519278375653856040052483171547678755931254478231541625153560808497714633029018907838436212706701936295088520066255213055814620311102006010538717648604481462597763224029103840580125058825162823248467479997496735832326509744855033988258075922042495605846164874847041868548008314153550715820789216027836888389204493434468691069356671901585213056324368500823474858588394961938357978356074693863054632190985628190064522201989705548918970971160383957692004643611930103569863799051117178185848382858671625010496805548394358477893091426600096029523416235140195159161732419066657882425293483094081028538245735097937179328037616941603188580187225648627370792704023639994945347885306017589544271117615794616775053686879367960610494691833320594604884762209815656884437933694871052525682236164895350154552320913420293750327764347868416303064855378881905897741155390237601799211002784642179199397145597325827465610267485284883554718918131121883705054350946028522221815758241668837363403812374832312360593703180869826624410214067029353614245373691121338236268944961424992849162527984997209225421598594531428163885628918170019478188760363446344998809193003663056061340449946618026795138495497278681257831158278804848662937525399575189069986133633766676897064654444245861226558463474721647566003795884028401030274714965227990561845755453073367976833490738921934831485476668319844625324258818333369927708379000466553203544281637555217398749625741769238341126292918611322146873523844979025750099324483812013327831747858665019281523196127280411251290246816257603687261281534440413164663340762357307521904954994842078449892273834140291962157314728676017072690196667553960028175587521532473254832105921174635863379921755002134705652386739430029287584375903151616734170776747758406159304796540704451372801477060186982375626122859971449376753468383630259837198241030705560110230913469335291490250179819108358080684416608542729544628122264865351661855235642559353282656128907559701686136147234748804126390354162616304459983745970061554561967823918862349900813030007834320835688859877476923854459125136322068068504359132974402852059030644681275388230314958945981260265961424883940820808209903403613356673462880770745363722264721211970525476320726757802186478323262532482902788464884930184840758124372217917700309816188531676839656712696579577400891768112069010927617740437758311479050149450426121704227022190815684441247202032547413821787081386769889207061837988352584424775697851964265099768539424574163069594434451357915038531742437757466307723567790571933442168045374042585269268344203238062904199597284339261510128833497873086129449055753932232471908170015326501490625949163652076086052483309044054780235203805592457730220179922150693636766200842982033853752688685899800431704334098843140318093350392968069758574716316534998446511453204988586615161816631137778801515743651504312382533272499498033310086431224797899961168807877298855205188925238215151284191898163279514378960963927516475876416910637830236077783630340444025603161835946250118354613769018020589318681770871752766218909221289741271777415841144619701912687820693385108732880858365176559554631748327387571669264855959360563678453258951993831449357092251713054419424895714340926283399174196256469873448988755485712041144583447878363718577295920854021415261550719934421024978129110605328216927315782604347197592566671304284276738368080222941135010166806551581719839667488914019921485825638339084508856630524220558347245447636604641953736109946817203966891515969742337713679429334595305889080818118596810269008764010716678615706781663515446361656366435660899487268385882472280508056243884585797789965422220076079488988151119623055237053425740961875810097384671316976931576387727519316159243773147415293234525405868430702639710053982397668567838760001466192670724436648376250480180065271641708900250528476023494404816369660535655605776280885506740597610724479102833415210929135590936982457082021269299031048075172665825562253027687870631813301559784714229068257601662731914381942332825150264110441542364804158777199313807845736100204377154126798005921010598783537588102554402173115153020203388493703018057782608874032825957562872027924484704844621371294039115761683565004975744538398843207938059716429871529302992790425884933266680407845643189680446927939396887364377476789273889340572081126639591599240761342423380883754559568927607714242411844038472340428781107037119889925721305315839112495133430139666733399487376603206414212288664456937532506738289909342497805678466467840584925285531458175959605573739804380153302457293089645336188734884133097946507332879840115661718309335263113023547593939252958715489397384437409075864698164454710245121994409586377638926903300333722010478958768476346012379787940583062798823279288074278671793628175295624059375985547733425013578159006531125989520877460996854515122350059028625462447715267889663299430909320106481778294272308535328845710034172105363885729112900153554347415227476655373403485463954930773891400520932721602111552276408873549842249414307789085080200719954035903726273872177933980164279342324035044393180218831070971362738869782139708273237844065566262086986847246695112338793552149641084076163042971502681290946381899846266880063332686754908225677587224451387315805056139111661143899402447556597177608590588998485994768349318225780796942750665817737990658650182235538278242443989968084348691721949601942273112459811295030981038952003852999014352160364570260602764933762887469293278179780059571443403639323651779331192570774520566502935287062231841870291389283688092814000585368735250410692616016003219195403281969254833046121526783194783825161203812203392662634085743194740245554577038471328571762351931000044358224949669434760562891649194936597677181742928025694047765328476885756478855094488606648270006532891066571515315164073795941884054623816664714610516627487998650832445321443165892251363440112829118451275067563016208853153926241808702281923122336538419736875961695610876502575825813310650369282563696995314148137332960203029408419017599581297647920998122436318133900237028943001850249617142327714971108005414891636481661655444222947445354731592969735069789634080100123838701374846020116568642061210673243234196390045549663321492713867325130917281744061342724097496949680333062445800342428416294686301997353900454373825476167082395765334168246804481578385957690427061895967679905134517527169802762139813411979306460949938682830361592100984723903333888435939864279813900246448691250694114591778267453870498114628696161447315195253231322342025052690249520217417864539380582111140876817821473219252769326486977108839443214909563697147566226211665612477143283151299028963491584839827620900131099918877786498122357168822155304239714713096439247080991447619288078764215385440373058676470391186970095856458771752907666611327248988618476008618610156565463516149888064435651912497467287701378639678239810570212453737583518852027034533488172646361876991208090552158090727276256814669333642003267194004093629508160316287703677087727912670057595672218305581010861043674417419295597666479988117161968450850851339750058811733171149743572600655775314291034852088162707778329644962723066131954119596977476719235620092698428973471002673204549467664476635070726103271207060204902480662055748460757240621442512043385929216693077525031140769427321831877493077568014797155375278327756587270818481807096641973630912471542862863054515980357714033109455372569580033256958358884472199196738064706289557775343622055923249341574402254432789435395373668220721851130125141515127707839101480488694390045821082133797550045685482259475323159141693105293861496812142699502026310070004698219236840654198828108428260857218206025156807330786764322252222383115037765286033883057146687248561327567914373188452951261147047365613292487786890124411257788502590157753216916798745210308214554378444638128993629407275304693845029297654887881751577980064083025229626281632802566244940830735260469318904599609777304261227494388488049152607625660992016841236014626279174168939803671728950615805398378071922354407425537823533215784597086397920169343415638089722506763862211340796358962194675297777427344529668098157060187974941471738242823213171822632153868903895021464000088134096882592944433683158827289058168829250871761545026716379879308379069977760866178924218248949919972090751156693484280088979459039837584298081628408016918580363345065389475414659567838944968389226296443489416686207164676141988767460574370559081328898303992965593723636517070951985242972272949566396649024304810450261047502985461108252535576558998178564097419147226876885289322143826455929149131326449737514908276561725814748933355451178036187169859118900331566688063640942987667893409968931340229724344892239867042821516328102828221593495149342331044108980475358309479598456502581037901988351569314737854451035159328639205209561684582669053179564719600371105129114829623536960005461239724847086156501506205161197540684951781212219019409222940474766005245383869239132461199723341951372091236481386965627817505195810635448693930705558281562512221373670993230460228436892725684188110332980724605524667102166547125749281555260856637156599453298288716454168738635958400766350793691439594608776598785643064638660802827991932452441919224685298435353117103071681915660526868795046678884858839502156527850782492272696498634600182834701154601109358249174534411787220828141030250584798381963986244830607349488983720383594778446072079900477298873122018678506449334136515255567645462235335650887186915773276795065491383996209816319850703604493251425259793961022046422224575262695015968040276643138783941732649253544169801033453276242757840046026240768927680451978402517801818725757841360126543152122303417101307652705041484149518939782572882549205574937811911498470408504299909720136443466294260007462885797958914219763901100193516739597902321917090041576208907413110429850079035299894643469704348665244367436346802903498593541032334002275507934728535308975510479779123965177561305751993841556694619361377029095583613116541612136071852750899177764574879101694662531427575448446642859447035034577718930491014496775303067986617263058567313542499515533404818396889920293147561701552145042631612607452343531829775825698281484994290085858277056129764626807973614799520984351386972705779377155966527065806391848744783413121751336696187027685410446698211623098709952833999074669443502284571839234709692271183851347107286377941170931867125512015633471736024602709311299644913125132197025961396154715196428600816080674787621457040639133623031658423771302643934674506556446261839581261939714763303799101410199459415203792572633662088463165843586738697957281717816876055537644814566692654078046223963220663535063477120421259921302786331376417494409119163205875230968516671952350201512768778724946262092302952986804300519436627463420599280830240336667355205311492738023590720447084700063671852389465302129091435162331934124262127649675794178873300934694960060256660235147953445552439334751396562444836090693049288228228415616579258694605752799600023370582802406815702221025084771041324054612109642803099731256875015442043587311762957777097999986232121616583916765774123019314112201781642618479521857167345520450852247370307312796696362249410356507176306773819494918124846443456642406590992028501853709672831631205604568648668994744921261883299838730909864082726720346199530341351849778068662272952618488537381331744632479763387809579295507459135515287157133836836788825933188041384263479133391143168121674493686073606083924023543227274980908661242452412106862237624132998657462166441937541775990250906551997207012946735625300891066693030018346736078671956504342248431246855618656129296634627766807318140673629754347700956607851347690590969806652093201116017903663261024611119609366161583165864216932395446087022032086357308676319648614354419728582114595897893933703916565769443339401073240191717850547531808474701541811364100037383290902959354351665468851130881182644226180680094849271533955553348289575922657037694638131141985209119246016143885988545969237439052163156222845546976929765990868050526148077821612609759494538994242928652231232112836068713986553064129824551091840201506163343496219639596129240423012387071704712106782002130214054108637593238409303782993534374403888326948017987266874199246195567937552877927953469425561897195979285045017422271370964184326132767862321643261053192512035611988275273224341204899926090002763222803009800316604976232229556465555144407362833696775994768246492138816976658384090960053729742632785026949011421002291019607101576234762919480592609281900035359929499051920934525824881707744422911341306999066592734681310664630891274848261012681371900942987696255671961300036746613996404371256668951424189963182812216805898348425660428549108543286386044271143874795632977776270507048337005372677153046131545138862241383936674967112595118205710849911358536367683783661725132840073118610050748285497197448731567021814084879513916168293347986593350205145373633845320042905432153687733212555856811763617941064210819291519640090795452122490210992215365892071406235598354487678968612183517065775432480582719442341908256813466188561913598307200007704652549676981267351017002088033366107213384896963407661364819961147383316138625993320098799590473609894560802212185035148106172850134628025546156508898361225505434141514982962795707232127586904792132173922703807506366998973212233275618185893116525184059002282052529701529620638448915077112899907876160881681049733910087993946025284774189973729979280499094981719297889132397183517127635156134163528140214072945805307073909655619847100597549453771313810985351421983122913509357804695552712164868643298792599478743774530447625135452279759662681408844614840516759080501325564407556221741289129707728441798704124408138539215735611362970870211331971226486270230789227565132374180201755630037715042433940771476724589332145467150552122624932099391166675858586120071231354187496514342507548213892059116344968421975217424311299107428461689211674741472842813352016269328331077287305827050415241564858247277523704349571681712514375865082377576449153249774498435079969750730796409547600380052637960602931949449116802289304780285740396931964535221986654686141997351447713717931061873767922357133755083132824168393759598169393644793016603441117521097236030230456236303523397902598844028084900875938786379051263292571315997676790875124700949000702222219803279772454887841004894231054688261590600063689910989190602984741957543691397508369658925362914107077283643861942657638199007306560212671382458171692075007067284546466336059916773685316597998104081882152755353865259571571308606496606116650661917077730874392023847081397975310629706921518576221556826009735482853104750335187842865604702959595244660192606071967707597953404690172757930181400206865212489206290547574122662028327945955196973931604055021732338208151169518115927102551562328060249440795869207100372017604367447576040757270229101824821199827355745227058530818257093502994313437683478928460496820601714784080859642614376519416833146334381644724797992862981384484369025093336091470187865745732675886107297919182435321452942229088553066917894308677549522361352599137333244795450681889217425176014683211730723396441456933304312757895884280630358892294483257867141713586482913298606878000903474789551748668935057530467883280731155259091616996531713710645426921737125792850913157446538561358904336516919274594836722489557998214861070278244070299006981528846146487789732927382429231074999276927630503560516396934236508961461345073191250534590231884849280273280461711889593284893413819409751245967507297198596749043824068143575037081289021391427568282917990288310821089693433496017546889383488690160023508997748424423822700051800441975057445344855886243431016389961922863262121486887370764695883521036674982695117185193776060533190109584799404150770523866901345849965504281177846326813779715641730763236204521005663797725412843487702342798661543280578890987099893819026721019125340767477135388775607387718686378083340057776533280113286112503130076819705793441111276295644512678591413050213967768192052695428118482789537885041258532115464144770630332100719644554253910774520753157259988019047770377645596541054708596511884210478788887733597780529996057229902395764933584510409126944587782442779770580015153322594868384836178873665274768170182235528462807882353380872551534170848583818990695352247200995960751461380949361878885550209536868575202164854144431171571720379966850829010348169052135674728833389667962518722602195535581712053716713879597384424621260273911554433701769384403931952519294919686670585910766326421179792357012635038157907784054968615897548093214736030901478032363235896667422557237082525534940833543721078193712016657481234256009377259808249556124092307372656767406117431551037344709168998558269734271808606241529413514894955058765197365519142402432454324693839716416548763021346612493654803069575692500164801229354136737138515097457994686908272581373218344448357463783616003954037612028423915800430260913861384946358247715687130868657063526048602377104277504589071079670987218287474969508339836613654305366835314537480946969086312477254809100720634859935311376175019565906746536355883544496051883542981908495794020776211750600221846184975854778295618875175628909497797083645779126709035615015533460152063824928871500326979941033997975267656831302942787653814780631835096107197145024432673678349164664271842089523437411862786233941699861821547811388839140699852106310522119720508079444872152340061951267897997012916137162787843678538812554753132783199910900876226454818083654402497749698973562559854809677144766687864645628423199167736760957541144096099114204360275071655557629246343847311934591302067091402426197324403861403080466824844558133866819742265921956699078263006687268166808338636181359396323921898839550908969867715751609788075614767990333304106065876389877758304501379500113697910485549024141575272902871128045689547901984959008065659766319066196520061473522978045612084115328118046267804003299373583629911487857268207666959670273495393069646075684393731562633482202361167937579443669200422612151849296428910589167892014494969407627539904768811042309639156821431708718884292760193928612357948117614238973285337224683335834562731660069733473361076522913377933715086635120339183192261529292129349394835040176787072517930412489576059764621041757260595471594022215209965868391043473564890844476275703994995326270433051063955807680530556886485668093564999557707040998433232899577724168783086061743835869691356397129673986311579770554420149635295444062467334976362365851858278512469051482697130987924929142094329948933347220659975962332975521319814293341590984258872626923564418897329768393637413719758334212254288871223836744099532937527028618235564508626954617211763238917584344454847533300036963338323694397761310596058999849607909761172351144436129150955929511006832199472737424852501520505769445828072619412502244688347682040563347597223544935763728309424699006901946506746287358740310171426287699070176174681114488415835512108591823979112997900795596476412322884818136700352586152069918400243586511947911053829996840228168446469809478394637770612313576671933376387508446083321708397985619854237907433006365703764170610205038846139490350033148332800469576086356849736404081014902447798840464554974146923281516225916664075465323792517721722092530938827741374472043352689368830453919394140975726410576160677247326997416762724183328073611514753477174558330754442075377788651594896251514532990752814071725214675962652483827124206345122614676079058727281971820374301944662575323441775332473767527212438824423176507768424003562223768676957823011704874198893865403385107239353529883821082318180231947026594667769974759318571197782301069283749382803305937333835940593913746858069285343846070935101222995373015724436746640185853307909592383626529921747680828291414724282570312720478075187338051460318471747771396373570659774069920560386763971806141957180244582735698312841665012897633356390217284895086361687384493237871229453660770403662019000337454342301251223944502146948258718761788055407991902939762122624588532221470672666946059225617941056248314948502747010243173831231142109288046246390192660373556631609291674585382194455188797809803929588226444001965315925181048534045125204697060161364138171738173774146164484001687236018236434304287015740729556714178255487438167212160666314938528822575894442384645747849092725291192404998738586121839976837806583887450484112969687265705225229558114497957349460107119966382777351936962131783441274444080598642539803653734187849153410314528745593525461192964828017431214523384701598334849732878792246628593879618898544431896155417714419071946979356465291359605479635648825292159687692220905173962113530441457037656051554129394905791864407589499611355903972604154901191211189217456855654493780925315770823066012695451061807123756157719036741889744434562238577915840605883610954554575089534331986477367382612405256864501602912145968436771193029597948898962151537703938959147556300161332757696988351372640318333849949434540237825547995467958733511570984901694188699050109440391966999782228166450479636254793363682414089847805310032350750687410751683098581565107177976009958927514253616260347593149211698108179183839185665351964034299733445340977624962767561798911657200980002430429291741879419696985151490757419367142684215868300912528636105719819971089273181062824029194399657826213371682377034860602874484263315621262149628538540524414511899560623663547060476865723113210436822442333956633520766357124030330238584580036087152727812618336808888939770774971403919933886881161969516057571100497369936784218581303863225369133454764834544581399072018796078938062063595316180201070557389446667309718618352408056873812369457783758319985165501083640916662075194644457307771123405372783329370696511520291352127409743903306230516211439595843341625395073610137052659850967270425322061360307745178093825938648790385986182745138115648624996250634508098094501925215646547406191588964402348982272032601867078277355211916063091749073890696206263183770129296038061469014277427224604071540880827650004562102532722927187232808762383118659354340905300549313506612566531815869936501554818385239908072079868830015684894536109254568764313042510103919816500655600763278247753106194245130257654555920531684112464200445015325421680406373792971585831020135840650321749149000226335946067497360806164663065872549979909435404876566174469840751727828276975016615702918796640496478958093338808779932038355186185702358343652463074257232925291431065368785740637174025539109879894221425502227259040689389201135075524067825304245074046282621472520803944726484592548563214094701072672283096319359268618532336630662253695603032589878381492050394041840888426784901520519087682954003845654062096074902744774108208631331666241640961911631482925140167157667322841874580209044790731081883273339658212518911199856175047250937432747335157223786372330086622421483385813088529102971256282545273210794217046478754749540484686013267163393193122518770032435718216175738895979408688920511183331058873224456523479879766462999966419479901807877579290853522452788413397402107228825943023801323486078712969483384150127283026455310950035114142360197287473964934082367794813367203046873459817362678270122070092091472493289648846219157781542041966131297700927193122174234965056081521862886114539968206523642582081258408322477136672477236945108403885675467761250573679880243465942502963934501416185691905309508222750614164549646750590890531989005833106343847435331402335446368202170982884459146941691144141041847472257036036243775488728192158604998718803017016490757982307537133606558441754959453382947132409731936386383464795908389929496489415400072917851991347061944752935858413482102535831411011229625689025849969042230912815666323389577223427830140569457153033427806991655974709322740367076290600593416569085205704054241993059521555324810091200895289600316348509819570072919778292767609583849394334936414111865443258923510159165842209705588281022635291724830697461127782836528795352590723561746079634430869122462609513777826041638453760803603808746030807629503727246260014894839489807162907851179564990076295615010058857538294616386948091291357733375942229478617248460677546569182685345979943534860856899417657144622877227226344658849953587744685155696213501772715705302988599453696815339367801779542933901680495644294651231349989447599574890334614774480281427522615248816199322686441090000399547182543934376597488428327617395894276724439142763223370098467465331760487524481581399171565688663862221431701187655003948293331417932328092063237835650251202833844521856031302410956530376707400671920731807119900121688446922445449200469756093226966781484610420130170447303539471538563234240638548623909237253771624095567996190387286485827847224215094058332699558953746776017163958084327448890843984216372779600271531279134889763857175418263436095750159775842455150447419068310912062787223963267448657733795679100730490891848261579693730328247524413992453559841754713902752312089215236294829402883893105153794859040131699063788469660451097028495721329065839780022126802008204200605681654379740269246573610946446010111575167079005037618614223613373367189263130597772672966110685450411590334388452723966559316843556121162190975384249142544843712565503780587701658327566979574215072248713463512638194336503849151326628091781713418170833850490253949067111867244942870690222486198764060402951514836741069181021194235090508480558889943846233823840934394616584903264300274956858088695566541063012727363315755804350409327863795625540583742733158568685450285994012094287590661092783464134942741840813372521934686076920020097973608758176161149006224339676384228762261652524558879936461533319184751165404116030493788734626975306513817132107918432422385407138456184105459773619779467007836282625527407446862164638546079548333745205727995819386103882672185729552224469176520477442049989496373608546866465406169077114263788141732540744429600763519722282864434942586869878080823642767186594235130652893944686228928243617036549103495205800661987355696686661118903450912305539420428425314590400059075705047155478819780410602930868938267549970915285309589217050256914923693111889627336845077457750149910590754860414287501625160874112873828892150578198337454445879074500777739965362628891887676291105326357706786671240563191878417286458641716036558645925326224726380145214237759069972982023337781369543400048831603204892977851689693403015506591353301778488033803158280176845001619147095095483872788784562407366472282020139423074033714811521336983853720417226731972475916676802462097021160347224715180982187169282165521144715509829419580279462974187451726214705190702502634507433114758396402006636259880755179087379604836489358710499602543923738118078973151107917576968236375236983451380829998640073610897273774463597589359988709231877550699633433511412558618280325162259563047755979909319325374984443600486886813812504186597377375297123015673085404956193771834230433924436189075417874305151398928122369258096535404095654780608519342593494878890896492317937817813909074035507860938688491996815508986005335776938854351190796670925536091850788757363324917547742427259954891346025111723199572799453481035622685236127973765185096032394433745607353787193506839908651029811031287925979141755761947516048627477669805733554410663779254455359178032356793288411352969359033212358511152488580389026285054943289163741786123784535816298828332837012837774300035392849846116290115422745751055027051314629660227131263006336300856337788959701074508306154847384511882618872760871138612384739521018265032097254694355474711203024663971798855003024190636935189421354961527844239292443940823746992523915486226019188264310247413598472851126550598690992613122504070863820566259978258841427013090418009517063687166652518598393575982576468457922338935644980304670622008265999053539715926354664447101640424866360098694049477778197407358638878262148644519282506346124744050141697771831505810473926236119818172093150231792800261370259567841547578026034184797488026941670122737857662357637330388200874656395851418429753212409621534747718600503827589268595733770747083893842125946539973059378644827681670392145021343973431442152719392130242453324920106305732669379429647021803403875464534862226156553855414600802752728523187802149192594676401625787917562012925282982944162173669635586486578347189868304781481459241824229490109149326576073764240189965708632581839365484466946048423423624726338727164632266114580203642909609523524154190545479160164994524747978356665056380253350746404517386554361725336281010457379661055989944867982613118608306890314168036719025908664210314823090444076996202337735306901343377293054773801173385363450452459535947990304342408412636817722891025109711250219600618803273665765021617668483175496617909955983744211941720660092496436033427998436649713413250365623008445036058754609779395439104500161235449028649161391139165435904631201492019854392004522373972677991931679225795334940708957839729779542027118619620820785114955034634170182782496032521478054214975095476571527839626980493259200097004820444631718241391553519956701693646270998908554727875483780405434376725314806556904931413173360171769686093435550428145052112811716724247591456468127747190843440187949682063585486692752356314795267706414146343007443319757737181443041940916598259864296704640303486249550553390637434977969538117559826144825131516351788953524953339594283869977123105530298456112336444292323873094617896508227962341109061781466903869288463232093285001705597861421086521565795734345790588861258750735614294039180821263354902457139443477654735453368626260614318661355763215404937069357013493491854125209272575045284175323223890368227205520092031972879019045301352490763662521726026073589082931853834035323359494595759901469009550839353476638536374949191297557064538660083459844588428886243623524350376821609283220646210374143518219017192764965465337406695989219399912122230419140326467528964774344969415597322119005128758876506231408634932072417655385107432154491899098356651268200560709972275568899498065837439741696250560538114044482466658768859570361775648859329091072038306856646152255648017481676909876543604844274957614590951632324167948591918801702833130588980264616901010180688177831920329773446843398359310461732498349807637113335887209067464234853199214475153265331516405483273095211111800892143900078776306023297303887421974608479553199950029437331221363595435882818474996164306631081075255482249488792340890316553795601265710640919650651400236737528106550024413639388884889542128640142092668407007070539344197236261308571793342968188408635405637513517781283128859472682742690059424887393204859068316186213035093095316903186934844032026661137094643606412320845467981312316821040493990839746293607315736926915097004322158816015542173365395906672220901537515800363028821979441455775736418052361788064321449783555159855959248811184564081143623578550641006372413608695297661441352271839011085161330750944487532837338113457094081676450184527520703338147017976205778046102224251401211929478142374145717408680550308735579018529581757564223406092644611529695577694931145419470711684188640732279360067708266769322724986605095919311068141726214102597745703157421241873099190914093585801397299328064306606468679692407667980853547559366549722234115165205307793332279647349578141726903290674155998487002671101623176868406207618755221708876730646955971771036398077794246414668926178217506962671743323593996321562773221557667387407333200966876650113336245684265061923929267972743839204601490308579382811609492777289314639671450436352309114610897085926922029493754686434928504741573023669878099818730906669830095714240674571348045108043432823989091544116217334231364760230049055612442022115844218508305127759255602159089301989593797039427221126496185201875445964431139541216671785985706043424648604500636768683774192129663728286141795060468500906940285019966934952647788564101866972982652370497303513452942392751290446305502848259810688893710840903794024954848778884286077702365490056444988130688126967218022809686209060513124644802378605776301552890378397371283486058137693007359320866318288338926969316642610465547547265256239319949651640069743466170842211579712934333691150145622019795313973825797290158557012606667223576627921911298560514513549839208806754219429945113117609302060023053774207270910007744122805046825992763924687729749188155042478223019923253114400393807196306669494656909914239249134018428770637554481366980920048460922838725128257454895341843461265155266866379474084766822637075850409545696243557219100679614571817731790511106272035835863982100231878580176392589877226093229544405991693276168121283518585534028375161651346237109196215473334047163882740541610022717952543912941445330221440243524375565636868519517246157701061415598337049197265691173699821167132022686657117180165117405168130906167369918563131565125416954638815327672878036702279259193946496207765376655846082017152375570578660995831033425108288959489688742646381875970055941738887587129225037381841940396435130793989902256247080115884438016284586892958835111068532212323222394228598978142375446616256475662341050587097204680988235358793096354731527593102851062377148173466595709342259245206373247337168473389033876130744528801227050284497954860856229274938726307820900951610094961313788849961940483569938855665408492266025922984195511620342570378051520401387847243440024372311469633380499515732140730863265854664502707266248777059575999819400824921912863857496730766377457543750974488921267829761947244219914313776397611178660335307375228844897347882242347451957780097407255698178064960805126565988226220724337417859061172103212040189004541027602186633737935940400378118878612044696264248306220940848206747095859481602229910152321366121822148406075843880899745804359958994177717715591909107141920755216792405527564022632320938276728544665057170071889623521706275489795669301748534674269511397254011207378379492738077208983157640097503856447274474302200373636657764913423307184873516829090429950973239035801194227073997415169201066725522576204617637556705299587914622338286854642551730143391899487354972722012974515114613059698987925200264167118411637781892418577018076574189804741253849611535894759404085798232230234123043256444921645725686282281460743488136436496783457614864468089210932798598169562370710306712266109517509316222587505182088294104241630974954196219527387892725878859612311550076582386356419189120709403493907579567853582749849299645714052145423570656238990039627992624536005027851792436108375190747273448430120945684589049307031235110528251984626483151311348841421682510215889823851771503603105627412311738805617213968993362352604800270866232215039850488429184660276248968067126484258260419239667271219545662012594849536685660261117452554778486453351848422910972320106922768929563914647438122044261937955539020861026294189596233063408949195694435543746780990107316173615847486967485080896992848815843024325127780561849555250214881494287402367945053123636496802591652063894543389284020516120935517121980845364010427474886341722504675036888540430934727269700357096539667009624346106524009102049348887531224108463851222271421061462464387593187035383679300547585520654738237133028165960881058570688956571223244047177612181962339560155225564096769858246649987169307410137077128459862532933651318502966003023486092923652624935654483526861757191750961372467353715152388798717705625913709132142615097531839446348992223636624252623307945748143719670833116563717328456695810957732152471244699905495147215106066711824007416134924580363040869228253775072257816558515952234241438699477883175480796896609624352428723650444573434539326330085330284585370764731947074092115537449344752613475893424516866610395614756243645292184144491628219035465961277546212909120873063254683101985666542068030667893336834682901142203108062881280529349677861498262264392806741685437428417584974157738316008646212238459114644253816775904320956221872080877320273853846713642509479012005401496765816836533558747640694739093903822214822380996628425105353173695505974549275086309911314828526546677573081721378990202753047778353035869786056122527481055449565239410220948407724079540331162629632221680709324369557173880795427604915048260130473366201883527655347284156931279955435452740645517887795437653215664691455984956965511340971500811621233443561785414502943968805312181130666970848687654793611890900729660861439014993240437369435182454353296193432479661479882012598976439311517749242790048261389713671889519254338895292947032436859037553065976525787621720545324777342163085249517720531889452496975645831988599798817568377158128488812204982377346426791022377542022084525709734397410381347897399171584262457515966805168820411920836353370958614652993516607755407736126002614232086886220493395109900985204887225715748277568981196620950198277009555634712581641565268475994029092616229985575560257244173685228949297194445590795434908582639492326783418134001273471608191988551216335195286545795739208645198828672576484797091704151855264838760161608029684478053806412258313014357371816978926666494785008196664060002314960988403261955953372683846878655711939008990384196321227219996834377848466198255745997904734765995090681926535924019668423631030095985606695766799939033469781469510578839965230254521333174700810733005986572657405783213469312400377119095741525888358204309336224877088229056593237436145804900780036689060107284844052413152993377707898524987916094883740972035704718943861140264192163476777261742237918103463080585828370194396837653314370527713314334492579876402566926422967621549056897530728491503370102726013062800858791798788621025952517569413432101163185635146161464964192604129170121078243648622706294851028355654313812875485461283726038494867045186595461663972297829622469097627316213404516299610879445014144881357665905307382293977355770390005532821551197232530228863486092983066146484587141962076303088558311689081958506714159609984496302983352406591568422045361274690056852506588899513084476557991849149706924499954130594565952625881559372492256133312784978552958474383684081524670256318392458882112525655827667006717694857145795664351962397070389845826605568342125972203332226402784885198290166447391137677625740444620525672859699025807234437014789817052924003577879113014722011718803859274320910311812110289483848338835872649552472738997384040958046285292774318325868990260860302497781973554122784398048088021210922311891796191302647548879690913049373062525865521076838408781261816453972402943339883999386801438597280972545438506501588069150661654511366781981617838543777187605792560711744111509653433713098488268452709637798318909331204488894724684303923424057469715195866608553697124936807878435964554313000266273652982862546455450020250066394882446939742118615623827577017643297374282056649837726051033777376081383526278869622807193931200395497933881904227941061900989911572326009019766641371423574141862059414368001869736561829188565242465107050176315902145785252499847444784487169591940729629212100494321803441173242450998384918068736449647379513543236405867269730978640467640214856572679118746874968845734111134914946510960497942938652963360493728798686558336962737343610576245256756807645851490094804855745419472978642766600313847707469546448672517793384433777023343315565732947131922147269727433117645911301957777970302268020708373665216549854725830194986954919832585337541804212684878247196516947707160001999779728426502015153843483000656137342834234987132591570816303388175944562322893986400577165739506423944681165426224483121209672496262394183623798724123317129827344270923916124321563013007482017070345264522894099304538678274927077138741336263004443241580690473326768275706899014033658372497519835185213814656581355873903979695230274969151529378177940993343677953447775283008187496915538139910097256844497109694999101010668134796691590080949315301131918219422928257014452355410841793494682655592476083887582822025055869429536432438279116390219484625174466127941809269210209018832698167157274504805679287177587028668799805154468604747369249684819275528717639086680472164584412550149881797999803984715892502576547978033235559569960504755655168752338133804787085687925613195132887818411494048931007836653914767145333176504112641568954002303782786483241792551879068922718266553359064753338805601617924645962172458901650429538512781778662911432373669490382065832464405157281475153331142742979723729751999735830344438760728541774693661870992829608855270247037600554685338223245205972310375935489528173025778678439233266409737193310153570461801840156429787702182005296251001213961007754698376899803858304628071057603616928032081045691893031995421560224015468243278372688173069419149726427338889991382778348824012048395163290969898042416921441397427023447443011195939962042349805449586458651333976935977284765343390279260595862150281543510277946493144224793206225747297007632131775812008437440574702225524573074293610757538369458467396102219091203894100344983471601392198741075271618051952890641311941992440778438657573542939649274331856606907771900403155861156520171761575823233787883571993702807691011204829082336808851025515924324143090229064396624628888457220086284672557279449000819863938278945966419028831874605543834081814147661283372237726976769366390867887140273810496946648549950956567127557383556117563483099065448117530072019706441629948628609965622922616523697250400664057449416002011892384927141560787697725155754015996145375164299331858348090534517200415944668773737011267050017581274635754221244336383587285092307046029459279619181555178158101806129459261335633884254351858663623803402601899171342072644585074018357175051144169376617165119711999158933123393861480923286531927549891477917879675929850173929106616457948743916304027513268757851881002936848514301942949732481251097332082435083200469637512509238032854943716866810680758377995245635140233199847784529003199950417711199201387582392337487307352400293443987028499797841362280875032564337909554053451871256951575687955270352973610818837305707608690850403019590899431830542933117378384176581902406018267376363000164755128048511601515887040704025969293900048159523506948151165531035623841821045328294532277298941044388409374318360521782255619195005651261627599310912159372319801715856629476582085114694885304587985420303611602511055117238688159818249619265930765751282652506265008143172125298336657198266324142565914084940318596033469204293483961012637170691049150059197238502618809987672395359288829158281724158281242002409180886126011019800420746043095584249770287502674182878928119469769678266945253857169643556082569184151283662880741032825534094665659794073100604728385321504567475320661364553867008958335755068779367077490833617646039954997802113570481081394002409309220050033642761243860863950539062163530086971370400716733397132155733443656029613513331703886759605879332946806232293744368911700005178457028724196233337415723278546845418872114378767374540179332843531915481168582832333381117884818561686615350710933852356268830637500484066898460041050151401748502493816287246403297366121482960749703250939214532005598362514087000105457426927087416950600019891797537772725033226971063798428201528087067914930645654698497677412657357223937599619180222557540535528026239276332440034082473209476670915993192883130343784276798088414898310107216953913990185589140451175226498640368909307653507996929598157207356824837170194888067228178144870424146704754645272711976437164017185870686521039043882024202580099152755104603718296576606926819679805838361433818439515130520577317811522365526132669191329150134259030925615172552923242353079009325312983322243780194959551177879071539880051485837624328782109161394615536625089612787677524536536975538039888063496163930206836634748319002654721890761584550286892987280859265083477215658379836069252817563799108905859065139387742658382234855409679247423651809732903929802601857641795748919955951721192034928967093222187283464819415263926456036426304585167909117700768139121220106850120498170768606163578943308239141417168608337621835868166543533275666959576809552608747147529685690740606774573680211990727587180939680558626360399318525098562682315561915498285048551453730907437529672956779460524578256710547776303633848890314310300931060316452225804334035639997023499831120115788451092577303455666643129792040828622131935339619692603432867625779084195333096850265745788941559654571279957635259130044550960271907611811177232440498945316201674096756349671132970824274576298191084341860575696504547442010564744186897043286301927009730176658497516890247500958453536689566340892069645317297523136122082719102799906781883091764707265610902903183343177122780529185265540621103139935666475992548980013843850282592566245943808206391637546692181948692074606363913542048096223896307722921590806525106764888652261060421757479594676620398175978102955694190437081686169867909409813635475059932315047317148042511738888860206686790161421900510363619564835680033527445150194693999654898487416673815120005854796629641415419434273560184403682302147382915102426127402545266077428820511869040600790598593951705169390912489333417163806303126668332169039242926602408091971013694607179207051420932152067238369490966384455179745751739591594961855847867456120744631313021523365642412522573701984320718672944146190733644278890790706210876140172192959775747356228649033386560076120136364163758685374775481774500628336378015241294304913366678077000443602260006400450913073736003202041917500716065107252732424205747601489509427484046296931201348472643360359374271116790806993996344106998501211756264076231398643691014877086917751666720961756369230897482016031047221015986845052200162972249910086549693810035046263047757589077218039834804259141378360664570301727722603381078234821593584351708980168529833417829090499723903492929266075638514154727728231560374099320879923100468588160875668980061895947955057627079704973291430481024700371030811470910757297169262840984886983704957584471195582845626304952595454710827522065630982357507176712290059885926169521536869528711392219995884666423427890074254195398794686953258072784641727974952402489619143663130698577610150487753684834914246871487290027648022141752557921078415675310171423610452997825892833981289176973277047110276490430107998176583107599237185453044089169205229551918675695534239622299462817624953480359092043215464721412593684550232001605652537254120781718029960937009183021002468619962659725067913495148757762268655945807151165845671227718065711979987354777857544242628173725552582283418932391485506776940277347724407863925982549206917454322506921320532412644405933640809128107435699382549752504406672231470400978920795545197096949245288435260105884554384204452726834223408378737619691984909560501846924513561174061931860034025521822264815967303131562643017445583200870214640215048607640905308396330046228442790648596379050471175175198330009210912756311400845832574743859827199756045226239447407734611521543736175786830599374769427099331229088035272506253999602423914038781318291751903572443403121385249174227028646054482071305282927088835607860154840591725430844794587513826188331398014183947722914781385459046811516129888698790705026440673257139786193674990189319730782024425232925022883670451325734428217332980870857447620344557764848877269435100216390081207655746968645300514466387714699299593192534302445201819526562888935690656909008955839115222998315166955826695519590061724014159720504540041869388004829024737515604076009695687801268179191146507338514363912733466536036781448047725704959622081178372191513938777788284203632674077223008033567108671240965072760735594575860027227246203832916613485638100278529831858145263505020520881573266880837429353381986863126285489964953145117867632733370328505724347564577967690399457205639347937556386937920645919084062163443630773866855718208698569090658939569957863109838760944977989483837288933408244245320845418680062141887376158149535921479057190524436469850046802866478277295989239837139384178286156656704500649519860163873986525127911610369459762070154074525166786744454240642274945425702617363433261593685656673158365038325165498705700546301372517121799542760081277880618016284792534286629554050948088075534507979352695269087232891059927836407628613346412253077918865446104345404309047691016000537200586799396708203232086103086520093009159423335627544269466315296766994526947343285909955617939939067339633307464306469005713751012179598174493184586775530305957724167867478134441423922486199080604481741750737608191003549396090977455356621290580612543149035674140813886157001076190146560493537261335085550794433434452979272766041494816823440934838196260626151389017098808608937162132689835442069613316054738105107503476793181086366718541198960719884448679166240142678197890628691056354442753061399507985507259174751563233553317679203819478569870697392335516921925817124221713616003786895811842229331869334066107034557561535210517047533883213200605589485230639124473697881733434831072204692753235878011384195272286725836354876052917236052882632558124381655751746110936086113708937414928407556636625927920375781714027706567749874611973012337315927616583092831299890894912030529864605329279729715649871513897084797576934073969966904973413262643586833940937503261162867852154590500906229488520465469307157980498962912229680728264588054423124770467680649058276763012567351442888263436006009889577653682001999562760216375895951065062640535670462039008696621603959901785421158803251903757625208455091541530549753620414060638493873079758487748602620979990761752802312667744235652741292486405280300865714670917388631746633669056057276537250261456775975233907484929648572332964255829548795513558943528059581827691077620877114992759478084530480121448439670368031713230561855702647664843972341641549497797906643867976654444596003078693808880442579316622570074441875310745025382959748404215797018703829763640259203471033432979749855245532069965015771731593421560118721940133468400080204067835804174787846500431411579263483571993746335132275901367396524950144828557317349318534959599998425684863883511353235291532841923442459748404037175330167518858909991959888729847751180802019339997934764001603170563420077156406940921956404372522138336419106515072040767235353484224889695095453639205444407471920321589133537349007465425194897151346256161742015985770687385569334540883389257877411891048024463333877072792770240198532611834807311691311119600788160963326064768152443988020903391933979853805136083739818451160550415723669387232447201117481980115226592534306128932688486100940474422962950482635683943916557008750357382056766130822676804926374910716915132271808343663414981084090384310915975339421008833799154727745647245882622626776686732223931509246674972864194984092101651409431088546974462871312716540578586612213889565384704226324233605046433096690135826903310598976248347415182720990542305068845199097997178980763782856675935095678846931597965429237428833198770346770031529312732427917530616229543624321796105876147618965091736289411645394049943906675253133118914002924018413442843854581159047429129653462829570106406540134173535426690306466451028431909307828413137806422926413881119416299151675258096917623142485574656075656420945165528427512683083297255469216200827221882881872537043970626273578524300292201692515572461573153548517182589293748867785863022028656211961082060686709137438743433434779297639202660835966994973573865982274326028260728627730403754437271841042916465210839692467231590763710504149269499773727920405057975905090398824331288521657425926466387255077093527719599685314483731021346342349719321975501777514318898405162093386555434291385742418824750335393484105006025664832835793226905433216611142765300286212711173357929883111992962346903478104800605406269623160461605978118121103972584241267081522894906390482327143710945448277471061298039261564248639222027717768166932673637724668787296048544209911367285491974817265864959556835008510185500849435701453967516237641928165619464205173211359312728841270969201886100093247332710791096672508139116973661360530255014542756697905031845882326003123873446981663307218821937488679197228167648716086209508471505443575544217657776645583759877712489121783307274468957370912236725020724315548276432201954481292379514284935140287831551630745133951971455406778741062159374653319999982243798571787671456729948323059756986749873772607941993242449229318177266539982737653337224750399393243005697559582821989831957595573849257974744359969520543805176117287526311365173341384754386503539112782095349663037721481375736604703582177235770358960800562416401090096091043888438959908286318885030731416334103216959732552428893626855764734457423939559150682207772891632407211174487552492210448521951408338897810672024921655597923081825242739307639467583617041766334693897183434969018047511791240837622041452549082048669120202319876898484100911428921341831388152301937102109661408986324111281646493016717544663146034296574127698413286458917036676099802740180179692608113395643318472082200501038148161093230971232688181133072757783368741789407037285807297891053809042340616456068517550004552612831009201946767339325404519891574416325932988768871453920302516867897022885316647262661427442153880280758407526451612692766435270486634769940910131051679931338325470636698998507190068936822317018699121384359034872950537441290920101153377861358511272332619477501488650584544963500658668657804214938121934270383232661099676532499542710081316500561432178190904706632967354803907659560735257286756681321426433964991521087025620751241668097959720797887367706245434147738717345040381410770338666520826446205287458581160398990303303065816701918697468147682257556895170788982583713622917901645810047260701554792683468759406697160209584132261829019081333149117291533633852223382554596644753097911112903287502941890708546652798235024136994597012361177115808110427401574069916425963869952006822056090023737177317129379239678795885618608974586999784476124993314860577159404282238452094168467390031682590393365133820091199623275581039888862228399253746482898454878964502881157245627024972591145368825728636156157156870068285395598383454521692392836259557967558586319231867017287954180084019221540373641525984719490279849960110966187384057802623621267849997882090396311531233309607707036742837049219568740237713311557002295904988867670709211848221963136875682674221233971435022438202925412426663144613192103560893337895951525712469532609234962935787954240979497366368393702110047851754915491545948104116855907972674956875100568329352530935714789691896665424772488947823627093544179294988393959893052260297590958803418346375844303722390579406078648578751765483396834711033409114678353600080315614512601363114011281262201142627146740813277286234594197970135530744318841268121713190858588651956205258233653422978806248311870896877059852970060243009981729007677008505553810472209603603583730517994028829720107896383308569515933353370681150996934253357530387774058792815550594540206453469691581261326395707341304930504306536522393333253975865069989158752154380082016676566101804647075606531674531445630956653114080956554032028732088106466613748605632730906248048562758684245624469305166154117233778341541402917932769673353103727116870562221738797783710829894437698830534938003983726758716381384754809486606147495820792589083140204090265780076476797316129175865353853697096223115654157348372033734530530006119636899517282257891328967253106901760358005562576656748489815932486877823781739595960691944708910176664015867637924850121524733174121436799597971381187593511454114726808360107058825361904086556225986329719174351584452440851668005288972081472340044285754360550797166342964371548816987251754752450247124931451908662481728388136296125050218959427450065538755875950832475443033172047033757816796414487720029933629447074380252755402146075976702843001572846790210935147135500109868339758285656522597154959145753134939605398257061114257469850576738690025827682204399104431461853707884264375944378563892671437367008369402581288081697187042174002401346777827675703954169222433961966266392467413778300710411800107051440208969569325615657124111809918987404415961639589559582239365647334620949672658884877891707860456710526855291656497908100184019062740463412149827029543010336952653109112778699913014279759408294272903030500855007863926787010582497979490240668157834324602432679304381502194157699676158638171360169429048442819118170123978779366299802309499345852975514003756545676634633777929932427199391537363988655857893372356991446169374609260493863555267787174875799345614978327670931577314568072496596502813082377333653980272913628285095040390101619510896789037064315069422585919538857029761533629195774072712431520522195032051657780411242835014221433885628804535483053691464221553321377541388790889474960198892223132188798053047133855002003982879516069198565852386607511562651850353508298878521017889555787381986232562654287010729215883238042011987322326779124526653130386085615263516900017784036443405653183904900288152450591837117012219416586960627502893051350950339431079008442541760832926226891094752944499271560039598704229562248669497565879549080189164896397061706465978942895995639428508586812567897937901019118660710994065404478741205883176475054210077379571586140065629079579079331059608645724755058823467830598714836166395428590016081109659508908552697286930075200517181062666339162438530129981337765661889206967281639251755683992969608596386227076219167391354087984662745815392430862418809250988545860583889213384183887408253198592976207006944235836020554915972119234531188570266776284489760154281044010774554982857968865581687476481169770812428393593857754242044122646573701681958881391061861061799179384080209929495125443516962280357284619337739427540066091812502193295160404862020365982543568716029664514437251374017691844355377931101305241025391879466325076711122953203897307428886960888413617474836722058959268053052976932465175296598387281705871840244703926072815827472088648288433788797929371424428813649929707947318661525366116538698122945550828115651201776618936184840158717616413051299095802230436001331380894577408361873453613853067698023319612262391667598664191428790945142170289428953437153621075659486861616544365062350493133864968446827706552522465480602146733522389490240333697572277943434918313421001917787906617024477286063927466155731709237629541996442288063719418286176825434702946028474668699188411017343989266324671692946235267956440385229627705784086639162974890019436767381145393184798135763727242859563886443690427435029580679126161448035599064964935924819092378642701517508629284585437757806831533361740227917934365795650821336231431657991843173818840345249101604181508805080589353508620838121398983848669788682804908610321667235908854560885493075325117803793114893120954898680070424452612314509133899463290866472080000236795201046670575170066240741431921453902993301818562505653879091666518218035201382121547855306196987669390677857506817799808725888670266817885591822981615876318623902570702215790715287797267858489681677903834448494122484064182241653427234064262933787372796737175273857026762621689548998418892976442609791058314549906394449806592454338778362400837214988508981499833077796771837128766657415218740640481485102171714922555422610582237733114743857419235620410883795665029587141833774100308564011301160596075335262171669122961083718103487965552037228050662892824071704226188437788585988641307223367295217426794367398287724900980348449532756995009470638761242440682774267934029965337941790992262797490770357446294714335849748011129586772266500626796351743171861378222160397325613785819811046114670434643767518462191268842124295860616520595850483298984753355865479285583570196499428283806911304817918686615608315235701610041241718630161735869528870404785596707702538545909677450851681301960893422875189414311844273758881946025894762494424762399859657153057052737472990423633213722944490838666963497643289567270399701488094564367005223818864675182943607829253268864173028081013491697685781255033857824243041461535969625917278982991597434961889521130424957719609994754774945157863939619751784909318783588357681931774833223379156826644095829924762961393679510230832385561349507054027212191898681904129286416730057040673626182950500450422040791681796282018308984082303474938036557491398661122006138300217761120088168787637973148802411245892128257372508343720612833539983218334878723117527502457934242522177399372505835135287741791633491940792338554258399572820060623858986358864558672294396954803811944445585908645842639926411090277970146786873396892581471028312802853849997977182673279074619038188601164622700993542893406773697099683233166751839071501594693195587794965960966313930866889530940721791897984547612692293485327504712790213723515487944831054363111848318306990675864741706403368974739727579388264962652810617690829877603553778670560082649128808896033019061184290162951557973984343103493046634554173994200025212229133655020061186233634156831451943216030167693260255375864566301737812311809283764186040077993474732180138749651421041838029352391584277981141934160437463416526844654958743113369193347935085542783182484340905232532015036112330764033842064564404359617278019729931654108852688280393650761867593694703568227865689202834111242150637513363121749008065437023575199393869547778899235233795137123411287429545387160347443206336136235766534453661073950084501635325776394913208035313088530124030119369245255645149706565389393420925511461681424868108067155359997655528325415087401853055158922880730232681989503611092599675034959500727264037416167744553155800215076493373818510066926717854095750428781910581375110841204574863485675714605198735007217733321700758257317350938395175732454956190898405986099326731851354966653856445595530780590248054680643964510343451418727075085240507927580021294977229196781116400347747270125582340856548461206943559804205223333411573103756699757197611013229941903779402341515343730034540151386698947046017291311019521042845680095156577589568036925189061587467170242506245752304552669282826315604845406865011686206459208460729812616308621769119929086677004620257133781220348434634767084811064933825402257391517891127863332280630661189466947508874094168440462371322914425656571002522908455614740010349999814955229652491970047406732952501521839770810794825548170513012632724453738252056351268323638367283218747949801318865757635901224715588389481991661352000161344600930143135151517662857242101863350528645045899831341429083731971126780915826526362421860887090186414175744601521413007851359227264660945581537640280796138990681540811027147575544826106712799907249864335788827811592614003439317338558937469302997265210353011977577206825868363172438878078395934380830118501967141763120147127901725305353321526765790544091925095598974701630463032337015682155627448941507313073013972510501043941146480784549932866755484143136870528860881600971173981342521408606292378043148038678316601725686396558672637285076254138427715754135723563633222551447871498645239113026518973062481592619534010835146535084605114019311027943372998881520321443404928430411060699293856941668473848151834395044337279929618134698453424539872295389707785083317665427810081805266850784962889556285394396700555157024236123629304175242255103808941658810736666158208388353064844118903279887279815617279104930563973911075829216166235879680691353815049269913414126099426574878565707100496685791262912987370091311136300911539612923347835815347176065627179871496369539329116477534805290431534945857839509478825867658017954544296404638343830295738388685817012731940181021503173347428855789938882564140963132922386074178073173124020034898688860010463345058077499865862050488929616928025571283423383340379392187492144263646302965813370027626009693223050497641088793226199188986222750527604246803973800716992733600338237042604371232300674261314618020381092101127470277797019453905309380179668856021229588005297588105310940639705282541392057460029594033231106546970882094103161460975481533922348742901451984239339661361013162915707088245224672798686342085005618475551825782317614787420370554951387820990425793754393796767245393144354441902038969155769895424039470665139425635918019972469069853694245518890740343026691561755561740165715408822129025946624550876187593780786285200980514032292375521464751282206792894318212245152742386089586689937374422671325928264724760322998641237800616585960470096634399783431906045701425112939200208434133635465358539331027789030684178281921037105775696515557540149705937128378574476576015888529385099828690660895008957553126062337662234287219130519483550075197365065942450982207817361169396665756511595168035028685451113493295220841828692078244764369407473675629727497443113622411666607428818978687905776670387674594012800306584316585977068325846781856694164648597314846076209640262187367258609198186281568158191592251290122072449360318152346491972520267994389575301041201609382044675824157397658592123259853783903682318833008902424313504597473953006361696344650809213822694290767327343811610562865374175176275268954930859772619625207330806415998200715333370860784679597853929260123130802618033329715550101340287661326994498243243472988307018711572011874365881628868822829472354786686157489362812954686551469191738655115823603465396627352505883052878363937912864847165070745942661778888350908473454314535278988853059562432592470500354872700646175784326245945680868596567306670298674967166599372908818620800569717624504054970657207116253600068762364458073839061724416084803062947728121196829873517166920567266192870202990793959605903458905560501138299782458240942133567338862278297233589854272436001114290497668764501144349149944746313149882469091971581080178950901023563770008531203029967174785057228069631615356324142511996818949540256625585681651004951367430195052884588264037390525597086081573313002968009546876640063145510700029532396259279994219993941761751733011384055638865358919018918283019072650080069722863586670750523371928613741087965826161255490526069926739915929225497524624182881492737229060919979528205567754685893696578402681068228919499255217295841290553301725560737006664328001013931378729198649709267253220719881884641649309632449160238465111468641911104698727668670139538586482513720050737895308605661844981120279305188488067642407180689998086670237583818522747110343976937719117586117359875501338363189343025020279470990463924957933889629203602377490328148619276854371788185038909544080918268578759930720186384121955800729172751193447988478297586548724366261904772417389035788946857957960760900149328735624833751665607014532446749400565138774767195556906005476622776743588159116372427112353278050100891065188290608456759774330532188499930149262533209811501890525354863583612433349164925572283910698467934819659122299499799419775054432866869938412217247492152525124136952118468205639302159558834405744451074357851965359322085514263008928320211955398389110543701734376937450747168438938824435739633689794695496431016284052412674324983422930612811552556225053066318279782470413200846287810307574909838415913999331074409946731557871637724682413782892284908288874343218491619896281567703193714398086504282575276975462051215934607672391320337764761379176632846060943598666886873861725173893317096261202766262040231170973758271810615826724888068802501976639735575106742180327179515554218559021734043222192995985246977913964434052865083558324197864994416700215642043518838786397851509256697285939318783815735104473731270083231152573160556893007606212396269537609435637172719494660096646826996567541011925040003374961206092036326542196373686933295088045727260653957761054222778247764545274354238760787323379711351953710464481498129792556399912666103474957263567268685805261725411603179769850167121612028035029528222535589791538672419994014532092783193722795094396006384488989578448414943402944848817394786873928761678216964718924313327319869819355939150175928410077209449255918354822700210626915970789818228733184333919362035691237499405157359405862375161952232449706336258016787656676122630411399920365724146955249909224697316244107150433684628838030878397087619080222828102104180204055474267858511400496459999204751002865908709120448710717717988107047467545346132441272553144518331319898362529083505128941537424554607609916378731322910982410234591704108517271113837387506390929680129068963332282285939399542159695757971664744549393119755775560937278131898896883510896336146657068170500730225935533230509915480353977849833777291508348057856541896119421628421065525727042615060125454081077966587193307368767031467914399250756660153031231518080987802761975101205995078102828210732347273819716471986895767557696676942141537760344211287467839620719340056579126755585089608471186842411601413443540675245866661595882653239337506434085368248930565857432993179355647822499546418987226644716454376852682997716818400413293513701568492908535485303843917322676469653582435756083793590174748678110590295978317287787903436916742859696724771128992974853266363558706077379428590652616514107540682811093336995646549250745030077870380053988918940373030019148061508795219656246442142704095129827878966142642964100393488197270043633280270195179597856214969715793132616073103230154062536273244858469096789527234442060747963079866249720544399403912878246953380608877975888410010883922128714276804125363754449183663060975274799090696467688648916639630573036647043731759642989700937088303507725228321301155455827709538514448802516299131320927209993728051239242708953624559268939121564931389322917524935837537708025601145202363221767274328079272683852733130856489435398121921187500314439034472612446524686157517376586991457225109719515695439473047311794797073752635784266501348753004387047947182036695833014707991834259458260371795405754719976728303958043525434347757601196682204644093741016129469462966213805476758770857736742745211617236856053284210622132101520300339734847641729092031571478090778170653375737226601703427693485803411878012017037750793886197529759771040741601242394824174588044942454143189343002952476303807315354524244869314336714481558142758860345259493376416947122171350160934173712240951245675041988524705443157871767436966006152398126288332665680069550068357848627371184458217905069976765130737954153262546556668381376654128033911135387141952991763275800135853156501070810940315605029497488300483490258959382564337328158637657306426855010881124660834078110589733715763855278099890501045712473748900769378759026936347262720321727035226483963229172468626232495618238171769868943493077519820046496199302239895817555376919883114513996218355067738668637344366153976321691590465525732822426818032134980144723849782188462083619454558207130918007304373724631491035719317782132260198900362693970895169051482569309711905147843647438326619847809053287248081718041442355505789620342513473452311514162503821133899707861663776109875270633223191594928552688952428632701077748070436214899586111195191192665419942506229492996164726634535381565950587838462698364605823650757325479005770769100377207698372913518185101974190819186204843189015873866753475646807813069928977882174685208588390717542997603824000298465790242498106532096107439883080190962972236928848001101197777668120279346410252373794060343822359519309921742273124574438038504226858478209707456513823743434380534952778735282035894721635914433895190052981334800686666840309829918966627482498959508857226664240551576580571331154175689323813549679012914175270924327331616318652488607356421111495508706923944997355430051621212743842929301309288760116584313361336086933315594278042659884758554596188357690026981511578663473088339937390708498011041244818191876756373327070038881193071763414565355147181148341977327898866172540261134057543275425432415173359662930570435263721663994655743931677040996899805313204127607594364441282032223908750671843325620688901472269547559889461951995500011606348975695345121517968962811238068377292032934959225214091863255179634196476976393040124008255929431244367348693717865989815132438902684957225805132415202894465706357406073073159082383518788762520549717491562749832350061226871363477345244697595567586485314018282835425943486528326937474318234499944665950974108420152111908628477613185990916346747055139906197931808088619618481009630651335600773612254594516292409334659931676360143329231287005675807448931824588809500501600601949020130527307839812400395576599240889027248331764940324618921699062764604907110409531248358100467121672948738561911823638128952753221807839769795033100564622226254427299687436990354469851564454679792053835099603853816269206312890327988108832917235508126821284228754756678082498625346616053409759866211753490063052222615793457571271002413815179865643791854144602070766430951523024140394882792119379439063187142030382668131987881308231249093110835939934933853040847706457402744334628355703117623369917299658902050626597997369877067151842867961547783570550579342777009479930998173041545261999244410440206345253739887705295660150263735140051834834396787424508757513935545017089462097114163583305381163845255900473848606204046075158799446119207807773419963515725910047328395349112535722509848852228228892551940173986215702184469571100905595345447293487447451095084930796966976256475601039608473271497284391915009217313413052265296673734557162112001892658290949441140000089750770403781941109419875325590036842028873378866847011746229171797757869571487558386526259973932683433957309440499973593895371651339597624737278581299151480322442359305883902909802424136460818094346091906375121499875495892114861365164654146080629730109984758382346513316014671796404365375911264724021836459704407524467499132247957275159936827749542499490144263335750476599079369471208157757211054957466691100255935052284688808142458412578696346256589118409760878511318119685972547021321613562646973093897266236815141283787944849088660285373687274399988874399790986810460347253116244278548500658594790106958888633936713785576529858876547415076735270468530940925616331687782264132755540004283722661944689353949533358689135444884247635171821756380053394735715152297839982306132249244028148458886343450722651564731488361506102665637770234335767066119160474812353626162693956959741854673149084767007756369998623257470179072652623192404026360788458843187627630481737017570209828989663958080534438488579567287037255560837866459764889604830847300490081204228377049487346227812516565133925503008533120391714015959714137942433906957202160313165260688544046214387038189835570789398462775860677093734115545306068425887959366699792160284476634334836860955897488891158355593710048706824816930109236846988372218983177572926199342458107574649301291149892704058615494112236325805379344089788907959211732538665949801134842748796937538722164164187459075538423003473753490151249712183467698101070791832789436146166917731905284860652526084079361322694700398337791565112261524820573234622199593573473724524665516524740262926070455077564561426859828079799566055222229276740831073687237224283291705208990618546366238026776699732977411870000911344822985759872428241173019813007429746023878465372147870111791940168626265908768255769932121072952254382803813590903969544164652272592842844600689404481436098555439392203037813895197162257022026783174155647252491492569288329479007260515640869414137777556984795873437263159716091491096911837161174781555761326988955762685262175947292117629111776919291907964666555732674687297032200510578806313207593678879218147123204741731287288061483532014229487736876197985177479753074079887141325608250010946093319373957817708531196873752326964027415335134443087160967353628067860074451754153132342815860494947249459743617462603369398652533298194622032517299944878249657139789236301886200701794682113303967925633632956367640305056616129005813537854039689468412717259435841395158203816672331036839685954485462601620516782716094320520070444034981846386744532710907433286121466716254952479036854248617185043640859577104077404160044960555782879228672154829058029732116055870899961303214091586192371294394239028799050625253582181105187619131349118503686098793064180693485151002059177053848194559241112144835869857744409902251803740366423445042827096453741192296514147016054724950866525166039290833525037942798812972583673516770335968257509713451737296439822104926811054887675157138143221694461290115374000490923040802785981668766903954209342778051407744071079218730795401163208578632186455768181817558695118717451057116223655213324109374358601763220617050864121472599309760853226631253857467989203688687864422031588542289868663858080525123754725371820154038448229063162795232529604067495082525317356206043774270473637215397579916632525636429706424433090678313978302105919222495480535729628664795437250599372186870276030637664020656757019086265518002829963754539738893529562688888264300298727185202996943199172453893987943220287452500896040482226332083237170711205346494619688596683272747057063696692922842285240487151827769701324622775797342264300814239473451957222891838466360651719518990335756863663519682302337106240850128720813319884507412449088343827563036626045924623191994243927236393074688519534138576600369577484874217207085333545709266794216588324058284366101902010185492514372149039270843319636985011907175462112566412917361233134707684951709868513559541990654084508951609067752449844900105011942572422830506494017923393057361567544423192179918013561521329976286533353135312441017981071941509937735800034424905395386684162495794091496150505029988720541568748728259840415070635553865053725947663516098141714892621669077046066394695277632139244718777292577541105184952587458220593496601929257897986869960794257418023633942519973564354666313253000472851439197075789396958132171276171897059612031049962269835818007247039984365476233798754979279459177508599667262417635021582987770196853597846751508029721401203116957674656063554559289444376834824283696882706752675113780916004914265308503934716947153098746365715338243349842164201897838466399816460993357765445082391115606158527487040535153024540973634931300600729226969028515958166426781586830639043196820573580110079782717627559006642427500153746558110619214581570642388871034894431930512775866039018612818063648690271050281471355208796402399296566681106650331976310998829008313591309797190928566615576888884092839959951866065825675637981276991571735317357303553294968306928619125256968809288109954778710114340042141296768573509228178167104275845990209257619802202587650142674293625278008304871161231197598188884928619046549267270438829372368352871481103112573901545836424141306693587063275008508964379011575652252164005590971734456638261066692649818268941596224818042621503761220943200214748268350600512935434708817985842827318313536057174413703434850914064698096075248744585515083602839204189999576562352887392358567693018686391625504650177625073964557224326871514057663846512792188754681789010963344717721330339117088173282042292567217942476617497184342568745700593636998125390801936198062591876354298621606591208810488580181380310971456209035584550569287573068991196988394228843264522735153857800489954720601501357493485813820559953658572824294083322662861816668899791915436973042813593542112787777112836342660295269647677098641244513448418738372394374168965804796826024403359390530137299692020480156896591623020272688727152027837249750862588427422415161635710724233401690961893305699646092328979754007003979341317288974129973867899005040837283256886258062924613681746536969863034778720991666362315077495388600662234589486392768368933526550294828150234625739826819054275885216305054900762534506102157160489707624675230843829499284492586226018071529324365953293542881102061895608805948833141932234287108008712319460157486724653199872194049947236926605059103765551380350722463165484131081466494425162636452025053826563425703364523178705883116202586725523724545553644130150884452454655084214427522733719410657180555251697019416145945790576557542159340454042656908940809045853648950755248241248364346380730686237902711087947690662807106998460713752668368382309450849991789024578128078036465584868901898714115260275100452617587618940034372719124144357433535739043637746693887722986123781728383803128415855486752945186621566638342755045610736813063176793487610365455718582041110364321459672951582772067044251106639467092762265513251471401178562097551979126952368803600508511161014319717971467895905181590917733223065710056286506995242706844417661087810307687191835332662714580363565091835863410503858190452373203864380598785493892863513453485192419290466564506498431225676066841134665685465553313043058075108568811051375566753339456542607983130944056685664847735777600451015752504608732905144051853663927912954556654703736609014456247564397660487703682703091088788977092819688778984247607597079511866822673044859863562672142007707486079756514296292741349890958251069231437653260078539124308607192007510042341465101037750915125858966907850577676080149251434504200642656018222345534570162617281997445076600609374736713892602315536106533520964068016095092969641534818703503870052033777555590251890286278362531176032427172630738487640512175126319341924556689205523380684506112677538763768170203827389952313644276108843577273213250250778636177920201623334449415963261954778170321034691935784764818133988216997107243437444399403365814085521662478523882724524149164909932584137562452675203468863115505690524075313267685724139149397982209127810516619579124590728953427120724682767996476353120756605134867089986013302479322858837491173617627360610140274004699720066216726509188136576199400070295759716432476701554975806834931377356333150883526966297590973116235383070426851689634697816546070708799292835610481254013173370315726010148527325008713740518393500904635497250366210025665620731358735929696016252704352889004937434710766282757082361804710921002684308111239820166342724618652054356397815772124105897189040844543964854292288909765872648386120058838583493413755846668578911311016569025991221509601631524650741307296493182102141679787123891398619507186211818495740002620275296292620252176355550034799410025017184470145121296852158396194028013835927084955954738330873250833659610723490901552034214638554460838993138655344002923730221342154196339278790717021050536927206380121584838074210967443314242985982798761885949439273888834639294344792908097306745550555046677866598002868810909796788251356624282420219704376906194355776439232589031306156958562717805899142295731229516398247195758132964376670566863295828624888892688257121171732471343230207158880628302767048769801692555134275468931182329490122434938475222343472921293473565656010572001574642398088390186120843880545040862121427034276739902607965478445915179972358523143723664667654443882078456378560311716073071228239413362429633201094725973292027596618563348603430296006053005102432258515362476724801821816325411214713128578127233898140716591263580890048892437489226190005830277790811661002344487200106767155991130109572251079287904455527720252641474610396918737834751818027596742026337492482740720442674429886434769300653181230085557570456703733945595621659572221573179790417912841586143403363230820188320404603598239815209600255548147284371320781528105628878088342494651209903306957282581591767160641412776213592738997760818913543846962357949686635232964475429434910795137566322968500987740054978011297189614416145044652697662933234484962621678236145242343096530222208941985049461728026780891461754376674620011256779050791557401592051479585711689973559401880207506103999037057281242582400808191935824264897846050522102462569239511956652770918610013304858098096749802893147858964981126490472732707102012206740593183850554095464185818059826686898836159830008150414613128337063052222702624493552779910121390888630340659138992154248728800626668801987197142103484930234395808282331427461277722233516914740785553847671880742443737084727561381336839791127119955967918859574024554738333075905547227865901656217275660761607722856365725697262989312277711132049106317414583987290393545833965791955023038545347039006043849130854097311981608567774077603958478237602529105505494172837034873226831560458629461555033338236046750970896261577189125224888599679469701114732996506845891186948915978061782535526751335288256007266641643546687601101752963134542083293560307100090624955481562080776765134135168735846195342426979611349401242372558211469871669081359910238337964562724919226209841901849211007226036515009565481379391986325891043360892727555392892362271521990151521851608498377890662364198634815121094354127931292987827554055971973305859514435490448037083387137223070887684063624538001259599536421458889025391931597667049803937054857173121427916538575668714094915071502581830299743395517475895483653287252175735742789090411484015011885232151937419240053032606492139164842451132445253984740982735830821907623410666520949762419614491704009680780410767555418653501043363256965837295981177934037146571611817846861866703498232800579352927448749565883368132905855477859375114010016996433937848294082598848399507403001312019675933802337153044431780892782443308602555952523578954969982728903168825934647648831451671775097670646807464328111148477586546121824605455051654447262009272131950032832294320197301957663084406346247835905456266923789692383270169684779014277231245540657023919083682752425539356488153522691250650461244470039306103581177014472052155077310857057443216757673696356786305810215234899792888652058911521306520749749389501917152135613582824862783088798573128746027567303506339638660700751157874330354127316405017985613240655964161888147396105004670444519155025466977178402654739727815448144962506450222052401535926593522071571631369860741364609354759556740607844056124948159419342154624245939431062846011039160448667117130371193449009891246834414843998038026866213233893163429526864193790867430093387663517475530344568388982742558496427493550878198299492136790349215698659824004259181425088413009401874519770101625344093783749274055600810649437301873875056610583777060660880042268329772948050554445421254630347859148203332943956738008831629080625403204579490678115665540039130729270291484685653598248634437089195375288796252115608994596294156712042378545278844631315450670265288866200557382003096839575125735708344085950065806726913323632374784687240896487073735122564891056506845923474807080251898617394640451166205092041368113045107084920857640786670982943055965645941509434854638976285257180442381801124195758108712261446918601765934314732170129755544609231769744410167117920717866860368696678127119729226837172418134601121433290054651492272612385123867070952701164437981419411107483127436235770812684048429957870357878761489155339815886890860346690686907915043581539868506591443808226454932688526772521957372531707042809765876949560434586378857615107579630554145323295520929615360825351310989069650204239314303573120173190329270738635086781934112384260580199582042357116602116047999780511680459117101150603800678309137555242343781963008765482370556126955365418393049460264721238310648602329093009212640069989862394158189012500609388635002453411854438865870907748203306370723620643699637708072128265456107106081021345476961016403995651269488889415078019810359898630696716364019190131444652850294866662974646521303166792494717626035529659813354314484347315946331171038517875226322314043054542177116836134704969722522613243965030797810308756444062657208045569113439712152857183188178488636297976367175607148327254277074103800638239014771926382631254991055238819266420205445652559078015359347971616491490135984708966481577694263273751125108434459578936997900511135557752258560081115861457658751736804541185294074123768362634351361039875815093125727694134029701882997229520323097455796921711947430088761082962277833030072933372250711349163424241333060300811536937290802631169259770266668965198322099276579788686538054290558227734022039703646696876947250389228051664530398197227989086476437498172177039439043345240414176848953588674826552068320167665518010396443520277839011328936339299917757083517187141521424483204864182547098679667025621626063633211775480530226365266833896711059716920745590085417868093023221437069821490290389038446975934375757778888368870147844760723595397847912909944881575209463892714739359556693726355400128267647297748424477501312236701558071541676799071035137595452331491690238196416859533218146890394160951952947303663233146500881350973278611425571241215388660593522344353596415034558581045940882527680173921188012074974123926607821133139602095376410708090250880435642043640014023396632475326095639703956933156839626946846568410608965240078424724998635120301049278282772147916739010342808605731376579469547095392873989706861723422202692230631317601048300532606766791999458213576092711682350842905164991225159184415333946384900674839636424674729533907651372473618121823772332884275487514553507453917216492314575640984888108331310349555307722469997572368016952958481093411408779373723579930996051932958021034675647257296485145683894117359333028359869420479816256698793130744743180276073104715039973729909874336744244564997830243186051965401632115385291175408699473111414198182904383143894326851679646628886519394007008567631033192920500668859369843857158605578378631499495742329156393338139265723230455083702038846746208426379016354043715742394453206897358570860148617000902296600047327604325123047848613119386999122097757496958915803101601247400748832352568257663428931450138568365200080849413691820032816767184206860827823089910962650596484359131252836938841530147856084493703341244158080466371559921354508147863106856675798846245583854778371841168162717582095829189894174971138214655868917288226525908009911032976433898545864448017221863837571709541840388727070255626769789194355178757563620379888590625096302453800085301152510365538382023504695848009822585741884070105874975498641880324362346133505116999977209350808273891211742309238871343609589896228016473848421402232643919420018270245530684807192121345877086799014406552014743038767902875079095772540997149818838991690840301888707830186752762070362556695004139609834141173439435104717041667245088199236904187895603686580104656904445212060686955016895452171459925104489794444071968991931654431942161080631075818377368886883334443245318214995947449607307690144025848600888896371299818491219449972590810086346966409325067340794909321326699217087761102110348533412997494993110137340294962693390453982364942341795588600070103921317898383050999936518034771742481857583404712206330046901762167359443363536418582979783859954911079019382366438717990799080178067659060723288249464101567589816719838224421487795571174232132932734382146197565815649941066412750546071220542451610071727271025867626727113133354125294017449371145364290632578586659021943212527580211904117832826545104338731663748056631234113579325136432393621264129586209020169107183898999134008636545925682198262278267980980609401859741003474935632619937236581583527760549239537811524117990506101345356430999525307460846489571298466099256206065999594350752591225031470982184577889418507114218068132800865133527353727792103708429322951090252367433746171721477044939914091929808686839711508251181360248019248469777799977889540339896091765324474829038047389976342139494696585299495584557952990216938669243277008582927678691673740407452399976276520355532042882940926033694103300255305235775296792009184050013032487709637625131114543997318438264941342356101928025827434252160744062387499006847016540463582939675634884456048882148594989691574114504844788618751120099212919950301888528013095402360343190322902179742224372523866300428660264425767748051344701121197316043974144260914932081432055285610957642307352326511387582271568805186720433784344053743163729808221895671839826017651034120866102108639971060115518032000005925443692753881583957340625263639198832148552787803810445200187066638784721153075446560797930953199805233324960882885699390623140870276236170860578141177274201253546260204039684709564969210251554266215696403006992364441310713280274077910514730746315413166956386857045466969325715120129313217242638242790846665688144560594846742716832041130217807352306684644959821542997583410700596343302429142091532053068391273556537247214896794795992164394561314748004836565899326010723911277626184962936787598524513172083807854864138315218353481546980415909718730256984585176123226442513287382083666006123283121468423471851576546739099848808508603662258455453806665636256900439219838338964958357901336381131013512132519757721634053822696550999592784210340797314766767433401266206783439076742924464094029176264767691217113047554802632120759669083415985986254586563361532130879060730954179797065456519721986488955177037034694978276089806906254785787516052519728739700464601548443624243872359844298812286513680984831332187994193913321354708396919090284120681710999913068510402409640968477316129975570187725248689862762823332883882228486489372524447608980572345469535751846830015588005818454192112496799978311241649625116473131107911680213364706728360975008348662219204323603783608547127733791533502804667201372389968162176220537090119529760106089607739846218328018756099618691355378134553160653294869330395360534290665714058045594420442490246148354360855421650486711862129881510220501755320389579156480205055485077808874990074943414800699420508628447615516194283919224559374882803876557139819267545772394465739331341674272821327583325756734515902277382525077450393529002306439841234923192486829490878407816990325605642847171869742059525842996262590223537144773335584114972082423434811556409770105942542005213998489861110721359121081721340276413859387662943812127630261137589518833907997602123118001451149023657133989487756461772728541001271242283602037191274917015270301526121144377830177582103656809179498671464158531857178506784667587408868911044029408084717872265639337019754896683047278912780776574233680450880830248239013068638939724909491486104105748986756533244651814204971341168002937062779622717626588470609051996130524139864509018684688811901760222029257852018436685916803955550309247992253253970177830451777341957188512056651873665897542478399477547804768583515646934443739585444847154160177838183379517510809377496004703707705393836239004486003830077016953539802361968324719566679299703489169965716470379597982956089013649433014875257983017946420645966483540253866514179221651051332070313686706037605007617873848122803056843042492110461884931172012825962089602090020893580460678515331316637175632034928758968497934104157466783655357438493983130593840818619243504325224262967741767987873819749105612773214618830703392094732991281030962106572428820378737630921901731128544222679543441805373506440799027849029491738638470963808488520604447173404523792579757095143387128513792353104453773884190788109487878709467091637868298836938566050823338232959299649347271982131620366027407748390204064394121274656911193437857613944299463201432920938512769816553211711607249113416869285285253562444935802401621999874527193438458382780464067352101865895321038034911652791192372896065249795936681751735895463510803516739789013758978427056758634093860357017134720239582066571749281632783862719443755678147568367746440173454479061883084569213795226666239377177391519423378422180234829430095440557998816816232153563082523007337776604950825789737407545110951407194509056380579258053377830202462389471184132062997043776471225573753707054819721755864453707518562799116199071763018082154482756836389165586376004435070885474485490931784773572479468995034630592353388353473791808239949241102396848660149837339783752779448633762092290215044574509628172520585729128535324043013586543319014369035916179616490311013003525129295290345031952749157462440575607477460855874011461217146179005443579585363919115391457164516729148340473926712733357364856154147169477678827376592806826959703520753944969124867315079781179307636241544059156651450628002415385250534363895537686025677093701828359443130662591689400594480240391718064024677530480292619458940992533398450376225688117680079763873578751207567072857081702869293931392302909806737943517033021663895537967998449462353708725985431793649112637877105020385498927978220677113343367172860531316554988692669284636219030432190872895906506588083045809629086962077123058753323583477873431670167259524009178163276374875055550150299542097896479728746821025560348889466033273840716768428502581894796947596783585441953334750927516078844636352034789587479910466235377817106717059127930697427292354304093114089149954291523320852093240686648543104778633181098653043128972218049350053276873336830005129933344629290905901422798497497659779619251200950196757217674228684062430787230706756772627883071244757406167388877046866782128404026723839869650844608056176187596226970391251305823403151075653044194308658427748636661776039654060377542117579949219127012154009896908928129243981564043073755699204254038866345502704992521558738799620982627748627916251102015071614208107995761869238767125683169495120471515109798298268011197796322529538598009086070966204305781547657926414547069415834483644528672236519330184120249063535580555022700326542527469034362643853839014029984748361097200324198448724192191672256376258070922632046752643854635078593066112745140192439998295192402093197270214584538294726537699500589806693446105394547051258774941435850697871480321162415728706319238616160855670346673358667857591899730959714899124987885602474289363085545523556809842633223025470442551034454955106186837847042006773610814769532428884283934890763381868421148799076135296869636819847297437617533123712326883781178436912470121011263855919555239695346422146488903531547336044679190053217328166813239583423362438749113054640675648557767814347430480966379758857329767141115720563873127275853748105100376277036287860661441312699888267809113456960680807829209483507818271273438293650426743635398041843404178059743644049472502525907294669007841104826159849309352823551173921789687317696142561101564884018811740668642504119098507799842497657345614213113043003883363680933786999620781207191601912263497040053948089880805234616848992322410317071998218973723734199295570346506803527771825552917454587720243346054834231159086483610047563933128063318872704832212131985623489908535282155035859462822519404919591421578918538216126167076385647443486876716526388102730229266481017717546214300683052941215378994869799281281312586389451580708748735492923793519508438868155582763593159819184904465338948289601392787488576072511927200630129619804445711600589464170384754403968719496199881294273264365672596963890564970679252050643945770942921499490002664993986010518859544526374647565837744354620611957944382276382026463027919457868839161668096281302357877157939171408334442402551721273104332026426144749444694011278596052736970966564971448358691664310767525297389454296919492711409686511950118812295371385639277598969494273463546124065017266149791913084552343023854722757778976307357897885229715617370312820710136685571778039681441537925267352426745963228740596384687367659089498106917387008972951008431025443384605781496884740175096248506606338267619804877538058907210419840850926779475746042534458778991604368931390929459559516823722892570552902326272254519017808751166341869920673618007654704448350575583459101721126663906122559946218039459442920000849616572255113584699675554760449839499752590830072045733575128853348549267153198045420791474194159739343535758868163803269325943576823388970876800649575643048101171111316969160843022910786530089678449990956019060579913043690765237208854518180414335946576717125588735768669978941446204489940890924156987227060591277483637492651179527666844786894816982487912955176710405600431745595705567687255956780550547042172447847085130621977861482284642528098100834332623981365580508677213070238416176846928425124464876371665480602781932865135162990168912892915372231830309621762283052436573574755144988089672480655328963850818523936001304754745267231520417474708062947720682507138422623361781251181601507754723306924976815128431435651097828579832065881430052502626949038375849287033578864432895268318992855395254175992250691909189409513186513755824416234882496887224608268595965138070289028187309835225152976725734868368365612651693112698179741494248930298526811081094144875477092817530098690099739950980415490539248113110201459439131462099779675264643434122516094125114550316446858055964931941516526656155655215976312847824608819674784988557866538563947785910803856075785755535534636941795817921486216253476582428882484564765583223237078525246892154235301066457410548143991535272089535394428323046729487268246750005189068397528828909917556415141511489017512186800632437216182521863934338955728006833096486908864712624415894975438811196592542874878959182836636445148629677253706719165229910628086886675518073546246058312297928793189465697504165724771524856540574580112773049808054209094996647210949584332291466889377492662354354815920970283274577117190841063946713300548208816168180311912551160888274649513675032219118916363494713908159170539594563370067849481337067031328136515839488738137438897225422960870206951162378134480603043818055433558016937055838348339845350994588046380232417609699595924464613032549475905595434585593851246151150622809166288306397970282776675907258225505063057678954129306095540080765660008087370525600785599883739844127527441405746990604263381751689898527046558832979203142269364650137085150656919229648843704027132436371173163423069790574903258395386852821947606409750641554175721439774113966568073362777286439952106718115830786813989662157961500797220592717590182933216995876181703131728937349488258613720754779395434186448156545097142016559010793938401758353124052513297878031406071569172514423279075394412367074266427319334867979831054219853360999613669215907052356210813067783312001025403201524458887751202992944830568194706388687698078279369352006080074891843141645124074887314461968624877633292639625732008643910687544701920426212668934603079691927900063266912662480775682559622491907731078135759502326631110917678910096802117692911547141453317334157352735260286986262540649273904172886714746403303776787692352744279761545216881391662731691707161629925045518576168171230480754303181656406881449966114971689504330987489436727735623840106842289605766120604035413315246557389089123751330547779078502922711203757557800848837909862054957168012893880173561250680074276449753503467412116123435912802199516591786127918013276026528183719714898997858139167319408554166047058554346303622604416094727543328767141785712020725482829612934984529662995674912906791922326568984829945538197725673474676604746334374236642256319128525952148400414679197776748706490045050189292314540291326629177472555255881569537517015891588869834159980284850611403345677576866338764420056017512279327297822419540790984337565548603793754409269147305779062762690024932555762079072972982531145089418324367851249196423596835291315374153554624468809517353333563322411813781952264391008298983182764090258128287483443142347578181961105790512618876210521178090016891280636457910618816156192889184873695710654337974315559711910460090876766491167690519801904231869885008417583521732193524438194531679559950632490344768755016503508492083038451921435111419209693699427008008751066038500425783174256859666594045936094006972321011655390470759230110444750133774759240574814950972942401369173992324367189773510386543334439360935311344421127885024984213349816280722695229864500782236863973220810840554528538772174747421257295934755568239155845102944046931389389406375396776325261481988012545338852003957634817618551235671243738190084796631274800743108861555733273263741917874033648595524459239243790250741000091196601961317767289422250315927790841046777964106146184055514059444975394638526490302478228383154608218486695261800760568421940134760218858086300325284077167474869094747190899416833840313252288710085672735258908046446106612044221753751849501903887754629835470838831306118732891030859065759219981201449073138309815599175080012256664944717748582660836836631572019835493602262801529030448364207741609362993772196990995673355630207134201604681873961791220144285837556751854893850874465482237511827189144577847136919396838616870221907914323995247204526007245526353942744699512855411995754656014913872775198038131971661295454125918653449447340176264813965854521553391744987383381316618369489582062233834737561778511337233803811463335030764403217200915118079760316707713789616856485741796255335551341313258958355373156086371582089118951912024855977364728884954884733064605375062944655105797742916502545957101635474133529956523290848808342676661336389250912836111645868584204378922559082531513709776821483144469868027871577519593616019397871986040867928710792153708058243226420420939952846224533517149124361318698742425925571522600753158470748784066562750568642773062152347458179363884376926605590870870422790786796930666458437731588217490340520861823048158402243337687652851789805084676122164446973232673536441175467110236938007977474260157280051406635403259308779267911344380692531851991661231188387734915955820195223019556039434592372101397650100306345744456413500302660742884337738840783377242259046345306008192362231047127384331984472437491143941926418983439498461910521906553031261144469740349292226898559420990943922182348917593156486462128154409204021342036723658707237636835184959283883100214071635653740382328361550906355409447820607563830280166207701087753342586242882977317480666388207581135423548211910451132638959501386478424132896476175963589003771153519845537182059587977845994849187174277080496716907546283880183881052677050766360006400404283890169611613098917176575357124352350283957806108461035208293118176181730233935287888059096073471605884481711000711493090030281396199560687248259707756911365228760370974694730937555486825326748156563893217405908084757509387517202468724786757808218570327570235379264230880399883111972628532213788760363626210966222219349456867179759891920180501847851303703815241723465051505252233132170478664177335982560707044359283405889578472134147153305012369159911283720803627081611893937332908986045917702040282536123753463185503026773988167213450091582908662614028978961868790919787715704340869096896624698839103884533274666744450210707913549270475776242351736071571625151358207123669024253208579021966287275641042485245338382414907056487960113261485135564280556928645739610906559217357356178319921714261429718221845861991785698963534732378824327440401873451967086007732859477881852493587378160120370657823431189594452676842041588573630591978753684086516249333902638409498883029895020339634279190027996707966437066611531838586148903902754049990678384985923074499701237474785226521789221538379927251399989751556203606384584063946128289754141163071779907119485461439895698027349005907064572684023697649308883695045300383829421487895080467270566153701151891999651536764572122847661472273374582173421878277637539077461870099805836421954747587191442243353075122948487053220579015112010204236504176197458148176184518515771053118383897106239966283160109367857550514523539708072082426924375354759447399680714450975175512784007622524904491723725160489735709541536310178418262528932638490661739425521397365550546103927639441166191127503129370734387492451735372314719359320453466244919182494760796141509947013057108781030952665289668785863855607502060723678512163871479946908850149670751111109822276077373383259692344816800172331284200242343565635285155643990559504915483157335355509044922803270985674451977485838402369399784940540290246208880106260486655173752873290852321515283043489426510199767356729478885663685880123032673265978105163221886787322026933277517336080146844010438707135766319461772221178416302234228121164917220926982696280839638332012241533449452592447178032152888171758363061643889293619969989040187446583104027790888565957071613045922148804178977573832020786889125233909778694563691753314164169710067394891382798952770712416499720149428589303845302534113574964160530769616556845589743196437543174136675212975686489390988109423880977716048150179729970982597663842762099826928083198496324586772672536860075498713327550768862224705886672899544734281323203978347397397702111794182206579384891886749034114652928808342702783115100179679572332349601658416902237864111806346765458937672522811606848087443808825611438980216573126021691715756874119192596643060848501023387725161683976597871052329132250181219309018021460902714209470271135891970125460629411269167302588824735413520585002376341630950168140322768744260378804653732549174049067483296098761295115640440490380638857132500774988185496342404941329637392982576100151239240752058908457974459390045280890779547339922304806476748536376508357638837137914642320382564818716641799114881080131234064664901031935884120199292199922769038103884118712033695659229727674572572381634734146596812929764177633960393830126752321550812218079438859993787771156527851112216992798131351391496908997371544003372693077339683686638974606858649918145174444260622655462209122412954213081732486467381664478716498951959332349360068879624524042054724297642042515543246401873577158913068444753185508880737006584004371738616804651681131924811620046762562690663908552764280877352181202412310531024479723659894443208225973557942500426769405113319575708834388313135340946679928012995342258599123105941093089792813511415336950526115516896244451387948194306207451589924339256596609736261495437833195059957216748652624726286999313385027050518166738467541112957449497271182142980562133240309237345334793993868090359031163459379770057555803849174845862192678855283083458542658156100019117297781365566235272961971998466418367310505343565440409134603875370011535159320517495405624597894047809267048918423172220900281349503027319117516604245103549166538996432927659306565500779270404120913675138263696887942640093154973712068818445235980537519875194329135418758789125393678073990547068449432291260862546279413171308789702169542684992040275773509569014480449991711816928437451126546489809693345097182755223783386943472145970963409872572032137207964106575517031476253019004659981210526080218221941318821986681143544671711678996191846992319961858328457583638223364538141816544551075888780271685991921963224937357637284447598992818319712392333756340424118937086780854512253538399831700833930379751640277414064816925086528778543974409470332011822703172564471954812254047391797719487951675432334680630718592239332372622061999208474032279943153074304023231718577431499597542285889377524022372167962763595364049280697832908769870529270751008878354613510036490584191157182173570799695995451012648681084234441475964162288505581782948945386712633243194288369416568998898185981905479760977359243869863152069345698451336747966098317603028243624371173617975811752492470291560253829101713026314546347955740083971723611974990208016458554334391115673209832364163979200431358072170674741692293079353492124894178813904525016489029092286718041694132280635272605159164430326459920109378619642605101837969372505656451608977339727214301601260082625356957372143327341090108773170807245744460266573653059001455388731913854845810303683630823840570952978314086600121854541442194003240319848691351634576894174877870135425858071551174239102311461874348696133399085367511798780899326575917286198456971216038745362362277859705548655319968727980072653832261849021681853625537156408252898880662821520113336178018574576035157709418606851582304423051330188605091467599539930575171694706360216284860042706322429949882686482639116971626815778068919112485004583434213835211658693019399218868720966612551074149231893453858723699551026641590527563108399024727386727951088271103733147868007965491711344644114280955335943262594436421204032885045099006495574827884941873456404417271850948841723414054650112252545458294899320866874486805477282342490984722961740543999325257285371835584321682629376770069235517122433355142641032408204634632712881657900928424257915972256471902729908077592414060895220382849814991716780316917517621585781818494338035532570636055124142228849108249815808266641702300305195945655738873276059832072063218779835887208152364004603466267672032964518371175878517470870618580077856515160058728616533535723063220980324927569606549205359510167971289386429268880853423594333913113700106846904388215353312515683417109710795651637260881847370759482756376031951197905578760369832038193210334244284620783770554044678984439629589777443924636634000521870855109747418273967055315143819067520232663928721139158029024745335676294449172854761939558134923214768465030008998985470126940099274787801752418369146350477837149192199059903535879045713389027026119652585686819130679118940278385556874145605183089704320641171626483538090189926794618791203578262230145086740664658487926182033607506367087025900108782214771209223413614688176050779493493659229897575378767103414256862512574651787801301131310807099095253547523525942346170571683902778178048380858844454785937173895516163366280035862765532682115308314725428811221234076878699742120268481986576686358559069549654333936093968135222777381072314679261224519097021372705856703325046915790049399385002684928281487594576821030222491527754614403315019308397146743580952822721843308521905543994037139649459992472413676188804661115414001133882206497762456737110194003432820893313851381706888197877221716730329573657531903010428814296493879380889481029234627981644600010642540513505942373582487321430408535001920948139966056928790932304957836438058709040761428958386785762493655882305629010849275808756736646475247241593011348579592935272242242044194879982709175166704008705940093664271136524498073421251504758318718367070714205803578802344476120132209328591208151057578063868881542551881086710092729898883439788492165037054128101911153379379531061989491826469962636584991326109160093402126885287911701050373368704497074431065701260478891213074518393853116902190536371041531670070109070870581232789202830846383386334335798969577041829885903545952157088555999058437273517563195760529108138823293196097140927609149075847594945397436543886357332529874893479731864544750641266050288238550988380286042111995365631259806086860099013336301669970409763238242911497270650759820647397536635847658902220350462510707817784941279376449099953689658682288640739415309302988845719389717980191851847143296073028283599867306477652440683934025881922156572105981363829923374212951823750829960556626043085858133533740731648716127138865554376361028837482345722828559754027089096428551182535442190554511221581225195637113807971401238177873283624920157395760746669674504174847638948582775216605561825377985967789929968778569718523349777801452215435242940001676912278728257146777250298104403545689062873234685421562894011402256192445459807601680361672125344442274315396634059139988598227228770288811060833028977993538023610375259827633593245154050718659708666108515349261498486321263057290331394715752871019704075565383504981129159120844721293806318142172334585584661727132542914743365769949266243987185097524628135472365679981953013289133090853149526177644478098901229610395955953048888456206898566710443173661867867451571237389359005945897367015419876338442468652158351506161151955604728097796880409658192880835454557873524335502829836257578165714297155982240420069267401751448148675458193488824193774386535738735606869683871056116365526277350669252365073071384777193760087446320276607071354049484807720038848995542306027495466201405397214257597217349429281211859787534807342078181006381157918720787353529050061816070899874424552583952126447385509562384238691214929163941646471848270017954700512392140052414232185489707169213091391129262187964208646991660634857002904735052494259576509341814626149468825593571930117779024530856887457874748935870058511893547723173462544365281499508550353121190067195988857872737400915440121533047863168348219759468927387059615800652884953418058396550138128999911242043041121537455881625471562817879661542618602400551233977325538409530682240256681858553932508300394682096077611704057225411548521735592850657528298650950623686872797634206491812084481895832922000643391654008464131710556296092466997417417702817393640213775969018716166966777426363941257551376028296342756074055511904443506476954548788224667286695608404836419503844685045215211666590645896213708965166521355117165799190088959217858655885366320277226853980547028151624492864223513109034809541242329608484275032758646680024495517018888773317088325442387697074267469957331057616186286744816662633261225314074090096056835389686923503033422894960646183851414631067409234566341966824067740666286503953687363664086734497861526927352091896498382327043708990482839957270742445106822016199230549278105825175805462050242750900204749377094213771920822459495786501353895378211037313168985406005112473691282334339770891976972129868247512031521875419667372330841159125246396371830841725074530820038910811958275890262241854424111755832386199961206311814570659370706112180235057390120820197875668642125585133737398228374331686645922280192295565022966177443245772977238921349961674372031599485951028399109175434629447534317767558190285297218109696514186906750502657956675942225395312293123722310205287282304877296972797039253721868519722877948578397789136538969320556657564670253513044097665269817448800899230542645710365493368059535174312184262618459787684144335349985677529315610103635047553941651309557986924967940777097331846843240003009283220416040584069428294124610977364018411783385843598540365675970716298514020162718813520860688976510426751350857982936571731568381879313308399355822848728750630749215984173766770144245190579272483035000810840806783362971401001330361714099681726579377467657027893902199992313019576027357018550217270714109231657802466648965147693284747674905021935306613838361810662590548613021530853922678960760340617010729845241073954807792815056325466224570557728927837285375881698469770953775292561030512549023718174940380165617155550974335126442347548186092780142369971532370346179836422933314530771733264469461677403348854179086566703604925951375700065091919254911927688883653352683258844054106171559777855618933106702786490794020892354734811955570816236612184214320228089105192302232528590812145838454310268007241206131856063678181089314295369297618650724176016354434933254200313331549847667428355928410848051809608601489360496780724883794405818319432522498601676467401772647298842459466522535281933463425908171334803055723994296211721625809646265795687227716600945469247873040819769716279141362775665555982499884071039017358873901796191259689789841587146604943888600874833765902058802123337261421040214370190637585540681739265976568882671099968870375831156627814013087567388127293479995474663100175258313785296112659305238400431488104121536164375268904702505806207702285666513892556837414713723423159284133433683292125566306454116723567663860690899084699359528255955100766389609228937672215794401038807093534714967236509750215895055834952498249105303104702899377799552835581311662688574129258276791285276646447354056339298469197963209220091424626169147971248388020053447403734071086606226162172171167043179738815627918192110747437967180611619074579755273000139790658834486399395853009718321731379331246634227330927116237390987786398590510379159988689182140051692962972766657824485931490638630165135308397800622539154227535436085561111588169482295920383287050685870039864325842039230316971215285469785996568608242067013789321920415221096245995149821955625486423109147572542872150412644484365239575337166985559261551557133623459882046335251566336456863631520087036455392751523240445694362875077977942230138769576647723911227305865252505514692547240386046705959662347316315859100571729507203492028235465481250702595948048227397713426290497328280122027366076962619532136429258127631659379792258891272318517995889193354119256899991844476926142552630997783988093910291457699247450359537860517302087251158096679241419449772470493249340836552781729758171783905564767901150154979936640264169784260600563444122879742072659279737591502767504255978592464703527561268595423084962711289729431924296382131700765200330856037549969820792599540596770112378138916262674768836060845657425532377517145980810702092350088472789918965317484636748209427808514754895095064072512020615016722120302316059824247227482915795331052104441838658478453641137125732856691096798756063582969756558901690663402285129044759090905427814807886481864981623315124627832692970767892632598918750926228987701385336611094609464244936714731202643174130855238811815254123892662866760032112978371563610218286510333238059191127002271554374057873040161895438980328592508635129002012658112325127943018718469758816441744490165254769385183486747521418563023270706831017608526079371314553666617598720780011408294097365344874701181418522196328562196651159287076919059238915871049799406987674428235322537962435113359304592661758670661708666268690152831644507877040931311682150373108889544135258082303705390687306142343924234554436160163505569774097450393350491984662626995316532539920131560699235631161677482500292649907510310543504980895070946980235408683243043690022121216536751991335662401234953971509239422215263866398593873112902985597923601610215036783261782779983229623749214728168013118547253525999801928675988555083378658068953675559873987885209645399562269150479571666190511186179214156352652640936189611778447398052426113958317461035992751260784477161591055767830396715574765799212341322978425361285235966050115697611567397438273643942780259765670983112124638427799413016481124917346674474119175090132755153594293426195329049972398449834874426898768211239336681669491133773319039976341341914507511950046865958753072192163227616643639327571086829020874689833564229972101833004197681067013044579735763227097562989743981654111537244630639470169551263868152659122994256186404630609988544511418262378681441148760348317685597993203882247912743825027390636308302653012591555889834088662347355784424581753361403867472341716409707024327207334855728520372582372684607712018669454041085384554023463561422051324810580616295187875296364248521415532346304331768522123066262918954303925133001273449033945702235071774949546463251872750226313157665793813836410365417256409116627417106205380616092625665082078777193023865022367509284881975197150665138964770340732193706494234977178950907988202985982130475535216534632608820255550681154337010036803594468195199594848692863817810555714352805238266817300520357610534028792855723240837922316677364128961227943805321667962272400253901095648796264051034129109888092395758559635315567350775579249060824086209674488810219270678770355132103723824375243834963482805081409629080641068995921771229824109870111648696367204349753630136457889945975153395469034991652420369436250287150536622795274464914714562189269732670323119006542835912582144841272590061593792817390982002253560583176826997007930095468925262529359148707729963034129882579457421548183081934578339539776093310724549951175664824549750882512175601068619279269779541132111368282049650454556641465910939472671148308205574328175569287636612778259339412099721245640163063321087807982161316532551996560192943733838398061711636639381391438843536887989175515888011903947799541437871636908337440538085216747279359106644541916829770936142477468650036131759154074070678561168218706633625161976831415038227831914097112355023727292824379082391252920214118054837113816145713194842308937665153828675971523672480598509207308150278238359204906226681741406407397920292254314303992764302058713724680008385994748153326600060961641139993401806579115056671088412717721181700277947552184579201113559575791700356188558436194546308614026164408347459799141339712069318055582010982686307192349018894133238918928344402680362559572031007523999208148938120790472275047858072441251590228126782420086880383186574901145532621422998209324903164957588931780035950108689230175306754191194846128286010669963365203933257988618280460401285672930092514204075635810130492148449712409331972620461906940857215579150491041007296117803935327670607656934221927048501940425075758401240869886860704167494196114390687294088232510005214060045404960454704478256402146492705614528464761769977211013971479914090667518089987460647425486280415203894218060913785156512708573056340177423084958540702056346508545417940180301695896134479639659684775421436810166000468015733941959954623980118577013967140145201401153390862262069816449518663755595857016865276490616972700894913379006114418640201102955423670283081332200750908935377070019924793746771042996032172318386801955584189759653088628004651888473948210741355065086468760270967608765026711274897986269773221190374243380129182551804826324305596180395170392041516669366090449124391895053489728352202765681811258139680947627390636120963324643020661803004189674085476308276272650272703473712161839307112784706843847500880087879234110246668556179516572563501013422112393546745690870805079429888746920953163535432567804589957381384110317857708852406484508772495731335015734741077087465706063890664469641104642320465657352998189583831051852895113913497590356384466011017001129603807104077809645540313452772757712632154571992443365746760091802391790584810173414323300161562661736687788306796474815423145848350053866100341581104777953949020116323624910158717833060663185215581877849630302637238710270721082506213433257639652240590225304553407646995965804210461336660464171699830270372814194143789104834161948798197258594239781662940033154057045943578616197840627428965802556017679737326874287365217294265776905386253859568429981289113955413420247774673161190456416572302787916280576372079157623278218433029007784907096816247882295525799512160641407309882225551230110617451191651995582855158261876405141276032440964657417738865426898469721780150388116375532150226218195545068673286327180235449409445867004664673231109314401791229898567721194525569206641489739896526696940894976863648845308249938442127099103262523756968297578444040373009372941868121935443050241355145269470538964807242789203809872114828550503274683780075670967365169775003962408412106385478307838271350088866742933927554576327110317740041154876255231826751581586940376442379023993513543749070033697631380509154279228384443727445469588420569434446758754348700303822133000236233953809557180496583927012947489781438663307567990166951219621761998125311106098497139404745182206549393499850775680366303221636645593807628228209796377540297265652891470667278993862233973700568795649907901523248463782597176759179669349722357608102063988917403235675513223675922882975959140242161762847218181603566264163646915515915786944338074136819815283077944523679530139455541408797936095794313699514479362811257483620332507981485661772766351260575540064234051891421347010177383947919838327804732764655959528039615759676570509673057797217705057877042282613270174853911122960917393771762655308120812502957522588818112944619768355102753304502403314671892452281638584128708340377156645050126086115018129651853749420250100561477204792430228970134363685337340210643174265389546965517286938177172843189481635635773530580508584137701219465718506398174336134116248155017682966662552692657834778401736830288299014538531884986611354543703607144172446127647238891041037608683557987554143082181324836643579344535828360946535631710171311270487724940303462331091435000780396265925042551631215517880234399658759060153815430452334955355947642483965058981142671518183298871783396739268507961565576788643158018123567561875673426811049205392647350584674425473078067460236143134876556537760946588588195561284482053758809194482309404638239664354775056795860959219272910226312051852132931726858291957168974235748566336240660648166253357264508210927693349277255972945400811589500435305152764355964366044641337274851801871305564884915169080408472393246438561475358258124067701325795807018030443290402832620874849626837885742629646955802486817293459729572549652143267352873670381031958551476924360234657660213783291617787717288879434702282304399893027788104031410632042186130495689617681527183956449614705527275679894192836283686617131717196291434097653001734518088032762437463582875828235517545749474463597910984545811922409139211967755120009007099592631225578808355447026803221146352636446470971427578756159563328433909169481097122474560976297707445654473209722593303068604694084589761370846078671170573691059909485640461923588405670300043492501412383512419931198985539725902427254984105894995284372696839310485784520190704974913037267729912155292762254593257393398901207538859917065559152362737834376075483677453166126200576611877368095017108333743497385770955644028531783638148304940163516719667670490883645220207799189677220292072408213963197606329322183443742703885272859601275661857723152239752539932988457708276640887294943342154690885754091746743243004066956543865989605817545243997601374611836306992579224548904667028617809611703063736616195831633453202566118161022963291880805103761164880822105021965157196068764657611839335018104207781393406850517337250367783900657472110179919937755157855611065752257033295736982759868026934713935109959175199005258347321311385090553806699952529817941057720649836379194132812886236088786836759538945727515967780962052864229989244494231989087696757158617635767062854677119430044309881246801154931421152819028057137707128435398781687519973416739580448447834007144407874119365612219716976353132273752326350381659774737575329013028948333561944525953924616273116882011296674582020065558446887703207017259486667531015391272875334842787450521127486963332580746851104714697659399990966882922221633390739226663224772834834215175056531461464012963071153470512903610062236478394466079527866219458730129464699586715986049979114566687656044650310550361531859170051474281635027995646741147738405760642843453515598717061350689587865698567083548418941611875877305015185684979532115332606157621709926003460697636668869270270153875066012559137404173774546491556692451723611251848812277071658849632272875844706721720993017769515152113859119353602595406746542269046483046271591635585188311903448321464617939894561916237331700317483077138686296179640864615876546373741574408234761561676099935360578210194463306505917585543799861947854091191718750034875982780609400225199887528034790846124101188761314851663859423626932132135517282634847126909284516127806450383475954497884378308110832570447641826156817856728388416064045832569187545825579086433153824199985439478757512565131203589985658847402622833019587369893921059717617437933749491726339787743724229034619170460057390675111355134316595445885665291521087842074358933697946587537805786383583001211118001713431802445722873307138116725783906930932257151816430719194312224190908496905441964532583174520006228438616287231530432073458593824079457611318702452105042917615304837819490055739317053559100817728182201873262597194344704731881046808932408143979520461320999550973539987003700496891615035486371372880670111372692865486639637072316246778756803857147403059126744655029892459548636321373407524048898609172433573565677817532975691143030930739325561020553535080834823577058703684814352063841647500985132746868688616777109632179594346575857047461856672916752406729771545641139824514460548366848835908023174687965955580424439972382071771511643207134646716623139391051649177628872371935775587771756602798689393071217109911225755220345747767890379641787862094780195890020259540817376696443571393174445718330747581266830788664371014782991997291889302495746641377863961312328819364184471098112581753240007548229841842690537525743397098683409575924093670144058137551210942717523160484737139231479481489417401393555719183267172362336054147379950509905649920805326815054257163794034489051160912477937173466475129023278474318391013227857564636931091074277423015177294000109761169837880341356159128573843255663155788228065251327691382714585292121057888160354850214550165413425887343491362955411572792702755611739495709107983962875097152445389830538528474737165227904370360845841671763562909726354016220232518290852018856934893912575443350967784098334778647876788686580254215984458472924604417050911569645530618307386002639962916089214963346303977925109474520685283069618037057664886734055360220554345281365149943983737557552274281338705740859726208553341169480269272442588338954940959231323215032769637271994657016654189495205241974429513688881662076072033066715810429143717050847118622739488080327969508143806481350776982342770731527078022991720141564028582183205647966174480959427422619045062919443171086223138035623211043395307586537718367848877342954644871905219280479921932614600212990312163593956669786006116539498471914297000267449545270878577954577159304266620257098998664346934997612519673188609159662958619875752221480380932712866557471739302731688328943854544786939566462155063067729546237668573258969972977895433534124183252637952868565451958875519782884529624430596374904177547032528679065992815095870142205995065627559103556619273151320524368903553506839081914235644715573163437508428336791288034199111255937671205983064231740697117514127758247929578665881692939916179141965235306416160630537504560266601323727457609666856737998147981625531185704695701769598599204771036528380360348487533358097967243163370099211223591213560406335804181067114220649542560962409417485513921419911428743810814069899162767067092551393152128613790871265938058080729914027270325655552023875934626549150780932156859263309070981278306065012770864166420514849520070656366921254724286016719712513448011137077442524746776571826768781184832874284244350543996608470525150422704970477459833556974791616410863085621511249750410045713230310369716909377887123147243538056650119331763974511374606497718648349293701607201505070674385893610976554741401947363350101093061515766611771850198460384414072508647251714459561821618767687856924052716091795048435787946485746557363512574872159662979844210029390942414611076076214208916684527347346954001217157651224210246255103270003688376647645311952953340829990310032313230853390602468963037550431335799617464957751516363580505401050118190419000230623582971574090438473903824746775869349496596981118612501414638528360283410050012685303702432031838694077292188938830430245974221581509165902750821149934207942803047181507201427577924323596892399100610735897805122385874458672451259034405166650178843823024819969919216675308509092612439044023010114322451541973092047939225884122575335214811342345313161095098545326774955226490358933481259325663303150056874345458772451745877696611930367026662172489874550998071955765745413825116498520643230714389700580736924410418638441396677548351286574305300596355062529394972139799549267556311074152985395194966340687311370789509452206136263019481733262778530377091292689331296664267930256933132313731414911588489245706463985495467228012768270043751088839147787666248459878333833513710403968413707377211860600964959176704208287961010779066272047049939312655809421652427606493860599056074241057791192224418929588964256479272055650159144494607975017941845857039308134938304289443899422856137829059807478076951582884428560177374086203621562589402944770680892496465844202874547630543088171820882134373358046513072186558455450463462097648207227873956763667400633188817896052838379097646448988929305143110881851995064175777172223746612845077074670731002947179835069297288999412392546347167953666334001756643775815231352749597112990296590559167128515884373841695980545896921895273525047588951743660516002473763403556072892809579543818706549422157103806987292117394234006769579851863368829978201529977521898283986602874103515233530959945982018176104989254739180177136940046411233319358533760163047268971089528903755859659724232771241137201187322760234505838189164661582289229876789859279509623389978648569583604862888701722619594208893275887814080909362599833578936987798099660741711992545355797893613736130404822462593113945145896981774815122509776138369612318332250745670259989919173698530829927749773488249666330989710828486397601260529751326893109218060558806174976348502992558135538027082642019136898735430048122397369085320483090192218706623480059326033147817567724496780220828077579290145926826264963922052115766117571213407024029575659495637737789900769163563348654773524786198382299139684986816214045191045226428708808499325833638598344820087319597160853143181649003424245659338618325874044390953850839114221254028295944072178364856774418963702449730160008069581366203956852841458015383392109283271315841324256026379655517512679072517006547709986196507876879125720645292056326455211589031785280670622407665289333896004330881160709354317328090968588742235952261244818889707869259172620541159556329619924034236393376317417095784049014236364825177276929116988251261499516706105401345799695664765624540442227813397638661350400984593411716623355026703698520120607947076637890451207030662257099773276696915626783070566941893525237669315609686260962853479488546537803029139529516209421355851920271443557525998016584641708923531422398548796496432164945044018244845593135768936401707562138406287439824369469145140254436459102221799138029053616531004676420888226736509925805556654357052554440386807552192033399315304910788261807031541026531303124117918218917246948963021487089299228879068498814812540210378586957996466607530521081357481105699569562411756416917208960430391908858328506284754925783390261472139360010406999621781458777564079800377627626581662848743376727941238418659292266748409213855950495730310450589998696361011655625312607714810532842004319995951097920353342523966900552102801265622156486747291599933075837078749437370729616375663610870353205663677076002024945043399568941380808206158524239872379909765719562439027276904604461437531417143460282957501708546768939576044982100252082506504694502429016678414456992658069954271457799601247474716926396325818352381647971751200352268312746807593425291318697651520755762672235653088912625987533864015014485464981321302824232238932078165085470248879713035340106911228343831599965681732368836220182847346247995747511534288399197910706207946403410925579966664402956286191754251940971601092101325783224632141184470881684244075823980279081090090366083141443311375191637745292648327848641258070372639615207821516748904790102905342194599781456616924681619388533722833412288295976975037284812634972537797750951142818060819359763554034677520094344825324307317901942611565589951632485843496759227788088804379327344060293443468384612506341874597361353419115635739636307593417578964532360365432744277332030621574389427731321940562999683145917245381850923470606451096150404123758354007819353760057977819575616909942935788868982126782004820411339042411951938261896992981913706144736822527477406841718867631319621755547587080885381412057809065236207484885654530128192007897717115697081120535394372974024824972108112590068269560034519418101148095101469715539268368659020268746565437860472396268783581038747110768935296512443285256372582801934627844367335126262074325539281886227263654739720003050014619172515498594059493084937783131633043315539541074855320762152493784819928407112444903506591859362907809757303260180179895993112315213300886023899751993844822970335478976578284998411154300227675284370125785963068549294121112526729979178793078677828300198189911795848867485609358138686639190136288631249587562717882215144561296818886480927386425193227329926738938555795771753672039781672982019880405468685026693695646237482541280764000693079099105751937646884975195038210704380262178790538087241256424515762265825160430195229469394811874324680243592125920767297329156378604401110312663374104154698090343840455478240962579093618047488914396864370460152506881154614628491742763368317746387233186715376643653374337506388784165790850253509517424092097213285057279798439080157315270682076583170032601523923733056191069417421769108397186987046264502715198198477322253899270833273592155347491715746920829149506956245339077077336008282629297841712431179800574582924265331029597903044954342433113112663008716199425471213046010703431908830929326908567179222740519252138639330206991386491868610283582975919228114289732202946777809211192654685718092231908189133796834515681748796199365116006329359347402174953305098589115433757722752554873731272229553027563136517188164714357761258576043234092287360913620318532440668335531113116585093935777665945421625095486125495041966905419490088829990101536254423833841015639700366457571910866440004490786146300152724795256883623779581184919743634706412626686645041321763363953436292724230295634249387119181383075914353911417348113229775641694028802060834048307860820979759074706678117093761376709031100194026480753845225862921908966459726577791005520662272284026527958381276402541154653079897062735057242808777210947831222205690714073895736910429438622212221916511782829943732628825157087268273290535755451494830551221444087461907554257656747415807664678921242226992896501466138913701417330621109359980343109318154776041051281333721333470808869821327424472236204462667504102960784372154551054322872405031233081057778712811374793483634787431789865951870173400190003486721154357844859919708426239691063878710972222977062951695321598262247609253727059260913973777354098660790503798729729008279547629371891144382372021635259122670016394016874475209414998013493666102101887010460947176826628837370915200019855446707222003503171994634936666470688412516865390243684716745181236181126975063164757248891100625444985945393816906830843678045079943518468230567978595459867415998032851021864256674273706590843649511863441646398152615745441558094251452087306811355570688708522508666784034983780283800383534861196687415142591969100189479878519909643276501932589308923235567453959798624301312072631567387078856971815102337799883243514034684033686271454246605796820408339599516238673355506865200735637321521622177303013915266212833586627702356668309297644029917658464962175316719215682787384457924839426672070744695261168856477750254943579102923139030219805860674434114580076213734005809308378286052158409546839531764050812280090097479353299901811673346471346948017066573408613335251987482858799463713056853752957917351111280813793484751956322098560708513166267570446221751320458560956396735941837386954913588921674313554976360794541570339024653891008674290546767712848626430042593940616491368827717386177207127245746746702618574391813466042962129566302354418788289721691908753226351569064624102565356238054858782231431014837855476365733071403837012693176406804811249101730829668465666186806201075508419920911247736750811340237167119876621772566254507773571498961915716277229428501670420742930207370333379307805731684626527167510299034672610461325022335454837763802468562802664139553925503962836871836355992523324694162099674722483489571665109836373423715498090410461886552947398323375562437939595501829736069969973535785479746709286658043901225308707108529116357413004575195987440080667272748735398527962569637488639763044620124094617724050391356434498444464684785154870454788447042995576260449445207883012498104444952621470345944361595042697677058314542497435308765089368735414990098250325274810797553712061678827898704473596441820377108560045529583921454392948860880125760068582226102037963960327910529987714204764204598843459390394557111087244293614112104523554664395988626459268905838097987222893849905294448872526087452118409434071874332499081491574576598832030024311032846673091538950935501316850393197728869195868621844058945420484089604307733359099709959275544131737369105503253611469777363744138365940394148459329821710257728407811070807155211720798755915960656454211177713931034686683639007180065448957143036481449290276302258256589018007513815082065945434404993605308538898261215228651524423473298657538637190786690762693810661488820247540177611448560676826771708272581231645295265881472038032174106065216820431942723553179177216640607554364298836241960831937237453788192019620730241280076570368862474362701177778089016754704279707958907873703867283845288912987782241178422015578120890050068344290375293301103466334403842503737539347072999977994230319507101780240310847098929038112437108392204303491435365771347978550998835213047334516001899742790822588569730179433829866504636291332990713109344252572049799668281923633357775634945696259257461394640346619179710049144758576864453507900029838127099344059117056236118785914770386542292973377880230606597061943445268236540154653030592635023033799445910588477574697223331642999371478236165246363626624450470642100185595976398430809776543941368917399575389946098863000738238470094087151745205426357914568893425220029095337418711088490086870821561451189312840864871619957027445224129519714220870214126348744745385404919546617103780486008108996269061355327781817745864441883570450322412022799175721647525707681757446311262124907432111530602181408839105050221971016251024252470835745095708718338362383375043271241264309945723082497473616537169078781479552544381385252116486159908825738164110715887785971470806237292308315100187260687200635846772445195593654789210961100783315240864095990350670188248350201865971989652703574625728100552341659665288930632258181083764211998691663761276486723729973786523152758427830338711804054324579215771499957138945136800255002362477234273436314035565609238560482843859085329454221037320507892581232374006779631750391025101421550532548194506782173561019367645935807859962196329470361242897278858865164013270469194878410226509638743430184853075325027905633317757498742429131638931687865164515662170422443974834745500969335781923437954518690234580146963098926540794247296417142176371926137861037957974080266655908268411420997746850879976472861446183087051132350370809030672374449803101300071525525746834879010649557525153753854047585612675969888932240108750383096864387286892671558438972595795210746860842222465150143463573438799020043457928347008277818170941225526639125495659079362599655817730373789402621572319630812143717214215053822262639660282982226991654321797974701451816275385548016603547784208151635181887620635616994868495873555932518936538267072643054850304299882742388392383950938968389037712953502990376078816285751312913737643125316221217769365644549650937178581500999215893365340880879534423530903992448580761940102858425294832691752662813636364374840394216885434170230583931947311566927173356612126810625865980566242393700981744723355475238374722892100445530120872378463731602080435292822076739761156384308763349838102635141878983409397914897729776623224743184070178426295984503304149284714489763335158292150263864275538653920217537358180673120751792006090038171239771335852956819405477153613558839099191938070985556764957825696690688634643820881244550378096866296968153706704769717404879149316990263945948553947766010157891483676085772314815780013546550400504181678904968115655963205785357814040490614469440327511892160758077895304242874068459542136936193527867310854268793699646228764126848134906812358643963222016496720011546240827348808664132662043712119589124845497588566083850657261066957612103771397018030849525846945632228797305197843373156347031148652633896980211828925046839027786344231793339466245528446379184861403725663908641886992292100101615884558934916882098011088599730048483561576673204363597737732532506885633112508556922746390207638577450281477361044272381452619244506144026536187875329695837971650593046299680291534178732123741056197003412678615570886380975192902296402942477152361578155309808792855736209277793122849180660832479898378269023024282644392067798003039712731602747190384639902677145799037959794078505159235287304792939405214450546971371016491501964601375995787193011730548618968799447879912803472072045797861736468178572667899369073164171853302848779077679814367601956112487394697844737662007975975031125485740442216583856838710531039560447967883631840389214642880803006792798765620951575091063144913797760036010874426120666651279892550973836102565465087682461497312449731168858775783983502702935549876569220952622526416100315296584985640671086806566277039932464119479949880485019059199439893755848290791965278475053320386071108621176453690186216120344728294491377992134750326401102060453748944013977146754474917334987235621180845966019065577995543156616221027261091427323248485515652468758412299544731836400772389143492441292575983157774867309893024449793156800812765781482384485291815371683015492989095909585730235150227708474395981183318210582293209603136627023216591840852829204766444663285857955036602915607058762089549714368501449176725280280486703969900278194494932605514657326124754988660107199703218719431626374931064584355117435855021080797601165604953702846140030925868350337489327571882833473696133189636989934919984962007401517544584900653291289730933241007742413559315134813860224161286932221562885838459623286473756509595524700784909605097048940265026571960596436336730140611184417344342268343206110799952505437492172636608834934737187715764585490708343140163130546531426145200327561899599842555608468144822284676537584970504307432412905826295994139423012416650722651445274746765517727699129910222027003747472666776563500811137819770192239161134494332314136007099133928130825486822814892567189009140898186995904606655249897976121914473258994658220767225785084061650327640999714571784836945438492016979519355572337056616165597536913946335475952528106060019243490336769999538982005936826619075428332901298984577610966966391388717823127314208163876684333989434397339962964691862839520522093875986270433357662372416871096539632321180248695426593414437272553333169235983511943980889207292755668780412870285256549077980089550978640448523975978131942471431496598711977416503815505024496778229989307151097007458321306047659786968284840988538237197211816255948144705386725373745703782336843312987350843683676516614960903801618227956736777790766046695678913997256428234810415926859887472146767575550349414554697888114742970572892828974453296801295531847285057062517161246664023026010649211605051140394548070248591491140979137352884369389803708712557409301152471564447704141326491749248069971604762340222629955945979293085700414588961964553016507012309278548535199835754470429020963559276202400212215611083839504658122127367633390985044219563202418449794835986752859430592959064851690791876183906063214671877086364292337995920099236847760845900256543541404788351122398313628538525216146018361412248041058336739125771076309574224531130390855115333684878070949074033406290072399181988044544716624718340446130002985788919715400593500207193931953988237582793337538054855500747651958604954607723702418097847206886431120527760537114190622261254336382822304972968080104040730633157249897844215805300318625042252049969348003085033364823273910549316162503287549905712467043144944491552739040323188703609397855642742903240381471731802659296005998045423461627336278971066186932682062985235221200569364517173415229956244388876380296999008689478952534041703674523244626694600815338775579235351016005466153899457722988735768209230927640919885784507436628761458791853798684027109932339714225794069074060693169647168654723954152319021431772491266580854556782053971570716088232575846602764337166723677567966741021645180562742095345562480279109005940781133341490526134063976142536522102785698903123155936894613166877049507290518922275270193062616527085148659248852745158690195728948015424345253882882058228630177057308705421594375409801049384098774922143491015357498111460442810069949510058015046090483386939741487104974328648576338976897884873283115673842705633367587009168307808088270075676544992318648044202075146549391098180935614068666890833711390112831078649468797604202256095849417920535941084568436183698079472264200676571751598484792630164464479719415019981408998349134674752187417577688187182805497044307049332810664705730012969019374057908358663789679116903661310451728840646165545700159413273976203381848804158782647293438715061117320449930309237631277417633141885107866220144005313342377230722719878464625481244093073126334264915261368512885997584421674377016005164969639951447778836164550722260411438180856057520676782386655033569929322581439372379851174033343879681303334317115701648507435214211391995546023032989918835482167592447786746469848082598093452902347861889143063671706557177821362176540363890023781480939613605579321609871002632476422376282901055507268162244711132644553982080371648509628192871838246870945187114092296599873253703184779307785773899662893842662646701163713311935748929774496402652485299218910000446709128214048793626807715728482872516877169640021713663929980122498779281249660032460800517493837211756049559956634267731996245959900772213695989141201991660910650269116158707479180998776163050101364061297357595851837645464811804075001570190524146300889323823840547624873392277066675536384365138783723466767429223258287061994609701941446743862209256251968530080451571786175787506687797324263961087158197198072702396929399607840113005109875928592990703438692551136181896926261545540028245292167216044707469867754070249272680298089330135753453538478160136439991198013252242284707575881167896923536806901607539154330377518723407173043248460904931385006870783150856113907213188914567843364795121087317063819986853821064434148198827872607533204031288780371555961018997248416604233459201036759418739551803595050717124497110080252440676648035397740892083934911726135261741620168461488998270025641867904333619149449990837994471954885616663590502679199016932952897232906989323202622023392324360297637254164680611462911027323321651182547366685963018977542041149508227272788969599517998283161075111247310829196136563915550074834314072931686634030599052417391998101056432924286736600910791603709243504849663349063696937514149611888621078380735923609106165759511801240344095026638443786784954826635887111250305788792498880435551874084012658794053117253763907149732452780180540255343104179147655275629516472728329507969465071666606902804810405813716444122900196955219550617461496232128879111497738335799276670347226596815859939243452387403949056212800087971666070953851675504883098834252053690237302364215683965136248582268973102547083943272106121794285826450707892693212556973750267428031478661564133825815130719973546736290630994445755797602576394709711028029366334367577974465984204234405499759869706486442581246143280710939785252755879460033246642190685084691338964580862093934837836248909079012934514441704026887824434534434374675306232057427822972335196142510228449758118583055904535677714663130114994731285238877237837728995615060131027141660002130898826645510519237319398233225597425832338583849326065379354694889583296102393198462066091831791287285042427686527169798280638851512190966488613170896125992735482194010504763446606063449778326677103345169347946533705901722957138035808201729045693951982152237519267550163326284333658121120587611613924408792479660468720644710355480880000286666287192863759385514988634724075886692171936245596955891543237807498118039833156666515536158735623521224166783541468119832013338356522761806633413414640319840943082048175297514893338229297609947424135994468109889973915665583656111894781760632547344216716861721992191455988543893853122296928518404909773041956348260735988124015532879400254834126951465053863828596320425338879303988696425973683662086873252034482394215866265571268918893211911362190449218564893158222304847033248788853995861695490331257739079301945604531739400005270348462114819687605459240280581548073343792985649856111185794617669881680170057447730169919280938593936011292778901375230204597972200722422328507127643056294728069403195723372083660462695885283100128324031347538226519687476495687327836350002472611106461576949553233361765606315873000030026193953119599358453447532278318181367264132379007125953413655256855560347903558413122374075038804224249973923173420712656210356471418632359371529722190929249209920466933875556753702157359081942614080384128269573317965039632466607610724573511669316242482125570638448390804296598336499945287889379520630461711802751629130493138121693564041823365282346621512357426030674761289677806363094734962755320244667174670234330203496577264005063514131199818910615010450246423377872475205968259292629602217000053150037621909600499717719824876488030415730927644137768410667467051441914478702202936445216667572351536581359280350083022541356261612240175272551651918134956861006563686406580262608729375696232995598975054528313142883027943566662305692968516704789684866599724051975518625883414198085167952906527667404779579092045362352876625123271474023048334213676824235973863247807237022090313948068008888533944985601320942671122399411986282429736006133057539789397726061964803907583440941652432922629509620737201674468772524815781893954854497190810453021221726868704337023633976368468170765758598226066077943450451822753238487475842167155890103620929542030694631622521872425500768645269460142670095881862180497810155933758650605165851469801959414452425415240820119483130350889828844950884340184417474866059591201130366213690377856882740489898036093357073113431666399212250113309467892891616469680734520619757236996339130652151734578629154452325004088723273992794674880697147869694344491614545386483699304349488342546133515849474752888670752191227674709011218943614658728541902109087301487529481311493945077385244205942615479357245043610008033999938105143332137365545926796732095013224979623734305879977902921833574855913159032902200645286335088208713318332148578682645199951673783054449763225877976559810897777172035819668968664937139393225062831051216186185915101073514104898799338402639083784134440551661908825464872476747204824315364417088987333633562522493107512217999262162277104014598906900288433492914777602481687815581426017888508926558542086645618896689018789359125989322583985293953403629073047841329093504631859173208822394053464825633417875735324878074734634338620150279673546699167528879746620813848210000771158558931143140013313793057417784060195579976390234072930148512927867680707045312485886508947720747385582630055346543131517772934106031522926986829104703780114042243251179873666931842504172314684821030137442011007370213742912038519416316379403734213224346308364434966290588603992491903424962730870500846838434183544630848450614585980833575140268684506491384691425304908774764399327636831423717215383986102954800352276994941777455438587803923889101840381800685550877397351513592844293055077610033929503930267563724796360202826347994894948215620831436578093681267569717701950878405084679335311467766289276448552578118004292268599475066543841638227250849948277461722210487535791775459002800713201884450844823199467316059440062811092781784916867035104743554344563042705954404437990661398639959280623300743977944329584491513366619868505164354823837877379571527334705857410791807564157091918800926025874093765796752905354698591213181607645739253460959389536218214954753953787229936331036770712354555707685163677062107167720641981525801998211682666596192861566908200672841848174028559582458791923825740091440366560980763100990324012789594283659390570960702020573897831515664503264706705422503963717805250891250042147692337512799836484232616881027496231225207648602432041080640041232998827910335874659715843328133814860789998171770794441085796409421313263506013660101091715517021818583641150608612079437722036745798847682566481750281780605663582851237199314163504222957006880982869415750635329542206918045679683664033971819632382810157563860332344481124939681812110905884165380783276499369004723904428578749920449804645157497752944782782885631652732709086635280495745251254067642779029338777134070458964845199329589722440197668607677046496499405886672867463130325962613736203360814429726143611132442176181358431455377994047715703173375562662959414731049451577459007704008016706893232475982518214241814304406038002524567876660281954518984530613756761563985112872521698333086603754017711687457677100918273396344302103938888049635089444122463555890338476129990338874119332140654217383037217237580352323681443325846543681208934434386454529934709193488042594636827428632791048695601883561856833262770525464581725268450535455300438666702364147836596116436092043947094056755319488148068167132573197752816765762630943429335564545645091706056451495610756399915621947639122931305193811069581840677093541711299203175703981824797498395609596899880767840528945866639232179232938335154300065626609447536062442349840341973262385771319204046397737910370931052061985467878497937098604050152523564359767207410595942983989883118418964336979766499396216388131991091583264243567486081117679104802557347060541712355122848398199323306494707658805360936092471364702023975477919317976522171269228187615627640556548452023938058672687725694420014160890229796980200200513567427010449980968192860218326199240164475595749353157949152011714683934100681036925787403952957544635535567559382629852399932267373734319418481895748154751259252231980665456873690714037584331659480802947931802651383878078803597551755343474008764272143881318021905685950064136326796724805316709623552781402724993507596681327855645434528863489542464784292926752907260613179022894041936821927524810203082038681567785717286289190224287279722335848491670972543783369744726321467281847819981192025381561286045743759068760017825514130769700323309625684075512129252673186387629819539995081568308090327058815179180831341684632072872216436801046771150150112538404097132188230731185293408682382031003726401705117618027151648425339328385214980884015591426795254645657249950824650644873959811338036634035959159161857759602480185606961625848218693746995344531495477060175016684647831660658902470097109345347210247087015816435965903007778306689750847923792851939512086480852637158544042639247625720621454468126812979594306756799566944769608526029017919687108846724740231429582548012225562358265852541451952431441475450689901110113359497538383435970001372775247276581161776907219755935923077942355773376514726853422455909836651151400673320707683594603448598443296648924323762017933225559616206172236544049248311358301226164562678397266474723550326852986166097286515031496427296216600185977876787595694839382326126502594667741448279852530199831295323080231736190056744702329939526283893035120139987734644559514056407108014736590170073568257293464636076084049514721707093379361976798140179813422552266009688061398293917931312836048393342787280433610725612254548015594027632717650665777730931189869107554692653559082451396905807218780927976668113586642967642789515737845882824400328643655314332130883258378764249083748333855011640735841554117829663429850306257820696470672178779311405545307729490384720700638098210617838792239975329996575813271241938076895246946907053394347638340379046845408981783354360320452817503074155213487622216489982435249791489264538754395890851468915496874378186455783678641756942271558931409287406682482190811547277868255299471987380806183708088799884359550768004416055807393490500953894500466886281527085564288678627247200439281535849127892019968282855793441763782160104234319511914566643777330710294812616291999458619016757354356785161663123888542426492267496401464223512315176049827698960873170848520727378527781564738813137873459218634182098748200378030321004135234689644089258478887927563722356656158871642126864736560066533614347365094637483900572705393738160458529863243759687523247213709689696014532790444620022103336811555439461077846384066515019925325065232449418019380049317634376773163329452011317943746209355234825827971907261752234683540335581371403901978816776868641124781876374170851949069594515246704156599160555933691225313086326555814804375151156368419035620569734216351827945596812377516533882047349408267935615376563977377825505451501660494244511990125610518029216661181491570327880109571945854196945588730085705066648206565415003647365000126292951935816241394907437492241060554637479568609901348526659253920183099899697997166487812644783550705677676652733150365116430968913102738599247521089355564616826825758385620058031579094144584374366026622603929293477675082140857020277686681381619098093139149892121580989920249907612189575879867063591212396164620841309720664923461062976218391148242295944081273246958430376211859115651455161774327986023780971337131574998128829090530345197930675254034951953122215718950853102944378110038576391481077524469478195438285594415382422282569477875703375545809349085467607797789384316211816095143738911929129528713688998064487528172306377490171398656735311364168339770838557054253506166381367734646640198571476410907271626671643821344108098435740679592768202290676559627308598371227991653068858754113994639250838483274019748431625782189008353332528279657292282548999913299600596078622218996738532813880366083725192463855968320421089031205523922772676931705539065171589223893316876233350628852768290985401664087255557621959272975133118201871978713599571874756823787213430748182579167827828753913105465727279554033039824916615214823317987253090166217401848512355704134116894779521517864507894216771684691969281818471988660903331400888624947413026001794954884270809401054504276972665172849814138091512078238890647228033814724982467988093399903843653414565424382533927484197161242530574981742360824350014426590283330372902960779821471033488304108220756110796440329074827236623017166869109275915703908155322917683523658582684126128494884223457184273925555419340382468837391125456948841571351551482811811095577671674544389690712284252622391325787351005127027448893021656772591833492548643865018963198595273353517538332593967332526370505409182640379295042418791609245886543939969589470219346691023276258512221442968464897492592784401803227845430907551267658495537532570260442101550675937638580442077950091363610268457131507746819250401259913778101306842919880802646493371985168895389734294794171191102123314753490191582851490160626851853793395377605170963420949631619792195444894627920985383100607947280946546965972646240359217000090292283186072775273207161214983742662050165569850350542797207852589448092362081857306726014499133998895428735285412452792524603153895033658214088796708774423919926102687556679642474566902183479065598532828926180817733829539559556686919425048730711238486645203212558711062926413759891139996067951791382847721277389881942958329833890374536920708778815989173509465762762235685233061119175613194728428180732466131936247216927082785368392490478078892522811748605994437922189586731479494149042907266078103380315709056862357552680971667145114807654139790918310823726437624034522454969500062055837316792281581860075792801537532478289064856561107446403453082112915838567676392112449816201852002515622396744647743913968564319863192325230909124523299180702211456588272524109128918189445585116077887911928154697907511280296104144668411600324734932257764893887883527182325214097581885198686413284277663506406224495284324861299327134912120567255198306194235860762141331833802228460466454122993722195745465836542914904877201281583583595473508514655509980557467370535057537494937643522906569643500386549862530813076699863548222428617774287090207086853394960550741548582458504428307984738692597250599844258316189212880298580173339745055058941369997663404812407777098377274828010885876231281756471165665934796070535295795027650093240417450019779130263272266129053782387738730090088793985747411785036915654044217041253955030048557577611555676409919361711871312312766032553182594424893014252604460750359980698008868764992640859081561199489972883508586057200685557560294311609830422378866294361474029631770760639988379242534669057013732688884602496642073073561570101100140562488880708288736971626905331083558849314236990693760310208235231483939828611834575977055762931638920536892781578773480078608021696884874358104004226113721399553496596622015137264214032538636317477392343931659267553436642013483785237423321530231681812992401483398390894257405346591581505113782442793622165046684950551802712119871471990995144991761523059332732143320507480334146910535424822367939415922942797711996217503875071904749271999881732636012391516978445652546900476286187081375199661715672858581278754333096897830627967822353411472881826236870769929121321230947449253328714786706349317811350773863929465512450198382252708189823777029922543800326316424345506100086424308386844834806395275186718180410383475659965283676689147354891994977670164659424695406185763637856594642526918997276480251175863782585370078035397834794051749085186726774606182160807557523887971007475413385514139539166248947365655939072099625065930960253880622018188545602272883119803508214118474772428221225285246193154820352431370786361729882823778959171768920243163526762692761227105876592379322366209789208597003731704737843808417250694133941522925908298497694502573326096106785386598636808296658154788613771321985304477542873549657684221064075926561374536234008687926392124503789361970146186117324340457328482966455366413916077323845191669926528929336632642514290233577157536964170359277974146101764799802106557846781399684498051279563216259317693554272300635034155830190163569896857563884507708571412095137966728089836151179081771067805133491417125102549005293053276400704038111903459188723273699368802345968228707579550731813827042919785386539790092158601216943044917073626770234506178646950019623675499661481233636663898877636217096315314110630899502080131317842687076724429322984148475135694477817610045509871251817925408795823457176450662251499247586243409992792108899585809747082305478466626289798869625532095929514180895155002529207475007040950370405239440775289341402494061842247906143153069873204443879727527755493643289609968043947933938168174982694301102491279966871959963482046789313536877113130059911371512839459229770341517187328132338388334275177859528191270686754529175886327272016133439143505385328799898221010704657427020572311045943345028008553375450786689327905174968793478282670578148270358940018301366122116744679937579659967554770700382771086583265921800170229348364901672627880706659985955522729654165983894075456573979833445219823322860239009382450220256939636152483535915329540067153923333412629537419597630451048201686659039202851154553966886729223244721842942551782072395326537284587147553673969540092232260481795713330676061467359915076202829982221764465516237243220796438080807635468976092143509441445708702108692444661908585987574068972565596392558515039829427298513703705262391256704474276899517626874383966625474453564011167584340209586235507703696684145874704582518824289747253247809851394395881527188967437229256901526316849569934522217262859314785285100434249740717855625700889616485605820745446554303677636633230965126010725842462628900147893502078988403258018543651939831912109287405134305100767280748465390054821776095354351194720784178694940999266915510518808196458677800767774121604633403975841854128425491063117825540824296383787344196620525505585208634881448646522696940438969526358299461301712604571033984506903164914799699269500516149993557979745455814303479063282655474568713745210929490948212477817515575228185812575728551452193158550444656717087430113789854525692080430171133937551620312512986666991403961424901225665743131811486983927491566603704151213229391301027482806116298557653768247871218481670153979678708866892968903909074478004910117002853272385926635624776704105033253217015124043980136602178569841752767998558617436702837145781822451528634173369843624945885441968791956615522328320483381149546049661689486686309404440474642798780652131041311794543158157236223447082328811189107002471793096317344253656366515292808105506145375243779755737913351777528365418672921054732437963976966708450874297946810040337482673764268195161141162216813495876873936356609483527978870508269020312712034232621001416388438997353159474078695698904453428469338756759855420680566833890379907631551544907688110004098462665062253960326758603562018045943790782000298627276286236731453523840239473132483165215709596699769209252221890020665960920777573999266583431859230144572042999665226669953823402712033477889016068350296304205775852068017508624384429227482808135750505735529917404242741143157510280725621944218910236472167583270808358271359481021577391123161839824199613511905899283618165053456700532454322296287126688462455093721385289281136230396324267261719387567889971547221120886409428077780332318173715313873332913812064635579130702915982993305140072690837117409567324343071438339870273938252288567195293186891532719015304747082506901335595772974501751761950832956039945584684109563047097391343210939914888579302696791285413763848468606030463422390156406227076312768995827117283055783532436419372357626586517167603375580718589930893147001161671468472386148459166434618341827976707148086023191379963959635581834164846757241634553621630564170853860259550891560646975619838478666855473658512512147250109051143636246533688031426030430144335343383468860649922291237017429610439963934753236098042143190459547423757852962170950175816068243495189999552532738286262087468729458473353190394182269238496908516103631535945216859501606268246834085488975848212551603169381591471190374709593681221897312976934917297482789982356255328312888517781386848973778133351795269100924122093463752252262647316337771977016657447463647185185789264981804800772432636045211527644208372664732782460795402170619187687318339767632471442727066299874844751076605349753421819463211043997837761005594361883685334970530220295892254818531467672993189578021353758689770032555092478115692849525924814270838873336558910316056723185502113054627235125169965375650508586504869051191648824847180473066079979332281450810158684083044413736031329337322999450787323765411356993592590597821206535110160628814175862337251216032558062881675973750142898404661377125788409075744641411072895449620315828633665632458991677243030972738799426940764101265046176640356555458458095094228516384174113459939991690777608687896816634036709291429732083256282194887134906991539141989230152726691845638749816612420855249135144749610891957960721864393454789179411688571421264092130611249480705672785475021947479812524643760315698292425074553901168133529643430984323925035150743516488240400999226745630872532364284445962643432555252453594699430562463433861690769612681831412560329418660577968811503567894151206436730071749421513664161264021511436510897068946565568340983980267722351284632312861814845607755339207016224837210239474290222461616408504177687376041168511834148438454575993614324094778795531553481037196924880008517102799350180734652067688355767625646784338012044087544858586967298873083065805633525647002031677005399357879215958392192367257133855148562856301793958185277494302031004612226476535109084110448877004651262833677708359584121944680000135187885685518001990823087289038935402985434801025158498104889429561195475490977116375612072093769262186537933988144905486152526303368107777842928420657151658722975341286174418207833513457828493828603207114466300977503226278862584969222208659557272777009186427629514622436797955641379945849480070929559497382368718499238270250080849099564130992654677065422278572882575301176324322131733534324498362790923073454077411932319180338207660733842120205391535331139546043229438951452555869059455299372490665139749346050168589500588337688049581434568488172711149285883026246822307626979214684549163779881044532409625530914007788346357455539453782561333992783519173799492701215744874599626903194597567762012359032673378159291744960500565039402719256430524752168969092182103973064275805124191677758130979218887164494345808212137514363305272383963079378225885159045122400549438784687902078078035752476503710834169222594155726772502999960499038549986141930511728723913612069512814386573738596463793197803231094445052621788366996226961006791634130396032871632377738808565911478920069937032796717187040026324777183326013464320577037974385749272503252727631721516972259083675642767116111913241664664390738754985538883361572686471034764020636967770407208977049756925362455966029864687201845743913301791937937071584456175692580702009546135443204213821782161833971940016783323363935798140779225012720787339996421630870762866889754484501784375309505814707992980519571060711377367776351317258957363888235931954831666403521766335006843178765850055248840422379679317686992443797248532822701848463903805548264913824601061511542862743773553754450846696675547174845141796908278766516285041430909497734441045568977773566481142193966264669047823584340837486527599298925577438971132190627513939002989285755918593182817613458676017241252897888955711313896366248910920161142794999576945815318746686320025929543141618042327229827001003786075320088597578288749388220190926168972944756752889172648011727841452095270392287244279030091654856327201975902145106163087976854192344360947528989087980113074123210218479662999801917902236818710221506421304551377336992991506430135517829751014188531859475840489810782610940613008779963261202607893703736271896446701538060255598385039997794298587671289644789480836562328406572411493091631668743259645148036677861030254264245260026785333590256226421787341638066545102491326950892292753550369159752343397543031483958590266347683748696492898196859177136677773782223893684118276866627430919554454508937871506753960697291360393356510467933504354731593004553210278472783717660631099583880308820182887317419005752822058570725617643058143299658733595017769970313005106670944587947713126422982966445538697997072150190819053870827928788809794559178747164368252557959929298160698032020730883983750107741710125192103620283527607055787787257480484331189556784299598217547498771735468495730615829314601754700923686701933664119892648576012608273153681737780629401639622423462339224264743150230459261092675276138102416010022368207472200797119605515950483383588162607237466024590483035589162649463017512305357428288535410618401790911132419921745254809003172700934310567322944022584904383808291623730426482368665540809263612851030988460534634198715708640509524466897678819419352138719295669808444103448178621825876213249954829154701678720644935037813063077955386152907793607283672255260879197738179138541098366043423450598217578559747077185001351813450578797383504724850341432051207284087864905935457606146048474549616456756483266943890937755715007814593249579472045279211925775594974174452497738876822868574203291903172413108426753287707514195182094776645901056557218698096179474176868532387641696378047286958006703604251732460575139491601088931142313278522018211862659135137090452315979962489723362945621200520034291778701820951576306195258708197372625871201353233254822370518256705235788522196011575832746486897796225275062775409725712015595188932682126779738072582866027681684566004549558519356340559303286602236871723153416655194802956927473692449548664030376122148487325613613423852386050001575698933566680517361922049652347016752640787138922744609712550406413355002721690625787865617025140059959437484559382648151481754415972180662561515725618839363244440634965814472408142384428894481318710950383785867169133328461340351889592086972486363229416253343220438936225564880046048022271397691026117268462861906671527371518261968346672245202687470060928549323664978051516572814254953426876415806474386063536535432765284376799554028327516839652220141447120998724008674822076349625222004166911462915704754137800671817177687279401127116222725657781116568982509461412264467371464087218986468365080116763051551354636586081505589320043106235239890882345367802429270773957629012091884841702333584258420551618886921612149876409361678821882425925957985105286316810142645861028098134409440868071958346820550193741541019253137129962240803199961783441904129247510282733258569160398153869932181541635824968607227269880225660112948057683731247057752137868237050142490429838234295675930249545493660689276830004261451470334714857714886406371644984249404645251782389092290979388148681641625278845437656843148519421919212996921921037317895174187578091533816565073749951500656494159547915823959562535431986863423076149638162079279865675864514124638025460308947836977682684641583195827621823633067980542111590467559885706912999092849560662724168385985520533628176607608068921837319748783321049444201816665670422392531053955289719634633651361939050315984134433916906773474341290960362778116815072314652216307664200257277121252317798202556430739755057623014936673766046400975833875357756433845154451167548243586428379797939451747032184481446306203539513170738682410535496465598281808455945482812137484647530175903413841770155967447117488985003851558365642999177106837817994831969613902070102483154747103498393392153127561537710733845792927226759083777315012423321618014806248107904336749928822588348984769075771123169564100207650791668436102603648938789858075339897232791404523397435433062990539933982057439162021539062698982894182674370897940333662905333590911532682662749519948282840870610219038500593727489546786394315491999203048841373044968407166374297472681586832553856639216276052555144822881069776674729126377136625782672988494142593164697563538823631699805544769529127565647928132529087261971253946278413852726965961040157671343299932481626354796564496273455932039208692505109237902773910981614501612511040094899189146764721654033716965302012366708714805709422865377273404677824481386527585276152598370688344848726343512090905492350323327499641618820321300205723325595095170093020896894645460176580445090134991436019684469180321338168953455395631499725046837350042918463796085066767116699634116035423142359631309890399281839209201662373474582664677844978722357164600750717052377415525269430920130978786892021189175407401556289306801100962578554760042343172079005291236892964205779347020602554880840095437083944546087824246518485423621121477338495467277816110214840349959131036888714264287859746749129612648088206411802974962589795372776233275627422654042057205006153498994912287442379160091870596678671606622438335423386812040575795464848127315071872400186031564532073399352638240333636502596673077099345262703880016762240831895787578638548686658780532197718670468695937596140021328842945333168505264255530855646200114791955652790188135680984142337340411238652931322050914403385252873310457217282725131217296853504444471491585717572049624044263900478633660533975360109726195186248680401241839754738326448676435732879947698204577807182150550018983634503761463968484812793609347717283903302158471408870304876734137778763233818154908752061540664367549310078309501346021920721423767107580431280112286185158273653397288451579072113407145886419521290826030942499203513791795797360260805466985275929206486412570132884367126940491772039545237099545213155376903733315607107815788511098846540432239114458757237435906572171068129784722644602955452173809647544398930626639064443459462983026058810869100344400100614740647824621812769535910923169909015097851882206927766143570199060883995677407787110231759153397950276191073183348412403808716067134806587155856008785494955072574813976866613239842898557367911716458429140815908025544695990333035414504992366491930300879984062890542001904292947388196241894461341967346119376993530121643269460425293055645279534254811053900564084247371305333007277004767578960627778031348160468167289909855947508675702504176715307067176404775128905025644355913358421812058387661860658269724155569928727311444991898000214139443310255593659884995232318585332546279070724615276655838875746844994807254427040950038184706225912573785788128609620588116087800061798400317886430287319436193260791775295222547885928028272075756099272219514389104028222845633112915990220543982229152572286488630964274151401700970091213474012241005244581083669262402977118145763334357164192070505896280775125743314006378089907757118518132964137526467197759512238214843617518935532181230937611244433483922298386332984935657471705684930321052209983389252999985369984991925273730320302047592605744996850301247715773131964172984929135644872415551349404557786669783325011001773950077731556334367505205234578164440016736624016891733311399515880035754311085668158605923325350952785190282863457317565890688842643759444573417768211966170245230472992659024693740292591982038771431390402769210800984750182856874971122090202655295532273437580793978967570996037675351165032297966119630790717534600560156531661795278961976156733180584787492600274526780649840380145592491858143788897316266072047341977495660017424289489862992410475132306949708063970524487576518307185351523457693690647149576507095279966461936294211536055131513116229407577489924050825122968875663923491648031339916161355537835588056798971880104698294920357038570891945009423901148532783277791503132552402653991802678399709370630859562224668177471118308306437554676403805684478072327246822203301715333781477901278712267293760982378368307326827604104093010790705440840358484358104821799865949325439441434402862467748434605851463524510239629283956750520552766445564308528834503994924573979849854862169837070580204607464739901164948352144043209741518506996505949061455838225283195399327226309501806052191447364695364997632120247881231382590767409959938513372264017039960839234966919847915176557266099863873420619824431688087851795746978968376183872916687820123402944884177598507452375578719473163229933837377228260233310543030141638619672003230570192756718795161361462575840516922371582078524085143632951263893680910054739174562787771042504680499791066619012438202195879966927057279989306238119647863482515535502249557299931460415077094454260976392184849595619900982998842806161103745884327725013783355735815039813976682956346426685552254273061537445558276929751129030191837571834356465359520479558184466189787366684941389960588397373259231087400310813946003593009096161826580579776902298783251713194915540768105712891304937092422707167154280927644641505899617143249745614012495202644231315031972944263657478645105300586533697688080670599863955310722410544364649444832459987446699754397922045360906543472965203770979942312668221390781014554442314818217436008982644156665575981791277906751973084706065445202695042892242353364266068886692344987531146455417388546252239431950656782274134496859537980231751246526765222126905094028303960501822684818826949801078946107227591699477481563307135143364733850464111930179734195029535120519682229056371999668126749365014165028262784339385586794277664415272039162797654955338581823631572264529393850989835443058028041950818782037583545465273535741334054929589371731083864720302053701162446396700005859871029847147405769159595578557404857268436902428260304840047187824468271234713248357238477564597850895672379310591916121223921482796737160802749943480581976613463788067083398872842345503687334670584533297276556466462650301183285497238599985501558472649032605923151000482633632106709474390580466337248486558429743851183585613894428840875909489461387436299321477373168091779593003547833059304559562979081615165481071226603548131290582175850529129519152914774527928270746132132360587237476504275418913540672715143377538065197618083774129660956184427167311203138780897044758616148833488397120784692558081923017896921458736380818666243274558354490393020438235139887597936927650800362768491250224103905769366794627513360095818305161384995940295042956429064538026510820768859858082684404978649732662996259757728724674988497951714045361680739176645396095422773172771300743961707847595749764347082532531402615881909591507390189319117415716974287615926071263981692583756944488994502847655189320900455584565408717177376184683800987761525000047425240801432827073364573568687280649478402236379506669145697660854547138876771159000304569215410484212974225170812461341725150840546564214029649006648863207611289006650021200921526444962312922384514543814385230344601491645075555064591432591041980308403923814084219374596177648916647866287486459145770279120741614537885824509963560302742391483276870384791500733721678759567557545921239633080297920230240422437484552959080985123149973388152254656091472565821519320310474405375232567326510455008251510043372050900578856426570712368649993886585126364957382153382021131331581999932909408524157190367852996550681003359019882893035438675047010863585536096826357548017623784508377667808921153922092422114833433839998681365874651982028661339369449080922279364396271250413505748585214338600427831547827356314445007849434065499989083877240959751469968317786124344678449849777951727030141440537226322292290274621185581358874204315261765875741260593367799584164617485449009198109973643910117957753596931249549262597518983463362924639825044676808380361789955579425254698756205690349592069314517080119604836039336852732504702000424504017243292849453870050286640910171267833199818269913484884652849044193451723698533452162545075616292722166631801067829732106913778277300443607720121000114443981907266478775113448186932999125311663184854134865162930989897604417350801062412776996485287270073811602544435200419474233850865444853167305916628834081559144899765231108344905922903902004747798556899266396470935046661070217845266357771325883386285892263502622782116896000619107727107713943368220741041729522139683601754968126903641442963849842854474929541750187865011776037657070256067407219996878572187369597806920412890321084250002663882949959004393830992230239304352131868758648582808520787664394489178947317028473044166630170035070960079659331818140063354594527021575740867346339266533109284089356316263458355156837455749687177339116072578511609230088759762763332817674418323353973380246782696495839562069321232971817218324678139903717653182455834881725520699434451825763450965523429695521009370145563234683878000508352078882131422023782022623985777089494351147992371105108717028034260668455485128550276563864857505707635818509124046089185839441099147938909823913853770298975877683352049263174911636706085281399054536204451316903387426208202452450606998556642290616946827827386650069944651007458431868574204247101096938304484170915144025185142037366120137440426505741110635447876644007725338723927884945751461276813700887480193146164125748843584998269389560321485356725935004402544965790269456573542445845913476947784709284596382980662922080034505149465013303348775080036174812331895102545485454386823512042461211649983040065088014313503808462760951879072902433224457833528375101727495045812830627416376045660143068650893045323916328453300606001557442572182905130318961162937555502108831815990552678824376626534598338626914685002405191132940747494226985274249184278346413665542792719201871431846586471651752018567977339676106024897852259217720104763949836670613302849223498819424062503651941707492885748911040077012613628942566760530119581561863287766320881502978010468175564333364595657135051857015999931528909520430018447313065878669540973428220920691422944942316505135993940794007722427720425634310689781358829461923021768644611122344860202241526988957984900909122302579767938490020064148118453073297115597787032384953516488904527972375740298125751178662428051275708099721502767712981721692796009995305215353471054456720699758218953463743040934106685440014878838488759688250336768787805866968686117598809878264633460816334236040618355058781853026340296076848807835733410729492068467716310121040093163245470369246233827319122757922310677739235717257710068897531872696532960965992140337459417023136319346849024970209037840531847452144269662543637514412605801480807317830616374653381307388707796123075234592722576265941124610835676003027017689127804604595087818485881462523177626033130761990416979903148017113537677800160231891764382042581156930923885249177698576647503329134072883688112367698671459355000226908878403915646226234089654872834397298371896304417023774473232426100962502139491427843014342030468120571214094313638939500646919431162799092965952921173959173241741804898195999696384971169780066632883146746709276917098637554595519172731815561778812075347178866148787057482959878270733161956713409958488047116274267897061379807829135516879746306806143769685715737725376595204026888114655659610969020235378804346715201923346546008351717044152775991304032439131855012583072273661806660225608370455103060944242712359452884900332463210445161220242687721692855381152548268508502600309263112461460605972538574926639705588885663356616450657890102091299439673165749809619339960935820969974227234097913122621260209659405768405835261281485080597104628845956097336031451229285394063857993211993559012585285025758798562294621012981041861969845183594880785085238138231990422288786367745460972173445072048366774770699117381919179112722098115617615598273857916321710692115623538345778767227639461436792699615730467172673036059053515437815548850904118864646229952424699490034554643939455060810168672846910364438069706277171461799972076743689053429428887565100926156057475322836408226193824872396530598566444679573960161932112126773855846771498202684327867311126170686231178813510188252388967746591145273679202339552646602047385213834575327109668625274790172542027046118615890459651463363599396713190645308314748382574447396325801224156408019018768008587614339686030965130621189171368481623268559149743053623657674150320200421786754042961383364730450115570407560136247869313844301870766457960730548145927564376783621013147838375083925922776021714490219317943755621521158276515971969846773419977082593557647989413578964113969389172110936391878719271046162048627740513308352459670318431234553613669464901124655425733213422641031236035830572538587807478280686942311794028012450790170509873575237296232615905887499167350248916592350788873658694784169149451688818956619560375584478810789660972359508955156010816722098627772516553471952486255342937552184442352853018537490973861135088635538339838204776659482880278132773690192685295914127683242105209578763871842277523733424909207823636931267879316347141792947214082361678888405407042765376555668200362407542124448216891979651992849092592457365326784788369731715576633902301357725363619948509952350130462537630803935527636097404603934715102480227457153740833783572833703908797961236415583316918330582224577794259235834615411669814598815831961302039266603830240751673460492253472277800972930397769893236908197609737826916990483325585741870410308752950004683217392580844976380522866016732565245517559342370889839407007890106554977950176672148237645760299246965790636886208381040303392117058288663187680460241679443562541513149204201406916122494440975719243795356688097083140764740781856862622786503754630411212824857078448918477579696626604085690391626386382244577081220197951939310615518647473223894717844435342381353163263760469268040827545082967506353959003054151587866619788432086073440756957445205930126671580042090779683198885800053898963421091761192846802966343783113439742029964797809735745314451086234710747796669264569456889967636490105862642881169378862118838361575250627258292686368752784050652504578001073780283272698371310984724202013700828702797062253370357728186836021780927052195956248967177848550421443506797762528287501628302032939335110114804247962975049687302837732438186642127728376109269894423077301580803659895443778898347771187261038187247766194194622973490620117088623150841194951054766108784979591339388191536430710784844903442724906712039636182503465030461027372891733721271851778781087498177714375623877649018523336935114647062364874805750841488068422148006150812596327285270034495083377166666817874063135024869002897071342946356681517612139896043437478199029017081743809588527590648744215864563315684981557891910313189832727309987914861113461370300655045582886423862072559434062323479776685721318297465227011595127628808527524792106304174958536137711763366307925692490909192276236830582956755631418436431531974714888262469623146937933923541936039217642523425890160852505490209460595515004361839283741731623912290845191256183077761479662676734346003384160640075196503584643819573691095419342364482213860319058243302413995812666545703833894364955807078207900527316545264463042147432420333384640393201630542836535021484845788124095543044540675320019463345068938609434812783763673669627773631699288822334735451368243739798287117367880956466732968258024046626591606281920203374112813705880945253320547195946916497871346021816625496640959130995690979880013666984223624734934183975474758884990096688017895297559931878498990387013992557637019646251265250259137699994271566680692774246959650137130274697453239903632246948512367499345600140105146270041781399945809586767267370783873217320736614047453647351118077069063554898320468410114482256009403832670866822935054215879914622110760121976188269281915047618948335493132808710224926277195032787416588078398038409965443737420088364509915254800254815018479830111749886701790676410978688892026106275333252815318811749501470949157929471868399597538442678793042618421077469920758918510370938730913783754811655176148228039267355314708023829402168160950447107154216329437702854453580758458642696841634491906177458488634230710105228070044604992515843475566837037238066640418504139278998543596795359517257198843697604910683209918295958561288169641932476233221864733300025935126163210273840178265253375948580433306371140431156103526901446206885584996810841058733339357092286429889075514746212118658536626020493652225024548123787642369617519858477745650174088746972504661883737394136562839001237432031214892708540225989513495424029135228233284776012062982083866448495465489125564093446830966720851197173522191628109641783072973564679796254623875043484720700034271546570842217927238047988341210794829474017922527149550925445934926934538287005832152544066807779668356775778619214666726957643616380192170252084140583349244783578780358861983714766525296697062795125041724597755911404214654101052557811774180196135480769633744734973278385951535255877531309110549033912729029340380287045601956269934406476689920532675907092440615384814200249804293220144629676363532812347606083116758958054517937304513638305329903389237778075306937244814911163422842995411890182075513621350286109780963588357034125710354245297668607709360740488800860504122596300895397653649223163481057282799070867225958908673827713255422441637371133136148775122015529171774510599146675868807235982912995080123851659450799643381406512406173569868741884230838170010936314131010666733175568827171173095214255220778793390873002412576760409540828741436931017542695643042088728325109642182139495693646746629253401721286976460961331873156962134926285915876737522753980198154184122991154785958022537081981356672972271868929892795342827183100686339157312990995344988870610052817135873898306468438289877911317493083050656363107782782957835316274977415742561630668442362304349022662891607159841236387062778716336613451817896697003321946777214592279057791095979002084503519275438820932594740114945973143458060480428404460179048449314825496106506700973448268609708554990334744121403412583492857818307254531320933535004071704165937816169869856545110526999816336916437830358829921610581275755678291377223695736970130108355714606324876300544547474158833262510789841654050514700162588817168796992117362444910319332344974043945516654765438381383444299375492944282192140740740375369826288621800443005277471377106105376615651027842972274944888927192022295685356405270131450250521516009986262259838352875792582109920744082567388223169017002829735182534937948781946246609212639649829051948241404871861751570517617650579258825010505951428864253015986517585806587222345664394761392520943593233918521017394551517534365397715587516815837135144806866390093663704487271415494218384523181648042812250150799707138712795291223631892976098552499631998751695213714290020470976573846024961709245939203071823526018295529543076876561839654307082796059077970503181049681853155957211136289442748347515355140882566113028707790841472309792245737161108822834820667184514009446877551984820959523496509263938198660169594221522981353786085279041116741892834565952540337755930630866186757549087876635797000509049405890956776025606717624038746737124301084324654322862930232163226640462702162061375026321228357988939122776839511559814013148653946945358667829636117825129976913610582326901359766977443714885789889135598033140824507103066320163014372696723096161189530590197061475417205421926352292814548088250725498644690383769218226382285298089933435410845384133432876312849006648145247334808434153623045392669011487306553731663122685808003245173139331376431497793072868662968542851434930606931014063386681678538189247791423142140014932652802264990901404282628364845671359136314687414299569905589229173784303886998027131923323406623172117971149647648630845521671913525390704187063937481210604222432736293862081128971245050935718212738703872115033549955439249874516665113865696131712589718220964724215843577871821730933924898108489970571458208549814539672430338230594489265871737006768192660870457438858521574173006440489389959826739193794647128504744944062784491778887720163661761504724107389496874163336486767535185088474033926962685736344472175833425249008030044793215703919850595665347917320340839549646411068183820600587015722106108752701341104935996672866405620798819102802126751582473377944628454285029397264668183067406317222687005937916983796342405283840990628609080405911518518901065061132627973017504698626739505831802634006493647144383213506495118535165180000217090349230005454021614928418108711093381221282920311879601992389704570126915141367328633203871009677174725900897692701956460501241653220210781006496380036224274134695450918772341813697349439922659678350726095450289809533136570116548055222001003933499654215259406660731568527022708672110933607900496836158539719143132489826452992471975438216644121490214500649376295391164189836818018209713945243716801589947620312371076744070102533299106627317438909245694376797900028802522934828906569879644694078287054517865697878548765780500073700256001517065110213481349010083707529965675758335281150192578370414120911889242131419756168521329750262805135110310106116489031387703085882205264935098250641632689425382185532093977472164331798293193899290804909327088273238487865579119523178369570821983782325230219820480489743168420354313898302995987459462143515583106140038126080491849543281193378364471587623281372429174916294398021670867024368616773929012136322980215558457549620799320259630707544873010425536524572179387741560449018181437655716156322054586707035740999967467231231164937791011637573631955120460856689979703418883214603269269178555150085143386915723280346051956189383824768119727001548501871425071087845050983693563711161483131354000524718571152971541313936515787399063710579391221833927465855756168180618045205713829681666948631460680421328373470105469235669512506839259976713890040332400654765297322283194341052515504841136395780965671612640149010215153987818344398526782347566539536144168527994396884511277626983017435812128657314132165129185678458846430535286975787725257952352007750993403364160496529832511853579554124723228022537982871313083286163837003182772718306726537086591730954010415203622812438326677056871390660490073264900453498724541122043767880307222975149796579445801832759034007484556683695886761683112256422640888021186560408599192185864079162456331510222999980836637362288102110760433357718648598032041866350626191043741647736220729530703705981265011431453267511072030405857821731843821826172245660220473106924995617454062665610588017058388641388361578110068719418326489038383686946764086269802825203750733748231467915659973678429161692483334912557040136646168715166906570787011794963978535040102266040780307602671164260758407448967826771195538279277678006591211130764077934145532219324374613579175224210095480887431609721047817469731133647601326473060269468463732196917642363379615861638566660671928034670473888504000166232551970397552183121376764266079855132555447228910710066249223613621122229685669281105270299372947801787676560504567188455641952123230862848859671671906987589607380423128294284116836429429533290791318217349818203457822579663670320413603535010435174657090283460478516264701608808798225438820750441053794244930715921433531301605702871232235589972787396063989560098463550312853149964662592116535791426912461138257831089906359433274008208752394754522154673063180557846061435258844996448602403820994637012534271773732550507266760503847108392663617400892119948430200444089261647510126954178204691518740383416214026227771741257340989295676303338749041133977632042141479572860176062280488822372978692286366264829762967987563754407566502283894524510733560484514499669359423752134903206618087202309107609018021982625918384311429246554181807046605202661879619570749804950618923331997821328366358030522713236215968159254267044327708640934192914986461996263704762630805151473894376665927073205770017594054274309087283300290914183282334000005752975007399038597035860833394732145612283063969399284469396080280961384399218615057052126033455603500059780301547992923038007442164612079413653149085284032305190776478791240291551834811660552954020802506520259220695634438511129282350149212733680604922245883647993152544797196076090543421730832724828546768475684809369066663207010433176299959904281328261785350410536297101909260161271050196847589533350157207128498656001275464667062312103160756655933144844175076268245169039932216207729747973338797789515573500696253382549035797679072709671340514201394898174014168215246289247600704722378390125828427282911019367227405259680500031195274298597622112351013848074249671259896705538973221621034629721653068549446017160769203151097161825137085419813974777227153952599441279602036678460869564722076621357523556926278197659796518169962538410953461658024200244925680504591117682789350907589405310118507126390942318683894855975649101424184400606000353213130034135119946861153064403564049657294838833661645000789083427608115856114677490948526366276561466039479857315085157456543703887238517166199260182850375969482102867396110426701169605640882297202483713873000977632841986489245313184813673572186403983337639183135245664510706440400637749808820583871930583801734345512632541683011451524604656768807978557927005689591277726024855683086605506278542528312481517419834498912307703052301307948327047434766832980046352719420085291611331453338021618663224793941493643699096913349168202770111977532136675320179989805777553936078999594754208168222534223540297074537426804299767197346814352750843886836339974435106678807436936862975955993142174686637975085476977814753861961565552293686627324528973365276137957265939619378225054388323424146355439253958536926909630354818985140312259741452119210052233987870984015447726536481214588710022224651861961729153587745920181386819333505376738670172572903207069107307710814969424878744999201780513208283953376051693963931243876129282486075369389849571705322088885002280099874506793247598764516408405286502280027189333757965162054329729222100219629542934431945180792421147522029300264294310056497611282393623734496138214362097431237765988836630305912503315297596713723172138994161085250546622081368001680406152888910913494791026440606372422649912601532732086458249853072930477804281081816812246028873858759990348756112377531178006598037365174103074987763332174709640838320285268168140936406351532116217006342392089985592589516625604292460832833655913859082534316328094985352723235326517460307372152322024594889274168702380595613343573264608678855851227419815417536486357849383179097581012027683501807698323415178993580037635024047882572059985728532877618394138963067958202175934680811225897357324224625873949448609229041177210002217994368070727652961438746478615194280516807934784332009513243874979975949574558174028936009492070788338767019025059957396533394913430967303787837016375496588426398367230815607843606458314503814032458178244432038830551471398693702716157202990220491887534400007015978180227168504506350323849677337638992918774510499013893295507188691501809554181854269680029431257576852851830024921066305232075491499897786297831132894622148268912541512913561197429584524351255381348791877936585689865592020943427490494600862878165505517842048537532485695182440426249069504735221674102528867077259654560976646571603862022447896577377951371480299569615095341187125403176559882788074930896947608014746282356002354334948711088150654592366303592119333606101130342851601650350768500080652928711635193789416868529932348300283372214273896916675409522010932920995656890641022180070713323722255384534660136029077571598231022164474881446874595801138732973033910900860540543070096621461239513473379625465827044445515975534284893364062917414331690338008521402036833443508623138083016056978060647678968395846503750696903396422618222209802544510314773957867286034488036691499784988646633537125908614349561687097419969949068925198169696928624710688893189876224207782695517175829405538814578330652328452626043309398312457249837094974418609817300913960905841974143316732674835998680638092438686187352472822522105105546553382608860415696043144936667669742759468774407348162941558778698945270987953593049239373572468162983955961029837163970252375177011696239640116451028152249550184519510811982457142191839900644141827301170522012245207419824233173497423009926185720146966640294927068414028343703223666333857735998999607768113789096540237471441007325215580545200145183608365556714884310075947332419878852837778898715795456050689990696207554651262657918181310950012243242780626781752816247169041216341495245295387946244419295906035127844964583569285445953227328406710388278131848983081993923216087085853914053010448128605092613845061971985174493938399807089417702564110649974223052924323721178099635643963049131347793286374436617227946707498107104968192925838092123366461514204503483162694389380945001959673844119385964276910494414501791781900969973669839835983760540427973051963040475858332159270927606561010961119937585435249662829963018049082932673916055114305331853846620010086464506608014405448734956891385335296219728876316498865429201481944422024256429189195703479654836097379924157318025085498011496867121954810006703808553515985685652981796217323571212958363248048904563931834067807469687311306344456545173580509028037604510171162035891256135209493039775327089907693468554631061864654220889779143759812125832939381077555919329053455782480178917687409169460325689298180366753435380282373560866082484813442081633772161820640730302166421019226023840533429895181902418571587170460511304969001364269438861612511986655914469756809150851929327864462781778958652487440815358549321876064726067805556501947584749064548461293701889121616543855571972476430371137935439064798863729705282066904998281124897383768671995356183984621340302203683494340255461436866282766900735008909219744144957612558366628163863828353998712590369288411981941116090399199452003489619293025270188714855788792972406133659663788273339883213087640765592983466209022759183077206929617821035068278749714188000826591071458351390612150436181418461629358645457308710313531671951764146691495091726407480323955917720264602034253324775173760865173675296012473909064890160021620277219699101520131452596676762431647583088975726852382630154774365678871675696252857593537616748958729890365348417718475913190016456843925677025717817178347658396695714475411309497837297489158280257525754021442143312971579136324773465697408240211228451745803581685424871858829681068421006680800382117361626724955038303328226822559823780472945184241410365804175820789570082244464284587178547452531901671334287974594522016553927077589436543551736161037144190537722452197393678381457011231473891494500878160359206277053785799709259765490563423489396575503801858983598407305497513874493334672704369240020447671481827739982540050001981297757528607039452490733635313036513469600962826647806830630733544196502954691420296404579128518049847466689825340840185131625197406953809025047103179861391142459594094023993888167792192050683646238054894173370803945967678795397614826856811842014737457744942602534078863891267794743762675639508013672138731755060660386648879969988002091087185639205497153366830658248476465942207428575820158363016508492719191422849348180445895818852845947386667603578502686246113600133480441229638730843649251855088533604465216129623292595194860755787218491264061968412107524851591156291059304757625892863614854350871701408166064729797448897859937211373948135213725203482669834155961377040195531915841679209022745066728956152501480171553331954033548777021793260033718338143670330784542001603475585718787146076637906274073652372787979640941098882733795420183709880059160922750212796796554610880847097530318073466953900895211943039412368461689431323858204982387241937948930307654729134988026056336056888853506697692822877499810437765257927079444665641721447321714188253986431050913505426511222333562103707742816953392743457211708701052237863342178327091297046241448089204596281153519058068687525986831532177701736787934159276107228423844400242753689919936254947089205728812634610273889219423259899286554663227162351901188810453953854221547485614159564134896670778197523250772122672251574345349311763740906650010125740172907064721041828050033019781711524704301666474254447684951584158678734324215986137650386424521788733338356236461798630665658783196102585290396646580697542343998775285666203544257776449173604007290174120231060784337957197419971542429355296634951143484122531226397675993406062666314238493025416671818948478631300775469509996094580520541254313941992332889355263110131938865526389927161534809400073030561833664504770724948945558740685542870624856193499185533669037867264758911429286739923760958496500717583362509026064106074543046943966218876997859933650113925891858801416519434174851774151719069541158637370547154974651556835095687646896135430560678015872490406441464050018952349085595575447120299579661290569767530498043580138407050021126943896789385505058199250516433907446023176845522750585631375239031127916385513956117064810968598666985205149041429931614378925997307050084536914672911899170254604981597283185125864637088860700964030381762580267504073026708506234093114340203959911828201033219402532786050432978342219947996797813711056399400788063546054400939909618912134582036180123905111469255421800165509946709962444344389694935960744284794334304170834071371655398131757689250671803871610928752245544113453454715797999155812406024291718362876985127466211847921761989521273761022397219829649231084504744896473503011598781133890529634896224684888182599244238151524938119625762159615706007361166555269732467196562872402386776118335192383904859814863835641077952696922995100970746360048646462644133070132488475742448347390476265232486401630370282269027890806162971173260175005367684056493792118937055619734913123347587520937159204010598760566683335397189248903789947950977363896529514414037054339808458334546339819931597849009622140329606405444275644124991867577311503713896385613876406766161926847813384022730299329019132129393929064983198523279402131537151869872042724604033799115476506939791630743032674127929016959324479414101144097404675144269309736784978428244026490798759758011256431425973171428634205099436566650251385910307128992317566710549005906118938750382153030235245506945369000349622718296434210791542186035956119686899842183673221554537140101278550201514565106615742167187201053525736566403704685706894494361666969053584854446963309005747849394451013974734648927311905325014344627001459760580394761754085695165045976946672674361390468291815604315179692402170137156720346122425440766161846356968477925488529978591055499357879785830979062002147372775588073470320775382941216045535743972485424679425548035006370500081478770019118216897940529769143857232230011121265924498718420190142286736449020258739623754675064179000467138103811792222276629689732540513433498647713436066305775673533232993639640941711203340873197225348021441162238998729946969344271455159471282677306799928704293307057445969922437162287117150757003831594994003914105616364614604293358295112461516774204082246181699686230412677100654999895681383315976505124783347716066036945899407487415012102179539195945003457259334536538013571987296548221104619157376334499966683790323393822021487759832599322559172377094086992867042110215526507518342808220766857280642761085315892140290724479447118597287178686561960515804519804715716982952904666552149145263032600987234158906156104943828202285936007053565955177400613926848542029819587408502604361508407685397930772615003121263319900736687420512778201002359196359183306580736044975278970881231945718183720644142223693862251643519141576082203669465698088383265985806873706843405079052647081609330504835899026819440240025913627948659889078612315217064457155405605921776287902981665044340594279913058784350072235697776132636218623041577940459852985955119664894793351980219105807250969688108479811057788121556712824246354506119712543379853365671215097744874803334569620628859900871218942177050146269334347829700533711861800750589104907923004443177524324868111224215988392631578988679076459581374371807081284194874121826078933837722462488795242778178264613565698344134977370500672159698792674389897815839093618529569665176089530689927319522196049251947276707527035314077745785484745608303157828647943116998158378612129706918950045614908273047929061965017003962566470397347649616437541387089339321549518925722690743218071316351534436677947836285204958078391406754621696612387651764990439935139780641547863571559758473864728867001911140508482318658028435645702702796822783447604293883959579474525202017544244690616820369385958477965017184378921208381926643670533279353803111623400057488014256244917361658765908718798153357167197064300039568062320202360163324167230413316996337456870474339633036782249348088588552196187836950429853643662205360370385996928961039932551894531048622018056888463201301011234950670066832857152279800068164787315949478032837642302548531306845154554634714272140470496691499976682963900613070265475410311502179472718304715082896318010210547500557230705323803415841114498182472543411686284849997496998151598987043426452398124380356825597993409382351582104870764245110424701974431265511331522805149624413065633032011700882712946764076891519898567957124127381040062853441685266370379849952411708301574886398601679440841008032327617369332861206224546059299834143920190066251925602182985684119590986534504490135092000764459134127926080497136396067173359744338161661994756952171232324303108871715027799294482106310300793190764762574643416334144067875811292629894822810827447800314852820516079982145735266393966822348879784012412496544700959728235676486068861082960487636400005024856717175468025637396747662689247886053791582115126728691528444559087073776269857904074913756244795476210153266512806613893776975505655522240060380181775506609945898709304609718557056324825003684885900888147573914189608296216500302878443528896664537751831072710658301965940257591503983377436444828281889960175895880042924594572208763984738430133247914328788247036165026864383773949864949912627070538419368749659083620202918471590558382338470828762212213421852564958823763129382952684132221606653185102999153601740887778156530426244573777632704998119643941867059683132738128368373752515315701878810929519090265824944018213428770210708675597544215036269272065433876888649211194141425636975654859671781538076979372451899213528362237796828131838461829852450799671754785430884628261010451466607833816014931842913029434459837169234089116642553916460452287321320912935470609980859746105466153158495556983019859380570801026017287856172083892598399778822757399231928205091085325629369108584120323288165412994599951895784209388739703327565551044591027196800079948842734263122834934972211691908278786069836414914606119577835238838486381317723246452050805739737326073864385786451026172642307988212380581184331382232260366844423216231044270112342643668499932588813886006058392506544184554347101044744389977219810149757101781990916842993504202511379660732079410056312114359273363242617996298393166178021173772644315023615164413827847631074471321137907387758213012249061154496103273948676291324775043547270016598047540524085312609284023769870242008921357046649188870872756962091998267474902657240350503273627027338169040609265654418795500735263760961381973045901743505506496560838878053841933869297503800799135208660432528837246877406900042967217551462061403504298941467402030587777584960624061273293795190192043110983995603912428378452208937343430025169937684497719771565403710170482574306155310788347464627069579859379378245648588356086821076382390096150605097448845184194251281936645332155705164479709674516514710482461174759673655223034298321183539898884638717196204609707514248856716787859051531872245321236467806950960836655806601830599419534512206596711017943509430136150972710653022562301506350168065286319805291203874160870998621161130328872271424886901811017072601177253721468668087321030711902786067366949391402190204444696517317994165654648035481247600296817360252503721911371757253232087010961631837006789915073239797075304067909108078202626231759553241166608298403533070941904546502842509634433301211469908469527600470498884941695689173634189547927986401250123080965790694144587607810217330883066636395877859886657306247733441176713456600268875346381790447782411356004539928949081172290975968842093887716896525141951371698020147165082123052135336679394134821568718701718478101461084221995852408903517626597117851839915736671651696549547159426227111028797029012657296051336964785582004448579514982941227204605967798413447560155065145583162840824638961415115750876780000044772533941049159165882081801186189631905205294409869934734233056149599925637122085537911644106765953108749130956743445286596240394896372438568893062235263744751022288260602351175682884572535014862686045749776285238293832334458819764195853708166721816486301901423166254439467499523547412045375314100178709284058605216528154629981657649227011618191477474741976006889419385211868513955424899829056535773411591175185533567296792204227782943376814590370443436365420728219747800108919659937686895905242133610139373715561270193423957690229239438568844188587217561557897050384389682748826859081189180091249578594168716523373389121099314203997389142276625373017649401468285446975656365902006364844905734834663264679735780132799366446332481677506876167550745779422000979527552708176427201900423858590002586602410603171382688080373458717231666370186095970393595380533491001201492376372710845954905137775169477150490699707551385381597692379163150662953208334468773275270334903928791531138207388331842593223799995756940176119972662641609479496399045418097970245826563234394426672247796004532621694659357568022696712880288385087502599076109448268416204654971830849124143551605554488371669598491831468867724353143417691243044369930896512427281300710581993334438766431085819418406677192843242138806906271602738360039799462848680249968733879523005361489317612217946409412048897609731012358581108601747869430019020407837624205208181672095479640631397957206747042964320123719141688639818166850881584727196355576036669491792594169865576641957632398274289489657852301770721758365012983224654140959507070583376901421449481688070039169590611800401652587184409802864252048419950625682286940141508791404585945553015870981521157103781941213046541252715026227915619634900770014902254719377518491262999962538835927550133624272864540678224929115683051904792325466478697994725349855843901231834648623329944574040296760136888538726773427489174022515972723192252267892376633353575844521548707640719289826021999456268216643309150738686789738421774795587544629227316952567195871773043998982162156081196661783624646440333379515133885863732855602008992607005015306480343099888026027125498983314306686626674582193870109561940654782397170836164146147978776967517649309218665663711836516759128373231182383174515234729276508073239829462070247640475899023539195295724407031861671506197958100471933074343485725433086496248692744940759112742423876361199232645914421720758148107901270951271049871575551227599943670602753058217776933671709456489571936426853177352819661094184600563486669966202013093260149851343303086816458480292574489192882856725397245978762336634635495206279084138435951069837485635138342615350171366826769684537953230101793602537415281314523805475341178610635768134512145918886222744288410450431222119832863145078196900111391354489971967830321080059688376641678525061754803508023367613295338742097176544549054812637883040635886115712512943533847569595828819865461569931945849286705127486910152510221894761532288819326352969369537492738738144341306486963116588048351227985446512274778192846300165463179525308405260073482022107243437548168157354372575705092355887054131870701576009554459014324548250735804902203097622252610290666715887091300484577285967755276609704564586039476473785637219097259897803151216967034637970433542189646381968243808645747842504189937791617251557360107952615520219245726546652802268778568053521415906506446379659666599694575134780575241989515289229881218569729709348252271514297935319819678486364696034205288541573486224694401852986780406984119612150264913261079402113103920787093051628405508160954763397085222344456690473221683923802082256751141358140758629585707980123014299863020451750644879744824562505763695583962898925200518474548440896760289000435625626276537316617317674270632937898428125259745107022776194237988608857569496294918692919419696736559466571962534665760657967461838056105289347545316690315215156137715687520266604903154418278530123333449889336317700800179580725604911047875279545389448069976984307132047192772052759935530184794171584266432302181770978554400256966080195827882803608329177490103181006988216435064702366085573040515577995718633954158870704329500872306588517490077494942033347882617553979959661485691770308590950916172842267586540077451644378959040373767667590912227692358571902897090348373947516082367250683855136840798830064684039166327050542994038288428846362890106176481001069237107942826851791683151593999987120885584654774163673035130328149656245412543707946698468336668812295997104580927225429284388767712818005466992315186851440398087917753134564529219330842368756349829432231221026750598355180406506522412875547190030867327439182145984191043902769010431250889739218083032634367185071729226648587367427180620566213652250597873849155187385791577784203944311021167829364216645799333131945503095029920490441389005846694471772805044750202440520931626838133742313874563768392423496661149487473522965946482296304602388717714215709280726065582402187613940198492607423475299644591004671556286155179795233461681808349449720105905466633201402730922911129586251582908903444790644642683940521735907707393427007144277222391591640036721927890556426518882280972741972068506809936705758649361153332813878421631719495360879480644039176853021903599590001943789435747046534360978426646889815278752792691731720300568791756903166327770647910935181198734588384335006710757561961190144888167715377910332643748944800709120728776301482022996689592281895301593330166089395752776541119334767661365246762475019758155081870789727104121568905879100269431193088105518711747621450072095272620952717954490136477015357385298868067927338789794520952803216982091227871126117967433760462163213560452380439785288756411388055413719598344022056019115629488561558441132459585095911541830138015651646266780062703817681853194540318763698508696470226566198476095811846001785929437955163199931610700636401558409393892232637266495209100897178363500531522168673605342353320502057854458585536876842568979117948017419469951165727579118723892785418740651012787786407223941177041677338726015236612427148946517517909629311075423453613116764949443457324415519471697583409581997891128079078793210313823119104461022614707453902668692447683425591441783371736316298467051676897218398195738087246114382344924751203474715748952279059537661247503800651307464810817526093467488891622170648344217216973268488959612781994979865366841851351700886707018736087181988821078379080395522141934917947326986941870626367951389813810024252223509670364628093854575296906920176257805074079660250148054028597449080905774222302582998272184798795636831290697724191226316545286017336784667895262118437060887968352367799350768517701355603424720486136905934746033090093260075646633359145535133835787267161429912103204609915192989243727276385554647343270988250474801268567443175355092580349832862282894459832765526241293141256480043101931838171354002738817073827617248098798411197987961408774974391201816587742197133000680941566220859802482726147555510823188576568497358796947320328562886258945780550526775675971302832240552782849707524562248043319175634624915672103639127937569368064503836828715082678441419257324729873032083727722329634161212157339586482950080365540206960348939593297840873000311238848490550435090851035830449823607425991460148527481414154083992300019430067406806841168957710312483600002166569643099896053504543953155842997502003677993850395612717356152479320268392631252125117029569761831008883818938539202757280802163990788274417319484110716538799369769513425177009028223089692632294331308366155710112354478473642509094128812431895782373187717666499050041822764833652313052141137612365700896777672660348460392369294195431523556933918042309007226637374666118775315223187097105122479919301521411487557107173183032623887663845206683389305800376607094431989785356432899783659110450386851673240403584122086598418124915165878669652624920499645889577933009369900026769339229871496608228252366580322931720398068736177275731006106070308013393823154143363987559644592974588515640102779729997665765335117142827810004755196916827799445123616558370913761137952146986008324645930058699777339805218061580368264737199154341324011739141153083620712238365293975255358899019963006953832377281787701250967881535274960206075880311770549839921936026683576389172904537313095550695208963937676909786787209215633251763766072283251087868016321109910378464512631605743321030570725178543201830094122192893847170632622627708249038619992654282782889471755949136664576504844589761787346375979223849340976034240324365328848204156847199867518931702333076652068629937022987496340569262952687559227373690209690225747297896124833756723712383315754792569181255647169896403990021888219900570858936774402425621649841442440195967399260421535559061588579806599724046085062036102253912713353135991579527931567783477113027729126643110793304642822984217927503797327919773200201313773107158996068997984998333451118752067550579066688079730540242047595382207958151861253095944308756377184314146184963945368900850969147185639211844198067870132607534805936451443030803290170268584470077660496904967991456654023826448497815294763979837282086024807021332777690086755971737492595037015128290930505183583079051286135429970552655367425057334706658973617395770799426720069383552163362255305940760672991423996621678802518261122372534448604239362958461013405492141071273869777720170761453647681377392702100267388844162583425263506391332331678400183617512575367613237513692323541515315257084063147343081336384108018887023210833150061547323915906086566221985499536199014958955379621631241744965162188517447491048402986656276602242866803853080653143274146988657699518047932398426882933857974858353994460548270875589775890800007664382736043573026514149590220519576959360408579984346584478333827303687078463365454308698477974927790045763479667247342600373496036421191000411695372364793606641206624073747483584657894106922254641286756685723429028931790650540942170592274530401493519798236066264639954776051553454507647053962433708354503067856564411595809701931213990984688526405099680117721464399216791642748376402759126570195482620771417981696246446402462084569619429429471345645757022775451514150033356016787353090002509938327454418721294745936234675863830597752205912170284416711294063873893501853780030672991481880763792225905445286451053253391686429257794131419634215201734416649121508742035044175682875849442549400508935104532882963050191200830192710892380152820195693819874941643717019753601031788982108249841627991638389354010549476581815342138437211673271111443287275955203145153386507879480300152808232866511270878934097600533679250361912421603563968129428982331286999037044084535745868826195947193798697482055931279477662018884734270150876524702888576281869649880211668120341346697366263708421760973443921291787463279843941114914156008046203286980420585239134074914360272437642233701727754207368217094405655410687340006739904525739408254306071382436170486617526381042139363389005697259153261496200990889089772534252531092067832587457665184700489680921550164358779694960706297929289468216361730091908496394691572212536553577725798121522918548934352258994715039562407772266946449222008896374990920586904166473389164530963954904760296059085152947047295330987946133497316073430510625778984691169221200533091808792403093208680433210485765321935515185808682202449092190802605574039379056595814420051857000944850279433625803561511812239608521719958873347122849194440601849781032503836244380179277177850652062506688190886908844247580072911955623905270867546599300040021117015534669933327167805069103283380707554986379812854959285808017149771561942257112469006155640685907267092310881252756205415142004091086676353011092723470474825335889034780720169151753751121929096693816839431964346738917737737579995353466792429289163981129335517918521534365535752519951516344240626706470472146121801302579224860621331168324920172661138489087265793409214163258094694180375894482542332328731613637615044865783816140523940736960142343966339674631949326035228206066155049693545658640473892523976717401292977467949067544355278212258484269260179333552630844245463493995020801372822534124908236138740922971758201559268969124588284488630238323229940713752793616779536762763688051957545288998719259574896596640342703167344029087307381694452522675444041306577558591671978225262591549492803027935437003780744649049264152473936941733844376424006192127624597551221990967420597137005923763233281665627461414555659998452107406316603262089399449509482614306472032997929374223456744737548613719087327475636291125445262543695199736296945467476351348353372236539464032712990949240442553690035311058092317681087406441095307845070067135094215361996729159845941802511905498565308006520778319788446559050292339591239868253731063875101860518873305602544399312910772939425248538099239947625032397716524708732818184839722165809134043927410686033281665347108580454837198650811330069405447449324778601919844533990942361611342588297621523038455514674268274630332370566605833944622810933913552498379026203452759092890824950430607649467079440186897132650961345042863530367520533457271121535810097295081826068610264736257125080282016944497256883163895997600215872969527919545640891912489901877196498208243420557838610097186910147260582948657445364249093574439866772024477849741837443028166106537881328751786630245406166151903541057222037178506171793520915388830736859849103963230230597472072190595185884353860687894486596162048999070140517295147841148768549417725373436817580224738370477395784449738374026865351547249790696361042627009391914304358420990339651103190230759659025798906185544203281322772143229777650013986430779371043383871689745385105705347570116522765177342566120553973663792912946837620186574232697145571493405330887721348954101433406228936491229457437589730229683214074324048408724042886290183279297613705493092371649645913903501734187605469864971176941713548155531691369523322156606182270596011902343889250461636575283694914701874205622401878599240867340516911189561694320292908210046832186834019011416526857159580487592509390895484294064788934450567290512757106010031073345173676250839896756748010069091540698256067600740766397521880421176969059069481257918753167343508040118780291015756625376547968700168264705410341688230139790092741452860475532819011877937813802759336736933711762488460681374478050295352950209048755036936317150262493083117448832306475854033400867018360725260017268659509114379394732983626464152346665452646424222968912291896442336621206504685467722915023658051121939988556681561132531006631311299992594249517046827510384562111232187645743703483811350248556084421587932695037113286935890758497953477809314681405787605190868457912825250233528656829503606789883382983905469196106424462595949844847923883598143179814689074946732349544114930102811564722228625561507237928536343944430454288227742687252875815295463928129367264986563966857892900216412585187044781213367088651586063342680499414304999336380573485169938697736817524081747562147859986367938247625058813004991090337745998397906410299743620582610492375127917381513502522595697632531643596805789540671173093087914181303748740757583133553290077649545185614838343262429367764596348087439571314328921085395099745346609818460886186155738804329540257345633149813343572363694649152992860219989913450739007997761595227371041434943780475274240008343178697391813885799886248184897148273952515210220465872998647220698251437314849978863895591417087190933828256051838207069578382114907325892120495955931416993713135938595911738710174457854185817167411410507032873375610608021069647755893839960580756172056063988488689329740527322680231227443641111239171229570952778932326304249005475482518127881995120833307566291747617138852052618276096885859553128467356893400200194750452706619372433233932879608020613669371663695839192476228103311665076195994325799421042444659168873314321395328252380558215830280937209950680704904201561420683089067195962700765375067828961249954913444814212773003943983523057195748852080220678185567030714953332797086023242820906324965086864235580661039349166203493456446619562916046252225163787092826463119033425653141004473338341792065133457132247112539660580606853488791599280269597356698326021223252810295638939456227165686446917826047273262209766787778919832821516352559347407026954517531649166450294789839052154966947790952456350971791731683376726412027932294941292715180635257410123378188051842250055396290186495653878374503160782381887366748361417351033718598690617860387756575972752510669541782303387833585300838644580106363031498758494177227772749308321876376623464928086782775172667947975349183639762130929002488935298628489522514916819598883705728400439136628152089844372079860106738060967780902365470491660141825448875408653209157097942813033171455213816084100597858089709292855189976304385212684245863655353611738920486533942412427471079918299142382769010808241198126844740698937457837092870425328726268756136114326588492867213479984060719873853060037042547362083296887179967846224698265357838799771331485891431150734389564070387714800418425225587192974825739056010749270838495541940973867787550240341343954439497961907828033952821290931354202510870158832651058002854679185813686303316038221710897020298238329024138128039957071268816915785218640811039886047452092059596969139123226372074137752687539044922628138872488992987173422759252483301115616819190299419068455603197356871736110540432697242834688173014095447567685956757508234268849584196607422460939569699965633402691292591752128277893258728256612474201388956622501733210821813900098388886153352435257158740273669437406948986100425053304460660187839993570541807391907200632990549174217601152904925802433290534707982947812614317206646926484577583329238819445589046102880892811204094367222679227248285297536305738949863568626222492972157382007885882382693937800271660609194823719198058544806932367642096384400841207400238009598495449854055940368965430752719741611463870795051052452922631956385211012547339151567340752790584254826227427291854714138976014219503997175680092696101033516342630067643413375713498856672500777002414358519627403358182920305229683044227574539334009565605766992006610506245593840263921926656849114486771493641469203871336711045539803795791112148810957341919941569761692624719737796828562092392032042999665823296911973009564439074309011218192853221537322408598838416147201243466931894761464355927678270787177202798829091024064294332467165804189306359354187106393429908954758303922393775668586415032983020017398997256525871002261585902792932886798784666756847559712901728402871537425341614664283803426279605171535966269450927267427132909095075661536832243612461305091999377033955093150524641764970346397209073672506010349147666860647067568448406841125700691522677551078354886663857010230273759468964373687627656472376161966496159374965400731424985923391151452049491117268175043892619085961716395276539223809372795500686335556851385015618075570000860465611959989793241598058803430500965616573122767213278751006430410272317408207197825432530535535100841745379440960600890328533100776840891885230726900675281706948745794325608813575099690371369155806274396030361353203428531227361666335466744782020999324166228857561311415968770859326261615520199306461482538651843634626945863648303890105310228901987171649836687946942719576490384043981166349794405343116394531065115903542295887350425614624822063632592008237301502453731625420795195683101007568773675496930231146725896905533775944893027143700119189435749527555732714179088443043228571187986221692488646897147619076471800767367025639458749970202108090495553276566802502415769164953137838895980125604396075384654039040961431136892199861463075855535054700925740378970953152379992190142186759756551350666149261124915408238023074991158169859844347369647313851988157640987751057247038252023356651371721821283576943729042589935104734915711049112553317519200025884581958591704194545604657747032486938983920739238883088333458213382527079787341917383708570289552754888364687096232432122428565228343046968180439482338666394531025026343909261348002911120476605955687283136142456303123387931918293150708840955391401869593083433258184296118215722650517280375388431798763397454768138968430946107600112618468753098448372742584286591098003981844556827692779604907323551144980608594362277146789854763387714562019811880573531451929071511723334806104544509339087452637358636924388668982214599537453821197959560331898023149302105644807183976774067803116189184117158851912819737344423218290993781066021584200989007962618495713193144499731845800505667693038078549931306432943959954973179859555923603945660629621267901421352538402620105873930258646662170334138204300310333727712448704966119909613974128145827726847093853211957542433320860153069737373344944973948872544660606429411650038604635050531594799558393164911736777762693848168455218830957962421156428418046375745025860237096556679303858635591864649673778112876254075377761518047321952161025156381997746045935924119867400482185666090123865020609398309070397083194503645979023150981716707092873921035001914454911045127596630623945677267407008827529842195811613078000988460018224339726981611146864856679441288232138408353849337609141359859076640999285018354228020097124257576730274204302561436471260975152446879232724152590647533526725244411525400184954891159818991849371166333683695447227824446434912794291732531088287111927582266425147924577388202653825112447187878018554022347086512598856187820830727811272874673246236386931249115881825570825103990372432464163976606262017570532207245525892155154983664839790319910414962009102515927568806471633399052135197133514859271594038804822090244232837442897856930741508819652571827575466918337970782251307055165063266181363400082709586130909347378734929224030960571109660602019631699943605802107713234039127559750276809689438380380006518963551856000173534184848043546153723116965975788420480059947576431171756014826764417295289507003917285197583351703755339307173298943272520260355941228191764480482100679077170039647626133247977250670969522788090599487058066287881228257123587741734871063102277481693108370096750720578804151616163765141746722853029633837082352556380016798264388987262992710856013121248924361414377874269468762692868500366006605977434462511217577237216969156279268286279200334982162603164106296995259953234839542453534635289092958671352509645322261411092466783231935161421298953421846264057849269132966207673685598413886205255986923899790726096252771254774968248023623465690455630555954974892145078527043831295366643845047367285100919321596409343312196052151451836373125918931468078729463785549646132195956684421495684874597764052311325173315665958458773326660747560692656461432708842043484128754436855205364752305115392264380865962323661858439195402383330766340496345997295088272711799704265439761977028485030535507313994990450209447288453249758111845789225602485842427341346029967905858328777616281651882706978043347670149343491976264424350093024295889066697272522542987742411833391452273121462266610958392178636490307621141891651822198186355256862742597501023543222802626865959900308652785311110207620093379697942862086915832648635554537239495958753765284131723769778181853800755825355182092033232658749096764600498815539628656963001888306163047036486620670849631839887580116841464906810560543786672916998402475724828913670524717440952262827238189983493236574214096242873340330196596430992771509068415445390048037876440245445171531083516053005857189939695019733749907771480670012787230349887434304945731552921877150656671375691234056340440771547901071285790415268740621951671262156763076086319685567492472461773113255627208419301534762523234456367326297689492727539202574595104179007896364877795884168062480720048613697451376087997110241116283211805215380180282257868509248756037712572742883796939557134190151170509012543649109809055668749994661235289038397056612901975042046033757434245729716093624458588654592663337845657287031260256111545341420189480118693405296145460156305250937583334855671992709552980363112050470829582642898086079169131129112479124364406752762437860117844296932169691407482764265479710541440917080638463188850364662732797206641347387916382931340568429540773684572690659519592248739959064756857391845269657040005937323726927012895453420354001811864827669568271512050836205443791863536540236295065946430815354686356437985583391079461011067171595299435380166285662748593449938987421721058726887990251320003306567768196286788101778513842651930055471179349308317238982295425624043375952000675963318952537512640502513333977362605358419767384416370551647752485601068473587058377253893332587054709310935911637064108830984066262578554066642475042136792212011730637658209069222173422677461190906523041907697999988332032885480502437799855423041963169400024183486540064635813546440897731505540080931482445621276242393756688428368529114217149750836775588145549207294982026968332401593952517848191740335976071802985399001544397142994590666742269893431333414022436074805780346052744287064277095935121537340387815017489440307400611764237624918817710311113989690277910372858335314277371977362425007005708621180314976326600723978901664219838768605398523009550259678179917766088005612373332319631959405833880821089574651548421799956866598776160987779470587736012890748469232084815300559993328172948248290305718020276702911551176000108915330570407039990293304049802852064514761602605416120287944955490780919186604730198321262384192680974478586119428808574998848826861920527776505365105312762327728335591288445603708837489079010579027870990458976962597559253681946508748083986027429063619500893076690034445827029707202586260555174287718176743528150927120892909866034963316154502639499849013404137449068002900212435747319479479788500694957015994888399837517506816366371072566381177783927595096309677963435035536581941245755803089446809328909607293669375493380530218918722949723322280951167559117667435510938118834405511193787086211947035024970202765630072560635586190978584960701443807214296085613054564965208623712997232915327312210029220994538248312537481762183992168487122388147604765675565757258047647906528110696704084321642983655412852616421057882313374465405287663524860937500139388195182469877840517046879029407446867443287360652364479436700554639554599275719212386584267593487932301420654015034308695473690599657646890278072356398651191948177097475336836547181862750958219261093932470383356428358631014325196955493639249910336776603339204119762620756331942088266093675007494097764219404329172137223772124870211646758630428747753795966655088236698404243537919375624731653931509066996258802269807848176603045589189517272749078793118356064955276775726510258736537835583710790371099667211397085774544842770328208781013194165257854168739917745033348543561170037272009447453864643526401544813604600268061289019825371944372600262073457559472273164156112910307107377148905530793019588416048142330562208907158117342315493281828905183121159611855592219656827790673260035876564083444042596676713170080069380202381617574510370065808455855456754962219924966637366557323859648525354798514701673210585306869398663682257284776598218707826845910188662022783097795805047455966990203165782742680016800158471844058936359233312050892641238494347896954980268315120191953468013567018708702739335777031412608719870076226041185564872971256719818310966857776293656303398785873869717908977422771438072538369667250491357146851272630806474681728090654589861375633211537674495782559634876081331266749085862432010304369220102164507606282126190819851516029473189027425398785453213809993675621732205337766551997515887056047592846916731610107137559661470955527805086968494838939367493235616581831602313678413926467952584999059556902681366922091645250538806158208715867436091055998039345094128599278301812309659775848320512845059033024568321282720046704066081338453999106406544260634847414807584960018553710832897327378979574532875257278248755843808375038135567078634881901500048349982371876553141795330537676912242359525450358079792507839066212242688192832697219131461772970181162243872319604904652857635417227272459279336614681105321459486429869933294241334926968225536814791015641577987533324706833347063816238881798655527373803212074097987713550509522475016220823758379464204630704767716354139592852933344753608382572108667004810912419598892466721181623363022388316692443088296197426657408415002890682319854367186462981072441250978979042631589535118532846210071542877694450442910484572738445083932401788605071165820755725198964190539709270965005018195835246674090979980688071539042291810812306836411422775471694826923349910413061235367728290390369070468541288024906060176919871833338822415149919288811484866707057967145209359932151705704660502766181330085238364136769905587663347162137567193780976870750129662021603447768362177739825343913750085241424584514162764058101634100716938905328646219919897612480011807832250825834099167222796491383625331253017029645068974869261270773233845475799178237275394379994737803156249976852958341478467231946187326559315960663961034161612902716687083696027287354550182454221357872057554392940038523367091081732752554527124553462638048888211990840431637725065309137987124346121529021964928187415892830113100059188437342713892318963318598514763741042403599197548499284672852959638122579108414820163902707690214954195856705555260138938391118511311692705518362004000057692324106166075184420607583309160833648977007783312119740918059426866799135812049663009177797842805484470924203370654417037541984835739452373800677796007684320816706301206409732122441024679337514883028257324795159585266749100371747865330930127267429302851675394632677139071051006094656452927723097825258474155059252426968865041720630734277623898265968803534069375999391161734834001555354259124441745566338287840657764042810076028769051618720803003553057441513552741668017679193130791948525878735259178414532518603933405867802437373328860043753939137902898610995827371326169790100030908976722341337554085429664415294035092339515356345465212706799157648133561080573293071797132721915065024361528784629225718489920416429395105859535588085254872280776456670423109733218889353949170781013646671897146816273325551781252889334760152993974686242273506023382315990010487022781625429124891524639153819166429293839191513263814456900734977337676223554123325609614643269947790515755819486031200678675960809383900179979707011346403226820142548185251095908798858350196477493096002355428173957762899156184775201672336051497232811192808119989767566991395663196159431748268192658799129210434168610831837811493659383618254805819450635362593042869451573539396267404750399526539411616282675088411759128970806388015713211981461644211592165254759209158143973865916062275632859556140508135807748539133522170194961451275084820238032523110717996254384829371484305568837584134025936340526643254009533807835690028564975643987144130486194400088641732141116697246068886097882855222134210393837363725794487584430339066598603140440990393781762740156861003370223320008005391471656727888554987348527315756509020933743836554191871906219507333407181801371384957575229196171150012946314012124856532707958444665644397630926344233104060181460175683538778944744879686014881397506430621443846739201568497105150768406245890783032985767948849082557636932684783026896615180009422783568346600268589254241563104225296640684336708740318101005038380675359916948713168042195014314341838532885999970246126911821296355169357299589472725212180708886361469126316948573713918642043427656336395998166225650415039842740691604442396317825613506310263551819926200316439938931265571552594093897263863178318219970966819015803680319122599692367747569670337170629371124597121273274379575506281507599602487830220898453073725656709793979574507462704124878359743109069082528568174831903434601734485199041468983034443655809083737409656099890089489871077290748228791517767177553096120590506202489332833021807137150737263874787358761419171920118291057849744335486129429240274235847391507291565856462433917025029243208641536937883004318952191154556044024313409541385609107949242974210943180659257544642755667733462203702351150780588833120479579221612857294608135377188247847227262686486051510663753879188890442830476750238532273891890223680982637579569536375607860563139742082575262261115229573065350683226960404492890501920786132043514479648165793391962309261327908326188181531002107687181223228324175544232391266249614660996900276386300309314844667364806704710789572639619914500570162090513165931300443232885633973201761922087160883151399939100130459453596035256123864427042790428314516618103474508634386598502611821402862288825940886691765675261076664112398492774265351489019448030139539729514098529314173242788351750957014463487254085839063310004261341477773181103822364199725627016317057752300624031697628292030709527816121095044254516389813538079157722108026279152466353241972198192334925169730125604519365967474117751953592888131385969929886449502369052524813248871483707530608126919733337279397927592303767041090855198233391582998555591200420630682988751482284909428998046812816123175215149684807716522374178065321756696771339838439783940430642926566450404370046327651487898005137746923091965742036360326496550971663200181681009328491851423855093262927835070574625377128577054276044170728675570025878757497864713052956356030733963946711739533492350013335468576752329589619562670448694915875018190814577663231465716636032158311760590706077744234559080208826901046036926949796536965147163902260376605519336891384607754463511674252980141222730074452819296178981187149289315213806909133316453540620222043424422494528532559615167186070010996848761342944359917792722238432481151209341212436986877458097484206323686061581937592977770299454453676742602266015889104816908445733491444898636773879426321936550721890274145928882958101567599477794586458298010617575903018173213232820004721226987041551612465848607152928682040458418152556463537529846437681613740774463461044538152626402563505419582003096557799647366321663100053600095750235988820610069516714189324730476927474944010890596867951502019253103929830897890510562547908690310208648912359274640974396634708545222066284718756633197017325105395163787956205412075970260462254887650755192366015736709378933941066514148057491924255526842041819381150148967268334751413085667922289043911576007318642287284743842849107343083351555493828174347199558435528151407244450425916189544611354814746222489129013508788110556716917997897513779907668925655011392119954712741455973314388035761966504623534312043080682601669677868177823367718262509379585528503840058784823886710586729675538426705236396498897962491803955896629368087438928285894945526018757341268115196660033503872213226079842102855619238023941470616040249629182356741022355917923760305342021337532476537204222273651893450493281067285391556527232708498806366327446787929885321614051131407962082809206151300358958321346156289349829314946265297112937369275982316817093433382705603445935051779665850960872866316515738490988684403363693423852877096769701027797620013714199272734214872691985497064400763224728129953538433999942836241838749444314168356615473332543958405397974483477023305502743129025620828673255028048118677463309514748276414775675824486826213546528022563181130726012871871380647308573121902028476631374569824324473415021557748855999508555664283277053052931683283715817878212073723889224455135603993774793593219091973669514549177621538119584450869486411897765687911199270279135461748440932609204103169821818291084149005864632080809344398827545509523174897241082985870734152961414626465935984531953798439933172305812985419883371455771566644379224260506338604191480797689467175556790305336099989141286085882840200056491269183901998046151755643180472164364102034832627462542637479994585896782184648910578254830692682508401079720422439071958789827929479000058763827132429890799755548976792541194277738660109842556716142718132913175574828892597903895900884573830312889936617568936743655081849515440437052453954789407281264510574918667129437279570469578660670512097419151884875322107750703264729864865906774778969159273582446955823880448278169793303210370757616284727019758690821384615401390844631403949763099186228150683793983843553949277965480163399152881228184188814307556903942790466522565544711718254425888083667345837887023638547286124363986232648391010019845629760300699450297098528140267135242418410824656187171009046501133063301126768337335922814390016042987387571493591735704724892548448595653914548814519496318393309314970325528100659145809841130709204487053085883170084369623007423858161697965790414757286092011968511671939629256759797719896008090308620132415165050345901492387245133124671940160213875547768948279737639032546158984842743177695307291134793115796647193851298966171137628107107822351260451366796435640387825827296270009845189186647767847935821393031892473471158499074924781227111658721297703623153851542763855728172223234179667820530151260386697406632424182289666090355582090096920277337190536846132454725690108230192557047315684917028942748142419443099105792031291484675303570558919099216555682646516864801252416246899405946866629697571754233498622859954229306386893465063521852195209805125873907065456638016287405427732108850002708117451036660516369118854972438534037665527008311490997498300074227492352964983720570651514939085011567248717402363088003963198032152041871207720305651969915356656902409907231746656498225220997353187016228603420190995029745266636522625665079388268722502741152455633399591366728151646019868579331555937602426076133906034366607713896774674175015881305079260567364107440781900004902759157191784754636881009203629441755911503843290119009586700114740330115210954668903949142178912544219817610782731674571243935463688980740689168137576417111235068609020149869915307789346868072121284047355628210159957279479975054577825498792853166076002020705279437489616601417179486253768323824562234146692202916524188682120460197176675431221385335037051759155009328747355171672381605060324842577767775601459477074709617447820064110375574049782637827264266768688657069913345764891022786104103384513211429254136173361581087516438430499406836829560128332284286109137994651926239831122131604345630306302815762830839657085677712940733625595189360073473720190193278838402560307289813041872210492267404216923262115676385044094527293717929880330891617046702365570813950858064714887720880385963894215511311791712678965833922862889053058443863831616302371495779806330283757437717670349849135972500683607215641801954272240526567134701043646722352922744160361908620265390496322782004242916946296478591146010286266923942448320143777176081390174425575432344763858571169169925208615213364688561944175727521406115200148182139110815810584317784561054970569909326271460403309467178090548531462209903842940616485360425138365808932383763193835358490562066752177740758592330178772897963328395462889441068439351507390881621828009484551281206352853483743089567678255380960487923917336988738847676410676884786389617755445376259192393398256133888477180716753626711265621088448103527412268999898584179928717554210326610742190420551594372154030373862580379545491880756857026588428213630416702915947215920673830988229254012414294458483775788435453122582372600029629848346264481517948218149515721724584570603794575917723235418940094849383586175725087861646416417893902054070322335857913494896080805736041225212445018224724843026937898727279919566755939757848959181485291168430091013989445226478927377245997634364553548666518542503944192519231635236814889404874646707927604848007253304420550783204662003851287176739145833762796791532601058090185422488652046572488617579928026989442902479317035159637333589358738933276355056273233386271774686850110068313102202712617725233793932870280710311785361652140059643503631513204018026530029356571866883597134855156439564040463697910356501443707083895367696116036097210630684888575931293250191141024380353001495501117494684876004106286747127611266327468997567347916493154587942062670319158570454254562719586008362071944598927246316019604249167322829573627419228688296549556797186525273535258499097311913240831191358177994994160736910561868488099510378859896075097941823829243063411110163647553375713249923113069548251422027696648872238188887376690737748494724884600537429317561372217242328355681339965339299692969226860753394800310033755621058931036721789611262824984971908040274357887278847843595918447200330317505397529324138287247828446380087043313859944198659214947820572680343537165873846994468652237179259868184091574680704452723234482419153437742521373588298853253016463625795064628062569210851440802179547241615640860998040895178187017919201254469148874629222283857682481436991560985955104306384161945880677385852995102907960916224528695319841852009870087731947883094008440646320556863513236703024860539986008487601939161687051076645753044850569829530231931291644179992326600904930888593889384213974036166403610938999012605706344654471027008627184253934369427459533986171823968708386717790795812082038007546183365466912060748230182411106134881977529256536665587694721811631368097335921437444180201786595616832336828964778681569474312381343188806965108839064380754021676632718355798375232986358845655317973617319307541994128762362631614716292844451851389161883474861579388548131899663963446868257055622051982264421703194128305863401619815477710411911873901588096863887228248917900643331663449560408057090996093460812864138137316071061705161724851828999503240901590593928189317440007210180213812418544487761447898517419981330275318150251146681794237204346502131244425002310115201395027680490153464081863496009222935037892890864643101709667508355662834841186362288512232948856251749921101434747101382937484667899798532278323494990671383931772521966229146465693741281340595483173745630488665661866662560371737693360806140008815140473958079155069863981666543147061409208593544875829521679394859152664198178737459278145479512996708734809011598574571274216627576885838094247345949011660238282296741715633477276799632155912053042337743688940532309093239593409925172517957504306922867804769055594988995042190810007923134935251321642450554204954700497371082231546337049788273816840504364533483128900255604849572831655612792071244812254992084416429933080002483369427546269844484715752907808077610771515221673335861480221608492974790437239483865100097238404055074374975512100756507726611816686418685427810061062579627388701151160459723536962457597342957919992105105524826388979603338311230140092642813196836960759285888868519505705380800052290004638726011799029752949972346476113234869603068927141125658133568153110754844557077338479857238261382989797650974908175495245186943471205178036401053277382364974760066121986156470119560131527609231105361735231644393282572561088243856154804965526467933933110549811715686864989545036221250588085812011533504891220759080969264962695176933032021881129774214015932858480576952159289724235126951149349128439442686537520644822477077705266601527145979653765265851121006397167564220978961046531198361584188619660386350955604281860657404811387937932571810261567934339235833007275915107498098872107929460980998519339064727400763419768252127375125256259849980833117126838198858707368480570076411132102383245773617137728178718304398505975764131178135366419641331053419889194835898840316460973828139346312461628443458761769321875733817269487530786528519980058742124389635495906610192739935138805227303633362341394028246133942252248950374874697948409405129536164457345955391689631295261662643308657489540478690437182068866782827568313199877459886585313944670264224322128805245504137557322078040246047907961627706372365150438841255418297228912720982497929614994475063970187927074221812801350468083423603406927420366123732638462409826612673625393440285228397176119037722740797913686369295041335168799473821434420226882706598549534573009637713065018889125459363638436013051091299332699351129788681552291870879993167764270121820001868435100216231340981810327609783226876613050718767073956735522635381653509730316252128237568038200806515177331048388202136320697781735415724531844103594961184837803174095738795103506575973748889476412715766482580342830366516165811247177292489805622666672590287122692652424709772667171828984752826115056875577476033908544660482851919521481798870393074688407559109389697293790172551715260020952824595904027577442447885614915375018246941432880820568616141808233421097806658821206787919804706985944950698648314062352121139751568306898220863041303172569793150179273615488844719624787469626273363985047256728985068988814542268436753113361451323359411387050699877554157577395172795347090036257022015530596178173584510122501051287922598768731950240908966907789267299661265063084466942302829703647001365830870579580959739881850302099967934196976537675408585988806312158683853307172752166639930500727568002746949798346465226746289639781491845860588162280134035739107855701366063220775703395422930886679685755184532794347687556259756970494172368722611510864942386356413180019273495540771323713040764280162644887136559296718063065254493790119881086317665350097120871417323847433233789433683826328819240292461621118773371733315090140532081476040848880269114607790263002720667421749026914884321062594168484306976667999100684717935661496428475245109512271313107591511446770245430974352681708111662801029239366275904052136138251825965362223989686532143196552821621806683018136829513753617213599315146100179927251543509812828516452799105506015972285855117986457728167009177636286028505973736296949598129500293009867623637737699905775382853196381246901293677968423384520500582359519914793713396456953538992211234381614029101732935955807484798026885374485223080782681974515591549245668475139596525248519711909052774454311450103019641166123727521557796121947779491164246915341623543046712330890278957879105643640002394245938771615403102890627709048819192548210697266105317699378080020999644602040192080390474877393028565061374443906182997532545448585815200298335920562299956316021908863387300886590858253078091310680593598538866669022743500712011918464997459888412992781542382698194805047770975053341450320374286608286706598214537970531709257875404651182885401991207487476810778436261238725764342083409560499233696542261086562026983406979627769310542543757751086770855568268765310921455080704719399055789541095643126838320066659571773922587666501991408797974380238203308044403089255253857149053626872813280987893967943060683471585751073340671080936616366230432129121723367351685226499434156064574492761445635060783098755422624196081131433192992516935982528374116674749053952552623038077004046999266505382335892940461232787634157673986988056862868802235236885832491746833550498050895773334065860906122947780353887198738246331766164846492635040687127343435311032699897087127202706183668045311486298843448445846043952686600600999562336943174819757844724079430497190238815508780727276622789842869269185869667401713386375612233579535056859949657462418004220144183073294670389710433761062716537512013331740313048213885650241454222323601198093822756430801057200025737199804843379100477814026312973951268761481437225901762447295233086747460570906603803677969194036266477197390869521472766313381643740642185275634113763199097594186569491924402722235671362872024357712592004722021496592561796692906959286783153147611195642740169287374997886203397751738210089280254811959618426167357818609155022281561607707804785565977811787899024775368825876222832661195102110661362836284909852506096717601933418547902398374715079494207712429611966703783837050481944942302039643986812085301584475026076977722907429337295812009267079390371641514890337124022957652040292674394936539743595457532472465646073396483345262375990877791214278067286549004301875739183673860601599081341165841907083993116766567810466074485825216674454644337058643018217930102727243265180502659325016010122109711020410693775039595123321825086585118971799973521185223941003233731194530446377716842524365591302132539589895381587299669081315964327029854522391878527123911034635805864005976376392155800992834431388635040013089934382107728007311941253771509903283340743134104855751457379645713399148980189395025462711708843544312020806802147644541580743406587032725312504473296112254041884165689669174532735824164273984286344105314392001280532520035354010318007623167529122028009354910713968289857419815113692299420930920388387110982107771254648342768514568936193864338367131869616111952709273317115447895191904053868005620120404256502971953949996310896247910583324689409519183747114874474004768347345983270683271255329632892604177828794212670542388113103456633818232652964439621241068688491107299550295901774229030989086959513873873847382652278166167871570531117502340415344200698735696021901075339526211537621038979704506474882823263133926876725577454040469207824981451465319943949919757490805019383281320632397810241167239291424011458144157777807225914048474894778287524632898847607296416216877837905331046724026185515182697344030499743294887468016061464033520664043691174601193084995485173865046597473155754344371481547287710149002739426850179089274689575320738402975938426915851674009709871131044409844584132506884448005016562540748590274582239849652564817731233435749362127100949368293770206589554334891191170622865797486698937791976504861918041012320557597979959798465710646417170372440624453845054825174563980005538818830079356379130728505199431508955687009436102372824919278936155180916150106838631720200768315932820620533847502000652813599818146277043383601686763085568155043427748377102991775809027645658188725528832752387517420839864072682100188164149745041605775240890430522775191380840812781884711757216751886661956798327214543381453090267635920390543039191208858744301421540071269665849006694358368410843556604137351010288977501207769573322256699212082312743017057405596080505545156649788787290434675278697335048560103119497188271542461021855922951515230895534873461067119351082852863806613324484566597873463883415215513519439322160292152413914795163326969353405866169826002961300764819050631252457596533438455682170839372776660044872622618018668510486687854824271040352679218208057921960532804662354453920501082177559876126777740305085928166820297547066766159164971371499335762835909160864176395692786834671820977192254505308964741584517011610265188076129066786395824836177094283743979262976915800226176560308278941659953529080606493537628478804643051033558042666541138578844225905286600396285612658586050905062892489970245188861991399017166035595219065203596165059248282255846567172845765510043430514007710678806142369620167773832475742181137173892771794855053479818483816341346915471395428542683400073933898724126633819259222901237089056707016335130766443776651552609852571550273718318959552655157076554389551531720456043909665546212883019422222440276164711724216788355910697463719254865411777365451226925104756298533081707762859417986475127087854117634201531523724214359622728136070407780813479039358536353273223991086671017345874518667813638679129262026480894173009403027514405824627211599636566080143010044964556676692870451510292211225120521810916098988641369289023556480022473441607327412191787314548448904978394179203091854772713606667601231449577394403011955950289954960684094391070825096599629889435230195542912141584369578548250135101080204693920562700304349871346008607064155529120427213965461471242594286346609885133281758705524466519596747010921113323864796915788113463773244749352657281822501712989750571329462444538120226651482836143604823744096757426096152946168134947885671800722140546038992104412883404227397488179751116931363031994358019886979847983040612516400640605190722278925498414360336596042932362006753961553138623076543977464625261700625186260975996752170795694518074056587301661934992659720004509459259967615434348481050965123176701937664330381141725534490968847514731448180742470971918839269144106938001410774293383963210407752380791231928452285837179137932354336673232630996762829628519646141492341320167577326874299883712157289084010105194474169109895622558920590956631155608730162388507263979136367423229838871460350698901035475933503810762915085558597646553548664414418120683686512047921178407926852593037492314649206557530692086693097197104049034997334607867081326445293046431485791588111863885103330276018085349058095913544616159910232944909582798811412082845102887497459446357448092477936803094761510516757941232963401904181022958114482312267479995002347839357314402207591385421581592350574691660106637618155354431598659621224036262707145459410488026291997405400495718997161326108203637698595531983612360261990360699591509937655500609668735183889711269560427286086510388293403358836590794161278301928722216763744617770591725804094785529854749747236710412033746409462763503909557975752178678777180490913579773315612401735954126915629516661000736521822186596858921157935823500220248245714014033731572926684179469383795344037975058764430273267826490526763535255903696930547299594106753259569336459980705946869058842465167559401086536958276417907648181680711302923611137202744804383454264952660889236946226538930164340094163159864067240461569625402595684242431434446665686705240046238965183039403036751622103803396008530841222536005501294171147701222541769420564983840125432894351571281460848535814482526615118464868076762865719927678347673338472340942032438256587522735713949016170698046155469527571651132026484500299118079477143696260593188184994778859078610266299950400264840799665536230175474257433152575184175291813304178474645408620661984320956955075755601175671399681218326187032349457413751788614202786626430089754964050222498305216447785374834816591431910462258833076122679990893099327457505748199516003123242655376291365071519870007397067556834918602255128848602502349257245328634886086428656259936047224719547831899255675118074248540182987328386903035417453602274773186556553137136465310643865587588847640895044329245277563387210781561542130967258483305575103538411292113148917607621486553321107140554887031985937412322776377259167371341629124900187427061264466257484706655407388730170463484704173503686891564399797303383381783450697222923875505727665053160888110137020149410077288224155432118326006940533844873925692234486163492338377032894907064206982901451518574618668725083569539608102724615649047835220070930032572764820871415415827117926896655197257057119737884380226866096269528454601574391893268675272380787026861097513946523009979917107032174846851575042827226956903173579503498755369059259394909782980351719027547156516568257610324490535500617394173487529456367272956553912397899185765257804798240541167776437487672486521714709662855884567960602913127561296440400766297908672808821328225521980166961233899136649802634591764593961409753389187474658382700200090882365759504022270197057911559831506275697090847308178474438931105635652824495932223059596156053487090175793196237970023067249297414769055723804616632955605369070915694176145346128844628496695375445922800348628524316033213940201610451023114613912220516701207333631172511876138519133948847041314633912015660237207866009683076470912889394768095852727291785674640651357265059991317033953229233750842302683721949656636937294666345576479757303896193182550233081403373385828366889347451207915242865909582364387829985664000507961499934916591083361136176080579482815777102589447320900516781594918700359113257690879556682514713540956728171393410218203230314954809626271410691159738513130179296500041229204154624028195972273390551625953885743920488968669765502899943896119217580821469249554147290237872204545307449263818171548355568670535432402150104074481341698839341452027491150568613964521522001317660065363992519446558747160303367980520685771868250867026201926229614258803006442701701694983122762370924581410678229736305070096614156547351366085738338267675727191065906071252531155441634062834946880836686584018161691643141915941039113175000133291659375235472472761722078567091928300173434500370971002483474979990987020535392020376598142155293331412655995368600462486539816190679901536335631240183605437973604866111016450516588661833532178832820907993407507092723951091323784529807640324184161558053866351717552355875471660840709517321919942268492948473665529651075123460505498676550524045518436942641610170589410016005123968293947761091009062447119227117193629299135226738216130516908300339181441292291222131475455829669031206966757800040460819561826443579336422698599168394301274565111705253946090666316764879777041802938712400478385776001625926342015928343533864479392827449909188767447414722475734079605132712461496199508338220378672318446029380808280759483595251710519862677693379568083827763978506917901528114809280565479106395508708498281224006528073135045825611569850951440718998044877246369505960015906719409330575165423157952315249759419219145216024246698585428079951180115829541922504378629056312584062222325263781634367290836214003409131562541885680463500091053971813356391830327344423023784358319290401463356049019915567964490665304884405805794887967239554947869935526688971432581499876471429977612009901208789970612969571747146352350199737927984050394090826167369086015699225112349534256721102447830009095677089625414012458453103115862509590919276154915199553695845148822114059729673651358871164537228740010574839387978536690916925034585623934939453376414132317597457266025591344436484838008558225978985339114823708322463549321245793215128211993930221334819450978158912652374013717971632334106837349443300872327611203787719720199574595499002040058101481436020539517778308018145275202616676783389224449713095328058793281884413527952297698590148918589480834369752241416738605023811634566561362626600570850831089012157602092144281931032357312572216692601618652176083370161857543836508420334892434576626690517515760400516588124474951403269095254922910452942459247131397574392315984907192100966851406455398322880605220842371927093196341388004426682775187114273703116385906112570818200109622137766720584315458837199222765510117483809186110753689539927300932719487712046924550293602433354093562062265065916034779674523057057438604712085808179160363956539130085730811290082395370534749043794505772692612092718867237518433308288234774920675673537107863128798707304806760694708028512897033734006120384495802789942787789866743661138588321010291680851643986913927750471320159545402143630641042171980946268494001201894258560331629627231963765859682365370012720574894293261144708077861688725531499658022652086168161973747721794944996189373720872514214879424741921885916451961681009459300582500756412894791873370652976720442590490352326956640320527569017512084854160221426523359747348403943563659665520626044685798218437545661519465944572613582635544307390668127894129145766438673186499766152079736440945735166103026772823832382335355867627677742828744629010793745533112646725032963114990409563126176772551632116663922991427278315729034138000901316996197333906108080845569730754341850805262852817070044942650811633766681944096242467784874827953279124877396322079602102262268508114207921264989542157214892003748690208242551841063835492988255191265472774205110783324515396178278393708930184711499889411436186699413642636478503744742783814976849792246464582986548206276102380141223639764552771611042559766803295820552961802833633953828561778741103002436755645903153855468778529678390226055746506209231113073823829004244604063381029149900500486714697937052496887323299026212144702691035398152802605739148260932685509681616109358119960737751500914356889137998609129947027665450160192071267446522006042387011978456357507932023007936512450137730006183919550111842969877963734200087967780720173314719747672754183429727459486145535281789290435556152796509091670676369906374730991229132850073717466481440758816579366146963574871250009296395698798308835407697055384100672132172384530311163493554879823011432030390680164639931566412311949583677590132428232488940322254501207356323804652771292188325953705736511635889381128509348767836507354226005717873360561745409998278954069373906490455415924433916767534066571998286292245847485090730755939468606265484380013624992603722203450959536000774414753381258389991501438612057161682574821951759356171128685653489463527430616290008876869424252535516971543098286266232158794506395417452812259311137758659760306700349911527994747375310133963623142686126227551468349471761422037097670492298275664247551719121932940218475785092589515220832089762179269565477059863751490576093219964320221281159781963322539962730551755654353706560323080390458188632071202114359446290309494724298330883858064670443127582281054682383393889438479275851156121735362452776349917441496315245910614851920309149014309970519386769219760855597179063053092530190353255526852360359699261436427966518994731367793873476227749352867377858768777277379679493080785834673144165033287125583226875807041642717834306607616948256135735750218699854495424541084061313269501183187327632438277380085915201979504350108325067957521343593919887650501374919582839169099397629059131979667095683415609103188360812457462579730245874021839860246425593078008713937923767590166273404778474171667652593339396002701602673459537500995649235072763568112115270383991212878706201529012569554008430722136362703197979485470426138283859659066518130233028509756147297886850791515267236495385105639532906261700917989823168318386802806031727144824718272913970837969032186966279212323669280551042571931953575724500818282694045186517275532686584429768313066986251951603607739708388402693116949901326302589006929786592504203271869460479513354751927810718330558729331333733322634153392903374245671710955957944137791216655268584738742042339123784560535882933494739729043382763318085908705579580804819684117640542664185821076478129694738441341048100944318261895920433107363093077999943417767289347001621979881661866797495920841196384136440420677526378877016497974431447038264370296720819670586937638659724683904597881276817161000466483896148536287618940423721780675244235685725835835881633058110341887785842792624530662840246396998809232838186932163801175394893928430195856618550916660776272292428261897030563900689232500798813993753092623400293850384415196753811530000809122060637856580793368116934445590352655961704190656371081850652537481392685755674303922808224132632953321930947903060373227563465403010691297981901022687573859900963625433288838188183647215991349287663777744045923104758236735677972818977422594607053711513297141135866756355895176773062326799302267149296588910493744604402658064801486988483859071713208070725711903504564896316306344554050897111203159081910764880047291586036098543672811095953766818361315857295723404188747236213813509542683022142037307178086061907311104197319357725054580137676611757371066486536972513092020640285934136247320461871367190303995515108753852408372324832832213069733557513419660967177652900256421767016681377050451902013725992750589017184433524316799221088407972015619102376100053117776577080210462243175057187363073785494536805637097008278243723250861642776969365146625467236590130489129565741529066996376894061895574035617115693884681462640684436706290913867507857469122765450707690892569129587856965937982388115133461667373308405757470846136870063739052365974788623279486249859278586616474811572692698541564950512067360233387466343348385816676647344551946609903086350705537049937984217710636020922493844915353133781949911876234016203465842305988217727802306297084028337929360359614882463302960539322784290624937717887244230662645683313267161047293055586833682739687634863189642445864800340699493785084831008406690907219201072783920214385305529605319190919895390493844538164575468342186345034129419276156546467886233296630796486459929500673156953510552370304182765074295792770109051306509940607207570660650439190911114056020531166922978404020547102957434751131760132893374605332421979935376050827983153356421065226665381425292557193473797247819293636718703785190718667268663636211699109698355264703705518013663961504609989597477288432412397634038046344905614519432589875776760541541708588746231962479290307393242525762802819081400481869273036398613916771904593907706483891332826741733229653504797160292845555752409069324167498252720964378771999653657532600000429497408237951456311026683712486964633744193289124589963043103090210245813583634651401220136072774616043853963222328323626442130017986992177659972812097180378164569046427493759374854866375328563859864319226772702586074441019522916444949774489867818253371203823405939430042298653444562808442829437960751108613240443895949431745634856542439743691305248053611735522816868242446878488116851585932913543889876296411968612329485949977689280277126898990935448254003598027912710711815864642221545720403899413901602865022298152462496071474779191382543457468334424047797901951417006992725205286936782524632313560466932743588707010078341928162968964706264283660983033510301697943734631368279967384903525305372592231082368174418056367398713068067489874436402619700842967277232011753770744266756553870309152904035070853805822663176997596811354711974297036923920955992215212435782684880638484578856442417239750259526987849688132821078364159816158289726329144909305154817348539627986781018897127468714926583766822064440337167478344158159005528782896314890108872371799799292066089216772225094025339672978451202703900958813758497171524658427490074988207157690925112164232810570648522566526923734335688029520584887400918021243813234895355552261183585983719920592589483773353374858783343895067454523498133797064621532970437526884589958555559908118238104795481518541471881079037838756119144316694045891165714151634813134506619549263285956519405145532009163457679099642154984280214094184042229139778526059266097014518548939734607914960254277920589900358030434672811193065006329287990418758490708592966982564560367658855375457171967434097465139201109919062751993540648219320401084062171203494312981912493197128301866616623754379191029477680986087750902208381806398386127924309660565701874968512856154119464140859053922723842445838870847168725349722754308372704644076959635968660638363471374015190305253900082326431012988796283897699002556373060476543539878751101341808941049476090260857868242015959028933299009346343548727643098347341654380010358501502255938759174738648807736640417688797890515204360765256519330344705107764150278838590037072777155065978990020515286040735483024550657737970305913232450437639927088054102830709179668744754244802393134811698785286806451273102920684606690972770758110824303002016178959682752231157123066796576658189598530539582891710817900221324489713624721177503470569078682866720116426980527499569034201450626072554160731474857733354414759578593385005795023608890813449682450839030991818467961132866362795278702763251728565938768593936165624191358029216617816721097672913768252867050822023716576326707206450136874872209163848159922989604924298407900456523650921972672248289337086015406830195531154161287047504566407916852642291925023178260841653987211087452699504176669039713216799260585846768378296939205557427748321749672662034797993925577355733597946536925892044823325122726979855162383469416393944554126669579891849564606848455625431333261663154818607884229803010593132181853703278424612278679147939446819756747580086448117255559143391649078881817952213240519930661405489062031846304582939370255443796986756807610784074397907850543023919655755608108040964048210015624264370891799777239711126232116081190986566254547997138238035906909744061284812580297693871582852443230707019155905681757054001937087506972657918156220785798189921453995027560219994590295376527493150460113918719141271677199036497404716202076843258358586961962820473379982156786427912923913272759494859365292592872848276698949640100736245677371434937084759458503280431139882313379531979299867409330126260929117000957954914957531927885738687546916698281402812253941666283912472081132628826584182258547786618245162596149622258294866931696437208539950681957916319014882467505897242746408575965193598838918543272907850274494884295606544533944594359276355857126163823520701420177910936981329748109805971470097148001039678153122612743668985781758373993735503025884188383516954895064274661201419590855836074693269091869187209288131625095921227848512698480823751329128249271076506311566038275046501576982048715888022754996647217897280265475512655459825191003273054234308977078454528743983372254733710291281234656779112966022305814662256459378660586191360952774843328623527652341188351317377481946382444382338104913625739808884335005950636440447162618601231466760819940934286007189406333155636629339358575063254306550488929476194794878718554421919068612417876269511065899729419155476559003123808949732116585997154822506131039321455970576764758496080212456581834510782965271141774806945421983874508287463073909553135041011724483328914885307074043547600383161139361856228747849955814581902314895194657552716403151072981442457773948899348725457687144679408507521674053782942981782184488402666777849657590750004823631726009399660687411003928982104669156065679487522868773752739682010146852963718374553458924670431896148055797768029528754387200733107583059551159637083734898488759331012591707815012727050936806323794070810980833298115465705413745048537670285904548910663684924373508722296614059419447783991945094480783170803815705709371439064563507243636923864436837905804710195068480805358532826010378717169844596062054687726749382976156106327803588970749850181565191304434458638243483687688108970285567530797910073436758760990578199274313929441999777972041246935602133377198230081708132871377843484170595664394082892823276751409885197830965655671307376884891906006169502998194475076776422183168963701010725693006624109687102263314589072764159896458790168661291216558871417777329789382206259400380064583574383327948472803680331476915751222745340437764873894924574519184279795816258736051884292571747922575324370645616408896341964605320466417561871555059042712100586803404374443918398242207049688795274927195922946281119587926958907120860256391005237622510814355047959885339108246902212412696097967690193816157281223559347207168742061232904255229145512251639127219396067315763661380054963906051514243900966880530507983333945017497799290531265633214794278265081723847765071613663995038030055156961892451759620447126563708187281382626377865013275403049830321387004851287232193087514808318121305155507664374756994905005758684490130471031800736958721960797587938630020847089037302436968783792933551739024539789925393086047867541902911102516874456795433204376348153576653266030796598681615181490013234183950698742563040471878361852453101985820020985756317532091474461728183591632093428349747646433187869478958825136161014969256321098933203087320522180366676718161647382854733833662723289479719774035157318529920661415976334812796680334237092627144486728185156592650677670793514618675211797300366383255476869464840189322077550761889742938294972840737105440931942349241285186822462254339019973790556100573872188375294276327640570214459591926746929931281437964514503356189295334193968492186980605771494515529066825587696556804513290427613834512157381955580880922464493880476842312875070032186275088751799722721802762146292879325075442383918749362834517679107817661751296788520956011557564878881260973417584202467314819534496274544321359731600306192013291028970884296979268452917820901629205531687025808468039055317721897955868090597129512833021209209391453149370996363511159288435067005371355207412581044459699659492612359765867992610734669534937977628584583927198273831402283370360856193979766060404889122429180540490202186086651614740452682953018820311592650743966718471073469181742711117347815199388193941539709644976009853497982244954814110377783885879549275574665572236051168109875385240480808515005675063192540908020713225521035425513960273358208478231869423383555656790721277423527673712293472597340344253667718331038104591393998123380774532852142004000952038605688779942808847090333053511603149875173208844492806990617240482855420606676657427267071191986132126384494016764916097373296836874811955054120210753762548915743494673300297563979963056024094237875941019560944060292779902167657463112844181633370867124618002300788590858903778413777395867894690058544851728160987017326877158089984414770687542571562944158013685399062410999916803943418320364987442263033516304559775579730248642238109521002031673170387247155484105564995789310852321881595520431019607510488520197769316218094094442901339680500953932994625151515328013677475464339618318460909888422772647434037848808498218793441799762207663461937766361825025869888944227020398580614491765463645501103947716059849768865630863239264507128499274314954258449746751893680125180937194747682504446455678585548777900623763768964757428174805814217981328746275586703941360610043633593026187402461815455004102082451034584217691908856065212894311770515331520161639026452983736751119543370772116614138531595001501030313969240089535384330399353925767263888560874284845887499846065767898807775708128982241686798407006985609578659498592644379754395096260967171389015320943739525664147616056071202432001426487337544543801828342123611991956532701564962127299682845276496838069744019201565841084279088955188373417383402601542848081179226483974392544072398662218513654760421477303284385944203363727634173943764872367862698903144032325197676949398061641934166285469729962349392127729347690670737564282572482238389456784313873452600494009894277346547166676157352383914014324044049817666152410155814354402963691656299941823244235527475543203414071066699577851838022749562014614083878581791994669960870745286029552331898460160915335763246996469965185128080129101339594761742420794450900683738785921009291701021750080528457062828402577877034131021198716490628678534013461543328459841074126859496498671254489118579027717369772649855650087836331678834348869619305184915330405415412901430681304925480662233721920208420670326598481539013871270333008438267897410836281083931550498761251028402324401466961001173126592397901746269409659419209767321358236129501021878073262526888333562583864123633781477495353456002920958530736280693845330214021049137462870472612402017582935400678227222188849859871796953890674169503313102524487117707421498795736873050537251179565105100088540879289760972228597205439456734127224494077137696570591619755513401147364614184380057587325489859474358710996305470416184806271609978832842449176910922577854306398669309848897944514140400720122865830105249523889142382222755779491926439134547386369521229275361508507860325685494967820407538640419027779760958270534505858354905415387927129413419160285928077555409211283445280834909931569394542536339179832250099921092580361998852151953608256296065289859532923714155898709723069740679536330805073470414407386209805114830069347914332563261967140518733998796709719978797908754315068912752735584629619527357730350861226820604129371487953954775545439971198564658369286352227938257884930499110704738442402259367100973243125322038829490586624899147053824259148434265526192322897080339937473753771739618095815984114608367514535018724595360128551379299708510192154030499012341939130585174296378079272121247491692587708616778074070177037254898422075933074298371771088588910209467194568644383371437984693051078086238164956098474294091019181155785978657431305738396311679207019393646397751551321353357348935257777462493278391098692747914378465621022795096080265468926369959173252640685156371115123371869308264452236476752571623057791441388487951370928416542145214617612318169835070786269913762592223155061715049748749705896293725570630023586551226787348227615594159408513681981415472280809116667322972358760654780059826413688092411677885529116468327480096890512261144287963044204889434726368551631969882703325091819098272043365678324162958535824359604050139837891215395998203094109491830262129238399457036793122239117130906292691848058158574307873793115439930037207518222291079466744166433102425793945922832295024100353827625063735974727080062740963911040517630063181241244323072168254041018529919765932529417822662252381072252587594205470762573368140578609464483054814182904913903735418329337736044846448886079548427705762926609879141183676698832978294248248651849248712874290232840382233853489728954563862314493136558348056170148004970867588073650106010122299860237245879950818912616775144867286474633938167834071722443926197953406723563926033120791983982765673782551813737321178388067917186820706431643005717346946414853408823984052233179151909653859468846859136602028012771999553093115094686952707276023939428729183312723336183451654225271666785117727578416642444057343758433143526303656530526120068005243432436867448781600192555031487003669236417349659841304910441878720132100239271879106107741232077247297560907395547629203817872032733453421803445983826605778076716007775924399857102867330696332865908009221307122444613578981943081685499522550275871917221360425142542434570613393027749451040425397975346697368323023690784087361494522566410202404982541780760447658847247860802176798536247984602275922598024191622577733992753354185127469678160162696509045804827888285335186449233486249217095226888878070015177560161569138810963557617810825690053210152316919259068859480832371819024907976694411892139681312942892939303722727248372975516529692633371508071455320874964895023956221492933961745105245261916403396072370979681839717649957727944779531370904425980522199077120113485618321313954142994027236534627075724600454528125786783439089666116378992913112438591821561379370022181125413145863726926412713452983357609847092041734808355185997148957068944798674745021662763227067490236820423242182480345612330693239412778644935680398583263673264613981127190687096501203248098656576056674439284668555457958242094180704187584346115630361510918558688496748176584558472805966410870326444128625660149117187406533133275061466850701837615295018384618932810729763966103361823551105675944665796641738602666458227353098411855986843958292721022275651497306843787933091424022389577045707553056380307012171415344432429801323001597708246369221841063101660216287781097477186146244049675461188747232578912911807944772531478290378992065305409912455541088811135747876450922681257479660323426582619154075008438564218208026099443695293150319392867033778995416334086134415033910425356260361694164962859099161299924699032634529715344723422454209296655050918168772428760475376313546103887598912859332997035442541373360867624687285291478386987326982612772700796265659679906718068413045794425372068275409358218230163106029593566437091173576019255777436861147165812090180355018184543626625310549233173490285120458818544382618813197190998524161952260379833734723028891817333768645330539707110500145563724733901023929196312522034164556145050947717547471156782157083188523382685924569922521794717954598188200807510044402862498752285469077548446810526786634431054642439475147733682648727841126232770725150563931180462654825090907962775915221113738643577034920435568473504291407860030740159692281595639747661413939539731734339104867149869702516319684362097818243566567172725048279883549460915923942383082443072319730247802790144480254163790270709743481456882977057762109893700961453539530546356947802402113091691970228193590621164287556836641872890649706492134224644158251839912048694490202617685285146545797771949366630498609022043381882444790222535871886332064730006835068071345326838311216096711828291941694923919792876787548139345725125301362574627072805122490722546719431134876481225079615148481662438084949309714513813303801143742335563836936073958396340738450763970975276786728731065403540281327836422006313739232358369292846376004480478075600073790182527865865851697671559210716105361321000256845016906702257483048516066101692720361623857120392217276786637876891688568458529140025742899314020489495183378061962924472377081611221876005235861963470427797447494869795832455021712240629564080432763816546973422754814387256850204721173922578829126591504872395331334118081273537797613849805782322974454835336355933752829732079601894317939558245513541629821881901965343687130079729389010917656249089603212875193929011341227888569353242427848438367945975714922305249813379810997173361413944246439029477981094225381562376280480348661041395834080572090585594704163402911738983659178639302202565607127606288021808673053166134645432685483558252347191177475261966592176502371971373466453542925611169171796647881609674882028188763341082124198312293047507205300593003562258031697946933543917226335515850006659823152167415525527798314291461323044830949555663791426159037543999336452127273677669862038999980083248323164854309629003023735719211585438048405995327535697011626214670242195128019771064317338334135305910020787035643149898550873479224416272295338422748960577937793775277920338309208777128915992735561797869997359343491981420731747942053334418800163558036433685043692507286760160957417570243636268684720421865594430090200147167387828452867013061784943915143800850238678525714195176492066051198192469028378255372297487617453340906459376030125919237231041715760539138773133949813629681519014734602029258213558968321322039990241039981011556072569553689878023626503515623206862730322778360654898644012797903629511858826725695860772282311738313183001167486685641105313360094575995884643064241906420243991543828914526894508562442350430230644655169180560422175065034055370346719532712078910474658757972015930197636939744709014375136882089930946485860353009451355345920099168816626585788472490509470843062238710884746211144180337197167513611838697425797137053405584043643023314415052717169120663969781233276529438929470417112983062183246016317940421566394484398727826068870369888978480041406917994205203850235795477448037811320709182573551510471580849998317430212900119300568407315238726000488886173104662974221334790952247934409099792328150673496225721762821385824708945976676846972009899376182231417651663240492046026570809901707120835993020255389985503863440984684766235498132315637315988738283693103417966521220188346952437209269011525326269559160023433994880975238795977116560834550781152171171070053924337365106790423862409739532704668959546998655086892122688966485929212408157170726901893338193531627195911099502410105125514147463957784324857120177367171062905685043504271099724987163202122429678023282246157170632172615246724019258210298338519508004718026566080127942391560189806000558337106606839262826785081260169052319813754223772934647117088115513906973830979846689877951605528436217146768440955795350867064423994923937380718708994443827057021563550994671063623802062052958385546127798732390513362409546872394693448403694285936501901256381070451590158945124174654971050499599621097823801752387862823431950116638280255644175070708646538447248820413089289553349234655515785948145872595942905617323160788190687898011663725239382319018215724686072047098182016805686952335417497894663881280891897058169529936877437833903125327377342856316003601399214539779223214469611296530578664194825863248682714991315895458889244427389326350383027442835899138962999838291691831181199298829318021064792654048693411813301326735540194958345202399400449356284444326864156522121829622210364501038857299041138652051841413547801949846588892594863983832250424850249189800438183284136195958220984486716937041889001660699334884527183718361610653371142635703226880402378057554004064819471132462068367264996430298594396587044560390309431478691015424949950595148533973049551522086397915253129927594774860856926189300882845853681551463663174391879166771961167129081806537510880624534330300296512880274661789264855813366498726864132864025304538398266891801321657898253937198953893202541231029720342083439129481068254818603029485110270012591057813610532271061306825222639421225832351197476394554470634326354848420634986849388819810867119245758887533659463644784900083787154470165075595035842140971343169282788300782383357716268831862268037191163141120107320176478353695705136137853023556030463838337388237286400485728601965834204283661789875888007234138837401236094996670188912032930249195097873525115886630277028523650579064424110083520112220494463406702278692315717389729165237155196703619234295499867101251978521616884578269400263858701605712259270437541392497005973195035476846936170446412093691308608054424632498630941478338224217528819459753168938737207234960474057148392867076724424444228202063048531511965771412874572249784205159784596489292205822218956697861875790560575774845983790948558573535301023282703846812411863188237969167980706887045283375162730739304719172790668499536608986254841563586753802276862788859388836347731149821119701986281011947262616696969888049340986864138230640719734047281968020702665615889899361677461228708574329741674219588144652248586828305429112166345370653599036072664994208360724265167676726998833162389508635701706864492470222586820214956075779255748332020768449934761345964768909425739304012768435827263730424513527023997743018576303639400215955273759116874942356282567300965803722539710377577670568178539908075811462660943509043979243532082730593047828119874841581733119207907116158153801349882405916381987518583633994513884961651508193458436762349011131584408478311540337333389234256844007739211735636064305845194728531996358131771128092590747184745885475773555451905171648927474203500327092988327127330157159307353232374473103518531424920203240454004019645766075427896941875375938967031568585058195767739138379021222095965779269530389439799583789148234031969678649935461696928084265924231433316048217488869644856755127536949588716551899800930664354493422770236866021922633183727892629498819245885983087649450665786269171494776872093150037765164504944023273028099086686504444214955580602583662463670192140202574397526808681734821403093547302289811335184517712311551430775306776121311116125514265774432863473339874128049390417238964720433010120417471284033902344686367819704622555980849235138716490626558439922980482366119903906101224956101318170990282874893995355167678691375605923489767005558672733042150395453668467762162474188850147266888041692267856276250719149906041714462418767153963983773101872896119370458801954815962456914456019051771417379135840626116738418132254348632852353693673084891860349744215544548623824040584202300152959987547446291179947859351520584179260341796841685419872945203125660689706532370971883871421032693498248594457217673612693613251482343216692488731023026344153980367816058850889789835844133233539422912583877837091777339101190825193191143458132995242050207237510942175422166991418607766150831949092290739231516471580616736549087710479447331654840814691914145033147097933136357985662760091261192535182296176081436226394417276832413214241776516354856424233502477928260782291552595128602901883925606745088645048524364527700925087544306489211770838632078549240556221855278964815523517376622300738967183954795609468885008276811512714520956133993113032990618015660389928968858114981780654539251371543529782658114750821757140283255225007451279914864277972791346178016836950014010044181297243686250502046706497542151206049212573751178263252418680474571118557488249139041427615938219391321035852242135900053749065635334060506256414215509465068098225917249182288268949596917017316825505025346916733063526817253084063499967512344678388082276312295596863093995975382337155188936602354728340568568260528000534273987341883252815498558571232837459178680083303194718828047987787156775383703866573140165023362929596166230140526414903776405228669014859461157094510212523734734673656285885471730134199707206096593668004491816343521103034692221816149425442330944411629352116216117494995686549833141934637090861987398573384554347966003905129939032461889937319121918145031833854708795315232387032087658403037517764516346245621800921024789569541560837036921237016404108667861650145945828555209040560219959642162569657600761138398818869461697305610538053810260275906756907228719417149618540707611584412310267798453539955794308609505217663583193778146971541303131257218311383255620789925493461092326523862089329391319856331133297992325239916065016617312507064890103179276446857509856393594454607432430377439246510610015824978305375680867448185769803547934925211653691855746545308533830047146823546956720252405640067173872150563357875377251712998614921312098379501780818505772370506294062307262046155346540069596653429396399739343184417264744113171426321527632478288631005193125584246613934015988091070325751840645617658787095458059020412442201216312428451728591747402022765342521031248307564794786799868161531441999756601982333771861892835808305686147281697728450144079257639176905676219897890704682207379254513193116554436409117919719619180769216350452301037607790753284979454454600964846452763342945868346396731806520664435905262179599557386135460201499966852369931280494174774834579806088592502621644675869063578512775068463486519720982866242784137484792112303613085965902779865673195088565337943607299370617905815975629929498125081229536312489143967780327571931898757451323671912171101375837659809838217609369854975831073432022749505389530593692050876131201732773572247487421631809649438661373310833827711055367582272954559198423660934252529924591900297073108783888367313308137400977225098131711417378813421991785127129718582230293956051155013308288204250247563723221441966435670669600478422078989962556989625635416731335728666282655481516657719367423098791775772806619158630200803740253760524742742813031833168609508135159585073145735533148865459945277929884294243616470019452576463471064910132305960374235976872264631591470242857825917517685098793226135783021494814767639036498233225997736625622910718214212934413294355746422858917938783879015884718662019108306466814390514045219583721980538143296940507033167124452666684684885579728828848804742536023913243477682984525011579950004614801783233972502215851610194262977286686237399137407517946560123923589532215825159184463754753314315258696135679951036853025501131827826761234240909864769448431083453437112337454052451145365411822676554619132373429643017531054487296387448672540933436509832144885442059784080474314153819011264461482834527102674049489081396877546627108690209164377334267024514269354047236653799820069235591966210056146980701217040629244142879338897718577195469839229281705163508801284117780915568661787130993724645567644153067690113370680626900697232952950402366513931526707364716426274009869987801128031312670759250620504130119828217796507670787684258401623334848105249555454987953743971888683525462533647076525661179167446285475322810631713312342738771988723584939952757046223586128407986463529950997579528966043781078578306433443462059763526598209443066159846985874885475222832168670780243500367863503410716292063066090051388741529481596241364064943234569209653217928587675042395432245279146782302101545695401898414094734319620699589704316787144746402846860384294655434761049123377810072886264664647123917266386938727631651578038702405817753693495781677830282657653269229304150301250247907045538107276105281505902440065256085200353838553467276292255925761927587771030840875683335623869529403221716020596964887642700195885099074409694994329197862126346372187886183786113365658444278781869519099167161437384604951565077197832529109808016293122300287500452013505832535151196285942478986630686723799119798902486906173331782434509853737775513214666957906251979210378567658105457407184531236018496023764054381572321435987041146438902606601982286314139559103782881007062668818630088478932409432785828702782997581683506893996856829906114400227927661723525877963810044044776880331913791156213148770620439678599374575250372976125416530110992898410871597668320892933047495608414010322036523103367612083782340287501814683386782510133710368987531093624989840365944710239920893760839790942563315789344346641537680377553644690173167687871959548608664621654915119401552548130994469105374229572990974049735357903826496433787632473925819302211684867085987123351923919301232371537372444651692525066062908759689435579905405295553957699853109446645482356711413818280422829563341056038425474865992914182522646212907660601738926071848038516114773229595076827380447685626991855904521193545579849873382870272321093626611170143599124529351471176641622899022974250932242139230667299121319772537701043016889110797854372742240903245176154639270517472466685289358893896189752276249996509116076208911545646106441236421738749021215975291036792359686816172177423493783610087601823756140339679444563151337292747232113532244223975752593815069384176942193452572803144407510774275614332638636353042707326066887991632178971991923591806850941265287324612178590884771304525684333379108533449817938510507114189149926686200065817211695911696834635966634611065062323750750484842763763858862827659183335694238921560726405189001805173770697266627331910816727912917076951005405929548945193487419851510545875055595815021856550534681639943238730929283443751774250608999030666423730928992149683093869981412802209644828019752011002786069045320318005624985028243160974709861151574429279217504838361694154949669204099093413554619899533150036764342929687363850224251628039630188365009003380868736828517273382748117522804334792075620156760490378219071635262170656689915043205954935323787993156663785026348184688605136844052519922834989738497673476343100620916917194917736569496681585573312989104995110250509143067152206534649921329114300005249803423925806740752122120801388502219868262095777645803319912826006497461075980282612959863886561684252912617686286254260061506151254019183890536348817687478884547174972327694082774962183230386292197349902876422048163511846042793410862727941668926886876949396602174631500358489398439125976324826930255992140851191088393522557142199005450870521963562952981856128721714792490250376052019531933395828152515150035294542856675348223042087569579337452597620942417413420480775098493034216522052172286913067423317802227231301610991082431235467408587039879504003379248499672871497775395385508381351548613090324226767626191223951643468382176184811601006850997197027578447464518752839124027380362673473944582363475083023411301030009372669069639020771084878973719836639508469347233896121233894020973508874600367598915983619630889237023364516017890792090682705599787624617280711469795936477345516008283284452538802741348790673277180215198135522208048283495693226161059399242861192490514063525544204884994760052600072847307483508879749094384336082261624039086827025507065687077063632949519706894123027584517973469811470687221145951372833728770992718336112689489830736767502975315928044355977874216868892858927376334173224355275137417123579078679483890679846455104784503064291464819357952532689185018250530928648006061622519544665848786139857358496887213227751152656300198991296305962203806395152817112735558250011657735081329309738831909039956409845699270373698607754092776765231764572494433255379298981371976844839207784242395479757404559742826512883192918528067745214744210800642427339690199724459732150441111590615520296569524080952770523939508224884788564691813341796949710694861753991927539857872072394219268040666834408586497193763224478087226266755432697106981793819183105692152235255722999602343528296488272745892788016250697538768691448260250823968976432171600436222571621348530494530455437194121552857584847319016916353261306597814990625769694523336398581277293670064245677355181442569162166743149930464684151653989654916308294448393558244804028704395733031372129371185949420190783256035482035672859332511675059297868321341732822460585437421411094683975106560844644562076061085813831571486569612584086441928686831747488027256492841512951927284376913196775640259219377667565074245511770377160802089500767960232093469184787085428695436489868972848264626510045065780841877021857118504982903488939483843993432965492697625177141485644600337624864309054919774680640149412227838023024171726704662819329586645356766763029819378747047763248227259220632611069437992476307875614964891006198370791381077362796813675157396572920615181879691682625166868130187356383209206086997929094182626627430217252529819162662446232764410566814987730870988887315459792700995343346071789212582335924263593186434134396999433097488730646366063183244342472470392913494805996946816787720952582301506380655702848227807282045035332578189082290862720461178410277296080469871477704329045179317263960368424285419313064059998492868726805310407801816916868941044493845708097997840511319958149250451022007428552306646585804408227411507909395908413130081371512313266723959856568959288608012809039030291609423904876420706245038767927301430733060897207511730122340621577148931271806605403715274989693810871562201020005447337875327358177794540175314372610249689160666146681045622852716946449641185775457440118152495980803793324536803598465397034291396405328452498035963830358431875914669898257390718266518662002113542402312757976666587033055108243126087442196220533635749002719168989691712004139159081664899843078829064090489887481595996151008568302080814843361833048753667972106139167905803638262058095515692442737476521317569435701397010465883467249746451295659966472270887695051622614647271561795066476874213519888586539899365142057846148976139588725073224025009122029694242013519057370164567414913309011740627557145882743269267339326690194432798511798737310541104516156569157578465380804293337446465728079845542051250690121020355452358964813167296554012062051198935066870600498709002879975541817866170710579540105125029262221812112610377466010976141355575312841265382615783093095587276917967586491603536365867306361676700771042955969812865097751241096035077443164025978528543695592621720838714277673533362685460918980703676348228198175889386997147377017833622755834375496463418452589035144708640597659151051527290863279772449582372013640977557693444714830436055402334436784754081180874175961205015182914221698099794878172063473913549407968478738480306294134792329207343297231827685185682435023628829212650949985529519291661693980225111319559521862204910459237669085845405776426129538539625307096732513678219904591771043964997980483062456428071637034012762803840237244374837961076470471390427990196941104601592464827279599703050766280351641288955219791309588006228179280435655404090758333210473015064164895544309192522609549804360346134271596599363943535880474478266559746229738914164921130651770276099197309909159287644694863122947345886677914844517151166484888926219883943123605379535424446922276132621334221586712466819747365117820986070217779585567347013252809367130311116697193428590480055976601581124656530705686043511506246826744997671185066626731242759125458805775175555993768121667175854186847519147820681659765035903981251388300352936693842632490204319531132597947821220315528296099962468348488701075305385606050342734863432224528084601783176895459613649582224112502465448058852636490710339515938900118452395161135913256213426065407160992638673307879172365235039858438580639005178053600186155717067216878760264355074371064852991071165130769084896748578803218781732005638653303974643656161080838924264581645687384126295393001772017659545683828521658495596696473681460636736852206359850979014768894399556951528905509528955143183386629770483759374281241535958227846855716823608691054560535856976978303691332478123984378078296672583805835744592279483540832975220360020818182067266111617023678638043389676098219563003549270467775045965772019898701964854918664404707615214168790412021702848737960530646366222554681207167426167752663084617426966129881088090691241171941981330550341095997680718492357577165683393348586099426064500196204139715422129269448860312507401237160747504707070500300035139578211116826321516589759177845761938269159247635236697112462099543083013492605739282993751204503692903270642155454080012517583141981056158951608830398479143199662035659105154328282497851523220187811402623694573125383638206479017454251868600117577975894447710405894039934016769277150215899833747252812640465635127378184738368971290266049613352342239618340430872680676471536133052416499684843283471053396238674348118821472063607357061131970725887834140233204827020236788459779257034265251650012792823491454903570416781133582383475984519821201233081674327697538203717274617049380647896745869312017561703185276582317122202196276080742637674668767006159077909573181772273394559194452362204383543396794672329804712503722967123532943469562965452286845283707380523762845551073989118104555222948129381690588699393330666787567478250629349843495209119072224987534961903567385465792346582453370908918210626024900678291423818562523548252568206226206215360956167367823148506479354541617114021018677696888961671964353572718107150871585011256136866801860858168327793223537976827103361027840630953305575382220363935801150886314736865819075815599434625266177729660098328268958689132047675650642062528650191133427040835345754030767790863045862535821849470465692222295268558125645257008869860286449522631594442576552975362653507508889653508745412249430204338938982698256290660297454773673575586143885716715636118493954930805001796821922919861952849262028094319878496729047925408194771329486041058603876028812712541520212024818198558831348867557975337201271611896883614891654001360881976058129525616841223288154937543057033343943060397732423849644438134321066202623463472971317966573351594422925381670999945287696190088330739170504572839850724800302485218685759341666447394346351150258107489802403969098748060559742489809761389108483498504648093994821246382330918690035507654997202910894319227566481447047916123915210268947390759939486112816877162673594264718797216174045639274796872514249277057702536606944301197389307816211109755340555436366776520004627543643851676573509503957723707404610712517261809460656709931956301599061886199359050386805592303908679615182950796033190427354777559562428665115006238676993984525395733988667839486887505410089400290091091659049913398410300121792787756165024888888727989559862271192777324629253172333230141039090604309986207462543736520008887795045195492854226650345103030932595880509450169468332529622182540549007532876417365256519213439601230342260068585771255380120300476396351733950790794693109170692288098165683264863126509907383264698082442251903524775706679911687059911827176449989585367943507517208998911783058692087099512009853308496000805342835154773121100632223426567062372025516247589400939572160610482083435442240800897709763868008783284597233279796895303154576876103178326991781122295956655267565780444113270191436839526248319639359482390459698488820424739717823589441508207226833082533503119202194898021738119117093638181280738887709465339132917359254457299959591101916638064225585245980984769002778581647878209690965865803158070682209026297549574795971189483914104929488701824960230355347925681383370311726229588725735401516325822637428384804091493035517510271837743674715733383428479656196368699920473633234411060401195441672678327666131758255950620278514449926633235563776549427696297041215467487917729023670662813790303204605579137012765281852806999021154634230421124499919851744347047651910892099251874456260698569920232420509646980452894924098857549428189877432035648877598347471101300185894213014505524927711746850709123545020443530993825396350971263533762121637052645651312352044391585666210639149677721042549987410946705639406359641409767829229496245541484960720412852164253866698796424800971681395672736308615972940631961729957813207428055017449759811998011844518289870366539953575176260926452129769404748120259309420429746619961456440565460953848467250659383001723066905653032853104596833766557661576561050030397355997213715196239572615191603841071309002839330067598316786736646445211024327502217979434583285274949070168005960940155307084562826838896969354934639317186785915319193458086335344221177035369908027553282139906375774177451465813809363743165847692634002077755198570208932168678986452724281081743796888067919527843344481160557419437021543185814253726809266535882686782421885598404309641043011656274560101077532404044277998050764621053408615849471502824697834188026483074735019750527843652665990836050537362551462591820418285835373112115372273315775723782796455466432759498541482795918394193587481739897919644280369534069770263607739388231171594371602598134751488440277336426700687493534279736860699060705039004965569832193139134165829048359323550325002175500953723636241978878361849007339563904899182131697206070689862163162122495068995064540674055521438338494756306396521779511504199708289158453447892598914901969650847089326172893716530194281699090530012281007488823355095099039209271042189354507919829114192744972574493259718466534630482010469668484219769063829638939173364265935051110091666711763615683257370701580470665121241756718941805090936282343976208652932062801250859014091169372397262403165502498344778195916097305473266706206041715533609596262002098287760659127698121977770963648672744960365181400288858162710302565862264002248567577063126671921291297456361310972377749330440742748290265638912913103104735131864537208460162109975420093660075247283656424436845160676965539052818083778786702223338229240583883746782460163039767736928254911898468627015570052052348021732600666567719208670031196893003864322861825707932598982727052685419280203014013140670449499712655643974978336005353591474446956182678266644979431738038726198844945774313730778326539759141123488613309628931074811633038073584679546031398085236243649037896947844938810778671264195414674663628923281648724371644878291007601852091332554021510547256869487640631227294801357837273940212832969130949294178398356101050253410019804718167691855080996662182115249188200965421064475873467891847565754178753890972685173078213312759220224961508327502276847777048884145053508779363504104093661101330944518152897802007264468228589049608918670619140485894651786509210533607110455681696658993330429918736078635548759362561670261991483316517803228549688693351226651035934497280598700428102787746599327293182586737282493242774290736805480457276179579715533422032529373845550105624820714161918145510931115691919114854846437336156131014378368100803431604635652429413425864793746185409976736925669679302163734230050207199703295243414664856030151756053666479398674885291942280954244021310042375890769323684404166713625114933076490737586824203627796159157042971079558636470351130794904851662490795417581846101190841964322923397186718385732443019096053732694957328147902868191070120985927607155456333958502102177522920717039903192684697420219923711312378710248990617000937051255851145918387655793678169585247499403534102550923826777124091053939914471760715714357237792533687698840555582280367542297347824493532831528049297843411975607804284805158661930635869062743585574107061252769299922518990193917236410480738916775239851494563233406267301924475484253626276164139152388695171425574502701958324891464931770617482285551706326409707626422093228741826947687870001004707026453193355027239925457360198581354367552208787946649026242572709376157130232701851112610857458937718806422554763173348241395901263421165390639296352548405390401265407788680649966894753000053138857002489009933102778756485008918842695567227742867917567589379304871297001602695300368197628285338988134972748532682318805075053924997324469510778940412130328305434323924765938802107570994493244187777983937591320111675458792682801658738415661646729645484595757093827167180685214881488599455871772443766879752101605364062378905819632834105162776628518609795928055589480328618511491604412130143834592588297345622835083968830472950639150065220528455035315315879422887037043717176377340857223036166865266202886589730471955031911185488319819947844563356570793581925784092298862355152172104724757890642256861666810551040061615369236002667625676449499433973466147285188466898641612018670791724023982239877481522268904851614708447191048230974365453426012559806252655254344629910218232032459374805000300404164280612247297094162505954405862546584240476017463947564275505020413460608314767525563728061782665690591017338679364052228014181167042638326481071919121334438742380108022072460570972151768917402056769638233840158173898385608343138054908280999819810080841827937623276835348667179631135988235605223855496944206674011728839121962818477612483020888674696793704493804124655949550792705941677706215491402043435265512604100424305233080135563955414786902874922044873369982012922196476839018214173219050450895697226765212069351632068489290372397922617289706791028685608729686700305803381372125729886595405752945623684678390282996768631832580806862741625885402363492909691457351039722900468886491521047650182651995214699261555880888617962536167512969103485911349203943617837333128392057522515408555139826568098349123651765153736392362646839348322343470648216232960461319342614789653159050236136581275191027856954166476914553306823991466101044648749971618637554515724644498220323703893794331641401613648897798813219065445687910265449097466863799562304578466177121458097400610391165248768873152006754607370525184582359455999499957038820393695831023308260089499180763777744512762914115359468101143899244750064650851786215908306775996718373109148970361728829923923734203121960749584813924591472922876249826754457191285666587502633532705297756234482616359123685469430543566117834885689189645184858549054741063081035429464923348354380030052661017813320117281458382172781515905455549191621365636418910510651922727634257961913088699347006165298523935376028635387163237289053057437539265213555937407579925742421233726106021632432121518516861680169279520828794426565575843452468132074142066119691051798719472175563260182200836952029405641627163334368136126862692960904601363051672548594830628297836765551081687092876294118020261071451157927151122723926604527681432214335269363667195989130474820648967208844078904907694738267555159762089916756089399556498732890419555198562321964649292746822703090482488467603457747391278245008485109234091431085708085770704301489302663915318647840313800248311305862220556933888792902587366771658788826007700338414707199524618765114458528675018972520039771975120990157849734416797687133178943801628628002761604891554356428235674359857450414470019897123340591117308286862456873230626203847614565785704654402850449977132401203393779124019895063755427599132883260193334730648559111479808280651036994550299720132895608240019384800068663308641075809204147183178694037891726640041531268706957415386488308435874766815840719150949207923864520331957224560754198642024550316495378037073931804688481040163348663073980481467626633066813654957837384927900529364498787892826508967202559125447017680394877091444486284730298873695235200459081441402872135832412455811668207600233419819601123800511132299448548330388660823506079447438155884315811903255978226079121318744869695822745544032623622904134066584468670123700589327427435539813064035652077655754948507553504630762294169836840294834956264527665881154962170742266512331211395249813971487433444867133182010959087299419646590589770805171981926492297313837588552386952053980815731247790054782822933616218810331645163156451025935642986989767782129396209271707848226477191590905359706374158743497886045615584446717348608385226040181911046446288861142589982606689494901447123316950469895414049760853043989919404592795756702006648553825702801248993531737139399994946661921787011836946310631097746771528879288661985979258798915179716660425691517338572555184797519252556338799791459388769107602351339490767851375470770394749880383062044369615767430941481028651904072368314946398199227229330866490292338464433377189235267587682758826478625914860357732475468482887412275343334074289426208787699353064735871334256828169582068379863329124868364422830072316333741191800862213438086488370157926048761305812276858041159172958102975225771787410101901064524282353760776718958484785153274819690885784936341395921940674750548006796659683237883601697327656844166119783950103831183984779024860212549448597543962179902398566966800910979759707434647341326340636516212025825467444608996433761818064094993613549852669710715217512560647932048132935690031510266208742765138520813975056022894139434536587505286794465011625516414423617026476535451579842818917013578297370586862636277675466212778778189022182758425349313781269499300709021860034809532004935681908110407442597257927678377310321577377020469489898727858751799125712329009749477198807883684520326951279785750527806464806033011028768235876952019728203713810143411227451361371045939023765011837034261889925705461764199521496696254988235478389304495076355506633545506879613961852544616311812025885743074232811771715733168076993531252247892506702795433417650119137779794117313778677568823053122174745796613752498271064665835470636655236404448949236508784270013265368858248283971563775150328494018802805096228341682372415656440605280998652073212385652695310730493636876266137112339730597963298325609793341569487337971809671416732674433131311851761474910871346694818390124045345026827232816521160827128393829096460005949810628900948567159006394873881281203318568294493835907223521405563152924272562935568861439893697661809564726169661276076911176531442239640626163841205810859585509257991269530522982120812429801510671900136562758925341490159155709613511793927977054623617656136888126696948975732059610672026926935288305823261235450072935513330213154121944279389478549586917218608944500404904849228051823673717461992906728835797361708964077929295228297872149825121705600723193386807805222785720522653040785655510927302973125490630052567369744096653411181648977200948805507583605893400657468071055277858228822628332084926327902616556684876543848119707556659157722601623839240285856294517733689203657224733473887118913778782219877549157409107657010319233339244154831790029816494570655152020712715677539722328025151519616833048168606902689691048001070072931726784251101390019126402239735388523517417645171915209774438863046714178186246171284209161831396481571616811478771851820001523992564501546141768271159402933154161197818802985180845936916141702550205036353134629583428906007844589270562868263920108266769820855935789158371009946765810758811951321911765704829189998398209627211420857273112872983555953727677157056955057034865282015176161938463612743062155761519594874771093544916149275117647207395829577452456768360670175136520147823298726013622098840319844534978308066708322748803840267653880492332827985657382293685851523110987078255784567860714438226538312942740270803914996757789495276982731959977619315230468436259836125707876129170839559541424512665505652002113565317765810738958804948744145630996473406184780915852087088294040119124295893995218382227698046858850696843473789247496586210046756405168178646783725949106848460605151398906349745158405984549475191241430511736185457632952028753226234438813541599118620014634398039270113187766763846505153207130664853266365960471613862956180167195261203667934768728807111684308797597201827337894804139271425141315725378696797028337569375821704735027030701109338437471614263908029899885088582047408151787636689822220044720775846770901558622779641481662727296701665257975900992446539975167262825832889068994417918138772485188436219969872990755211851957146330687967623737962654252670581945141463934971370705732924046360406659058492345144523899640846763461934531685993215436116161464461484201662471931176976924738017734922975508099245912426429519630394716991695814757749279632689617847108614019078559967514544815101129457974295834468907313271350253046601363202485584057772666838499165713608571480956956501909524547360247084634738465138380114553844110860419286375557378424195178135807557494140771162690952575005811532561663387094569155873038794763947902475173919142832580743406063704100776892414811614978458126634881973535524292614897404933092038871954561468529896783386505577890130271230334514688683108687061925616490827626565595368876923114466320573940716838690483904764200646235683579262087074162986868921708698128734310994368768987788000184748068409854748589842072403299332908289686517204491125021332002164333793403556206537424875265729270704269077857331890623699645857998364010010274147762776369745935489661717673157745378585868947409278026124889836083309462636990113727842816127571114951220130404603053413001787787492025261925296665697538012036010509570422195979418239551281356201486235638077679717090637612112441805489459276078166970936165723696025448407854570181918323615227707520964365010614423362549688675893757489883405770343624907231791110064726788499043040894456198473202687231368351627803901569922895141656563877065833834330106002087158123320523820231908106277723454688000020763488586997258699013629805145988156231040177845422700603782490318338535930541936923134326909613618041650642917461240892313229522134165810032000611406984391836944239581755530327766105565708663682792424571873555602132512388448563400958072865405272224745517278192694894036011049126619237866702961233674434311868239259800061159490410247330992712660364415542843271609238611357069523518384192558503137657944136217744426135669634281264449017148763033504475520429378832478104110719493952148620880302540646711082847423623429988231741111163314756241450132009274870342600524751344131101643587842547180523409170207082821491820512346264487984043724288099758674172417284657098888436285439533624783938509755107245692222737636662880628207001841464572241754585031026640827134382353729547018989322768593082484841466805518209156492429959319400293715169390726324219533072953952772441213495763733263124743704735528835938297897694281415990431668608972234361189900875817680372159239113882302024245773795621001233766253365835361749151598463489704110589442243109856036745889044122515989464569618812266380020281673227100812191748759890406564582328070629378340040681478324631028310944509318694193663200916905926170718675571484390912486198084309959295289988670768636164020453196574170302826452139491839040507124629403233607396747440065908904156067666239382771776001945277038624250885834632012807475568693600157294134172737603368068059013466649647087274899903275236275099670751411842386306212340490925585853130052573967461225945155433618068083433349642840021344515776477236996881546240762534165067595660986404336348567739068812365151931618213300348467874300166988020877541103209813874389681668648345959945704895853690501817983916955629019720046533977272822850524953582616840884732478863640966447127465836425626976860194959616547906915507082349771187477908502388254689959041070478235851175644419608695135472010090106063561577018820090808684029110827328414772254184771622107892420089884707664174387331057830561566757152772009970523576138506495989596475857929165410318164020706693140619392761413102838728203397926650503676425375228192952814281838115047734450852840941822874831067714124887855656825424065948449104186645947854006477567813201791202059450502148239962101655691656293828263047772044725881514012734014548209267002779959757605288294098110463175511317312331178968238136886349821301241461586138019959029197673086794719094327605496732111173487595720190072249254618079326717937196290311316973542650043722691440313334295134541455183491968964757398945787071172507346415307096930887171327655228616511529597623934905731204522032819439122015721829582336614626802393310508922761097434598911760319988963972704932549470159960759351011752622822395183762266640393550856373677115074221173836015832873558836352871063215676590894017989542876864156680997189337152677216059756351520809174209699595850028090088025343343380012905901579229449405883142730386001456417886126248746694430720146092233905378715037872183214232199427573022177091406885452620464645513265560984578187215069731386572889840823905435354472678012417641573725626000390500705421921113320525527735553263706392834901842670350499269330246574741471060341444323025198306822791460453191947053860772603696153993746404368376003056900531243313808076887399125148246727742188914778041689309336900942193551930503806860905804256395287526036345999114939079730616219497611108820122286501525591938383976357927896694021638482633806483086621998378661173457040382762639210260639066310605045507184906508368816488148742543788138110689546547646609635571103489044460945182838913633161511879633660927749803779232693486903336217168991655766857872651765451982778188441828984504537846580643108724180303235464741983719883994179893991397248001244480834154535664478054954660538717898107688455854150351694857192360533670546548962407714608154466331685811028767713417034543132706902490568868954475777494422668757152526152266339761448463784914713984778483949172016499501768422430498337389240478644854900403347017668461377107040085965217775472780715047089479989031414048481070765188303113169235719093638607478004453063661503053252629426557354738540371524229842860650411767717980493747130042220619434791221972768958218509735115684249128360615952652225764053912058374230718803474283362974409926841280129968106126131302616108431508549789218988185776198934863649443580743929260021027975450713129942136973507627290396481538689401956991355919586237074715685708208601460557074770230642568683298176909081194410972067430808047771659979086330671985082803715058222039413525519763850581131979681065839759069789296581276608440789029724881997572797914784002829563366863818704331241306473337954406697732038964221433951190244017185320159687015401939237282681855208357017855409882325743246115676149000012087255868270209392676264156681161964468666978757555014780361810430712238249920536324580177402473132276956506148971163653112526141100080494013021828657363866086740033139644034952472468589364596410812134651364977044102709957625712560412369061248642925271207427267313550318570998838985983456062150116698266080411484065412170338250261982941685691629759740663380683915823560132016179791765819296711960441324174858478401984750008263698453380779695929857228650163790669492544164018543130914503808894451629078442218293159857264194791796628728050597302288115454744809294778822553547073669091106098469624724350140075583780528298394805111111276994164636023997567020653389031190844009072636393879153771525653505575126226103248577415571367023546114694136275722391379767582317498086403221013794194934916858455361948540927457739535438683034098337898481218758373152234377352124183090163438445792663661871098854459316626537006011976965898239123307173051612849936188803042735880711447785157433912274128848633011874834998822784129926763255432539594432968435915205692110566434212491921917886317404582978471072747968620096620777491182651132599404130399786942946055873002325182784937455516247308140151646732888617880088865018102131713599746710726612354607649917533905545797242717390437591204444353126096391563998033095329104282456167811282592621228804069363298806163244307768515812005630215948871722756609113340435729844058976514013432186457368655668893286671264656101255110133101954738493331394280549779598505197333656894816790805447348973337981143188924754188866452302998613912640912324878910907528420509426111386568562993416014790960128107417821712819005638877621216697675341925889114769127797884666909411081620038479556028020008955121074630368166257400797243453435288267248399454079976587696710821930441936436790475225704347123192606862924723097680339705597387722132925274616819529910901941024641691498733627373677397775929065140807673734159916178346281041292401734402697288466958178184763310024699220636890098019124582081109880302624680571807373140608397701618274537159308632748536821513795991905083775618531617836535540872634926722679960564719273371601509172412848533167070847129688103949716545534506019444005917941226376562296110887551322906332213728918144256948368596052973271496396842234772740970556671491048127169807540722426766551860646271916839449091970336784846554737876972072352103559418986668923609576960497835632764288357757209044977392102594491887828986513238492138736420259663465278209307021804231831982315700090066573174844912770608989950715209946890216126423931915112531832226154011575875272778848118526584938780292134292129612750236148123109431703090208991153486654905373839894577172263063486372183187057550993503879900765390059671395404054540337106859457454769580485247011754124594722697762763934865039412297042763473122079294539962035117018933053227387278800973457488305248280996529879303297670371514041367606198009850751002881751862434157530543200665667844978853244285090614919501625265935940908663731443626498823548513838601384027376623443142133437190777529839745539699681250284483419313861215739017139493753717826696465760497868968887721692317367799624497035754460489988087695736268022507508512552711682650800514214459577069423667314397669433193298733420065381796536164373622953939217088930539559649149769382487888965105670375373048050069356852011144078827392474694219702942511594851080193150752501577064907126135118993965437227397419344943989970436424903676636371285611322002032104803579026548055333855753373256892464289003038881100384480952427985994853621760146758715399922671482667076642451301616743193574411545205752112921097337197577754591100969158141193593940907691208469066477803959696014037934254245789184957085641734676375874481206306039456531591313894740784264742217198937713009351741781772586756286647358110406831353786026397271368175255782800299317993383816000637313610758287869324111107354609139567033803217107806015088042443180206804104444969212006517863535451250456661088304004838856902543916584432333610251572635277567303117565961249716899841041702276501915886526826883367938600586501298646293895844789058794035048433681202832905922584303200058505033707608329223673565552594156781186660443885076603540532647843648127320225688353421915264702774969873897069656565114262125999279741882558277380133820045181684068535307384173762197930644292605307594555298832291755258555529690752598527210714844286034325528080342969613423756069791678406130223492293097694724348048044310044124623593127975770630341681340560785470902337596200596924292972492200008522186106391932642506337268140287094647445725784273271249496841419600433929870853469894630785361930225516579700754512577270187533570205004669144454996807368485567635473479637179130154354559990835522667326308078437313685294853731995868214051737292745314548944178215479066780674359953584240194363279191965376150741952881467466710743127258047922657906728185627446185123979745823608312618032572204494282172267000976082517062706494564426289279584728884768190964429024546097919084637153251347976382543096857770554631750083229749486526708221693494154162242527280479186790466022072532455488605170094379845453587731862613158803407577738484623485701383503739385012125008807833374066352975522980825380780018036040943473234739762196104750597106046713308282559876033686328134283541136250009352748081386066570142663898751954498157461008128679615366366951796048444091512184747997066323966937547291988963566392959066902499844232739283764336808480129704701623414294171950688723928783694094541050479334972408625053816265287185007444516460287086214613821994422398774156930397704161808746329142293814204312884531130646935566182474950785530764991697995151710611766906657886579620455283874503256437787623689037503672900356895817767396999643017679999682031578152424467392200854166871794124449986890714878231784947950627333565028049872616480931057344872395527994563741180568701473092299400574980577383128142388640744683720452421244521704697413843128381395997247287903560678005446642507523651572687281054868063381136665568513292345733055644241675043355359699983334204486105622647258201941347029319846657287677689288712538577449261103362080010715961981449003982789799088749855719458030205405758115384492983189655611267268050736040630939830358897459852592263850169212283571179773071515854946239218021599091849441398616202594893980021562111708570400473535758757594124171852670154891210068730490221943397834628836809485978042646482415704906600061113596158920106921507913584384461704077765313422130547111985511927649523745805360097717873912374853256318920306472712078824215864306957588221713129948212822226722751804509030465978735783942714213239752750643503751710204983980693865382458886537049194051273501350376768936252231987876478271521212707203904742857231440069903061644877445104430709087034643134859795290041405426645009942870459493193013129622737000719866935394702848402571505195759623743614570516596169102634643640359424663072777509055443447792982839955684125860897309465572076399416384516305271177521265618150504947029370383013427200541983357912785729108075561863077452595124722090294525405568568550476284572767973031409480520792941878456142325029796402407555655889603564805197294947583658857682850944508869702555297749442839005376349408011889711234174559130081217095712195153762131173684031090779887725585182398097645435919050384412817106316601924760840879985607750513739331933134519385082730667459177063843066482952225125447789603436565580123324353955414944005471225326069441190758450362136047817530187626136950215926015906909479131431450299918072921745311458407214588405452634285519924127144678731858010454483490732958666772019678067003627538912949701417290352885739316097050628753226602479875196890193107033836553321479726136879123351582160991095931860944044397549050037681827797847603409582838745667008402798048462014083605898098534455400303949263722329976607444423490618168444715459130237152367086053262644270623283490269231257985415399120956465723327784183961489364098805464707736965246015829216299513792650140473046509926092259368291068593510531555645148067234140856460512874409969515188366196377928023308353525139020508537312258201282517633375675853640055573215801715239289230055995059791376633285392675258283529630606483239561072222129493004485551696181027621221631690182576482949352374540322240571927680319630899760667700109728598583388647727337719576341433139456513887661977569213478429331120370773691093334120204164650098452669542173106262548627569390371591164146985526066765282839636311599725138118116697386724983653801214952326184991682653630713123308068740140281882054127186246497675853384921772365435923231948072580235683101490077031539142988182738277481040287600538729559235013237622118771618822394627990906896624179988555682245131327902826061634794998953016957092004810307713976743957238967882313777250807493459264211502220969952184059962786631573653114234786279071178771617487086594785487787802105008376228168146088988911296528751947281221843327043992135867658680284355597666369659180945030510054819963262558357701386673676307743098382142028006895405478131361126246787411634293071452638947453141055016691120642454029289022889146110696319957977335191690086765129591387474376877668736116567313976156556641001276827730956518389132385799098118697937513747031023705148898242498057122495742519821060588715186884594913079517118161113635162849906321613623926482549750853988532480991821673215270439877080498584611424638286226867785372261291434203602681871275144117058968032603362824966415769751104268493019444196400784774169341356584011292075712942104002162547682133954066218855479374952708462760905250380460447326745722324170320516162905960912895544421397287163867469940283372542220777760574649793796477425122859553841880530646983303189466659721551875842999676099493715941243185274807959011387314347608822389292081565923258744066115501722627509276015079043270710886926617583749638624814344464133891092506768715043929364640962438098810008824319990520004332163679626230510774412966948968820481042978945256696465537763737195525566833420966294766582157826755676817381005935601366118027262040748639704131375476041535709868880019168012386348293094347573322821024396959891930800036493730419138764737231940160312525693950746159128929381365222696853920959116486698274684875045518549417668263707300077243000217474742492405553563197377056901693121670376854247842551612545152066055642709493624049461976083181549110677864363115943367094603258609633229105695329741760235802452659647205145949752245804928136157183858199779816791175478282873416620875707291502810101885898338477915577701831039284608144057001679374201877082034243888208415227563480569563699673706915261570933786780542323949450697924997220690931011665013914516172072493699734107428715532326508488238081593887175567574200279234948928195428317406177261683295113370834493230042558354347548032191653854403917849255412199481473988126615742016079847988275139151880481091780258154548290449798723064710228732614005633756586350608775258337518386876960434592071686915250377745430711492567468225029491588819141292250544791781492521880177676688392149192019485765328416790048203810287860822687911030065519267297243500412986562358356778895810335170650650426440352673757979670521952373173079195387012643772284495674400041019452064146060851825147413622332393971958676268895535926322439333607020098653169804074699791394368085348189421299279707279532283433813504535725608851298350566473472967482083101283106546804171904956563049602918754955771239608561117608643105059448870048265410679536787446011528807891571094236208248926973767245500325528053957057185286607793925430958673547502919436262324329783656898423648221138999545524177700834863810034732218230764650988929498756444218661431170035704699220409276596854151119555411017918810770317497412670593417044425783132931485254239578429175777850805480835390714292991286164223667686398046602035267770351349234422276688417315704975749840895042956483283078160168149620929439727881822574776335254897911776040350498118219677993550193352216845460923437449226917085420135977280720769898729369133906448668713103646765634863330042670584350264179292837122385528577679056950819158257608703112096158538310164148600341029972424899792467685060487457015986026268068261031472780822503798197599064721280025676178434531684531340930192466810011177119168391112767041874600884129876033438799422222322251026329091147342456497040130878711367686346520127636098210782605237538573555171996058632596380043697182424740153034521487668115497187612468254042070562195024270773480409995813277844118146918352007501798729435107818636511705775882416956950173915235101004642289104445139629556790809401791535017048499971396896790045099852607119207353032520536299181128037606543348563663807173940077704475967061199619286217638026099062073061347685560813752624956556414455748398589816653732169337985161520253909615700223623570014272969371078371097082361332796924164291076969074057752100400834017045747407249787064416575935864605724839193159717118465672418301263014894922410495394027925035817899807875831507593151616259540815195778572163403040495718424452354010669148649369714544363791279267708105246224480264681868525418014808798503702640900905841967887388457704255094115459287180242820389775446731600978660611534602887321998614820036724496755613066458986611512817074867780059227554083688126085003867393094002442787888523510824313881405664904892085953738947766442375398333950495712200761442774109695079036033844224706152874001113734658319809175533056860915528229535972686718476989398933428855394283584768919378211307866153219357948322890245823230556804689735110442711236869934323361044389376345617683952549919990705764234122317358968671480747032120756629338186151206122977444181734339641704116415396498125083986593005447702879885288780430074769972787726761580547424181227370359280981916944714163997953643386150230284115833184232965963062382214605037004024367841550983126991485422579738247536367615581039771070345232418287083898037645633936169280751940442803009076655891763441593055668361701774374750703693598180826487636149018918852924986927994651545985863787418242096646731584137220973743704128368233873925247517993705817100786796537531768300842003141446803014235468901619482050133840000086784956599452573670874344065904927206143569077050296942728962201588020700439504842654047718448573229202402439265361676426996429057519160787074478690036245426034653774809360091426737476377454155445499855479156661441479577081533459766254647730074490722907135375378713054893335187181308896342358530318268976186742658704971496558773443873644186111900659774582377434746222680925549830928411310898980599457344409579600728731941886830406083233644801556432751334511390241659022850005301386746312601533238875515355678174846167277330651726219983432528494944286908781596855925637217927543462128991073214999850354047018428177818710191380590995051225682894823027299972168290020238020842956482252869271763988747345619002708227385638197366579778362234346610466839289843610641992009917350164150094102451866738875425658405227470730591761308373686129024763667063681161796308140780059055461087305807717036869862754263530512154958165345306172049270612851221633364615561485663279719138743560134253407526484649976892795561943505567788823769075658684556303301881470001824135294487667373839209238931146408956983781584224880032496872530784061823434507910769007029377543720426225805405411846352797037369117562054332504483087260344098481645159142883237445431477519970681448890686795651436290312268463453029454166464763873008278417020916949182562212925831878123467949908748035723541647846626133432006683440336808586603978470690314398503616203290066877520606347705614406693843785722122290483326467462185538598761647781274832190881822129326510300071867914598988942364867090225858570271719530309205864383108335852925996365072666806141058635891112716227259204566386003608688274617136735933083407352435439792316636534721448071283113999014265010393680182195337597690104224300763750553392018657469912726830081536415901154225803271333506565516984009744855017361521578014846421075876013001957673202768936869751645011630803929377597877172868075360547834755763897585082513520793503811307918744512177089340332125220191788089560121388659788727136993843545542685187533074088539587516574580910227320880208230899266615763184515073670868423995565868764068360451707874818331538268164659465341904684256514200215791444823365056097551495348853429297550393008004831239115873825852763985647382128863755033235974889446724210149338242227943855624035649943441751135314406169035457565952673327401661871050355529400548081654620080237099936965083100015253875401407535437290528972473581897682647954045840456753730169287260578930593292937501028910770451594548545384083558198530144152777836630099005022980547088434179516260833529797925192036762345285638320261867136398168224800111745681803448412512739296040666165948918992300743191240139589824181951389282773586246882544437506283089708883469687335823097716204058977369275565185790862362895630360184133143690804924731689861070302572576025785704635062548681386780128570545738167275407650267203573082993450657871788902734255462251632542579019886320660249378922466055883907824792393606560093392556954686999463233868317214988008605973728415218395086916793377288940366640060237813152639914042493827810540727109390143044006245160465298425720615691462846629730512390716762264677198770032317736544069798620225368589081106134990050603427949437788944090199939935590490943678922239057232305485509253554366465429384319926741876115135800540260765498900808620482471784245991675995547436694681106229955180341418496334152186564887573508628813550055406674228935862010183592817608772531017936694516486732949041839060225953461538316950382398617270003037768496653758211119240895262414285548502679766026449573998013312368404758245203285214257530795588372860782405537761187474233503895755900240004372941914413337525574819069097113002207781787514049495811053538141262839867643068746877686322358294028445887113449217817622006640278009947199470880716116939995289264171621165526477383524236386830619936744663767782866439527726680329060772100227322864324869714026903205973880513493567313324282255259964611229804803661939801143455103557248868443323184583222610966070374385876357234648776550311001089331996958225301962988020932341825486414603032943857401419874261267282938280204399062500098810130480823238948221528352164337871711500715908644418022582663179139632334900125812187019058701310201911336999628962335654218288782893100469136980080850343331224001936947215733564747425289455941230834160865916991615589189948231522258768214928248248647047175321468587142682211597087675118282158337559505792178331794879235639945609065366931665864923414161626103724017563217742004796516894003103923497967724815916678217735324949242351675915295119872450084383416984380635676563966238229962916505134754837784809787477272980269041495715761923208398239313162286952690635280657702639806001824573538956031935172000209658073747005902444697424721428386675158593526548475141244031882409839205865242572395355462159562984137311211851504574338794046089790642201287857358787340789599902613943525595814308051750330641020578946746324855401178311287520498522125475676354074476500613622922462284912471634217845622841287223894656105688851912677251240966010707031093502916655774305411199558444309846152318381489372116283359665000405315535684661651767095971347072135742287908918119131663608874416347885810074257720986186984765575207125519784907502175092315425611314126496118378534622514006790371115372749424066427573628132884347124190798422227201969723606627780948113446976233955518236705388028381680196018395089123121638674418744642864101321765787645187853547258218310665358016540643875625296418626748886949266965488644779348214234632559984817979889022054189496159756969421309881445988240091851237967199580637098579187164367293524398276773412898381050752851627303462547883528503070893418698842395351217780596521785125113833071700678707186514061536600455367125525617552167715154579087534422779574737216262806317624529245791677135670607989046977107941088410711387611209239538045664099602341380050672346764086258948139180531728321880649429057138690549818112665867111277891983421121748334243940230225514820306381747495928627046988912789849170998182227763590413624177802039811123802031017417464113501843440106863506001092492644362367884457907664282694957294091154694401804569703171192455483362511770771679146134020642985190905463353698790018473586688021781249858655390291867539978986110884102564667195590906392839063660307048404626971402789269308725798914929202232276207896141683784814092587841041729252855932369883621714622983730435212890101256787891260818454353311617773525242983908247492991472846854403271794666377123063327224420319203751997773456003682511422370012048999889191245838097751205923573623534843164185014197151211982237058019304062536356688153609278988561844226175607733663858292790385611309669068496237211765907962688291263642364488186971125347500895777717638246851590775507045636753760811208714840550164554594018129025197833320678152414659525099733750622585521431243873545561286130402739424195312522974553487001644981751650462511568890733040827835524109246218686066927432261041755967208235788443382832124568113728856921096944942434028131022283505664027761235192992033306015047320389480787958500424230734299430091792302154945770557805431068069505920722751765797035201370090223752660987247172398231779555880792014122707787396966192004370071071556342273582665821908922645168518768789412589537839392695669654932244656579127392735881350502665272840729984540029537037590846956796311076381732700074969207695210637686611353734959479847937077132812747300408168690407140906554014494960983544011845674144841430031675865345740481373042122742778102590867904593465672394133594924275234634064402233726896158365468926577251872043322872345949301566163434770867392105791426143971880671333167715893182930420382211707702908559915531325507562625392806974348658726933116902033219202763591886521248348257225973305186093672029908555086273887024183306260648486130751770263340417582474352637843614194129088941997444421161994697026763985245374585114784360857940135670432795279485564548830350873482540194984760385346889289395530643244160060228155230112772730219807755622316478836651261867720667636179382061844587664025224251266778066850431397811959347629299859704505854788852290357672650901978855928028723427417925565038504061924333943804527430646007877873500162442454894409244304712462848756189290273514604990277807917186069715075379127125862230507168461882724515332482760516710112173717662433282808297657326046138572444772188700865965761179779520396030850136331162241375405686433695194974702849287094769243602751933690498230575574928285048156850388796071955664548792193289919438111833575570470847101564896121931320141822846104169208217695175832004060719989146986327614436864114349951119097877350567627157087788325302228330490594352426941912547079052541343536596734274460132156259613511820460925701611341371709609231722019583248389342981029844656142013753065169557703473563346136640533480403666979283890363250904990577378306190338563399163422723410251629602023741413206641920508953981674732743030444902387951792287004226171429337386571442201400583744779134453629796990060458074112293269739771647768411713397820517418732065304389906955749027202182620475059622050449319600972714355125063958794302560763586032581495145362639461155357103006826322172032639037819701356015347296734544066491033045084673861318953420926840604142716642184722561478455230586154296940415648376336040344723951950111427105903935326031939578845023750754225732778647715286169767158019880576348487879819187882930662156616637882238903653152603139062527523462431546738091307908026485736362757106115802615976250863874945157205375194718522288934369721368367320344061465827359782704015720097247838592022812254191394920156221699358708941954222822538862643953756808821260082103159295272836963375032595353138683747227524122632002296378218071864097049669549058466540441356760924755041796351413327126992035554588261217714684054486952643548801326172452002626865595977880399102874494013296462815997337223112003764622032782161647872350893556283247461056909885201563798035816116493188092426543484655616284433472545618567896227961474972491334633142294991636936275227073167541894387774040397222514666573519109542871594905112974346243217278791597867262823638850377385977980883479424813208012695938501864111266732557522253009808724852465336365861436857483404738643527662208644155453563479099153359898997104868017171012616451081476724609808211369132870755882471341683347195999744915888573229367924847562842757988037140994255285044064421198155495426687037620243717728258059501255077053950493372494591947213219799731918958709165156684131969973887786932560455269657067523022927492819718795045684572323057752966327696015698805861059105443221962438125705754418050032216735624568528434485429886657948253419806380683674501348405246520056387979499614974682824358691502445698282962721448906976285630110282332757002846288424783769594797191614601174767881413869219913444309784921396214255859197811125098481671475133546480781257264924717629249492679352816200153989269990616370192960913083737433632122612964055032214039530649239424134258884268405217984544772776987583897906894783635992820923994040113616281729239044245155574620886758190145404553600618866975099933487499139311469962798993737391769483794841039507409232233817171248308966951535059929953455196563823895356523330266485584784397723215892737363759104171865752270800547135955339166132715929002011491195610993692544526078990497928470611222663239105908098655758534249940182322196427294740338191978009906411534790868084102788720058224813363315905333461604919254689411846446785132619392644569294563782657313311323185146823849078551437576948245549746497802213548493998073415662568516394725030375306868552718366096301062544166372085704497248542169648388657469715269368187836937376207880863484341639702367304977507855153851006520111690196617499714206300132307042316734544238179229978668599384175541254855472204869210456848370191322591638910610141437138415814813348306721534708529700060163374011177791727890626100970376290628549592547192051688792204210538824939179954883159726133122477458512269789052470941728255087817221222376401950788953370246186648942609084836132578581884465440600536586916868180673577957860492228468717021763473105278212913745576779663994051484830743659270789996879155164871065662485356555041055833940414914130559644876132019197328620432712096748493355026916804884103416518759485231828559572223394514430664176163050816929309562488068667556068295551308811868004317399692499097403328225832043626164815543631233674118385032950719422819643880473439747860297017143885579886215436393545808942191318683673524890246300185156622972592508197224140294278425119331321798330400129622281207289411028966984962530299550336679904655913972790644132389005973627125273542407068299527093231060888170282548752339966656225931413674077875851666157120581273330486741747435414844892130044884097294980147769101292748312481838369148122151722604845723266047153249226310100299619667800377036315845144961613120888193489815747874526321708370306408360154174034226986013761011206750104576688297159977009372591667946304260529474215162350839658249931359856976499754839144283857152048935326687335349386481516251924299101082704302630487622268105910959107621906802379390824548787697936920846281080567395280977880497237285486756868757626540852282337032591382077728004504294120255065635200987829161196905381648919335051579616425699842769885607503689340677117744082391928720876884022691676178201445710576460088475796438897061919682425163114468622899666447250503777984532923334601684697318730463973394496390402851145174993693761140845385854258208496908221540660047543509204732864074308993490156625808729156511637854813597041010073730493775860626135510276548722739635844623931668870775358978961790344436062853875989002327567983226564727716192439781023451063400011434755698373468528767296310547474937970444241384666203810704328935836381641856656196956890114809215208655585486841733996989612734215360980747971852760190601198328050142198352538374747964398641115474925358502665098141937596718222232012474599480823129296290006624917461318553391216883788976940001235688740073549228970131547019058637384303566082195617865319575017860593657475990015772693703885047919874178778615085740787004747141517120648336744048772655657801371041559617432503391549311959741697849050251990762536701723657309462660709296216375583357853770577504275865137679768961700533970787060456673099118565082936823136931962072113332743179796244378243965008656491641462771178115595927832115661054375536099680373083412892004180020401167831730188340044940857084194469090730863159531532522047381700773442982707096452828396632016301373267820978830580147482864951982464993313055058142012940456153775598924012785284517367821285219043442747940575760929451141557150780869102238035445885479088183540213699381839616373160308190021415287070085997576328473066720092682766744370555616462376687146022552088327975179998677306632548640403909768894839034729778886574627164778202604242596212815841527851687555414555803072728141046531482892674843801326656859429664781584022627381970054882455583479736629799651916791793710634416832695356184966068246078538327172886592475464043235351102958986488533248872893074562645465099459986908047738253474643772831241518336818129577348594835358466693569354124740308468729322272608273585979968485867676421862615143798316188394765872143845623836358688500316868767035176241201825600622257340818154784634325923899972265989813220940938178374274004657617318534547498476234229849149394722281887400375293435889081191099200050807036811011021394267504143402503219637512599178821433988527207250159086416307698265049844969800239423166071028097879292291641298598582049098792068994198713436911544597919737206238253554022197700382541762443980101944379994810232172433991145557915140881399308352393496774113197920480653037547843082892189515588656633989822339449834228097998377777166412837577678920220617747096376832669448590986618503279328112200491777323202972077300860021658235535964779464433040546440360035896272124744150961434872276480460862157591377666612185014064184421883440615766801639784167182671014119997554731697132369877217111618335680362394211156826731582976751853854792918038513943187328442874270673725495529551308936060305390348156251923573800732605265521649321179938728369471121739697175137236745007136834255089038694005983794086256321723565023606319028393619588194326640069582550597570344273460331985349956968750968176213369688467541890166323746476815981035507088910251947378436122133943942970361433341682064323219200132619057618315822893479411000821849553225466326867681874401363037599702864069165187639005184738233197422346088740292179782015093213908030370511785178517224195493528957490003874697508465149754844637903123975314002057624492429489752239200141167978522832578105968600507595126798825055726509602391331293946947183113729889772019010491912896822426383101309871603964929606929520550792566451665802313939151980690720764125149265235611405236296401316082698731602930324912518655494889206383255198399290768775068472253612521541574887838289633506357719411812974016489136487089615429993346315522169256799348852569932069417795148398898693681775522250907294124529993431166191417867261649981333301494719263698969161936136866583380553875712570545539149956177120510391379943202834430423089593072656329855675305116580734086496775640754029628287278783122484926328313062706029034021494058790205304501318612057295133426073604972298324395819433939483071166876410222751859856478028225591724730143082241913086505409403061087037038488736527769716441546069223496442611452920782408183760348918540225036811308415614180002042897739355769548827342826328862810371632600079839120646685048302232064818226888474813661421794037954012831115887796830185459951566933955444100882956939089331461790773328622487240059097658825009924550689914803421123318875615844732261371983727071142806268744778031444787010552917562220922499664262281872763859646130970871032377939847569477230397273017419768832482813650220828911658136511141736923802628431775292884408351715023913031040192338573852105816416752221251619056412271244895449754790486286400530822760326555667534504059880224992889650169897409037870613308899094558801232522843591114439526384423343836089562712752500274169613703701240405409708044310957209030941374728154338583121938904034600163974223230317538797667468462339977260934998548604626810390198912158077395009307800554849206167665855537206178067997907021408266637179951066625595605884005098465029206135825705464124589863165874449516734677687182415935524243389858464622591257371434378119864119781074150712952142611678168801797239295544753319871172245894313627274547639203949547437830922792163422800123328342355406338892892565293185069545297536672969487386976588177136785100277585894677804270839427030623069527425794351593558508907495906182174730435130298756521751897621962457724267247293779820496806043105176813394333595726493666238091861343177057970860154403212283914297299710038426850417944304562724051601170745595830817459882671823132445291537192821382713072647475434229114264209937125882702130156430050220155451240154703628994809895044237843176373055339473885873977447481562177530841430669792419360410292418625100786514758618516068550729093679309647350030693370781659148076678319368765309138442550464471098137696775463093913222446916210227231878524285599776731839754388943538525253675893147847614656173796846268645705181208710476395361420431279906121579052393548198165814901258743538901937695947430078463995097829523755082596130132552350277479907396191302840158450238158512493045378859770349131014273523405657359053067125778066586596157357954020684810837003341882069474943000767519686965503692370935278887917618607215073633366648559600728672214423674108259229092797781115578322734256085096542722571121389835780816103633403355954248405855809186807903217665895389431948150107365181095019124066555273240130828196693503523594256241420652892237607037423661608039854295035135087552277608588688977894171195712016383111437908325851992574104955893452724421779856755039140383414550617919794259274104825095570794877627551855055998603842957546728997018929175589314197252532262681140820923451528507264150722097295937642424157309769573096395518887428888109045568381675132636126953371608970933333199473133446370656118628789007872959382875792006324549251186948151743521587880326130017184885505996784358482756422675879630287378790717497026196819435136917434867090389515612299415409887227650670793395723473326938812004888476514106336933702365943986820705358267428625127319680762365253165555640156010483175080377807749839651237792701169537298107719098052766076471890241962599924719422174502726849338620751773890071719882507562213976575128905913750911217078289302453304435762435864052031763938987117302000203339546339770368541540277931102968375767970739077757710587221722273560860537454469656368640610124186428730356804153918262048951685320415017975173309495641579230122012663228218427510341735235822840189869610635705778864691627016949659377863666571926783360212686293285625469403024914006410069871431925680237266997979074242762604792016228205568103802384736309338637029246518403472462951719970001408272393000780038798277483315878797062682787965976647537053830296220090933075900874218633930527514965600428677775067695032272300099478560639523191821696782788597287349896698403796697789667114532620684072262677640707360632182340552784445490801528025310033912215621356195619339164264645175473631661308053755357380482502994977013415782019604729740214989841996597030809292538552575381782123536153725852178469842968304305308334293878205335210043821048031790032719547491573130697268251516122825516730873192901435438915783089947431181805649349682644240034834020511471000923409089900427987449396000386281503900932431915513680307421329406770858616970187030069660504815939908335391151578685324535815502855524928694964502131848313082252962582059638892096762696432810894729003607322154426641992672366984808596113048359965334592476537780960726808433603159289250114265556175104847344020415459042080379974139044519541833731852566891457949027525878491462315608157175547330408031246121422224451211630548287189247322098869026645062701691722838648352687630860045843330808908893788371122287261249016662752803263298564767712606567389239877690270957680826339249833281028385109600823229399628242061845936851254146325166822178248482955322490483494535386377492745174542418534907940909284892286009221947362087149050200103841050803026626691796006449755182532794064508425223997870771119562610240038809819887894492097353296570845570571908941806898502599453469498666257698446991286728926610108944616124780704483150940244979356241697743480785650691327963643916888842354632929456405862971712036958788898460276741145418922978180441286229675099732683488878784247911583169751515044267664331396256949211526343653240529639166034062362507212769243015352319424167765082211754512350110905462901099228420351541995912170739160194207458956711800918946662122032243024480152379646267488835995464388663694440980704432812799145907965388915925231401175244556493184940147290323092072418798955990032103462704537358510393136391118890844341756578588159138198289642306330767198183367427609776741056386652770680800552944292354978623090747177520361424915475798402533397596509121753749870709626704283615436889644152855177022038483164090618218760435551619115493617218244512153432799631396114731678979324789523252230520625515151833438846637163899798195280851175543466935406115405694432776945450500805141239436990086704332297750666050792155654399640300208439777102300731896472459341603600832012961109873429062525435968090483106143379136685276932483021354144674993453979991937598577847753664126883620479159331732519692011453868809439279068465606394839236246299735153660560805535369440783453148092820097453247365632876480822212949837400858707457554724026194149026036018320682641800527086705315492051720051756114807295080321407212848328088341827766645967113064706549796282359599910987416710700520184593176490848294123846757196019363973196609548607866043642286282092437505301257007797296792719830986129657380946363811270056827604580879731688826331239829075052590566902693003324118005055963342627702320248688677452233274306310996448139005063111305912401046946691144913040399710544725495866350766140225450818096820091119003589112574314746159944879934155153369043719389967124445923208512145738034743520796330281318073855719568382850706787619958769488976316988953000229907121611931603118555634019172720505154163110371771170982456464074350763706591624439498093663020401449205360262218323360477056949802166474993493135717121753244773624315528662620530245023027483829412631700771272857559491631858148516374013061410260857829907210354654236797619993215295225624092419526437575502463113321022687789083315978358372006480824310282963210275885980999539875618997348892082199781497145983226079033728498435538237923580159391665543805869113925530876594615608741432756764494225181681298372526307523787575869254436618937130505174497350876857858541953096590810461338117389817186874453608768929186335702665614290024052195558781582067674283787955462540469529471259868251159170579139470589968301146847585821823508205606957525093835089529908780130926618078348050797700777502484213555467703009054261398537277591041433704441143402131817202895921178323829271462637594487813588059763487795226056592765758604460585713301935534697638288925692069620359001421033580403254692745685973439098211836979583157413833831293697905681234933326938033597142607328276450778657556537697833531001695355811615727416679801364259412855320007307954228831587333437100767367537611488183410233117274583911359291488328936317467237993824425273865860685334731119250992157212636712336686129747241728614271521202368513171852271470630335039263139837752384876854977742707551686610019696501013654747381137263774265601978796944591975473711656823026988441507699766314849634549617047121332553220844293929153428111150332181586097101987952311974383403849400024126076941116554721769721465841925813346076575744581340127650404726765534600369927646030367559933367089427636061460009182566394178594012705770740062950805643367394555580593805274342180785287320991638214763384267708946015882520274312466581064614622535696932546521635101840126665983393289847241949330443427815522987593018766917672093466499597141367860715842444507994600074477820643729487576849227166030542079689231269015345369443774165220054054861634858748151558488866665180496019152889753315660850568784596633225845234759654915542745727258837639374485652791621117357901146838628427889200087194592414972753565244060428361198619253690952979299899828359454591739670041081937555377986849592312102490760502113820249896296229926809188989354011990743532331286714654828781719078268800557023289456643655811270987830584632817219098079373427296071958188345183366378546316534411861813945192923123710156582517089370908604774860760634996347248271040279227144844628961675622775015751165728928407937776029518450196835198415085463909737806317101429599570835981453126235351685790646782414092121542495370088693721330026439542796196395143219412243593884122433637435389076342405294298768310934292904455278242820520665790757291645605087178158711517957478443034135407385867468794328543311548282556414242399591639391244861744102929401011747443033533382062402861691608465838321002469150589782124072246158665565332156537731801810875390981691641759573951036114042101364145597884715644731605790266293985909304914461238484458233310574917468536033634728005975276363917812666402694093982620151033609476988124282251794770821928956950247647109568726458966949781126951449906321512370347518057614655319094985611681524996253499040714728723762664851158543269099174932459618697626950744168625117717614196522552389865845095047961913719883065918939556145908847065895520978374486457851205494716868868671165020940451906228655809179871470266845855609968398991918370600122750333913432722012643195139060036241661239396005283409989302211684222215403164240419083258756819627401307289375089141721157160130790631179706663095650895066770377522540405754984039246709860010245773044108120365189459409528946321218443926545683149012346971948070423293885634544156960099617358322084887585826373411661627024742080917824699915892829253434841288331681270218748401701114253806440679700632021349433183727754921344529910420380353572812586378383175007640923055106622576723476969900562561971395265467051229911030500254448711268622351696490250140573404626346112922686815802571979050323565969565996191096819696384168890531642056320062768331439705666901945440641122613570587002502919210112217467153503239687315782460215115439619063436232601232673362362645235636729871094005279433565219214776282693589683012693172336396713554422118104427210134675337551887299130496177480964894405899604885162750780327609514383710832676424276717162655755473568799198495075864346963017773449226330355445371388202343950049607900919467093068055272296367599589920507915204521466539043782828640059783699177323326407989905487159390751148825100401140338772331192375620778612936494593344696145071773310584167717809894131848456100803553042763808024003294968218026354027516360726075142155802650126959696543098323358635884460373777792746440409620005784603040308540167964910451735983130290767058620515334474439181172450350785281060916383152119901393439144199222608858823333571335368651621279306050130755713582133131968773642434373427301657628633215388933813262793253467948332903028626656914656175667910155100466000099354847902870154134259122807922792407155678776601213622862889284295487095656058235936788527824961353960300090550328006346853308137489279751250929692388012255459625536960076708717818731169090731163667839722201647806102694176863559465634131238312806895631128941360173335872473660808546029102212175730397029918040532974319557415152636987577549169007320967218863416350095226929826605663448510977650749656997250477061512353984706537621863393606041641497784024712627048548554038799593064125180517838723089337961966683289186934743468620069843916283756487268786045207963915586094632240991158570744441042609548262265089075370291922390572812447392827594330742917907673527570867720410969665582620705398223417882308540752481228455434950892245792170700376774432196176301816084495792428430458945630141041226161393751369354455152304819002561625985181443796260663095903819741778984867258958841656469780303639995434657376822421783451587212060047140001146145510710133715568976572169461768329084855617139740946955499219671599940661377413020765604558549334785682744950759500878950632071192934281548200916235809550595537702485966418118114259340683134831501846840653662143370761981668582467016869593736475109013382907221734484670279593511135624052901644814550166867124200008874949446644221962183125323760401574943621286559313647935990345095997432038360652484245480508009828040835712507449000757896600608958047350565228679318571112631896232023956233961586312779902277890626003832881121578013277111580732002130598386610082399613672095762657272551383229648842677523048963783275689999847611590308886089393434299134014037196923498601177502355394263028250215339116966711646244669799648099877766937012940643168466496941408446155453721664447132438586278609103043115214521735700279164629401665737801937229650488283429113438927536981088341982464195760601185216256729379224314934813793628994172088979151055978349662470348787258266376039892031609589422632395766489838470851230287877298384574005258523704934889966650855978970664253234125974026979809112400477699174733364525966312937601442343106402137483050102985256169541999193481875424258023365539808593145049440476613123504165931434589347896155463812662977247531922418845647350696346035615462928459020253728861709179758835287848281484642890867123754570779318641204167064626027380607434352649425463766619930407511694534518590736374254507884680545593375139523472469375778545244448561011614910469403149466880727373798475847159383807460358136603916761700022729398459044719720052583938899407608494919548842918423523787081561559562368639567052555613482693181379706052828431243872188017545450679737591256529497394108306616546909327425651271183260236367857617978461993370734226378838253601158494530075601269249493518448543664566159223282586706774558328212047736965377487509437736172665577213666094316176132952425447552217511883276682345444076654538772711708344113395818851195818782984672267300451046732271215416075034434964641589727569477830139159023663773154040872053076543214439423061085657720017607226443368119670665124687783517041692379987528731820051442400352595778207830414386209280196882499096906054330716062928990378004064245950350909148291037885276208303382177994179443980599898327969447589003725719976359962889731617296411416351193374862528248634441858650023518500673220235134832500760282020482641985594086470866984751860776309381990479885722973803743210202734404236760328824753190588079596998910145897641727844914486820681017593833346674396795169703010642355682747303368757306632986156802063117868986032241624585057699304278905091981829391672814652051003495035297303269144476025610025576133276039535322118114986680732925404514000038393867631860525418281749934891678292915058019331704777233201708218026798995201697605846513201151573774423256224363895151847146731424385981110554941011840140014079329696345856758299293189412510816776847036227160355437538645074948257250751062863128098080821814124190694910898424592847715914903647522255732172367758992923849485787256792315015186150151421552261969450984835404712260793933329316481857617542659302264926974989876622547287726827665968148841441990344956736384951215108718059175301353735033628380745998666914962166992144511362212535997881062962503126138416406602612233354697527254382601698647510111348189805458285126257418032169412905748069049608100751685827747299496688275156347271506615417795074273203223186705303616448890374289237085204867517296655997618659223653272348556861398928647429772921812557023825541316335300265633638494225232547581994090932347582698756745627084018954557142298962451023790500510067461223120304013145582516852109602475810528554237183930378412669284290662246006124466540449474002509924594085260207492032288199306795855710524279298156178373524169683064240553902375506337617206838598698726269546965967336333524141090145449289825165290769056989678285555364918980587222691176745195889038934098658237762896568867785819137494668741674118885393315118956851289657080664475017087174477960507852417304326706636710669459461542729105908549132264764770284598152135055792533829597049060923301558275335735469759139929829751672989521272570715547137871981946805129138268759126373896637099723396566778275441903606703004971617435386930064021362585069113727296025293111192470934199010144953948399884081367298554462307551763217924866690032924040494489178186548024897551961760824210649558191151599640886178491255761383969614691829488618307364006491237751008686694651017955224298396377815105656483953405626443392589201937026564086767234869441494708761017902972458745887990244851050908055185452641657522770598085617075228991250868027162332431773874305437274623351212167089027298842943020058638463862280605904147035016654669202939790373619582851262140322752655776459410975665507416732671891301893579813715729616407002171918758706087375193830350971539680999707462563708295836049656084029284922022619751115604070486764525899770531387508160730521627874059432230292254248683782210993691978434711911031201898467301298176889433505653126475234676772123595503041674864206498169300244555890509811939488253605743677705564964526836143850537354072712349653096322290413647520710088931892707672737166688742046085203627918109665828027770608042259766849855229237639739331089926977619592268298021952767511580501456108118684301261315682666075855261989187210994466753241146965568336695347449215632635434669949340495738627221076753325461601663974906861799798054605571663853848485871639117196573980198684003656519818128349476478192051957955109906580823594620320554377662986907984163965981599158055869438885497740731646359353394440622619676510849592604971122578938412589771729540023365881183163785999835041570434041566924948889299817947084021622229034021966051486706897240851871174832002233963480691536160837700609376498354463972919840821705200203995841187804212291525668285859571093413342496626579406752402289911491546133096868864269692832802937934482727884602206839241058462322662823337178580846275911010658085898230992296268581446838007319004382047246441304487159450010983769010103273389068843268715663610620902485514003029407701717134223007291174304277661965516121851415052978692195816681726700046160651963642634757527596786381847646713850445508057867060662943266566756318323643651394492752744992412871453016536271611924833262110331490788038827714199823255025658675704865957917125908786986513652814829849306626014769342211347354868100809117221986856924218591532722174559278868826770648547992085755333357289704015555336344698630940658303288263071603934158999643302710395255317138920490262186992009679281691356977157864917092635977083822980132119664996099958480496147651353772742995393781583944918718906141561748530245427243914298501508680552687726261086989313286075162884113062326184207001391732214783568488960519519410626587793082639137923044170431744210209159971499284551027388043515340999872671254463738440375278082415634089201807834115279708849424478097011920927829772216405619558552599823558159029900251743304563987794956112374472513427644273174820935951811564847914942677205177646607623876183688126367840081314429918910603199543589262139992469944068130488937113384133252552376830201599047928604582891501292607592398961839789576317698976681061061306081795076200585176217529902625144972748917300245363175052922628824944037659663135624412137197185143500049704792009596950992761154773089738078011489158757627998453341431330609941340661523733437468061616391219637539376518902546882524964177295484238150043781688467721547735606751194870450172235220852424626187398487774736977735360701804271840807862277823375690353213555571484663603039505072616716152521622202568875603684897725693124033103235883953975631543704468801837045510002434573562204205378566467141965135991892224962618549012731073139847648461124117905353860974729225713836472920876010326461276894502016952212390054680620241173833504551879873489264446760995111303955748984201541288453719579089098204455935787495859709945688393415410414269834389095185654246233909399898564104368993068955524951577823350476181286430244169709411562209942137736611603753294288011188355275240097018712589960479507876356031835803893088133119961154898995675976625759247189666206844801944752482216140348988884594207486420578970125903311583731064274708594755173749844147836899739943321174874736470569482210705750144922800159123432673969395293984925429875836312581163203135062408346645306988498420155253505006621893764636657549423165502998729877482795918571203663883397845608123815053972750227792224661871319429074856122512421144341547127324273628345521430851047452535841425762542551834775873111913405526466393998588352836752254354565165130888416872956466936362733872867327453346125210337970581291906596169740936495549501575305485732189055139899745498705249883501302823671301280059292268301216474531130493428957812822326718979525922606528512128751287495806526455177946904041069994031946708388042970677246901493091653338834319444957587345825919071358085206621370007942027555969155630564880219665345496451678241487926853674283969321234082205826098397139653360485385522044767642516610320739187510691121443298570523687770658574920998411257037511752352392337886847787259484194608325462681833602775165292095801538383744135866740042951666459257051281418010503624809969639006654435600640946565595790252214246913283280581876205686893454834140779685919786013433704725887165183505111640661611607623415660955736921009198154692598544668601286983789755935090275106025290143593641141630563733854803354829123785236190834508180061894369640259118762089157906015973118859020862008408858554359758268738255478087783617874800940110251244841992772140884800554977271474656646223554348225799837629483494494517475976706506545158799746829843315983684578909846898139033952343903265476667420101362519086832637572118014012419582541422187251808650138118944302598419344805833779818942612096078900744606784322891829901442894674614580314477315432748509763021611948453100968612320280114053046851032777993083478434177809666707437011354118810853714365295603345509313165499244115750032486144712665992748458253511475707423085963157493228247807922031670831372165674143289828984684735688284067190276607456872609042794108602832075843936671466945792382302223342192895921017190921892898402213818053184935013589816638656729192124044123346401943349337758185330507899545067116479752773159483603603992558404555483544707472217765031540130304185517236248822331318638824529002562582885336559552816727537985367050388643219774867738394155041328725946801811789080729678092265609222988490313923503345998923570636194516369450190476298199337881402545795822426340163568544215908117860035853856824650029100164449364737480626026102417446671897588369295224148348794371141049022158389135380548690048670305916373106972960138528100262118751093985242821538546498719480222981042520083014143960209200281682020980593440326132942869223436491039756994578943573217058641295476915105491449343617328991653146455395857135731698278034203957894725629860298722670234274119619989396157089247231984097750904877374284218183143547748879028896220390572315244307166029566702473164960608814115982020177633382097019047916280301371216254279407894409689209157481849213649308490470151283003904667556815118814891969026163495834059947822665167056136819819853020736188187899966958569905677466312890742323061512676118035624437349620326474212899420373258056662131305821857205484101788745779920409173457408357577557919439885518321449798179029319214533443907845662216103134582234435408689490225457066400994985740558058204439726100006806202695437447708650871039327893650256291558538146110710294106826090649286507333103237447204484905893626090275890776601229854905168923342123571851122094573731294280344461874802682372814942357696053086400382685812760235235866756876067587520156762159287177092855213683401998711237956598935139247230946626266053604685829071646775291494338346684688312657494900192384819428916709344366912374685151241521808044199250956473091763989593601125747370532919107450188669000028056884150357659890584164068108538510596188989161211820714721183708478135164880509283396108355192931004328639925750880466631775361145140259191140800881724837122190780603353783302052032114014810452188806916558890817567024735445075841987027503906326185164704574529902556284748492760281338346406442160971800535869206875480990412163136592958093476973683322990377569538201862933539730098418760687534575310055059728010732806507340822630772400743604006433850221154289491017458447793418195481680160450748678604158306706969240618182867757191011728470582253021239772891949412211107669802387462955690505577512914069867798819741054485718488007125504285008900656720619986684885464665236426148887587510004094835033737382546753113865760704628335900953583205431882775964968283428958261049577736040675154338260639636575236683795163869556200743765979662642845303516185864951213276045229788434683351644141383544748623227761644947692602508385598190597413605021531884053136457703751941757042353483887954796340620568867409905770543861925528106118166095002066290023306421139510340098304839026470698681770448245485655645960428856475736791669023457529235150344362128222764482111272678323505356558874595020815624325749024156754791642618754051514303655747502512006586286568072839747348692135568969848914425710525030316060841626799414728127697823729481901263647104646149983831460736574968124965859981842277711993842893961040794642670540046978485649679275775938320731060964101027184581971740075777280045201781988668533714075247264115494507876139676975023115848275185161587087509597073176711296114790123197250794561699941304176034348680498257038691073687559691456426017081169143664402243416274757739802258942719553354013740841825848190534720649977139622270311959914043883605718857617342860664516248926150650252213139307697293174373304697286572081837047908343476318416895172675604683621689693945371774233098369400208274833196723295447721833284010485178147892680189277352526218913978819060398321493181112586873899077495216706707258259178912901265778601759373891946617432891532198487447656966664962465916669880817798380194822962827526852669384785956497987549979270033042917980289233164428800751542438421030626474029591914806494156662246926949379457741670272731955782859924976050744910951083071029560753480220900243703715107328768475338657478591346696944783214040675512470599318492073440882451380220435108968052663567173170974757530650972206626675642125481088473334236623755924211713536565887752832275106483783050904867533362803676581816033575459163936501721622929949166634212521215667185017963362660017187468280637090194939979909180152866954401719094554564467217062364094788599436067119591616388788402705395875670789983217262255744524214508499768579108640373444241489135381372678686007128009398747646220432924696989352382002404063186275807099283773582846440901587919118434462966866871881764600487419987879231625145729001945065025009692244110097906512006335614292554000703853665637592906441318298667665754917220902365692689537686280378875512463654039032620411376009530770008873644411131892458423222793391389809692452862776734173944021314064462946161187781532861301410443668152523063010772216483233326181900451723674781894366486385984819249290110196783568079778629687189506411148756390238568241144945872116988874545183378380395775605792682023844442190875621170041864402996016836850644446240532002423308161978168605917129507215704669137631705842358586448927783587631915889482288689461639054876709569154870888349044090402377159595686001362893996985405530563716125606288094411806512736217619925507146144497138237246204014346315487437905706240415628454924381333706916774921001755389168264606409716747130169064954912373117936389396560331201901470544494651854479676505095094356851169918879048188483131870285437942358225070853567239764807439096068036303425071059401538549286966948500126757643650077153915670304243083011683081396135669377203733115567113557711422112885716051862349043100689798208651777205055554065388458271830766432116526735477561151799636524443922416671846758517811860416712583449372829444279451967024444146181575091093395329938203232523107000807713188191336277368979470240796442527869354829299465173285220309070325411983664016800498192771756357006543651309144663370650196857313375700923144271058614857677124296301577870878565755357344255498188262040247152525522316390419012322504987605259948973291918140205190770108478529579731362182331634080918201796149037409198015148081539523803472400965749129527512989878079303238379132305414938138847424461762822656101497844125490444166146625903061969887682125191703174128883996998507873876769793598998105182837414040631551756572890570308891320220365282498345434592587742738799557942903444409038703624559587752544617710863027115966771256165852594111546057499697035985772446256192816862632370776165170278999966558535534854526343509405261855174989685437226936108309033906979388053329446749064709126785751211685829901711750287258532257639316398471411378861760553235399486691989238054176398494765098938599873159742625040419129696838557426465315790678130654128274576491973293534703311488550225030913528476919949012099296086639304067860441501360784352230657254682965568613122061756782519592729170767711759340551789964065758104269954028197799121719111845381068265339804028741407811054844575809588315072910824415862252385824226941359685578539635949578849689037488832575997493175088536876860212882811144933246122708529684562785779971341058630270436799271517833609872572481920434342994324579443465103617557781993518954865462946432251176149946061888880883828706788695424147272090743606945350924923021326487887528595574614619178640672422888225446997929208455689487114729550966193124505445362256155243927724173484953950480058781496870990937032793036164960422382190451734933938661967748329086245267238512980339059433716364193750393038936749239849118774015071025884939447195475477335403989805305231046822863594291852192087465008608069539537984098027950890855101533391626847577599836942522006835831787124921015316576439437327700045429682960898832160212436878546805789566313187971339593752404163642862733205718974020537786988927436143205272644665197730650814440009444289232878238656918810774116361753780305339052927146535240645311251863629616854770504017918164825832697055515210719787865532820855221278924723702936017164862631911324779802988580036882341133471441923351125378926828789706866403961617937020410331762413561971761874444110661064056329855940910695228140077934251710368732555909270073594261376220823286990040083248347648621814698256779800360504932617073650086298233348157224607742792705310635741892838805657890082461835996816804969281923845551880102903733797754126648206080026819449999764624139342470064578618007306772314945677456376178339047925456821910028795505943822423413798124568555189723315352088130326385465088224977698217793395075960884620560992351129518705788258032833024964452843358904246664574759921158179548180523664939436230224179098154214169178134938813490799333421752257856033175378103728061889755766840568199273212191566315922640574898859545668685425219590283320329415443553527387307089685495604719643440073276802287940299065163353536320380099652884234784620764314197401254451818410741931114658853500426799321689769761065249100850903710052014590333537768587587109520440148300811243544191080033560560564709156268601805047547409552315023678583303159469777732481912173916762820843551969386005853399900183416911000829081406953925622458366394882458937580878334630938868118872311509773330541787467096216100553473718793608517226075570501710922964468961487083159052467312355501665554072160445990613774891458668972947018395068607942507256201315280729896835557919639845531806520706453061370154533245889540782346134754775411995251540375566080715513534589145655408894817693310584513440316523855271171443794076678245693026576138072049230627938062338748501192308164442084722289308885575057006655304773939344662601905858031886965134738503566760325456546139826909923715330264790496765193712671163629204744776249791778073636305696779343582294079012841467021296954210613903077113258742863024541403597410393837119357112220504267315784897647516005312834527673997738450972989506615516566302849494204464288166669122850765657770723130622407272335390833113467354185136261893347013079493045978223288385508903815179307660379722549750758342066711393951201744838785093176044582624398342762925349966290984359646860439237799552399709299434966811495379837941788872348231660137644977787494622425705773959007385881867061771620613210586393749047877610633309320479996531715382859529250295358763249498407590238906862251308273052837995072851012402725319602781960176712782611156370146647238438922216123500357723198140501684600430305458170867322764240172834814325558028598543780276193067716019596836449948001825820988953808811709298504061506174181811910329695232391590147452027546313450266042694489005953353011368898394420494792609844775645759326184282342745400004206417267861095508725161571849533973631392058148180902899033740641152787363950449402370136002848342314912193827443012751021364402351370100625917756558437910559589844556939618014749608442669375096143784386447026398323059944462034527117306503892311601546367464322914879805608518853765577786742765365931103901135169003009145194869501038220436240935481999071172729555003470691381298941115152421989362116342142698680149193167929578921638301745049812744144237051841178042868315274765429255636178582684896752810325109499971499584799986484982286540346977888226568905550918267687652439167799255927823532190166747423476389073677301712066185094162523122044159044131157717684900173860500151943962156755441579277708928889978809918039779138763742404919581156967504909279367362915584926779021906894847866131083160645327003054453880734741504490788050660103807665037931617967513493578354981605291780006713871118611038163877481160898331360170712892873961587694245860234222121889653098202550475157544362532651019550092024408029137683373503748986015389680812940029014535009487950709635359951149783922303582709986506271518844044250801606888867038538114172643168741752181151153536184128136126415527935503430475127742066296223922964687216603310012809803925881624492357270441077051547596169280078685136120303978601713041661426288920157984247584564760121858682115028503382942919273228010780647958331093240803048602674987493874309685246409585910823392712764947373646136514127304968190850107526160262583311085253580345182273793109433662784632159844196526634321427318630275429929835153726325756328621592928973888958429813232367319620504892998424688929611049997705565094807578604789636512524457944426970943276397556120682016395188581589177683859739826328608700455591390412027507225314844194143084789358824371934042933151657646210587225531366779016213067133419967630628284873528498386820165630291520715325029082502094040941051946687124821759772087411231446005171421766227050193253217556037553510307163032672880393176923319815452496378661882174363338853256518461683135991560797611505176042932413078389869473467884944832839899805657634477116686797025116949446300029848887199608033662687058377639441186626622418531807982722124376661858172521113032821881847276273521229895457323244421738048276243921201878528746245532382403018770714320660268395762524625070014465768673787263720420231714389086650392983129888935262724458730398772251953858633022893510265877675535752202032124784798097858533220537252141998556945523020928462570317150236484791811718584278575965376435688739525034703608776802969757036709395595154835947644601484691123302566820880983886534452689422055192626534617957030061458396531848850993423915950915112490384105952996065228642065618417424415476061840835090081896620436296616569736665733596008627050907815568353252856993022788856789052876405701685847733184787081325362725113952710132215446956852338701063439369605202753117967396184813502329249441918764556894907561418122620616103794597593144039568537602955012727627575270766106444885691219499009721133309431619627844678756509088547494157533235958366346795503222984285032971685272826345892783093048102221930445731213726706536751312619315439964982335559030499836282505771545452557544469944030340474969306398756322830170226185094645295207513929415716402686548431404924626477916746895685827542008512075162793720703616761966434063138853308108491271254271552099278108901592847335257972035786134764534841443832181711887032650461019471416401658076738508947871851068577895873598074033964197094469435449917122474727465648842123033802142272206597928210784658671287031194721991729719430789844909995732913237399587021563340589255099919721406337722720776173865202897188146140698831355058325956912772856061539202115537735130662023214266352541270500057442798635593266670125651363034960358819082332676017721935978061692636880346253244339523401296979721142669758974441851857418564255081015717572089503784375191680212644254017229570081653075231568835232133837457909072013414972228407255633452174702636555394333780734797428057222534676405812205514339112098760477388035233472810148495025450346986487943952958778222262536717862663289124359582489145605021038884133110105937321371507972545350090253475646801533863336928363771944529633458501919035321618555855360676119323734699156715278597845423510831879827711017451064947885459904371521585613512575040562321963726718974910370184676221143794243123558953893241755910572974559997612265176261111023934412396291972696098847812776137308869751621643231523285618362718922492953019490747403116956209688715560988046601093876032492902008076398016207882424298630987761792783801432447060275813385727545825405492276866144292386187074022783132470179473017275016806907177310692628611680212311244028810931433950164157277543545960683386918520171078143489340844543319370725538956212648133266020036205612245520635594485403758138995277710664275566375987353748373964374778926253601688716196636295174301928937633984281340638942242904999699544506546717657015670234290473274656760859088046889581932771023439417526716463361689561087445204621530938683475074725994746117993824417278890648474853591891528257271300954024948839832514240685427446631284278453804502521468387867155733135745234786509135704614685824613541671665583524051138576871100188799303274916189325176524133925654531865891023341769381578698987724845807499834937842131811682555380763821816204775886796979180918655115805197297403371683578696736651305646584436451121651908916897744865480027457485056896612656164060003220128132044382801670030275735327957087380742872982049957645359620375505807456568282468282761069307778618321614624893558329592661104358768330978693626346751276272514319600650330759515737037684284915464873825774148370809268190439116986254622276692976544838281932614020320519342463122999725750682267374592625112642930399212737731898000649201566921588138095286643698582670948619533314811067681758134222306917063410695132761951608007769514234886474810425973976354388724500130892881453898538048617359552104690370389184896108950391135820129894265762381277826386166797281289224198034164537505268891037067370726841384750835875074656524846093908357305874418470769762913075074157567882521780139168747702022648486321483827077460464295003190204749405025527716609272575592834968849294942072316823767417476470387617575906469842686188036355799753383057574334743040885841476555514364403855491858489074695154529524185651389448674377477471758641026030351778020195939177900860999681715343929273467302858266247111017060704372312023802253499132873969440063887219764852853721605162644907662159785851403745950816423008347171371045475871663328547346853274052523409565472857247893113200231968864260096691417209906530663934139189134542429321145040289071065704666273775651204524980857999778702588072435629897732203408675682625836573405790439279886007885381248839491249392952082131079644829976784085469329393352477440617606114552711597294922441529901436105363289768592654639994917843154050227818324365554502784730152951633529946781854323587186227630122352879313564541980943700720702635395609199353496878603659282621711253461031456411034026552206892578363511085109627471861288945097257035410250941031159513342738018527563842452282339109924186273744694671541838470173585445229426979792042939948032192719789501000290952907635462723945876120792050774690771325417830946802240464477017755464465550797441371711596407539148375742173765937506558629885995519345162923645369601703662750630572125355760474251157457268910173766748017680246928174255872737254726060384140357587213873892334254478583760297507429964402676708258993979447901658547850740983466142439929139474769872827168973046171467660517275993337774265414104785512379493646905073540141926488552710327404214482656780229635258470317157516943762747760260816596883601841796415249242747705506644536798915297792751725951891752851936814218802585815084267594694193024903607325770742077022843985873208540403249857553673864720261926966541049870923334593956399738529003958198059638145408179895695247050436863335699645157900063953352933449322529041270620388356159869638093956371607839517397669699481286207612058385307249020903680293235410186617692233521561993780154197747500902598618634445927332165480831953619753460892888886279744579179638035849206688655229343097475936147765477044798271601028566675695265605987355732831322608170373035395578813660406183206591498144098731284278860382279935964929110584062719848277464580517694780179685350921358496358707817043514176516831222359226071165871032391184945446540004344761063854902515429456854166323160699827041443411545005503352700637740852694059199073647270047954421602862686823955134044894119030832822909778096201894687203722815966073331799433677405461148416733883401474371548391136508937036554653911050932351435386060809269247514694373934393259416646700028186429284685565409358481539402672219677329772291178426693266815352553839175419729839240629913452434453593491934596553626522243250762477779791278062754653511620506083558595071255587602010836261442551513883050398812876002527420569717126875218129874078097215209002185975486916366201979963556779043237880154013008427836948209605655649740445574053749272254828922306148978933753324969697819757447935549987650898212930746462801129221171101035580034329740505475912088072349306599735472299972421201284960278577698762558016962267485186573009386473899253818965503415772876384446036825254788922309825785653717321683365704466304618072395391480532975573594659211884625130707131467026624926205124898744048034763111045837297505446920049799749144471049809887854150472708506416356634692165724304339213909159547871221715619407026156063574633090690413525821011345815169607843462293782869314128123416732171829014808159227393888503842914508196682429181918539529744554045756578133478946212106662387954522594732022404846729753509172232081485829439324612390881937860402720702841129574746830815308900501515760635610532653323272256761807196752645315124051453972112254200670328880379735570533814830773126156599210911733489186212591632027047100158575835889117543394089484523951965928236571976228069234785119579053232652013253742596802786689801110293848897181305637779123273688827765740958666582038852550350592756730544141346702423810552236597442296527891450601469365153276097526761701948672952028838984054695964946708493491980436935501865736320170755478840149936037491635184824564932752407370110636546757102124857393806188583883299762042679498158454333045787292396122217758843536596826777055499531221738430418216341298630940921813310320301393916134087536757718392158421985191786932503974786623976618597047311957639232928693910267598676917435945803877101497727039081781230948393494471556315924973624532415101946014654947130545250024704547674178606661299170408938501588152628579977123066053058190872046317627218886532277380018297042505921336998690142213126686227811405887456285422633776570025065778582407227266581303798439401690660313075154917118370787338034913272379151776841101661497170798699633710786346369847079620689264486483617879014023617712546595182466862181395265326462620691613846819611846327724303984905463750196856989984478084373197786395490476565294842751895463010505776303945531402541530456778864718567460446356416583083816791962227233438133709358084179537595355783746491024096817506921005844631744483052506956803218628376247357125457482191297341416107182045840738614770944163437952384964696672077847354932318337186049676557749284251122924187321844277491519045047425283136592094592279257725127788295912732533053904191923595401713082469291703537484474696879886402217347718482711642790353704472328162349971378886893451796786180609442074277112535299982729208206759834212449312361764908970508984211620827395954145776122953507723300747086890674703488629660036061092413948326906506691895700790014761621124876382744429992015544000487936176927390684969567536388893407479433789013303758412308057340277622105029279066900056306112629392923313370348036574008911217560942900842285480622850720736645674246965379337745803831453142723287120271593468160449880344462222222231402846772426662583697068729431104063047920258028375370380879811170368445983888676493590756184488700042487600962895687335251595137330885721465031178891887680682658028068386613430639880536096446506757294551282339731954760477037490402256716990853332236394083899071267796801861602550426299105833233825987272217849666697972380870267950582651469982385660354743057633436590432144156739180314612057210691665017063876387271620093196841288590325942858669698227292622837308179925569371822677987695009935203146103668585253188796988792877002978527370055294357776298389677540232756341801600163822349080118029360143980589771760302395473292323247832779566789270970844080474599296108102864872209402610571222281339328320892123099906103293233813547583628868807273618949400537553299731149289344863165581923616110181331704354877502108985716032858129799790349824036287032455076850619828601475499692193356744931817083651586057328743862135825970908860957014495906034040181155063349356007679841276058756959230679522034356544656953322209719555119921079082311476058187645903624779854059421887174684907399108229008573262289267745592834305208498524794749631983734791607182387256054052408117688892503424912445594903131924071587394595870058330191457820559670581382036187071766850708127110832572226000381342787935482335574053821202638214002631452307111525674977296003125140090062791829881430067859454709230231724776031763659812012500530748508209157292213722252496708058160209842794305136496029784081830980055009390174120484622609125233098140381163030291052772507032950004906277671864332391385194158935171781992173171981808686328364701223272027866339151167340239804627700130361639197315408890091567672126986937705848512584855209399881885126966322573072606788871691781098417769721389161876362385043495720723247079312396452867990709797531128321480002470679386301277250497552178012870519886731689208638225340341782643038456315903897362119599083266031568357269953216948213836258886294708205782842782687559486862346283941377573573702118098803854746408923529477877190488304753698309842355493062317437912360963134963023633058646656862773527273743816975855430732884692294672678209924085264934477508578952852222792529535099133361784034194665430272709126056789219867790553701180177698936060557950580722717570250812887673618050154434176161370123651220086675586609172659650414310797126235127939915719575124446907125546622976229823564574175458704640106677608892565184082660459336042611871371398735273095007643895498611593123514988317809175602576373014188109898222436513046296487072780425943314986191813653901005691891174432424457946304813558524018466875193356474450928828613182371914087737078996479857626023021317543151268955973362922848306143568682847932476563798119043329773998695431897289098162024142007749911648170843974603011658001186369294882983862718905166145932321602776875991655368292093420453070281968020033255517881322920257213309969268000950565880084032945989768712286957407388218961450410300303878890746599266099203009980976379430367263130438659572904676609225628856516345642848043167412023623093630635949381838108922667273481833020653423380337359890072599902496881168024775860099850632617718236556059026527966108975513119312458040910371914351347116465740102918165052044164642136230955209458434780820446367939097704556615147207377302024316834587157715001013256509060458514850336650210379087964980494011571438055283086388779101060584454742447576246794392371489106103346960082063688909604024321266676353081182171628457726328898344785414405463678386914371743095331259443460437790159894705588495487537727558989562412196688927926905065398710840294006873872440867090179776888006199300439352906856508788618874856984838774274115813821418278870959881546818682164641961499301437056791813843762772419912565339098585046587228254730623894120493379083125132050690108535349240722168066134324712554485974214771420574832021613717967056339819283806847944577084679474202313632295697150829556491772056440325627360082995094862336484541614521757399311284713018617948135551114451643956354227787755767169361489826051663665388056899465806121850897236871897405683760638762126012138239206097863287611842890942335101144117769100383188076474813945280128384877561892147453474219537402888004763336877661102361298351084506977418269107474305481879079779591255598441548045357776795940678698349359154824992341825579868412151037580896239984199365925396868816970447077254093253363334054111297175733982151141326796960460020359569271793492860731037764578945974381603097905545695962979565864061950376339007984062321098887673089955919085332290877706540730975056866593418124226804932118976941693704326040895532841470339503808318304187195360526563461070531782953962505647964999066320809084884471036941603400555043689494056306529255471463203860164004825790079476479234843535845109640488775239358771122238253777353356572150307101911204482404799243468140779658545708727677139276854814634019259279032478133414642736646478463940017950930327691565457039214116310381139483051237724855842723501552128415191028558122557330806829672269607225437949285075247594432766496488790487758305458590867939898270341435728053710979691930279647406419005904593078577225271164817652968285801042196773457193173120693150266383318837327623012006438562792604765071026411301792781850417696930702727013564508140681929938974205249317519827687419612717973344848843101744362511601741684017313484888342458962655773029929618451530399461946611755325028543462699954234524214272952719998335248162394390396936589491096297168985297709987813251091682163813265939518852106256634870569396365913965682501191046052915565347082661100666114487217371113355165654496865895657182713959002018048673403864130224463675082815042056551921343129621557115556400002320961600237981774979445012854934701687703267479145699464912986154179455937866671340443081091237450026031347449533455580731067318955843008669562638025676543859392096398392989400500140736372903235781237255641299876791282902304140652552552354548658130844244819938181374561220489824929635754294705497181920445136548186725336855090153491982208155628742499639164414912020462518606244136995151878767953942497099978298356663391470168076943473887443938038874039059796826280399771718111988961042258145105364478265934867003584383377862040732122291652271837051713368100673760351808314312599187892606642223166409151606852115518932420213725940521328028714232126621299746980763993093577331522109473357320653988183292550754503633961651807722254894319226425344079558586105820005521106666209565675758349893209240572168354847210345554911967329056069021060630184748062971758580654523473856153245711110740260232752475723010587986474926585978825463096661065984584867982298996467306953392444268699324745843837409157799357423151634441470598970708506793201028775071177088448879841985553322877206516531964383860027073731822364373810614399661938221150853623601537193242726712994187432244697549090935896621783261564496464449963258012085754871907838618138570472238191029618787516137765596989588080677303084961210827192864895776856426624167299289410375226454779930776920129290850604267356097963768305636057697784949165624002129737506006208122244533306661555178829514167866949135365378104075002783702527201018852534970438975468856983675991849028179970613881708925421199094102855598763470015907635526548691624442370774322193028111998879849903067450220037388370299634381093200027199278219622117148972116202602293446209633652009678733968235704877121079044911688715409863414211433111545417793841359162062424903973509659106898485164220871952782643399218427367041996180660926180210018407170565918977520061941033803781380232101056008351861180586266367351717894216854011909501629963034165001440031375679581957341635656494136515368722265836130862438179992911563597081547655680841639963033361944814485642064174951201760572177306379856189117173348996747023422072592480206967724806565643486101800821611983763542161488166765786443761792691563762867900796559911812551370876105852888295511589329245771992582307215863855578687028974430080096962998894151215169523640190386274548409597483160667221162484199521297632741940349681790944504991832629428043151223589669507280974844311138315726922966022679135488907486641352157447823113372054224715314801223094646973459772488894487862111319978310464952043769936394305604604834486125673334525250922432129628282590927945038894500022194664524274907333484239093904364836369402529922341311872303529812247202451847714697592448867468881443171372524148527399374353008906267021969984287352964832101863946730964310119650295438151020151658937466483185727696214961462736618944313346237634429162798449067163983088979974874150167441178426422326624744234739157480521438536355026251017163782790662603182112162036061561338801711160348093324550949280507947553066712473734817896081633756962291677038103168118990158879116326492276055702137257886205964585276865571101865323345539256931475495981398902477749953731710952612504599701109049725602151012669527287949027528001208008260682327149160405740557010059057841765138278553062634588647860682364082907819488682523034431884171779692025519113145611790123154601864677308186995180332779162454315780833327393209627571049842269658311060993987983931303513796276451555498268253353670724452104575768523262809504661253125890291030872019510960673666136395711771075227434005974219276189837501681748480324825622773297140816829309443459277866660923537945030889340202281532910940016019293099223418982706890472146788097230511656479527585830678197372409679901020179071211820211190786097444366117822947014396652793521525526296502299257063278655026615154902215970862644715014606985259703405438195716176257957544556534884209808426779445856458929823395615594026037194109317098742656258168010807104026568087054821280337702607618616771591876101793908573691775249327650525516690934287581850765994906964411506632007873999580431997281851998210746859947599245497646260396883326230313440432672016805929396084646690371197473324337447201891162976300005633920751760052652644278868563787440454883619002793811893930740041565983139120182003831210519045469760559566899014116547712482213700407539305443885046774985098084697172824861940342306836754169054069129576440172275860908214596063740557005423803532428730289689711418426485392651182421130425673187850425585086281858257476205519516665470745341517063959953931362988916674669981474102865875875929676335188040888051255102676046711603376439916069024218583344638230838963811342950456838546659146112133365000823772657514060638129883009451692536828898723204155700525297846329784404976885910988562261376279166375287001792743899207487004234395160586285026857203193927635904353284312731885419755945271728189884748752535627757023449978852908594308998542101302431158777972545437922877970762108214156287030165175694516118852904745319382484493410314731029158558389372079938315001618658191617630208270973817289745313608834955670032014031248045664734510267742872279338785626913791988443934479414012290838395127833291851743047476566767179027145238065513089459516068307786880785686113015398059360991329130133692759277195024355164026659671857991128171879255358336862205247689553405289676461752666935066251645440739806111131286205789211249695094061549465966281523930505400987070225247789577643057840051638951275260256818792388821821237939969263696436682620711752156266662340614205546964086294033492738091109218328089306829094913834974788533289343404236887196428020971275891918349714467090270648577386445159066694329460878882663655568767200457160107366272918197043074411646314867916954560653459353978543755521055638433599435442315190554225553208641923561482219726570029602263951498500309155390998734248297668272366727439960734498733612332862500209354051869674924107334417511893454175351847768612265555000169378684368130491736393173427302768362086494565201260935687494607029254044948916634944232005067673672108899038829040128175650022066012163446306090689297035515947970509217592911659724816498198357191275206984636926757878797591970895224964023756023045071513869686216411661203719323269749800772572687268873343719729318469050835053490000258943430907766321509087829935216811957658906183683192964176523421462272329758968275366114447125911268202572762549063670037600861326209970505162110387032702800218161591454541821567270533195524103557941293155359807129543028986962526477273143936794054271198714667570103942298406366802920167306457143739105044016388125388472180536346680261598379448564542019522427591905390843468041310246246587042799314061193460725992031282256986286391430707144144744446363029744201092921937046083531125762844724857451667441360479737692172262896120290288010665928009881409695182640842588620781528556106213217690675209308039146833624497898493848396481008769155291939971867366626296573736794961269383206157680710952286692387048332103634283511638160719445114534553835112928628954277326572871597867433640635813592590416215492760670267135906279197700902862938458865685625161173488462939364666020688825149128410680671943735296588900078729190289980208045730072457569050758672838358912943018476139067883143928295073916932385125486007871200430381756759705289271069136645570484526094651926194455917959665477344564889166662108093142539563293923686338434096522889567954118909090738260237183866826008461524302564518070002968898287020842388889724964390270650644567296314091062327141938633916596673837124872262134371760813372462096432448180256962038327023303780544823594262592395487011104546143862880639001034071599981960016370859471382577296162990941217350091305172940465313048680160435913731178933768972544013117948571247961459555057373103988049329176822418541409273070083572447202824383565267488807515904855918746882138956329244824746957606001201562178441628193241602566751957312861591147379487461940537785406177759554710763581946455527757962790751614617962000417466244683453984537349225528661617903068115363043195926650293661629479229518693851660383242677772304589176923023476108449539431396135331515505439870682286444952583744630902281259964394697131773238935518798896765978428724005579051085222973407302132820376950436127563459756400610364719098637256328397429683062848345957823470268700160110163701297003713724083771967067323884489298217756927832229344432704586911422542036032576020415736521854102346945771001562841600766810911569718811988546395428232723427472340541160352387780799699012029295206921846581753524514727934963544003392185082768251986210841961555668239305245467235332751951526093421258184845572710407083961273663856359407963089015220469624780000114842880036514043293482863153062963108171606049469802194528697206707224522784197874115493794704519722525246288710482140519940057127206866665616901364464621833249965377716573822058851464172192495966588750108277612326518253219068914670798798901743633010385794964339831346698301540992223956021761789587393481599020536171773112576087154983051103656692825576158407886973046749772371120239509128565439115819013209717147045811447350144923803921600809240309043495672537812791551740574126419561560031643534209146008844391843386294448957752032557985014002247345299395427299365190942709245190365964999948987885682204577723744684160828713224634125670283680001497556095962387954233820137195343387033708161584238773013388862482313740708062780445409537186322919694506755696878847871174732074980098460855560014423710234421169941456048485125085360182108165641858592955866074920982195735956027537554372537550123235051801533350999872807907373073649715013113486480412871846080306382876523267977006898313897377745693625389073761907479119889797602857578763364302785281836403692281006712549191105332546811028413188715254040052894955642576342746249961773940377008429622462719570277676984321538923798710194212180929316907799109299174899308797420327146478550085920503933656780390850422246178035244636922546073046040122681009089843236356035725684471755466070254488808806959852763957093354249024471348795052520988102116604807158817740624367480320899779730858603834198053993938204981286925459337637354758979587764271971023081369162522206363160838136872890713588001855645086192851411679552379450409538782706974614979682361780994981942106890663920517158247046589710683478953595026983314133332476966402988734657207351142314637964454694789040773016370087972189103553041677932145621382757743004812536750236105305432688545711923907410317333692109418433741475078005384337145908709135044458055031979339058855577046848638732143059512737730451156792414923331529560321461622080754603056318900252978117470466967977020574569632444770505872373455944530202810141830399062358488304557787352528230489491659428926670975173658189388286785301939069943819093998552950208855091160777757709508319742762810256302828961106268404011410535559406505261303844273115121563260264705448319547413236182084393953692890465443194050908405463616290322238705014168798987788640700847044490159073903207583992673080002413841360453056636464967244371715083308906593306629173457941249562948794548011225868042378206875894792791539813882391367343740200790652131261571953208841651928230637042220013466786011893274509183337851930243733899745607044616231071762654443307030198918937710172957610434174123482013770397677504825396674343813271398732939119232557731817535413638935484633354849724420712154557614875030429677707640272294894979994738475438268738653015573030263784759454981689383130597977212955780005114138596726449093379293303798865379110646436935293429822666740178587494618240795612654283475034405935653392599894753157726815831089194287631734996647422164534048163920385957771190619771620642759269000007149739200316290910866876210114816559428712863613653336346647253485015550874447384267798206029099778812872480901666665450504190024587625942541429150351779915462942176219836180626666947598206073310140027127995886604002319449374788071690038182568078649120184097059918738117059389016018151675674481061204363747325372907960868299292768594482683174953608821328939932587281046702516588943584567732758478204105605934281845263157758814175855816394113574517127765807486389663269497921574197399510560906394396322071989728902747479398469141079550904064389811527398819468688977077259949692355227957579229388697824090979897708391143303467907328646766578245678663877333554529990175251047927977919978370216605435310784589243621724933306343900673704803116451476975027098303448196506990296796584287218279592639920362385457056986470198854545768476969272800396559897827619140076479107140606865522421139378486847484343394841573772488524497210716434571632229365523498674213188545448898466419544954632358489285885226647682719279717907272826754607132961298524053221138011873510511012408628495097585586840276499856811229507548420545485455064624287156227032220029154315028804947421995265033173685664681472657197233039465934850673128162549917137127389063439430183051748481240984912293441584949919894193975152672038979921592512907164718923478054875892625790472644158330661816787201708472919088033206335109155004183536764660282751062966202732588350072753504055504246426845943166722523314309634352324769125656955017866024423075775170202368641038943910988154093011343089857891392485010441679625340051712389648320113490139160482657988912419073383425408599942851269901252253461707691142285011008367269117681740882058798414754392219015739074097758101578865441443809170879012818334791449716138570645670636236629134041041925982287284751294272791760242735865741313885483742335057619197747456464263771227808060643526400142300809464030004966962325073063833590923586360954453999575957300731672925679397592349296382386195157170759330022668359933832709154046646609059710354098075523220271018650387177337717533033760624780454876492842913710876959855697093418227257857644116371864882803903003195971623132421810844119477363673329265593944589387527073797973960713577486301667866792839222655497026960019461036315830409734823649494226842552795770159173144153192991870603761418372496210030021750819085240578277166650263119277993528565769451334948520741835281595063686227014077915754619431335719042083533837746139193743177956191614991604414935874198737567311552423549930780124233025438151913474231517224681259853558266045752650533610690777483457350226617393141329042084152165436543439311611911032890463248069417582705161051541171225295523168816986813169072996194655465240702822943247121334257306265432036329510055244792622783757207774089003708320634262694153218128542636057288423462116458864415643823248413115380710859249371458788968101978617013672653671714124592248065477904003359204976376613025712673300828571547944502042077621125523196863681767847123657071353244841484224932028077405565714614998823732256813416486153747182677504143993320778373703692615893718113610450544387390810466061818940932893998168924795606969902851810919111267919341575143707325276534807488387242078108722099699316807031557124204565371123715180150097549085276313708311744364527731664664257379924451781505094294638821974598127858115308058927179592598324739662284122781452568323954674327706089813353252694508538720114663394652545393027614035306949004905120857605098420846511832404396558689564780716222650384075153135728876342354588902151495156019957771931188804076438735313322088097778538683011173295887660392684022046789225816976428019916930618159239599466480094420890893828067083048536460443027279554627566602291705841154761445286060640339778443636937887617348493669689020478969372377104706207615441543040304798004309009692589386482649118363329331979752911817671901399569066431008877105546638561652544687802652720957975500314118213560890965430469709941502441094206729147771124956657505385920116658363919871057201605050252498870187189967972131647882032030568585713666116647557108233333306193141560338434258756041219382859592781209763690514577704368824252896394400874598301487089138252765886572590557779744004582854903376419353562293059407412260094171053172589330940239469892058468602813561086238128489880897784651138730861742627114077426116441483175150040188435483865773073702458760886063696322447693855203859131568442782824942523562818147220116531951627364874406090410381083507088775801513221218904131717555169722516560614831813242740867040183989293479692564906339709908848204629424012079458632753497007464143060262122580340050555962291668206648631408419672062585407922100148531073681815351474402812911352570469066390064358346067773996096456299969173695606312998426419315943462361024910017364239281968507446321424183966895531016528799685326418967040852274965064238704803626563942422819609822458945544136883109877788365344463650661959327198664171588920137814958622613087741144154515655481784817829767181679108068904900469601169136475411538630858449169310785468238250587443666586320218580966899129053675736620816678553386540056705082605788164197918483247459192969871163576984688705908065901909448422454533418223741420041381045445810463271115393270562658252143591811758758149398123881332220661931970657220382916350377354441691341690965306126829393490736798367958561589676627799864236247816508852576387941915269520228140652122385262751324488071253840607407091399180040052927301624626359929460028421186253162307610386642081659340504567270396900878467414820097540791528873536402234506653544977532539977632725369212988152504677273463002368159041656557879692283572490588498468339431730475613779798442387399592602541125780528433485251363646709570883354846804098642050040705720274395233676552888629352085001580165449012581731948240668860539676826791782145668709758734145054404610916547439408703213581616109310857142716912122607048247487940084858073519813259354551162413419305238842381575365868831535087547470516560837879069702971202734540901146073680306289286865677024429466662321185487443495225359000333918284668250306113473665336089184172408344655970637126144009443566935132808047576329492318030648129662860213713220507200245089964315443659244335279028013473006658810885511433779953353253303374488434039250761692870662868107368940981776173890638804470978391490605863330919404930562983554055936678465337627217599120806627357887155345095497919186544757074905489953221199729668537024355720623047128486445319078579712354798237020518172107417396908904746847187167409746191860759454427934016786479294582494838778413640067018929646630798338123820885443819100749013005979984814373523454296310143947263855057263500854637219647736749026876895676921946213372073635372133600834330404236138406954864784150845934097091745766217898419449597455871297075094909383354205571301573064828867173593055160720844761187814431798320743942155314745665205977105014503657727295531642652442191448045935834540026507586739574644672367478700398538149339062703132709603277365776912692855937104877151073145558710920092058141262100567987664968871429599274539419998684628488593399293445327938482668960721512008672635633449562258832321142576516790891598185577914385030116085948879471029250370079497676084930109554157880170885117672909134445086535261514811223440125812246957181975315790041264875150905909914123890835428153794048768268634632977431873132270417402077575082311099555244456372856128317186722745889284799651320841263549431261322980118927151801294677188409759846276867915817136432387840836648094985872036813834330930050450527970867106132367309987742940919560370712365000373593009078216483079172683249279277081979023231514238477763510296261659002466098835871209580099814920681534817359106102930593673015438002914458629810148656377921539141430894971942087512374254682078947596648627949899774220436249554731849389666243918805928698612773836529391199061741139459865282827965068816916146894188048878624464709613135385584539905658630448493606215051740493750574451454876647336708815574881866769356031432935202665397347189312448416359107908958968127364322102572547334086008068715785133306705644648635902556871994853691031209317388821202250207359208316518134806238784183042314158058561559836730710525254408466326613471132133145662193003894746088872382423327392015144402679549330206596957771914306866952769757109233908636438359308875278382311929845109167982134746787409921283370576357457431718097389399420510817036454813133554618899259312720342339522049025134171133419675490573694880227625468016872340573859797375841389000418551730154449255144764971185637188535625942723066734388852082768699572306320578024521483218461925157939647843142608157786424670393113493382567506719209394518498302461579732875793212087687040133563165071129471443593794388340844154604285739312553405372885352042613712597200755839511957322528345643088883759574048618178983610737707777903537962917087636685697321340472480626699613127922630786975847261290004862231709203117243897503557718437679532195138211319143549561074605805946567379373376764066451739324073814813700435524564835034767991744951754547001565100826835731729462575888455858097053378127858979226055246777774516694366922402993059875600848007401724991078540394736464588758513003720455466121377220366019213873275386015473612716619680349811577269136454671629009820396919223199709899253438642194806809024980091321806338124098138701509504562024795107834007715217944291906843818500624134044949589916664496685487804274634779486850717702764240506537023163083457194837982742970602724963902708277457749201478617512998315326758810410067457495859038998221093574411573115180750745980618062201554744842672349467431575434097136613554442835550919333395911616730825171435106308980198536527701647204062290002843834750590400585317196323267261077174393342811969919393953037917318699814111082260318582092378999569105423427734533554041130316566853040871519756895338224262554912175775552066039060742319628655284512649359726276979593392255992253256275428840309619520017576112964066570536785417456530431170905547480364932942212777243610487383308687150537323860844063568567516120031721710295967376856250449579246025457966964456132400263394405853283745104309559998458379778823688952695064011969681877394501053274393320251289216499043200821319013263326984724874230938496396793764523701142685163670237309325763221114204528273439045309042940013567035487329132987869552333792179099591934865371073194507850820011869613675447880035320052898323839962602605911776252998905780619975601158425841367543842909228447487660782531927882118495957209841641551906436283728915639865346112758148577684024873675816068172540839246802531995386289440213522632336388135055498134516077703850645740411726039995718265410287340900264365770378524093826258248910516379656343608113167610714827748744804190392050931126310832905945182823511654826434457654275053321799194969094034328466803181858688899274588715259615469750639252552304655139349017673274173044737629394078502627787174687493466170261627902245518623807686020269647983313804707374951347044718124895639212567161638872688811634825278490375197541392688045651442532924365134797524087512949015322299184293914238058093087192854362342738802889708825632602933635409817105531450543136914232320640919348257173478788531239156341131360786604733439831497142365134382985550416003225833438116197932717712719341068376216007856366614857313290818107852554670281187161272225979376356190317965029659868529234707814297987699248296371687362654097786834346919954398175711876239335600278584788464597450779379041889639823450977549512131634788405761677153940006767899438154279131804183830416246003038092217816961440534119987487542955970597577862621168931581780179859230154264857321844425341947884147702557118167894178514610532714218618991023042740706186509432216932151710570115360268607624223807518522142003773005238644302908937185817354008410306370364974517396245280303157553802101337414459992746697605555732615718803114272584483597384813919886651234806011145870971165139434926605741471539113401671402868506535801087099101297119359827417052433504956778529688201839232322290693268765319766471886002192585265283243290701256243607130213834928295329779713596347429485720872248309170788006816133586924252438453832852356792856872042456044789037193044408236888664800460624709342152247447476667989418030298747802427544074673847536957453537405983259830978134642892171040580789868077214881238852313090390540501841026868121505033046213778631663414541295735564592342107302870474284493193707927026186012819903561208349170991679856679960195302305519333899363153725274668126112365057793360087776351470163450902332236119271980194875186829341137119989917060270180075490107949292015078102864415368101502817534811786312163676042826863536957915630574356532359640983077480587011372950186011393500017938227025883208520960909718618352814486409849435096710515334811997243663798296065231972302446937332805786514214678815129776245794197237615833136993453173900021737160828990931620402642022700183271071375367731369388522113579379218613282962347008394626736807752381774639145081064025709393605164898031684620794839786269645568232286328751800608118159624132537354425008002672777431373186071615379956033976569282895871144488372822685520793360551329533283467008343175130361598168112633041748205221889382262308095429056560274506418583712903656320080274336872664259645255852559690101321417195347660919496614686983794533530246219502598278500067703767319971497126343625842394733542732983157294705622817926419932937860703178820684176257739993550411785170077239829655552233141245901169002124258105726973887133333932020574234451353416842426332856496635659613624358911702860906750719066407596932503725466975792903094841956668160988470971022947727782465825607059576570365355108362879287765318995568301485037699761923810983623449003006172893071413998299969017458144685454975545910858597873478824315443530717557646055354560076410414327307304586533281769594491049765911748751592243432165895825531509385393639774622515369606266707050634890217074173750491804120325431438319357964364618024547173395005807217065611608098189799150139152194977350138816051961384880022240649514221043696846219252208304674128792847045198886981459272038766238257218024533237870881008694542572182619993583264802929154876900092376290073027913009819308237013583016044928144206951799519803447120314827091182623608178533688724658937770947932255491927817789944523918433553092732964899677593572870023721213973581017284172531248306127670214932298867429020170132311797728942911528815387338779723318582923519787914520243517301755037293345119054985885080696821002664033668028792592475339870456948433267407776496622291750236319104895978840412421439594429736209812344800481806481198632511638563455097741366337921221601032698592445504711890540525311529331995525385154271496223535269997154750678674687068128892166311417205604111933152979979336031417587981394943220902635087609190280663097057604580445533670227187533852317501886700441318591938881528937056783947327321345933925797276955971628783517853891678428069387285889068370924231652617544937598882038284793712356740005107272418824624390574698957995023907894857327920917553093682399135190585616727335547673909520251853644945391617983634192757641643451532257674422614351443759321732709971265571800162430096626112370805582913060300517546023163454034465023753506933974945187801830624213400631685423992612520687302386418644956048805474200086748537970079109111491963658458002984435112049683008856703900657395849928080293609455447674422790199915090879621839656717203544297430813948044669103168622121940945353519254803419522935177472359782873637915999263223530396871167231085295787981417059954182575255696550324086000395926532813205981488745137489676042302781282026738003277993815495284584940233104106899306007028285082249342542693093525461420540772874473118216271154606774814048270916518267972933784452605222778927587008046266060765305146420525547265209899021451278128649570503538729138316111727010848312642872508131010128383306576898798043297663766440059710925460557308439712957881099687002877115925014223938736951226503979696721465286528846296334062866604080005392013101674865992211265091375273533942794091098905587463841296851423095634520642447503293375761215284865727638567981556411668282391859964835402183441015770976733569088859041495796319548967589550822520760009700804682817301140037088846383503428574884556770693177578916582644707911294115674965832075415689894297604902434860079441911882890848756328416695517931808949026537765039019648988562719641571664367069129888364122710963982973443492623538294600528888357036363647237094531692453358404380970912590261293074481851208719776214210753496071554006717185895559193816064307840606612928003708330102010146761685080247140991230793765174023856797769373702854338200359717010809822210841881097735714455078790708374329624447947154228892229091218329892581224606353565278962879158932379722683119731150317291075113668977955010687784861377055766398672007575852889268650553302240705352051100070241484236699892984299847270369984198557242446787946111276702138234515410728569654820945624045577599374351681801091699131588350770634401154590705306656741932537272147117485330477394839324775221656185019983511587894142469131048986445262096635994001727330588867489566489612281171691140661727595305007792306546612956165613783329658210770550405250990025988233195242666385051958179724589643222555523505422438691033906853183540967435257161236964354462215495845076026121699067033489379709145731757027120719233270683478666875680787922040422760000991665544421787396669094239428991149366434311806681661733835051021151051141113353710636627491310900859843371833101151252009818231807968342505008122145600690651204240400474228894682359624741448949722042719300769360426120820248194454551937232110533741475127896411152494269879159145943158258048146851660805679635849890949308494663265133981326752266295662831674755952092139904561569378292106026625353425078425437149840127165681424605704112897355195915875039144443350747402339990991783191535423290610826793899601041020859627807285969536221412398953001793330189760841524336013850017828167782974675698066278235690524411585306071558222739893508190794355601698548532978422138444984976473394362579841091435198244334788955254963625089890886253596927123123626367605049404186745053288476473067139218107402348645133081641938658292742847558528969221738636270956773802941086989127028490642122914475268953152017976550357107433584773941465772763432221982319588907564316725248140859025647416326783944234549424878988168281025551212840657097660761212811477844679548615986766282817117700632964794153829108299767642558591506602043079123195701809610463381947331607896822119154290666018521744289012099460188601655113977289590616200728153803481103018801186003299993034132223626759671305207988633876138061069231301275559798943693407100285178631690342456147756095765042704341391786510033040765742220553612474372407562403835139094901082575266655424216522166509840141652241899598865086734587889790822576938622713001170721915331140149612396780491275740212944489832043142919142532680905436848776735797439638279008881186635714831477840328717905577235520782786044729686673660005764436871487180795647696940684423805307017228843203950595086968713609605405584050797002914539199041093582387955512301379478929225699331840208909044538399653084898240787387370666921226195741220854951847266104145045040817404836137359735346142771808536344196560898831524712661066734018727761198547942410034039538332331533013650468185015789734308525176449424105103395630631483396631851643569773234761085601412378159003392261178683824105439805914405633126518575298867209795875944082501070199565308747354917616560731110012884934483046625630793434042533910322459402091588865715697351477792836973247923868511350332289164864559587819422154318760552973082893582113179704631472363168085819277964706643363215269697052021181165569163727283385257758029512945957669017822023837346847923026048283577539642113357745003363441883892508546709063850024008025706547993706619627544328819026391768270966664708735563276581698739234202124289267984760073442735546701481994799640301361782207953540072377485284757209205337058673861772553638506112350793569615030316855832806414649880771406729157958996001400297851219691467892666101750550350529029621314212771255463201327957535750814752150246826448272786745164601077495023148155579802926960834370997398230994535511809532219460681283249351676638935706759555110169059503509188183561100314294397699272362467801092786257370656494735529148154499959227143318433355500185755592041051831260351093009726594616833459246806710721909574877163500905733179642083699378287124016321035198330919518259380248042405085970676215838169923454799148384574353385488647339598000768805864265219834058702483777113976352586347702989755763890576194313378240525794584886758013271886559687315387309346582986483879755681159179062652266587574739606757550706580755803200865573886088997057057218054653603066664456417172319751980398235197136190815811766094321407844440077695513370404759279038041913063125811637052238678694963911883611455204416694654268031421846196996131346142768470122437008735908759910403839967096673653167712535300532962941505700493900987886068879658168151026138890546992161863998370431499835005476523574846558047546208600539455000485279969294093122851290123116344831447120696111756177758531931476488938125633880147969090453372707674273363830033070209685378630074206784453017356250368865399687283939744697738631020658033450308468334239434800981746658747299152057668348338815681681683536336812996516743938579689311494074105134230687968716503132538187506201690329087025493124502818320202606075330016661892110680713894655007692854731993827369005306167813896958504205581307534580522276402346963909729601416798830056057099852109258992846178956245084606872514185616970656998252098947436186019960991400264128747202100971679311064579817233728696112682149329507983756499634864071417736707170690136569044104091732118089833338520108665527527206879976768560584710527897748381646793723207908277065806804367649650569559008396314632420763352926692060305823572905253642638709956009000338940005335880535857938564317982830301131934981609959675886538798617855842272853922713807672772955216495035189677670473755321989101875229551572091925885999240140731049682488276863657753822881540053942012941725070894337153612063875346159267674082108748511834630199557257377363614470233011721425574982615550472768596172616989874005026021310681526057606637015612463982791761604333321668476293459273847731981125893477466379178059693965278575812054767964551700921629072462948660810793035723915973746987936895199502124063631733117784493617316363973864778026898455695124787487892725624612681408545488001940569592547808054101504141306895836311956453241199627736079531505391409376396753410395451127933228692210036184572439573197794243469629729743499268847680429152303935792534631459925740390619059838849544567972696627084046437546477914058695943659802295032862533361438896860186337187724475845646440140700411561718846541737323241173907390644752888624115487479299368463814111291586082899182574277559158864318335405735077857093906677667390105566325950918113908243935212610566525423810784320817421111715923054685711683273996458870002333363783411301198706799523502952657787592774737277865281144730310539922493652396398402578648734594915107731259559365774995789985991914584693821975654343383305731108301180827260317949146983658917166689892263502690925700782882732104991121653916664128513218988520654715760854885765330009924877557738806088756870413983953259519414794842405841318750034398823534148389297376105253720247777181582624544570863981787741173643659873197998509747499454406681458802224606910454840860627484898010091650215259664276596634289428537845968086326383417282034283697308444945600919888898950257448727447712072530525786643933438123842944616355893567915081561893674671893513868156174810445498803729123009003779614942415982001482580256322056891629561630549418114815536081894748764913793974205480347719517234067462887284755865573955446820880923905246782325560219719034576714145023602209216141896088230696924388019832787985530388553340196951240736061003926504643860146612145620418686265738563487465442253154485701168124346393455607073229404540051141229177362769416467801827993313560822803001458123902817073882222247548620718810399131982958582681792749510278057718188090989844984034453159893289995193311519141487010013135246414438342217782487617119648688004675789927095417179945963000030189255092474521565039945722418117149067146491184575107046819496088734392688587921357088745969528706919041427413865111950973499083995030951222949709183335233743025799085050928803975359989430968605927738032336758976633312706957961921651133921618823626514185028237170837955261435973254503513828293593840650224858169307980055438602815058127235439509838912427657793339316844385803883223829334408270992567161752096223393593512013898950594003212967531076254437436918872084837657021350079878400187391438632673848465858581186395106061804299608063659208341487512859555171379354634966786638096790220274926470330275772840456323386283833240743491264812664446346700182721735671542945230206561729581337932674603724974288744727057984892004479263276457058009299480463814721467136180458355821741381141432063720113132330457696679911194303886056502142903566654236035463753757422191656600209150483141616098725604594790050412432074797751059806011223650268972206736590553560703211296230524912888130545568145582453647098267898956251384322070870564826484152370225826653398196838056991849956398727833650692699905773736995471241365989667707866403401257301303290110357688366290983249006519907599128029191758311368680339964146788718894989185683109625573952319035341812177186590459408199531343436464194705730533146648087037317966832884863352696606148770577422142002802351878901569535296709349553623519358269222670410917834213832661057491898731175121463760452381260870595498594936919045272895381038032253257430155154636826227157320689601434567343031634074337755951550755075670506494019406790170248668491278713515107194229771767775467830743153807705795112612750781930140448683565336405572298602922995014036119098847878311383361340540149553701875771474312684285129573267330662697960959366208015158656314898073891544952478499841793323963365058294052216052561938965637954610159775648221885354715935433633846985427092267799196592736942013624000697475102391654476751637402496361514667020204268441304168914275116191561932191579729693587961418410233093200280857932791762388004742017237975905241343609566323766507235245835913215229349077509200469383968114721955647111465556428449968988759795153962098532092936639044244281731876301142080710465738257290480584915072747299941599278862833445637264296130831362320953783932127616390242159962834251868788798423908884874228638219630012552696557325711443331151491676070794618256038455713146891991613438615585575130803030476488485885645995410571727390011019013611067881500171140808339579427758558769213762964293627032368925736089221290165387090356481421947214142527729791239994020919186010024959816217637905818065080308454392746431679353941793457395523563998560732921068850881003860072513392066966741823933753362647854370969785405467064853905293327432162792583137653860165288462162547110676408712761468134859251280969287575392420840468439300529548442415621568002778881576127860527101526938259933626452500695660051511119567900375730911447627262338095595519411647104863790766400428200363910923326705734563453485729276107247831544366372820464972615789994877650543935343496248839662744654747650964462498930708091017466105898163621079821398039432970529292268332217703957678676878326393652132129191899130243992978373289007943729889716821610021662998643565210888024073156225000200864094466250748430890342891321965302351777582531712610206919414529366761292619366958572048082357314594135782446904338315079536766336773265604087791515624681232793951891027880963688475768989901653052725622747163090437973503149612281784777523467630603469187505624667514500551981221501237056742899872297527279114077666522610912401190909238919767994187997833287738095107184952784352631858283828092995849514820292405860266320251954621857417636245188573649868966590248915638660222978221441909862536704343281614552662477587616783267033055890329998633400804344866197504084936830563954267138842518206505166049821693581590161417614518637252890186798922681053989377378092185139536347802383249375170741267421561822009366011108121574344481157517838351969008337801983935153153853352605966121866204294582885182158319595750308329987985657835630922448611349056156757710482250334928545240656247904730487518966664299660010655955536221958213068456980773997414531284191370448529649219978141258387740099292823198175430294427246490168065804716081460662415201486933011780637398140637412363452532727312913453740458347702125197037159023616920461431876155760855561366232166606010610471901683442034329052173915468806880256077542564778248553334321065606985925573842741641042905789022962595808624805137262988835071554172497122872236732648003335488125387926307812926195491357337469675337230065373748210329270808643568238303917317235939856570416312305873276199521685559992702945378980379798806915310023573705035323026831866998389567834763198342130078077352640326962554291207537707201551848868845317266393660079964687799133858812883284681785042252392155828712073446263794600477145441430429014136259273820200514546569916202816788884676747687255562968080702773161603242885491053311250882507650244851391378929741852281009115703250469623418938644627203613457095681355952220519252867905212992757562528996963154699252416532855859235089825686324133157355982874674909823098354371874357912282680212250277498511865251311730804276706279940754052103668529572564302825434197105188775211750521266581193429312731917548002387767719757281928904583628578686216713480052076924062233711794351787076421187146387885223256677884434618803720944528684287839034041650284805964622913890402520198291228002769531012380791488477885626868783633059237391051508277657194097621403855522211307971711149389103663263824718459753361235639076056865871790095980839465722503858671932177216160120425197460208400777295453491978522152249560875265828158459847003721186824139835184928781177001438219222746049292099885289020972871920177866596144826819448910129604112615193676269697741293504879749332521361682041881354857244275143205723008017686665754570320568462684002010011102658455138124956338438656759418099198053091242146721490528235863831089173533272425050046400773789973694289715529355603790439874883292387087723255655415414559818445515025182908659453500458033014745866758898952463614552007505348245078645455932812146436937602823702091707476353010013321645601613818320107571853543630480476071023041841372229962750076104954013665491274071037883680398976365034316296399906221921944677438886202747730461394307540758590573618578950898520782960956561171767146600733870897986212331822835697048755333199187926342752363380913436525030724268638057417978765626197603427916922034572851344913070138268837812241838687219532117416467058776990159215801995247095002463323205548384923512267382687910054853233878988053423640457848363225960394722908639929873994903336341571512803988870068770285560739479625181561559782928152248704784193001435427078503572403141761972120112280045572693402346930953476932823533037928762355035858049678036250040837821039346206007231903598309149565292445241045532585823153799709596527846261691092795972023168540695638377176905633731621202033970646262383287166300127628927708088500406787790685678462038326557832743960850994909393234858617825970857403281959699820490793978932768028914022084586528267430835994775883573588723376749922677516465654546000810118598542389102318974344553172205908502272989418814507208093750759677166293533230387137308481087228900449710106694498080550162722144185105054357387417848753968773749803931155104273434562957112094869241998088083451502255092686265931860195255700254384273305215200499943051190148398872095516467833783970448540004821295769450720285971911044979120777779596179780098506051760826356550269801122898004133585869690761391987805721104734660879866677361729692994334985867927380853767057166677747797379039982144589225358747696537550280301433454042588858313081033871596001732140829238116721990271416207224273375575329582548447098531309411668127359633663721895701662613658353042683053669881082007763790631986253311767635389835775346171085573670474644003339272421491130895041349999382794413249437116167254171135479511471147407471121813005070945139212231506628623349125437932181769048742740278513288813303230052803816435102581218136893878060007654917657305237790976947875442494480599407074417117146657203970323747230674167115435319925733389162913195308564450879041648699395374359970182505589033511498538370883679091533956865312095060405817839538861893021280505417720712430763845597127523477408815205764275564761397558227178224589380375864662917848183971547578990971319767247168793669264814960171078776773973880694269946595064087771865683497351526402124506114986809385548451365401532061061298850795241930382574413051295541450626499662683815895553144287622873413524042755165181958893408792760711796139870195432289936306005530136229061039500818624961419085618940906129024658943489663816618392231886557408355303004072800108782846217031529577197427543670186123161324552382341464961122155052162020452158347238746918244626331461515059200901038513981506071848735233761647559561811918789927057722757520201444921955315022269852902719001003577564218756958305358812821830766006276892973780339601164399287244268542230632354211884222828598593046149457156807869487308033627330809847587845779200835624936419823206003279008442780562761862824913174869719934671897352735208819618802681974539894747742510136101482537663209477051739245890164691286325426266486915912501065072676539998188061094616566829279400984962237666701858715130032549388590294513929323033953256092814916937555861453018442876194951392504412375451577081796205444634814412035237405233258973081059503036139433605165281961479822245136752478712531558864952822182212134852191568336628505107842832658565672913668746101697277005557899685469303433199662861793130794818950938535927915652766674723652076812358775181100671581211195541246377465086343415070731249483327954785247569517194273194080137100962229713716445671647864592708828306585950763518398149181167196627370102952678855333765807812725854593962510220358062397252585900789485196987672749261239811926486239753716637581903017005360620759024188241497813111826900844861487449690126201833383327596289886079021085491392641143109630662513187376485038555140214065771514519089170084864323107478738473801164469639274011187923647623024082842421616712866849433724943474614458287375271302570572249766677679249136690074292404667885507916041518569845164569464456276911397184929507873734597173374085877319286567816883767851820535153849625636452569734153556722690783422769243293458220112942529384630041445804143136673408561249471371268992220622478580241026462465986362658002517797809271671148694533341828122600834858363746850659235903592789121674525389332273596831453568214151450782190112828755509849359102754947780278504601078707873868671010758717740004389126769280901708073914465170663729836988760865797258821464498916998711780374558024654772588911040312676666655902982967474853541964715204945519654199125285571013251673105844167088015242111950367187787549630443900216830891815054452847099083240597626639750695604731857555498244918402190491997210400200971479000037302861375385698887656786780085150476828497508396281389743568229183225935409348125440994781890980542201053910106016803542773847238088600163810770167209164675797527524225047774962314727937615384366100531618670955038425433454480762346868985744659357462083297434528975805479095386483901961700310552627349860512583300507301760451844294549683455337336267107477487765692760584601063842516010012989286670553647483649958491332839137074369400640858707562209181529089298179081378887477907106214551155082020872575657275548973177798708778233301779070670023404197865641059963979715071146612634922541738784068108068891838963258995780778356780400103800481740419196180097421696162046855167864759142250861908873187060313833948679797906649166312035661247394878278555450576964045775581291382724657203264831826395631962444196624931335878662933271387680910173506854761154443246397439095737951312855165399996235495112733063591804653508477025229111879140087693629102997567866781296497886373226228725583474235909667336503501204911598242122832231308447708175178191123610112676271107851672599205783440666644416251121981819599736343111320327109176941778479941886386601448290715275816535150489524482925429198134421407933511590637666413805441088705924682447882466878082632635676670117968653560868765896874449313963843172511776400130672713556111693922862348041753595535414411631617705090418560173709830463304274232381811827985992936236514346348057729843755424202052066426411660347210716306305179577918280022369785839172562608911086100140412385536410727344161534398537156701243805856703773862071155849675703296023120780930941455025090016307441829761889760025801056345978619181869963785008698903080336759788133487011454320816837416924874221908122840740645273850936484532764580510056626982154191216721232969436384268392480436183498623608175640231588757161053710234587923195026918990074673734667921891545290619750592665708319877136393103063518450921891255236530600439128532711826319193838763203928535105158598751923899163278598510813667407030689327506016535164265103996509625542306795965904275021179885453838399066437360153542316574464026399205762121417388257195992484374293456543352112673445534485981985574450081178812473920709696816452467135582078256255435900266533551428607050203492608900535571311270770923134544575201232661878387575228694246564279613920315164380731757850072528385069785826950376263984717692245081978217161428710282571084940123894230135645270111611871152352194093830477973985913308200850407039499274967892968129925695758299425331901003350064366157198488265772941636889605259650947411441496870494596451519309887082098727203998062617379311630963334352794032383287037392958371181606371988413083286717182950930770255078029085791227409068033637427256327599603787857032748616361671059519142668390807375816420872656162916407374712357582676149608430706971868646297227938955753326815918812694466501442061595257368107891314479373151525162588902874702120053804065080884402156300682046249556442036828624056483535284369568636927051523438276112315082899830124972160055923987429739727531325681075790400758502807156042724370492523489968914404954888685792930491848129985669963346760543669905126650454437569928474374704092918673318358907957584801144999079015722865044433681708022590578008569746248881045014377481189369463284811111771673871300340389012741794720229870932783554881921649136235650462821115027144770629946976515634514782102429996271855099660999574119862176739456717724612244598707370576852536925393149592636346131425351271562619393864490922902754290406974362312566877053272587122907350706398439143554793300228553439766863231249915827184893753051946593076300542339424379839055351993265848898855610870405048160189937355513311610846669740497043262467068704463877394463506701528464470024492325838406344289554519481855831102962790866780533924359619083512948444739932193102316762124653917672784475893648796982466831530108148658205917691903299348654377415980490268260536693203525089942756752979782251533521298462889622047522787097878166136632577528794334673921992316446130437772761116134264986404350268131213456415174521812830647390980495779972377101344080388028192066301320382823182392421632256497878089351690025574773172898979398594819106153142013506509268232953759608560852450061229255081117544922460427995057411273079074825009406979448403225524927412650600708098962019739420410419499034848399486962443740789082068534092844008925589061098258760819444795443716465241248373861045973608834419028218305945104961990314211493342974103406965974361274481950752316878599325528950483421847652159785156646353474046333329836442696256027566824988495782810346692653003568903077330787422042129875401071968982114694733633179700122174882726368759761440271535049937405473444467460440171610266142576469998448348911693472923318216491980808708867606069261588073543502626763882339311866669463999999927309450745572013232397245553144795447185555871222496797731451907022047967929724957427033322480835283092538918508280077698731036030043240662124922226041791603637274913399049255263316938850809885625943023528614674065329145101225920446911056643787344423734763247507841740259336002459725883883790809362138135086535204196803433146654685268880501865018522721545511505499376928793401958118133899971324858399295697955947197917901237703793885909614299631292658934074180642404254380476678146527430241579164271153018022042644493404162587477504605017541862264415971232360625235552853926562791235028729843283780783768862077218784343122720791176573384206542704522961100171177784286056889503119443706512778066098009563316011491328252450517864673871371536207938632708275128505283515011893983821540292548836045416724381078238891261669207182276931239496690941920400692514215421528046732275723974027690725986269290807621073283645823345474900788368452912791747976540451111559607744714899163491631036754825870078237464684029115666288753423228806330331213830296049847940901489983201046407199271046005720340732513919647806212866205601437967591628982455403914364923977949261539623098167803016731194843893420682039616509576782931699837590929030473327019630913356468626280908220883792573980402503410597044814882365696631700030654568940018195758314358354544472580368830896449447301134049402920217139060024366290023283974522517554497416642370707102357604971807641974775905092904293555107856194459278666743273787472705488025554231980415888880283058875872568075051432881142776906048185991047643996202299224296564250898020474217413929078243689731784387297444390959038603745202795186042534597264211630927364927541419937602038154858338685922540608245819342498897612639405429326854285390280812340421753072540182941391373496275182023904566547311180554442113639465578414282085172406597685318365543312928249368535283629770050039802918240707649489897558529474513841520075465538893156428774784833581438344851773090297562376397695484208898524701978370676772171462345472403007958017741156456193463074525091032633952853336578847288479205356350057075874058439772628872024939598401979869434609345012048906229957938973815043534534708835435471567140727063471974828831457585076375234609698862730747487350769088213927516646012784040250074824417663957502851421174529892992011272886841223578395177357488489308853789891490605120528072112236313632115607168948476015706496779602151603261359512100828659813086918282110533899162372302929022189226107254354465527948520795892334047776116567369192562198602062573076573216981103342500507072742760428939070792939533088773203768722216298398899342263544612519360446915485360824030094592280069667732029233439895213116574037917891293247638503639470998502841581171391663741104216710612735582195374067669516871385923667676883034721331363019561671206654887052373432045793896460740083296375280604194678613044302780811752333468109391740190737809540278102760204709511696168913342198508546027817101116713332343916060366841431842423777277950836216606473036317820032841123800891031257944231668271812813785723819911404139540009012519028051871042435005075764086926571592250473392300267701638211604337367740551504215111350642170478706072902832343780347171992599079890803790069594209613851107192278254222332402382651369648362726841074178420888309876514961331082177168347731485344633678930685760741453442341410301059153278964798152974643960068422968419283564454731201918218639528582016492332284308479792589620413322720648298555730466797378211910507838131856146366809049243016876403912566303575816322459233756018448051753240740284389182507969329018118730230727441467881918787035132928114100474925088802143817765055103603026118893687748959274786729878999182941818502262423778807382500211630067291177766870275164286636269377849417752129129068483938293003298461049611950959212985978664435562997834007121000320521594601787091831214248518376727460073513575720390425580793542679945303883287086340126143315304197889053813831018235753609109614839881864117345503331208865338643899056744662578952001622871002132095909094369148877739267121233200994743992924292735445739648141767766760893137275878437541946914832206655362434982019401132745100690751165197303418314266981791660499245183378727532287387569233423477859306084703428785794422271101176792168881484791040670585405744044318572302040139970347416615108178946990562768854472777166382763325983110350411239732958957746988216170134169799023835219761483343436058218759748018301765026119691999100019798712399592540926580226976597340434212243491153418611955960007487375570049884868155056262189504302908289484306156306176592500811488929185929077697320837227876556971288542859286515361116752416304760805923983508317366095398005273048778204225669223994738606278984082772362470688574050536307939353379061041324578049055206470225051383962227434550712502126388490503780345703922232994870379133123255833810128983540187441184775762637271711142132867714349944889124548416571404885442692014854171944702771571004190855776307399078922962890246189775159977833487930664510567680348409453173330524681388125584056616403631422671427908056323479784750676237202246835078699263920572895158951994240451308713985281978065769151181588535906582776863185150134394588358531670110342997800173129918065666452894333497921445727426591253137192267353579987171054120894811253221736536287056514960838832757112504214470535142594008723281267031629912591416880797018407210956770112636293102537080470200899885919889610000223117699543093962732277320750373769208847103271870383507177004626076550050158293116832204199025244274868739000763860354080166692300304839680384281989715072177876761169435071391064801019694161332408084389391538169466690157852414465664503708175561668619328449205113687429724099382378790832873852774199648676936050404883583416998260143470631170764186715123312457370547844294388522843985800738460712754994990836818403365683061790925547438853084133526652299113458867878607943696543154874677053684630401038258523652136677721705759219147879763117716596430176295307828595243921788544020096768367749132448969691694965110810879322732475129107952513683770650027946839856610809457829334418137568983698165005898414390246760558509143717706488052707414266571036413318409180070437632623721478790368188946898455649270890647144692585136493924781055169029729242965870268609359927050627257818039843002396424864265255278406015993412618124656863635902081327460980758791633822977117305719112748099624222547098375901391382882582048662747883174609448025583330186370936435934971455342841209510727296060203813121894429357308315740214320482065480836011985690466518395504814006536087115761865039037494525150655320860735759831305249323436736225740611057399767505064488444480088523977924966516776753704360126055886995344170187536387218921035535980217078018485958972782200490655177214448599402067105943228025131986329085599880422964992245250044893953024803353086109272555376391043046191500116760080921452783906677410593204760517252685916314862818639343045957957149870441400455060562920374091722838406747594564179028965502025110271963999124630526440606384667447837696969363602701477914510423972553741899283902224294420205126296516802803749074146631066343697984816452118484848961442644637446583823994769653315763439360628756040261074137053716887080483483159429790137567046962019217588394303518781229547543202219100493142979958257074734350256559513226974765284954089166239933758709329445185677349191321681658560640040103559067822281976614079849883250476829052208653409190425643583523226826789579616606757855793374438146278289777837863192362206969857287872044877566258124267454727228542370650158047790568651145281866281917455124002280229761024390121193512702488766664435860767597586292446336145009448873914329025760883289386015363033384159707299535093800055631744720663838836354976343982633065175151650149318727199028597491893223736436585242353825771341920414273699832440281864002999002225632121755133891201261659629883259813665752558127696576236594736158184593659182514531280401634143958057080373112067144929813858760435862422597584124732242500717455873907055966682262662970847257425722633697281108323252947416496976926045456275224384359845220645263785320375156504896413890116259981226943159653687068894572777138092603936902126686186291576068965201549388399733627080881004684102165034819748257424976068448966075980203154244195537354006006677237607551167035348349044587196361511104196987482342522969759537297015747426172259440326006794296278654451437826656967567820848116093077412873333918316302580036328258933366139974864334867318527970433684446759587662248985036682886975583772100615130220572744654957517365938000022927834997754321678151097883250470891091897598153142677889971983887899075552349500098610491755046904439915039608601243577706298387051456314693776752188298055938309077896126111619554365138971001605995078583038467567208511238282107865692665667919849575181688480121670241548701303024051871287509192707793920406712479351712942092422602830137609264417772081721981008197138885498777298985306418631407740952563766431512182865653353438060334567764415621781458726888089383550545397875432527974463672328165113001219114073525937074216560103265135408726712491607809571956575078110542175072672354666566365377683621415847367050708628544911868622596406364461127049657481954320077367896732542246798619661843817144017701103361150171999072842402042700666903364330448676353070835187399818639504665981974759452507704956490107410696027724385781234392122021110852747555265488392696686594723094638994898077584489523765980795396166644125680118159541609055753193607350867432983437777933245239428515410969406293578684679448862787823301580672592413837048770872833522667685856741370790144550976598379900399142996438907134119301000440469620377521069425136117935560760445666137057381808439600680075149317822664375758793716348148570900738134695809593296092098234407058694758934972244470304251977243242730305084351804120580435919649243925942517914082826077533722603729657914618040427516047902814422591107738492312750147563456338176703974520383940575257181268620606977629592031246615554437066337552592614428884592366950605719738060754947480328354468366834259399046675211098923827120916492842432609007605152597115411304613430146566314218729116350837860857222386950942004192653588351459939757028895283672843332758514948333214596404430825900237179510714640662590370673115437594130804762677040721428241374994033339493870373411463392675806881810551058370444490677792235057736116999440748961532121724531972542442760946733631740337303844027965798188335920282248452290251315351125876123271636470228885642820210736937890869915428165628496155676226168110907240064173895592497306739323385967817678640302069276451189129108053259493471727615174351204506924943963844332625315390601181828867755336393174189444046660103057744358882700165042487522457117985373282567826862998010981648550449118933409078474733973921954068707715221637074950058165913711552074168681053408144119192979850689481935191344962321917953684914429419799457016759518658219349318897461573756781868852870834837904119919514558509655223935927247363889222478412735561947226989158674590061217751748550765375947480651425891410161140977349304429070382795307149537069709965130809226933130400736433321570961730554920410279779265357016854469584551720118676243713309014594889926186384023095103114537914529220261143162578538157785590173487425483951959900692627146604323181831034157679455739498803472510497764418595868602810488125522767972532373143722541282044309666490742486820052260825486037750302218009115179614871795854789160086002955203571973571571147457120360401627174182296827867895776965029838586792237587388187543159642590977134040735323470946101507667799322209829621869696049765446974851490053970958162755624540510972093130443185811848103176903087219206115994595920943592776536427827630497778420057188498527135351459074686727415947236290412127060143418357688559987944136912545164558815696234893989847298982374310536659589361734512458096948100465772793822510262108874222713977682549994775087523472572257013671744123495189463096517656800455970545757699324333657955286225418587261895439422478935340951487257669040161435741010545112618179814243074101477400391842632102136934814890136734366122264455844549643398073464706459975428774719691537784626653928222319562570062284475641164919922192239058925980483117388397168132733271068101566949274346762089823891399726379865172794368562397640475134192604570166915342938742260595898842265137109766767571596469750765538161754027867550063540194382146272271383188047227283687870590695898195341820065955891283193893327589825186783318779221261559611414039307341021524445960626442705491109357219831258988715567238889522138742869333637330713545149423384027729452892682182683482656074110216256559492142847114166400207944829034720984748780864616163951656832497567807504730023777302787214865379917381552012876182187934596291293774841593268037523616072618702780845758667036379417704506646196918767528883961298680890592121892433832213011604995644334110488696332081011983712335540859198953144889404412195706582829699376151942927297647340445020588990193147322490284734008658917974667429078488542573917888451763978335988883428083859324415699287881512174491435180421920104634675395287926241729184914969246129745036660520500229947676324548285176772112742824704355334212404027544997876645941961381378336227674108076027941114218538137311666900058811141922829129449564055531159846160599254752207662438810548637136841195592237413912973793890195336972521136005312420275771371231629915233093073465747475884921783360007871847424510358661641604654536430803366667771326000392363265218916596987944484860572594635736935244129385118153225005484513153687271128597140990630698605212280755583056732606593061786733562827643713615642954678458307836290510771014376072170417138423498709445414354791411659092800265784242940489300747277885875201844557090564255818501773298816015862384127158715301843062654257547026890292203311957258645573750779395474518331472251457532529911275613139720711880254787109284747772235628365282980824776265111536865315907867516269340179831876803461398298307207727239146408446214593333726741357460430915453800238115710359684381674507094560930059375446362731392859692046244690405065785110858437798688229998837748912736534397084684236138792263585995097480311222057419051088146791362421087457010663037790522464830241629459688340141926256055380021206464264175826776653394787160156126175380053059339342519534795414170981031268173415978792316401146322885826086525354826961936772491482797419289101533754899589097857536166281253257098310748584383939410521540448168572540316662500381230962322951624048413754094917069616011364542355780275106062301854536480629845520665040457695181696000517898907747383263513678005147637121246330104723430603053960220864175391365331504446328842769660934900226564286148401746303698250579798894571210676256058684247066883836289940130216260068286996396472597979725891499430583463792608047554535973465466045896113141245737481865001494873172027219657690193610773565434234557485521851227489140877111572829341888440979908365261302159204074600080680140574850458925874402865035287515843792194867065128469860576690115970854325213091298105382097229593730062445557747939498594262832538478465249121691132380088886936447086907664892451514232103587984035273738624174445150886964522819070626574313406281977401626747729431863430922393763479418710249380041658462280223497698209931152460754315033392680160465933084152134420339021065656207929180688160091349843229747240783802509179677682932249957385185997471532315162058480305251541319520048855548856735019876083069184329593379470009179298042556082903590165343729745886312280857138199267937169958919542725432196938805021325182251708095310736264169984494474751382757653613640107369628919335979306692599751277469468753407741272468072433832165820776884802147008599353017722973680992122891868590284709016796804655046728351507184837008010990821282277476850625604904975036972304394244548325690774458849532745722176086483666372969413220185785732204182506600846035499713706350060314864621826396757236539178853763127345173589685423874698264803627260310343064343128190901629473262872718936442534652197478323348894048322873884517293912869887101114350483334383402841135391961455957371933519913600896116301295212656304949025795979258803993747734365558970104485163338681160210619926846654412755245859433865835264822888409989946353375099759395396125958952733236807454071162628529020123873132987392037764227879092814075226986213748291611476518708759078851878893614124302850090256816779786681251793931143246547207310196297552027191725743187417863858619663572042396687200309460964933790566431918439259696890625645784991141663710072194639419674182594621466597508839510848419569412759482579638229743718849544838837723766567348354209027247107867874090667696954593949779919060806422419140593859432019096336535505275448962127822833363171494303368625021966433142519346038396483876038134706610707493192521098437165216432882965661516368714582068673761402483271487286128038826253816168088936848016661927491808222847172490526766584257043908158338784181548321692792327976063174556806151356713526538832191642499075336293405187471398284872015911500149874784155097997872679046186186401174922055242367298554924179359277175830446495896923492632694886298112254982569634592417966300490889844199774256162467593823897179049415803353084010049293353712378512232480390450651026707255411907438555454081083705264304404714212497868377222213229131084075475523645170810827496457030119328007812570283647865582205515412180591336136156062767904003652316155558468439821552892850942883674743909407036343215832148259285492039738675594537438908942868786639561541267509981134356250513924408478834212483255339677666378854586059601085242431457103901435683598134715976763207064523424325902925108706230102246872908747457170438684594399568470899594390790945351749609888277781426455686298096131677864861495322210727121050887396009773951302110898221481323933079878872684657250482093318465382731739365696605181033054976734872795848980123499198462150434747982004787870416609874651483454930974509416662614054497461145361238292134515745016279462871230349079683032893661157293070647467010459300797175696536890981056817012199270962619075016023571396738243822042094960446170974323522212491189817283834981598207566514627345090440976051670456412302260284404937687514020612906478048953920743098400878324143554030196358327749863144071468281611340808605146773989657266851011244841353608817079729327977254592312165443018402070558141843205828830189657230770269941272854570347931252667774217561892470478308149176486459494800002314302342723270081056391946129313357298198575172514470945970094346618962139814967256894988768525118684279654002760849750432051659209168018097962307932481805413905976322085032486585945072036024231567031394425872609369038164051343777096749611513394957089098628044320399457243831480535131456833704516645029746062471469240113403834815810832515586942875467882332472109536883284218479581312009948030538690822483358728374859965836455035018253535501912965285601315635496690843703921402318538452444830824640711164544051022105496527548789509535351334118867992491717996226715789632164162499342552199762120928270184406308690582956528134864619500660335392681662530380984647696384253544598036437968339485810579142192494962160652272699823426450787718369929544700741481148673747412462239817250818408392653203014844951158010679589608943993511169569059932845776887754214763136399749090759317274028307426194782914946437353107966303059755219697269947506897830356510662568397978532056383490566675281364067532663249087417995438308354614782179441306186445612191053872160004662303799047207344504580940094306236149587201307794237531945145260470700353471028922514302282834793425126228837311143379495580007543445135314534007944343559545292581978382181180345567117696973758056826602105206959191561720191537832093953037600260111052188383474500425206616966027483564530700005191016895997133924882943278120948876747044332389996127021741078385251641377385375683647430425378893615803914317645577112900858294734437041160779861889809326190680500585315154148862332261883419606862662131450527053045923622153221975993608795904804043737319561826015838473562659952173276312846834681909777680886441205418083992313146833581925566350926782687213777593554618254841527407385405758025074591435278181817132317727745660772142361589806758574405711721979122473531411624630710028186706789054730008633590481369975802254879783251141163677779437042432468340518523060243784854755591756454209727987990700187289359365855224333491795855567210902895182004257547507468464902302861997292033259890458877952056120952944061130724761315329929039284930885885139564328990691196141789071619874287637309641023497035252011138496453435413424706718742406258799081345129475199859808807460794712935008267376507586760140119152414549989468806189664159346888786774977359293525753667274716734840472176813399616588603435970170439693473675931031842934694317245958840023534933780336604199754387327364858400131001638628142798593525867513398895555972370660996744484476054408336218022891395341471741074198210227757011677529231736008025429679916626141204118421495485582231228774944655324432359098918293955550178160531066628927187653167940450983921827905448068713144785035697628197214381180977660437604683832924320808122111528366893028529851904477263343071066110456573829176635108912982754027536046412744019230611235503251754477700760463824460405535318881595487754227081993507665079497654795151042889939201906694101022055821416586845961498358113116738506200655094366355532009989391897543636090753845252932426780745754977262664426496246495456385323380664522662672672851107438316503812948237704794915435886443209300911707847792609354803405775327769275006999772265229712165368946481610039595498289771260737793482429757246098603002333055044821985963497052544832616174687350363086897851850527641175563251636215659445971354244971230358187740679374295146827021260001712480402919999327194093937708928780387971862083533690530791334418316939733796449380520732293626955202646767742763759490036531152666639698906301902080604895562717529796704330972759242508710532880879165455838669418846316970639802752427520916680342856628089957698974709160176755288357082757505862094974163158703727463294534534861880386555489152591119591461211258516405254815879497498119040509478160149437193200954072808759582513801180783393722666268222892309579302580121721908069702950962442994097439817379989167276303386853552636259895313570124161199201801751716874655317528461086875679516735051111824645506716020331033337078771420671118946943227297034008797695452379270524882541260572388195266552591076501225406265063764345377721555805502181921518777886851029769126768364176693975867439330995442606636123805655303629214784879624705544802921874696413027822331498521734266163300360669374052276327540112231910311842896854972572671374170760457201465998424921900600419754241857241320728655653369280524574414384026417552066265275035927104012334753811206675618521366869883390958921216222191086491785724974374327290860887607545295962700638052898290564427561418819158191161928368632302272176896669219830056254610499973553823824104246066449362708350328445634938657871096640290514384585768327156869439699407871285640488833577185450514091135021276537122003652503896173680644422985175128746390537310431417239955746793260515397222968651242632377505278615835831236775426135383592899290635594082347347697243279553546106785284448355595011909326624155155400894374825342620939562856960351313274174123637497261187140128675549125645672908487142354414428655342340991646538301731764058074170177457447306204290232567676770423775139518956458026364661536426348072130746401872865719778622991544856764647081741913337506686849887480708824995676052704117200029012345540843531065896828909557051649209427135516061014429233105727982729147848522431870834539393289153391240273378216036911453826126144173017490122648148212133131194876214522006058559846160137473908507638877686516608275693499061264754161111832837507673119439462674669631335751704459955539044384982855913595373148031574674184855603053946403567512227193346078518834808290922555051672089915298799948343669930138513478527039792565190083011355586076531346554114776092883598210199481020888954657132534485229785277025728697800406238622300180329371983498674374539960279756998175890600412430795482712457730845428596102943103908806945423098332500033990640055387749329699788960208815006237651508286968888273845320777615067638571992972858052852636457880236214380105412752409279214852233493139770039234889994900505048250242907606538044793773785652407051749415801545072619053045660063879163321262112847057800470168447918089034431598730297763129552338579650574039237897874666008416036041387644216950868289985471721026576837138967734070418216357372280598086213203726635426601567763475478090466764662756468940147006564576322713404357676174317167701222625460294012837691397217566208371634511426183867808022887793781528182139380489438210014763281401319125265251733454682163301809473692743411477308381967013729142863834223173867569991910632194014313359276715098203441195986100728730328604609695674230003146675972380467875680302505634770131428890228545144069474255908280909686086447219973061502405961913508046880406603022820500428881581150244610471724394166874203210150253113987047865985011692055993537761433321453203842545235975994825897338752967551035349896042355202539521853394476768349805899735259292140207473274432643032175664933573433360063268131621573141661013993233041304786184683278433157680726591276381100193814725459661233039962045044196966769515502072149682921388603484525631623027700040044682712011672978756604864308102890918291784682074752033551031965887858063178253958132168538672679539116823425011551880778828772514976064816810633902362893071280280207503629285028278226284300473984288269450715205408818548858639852196163014314429135745229202533239372323185896008875362505804882193858446053011026408599016330897768643072937639571187969871423523909682493990139754010463578916097278041465236070539590554686072915516311703971746900095288458092393394894500032434714974511011071806376292841722557029297852684714510502832970753798561348543214222489325074032628143509343363271718269095540926786058205765744212503163110868270955620579982476409260735676703200620005254191993931241798338313878873760678282316518310469063484618519977181239784270447107758731012119746307848464687172599890173964696448970208749334352177630925022196351810822639456525086012966481983216940983874993487095885001332494257096195365996141849434803454877629678606664644751432722741739589738025982978955430229323148307596133535577339430338556263165533666565687924316045600648339835745527536112100687821647411589482025788697084591143116607499954301593609448976084533152798607320239370237320415058853611610226705321269102265005514270613177971274745494036256960951972489629177819245171314945035160852697134142900713609763363088427924840731746637083734069347139803421931594188111821431023328933715508651147007655759839619054445264212280772719905998953506232339059897530861126143290806657476903751242278562874948607213090660243399140219895775446735718824849801967980571722758358854266153692645458043457127344425734820371226058268364211220141648802429064102269278856219664726690671130565747794402065627622166440678608348128682856390233192653505926591517337204135030712458341137979357004500525920493406233077364220101270647232608002593718043930831769989221299654260943023835580919502278458872288392341400144795932129939663103676171246864461004890882229422322481883912851903885076044909320732749089523583330756826161983280942005771920700244124466833978292897885411396040069130664416403792539276201765652420556142238721370422482682034860185901517138129074309124560233297014380678987671084520046696672348894269373019869097046162881673125653290032114068950199828320407924942319460795899906290102318696549719854758894890959441309459319126208854254784860598793843087030039248111064894728927863263356815104297803364504616593269283875277176913347865274064702612966905789819611498024194701471465647677273108963850222964897454409586210943497924826378413001043164049349782012063639434288556280066085555919439661775485853317518586642153908464211986679561892773247585520305679972810470519632721825161354136234245292531290404317390149012359936905565392253441052379694227671516752596092586082042976088924041433930941770597528993483635157450109359795822887299429251974034404389375730415781983834019910626506988906224128207171059497158352796832005106690501241663036045494881320155858789548474172481877237384505166474225506107246084143432345803594026375552738836808527970989429901301837090607084277772333824123803590098083986895228328232353573827967470645253114823758506084872655802017952444660881037291622278480483236384718128914945985600514627440082261530303239378821721141541970496596853375736082693102555027780904824301890149819018645407223170015999853511088005996239186257781289873886269445702938316938945351460638305731769344966419461427524114172226043328801792907935981344470212056731168663538156870809371367332072586806122222522755472863380371625939297297045687369383825257466751857034555126720250374799782761595943785517636874297445185751851714623934670779783426648353803244900997864157823497478300369297649570957097393594894370060100124647779070647021883506821771589591792410075002508127408279314513373240361196512304642114790796620218162409211537780455139221686891030952592509675984349763438681246411375420073621766109246056406170885039666633021627687543081716311017406509033976092215734919413651482419304125273279353577005731170619295828224279084107623372344105085164520424092820625320270233643003142121624199644605384162436455438193118756705362977327368449642098333014957535751916495952173140584843790573998517455660566811499472789354950252792447801174506637766848476689107821691406354712007698073276942359313083789539284338101801889059892912962881175927983808862259099112723590974267856212280274437228493502628199440126334332547074167057612430719909985028614516807304225323469111456071620282626388560293182117584940892593120865125566015914885869055139634728788035401691631006632589558808269368128418511158005029263187542926014186650494308404100724497971046294033207915039788296140077632256198636075477104643171803303233842405124745681067925394511119733638801581874221938233713917458754266568660343404302723039610737983848268197498414404583113419973057365842040649172561510552826686957916568341217771783228299314063290059609694989259701465889642872212480805662052628268457551071810107066233729792693836449179856175495731136177593386609570771034814448779619120189485105565704756578340917070272591527864088576632578787474884044280601033228088146854353978982872789495499480372230824538306129185322898043864483214201216762362331916360964390743232445099677361891623163843933937443716161099011024731427854867179898784680166574563328669270022911699778624085850084403227237502791510088252367755809966545716425886174306162319842443256145103211735357221870256214508476719684662414246897932099216921196145770177747640753618863099264939152047551632595490971642656993495862937678459655670555489163668354332993101705150117728821273268470682579585420471898697623629557660581293910674466293706676838895130908163171881263648366235096198050979112320255216346199265183373517536644884153304900370875532298561323429852969269572824159153133483494206752896377132995756289560785709201078985205024751164561231389469697812254917828396156829852333084234527019431137072240196580978711594150582720842178817073282911171835062494693512044909426361944873637780389386371400727761020938290265038734958283100981793631486099320080857698152138401668321392039220817412863030735128682842948594682765302363738982137896467588399081342990844269978225788400655528652881631335890285081771868463602610070190640171172977193507879823195584770411068321103928832769540265695095419261969311933445367094158124552681638800212044026615098666482152740086606531636826513115563654063519390321107601918417747697367470284006698088042207740221824671531667694568784304824175853338761627497481788913900183742261883737925706643963230661216682401394581560448814861285222892948484364607700816387530746494302293108583485982428707533147883941604995839540430765262361359214312481072908778765723520652916115733294413913551187533636992518546069319847581444626329727355752918724786869571160784729491311629131098679388232290642464743527933169585782424982935241331611840953968022559304353556613704421646964848571635091752502444511184133068512394850847707476636132536717969524782911669829400413236428584183537079947390170091357931367827837194750974497047414741849729375390745727915565669187390590816450423668845309597146098507873639951831710727036595099418767345703639892024880226857552998867093383147572005469723408356438376191574709955257790201514865042960555006094056132569843598849046796933904830859203407170176398450661204257245247909880552711229900504673764596082347030207827939329899027997324801793936690112013337955024156408777111407940117756644794931587063880673836671405276412924911458593454222206025267790488875704842153684619626463537393449782997646993921621184735816204693519299139525071578563368071806113850319741588343417931832234651583465723257627871942721822314692193816145175634827482842877055854582701028920474623472263405320503011297897643357960833721108557136411349045067494640488037850479079796269269879280013853412929206781068756779753295622474157290219958992445194147045285505360188988551551336600207903235428380028047758732026177023508370010340326027038300356630380025278702666939649703021100355435916045120401443018566193908961893332389337387464249147695249504591860666432177392691602467157620188819232389421406564027927402756199186132156504673954836704861271144885496032260241134250279273288117468534907721921062652230887726517087318642988048601233928924304604327462979695819353722248337440161031225044831107046604011009295397540346166870599607818895571017408718288283279441968944896502707122673360473299890529113857692116431975886548468350305230430676115977912528394869502873960087794614023475252605817760738923004870242785616376283460723576641109287951999263032175892217676795681139463331852320473714974324897571848341282273458934116489136211253488019029114732015801476610039992919728360837506585393866837780725239432395931987948212678824514346118426585275314627754820566933885067043326930763770170290771634299109296290197323482581427911236037536933675378223842058782811516552271269980109224193976076246916272811752793763857437813159743041779228564749881052339878950913728670800294676690142697913142671227918080639402072538690501770025056635565868293389038479990552210825805117109697461758483332513974658912580823229201140761389616562348476310155230326986641778711366477876311324577673343218206365248012640354245381225674162136097286962669529763940611700053491390431266256503175558947067451482919629317540372391359818750238190160491927289706563187236172193151730026927534073054918433376067898535159565506755982676985824334438132835767773393449142792123783723041966944863628213052552407706705878374132795216804019098856495360816272277161313464117890244376980801119055151682714081918831834533612593539134722895238690180906304314593495498074442551076024569216784112865177734845674988407845170939622946139081554220125943295861687181325275301302674789371700986282608787415367815184681739887179958088736170960915500064784689687436551940078323953434286948271284556436844222356016164200478667728086635595885811555601519249231264104676694540419713917045240032174149788329306622471868936885524585409120414784769596737935883505971457781058128751658453452573782333616326670768195858026897266022244383470456851335731479493619385239666317167651790579624028084050410880531825529119995524760906422941711292054954207410358145999486326728706834240782530576121282261377314900847264342078863369846227187983505376871346022376866633292768717831891827836622949602747764687462451075065764263679353269464287867635584667247281254656617980605311965435259868818729256298946899349775055198263903937915475852527421657854531511750732359759330329321224002767720531845477315739162567291745178083730272026795588865172523050715476534154500596057437167159085789299607260696254475243291581741229540918123062274484436638770298861217228530462785142693657788990253237388718895189458268691957991624558335108493961101713703518094136322595033708183553256855177714807560576699416175512034149299436998199895142815316105256050735148435330044710434722266976172027724211255735525294100086691852329291679392515062775018262742287545792065304522475676703694518839280029762921626006841152220104089203061651953177184290118772113637025086497850489711689862343127253231345095226183503416712006057385677889834998336238458392244680545213484219726132611786231516949310079094640369304502332290445165467473460847127010452765325009031858040133928615726414844781596479837004678451560335374419608282748850148321327227128237609744533402196414393406295864142763613033733054031940138230107863955915288701195397266221713392604454949620262329504808151901666834952283604753782708007818863890965765874543831754228865167149001113765505674639743145709012410255434528916699273930390721633774085601980614824107948328730866295021870550667414985538268795925360327764205875060716025380349371733714175747909114890264137285274087397295588608784736602251757157971145374444060242036242966340580010608659514356679754285618522717912670422333100107009497312435274557865506940420137836822583934434354952701354547004606571727082696010325721041710505742473125576240510873946323086272858596153329693824430310044555926718968757483308697025506363584652529877816112766211774489008210138554077085835218411190129648940375338575524554115174884544336917398814811890012921604974990781129375705005029745829222167279981835233391667725603421733091620667400424918428567585104942576181659227389607602656951500651746773593116110713739452495180312568919067579467339523746609403019096699674981587974064925147385366947751060460824618479825905969194823675315632095453695368395004608536549673563944188237106788300807230359462666784280913684414670813288930510163830199560950819891527001637000474946785050415361080242972360328170512256145544414313143105821507937181040441093680527470681972497370002056198488335659453154050377388228121690653653780886689810792860484291462514544481406042765137930902924366742246357834407875806084275208000245263455438695218003876392851909466428179658589021106455196534856683628959951915662790532876750469648514700777279559447559490163475498431224315551038070188946322543160338103110335189669156671232294492678524771219518584330595707660182266198809190057352683223003310533406036210963763654195809369510906341162846906435274018686041195429607860616018583401054357514958456822657864202523366499406694218789242504845719473012586646472846219672408361148853458910980278013736256034286171704062905863556528801745311991004014303528231569146244819740607056227893311809415550961548043692365332934713419868090086368461323467851893376661469877203388714346175088778532102987248446708903821458359179506841242265730595425400303218063035123338371512633974742722112660637099340371441785133949395686904269913940228549890375278159785327436949818359081580857486975943348996128656068250333958685083428602872960102152054620051438504320292422976175574895451370933224661534539815224322378976223987581746044776329983959748978739953830876396510751250055809584353298906342927902661727416574170388067918566407524413140205279015236703255876944700319050409046682023938721193167983557070786309754613368447430095964786004694200453146604247397266172747800263195206315301996769355686259609381154978116808988683489417083277967997715724124036617982444303724379329537802206436798813491947229772038978961791177768560551764743780120197908567752687040809677673202880589441000226921261377191165463709915435823129568970148951649481160265452373862895956665498137543477390493787721094655927340372678741925531516237867390735572088553851776519355061249910726559845588644314402533540153972669731988994272960096877466612571386129546550268618666507459678265504186258037452393271986967012785000499472056290405943273799428749429984873319142233339042528736858483723355986386949621673405685595026232722545800299435890408294427695026332369885871992849634982484192507451276159754062941458276144001412460454575260187218844281845856645807767125846218372630847556634217221278477025046116765915519076054361192326931795342727305928530649154557647336250727082709909229556015252784788349940324209186361945854015252147244995133469746904515994941534263451448052582281241634779628971586795940762779676812913893335512715172931221944754406774086413587167307140838419329686543004186675726352654951785125417749731040463202564548820668415021302913996008359275087279412174629341681271895256720903202305543471685123807454831523884248196188895903957415777712761740741256117550687682212353185780582984759315122454997037440296179587784531365050001459273296568712991537072147993307149659510873612253331351048210794195369236645385520371028362286662717971551694845793657424985010639576094871913454463270142022597692837038235397163618322124513336454098192755084078894115646099644634324395221880855396963590490296392463790815004578553664120708122664278003456186427132296204570535598982877843382526418779737728884333431292514776868452755124494494397136358815656138244856304627118196212356161610219927042735166946124855941536256816897783409905512033518256487401217711070565981798674495578380068680733501450129061789572523124357332279616701637841608136167941370984055095663185553731874134071318857415731435551595015282030120937261573610113753742083559398291257006541075644280432949681929798024981279814519180725763826060854994125920984413326018826108947070955565400907591998266913991930189632350667512066664946804798585367007976913057653972526396925418025213581267239074211854462593801011923426076077309236811297252754983248103148231114619079762142300937719695168501373956157008993048337861427005887208369814406415040258009038869442267139359689882735995393161539076864421128743163674615946732962759872773691385709857825863335033770741604048682346296821546725497075568697206251330947534849620115207264231326395241055862195107567981401405210187131951548709913416933879362881254129184636043706017860967004717163960691636403085646783228209278415633952071580534212007921469958243076453728776174791531594946922535536470075194289624292148020914420616941132076286195470245432400115428925737215359294834513673221302303154472925413640227171276671233007056686368794289313547967850008705991592239318229355937735369969183982995023171169979156305482522381837664238327691466470461308961997022525326759457017020393998829752691588182940598062939844037688408690764163650271336058428977070621839528010974949001892733976031268031644916938458565324131672325704955745244620245416150521386445271844271369794373925227864316524867404039493064909465568393636427166385051410985250477868163148225313871213678780366506880957493939724675659807692547720667295724460573963039041733468866757524691254845959199045160006092198889016546168939603530412728560184036943443282349597997265683733485638080653235643193389504736726746895622581865975801061232261368093019233761506883372032529328070760634509585814531822388300310867835572462875651539586779077429041841202433698110230360167251059524563927803649263321351245136634159335854317716281691765256435969414303861260974822098248656785865524039999840172913517585881502575482143631915735371284528895346178161119356919548030089107892819157696341129915923367006709881392164167235375250124998538278369536818174145952986972224629065427613676039987426179493405688291906148279892251027471553171051784100062052988663227469673170052656229452487209314208377271754007664418648216581626902266588703518011111990057513075885766561279931924415472556928940029184233794252982044282371449508742303124551377605004132374880230788380354120217462089574820913647091276297565164355073914760483732099470610227490557750593885727158897315255289104633248599121125795370179853267598158327604900208066352449226993059562711254996781066117204437038838929808020329817155286274769742534305161173397245162263306698742983225914554086752487953794669248250847835771962704954234430551879552715379198770459136529524750687419850575854227861361719660720790056595770176349827445082069801312792814615174194102215023390045485526538145239385072108604097370955804741912621378216654749383374356819476665943955999047411774485024643857312804129834697812138540805886619751989640845009869694294206421157920720082014492977635430324082901069379673725058379477595827794740679967537098975932992760470510319605580832322020909360642437810639835528499086691488462274824604102180697224374913605766176438066858410446022426187051226528176135138564577263832723597548702000985761712995973577243442296882829633200002725681186600826979718372343139679638753304149709160293307346543256930391147744696879088869919120113884842771050941246747819282695442651535678419679933062762020300816856674264517192270856010729888963617449069363783998661943110553908219038579551736638447286247941094294976444112626000750675218160922511473469176618095272372958872408940518626864117371952270901934900748899362778338553448981488040733289278648163214573424117504940662488214129628658539864079740638905824993515655467003385218506467575641980285486677057989144493497852604425611349581704211623696043155625659855533698474378525249515628427469707738744353231190334731259755927585428494088225209467510868847315548698479798670258888917493445777542571659095950050815680491284441004240104770787244541035191102871938793278488243493015691872287251507477605541696393314029356915599078779574064050631107878314336594867490973373534110037122983651712984004361959480597552685873251358857612578980364367838054785986224240927364854254898742757111247703366447378446750519035279709807492118376247354801532091782564146344489930737263335655786279557402467620115299490681719843322036947761596204942415897478936076136765704071639193611902047220340126502569749747488218482107942522419596000686262134212845235640187165911214955783556230334828479971900137624096734461124190155938622175923177384250204470177929126742709323979352666120333422121254446724813868572405430588368424688529514826986089813443003241376206874687731635090001532821453902622210572227735141500884109227677650323164342010057967429105132964874836588463981275930791296460275008173055810819000602246079586105910293144480275613900814901907390616281131076023021479249156090379756445795544528856367995149291579156082905135503519533010570768873494569394486883236212847164838141093415845937944545708990544390803228240767494506188778808287367628170917738006672360910286715098848732195237636418627771728389783506278309408333838525238779367536543200414329946886443916406701305620093779379940744254883217893978893573734290783828012434909414802572465424793493766683202050181715547240457293771285417495661488336482768039554960092790698283439200861232111394735078645897685596717413224259800223342211487856575187486894075500871797568516330816906703335002437257496723040784308301648989109439756848246728302909434389517279811328383164558297033960125804776835904910496821822814610535705997380280265270796079148543147625467792662085542719721671713991878239814306639478921125550966495565035100269505767593115649844106320423521379859608182130864842391067619425437971667285700627437915858130277244199774745327723559181596032745318513995153803785868914209120913261430995611616758134936011370564626784198185346651149895623376804169202669143939706191762694719133510920386383478506067985949998178941147997607000665198519879676081589519563046582059644496119917687012847527944438038453568566372641242217678702085289024919002915049548502479889407342284301050680363043720151341663050965510675673663749616383533006962305869446963223683956207049803300794363285950477566095498144617244833621799842822285792685649629157716546080602403652232326790206498615996586472595689550883885234612477252490402566549466358762876247712084093394032319591256249428499593536651398855322018287877065261749401574045880087023845552110167771337226302444923170521769599573998652317782684802074546960622954422810026964058738618558421577003306951250715102626044439794637266811508640395989955718695379089953581133534910144412668060232136422142398257636258557492185302408930654696664725664145401629377354157209257564670156847735926658693202790384949662041648134596784924797002338105264086638053998387235506873127312235803864775530204695321569395593372471076879089782154661995778196290011732769168799272618885529105543041594064437308645127687342645249064693658333386777730170620830384743825543961742121419867596817025090634796346065901145203391555479217800287786333752641377836953266712776964033217633893818130986330785807759032902791113601632487737791178206228229255814166014562307680637230246507807576147406356786796426373261281227719646042449834817054720864577335066831470260968174343578667962704397286730479738124681342541899381422504674473401852818253029506184877808683091987446532202668762912475489567410302977596862648583968497539004956832947692607169598795032118660705559075725028941664310282650019576668727600019861172444843996758083191106910581363679590873139978353125640645957586017658044016636536453973202334191401564871268548580720234460149494369170406350131341745195572030175142248265361521069789418523470857192357862051910400257068315302573722599825909988744111775151015869395540984136440233244102094725930781474180177473082874413760049606194095399455209377252001674042673150047947684441932349864262416340402387851040459593734467478873595830057779942445721120081721781223633949811129922346062913031689652036988513337198849193545051969131065597919962272136960307826776873051809108708636327874723981438564523049492355114471280825627802999850378199237975223297252922841283900962642918317422176224183004893450405046370596104857544090909770730534100534298063347718950252015122257074372922982417185671173556818490042417315827161417857408373009928180336449304854923889325678648886800870010877691027206458093691774898342530736972338899613379925727061886910356192358281886588233601096330554868708503374772981286621134604102528173084935979705637483082801622796858649592358504089256633471031854431080477878981625818958583439374434837303872867501853080384613722923295958191995030092956998001572312130981025780453902077895222447709644966686683595264516178385763691980334696808605345671161509200457018813225687911799352279671790072175423254517769643224256454665281238863955602212150123832276599247218159664904326756244033063641877831736938609950974311638519135495899280713882617692744205559545220643830557024877342423941209911577890083509334416728771235552054519835328220748536328829904007943211186358900926439446203700413287911165295062607464423967833354042746999875574289282669422132693626897997236221375678961117501978073046964801191604466935643284523739047074500167865677863674311367293008435768234861338380670104589676403109175657312443545587437555946341425041429910716176635593649896436415757379627223435031191236128108649751076500176211843555922401550187278640183342402353195168252945388829283371917541302541074838862477191767710092798752883886887318825992120749354947264351297320431907111992884303008425687966679971539084867611266959699183050090875094536819929906623590776202425496052539533483584621708762234928378277689780181979652484793105297048209172370365532202488258605594767095567980595285733457812285032987359193688402828694215556117337706988299629378745206699611512791066048854359986234355295164789609094781353335047467952532146880942655948560161678837525344625296665524649550236852758792829805639135817641527977902185458774898337106425796274987481220458129578234445971198267475692398593451674051826772444430999883596110774175976095499601715581150156644825072682585918999610199034669296382865363950439934264717044908143214835219922648933626160232067145907481797024224431169820501670242050468048565089885309914435859263277303446360481421482909926856904724500731498593394991470112964486623918412723862520653182348418916822555318689801375777556518597297039736881399819719697997345323022356015728752736484683288144502110723228569045057996828659658247393912614190882623310211617153944243260887979243163582410570782259808958194577548676868787879155248539673037837269709946402544530543895774209260640115561667180310281195961115669931033601563072108054102960259381071530669895322689582379170153523373242371363508337988953710890056068553345496026539752247168024196234540961038934313320650155948356296223249662528249340027484988527906527193277425312954711675879791386069744616427943161184361584752497275122624761761848170649930964078999259308037031755786201779979210124909082079627792910083212258711383270947025834923788200136748426541407570404956063680412167837317168564359334047547611813569007270162569969922065197590351405672705731627136098268496537970447024284458456072273432680162495524914405979530990689367372654977253684942457471593283869989931155779713506460838924958728829285466291001915002804884604720201599983590577572848378314024437041274514796768063631124236247672788769914253537741010601437797988165858282823179231037390415635395431622596801996363200158628544518279213082689386150451296401228088153341331265829541003759878177321677245121515241575215594693550003453782917877021839912130061593376392062628141216983177733385693485667397408773632437046969415649498482594782483362932647051836042453621154875794903559216695830777864410257713637000756470585694206120882256249254783428888140852191428725958399313442036295779124543784819231759609940567764616367589812828647452897615046323960785583036997702882317759899502969339625406547990742196061195329856491285407867281780911701877162992137605435852117507600260004888743888471720217629012831605890009659820449042969087999356316518527918250485178061030818514884311738218398688536117336007947249195881400194609673635760350542582595144905709256278840733397011541350811567636121254256903134547405664658819119479986187356742790927838349456321738966938925982229529094782446115874997773440917378509131103882729179813714857065460193822844978063392265666605130356137330729335294829104332283689198187576495739600522929248768673454122276737310236201493565416688340886402857266974126638939746900917995140953988833867546632577743904421348796603385235286889617316480034332071774382144479234468266314105238856999875959669679334586141679143769636702725896303758933456538947304756399246129120915705666250249681753083918308247770627576202633748464101430180700454855450755851937767239909050614455144804680848629998863840282690318782363304156936780523085249034200627004939842894743962860153013300666185895809426571661436172564659865279314612324136233755947484535806974439591771770492643630085466794216038146911698729492484820375454329706796477770227982139178791851185827092342240601313259746025765359308240953654083483224654173669537630205410164150712174026556324075355614803804336569971171369048219830896669511303049551810672569514589755987513647038001057638475667720858123552482597086714368623565655835095314509808552556824578431559554370519514206512117484827655411709656483808785642711941126638144314388172854758717292261757091879737694634492722436705746354352455130267875359914747537626627214653278519276401067718851515502923010133878593093040927900136449558058164231589818076913996107943430122248725099592919693355567790538102039987723981717792218859994082521298867968598461679188306457972230263360362673973301636144569317220264895225834288838134796987370360043826534963035782063544011855155639532691796373493456583869431949215311845278695665344796208126435959342580458018619179563380240167833630448935005686971478666296120061031686987457474275680080091080115571678767580208641845895153050311206812607698604085810230820468835596811042045921070264734365535017051638174177253252273600423557988759465868336829997404882271584621711571183101085112637965721946522722180595808043911290610082171784159326242290190749899743586907676443042929078949786430848124298057904989047959783665168870105528143666139333686596879327862654949411731896233231796364999024206083364537561966151460234525799472288562896917384417969328874925157515754610920025569278535336482710200138372120136844526293560425460703865294385022324824034664102789009458414960023438971170010530331619089748053038441658188098521663584567694361058644773348978670824497983738306095307953621940929854622121028021359333734622302547214725291765438684838431436910339953846153662456775395647690031602720068100424327868660811371565108285853235736948111428914617389242627844383218528719185224925362146311762678154684312371550495898748069977573606641338238239320483256444471387352357531520930825699371308728922218880281478227283475940273889051292395084059577724462178489709752108461941015530013581674731429078105955677030266947264783626294985834778474235085894452845998309759301286430555020182758702128044696742018628833528502181365833814650080310437719342197127854039360176931675770790893715769477544153959130583832470602898335532407260926776062909991415946698402138570642721964341659656469099213349577603329776520532859447901148182070694024822592542647300973691962709391712724224900467467085501114654612830677395029237102409973573482638689726441211967869264504792772553000492370323147586586630835542092490279828427341409067993460815548529414259802687111630099055407390539263873895134117962287940057734873036845588468968444012537701532832785477526292647154243754781527097605753860593870199769629970319806871631841723142525391739651574608515011700099306864420781981553657391086970464650398033488320542269886173389444443493145859213943059607859655242473433780363244575145275920260970273432489462177716434474001932839308948435658473873287915306484208307411312083718809396592489095540829703862822749233367327478664618271571432523953691065457611026022628445034022988493582694695024374835424306605935247239989738204923366240035716991940230699701397173999112022567787566774131466248851956848184517407875404035256500067664488004539599231101735953225829506358767959240459330748110871995605280177226454813252919593847216339512160054515701659467118271860366278457483813443343673032573777898938662482524639796001255996262680259953684272995464257966999138470167339615146049855515500877987966974921733978551715430916569811872882363306645357225682780680854813901649573807952731381489191066453223937304108433480418218341674526099130358658964879591669501313986129301339360576637269557011383251076100359061680088400619996417509174706929340548662438749260273272618734600037446922869869337500437804261380044169729031585678088159886259346589014264318738696972807503111398360112953515903545821023896829638579288978931093271606070594037049226689263605005677258030483740177180289696192461241840166664863646470479089072878901100843002789695875226642161320941988393131017493885519510188702516865261056123865773628311205284042172403005881645783711808091761636719868150947847408047604274765322502566948789384320623714568411945961508021165386899516572655396442586563038368784507917756355363295530252609782608919952097588695487509882002878623643708792800837077707976500197052485218561764056354761193737720353352050706049556931200941230663967900531866332299006377259467278826803114872580209194954682435066651910557297423065480815899562825002723107377510102905319729671972397684759584851242894771131190808514370431811736313709289384269755333548549142475168582630027363458427719464048253554999007842413315847338020563054656349418460161196841677853895171817226632305292560783529475405092056005944347347333970647423231369725061240998103414345941382711491326225956948441111234082938917501118182218620990379697035333150180050335657700490104030128242176865968946376562967035219467882508317022561511453502096550458198342823668897463568592055932991458381128305405369336496953511317272068713981546961682035453375441488951482682333684486316266682464441250300011354136734998260607441909358107655423026590707679221880187169161530701975724757060720506265891923753179339331733358275785348672657629164170749620081137472823609985015691725144994762614169997945981603354564867080922464831586529163415127683084273244582797044728458137503591711517560249657279659118918798774818342781980689476540144043500036845580367346336019260906813334666257869367946857525350551505253578833764187995257613744599715713283682242681385447459809908953466412510969421250868769445453583842062304874614473968371390199608220183933984886052178933038707159980107046880626791778247882115045022548315917232795983435816697862065744691221501310780675420503844887865418305517220215908158622362080415094289820762315508081384282931714555753484333285167578655508553778505440272271971857960954827385050857551077433660444025532847478000376197928434237251369137563312996486178663298060171133417986203763444651788051352075781175338796250314487774218802085587210063658904343920049792275859301538584959050126143151697042262410183292391647156931370424901145204158079547008333618167843222321642903429423905249909849718662673909496123506367024271171280173794123969432597556684716725116481689972455230587753508959700703389024420062965508048873207470229700049108766521157091407343532618975837433706999909091826506638563842939083977504013814395334985896184621780823601929976923962001852893065266683562987593601718887015562323181123880786368180972935010456499704233719106824337409570513992368336357811330872967591903004262425317360126878970385734920290513715645303121399019007547939219095301611523062047724795232761356249494340303393213036240711239705026878623104981201193223589773043230287005178512614595760278582001654584699213966861595792785721959798899259901455641105747706633975709403896971954022289495331965119680873326600542526406362778678830327885715165635260044844115732194813482494341550369184966625821683359481316407806231726390719040077532572769039801419747334680800744956037986456776956513096388324563908057239960630093775803750336280044430319211007736619162285042436634332789063248518516750982757285638455270244249679174421619556156380691614430067032255172213176918274393367650087016636319728500543924366131314405474067072649862929440115252715512092192202294046328416173382045715143340612076211072012082991637024582524411854267897954697625621640046881237580537160431031254327889800238513823815258584081395010094926673260443974954983929853736146359308590790926819133819885257390132816986648204951080404821192753825303967525331391534942921103070534143080116629212629474654470606993967090549488993105005418670440749942593963536145015307632695182549056126790007345059167957557664554242028215706996554589908193631087582595987058378633781831664892164637743329708389930092313715085313807840369358586880620087693814882562188927369037772230456221088825285535051351143462729153245782198278691503362613903678197244555014231891110412732514524145987426270567378163823739980654157963519357445536421026774952197811351336323438281573011780909528084048866367059096655644702630976080003051580258920928165201632751101074820342882078565274169640544756586841486426351997477950185754750791179838777791638934957034658479117272724855637950427493298772138604457135083002655701893704475553275790224313996996497003579801134172397845235112016279844352512345555180011523489688269192355224066664677067017612943807775036672986507600495216503240683226216245485293485800565346219847075868528219999033218446271885058150748593397455031000331628455649866665606559756254943606564731560032308677931602161377769111954254725602496446034370656138326519537105383088744513925089180910499574197797506666667633175128774808314383453435612103353865275625495925466633726731130376182058104846684124542902916341611628390120756120742370065951388009504466392086464836590146466214356976839837918015709776753124849245822367064374723450038732560566515506060922441242168474799568211146994674922086271145287560456310753781059703441098954516041669993192758687891997008502513027562427981102442399365328498825639006124111526725137129464487325008499464992619199362075846885871072808358701931531275897601783696775671223890900544802407578389283417529751355652385378814925231324262767883502476933231698242075609738617380383236699131261841945828708655216974157672361159044405575788754133241670656024304108172785945676665833193324615348970480040750108029419892373425987999491290408183703713490674278084078484600916625379424889469280518003452629563446509774928628826513141722492207614582860315315044865482374162459433393304302019032268249516797670464603780656506949517449707917309976116317529222422300373627809728664016877119604230891186429618593224833699617499270262658323344075979865624480312620563591139270496088367521674597934229197921344497742128034383187339579468434953997060741527483173736651861602433024262531749495620979363327558200416517797672895548731727834849983625286319336673897016441274279818609370958951339694197719253436776577044664300281030428966296494596567434964176999890402188417557439620687751280258580328579751686859357893581333624024893418129971751805346261699075100507795183805395274138017351480149825078379098561183703489283877373699093713646314537153995011644553910116167516619690803515897060914371114764375387991596382651400017884753996138205331591722602687840994695163660571013808501558915788421358038191196968518270940577604451980269290354679112123156099695481405791802612386522089701073412879696867496305664225040831882908822279598237821848801761925511822419182822295840181840412890669279645752997489934905126476630575786380970565466822694659421073252150416903034032471077443524344683767681894084046019828786359630730142963047336720775680667959847472570595220832204960225345269244038963676972506916810659638165389007355668177213387248579770693083823249487692913314328225255504894135368382574535580704915972911133147063101096987312174813782564019750551992807668801528429575991911864524274920866872738122693845962487820093614172173790662563047097149395312888101158907735505202043716174350748898681350201582094953304310763767746990048913322364438696268145435207685867457537244650646579834489247808962901482998647125793671092217895598648479479305270021096566010681689828125393365152117086519130183167884727428838633491768242190996917067832031945625417062051180148850623907972396573586499040955139982011806056900462678648106495068227590308707980486548747173313601197982897206942668424407012630987335649608623686161738199264595729027182878036153929606972981182480771494648036976962056358580272778223268453689466732874956048355314683306594650712902515325470167929469007997276457390679672270420339292799590797617005752101184466408554368845871487175275400703906532149077476067401789765214954913742933614333162629538332899263899388079945581630349593105505491784823557653444408035159079207602597748986113739656603710852926175530928159289158400664689139763135198793481090987774734205240786357047541965759986012594990798668193416138317351577346285693932195677920904044092376219823656187815350903277448676101349882303109069225334243140231514958764401757157196173705332328567946984761149462670142528095646545900931504789500114884931121012902409417473385955388405891154261122451178890958205228677749271851212890285438063711521419492836599737253060432116234675057265253107222977530198215421785070261363409939600859107448986738050411701329304260673877257744592113442932445647484461940080360986056401587272824199313604262519526649835218744339286814783456888366051676102687477109533140154233933289695277076280481251813806120425747509537916364113883975099478613525332000805028726625144319646554690560578776565466224728776420177720699888306983893502928996321795666523506604791914701655808265713419964527731758765224763554555494328446434790488853025408480958131158723164078250832031597562345570037796576674054431067168649428853317092598722021242209509718002634301704359986552623129815396942501672061336476827072189060144767945673723663051445446590649099019383561183258383970522334382418551062423437969108830260054512794991999113071499154516151764311446785066651941906754093035783283585478535643544795451597374026538966885261348432854577538930620339415726593642619975162560401321920947288192135196818539337234126190803773410371887149580161208049053391504564005143770785841295358611574915464143363908912614658876778424143720572810352115302230878416171925313307262849594307730497331780296370897269026697344640114844215070663730371732018043008723285313282176657078595850253118780125159632686558208947016590500118350265189996331666999405801424251198295042277467741282836221193103074727532115054581919972726713980638234848992516491883695752512591009715697291562950435376173731995857560380417875934603019851029724607032529382059034347047085844345457105583035364806576033801600671389212140765292656088707673588946941229388601733465528447611589372569405722374919683996616733585615399135203722209085049468481096739588960011472992583898108987002208404410496997282200075400731831366050217351124444501848530722290505080409335080810043313889012369776261432081962508277321971583201326431513709153576227130379258418343103786744959619786050425763702685918458362060587601865417917684575624352301912253201378444776496467874168669404055716413998605065374068559327333656746550362240061805260324338323724067671071171928282571170238467691820102654927577665025906008354377610311170851944868855592194037947879516775030420548623893761438372877416156875983736453371087995902491800334424362010605648887939082879998137934798045267709242492689544248230465560543001437191882232655888613411396983032294805888750397183709831410391747925513928319448466506629942561557658880026323890669956247664399088561896499199246528855123097478769072581571719832544126573846116414021682508424505292012282955355336335543384152413594716134526233542350591567836179425346152006691674593921402418267941555392207805715734118143402400247951866252347043849095568339169435591587239009102357228483035166621018899438858736831105866019803922896508424033739798917310953742175124855155066369070628335513952691007023959252214449187618623811468678984513468830333838941901583791691371274140462206470343690536090180087309336211771527984703910955435656214301859044497073026360553236154793754505440380206733932406442104869289162874202495213379759223247767113269043125014528013252846770002702793713606907329068689376249577859831359530810788412373255796910438858876454875450256453697172385324565843977803052377698450823028308422086818182390133796497680461316433997593843146538805646336084514585940369302462123886708713009459657772666883838490878716684089304161899257161051102400617726966504745966825396452399268881916204202243504322130711242081565000252079485301006821432506432848239818594550285343597246665018926387007693330652471758532524504694830557564593094819365577194661520646301216697932785695087115252631294104924174849629238232746469555099694415735817553030161493295098260533702628135686199018388180195316331162945551814366915898857608969540615058064030493191833037460083981992023225346937774723359592954162666490777283081030801736309717713817619594475614197146641408623796254062412497372320010359092145928378478029975760491242883826921187339977762599692849610450854629333207128959773082352885157318662409810794381775662343239987642014226700173675186604944884904455242486030943135441635413124041567123717016685333002319434245939360058303125902126196739442446745514031660580821897402000810238464217368241257955689407783636015891294810225891328259474974328706636913322986579260713169297400032414247072576020067055122752672229943963438175107097939289228341642606850812892130572984989853488874219139573682285854169974147974494737603846741086782093601339130668021524441056733809086856228816212713247741138150072356902756271232088208739908563720707602681411185769496806807973074481723632680413368709702513332543533742486631842686009935516472218711233783834150311232182165472532253212057962173970285212069175992252389932578662485453269094806620878218372573069076909330877927669726212777702002002829641122301244038617974258223281559960777034415505520520572867735120965764133375015133364052121914153896411510117046228919781660483704777672747240503381344261113150936635115365347038063605235225753593046828547180693395954855799903605890988441518859751300407721143501735542466840865581413818312430009300954745677187718950094547131471403953494411924302946054801684566740212913906208018114825563593425720153919813454842800703930374786058226376260404929600838258409304343466772058270399582747736146738608021793476998190980341078323008675647499768723863250209839510822172197480291660527122252264993939728909627979625278359246219402237561128887805629664269136098122455076872458149071979941879795973385130552047895537149255971074714135285002305420494929701966867281214438610674205392693532259345457898707993113137431400207245350613562389156542613699295545165003168082382664450845258695402927278697060505919284656229672162898626265450035073218446109183844565512644520227649600652852438011533164098330631209226766790452207108756821042535616267187482029628843150527508730682131973271682642886451968197152205530478232738479732118218946217735988574798793415111856966511337578925421434164277203699052644070268843971167330459649045286856116193907344811443604996261977763246975245889699553824509821576228686121763046744738093984682698786179407241257513085452830239576881353663715858805581944343608247793100435002462171618446562634211281040862949943595293072460086849251030950463948548659150862729123741168117659557872718068940929544949612179565502731241736824655463951578022583462040471498310981610281715206495417307988575556221356205881807563030915002809985090678079153796913160483050565594913042900287363992949470324453999051698613120624330431439593124902337797359524255972227903844607257627032530134141354952633071273287514955859728380623373768924053043680074784475878655792024897063076879600832379914553559954393680488663531704446470882768691387712715241790774456980610442563602190799379538595261163308299638365013978415009506851408081662743094507561161332562808283309087521438274577846918575951836817253637840919351472375517766353789836551886056791875217318428518742543700465636013643225811834529076584919758502159681392153007650673788748004116557068097069659106367550675323501295671526511478394217653532758126947005833739643639863311048861381438258650483318321029920538148556884704071622426158492870348162934634904890531677513364411936108486652739855905960142015852015125879225521498334786722139324510758961274226346639332283613862046157389518682372370735361861927144922575886318816793417931935390173839326985823279865470101889211117297292334643796281411893802344538923592152952883892989417227345841712094210872202962188145278253335497179624674170765188966505833175194329607312644007248062533785255173224951805957422229868751942313942294026702118077405549858757440511486822424572658776872247623162860377808245013663384663572252074204601123275210627047595153367115461158334467568407335124260779484545879010369958207344222119466198919897781907477492602961572292145623864021680768212670471281615258683969572206101894732999686926578957870975225477561385052947348349860730199143649142870231356487718053557305213163781041582229843867548581595754618669110077647873028591416393489863779400499519465712181984881411705754070676191281510637887174484390057265873819336844772039124481839883798232803687873336876356805918569719439251949429309473301030555341547804266836599058678813566089886485476246957355797443746378048240552954655674480058624467905873189674645992242060025942593396746451867843289930644615957747421323312995209085376948701554244692686925002426764321906627238415325965419201715131447955374412720331821542222631650554183150303970740961265144051166344469011928701690972125986953071019072115802064164263210590694523247963703408241788733409085297610376171737287005276869730309335311520504827865080515274619573475099306423792121614795462744388632797342139749239999250362711560908215634131421767630205744837924008246380698091586359650578509474483276863538695758939631589063770187294690984113325292378070787281935148483486395272454990573362318131272146834263532284353548145557790183332031673842456269424993336231960899735411897016155160546741257902526783275714586349526375125175860302145269277476246915087333741901849164890768832088468312147145385483413570791847977802957881901017042797708640724133726270757720328514255755495941026347312144658794557712980762974531773913829301229767777548547286574649991861586034588415454654346855766219300526252871282345547958625608242326215012996225099223237348964187586482892154130872214765117021700123214118111033398868788720621918069971011824647338922364200493366695656825247387047010656349250926835274413412933372039013007180022135063597698276754291201430197036765595365293264316654115129798533953590104578755437439763273200860994147064381588159962628043227962247275018344908777838913888727024410070835096897073849577428296810049919621832073896650339301218953979409789331075511709870843725621046254570888189692936222928744820888584791640070471580480761785373141776627432730474185563659675642523609836877939925586292995044179266931756075919129426458607895407673736188983174461570264526580831542233578755697509873070534873574758977939288079935198493138987986352122080043186943476703073662857952731595797635754645606496342934116706534115682732500610150167821573462596442635986057487549424574974841898340614185097519088761327249735511049131271993202261248030097718067040722352118006456429782884676194756017654912468623353300525352365732203034814022558630384133297127989872108986711261728160019863908468671963037180742696029015862154703705410136667475923304455063287842032474859426707082339711744367367395700066355858519552687387804917175994627645413390398449190852827614850221825531345219747496544494650471259425868263907616500526456179688072475872228975068694492278874106459505465063546193510278745042673314221211194476394814696933650290950918444470648022942599931398813582738687276443699374621111394223373657310985412548983836871389639629589549132735262613370637011644322857386235086797769496604444357435534232525924106964653736304521381702787144327123966359448930239926720251118895787737814023153299575922732397941441797219011911813672681009534348648395833560913843499490744875196565319222387232224071841490204906484484383219041530657647327171433409013202793006416897626091773321105739228854325871695782907046831077951510454560995342200414627262052891271537597241814693246169066846778436689222402380150266813979469193919339307141391339022510504419691118278269283381351310418174570745167331943306989629538598555536079862976328009606319404664589037208634361010820795210524050508610182837271454407712322984786289491610435395107143045903463254696367208940523881094037840848410306341446873956060803588503139600675624286352277919161642651936558765064738506571113734077164089658010033862142350140885688072314004768985106126032218080301939911071345027607135803008337581023518238646127659278916505484611038948508575519540230222353785651269749150353227347627900802305264510812823156166521685438140197232269820034430676777210325685211029547769983210485518204865744651909285266593780037506604129504436533641195254541452991276258122049428511924015653706634451824545646901295345408405242777556293457801661208418930530743623247274067731845532746279034733501203621115274931398506871915509063346777089019017664330214341275579504565516559772759220518319729749472019835636730323564821287212841654768759822335714328462386192498159380329941980379562465882337252216850736562172714429128314971844583073787441041371057117457373517508624181708728915742183942402638523433702431484058306417640959057042278732256540929368489956135787007727975418953192956377578318268118065808366963020735972950557937600266035803450531903646457867503372140825148456891079358134068637790419306760863464089360878304922970422669228668997933396161704806523300634009526763614710967024556374053394805236778684433139130932600913585206173150076038086925792255538145871866692184135460576987138841789899852984407690199944958662495973504011222169127976558550750084623718584262420725761986312723236621422131079260026362533994041685634307332120273577310619282962297144394693466768541890423981133939023260181242369275679161315721160602014072365480314896096098615934221768821380535250442285147083194080335386753974915012779836159266334563997553150823138454040459964149995150355428774637826388767500318306086196116290966592504524362796440372418892120319664947837090356272830976296719535800868199378014058825102625425897458440595754823015044625903705279406704358097273435101462173151497959791595461537683016937261000641422544893538378366820790750495656977081846600524172758746520980277234468540714201227009286438920148790762503428041188907329761654844393039743719607878276146836623286284746191424593786484502971381432140453000354134861772427903836188666101297267028632375776471210337999292539905805316564196139265554222100001859817351306032032268292154654530609351495420869397759455528094591109838421178995553260990858916138552788579929590779554213589395781881153587771501006219012752304160987913053360597234864838262137799876412416981399423590373722261881492272618337612295089145650996082216343530648426061413781011922406406308092393193102924559176568550913409314538551601998010034657401238474292506829428607642242101404916901246492310473106276734626045395781551079083874047005800206817816457572985481336803137565130249711717399090242016682506790441058489010445483435729572288901865174454136357944711754687920227161301834123786200951413334044089512256412088749026830574293813098825061038779943190331264580485385553529288505505623110417790220886466901995845787684028147551355640522133337943135079129432009505138164247195117425634308266128614030832260360782496860286431867688900712468534366932017703570710785282542091432630561487160707811314979936495767614664777308684712802721465229075685144152604888764790386986034250925552891991058137966384358082547512207789277147624796816161380462307338015507596366276954019675756480307774826482141565891101522215715352236130087465837198469271814044728520978197133481452928894524449462853276758338525585545273137973033219104746034351698819839052241148473186616700508473448651610439861323189767907359099498072530176103289089368997961716241266705444315738242042444762368602127576136500953519726718666857734349774817230847072181831815192308648245149778815271140022840364928522590360422218186051200368613157787511524720280710412845546535626725552082347390789230129625428599624033276758392393721530242184796011473957726807175647615084678697125841928304501875782754352493963680632253102983413316001606599632415301506349794674467744178001686107377683433316811007431992189633575996700485600146068995777692515843753791013892525415669197062026219109995798323894302554493475570140598154234140544764563553201421324663829115139886774526523669668500606602427846656131646094462007219000359240104208651930952061141864161523609870374592290391721074011341264886415202512702350819059875982688669321209541288311679575013792345907424026836162978242605794380491542448845127504068140451069877791388815784653476900193645145797689397345668800155360754303018179706703765699126867816400940609517524113462799394590705356929381334533737613841955812971828481244002846407390402377036777032838960090826779217224191634737761135401471056897937823849051959315638793028415552640484029161278225676543175350866229977432351125722084918543488262398985986738971567689539767189441784491878430630171063408681705547171118737132458506597383919222368310553310714565910931554196071589389941230345155132973930625821005610257337595266866271075921895557503212249250679669236929525987739573318502603315525862281075224626566346779239053919184557292737949640991216247012753311745417982565673708460781506713624867313102634117428545194352171071939536181631097808067681628571787117333100510822263505703311899638087904446819433499081515345964558129782913816321298899063894318124966190367198030070607464081400458068002109276436563771713582356131238015769588881304842144179949189392200862235383546329537642384387900631421203350270959693897697943489860079386231336087051148006003333074858195567187157568804669130941101369661092818776882815111575305975260633315539138900723170115678102486286973985436532579389347182617280206669833646920204619438078159102069580156417876271810640241655045836646475606684707718822685821027146658924206369002440192418176433347619654867814018981843487870362743686991073485807556085660330311709545824603962554103537978268422232319500530228782866497683210150704232643755700910837143333403426428805306494379733690717999625258035026622969591963954015165197364863712211662950613174237353587369609691004427433107823557290744854949155736366492185520606660389733357467083620841036201672455893235137703271839214447405430166252506047680363295908050281221911746783491539598908884022928622475703599734129413856169535931758528658840880413798312543206463443520600984700781836972755999295430219418347260602346546050025497926627191947023635089399780944195176771885256871220329286418758075442974806236640856264418979435681308127836332582528238477135798695610402204314048666334562444425015867968470948156553248183308814863070377242630573317887237440925510617184750953503857230315638596504694133576148679274585530713256364144999481540009428949994086925626489189903356523979599213424720941245521229785860169070619400048805092828198002962619945386286541763286689028846953011493512922960255166023651681783198437791262968249305036146232025529114968290462024368741270068483281401752689320506830307109396441152671657211156843817387832650502012353730635862361646772678037668715213003851666224777364670841425604359091879484354777946226273361902777118802257014922124774573417419086793933397539246704682985375029328232391719822009867535271717432210999188868646904936344592363792034276105857475920699679837728578165035620120860262489872297571126234097821169702272644404798259132306336333966816205332189849268777445227630429094511685482734222299635117569902661068192299153036538588414133199855215682624322043672934710321641823111223468605891099214172341688967404639396152671188184445765190047156614082489601014016317604586962692517103128779698316131205164406500061213528894150759105770245986292600525799220522646524568351804875920631746489056839242236597209233580430976048149215888433390418234611914342297264272049838961371907941996325362393749219968605759053361846782380256277334803631151054472231125293247686838890812724103585981045417421470043076398834734376322134413339560292890738852089666376847072938768811921014698771631657576218765482525067976406391995794472694429261979297889546685805611349446024953198555170074333636048417619600756908017113707094491302647271466824984180338058648287097430814070710085181053301016441909591779612249914709892458234192620967268688777302232423152533474278627315890051336500437581079105990087633167056283496666510833310595294389101072506294445242862904445784043482525196139354810034865602515820263905725329741007519290991070219145889744450149043408413062888285608871746770838570759166614982233477100794165183386202815093315038774611213185725541695744952781731539568739715553867464661660625334501624191875875346000211386530014835351733289575486492700506472369419429962612769862634151949896481244708527470741870936526333227148764397218019793842237257174681323326683293948969112199940436599694815943582673637055702662842719285266446235647929604239794283285985985461296471084687277445952846172888033416190473282995301546958633628620191863418892224390974874761967389960483158131007026885499440379738191160921451275148065081119274632072598975765965423245949241504320521347666062474979489920447402995083375386005877832874659354497595700034088786982834642783537643394043303564483510825007778211496174019747471939929535717426108591932883494308351255122305913590294238333476189728392046094021552008209733384091281573902802101601373856935726427717440329031853412430089362073081119520612077860973257418405685710512201914297756926110810605099223816258015368927809890328570257953069219753969582628453324057512800314843496335004605458913143165003309727026834295188238678637839933688743804684314915682425436608750973440085068152316151344545075752932671551868517141651764494021555194131305639764191876662674352222009191596291013690247918443656814938175810691938950419178149628774676584538713176693415955499029525917515378043289412324103699761406237171062443972227432765898902952851492146790124383548132051257737790264653198001660232322060184025588392383607647577661917301524771991333534151739709985739764541013265938078889721911056699063570408465266130348322032972158269726570106397557309642183966070190280172897332882915039421589395078719329423773573098841040451588106150691518868486010381525902055306943602250279219350389174589261400080374934724380888747818525730429804455954307069167389594225151415044785430457328856537760584827995390071629404335890161223699075556978717884685905961418857158685032043271130684701023865711241839775412558072811191403604414717169370709691845825893698412291093694513899012875913114994209820583705742837628696090258345750416445552163177212141901192034598496203135842652448887943452811265500509769579786655009630875086941791452233045054477595481561611470671256194323877803287293131407970544123635020750855503045187766655965299307217340040700632639646348039375484546987039450188409005065856721790415460591681616112682506640510416236105712207697443782114963593092173705818942226832781436755693735425813741790344125646602915646909735120181904534547972579143190295927765352448265692464266193471362598648610164263654158800784581115850079721385548172028802421810384818139370391723503046262225892324113883451487926305410836620397424730271775461436944408054896382751219840770456908597863509804306072324351168902923638031958717209233485506759317566699591689065290740606860414008190418348471987972154402332078006989197819061361312757612970523547149668749571556499036477669615588661888737582985760726266294774525463098641727725511268052203118402606319562798868448708459507243886940949708538423412392899812564537717648243552210509938048210038795506260600701877250927656854922961095608102651663245760192286638416429066598415304215694951895980659768270214684839927435757242471385588360684670083484383922159813939401324541969959130326728307995882383047260265328640076316334113681811242320962899757630069615413727727888096729901239030772903030495758855409550726042754875407509527017504699145306087392841387752827335255174216592661382610337284134309888351358137381859006606839684528269688650224372955419967471030809137485275647702355319884539152491938950639022456371776306123743235155414931680529816910172676351922397769453605083662173789252466131772456512407739667947631362793022090588375145950665539774486095673924443038703967019821131612488276402893754047559838064805182948094791482463563833309407369886255897220929135358199337819495054855679729128499339272798265846882541042707434472943673240743062227306627140837132001419219054076027917475181125903847009653585675052171176302121816553516409198431928622925417486607030980323041950131625421947882174652800895506371344682180606326154332203374359692859213656720346313057657263539523958002014615999606004746244643207024632416537920619645936548476486485560887685297733712769847874595338989580546932498500102427098263658775170144068922407052945892425008716396659270719570955971661500619211597309100010124823587934060630344272517614620281393543283752147416870266285644951341140394678026047397517431921512892708820640401637405610553444414048710391656952350832402314446820928394054106783927112887079143984275664366180491095707981590190418708909082707907063391014258850213495809688019223857537053866361852177708272084398599454748878665231470595462049618525613417971020805081405747662251592439757437860130983956875119382849263411224219295989777360629582678368602799534656368145572373051327490276318519927600746614745932188395873857661891867225797724682907886995351590265359596808681757304768112338009802335250225515371249137633317635296061507115729997588060184955719169146038247369742513050919767275286433943490393031166617161436620143196780908133709298079990833050307705368280282677058366487295889621239959759421379839393608208226208449916051469408483075006605659461359324374158589842800404875565433766047932210186367270016212734665458181095245374983112038231026658893367929406301386406420214978301888049826308686879771384390147182754659092520870160856671742475494296267642803449432422895345675813048268414915519775934852773992874155275875967899689437756112327271858924437682028288846747990566942466216875910326390419093851006070780306305785054529074302236232693515861650699162749455233054340722904776696413396113957264713527841749714503073061462463674331971880281378442811200223969493133574386558007415101241042027385405771158077446472662844288683116588831196875825867535146143558429040306723639254401798584924680214957969788169440447822967643408831350765776340457560006973034620794527807912666740991125822054659867459806172187076020621229055774375014064296183429199585937371955091165502073759195966435111868807079415606461637911666112838135435950493692089631490743347558469375012751834538008747789740864665758644236496399051246227535785159398287358458261536218114520894732129992261831001193446650471636427784526828789643770180261290942518683027921194071340070564583610438857371568389560095924584461678224558979464811365717291772318189942813384145866126937067236417527223230926051505877673402254834846147673213706534067129698552490933462850687752937551046402040763327150589424372866401666878216248532601406997811038012461472542676395565396357434647179848837447924761820021036015978345578457466040754955209049909830448369140941349296186265862920069757641375906292275777712598896149536151957677707150754663781261524495917815534356251744646953912685248497176974140512795410488594328951311562431123011763678664693667060188715037339319890849180044993769234076036176967447686155247624077319544916906263734835445074077064562584752690706788974912424334611344337169072420105762787996768662873125835499207377257546330086557996647582684835800153947636461003651902149938392961380600715108421549134378090931299306588615491795480819684805195351768426845782335179307482726516233375789091277618680771972879446403219693854463276959924498000920173631116044379532915454904710150374856736512874939958460210024070658911041624622819966711139614895995436791306460073208961248276008976292860382359951216099995310739594420360581612277815567382641678090728162546721403392462258318343723600253953413152719937365204873455366994517932462607362872724147034206848217520875979580848051973257209924613224024494331590404150168868368118146957277468800856530821283374596269004697699207156597848862762927383374726537058409958071136608035562252048771451851037353657289818241476212733161068360958613816920337885734441618753291597506713758129293346012301767528588316087323581249403604916760664045349605667917092401996932653233293605191505534036990211136136572812452430178595989784012503841516556790125569392343672077903970639518865462541535125156445209259765894699730500944533603730803154634984297748466273360816060338243956110589099912855687163468046774022310735069594395469238705935364159793302265351018882327896984801273291057920005935681999504274719277162133233149864423718722194103495233996232789144081625797666611123186902684591900433658341963237073889953884900160443923475105559538706787748460799590099813545662307192895800890943671334084400565447619169114677742243977830868922822630831010479661142034192884073292766373603538782205579880294606489574477651888094120129324931041817256747890393136068512692278315606048998854670473590170504401294972939605814029162775077476941275308801896533640232440983643395966491719198620767262942271329862252358922252496834121079534979341079445279752591617471271275531691728213186529355570042663394939553691315097523421100941584786960711416461996471514285535869474364425022301136239284033380290988106020155071702787520327002656174656094263245905702327047865851525246559929996011176160110205907927435470749727294717545417086047547249092729828900637955315572795957180384433942453236990255267812208883552419915153617083302293244230670674921878253772005673371593916537501614949658085424650837002347643813073433448394391867439713564179744045437159882507950007495087087180838721514320499274485801280064460426208976504406276460358380032040363550201152834245960009057402377660103680815335623509976367580229007555122291185537972743559152818045468453267675445281722520331008033600483086562527324403680843613496473712075296523823899869249223995626865457796457134200242457161173346874477430499699976516965218388103504328639183175424746750519760122433805367316712163439932281667442099130923479486629358079698372273366774521713950054207477436521161689804223544899447840429476650716876428968607855888016244420708429178297911680579723767255718296664598759404609688807594481138260527218535349782627622436832061520240104752060168398843706690680901038511350561372386762328012342804342322608036528460830910388817466279987972650318413474430109231939078171904720976120417173669083581390704536151420050090572352591491421054506007623971061824064720132161076236554239949485517414121866896204576918038401791624076896832775419007882722561533297654452434723121487417013407880851503220504897048059683129404485705781396352348479185502973940169659332549496352439038361772152614262905754837241113717909643014469256628994509721703890225585981516643279781114479547336806902022415382410119740142997068751869840755030774918429685550613749363535102041618288052113985937460158924254584945595670220888475160590835031833797777061132934600001700487640494573745005744113051573326422088118859989713521021922827340581464715228978829120325874193323685983923716809097472525960263810931178537226391364700185139945142531006083851692435031902532696858045919798028388775587498696130833330138959219996509137926239619089298208649239091984347038988770254621075030346260200259436705588039349919009903978171801410071060238598279163309559251344233087795245200757101569022095098398061779859614726771945790758252639977654537184785121021863504470645885523262898409113832042950257509269475853553715074214661397180162610712093882268988263202341055555672675956730571508494715816858465828953090563261706689957137169005754096091132096527188028234808462761454147442775334685108555597323886149530239683204901968791579603499614565800920594214012013715129848575375123425409325867826041006768170364721529531525148208639198224792337218966889456174765241997227096818334930028351165604521252854550009639272767367043621488731004195339238111208497337092650322877722949366411962629240054640686956523982468851173651538667803166542650188586457926903299349052507089457294612919585662891992406989989301531909327644328984166648060266526914073151221097413588700590434323377093710516660082500428060665734075057355935750299991438174746193640829597225603733089197155312898569647081521382824802340454715963623897866212747304017757828452337592902347605903819357146354138556213831671883860816372576903653812383616924486854871168367622385948250178560446493632999941237824985495943926651352671615558281277319604962791583666266755358546788522901076873228791328998367173181859500552151600460106723339651826078621195770313476133133746320534599664705857395103341539937158977837453813271605430336781016861389758107395691862998296004371531737973861570137131814262354830347641716408684129185266605878970542521640944137734237477940983882792712039686889744069131714898824714075508895292456230455782066768136547884930722124073907070624760920341353178698602807906731866088272842503723666992271964180439391797552769770293557178179210014756923320677182308743777238911723741935268072416721716813984764284360883720668446132413252436733435232323556183672215567383333386065934552373495894985132741407037735550438873673645847699274290585014867635814615512879342043847821117952842813678489469901298433789453673467383812568563496140171082096240192300485380401802978751777614766934559375215829725322678974829883382490585642052454375390512188224495150831755920625290929991259823844447328932976144160869683112502388314982366566753323983679790895619621669478631332174251036776390162500680632058331359473248759842783825771301946296312286042675829852624789634325102149759384866758735202884404435622163851887934167605085361320846819814193947227140293905104050251015666912952588122488602730141183707936995579284963765380686378693470957958752857789648105620054745601355783197982144057781599903860104805941744412615518622846403020153465504329838792339833973782517765872200819535633212517939527647540398991943763982113630184165604815211419329393571238968460697731558625881478102245959571975244045822674167314776463435700856686716059413443900808692693890406452572668805446554111658752986583000567691930963934080724342152461390547068316734459773551993905478124951672928149840865113412934440417140341863366026200463368159677237163152288927484874792933110131372953830568327915909775384218685826761070564759972370681253529473000695771264597333283414963988952956295076427397310480837981236222072371570614958206647744789327777853128199572525959940276276115879605156650877037482224077903794662902971883376922493436761933993011602413011008862558233420685574058156642138683286555243448604431693410116471179171111820321656110013803691546328732830742408722240033986896927956860071876811289461863099701433134244273475136622541921248163146994613679199965024558199406220162479302711823484672248928792346466987415496854518430596857043132079881345541878883502639454839003161067316866423616787289928872049265847949874403827025411076395324799707777247975263246170045254048954725360529100476459145541235839547308185375109426656005892308181715655584370873247210883050005678640812851188925385030779580127903198446726026997047221146150508678003723408400379475983393037469670969369315775963648731112123838957058070541298038940675599363521096302363034780811312836760735609911741556097473753309657971632464714379363637512555926936571906972079124940975897113274572312957465501438926729695678489884535084568027642032356351024043278161859590368694920499177887657516645305392965768129030930528841497161807365474759281572241742306245799826347651314543134334856987673602384011599463082309083976178212173441938590899572420156123044719377106360323479261192609700530180236993927319120376967622012056860952309756580257885394671286071746468410364366279347258510829021370197037779464336813825177022505687677417220871827312473688552728626227232803316019492807859588075615567293878217827269220845425102086940586733923766277667564894368330715195308407671537862743223561298983917360585858014420655250753772523837081947217697348230729615039834332876767679420026692067400457013234805705447930370071374918738031979951714630453971381578782776436238057669457470692153307397974302366091354603688658353208589932910832908640556758081108273210520644088551165869036960283804579114120985310137143435138838976772197037262204686378149198089811993166151204597044493374236914380566860476711096502421688597475615244370317304702106067097085441632611485375766231598128387650595624863992500035448215822187296787351363097687152029120817342568994583842663901827812477132906582895897058136552704698494410350828522167963968719799075021434983174677019646999990747904693651793547504535633265074965812221253465439856180010159347553324510263404282012116425129017453503646345818702842317933196714029718119118654874027502255475771479972242669833439385705414586391563203784905332940803282054362984200266973109602576240348356161276502769896721421490258276300642249673954073749596380452356849114682282136962636110576775206464935709909874055141573901587147581956422166627102977255746711184970979854292083651029654950891577962179333727398146568418828054714855862239776614905066644817880919277916005750475932531774055470859330468126285334676881537076726572618765682593574407320587522323297962242490163152914330877781137087958633766419721621980043679649671315274020889923061811575290063243803223794301109659190699016174334734296640323298440091507733838387213219580865516964078881499628253135604732740655150153700373296184243725300969228787565645180929012845523330202861399340291568439068596461084382597188835977000264100081427643580926977892512625574849359406571121386342557704502834730281089739221726527628682268168775660658101333910963081824746857357621128617221422124598538887379930864074288427247977232435937030285125649676337198724657624073413164402437863321787099361491551814912838292974384144712236444309653050809435442370736470544285490038594543464542318117785568934657744603054521687715541403125870611870559643886393029791158000676773998946494821533465777716040390041912712259839500950910057638655155330686516349693321107822508474614812220949070556137658085626321373052838627940437178534681260493659613210797301955960541718478581943319820835621739704639808502376869203258950911223106443530021081326866900256799027712438890533430484214450948203266007697981354660855499670597879370400178148702955383331859822458688542922939068164717607251899513053868564705529997077207505899115209810297109829463549525734868560087302623622978986345121286010209105166935764375335364775224713731431863224892021913530466366616709494008106475232426598483672521977424422196666219093108181822379620993713491898350679012005262530676477150714854618997587956660802410242977712416048711109317664000850186953596304614209997803444333626797443147149567336635023658745550182355575283932144852560356441713935454493059990652074869723336500625496239086697998328215486989005104408034438952672001805548737369188528379920191420843324273149964918714627276766356181771793385562627950395927129439682659351639172628347197650991662821570300872621183497526606914676152129946553722358930647324223191506005211838809986421372911421623493378566172570476933773456165201009132598538486058201196920149450946963483792203658213789397520054749214847920061842978906380312336902321873437553455141052148126040119182177257259861834912810010763976020610787255672792178133583791570167716280772278163025082961991615191785841811733027540736407963244761513104034963389340900724454847458644266275419847387052323609000463701805271830236134613017731924317783883887079719488139059718968202335035233267910717618575228784502637625769284947043996280254366380346874146191473774975850600850281050376803287612421942779990465827297824975815215810569353432716112946415291848787829698767022305690248391223330640010145223997544984138611284881397146513254689588136935539304752578289301185202979804677634902054292146379076256414800426057625532261092631426335046207760196247983783720420684141422508972366770336285301438830151021502930803762159065901017354097903930617455582235766434912049652854590756332215092594521727435746607351973247360628680949419841232726154155771612171288885073589097987498861584627584260238269815245956439298190977911902150932662183859811357001383748741358884709547181510210272662418457220366739603712200472009200914944255247894089612018824242613142413891419720461811841192939866656884935415340506602883844626183061165211974221581426548063003382625423156948684036336226535376567427907730945143654216620368370410254810379657975857898112162505075812917974270396501642152918034536867104557084961075963774517235215545249652888055996358088929095137735894848251808728573174181497378936635962123693455303655227589027620122106624923695318969786428031481140060692438551510214319947260225436347577902093645124051808334145734508729163580714465400465638855671959590768630577532043848403543599310816470747763541033474603484575572668064265973696197455605207494789848788829587332982757767883407588287299922650262277109216577321166500655031895446125036933662639531711091653648229354674952364750502665981047590637850303875314906396643242181484028610230915702185804264399389172669403769987917121736539707450243041596338920311959547887693058880118270587657038296309991241129423833632499745334771384444766106656773978482807888106157392191935313017548394840577963053601150640102321007131936840578124998078325658645021343211184924264514970123505364299636428192785803410195423360409005363879829393548426585619431377320193251920523103463031231910784175801924659623948164213878913597118323805566391392046388562851621804081719294734251408364597897516951078462809307893941515556699511030188136232868985320788745777273876577567207899614047465635238105851135218093997979053449509842359791606409751469748091376548530029677950393505761760536404673281475827716762581235951357110770998164263042152142877976271814294608666417612806754764055792299996372547757248928625707492734244814266026394393145027981113939089244867702916079434626002645533627504709732122361321577188503367618401752753989321418165565611878290779342164209232579042036207553963771693054184760344139575449010194902121173690155336149717152439775472160022252325272944979819827299280308001015356116212426748215021025291985763537662774966199937654257344821914919275024123772775277088401013153827820402389650132744076090252997562291100777798061285451159689828304249468848629141507707549777196133117884281579543853848020207386010900815336362391155584975320686927183572115174086620400809844080258933401120032775571763715820603519182200786630895042189211014241480537982840126780501690014429011411525314710597004278376319084003729545666145656110419523977754135222081013660920395789131166367223750361745165027446245048109231988332623096271396607386247972318910122118060217062367815915925396154717856287255684722519997326864216616673506207442533440807573219775320181442493693754920247749147089516670611859108962127017692045621658930464592312829585882161622938068365305582599450103158150212083876839906094397182252127174571320075622401074964711454215498400011901169173577065961432396831623650119988279159543972913925512411407333408544486884376939261057090019059390894232675759188701111145901783876944853309822516702390130669072115140522819078795379397967902552968397506951461530735166658109413811996813195525765831145788918965052314704861543840206347476475896410591499385211385380946027231732911737485261150857895514946309435431875412356614054921323157021476479493551680706403048716730474650892024043505455665329642968991258677962331500220482480216851954296774880368599683664385459020943649540588160162174414436026419951569809941682776150410198633491744198424987369967001230134165610415012144640243546979638137713402685226921500232217674134798614010178505177613665314851292408874033861536030363554291813529074771063519657357894592806071223726529446953645966643008903598174279401994603454251854408389200036908775540159678618040222711981856982896965542490212289944245714417868261017662458622806973711404780323730692475434572939368308773968149525927692900022249718454308003275107730038409208130667471226178304170279541328230550335803816783034151846272725358185825942405180556663899131434308673472057309946323755905074000535454923466751423339481383656108214301490200566172675876952725396912418787410331508074799556284980057446510404426638935902348889985329877015611231889950062037119632997330485451881891393990854419973935003623135332536623123484091148677530819395012443291867539194379814891194354374882509557996495404919130479991572562907740894618687719372246215059877719159002162368249702536802909689179612043391952906735851075266109242807102969689941056365434444674893111413068903052715053227365732721123234231821027227999074224772948914986582026381879248574209318974848078414197744770307923004971031305427793626359729759109028146167196699102160717888007348154960368836669474662139726427609216353553245971771823726271031185799649530893757883935944275799740254704316564054030116954838821770952353969528218874072745903313887142087265901076268750652093046210678191755991163949357647131016579870924873994405422472585339376465891579075749922383340664874625380249968611449810604783340795028116418204512367320598433416558765426058885114500588726922086712263953062380360072449101980572707129453434935176792959046860574639805543870216466106111528282483995613894857570104744171686820398827778044916789095984186156607236993938317055409949536713158004768259489353780617376901586187149882971354700880346832185792551263105712387834380473079706419527020702909500823573781083120335100178213049608647432490288508048936168363384622109827829708183444578778739643985640026185124020416696579051907640475744084981624368202391540126878808621748054745982143757317746117216795940050777499638006763592896686619977444582226612661526104206068868879154738382425623085658166979811852912006545259553511591587575354172320227215808945710442654644604666391270211441761834803333697051662133506864419524184805589258800106260502023070616055362638413483632266034125519774563030303497575655208994405466141662337064083311507833625694204849715786864174527389136004985359234797489354033015904599552529115297190931981929253755107510552873348241689762477887615370187235971163005828877679264748912729476791510082569520429164727098912985905956003122646152313936184548311681100019332878279272351788871892040471799277387463284357735127834387054682905371692994122644031443415682022634363325399512721222076405912094705437155940372886497588828246390144041254285450322231628683028542397888531875092711730029646963978377519368339929237870356000233893042151014774359208285138407696089491639953164616699529291005548619949370552248659742446541643807936881060740467943588449929365632672839408061425349833844814505149523652129374387355360918272035968944284775568640360975325213203768559654425813126860117504447809769813474539983461139691724680829377319744590653262518418044842034033075465485415504065962879202548281816021743510647317608391609205727480745142109031174476089451692065903644282279986497675311264760014879873382231179118763345460211865956438847328665043268987839535008692856681836120766527397237062902611502721978498178519695895782386831991304536254174156128470552015105342232324203276676087109031706089219674245145134189701609306878113860931241766729047795159622063128342234949052701659743409844187074130668249048457039593521915042270468611315939195314029549341276850461293798672501006191132426187896568906342752991555170654581360351952865647807989133480908418060602054023170379815596307728471164689606531806329824028315876357796304803910843611094194797139701171567126676165924685390428112883829986350535262792894270480717087200666027059604250598599573920023038854263082454541451776135424523747147814079249201948734599125815652999580621251451479579115568457510983239210578230388292532690947756942755727557649507297987607861074378754132335787283238573626021488476490178659403292605708731440340693248833558716563808728872898955535646948559842763433445020040272482583836078822393482995355048960444241403565298544817302423497197111102323011877224223499947249556343427560198088181598923968574874326720155043745576922077845688433667713032423239605189457009032744538365680631817346089159568491234163497014918673978025137730138228217287351218970408588057790808555810181203279479384963904894127797847392470225395889947967559218970719271953727451769038182407636825190579358192487990484462122172011569587879667276231066432822066604560173525781255344189248075177224145663931308693462810188359057615183259677938569028144718756586659940045368469184248740569156272776358487612878001194956406135990092852774978493793820903714254679653484777880991729120813455075088341382432113207911713671136188694133278603371126833589299702897800242887731058052202894256928942060929958433191426081259782855855434988003652089448299667400964136666795629479527829586159079064075325856371632825638705303381919648648047925284223329757013295370920959006495059269483007392231934525749718880107191004412099152417863993187946461074651698130370081055297773417498253744541162792502931432164896801509627015148801919053769486553077424538560744433618944054457075408437070436418786531209658291757169885242855306869430154522418187741497563163181075057416347515884072921473600727163707515970116850554497147395618992873682357027820632129199060057314865004616486829145962652640441796733361507714670936356549038466045134238625885341647194442331665043424748350969587552604922595186968258517542491176812497499159726977050722409102701846743799945034584633043619291947689364648448922183334359011152316351656362087793905513377690871756346143619250101820053821355145787429503381490514201198322831383741837691680037171280968175513272104290329485851479610901505837219047061066789837238392330974256452522553116893983253635382358761324874112418088414370349594481849072613759149126728025079724676117964883538941143635433186103521133001892881848214355410603157125266275303189787485655501999053105094084275510046600895251388781871420513373014577468143550114069206317072720376420615945877048340935268905990560696232487090976693557622838779951465704838410785219204798684069413058041967848371915285665885983990373742862140758990587408898163621249878611630125444060731520893739062767519722385226536647596418483981374866932642504230752722508189727100897474791766731764692113822189553939639892179764624804788443705902671205526982385815206263521949538157844329895342013145782506532360678232089029056090678107425286523953114914642444051060722776519870848479270588081113284185762354117217106701761865358366294972506476365362051218158137845749095276810925628610003538390556244174202621851378963045637911839856339966812262084187737454241535024358308747503573468257011667901185575202199217113032756709177785485280494966711598856149428089743547342772102010556612196465089237820045851980500326640086777252490307419842527129462438938947927703563563211574210161508152673295685947706618005838647060671777065196429183778432706246984415494813911069128648822854913080847524726184440708797873070045385280019951451437501885412480143536846734439158060537318683490398816565104304845656392577557820900637535292087055665253204247536625536055919777833785836357407365684292656766324728461808677616929891489695813639783856540519349916434512696880861543210424552480054859038153447509992130573454932502167802047318460241179719251922672124631652480258874502020594985502025044875037073420874265349353051010372096619651649232117637558363125752877079288790941726790317051785788833534244556376847061727491283660655860234129739371550444660322172470664574495821151796316251618402842610572311286374085032521249210799948978416343487183943470371440831053943375799239843682613029883777146841860745178292157354398071061572381386190931767384725082828668100875965775720239728066505256498606960266422354604302012218650427790380306650215432029837116956503237034140613193462606556151301974483415920558080313388956400511259190651595624701094184239412014453787805134827480815830146278510728801539689847905499916531290880503449476809838826785542545101542288493416537227930943571142995529315396799728137641774947287919802955330063531153155173244416705564297415004735549736865853748775242476719800822885576271764331308043702400535408442655482113990677755807790307712218148952083956089646619935783130219959997011800644472097548725495692620407489028471728854510550670547203407497015180432141703203754362381786432300297932540539358917638651146289276323477129000542767912777772888490343930849296534725902978229389278765096270966574912853341052803438071871368351629824057304318888699037584993279226517283080958839945954415430245436981555861928026184543859021251009747007432471466441638023977014157962775021575220826224835245412848956212678858940875673065539690681512478990244336313761657368419613038060187957141490680081886522962012469428057707074934568175676135717819121758653392461111646601092795562372335062760300308284981712948518897265690470683326252289071636180107993241361964970602573416968814252290172260663032545689219061926770964265231492541626117486434128391162377278736108441073127949880273588066272264201619587067112329107233189506606543460392434385923958240691022264333876122420779768686986081098480229239082877733392212741947922879579405826739379748205827389514027863539118006655292245439299836038361921509762287228660124259409574143010275285044203163690739213392268321193251112646403147831053080535287283616484129536371849401855146943541863619056616731312587112196277306958272618264361468739922560104688509518271080511796241223194481215795619293544375987631324046746355317421277517438405635369553520871131690069851933807106061727083891978050570940937171336115122756216032663203405725106878274089886463381228516947187435936828534321889626436924134894904188038418874280590916957510109835606585033451195049953950400797954352867320884113314752265086399891762418110637815918678066499720502524816980963184513382576768389291136213104777676556709934715173118941388449331838362925939096229069415236898774823178489607587021093152979535809382037957653641002927224276461017880008432756490877025056022562351078168977994454255493271160942144049690174040637195964124684853485608235615705276473477965383455834465799991065745160910525657962889183571802894251751120514523997232849174190170324867980466284209023055630685169724330579967198691460202017767727776540085105156000696352685053614474478714479250787386157305103950633456133445875224278197805881266920942302163768390690707864324510755953730593849929279679969204100170357961983008230036998119122116023139614940353732692884898082150243638077958130216952393023467305686284317961774915095627062797484404596903276980916601953491142323301403611296359993858926468518652653264194091470645902465526725037083171437520692319136086248342320930944765720699782393875803021824483918107888011076454762515707901459822714863693597589255081205965767513452581641155542917183051901706948102523938437945204985533396569645845132450840078647202159176062782297919238676615767978228426909856267337916092578999993922296939949559935105716091616466485319458650449669119338121619602892742840064815579797497557463946305219401100768108291123507839895552277772668519519785263692278492585948213167813817562710441238806364034863350985787560687168664156762201870490499760856275625991478976941238752967398516009218489065573802847294190192034162910341394959148028016780155088509652618713674346079848762086856830629615181774752607894596912319429539621942405338087304567169849320314213260346906526501890198701854633593911472650352038727003865179653483711814412224589239521917497929321456607742573503874271442576034924608614936086151171613105881856506763372902943634257387195165217894134322938113838701743606137880870690685570135415599933977701028758117132500602194114859016953449449895297933309616550095904883548087765514617299036736206912129723858771821603074673832647057882351215496707370645211929419682277532185489007614455441719910920770752872811254282605878982343508217736559310405259682179209427781213108676054586343596212212896991723827938173368665519568793351540115413505039410738640603271325772119069306308726968947966387548764845782969984940734836923467192392033818968239804187701714938898126702350846734529183282894355807066505721693261515097724810722907271840548884805638322595467102519551351948222627980612450973345286469124564404792072739625661073880200833396862102557370327327408773807310659477218572765913864473173065020034987321855893732059066220297288035040605051495879290419954020923821459869767661312307622219142364616364933426339407460190708837204905165186162438850325261238615307509271012326758524160718609233762837157236179147921868545998200960653216310287301177257061984283820941278530501044546994075591707086242524528927656412533524195773246638625716398050187294766921706456649548270996899717012845920198716719658661766386741435466197303131980643251024763736950701668987703863376943706224481542054235682850921353141661037169266471573587483032197553211257556577575561680463646867571283938456568837937290088159740288641193668511550286546393535426994657027427104793747079118703674674542616410575017345375988918524088716561248556815609982887967067288274275520287457799663552455927930198086285983584348259586093749562744616890960188543355066058035915883114310342374274250781583597868073777240921108845466908364780935466477352408577303893950248618285851938303834638354699958258756106948633001738697103651530121051133808730719949654640041115364074826493776179367569608930614929208242697948993330918570342382401635638625943026875530018144028107215496642190666054458237983896678014575796760395473828064504370219459621868716606626782159478157823760674757143326009379726898069422855305841109725342930834694997619118133236107988863836667113363891557570282248630390370460192340313232572759352320814507246683255661533085507240444302841293534907421712575788948617981785210045114143860955623548386817579167231596636844200342603677743501291100029899966712634042418412356633229532767285244259936053971434140181478125346713174308473329069333509925819343715071952281782719782007138170969653717340575079463327662117603305109196748764025363299847801116533771402924746937837647908734653063005813002297945117386653343348360498215056634400689924077436638215353097471826869905918902936582846805470687852426815417578633149399318193193285121280289499199365593174062703090839099606849496339848342863796832595737344111781345290050879788558271696910502291491621734702831732702750541371710963206825309736481581510519609435152413310735530227629923661332193250392678047425452886701640924699082193385211961319875514108492620914969956258766248732663145850646806009274301223874480678687383847120851702281862631882790820356400876701574833164662624250723821907085019601425779985509139910123167901038228219928902927115800030930658123452019611850149326566273499034617057227052595428734491533891810445383528131277593501474323956533553901454014436331898468960840607721990449050234775218268653376997582704400776010796530813387410226047349853397627638023658778945183608802732600691942138214396935560385744231410917203572356627191418909361794894187206696403986757127211932685807009029329296772069857211319363287671183050133673603040655030734284938664369082421247509981443331539225545180135045879394044331605271432750080289812167875951775598050773089464987484843828696252119171461637216882185131163803676861685983446521243345367383284506587803034662404741075379242055613023844614584117756468474762123022485559229426488600011963591912371172231394803212376592058265829986881006225624324292082380081593698137806861514170247339946975665571663647883253122550342112016565776397310606251509873496173260337305238619972112646640325497745598169532949161143172738097174123184517923391950438745719721648729158387414526388188606074265538813665444638521874250989176020303862366215894944000487978370445361849013062697984018726477098582967285565718109784315838089790738362928003869850070063102211987714335242882172782535886520541576150226166253470061244332243825415374507576062067814524610569872574963252354195235864316234395300758069317225713465569539337362367096941784014224537543403710870567440203945460467846745775521715949169565062345250186920816833347982139750869275305250269864129024856218436831645789382071439385503035953421378037320797932824779462213441975754324679694029109015961005469017340844757252985888626510633651281320649235222253747468697860988648681155542712837459164575376569662386681419223574763850724631351055692878776267288079834755676105654908782265762566548650446844606580880110854774304416501285795496243495137602990818607875558638821449895697789124639709622149746483900756960847984024400138648780020421104527659372655883422683523908420868770864912101474760903011136179424353426808405327657751779995218931782693984550303350585617496622452846234470234660960945975409140849010873652432777038124700963804142152745021913372214240838768509913662384894538374849453971277617687711483298155430153259126143761726867019528685641977600929434903009688706400794844325608210773955890751589084406466963473786070758401280450608280510311290217371725452838256073960664682413752352459547698361713655552614360019771510097612045498708606271728296964486984082739564034872307029742345293298436311325355079711603432583098481217129123111049191458770575982441254118660343251344485849163595840660567213607145911999315835892967337140850420761515771820855051800072642788490537842128351203948529075942644821153813185241018089226877569470799316853909647352343411598209425965371286225250123427275128566591826187089212230470777748703243938052230342789179157843808446345656402131693560533992831527394511735014738160374760965688603078894289924819635698106536876620265789200827778484640746087830656986127492774998487372011338188522405011417860487260033810076331302730733360325056352833837398804459071285656714643778174064142660324476866166274338955844657063427097527889637799076409802442400919602413186229120024162509110704622593366807336732466387989639289218739951804133548414666607530902274062867109678645726428892457064775102546717894673000002502811142561274125824575336096933599176481068277837256940446881450442301715790583979265512364415163724729671924268416732901162401507795950240326356526749222374485365492196744920423748959499781052688047236389156997221252225897452398751170986359031437212741701164939124854438164693458141768639575464655606897907310515332856119895091027968942640088279094906082213033709376867707186042750898524854600964999127687484794113879340121126520241479172025175236518330182013380180478892873269097307203439752555788614420503148830656416143774555476792794244055912729052326260032234963673737652975750248917274313523611946359532539849637307496894402838227722580687940634145709034273106544560818257644890214284234863251865934522203824893424835984835732218894993646204446556591986050383325248774782149266330663661022482476132284905704976137163870363976564345250035345217644378033668262809854595760718178822701028683413890217442944112229575589681771875417506146552839640859779336100776663348263686044627663843603220407698756062990430923452277705113758700260750544210938692031244426888202179273681219612249133015099268318186355424661539822596779788578630724834430993377826655136919755990219412056335503003756388793621048092803262322661014455652575939818100584542686101004727745785460030835519534583007595319249325040160523274081568538412440512122019899042548033093396021273746108894197131702208188011143247215923197728952750243668885449260276987020955686930484374295626783354686555340726432191507004777321424269551608724489514025694612269706370433581217382405358007388613050357481486442662479454097212407015549368898744064423536704651055194652639376753912441142023534058061338433178676558637276746311025555134291856788131374751744227675386995325083234595997720983777534660761737805225035927326722831601642061016297492769716238153307068464569684174130754334649581878229608380080369396399747428323714353525143282698272326694946166286064077113409583469835515320274693718379419850670192562209781379406121698534536456406886130112286931198174807954924107003070238071759659115201008249139682179482405965380605317456600021603529800976041473700388482716335243287230551023637161712365873294548307923582879980278889274979413292008599811337290793483559019186581821531316412503587105016765994635173274747369982684142123879322913669386752036192942694091445350100126593544159211784005660972886852129970172413514481937079009737963871741725738346061914243268232238890635547469955954946298433629782344422367226989246865959693472511776697235591748691527190261863317760016573735001350333432371055724393173405921229723070134939154346656473615149099376992465972546118505093613415285366019029926176148220563017589821333286130783471183779620234778471628752372266494284691030282821173802056621099971582492679411583419926185777020847901629196488967724451772220973276103683738315267828139065533046401529424595116712637742371074973382691968249238783847465305750582970395253697513933218246097190025690790872729864437056954358198905099481363912080124262154649272952866484886773528079296735281431894672171907379017079450123807708164850033546179970447156466784202577019858246444681728579741937376006104925458298378946883461346163736666992550329269149638760801467973300962396028682108945870632202275983199087171623319743481923597159812742112601344075785236734673997428998546056005852501104649101916826112642030482338718215316129577284161557872966632439494159914538388135852463494458953864376045641976904223129864308335178127970323559021723384153393990357939012477908204999675965788005256832511124509192682265473995188733268800388148454137189861652711487720434378106477363011639224992456402839856641883013083238041505611564603534288461922362764314495600468066676246405403761384384289016131634350386710938102538982647802075290717703747528534855961264913826890306248923748556390674843975183604374324093141181267452696226147127889770315739244898303737262714291260722870547857506016153130701606786855884369785731897185811325294863339362250555593386989804410781923838809476548898842534239844362716650154753923459135293600284709672688715352570023607082839406602903134864209407674801120696091028589399190428791802496811057011495455489452369911314793463402435619093857996187596805056927957063014265511513193291673536069991868147547361434259626227879185489342464065159370798283330496826635655419190118622435935182109458071284009867575846839340315824425474451535915438468219513015898312470036013278053030766335190136776680729189689525357431330574766399335732635577549177362495281242928659835440418324517607262983431759251992227091446332835514325256266465697317159085054391639368058716532621485420933710909882356239804841951491912936952985812696582471729113555546640636223944966486562148425577650333329335449796530280938324490768853276996261631120581355108604716056865900123548832357973239296648211859108680823142797906295219031533461658289512591411335812766976591946288434047597750050137246210065100175098412417036137759424016459789731808624589910286268421065401098293385191447512883840294574607064140761257343876382342950788331360240946976330311869220132507603233733422599201165017097544282259623520357808289775455526519834736707521223117680863154145505617127703881081100946544964800234909033154353956138808318860995905666682796751387047782831811054091778761078511016436472791313031767537755252435129022497776020813342219608981136594730605029159138864945959894958950877492618341285112413995906833094295386180406941125712270681631324548885691612997514535913466752903423884402242227605433200509387630602821613082934195052544250962368406743221194575518686374437670108441367220081973813902068722196996686645679543875947983871397792507459014568594627891492398223348633511722309868996469175759709031139914871518276312397555618753591132952951579454558860595803131019208886008547138895711125271825182837493120124440124254700055878836004674433555308792480930528062205903001306307396544458168393098512176829644283161091502030334868362960026078678273250952362651113987497525610173831540349643015857069916849133654067657828092689485874299557447855467133210369323539992976785591494075133943805806763515383507123684094340397595228703294662648821291296253715254917212264914484403601837752439192362778833131333420014266349006228826775350341106997436030462004010206586540252691842546816031635006372771934960786280001047253785243137433484928702833970991565957460277163874800787138495602411989370346927279611333205644783408346630623744963619622417883241156414611548630602237807528722768099660298717691632724727629595132502802158702832200802162964922565981902792913787541185964812012726050795912131963830266722972680565064408329809924281951394578818206702456958717031299610989702395066752378696022738721429671720436024894228644654081251789834551659390444060485537384223142206762530582934540380968126992232279573579846973962862829784983168254171082752312252368513678836914538668182108749821588231337151805071617826408458340446206295905222554690720665811493966570091393927447963259695018155970683702323522381862169862560553347554302545369289117094186064125080864318187988210503336962666774831899251124388694505330595667586483056991003180281185727525991769814910417999239570827050213886881495629585705013828792736594699617277576954599061953022954029122200450293554590706671970523357724451776627115937721205238396771398139764911081556025472636198227122180955948252481235458966674970828345048964438096388540806665641265633200639267751613206621699119944275995325232059698735649578852830586163934296718097903890978882109045987998929115306064554937732908311628039695773505898997754440396589822095201314728463951377840901062032197458620330798164312458609290991443217426496996586804894506073625122056462375058733180693799369476737272264602132909277611940436829875168815896172700073929609367156547008825947662529665249217738433823330795004299529101889480262129511981049512511038257633908693449937219760342199756801142719984871250963708876412694914754581933577071578519143955738081558623504592801713637141978869109701037108280384617883558959252700046623815958762240355787796440131647157990197950964199482595859657926667990368509568538275872286789690802925580726545052965149920900430202584676620436303202261109775751782833954556647894408798073438727917931287739973308215426310621103246284546842645098352981555178192178490466677455106840080360532626551966842666556107959923548529808399069714603386636501553630225683068095106294374636890451756624379441968554705172030538373226904329379211872161652630105292331922202706982270164141193871296856814127903169126397078517115046786941672303599199781195852614252596876150383825514170155161713283973724564470200337910537966904947263715394024808464866567434404929585530130313414995601708292857213597925882588705378059716934610087054760332452813546905339175435196755756771457865013246932644978768648809303206008946657417547666115825721750114806200432513899664278222400423390978966945740945376573720280848423777898536624565726523944115743399800958353073410416375195236700825822415548207178882174116592464165953553792709166694595350816163167691425516403133844207653588597075224272499962708932193003376075897471308312314767578699025287815509921006729400719188590132419387107893905067857573694401000886320746506409607080159623225003454347394091578783037536002425081697421331932851907780870036513440362732781508768427485932121620670477198579197300968798533316767751106764286999754335459373385782421872592206795402580867102201985317609469871983356835261525459826745970187104703559766350464496375408802869656131153254731074830947073173481138192695976549908870250197208578941037649885647821399369550727951250676331635545484341212171558720466864564412337715719230405398009562735476947387471752634745951350623677848966580147866415539568592412655229729689499592804260791877694775496436302585989237512969400058314427250592091009301727064115568249927281452127603344425492533510890406036087728889009465043920358049749444603772869010378646536700023519960527676499814812398022361240429258448821226543670468437944942884465988850092806298450851065045728528546286640490798138247355031747301346919803603466136323045710926617955435234345978497806872152317221906106943929148926608708491273264842381505019560127696575283816093267978031466264679111917827671370883158428121518810477787308470973044524180414526785253164670471005455253624020272506717389212053127779698911573426357663277668963237012853050929854213297335599292684783356220017683347438202743433364442279890452420021748216780006805535747471065614192834903825447549102225803607195133514229896448752367927111517629336698773065823100087842386153171512723666038972546988997325439863553308251229634928986825833168539897395728039295555503480101239760162200960681606064298147826153017437014721100968211596585150420992225722742115538365431617741047458456637013503683036279396821917391788026771544307124358940376517944707040203450067611799789656093297713643045533787784063085292999652575747994281572175459964491891388460920417949438943355904919421832800651281645126405276220355344336101967696873585591303318340967688099152720470979423402307579795037964708666268834333735049404034101405154632131631777937662446295289575759324467368743122101562508528256783468044141506870954279777126463341494151022142402192613499176993701427366765966104474440270069756054040414033871918742347117683408469478807479721588310764182041482420193235114168470726057813654109119571249835826751144768889695925699879919969618830771926007292785257059547235789735401171935689779813949952193988750409825982005491406063414578237715625097410185162169507186318048966235786471020382764902596298495762619246196432162751421850084004372622172504985832005861901468591601985860958868636361709612373395198345349845740093525618742324925869510786039578180786365385606176768548040829729612543506352010143373398284268848679037058481421586352470195809170940950836330065620819148086225031857459310925072675134947057295300310712415540318876175551304616122858753587937075436607639282460058748614818908761710607585941795110391641753110939229607948505246753468856434067610527312831815782575340398855105780283478228314920225862497032763188391891742372364106500479162148430739755922325551422779430534469833685349741072433958492092124563428842001637595022908456941008988424407999323565978317704793219052846740369178612487379834190265122345862133419858134011058170944578503786657336034334308877836955636575906723244779946510940979079137592951013855950195749286993303613278187634211992722731559454320137835926023419573604740975145436808383446596453553768784575697085110380563339715713860027833962611899728145758164942279007365447264809058478863099793622634026268705973981386381435466504240812199741795755014529092724992967128382757075102100635568908736989828259662876362136757152632532289811243493478216607335263001523495883041862502884291521343613166787104964127792157219951269284391308526099483129648973024966070642841450252615359201065371115280329314176430715320206889889790676873095739729065330351975192599481894257779496207940303925605304068987928715702358249331971373556477321213144332330764087973798960260375197675625560651588897315103922546249177785008927683887893577284915058303816003665682746249242668347994919221146762961411300312501697970258607996051965206531775199454556789797605783150456552506494889515088372826304400897213750456994646220630560514781524168571320295294009066117327861261737117597378656962932027332054651374088984222187305017935627393976147803550688162172560772528929823920813613034134282587088461982458249861827449529166243525395374549548182263280544636109455983366489433809423920140193221669451427362054829875529496477586825048545154325192854880173132709947146688885268542990153802016861321704833705493726171792739010827098456872585599293010662365171173580663657088457265851593618782004901142017042754903316290684063997474141940874361418504560683042993593634086314701521575924397188153498182335328119847311077742431374686756925394793092164994169237578840803456913413170077895161631759050841695111729278673645675313156955382269186609973460951405685326797867071685359809263392219920815081042947929067056584848984542199705523297572632047656301185414716121590240784328450794276639937541914184621719770951537341507506054324245343784170094866426532660001622520212193707289798775527202882629758077373154924777439916005494157316927800896918619810353827567151816341662167555253654042949536007081757442953569313788774904417546222437152186576298980431765215952520435837503592969614989411093530876215318885231574557392815356804807738299895941106258144612544288762154800889709863759602643735714487846810181750640252254578690892854240252417435193240397342434181173067764690031424385572360187775915494653871202581670612460434553566862457067384601637999749028802194223007092638689739215567672811788574017256392249108133680304619975683268390607999640588698485678913280771062697966543271537771864326781615494203545581072921109717294187758966589098748532413481279561342326210549278087751331600161466636088028968410714646761755180706113964718512357159449314734829041822982411725740952053299229449449048421929506575597106282431131753924577479567261778510386548262105158611961410062263566922580668685123343835842241530747709146232445108003054612451837783385404125477879571354320657916922377106380577113094552094663540359574440065119194219982157979114701664745596493860983759660148911432712618952989795813582103443966936769749455255416884754188358859921474251924746227205774632818347232245998458955403806374325896795645018515221286473026647092011790899072697536536445601009998866222092086241538459414993711014045098662645140497438924249823530182403932445260460860980601311278952444757426629612780031209613168560595360021175162703546545378161468387495131567329775376543612369443824528545045283315786728219931778138508710461209315958376048640878858569481294354614261836978690337329703730181783278106736114972687355550076824254883334152732806779668230802214989829968939753663229837126632722291444562444148844125552765696785424010963988488142934530707448126957056575593775523787541069956416020114899095740537482565014975395227628496814450053221992203949446838929062011069468934414383339900573681519755589836090840217151827867195317209220957473823380066798224008744041651769057903307840773249724274933215873316851760274941304291946710089083328862934140089407225441153308051304754041379137077480676481379946874716283698215575735898416558529706670187670813281953230189817788273487250763538134302754244601068224947362695425338072033173520736960550172341216362149515422569632503300758884594779651316963028882711509309145394960717819585109801134175523037173497636234764619893540092694357465232513581583479753867835670715875672722886644592354165070387938982431682542769554355517364147725293752911542459810527932966574266337226483546025268636949653866427970268529152528734877918567741575378317631983318249874345290173910640012063241259431338766914151079082434558110117041574378837046436205090250550913212200382363761351397790194194456698172121247811406694675787276506466939336384219318011799591266791082499910067579458262642092645128603709908089459042745671330694465364715284512470224368140686346189677332356280308735437630439423711936501331097536927751232013648137317704474935274354148727780941015552759144138228594558948248473813398471369455679438366141006065630113537700576203961257714943119668247180895800192289418961855807035991122254322659074669509364767374962486792464310799699628127552032887506661190064449110308227809878508396839252777781235322432476322834849392770879807020454569037403109404309319230754239975402751042919540793884404032930510461691988147794629494734873551737121103692315671333270822086064160003684049434487976638852329654227937239789517236174180878967887168111975653466068938244676591380228595938016699956832927369108654984748181566836741469000955627146842746133826267424526111194283938542915802792493091145969262348898898365175658516203153942232288468232449609994294046067216730954687816772518514086374795276938877440118735957660470130302589701068765119609710059271785990572035647120817855609503801377692225748634863211919105297036014135770520419553911972455148172482336109328767523342587624571921991653732757792790215138471539762455885017706340585911117683284627540135184387509526010051302320076155782439285211146596945167323062511576051536597852301747683525269482068870921436543075940321831784696186142421254092297432495658643724551080337570763422813821872541298770153986871765795759889280557217124804381367342285541657588560430887374079317583628433619647519600895744168886681772758448650187413068030955303838258404821842395768093457807711125017745643789439031385373398134722912887345498361192120217304571682108468209243572073231755396529240906702046499106192179330833161484046864291307936530622165182903501164802454679336031037258977118787424468530208639236486927290051306494471681142533680210168909380188970080324715581796683973840981188155884255849737493659194857509445890270996764967094379953134889901829502618115275835134139445547780316145282795088895710761695276466909877086879019750916130051446173881374802926497094364505773400560375620597943931899219217938543637338735686301852091561068941712464187507666219521614907471220743338685860109983013925847188560251154973728654635407223983575506087212222629525245675918252378851528181124799468073087492231890038899798963596990920849155042976111612457691529468686898859585786581597982545838542382036546895199326915929629418462873732523789922551655559713336810489547110869484506016735197381679065396602582498852561080624572423233296841816481897969175415097039694604917684856865203205899437735958794456992105697037218582086145245913128864875683513260141230651473444018380666445176086076136146929932955807279545013258125470277210782239501905759007475204759082174942411548295572218955482766788820223382083852305316628654301009548828948860256123681745091895470094087081020223472052346415938747332498688834222237141331575611945354867534584462202430972266006682006805069586195052889304122757510421036239010504960577153209908026500722730782306731112211413261301210073062414910621245613870302893847428385014764641193300165000071383901090132278149065021792771219616268614840374726218125329488350137472967208492245426410033791493294367367622315097718251988511624267913159754727057603244905905274515714009576536424891372462744102864322967577003954372491329992984600339847754804491434547679900667374261430073688171350488395605849100028312649166551082908053655802486225509059448694263539252534048675356378462988502200187955627374954141359274168497746281491931447382418406021569347816184640711261005882482826998504199537098005186280377587586798428336500705717082748498444602674342112121026149600971853281577548414965522238856562913569848097334436407880948540279599640289386313298435706007798126406521871793250443573057938026907179221971735563588968591098167678987830854924580043001028628427480143046317967067143821293726621125349442295560613212811845707959254370296681356331296529920422115311230519998468524737607585411188446920909332491997391105095599832126210747494730693905138849156761224184099835361811081648935798400589583969814731360827364165415498297858950018768373587494668464038479086237539422706724839636824995925069656008960176458661825449326017957041104302551061570446001921752631601010417777474845291644323661113560635122191487031700285459567145660748570505678729790443238302662272268671671132714112885387584976844023429836252772697211249244342039511473441428704673794958337360535007537049070969284487398772723074964471429613280065845902189059989818976317622010091299320946516277290078492985829894060914601212673318691291322382320312060588995722980053667867629398938570315741054510000863735768267897989870894250758126472167648024051666099232940485868935626570583552937305617010452957963731071518055011271545273843810155380949482692411965252666498199667018108895133004691218190517384399397316202812126724396373960975052656974873870966095697707877070387050494834462955110352382856210101346258367255350134559261630205350576476294987730779491875945000506703531005499335341791654814179523095139218279342875027701086913443079900783078823436436056924422385378821250286771832329270640851554000810952964599610907079433071586951813455121931077345787055431974127905642859930404097559553369805114496039091586949125278964522501961540535506828548016812475958326615364662545729914284217753339595287169196524358728334976315762154045823961850497509376750843146816125610405981146411073496049932497554099981753357398930761548335453206554813269706300939466551647356586364660639046641581856628660813387599053163871617063436496978149414091116609148663992086539924781713597982082571291190394918438055846589015579271176759189495601664717217298293124166967976956500791682106993593895983389053805376421519784928213116010263916729842536898711928290913282239408224975367537392326973106864666121517892691338600094458412057636855076975122052008569366508154575732911289071668771018918049478697649943921309662256488975734539570414230893438462802384842165214632435491278069846255821208848409105830216900240051565321042374042107314796541606397737123878019753353311509266042958973015432647900853673246622122881350747939262636416176266863927360807228460639051642995920120291372002064575886151540498651542575823983212175970567571920510828128695517799821157561882283335472036986777969853200906290210549106192618423794482184337178137515103259107309442541673191990156297585620384084472947756777027742314595277121331312221291088778025993671595674212549285407985084108982740788628690076297376710853571784270807768867971009171925242723202077111306796423433228754250771466711135665991536933410669285818446606011328113984740931856726822510511575823271512897806737254570026421355961811786536175568690721456955658516189361517537257810930325984397997637185841094842348955267271441973280192723549078437124158956820411603496293668098764674777834411092798879464773151426872177826986374180876127334812236005093507182611405353176703567088157558371169555326651590513059341065282375665206487507487744699442277552501468112582557845785581757772035763922511587484388019642495587682235078988782264371471942666741292689844601601762885445907683074565522258872372807157645151889955850309713104849916303991147861259977841069533486805462835944878708862995322391965343071622956244646070292210426049739806144792569252088282957436719152339152456168448915664838490857664581101129635499096026301840479168205433065487892738818496434515490735490340078969442318743162188074063358167969446746451639491374305999370098920896553817103661323093571358797134515312432409082793973893735923877714012463381960516854943886517003574212964701481294479634193025083126885221145381182794493871725938249156874644663463898079840177257703054672899633274494162032282727971375486246184369907351906893419169016465787230748733284436753875975648355467616401034287478874529524742325926448246619702493360048913582302535601892678126491516819727887781115378486595856009135033003164599434775147776208896747248835479733828806560789886058711365440101712083638056473162814096535872609292270332237249294023065498189484175582391850965420550131528301381094963271845832915544003976684326517032961620852209216894600002551489411292051806951274901531730128893183432779088590135977765213017644981649772228562562130893574991160719846153811047501782048665666160988142538870585816988833160710029865343529710537375151671472308252858702724121369577221184320490992695821207715008466422096536964710593061147914246837249264084466442312072430122335090685937317922808087428919640004231350961801663561124187712245449920645714757272623532673522367481221367091020442979923599271702893652982728207292086211100017245374423629051823707483435377307280319916833226120478749322747603767907840000588651712702953414466174398521589452755214908400703300409746957887430745428138355286854229745993643161886433208414879552890134833653411093625340306426106950273511555106993288768569323596532540401353515433946262403992034269958966109537285630500640930832743361493395410756349216715884226842206530110189046031444419771103302078933615433902975718240243771169170611006232351719475692596860346567816222015913896752423421774651842643606022254749874814504797088946123287167788486973905961936541986858701894722327972173190162078674096871334883313619474996105702562008492095333534306369832351594210464553655512301429660289832067750173959862697981187017251752940290206239256035785155812458515068854115791750860428239430793352558571938571125192127335265249123786894953256936660472497311750677615492407440820346233039930157502736589773670037514214328859602753088401442603294545947237332978140222959643223799314034337157468652882216657970593344352866332978104957585067643536134086990477300894793940496886754802149237764248000013774268124827850756293534460192082566521725563863563777199980906133403794870914722170296287656997921414184531553322442669819131202165720866935958904309103666368820306852528551290401017351652342541442147015953370753241179297595841147431804459443870469355643736055640861154144426851786651583536266220918890846364574411318648647793651053508966859037075948648324410877379815608739795488525776497221287409177928188804566358268125268038680601413683881428170341100568893715717419176996209098301621265797559496577169867331099650144664678452397225598776167249854505999629462157752074587260306917358241237186684415075046700833243197293779814013575837619205413571022770542697058520833782372968380341885406088631780257005344408091252420158955978050711945594952151709036698186137080594435234518678663006299005457694698136121147361571493077755525465300335789041393178580693664978905213817492470152929631604699764024887425771200069508446863615062590501130211240808608271290449270057464003178551023809771945769039285997576648084032428203637381254441548912229944551876963215502517856104314670807094320358059896420331283739217820931936728361939132497467923141926817082944718287877942345544084571673878481755981132316628204620976827885892736726570318148414147328472007359370414478981288236121932315956539574045054223471165995199758654858886670568457132877546852092564111603183934843824408319099973046138976091213724814311090432804438723782308262974253125359022220639023487995092020427074527401010933451071133331478165654164557344574312301683404712073286252878590362797332357402657228627645489284070648599563563350648663514529058410809891807615998289017693806302463248057886777415465733617065580003901003265934584560918760011035793511012933915869424072107967630015218977123367366321658637208720516165907798832775659732407088079393955603926254996017445615342748697867219040161370887481901372102550322687947226557215620203226156415727583066068145681000148731314717604250691712808784529435153979471777576160366988158777295638796929155642241674820358010467560892602525052300672982712692772003339237735097535847250020470141184955155448798739270253623281445219664795814995144872699588545311053274344786033956844706427476037421549276172055332239187086358577620404951697692786040053148119788624136583163899871724057635974365675983718721916534883726773110219758301721547210530168472901221499067130227520791489540095401120830541788404899196082861402156405567216671773213914898634539711067903996012450876894967872681244318601478689744638152820669951447121767459581836826398318585749609852526293079652680978068399888828919119578395958913549226285976307079076684184759800976819856887541579340815952732576276119033596209553105165459647684290216535241650239351340819801122726128240889919895740344443087214010160486347724441105755934895171662986869454863922016965389994302904467980819230653932541051347830843700922621497272904021162754883007367977432892710610714836792332324911841733723354298330353517989700129888545603440215810397157158874766831758302058799504032794744884665661989415646429479844005984609074247564420499469040053167504616148879746035377448350204838975082347573034006504305721521613632806980381755736525576192366433677808829169823135294075779884713804352660487876833972726728438967002929614154637579478719117791699730460253014504404205831600889633176686303885964504242083599147453511001579387992571662321161593301881294192880992331763488456973386120701482005363668871570499872513627470615892483134157001018893749251247128586474137169365254084553133438339474791364747989730316480534328977822416931011476958476740951346986567636655502813439369681823325718947055598186815134676903663747942536115281693352663875847600769563077780182390209283380712449598274211328345269022780483367195836913912291155851520967722024636060824975660001298028481381440353564517725077805841597559637075732519788440788417161437337606641562194621056738441109834500556960010255305709347969354102402710181994314865926459329611163685425295841083850742235133707602463259264230849644908424659707138406604934235601941296959279564147538377435425163648009900880942517244052591490477077004536379434312645237424166025969885116939986948819774936037784898164811884162115246914199132467542387992841875163105702592657187391245411458523145639928118198097768200015720655837514082036722827535032769559217965092787858132719147483551337882404612809872580733667566119043843090648268556384399097090361809562119517197825552898361620568984491736970878330744627868206783910258973931741706869471041912029911020580467625262379730285866444228644288851970692061256230412075037204866289618966410580790410199290498644650244146315198898920611348063529366428751823587239813443638845726550190272797432805692151277501394768281359827912055694323711573622240134969152649053632069441252649090981165818543892105612888584906854199345016678995799939115721401230992423775469878774640382988939637996067974431097175023383917171279020892832415520108420795787338828725281276306649701412702758245233679981421000626699175654221178172832715332550809352813411842836525422050980806607893713688957147610738563524328273189391067569301369728596920828949490557866367239467677301645109495473693986530195059293787953321533895438948839960024858309014433055426171649326409232042390700667165585358259408331759062517192870681027563490676261147937414802579319095358641703937491920345489926190720151542658576613657088311022244312767621048658467142732933323280841686141823203766573914183049666950021873701260081574141641166086931428129653993755479717945686964073811500657536491091013495420000303514960702684720709190132132044139008076634860791782538203387708091607435627852867967318212211440913076594325908066524705765874981743853401796330418223132094879894303653932733070753452785798070863247877744980592554265428447161732029197331370177288220097368724099958221029500458082513310801993423420279162889415095927097047793196632004669218713080363004181720852816989929993057313387775472587582758725991166775266449269651933235861276200199780511729429256287523098341052296366459540895345832388652104025270959083875695007558222366459719267986866110042048576820464347748733412589876669083803009457797160347863816947500573267366473952909649894386729218595677382336322112223560276302323931197597515597321175159679982814956274651369419636899472983008179720462917611192007205687012383778195870746631677742430039764241960422078533746511452130001589185086644400177559193920445679139778990183074607343104985009658758616485100305332618195726117478646396508718774805325847658144676365373376921320622966059522211557227226778385117100110233110340569712862081114959697685770651287894444312073742028065509679086342918441743414135420203136538699672559133137757021061666415498113461784252752785658757462850431266278956556469737957248160744431395575077314198998850299160600890122129646984184632065479407808939328914783151331074442691386600194748673318797010058239208094280735653063899282757338095755347213157898159460952815318564548882016064818410711514683468214520538946440459375046695117345216436181130909260116998354950385683998915271617858858276820689916853447597720125695935688408410745335212354389163736770914915655407645862744992590471264699612857463238324723384805118794171806609288981097764278713284625176166756359751638085873853488942249245803630945003396575867024446524607316110629716013978652790455226320314013652514599296035329985901585583631151515228490959440652924031512737159139053146011353333629146256189762597251288200330866913886709337824134034013718627603080485594957400188255385892316619338682479474476249975340432636977702869391234559740771008915199424089066261342966700995626998454215564740036424237181974361598938451202738564638848594673802037652801778058604150486329640731107602548622313620319521477092894356553820582225974960842217011457926512233939573083289549306423087389385281394275510808484737340626829154693471345296791295273206969047619466328747638661503987625174689522100284483075584646467490960291941196234597998545871924567210159311303335474145408233862317121197459799171452643046708153344497268430279780424496984704862078119151554966173261105438492982830553699363708090830381744067849298988581538355930989768334529362853746371037358515196430241740904577943135393176644384684264743374360501556884535755255913804210264933250638641130782609696642305097779211740762905373435313251462799647646758982245992165268213114730078182862417627322644008371587716156970057753407257961172428126899577020011310742859104783032731785783606282836333904683200606735764021446108509147812418853401146593442570086191037020808616820328992342380298193686770244377905924972906854402901538626316534896001069961536176586745877728525120454724396619857792397584880456787403727397797648245083405069385461515760383897474602934399277862398616421405689212976383049390713176958553844957031220527386563058817327941428296016331428452288472334065131336992220481665195201613521800584679624849199221579547629214157328161156002667113967241188417575354802657844044137410388101773615548529087594232467437726877613866377851079323086024111817772670624560907292126575142535919031956144168989474120274082405649771452897582535330387871519181894117549828556628086757343206740438184633417671997335334117300908881218421946139573935236041769855325497093955661176528057441309842699597053745630287178705438959164418264605380588400009705883841574115131774237133235004007178861431404772981798423918569217630858166601739054502025630177755087924161157938783571580276701043476734880644128117699082104657627656085873440409349770374620461606282951902992238821229001273228163022692583775463023495429493890439350876218080428659048797490000259189617740013136637597350612296328618219080748394203310479234701169915435698080036344054247234947145739817874515179032994430939635495942246976880192149689475810410214736106209013888862820703455449428845093123631669562837014499094636119381728443820130465138328152146609704430394081633866851316705150714722775112192432612546848154268178503865924285805660275180856623496824204703819218216817672082925577137257219089807212663954395858901289374232101892259174902928634691375365042570728749556106983832335299329506053791727045909964496697147223382497593884507585923449349532728392490608785834159651509091573419296815670480423406700002518669267470060176705065631432589765473742752740534133866753257306488526754835725694583473672885268233874180866177258968465327046280557903416546086905935894777812898143208945245400638316895615056546725046075944588241552597074632095075744958859458677874780616356501796391738593334223035197997352231057557546804784597021945156424289341991487905656465854884563873372590967498261366211476366195215968128748981126267240580600171454534707168013498540640896809324651867890899163798538250184595798642138075200860339784729179675188636088609367079955071736367477289866858274704473813147274576918312953104647148383858274397622526703433590214362501224329210985502809775534252634323435770710700429622447665417872791385319258119888906640263234636200795822906591904437260292352767893155671310798094826700976873607409628439237498896637978132853069253883598155614905056937663467037393784326004725812631596927363158871825674407002001338101383601846354163718479768926917991954742939803448083922992379235559026074658983320955677039839185540750057573248502449885039825997339110759086763936987566697605639012560869962151916167808095599716399457554819581724703062017295848872458991237896882905993124293158396964370293495710867105280612269591061006491693174756835813266948368923135177557505706661033348666597255924054089680217727776816536871607061281139792859122670236752232833854284255313296588875993580774010163958082194802781845545470888466762768246501456670345005095988761974736820965103052021941662355551511713757416435601947932695983554601711457192478685605690628128422631146605988579089653393508227710785606167558073913024557874448378731175171914701834047460080871571593042462165049537024186686049879802985502388514294322276035043503886168105023984287435522036650905294556235752655305614588234735592594079143942586741601677456280993542328798450244098076950296233699758820322517400662728213054926832922089776363530872158677906115621035236245167068922087504412572885282961740880487499837951054028209116858278901227702782658087091179329518292617062897860800047820749604372900869096144846957749497822830533593116811061973888432561366492875538583014168426638233791082008293974658904791409717183231540015101816283583991651305797399712420107533423178603028453937675080876274133758197875761542952551040496329952817421528702678450002639492873103722696352032532226048843675745647388564099497179995804109770052037591600282795186814758980111508178905652291467166499059787859165109516569726871884959559642545013643964400570715149535139229176548094531222683137010960026428393806319160270488591848018547246848481740927894838569850737262426518864617346611654124464090634755459030952695871807578081932390516148960942703030166301096106363105630687568310883584781971778814692312887004349589384674605759792208362083542973135449417407406064768775263257744688550840874084422354964094666165082940915114958421910678353663825602895002688822820111741613120028216184277796954103985729923460680475890517836520198479841077699066820495475118702185901783081106161547621960922740228632486995256116226755130016469382659046810050193614407371535269748731378228206411707464074475430550154322444110649088493601195135817455257070962416185978584809982174389686149049542117038315466288301475260502649066331417289272526580806535936289088386788499775999434202606443159182428571993764683397329901150367439239090029389891226379075086553665102603471570919247433071631439499683009300490417270296434846940943574772973666401016037122027296717309480409154964648109531228301720547722053337503993640391246268381852769331853859257288007044341407508273700063419493600152924330036202398786197069992732930370484852270599883538745098658750142626204050121851534080837782997400730849363131122521885160229520011073796983656162063603959043922903249354520251242950468808306946605047228307326108160840676968412002130999394382227845580706011609851871072644461598272337657098094629523128152743837131793460689620603455896869653226656980240458946387223421126491977059926182286692882958303841456583237385350916758848145366495264409381038990451582714967410572714870635206838160818287776423687331674359103536398581133461702309234028412743985786615071948761081336736309106258223889932902850490285469367115196871479341953630938719855225139997356461372576010512004251410311623129869390207155989939437118320706046895912197693436335899462397434327306755206506501025957521894959629213457175817906263723233831044565633328164433255426895593098349559019260765013617701589856030170031612923353072273633995842621370272357994375527175461161883182207319896227382987291171773653804118013710834116189413445087382870091292590029564511385943192034734579496465900911958269605867604024920780845050920708066880316685526300742655773455640343726977155348337606922873178882636384825675131510195026208125678248757971604477640449910405489205154833407012118724321016760183099809462431466607019563498054620353056979193626407035919954253768594149260618193800366739360566845944470598098493526818459391023643971509137209471492586939997687343739168168859869598460142505714298087329298480386010267454566062312960028290852394753690527138031728869329403887876281875604640152877184568947777663541242236531219671847916743593352239867865030150321008017777167474634372060288317710056104250009354021377189315636156965166406165152482748039146886142041958552940183710533174763252379716778556072193870719860817958134978731293912728973031512822921169194935737154369572333892696623861395137376231247903446325784571645011729973925879268939353614795698719938743084616890252649967084692765992476692928867647748891009596378446220708656535906501754705279936443560590266165735029978389896769337695286908057430464562825506662915056884377993433348318273731255954576333956007114556517699275271156048579952821715600665276380100408511731793686630938760549905507092513595156261957934335652279535859017876833279916055916886058003333342414466151107494540574036336561787968484334118083315767986553709490185533754859533123292203056915388287837849804508851360468462005102289163645952226302893405437359523000670788359068118788098446433484149473757061755121393655949268345902882059936757782639249017596474266407398376287399545943327908105660373615548543565796969266469931465991318273784354457580073943776126386747786096941565501683261643941629177967268527467242558623671714068610866082311639586742293107597938349866458200516729386099588734034682007933893681356970388777539730809857733013588684263665203993861541127328972027681034370722033782762714485322811686993021855686466668057960888587173472129100314817145505341456820500560607805053321263000489037658375704823183316147749698615250076225302896855388424756322368748432240739637599992324037550208582776248199151065963432018847008891123315771178321992728484497017031100851356494124275412854302666852029794814533062413473729895363898564745049156338428472574836343361878722847878425011337850878292928977264876264009054459223151875412391986047058050657902707784094876025097095717401862448807373068455767800750266681392454638867829799996263468470765418007849600459084090800195105543672930059694744043540217188734645002812008360422684535770535231912052189450417264532372585002088263788774787898606535033896976763823324346576345509070550089589232174278196335531737007521529220069997266472771774797919416670728378985030282708708157398550484490713567823342713242142977804104988452609511723835399227472245863293098388006404675604097716488191409686226159453855240988287793047572358506123159917721883088960506394311784769042543968702925358550291709739594160579896423436229002055378095340140923118806825694943770979883115893407193596048674702021067550602664623827558924808611598249854520465916544920189925591114417311397502311705911759104962952093838929978568638644114467175921483399444488000686496562629966808499354728102685937864172609994088144695890455630962393844905542847345583902521995694547449844174205938777790734734424298090730111022471459888011179976187937772094881820741587226730760812221733722627191696722497525789246078081230728815915674424895774447592620291720413207982550498667291282449403294425828355542899736064050867195611867711329404191891303660392730951674448610963040474844260004482363310562699680970907247283413197781596244458411332411714398391159090301417552094698707363038421846297054565826367160909828749132909620561603207981451768435059740638100969666633591286586088631306936155046652932315043537152030820501993234781178081798577383849836809617129199420633521684368560399679727815125560147672290855708453608297504298550268840666795132744636548814261225814014940978884216992781255231541808490576207841712830772231421623892034630351300899222697607209066815166635200217992051457906792549038684327824095283696232773804122781141115945968106602061320289162082689645645339066714350502842769800579033197386425119626336292267662093864816900457100146292392627989472006843894104253630970781662089194701594672101762343144110906804854168169610346911309836252690757938199488388932242718026339814318441274611946973318879305795182307065420327399937212755793651330761897532468284502433670188342348747763915378367052400384785014998176819033844930046257705699541134808770510703242259961461091487162038008743223364455855024356299637742686320714993260543954139022454039979540725513792565964028990453539883455941036809483799691418387235571972981141172986201825790696783489335582241566569105916962352325930874918300804726395078993530318032471149129778430725721240233458551937210792639231395643589746757740052897313629739849423041810657292187822945292135474476985049989428975474367509627998277573166240644711237818766140486382770826833833052203123131260115757564453540301096164214406635908443214595768064352903243340453822058436911897211354295154613469472441538589856946667918681147291878865064900747096578340760532344208417907366328723957465158058182710591859641297445192684812365299419276664713222462980713140922718677148259182246255550891495451461384847877852554909140533174963526312869668805234890551431908674391399463961343523196650532355210829638989869232001542233809541879166466496977777953844657802747686962360172406122042175059773662814968543390891451100920189482313901109768763391027698057366111057984793407274219874404353092531495191792533206350790203426118844150313372673019831464137751754378396126721545404887022414567661208751765918984911804733971681551799880691260303127783360914935651810556448662202578151103498217348758092043169955546346875690195068082496580941329258272361506005675713857235167772869698181734036415312778844121762003319024850841980726875671827083975328909581049492724543507281224636414089765200689638461784251980013580568400089355495020125608691258829963028166980444262593962038882814386484942689774917830375414085418311460394612835204490212564368963102507597886980468399448682512521973456523459468966631730537287214348594274618242881250437723451959932538014625211789329029605701143682378737130452014260797163337792382539777440137424111440472337213750825960866893982836468610358749173762946516039285927393564108830466891103631410953768358423385570653813239608807419449139160681075597390721388207177293267288463907208580628674171951764235940637131002757451984368203446667090314991102123223054253197019040495781073595740749653782989656496782267764570029002946692861565399259259332630615047219410682377678189884064366631142236717055293352554363659404701233605871902276497490177546566642927218632859833243122575857356799921481450917459800740818102100912155710730127469907185791767706994805782285497934114664310059477863709362928027975559365741813774045667579931261968791165750699599158388026014046893980306136971494355185360768162791403596327286571751596340845291740642043226524000760809600416315729165485676341490949844126205994056338583157698456653712934502939688231684993127688509740088988752447618323772917801280771366801357499795433439274635388182344797483540290733952948249350619876069034115065576816607958301351023452463336736505875820363485350726075091431526461709802997647755455696437061051761273230024040822319052636664220490060508697379676172523644772913308699188967281102505112401203165060379182278345979072364940975595727146349328763370921937749366790774661054709727459236866321985411298525251072697693718585326187252547094048570822163816143571985641166009538269069782985705021478999691490181944677393699301439005407806745981205409799688642763677418839378811630701160526057206777674454725701598338051982564742592236144564670223255571064864726223223138325038569838228980670740158866134141524119299361185960486408659225291397842436769144323340341100741883400160902986936806716781487113638757606720973884719952710161495443788742974346715270002658958106791150361998843681129765307550443697140566714671153494283499074236735496741315338454334619981902398490480842461431939905380328423215108056207493225576628074607814829979322999880270052945110278469095244004448503563833107382544081236592436967490710160212494273875470995309459279905291123987569110800378290156415728736655833649224166551604887631541701424263440357999831319739696210361843325665029271209290411292136045179006422037265166875344720332435304840307808425874899692455290171013726235852148765072071921263591350550968843935034949727663287180010211126668077786778949585466693450163686956204531226659633165095570401378022162361467369082087913468046079164830334986008026375840430112728752276533629461180729658942128598849425170224595539179665569769114568078241420704166153908480574130477823073938128421928994926263687301002797499449577162761144296981971961315192177773281423473601275165527932811553037454838438137044250950153354862460254214630646399354568591255355171307128969199965968920784419297910179282521975031571755782042432828252875370109099640394161723323731641770886449349582903930940426568962133061319448377582033220754517579425424767245412940265597353242815304769740958005486487743403904989563790541466332114324099554365775414261046380663348956165858157745003597330301815782305279208749427138157399165244525539154893678430736631191908033097233445051895688703623150188017022696595886622763220405661426924044245007656225137089553613045279648801098522006836699500444998204573682709234046665166829185793452923169164812491013972756431903559710993987261152948971522845522869877911835691751478880575725622612300987389394557213105713372683750651599709560150389497716659580908250422174633638895692027762105884778850860212501248515223571703046511894959515438179236796943054977462235538515223519926477977210697424886689284939168193231352956055731535055165678482802528387022400203437746164542484985191649688177487312850877336857178524040647439161109816259703534697649544353923738454992210355807845663395240600994613584898405311847013679935503227989544661773733654576364999516021544827293810602702346474888099488318342180032215307223406852113595875981117449548180434789768127973860814879269864555203507121270567013111145836963608865242574640778234413350510421908501912829803584100566534631451081697528653382950792745012259388069464453570915966925979648631209786366497932807343231411583429094230342193872733245885884878202676951839220343007301966240243879888823264925745448172551088966025712473254590964428834381262184214876134752686506652651835679629084292897631727836124078531865496374604516294009370917984251174971314321741554147017445492770487952977127464744282334986748343856794001088650931391024497104760823054008324983790694524717449199818693471476335344519926093504568209568069729093216006228757903590947168234118647629080697028559654990712955648486712034520057913414846721348660476190479354944148812319441221247768553994523337635395232783163430927365708970281443282743780762414840467358729252293123583484053318484680943517783911972639077902469859629809322308840838000312025324323745028945974266728821180600294730140443394610394973041966404862783951101250008958089626550915993393248124430828271691841048389782560352741379652294623924210548331560830832922785391632801494213255715544677121961585715166079516835104342096191278378377842493296060777527205306384065189618885851969166533806566843317066151984938268648214135143626420900095816388181808935630498177633549181278767893937104767238364567748278330278895743308255117009724910260000999311655056485034331014374686673818650221982623869233777919774483212118634971596161057377454197534043520210867096592348198305604614952498676696689381148978350095523937936973222526577978672330317189001450916174286884429092067923633796059524598320793344414777945601948060098785229945904869347032710635639975964686329069525936728735966206353884370609677615028137727446247416328669999463924087490453063287164186706033021966858046900844679312534938683842354008409911101840089702381642777776456389058316552661816725225020999684978859494385249921986266666643758456892011077579535885144583883808324441960672083633945434430214361691556271927385239369798422410825975254014765241628734744216687043695735722821437812499033814228938440966389460704540130961010803180585015802198089365727326202301277375083223936966885288729514197945174805222585648790227784927975437786437427137849730765848350987245087730015825272258651275761552611537886670179462350876499198303725973927443758626652043803689733538894615849129062657337422717262346405182288471736665710033930853803270783938669802525668206026257522965185696296695892391261846816429694095585474097914943008090641347808177370850989336865791247002133639029370004925238913722781620538960507409115429977092950450845850922982633610045588486027798387494067619865648361854162577335028776709766250134947837093209027608308252943302075875237003045840108605793360805100670901643657574779496243634113478184505685061683459121644639768345444812237910084347298502566134625929250571159875080260470695478829513386545539291848310808624489294320830170417610495889640360261308609191780327813118029122735192830408858700019802367481111099821017150802804697008600828653275551442460482371732054430463722731800236686131654367388463514400982928275843823025618985959451414752591058237972048405281443337720435858336920167510522490806075641050026333639517023327620224417159968262831504319686811904207063036173939386876513989824077895358015429364938056333739396820309580880775460786535800207674357027337622530847802311252699091310641772500445462771235508058267178328001570945544233831248383324633465416693971347677136463152807447923702892199419922871697423112591404462273173816801338027456997303631912832034515158230372203143386773177193525285595761991338634148537190938331704041774664435655771670119970726038255976423454546572091332009105349876879664380370665217208044356627518869107430294250643062672973824937137582797206387992355354823036715094451058632953213470797953192973607870822335762867133050184477182511937140086779884763810473638641131842455241082521754852249198553871969970122270275571583418260274888691925708899889544035297292664167502208335852665645054581305231059272851103695947254686929629994446407998652256643862374593561923226772795628325404360250868592260787887721738180813028680289671098595037482507109797911611078677737676378491217260038873201861247715161464311114716128436880126619823675442632652355676602475401844671475650877095532982671686881779094697325905317244371728438090969606530693727233354186066694348146135042708475691171113429787542898406950745729165399806161804406377696139206526159299026678462677393278405040457265316329153185559749246706635610787092459645968969587854495142309003766641807370149096018088898217487661704515180989577905924535872135861683286174253421176845876597101940586725715039228340909385055376647106181841488084156784636989412709618248570960169236174708411979287184512329665223018827122416540952987578912650179321919320759113090780731578422822379975205434779671965418707627676421617566209303662031855126785479762814907748267129504222841488915089271433088443450526514064730815185021887435781800146428186964464825369506839291390188961137347872498236278432232143965908223243424295009011388707732066794261989425983306660319086329108341617223999516801313328831451827153641074999241538979323235018921013827600140970904151378918415436810707764122298659412290879430079005802295922814305732577967402180257040097335165250241889350558112801430177449435396286507424139285068073947461669985578600945729782706072611311748126454488218220874119630150372328817804839500240032200453725707706208871906444318511700318554456559691079854039813594270833060742824286600696176306297464105510939054395707206278113126728442119773120605710944116944306761269742909779839833390671397695642283593977795009297243827302424154329206712977403098416850162581395605347104509014124984660395384045481891364050679893796230508692497820414752761564122057291503254713993505141194147039336403232424797404936409762145605706774473403616059246905384338820569040402648618652085525561870106155547533186554515642278672450429204526490189376235303913357294039284495780898159281086748169243165984235995068990683288666016362484776337866222241646075958637966458254647179243796888824099572737372749788739759976467909714569361668363322466499912420461622812901812805409007661946683199687279754134917606576377563867515267752905216055197526102011443331841092078236905289826766004594671009226831054375591596038090865434326703688363643472281995797367531686544639331409749314885191088286726528854649292070441931937409211241997383812715261621671889579953586707111451833379766548142253287053919615736824785403828382781671093452110250841185434938461620427585830587189686753424266230775987367263778729733561105496492123828779271607938293248636710543799413801598673603614259546535192013082669885512417408324872920392113411747752893824276111555488461851685383287644509170014433257192614990831181537855581465239994598483843869897633668148844859457639162178509749085569656585228808184890360558160313785502596417184488825761565952269172411731643759127531494900269069098519200735022924937408285473318243011063752018658183803688672452623952587426283230959033148823233450106312717879599764091157930257255602560298865760671879345954446616837319174332827940493725568181953293977542573574372073652069911007473569968648753355777662069858095763014603770621121211702934530358368712109745702586663375226483895060232323864740551606421544557820673749920746377603628816267705147111221247355765794493970812232458594545892109690452995629463925762026783911394236177621540586303552168332618168716597839399973044366563658931952655773786143166616546573832109401633671007366167274125995384534038402602404160853720446067936036785091394435353479655206981475448525826503034304812286289190678861592012513956283135956363924981741489045364233842214516654799213356058465701803696421347740832310083708526817387938406464904208441167312263094605780968408834399515269051278347761029107184641201010357185565607831629830053484574013695157684510979109276710179011142885977116310391781396077851712966090472647372497139823138689817197746736631465760908712604828783580317595228113025561520411654380334119298512872454060637505265596610727086778126364243124077862689250079598881242071739892749946933652202264487996979933313447170586049932683652013426592544294402680692306736694773553968083330845153851164043733976822258386689274740209101967702557758613722389664180465605538173905479053508497649052961460149228279193773082029479503585352325281252042217951666031618164904941404745576964765035829908744802480061531587021450958880882986263477812801378951431668420092493060847700531854036677066468075399532918287150336270089261551710674391097202186973637508923703545923777788242034823765747314954002852371850234618218487966069678327340445210492294269763137684157699848219176135701825953526844980998541186080780689251737035115141477681662748052188445734042363705086300671604935391930184049705625941509657250916128211772006323941438580640235155918095616222451147729601902093424967804647548020008924496177657053389730873361322689650582811811096136220055949518285760765981080000789234460574664239896550766310567820721163167565402105410160022314105828677142807451895747000344508974746643390644402603994821495009227418449955819592221161990527640588994884915519930138038881811576670927354078910488388853208902244439902025175098262098406438596722436959103358436986979434397102098678898048640481507375621562548086688135050334638428764447526642255390949809474846929071084527127905880003065743414861221610941518163799056959140848697275591593052694140744325258838159089842560159318491680611770756208006606967066263832743844336461715768312497214566554157409201704389663346521000386674183251001946122491963968011927868938386244969826374240999793552736601244454578497510906471352129133106287001813902295050962157990940042931198269375772384282755344850199946248704633597432498785714786228088502969177698270754224936697748638572679652274057190897277585657233134331660332317912043657898082655859801284198191969544284706092339593283669065792246478398120648546445941425907186735813074062069413838569744787080615761421681020059981431405866195726763845700862556074393324809146243195865785029562667748530613999163123017661927674145334033781075728656653367260035854571850708876897181950247064677933440462226304284915094742399313260682765840966177615435479704939361010711833866450661137716309166299554115523742891389648880099352627883790211162542039789176976255477099343713832701552507498207550697372867338113416559348054218460508553562896515055280590795153259317990236343129986345942384547425612229045655096181261188184180485247268660159095042486649284483131682567736187074130609940972055034845414676167544231209172181839950556799951865911977309861000261318443716659802503042835356790329005543693317189965435965212338660276491409470423495563588046050879604697667593850827978396135337247589469952632825736790000193744533301112863445607048660428266396679428272082527722602905703116094712147181328630397507005844806594245999471295529811061578758639530486659324531673461301162509965365792145920716029249502803401754958620598254114378379878786411945316717619039916458878025050328153551606134651423043846304212245976859014081137857011764369750921559201514970675536881712337182506530772412202602328504897688427344760880521382455462467957650119207280251995798270812332130239702522933489013860861667787553057911604767062843731957796847239749962787407046734792436894211920833908537210452470407844499739007759324192481823751374138356924394853615747421734714404691958226411006427107243820484643481332922029132235644965403382432287873848755468535308487571512135858677147033899906923333577476518143372438844059807617944199955725807161342704453392695737059007344776464829507025650403796426505472196977307670956746052993419859914376043065555672066495151581824539713843598233054173823648016584383171975374832433719307146959521123417202107045741501290899170914855177370488390409064452355732525085583493917549293239636840130588764880670888184480565512182234133617722818031923958930500646432546519552212210916976823659677476437413634063849200587572552628898149372805430680619918271158135870562289654760217625127144497071670607540593737597510241493141753786820026317542978063949665639878891938016084950943302953092688551804023707909618865752389830219453102996091890455765204801906293341788146943778723173284889527140561382049958441536123694507643974290355877360331789794816730474480269831789426653863639088881377295836125059433816849001088706638555361612597862083625645288380869478584019852628337184856999122831031132737133166669098482600249977342782426616041072877987747633585969650561950616787970870867619147116401199887515804017475169698151811656588837489322665519326703644246593132806660622670365865564302414283884395168676825546385049050816174262022630906486540627070414797316290963324848704728194659646625866264385819270854114831595503494310084628049058385211913580874604626379089439884038998537830135081323178917897508997045790611765472983978943009165901313199167452140716397120463901945721051745307642166237467938584478632413729652989792503886894201102438093641618471460879889218255457824078503310211770445963287426915793271596538657652162608781681047711382259333130272121564305755917907852329590154240122762419231914595650511056672101154561811432395370254245897386684843427688719531008929976328408157025008280949766208589011881024079542682267185438013953834873743445071978118122202401438404767933259033170068229389204927264123007814567081625988851440765686425606719731434044802091581613624118263902801462841688579371982559893140161311975948416061690974681949718718941824374665677859590847443105775477001175310850295118141326916087440376549713513598072351429396639950072464494712834012852517605187597424991481378126994809440244762315399629851175470645853594127303805176192387846500750521634721403061117967647927597152815932679234904069060430849426072738313193995236226949917687297487256856028856538932249378894069117723624128012831411762030582903494683398583090931495500083637972445519883508286073283617685481770441170938241562235998752273466934080018791467209358126045657073946228757868226576854583311962555819601627877247825555283816157883418515363756912288835517997185749633274910708336541556322531158258162329261240045634644583227083323233753790156676989136252724461384236099561853397672815457394841108201414904203181371881138340819749669696684168660502468397408353442178437349256055879507934824914753145470953718411698074150611187225108167049743213070345025519873013726698056875280004329594806638415046727159393139513987151242247142192129019937422673174052916114788797680863533383232643532998412255628996769090674279966284852200047100006615579065733631664880541619909534726776433164168121622857897225073925629300191875808650345173668640936796117320299765438079341021120599834186742075346261311214144603835780860831910211168557861713698283053247336762024132622467819606434369974954511880941361910006694851501162869512760539778901147152831092572733627373598068956938291511026389692797191357799884269564296892658663523346672995788250550827393178397305160980751475557235787618056180502491108357042435942214225497572380617795111460874746409581296364369847033688317281927014686971313855215789411838062704093986440545729939011315718617548627425357490777159958239338781161731982225766681948252987854458505941649331432006259160826747459870409418457151216688454000499775595947420988476117260611360404810553371769249874906530314496819717424144462634437888298357269056350017179565009995976839947678573442712721783353889208553331634991762028140153248669011836826579639476218079932412812065083821335697537047155663412447588891007283108768337443513858147582120472540716790932522391960256198034623746904563792357192980007686612189666965727684908344071590033537034057300189788196321163769560282841487348627309191066323888282846801629100010268313823491400587868405735802197691620007298321863743435423190672560443659834560137862258310028226851708986182806815785327970295993396383010557784796862403493420527010958861906783247817330906433106668685697066385522429742255493748642203819724991192037430769555682253503511075737721293331477748162294419292471995271865656581366720366216986789112869624758824900013261105498699239724664166005272686752140554711156017534623039915341400338570471095228625055203354869121043838795255101266753642724746242018159437212649002518121432662884737317192564816222170111345279772064270152118197093000705739345571357126707932381200807279127792650348019149931573536901337450425330604980780820268981278203435705804594835435848841351069700760196699734949265552184470091518635392208149190774079414419624983933574739365799476065932447583537253040151808191087290701381993400300589600562130877147637966951769299123200551742671516718712207354505115182710956715523152590485009283367286941223908935219484057769724030396339024978432675107062703937959017473442244125739297923267689843993377412349531323830762924515965701016586075991039805723159477604415451956280168714809825569622805354349505689984253127043836805311454420248659136603504625928518525111248613579758110372643582356418467555886113480173684042994727705579700208567762594833606288623765889673570291273224032687164041230933883769057939713569748261766224821448353331928415401295792868878324690625248797429757903051432475277372435593652206840895898463295322248264219945625763934521850348517955213112880188246262799239131656536250408084130133447947141862581268400369011192499294029079625012970864727920289191976650491893825622909866179233858591664796085068909452135568795021677164765564499829690335309583551323803094704453253712329223526976986316164360484745636198614034493843861806119510010138197126039120704458776678430915748156681033984972148865190978603481326778277859808537333972653374493560694426302399495846928369475275734096166676115399033973867821375234764967950935832376375644374637319626111194438772103134919191434352123952356565641234145296806234476127889894745903879711329220816100955242347060545276753539491704729249441000356550168557681880143550665112718009253956370483410605965784194496604000653211054046717233033746958018160287518218685554882794352317165462619899940658071269729528508812808474525176188678624005933452940823055136745356380793566785547527337783837280158912703553779519863541618831918213328782187010639929808682445321676568991908816382665476713452919062235756276816939278493510180408913437211711718459903848402334887972504714416372483225869830780663391065723102936931281334790229380425731894310188627412970839888166128931880372888678522177302462563827352820186512157846390060095225958076455346388039659475877918468446676565789349895001591241794381014232964622741622898334717609537240933477207389448437683430960256294666590601682010473702446208868302181736618608316582971848775699673489777932284889945946551868993590578974138431161475713823434111722983788510893848784881605602392180244665410880263861448316445711531853448568521258540312742774940858923453075772774268472182666363297255582226667170881877712877148723663567347664508126360376789079924305923753976080848356718466350641425463538789788827798894535149801849397937035810493721663394444727706308502029647318268873365736322546129409812214416611366803469533459549328463822101630436382860055609219296871413931375402940058457077357200096638210135830023053861985446998134692129367747452389623599787906214748207316829871895626055750978018531598037816522621560903366245502936940940859395394738765717962589256081607595119933927013078348279107628927315119713055112697522109492831492465337281655154611311164605132025884157964548336175123525253846425856322408614504154826827086028441102165976243736707069315764391526099319034100657603069175689251760928030587250808657177613796339369928122627089584864037828293806802215388514019013313260000377057855823634172089788604664665504297716186700497185435473553755572388779633438224309941726632835670753114142399774043536248638797818443149184239343120502722457403505076269582836538588232690787263475538520506095207494722959053092930812263121617198886832925521414534127757684461233886535096893382311830302146260026370406039528933390373349103999367642429856660801479930408829387374431410319254363080729424073795388515818966428370684718274042259390565390012071175253292164023522909193821210451735091171815876271572086957748910217592687732323867139480728563168419843232904452923782476382089964240972418221645087169315054396922805797031867830751087678161301862973294006292932888885160804194935697085983133401998647461065704980268452449303598265594300404037324716469731485178110342508480026971768939224581274034155117477147289539809069023202241191284357339187797720342444386916091782429551522052299255197396614036471587787844754154555062423677979445081505664877441596366210207015745980573878357188859068881181155485380411477555959602402605473058913600266133252579742573645579565682533710209000880267322622100742569285469923802254392759501409984160571616342656632145850576236324815851026709192693529834639855139712410050775291025007218417767527266408150683380913771669658286354883579326756727663872184678407525711786298054146122271089887372252487141909256326128795521980478784272541429807273630890614593692712923977208225768709849155701258930594289464562778028681604083769819326141242906487946096161455038603830633118203209779376353975119747918803664449572170233243415135831084108679331142135789041116380774045854965711059955470077371049072438237492217470597714559706696773716411702457664362093890954454087708152096173391256337233671407671604533526456541973424373268724698040781300512540708246298893550296183511362683457435261676746828694551077922510884040421450619791520347161535683118659370502435979796934839628336102953243501353635015648997231354220625187644771833463967101729395485072141138489829226552278890948679248105038678722941497358001358068169725797019553058671091139546576595006925583011161877074039370337042511761818024381215335166585837338552739726334110753426148194333069969497139975277746552552438616974147080547531617471813490959221599854945618370220461078370426260029573728784671578445291650455568459776460204450119043046129398819514728169674222309463869899275033620907655276561145786628238291558792291325684013498672557734494108617644483102644512968157096919356342295743330196486541971829942894081783592155455085483173325403640026996175965062974769757714071471439897776404778346907734527452376597913570425983785014301683141131429828718043715619177066107561264027035648097651450941491695322278345321611613639242671830242654755786643461009304066470988220726119389904251019739611314158928345956965815135163436310224527759854097192924357456014432587573742562853927030376432303114840793798067481362506666965197903345808005762632713448471182492367145550330475474375671083038684540646718461429894145877615377877356544211486168861347455351458261347219543516911541663349517201196096922177996931065775538468570734110879170260533049122115675576549863582304068273840279907060946523871749205606286553591924994008841366948690854674778204145433888061662819184181996250454393784326624840380817530383184510356689528320322504690593614517536730519974593728531376475588741365466598163100946909030808197070606841652013269851595638631102886503118256728514110514956540882419631744838664292056296102950830898633900504586775693248180130362230707941377107401005531097411178239545716638475071281462022627891241604584022854135113831673200051338719396579935134272716695242156444226059300856476711213282241650524850872843023233837991608626933142705539842245737643644457695748268833358949509887709511820799383714315223435504367383440546339009985684344378112620374904631499335653629111452142898242953157135058931312007400116564111613872433931894861097746691574105608412314185798238043007882934071505149222631717075069291261715093593095486883498095783684402739478400449616776278870389027373918088555467736820140235852141315990491035987969444387691397887638511274346505372999685473558390219094853080116306736335593554752279244269508195255460841118274291269231428409419294872795435057283239194840473845830390079116905060536052248567702227334355464295147010397312155244782912240918390413162542765709037547549608269507297668805626675033789905264262231156397060526103002429581288710061303592875259038595341834390376813024706713530772180665398973342594315626959830231427385074898624323390429548097751799584537847986590690440299290275037754332389823321787018882765037214658317042172588968638732209648884927686336366733682262259584147450677211785194955081308833920019054237912527369106212647197792509015384611964160636993822263925224226682785718286325487591457107260003807447265491558445982649662721428528260659431878869383278325216666494008034522480250143982264968804432568705545693772310298622177906796347628767067332050614071745542122993785909882129364057470503327133892385605501511756493037936447426033578362637973868818953073360454029377192035373014060337797631691778640839803600548097942219402317937551048400017496675339896856792388290364795997352015923160846285947616178926826327331215587318062551241989495976944814015892114908253993763861677106370055292964460622542750150937292237319480089289282665360305569366725592051577680879506777715636000821228589855752439487461238923473669913671334877179652642703831235655167299423230800460251232689541117780068340030248203007691845264420456094873085595752445460458889418741168158406507803143943539788167368466614490570298057324027365350266701078687983319829460079487249741622378718033845247034867018344355044916728728117560218926103139217721233184292405097009401154564615476341814233764805106253160037985493005626475317571660290041654258973376116024252291982402867603904581131978686569212051524131015431320008086631619173423870504717284492469762256241672920418088016881503927215825018508114578539045991386325286430760097995129767581285430722015898138693140106051472715611462425726080761750024663824108960190591585563911884829149624195559597094322239618812418052559594168535623065756151106340517935682119451425616557907067331707684665097431465569963963510247996316288543179395508077803215902610426232209084436621389788738828170364930620352164125065268578696313349083207251584860689026407083465652472441770123672873480250879287433952177413560769757520060782539076110098883754876407030370128369467309143697391152346513899118064231001244209544066187487148603429721191898604489460661792991469062379493804936913789970298153424100224285866803197330422290636119008178141701910205553443680290404294021185435452510907596578926045632077884523854404784045539604842397554590251987238029923822916657251187782241376606462855995325090454482222115472896593170036494848029000718385562378935230763379404122425438760436957240192221427702952640252214730104513142658565011714705913869801876963574833702969922791466587332976514696154744628854481701815067384885800180018031398002110806376187704994805739737486635876831156882100710238235710180203690119199143439742646415694381504227231812376442486909506880843193139651700654182500873530411002705990933361411081255658499521575085149044151722818924930329577208793671052039746383096623566665567840779803467525146430508619445562595897038840192697460683948431804106840745989201684909773269872140094478075631885525778962137563612324139216414884180218947850979630480438328013339212218539427951446115601158842037536559391355645049230802368538917953466557411724867700441020046043708763192974690723467918606329590958251250235542210964716365280581360327938138984985411179186030590484927268484955355022950117757900862064584357214575086382503265401512173822614140429902128770679034714102700460568286793943634906149522615651757476731606392246418004798303554943489862139346057008174749645940917706075515892697413245731989478987648177205820356561034425816553914428450121030576468547775277684401425664630696512324921354695491083110792190694760688051683639928713961316980624918238019123989807386302797539974639900588923016988035632454439911416466547158589657045746355405179879591143471804906782700344636006763674562161923196050209322108278535699239788074531061752695260134203907926834930525744017442919679695348433748361109600676600653234901978433068234786272842740244803413789369715651295211719308927482121458643351135374441999537123431633629614902647746468698895794946040025801943485506373175080612586178451938768921049363597755022633250325877183734536851824863706518402953921742592879822560363840958701812252990427813854347373478462520664961202206026362385956349268095045041223683821340073365386529056392431869934260034216839079967334303138721564583035505009885783295156134810386523441350839986713165435497685554481583726605981462174673656269401486063650915740655613102758053893623404101005820713381997200153716237185889934403951988352667087403552764464559487682657342996766657529084687516113475883520851156387548552084855764803756705464323707522011173717281987990592486076967647779924787214469992281182577074645853000415219934730295517257325316459721677680490565092281262597252566449941485658974738178795805828432547600234161878733519130070286028748309471611106331429264188594652620069037471891847565195596344484276570644509564789490744746497698833399076940144107848097959046168896817725109963779303796338026669675200796906686725707609404877492521377349487269201369630963611738389728640938243604773433494319027677827738399835982076604550056685742525868897188692281223654212012402121165031476441287762139855307365140226860670066238944476410106407195503766900967952341477103215197410693571257414027231041908789346312119637747108174945632858751462906717237394775300754057146334391161985796003377313618471260214471998768856070498422234442074135499960289635200777423208251086840485173341550405540272702495417074177279642197568516590264851441062780288772438570267388631127679740688469841205893091565198215602834767558822811037541865295259587986598406418704147438397760432944893448439162593170212020263804876636227981257252435532908220219014908405145600734653899270865688270610518256445942325251185908360592565437246830491459918476873708877644126613853965757721660964177853820152435288480629866666420228685437063763370174499917980518018369914683463625187249666539774305621256884046399013037379493325021471302339940387507606658910491933944677267233266640029007820396325310622768276160234879794723416624030571542579999448474886033135679626291809187926090776326804223358256996015890486612721179802115765882864884745396851793002124829982226729688428340394623889809667340911757551213726912521257410241315614875083284916236698184905783333395916217425612780417588526327334670387127947916565632646075417162221342975669414087960662826558386188120552326721172618339328433940157856662630528299730183173786289543437003949056125507415777903590906525310794917404705524921775408531494698765127520150879209753439521322751131515907575781253809883865057435218456072507679335394837837214664298085342605028519155278005042091504237328964356838648389734401311840473977434605304162348158368718881131456811986041535996715223336538488949907702313241766110536973880205645149133282622399006044862072976676720887921040410315954408754537104405351675493684248931224168363350849754134952466961533933038053915442326632881387562853488238425193061462848388604358345107310426034361313452602103714743057711819918666458289029078039422473970165385600903869330944404942971128008495134121108253723727268754009880513085645253230901218991062860828755434744274978998695955405686789936833327093022566889650418317789360242159265452667974793009066354523870612034798693324494925435012300811039339327328866566117370302488554240840341914838249514757663926721240765462263054633818308662479908992059516242284460040598685533170086196642439767485627019848094348327222640784463314891750789031080532277425771725102845051568166361383343513750476041928133981653498538163060754311675869766548075311334295914125074867199266593803929477682577349943260025082461760969174552810231663833450829630715710619400707516847818322917587423228808186538087630309833763829863782826199237401126527117109752429658728755255878488075729384018412787172937210242674253499544501462633630210795488595170935280589365456382176978632226009480285467959643172632728356715435417279057173810028764808333617180682100823133043143949508417430234645022987116640811104290920978602550469281990334757156398454792021252577594933393036333051199926740811270091920099042971732420301371208461871562572887700504298661062284538610964925855164924286505976462200101353390544902965629509598978158148737976361396608865962859378681755615192015453523517265378850468363941139340987647479418154499756425172728088521355031084868826255684770102609109760753714039752412329626746928406294433838115407871529027825253796402536850521792875226406052324529363448629114161387887162176579284794173227671851313821828803402760980247069438983349485630818332720898979924994373201969926697282576113692640668109526649512788021619440261476613829373054554217345416830063228314728004280833337692672779143134144538808434655473820042814919810370919042434469402443003533170773671795415007417488388832957594609575636188376787196934643643548242139797307094640252838614545835506921820525704358424248147455022772266157239011575243987404601604038999526313276547917208601540328001601689922348653152346070823705372950455531619433182902790683048186369565122538572946743066299129988876418655846837070029504575776384452038071102065049497018523450305265168502985373024440458096736898401312619940770025432553905263609466703703176336977182157608735837901329457048731970569427274513587776783979993990120700360880615265540776699801463130820820355863482002106853859578820033542988198059215459911646356483831313581849548826129134931458919146750361695917444434602311143466195183663803866205183512248887934663772989848241403351641280178284885587147675028283540448587160770881132807160765402546449541845662342183522064480203413699405111344552832427586879526613101939109316010431027198946944644380640670227480422907024847309422754682399228239260273951678510999352916144486276534497811746070258674224747002630488415561648041236333570672823650293795115563703999429181682366710768662222056469439994654578731333532626367949764798848294465086543285976268416559232894153011197487193396939378556823014372829307032654485630768247683214236515131439286700942113266151299659215983488307142483912490618869807481482616443258231604977199449543569979734756838540745956403896948353241092919544487270714728804884046993380349047168965138466763229047102522442053044573804390235094922511343366660731635414191285005042909450949795179693389896631331852568371408130120304849496100251664305858252064643596929686229795091177352809088734070071135077151844091358242119054345339309088282624729857308782185453919703216743785482240831677110295459825410655682174827251485989333639560164409449130526170978822664685734206936203429135885180722919759206716542497705618304402017230867340134679692940305843194393979653046335010918095639540787394767100325738630385753480895393007034743627903920102881213058382530043585184352194679494568287601242163741193996205573109314551326090449748591729505024934309970876436027668640593694559480680087641881993852179245581596123352133925997882408781607881084532719511942436790094047581994148506769604954263684708609332947205442910348342707998999863833895197417930250126358707485137593621734975459977246251581726647633035008462935183251399879910355581234853765256823917811511623368263448356437660012372211885049755020910913072810303188843249282596160953622182736611520959781233743572266488084112849915584007557663488663418848817239904769307289811775850755002978088321076092653225323443289009028674608516560348494934724828129244910840691892138176104353659604023777729246092107155315760656281382523381403814531005493498605016629427028567871437124534810724512032848411603439648842919464889896261106209354479192438284692127715326667637754758062403169051045286980300591341433602600969031909456631140009541696454025357083957185889737741019318440513573780690538822752005568690451493154075545787645559969137413897184058709814791463750557361716080970499844886128901764833670736068038743968224680642145831932416086875437148811859415180861613214508122614928146185068843604042902443143963188007606140650353651682096772949718148932667936025508142790559073554977046945835016833547297355413381199321778569046987894888658081505344908931060416689847595106517204200865208884501643073295044569808423637806756140431835424253856543452302641430782870321090055258652753904324229861608131415548896482804094625261077595959820129487769398072868764295529919727419289986199935845409266005641412858605040827957716973745229283596959365625086211139665123478263968658748251983467201763214987652814955927216875194103451391137657754648522699656820951596807584616642984953927166472805527391680747884263957061214185015737090298899107256563191228885164579449472576044725204607081974921087896951906251731129643374529073176010676471103596876288260665667084248953310170099180019479702085771051499254058823356769702733196124150368728102156210785370221414599182613494528106857315875303079730033461702121821875924599231263693763389925809285920725621170373525877003855987599106152601269295946940386621768176546440924748302255412656280936270488801232766423461918736540486429968370168987426895997567018974361743211571918568395082305759455512457553941384704938568129887363236161654600882524949731892715825855823343209496173654731088553647385933536292475760215804335137585343684176466914985956174833053932799783748107650446180702343900076087737259168928352384562385624571980144403638813745719597674189743417304327913818897339019497257374902341904021666658549721998579778870995712468683972807376379399137990270912694955101491473648212569321882807126538525141875576657867561722918429634237028067732608834424056936209571798064761208047274813553127921536830791508517682965779398861790817890024427932543671945715806203709406918199183970268155069295525401865822143777237583726789294451855819681082883780481116101199618383708204365004618207391123879525797223587348689936228665826172523952880316947845070003961363347109176880152626527513694947164905574935297868394946721192193425294008999913269915643063584591742617305099405990320764598874801365622174362059359848852544022582271694005791773908545617713001442016632911422548782372726104535949577492074719075870123618502098653260438388732505167069615489344242769520790970778984130692801296243793018932623567593812788043618055425670696750415890326922926303093509733710323036016461297015000642101113331892984173810182059480972887208230509044463945815285375861727744089522833773419461998841072258341087139190820074771432539592420503054910381089609902895092970360865447791676405809948663714151806789852577381512170273823265769687845697192412258211014019528317781988132667710119226417948189254231062329894639005863602726575495834554334280967938831205600135854949404515243404087651781308650298244486790353486601321990630453818419144109583482017258161423773808168947363320131450978449697859618744503922716858166184454078951096552811015687024937599985637775640277011182360400230022825227461460498689051551092716730379039172037840143350490165916433620732721357965114521892879700684859663007489308941531913458828220786896879153106595726025325772971245671232867289857759479780158197220737171278706568938031669140833856115463634225132961146197412024367814916377223510619580316026257231273312285910353139774373884255177396359928001462683741376623694482015615666826053650366249733928808150785065300477481644001549422705982837167584432020864940991725565185878501601009823303755128690088399135939602638542871972603352109050148222502744122588989618603904537933767636512665462592276638893871958640637318017252806723391696632571627281382567213621768806277326650314277255681818275767171907494236507082731647049604987992704410604677468330147194443333420471782244195730401898802389533304594343029887631150168225607801380644375130659324957318381192770711236517504114933836994667313871187482899879514300385895423962714496404257301884818553680194210008733512807565033806702328218796479418308771206853419760004399336534720781434576572727887843718022821315945333990488443916573531452592459838526161339566077577261529950322129412529159211813905487724626915824337208797043107231258096955249590978295700481910130864608767502899245401366746035809345534572285037170413255595906692918985914362054408494344481994700408806099262322525653718073071161070831915525565530795073837558026861524350446152345351148075216705352517311831026641827266623349907989505955709590533881288584203850064953510212443491810024821080528652600934908589856670779183134171850805992373840781243391870927868493588802842148452120016287684039597731449733909036075826653785239606221741719274272635360605199407927953903902167255642695084891305897833250150862337994729753617256289242000974408837529153199217975076907608150922437970423757530468953379468243782291752175161349895013128635580033531320825560182575055553354602395190914489978769545234522909465849694151384158702679333246872515482308634012499982290889239331811141854592997727052737207009320377343792697697330759175313167002784866219244990386929009345869233805666413649877725708556115058647729292090414292479502149605168350705389175610385920378611279507895594375721629174727047534217287374515607658442166776362411375230297100173818749285405794980204567631407120563612833997130987777300510080261113606845456386719237711852299510554412228884878812560516597456556285849901010116787888926194113067856654143821041308547175328566492825423943622949535360172987537942170172162763878855370142219934148117741375906054081608917773152383224599186199178489385964189044073580309194876653711698071901479914719309572707841589843201199825627598355254714374767655461580298695676580211759667010003618039989850900631605112533548864140858102678012568175606491632507307416869043716165141760689926620875310679095989392937014082229683697022896305574091506675071259634731273458015094939631897426644831601860498504423512953806190046157945775323930998990246359578954782210332326421466380973424964268521011209549289867859081467796421432324265038774925540110336812085670178802816722800158996936584221658557529604782109567477299234731279417344006028844767052847715153529802400877489044273334409054411390758465962063991600829415353125883633683297514406307831070862253370543077028856955461935555405527698374255389366545189631827655514309721898880745689185078663625825557245197268990072045253263389552253983869446011787538886330825973566795580193936528262791127320248846934687088409954257635732379406631091624884470988301292064358662154600868025133693955446934678393583834625002709288022711628713781236012565474232900036704878615031118710004357335094265056841709347032189122998004251893729215294605678385703865065170828677835736743541311529256467058622083438365104922735547683391754411416089313965595788538030286214919958150149224344381454108130024712962956024342366807290832068117950891288332785071613905090854109161059997000273742241877025768695125540018567533620179867713130687060615170683595069935656289781867741080921433357946867416874882866273171375074188036578365777316185667965366933275058667854981595323836876617690291708191367244768287417517993284428449295440533125252117221329631839212485732403142839402102194502510929091515890258982589393586750404658214945371323620582994079128325212055961044764314286204986863746880486405590198197604836650644504281718279261876694963063325106473519562486389172966114772549373448224117725475942968558514324162353839830618533801495169443212644766444502739115160254415940503067712818561793821693791778154186898992130473441968044854844573035253302006509931617574488794180306238159428078217481711099868022941110526555163595427636881017170623608908609188196465392603729356622149773227643283080738864887156675019953556114435073256472592401654075548219284935871027985358454916500550093262078050367303204472525075938827029832573067788967086228452990120034048396138396300489496094897442398223036915611117386034914593258769587570774148464984211178699808261569778136584541831734230172505155932664709324852337257090431611107698146595530540463385732668122953449212036961560958414752696196226894747227022066535671778663215448440799836781436918807883793115746223763207540479514303659643685179616989247674156714739227757675240413196614166634396679651101202610122023207783635194181430394803506877904680859840612587238168969804103548293732266172208412642194236389221193349844062423157763917318981999485331338178031934858667237218162531392383629441382326817570644066081481766564669601338621383023696684914319153969819676821753110027483469762798090238201666958729991311090539888791417295134174462644832889236456324133181224985727677110999123411022236737837312289202832822208513106334142460978323832943529368973181514713510752939661076996054380550568836717462760540648920479183884579781578055694219229279874569819525131847788706092095945156212122480046739921180403412915089657200565062455370767458366998341067238041083852748905398109127538650853832209352385334181269472124402636093133930367940677504406095762279482177568082526996132796667049792293295391852534548753599472268418524938797415508327130984452097429272403090108185298040973622590587706691634888062227939926628269353437105083226264166643268408179996500108831455857319747687751242081708590478058608109933108630961300908550025273021300348099763550405337589313657938594151629773528315773189182078653480201932402954957322381965484769847174829762391243675535689595525729564522248382254260017138143727571952513748298399627895756095820474330051682538964820152938852198722623725391669391866582467323531887073907115868360513890432774998118555340645715370800481971541298756327245502698526051832601745418837489348981132254560253012411575191822721069282507285268838243673676158281806439134836228339361666366436725729139661225654613388293212437627692866710358850049859869638650896375401605063786116239349881736832556115545142492403593319943935937034177416542376466861098543715347396654871261640991422883290148648611404557633751436163625780941043449787795584508818862638721710181595791616677059840975664802446870448553923340845256220240809655161774226756468270916346411862924341715055015367448837828830761141261925670887598005468491518670307566987464699420688472275700055489838019766469696356187763895047393297730875546115836066193903354550336673555239701814397346993646820279108786100998009066812989407215039021745239448618890659557828013494031920471957583394634127335409406369081940620650045832035411166206836201677262028293870085214519860493153213937119606211590190691057907942716934098281262872136660902544433522881247118861649179121586954754585127684907172710938621438328469621835716963406964629198165043059298069839989303158467906892548753710078429283747496172578394137797418956244212725298759733472177939149397238885958047208914012473323819437543888822330982152941216708761763907134618185485807786363117951573897131162102580858647674271206863251534603153732828923637004823997243692823750895105060132103976784594779406919747528514855010410644652085403188297430969209759746062244144746360586143562507468913913741725802708875281426886836350124165895123505906483061091099969227229091995947950701412722790064250470899109760048643118061015509907267474370329658519084527990443411278307725134657639707604191342698165171267466540547210942529289762186882879209332824906960487153896218111772158014263790120520241985649381471778429817492906162089848223555335727185150175395822800978826215695409691274749110164899725564467166740194024213504040816705293969855712215891542095082360503997815125857184908952846803733163622117282769402094955889818547023137774068934792224107753113371140700404702823851166197401458369496928766843605118757224202143811918586117745098529454889561813287835376673956657619465093514533505349871375689897875438446529945355640698463787338972800099599587501368556262432142741801993762316540518653920827427505145163908473062910965186770248985568029517798802391279775536400016561126701245792798574007894040691527178946120636278565206208860856750810086470224906620066175007666022647804919977239507349797621759868546882044363982530068705432325923265518104521285018810249834553557007642297006144430594777478254975416842330308529868991503692096692311113154748380486978885676388696305592195050975530576140479423831760674706948966863618692595057895539039186968813136589244572688000281512719057615242001655275175030425710847379395013577510033071890183964698688341248764119597213418406275440508140310524084698617975875680793256005323423114038837786629404660273604426715076922763967551942308078615676443860059689332837129439261441861766043217467842608081961480984560867933330112515058271532659029495466274496210671837719990104450870592697865860490361480477963747329322716761089165790907590488497362020103165612667649845050197389372989958617770141996605634668143961016108708813963088903139630803129441247637128707530357667742374398555490354378305231486237673184082304026024969856153421945626508364973281334276129368085242614808263425790616816170832843650891119910462535429731899821615021430515690704161048481881619646268929996881223919118042191628007776737443004898943474373047996219691051168998962286742886143701504687519416039897277540876827983143470120096369070120380753108564219289004801953208645496436238843529549174485210696761760328972562300770605410925135819755795284872087352006161665737182747423028590382163200396033708253267338681315729161269011412701950543560106666182053660658877069817063448732102688142635707346815384005476386418912381114877274074101605688413121188316741256247601655235771830605681290625939936727208352337047864985586103306924907611422973484043206129755908097923791501165872890413164263759928579766507192378638389510891708550287033735663268019500635536025851371634696212978759737742589754798625114275226046901875481647485630572473759865899834314603229198453395286493810494367330440726107527667415793263025234371160577733929758936462326591264245989661368144037937166167989841324319753169959304521276461936590744345184697105971269493727529887266941086237978408318015816156338650881635136882873395655707976127230527601990559797761599384601689390808221700877499336560025105312621369467090063039423610772026718326232635400681161965956377872565875994102291115888228629330518184450405736029958034095848954679345592407561910434650338509304375309635614250199204543218391247962519033116084616822721960308224567871429012270472254622570965895119890834527880995378696772917242711347323170378180581641943956428321911908781996008478948576357641748078022880255520797932248452023607205838515333605823396512384418187602060693993399508934084401858325827049078715508430678769632619329536767958271036748035102960914168712425845698659609825048798310604582354852419355332105524329074106638949616254129356176500984046402931774099920960954863646846817618806334043028370362722207801773046915846514996830504753957226253300714326584472710187259317511546623654639952748334992981105250564685732432851655116643156348682380322457880769522549771286965242769366057451118415676642625389314591170397941617398262093901969428124628589443151401687882875348519211109691319839069712954273607998959490621991869457153105313427732307662365941889067337028164291951463916104995596562319967195545601767070505046745966742266875420456806640582844964087822342885192719781662988004170733690590108507556289760007244001750151109986734947080243928347741186396924578938705967283008016857632736281973357081368840164057615771448216202922138574676346886782419505784516790942689123076192228592416305603590517167266697156180082661490616132657942028841394476489931394013812269261421261004919810099395207304370698436912918526346869150879426142963354195695436374838712536851743077277781607609052579354559495659983306081851275608053221436757806645848414918123695832475327999794562829350248049189917675441327529043674003730655353309075933629502038587574813680743534732074508174388314374732598309119535024947882105632533346476224925617882832917561288593575304868952013985948978960661355569441583286335138651433604646690606011931276679568202330415717318971715994665527687444813420231685193722298917101065923995761851894293889482836439644462859043753940513913517897439274335189414331380310140221379092066301542788833752864703127430253482177833756108358729681937588087820957746488052609982468540457994339495991299865152680933872826126276693597265397161256100354480466072240367000353242775539843473488893940720206722617439924446491861655509039502563435603001355597920956883386000760777393013814036811025475918410283351333540153148944122920940122311566034504993822849344339697762766298847982261510933751389545949534221421624580344951785985945743000170020996375856759095131095285468443532252036076656702411624730634184261909208204093279213079906093322795225123201397555903156923907161639255245896664766906718727150304488340715756447134680441272704057321549799891861815681233234785296190055642524022579494818157181972248955737126752644785117137301004546780465066295056081485985753619789388223421495571557313154471555090360127062240038729704376587204570652082873938984255553900696030351219417417853820034542395947030621266441069727871415824030609909756930231373169191055241734604112180627789849552365400089864799082733355173659011910335227138076982312555418747748854280267957033215527244517007812497861917217003506389624989197415930020955012460113103144365895092540392280388532054450239317335238405811577591908811123971202672101239987603465682033383003061962574943097918217984918807211498156367114243628413199924425950785151293982794138585290592800463603130782861987102343769290588072363012630556928272015273005666527827336428569903884929721104374245551753763300987383793334261464719472362614732631631151277335569568482781438626751755238842199940291544669792971026593822882114094996558107022140510032508552680770787109044417186245361780386040904575506344596372521179432118518148161234074770962210123326206762619114878062160335774313004521879983774380271462720263770171824177974752420969732133550412537774426860965672919759306648419082407693946508057984929287485854225797416534622635178474166264423824276008374674397370015978950197838297081564700659030191126511836247132698000173602033181183469867704254264318520117410891270269792219499590244784598671480878337547818372207845268611786908052208491958619492241630231120655509986174537028976507049757255291195017958768567218983861456943668130448531666176051385349641569069210227454062557296753787790658568332791444303953549209201052565246546249712290310203887243565319317136799842934514017650411267806980936182486793850819588817348118629657686553491141618320302666863896814598075601283789886330231013930646860414451014479612062110901841669061285304006628228416913947565532500107006762149617107167641326938788773251884136295508399931659343759073950783152088512844549438706221194758214294521900423714905420577236570154012118856984528932376559071114144750778922038965267637196923517363047932056513054229002950317685683668453244484611004526267376146156902871485314114862072546111676627616241671429350701992344696258636389665215945723704404898260876548357414385433556218902608287890203453226169338174763170659029999224770981627247481644031636916421822183404757978426707794925777535909912891955052655567589553502207520260633472711577844245752030413239798852656492407735386513090881523788280418812949483372544795582237384218937511080922833026023013400008555416072094157242425596522082132818168216994756938471557306815212392932272705118520782456849985564190180315640463634925626926226821452359177501901932604072699589006069402087066316165734997724741179233725859546326293504125037382708156279700174307780310070713040110974012058260832475821440331686703546044307058499727742319896685924141896334744138831368534097182850971965506081676133303449974221252847517749378879893071042000372413247178642203249008215004753923543684030094501564567339948541464057779219939904106754555708454872730441297423785932574542160130062785371015346214024613537012882572031338004214915747433465666342294381774257070121704177884312801423544377626005054453707458787327979414146757592556748250360786523758810422611799980343070902881555135193728592972700638176245367652269798816528532755499955662060563278931925171954789639724044259515889172676872911013092365793383907647493640197306107349379746582003226409518402580206303673240153643788146477875428147999898809471668024948746724300923027494856524160096072361640447761582169120033678631649737818914992821199718394950733117169571675798087990513318992129252749484768519290467163394792537125059615361070357176584350683474238787352181806231657416806281427805350092702204803531870689975996971299235116187028193804920466526560068050834110717990892255097741544089573328302649407858477153785601292230854359915928693015842067414653085168638384044429620272156597118976013297250958930623636751692358770167328086994659315646554287517616722594658520694918399304424247577914159649357640986853107192095672509533902142975576356015971019649733520755628625732652647922780206885480064026656652593508207867530786992405692451499606797669825698661920518048481438383744278318171294700368194986751989227422332371502652146285846665732874186242824565944375590424923911879589669665715987381035046336754072327597155630321162748691059109296544983971420582716167936403792548473955861148537278440323038149165833098781054600686075041387082177061181618356991824824982889683136244313733547828911792767088484929054939937430422018743235699179988759597235664134173142023297552093035124903860286534020390039436459666856570979570769743388037341993347631567932369531654054121364824110523068271954133036909368841866378434275473538834380114389346774987237600200434511086728128753716990635307033361741619145182418350242351348330369412871339809982851770025053948944455957104238896066775131319313745010524596883873509447742734894377853269257893768489403170284640633347436437806957734538313421750213419853370867007707120804342643528052663997778830108264530932290974045194669892008664404325149725071050692026630892000307575907790628462439696827068316006588655696891953907086918889579855216231926669498563214390485888643358954749951579271199882642943673672012768768489511644265343839957494273656272763671279513556148520719392577936485126848966579847527460000188582001280220806292876988445190710261311761907264580708100773494753518101880859178916441126706446058193130257784186762273738328467319357728453344884098534024028728207246058708458267807807322699618445316230082255466534883170475981338703471031101191597332924137065679522165642049016069316239275982392682500454734480399246078108682392446398611312929517664246843709287196605188311848278668011009747349504292009699782790869459756138811898645966735929368022979133750379058159403629114784572926365311396662835076606302144740724434974735088387510610444236317392759893280740041145663165914150187288133570627892743655122299998657416274376819414328168421164524072884559708894908647739076301517770370951921914171502972140568463028823930046666601444976383241887042710415430394739934600121489708104983371506983226708682975573407627055213100202831762807267691179811911186799845236876783975109989174021114466162392436917916830031185034856313470866359862405233276445884755709184830317956827226716303462216200744273228333030876084090195111318193405057285609486648035885374588442420958316896841803425908714494977769870790479165949568734242057944492741511170533367749326821335302368216123746115680774120520213408564078369149617211370494220509402614744398053695937794407751577468221588810180706096608771453010900943564873990172608141082219176119693438920356709997172736875797623698947288174018672532437255430211972226582027998679683554413759768689242835206760705661966305198652204692689319075966433418458359203831688668638608692807421086104780933346819823322126814093344599479293027834569740882474641874205405043822348101082375785694635997490156518983954334286930390666433569806464102111726124979759827444145668963993531855799758965469459209037691180051041158006698272642327137033001964775078586360684281454567615263089428156797678108080645382935429681521216225541586529223246115504778385679845530206288722249250347250330825584093886765211836826001736505589473343425340615561794796179391757649669048476904621808581436753153648774208134440935740368716010756401357809427425988084552911568620478590620043772392555982895853104867465644521062091905193094995504433482225994017396745791970654509448575263767275748303701615337176891176286984531102818016657371995618491756180876152879307918322758888795831349537511483480639012360173808371858355568047595599983521513749770062057758102506468761477145039237028686705597201679953654758618922747754894724928846037558868179616868109561444320485135147988138894114811453269491247245328482841434310566773845589995133299707916531510174851102732969490207957430539043668226934709217624062859478456585027946234163733090058074170838145769339251899593860509091778733402030447981653065837707572230206934832358196283083136400249710212761455945012933270889225679359400975975386293429824953085128558400031996944613912846510340528465881649635816099373890148376080725699102243811049178174330671877513084818520362807621798458400280147204816585108951530519701428574941752723927875057880499104109903591539901861561303768671277444438675622942478387848356780581992947829182307086576344753099975299995030188402661655538187802622451595884459761458365558857686818139301197962165403512175965760729301675687000152411848941117978876560653568362457909643953111753662631823981194826827438828354201843957562176426485697871345070674231764950866275569160542421800381492690859538504046330401608385797552324883627868949562008172932526334150115041763887094875628911945567077227719615941860786552363541921040848445054954714885403005391851284354220639263297806636221510283914024305418321105534843773773752897499211893686715092668747523671253985220484411401036821261844022549791937423905086592191655173297257874829002727703645351139276518246188934565693247750196378288525270624988334601730003459553644466873048324504474951388157129607303832513776028960898444576560309227931302645367898710692267414280424387478267461496911915114779271648992193883055258461284295051268577810814620202198641734014547536462182886457692707447575281297479487528399901037424383652505377639318933003546555377577661924619061947971107179170620208473032316829350267674205583064822777906526742641916983565342036068661375761107692791557104925035687773387096425253357835227686662629060460502588652856355699153972970647735848950848163897379991401313536796286797141223641066667485774429900957503415412941928296876417396010049894063707495020286511429534759856560200815588892800939912568214060606701799253386658495966537311409593720292213117912349016688999289257967746589142424187902046689907442766426390475075620267333359821980495248916347357381952827624925399812687344373956430265445533451798944076642167632245219625604956072572672240272614038725721331848003437471258567725093294175780862379707536527610735023601004643369397878705650705876413872882866793776974527940922934420649876568816429149487774503818936123668033900578325157871867613835763606578094762176566436844864418241512064450977775394525144177917049597931437147004213853393028507481640455626247537848265406153649294229894320678467559227571313347111946017143646144326745806143199351954570663641038711831942607907889205178336377356471222291102571089696116612525164844652631157601164964116953808788919703293685752502826023031600911853757489867807198805274818918977142898872702652092487156603234609045003732672490365152560096130454455610967604657930740901212591843800064089980878413668973370483294980597223168713956565587533369286714695162253416170607259321570515951979894830634759006174931313059279802034922664467672140370922182209720599885525881397628504692930627116549837087608678954698722658403099050379814954801537855588844504210743411666621118363508369053565543341032783491957788915689160029077623226971274253098550617018029861326727075698719871361648603701230741006975473388740589636822746628853912567541865176156992231208415269711696931576222005454198144100596736581490978013197709556418218002587277054722098177408174186100471721499113205912321392210691083878885471208404684214642584319929689625565832322626973701764172986628390727836456065492665296888481409642943037088250705461701339606864690334254444809795450853165104472179455670699830511016735981203485782808999711809645683432363526681289239226138970407992098311701121798791149589827395730366552887082574950740177610831351847605252641410966109122044847459732675366156568125893981582289038271023561743748606423783206161643325598155920760476273428414831087108041355711231518628276535973262850359409902525369739056812770904424008912579775902117269902888316869999149243772715147866341017656982832679926069025226497357238748381227188739913777759667010909407937815002614160780309099388872296476142105858236173890054813138632390697262238104317445680289888166788781953666057594036199606549409771921748091909017665450363367651466180061167952609558991869317704686374131832305347790664000758597596135431054786209647264059474294558290512357848582038272797757119448254546532608338665105331985515283716409956772968720589316494010322028513113890304280703863269264806444784148694915166567665941628075721029005099308269632379828543293836530710927395232346302707761584185718843130571975984932502658724154646144710639468689836536774983751619976191583080098522635940588162121154944508589547173821691024455765316118448097266322239788649517313035074010482881532078830673900762940944776827579332303490676477971740128392498178818209808958293181138923394849995979489994895123751861547928685340080317690866501224153985513913244686193457208055267520386219950514605135491865643942429266286040004801047280661098640035989291322224762418257580226608647508982427512044228045591158656296419413015012043807315064847330053467867369795792590572532824964456877464791323505701720006741598780103256396372672890479102958547512216706254555073317201943669200148654548776775432752047229712448727087667638067477394189123438697632157672969209578998788224595249658417303452178291535219996594595699508181417039806415188177101972576025012378902529302238630581089024800169983751303356873858609534969250367005675866111517924558779212918021839516059594573097454447981323203643543744493917125161184266548631837929331121400851389078395778825899388097036940410367760151694549686311695298760234343222651581981343272019304785362766007839451879719523911535811788250983676114182349618962437730814500782258960083191608636928445492713645367521996371684376521420026268670720224461203712686765454539003675614618340296501227841893771741621416981856910194084188985339848188707250207382648503872388015475679413683210909761928415238781538760238015314736063034745793263473639086151021764748674207234436328606586687165529746986528199460904828418506916458574551218015135319991974361024349589087641623635356617706838844293167400723866415408788865280664589158832925838036593277164767469146167522987068546488354867644404610420894276517704276117025480024150770969921322686929294881781643814434798562565720875799014690489634792309932664974815205341532958883255413851611562263265580539373636461689939843382970447267448069171755020999838179114923019305105782849693860677506126474856118143445586192789355618416630282538414153355478152510359255097573660084438378369493380158967509098206182480945851495336130974500082726418044844809862710227650846557303299539424248230779820227836389964368216381489987211644223322398059634534014077761383019300455782142707650969372142838736409867498160891284387864834145800955725720874241909747633086861803550272720842293207920811880920527030285254183229535877636082962859731088661942114303267708708261785862739959776571319392505042787553175744873242560251800206643336024851531119892234637770944095220480863479034163325301565722414643773754812253060853632237674210568394343424000421633291193577775824330675583545779288117293571254375468512858343796531231328701460948494813175893698732680347048405747493546647717967872377882465612001061894090840818359132007640299159713125175635591329917067012163267612711990048355661080633308102573179668245310200490447466976333057971495917287790353145789383040680256366267918711263612632556079392578873923551184222163948470526677896007966146156308557095655247080869093845147921842555913600251643249050577787073763776066834999929547286447277744030549850000205529458712989801882262495289050557077226407677635337352255630031775450961907744897517909755300538577060167873909513627859999047263084046779372029122762807402693563108087140913694334915333882875691351881208467971646543222275982038895500901181906215224692341034605035563801920144546622954563339248311646732623337740484599825165590164468269941709219700501448702707531103967500113284227954443225799156512528689877896710887056469695133500663224044286158126394292626241824705911748778549974367046269511843260248621170664003385081900312798674992974493365879108323476113863176264720352818884819297044730671198977377390854215839914282024626706823430394331128794552571363772270537083352503070982830445402331907587766150761569310773919481275913100055924600944203097994583001518970456069971270855260178461247174086152894060423305255368017990647821612236166132352506582420637433243975242320373445969553784236174721268650278074408540942929066934788211346803854772653820364058047726802630799383865071489447406738864817005533464007141243502846618835771407037581524856066654950105057594885861266093744468542269981472781255401071984665771286154734991638300323046040477838491138143285929592846209934152900024642025919194321782556429368421416649779988735760475489256574695870975168703155760482245182813818557621006699292496625086543775263537659845066845834055417528413864918220238221179348909045428285846934437776918150229237063803498514078470394947039276679632199021923933862274903870430130486357925732972912247294100530611724542628398867067008837292851218530266760762449084045209758462100199347916509065036608821064767358519492744874540285356280674703923189780990257426222809099022154933779818523859863481690433788300733341496332126978907202158492650759753248270224054755574787608565941414441297143919116286205116225560331243637652141754748206480396547828198982023238233871231702687288017664518295872212211822717481397508643935524764803547917973636143608548178402307010299039535184990689174461927662618029592732796794446962681352420151413133389555214084611191171650957137600935104139181844070247014851369280161966737015959782199268246973371550047086783491172120111606956123847773167556100292921406087774847173158806783835350718448218235428868055244168476171353838128786735284633958895262738198059883649831857682392138016525991930483411417435359356052730476504305555372716050314243760320421451733428440008600288436605140897393199700642715123775812904239310100728853978545811668365095380547214976938694359852500468432703064729610835005558514748170814776769942477498664798422774337961599949890634237548673849573579937114327188827735477429901194464138557025918740622532325413592524687496369882612294786805644236588575489534955269149348550980391573883130350978307761946277245263974436507173105509465623414580438311980851182675422746730007170584414473703331060593291895046260128884124866454228794857223265367020832010146915022903356225713457463552949258252814888496940904363037210824637481925557494728115941874395294463410886498720426937361256896588933810075433546686412579862626157927954811843899139728312771561005584378541833107426021019496322265135889655845043182202410461105282447027605376196000688784714055246747491024529053226412661049820943033816095563473449474446170649045655487143185411319816864291212367508251599380770136415739938377526179823033403586904925343009872092355811645411167414094362380150310102716637750680524234059319807455471438470424680461192326542851566373653867357221771107817325106500804972082066831648214366466093650875293910269121783103480214577013982751157866143078504476812273610346944727658255171129919029420459199409664005607873202754079556273696013523856664877631204177162242906847285110226446451966950083545135705647914682625516632347155968769632339962076416216489424237730191744218026496846402555736001019709074468555446409302428629584515073669086372555570486679835203413278688152572726088371788343911551194037425974664009476693746913168034560311855240987615248492490955003324527887651093251593235726945330045497306670160601529511139212682051372270425784913672472025108584426099597509183643066577353828101311473414616102985050551337240275428300642265542703682099394680475818040238380090746546424600104634250318973350483486906276557436989265105527508888421926619189063273030609124546265764303164378164736461215425836047547029100045407832056174401936014069049639772172747114976367963726838554405511092308256767440219439736365269580052841259092920492436379151435548666203994691095684777057160192512361381684132423825047097190994870354760219330191323553472792518799234052866011271679489086177174286288229142725767432429850013295106917134325412630648982306809164399263488108360498557989372092171992959294729717130905151867325014306472785866037257416101059866672048836966154424381149688743446474595777455972828161920878897549849315091936220072742948692539581739595038783151810329054878202983133098370100342244273170509781783063988520844369513744507317692852475864039727982139432535259058708619845931291446196928187629098525221232611112723468203917018759889993617689358936272801616054380076023022862874404272484600846679012170649464200740777206033270167299129748999122949222799014043441113051054083148606537608867510759726978082144998404945847055335611054126652941196109671904022526958874493637388207577874103950872631463130356113158792294482383861824724427180211385913005696993246803870580676708939001344532220438545707985660175827121747720645823012230463081073801905944632708346500092880455734792562188913788727657037678973129550939401797175852434367688468570591215908567369293976792679212587614063497954765240450233443720953782826990358031760477173235237824019664157247100267805431173664511019278327985004632544810731211396587308011856818374348319252853499990305169403742814218051618308502411785346271538644182730679730792194884666328724518683373384366218370780154106366226614469154097142826428215593216390167709091252937713088460281609840732022473518258435872859285735228410585153458411986415516306325323895004851075328168815419855540650990837060156833417759319282968725963269947379975093258938097411631417313106983590415245136497703087269330165407227368454868615679696654874907901415467458012058095224782696635536688859588988885046501893193093282506810702207482291389879016234091836351652502216606241441714358522607175345719764072967139759914161835373513952625318087317090259307339409519532979592752644313426406362276283887472594283624347162489121204057635205392336586939513593174397800617310370058744188412758545249148465920648271422683787983932809238892187009022157326560653711856450138544555494858508739724158942784525577938173652951978768812131299207329248051661267752114083314978145871822806697172272098017889471558827403233380964764407110749705065155017917482271042431768688084906379803542351302535676654133939697503930614410157914219316430793778147467560158303367840818866601649694078448611503238757032750335119349355898697355376226311510817744177526128141969491557983043024240048618679971251475715303172829403146403676078712998824698181360560618301584386600476649571515080828893790130880652878444693706166208314992835919418480178321156786553855388352705371961017711568883309947440871007901159655406267981733171145744710152890373291083593919416972000526755263087055557269526693011997543375724694882369366638912112436368370322807807044236466255280472196675727231521668197111215624810671910841302836328620189317878852646663587213431647094089526059257138935778074398936595619535175030812341987342262871964138923409769115080146125366376496131831943510109826400030619615665976299153747544147678905805905218727848179909637571219489502539760322266090427213470968212582026788440826861701457875847113917323996293186876032523932805011258067082043997906948106165399394234120843964749566782260962839324269430870110613112587154669934315221287226081340387586567882388005444496179468375928473718150582535135735196135262747650747475175875723238852095154156983621603831086760564306614359484068660831117634384847405916968706226581531107197984133792220187227499132883141253826818193576724361694100918537804511416559593693638280297462246059370673140431521108261371136018027872497465371925773372750241098090416371528614926378589534476146612014930034812810303343129001375030427202388509981880935028174943503313686437206903172414082411882499881829195993217442842532671485091991544414355157393820830409932051126598396786216479262974452184094461082657571807904342321289690190017661066052168674421187880097173146424237263411198072516825844914494676731266861795168072417046540777959273906373518501869604719434274151192758182921285786159191620634556979959740414147818839084176981973160475075123629424189916479894111798458333793614345493577524221252145845907216117082081247364911805440106141690376621355243577888228924303648891489063592410543947233774139231950283031701657485865472319840022261329055537617647342298398265201583069080899551417017770081109926935032751047372801960050149503347130127153458949345297138787641503204538418793739797023288346164814069265351612511100352695272751195110867798004007231254110756057565620489824775822453193334527230624920166956409896711215419012347541068956285553528871284683916401468904274125962130112650215427327570639696499718825325941190777257933186416050665967599175533748899423671385608580457348989151560671840910813667507325070862415349476602367939625026075210177354671081355089513996732491885798360972915995253384175778574115595128859824581387123399115967742904198101244927978850601186521583622901996246479797075972580570242076369974306693684104301331081941054270045128062224765078057889647623637114796095445082149022607228845266949538615414487135407620343219509516561527554221522808109528680944127476197042888777345435453325970208699659099814455284427595898670811768582709106105036370298248324254617132064715130485172652975199713129893316413772215293649103016853803988890008405814415169380055121644264065891760403258875889391890150347885587970117805277497489342753728893854649593220135199540496741133668347488165608731663296193611796284137931359707352274731216295534406482719137549031435004988020634416487708558996012524894894525676711845895797161142059216921223540369384160850274736865136169086342334255966870205177812712690871617289964851359801516130923323867277099898115301272530943136198751121001031065991670649302968761894124496892971722409246057830271980537443500548663259568165005269486650994888820750664374820549879041312739426369173124681697831760444810591138479339402533036554883139750102961529598777155552186624935604089835964484549988261861688163341644110012374694837339160253303172303390502423268866420539309473938173998631908715198225468731317907428983037414243181627908781633234215470636987998335000268340713371071983605148082187053002016380278595127552208466600760121368738765534340904359796510574974629963322211767226278696634077276706805100958869755615116712508885253035177386820989178167803162546410748230570089538765876141552161755245388309957937426824946371474079550900260489006934383880354687424840482332760753603269787865457791770817322453643409244323560179712801485436673805135703714761581470669841871878025304012735006455242868582322495985020421153608549186100775612684313025186185938743018517593945367417889722969054057300518209617932718409553937765922665541026333579339636199023194571544959002502989700913099333228736190926480278240140021254317528304853327582044540099564999504014724113371911447591502315407433515996400140717879928980656043969993538365688209584519658773095995901285117235046976500647726352408010545809700670896203007250267774488721074872800679597608207337248635954285808777103866239293234793821610687233284469768245860791649611977063480147200474679771391699378100731122635646801065599460500398023517323757603093554118443677225076074189880891963734760462411179014593154150954482119420954876024119491479760185845136203887554394515572530504718532514179680283253946105340439355269625250479578875352455379018621691917433550210729398549814459060349067671292816011722236000964217578527391123431573000265772142729058157965151997162368202379061123977295214385322614810263857155343853976157528965897398910643415606151130492598142009855686391187748601889976620499932803170257011822014356839205775961923419218223450619217299487101391832095383220760781431380051291372490743084187527494199390418483852528426106846190912442676996982787731500223762548426865875679832835723619087801659038643536903962831187269523853580836133915273605762707032725986517241708806264266728210053222133768812192605324366419022518997746245171048066580421041261440767463947823772633403624453835350473278475922842265256986294668454052167197383247613973495983702477502983520789264545588151504626477330875539716617895369390795123897222649515881306986145820032892621880928651808751382699920553723671449205476974617799291332153002990336132152522638791861256902022388267045516902518282143908875211953215419502083998558287101584910422595880239508621574858708466121773596545492036960583371871883296087279682676004000550469193110563475299154533344180691152457897859601134009158123551735620817184056072495436397753730425566374633798606934438256939931223237312140940363130256328759030298020320518590500330070172213335322400174350861098025789700970860723714957415714608069003690540465955404836727530182364869058216945813025493574080118609856443542943751515312297601352922301296939122294040898204733326581866046736015402324260324875076488622307929511009588531939665534529144555464931726312511072990688632259207918294874841137728878002278093837287824514045406013085093779294138873851377334314398849545440530824963146041361612770309325807861747524024583189784554994552970245361223284086675281324930683822455091033121201288030578574129998629604628450214110276571024908743491135495380205684447706939783435463275839399750542764835994032631655726244666768037672120607970867306404357194000474805066797442502739800460806927929548287308674885256930099043993871158362515835201366599660848462677339781628610006633697652974100962879000392358521804670842798670828586571155733155983681750338136755955649616736261889630920617892209020563043847515337883596745623563735771329683204940351784538395154711725835078564600476045984671975621269958424733136087619696845237131394823867563729556424130740867657177949775419664683759016532674992933383435986281788965350855944469162832567638292509414765588773594074076206380741602379521665136586068508592062504833887893384287692170865759351369832137801424302148165620093117918181402911695973232719945839220674604439373414737240699895289801342591416586144894696038878151480582839399123991027119708153309763006683269121328348489769513912745808169806969464025097539580509688008519417543668207072222591924463279799083828402393176528562233598043741009241573396232262732060696945485070868612293760176914063556324850021481009111556496775191736395287481155070194481138914598413189105917988832098844213550926833343007255588774886180761781645403895710805728240871161512180675215650171327016068843002549489044472819222554248290031211549718283382954819597959913876933984281741726915668243239812053459952286739149373272564182941952303730066104695756763904909560841353003844360612980103832345524460656111812866067269815403883095018120541645999454159885293443379934342856553654179272744370985476362249486738034022443776709739707037020955287456751576270353180484378092500888099143347660206078837954873611090357131610091043032302923302503216146862389005703560256169856005561870865548622365881241282575819770808420632156195283715785474924429537803706177923786359718741988348880129459673996153440609125308378379781244233849574494272657158200119808470064019639506741392363205451386961620415677192001986012648614261848209209279257230078362126592352118889597361326294906270867462118819096239017568926360145792582961703420646836261639533388761674177207243825486870501182997024567106076174041521498972316842073056119195279558108508158614160491733988246179327669564242820092725417223812023803729965273991983571302409101363617474093531313608388034790769067816856968672356870092332598788161555663984879927905665824141515342937818024953692235091140755604620651956176748213278009328785782138672193006548811003150159971251949152387389432303074902364095189617819648827328145031929449250116260255111148962113458029479396548812748223164943467435323212405738471631054599313188506811807988316157392701073410749616784806332448629224002565150370849586644160994549626668967152113462675901712683321038359118920710830700386307771567641888910126352880743230980406116557777460298270380103222439298960998859124873575905407154383470191212602288030687594877969635635671373123040115449645573073487978460965673002386475998774912927335714780487169057211069177974560584126098741646338127240122048968700638371642827387769208040272816486308404388888627313170783122565296810566818227099200330877855540752137858232845600046497004433910149877412805638978490835352284758986489556180524462214191126889384384553822575900950882064438534843338799806965198499529841973385591911675673475747689975992788407194211211503463204999824032389773608570266833086706793773276851267170558848797396308257230627076580580724717658402353888852685978012274022607862856458401452125645077677809134014463729110164590441347378935197816153993558567777942031548110189624245069022910515444483765873961799362472468254467753940486514005220484115671688682883669775950920631939602156269045527091751598260415961643674481427850138893302099443095202961346504279199761123147490616395806495774883641277147784801166102289786108278541621509877791244991839054336485910014632025240375992868664052301423637353989834263101478302339772364632888537465518552006987199973533447658781452954308546294295144156818911038552763058183568888264183779744981261971008408850060738027625597163648578535476466456188793248617553724234110250102594595802002802237179515311236102561058006016934981439210970801493156192046629131814520686868631433132394475467285698784294511713555729992753313072943841741591066650805419141601985648585364051212762953361265609119723447910629131759627704688188622075772727506794871689194134006939405756579322964224747149725551809480828967884662357152436319142617147436363386344223374810547503455275810813722629457216678936991804161448325543767672099054955279834677711692570540019631944432881525969158329974257071431134153455143805193853829617355769052516849942576558452137887678978256445153366316563724142682696616222196428545391039015981378522574149100212252094838174313414068801884204177578823266832220157290756702850862956834585307323136944671374919641582692279084411319599451125966329815468442270210772586403401776030355904008210528087209039052018403320856776968829753578085517058887139226093566992236170520148049884955730015617780158701269709981506430409960682662930200867285857886501025516470705340069016024386208114911335881942161045643750842470185100875086797582145859539801992117784113557480255124303718153581586962752846998915745546242729846792023293157698981030881931703097908587473883297919188210081072147195687065293639332266097898518119841366873921281935296157640829227339534419865027770159232682849736508111046014809266857686816463502009456832607957895804722559518054803513661473590176122369079804283649659441096062500340857264614799099101722675456517139531050241107897359977380729810948258575380799854871498308124541375429449537290327189275360588794648267932493572627245678564407002709685670868729101201410603953887930339700072063475951998756755028108259359570158732439052798758970666626396106914550227034445487252912146868847235069016760362047649803822842962158706332916168107342141817463242579882813070171573537224371296864563982171303533151927138799994610585250703869037885233414159557457186153120328119273532552796612955222677744531931953758470604146157488978248864429372855053844866146546363274122506499396691519841290514611912602282661562757345511496063149826234399730198705031648753244676165861955661219628601330357300832262299902009837779415534709005218175171274979263536561325655075976250016522353677336801121592890183692487722886427979385101406312978799394766298141932429148685313914924883645810679822683662842079073801154654706928243026586395859515073093566207523965316242279033493550459228432309747505776239524357858355255866895273427659315163848077321926210149816824303340559798320613134963984793457487730508487393302677748311941736015184492344164976274521143751881616146167386175743535589552102211161402468795960845236409301740297656653738646917429927867965898291751478558096032333604565898179329788783443847317179221140630138210531481128881075916372777514228085987712749760222012954551068669345141926725153030012922658228843170170640164533351484338115226021918164728747819271910017535616557179737588592327078481322835804509571539070426983837560779216432512748013150018027790750531562150500760224158630095718746565173059723391529263127711189139693449127896770784587449183068649448675638158445887575013999228059452613546824143137373306397163815842146903724671120539319045887064378582988230693590978339276824564380701801208588948205520918251881997656718480131742947798189933234624222872014034631959759713856894226603107079575065927898784872048878201663592905502426734373375944908406027276901906322630149867082203970899079993384690455188396865897126273684096406544134485089803374855608197072991965350032532367791586358398189166058021858699194466095526419060939533971385406957055566439126506639977479135344142497531583283437357195046256912024532246063147473187216074337137680759616082732269422118539798821345257916779987040402714555295453506560378951061278939777316282297410338646916135400052137043590015556594986292637447193826590695476562744767247730838685937668220825359174194085602415086261139772852225565747504179678010912762747273494349262433612935142300786461407282252426031503629317499968876430929066734931397923376350540624767728356637106463537082494588668440545586342685206028959461811015718844739248005458910571797403911292351483309759853899261195168727577210770598988187567368928673987387823724536134532442316755766745810496188527782217608708404584186731880672497673864914831908912786363331185557224550207799947792295711292146333949550997765381868697963658927163832014668315824605451337801274125457961144759873183467956937749515760645764634913815375696165473068525844554233001113473628585505971306782103552628826618758742713243785319777885172776276516017087486905883774052772270118776299053315583368333689827120746652063062069477880428814076538370319306338108065066813630769436486380579088435671081482684552386372462773581448214955165096412692471363544436985221556803025327788473433892753888544521174257533727975811604575361112094654670316674524048885001299130687169002939315163632932409011472956671947820133632847787898604049066452037978346919013927330920115103262185229779892701046079279296220362631068624457504193885137646220344059954747649820233294091775212536184207887103832447720045976381412661386428990646815728202441816180741499560692637186268190216602724707153081391876308144291526139218843122953624730306420733353591670262187162993834167141910320069192124310552762053756829963850256605367971953440130007679541090798389555436009570459255596363021620969780025878764123645367747116814818979702254077180195622794272588383768974117794913483123098883248881514900299022072250447445526615049034852795409318223216412658758861897527849078174645531800222205869028671340600041658622404174772410762603211678208096909965203698007480263731095536401542046119534829114218018620455128130837395516994669621484669252737932403590540094453129212719925046392700821098540833493673577139496652105672598939304342520204075438241667722487457275140943130251190867496828812385183211549130943099686389808309286414177098130935559755732366080040375968023426808181717044730414923672216745900018745863782373448827072110216571309649211493066529687553008580018275422167996171306622090998277854891724980705679880780337097630785642868924650218667894023457532412637583572413638775553401211384863689754544378639695379229510737878189843766587388322239850768767025025425534931500456814624803969147350443137378254493029879416386266881804688897926686479779139529828632716194737351256408243102831969890885851777817566680850973104896016512139694868517070646818722501502474887008801974928003443584108817966216479193107969742779245969201980801279635688159983454531026507376014081931236667402801942583549369092388260329422238163465523663313880089503488421193355713757927644344349297926966541786520017684522585263504026895069312190188167790939240435235235991325669299482455535763983131586979232947674926836491321204536151836255661233279725302211161274183167545703901065867062867742258475832935909303547078724435937591800343595854683714917855539113380059408194700068522035777509654719396817077180143682940499287268475133857292008969599887104639425339063021657355274826778853893470539348226600298365574264890584640186268704717309360823714380058327392011629734469180019854573394869227011202297341160908814935437924791364023473675939601803275342415191257424963323979352035075156680958662531529167269345218887275053099201160652749894703145030637683017893950144667035393492803008948160710707751770949472632262238002924190191276271491949062891301618750684346867824613392468119650192630424610427471179912581102413769441963927348878944065719824630370532529931522127084075767802879155322656122723967993297582674274357994163519529413105817939604521173165577786578978858016912740724338383827067245412314656602535752222853965111093832414252132466696189158318788396095674856759997875501402965167752510028186249533981106775703113911123398302174391233489864254895988325755793103288724237586314176366557313083856889520525138669040510349285515206519143722224773544749725936970096444420096243032043576070269296189786192630644676898534652032980929291492465416522008474410710612331706843450115690033516981529899027788095395770194927482681869942050304644955354518981339055141348601228778586957214070969200766821477833103582822013476183298676488665626792703996094252646144559812034738152064645661784664691782589055936440917209464320117107658839899059240332682544754173802155673710149826986765158391032808770404263109666450910310088115882526054598162355984152802140749614173289436368266195518891920483258829529447154143429712732106236282738890465547345079356622710850344058341849147691532470636496051768496114759529938639744746830555056883677415765725541854659120570894929765421139706435415351449803336310709361663005196312615386378044548687584068096579353195509204269630077329844465117460821386493303499681752544479817053877438806536457966189961094646640804027037699264086111961102547641412917489805317649790054413940104368287726352860157935353753067057436343452276825659795503238681863084796936708882850466277483479161078247961132803712634080780390798741104995379293197449924386302112516758692326646601390934365779748772032546966219943073591883549675692919007661537242850017356738250078196860352212105912753742241219049978223105553935142550349700193654773495997964909448900692676390303618486725705469774460201775137062568199167554989501333076108436815326448525981057019005620961853210994281079762955137403517076069679513693780021064287818105982981108352793372191813499736797285921581509474725178355775492935593931997117667470575286462569039424695422188379462418876924803016136549212062743952339922878697375787462053143742227568811526694401728069288525243820952238570920204371473609739814446462858706295484206828293364360028975675077805565986524230006176921718422422661027740335099003431645029855853386174870766571981903090277493056336136749513730821432169555359008312990763851418589629716000739678007697191818708946376021470336584557310451077744763739751434275515247343857375747655123781006640918432640864421730847435039803587187378998251466769820541533190793889257644076377440681908000761325077233312423055192513531458833043289894133071717274319493035007835295765431243118824822201125678916558833730083579157260874653662807755206619441830901748342305912358826496853688757572923552040617253114570362732194660260075281308536543045354805022464491774546001449139966003909542819268961562971343376394172774204033907862506651730191698827380988428525837655029592021840513163825743773730772825013954258184890577680782261499135509009167713870041935142311260448263611470790554782860648641904171347878830705521564977588076061115713709935796869775911029170248503306375388474433234214473788219395307618591859608188423220844838692814161287098990344609873519762520764018685310369793918446756107544303023007016493442820277537027499377646481305005945358496345595518140205117006842860305998906843562539227185689738751656835428014528359738300173534496823667133512390815538375186495540255184792523012946366696649628817443755467377983004411472386145886759890231510165894896474726031806349792644856177386216576257638114538958196241484864696537339296386492626378494845201535107196182787836123453296041272941838087820131668887682258921127747227767382944966611096867742528571790158488335947292361673617535250517351271401639026023773530937900628049093740198402156793828212843476218406365360127048409384596811557466229132126690486435841336933373383221721647777358375465373075261984259732931471419105872031522223701881469681560783919156590883150122153625425730759258805029110677989272846394435430053120977229328340328288058851552859879010211399885358762790876769005104061213343553833717600715338329959137009909742412246479058235810051951772784941775815868617841700182912123320403585925867454144525037819733413077831984195349077188546643085425445570423547756568397545706406697368201300596218658932136357183443052908482555568455219520740639024942318100583860397811623521781213955474918707984459463171821235417349922756017139448487138942031421413284317792729859084135074136521988932572108377037848566278835789695996045215523749883639551834180133446131868750146336244118692297378618444675246524515326749898724673322860345443092370476458486023627382140825356615814535403474193832725513541886501731703242734444566022600334825289584888361414931757203230526482249093238318128146172714806519130453582164585264781913068007725104216235041469670740269974108334699235964318799897726169179229431066758976527911840396906296214465014067518707005326011895799475683149383235526853340710296723468403502760314769652078389382457438833351646587149281381395554226086756287296353904422547183477739630631321719849718197155202116360079430871186293574879471904220717188767166459638970882853694483260580484944275693296203947016202476438392241376874828956228056970234315428912678233110387164774699220829917224387540236858540300462831213666744726521589172360208664598368042366803287161043557507757997883481094849788539115956537019623997563987086986895579096876622373196179016041257766975831976138622078193746529070709049699737955952102953746884111142345041334880485455544360181905089286359416233017518502679972653029463862180341317328578155102597383665680512942650766639746027906942300265987481915365901624033436479799406904394687887239669104871415768702737273355525369173746883236627066750983718899814087518858651182410720326136042282470188628225151757878037983668967779214552863714240719302249520576736340195230538536331277429717921848794306739794914794534159297876250469181067564052763530543775743957134045062183965299574985837718941226722122674999162839883500976510074873608944515608345482906749457395379127112349437787843667277585203436154347624607419971735353240306677917049094320344436960255857001189813822544651040076417066202210287768069655607361221292815191092756149331639306974101543032926447565808830346645662497182373214754123028557169205350470585589444022161782310268398080328512295282834784445782588808366578480369429120552110948398363367973036431365233432860545643280906715062588784381630956309661239885222763677019297775586760606740457280714232465203868934871591662054851759355848176165757102471205884925577307605282230840164002866633554616712884919657796883349517160839029829369131156790168719807719860155304733009202328202857091851025790150183490271949959350529551204753281058660507995509978760240352643289878706870628527690930270087623898935504526133436364895264589217740740177952151212545317655287280446606767685619085047493491621313054173259553962462016408651128266514079253869450343022207402467145467961172237490575549337877244444087174456367886105270432531431963652683759812329214999968005819370996873990684633417290349627990113879612006184337615857937471665948572846372475319698478195406403684121443015372374047138320138537583548059218570631356605614770129982375971792658157355874143560745521841189448602245173047871902704570925097979830347085740430656988816759890558458337606750875211725624543366270826082157882064787304840997338629099939921696990421901312871711029906002783242686338248959641426250715221538786189436752810996193884840445998723659897430514061498958012977639724100824224218823611014866142645052949232818577965926563427945830506474567920427912194326171918812971140173923861551282405423453099541714063539275450290703214940015012244277776660865607070100739732488367722826054337335202835188707263735799105100913083327040395126777373060183368867751273195425797313742274449771366546280525251122976612364500037087955038951362143348276561031495961753255226705300430330482766102606724238372498378245424088003329395172276982067748540511830839662341057878507947020179475993934540906881943386201345251552961557020818895576417950217105726902062738463981243968947671297823934368672270258993275826180848587996068723572347464643670398491201792121299269384967992096772287870208170678444726294258335565536916837456149394969566253084213439431489491696327642725425268466454854366622361547611839209024033744711738281690510788162440052097743755349552949467330440358218891439934953271676164547077558529812264160743807829483720984555679038287977452356271323015007617319994090224953130187486244453493732448833153395352261042588456765106100862561865397929037928522080822992858839680204801371625591448707961347938579664728815215580955469928679022288204706406353051257459839774694603324213103792983003871571327041088663829614432363800978488047268567778601865282970186482317979737769271634908838112799784026875757343274388343374762254053971081347398607040220356798066204687706693802496640852641840766753315363144565866134809094095820786160380360771420927957662119155235727016503846740617676747105436605441320192110284397558030409742393557624728196439613808108508825178807372473959787240721050361819988394062918334480961211052771163712141320020348584183013268584212342144606069512100880334229207217914830446133405282755644835067369064734576893616094881004209150292338314869890651345681234368588036971588921162375706931766912914174836414123660186711892872913573439326891733600687276492140369928136684237783542734569756687082123377994555292672234039910683026529919854504245904262119751675923083611553096829431576057768593247334754321584268652957805685872218143561788619556778324388546374163899882428075868144834036310255330784600045677775682584931432705602976328563756702859052849729805741417294508759920280825435508739512260511778329841483947977012490868604240062457432759876195757432889055541804464857305318019097460753733670722230953413434998585448793265367487712992917740726689856005931716304306664880965274339279404262203249656812872729585744713155489694900959300670131088413038676956853043438032355803838835092771543619456517214152967882448731168007512566827933888432484359106937779844499854047203240773111038041633254426404995811594848855770672884886021924630576643719373471589017236010397049769199801584665022676575807325977471363905283977365662051277840167587998400993546875522044215508598878986996810358760487424272682447985871453234104468136802831132341840653531985918107721488337338093936626913817450138164255186846063999172638391635604647669911941344594634865543176674298766139232823771568592704041304243436987594624844781841150802343862610332253661255329917867330419755474211237613111520571170528768883054727766126332931306355331078832545258607723746768189590385773721579518434835743853029032050367921069172577232040451871036400951040838512042530133007322564789759223346537328512177917364206101389799645935833959720284942496929945717721435705975899162587665484769681499511397521327862566149384206622772902569491316125771515840101986816175818202843192376711270813410463291081830569539219185286625766321639181228275491822679824084273829854879802077918030775016922217998521893519430054345272684650043098239903884208426752149140572898684338391465780550727538772310154287976437967931434790820121224444767758590218107436932251515988332677179693396078936216255263085748091808251755644553774044759403877812444058727012671928369830915441244110551234922058214484565964316871461409635285985462796975384884990297661653514737535772793705696322666904502773470983320319819866314785469695386976326740727868410405617272860875142923731288399983458873020309671826235723748501238399448714017377307924883201410050622922950625499629714498527974463412049712331066351318883596880015919296609841978120022738526038820911580754519784694925575437918370597108083102368573919346400329841933256217114984189544478229607687967406295228483947657885333214386354466443040499220820018060583453819748761700812117790180939158526049812041452497890215416405289848584863299842155205040199385186059528007432786485711148270170200146568177738119587665086398698987082285090414354803124777278630720751296800630490680350644234957517291881006200624906036839671187807119373205406245035227180300383049349110572077736758001573140690578132617866784327430951565359267267530305341850593347029872683335528663192506263568616482690015199149275267196512148267613532979872649254744379754129705499098363937928501476471666581949205202699485447519252777050730475535146363701980556679647540175831415282678445016922804016164476358497298033162822188033896261256049570018351822677661333296688151060276429119260576711954184900908531793168106007597040705552659288841554595397695198843121549179044365393644263792694966050979641771496897611158367248028860359738790539250475605446144247851958876392541582089488337160066513813255071354473704861151376369409497908776417218620668512617897987063780851546194193312450541527052534072271805899319715143191364890230207277907578382730630114241286264498133471381937579852327212671249429639949685370233996576833386413061750761807258979576032620455440657755177087652921232612529369406017089236164386122007699023962453706632046818404270577792360542778121567746896839365903326203937945909865169618248080555781482688156853381995881577292971135979449948945233360244075625242664711814205618319823810664663204115491391362242855673783036069516916298613399532927913375823352028179134630843491091860330694467319374190813888455077651607992774727850003210397365388556359540274275776595254714349807417276106973382600144859118813890059707877218475987826698804169664803609447731910650340211618610998183326421573023984529129970990331993333309584061585203183521582925495199652380775347805296608970943824155009914646869216282287039552211041885482077481867306651239939479480868556167167049471836795968843272040480045368005806075775469638341275815335055539926093408617931628845779585778625692758189122450349335552601617321143663138329840108931374200850731118649898968138543493841806562623107118661627507370428871369371019709335250513798798371367890947486842833569352450999875248953588576294578882710669968285520773826622752188496916196512560972263694167583603214990498607785389119078160003203198334727052859000954959654611856080865402396395188483565029563061976596938893582542330012116974797182544042334622000621261593327750251407995095269580764325788463595175522382271720862924788452224374095711349712891919401246959790007389085287465181925725549548166373102058641068010121554269080963050049876187391145647406831382093526293684207083743788670276029914390726795399493655819536956647002649067202448955083471264037806909911757647726990683251595588978650627905412123679791038742882067611069298525279852028752139560855070616433624703469634121867147507313183274313151105816104624899465019654168141357241711222471056164746052262970909481705147565702552308715332049179242590223071078313684709414547601887534269123711722708137098060244177382665476214025595070050462336904828585008921945360815983545495167666362240644642049302739883203105973307409418150062922364042479512274520151211610077659863379789766258910244545399417805908463229880766340462128150700809312444003448540087380630882670792561619018615785944563761068150569680228880980196531817647565157407170431252035592667169428575768623177706632937913377148265119993666503301258938488085506286951761392212674128266274816060169413851465947009741073643201197931902901089561371193266529600593816551385770001076846437337528594666044174063341776580510531790725588415830764322963381647007652382461825024994003273183523239212850746114613561994212081889957759667482770939411114729199023175846666186954875193373261864825834469750000631163040355102037303893612119318596486994652713095288396109655128776975809873161733260081475297154874175350372576897315082864572375511892349803556701616112399169944946219801473411788868846434587570427231931910868149310683760005839314949303638560251005071241891232706263109940674731034460534777371125870196709177684448251701361674025521798381484022394167691195502077151067186817475938071908017976960796932563846183851606346253328698405348500013518993575003408694414112293739509904243272445780654911211186639286252248226829822242039354249000774652379679673804610361324904883280328943244211589462149183106705399346463567781838492582232226040707789368061950150493914825541493061606999392586580807243973604647173168321801271971211284941879017244967678351131989265288419689402473544530077089408193827394872808764427268745982574690883945851326093144432322319363927022618172011692647844331574388156594673289956255533210911698883572521610501394654928011703258543706413482302595170918421597460981959882875978974884955109534974708113586500356351610712559742696477567148579605749688471769154093426938775685960763285197304181919341014415535480156463576691645189955087424366261538473420372718373778421412882359746597039718946352642623813294440671195462610951384549353334200644946292056171491847806887724079614307039860719683984810779613734683964870271662743417078079835680534258914047893428674231460056208682278303781140086591386772508884441220467296055873660130884770274449896686071454806669691538789437377485197580226828981781641767214571220038712331521714522514202792933910927546665284596265338515199064625360400164954296051436473794229344014593485273531408544339229053151935636771099545046646258300146234651683679149587446518369342267050236578564027846824231832574714086276967143147921156786701424966401551723747251192879446483242706319464261002683910834417004168728499041490397897356218001051391935282756125690214772468405967827139065566811671036208538977205376326626330145513130460658367830938511622383941551508824628296416334867812495096304165689161155506659706716870385338993140559085652498148506629686548608686869938550580638258074078784160001064011673388743332476893887728888844839391267767539921274548565161610166479525604651956169403563848151134171762189379599139885950268319700793172907009581699875780111729054631126218521981405270991260220265342358455845582426536215472751388398349441037723385054209255763976859552536013660174321285785647662517793302512463440874483276918323724267232592962187398518150063717599961329157803107616401917902128135846168508366426728750903104751617460460733628072004228870213793705638221629075788388987817351380772781857841990868036946681634092557141785943882531896658619121012302006822679259863929013483470611247556076056367562027652168074179648232669982534317612178673708278449458627904601970639817211135251595679622730670170770651607041492858952736604378041224051557444828457977352004882462267013026956913988573447747466372844741087169803735047163885432820285830774603757058955052844415652911868959300953548328000666269049890389257559268143716625722809472747330726540230423855850088153255508805074829689005861417147946263571698780100710318502677585478842642707810266611943462319370224675416122684534036985211275475564332710191315151349361414075083857043995902047196430610989579152206787298275175701628468124434730788145539261510691615988946049437244545642772151450604523276485894973916604552186258129861801150347679002782088040243825254637013121661456530391451902750202794582955831343213346342926141206518393855500176136041623046317422045988323182941901499782919800325018624224359329837725695165088573995065642952295787452503593548899799875737286208225300636333542532536489601654217806237112585359065665900300411407845062959405781635590019819564928990876745836099524745636034402289122284949284249100116499394990131898080950720369650077859210239106008388873295864947966211616240992137298654441028577220493399934070830120825857339898554730972749840381912234104506349049919345162058958509867547044185495896798325239338924893228418250789487414095833543830089938278581355136555671000455026978074197627026677087444365876284304452847774588873364935632053296233174598542729621654752260528797370530990913441013537603826272826961439455342420971086897263155537487911219927430590174069033047883849388089967206265625835342433759415411200335415657192734357908367000943115094285718369588419772748649575097231255377587319826278926497288475836931741910724713546163019422983394854025636096305357314722615067556995325214963759862609311694648640770530958260226383298897689424391128556046469332452110446615468879436866384190742363563675527582736035887475641630923179675520799183803808144102524339104544109027744109205683241801612868518613715307657005001529908519317585121339422576957199683307830330411421894447406487049330770748029170085551771326080534565233863077116260304864088806489542299909531515984358596618785308389258518736401106121914976155601192745250152120065409634709947302036296423050581222161610328432416790938244504179855691424441570018062555488026772217358560108404115872323550491693670551697612681567799244608728905740870443738775421969795894499526553314778571964175670146884371355777354734828915434199589671303900123791147282515275908397135879675657081003546855746988868295750842863327507493348617075425286252212494981899467321854454700501808274699290792861932732571754266191901337058306111775811241666267831463012224762676917855035923430756424867152185522522439449725068709467175299825729846855969899752206769120025395054703372915960534846534612869618799545093998272370859405916658391059695318608996205848344212325219370668700826713439449545645648473228913732198421968042925143747572361495379846185746728685042341385178736764440856321022143294366478415125373801189465864327179697286281950676615547030768983454508194031390677395014601496635636898762227505695047864001214204386858488628803890753896434273909931402407812087144376057510527266163614211492622671295495078307843044949011122612698588814431892311694404114466354635782636002203826712875071619269953574743480345141504487442609226475960195478494172758941128891053493256764367451045786867605961280166543397563073237950766418241175595304535105792109886196072609622541794262444507999591483393332535878351574600991487714206748044085934028961311286050381501936182771849227145567375027795164254553822369778180636911440846315526444647389393063910987464218162606021003182645825265548220375067839901420934703664060295368523606746479758485220153816874714401677160292434739397621973433883854404859981382904351735047279589557217271783647041495424302298974803866244604470623424818805643202516835614296855442179975012811674369091374806010730872675077505212146086643435433969310614923317737795903600103272982994207011841559564709496052904864953761886244843294932161238586982441510983439575172635834044934558945062519083512721749105960160841924773441416536008631180659297939381993711048753811084618636369144692626317120536305237269625527462851275045429258684708964422202280208947448037160737587303254089994075555582171097348400381895866930040567741266542651164481676150859390503944281600563372906939994528735563695736210713303297379962078913627381980819582546106846625281434847639426262597885743915444800795369901292959187794285634938124209818778889228286470481838824219756772815539026934675859457072629477154684250960230418283550847892395218432250085795737994362852314111408111061640583442424752377393925031256789568376320190379544692416964998881524746542489272499402750114624294869861402601396807189535229048276504216364246217387668943484631785835305486759224801657555588283600263745483134002308687399474580702631838288408196142965008472908884683822575198888242667084036859902140629632476967897303593692283290665202574528562272071522477306574586374923677822349354851751441074712576861073394553358328925763619533404835416474716029912531071536015212356279205676198852106076822524849024558952619004740179750210258427339911327293456868876055746260198895196165689037071139307508951775796437479452857597500542881698654967909890017926201359182364483895649196938238745929849699954890876299487593874334648593271787961464026744249486526910175247600185657589846411158982863172652141927961513253839866198877150270958771752768293466244531772067449185093311235463815011621288891097487250424429313524367335925827590750962255087165504578357054502087865252437288560564796080095913350012774034466141758655669786548986476526734879177187836644025850409146973469369737617161853626309622387698104277623041712514576016521643920369882864979144358146209180517415012979942563088048843458578614836757495335474776870786954665061899493421071303231738998991563340465466132059596928888929846653964385695948339916514208218188035677277349300079470390658983196184508909080033739915909366716348447080155069853877678558773757762904321446586457126614211153800158187304473911541820047516085895340934682477353366184979221027525556026541007775045212500574062067286259290017219839302671132888997827695117133632393531000728031153169519296612227081679659653702798846931155624007557266931623882202299016892885015153567136821252562208466731564465821295088687401132571802156938921198330574647022923553804473133068685071537322619236009875606564977511696923029541104698704612325102016488213191646626023296636470356214740635368462853368152382901214311810344040822449029690566224853558710963489569853071907898641769305342841073028758780492492921950689498367705654717584604020620646170739094457857901521619645536735852236466857240181688986685978516951310555470375301627572316122827478829197162097560642860332581472341124406029594562614789221345504448795108642621426953296478758004840457322027317366302881616608708463750482694440870725224971382467206704057049089522595992601146856535371061641405722647946582090428789497146558346301962251001814398738090177048490550356616097106949331928192286174930849808739378580054087755648160031766616811287757828687582251410641749171380936998127435332705642660928865655709752500560354190162841083069903933416483119825869206604713811963448113025786802533818046630080044301454001973406520744987640186050141269367651790639183168852921310216798887959426291125559054010489927126551980072062367785850153936535585445306101277841938551292111337143449687006005835245742830458027847118205622903594495785329208866458354340770604076447683673667600636927390079824057358357319027970818477473441421516817921792749668668342298912674823482282555180831603684286807584296714924252078679674033097689021739737538453706525604261356932562666787474305902532039285927319681192604324414927853399813834562658964153880299865177740271782394796395359762535825888695063005146442039273441027520549941263769829598498420915377274391624129561791039533706542144226647752927341918705710014505985155329725315228792814018623723216474602263566166435673953660983567456535421308352163844894497097412199322401621773247881898460421328230728607225159323192752162121307309133318802430559675857558843773559287980722280092538973666013070422153823079568304508379280519664068179348696674692882518590320920619294182328529360158838227214564617392245730744464478544351894057685687064067675802726657408002254929135610526443471200711288933232456425417296550170272718535658621965262276611483791720661725463279270598563760886079646349885934905937719983394808108173025121452497555502529512660672215603825527615496795209714571879973735123652868075490961640869482882566552715149744622885566731143942331890258071781589990049060624929017676801897046628603811896784824043739650395110645293124547296142918284108672993484533876949383308487579177580730985180858029573515363875061612744765774730151023555154976798106449249005456054945603871158901889849995172889955414522472676325933128826737072163940108113642333201290558217674385938486578839679126598426643382445482558115743685767728273310404503420684284556326460847648924381730976127764605844762406369404860790749648525284907954546230392779532087459441128757226844407835071982858852112321003068308723093123992065706237567659158018643679000636775868331042109299014902916653448093862520625093266920926205517079672285389027546716818239116119086495009469671722291139673256062521787684390932906036567154484435975039206072566739265663971145392793459594851544056533913580384186500268450905652574860787981079166197790525588838871129520850348554233283947470820593634510677680382829164095766601866973464577188827958472557781783039656198149180685753756457676335305994533190992784882586680133030272485072797680211442212190975187458277656130066973827053402191765836301328861210027239251802704610058802134070270931630057042944252050240787382055366732274033534741543988531369955703445883522576881876560819969253816034570796971366263128772734605843871362422502586079879820833302094220657759063664134097454633168022741679250433813862280115045493059460833078292796475326824585311109692913499950801421463082985393579883526357324725491632121906899092963159005142545182658860513099286255428517512519067903570882776422428459241836391115448654599782098434967737216509568348023701623248021547106167917563679668731696336289110199502853700678529488026042241450333447450811817552206310416458097251765544608537761471486413102501488911124712452173723831667812797466866954216762052255896515148725144157656331799196906802456707198925060511283051263412198972836932370540372608377827127758514757738776899655156384263842576504328407515353246297346757890962179133553481244905498345517656798249311137959996226051314358539164843669044864019025422724046026306738084865934874840718722983880225290649936019990646801623693896473837452931620050701345709940834873542604080599996186703791311647826242923690942129274604279427894048183638921442639592622780069350184326199626126173905936278740225097632061193934041787224766798189959842900179801094802128974177852809964200035370816447089722795854965514563408590858145313428899475730536565727858583467733660251872099463937171023058248801589193521817653967873633980109956244567637789381505632519254334922749838196215439291552345624714157093141238231292516416991798423809466109233114476081817917085809159728320808503615919161960149255240114037314501444544345861255876412066368956613756826820122455005723322502448474250365340082209587530399058618566260800763639218106386020641029396884690061584063212404287941334282646651962686458132297634993117386833580181447707486420733870644400123152003916046630269006262197174107571009444758869838136072901428843163778224064174301613094981706174158475348131714701045054549827741854177857959360215899194400656246518754692897579195772529672541215970513621329609818023323960310161954484318790197094933349059096144629473180453573539791642579162969575222229969159179550072670038049486286380639506453281548126062399634776257519124517653577931097084266811108325751371526825764979077194034457435346050825582688963449051680738684406399012422023602073548854302305984809515657261944822271429192768164493799796935548546085995519974716060303673255900118051268105517840737271716586000397196769580683994128660806476562454498546850552174404604143013402713928848872601108140313881206943294843144624366532007979375177274857573190214098503675949616423853152986132946553220755993772127131179825496752232250035991035098207962005613780315248252351858996983493067829839204593598726797863196076683491779945589677969604093640086200195176769245665507017258731176430052069644152780374413763806270690093220926684415602684779679603658927017371048336869533129980494495181178325539663784687980367785778308058043082951031275954037840765223458373000372924032058183886569183110327879807689147709001336038906903573448111401065618471342068286841401516808738224842541790999523331250487749785356848716459846007224761441540901349731005062474357778107779905295822700546764947721305590128907783750853747465708125170616306008779049400357640356236381324935135674988638160442134698063007274784381232936252927404241390218041901426620847397761855437178128855964844085168670792133913290820760961262553256445731606655480767837633688138959061777772479077173814270675448001103247249063345408969076875466354505760386532795530813384082825146262785600920479139225265095032774689148801315041759865365265267925884530149089658750414264235237036927781791710801903687461437036867131105826516406727148886699333160104576928362165225616557584371698652612101182456487039733480468724329417490728938280021423069340647481065136993201564098649633101181485671994264070111346519156615551056948987341068153208477850451153643754985158776380390530304001649359907119981948774311534456849996135685371126563044336679891305198225974772811222560006160944907451829843037721979340426553758075246074761275072112010609061598270124014088692714727025646832906077664206139493672675732757641582556403658307595726417864256411671347371874988657909912518981781137322323122029078271336805697863741187137352796907961097912627263610327238891266260440748064085825142191694250293391661816032756723135897167534934467476212419021346770647977535950346935602439219677496366433966791030533317558940122436262250287893006156083752990081298472646871498284894922947966693835149920991982112270073740695180076054830045712030505135787998560665989039480140784990213983787212392144698713143042551796473995059776640231695591669781343069329163963253095509734018829261797856137368091630257545351208400095561528896233338047961693458045198464587000183195523817541730562604423312091292699828057731135708149336541167358151937178247350568061028187052383969651795527651746007530990261129713635363631253726135359538454713873977731015940572298243104789019902096556205718242060505615170616804569143758963970175711276105322610232647082580552491287884167050481430876696984563271604003260483489468683731555740990679100779684772664793448514804879988253677152629323110450596881920695287099971684962741008599652574362739333345017823836469265979565455358167865317561428584929291600662535930487318711305158326616355098275914066479679827117318333551381922135246674207314069525777490106479797492865617417455227754348747809012068916235951380358476295710947171934589894280416059623745716086586564666599718974517973878037902643189569226314192017042046539466513384092243408411867767482963657903119037382410201205416708461646677020482331011722397339539490043888840281953317399838081986767811417149825215264892319728961358847166124223453316920508730335423516181873539839123950416419797210350449072971431485390699863538322933151416876371538771624373829191830401091097641235529375416616184531209542697767661244093504454725249601200231238257931636614812245359244606828862371725978039407824205790831924453668211260401742200265592654653762396246528495766364774406083029450377621238403317276770608382967831163560686993186480681579244883080823657436196829577902896477011663319313721331123587058232419517197322364166613885702972815439210096885729230786486476769197273501217242060542197450758862556615430918713455507032020064491922079316046445193768595320695552038432177846188925189271287930080563154381302569778266983841249067128144863781019095282979072389332352698556606463905242709354600955534698621149949518707811985839305394865721809889425714086350443135485388022879471795335983690699523467969796133808463297149539001344427903537107592869847670702616739577129577059727920914402973756435877754058989084212539695549270158470336977715512796974760403695887684728675267472887415001226940910774561614045241203580394903707684912445570566282407892638886165222228277571319864571599581898156858324062285864837855702234757605981385549401468282623742759618335238449237853702002790837964433995310218341783388030342447513106105554167294601471286615983569066697366448114587744339632838039804506578361146018390655046896866818981018745815099005944721883655880209762665997012664410190455345904468594531551837931668518873790302520324984969592327376861120191871750103585768315385241608651808128012594545413296726605187429598273472622759455262703337879123491424649393318476645240646480910102244485264575462489194285458926898909911617512198567282364242690565092260165866568771647486104989207932819706475717135069372995489043752654673803591426289611252955933345225162766337750982809578187670376155656506048114982283160356357800204288064954272332662195757407776692598082649551175026591032505823210466375402656273496742172946176428437504052719213508863096658549285598056801440107556144172457143089627879668901812880812106259891405424202011365678496989077076015315116632177064432848122817533889325771340903428597748513226891631693769456027661299368322576881993461592859264504270305891486303746006326394447473979258159435169675596927841090942700101933344972747812758100911683504418569853397578138967325475004283656975430840462624292942473258261546076974521724515371368727014102948890566135206776721011084089699963894427616859811516438945410875896871270123150115817783436930385399420302075744953521899167938287498222448993196604555164437797900465796137747002456715585100124903412524342537270725044493040062282199507449971421331245522058947883200897074526486386908864980674704636487308363682937122024508064373233293213927624122637951301274005048601398313834986210720623042495128844189394961675389359101019397702162580565734216050276668520220379940344418198884436446179104529353627881222585216715064639483822130692823083524180409273964424053193740584682552562235310414198341718121122798689724815232500940480347000605008148085518614572895259687408864063659673335564353599066070862163445898116347637720385800636931617597087640448679029654823911799040652686234094264432292109577074270607047775672709347875475750940742835754178767786152350481273224980103076081894983232526110954205187186614786752542549734847633027318758654265766472031694942012148360471037764253710495174555633983867557856498340625286792843335567371250540466726903551974210925184632530242384183726482810704144674281578560367935360346930511179629257930208017502260029595700105885318253969329151912390922710842890772773696261191692539888858748234879334586858663404919449724858601630716970070717715917768686648965391409933907037656991466598292823755770554539327183981478762996137228967780407272228735683746611795938383955960117527061397283543265289736900867144114662899197915904132176926198998398649712161281849178338513702475049244702127231602829042296551326276286882771394249299764827846700521433424904085926292133923124300830765146758379623876703182082059602665781838412936541811408535592404156798837777341476046846164518081160688782457005601396902772715634955045864469861112193952372896960923578515292478840475608385496468321268576460118155290275713131216604264736162442151916785984916519895971389042178239066498127620603906199866749760716581290873128817932521292134947214917703918786727266299133518663589825020939420330741645950967616457353703895082299443574038072151194592478287720271180993813248012887601391985966788038222672819703456814777651123828203216701508726835892142780060633135114605764229214523576829035480453856469316643455015114836961989548124281181040825244238581292584802271372333467885358636835267147765355574286207598750862877633000511370525670918138818508410888659140596011509849808391103863358756116273709050763776350516116026747657769937912092594374650393899759693755417500233317403164706746463690308777647742645236918503935697855552344457431401276664729857584209511701664253966740921662735208794430690908693771536218320227953779096860535046159816251465914902100534694874290945687797218227415943452540323524871309435840035501331225460256063072638180339787932930823294709744251156991641993454690534632549967095760776761950772481131315918837069082827020394603042624301142446034280754904012960975767837387974351384136726994147255092898598222787787012698399497713799350854605872844609269399353428470158720972746058492186656365668596997143213141934245401704374755094594528413247039362825421693699713612367481309772904979703538212930405736901985311180994697172421669517086317011724274038782059110159816538554048000852824845381767148886469441228303059658797175947079179579610773822313260003210248626788179803984221371274604477411235599048401074862255472972915069050845150883296209064266076981728159721141188193233498116767739224048721648252773678166659446715224278002211835267545991075698741146695976224716525824276370985788654152065990271309621711666202900422658127208311282416032020926416127004237121674224296843425661324506293453574736840287328184470719302513465466960943126846335993317287342604313308384598472322208062974316259345603658921899349820895834390339557081380511637527571584208127226905744005696976988536633346660877986923452626123021469614899963451906344890584939165688394766498288172784175233005666942058154304071880583689537871636410581984669303648208401279267847070974416072001864502824616006024254420873171092145627835089018370486995274282226408559114136482253545307770949610870363393219454557565556276187366930778195879719299217723964542402654337959774601942793355755351274133570606256949100975393271893718281830250123441415379197517301169749880177364695480130587200605632827024754048585251764601223621726924138166209142599087349223453026717345528254867067840434489970806480645769667291097738304148542102507356298610367219993246022711923322070489918195234533365528837986419085657667119945628411475027969881682604503421525668056823727310727825320830679135194948565955370418161601521368528080648598146089863554143334828627889664074783321215095305426729748057912469252345744965051808678716099983100713765448087539351772752890067887798367606221368058205507869501897321827541027780829240019971576171449523718619164221213203138959889036948772090003033977480127094246732706954828175816477398407701937825793868376493276460499735430350600118443790626561005441058770276549243170781241486518616417222850092678788898444661491618824218287776308548115235144494786816362153963229637807214049841195230613516050373306065812272116128374315305377339746379678474574860172880464260542037792003428885017235395612983235425230693469649177487769394930543083114716568214837880426341670171323155918366256849048148324123162105062535382391855690256521388799517543223444115948527311906769764577647910669814821623738430222100771856502117355241981199666794496325007032618063636539049484317716072005671281714957046825543560688016729268962438722761945262324854923403617205526565783065829158082269922295311947857076236006608834135353372764000039564295719392931624821389104222460729842623077863071939473095729660798265345251339727109564793926144917815374315677569308009432300491104064853142539303512704614102647679562992312857913093725183432271582984281285915946988311783295939392994412753290693237846581940472864636392023027995284946519985810223273723432330150655226038098543395860571026501293616706822446949868888229266276909483684744065524244179149444377850628498707487769515887115458836114807984905788510468231832895624628102459391704287645138447038431212082610723389325638282054071406127221064639332529687537984962231844513734866532575173905153672138006787529061469827524633162876019122767540182809486658199527951987972170477576444785645856323070501470631798956566300668903546384726346169429836294153917048012421225345289533128299929359917659108798208604965466182841249151248106978142023396064838138360844338113834509298505949104619753854777110876598909922791794489682057631561755854008334007926906497796422626482555585602901783382102161162975432029103567195765531719395995476296304782944811428850970193132319021031302232656664130496918770876966628148708598852170423450638768511196366151799487074580815631960145366153918205990710495977147206788201741051384245190572303629675661354277960367871487000805090629452381235833855001623008327267369477436326518208023248769598580196678628229066388724054287526390192628711105024758276821823009254577239216436855062181225002140035475988305077284771255756127828808974442383557077236732717674312413808427234784863903751522615978487903820149801621444572916204697586241361878783231537412673453626728521304758885529863080420315825407306778969475210437964583129091987977468925166381873943040945659794789892046183843951685766044364701058645727100397759100685289492856025658230065380987156188131378791885053865146258105928568266444097662912311797480832547015298172101598260395029966391260612469617570598758520181609789335453256463593507429528281486173546522382713780741416154274880825278109535569282349926976686980920706737959586001411359750337626439458255205428038835600766420931107873456593514849621376151081062634956388416140195804709337067545736331195025744429415803382416730250736158982165456376991522784607197167514481309308595377450936345356179222175015557133818005060558043960114589392821743069642775045658491877384828528162405240625163488389542333726637505052904520827215524215801348386244097606904950740600689859994789246754412448973525014755216880983308881161056379271769721759684873632800365444558930177134078562659777122699910343947511197665281894802024497849665655008678030271043382928197448056184901142085536571170288295703287699001061775683040523950036421206200355114366227242635931335633256772524308495860609036852370044320716006946863663165202985983675594208299102612111600723622910145367334538418274394929333699213279464390673940871338845179438178207512086882815434886514722169443027568645238220953916314925441525089736861049263311098226060428590884190783676664700880470523640187846901285917538570022595442396078897259037115804607434836923054487591642760341445486692955309105963333017778489224693657222232615489779301420844786324596106681894455793383953771945394065331036328034947071514957417634596918105226089708303281309010534130492103249095258156487908612984118818644942705262533960015087530503146155179877959048627245358689768763642797944495715168474077509535445708522795452754948446164375705396630367323963439857730324504843337227854747056568884315644360627220596874765636493266242345586937070331299957390668704365242403356269265516321022738925123414033994972221842915297477979399199990566931820360287499501878251434514722993107838859098822065218485911417110781053967214283632338767245990674647679237109571354954967835450298210560831137476005271804446076431779721910929872892098036774236724703964086601349292876522666688907580060126110118636893585379141874408799602631935112416127117436814007244806216455409917934640817351728647846393938834690217041606883323018437421970020771625737885012813289598405118871139666069670638361234412866895144901425309668360283731678176432281313160300909484936849690888715914694674544087059264029780891185814155153649043443884808557806903010300593101071663796862160363236887711257063393210613913264651123997403002601960843130466270706894564235544819764064287613498084439461782465206329028320463343283425987253231684049556400780113641362105793004902190522796596923469446826323182926772320328663477482883070311628562303562219191244705167857586718168851005612645739971851485313657553364716322694537408666163721678083744190444131467724687783175406537982676798053881247814505760880582694169371659744760741892640236976169292878285626818379352035210424471685168026594059097922689885284104709255373119878102287522614834322955054369225953225250702724767048403103202869644389686234153799557295785479083555625722746640749768085479528835261190385558664013608421978412900224059157718796420683859168513059747906353377978857045907268077398888605650072589963309484068713646515207852096607672057783072960652864983848730685435371312319658787828986082413444942637125594916181623719898658694293281717140357774041854856103057682669904038398267404715492521534501241785192403474832583590392616225460192604391071537391639961981119429501933005205031125115729809557706957185884859964487106801463232701814510371006448282351040133787883296907698232713331117074574009669761535705862760388372375795212401613313983079753550542569304996051203555432793045948659212515641008158107622016109719306378895989447908608309090882575130828431577576658685823702388518061442981266993671301812952470204570996928030617796284442178873247966669226194053697118142835494153429502997581490366234467084552464906741097488426984639619019300593027884317319899050606119046097013020024883508347042665365909632736420764752967298330651597181473518142658862904751220316694637725060663518079619665919615996555576518642559855881823526657984540168730983585227092549611193555001334314394039449649345225194838686005891927507305841309107826611507839874640526720914395889923885922554105278886755000082461131528939406057091274348244228421519852890777572945252321327971449642934156035850048389877511715395287861910631353149639780331593851647499033537610068164045884627976420895913450316594861750489983839343211352088387883822672326856957602668065928008598822422202474170040531817249175586037313215519385119443873645649469451725771830876311436692910405804081546264356282943060599433585597850508935755033144933882495621334388861168540750073684713795450520502775044139316429032922508509421243084350358138678591889276124257565557958673633256604051349196522334825399373795139562249999553133458352373897820463665212446289551549491211081302988678635174782711281336685017389974715588386255401211624733217403922761325932628822981814047167314199841674218142874629898590995613355393345045443709866421486295020215339766752794952181662654747270693791650949003262364092973320291889414364761093567514424906502163591926451712478842388200792371239456050826692788448974331526729935059182689091294138819625970383579662632947117378956548890158931006963296467378173680962957335199969090630678136235398965496023707023390088500262257332448052664516904409887941630780503449475920630119219723045368954086431337388866941028034195793293480924581789975103763247733058940978553725227345602953654079739703435950894456238585071364758038699517248650063505721652290337624993781541252873213207025680340621075151471756513919756593379102119407403554060270329277770525851847349810231475939954967566560902335716370081237737591941497884306128425782744412783304959451709590310804630247111078151671682973288208303708006000577438894966772082567748262886645626239147924704657452864015681397192242500353910167185040875700479466877160684992173056083756066264975883884681554927664226095480604997126626582454890670205161194476554120446146225872940407321976049076520861228326564433358121524001587183878385682209077315479479080985200586213857157703907343240830500842502388638811022832839857478958437717228069867380969988835635095288139959856229310828923041807597629532744979897957107332046938207870853182818597646589519749059951195969544881405096256592813131500126908926172970735396127052947037116992503964119289536603916695085504174570475907364336062256016395949186816834744589376748487644184251445857493401538362878792345167797292197075820070031613041765611421973742049373458690839172490071945027582745289784388062876235577320102853164866804892615673771866198208759433527483972989014485733946451712705520118067759717939549658203164505144984556621985986049886578442112470828930990027833068420318455714404404557613148947057974782506987871850082523186779853244989323514520412492602921192264106129033206875416038838979723286698900467096942169818976532299558337107897197141619179843360067671879637405562997987509946083180775002105006241841352640474997095987310761383093601612937014288927695965478725528692658376928046884130821043058200393684636325902979492384657492399739078104181365686086279932831989662201840738776550629361749226580808645154666781939222697243630956554741291274435359473985126283295242170492282492017613423010818772008375211394705552548142483592842432134614475016900824630796185463295292029054545529351595443335285466394032796663476559103739703027106909684029204758647261926509667384457111725177766368444124789548963118909489247391188130573177875379310194557840048009911939237654049798094187066770987848753928472501383234748723753833027418264707616683671446034699511475041829647508898896905672979700544683585847009181998706239993261784514971128076474251699285124030777538343021461165258786517068398876874060079533580344596851546630430552313142405888803302941605096533627687653810173461289775985476220299254115200118230181703358451055571689860601779008734990197736382920893177002813559502327785389427838826999229550175862480148338815111241707350016038872719415709507871672604210096660492469392468906815381974742498728163962676640633989869775978017951681249122314620534974753539106127789256015259662032988695114980055748161050460387572548621301362982391991321488473143315669465682050313683327535815983189273031653962510923248218246648734752121720061365711940093459623008030605420007456246502720319857895133403344205253605612711457743057843823866487781118850907103732565859853011783012385584711781468938934958998996341588441667915795970898359408967538770134949250464675642212807801838699245825394254340263034247206925687452625710678523967255287187013069828577553497914970749224705555133610568638799984824067813429227034097957759916305228774427685673117396879720366311312404983777271094219906221082813393391699550291911125756287963341387490526514801336485924551452946989615712555311841854068304085390382406790378470721569285338826164241810363198549872551757042662234818475617351539557910817503349359427947914079293131215602606596462521848660886984565147116903143721118843568011286890936956284493970392586545943422908451082222057882328967947774435185712968245357091999287122531282604329570000749456871149946330964865964196825283078294231825408694645116001840944352983383248654163065638261119711313196695321321130098079132204366620840503423213596263690395463007420496716706418512190269490340057824719812492133166328674099897376050635470612236036480278283798236557345938684187488056526114721848366025452600871662586442939536617846127798367259517835184736318539952874815648781677414423639155080846271486346853432424439433086511354089181682326966210890734100858141048096282720032081571968121503718668018868614337446861597547344234291564709887519401898597042900014381028715542355158289048140210745388256867413893755192927471918202917355722961588797307139847924019979328454410899936679171338443265320310575510650262726081617884087467192440900626603421654237196564082944004115041007191348361612565698562164807866510852539769750245125716035888599332093597057985363691914883722487451385882112119062431103342963971030546482665678126859629520748522866653543949844068478442424510785789034582116473453974324700039141506098846788507210214948924789295550049976792875424095987497761674641052108080071723814183224536126774023767802754542130422186165597722466308910784699068691648749797119084030413520405214533650072303841809829195478785056801095793739285942211531705876970635849950636948604189543437691112740844435552093855667818932955235451565192461070964030319853419550991159974317765679226892130296893829478263720268525892120638511020794561527978071034704114245714787948571190287064614423801569223769106959968296058375820955732775226477609482831824929076450619066232820879212400687245221005680605539488679014465151100506542566375089350480109580324614284259995728521156184039347130772479114954066172260095456935715182252947025629195210126652496837352241746396982710507781210944071236861393510787743919296405946120752430059729204814163628669742375687417581446009500162782338155015217141165974671868052076827475162330649697001651481240521519494475778923795856319777320034459987410549310911983060594668435030244088600311429868762173742130993623428726550245990977442060326923088924764428056015207076855078954422702028688883829975483201223400110705795816008984065944492764963073247162236473209775043352536222970197869868942122232400456560991265364581624681070920429516465114450382649941046893002081307722903390922621160623392504718818896113329226510991366049655467408303157258040184126831601193155917963617863376143989366843410053514614716991752698808278307501269284538057345739471441229414144442871246182393064059935527767541308780174632445668875269154510739086569105082563794671026970751550293158962552608213536560233604508933828777129329974010028945841399649005314445873525298233298230334629288753911400482285662643319991118060582367055264432224585925172641206838895769163547555286678562430081533549391662919043064146607466030185079546486250463643544235589676742257915040173261392499153028836422923078048617598051858554224972963648591150308860027263170697404025760739127563040241964514354785345787419120953523884203947022294041034866065385913840218758437964365716858617611986491125051392422066032747437877615420743417774090821033859661649470047141266838300347725185869422478595243168011474528617585076348641720278572794295119063509746874559515936885576826970752535094168602348423772032609306235555821451752484476424005273430214384632029755265771146864295653534816074311084598878720277517460018552818344703054003220358893943025171321185061621816189426017170143780300901073366000924350671480187017676559609766509220562323564655702997721006599989654314195843137860833384750118052991962012133038430801898398955737076082224158361513550647776751443440482789527764794082082382922755888547692840082708088133417080815644572684264288269821101688235651286631279012992083960972920737780112453434421731886326512263302609159302056352980227228082528820724968100199263325783483721474963764584820516289821840578143122463341757684947644702171566931414263730117448245204845185664086312330903135203718115779419677180327718334103583474159829149742872274922845333371569156949278250474016371341174471332931508539279175796788752776267526283081180499870353855009233784187244788916288179992309382939478150297355014394647110506307794543585686961479187316307906174106657535410947822817250816763494474985244618281736000873815397147672327615108304538827609627434095375843837002779822879205912095912152728352314737363993922505056948610468838018596645935142377414473152340524931837748901194312595022271239362202195058352707149566996638893602613647908978611266157550323984788720890667625620329516514626534701504339835911046902487050892129024299491553290076919649495940496398241278449088636045555680244274733480746940213454838858058562866501327733674335838796626517327144125222087519187845579249649353866092019368987046610978820315768382426928593387929618399321585683426860005993857791514429651444931404714127559122482092956949154716554321771661495322613432901004371452165383222330446046591978803194612136034645094635723566425112236764420180197904551701440569298096154516705471784690618005892188730574540827869780803636775289484729466837802294552425260182133466370887241807157889601017923124761973255392174995089390519135904171949496414322832364136749442499514421644317790621084378076631016271338147777143898392958767866633570820773069103883268384335114578684710803486074284540889775108405292656786769865143535992642163896962613719653436650584800551637671372131605539758313692139130862267801097730920275257367538339690152773653387629879873123104304050293339295207160546504164487199522378491389414120229374222636704705580647829097547978793127918761243693690092370976738222126298730236237145813022577009682602332084206489877999161488973909805234600268532725434605461736524318003502959743603866824817010467414715752002416078930380253386066529551829068537077890152465214453186611344674053452657923245995907962074191023960797431952562176977846900280490973539566146682429256490777028076829236405127575851725597713769501820729539404123627123894093272164295004309748945642829044299197063283457039180401979841251553394921820141351007569647421992166592735837319423702310083280339334954222594896169872156694695296037218549029377736980176049046274147718582394289868732756175239065838882065357963655485209152392981626848034498964862063896029658349180934672293724601139698429093498650897414187620332589164362201268890677962925351825617405097025175266559757558993320057298332717951411321139287312988130098588618952089749061084108146594415571397914185886755051248463190482207168613599824982786547943623063107209169185121416659863912276670598919550918245180760572530619548568162495526140909300783501969193791577936562954293747287691353451459909443904555761914060180518763037886426583973822010811794406185864048426267758315600730950210841161745209269604869981577127961220278299114334327403607684841696460407899854495404966921097891795879350126066428185383870078167032318506964577172296544491063684116839843135133647691675887156958922961703882949491280423081083032191184960704404555732994894917364902697066095856842337132833628385473563529543941184583086794964881023587788214654960761481246667623529534363227390261648659663143264511508862769242005663416603368375581782108688118244987043734497580311221401435741807417321123670168155678189352912306940363709879697141415216814819968304602649017188520352649213329016339068808691553854896583440250906416509502810745523380225595666679946678294091454504231390958946947296533032233782128716744807274522191688441353817988730818137720565630215323081536366783735995521103434484618234475084927812227443554065293537455144227239497139866988975449707335890658834127213099823416928557491918110032465065874337900374038576703242467011594752677790077696923032869542646025391018339831591817494768221092310848747282266775219120028708313096883965588397268232479644976230700930527284473847620810344106396475740574303988461277242533330498570119873737192080771971274054639886207941655250453317995914128380481113185505792160756937124184674467154161404821257805988228829942828259788510102358636883151289953231709084092168851621999698243928602298428514499866774158479627331951227772611992308234635279314896977322233330149685228435722670315259751949197132804912087947861170259694175964488090842540961154956270433510929622838574195159900244007738413979139680722467653362153286057474381471648100918265063523527480987148455059458102699420227893682149264677878206203150691946327604741502235008952753992924505377139257359680534164585112822868529835270809436461724337784101591081591250744188917987066272602353882528863430659184341915623262408920623604041519359354211168802887038969414153916079145090989179118720201380979496843974688701654108813514982513077201828916471094050835817317741000302824633139141094345920684850056981711450621437070800596906855630160456444861152998594359956289790338704644605633690739462148132862392038484456235584315878197379500256090505527147836589301636080919636102679079788179199719178964615216643791351121847264047840650514326084813717010231127129616018907994654261965379760322298366829416444346449974500035960434983893791128198706886519959447420303733875126936890289797487960682351532567474340667017910073826655875297419815080593129981026353637538239618823521508892177948427003890341277093852610256830008666733821914841540480371075531879255710099637107298160364040057760468852477984439271884009914762146563535827680918272745485911885028945976511770819663898885004433900616857215841105603053252255912206050781236888565873218306488225695211377819918817138922198066226602945390567159415390063056197536720383511595268162562218517972806064444974054077973737673006349214963496582905074205317196872603099409399180675932919968597859298471253758190295424924163031382586507038893800911337918197324090206685615890374147502512936633333644332567793105656978335037586976353010132782891426703149685043136289936549237821179533181022144693618291216035880018433808196585031466052325731513431888627352254697651094815952831359014904539369577702312687961116252705669978017185346979509475017630494486456181971032249915197436524623969243538117523650395742187533283463475425099409237106196604210566229893128383655704976612993482216123749937422531176366367092086429827587019903394367075782176503916918443221867847052739848717456387322784013723754734954227366619051683346327200091907120803280637643561174900276322191737891892569898995705597546493179542849707871481959345236303766288878144383279826560878097200991545781127546243370540887630387735911157446774566822558941817587378571464008376200793133980302964359777089351367744444205856041208674978860363573259077279394494218699830130799360369673562179412810811597264968283691048667477790088334162939336387724030859081015435943933705242884723111138446747561746064544632453525470347391287051340336769271640271518147397798416511989869880471628587100018800746988158765204742421836829318886571559426396210390831130771364366493093173098223427537386951470360132202535573549347123854624914120298348667614162643072817303156394873455846437460744708603413431945424481601177220031416023699981473637456872435137580412954166594383380017409770944247388448853282856197559135729427707537744622992948540317564534247713785358539394674093994442977207535668223983270711932226682652000753265991395527589550768328666432366215035003557192878242382764075085964655539978015503908806304371910046040999186996647582315313608889396152245189097367797160596326630483885933763158778998212432941303597434414904623443114273090785839324582505229471772732378681644270738882019056550241387606376888302738487060752448614800212189805716140489950362338940428698814365484025655662723247187674338601681273274760404947688371661135640548294917459385409956977938126936836355741904400206285837876509036707653160022148710727037933242726629861632306523788989852890620503074646919695570655012890248916375126255124097436718733643310811503877110196909507362288634879479324939238039622271240843140984791666840932761881459703997929442284289646138602491079124990413885363625756853679016270890869036885914310882940139899283168125607699780425773479509174112771196103634466815216926228090064342088529370879612044477556975313292205531007447710626408908097004654717379514329362204730866498622687860870210814777961406308874976393811294463576001560480181632111874925396797603545484935791294408142662654799644147045790820648085783180714641124099671326294308552911953331379483873482051377349786753142685964933744045248375445384975288728883797124564366939788833354405508862231939922564520349267769616257815968498295687824452553309146129886404009887117607646948811965373629786546435429499541620573267415124380068890368278658795808344001545100564354549015515890616296251650674328513174784835109188026877166253526106297973519947224926606885874128786251571653134992135692671191765944562643606760337242894607407490396724680830745092484854075182171845631662622215301444443599674970009341288117029901548995449279839621806977325021336925204940230864321969098553242455026228965432182867115073300219157635328774877671721384613667142185143666413854277613941209518846863946429528215274843704525173554154647062988872070082619546612239833328103567671243773937628970056228102975205593567638948428038427231191995497064879266336931160101439493068163878218354284812228583978211937558815580504597247279281202976498116723935994615169018552856616443987347254592146833724398960148139486618293875662542598572183268141499450984790478740538248244901756017812718451391693991322085309940481170383543101619855816308245027809348391684234243087404457015506564555914767884151445970204705862180093380244764220082896750204624665770766247728510634556649625862614355166040527779748017241944174782527394082598026729794864686262298499075501098588503545685683666099595612406517013365629034606497801011893565340382942979299613036859980193885855755365238210729709826197545391190136413292467716455049450269503772439929176711998339219572987846899328525431070386995388024304196064116963904435411625039640032464209211954269296831190761647120600601793622400849536140013570647306868267434261833751497400390495597288674416768755615266729132028604685651448368212622419745835885391619980905780856235082958378416506324535672128077624961112026020021971924972299304413301580643278779175538537520374450855775153084385586744919526249788886703389782171336737410781365428076677239528856490209584943145331733464982023436503596363557600774020684298011336617906074649235728332775117732390589003471916501534037825569312985571826824905981286926419004453050807707865669579329779970207025749934717207715619484733732575865722491189081985177256088273229222033531945253862847176422457292761434603963620227172995123362851086762776335108268423938037434589246042416612521317021158331303902413150639518405155160171319427229513813840165880673453712642370967063738608641677698076502479875146881984346586982606874758166988251191102063733892039946819106592089724486410888880367405028228728535536403224780414881512150084470738766255656186937030226316066842695732612152119989890462584700246222038204078863050982440915948136006606517939114352821558241775866482864464467038137022433940306045937892473930046406299045608629378853204859383670689270549165934281124762297105785503600893161730476762299311858812962883596845827494243451705283257788470529609767366128339221030720741691674874107373463916638360493016227411831639097382713560766053963550128958080300417532235442052980217667926502087995962304739740603113279081825134784284002533056681634406653032800952814409335144331417265145746681126968286618765117157142740719308014432615533315993442894705819759594455343727165759213597721267584213581124699113478078794990932780265760810473206617792691948883954391229017386181548002401458379124329848177272195143810864634855395690886528944163450052111493630471114261051917404881399333075224606410083284206943877573140889848225866699558210578439500068289971496270491704518908154187532968860194162927348148180769485779191801477580337734506361841659769355770942353679385106012557160948498537569748747189002546307507679205756198085608759555928644235679913280414476859429564489277070285531554926087513900542971815641502968499251174725408273915013585014512489436110638905709117146266646024341943334413305703856774213242174732663310918935750395846615206877769115883535066046661614973046227867314760985910542440480943016472928215705823329490239152281650043370674497644276263143265127836757638624920046318824514986527135871932316245078110626425263842045485317433821774595865004657075267918967340708846570349699461716936289949623572621643736691322178016036718815948637527840615172838263554528577913857965285961874824740420788341342505155432263015827771561366375973792504254604505056637955295077070338842599089985587396770999260412992130410573005913621632869417344898013685513962074203946154075516081391547397099009500403541108852942051240213439527451823640316805356385961432998620205866208066712542636109196124945332539070861288541541142150908484695659862486528289629052235931126061792266540770493208300297588175750883926137602514591772476662319141704625218148308278396008780091162441707944665684190237845993103633117799721029212523074545605929376011051665308070681601846494117466422878485834430064829007242812373350453183704691606939616272865086248618501335547836565669102023519593381141269930774155785375870034738361172895894780402691566017546899965746532776881191907046718238247995148578204467804494112945983413497206665478503150007493412231082991779513596925782658164377303786604401826389622285353884427983206324436781763848887918589048739930663813281548542988944916935621677253878925270252834870199810292934707667812806860911549189054993050143886405050178483431578231913625917556798773029301399276427660141187757990377165427178008933019876568402485710521122771472311867694188354808316038591200433901112754997154351430915817752371630585624162673217474987209281999869342728186044057170441367276655815312435350188130726130106134813267845978411737721303318328636043759043627176956134278805668967978348955103472292194897854676315690277299771492527408076082234051266289189594649678329094377435553667452716731091731845945436265816318241277272012914952764364385223514088092510245297488459686890691250141136320036516847855338582055715610935117429398874068250725409374471723217484407119161622268601955606472535811362591149172838321418653706062544582684781139636816067486987893551005958655246331221856959444379569516210296590459824411852913441374566366906493629693443134918173068829751494660317419247157810228852717796773926507693702959943691422582593990017430597961987934731632615436796017956971357860267139789357737337452332608572581440626065900386596665492874801197253590200940401323070284239159713736317091404940775981054954483674849041340288817421022252173721040551490433828180488344669547229149242110393033313222005603076380669876655535268855814961535689539249033829234417986925428357762371690830235328981408336488917544940216107857434798442389682701809085903428201476641923286865773980321010339327110714945445209178165645180460430347972822086876298964464560513899985226328959179378899562805782616702618879220904694121222134512405683744292179444631370648952197948738003771456462127201169434032658298453835684025798882759557206943516902538833428610155246672351099661476924004471580960442875441452649619607324768031014762278262009435670301829651432303217071220312125044085058064071481269881745367624586633825050791990697182154932478161530378967357792373562327078952722132793722385353000172114656164515581606571604640789367602563642514931293993294291392735984929649334164446057586266526516903370501635806986298684369134467946211888205701083823736947523888747805349636258134376760898195249861606072079635573475869787469120687255620332757378077495241101591282448105696437409970548889019448667791263556989947678283254835531391684154268822904669950291721392122794024347524649762532536709389357329188351096094101829075500514281689588189389380309663923823155194476400441825534929945931479518022292277487036378659434980952966990748832534994842482469354375197814744214653534982371183018357798456630691421537121634340672483848851363278786400607635005851964975086136787482457104224294951165130471648714821743374551075425256518583337777090189660578838586579713058710436760152216715827041045467180070039313886824132832799374779126091905876588469161553868377868364295913363729464703952047561988770631976736061796839009507900585704097674713524653650375059325446725441647387320273871411587081475274469469302956429837100743369469330838549665482026041867071928945182731079466557684813191582436554257277600445504987744823797386551660271420860961213379049289572334297448466220325494278198520358039864410345458107040425119438587503877597962528285138464683402624889079723751124823190569534471193919677950132966771147384083282470206718501301092473300294414635631437278648631391927582399273035076276341314105458954360966010691764612841731618623780604765618593961584105127636439720294468834570142996599808055180449072915274064553968934052324760046502041672384620640890057918903067692669858011808252478874572197056067628701643944793288535913158732280422307843093871137453782087889613666146506266502387662533129750682906115403966327580745848148714952752797206715323544918461725724338613532999341986495394617373229855326246074935781472198358604670698958269597816366600782272033103457646921774781950794277189771703465319457362163974696815897253503510718091516882446517270029619919295094129090948563655153257426667517441966996523469357813216665805964532628808886993531316240100874094163884546726204710731649688287587502984752179724602971969457534691054070094794879374555589053082744662286997705437244416724488450076793580576992674317905595163965419585675696519967120398697135548001588931013682521995256948644586730644101156978774520727232578871973499982447911657145635755632507302536576468110010738351487113919866570053507918802706679184906779072131592917824212421163101536091002027790780053935839151499856340235171539165173883562110751956078547096075469176866296964299638098369208471239330311703656735264612465002295683426412363434467484312907757704784883871019214689764961178584208264690547376855881088689030685950469942963015367505417679503803957121599823324800474099701063467259381651070643784154815627890989096595900093733460737777152574713472514905403058571434687675652181749221234629831220059906375355835312298432445682806027653447287373428518217152464157609496247747419973166806652860165612076580551926394055689751612456823349832120493201220723640411805459462250245916538357510917655368407503371159352666441963305285516747665302393591563901565512222993506139574382670658080676551634584941743966850446992489045668455261343521523776898591779613856807650243211062863677285446527061536888281812951265962650305170765641573813646978422758546151417353077209901306173254851392310769133969184485940014906508925555144128457936200331836027898728451334154647154980313951391726285544401335758440211499117928290527256516585672951420734128008259807274055374468242907891909039732113368231962389416374346772914143333116528564385377645478167848140523197051888240604785599642279843705977502076068415736735278843549199419864535267724516762207559539209146029086798798536470581630381256903700360513611502852494924048384665683656598863010003920606553934062802989077315931514983764867772474681419442610370229539258574770589562133270664191229247422369096800305670058043601282050042607759667510077403859346709699010388238876435171527711546827315451239890140785607887962929076753100995296389415010802240063161441464581474241791794588678881912514755806011036025963253985315520878920055109281902707832332180303738986336393567192516629212012943215291652772576247427209556631396879452098336515394967574238708839449080469921047921374308915069816785439946328190385180965963404821287132739823328982963681690264846515973247712436284797741029037052023955023712313874588537551239619039786685176109850533152233108326837884993163174661438415952889918221840120158105404662305695492551796688772089955557901302866952218111823592733676731390488978826458658422636668542127285534700414604143137017573174189364407263575268289643251419160659774257771668676907752125548500872217011680641892014041527708149621962965024320634509918306220898483731434342147378438419751152871773180076480836985613505546184508101346631284707217510314553962507457907123764273916925325130066998855773160809455522152122124617081762373251512225665636991851955306162157622712736805122094615190710376050741403062903201058358304446565828328952050332950609826352061335583336670094040291336520265080508061650624270823568165626573077257877439031684579371739115145302431179978790440719146265782766255183460559664769793114548230578468811417127506090402057799087314895753406140115672776805631745577971352877982394394384707111022990902268538013076221659878167220405127434471012411474376031301895939492464915495584262511219395455787618326842727210406308244083394136298854774390839818494552207094810320871362813550319604705895524309600453652052877492139594586670740915831237089049165219903669686693363350442052330979675208092220829327079955541843901502334635774652974283282096311336157395266264217287002767129528540239115363650580772456033678265161453160792900516213968125758642812560583141366697606627596953414432375746919261337651740214595894480810158658036954532784343041411698882748631680075479372802508050723330314754829645764565071690597736192058698010566050138604885690748442042857726602770540201593545869165521777418743085570753434489294516567831935791320824329532818966729793598726033197028235173091956911467665109393589720799206909936814141115565660072647694386944577182730504744593452361367541244448347464821235115941621414093950522779898725706968937941231986977594523400802388749732130517124310999706818449768405374186582729067814397978018367033697641724027037535756227216345007953088902096312023824755517045640909860553410955218335644257770067395704331877407086103770758848153175693345174861751555229844621364602177144571747009803174955094278604219255095753424284148176324504479825609411808601443207487366294863751303312607429081454677387353782913016874460092089585022352552995755843626894954936716614956160045390619264348974551726282001562818031584958169690720891657330713385514469628953726933709987470888579926703235899782053728894924140120636086353405223546426577022415745734907734598379025386043310929093423292659486133516808622773512760165410505414438753967361068761249352906828909003665960639258303888005400082215278836087561509718318114510808327321398271094615307691455891103612519913568316224028502676560933194353238567127253478423748886345376916333818400217008538935294975339867623086192951973678900679668948778882139326043727926471017255430698982309330309898449212877877196879372504318959375926887596181987221732886079965745676434205418731560472826170343871648203318349520561836198755335104850214300405004172904102793647171994945966304735014137346859788217614337620385240558265495759227632006308879183420699726525293301926128230338293400294281576896262577439992018197649300121032148568180347274331342358406639453769405080091835673651053263912892240872035544417542571786673642048601674364679381996019961219511162090817904556319281108677672296206658097603690950431297685151639730931911947748998653085856520775139531402732588677074472732864672960847527532538282615812635561964852434694727825349080818438489792404694552348344872493648818439811246376291978040420237049680772586933071433148243441146014910257484397499284089945705987010096815475232099423040988473681353956526179438269975043525013472242489063205937488354462057954976088323962732972000671383043978303005172721981533228941898065855102606372654656876480654049500565763783696869614310468847051967341865340970581420242504753273933461480656714910612462662920215005920682846679827704501592627975124141585256256027849383330166312265172854636377331626002027208038781545307706579730818510157673267700391974213412379267726926257338121034354212430770440735816103341957745948396137264710114775816069381307828592096059008093156952424153468215838246069394068130798739588449949327601180933261833409797629628219256931951279824546141082547903201151572603591292646024946812601165226014232286077438064645912404558175659185372116386326526577486319674897919016740869167303233384961398790512750102429767005150833302621917255260095588490987805615710760286796263956251014002215600428295245278754009859004826890393042158662822305922855796762979017494386411037353547401307550511261464221275135091807725693421032605300682747696642284842127657455472061269592327556620391191138204392783456043251913344701001735243064307348189587981607045630442253851231032572523437850767921615651432005789842934383071003606623226379037221221923947667630315418820666198244015294400009142564503044427601047699687265664881301539374532448239778042542593993201314145788310994946649545102680793999436460364272352779130148031127072888512423497973817939885494156208146598831406875724466168195884656442295167903483833389828107232877275696023696625263386399553040508769903187209144384089809355273984760806183172899181881396817274005107669500585246982504596209830390137333185330158934789740618189428816849124569980729038993831189726594155746456211044740704086799746462607157605406663504818739562887831961188426032046135546684116250089135421085649658230580474146554184349511963507487528937217525308282510258488049670216261594353428718257568556835153798578216335884045691059755067378317692388329125709219712843697632296571603545098933618050574311769828374219613737918553479431395439006377625098723625522591043433515121509851680809122018171288437538089412762187221104240788877567183662837993890589088821973864655999950801512580099247990614311299581389496576055147835374185185016319810699744735241765852489668762161854756784749954316551804339414137138089784670477285192508487225297802597176238092393214286024641644981073243279145909113030543507560609160951393119277673283225061296427991697387076225921444770394461144025828522258457512059147412196734432707200396372018884134396202929198389041026742178407202156251995442765785481220091248184874241143443753581296357045777534835923731849652284718413649112564960525487043949488154806071003203889933426631272559340043724449985569040098136786320871789716761433950189582413509725464442022542762256076767187671959956177627131286654857713001652340809181764961810625247301325385602663936247794457312519936930293733154372476026961973696302141176713292717651518446316525740620567344182985923641967360739506643643266283485380369188358046414264596126494810312371740063291590457972220038875337699240251576071425711999557296858797139210914569040150836753315533803006094667248167891392919641783958310630766414249564993420297789525601891478734746601270343909997151388918862788329449140160846553219246658379308730074732565149884736513779809667948830595281616032857170499994008109938919590829193135345684428980676023392083625147041548316268797516152525662438388677979680417955733171330421543830664453798511938327415119675867678473105239811127631932376765557474532693002164921268140619097109641389261457197840593258598925752605499988646112484099904759245150394012252009530962042980825233247092896727109804054501974191454176791276005715131136919976726531980538391356682798600749537710214243704232685819136064655680853796868406657557922812381681718275108433554450818387784409806104726403574461789540171818957396301493611538538727060407303623142147822615309508878409623019057813213855729907243003258051353949242526906380927890849017097733221950397672041651854396478842949499251745118585292108125140425030177862940773454743067724483776767124994785776678865381159257653431403246698436768848102075458648154395635501066686429837594432205695819193249655671083439527636800183338217211850603985602599865188871875315137559112846323806967565165223396148527222281903953609520933022784997080032656334108697198734041374587713841271651718896799897539967356175272278220364148854186720911206308652655441100290287179586823393052933928424185209356226897467204469621111227164992328476823850044114103890444517949838735922869523570214140547733712775034672916621861491813881444434943809287276837646038595602233423900404344008138682166310359117401249503005117058947143314122924704407787675706311323458612229858265832696309411331535360785303469410314536779990045570956493436553193876357912149391325824256754208672444512713728146485491438337191805127536914386846341600133648003772955641560725650186247625127349760257287113482380542359488032573416092581816711061732410379409556667461143190825549905958474379132187824433649697963143814726239332069735605606971330993614934348844937847075653906638745677388117872270631642901318961716572240141816592045265303926810725496162491874150399028172334248291717618727850725633772656464992055273513548331681555115813181968027666392708194075871852303526399678974208693692282565783159104370321317839684271509381198772035654449023578604674194429414636601663219058822286943587687458671539810346010071915437548489211585699142760152593683965400570244367138598631142430301949025524291129122230265766643700309908540123967060363326872493705092454838088463234667682516017793157442644523745908891065248942547693495593572623952412715880186453796941287254418794964636127617247710120392587390804188819428912181028344432793740873882796900058050983590476569469817823911031014634595687390550744163839562393102836565251925675544322724622464339651224455242585321325364015649143939222780480907249098401595648044443210786660689529863815739524814513538431186030608909549820036390537296994865089618306560871502457486910010683105948136239658370243997307832012828595132179392602291242658405202109709506005660493281343065166771278943286579373321513704165720940212498616552534334500718109862028671568471918533432221714238049750757474340694262280453887413377236832970222605307333919948879112833250371779373122442749510670196197611173651022990559146078169759648378118041394530835899804958923329234786329245320739422976279240858281511076824861358480419249778015955164003771304611001458148658117927910424371655704449929616290467728378331766829244864871739540474279659527076639219030221862367833054495012471382874952509116371452925734319622952962520080417596733280716441893423007798658851553791395203462289598055700550246595809263496615753824741540662805123849259252579715333200484404467668134964929360311111774926688706886366974451057250409001614878054884962513697887072305329459283847728806777549300653507782044831043799866639553555200388183872448060361785517696063896582188547330124888230964644404825305269175290871562283642236926738634244794384485344922897355930690484080113052266230886843835139131545832186999111559096821386179463942133654879827064117575788324818532275755292394498655531353243561776067861445778853004729887608552846512601294828602718506473984756390613232424472813459609902515016244256727034060019851630582132962911593015078180914005370511558410390124473350665848142801279069932705614488523051955716040697531077973921006726799377645027655929298110719989366249853003706381522275492720984084869831244162277885497952705522278455603355442388252262551018315517854912844137050408001327257362760192270756407545954740856536921681304923942784178108809534511131751080604439073206435892988514919294798353346719649431921319171793777921231913677028524475074387439320261555814787260568940382161834712055481022266102718069039466143428429508085126736143804699092867775667589794052598851081464638512034594372306710974897381798575532521568375492756842808778477017877390585404259571789699512800567164205624636761164965540146277438314587955018763751132039870732315940268765110003583870906236985996887925824079352409024073551181866512859230258095300496068266304567890823989942336013056592043474153168085164081817432556982601758916159858613989849416394587128106470915660981270147933347381996941016895063998872505668571069167241538238282813594182506065734613389424456968134202204015703205286926435888424329291399639366445872703230584638640496707430555779520312901687648519748900855232586485639954433875041265654834216561586042240066520017113006902351978886981102861070301928202147701534826324629918800249638601990664559331991869061349044939569366601854313251026539080774872419527839123421500106948050545909207561610367675792804157818839329473102860046883908977093065626461603229963145845791049613283015214908134113710128618895124866585703105593251208722130019255085184273068251664347536205975752640394280417245147117590046343188118099373169530428194455706093243002574491749041584121846513306141810612365025995666467569410879049713645490139322871445651927790453111678923876937765706860347709598240135984190650879938046832009144170261483636685145156349266867617910953461747990219243996099079015200965175038600038875983318701478018313640514032260704334663440363910367910423410247877159975273231582658752675882655043524644280573762736862812456671120156359539064755884917033431936261514177402300161119635288465457320495050476967895825089188066059738947388573065519466663555223718394044926494216921687715600781346568684367862939171502917729705088914170693623936453881352966673764083069741317629155421629887582180466123660383700782598468474699439719368723622129787485840038616809532007089306669113884358513704015737461056956096105519227559599926699863908959463348571597039229078006233664290688244904166895680224522920951287809386998910216670546986692815895273166543238207460483161083309234590508701771139157898275668349323174027162155502163569394045810042263204582030891647429206927930869121136084140871890062884275373699706846085372008359386749328213163882152164879723516791587317776399864880191358845463685129599725438046037878931392873289315120121624364745629543172027445138944086239536360055928602461041324134593721865173263938090297109468579948897291189018640508964543490211115493735134335357139508922438109673591621848376889379561854395335234080811592699874061364816264340524062923619578842940236063377456615203749915335393805317364028966250287507700518530115350382313201883713262366957481511568697862701108838594678023954065471782145954187266165363418958068692924573320162416884482427923447208027756078529411730612957262051848963434727574582959207075577694000265581312198376319658201369761189310423548287132094328063252749063076716080261452333559431731989516435535481219778059518796380710196121230272968384791621721107265035520577387662099516106183224620947609585244576888580899348544431784556601291695675600781067081684074049004856872928969972523097154907200825537150295011346880237262223335769207300577928479311292538352902591864318950896391484353217408702558474850305337057520753279160832351449265472935022297715732827097309337878243879265761997952892566122249251268823749201000770782104283711021526735421759788309114286686481748668549606868214696487776036149254384508718515982157198186802539042231777285295821036021775868740486130134461062673392297261567901926902690832324879912151032647596552141279206141153381574099899113310989678903586958130167695155073266385820059265267847571800619480347290048231954550107096603427762068001573326301440285475777221197601385879117667347803004979805369923188610149098671528296150006069490533093108299650603918092758990978914904676748822631707702607384286398647465387178124426995957697471006379288918368511005350348895531635639984294452500574683003526235628637854806262892434464826399754390262050072399579900137037135459793048826251908678325167820105985256160332711869440270269804545102202747993681592373191764116133746082806643344835934281770693917967248834517752551575548725635074740499015536676835257291677470706612955611377907441537998678352665296358687810873184626655852545237382524324283389605856287547938510265140257663438353824469744340148665873840211892474028631945528638555661562553831227862609832332041395130497930417788873701847096669912203979403908498549060120612732684309476447719343749362363857751371018040574651101351995531296772205607132663385734282404832526858825457803194337854321214905028419246377174845568018332920663596147357994328875954332632946809460622829958629996788154010578847072046988498032184096793664774416293579202776032686834038399948131848336803121979241845828134603363770336780078530540585054671666339458735145406853662675840050672699102480599219379973551053468802061108852240942062859585001705727224736364668294135992638149687461321881104841463925816779458367187572461573401516668168303962864391627340206532675140190339428744215140374606862425616241322100859172344739401561869394498852827561703439137320322285516064317125328441933151174085307822487099184905048867586340333313001434701558186208646021166468006462048667343126915960734638759510651290511393709337108722026523888632013426362267481875318809550111687525710579945669722076107252221093371404894779355331103446241790256721343042407799719001004774109299377719209740716271482103825878232742649888053736221260341942990099815625341286960503387689109689140649982952240119690752995284936066655903136775660721183520833635725450483211737174912010571889612781761172996369857833562013761409609837651208033462663122505702576113100731407637628870410116924157165032232220961578552909208890290408218131541164631089441721522059137254818960951212927653992603617921639599898501021329522513857991276744896028925622940579661545049533752761037281122648536079705333110366688441940964264124486676675647976665616551238104819890696082259011383933297065648651087056119290806559111593862616622874554166472754672112389310154365344932319749083788318220882143103961871795565644991395579907053228194315087934920411266055502232089392352877520127925801658497375092249368473848940174430433993881857319223044667931873884464023214376035939964813733053431629451286576115465355862044332111802174549528954677218803460095621239800071980612178869877924898469492794843154383361295275929878002597700049930912178960984376444402734869951797360961627979249628489795960419523362547778457285409212941511904005528485235692600510098039566637737112109997711499372897148569143803373644731178063658675485174833658919822185564423423477440075835862186346942676387110980994333017263797999526521619111835498685978619236806274322778524314967418660874545534478949304828576878504624840907885980671704061851542923372691339691755125616430020701269222823447624994227296350421198590307662372567533259786467924166257381471064406321135628014629491568256010227967752807760481695684360775002451064116593378313214843868431591378534884484273414363173361641707831102726972556617268193413534202855055485476321888340594251563852134922695278688404485619952508533009023662084099085863471085662413273171571693044394685695079675660209577183708619064010712560943479439675118816942086749235097866146523733437983538696603623109496370009755948731727009364219650461337360369404536398947483302989576899823630440621773006853292689780987662797390359604529294829492794306677311238088902291677554150980963978629042781470191081910824123125393734958347814986514165190017249655406916451053587627293792919222125051404068479395796595559677536701237315029418310145930256778218593846432493578510575163291363570088726337201519235765438610731456397275632486017912145219203002837549639542448707053403842926888707785671825259328085778588469226894626871901515391188610661100499703863128249226895849966347292953508029215695131551632860532642113870779055498511112563045082792882576836838432915914834329538401911976725729758990539719982924870972433342155139908832437494171816652665677796017882831349625544684343331342004361886143780721490546153567295812694878698184447721153284414102257899538627276771096100543062912131499664380904690177113638823785284597942561885496742116504856360507525081640561968761474643188675147404090131807845012362341631901189282766773691114533284738816306510693105574004341915670090814823148341827090141446272182946127594421721486481573904452871075619633062270910504490953734392846607575051690616202223410937664448829090911416190090373288216372584740042336262586481721732706498336718843127018427556155516358499303236774625822156099747717719610954421163955055814827287153139294812552379195748506138100758882815545975861837219461625510830554990939474424944341554214256262298093794176634916793950224640808611331083897748038935310275855623074684142524394208935054056968066882825639261573449935193219320977195334531118415272862663744547606562052169023590249330278240007663345451188287021645013662501020065156081580086672899849555633325594084163387866162253993730139087268483639931098452145474630471636863271197787652281236848895492629642857517605806224241716082768122642212372186541949050595540150310222877711877217616807255194226469059449668082929203153512719900899969438202417406375729478375343790340775808091198928714741719192335482877263718436661737942917096987733609869526587608142367763823539106675771801118419277347519734816984373805950019999762055371665068156831418880210399238555387510791524128090095274163012290150648615726163497906125509639807677070443434930403246867006321773536798204197817025185469812129819563734626524425574526389950113175177335683177249842630636321029617782162599431465000992240438653853915554002220462503777631188467613561817770271869630334420872360432651158220262897961225637529961109208889637107419323931972554992246289199548629194311014164486570131472493893262847915215675253747933820910627662342881338802602177715261643815665704382634982638391303240344689072238485762412275614770734389061458642785843948533441460863663028405320958085559787534804504555583783524607095089592415670705600827116204289379979424719927404737703054264511126167442605607314203872624189402966856595968787879468510259159586400964326567425674563561311518729052018828605957781657335697232083336980212847395891316652703819062573795949701918392938961647683849780548380200092329505818949262704312938881218083016227209760304348738233030713485050425703286721633058092994570769836138637727994726477693402956596275809393799864890369623957299695848418690842835264656093083600689059672339742399876478849895981407051416087099016037634925046386238966769053314658362290725279933851355593583187075019879359126578081627738597169102257141988310134964034250580875665217972138064662499674144328438096380070430615627381911872623944789475637094197501624988021362339044454676267013108038488223514843321342185262712118398779714479617384469103440778537839839335218253464750716007839266844932384868287623251715472533126255624461028667931666448285631491496786432584964315212715151332555301417903886624478451508862231600315155830844758674889575991588716931087284817523343004978795478148007238724422191754538392228978822332176205728082144435055555590524040290535699512979157762830149291339324046107183650009297734367789697116192695294427956674053111923366864031416934298975075190533152545527250437659590870604509573219505989675837193721742840755295881044840721909133079983697111877619950186372188689050873579524520627951781106536475360141441287617637595967404259459787188659248381865761758539267769467693310307676909086082438892885851039450957199091839121893114494241143507546679267187192985854485287623458294491995783950613013752186043963751530823426042127274105588712445791325615116104354814573708220251491891484464816967654208238995817975395161428332188576646930261533119229218984210984148803725799523857901395911290946832413336340367904943228224097549885573532669187308658513313292366113489150875226756565816415108671390122246620946037988660346075346383469780076784846843783257925378565225300703684930056906020385218960061793878899580963149708323098750370080144918247044225470311417208238908093645665676154298443307084443747856335807254437139696285631866990784664117356958221438236650134907837782849954782977274194547112337911580146085088533045007396553191919249918865800803599115808163634471810404878877083339983189705892430731410190471117159321372381438079415170106033530900777652088307001578696813201271644668629158083537519373565419641358029401650121656994026239805022111409597288592230700147403264798914206905323867477192009535486935882578607503046901363745132842731293759636023136618790811507745315570860349839245526861144624673258792095271866848132338199467572034047334774958675217418757705316072805014082751500869314637120662082699197651271077046368856024628625905651869589597205787329322241833887446591520292367871991240164198453906259705707462331390660779117766655292852169707691430663129234200091374410883905596500655017754417667261023016271222147396464458678919882148978249764132596105792811175345655143579328810925204127210563555914207209415744069402680908616485483723320491259715121750994497051507128083603208880038352531223292838600788106747675855409137001094970331632752434837432084651664595435461958229172313787679417124044876602337608149652707957839639383963285596493992528852946770139182328002053522290377090374892517229744707667150661681228242097140303157223384910221867180461749606372044860423986827863295946718679870969344757478913208434943557484472611721159707976384186266363702117549067486562064163056300947363979146894042195457158003435442426091253745798158438246065793350936793674637903473772285653370108326210898519120020231305728005133918423770920762494377730381098919196464431339133375808767808515591953424035044106053266635106683576722028139509638653287319289928816134345744222295377310472106170494859332346008049020957760832643319691327832170370548900360671369427543032946436613951177990617841230873750626187167373226934932809028018189648594402598196149067646114040429222673508575568737894892312232095903804724622198865275584021447292231517296088200200009516180197833652661404738272420697814891316757699804694740602801522849119386896876989800467078197879419249258699521591833956325093043053805699663654276297444233988342188089398903997318210242366082772056799313822684198984904065980955191593003513795317697163029061107356717454139073319918633009996430128945271877274080189667058745568333072174825679210135875915869806936447246344607209871268130257758902349850023855643352957861849926863872433542325110280439861565329587713895394746973232808990166758405323910858010127247597511835866319310326029079290325819907117562231166347930324954867924518474952525832260947770952864257214179918711985410335396216224274456085596543320513000767499396526778712153747427175328957962729635383384996564170711521581579337463407429171581944855417888789420026340685520824384503367885577133332813751732679202328629540784018963474812882470687464773314377848344699499049025300599420558434892801192027800995371427888284048846248740199758045683041290902015863523753627490880399212969223350017587370708057622450681679122859288783599585613930122656318718353328325345130387198961366513803013541907536233079773958876060945657242624329118301946874796023740982680875646876750298626414353777453825328485972998066800037602553980354674811336874215296759527694404177348600027176854203821143397453872211613781046270673777840453728776246031410532210878827995607656931611387098606359057810740325958201271320492971672211592533863018755802784193590890966843380854513430399139872746587898560151418338443585613343785267374808766516870755109071128413885182837258399055746545670969525658814811385069575866156298029045575880615574471574850703279012361010521752462752384508200163762823755594408944731050790282780211524987911250764460846390097929402805719574676062253875636221371012255863885898797327902859236341809735628384248212895906292316945426108046259759136054182912227848320350392933389900661171612304346806349095067890709908610928706159653889975236353673789662492790795216778654787251823196362448065927228636902161050043310359623099276037403529478975220175780855522142152786862480390171804555378679615052915473796539067516329996733632984308142275488928159585357760777468251413070751543519053291770502223506902898480000015614507396903944861369065604795460551414094205570825438667479031492303572015364599644182078718218089621910764989447587447733552529285682506627297256713502255598978025694624386575509529215408004372925635612779697856856715618092842568102162425963946653650794908514306866403792926658996653151059654982288478558678075229147678402378211541634504261793680846075045506353509959432480156241648949759577665595200334306436662344689433995387882119627414660892229319463630988415599912831818600871668466120609528955168266575231182797199286133875589809388360381316015838734689856920098811793453919229794097895795890562561816493018733231298812103751784517071820293874964471593804480354749471498994641418229155012989438467128862649188751901890202092494407914942677594134766745304881005103492541879267467730478396524052387813456183893116992900748020162330182681429604637536547747306065435431154496698358526642952553506749815767842074464781000918249502602530111458463093865350106334805107797808281577387688450420404441173052483936056522060879775140880793783104509971752640975075922402856673236815347625208827254857340460779967651905732792762067694990903650420008714952701993149994399907758656322624598129809001239093243087425468518409908140005693349544686623562238401663177579302804014207999706318704533237591447506820414539045356845499672846957418784900053104217980118382318016424548890040270496140741602647511129696254767127642971058221253277602648421451979708047262811874265857317574090738257529020287044225855118246215661262418469970168910933278321181534490588490188962901638954889244985597903805502445580403364226273660486564959511054016287656713719066081314421857240619920193846741067539155025028532149361707254411992987282328514502992929571014168764209344359616913139601828805232227376269134140539349323825622826427654763358638671182472206004937147636743602536988368906856278905616843982192813284899671986480915806795366329295405268318628750285130100158640214644275807772230882645680760755423155320664330131204319296347226735097779060354108242558411570581791893314181566342149903341783172162996394237876552860724523826660911997027309811372801038515791754524261461102206497115544640361412713505115505707706683936237266122824385894934367585316527357455930958554765849945022740606035003259384899526458401591282519630593575670831815711306655481678427008300686217397075406321401306472472144402521277372856260421710803024331951350333116498969148340923926857358448585108845851069078419528199093178400838868431386911577645845450849790524948479136398132089411431555275204719247606873921971764996566063441819528955118443404071388724052278922412871346059059844534412845312620271516678494308430051113054345827893599767868637244114111529967736439447499232685652500377994395355340888362548618610102070277278630215732399715488164007883734350412736698559748683971175935779898657093813530135095247293330936758717138184156439231968302396877842861447252885114589872385223772527472253730776897867586764022884393696819534290742216016545099573725560321442123258848692538155063972719900283913932440579982107572007901364469085981903507385815551911623510235272957358858390819527019828798037881029816550183845419920175651481500872496486684674571663167062037008247340935037550731015526157487972894973317006402760301112563624229790927659706360966699672756225528612156915624354251823408377307181584458240745073191736187417870883553928371068865633968285530349884430212682818100049923761944685621212221982388795107963435703706928870123896872836557223826285477229197993249107754506513290325875990339229268906683598067860954054007099896386015056476749843246655229462950241617472587955635250258640924018847357488118549620678727933663390698301292537381557188195325024687985244954089819383588704986223909853206161974004786088378362827741719484648278670706252327681910278601168990230581695846553696287717417759997491940912586851234782622759203111447455646600185513565332144324575405581462520054509323766620234458873633901194792597549475638422940152297418197731035743599774118781594729460050792788649306739380573764504894249561209450126340921414437516150873130817730151535111409558145115697191278272097176694665194216494485475788852944302793556411122143899150394812180480324449983408773943881817085810619801181692259360450336245668959806106859244474586885752955249549700115066620783323511583651246391000532467757649502243445105071460895516483694002892124362307428707309899105256952714295538798700771150162341116528267510405698253918898299228684596221224482393742514599088765650141433006964712346901079292183276028071798984613472608049323114308660715109784367720300326699517730621627929636255306647321069382450915783640041120282054618382431147888103734824759942046059546258629141560589141660456501942474660826198615873762765628653015326159536869242308502958317880173046499902618571167378572341925466374374015448158576638249613364969996567580973111029259385581377737855966321346811927147299892578713874237559225594928766043921170632784973468085901760711639705306103685202233334144907628526250893728019952344222621159910541271671868282629618251632258062264806477438081623663573015548091825557532262993361042120793729991347746441722917296963501689289647615204834837833148599657467499764239441805549227494367024369301284868264485776730396619134036173616667999386213524709872593104048120239846577494017986025925783630948095368777856930937737658281554109060604075293125836780391005397672861786219838898847729226868461514686296128074628366192024672542099100005629887539142069086660278385942426229613051700501376690788229247646884410818363413106543197428927581088566847082860974627789662662946815447865740572762744609354476070978953569120173549026234402230748808426586054685665870773674329673424354264736928294238469963438609788158233938955107404275604851358800010634134857922145548889305058921932015230852653509689384490195906114735934744725668457418889905551737944477516227278153907091785815731153681207341566622417403193475626798963342495580999778363386596017073313097897019658381787516087203280955049393414513026613125147768380855057691207544390760237636650682241120142590362238024354115056760203136679379997040470781433686646794444742859303736267239564774665106330791690098233722987404071269484871290217976456216955180688064915699297793480485963425730229031026937239889619223452682174488605290010006363907929084378214101669134579947558236381118211466682066658999476534126009510820766549304301657409832961297222081603133615974192595610755412801379326670542561690834715861860594364799694449458547986617048830183345452270079681120541748994640066396363734879356150253952996626485563373694655193807982851554006150942745221864703132390336659854588414351854350015127585514270197981919329492960069096526057749672104838887415354366815721992511540930450935072891152949782214398394775617852862267167773402708183296923720535266986621766722465250812409932958595285214398400146062066259095350892396189351792185030518782723383960562160255605635013948991475846068414301660812097556165083092294136051926642463863650361470533978695595805265658065452141311603043458513389973078915255186594008668132369567510781446413757801756490854615218756748477780754379617631764597921640941370805600621895604566252741452803306019298219282411584852302013405543162179559569118837713759316137056845505604659083057230891738156447035295800086886220168006116026386510363720016488211720980879773011192913365051990359619798862601765607477414612405905200738830095673616536086522318080356491859705745276532023816199971711394230699340152191874561775100389716057736620636038869054271325503160829128751630566141358522117078725341677774218239227503857432475170143244868063177464918655167694115730663496177052986363615037044241626179200185697989523431149587541128177718420575996385462709074286224796096976807166445433216621075357310317504380847194760869802056413937735967254074921579077056484406888768010238122474839470724482581857261109365360511585333723176729330956438898425017967102259431411963598335669657384251706440989685302880277854890281146628609155961812319259479930007675234628202894751599683245025004745054509704161858669579777025071152466990723935986721617796424589042139329965511570614027870049554766105922061293143969078376949875067871615565109580318439124015531399087879670116699253555189189269114172235550529381108984173712870795131643198404531517221870981512964294875698136938560827901850010698915502219827037971632105043490460024504195089102113620105035630793929712408657136715158846704608400776594679584372549886860750480566111607298262357889064501717163022130622729293945561326874540587963206161716517759278226808435035708756793649816922819698913472289156115299804611897975081253536694549703587294035230587790062384951172318649109941002830398135642513654776927350449247710981010066546635154350792243223519921166603310761975982647078107665896475219025458400994734763823987100054593527816146312630054020585352474714113950556192986848791444648200029603019915177654650551289508694505942986148968157013610835402665170854498307977130113589881907698265742311687911997168176495978399197037093771673765071579736007430330695493017347004692535417707462007010706751421716272958874129151229888461853320916199618847904915157801989960642339727319644107068400441014850548878818170925575673359140896968957078047885815367620452717631643656615034932604390682149140580288170997166790220698646628355290357645162979427411331806320315861215972661065034826771181151614385434353980816844513328275811700117856487888410415367517748730585478236294969176789363943408867412473379364805714859437591321303651037727416263915095202365350345479607289459759569534265982833826192659916627147186903458823987384934025628807890482531553993034351793673042928729434378921645164217958952441835848028853677186234301550177055113499546086927693813037853673729321593937229015179483220276234255270524312360881837833869850103410648281712829741936083758642155220507556871881741486249389882780886320850893992032719120747080554457155943758201860342804564196146979316666168039651809044200406427733677622678480331516786096581448939791210603569625188141034393366924683294556535665599804721024707316870485026248440039220889656740270991804231967888105113676698787665623090014557120588297968608234169631375954937191590199245070413010575669773905745748720973241692034586459910810245996330684298653065391103862667419456784844470492756905339488454639394179647580628148687651045700243921746412605297364869558805817713225208860448864531471858283554379713152590587450535997063964146696336555911954353565507572225862666242954989227469538768819376102719272460763570483858404795527115739441366740304503895289841114295239919121347977268025685639076838920972222329783801178692510842838430579649845809720209752335088461711198874918892478283744175173486122611643566707741421575160931737671576067977818055440912026652973371300988433439979219834601788272350920196336317456962005408563496282684719144119998450770344204759007567391622359741788559039784645609160092877102526719836717522293294455002198030559243862125554423623007245705462741447517480442026465410386460739262686812386974814228727536243562772661980849990815690963050826267192769024096657427897428794546191725505407602639743279645808860360133413452002856583934801723761701280247716025040362357225388653000802234493815575067258381809827817926880633321252951043761961263315475087028752867556385609521920293877755530607991956652075561693183210702016839113203116879219602608761021849591645668686578007180002500024621588124640491092704553940282147745903648133576698920472648361927276390922307500667702703660344883913241263901424978556474034867999179234720315124112262786757913052433588280182479724383633492495645062846414833373444413347223613471602173326195126027890878353170538401338373389702275313939185757957241357426309094344781751305314052014467550047124563878267854642878923413313016039883318861552116174045389250222922162945756756763252319782337667040988575611343519086775128979459989903880854504886480506828856152943998731025708535638240659752726825988358370595362293255563191355608269547755013287422352803503810271705048846525668106670578671447338183715761957397624649633467943391049039723256838286627915113858706262651654720732567550985239708934133867496912979791194330428647709463797451970113711683164204304169003886764912404315615133614346646305772019313813937302236203478538004494595325941615536825483170318821850544402707021477401239526959683495092485006460680466453090493493244088131037785939175515635400145020311529922042472748880592810508449277558759790728191100180119501017712805378552969980418787638827914719341020293030431283151444553582701226681198900456646325556063158802164801950217307495931175561948847225132521153169727649377298063260724949445988640852489482640426158879170128847646707051396837006532707676809578591503767620258900295288197689586930081047027711670168453467149567178620042823811051565040787983806025355308328729199225703903076935304774191984260609541462443475626282836164000253091600284840469542219841895203330110978814311745527683297708066546817486442896746739301707135276548837956466572208121877701037786633262570162990034620871071171996845453144337681999849732284414869460510703312568175554478017208812316228599265511902476160143058377259845249296095800454633506876775723220170533603350295648476481678340171414097630650990047878849668143034869289576787253836667731241118194263066364125589378022100929773626392136818822464046640861940888520936301217276393327926102326422307417565755090324711826421583571061895840704619501527237725453716336434936994217568808434189103392454054543357772482477957629772855825936623839610570568861336170462799414420232523353516108361493616934531820237386335536367485240132430477652960551586418718076917447162000119541919034950425830710500306943550766000193844632466121965166712192575459512158786297973838233515248424577631568012106488963792819547262900698274770967396008347935582068139987090927991006910308760958347693964536696709907188247919342616518102005806694967121090732849421791815310844984523848921151237901776418187713483023900938466767624195013918896407225773389351582458295907727893821991624021755212054447295205483133225294651887770667239664557575971485162368777144016244738993907760239047289600153777606236464551936396818587107088393711588555278352279886909395923686463348163174693867698964212436863803471172221208555281682887321355571384719552299095727794196541104651219257274384159115793894322702795131261561621885190886173079283558780555627658053024171777432577479633421436632530011560776764141712223740438053733761043097718044106840164428202052533812069402987417672857678151127001080537343414445129387235688135360325047418213307276444808437392696841426424385230710760110619473649789822556327020346316345085237157889629269420953843319079727450110165926954166176248219472816899566722963244830991033764872559621797508083766151983078440889158151366071916742322082110011276436841900834480334320854642903868946987053376229175537248747520461192718059716345133865461490886032661408398583337808963983042390005807984849954168245550841144602128211175091814265424685132485405409521792034713183461321249337231073485466667218993744258844427321310767677658727995136754444883757102324867221582088760395646910315700402052811142669279812934494123374128695766136640348683633114667390032291072568780342318468077463159570055722993658271303645896732869227286705862606296730693012472598927554287958989551678488804237265507737696609731688951078621940873685075042645762132955534661297323595194051851088017243143799570426571158546796417616896949752630935369107627776715891546704693845010608763943674944112070963237560893497970581047512385603995179261695683457352750905117352840609883639985730926137348346853800668954116910147892609174992999916253544714594622798690451014314248383888945343834523396707057001168771524347176931178953269957552493183496604511909424255130782938566120558813619400414429455999642686696224089439198077375163337282449085664566579585309183905110993014374402725840425423038058330910038748873152718629200754009818726304302269439804748188781529363553373562195148160097381298944034700458074922478400235258173127555879511516995273717367759935900383365264569468540040823236713997411277473381353398437996349647374821168393066605428145646291961091318758858715433507960104860915428715373653065527156677464396584051484108629154430592622881222495826042661235010231639178834622326417047379568472674973596868028833646937569209119225300932943875068203192295384134584954282859141029340386748062906835602334823161493264335263221886411604483721557137614198280031420286383911708759489177404135288289717520528946817160168549043790949168496376532678977765414671852459179613964362285572312186934214703026158881957399326452966428426005429331625159503307045649951322409757970041639914817889917357092003750710778790726133277557648076399462989121279500485790913338460526870953350010874756531080835002649089899614588931674585411032760679047179771273048209987076260186975094437491520057439104082109710967671085904389494070328841958315485890245983293673720638774091623534782222184224164558305897496789977366269915183874139800179671938016054390175754540226445961960866850128939396773796132924743297499828751963676297407301629515013565906335469985554696189481996360053379206037014441852480155365082547262456436608699604808656746001914006243506438974393180412432989609718751808527762798813591247482974670092084465930349623546676669373076267846238198516231519049855293629145146718073451741456778175719681167748480295316607584758899097485156050509736787799172077276736206738467278450483637890381979623414837092064406929429041859848731396359171410550120547701072771548562291996630978730028166243958861942926287645601310823306361019427725438602671583086108566453661510823574185527778530249951206072459271872159604753570172685423817559534224299936256193039912064556744795453877786632051516914990643121001124885562739242521399246275495382783998023937645800251527052867560053525733926514985951590635551637472547060606789720118708975223714150991905564890816633621426527143334359600543114103172677720860591563363862588078449878687228001715430755148314842273220141688789960241662104759888479565542537523885165904445759651055414289007911630112696567386972507524043238675388381182165148650730750384604791731337899749463840786672224786856478479193933921325983489014369915367626614330160772918203719590051793719680909236645323934951126113950256427687120830366598112630747430342173261387899982853552682592115079172481007553957251653777853296689561148657681238628276796855772906222297189382268521354525812163246563298714314970663456576437663162427876133303822402905355393327523124483887704415160255049540160877694526083448950784638488622245486492326024220520751801364025503821563153622044320844135119451710898601018656245673180231645945712518997580278882257594988874473283514424478842754426330411098811049300956131584439830091944904333055782992178001851153082579626530313080197261829614531735286771949235000488867170500522706120955659864526466444985066968038346352293930656017170602909761364108941943434679227341396191141413259162496005233094153050784239637970029783094246848564984888712006548822443733470379598381236272067161917221912013874116137518583392360978078495764525733848643551423435058479997226530566129759777354633554603915789344734339276657049799252135702904717806110178752680514667467227200539399323991653927301980308268824607391382947040963183392213214581405855495086315296144427133547473120765677923850427647065349871976632855400305524997390824603460639652613386194192291401635848956865999070727453313010057829393860657486567053075644604984993638258495700600706179667385415921240306605908246282337725870170777671794121637200416948184701960442225861738200325697879691771908409246227649624997798706034711037104708775697271881329115269995200926379757179895377947942321883445119332888634025030651662302724729796903000576536112606338235614725381816717448966305251629486659211673131301940753715348294531726842045849712995977092114156526722219216842456962844376734768046567378921762555714385396696945893322251064648158922982809296541777721223067568458993423389486757892031350653383349833892015742948562086121469903152631063585320791292870722527522899864159962076709907831672395531962501769358914799468056346597044011777935892266165877401361752293668078568998875751845397788342180148080362790816208701822502278289494530185209970491325726004849440840799542800487265168340006980215358330989281964747374281347758980859560381954340447057553797243358244165341534174611805163997062524304020342282367759227485633553927746081340695570372464816225303058984395533642308867452490494960961677079370922606814758499016820635079278759428973280906377481157965144665463141709018439632560473865216889177981641243083437123993067922560226900868822726559115638562442435695681746862317613607174680498057205417969774264284416109610081155386924042945014120686990839630215358980193610964329301422510107254051198538289961925981598955567100648881849689383632317707501238593716988146764349786396543371841963150502720129181086315679224463550633072379670330733145141692360394118609148877738718339105141597729926430940582405736901093271472779734419008094280566178190031292174294622928261404292385031052894116727509842791693555085559438060302044361057530955013342935325093310928914690582728766176398763014593665076311517408971614110187618743478568371521364001949220574541422319585721478345031536690685070674530712445482319348974745217566185852662753574991764984439530376032581613300388197365840722809868953902255089091354730290898988012197250574884713476014301988195587221867010985040420057516340996977467046805580568044940474681978919449717432382968319929070500092841255487484414251418938477021710998564888334124661429703402966856273785009788004638027107751761835300532864058432079851514596242545265246764799184107196237843200142242401048132535963496284709510714452100412252121588839698713374103723514904027817999214532746768561949081746625511833332177148125295873662353849905756035092032190705283235290825489854633133833053413255962418203345637506095798126912230610417619248491482227773095120978575509827129850656869224416850435892458084058716390575913413612405807519569155188734667191956203152341124354635575175141102748980612675537551365487377056268020456351783434500336350736417968474793188269038308538772222747499122255618907902843758785258758491115166403539925654892173681348297619489330348794995069945068927601204366610799016115173522414836719971141844737054108935669613431623910050830936622714931206596737107102636819249561183409666042658754009269460393472783368566629728128387442582192097385442227106287537229085270958682062237499071727879054742162866662668104637134330146417744925739069889635449879355003579507323725340973349278474390367622772733419843665746450127289887891964744707597610005107218824774930849337393694369694870870588185983346361702599346552197787332946881711403703737115169779350851390412240332424973947258728771899578960181017981745016570916968170171637728273303337072324031266287483071109916870868639811226170595654658490393244950925569355395079415093311151106137738747351903290944185647714308825051176465291505069781055036853933939583338922644041163808608615414869753577972003653723572770808061164726883161488542038119498895208379698798499445711460572237797754421117380525102372609875929777355578270371484805341632629066141481949556222956766670856461894823597914561377206645157058793461072002776370033898970962443686196624011604258705483730383979400484658353844850703982239282280036950140812357295420387024983831497783500600981628732387919807684556358690610530788888273792391023162160974130448076049661599458813153183867582463544603640399210809281714767234474971942425590021953380139561088806442548802818650924346174286783257159678417607020190469814291485117124040027578970205123731578645966945092087896097162976794480277999304990683804990602254378455187372856730027360675879994392749785903010542334235075654851762496549842706168828087963398180608634071377057747739535466485678043444547601085586505869796308646821249553784426664425488403034761168079631323297088741271358420140211057480933474653711116292079930043738088057431569697350876737195086653335268526393727538212164875050515167749354005329232883040276798873585301619361408895393776197153146096883683203806350762611487449379089776750166300616074941966108933425474182328766581874895280927512225889884432475198672360554579437178788144745245908821125718101483961694185271608711122217940792373839668369146839846985363288761131656013282285801220618809546609245774250492180479469949314458140481810990283893216181703935393317289165301021612759479832686585526689577768795559086728141044085499043325778335684596081674561225747237953662106606641848381674112856881431010901917168179622971607375825089144387128857747767990894848303932543501263653063312198313885021758670866496502761251039554126124949973808977151614243988736996959872466295612787514508287809897113006653018297428637009944265949024633043464352863034881142353253132099523088593600103481503715232891189588618278620375948199661403299281964744675993637396510267339694445603800650904495754545456471292912274871488755993497353416738906115526678965160427282581231789165948166890090700517975285382408498801229173356844548361070448148526766151030596867379262583320324113746754124670807432719697170516694178750834785390692744798826121894935731477392819661155265044257042427071211770111521480958107436291985045611083056072525419890641923266615346073539441217522493953261642931091759386918094970315925414852102715608203330891265902366346953996487283185495745391364851973976476221746500613606251447260586338684575640309861121918837006529454009396428778745152420626009506578659024354619064113828705907109856222897222146021018540493777765661274211417657501703023197270275095532656500644010988923020823336384027550468722570399076538187613021107298896971533905946138258907746038004725181180571810822757141429312923865335695169581045605481787419011908096485892081056845657764447523916383474397398418618598017717904045910544214954347776646805263812823940900310190671629083270755498415441471145612584446402243717466221511527259321318757187782174642434180916598027899185134298644743196410304602652338553704855140149428312189300167206118325372252927046646232537437985745390484257677736299164899757297795046394347413354224550739391269036212388962531153679944356363506799146856291094369984948065728638761239626341772707615246737635600638478669029418646990803125924757353096627841212046124237848943751178574001792212772745794772131283530961187188429007734560367237093233934983212350729429702132012633654082952101832937672143824462538780905135143393046123293853820455480893801236729335657265235439866050794655863636584726140091215921793842498987444933838505502773607317324403951067348872499660733914790227525197311285192996426946521276375960795592181886354225612309253115105097996579036478588881573437899211324993317157604710577187211509447857988616050138882219845122015573026248977754223581133653395031062569320125384025945380339591437659770757920219928948705675568135885523232456729831066838211864660464431582611900299547585783784285737429915414142985663932061161887244456586339997174943524128539451693512932781315064581103346290175822814551422019848913826561361658638610946436851353106720536855508539887977332779028692526714663677693673859850627521750620752416036526807293546230643926587764355774525203380365797569084975056070748601520987706340452488092931397640024784788844597624343280364480817461810292797298179889577155160196093794994316343536237387621119886230408256875802637400822178777307942804335729223887162457640979274455135963092913451954034145843312197109684448615351453384286895267768682540125023516620655610741691682360768744101276829940550196197829843315284210213974546105880685660579446456567735964347006907800451727906865153362884606757336638993943765010822673708976972373126811731628794453784102571433675717559923514385651705847557019323618586418243478526294568722954274692397651206217302548390498602189742083423333633436028264326666814462183577385973101646241362983125235294354317082175134062182578529324785633530102697282424805200940135728652219599586982327649413811319305591336984023588059558709209124143279212233783054463317187283661525983207582383156736579354710986248041315243376235481135372893640263778627349576082265900297354150913570763379320059468007608535571576331896741906176147689133401093986168834653127857359709405383955300845151262258457699516083941455721301019535410553048194977466040006786050901203319575721857339787510114068402679771295134802841922616617266168283501252034685481596851764470720425702977925708254138968431481330878914516743035742864242134431475462628333627779655209362492639475703885210586635679634095913299450487790919508285561355516188369565680343834806330127140231347504857693883319267874618707851936573289257170754253877187267508751247284821151392376830267463480660506357355933845033374272022170038748571349457807380269036597687592423691409621069686123974603533229754588640032557890645104189495292684019873263917683337013381164935900365965898745988120620827727095655150664422732774264175201333360242946596076037367881993050391278540586019440107169528491260421845643382449024520910589568719406217635544789588619531460811402280221849664922860799177573944425324167643223767725279216054948029213688188872431922803053874778416005736317622266074605202750659083563925335659894686612534978401623070877787442255704603088231625221651864717528838564686204341504540646326968388211101600917692572779579677497483582698183066586185670463139273853470812134921634084411993712173528078351255173598618603822977507554400244479822550699255716135597339411382334551372784805904749452218843284597082835112505221832911913520149806038516522946796650564494750203646908544934572141858372009251728462559622059077255428066117459472381694786650865352186441359647826946094557961342789023286930360418745331662459789424818101687809288719459764285455059616287574922659478991864846418751614611825199654587342158681212022121200183019216298221464739733409707129034730311930116324696177541625893674489684989145114324320749529521112649858585779190799348671015206702952410933271786128497612627100429057174346863896370503877955428121081502028881564320254622252195905264633098281754289795565779672402999584063918208417510183577877821818827409772462871995464062610613521191190831086875567146967938917910591204647487833529069065467951749715899097086215478809584143141603720938297908219750579337195922347042738612550929942228860648306687648489714712284563384929925348720900353946491759996915072473331453132393920016199787646026310246133210002210948369449161409020972571646509831122429930153444880028661319690746049192830854737653354518991883073427315662755636723360832312313430602077417442171139486351331478427015119985840361678554438828984473489918141125346870319515033615972682825203089016963166854365791637242341360202743018592644348380906296332818947949802300914233736638928274666051463505764028591419491706379251761637319731869524441377012294123832655587281393010576242605446078856504820162244376827938870790169445953355077968697017532304414338967476086026457205287018890727869480018128487626739062678008788691144509111819899379649543096023753480197525101058802350010006316825575654015175628010910297815316926641357016222745506600120857408055740260040906710153967088782444099340306049221834289855964679782175777113160302510169865297155636893685643655770893285618239929634218224798190546286441102261475018235838370097927730575165080665819160404807120942719797369322581823068938111637907800177791077048065285156697024076511485595807839517390758451256992727859135065240389435252335012991618846003963461115873646603292190501424400671803092147016716188698026597168834468590635640710780028070560260460571893904806511866966242200661148013588321821203988179027298850506662809233316196351603039045764522075639316297328645412367124266248672970543115975825138827480258554789566407371808538014892995568022107958621557275404836780613602594365292716990295846914468782976972666932946144739192553036666752985842105876335411212193291500719776593740362278957791752162856242258000730028568002874292663361434612214930463342096830674104658548103081702437502502388841688152003999512857154526966589836760042203510639572476242099333629402438808521112910071991648046198040716001445388898519308372403541900492192002962406804643055685183900851384823096932657971926554743519285539840572444764022871513816643675270906155535078846883046102901276283350984562184100828786706838415890908801095425244163063850917241753493989122237822169083096029399114940992241516032406051935104066354324892185187308021198106623111149211949949918516803647337532640914480576920539081012098008702835773852720626461375659791003862750269527301077694432865858289269346390184336831907485975960817736717253813156583672734950062334786159981134714400366246631299473941316120012932176494275466292968773000539025788680067173477978281721907151901692116359863945800528933210472760713399459510329916288042817188871355484500681828154789318042799494483823183478697382657733453469527989013011902672930089425784719156351872137560755913590875176039999906152265573356456462068597441736767709810132076977072312099049884437915266611504782770674983558529494557915657463408671814711387449265429065958139780690850845856037239912957223964877241037541982529563440240380528691482635228984866775813524298831106899819242573082446042509013598456465592969059150185360984079596595207457544243500160054458896290883030765572278784398470912491407319470220443211020930653109380170990488630139471339069023221896734513759366371235781978539604766217254440632958068595551203241786966774343304743761030623542618403673343785848426415940796595666613215438674877306624477567122851380918943939005556482922035554009320794683846117860977568534314171201014450109368804268383968093255568590040042883292747132057901502348824954246192182056979572305232988032705348263000123855821290844178906224020386080920705082489862863652355707555039240024585483629154109780443743231870694091876095698705559253276255030218753764569488249883240742145495482013534832851340336675332920135263911883141796995163775071712996087234626599575867750485626617347208051099757945510713896302118733279046365242756403404204453767515407689776153405129365872475045007391296456621181632898279654812349644748624056685203394184577997963443976393343769475450210976183138434686392182778327463020590164861913339205230014700551640076145575776177548749583106019610009173044274310619283323045746050447587535123559752629943902176170847646452883031864136037702374138038953844211600538043501285433651667157564240862253512946619881202177082958458844246848175240426586618389908353157513661059188153399381109610527600747370747658073157965678366613001857863265121588408586829445017321086067675806768701992049557792599799588442598693819686174701508972413369453758090325028766211363117455253973992935323296041959069253565558982986917589121690756712447237465060553076694842866232875827801871641948364025267206691482976963987973506219912307362398538049330653952405617574412200278013450396193290322188491619936562432301950663973664511837151582561207722001370994164365999213900157600338268520112546110245492933393424400222287447149272300055194260820429702104124528963958924450493531842106695224930260343214056758088318534288924666074900913178794699251032496661687356495213778475275264306487863297642561526582121165858989735651662880850966019465581757350690919444054642623629173350537436351360111866121752278375536306290125370839886575837542598549922623705309935590023779290511152392270176682943692322930555966843800893976253347053860328311256714759960583052867473718000318390134960431667109366461520293779466011585479576214388598787739909871487761585422227215596080356106854251679002964196597326066797502041704312338459100643075606332573124086240351593949097925310428383892767078795465895463123347850001976406354403061489236238768662160811490742307887308586175929802680439103422605675706615412336914677897579164606784430046143593841475006241389054284480244404135013427612272851387622821477222164945046616370013877241664323258502945504860134825182380228860791672398677514871181604013486749707608999931487751099877981153706030990948995370004674927168434648815210118646588733586132073541248624155164197780433082715166300022699215400779290427207413059560666487298176909877545453783723195959692242432109645400358435799102151589448812880247392536691743055973700626643282636845787315200375778555238639272377198293803828637974249563773178484695029289665287609161377901780171589425029117362614446805347406517257593355206835686971290659992028986256167724445624769972699782593444991182217135964278467103062336985208999713693755851195690368866375727726902438110996428183188130367676792056735066561008532699575336802470187577271118869567214653164815300651111973606104430584297646522566068896139513974704414447707274464892328023649528192680632194244343289109024909727098962953017180351261532016089531540530968993481194057030369124868688052153402638793933203946830892048127444263930745810412544500693525740027259113285551082305937482563011839767035001058706128529749568890884181215506311172340687042759876394211057411029027257822920379485303628296396772791444087835764288881142251374036349797844939202940003863569665967612181266835210253521529433560685089588284657359102083346003834013287698640158790097916018085007190481819605577912301877717965432093570781873525600026246952701580483495721925841433123592451478405581815532545035073774790105642083501490479819711768096187363746201248572564998738331934036823479904706723660305920811181475667004610309128665950156930261144064175259520082103716036290732267968596977109839341663854751295092503623158814430726471342449317584822202156849672189039384137258350216842041173734570188188143970785561315863771589295809385424247780903924634401982870707000719781521781725471805096284786460992737211315977291444899315126453460596012106676938806935183809768363426596881552370388454356245380753956494833238243783190300155568506821411415984187529672521045583355138543973224794484857097649509415254547457517570122898652072070365397132400946746790667235967715596433374486277255082240343542993268029850222570082255933228273785533868248466750461449276994471631469713235506434890130774390600041026789997867737642074756101785963895452790550707312477851612464206043799978587995511059141692766636635630440231808335842384938719367073699038595273654270886685121738076698342400044408236542494215408091282901773053889335482086570744887581635058319332091359768632154627247069644895306150167042248674377682789190677842065186184581399962533068171721317161116807797717478212938162658791674710837363761989694990816764871060808013064070042283161424174914620790683496819853162440889957397474020823329738270001913494079424078556368360289273305955184624769535926987996836917769670308022559822690580188252688752747141584025562189584000131937312418477600635585371299470768883027149576177083025288380034135993023493420432479816714130171733592132373961400916493618689157580166623279101132035367009562935606542206681451636644832430770807623442640455564455150959340145844628091747999093939695307461313695750954348024577745717105524574863905039658614326583433118900720723981990127898406661289197956649124957661252427316818496535946536298900202357428537174979073795445523720810404211254233789498433823860037290902329629920180740673041077661588799684834150286323337144156062517773374947949524232875884901484693969029211710033657992921860453863069010374877721598204028997428185885389458076032183716368885451757036546684659137641414662396179741578744140515869853450092314812545143386465291425867272723816713244995804507531922736350953466337811295932659030446841727516082358956935429847750122466776507743784923241494835120803828081583758630578270826282925400868500343019705978752418778420163881456056800140473679672452762125443239476981940747948864940859808098397180353869474689189740046535049965673243012838625728756141955120696715574993767300100407632716331970982725314767142675195416194784358717303734839092660279054440559012196816578696863474300090768490066557322544648164778176025378940517377642404610607056919581748681723110076616767668737845422788374574833612549869187366099783098246933712992807543024201072952084359594902600350365275438961172752238986775898230481025678039642619639327844734910300742297317688399294036561674637715498727115225047784690683494530109266536011638331907119872428809587844892559864552002578522904153589649970507166673362145003520085181727465613404353348805671499228309961774823347747742021579724260359018512229001309040217165223932604430914912438861846355501454385673450267096918949305671849706387206715446310412825365454262666509040082711838206635886748875028139130218117139775713343167441786032233274294994276767153158239342088800688705144015914137335097938813950555892381402902575769257799651488806357575365296359895349495248971104855026280184318979293358506182781539755604330375166001850163188994337017530254854320030146229423740501361602886027181382703234307885542008878263516705946185566256111286793875287313810326130284856053858879276412961297284253596003998491637286218378520913827749159265846942587455518270044738615380532635855437495144553668877681694952143776404623173555970942942616144856712067118136476338596218160965772257165826295132515953470075994036314044942817638845255718269024286845294798601343465645320303071277656149936186437294110397022575010682251552345116606090130445962407892636699972642302273481417101648464982656362028647822031131784359863446420709902496672558110553471823398251524108168097043300874365477300355292346113853722123263321205936766739753753578208492460215053950274687521609962447113240670351418778458967415061073100944240959813806590184234514721432598586411620974920350969565269732540736147151317016060447432311907400265690559311607024198194115868709444173586039344739491978108885133930219025168874787718134193685119660947433826067642102452409412944480467375222795304136260230426402231050088506560817922471467257750311102170335550142533193784428959011693996167164022060371212772446404132130264533737806382470089383955075183519163036045874527585094296681106499699827686272602106432292402143098757629401974060787651244929760697207699293313114509114928288762343333399599595644082905635521457063019901538017024907440041260462261017480617194564913952921619779903391718902161673013488561713819771895502070762156749538580128845611379230155262841314121457906128610572860234865430050459025390727034343216275880680197237331173260191406806280943558107609294153923577971681552103161757879437986000122099154563000694986989629860844311021877561330757020793349420857976908079059628178354114778637154479378202924442383671062526503508105635208833315633173171112259967210645652300062791519056021661468636666791473537461895354308384434676013490338928004672884985262710267931904589330970882050039081009802040734811357821956655964630401877848135010045661933656168233067621552981799852623616141228077539337869534039928246531476257008564865108844852021231702353591569229842599950962311328094465077590560281499717068217878690981781215649961991362617091557044382672711519991341315971881836427587282989065513097575710126523876172032655317892798456520183261684569824673094007422467148651638814564586584514131535431196338125997489231712233658333514632958227033459805906446544129393784195794186001608207719297394274137852383643594969085480142717232479144765575024037261938392150107173465460442160318338433590240622203199879724811707397842715441774169370430150714793209427138157558817766788355831218507709860064144944730953888059830038014129590418657157145704842037957135951906437871122591100457461460294852000065812889098773045705767065227361774455976080687597020913091835602949400001510896686144727249140351646297387930446211410107059758571314057133426678500490637107881675052522452010254065319090290937641371423237473365559806249228570803768279505699436796913174675289794615075997794535532989540171536699520360681534883016384889867683244514833071866100111082263926952502618957212181441513422802154919878120131160765966581830673905802929309634586042581415157844807714284258739224931260748237695881874689028465999331729449298349767868245402834399368187081426167772297271066599721082036363297535918080321587658412258916073286668493654839726347732338931165298544932153861418873920101240952977433864961527056326677759793338166291371142977960124319550727342940360504172254661115585258668465185384367339952534060219213529106140290943536797915739134870977152290243939443059252888008101683550538790527221078599276302897329078353942040679221051113770955413426123055643126108536138760761690656309694990465429347739124440999014681674423839246792787820313653474103529027537671415735380214969102450498810235897777865694497794945302756914062001380430485644859730035211215340350461383889797591553670941509665650520297401816037375223826478109055378461558635855512031785251900499513771839626891470884721974463104160370112749089402542410929778045307332043188102160840757929375907754028096665351439208071177669386497925022662424011734204967996148027138411426895496153207928585402057972087053258196239042501804621069582793624846846137581410748183672431599541215449199417021294542115702145401361475751129794982204684630218176774555865220420417161898250939830958698918387491245785424401072609275905387606083651768136378341972679664427451920030382021186165341089534256779013244371555047174129732481137608387631375472479168877486872634110903099902193154308431469710283705490906229584225839311388934779045876500041387104870758224134920051667049183707745038945110134906089482566951192316253019906885605174814311773443267030552260543595361784956281560348225909173881398799870856149931550297801184287735560706969434345478198314497985425942390419379991033681360082204238504453785140911631766700287441654283612753574773126935676407589660373826833199957704159458972251542188627872077653337701546060631235839092161111033294776625037356738674227649848677916530298994052387467475780328278491094695025885014135675082202244264216814358797235972796865941308573546925300674046683525568804015153368758147634980280918889528282763060452023209375625942177754258429245601972964711408957215117311883571165801408082820330860185983633740063780324639582751620424362141717785219657252803662812474067294683391971000848978706989455561199726487573896479307081444483170486987074436248075011429685856630146619559509254643293437581115751008194847828088118273626290518725341929992574161391537709392533369466743587834867305991843327181880278604960641495819246723635249394009148532844785520860677479494422738991914394802631157004276678244413860697048733459668097935136882769509680018477243556409046607952090901303164730046326442334524506189762884480347311042437736628913515070887758686433015160043340024996174662233064885047866568243365310690576937779439897287383644096416170844450827233401291588886018433830996803328881328803966731638551486018596170037032041859650910668947549968310229354783348297401187546079374695334062786285789492208803583079366658170097593497371481751154193087838125326566618441823688191629157095786014784671050801774171209028500508799412612309062122292309129357279241354729942837911465016924526056536589579603158957061530040705918255078602906924110391932072031875205012934199125125395634514365245004477877116462407210137400898155304730871709045196501357105298177183473938102176759891870150914011185323520287057745415677131615960433735048097848622980734181896542112741722083395706845294761259280735092222312183650526552290604714540455514956234134385324040277737470934267920762927550455603552974992759295451463771158804846656990450635904470901352291331793028778770400512555643816305143535930223254614834837637750213379270030254577163233222567113767159628287573444457665409577333180874961042435036147351634626607694613844201448881961821925585225391031152932198697673417973694677105183073268296600714482622545211554158154082692217938415719597478575912591721755206004613688293845665712169385832313441957275310225339806273246908295952936759425920837269907755734736875450900115921166233301337399916147065997468000716760661822431947607136352563318290850792890339064540049401090045743441016337252554429066099446660264699642142817684773820042903245256531975329293311946958690304169795660196662189682264966088484363813059193585641272222685241990812784244698821428724886257522991172440844661188802050650480205450359946628056430680855494082298431608675966317901227936700700877911921657358516079371734792318119815750544543335181241862920768717241318659914951170810288569075521559835675696047934842637673080060086629895575573013980830351099124547631981159435552141954315724087687172975565604323528657079969667685026587163415559595210545640089744251765721862482114228331665162147304729549416528338414162280771103200093461760049416654908075042638604538482983278375804465553451872541082826219610548306696005975911932902421412327246043534944685739672186032954512913339855933892790228246584985654212746749805216310835171614427722716038836793816442214206986504382157551682432744081163418669766311714108024858459465074768274211243792105498341486419140350929805106132531284377161616582045556140640136031054664039891060721920225429588559812134924638203658373776008880934651148507506487831819109818659662066693826193475193159304538442268206235940955171402311458684801808759096308399752728190014584020282075772063061252812404123036522605185490109562408800304391050660332814205626576200086051362014325510193472685493918825927834722927447930220163136272140185195172913150221647508640342977629536614675831908314232003727971543230253304504912757226338199256339847034919037470875603481421892906900778304357715503046402751220358809111217456934517386647705536734957652452197111160853725500055333564195997281536498285772913082607638424765732733989884236498315897114721053505967116467383182577648789688868362564268025035697662269428193788216046391520873886239695026165483880231072612907165986842748968684513343911054697232775853219701984209566946426599709934179519890127914671692094053118313233718134931105300551767454106788468165082273769814629380186680625299002938368829947179103058747302378849313888193451126261364164490271739079632634623540211816774085227770658289033240017207684764138222393060588451948493457629767889026733365600698139041402657912277936246560402466361075683575502319211613880463542233349418197032406371928086631800317944892608931643819634276488742045309594436508960991825440598514445055676041022145244166976240573406573817247933672343297586492902156816731000210912765422106935194305476235839678706371219354018438589625097066865352188481124678296902730965560882866637293403800361010036062486881157201417795569059370403495965409433199858626888437663046029318481609786120642498764950856695005403730129288050675406795640772643214681924388276245165517522010885462724532115127878879252337594578685384588850726567821169816239736877601493215741708006083825424750430321017612905457887700316460358125259065635057577850633783637362569526455032661690905701169253770489063889310586322078640713214055194176700195229291208599314900366310852503240491292057957461526879860585273233976314073005725266613267403678322376508333834532012103537256854885505278686572345965786971196764787303094683963750810774397330531660705579518706436333005151820744626360721927127773453220443794968004223112261647332826662433159799987312938981663669031476764931258047551440009769699936368570772084970807057886928138680002577928146855163032416562791207933438391111314492360176896207711715520095219248187581105258019297027103218480435690102628728181269352979929528841605431448601003005803988162910977182578634788225441852967195858615359866122949905095292277610908614439302019596875391193871849165053799509729716757017456795387317486465814024272687830482633939726422316568231120111225975301963891821092342020938656825635290310928503128985410740757774357315103630299656106649091186398335972361474686193536347590929737303555406527591107167077932140046769085048524068094034133632090664939457202397495928168313391460329110865076747943051775207277242271786138630587932231935073449115625324498166021441310401198469475353922219885644622941769943985266538691367177027363463340274732486241087824325038902318969243507673546806377649229747657139780779054419104320314835433224470729783870978952890999373706246873456793423088672408348184920543622599077463263589620818529077333505215041035877624991186221654636341679440750662245148911343425576455509494604826578007499796892581939518860084651332578829280568935744144361185434205692298574222077459783566813553123617563841243233455846612482616332154460615332689043865514355520180658555812585059732577960664274293082032606360763569518931037706146613105299794363450094174118393551423365893495997813914931196470008900621235483079663637656101729692763677413965063964669617094101247085163953992891994524771844212176234113703245746453899151882123942136176252927365564337184486279013972330361187669321052116735587483807976760597800019832038790693352068590331846483455782041625894680067676475711424237233069530475713192781730650239704020719734047443190736341209132271858140400291164752692478556475661326082172419198349975754276042633262539510059555621505236797949357407660154357193028432126831368745303531324876056595227069355792944549154343940937632110847882965880290872722541677345566580082582515465058804321789806281241303391617935984217764329569506779287143781709692244975052704996896153769286515646390005076360753057292616228256732000901580504333780915392160642858068247446033373512655584845010741685898879228920241176317836195519867463870447533096092002134086793231074343468469083189257668162428827444923055702318229224983445364469753497277278686000448584921547873189150961755268398987574924587341963515844692232570933427981096858272283008576150947461999952123220451353786559828362226056002099133102902024895765926500857159472554148743830977484962424787912022412879052959661531008994890082944491907565368023691994542342569246742125139588936876919888257244414821459702354119202385305913121394735328327695698157618727709025044436957464886806800111491338673580638691177855137623134021889737409772914744390339729370649288030071342777832291627141553851749852013130035791420495668277002262278647267825818064547144206329764070078735675291814659273166483475975600691719688887893465121249465884644624956833863526247385814546026133636879531987834903139812009081237785693814332312146911312823840002312837410252116313684129277629491713701251113893297079858453597566603483887450097020532601896319405054362817620472057828075946703253622273121873395098723969879615202137829295499058147960718661893272612606979841856599358502800573097886957026433539100330618748036039109633332326029895412054369373541480146677204048420000701688330934084218405643482112379128307322740834066013983795553965487021491571454769614986059747455774695665104255970688822481383581294434374939848931318271092323854270372831761225110862697405003726332570245890186580298525783949693873319642690493209253529356467003635304593497578214156043890071300425585997195998176586594795458616974636749409307423080893862387918334011625962817227038286484774598730627018560195528869070683486144614718950197143874787726737802163146841295410063169330295067430205299238402742448798472051454271459613713117630814434694426273152383073380584541604283518989126558871894578978612165774717924263931278191308562770121912344390727566811270815611588503026476863705730109724786935043156087970062056198014432020066794496779260740515826472005045442182981131415184506585006071585498338869238851890229361475758877266823811739371484390682474365796053664265187397400083617025432807008365916180433972743020835924526013509713915617123048812001516107659184818370998099136653554101389845810231183334482838464017443210913457545481761442793562221741829082913176676876522392789202450304145004888844041033387876589807169965370269438298852891009953955589323317044522049384981211837985863095668406611253916347522471959234476395249249634505634066691101836292615553264148758516435447887872739485072470761188585539664173080713818849285227944004236141736047468184001034851746010667051010445623206620804573495672982692778007988853196086786956370459337541129620766983300788618310529405503736796161778620122253502905727140602307266017700449982370847213264497318244610200933152755204383713874407504955916075953964374274667977078190089024839410593340120244980512862007463777707169780080276715850789056987045577044854698210783431158957345643423202079669373254751915605948536238466442261820216556783701791585396473474799192778483651477130986342036314326531573801623385787884855416995763982655435456790305283418069841932707647298041098345402356762084367064539142473570687817357409694620907886792800616691232374334980513536158110818901321795271686874386997501221045266928242516846632759576203542377307054076323906772605840939389549665996947540248793435235399130005234477514847431218003166524934896329657453011794502096223989918799757746925167067004824414101251873939728746977780855217237744348036215617548909565032527208247906035495933874306090221076579086603788361542745036725928537141268352625269463300942016392759877605375792078591556700959276685292584644976921363217346106980959092979745100099439571178880183534020249084938876249724298912918753602131885494507682338375870424923957284426599385405658671881268562068769173431036365241342162389757173864145240022697448739007917342517991394394758146581939601237400197291977903684858338452353176597266543759233108711881261338871315970131131037057901624054596038644573433071714867563132256697001327500555321702261574151260313983792426067260030993413879312319889145532750329685836252074274061888914445336306395604962870003202938564587390801833908885809798850400395310555690360941121178243542200509249024662304931690451564100109621606949260588832044481816244310838880898988790129958555843241342930112013350166074256784882703722647475533625680978915695992986858033204845197534859687971301923209623905642478894111192407526615145696176611589147547334457734131363137968157427292444950287078351839044924713342661245795332317827380169696636901733352142124334238047843526079732354666925201474414075543812812981637501695999113490829289077114852688134239761418205076016856504001450166773288820092133661426692147937749545214203117738152005043262363386684991697032487124936161915549072994870368234913799458991281961838431911556957292986795815130600718518783715385437433582221767847727507489177408292626415804929684640443685812277259002187997086488617190499516652717986512400957210626669376640785797286824539224238883668085851936157452597723750420661146223233085635983887220672903944987090729953249241256073724941747844201306936758828702587684329444405241942493775613565682049852095637304595393908668878935563359339935102022685026299972675676905175307369248199544603139425847133554487693059174544302586599402288142894811512046426528627340167755960179134994021655105538994327656391036450049820338961165900513783127796865287620371976705744320158247882921778708673411463415660821156526162093949645127906126084896300183233724227773404270409420629252942486931752084710684163267523635897842381948170495412681209738743973088561173228264842935634932263511909976544420278483641610186619596257632824178788704457542449644794441756406078032651765030922646901167024593648684567728972292137724046076036059513558385885375763375140071792235911379705624586958141853789029062607712866205531529360921771687491747640138847466499927104665434579459996671165645875642764975408217244330146487514743674555973375994108198189381560974399483433998594310207563867391191188236277941028614155279442418450504623851547984725693850855873638489226178589986471187891354890886798005012490103245629486889361337399235559193683048992300888953540185361075167376150205368712375818901785127184820343162854544030181506074746254949118492342040272358849280195861319459385955986884014494892985892417844592503441824292293826769219570902167654187211299669578503414490310178249004525034124327917036873418373425512555772566161726936002734165847589451002279851529224103145561314951056589450503433118889916338221300793242950769540382454322654457200651960402420958968364440842490618028744550969940915852542260563654457508298261010372127339248841184600283054144946443151713883514442219219962889747231452368761431692388470239466710516051183168245823325439643232653650867906784851789093312482249207695330851726808097392237894352707608375262705438053813526088378981428903478709796708055849824265877816624980243950109995302335296088665731638605442591629231371878209926643027094139140531800332977285005108501295709159194666566981351921871982474556460111033457545391978248381809026697454673483544255463533298361148721547332022154224577317313001201954530551762426443063617877115708427105925801669137493280421695589521615256869952391130839640850108262445962667650778359378860866617532644256833693078286882291175730619851213306170712733226559567919931104912966798936208381323107510640935158340535729531718670602332510441762751994151534689027345598013702613263263987898353805933983972175570936066870996090543916122530884234265942493753070965124376035421981523718805975728354523822269081174908154979984690754862843812480682610461083742782508472874076773306575191978985009805227633794392198825422760026478006290439706404319176837710485067426593015997294541049532013151209814200327346627224855488979108038610448477502281572168219827148143800061292416976792845943308109492242128423302963537221934034651440453972132498024590100798586504226489649518966132280515333770883794834997637036285569635157536020877365605319032945507104045417162148452579120566941393258641226468696500796288379235472637509526569630058944918724588995596133043817585753300729852367154560258309115855978325224665150801597184425419736123855513272114148697065714149342704769565579159229827034575141977518215594241871514377307643837508140989965703898218584450812690713823132598506053558442571720451829779115665291018647725058879180272408163235590612929721873894461803930393475468246727480340605129831178117741162039020284301963395548922663297734156179307034099782919221558967506894003404624587341628873259935264582438803462463244843300602934263418092095268801457388200489389413229883919298566139631592639327519713332765712964449265254759145762159664349543430581977910526324445627002422987884047347590728598641176264960816088129448874037896218182714512640980799851908745509159454965989289447269635098979002988325589290285440316278406451746327270706478800223626337029197987315977921252028987216192595938813334713259017683091334057687778659716439834997227044740964128279439034568669660140835756877116646729495026560200894286680961385374256126135207881028614895628657539263896541820665674300523366148306318582481917909581088762914375051177692374517244674456449612889466423732222480663372339352728032211356176138660689529725859657896153838362398347413195707430345849858308053149186698968323572419244459813294304820306203550399459630691242204323837593006792276408358786464864855981483299880928345549283489280278158621078231777748741727449131556478736551500539299169340023768334946589634590629874553262996391899754014128595269958894564218715793620833977151389437702519778951041117349873294834466240493790301300503887462721461025067485994688373053246237460799737076850703090472708242629024293609475135912487152768375176584585817947397590369407640988637980185602535532496147004087824707185079101599807105157724382905169302785491550040571472915432907704651428385110270386958771643164043812258543817820568509078183870237386406458007849929015008964843821049989788485127894077461039800879292933297505747645882180124855188330904385560168230589703590520083161105483997598788526757950236501577246529492394639089647071514654191606688991056684025339316796570556037372199948735821799389904057493223014883711953106535524124466770006692867485335294583265442367519913228160939290210553232364408646378151678337449083034972739775071879495503182708560819272661897013175118654917980061327812353706026184776799614414757183800658156441255220805186503041887641834589033579306969265849648470431814888088021410847727879810708260711070438919122669327342071237028870936226467509455143464732013136014575577386475708734181350235149723964559528944153552248227415784217730393958005280931704841062027072938064413994301770444886414274811443714730828576980379133530253507817883705594968281645377384797535506077217813340513627588231465799315501131066332320619505157584212292717068340117188897334433131005226075623204495290319110273438943251396712493830111465703496662399143728405225116738448642608883629602028053409049884353291210764578563584557600569610116074982075669065473240111436793491123247689353389943552850835923627342566773169424645027576590770157671179179173037259970519658214159624192614327987586830468320862290675949902510190419937681095882589712163098404247414841010543506066322250566551305702883988891618834793072857015998851731051426775022959665338307053224564380027032582582321815437599471769360445082774460590128082382546158653735029712811049835612098061595112363186692107421664264669210669777759869424425243268021755087086908802175233462459596416115999153352468330965854936849808099339659554495342531213740035526452970637054040208558904101047655444236977922636623451468534451856423031284332434904219590051727105856358352290609825488192075502620587141544539880837743394840711449933842799063578549158331296348913740647311156701955853651088860301266989193125728413904802673295117877424549268423848102924625474611633344484314928205217077615865013360743617218000091777942685188719182289433573950490454352651563649960073702346246754342164812112452045374648637694000534883518135216718212707625341483588434177726242138115839909964862152142515565863456276715244812319219180035414178595031783385168328985729463125034189553794203996477865190997897947433657426042343774431655682026489578521131458699213268629526250288135687052852072542085911744051629845474107276890390032231131292526718087621208497081347155821256829278597215458381587129580733776863723565369702661990804377971570247222753628112623888111484888537557125504593968952042560395210963234349989859358976331828809002602478408385584547297845550552379392974100191601786528873335497161939487132942505511785355523066107804958077125452669068018697059632796292851030542454054034496628891872785790829875252063446732477045108590883302852181325100855106469270792275910304081773626685441734864127624140049124599413888538246336313760938618576237817492917335519011284471953335258824100681203474020173794068284973875532066177786638642550208101956487584432153618958609840856426562006074768974979199174574264682162031852723302460741211944996916649310860711334428996689434938274623065910401657901943303745486415372281829070065749459914002905344999178437407334886282974425388553000882668684611174122131816293943661614663477430001124371168982569528435481286893756286049536344767102970390010355126615525135266024344666578916603853045488266874736900992846944540382901048980102932310249614502471146209451132326301117655924779470821638280111099028104693222810515988806716441564374954687008825449405924075204057018497193645217010575003803548026452194019864032369590089921518269109065316483628085431330438956641055150832894516681141316436177212341774620641727925335799346275268821259409805248140192595134714604434847393066525930540539868609762433740045101156838871365678082747523689906744739513419291151324218340231383673304683058375745222270325658586360336257931208564074452767067753926117524994749309519679251927222525010327913460619716637188156067130200049764408556087142336032635770188667545384280732000347952846861664712146507696016451551674771321541071310646852919585388346397582514495191138569239057301243266878425838314203191131922733471321889370731960518498196395514831136606547567672675179275104631381432985895849518311578440128831787581044784751358138983449681900803852703853021767946856591731885838794958120584778556576671164279856062551850034315031625079358365352373578523838456237444349621000903069344041859629678316821322169474646841777187986535583886306641254584170396090018501205637714418085773461975121633378642234200167565824964080150828360671041629274015055887410098893306844720025906616173905839660484357834661368037001998118735049090368237773421965716174481711928971140071923638130504124550681329906196059528387574924708941319771470613915866541003751571425914422820716364087457100876001782482163266068120174858284300077572430251162332416921189791747286611006021213932303775389365163639788261971223141819337874905869493083585804817001770894138236936042562563203940320820013095772531343709638466012999866953163673311099566293006847621593796825896145979339866233457047330858897775328467319404540962997794588026132283140119046315866559663589051279665374331945217299650599702452734049053878989137562682984493338006909404790258897671774948512083987403502459323323831485607466414671257313754146479879031893135064162363506245736329239327320875194520549065763387264670373725687164793217024087833589928691560826793233930359168338410362114666768852018562581931350900533276589987942652220996438228283966302351930988026525644621963079074069978398274975250799184319917873984034081305349740079878188463862883315285365319807757244052313553634894107070833899001814913497500170297052139292616399749495760560441596620277836774615200492235794277821481934396939383287753502516421681844191648727347420047428254323279077042108863481766947777845499368929419613298135229507496726936108373244188816273275931048205264576905875737452331552829623494267732196255642496898899068204055055081080813028316217549224819619251708035972240973760496401806065985134087441665973271602201821520629764155383870714147168555321823430427846464967914597690809401109582040302686314805554491669742162818436149948081714878498532833052517884757122935584083292354475971796031794147639018002124401026045746530221328824019178709957993840144623266108498412763617508112491666476589628048116970544069558243639321978780419181839353257273196829052411887443467616919266571236404169333493523478580153380594551433868830529216089804956497086719532461190078729117588269209949476679617479107459784670009182615833325814503494190567149148007344046244530974319019584716458344402516707285820672435441455085937845768411915946708847420242970933461397070216576644027251910084464320709558382229291677727697772372504300668839239620179187473539217745679485820932229408799807575409101759215664155540945331411411678749127211155341788327990853594256483752428553547597431036712609208729465253116645966568381873290958825833873051387789761148769194782053673180692148635543748407513605247850402373542664776876711829276265963894800221561144769462188684293799129989119913993030494458136329302911172635528153133576366928291898131026371328162405958807684710982785937430150583732385033383986509503170975275186556906477164181901136379853777383912020367969999090081759838653165890239813228326780806225049671879294714337954086900414801201793379314562112457300339928742817904464509866343602597724514905967404590267065980686097529973249013525144223954759044130469020883743028019006116247266626849136357622427117909826437210386016625363035335157830563418897674549376032677570066945162860488623041539780317862273511044527288739483347873988844571629613264697680794578076845545107180909349620986416966242007356423761556530679294405753226684599323053369800294609308307392973962953368340388744848643460311118038137800761386054148214476453774264044762593347246327465847504592480100971071169285695850443078958667479305580740218712128627369334847600962910209653286810956873871618089374594862406263735922106605002344481182093322802325132163862698232807395726931687895681486805284113637398181262439733846582292402418710591310316942904906555283963855748900414530565358407596002035184442545124058432825773863269374287036327042905132269149179703184972965873473962246082171144858071431924993171142196343832230235974855492183814081893050662929192076097610249933978406437470687028726244623182886254700824416645167906899668419893198958003266070688732294912759270700737134331786554543876756201460038475060046784773901312408998909874727987806118948997868331184158218121433668870672497015073399085783896377388223433025517467807583986065512584763283343441547112443620977050136115857113959684953417496469245944850696318417450377882342462700923167077750872251900479809491913602654403301036222161436610509869480770646157152746638358091727785050151703240472027885360171938981462035938394604438856573334586944509949378792797022038166100102613009722357843436446648347871505932683961230258448674379685304010429301835763010421239856186719578210568585372637208173839225283133722961512446927176060746443406943856334897848651637030290194689729580512328993235689177821986440228015873193773201930609211437279966300785162940940743099158973549687908243359044949545250636931129022476002174982688938550216931191045809067421290445476522127765600879926814848055666621735610099839482628981506380666143163548778091296845345212722058754883988988568678268072021355064137633824417229148133255217078264839354683506124676268185638874469199323288198396386416758622715515450254279330851001625167174664298042884309938803098681440341849050045724814217203195107450452638630875445253112045469874631361687302226706545867961250891881108849660942600523949349027209721504157529171284666797765231848941844841438179014794545340532387089116088469098546252584604952229014590113580906329145880133774982636083021327734020775148767395754548562049576346862091709415462234518761474046929816482834471878819779158267412346430939352883285852990370985959496656579157361468397277475105571536283322879018271326275026314708653569589164457535322688984811021734741394057166186331158204321259615614130071791372721566889897024168182064335350399276876000084379037078085340458877985143202804206201780094438350851491295741090846273159073462866728052643260393515265510561893959353903401002834944356727602511198527130230344091827214971472738371081516731698113197976671625908015795354210823747332185020331384668144355356361370807606503966978754778409658295492836656758741915069819379707672292984119387941083896991937176548118217661052936579641534049706831851003502579499499370601603138773328189198259469776334816174115119990136557876948826552796516184098287152150265714308718162258333691958504354289253117280893278349433921490240652708645807815716527630616517829862387001156526397298084570271840749135947674734201918250553647727581772559575553709943832837140846388376890205037041597478168453839717351607355850249747754404820545209862925617875260614399190638715610560893554770233391829581439687241424969875964664216839605435053552852331275295895721384639707555262722941681254366939629425083363041106039429867555873435024090755424224527097892513970131358056751022482702371427446338602464249203891745109783699770884464877014883147621620799031501410172615047227192111847751459888665238605491226598685168460688233095382427341656722661685265913768497442194865261577939981911676954042429745233184436722535072387577313202211705563402814859654322860800950327293701602629670051379591333668652392770723294913228585812508606700474962074961658787013830323030130405352258317925110798473615955173547559445108742463774364060826483889364647633333656358161695415424840172543080764323869637163785495148832169684809321441616295234798538219233535042177345043002548571712967623656494942355138202803390348474797200519342867725907809082777450807841222977338540127255706987950988590291028001139112963108373025971536428923553740391946722968776392342681568402479103254849517845719389522398879374644136014894505559740110793552687003193418607381390424226702091516006082621760285902514669334080961917627580342743882854565997788688493496668091397663134464254113524826448054346872565055288605481581489584644481905259215363162603828135463406541207999085738579895397371759734280076551261367754741135451732328661903546927183465390605621185641804792392934460814841258010590264363534836712416909938331496709349718218790793304482424115644074533402520254399300553664867626311919241393246413737525454159211846940447954103701935704477064762129260198530659696801852318788557580255148609837210274119320954247184806448248384174684626810678024398694564185847463777889970552221234371328451461575151809843849893370171198261995157634924089946823322864791562229695100664966667081913580072442245635679074822755902169863680553786745281489287068840003846913904648805787849904180438306028661447258107678035037169728080262624740357063258944043959680043103345184356314387730995533734648032696765670143865777608522015900952380790749291091906050582582422971570305302696660646499948708634420836522273887895158529239656717421598512491805154526043752912276544931889733950352598338220604548815898623393323928712359551687181349426746190639540551567550854377436695814476043468748060232088680738144746212573659143338320747936102102402412133673833977597885802506323556869869809356225725108029795566836342579961277423156049035391092864046126361275680265284209734661625835976112285629119150505129461401239262087337770275358344327083932147240829251016790792457853489551795718981931400684622165747757916208330148368201629851421980286551187740176129049176603547356054614890784266885091136042685045288765309416172747842569560287930346892637370538501200487465647618686150711523105396603312556787845409144478047139024592392728250114319975821481369269742243671638463978338609089311910203969651526727704272555461938294794478967473277765792009794352134784493267836027897414844950542308293339018088985886242638181942834908699729806890221101162950152782572174838687630272459943856135067222647811408991359031155140819907113893098014951323810465359290295424019908681794820163362477874990003918536783632276646632776475919860613936590533150697124380962508191364151344239498735566079648790239376360089728144116353917491690198302405964237889049017228247611080538396205467935585345700234802743985138839720315748185845511517105360044780827907977668541594360087305897127496439266827339942976801536190602507872334755527965140443774448228684999090204468648903747028733906654158390512530890652117990461868829347734831818645378032031812972246588989705997929051484049550363241359318034632234683372220830099996737636100024728620443865070750825246965975008741346339895618681022054807534604395862539281369540075839292401650870008871043225337708853281685703839308765172194499974964283854440076470589223611064218704296495200290893147983178852092222571661304687722911970501467531348413926058610667038847491117241858405499370867954650224092542703875352398614001793647955851739208579749398819323083146462800241296481216381032039737828273845832515102323495106645188426314568333737715956438527851331503832674616063125761946156159633912880949476545288902697370009972067223806144312888318976531137093962544725104626099085837331803290353334675287507146967220104776862649549715836018301499793674773638081988802504112735247764059101154907355608250760050807632916093917138432086339262136336578775926300810407947712078759150580413329495619179131955171885954840992353756224228438357416822779782553490713283820561079455194161435869556720189228024008155455291383848942607803570114369913319952966014160463652595203537344980868045395686271448906529719156609709488574697649989789797383924410279232487623478502202453333146624373734159407424651832622772413883233564749081379238813435672669336641959935382798584729496631929347360721530581941054162726835336103461206962605767920646385868478554526016453868487317382845163659278722569946747039955965102011999576021532779828298442350656219446496372437666898371660684990538537429498160925507438415247036743887390305436328094253906076384613836620911763641754017048904459259713253350100486626834982370943581996518993154317651945705894075642081428975491847510485465825232850982598481246865000567212403699841662664580120946466417751608852770269096318558063372923794618776695272450816551016565732323816347826261609689621921072261015934014239302085042443140161754238788804426771597167004356357425995097470707804536094814036170249947837402454316892640986594462045516201560853031576963303156237468738888657026765967501548357770031320033032491771578588635418996906157281519923941620541832657367072528861594858099790546499785394093487248969540532862359551847707900769315561411611548876598419827644171256892243309915515313715706318608754383033495597594571701400612852173563033358827866913595726943753624398525919745031076926111615997451684961740712344615809240657893612490360422685712338540019197434565578028803045742050586106984784032234823945094219369261833841960483246009012586854095565890456390933638815693025838811467971665367744080459243112195874810731466793553664782095619571227426446917201947446334391685225030283371517088235352781369058429668887476073221784974798328015060434808412955402237310706633384140240205735886446861298916750300546134683766022154608812930431518796410992572869984246623351552975135208613621187519403921541525144094612102919141819730651192817349957993475609280217885354012822680273397834449660293674211919950019025237438846421163361003811247905894516318132432618362320047789562783859812858512686657542668885678530322361148408054159673268452846156185089970453784167144332461917512697058268572479619971902389161423450025903944587995794170907011829965923591948930034763201738799180843870803798898568315297176636448235266897742968946755914968697991184950139294496211345486936902469107351416506596696965398523599550784529680241727371096783096479338017092997009166787284054134139027135878690008178597053428504696552971933028038253683667144129326523850356100594733003970377519902540053767435496457761201164715038231045710684034869397472955585043433456744223006560504894419479720580298501395585718523061346282179024609483016494831116502295387366458958357499493982966003137119877670416672207472482965979661028216562328347339176057966067070796196923473310463494047704740530290327812118935241203321568083153424889377773887431847637396630297049030352164814720355286442872798063217846610200465370751193845058953997295949377880192956899562954219495418582902348342502022711518085251194126480713678251230171128683283644564191346875638459396819114451440968016590983954604932608552432143909622144270459661427918879211819198046917227555275869020498051812761192333771820990927489981084122181000146406256392673636730014920859430661613412171472993490237676349146528018029204953633079395623635590488810939660027579822803332206303464932068664345834850766598685597058409264146045976810089474993326151654092748762995132796523546415987614454706608715269571515970139040080358521037789147599579534934988608263276939917873221346325464629193206021581094818312717063622232316673258262135663030424286337319922816194314522698454615450000580671882279167027104615118732915312718884982202629701158766336600937105976116462936893799003196188327561864672177638567698618803908251836566769840502854407532777261396149295025124978045748378881353246407368550367132540950466229420021711305637543217830803607374038652152974139997172832269535719010808920240600211955223673602844133181232384290659286082070842124905407463122185103559666863032586406363738298934096522747657871707792452010710168481155869453280127821695032902576694758717088354114658115303775085947656252957703688206522197674694375294201080997033322355822840223151259268329586807603605807365579870145971267057684781203059898910830461650362251627855371816993085413796917943804676977643507239245548509708325716104061708764478321970970076941588201825420092636071314658496116315178374542550327255758308497653160745326128706057549702568613128224985731393113129880137654508996710370602432664189288511168584890702387317247887851465527988325629265349874641430142186264666150132807324063061646824344103234844730403991174671128114529658943202722958529757141257542239329108086404098125578669105054000602267460789794960871960132403931895348779565721770889312236893629540949980558918652547248983671183845639282784251367474747696075175946159118567009365728446856502607619903253037122221093295462054549256567892967120592848722254577229380046977991157052369058202414083178188754469197361671159972249604634596709510047401814896288574516800556545328849646257524069140517614369072228128241956987593532103230647783728407006286185461793430047146326846564592344815252833512885202962868950247946646080044449038118479587126290077216494565749906259741173078730328476529250726053922705917850784442185903580353946373474901558128713734602307796371960640877514759730275682886635897873981005800239365960923048132491363760214115069671772635173937477645282492797825435146580656700745993616041159945637422935581717096030244537170750836167062124372560569554135436982909371538765608235741200814745509773096090733590920354019984755854362403660230407839457727910831690516829814312817143988477634747375418939397510866425525922277565542123759587654654291126581304277210463678652719064087822035531666300533135323331134110583978854234570699659841360005616935562826164303077989857544219422795110453369228499076112592902271651280816427756236663675096751322086742087749988120943799115284000691944974491687747231378191223185871148059961062012475056754321262467690932157516615532001489071064632926584965381209689800727352762989976705512573150552271591190349745493867496397718396378131593103374386888424044037214978113884938913180052612435006610983355687546381454676244516127040904135110776338119288557974389393474764591113522442135883541687403627336195533170294109549178212131722413128497760986384390301673581325122305116019428840769828131918188025001929488727194838348402121281380306474887825434302182976610560647164133503997828392604591223298322896661084727554785467369960145689751439344380856631403009396168156714114213913171666343491141493038732834130302448618712858972219321165130619714851151305804313732227375043580752479236482562349205557212623583514113082427806236984011288868576886180971100146875015134407027550593116111710486180184896117925497218624166127802515358191171857187581887999713551333665160264178312281620317515240487729819777068768661587022140714157022015726424633367989644776201419303746612237686939815551050803545059043730743989576131684623394045049127975680953578236629998642785341809256026098652467137116452382458186321252238846038698694685975473456165255104989947453676579100066424172785640145915940223695500302038189246463984779946548978766084913164169963065836426428205669785844879734990208972482009587803991326189881110552767094543550984623680204297470568607520286289172670512282446574414319935726741216447388477717200485878714138662119737212421370802582489562736703656176416465443591458861974505252008127081561266602739300663554989554393696532360289579478161585684760580251427056751394496668736258184485453500253641571904200206718760246373583397395703532612680648553119279567024728600528578292334574988202958680500127434297945723236127703874826032629512049461918912879058743815145594628044785927861174091797252469160102965519559725429737279115738152463038117774503329491762632153995229887125076107619776781321959358457172593579483798815649225106455642914766671344081072154229694663170515900657093763195183026602194501691457138699533553317317326187685222468685977094380923077033515198062105821732964395802014280463030120966352849285960757713347432860214541725427139153726138003006646223591456241584079093774674378517333162605354778243006883166966033411930823987265029641149913996473903911077274033718537666548512889656847419680468153299651735505047257917504991784499185277572700026111395962900649607260383028141437645694659202971952675391288421543623452854301888671608276717569461154394835950220227325026768474855536608094588802311784747992225546811396349536306284860657499897860227557103562094927123219027347781681289642634509336511424675367887229663338069582387086950870774054770018756119623941222989583278087547717174466228515533612900546015566164057639824276257913890691237988603508077249604048337830279202094041419859070887298175858724998583795489117027138185267336779811708518045794134896047573445066191286711269836200078993056421332356773963194179164922851354727102511353784861872399803620203426908639241341073438676658458885546420860539280538633849182175097237975235704470387280585864767146004239917410400749816475785795845309603304906077276813628342005876144562240233322018327869260611558993440066567883888102214234886837425333532423492645369751055413898281084420384906123798797151151737528799184257185520147978250817460936538905599587673700026409346930732867128432356018623313971172061727992449841738706981212435900911570715916102843473055197909554148919316750206577012685042485827410907134628209934324193425836631650335691261029374856268267545565440098788818239475695592857496056543779507397603789159707663290511143908045198418843115006637541979807704744016953208138269968645808189367617934423097759776346339550296066971249055954034288664366970601500314707549226556373882026564241588370401828773184565638271994977925841343007882252698150370752570979651302630228402320557874069893994957725954665022840522871046014341668962699996555814654458510376126216775036611477202159856051243592312913027746965747416670082849641121283176994154685241402163661785714057913137369933517404825120121034968913646610385337219860255758608534225882597774972013630100840567924890338639862188892079301249120319875223033129588907894242094704358152988953324706930071690646218887569672828020753369897286431692794041169519269089536831362895900184104596627139695388879693783352289715875187870529366431319811883209460243232759442358854937953072944378651504788088198480657803731523262755260639297324128866808850987977786968212462847337664689875313466039400103676561938393282582583544525473710289982801170530138921403405678410304239148546454115294225063931832448482710418717736508001089817369251034604722964790842278835758306563918174037635093452744406621351234810645070514391665596470326477457837230775608427937313112606648843656085184575499191579974606960159767914740916478784142816353699458453217380171869278468262205208632817077899863049137194137990956080285121457311778194131564285171212490145612437262881778542718851808015086645202400231934658999000352664774999049049968585661108064616160021304488777847855875920711325051099832144139396103842453015314446527496359781167175446236509560965281052374136002065527171687393375132769557403710580993647346159070393258066326784763347764093982925226744011228521428242755044961155635177064827338753405809045014336789448680783844396364255920173568520448433390379952644956890824504308799918029446693853600782537753603674889018167526756538650299414793848844695124008198546370298043814401890028044273541446577338790882287634615465735711818263513716642749788987354148923831236054383437481411935620121591996367855087957562157964908755854260211578857707969981971024446616142877410847513286913024794909837415182933670909885789052115636073490118128117990901511963307937646670704391450993568888436119823284665851870057496945167387149790383301554956844822719593321966570811372945605762890523276653235758670392223956284789358285726314685397235920375568372814968142445320004699745551343931058946836300841773751805573755409986095019463494965447805711452247204389550046442101041019937190234130733995489657763210986895368164822828007539198159654356300495013290300130895821643563994515115634926365653245346954372206289754802063475324858683409308201513563006822629331690468396665119073277862328357933202134012063967718379242201650032185486573531968481454918604136385044178375030727442751675637033729503107576875376466005888024344659747208651064308187039169536356574775572441778042917230057959206767816863034173533697921821662611015190999163209014722467619436499745119865184759164503051260071217576098014996754863052875698194426608834918769914423658212755901567860268674046936639231617677776705809148323227599932241465114778345868259931153378131192263152835707218319726556544340907065546485947819770330121959363200176645020985653401927529892843398462575125754267597183398632979705187715920538185083869694922968898116741705193345701311739853075258180416780684407758453128426380187705580620823214781435259843485298464009808482470637645476522893780000915126213055428062549624427337221103309532434384820795022423196041168813993922606729585406693714727598390400021082249357880186328835205313899396244665876944054888938448574971960804287389656799717686431184409811203225059353469245086433511594904856506185356747899740665493076949379425183740519723835622749144711098240974183530303668175569415749221912094824345480214631131600137462378151506957969433193024647486589352363084606593688679313362126597710149948356836219585027155915679818133702780736307710174374220594691524205038331358904349584173101958053447896761530307888520294919714599557113575555504152583633217390841435919206151053057015933325402924227326272996188458475407294779864944749937410164539192859239147328719384381193490054294557064332555255467735213430673856286910225439712330528264007530091982420746385252717643007686458646388712996059031865838130672967087192670217460979079361363025553534451141115275639424826036497268096171096779034988085141500746846483884515121172232890151439935194504437453287398395491454271567498835325800248264863792056374055100592721123775778045646931226382140245096129902503702628348063796772020174598296309197900299665291163311240506205151940754661879428970004945307955135949467736722925913304892426246543039649862300493169306635501420330968768031173496847933187968936562739798526223448953993502729809816322513834726923351680423287357299462624554260848970678554880562083958826847569345626416416387320133520128589324572526446848617615510284875111426261459582768385453140174420937836962680629125323382015988108363057780410733470831841457940456065475241437159825455512054168504541310762135682910064626180765926262014241692434887606085911905141780592832781045390021880360368306894273836026010331222580663916895431949607933275093262595230741652483847333087146593809428363938915852950110972814013363913279536152744844908528911113458565577058597697214178867084801752842061096888104312022380835008227132192066933088399943703356938682522824373613591954644466614978229185628836366210568600806351288005794766025000418513954054059520679473971578599064436506010035870710353935821520800115956502136060049123026613190151692386970965487831516030622556879548568006814359745516158351422865481545198536428695707924845908698984222582678127838172353435638821217326877645221601473867479822092854355547846120898829724973549535504991360193534561973227931536689170805824149313969101720143733268397373222500584900668088609933218537525863509672117091080867198256526231567856438042080836502439247209478662598191349851239406867345456168721308945272454556561724528973709663213914063474173714041547079833129244597198299618747096469709554720443809444997565256571761844849661496418751216254811602352301049150528896576599913034607280377659584327780005011022531945331708582689292111760677031696742787355910334002729977116200093689737664978217796022009112030170758085033306225635869546859177010409340328011224100717007902267247091366006916149079098435998100582006168069059295259750547604315645909951417330967691385250421164521585513845404410528602031246381184364546286782969641098698240483486542025001480392216669772232245440650778484042608566758964529482312130755891052158418920664687216452816550927868332244137137799340446694901719311992328365707386897365940233125961019726545505675741111485046919198061915762938246933459207721045271797762754379752777704076722373250801610680017275211941053792938158809800106853803851960393878885482096038953723189143097918136366322171495869744908601380858293563961640287947410287733311836779572949698897895355739854269947257271669945240189125682118044412466927677288225832827631471994828251121009039544401818110485319853804259605725321949121127554252740933525895905640900018385370017378056633236984333301954334185842630032101068513208295555948479826652558162726279440810242077007872640609834922971050798430724298429704014584027148487405904530295038632321820485255210467299084042027715819671903720321626708482424473323069160109232268868719669735733016182651148520650296947794667888546574552901520312945891733219589743845502929295422404247028883957716940558416494520372294878027780706918224555963404936347442494306823709283086770299224294608005472966884797035949510127262127249723097034584662244914361092319713656864168893306925446308065204643694072400990649917170984490692277084984448721855561385544513842182924703352924627361191506276941109868066584904230137621579419126978195336096210547494198826081247308064500690499193146720066350559419484503148917024678823102570407474815483466971138134276367421837762655133449505186920674523806450750183361272870733852134200319479600667017074144212501749192780409302240977689102982252268011028036959258368008589258473831830933407429289606424863694336521795426132787384317809324383450158169670943654701427903667663366779240860255462010444819717132276783857998607753759291344851968364579200998581796264186755642654521553885307186611904634292173175150840769722224789898788191145139310922567854537969454304645901806916664025541032370732032853114772547995516575302976454831176778230499592046191927675608482130682171668601711778272881365604478910234742967509812425949174219145299662812407097094531294217662181667350599855794153905299188073625459776609244841098348778939125697108066703245517107249568981560011692378663033610243636534043090758727661294896320436639351860112605235326761177718444888403359279017033517006584468812470875198756879985396187610184185053864730577752278585835383091560290493588661692969045384673121281295577492478252096336167637303984385733386530107315191563287105712189816212343088791284084386011030937471715220330237698517268565426733415125967783863377980237199954684411198113824824276406505622699570087679164685098895700271950394864618090240522788568139387834465672841527261004325240000258043021443965248472386230102995108542559576466505970788957504821862565548790431659765295216685159130411101052462862032680770574067518265249465374234153104371886369701175870586522522291952143493042879398418919449148237472371287485423479708821642155799710786001168626886447805084452004849375517678782602370076029775805769171849163829104843986858585476785615868296637908725422797090260805283613123081178372436122407271454190228484238132047799083759193154847091206618334774480369319947089298621246394056267455903455280458144210529695401170950947177431679965536388493182155887824311198743681699874473250511016075551145863396587846817993671846058638590181074988726606322074436805207080989329278957833412154289954749189934460714139240362737757644171230014422001256226785949930538547752706711708234177976866654209037044589507567802070535435067858480136636281367308172673140463146351207274632637849783879396832827459068679491637137970007979313696327115349506247338233901683677873985570698642164655606235669296188260783862603505996546965109794908874802419193936420443859253490615666645125962020308056235838236476797210584232006591239607195288841804458199725335204949065843026739447543555271635506398430614823584196797350350571327396561163706852237641555400017359856807180553808351159033560549775078082947380757841633831491147310881232106257738080203978013945832360926347304522483731396716004943544810937877753601779475958086502249234635288855460659635204837184762376563024718324521189087095721174194769235232260452443092538374931903105885610396687314304029600559796657498606999410271381355229975212730802944083945746702506104862554041104329447810838819650536107543741096942507103422023274980811173716842629198500085168393086846616733444910640967895075661088834766807491967869565233869382272979992648673212489446382908649250437864082181765160542582174456752807131996501139135679347264650178657817564677461726499490031183591780225407231788885778941980739105131706160533463911597124004000911652683507617585894424591096616263315917262994382035794832144485625949559094058091451771841863645764288675697716272189117503831972940275497595758924911358963365661758230637187706678421502823448184737943438020892121192842763210118338232689675846617464414081338866220819112272302659875587309080955637961724795280393914634411123119895060148349537604962120014286203200265995325052608037549210235263291977915155067595047645916837920407900745737815250196261702493780541709563907404914617106912565905159778958456354636270664727230076972876072770958592579314737193230539082323333877531742499856122260146078531113705645591838140015872402047224054932551912114873203503868753635805979610622359862766678894473630896324903253017677666071023587803198274093379668766948239731505902250421104366257266225541037048038827551937829589386786371307760888054254780873369062043408886782201410023446862711671012611370914087340830138977177055545727360568347701003238585423881067316898554543368765529579693322512045790402464711225841849185500601952071532966767780829810457813343017318046029584919000200743550282965923537559678776394290417642102824983930352767717691085593536194782879303741250877176782461366550313250795903028153809155146810472472395185557276612565602414265296928314831206949354128279464367349236466594155822781546684287973036525116469467576375547592467154014365466901106222638308940660175125879606016277890449360239526478027079880446625163317016817965269911910855619648993264938565710084642394611291968451361886766996818971076185172749072215152918092409468512694690447937097159430665580979590952707436398257025778557236299411552131347089913693042942935175109452333760721596030822022047937697422430534978763863735008842926087166979383631367141815937437947201692513145599990113731815249653071367329123052771898014049209967936193167482318571885179086057586071542261686360681307097790225653109546846434721356151909906500538036974269776773808007125494877565828908820712992033827547757169618717077377365629718939614502268405802535829433387325450658572820086179857419400599146593885655231042072788821345146210762249523306726021289301384023183733662648008650235744312581457286673002263383218043702897107599150868316207024972480920247528584016386546902518054975661748293031541041587289815950772796772187591297438468802861730411578047993866064704911030538496508495314018358284184154017194477950185413440401996937788927515574172923655210195988323775789212591143081728934772769761997123280737308156481224912298876907367637526766559731784024164424171595397649049420960909807626579333457878040464460646906610845222604829701357504608265239930151674593246501761741817964973534810018653949058226097660860268131272590283883538343114691606841004904049470050047161625619799208094661747740808558204503342696341183489335048523052556034940797857993165134990277645132199556995274275546288582430153715074714579407183623750268901213922420767163675029102512657127840796444255086739027634011068721197055330463514675151854691195913982340663062037348409917406792689494990752124854166629344031171948045467248221348522929005811029721609700649604161642628791389872765729593049014615384584299432221255552434697534181553430900294706619405942616769866778748634228006416052656557717605278607033047592086496576439106932559172178590015578542707468936654938842797343849487521806633519069110586218924223316232056016511760602031275652076341743729350927131292141370153830804410074318709553812137721015703709828194182753735527828126107692133751248652143502003882322046666204944180012442379125945402086790734915617478492872289337477578489555743030918930350313086456004932598729788417418403304077655081867261340316079231652046298870686610298382352245147513841234530228267760728313619645005151748117156635692584226711914864666421377836712259992000354791213695155007216859964633903032671481244237054715383432786263160043304104955477276487981013624536539572731882957431257922304224879048409824984794687360782772055880685890811587106026459428151240073950195029505664769935952105472182571106840984674975437950442772865578048681229656673174746607436376823202295469252838961962315371650467625088479551140376890917637721878255527632748632351092194758629836546557842694602190706288223876400817061206571151178425869308917985638864827260609717375677765820602681716629957061246819638737137478487588822210686959886513998819422680406393745491127081379979282821781348847498597692897252946556015245969006222180609908167079467405968367357067633032826709238690947708650392449710833638908349311353845146147451569191371549773361291442915558287691343157217438614720966109513873275799015533513763731122744299644260973399677164596624502960859471180384992157348838898291146688230700496669476855283698562541003801832762042166787445991505021907545451096627688783044625471015589445510594479632847004231546077693116929392035871663050515183287129122474954249072385748503252081100211367808004944451911081401767575295994655394954863399560738594134193623705630193870148652002643795771300377048539787904711537307194568262930082630486607226067056102635397761119441767208022251090272682796614114642302704455318316681067617362897341261815559246834752406566634374557391166870126105078390969071624331931495252046743338728219731707505577915163201266274572810103665252836676041465517368110213788104861425147005804726202016595429009390263689172727261207852829612510513106911573001153071995653328802798537967670338336223568927326359172056642135867034826469302302238734628282228409466500215728751424090545896079689812073817146315250096819459129276662486355656195083147875566631454531177888631562150027859632762732485806749580996186617797438702498003145044361502031604635457784611100688667029878182586246510202698115946903215798069524558232356242808173905117814523827636640856398720363568510896173965707888646426202846924746751317805884606635874798467906660353427068744010615775769235149204860213383352108803500708435904935430806561472146862651454888075379994847408063571662345062112298225279839094196828279401859207640658029210197949171152005845303528562307508763975217418263324826758139648465119537361978270888492321432933926315199165134495771041955231825012926551128118173802458754670512653054751444721713309774725179411229378553056297133439728535945826513156397851139271497879892015190976933215761135326794768440460985394632915489423178747144369038977348050070689217990919665944250939392366447187730215714958415420180820780619339511166071397067449381428290131804534305024638743140815171699579897091385601518650732087874994759693464679429235496624459937936893651606333069372808840891484038828111806312969832581401066228567336022304239197169043598675884226372775209853213624216004430589013701913840634663894185002776209063138170900493246440458486491262934156772296246189434061393503617137710829440247892148710905976087667055298489795023154447646142379259064786783573910722201594268036258374543932231480624455391595383870097827878403181499072217327039309404245794178191843744251700954096677765090926956035157700389603649096510440760241546283937567516131777590564741420905710108933608294596088829482560666957020673767098409500352938750537527295603020828219136673813991566060750940664729761238474562188928668294333998761228264130700055403794001800409391059603623716308149053945216141504637700949437391919288553949871421073742447641988000399512527108280874127305316164008994852270187613543533480332830591068697931236285518273672639680623190004788598603904515016592925128306116366652050668164007690058778414071664406066249498897824111411352338718648628956044840208126412751114657511855607941646448366590704850947587490357475690676193907435628084117654473283740859054768815803799360423213890358330682098643637633943367652478865129046765504895281559440167938377783504140755664795105101032382171908082006750198844924038441586736637099912544411917947811213229495965087760413912803084657155589460774634443580271106517118710795511087648858921444459564013402866203900018135679170217116643368474692974145964217369430112394321457061535250285203945534653633400326594088259685311011923139564551269371098932553089864546901275541629674467076401010999699674751913710420058873439940083245610236532025923769567432548979164896340623105264053204857645130492912453215312907219855786006970084497906570263009527400598168782031077888223311203175230277246838485763193213899353974948709817036626086233799320489811575754625066134086553502226141435008510278519069916810783153605589180511949707726225353205873502288967221168718382830459983207333515087377135466018323987187247957614246871525066347414812895877543327751431297982484845273295639685088417694669303083894747957814824340272079066301197521569229492374700979592506744381449410820128748690403677476010644218265591192269241647958839651718412440337742851041272136458153427624847877457741628765061596279180942287960361554053635645672379982084257324546635382738090927485249769031606981271822534318249975068955382219762333949272012341299021402011171019431865736959415093902634409101927438988539854001185903456073675422687605175558072114473856676949397114604659052046281961650870329556045885548917535324079504965572691149093579638410624066161583565799342545161793346850572382724359609242706820099802591724198677321496567584121039889807141000744851250891328047518034632816957125596984805983315501691595523841866096938888246682606045204008089559452200127805418170009965303842209558853128476671546301983527124056548230377362160472621261403404355894579657171737337202496257694544709988234247585543809427949680183677695132163398250483298701212308310359761413178300705736896221209268921453844327578207989517957624295666246576653509116017406246090921404491936634783555644934938689122827453309396718179597339725870028012038325872970900135097126283620408897607722169267430451205134002556860782020916801735887239176442180521868610055886988698260749533026572869873843151955461535186158323904251334811631912829265700686327131405716216373407011510899800902129246366249949430714378422861284442601938666789758399928994814509161442387295538461365674194232927872087637475573290702796972810375894624512054562537408151708699816867398269989671121839942450180049804523583101838336240207910508594059772221212638349081140469870241837708895281162626102377166125341613162180222084123490788188904876239255005162356922572286231414876440469839795152237777846150597453858400871377921402716049186325794125011596421928102966953629978185598244116025502004368640849273956007595527607602144900523388079970350122357047162232442675688011081756516893364640429028880263442303291796934681661334798052347999634877180481160783266767417256248249663241055216050226261597708697626018911478017054732958456632466097883826077059649901807528851223508880102364680356635190023742355357730475165600241301237647535711066944184234170184733586632114541936145017655221386509968609553163901520925244153521744677579938729062565084569317565354079771117313534809609191216239921041603859197460385866667730547859930633887734883684449438506303379291142010853601171766562688200266635645028302810252617348547056654587824747818439487297919177540119942075579428067144633796524771013152762967830701615531759077131779630871529287129915204586469496796722635998343192402781318245004882887085626798002489499471054858845536275739891726374795188132358225210031187090677292983877639405466128169851613844774188960437864366158449198208895388128439546452451615696419881399833360950860082343252009793504814554546240115181828126416394380952211329011811952850482384611649729472487503367957793650556635175625263380263593391212482113947084971507925176430270287018476542931168977013629671370021924894011076375923827080239301319263254087386192257045014543921414953530799777164850378577110406510654196971857754966886988430801915193857475611446732763210948951909524677192417347881760671344524598151647454455566104001213906771520642992316875155345009590253754729506109538625206265944186948638520482291542109125878397031008895633382559327832772927493186840523511870925378717810167519724454706351155500040065401810460765273337886015533435052748025433840587193713818211645580239438115451691301841784370874923622017762339456304433430851053388819139489349206551924405558943856163525989912241527433475909952243922316105046810439250365395791271307737074767168504510581025205914718338247561472498566272497557168752658227225767951288114199572033584336295748835407930176487231209507572534504489830478248348132140175573176265634787507211515343018902643581022146360460251056855424324370592172592441700421177921752652543930718244202319471814708642984971210346783699745911572750133414609601531547328766218084716621358170228037105002758656644209774400579681373444385352242038579735769530681946975738026125758937438395267904540386943965181642018965391624033702852211926625682930417262379733212855621585637176479173622621662260578948120061176731388858097291608930183306478182681282774869628429216376857889693379591844460739175943298927219051465226985338725629376048545902485672336174823418201061498969904124182206121889956360015072677607536902961292489104799671395772829463788010242852151660898872192032048405194305775927503431295761533631604494460917822364456243597519610636996631929475481291988992833766449559168449517123048979503851258214480199280553333439593254773085903133037709795261079772418747190915282005913257570944258404831457397019770988694902260074242726886370700750651776827646485301600636699212602594027501622020260378588039008000933375842239012934091623555409385713740752967174935065414399629185894692289071315777934160117755744205931232472836863498144219359153979961483305616713524509045975454706214630255789672678985359772123449564656559166976103856775688548594064270985317237628177421326907387778102264056766191633237727979168862136552265844612620051144968811013923551040466782729595387834923676820579152244085723127013138292577575723917491242286881315805947121435517766185787710524907538262925777787221380114719821685826493064768019867325600084446553846430607315922661263785512874227333843256687472516912833349775577619070054502845983921202621069460266566636555705680972065933619008825184766294028563294054617323813929822759228206196386518110598932864763545614217945231433721271631399052600586481436430282526863667373665340529953165727590990083040792905837292108650946161846843499835800730321897795574073599275628903838685730447465390078974912850295172052948462310046484012926417803781098684802630391949071246072031279668285509427714021627009484418236338040424884665618447130390217213599974970084145146946483717211147180161992830146701983401933349279796604845106075042946326593460352873120960933474917667887194569979152710653312584423275948400581211844388374622512952688318442956248029190861719980189242185469994488806142797822872196142513334754025127329351224927609372814825407792877206303925644851821621735064609434221835392524540955998533838596702692810205152674697005489118177666353714418678667106130676792060936431763610085130906018991610759540782055920763510553930020973111378146601217325042626068711916088822101673174647342386217653527731453481673126136876822033644561042858745381026094265270715294720363692339081949925687898061530466849720372672929944212861980496861222124082986728429814019467957661069514086791800238509625390145845341711891002361848505160482214524972644101867729202519090552198587140113035379384013170892765748692113246032405033885949457585768533049398232068924442977643531588030643219837566915991947078679561973806651164227302253698563040726998910606127724399013244352268375703144437721269354911353356097901634928164564650403645897602897093378527186283258361200202456727547123007994049608993372631923670536286312113546228495127105916221277938585194989022166991589700926618886376127998949380446828524087030046411598020258605396408467038063910261299214735678833430987152280757114820966677360642311571530550567873509699328183976898555529918260669001654032016407948855847363325651502221215313427694309468779899880457666392175504383815910920156998936923260502117230157986692149935752848912180500499856562121721569644784740125198093785322134157533792005180993950582008873102569797122712568726322863069176517845956984152347916312521237112638600984500279462291173920899283044875134153170215827216604695998396225564054574528319633732894625782800794057825424388386174766828807472197992901743007632679068929053011183649383440298128892165212290549252155887258851305725354247472152052198752365369978908925668326385756668147638348405473841632533482823884141081081374621627108996143390198190832493359651163341207928029072688185086216572484702163839173074152566736815327150736455401392187683230286766104173469019152281960215958783861122131719462856414004696439772593305367535202025100524203027437612259864967142973473021186025258988933121056033997222942774686795262826167575051100417050117294758065447799047615174694138976854793468892653456224330093749029823905267833867082356532859718823272183467303817786922881973660737542122767650748129981023335608347883156431156916315643033947391601063050725764648299604786660844362050581073309420669506604855521089457468871784938625734563171136258652981319631966671287994024853605356163891563447626914005810142792928553395454972034442849507232536618918316828708987010901965058052787216461172073779915433752530030943165055075018780455320547080292144172741149528629972850306604983499692257706940883663535065062836602169872372559706885201646701266091590889026821210551609006938548157005522834444792985471015769208450592701744483716743331178997453278172137423021732623767637645389118194442876793161396512022936863091318615986867868250477153471268820082240239797528199346623306264028480322362030441239131413095535753630935273055980631842630152121203156369046266924289002790963170527281323756823183618195628067369141170465617045144642359434980443801508670635851654713956663832036297480474257942601142307382434267481379208277511082882833943294968318158124585728687681109323851009607322221889051296147413663378796204343041527987797083476643943798955609734630703020078646382504269720699183740128870859811086597204688908783335878005522685645342475234501224133492138027063933532797754707586161471747990971048165745740900002850787806626881879057732818249390020041798829129556347850666169642441574731379944994492860332215928642599628363101680157051154931533357962785585431183628381071782423809224833502204823451051397606784507544130270399169002796319794948975123210379804480364939408398746700675884299606901763622134658577372730807149750128442592047608484286538069468860636591149804028734022786080977432475263046861205870950934188446779106470867269655833581544699910430671261379715717535905740601748644111865557455764371761154902736222751347429025638351668400722188962308291775678299065810511422656857373697356947507625726515686265017695422379349427498839925533469690107188819332065484659305468901264920481554922826359574930433526614342128485677286587322351968222047882166720745765316234850792680583143967353092377567483895003202839303298445269986046718613905565642714702401642977055011334303061482214930550863288253388523861471655927741603670682838970344530348857917323988100999544645042698396410858917707816944493810685838747051793305051369482120971411588069117207023653254162064355813789413603823317761759146757617062446729084347144385714074367669167057123669554807004025703876807007289959150695438646430389889886429567343920945898134904583227445829818512194584677510773744929357504550532246895508418454823454039997721823909797811390258111185145428766799422755428232342973003815865337113524797524842304933273615471471073640970150797976106101898762335696052468493041648194768904003434552800122283460841483017414719080557685214479409016656714641044157365231214174626679033501968271993518413009980500681299075061891038987733175386420945925703960225163256765921094995939348621763333213094334715615123288871632675188179663815162035536991452561469295373696255526761972571071296551535272232962271761757187251276119890771205403584640763559923720331875855218189632783380567993394900502625083108850463115745413122619851693620892051991302424542147072993668379315389771239290284412674953266094594639359481871737366882678355064458565319883975339253553772985949680607438304778134661060851178680758594827004697829261692455173320073172122501269404647529914541827659436634553415176249666949206385099957752553488649019993774780829837703688719175018972384955959728004443497238345982095889729937151516541856928068245587743003583117071727143484782501815533188648714165460407236440519737963418174328654504499042131186221176667786240489077585560630216358112051078656134055801171686164770499741713665915877762976079585117079294895357282669457496890812752275978971964665302284595988698941835755007584507085748245336598910760813718792459655809860172697754079168090399140524758255627368392011226110427296444717489687911472327943387626212951936985910530677249223069779684071574807853178205463961555448304356858314069469052831864133478116033192586002285054015372303970311416720502065391692115392683160943434985587287858299849356628461423112163541730704888825223938830645396902143592911354391044008001338949681967280535699423658311017598871555280837570770221631626648141772454493922575670244279252837199270129710720491362115337606466098500336402603962687143815354404953024218557328385802968692365122827640977133314875582154108959368646899969674543811841369681743589143013170757873152385797971823761406412559275559136004589535974935902282379411476813676943860244136777968416225837577146426565526540389609343867307101188818022893577556635201156508596834583692019080462334795145705454977735555694874476121207784165961051340688917917652998738512154755197426480731227131688809004131383233985450005235546190760391150921886448372443096565460116228869662343149179756125494888286320832384150500210135608060658718769747008677768234066853943065504140792008959744587731583262184007994271426234735550268677292085975288099332237821381445975260899201801591338053698621342151317837498648976648993294204901366489308860046183050623363826000915642944441842914630872267202448180163764042478696703821247455661912517803641997258721267061604084048495464929677772154767370657065948872031669374481918460154949840649836421988655168175613354826238312295690552982315874040503789067295767259026691963189305075338126719180591243121267405015878631431794938737172049026085108202944238940821758643701244621712617726712476577982250313304006392655527446395614457918999364781725464459435693876341067238439856916518612060541277908993024207027771679963343192448602167143919493574883582065687385481640200326515761809575418223946879610783438388944367293718772769570993395135476089005558439530279039925916843440998282334024534071032733754607855774148016464805919875399673940511918277479957289648869113878383365762216201882177305942283164618391571887381318957573683857219179841209571285202685771881836399754157237743333304805297910124459996737747912122858683035498343282230432184386913032350940016161365100530818934685728897942233071077436077910722971930329617152400828898728571573913689844151145196937002185064923376268254495509205374861826828375636940843769367195415757262595346504191264409845974017168414719746431132315386739126177088289060518246337817166734874051365476976909415456534995179683398321085970295394249818958796871931808437687768504896829365121436186177428275990761759343796900204238911295828279005184817852130437679648693395984321510063632474465008552409203549498506684110104113235969295804710993886225571988793603287293373456770580562009156797289484015433530673636610192061102272994448137737000315347696353142603153190219689365763255339075750765667315753375313675525059680737767582612660516342040746854321428493530980147201093742114385236504218143843521481531989236740855292361939296520547298282324462617011470519455095798840429932236849942588992992034064358909490830390831120396840434586420861234270163645484572754745511715100231302590022276478734781488246277814347224652481113565504377067052998896821098377662897503984321230683504869144672996565308122643216108282194055012286386660693620676755109544117004806100075154014455576459844335202713038224858585298576172355859040351536433102690501092908164966559875656414930214996563890321867810006012983663840737663198511526201661639740740080086550718496057344753090651110203309365158238611965173965102989803943179859808985207203699138138399132840908459480141209949646729304045924501817997484844082674013395907972984922884116362484334825611748543479017976798965262672679433022533258440550480584456889253261764017276147296853093541431396148191194698553950774114173197834844592769256930145815117093719938221973516483402086675288296484988690004288183379860555907951855027897671153133759096810878188051976089747117772914810866618207006110012163020977541210885368382568410697191432349594945030619661489937296920704365631796628673554764188784062733245778839178666576391476412055571071427595648567370907755963086056372322210818548413768686907721229201548281919551155472049405060994622774481180769905889400387133777789758980483475011148412316174746594057767447041006749265071093600044491226096288782557035008431724504487603404654529834266668619989825908999913263232399224893093330466669096274818197580694017263074976580251752098268478892164513010057321755884636153254909363214436939731351915122927820227181389575584618982655367756916664398633872044512892632531025888774361908662187668717775180986671440255031712120316164809708787463465223620550411700910651174471773852729155995506757841203081244635386163171541391649922798290697024626925404991111875314196695637995409351793325730317766618333247166213185362314044842013845067185485436593209014427741894131253246553148272242497402460181333690859479716986977788141618016626394509342837283999261032088740564835202644434635889709392413016502075280927566379600310622297700680725679791857744199163678404266988616188595827071513466914022640392318418483991038644833170216191772871728057505078964949841906623209132186873895956652375179043422990933096658985155073744717323972525073309861785405487540736260535555618440849370476393876339958338530986920498863174135567778558950934630502070455181496221570889020375563533848091002881296195149954716642682063010249542281673762593743667706815987441285629807323061844442977162671436946679033848541684075842352869058670425587864706781224751608672115246085881564052847333549639352435005510546228982527755201400711321498835928144086914007261223818113213920754275573377820661549238249493934724753392453240421772478216066272417592617402882116998243039792877930389823947732198367448818319343016868948125770153836913247142836211944350020789735302627252553361367114228814106994115480107798454792193408437062085786615066776148319645535740985894833877153872529694534212743582048930522354533326498847576819216353528010382814761619272643678537521767012902407559857127929808566403279084419690710873132284116267261180703531076807505258543201831670014654481684988591721613088169982623017294242452463556020703574470549633448458925263411391080025210184075318358176155631394328317679038283520555194384550142006771410621764878841004293368951257964847413659947486214201072291799445589153777872203621877946952351943778902572269323436684131366527761644598990803624491259157414384882694424877670814447991775167287350034769929797643332077050671965041540080775146072323047741817359366624339720745543984103329008433296331639633468443800378886303315482713791240454951557045986513829713159459746319210393590895466338689740673040794613850260688537011627644754201517962492833150849519836247428749017183669389228235880521028631885690659672249803361455142419960824057384725204210509379629277041042212461086074446940921247542826459578386423951231088936062470846748222339378542005675210437197224913207245169630666325778157199981980993734311570838864118941674325873752225455316705947906206522643360517186804668567126331885373309839207945276284482273224339933641533532745119363139895178423096475628047073122332713657699284722562491097709487719826272635664929498162053052558126281728866188095658634893668272295924395578289650203703744890588228505961297278609060338218379960135440186978749047967294857846531726333494815556234682890551296197505903675019847853243720992213631372332450826739981675408610581073868714607224281232161624530030376944645818741912591841768758506641459753885299804793597479447966769440675594103368531343186863395951599555186494959037426176589113387807431106531361626003150599949420822666287174979120610197033238654845699645269502221980908730634020419599544503272332098738216879848820536802075130699634934273383083784055681148550953952210335450971971265721296079425098215855828510718648228300603155705034642750725564041002386828178666566309944024331181423647087913553188336209303156934392284771165798384858257173502398355663439760035949285212782267771677602344508890391550803912020228718318237223899791257863492608393572587693769431753946859628810703247842759297914964537997923183567212144351458099911100899746894495773071905322898472201586478290700502296812861633605417858859630322949922612666973357291468139291094300710602336117799785784436110433241583912082176346859842610022963969346356889352855557683459920183033812357143330728066469283164529815579056023212758180530425857678438159560721496863103120809924738649648761923768420777058553505684223068694266487490114073531448455150984249504733666153670230519485840468337992137133512650927551773297537604740161784046583342919693803533410637796983137207237928374021369983658935366278521302049702507542971290386065819546605959575490530518959734665285197682712557760691449867664921845055718093528263733826936668965310648778325438847594382549706010465131079544239364855892547698631213792628466277503643480786506217864081330446203198744705694116556295979536102363962164296447147541521736330891935361811237152931427656084873375851425950145316269805461483898070163771831082563111700495585531345264432898088631347037159906012392069793844064936336164048921438253735772222232909904658212580721074770215420822479499345412010209483627012979389443115936877898749957950575189471658266473207687717981283347016512487759938010623359984710378741059860561935235752347689331344193538783877571671606509349093210150054246778420789864214842514220754219952433697891353249421971638842862720922558144912025740897594503525889195390395603020750498586181770339953028374915691591803947920432526595666759778953468934670766624444322502965207619182666559385707503094626335250374958431447486006344434014559922111228721080889699266988860916596352520744968895481543620346945134559233129322875312039371175642158888495787386971912222908767705370134835040748911230763087134516643189764215324719057565325534473571276602808720349357981244368905167457935630097825949469627797871422881822708811016605220405678563233879399696226428091433210565883590546019909575542022310584277509326989034769832412535775028618651571709701703382769428519040107090838951856117075085276982973059766040662476711128849045776811917020886387181428653092445503165130604485426546283889527704418400070254888411621169687330063273320107179593238647106922075516658354425067473822976795835099011242282118520636766452303790576021298375251300627999360542729231833407839944451266963981924383775511561168249280210525298658025840446175438873895449494492454593294697618461197890142536590957697444922446968952973040073706639751188252564430717013250256941272771696254599965904776475640175800305311228557774888540569242442588515038293625101032358113109500794710847675631987873461829662812313638754560472131836516132807684375741916290133228646974137222785206083772416451261743217998662554020572094876254768994518374680044290333955096185393793866594019819893535854867366492222582548700011522795511692975118777476999888605197587338839637753142367466831739541732375984166041137331091444233932089521332448740310661618686292229822152180305829636138096463220777575069762390690650940784700231948518138699163727342634280512329908847093805883128536434547024169368316216472070401980655883277119277302577996063784142110733693117571937979241502909475807427474390292965489621266519363033278819295068021835144160141407262602773186263084026465848082501163534280778069966633384555131909887153624707431809373519528774111684757654008134265342311891035181105887671880799465480828368918971680741914510497852802300092888758128454279406532165354144030664736606219134923429549284432958387558334510103414897049741523066820905844627510597781468719771312144304186284937642221763883993822070837979003138385156619716355687750713288421234927939308252128988144927876671786215550118472441344638225698560353770594555584750572369430788093288036837767097021408604600047176288557704177017329619998536182664126415178482884632091683926114190840520851832192728530002061308007871287647106885987990555742203877836713639826539460811466691185207301449234526587951155495148968734024115962538360471190728801437830705680468217777460226744561512587863534603337173411428349539437961038403016655839254749461698031554301174163735733831633969236696765277269311617727831934701520575931048615893569948221505867743246130352147449891914481633842851668077797679506043272464049277982715097661158726058164863492699018971512019472197959108059647076200811477350089563724617075395770082190055586860127231336130991843462443160413640776365081337969406361068886147578535402045348258368893957372640719211102433854690035908976583046406360266305807778321562566182215671767988678520566673947580857170832122811812574402927799020125171789825144609291096032217102166087953580733622389324502778913531628495596698121518254157318511804764726232095526041465255086898486137564214527228814020219027038172179182356708747857213861117310553256603899951360649601468304876175506641960745022752153875984649730611227559178424766560848454538978101306196733718953753247143367998006352474232206225466076653784720136578373859060049457437468004730823477273672385774567746295922811314713151910400598583762259582190555052517572531946618133543069817494652722573119740664656086959326394703239247651354801487120311470078392478141186032463557237203114834941914143290639079724008955481259307697860313147371359191883223725218669928232697873200093747833277346847280475643203928786051730212719076336619286590020059746032774925081661030499591548504747294517565297684118791355562696497956701897231934712191907670062696308929486558900736684676213499995748952662860915498282413437584768085086931210647179277657680869987617070755791961653559209779177304602178226333863463394432197205409839009797454932733209949822583718982147357218588226601319012293178517547294196074829649081750300759607174240242572648245582949633971132035760446647084917463204062675346296864256472370287900994526995527387555490778480047067159931935359979231843843096071309240211143792957804447148006467965577817157352794830883279400337178112205037491161621894955923431263098530643972406488332961552571000426884504111345345039906856231659207767738620316756362520862856603889906331837386338187647429571322957020135793034907109637893999990414469403752495341322900549780575758881238019289890701098417062930056154446421808489610886028309024347122252475081549775163887084840056340698667712319737649780556039964730724316316666570814957133851260798720854815987168410983907795771960027138708942812147937344543834561129021479908973703591523070893760313060916012525104702390693184180116413742988862060546045593203326686920271707882592081067157440578180364271604071545099019152815815094139474695840729209647376745626423226460671334221222581620179677337024529512143870979113387569995674342725701532247884486636997621717568668290205406857971622904792670537703150471583851263493311567677706825252497406237915974025426782371115239992184917907492354731367909378076657933696712681402224202893152837072587559833844549602985469648629380993152901646259078072107147474156582719108587934465269621784243384059246973172399570886223333869689654315605116439313465512092683971204910239549656044527823422897204713426435851686763551440759711481157435582168510917154885277505187965848464432266975956071050927693980229619454630964121699094879284384854259266496638804017766710945312610963973051290805117440978505928587944830794969523801754974472135102201628954316888051561630053106895473864092467692276690246031662659952917794793262866280601677379390995580565827293232579006074183165985703756227484195630292517474612528095035061625837408539845250201749249164780270900999824049307593838927463960570920793960336032180481789765869766270453526017166649099620246823038491164769321469329805429757851863815440377245024401532113119452696242249357623075534873862248030193895398293658467447717379782577936314132742615990015263126986023068609195640872024028548666172467664039353284411776394467462212951429593382537346382311842291193153895302768955350120222916103080711258589825859999439520464841539645735356928319506516679130389273381923208995951812008660885487233917601121947789562367200251276431963721522783582013281372491981075647969853305272244070304735916679723091273964123741600312255002737107897001648320054402418044922551799334831018923755989425633468591661827504891490401762924565390438130000592944702241071604025858654298422446596382543630293907707827161155117427762707439227941546419645597494378563388237696641337050632431997291879400626560208397697018711899420175417614081329716578362601738093875772474287483919927011667763237670229332387640909190952963645778627881078379479371305207676064298624416001187617283376956334532347143831465319130989660703482763441826091406261799101967500571315942004823191384573059537483257672591115706950086898721533246694043251848981323625839081673500740884432563646959090789198141332887791127692323636920380175734951468871623281025752060215833427140896785700558485650475503286930786469909615265583162188997233012650255135431314850827401717633616713518066895792785943859227406244355803896416614147257140193003787768474237502542010091177850125152400985198002722836736801706334576640525738819757014379985265406539289998902758053599466704429072545514742145893624425658399116615945691748506322578989047166662599454172057222010000710214786000024524933190260760890353353593864164169595249572081652624930968749079833419519695987853723719517905438278449372640463661869109145531022180580809632802842123284223111810421008656633051741366058421550423640766766475248342099058465153628321872630932023810550584011595786973616184535971716895625545177767776457101907648215662178340070945213723433225106920899544088007158884283517663303588044734397234221482408665435037441729663948425990928312403527678538397621597211377477345665883968091911607180220128342805858892426715329449123827167157265584645952714877688036528041214903983926676431062591760826716845291631446363552061525741730085179042794777463644331747344439903642848028488978807022187508115338065124435762450997741941380070924067417730427336272234645132839195952410729860035233220142961543162996440912420628515949440518104656878324295047307369117899628046316431283464079081185348845343026111301890606552418401712818005034402042132922572123540867496095531412221980324549713524763151715300487436146238842252741946621617227566891381808930819818209817438915424729860060189780775613444086625350214301012553660248418833110169773956706970951199613983633298800636457127010889794979428015897090245276050475236088047908901715822740710783925748919986454700545206316711846688843921270159816988179677174404638204062889009611505064732503302205639143526813793995673685292651312763865310883962199778767070270159341433341739164582033511052685356411497565032732923397732151566649923740981406041637361897988684639380757116550327523155433842894870675288008972350324159695614644048731472989790591664676279044900085265053939640697898087230550731415986334433290310890751576569324328752885346925665520278097560996125745556896617634064525724672715717364848747106336872469993070222691166757728834617515533075834272563885257784118320097801770885969621150214970208426533875951072559701370054323698285292723181533222548147743660580822873114454064419329054865697126845298506350277466328188430570852343556999388779712184636093850266716681896224321534749900101676777755590867713727859843713194232562382689289601065286262153517738228338443622365654074189554084722578120567448043092726915159502415104211229668841964706385091299088472851313737887280621466858141326846061628543854665248050682947913453781272514334892725432271890657416175171436824081985793693356799285780398196662221585392143494406631473686644698034101684347212704229539490928578387818433716860326764442822898063985392664467831549107191465209640799624447116139924950209251994334334701228373373808494487760663447917319131577732994569942230497161672270068278001300735604765696091002620915622146689746954837563457039703728588757099709062477498547148661888786370833997140977467014569496512308497148695833752056375011755364669489875627208037390893547703849278188731341327575545248280585896270364307316786470006348218269457976830245892333420692319096349585316600782463291272107614946737032120279401147689978004560097853863111574359846868047566348204039987619104375707022346414836853489405548014477257576505810163752535660403232289291376663445153318158700939443563452326293783760919383123869181423506313712925834630838686344999554240284259801861672941583622993341681929907217133364184961891971055200339540437127626609159990644156419472545151989150838705419032862698383233106360834497347538336161302224181931391532868118232182444606711719175793729014037544543751928865742931696231822646688221181688060335623598400581706807236001519845213462238825680435859549014424037823557073918657797853977190638834393159385875191728234184121262266875644710004961803092863507840885200180046678194686687338774187915822763343831298897817939772099007535990043510284301228123535233945008216774481890401196359695696577090053400999646443893016395356290728345017914360422923251830522524034178527690763050763704771013691400425492435886285500734313276099046165316524278929788383667811686840636950741457741430473811615790688984032702403936850158145429238076804349123180961570802893422110585663619255704558644186914409643847982802317638482413251569136786887607711998227367458718315315825957601281370373647182894645141721699178288100989738001960154907934777530389656724549228245720229706509694965350777209228355949454291816667743253306331586143568442705965872224973037839665493418507162468138863646907146008476018428557073847729431918556234923996722624163653851921240774936899615006585724724940696923267756367915635168774793149793838773572911950908175148698835042682696746048024840882483380066772250004884427326553470121917692946735771527428035377036799743013962789574138454840288389235701859986355710711604793565317714873882653215686840667781851801861442173766701473102344883988531499208444552485486744431240060570803533986314996110432273227263407612232466990130652657918234345631961064141559438333692062474097931565214367240688421458729439751859756555428755080861622083825191280442296216482772252631976821699125059530058969578785705442934383191262942454874087164534898347432361675634182904886998135759067696555259090870215394198477203765501119397595601834463428044658348618990887266065082808233832362611826031986268919767245947354133780759801432370199493413377396905192482695886502885404288788928919641462728602800428103206469752414956430287847399268841884288886656596667565134901662851385066361739543750867309328518354433248916847277505969534715770714911662171346228022875224006152681042722638160088844262406847140253612614027169624171129210023804393077404449381009717602318486124361714781389446541626497701358362228095380906040641005247068775275930366239655031794597153464238870068345252893301378821564733669726579791353597598041644413994699105032099778374810195363745756101478655114671691018486290253104887293849364692673815770176828079805129206486674374658456523278502911600357307185205495979767964219836128137214560738510997673338806301926947299908775122790898101102974305406899554906342806100904991253994986304499378615138683076701785070429801840265269434736313704581045122624526510430974991701778953307759283508737468554547235472095003433433402320450521450280027851722907006636621215932617334371800968817436701008039121494036927986680982165755070766540357563927572548676158703459221279378456401900970003599351866134020936854931396571069081319469658778371203381553241991482983288859683307729123097735292092616601655008104268977772922842764252306402839410953426953147254115760501371695911306665723544627001382807285566749038196699391444881545570574326603573245700697731242093477294984621237305563301413304080325972019753863004414903471074392455976571000829587821941825257381479340853158312191975488809670555058422559047120326909290240548961414054780731071246757979603725215459997578488880653703061884478464623191974456384520618773575984193531671089992635223430714191492608634264897282407493978124044875423238699590588714810133248115831984847915248082048611109463043303854706681294768649513173312299436234961752699555467551333620935375698160367586067701154933298548667473561717415570535500271566116010444426299344879329835452523369011048235584176462916530930777532473672260364143129445335299210301595025538520642570300494519996097226649819279313784315236628824269312938255074673768462463161503835330667751561677451184279425983762766628675776565482317264941953605069643760399665837067574213067640202926677715686186207648069041083708114532668752852826710007546501902718117959422938582136533300072650010999765470430630635542845732314816333727276654066152012842050897650967752346618829228796814889258217891985245784381502092814048456355679848206272306470117796338606536545357616689530176143969418310266738624707585434114597740886577052587114185022637465114740643260563240990012552389182834798924639476037477488932160069373341374050077870155416852048652224259705439973130023945328563061227639432921831268471845696065820902181344543902238799915268255222242811089554237637574378641651648109073359276464314747075415195058184870329464228304195981503115474709036967138848779122103442593989754117612480164709617685597488856959200011271970026135656491502377870339874568767620467693981225702436534891201309674124604448496647795184249554074420766112798687107269959155580584602742760216610864860676724435698645919855376523619267063651610007138462970184712540597716651037896331225827503454442307091747775982763391956205615899104138221120133439957468193282668655354702980363133701101452524130803949055973651148616695787225372807661386238892337056364982341383050130971174681949670556054729085245740194195850238632038333599904982676466085352262485689161912495585033505187885949882610584517747135197037521884217182482616620372781941948247658621727344150749238880541384934399272690644379872905145008748102440422938682539087690913996150946709472128854100213593262493518269048307417084973201624960822416353806724607215522340735100192576712292338119166945042506613023791236163850430930074447526427724278841008419204490094002507460424249079532035236806082878012676771049758252110942460520857299005630773901069565488849169563648186128670803614520147884156422531079026663879187285403017834843555614560554819249462428305631212797248041423857928118059261268428428074691758727686231432275066115633942713293542384531232501450740439190964102142112797567667814939917192648180127414078124261891376427643114457921244058919518693370910281440483512842058890582666504927200497001574547938593982561288856144503657874413194182356233490544798654290216271469247488398098319416753200953149667613134064279689027382977077997107290586358871654728106611769929400352658138899871224787378889739653291681146177053248870711162635112246345305967732520855418730470687360790630681000809991383830349660792214788990644253656062444675679425238818353373664897441362247845243460335440459882506935713954729532069788022979592939656932597666163840118241033040979578593797848592586409892138651590626626633416221874930485610308922340038154366225240982389253729198612169277684168223780237876569865271928257605766967927001212738066171154460213165828354884717404472192446293030896689531142784365804307483438247996505564359636972870217841296892472510082365981057405809112350086116742031598679320514094603212906683390014523438804117921431139369124757479707608521960678773757650850268971315675456822869275116508041512839977334821509247773395989794724016360374180940085147287141220982671081671855118580130636951252637886486266765482304061901760628088095093725180769389054108506659464943732968192815392785207325568495043813340244209380180769619977353405538501280986770229791332065013678949446547527208118144594492341608550516409059788656790000951954859526781478569542617975694997727629431265092054634852171756090548167855160456083893864882093134423654768990340023587574602655224040855750294801504590794259479238288475321461859784354197658288860719519791120204660320108499404743380140436412502739615225971366023047857464422834671478642953160807313725978276787143299204286049951489685875427880244796678130177080418164890110784126534978720078350472035394100072986866878455300539846752101201503074925737180850566530980661167494665534740500116425388586311305299793035819120441319006005126471235617369564926984250209381169624092229716115034591343914640665889581302396081339306840751211408466255483680400078927161294072155062837686417807933283373527343658432400085414973223128223543734417637171564792402673415443622540034249660275573173656982692400202711464234289917535215573531440734521268175911704811287568798373571057405728151516830980131612317343671580459193278940864139960565306664389223837081003525550417112951768108915647704490746872155727888427335393746403134498744460932931204689033323007719118385048101576055134589235566142680914208159330294759343241054470802796596686931629461464052086422657446331790577379527326399927268712536188057417151527522340437874328440291934433418232307856257903952254239175696013206223656219018587033271917437305030850197938753953471664308358322008234494109702346008776365668570112153274743722596016594399035564113893368535241830973004111126092561334162824654049437657667768473263917333553978433867402941599453822141181845417216394614978316206812614866425215513229028923997143277476332078853810392118539307833789469461362445495872672048732288524104629624923769825470810118214653075379169881234491298507432333102474278232905591276969021844971266270275191766180714751904254398681318309564930894479693632197053735769278102235740772338801479346627917566020490464522930606616148618118361405138909359114928165063459237751600254461881823237286016883457162316327115732510728565180576551422772092312722658826564117898969049177208944994810035703441289412378579016422244269580714807926486866010928732903159334352802020470003576586466935064055877253102849859238659817014188848608413652792562404832611390884086507030323280084808265992611381200507173864996270218919315998996135105658415652832114297926189429187203997697215696366313144073007720428891330574214957922286420958969189680537258828950195294985898795083961157580207498524894472813781648715024504424963371931926868413167284976048916102016840024463479327305059424757926724440501021174672522776377073242967715864273760631022552776642105332394597266108426671106541812940057721333266737630358494491060361096454988613170668027835907860699444362608643801885594967129983287372136759414304304883303319471644675294167577654004093296787385803810027290946737719629578513016476345096561125698060571963316598331344406737364311533529112903093890463538791149981752554699836917949701292592335575049066106875098121347974723644355700256585767293480206841673089170362475819377479817406977464289634493192362163204288018774340285927216209279683278981913444218251513207304100027465679001280540352960626044085503811430511151587662085328880604575634355956044202395148692624173974619629742585775447066041910868828247805523074357139416548439028312374833505667037764846281056161944434584893263694137271946449569710782975512296201355506300867766152979473929505406168764320909736187446701976730903162583937219914612094770422910407925568228779548677495776977973243807863050970893415388531146166091848954596261421665835086094684533273670642445093686513571713990041254388883146204710147940674958566082650387276985974025058846736268906528339004242479544773004565247641658073795839394113651191603198906219227573818561208726727584544288881501537822503991755528649757321486168831997617424516462395158269505269177076680705158551124187962531688159737094866729232329678814182263129664908724647344878022952320717248443679909577766246421544433939598259412093699801228481563686036344647488148716409848553489489200833598556091154716312536281187019981237083795675389047728478728347131256408840385229456263754672253707957231113597865157854405843131554127647982624011218841379459164680830875652152045232505500282522752917258942604715458069677378949865699776954017210211632663530601355741887257622113336072332494125045073768987871568589736547827341128372213767095636266239233878263060498830141474968511607010030133843165133145910964092816593102231966485134886278752983195159513841334953565161182349743574562462946934338490524839948164646684421962015775817185568844386464855491128632357774575292244149196429254546816469131900503648666605622764177851595002897501481876650298509774157327696115910978159757736590960793546016356494053450524429555910965384512116158044186701138935219585110421076252386807215614042464666004650468140120930646570739771375588357345075515652560797331853090000386921884690960400887166199377106266217282531268503178858969099766216832540377138621542500398750050008254445652844504936406609447718842932696614591928554666909386312640382882657691903754599500125259647190364346208747545414984653079386767155816049405548581887907463126637834363873163840748274477703781885772443347234501984389175093768685913592481211925302451874333835966668475578597952226509577363475125291797742299761879457585350561744411048378904987112904060878543596166642935521620222753974799133619456361043331859437345289106807660551184183406711455406905652780715116051109481220160737689162662799780343179193035675044324178980087364357123276351652991578994229232859829419531364877309809785101114271187672376479892078608131537291724450428468339183222427402000756878040827780221129997114434942616097807349280815765407945253071363480336419162191939402602045825798137631444698052072564457968094781992996579248488638368632604159252299092044749104171757166768614250266656890268877384495407616290855663984008507871985966320711841936113495270553853701324672707343326706569186060593348078773528600579497546989443265588742187860413806595398688921923528951975340323784381740960285259114611396501282570541895177077131296167613940975616178889533454499374011299379888119382196280149569376377079515747442942533524982113996025880456163402588266745775509182630923869967511317987352442720266548433671598990206079665158314649290050500542581852632402161698094758116319647708948771114748539009622710796705999742179415272457635050523117432641720500530264544900436137496630299033549606320212165350320115720049835928361436456599241020204960650758896598855032695788257081076444173232186370196205107944156735629474071913913167377228448657026623419143706637255453886896800106058770324530876699176102778320990904289336027841609294225551897564783862943666172883931364898289844819795862847486426140971838712168026289354748491487108005675646172924638452410756596850905498289682261721921421373033361003451640624252682763141014792522988590185663916488433349802846246041330801387844119059081154998130327489675438279121351111536880293996209064069440140907302919736503649948688591301892361379857586980679915765666961433638471753522565337249801985766624409114022021952604737653210040040980109728535184571151627298516874386408087958798736788156504682518582604572263726799932273184369582620621557561912822271185647633516539190477615827435320193952953304292278530011137049255533054374805997782860596583164800917527617245840246866638225650540729204111416370021071363045729519138918412807801516106864151435060692417742365659006419547869833927236232116169994379592322757527850709664908225799155684483136720975585604094269546513398528528012630480947023621814308568543767562345682471187019495587516951818172630884284429449206748696163386275776025400188547936147944154200344460342734816403797697202416499383783533502433930065709342548195693316089365308095709892367903448475746236006309190177639160691072421799548522558953694871917184100259258860296214187749091237911521543647228378460315381855887748419204459025554100659610389165483735135316465786784338434336686365647892970760783513580410093784483725822523709995625596519496995737947964467919844748554562216048824315773168038076197913316531481461503041901047678726912383583082658533531890852275845536477088899917664026706039000201325128959117258477121531425475360378110948576505100178394404999519259845134193385058112344835689101133888770838337386706885503554231110292116000148307094599293137567063484646162094679965811852077190125871256282158796694774811216487257925981044917790925458060406495247611887082556462407721954473542891748337347652055214581024566479905107031275879490833517285766689435431959512084385681460218301953383122416902093314530157248855079591550495459247233851629044344325019774609619361067298159491454432634834577199755991168957079324989815068186366697476353855910142600620456899339295070732210602498113985804610962242817959267037920827098324185465072221436121478521398979282510371944395638875107780075506993297023975567615089007146342188120777890702275616275436540987611604329599612506123380540108151135892210359917094188590978569500937126005785811449556980659969413462460155949325939557378890388223812632215745956857549964880236819933142638474359847639376467051795578248367670684476428195082512762860168738513132916536849236091853660944451688538574586132979784833061564501890992477164801745042479046819824019709263929977121371461659195232923754011988711894889317325884981847313199358522563613523387343924637277022262320854674307960402574879012739351074652857544730034077594610626989439216205752080831139895119482953156718428235840466165881505121506780519098482040825134093567981528854376708328026964011643486325410612800764262635423367823205615046040828551649225831393110811218525699569636668481100858052718290699895310646593409286462687910780652776653249159170215433123341355966411675363035362009067127368407797981189968054828478107926193475051505369006938251499502529343241316787392896612677393932901772417370863508118092884467072949877503627325793394406547877672737402940149298528146097452560135231259642783658697911655769513600839483433406597689618326379636406833833697515283146731487599001384532333604799642074995970591529208160212585287538901529811521873756424017835280980332369844300166341582025308289184551233484990792545879106698365918948467149323148750235148633181446657619802003417904497683727867049541801448680927845235624052399542642712157394965472941718132943900991739428941001877584445428598758439277720370414386546451144576478910471942631561190417779025048216856796655724562017970280241814099041242285377022810995283690527146402608720583329398138345712118140682859904500508547905046121523347879444802047342443565609730533177491211198560127914176517609627604483108192676897775498010682961463754409987682127348828175120235968677564773773439966411216332723893134365821947230677382798106303480213207809445084662724461912912786186407543348637567072899137571262170045475128356320069449834603876126725629791155300677180030232886468492655286162882220406715385149827441619912850366009353052364972822947365984959701321454989618016583038007055753145497699082745771969824003164252088495285322537867389957526909783011233087581673824533657365989346393749141765835750393076286185166170049830416525166695090846728176394500058548668019757343437983626618614603044776560797499881241202469863431429447499346992462770846747989297451519864496489228481175635624237991326251664325722803225019672227849418854656692167086870808629414603710159027273990008752821965520720274149656991109752309889099410401891742531889690943514806182851233443051766267551127368645814149584845641356690962690253644664673807921806929559920152885597980642270296198278285355063522514337025325387745542425465436897518493659121105759795918402045296695267747363417902171809824861478535997949016177690482589329254587605967797430061647993074261904005440661703059291265878122096982807950467469076735487562399262647514436897816089737864449756589386223232557240174333001816996749135512153334870950071606995059063881885793283738977901968241982337085407025126792078743163230333401392201196522422695354736442327570270870603017120991283339388144146202822581945670168313393442631268451318063808618767277311807295045781400813265429821396138510315832002070262852726932619982148808450614364848528369704941671630607947736250648457984985899939015017290083620996442931469557660845081307108107730891452742795728823777578959354521741559880899710153123852244389011417111026794209155905632777671531814558252673737542141125232697176112583219866454075265181552629861560920653703698772359118550015368048390445759086331519003961004394987675640457125245734084563673567660448477163174196202718629909681500410077562430062910518187732721513490500895805302568212872322047190968269995680463052222092280230313333552860031497705382188978718814417970072965369560154649618257510658965768606462330455295612154947075497081600962872224051925810287491386350957421577818283421596808242240488892045635544745372444518205775263245456617198287184791554625532261005622233568648369844942259582973532035846219114543618676653111370463881343899831365461927908183154386977573011639510506488116576903290577676331074534897118490167843272896938193561611177180143830473308181646361703325411529099115026908837972745221009883024077231369444969993526564050721459047033943798150870019838126404234281312448357917115506657835654076241166961734121787970153921770153627913511352911781733862830195018652165818939891188245263540412811281152875866810994073300556320640052841214996432957552213614814174338572662182886449952250693159592067921203372144027361137474026421101959602260158464537687949180088094722502908600515873529980025721990041655784627246099320237104347221302924997413097588924506054081667202329206704438717919041714602915623965908800212973381322679897508599614340683550058357127264924512237462723952414276049909334586029482388724787130696518300199106449589487683018183430800877809089880084202551968516365816126800971532943068614145329771251252872208748239272686067179670052682165399087356464571508162351824723164436435497077545415175526477218591075053072929896939140256616127188820351856471144903633897737485919434242051978922487702223424332892405340676778492472786989707849141192104685573666929294813578081448128068516524468233610603224588266447020036674409883970573779980880989867294657761477177070026588926972703541839613945546720786486986118839566581923767598402516864683697301172536074229675271124184339021313546150531076369031332800420495528895300558903855390049008082132508612060097766454804448199596432703039670621629513163218368227702985632872401254730302038077441156889838337722110618639386451071826872369775443560691588409839839216389648422586908351464861466381480281335173977816176502253263277476366472870142699232053310778954216444147151681863163222333859816160296628926086176159899244499788151674516380695953749856642320602047363180515481209552789452862594364420066264578209412553011907714969257552615948507367846313498694331468441014032126385605238139940964813894299613482353765977246475184771652372219926916262880411206404991227093349605727959222654935966336749439146086393233945676476509500318426771776459806981096015403529123683638937876055442912931741927162626366421643020388412632175838201398434250943852573489529815302763673039792794679498858701864476645263882422251296694269399514748104578937833091900938090061421130325691677359437017203132153641253278618022614008932969320002718087569087096350878404978911112814495975941558827575739303106898787249872747807483216712150632516656204315296253871085926944535601289608418287146592858212491932176774456629455735169837425488027031197850025466801651224879295005427440683052214795681425527105910176385854602854172208120253071146447893796910411184354322016132299025129055975229310102877222485030774698978936096591931857063381741741764210732008201738711239854206654111740715270105967376336763358165672214360737537675260900753067184489041022946672931226078797140674532257631002972256895624155777246719709997965912547757589708658659533667939641911061691973592201554613029520974822762512506729786671300769508776642016646307135961643697792345915213946846185337540250964264644201605319779893982853790223030298179412146547264463308227682761245495335734727284383292627553851643150602530753515002380043998509923559451305783409918217260747685802216069463215810097755588329577179603458860205784885917992929097921228513355358433276957174453242214739909541649893698651035103142747899484724388339793477922975663190065070414721463362928220507219487221458007340840309743076971693088203941931273688446720437503138536939662198715309218353485312815820405794687145395585893847717448878094768399609864734469415268342134656106416786978701702348644534793769855329883000401177603810204058683957677208553232151823662983555866081520447671644930013858609467664399077576408940596274125716149928419778937475803198344563682441649713909689188225164610973570609081409081520628520586132230202315480780726971831064768520405955551652202737480233583356441194499284592172863286218177923630230534020475752249076129227993870181176954247077367155306427277597899822037795072346700460868543544708556269489206256820092387104895429105120496469633051759768028788070658960806315508034905627562053125091809772124437466666876398370489631682959966587092961225052378643292522339135848025145757244745537977367942412738551780123743757089376044470343828035521836457533853238682727655736496238311603710685557299448962878533643829900628356652793192876033031474774042140173344720263718152347353050383513233589008936571536929939566465991533631905288988536574147112763450905854321559722004413174226343083208001317058644628001785055624169920109530722381572494574801132147528791533069783841680538929235108605356277525611425658006894926932804238523350429919440355515342685099778973317702192852989387594861474456683801356797112789364062242784600215177051758047803948824327543393961104818159635898627124108804467171640538683290070605925182956725219330525078476906784963186150772803287993780926607495967627902556689631088941969315747077380644878333529513739772003819504734560637091116654154578538176170497809707675640053676680139214592451966749165563487375447412570778269472484650183824946167600543874387728581960311509050569241928697957926234759967247411261618849784112126115799294043479593369713715692919024373882067856769149043710739377535905139056356118343830528380853861592777305369866602645868306955097636099649326609418054775596228730632593302237788341183266822651726534693024947927574601124865039609903831082629909852505209033802687725965626520056180108578353084084279286887983725459539834288164263886941549080156508170716265181012254123078670198420709801347684424444735156652435910323409937681910076425187851483520787000087712223509706455566482879573703871035848009527760281859307847092827344574574706221245238809403906914348196845965878543343820640892595950507700067681246379060371181094959600051136583667715383868104415405119513305668667592056206058700580710827070156842003748773680270880909399754011870904596003798181377417596077073248872456262922641196134749632480482989144240342657105787597749181504979636147086578499538491677252428389393142788229991414069152828091528360852009418930476502466493621282722772678198046813758827948538466395820904525318983113531857622863711669714436299119335393748605888794051568137544974528172843407780533900038918887360426776561362228907322491503591839936450374657422874773977669601577237933846283174118684072896472444415565370216351621062112600140485135308688462488382597061177696051220262015417167690642544902929442125857177794121708753787241881169533031474969482018657257606562775685005383479456826368682298105824552002236018588557356728020904611913102698557585935056339304166423065674175086562268998014182697330095857833108384830726720370278701614391541100262962558697165209283267174880401753148653227744611388642772617886693474433040135409273826429890815106537935532852449090126730845871348776828452973095320991774981090989493718299249318292925069897749667896701466225884672145229281152667679514819529386107942017327210175703963479506136057624613160541913480432366855877295612204629202777149994911968810322927619212985657107846868768042358573597920964815746615469326117188569951622389047084977311777584608594097054110940366271395008890004916842931711238046921043623049155130781340163635862537459641537368098721287350346781112464861245470124376814776313451478050671398744799650874675562826996130272630145246667098739871317734930378945920795458367935022458459970982534962107119340054408925527769362131771628801759731211334902475244823037560718914075165460047144726589345798173119338367988293878296086014210559113666633672054059675409395272227629062870747245520599002063371905320165770673434485784127932494780144795238962545271781274242734867163554722487631379695307826905061501633170566361616718637667917488704507587244279279668224974213614751289699446231466015049047635759994467948454582125212698254472939571018187286851388883318238880293682823042187822811009288919124873713877498173027898144224960900432951751244505837729209089351717431571216673406634399232857002300518040641914245772139582647975066331748072303336870548469545931201176936286561201183039016534563457817780976106043112097036650577519991042249821681096933596240855737685258172346129899717897834979074031808762837593607461637424485781121371785003405978170917765603839944042432614689037744782408656863979613445074193491320164273066913055298510477542851513275937672321127637433894365933081412165671240787447377962225940865953868898649542627321652025020637721665420352366391561368892515202286730170948380895816784081804444348207468494617038392950625710753710702960670742755151668775231606277101465503670156100361760951938971108078080546687983442465750857754505508163234284146712736406876934384468551824842096702717998222755849794745328808578285985308575528317252084112245801897997699061681818647888062982956208222566163640388529759244879478741544708411504902166573495676949557984837897277612762415690591838041100211483590430369793004933942102404257416863394097655482967613594030916845932056598692439606054647737188938375449079960066629635566211298867640900476048411170947065911987867227400148081745420395926617554022180381941051341178526972131823686230225658079990241206181035389401508874266039689605547071380192409542921741613831852058938685402068428316807522992256709846234775593750460568185287518716136080085182182941654959452533779612250797638896574327679204855623384711230684223724446051367641477978126003052222926987107790279724070395878283607198442950172650120906757088507827882832075482682484854902618284038862110817140404806118828295250181380238957026651840557239143616086240240900943563574383022129276329864064471795677365933277638681763267667734735807302365867386876431970314988762374945610108369565885367299551313287025197073333559787846546029581509367178899657087522097114838863532635329353847119198836604368917369025362701080044646022328599775611392966870997615900286353534345274473805561699166921969979912479187322216975302793741061577356799470301328964522265925557618663479821407043900475212937555481229437359248801586575033566189572506510930329148512305630073528597999933152568818952597438944603530996600778643054084522447349496988363420427752306775775510111393071354994857305843063590459448795007913634329298172973999692817995785737927570522651154111697355686602311077693264130624690472840895670310533467377160546348384097557521733533011026486983004764316769809560657224925967910971029401805515056543076120328819828229667596496592054808939214035156979732981642802392526893895178950992877933154586227828101611409442219730836914587708551850620382195810044481238122912380850079463409455967528995645182853966928538027992601336806407722649280530691374261044668148049092520212291292439713712141375809197031112606677582580609005100142822978812914379960843839717183977340046325531983543509194466791238835855303049198560690532954056014749904391993323640205019053567828724498385427382892393658380348450824206900059737807051320752717743340240809340316568928716275065853691929645798039457834948897775753899306027763825225643866408992086030763655451862875162281995028606897837218714297487876394429761127992713296004376347289535190102729010608742475883707471561278146488938183733925025660243142951973082642744842423163063420058401387176800402917697961145522919642066013770324109217313231068130952408409311321423297983248964587568279788263183509562555425638556439462475317582967586225703368588437377753446034376603832801209607708460609014531221216744490045289654004677038888408977682176414984286777167274745240144567464507141687582291608429623518322680646044674959359309236331689769989615041829103041660526706742337852221616722190986793531318927771039206385694948101083908580629479159014875230290439070900535848647008338065285928211335046554589578258906793506906296349448427125926908295201546124114332449631448433103321687893387888482119497464370266776548124879070805956479508979451493744269350463555964081164583159275178577012064415739119526880229999395608059140156761130930530210116912099636139001651031616923883337639350109882438848838169224212064605360260808297183137989050496036164307005086747967963135010751613213859478488122543175209039248814633364860492435981012096892036756381038085285801829190528540370274832398577526213498311599863310927912270893228572871101775448918706612698600279854252145898658964367735403284302725811890683305053727389033724022295254569314789447051311384025651155006322743987940522134197858933546587994899490368024643854749535118092645246848531871491344588414590042248767097138631174308127212975819912196203392157151864554615605539542357290385009261691997338828148211604842004601078154117944792489357068782428212328927942280596480391664468387045895205466558759226354524314183292910650160873365994425997823248370779002104146120109085160840267909032070698664353433890948950769266454505172483162449898992415137831525233386870475043903667931272511855006391453003331808375938725634447738142125880482729379171396108880108395009042916774987535011586925228139543445851419332042956044594123168156524473952788007831819144363513368063668717407784956953163315552087831518442630187942787740575606953907525845811475973571554515348236826311102104110171456403829242371086138962804203940268794947405727653068630188169002771306856275920149212999493658703138596571099401458991973093350443924623744990863886948745899783985090351109682558099662314032959705125433120531263737360410592670421495833716722771700608232369655227978049009178296200258266929735826177100909098353625076358498762919164146944641791700192837376287841121979298286771691183126239546768884832707219595823769582525178108520147317843665757073859769922574473018475697466916527501093202189443688697731579571194565260414777820850374428462076106115046568982305753598616655543904572078738288622000194642320843428743375223081795584406057037031602710878415209113419443219595634306837314897991773038293627444537915094123233692287943515516823811874860104302759947089013389963627759884586827722801084535144707925845907421040447773093649045489620106492867555723943473084218111276271859015453893307305054005037935799792674401024161028264832542402117856260531106063910599182008166760082630595901709023345331702960437724100649846373410882276264142061451104435689324585941830692242444364766235068559499616917905128521674795934079818835786224232890957544502797792299863447314610629304284403399288244478335707737232388461643507392102940515846145051231387190863196374820313899327700572200094248603522787871099532094323213535368827237375191729396613750364968099040263670392276381892514247574194841966195334570922751971010535266090875134858603406696969674337586527999359852403036828759091227768359425100998379281725777740426074904970439304617643673306639814194712009842762108378024064696896091949166542787987892201119170580524765971286041846544744049703539780768520968346988270845471579308365165648580874763641900201938483539833501745223870228522262245431215827488054979676754729814012792943940425388222104005916750077853141819594403916942317179432250759228034949792764998381497949658690463534186876077610754832053737917202219966726337196596303164350884808039838194284183504858300075719704010144374620228548758873106771317352813815058674543359256980559114548396530668204462551049139266947912039776868538320748333147625286133191755902340919649811484152366573842709867383356255242249443660350847322594708488110312974829363720034468575261795113733141970632943332174185223485923248238682681858116503984815096071647597865309716131798441971379846413754164520270600094307378703910420118514616852778327589854189207480739902553123988545997143715807957208005541469323327129956168400775651465287325718182785543589612111812837259913911422794709679236193155398708455928885124628972919819503913088033198728188165194451635091917584236732737461020577819948561619594066288095938336132942192736232502950659941788839113620950835365759380400709452676188842541120770257201359679615708078597048736613320774688762551282149658814840828547736953966930360090146976866379856154519234858262764550194367130907319775545224455791159597551904221072859154467626856036064326249506773591255978388018154616022659399700426938207112921868582878819103156238292325389920444211937713964004771568012092071654954266555545072198292391288629370333335766286106426211988559008364260601213715087518070846753619417198306836911739782399247994408208617777996656879820451929119332077405902017989033888704583892735701969921960169939046196038930223095006251639248466743505473604367678973389283884936094605860863901229268472900218462510933989111621052841157631479916778223012023561463695896492156616652285489850302705359679061473683619847399809278251131041432072144640010974925023251729302504339101314848760068996755638286836802531054176704176588371243824805808001593144063344457784826640151581209367431317191172278605052093407927062309381598593870396405330702521524333917468128328054194711057047734500129806733270949700776814321473291559840459983614811079471044486239064303877687330002983119292380113414015968971968940315498559667257718886477028071172052572003454939653833790239981878304122701097537945872087130462683689389990610528873530329782218136256925638031746481902422566879562659760648145905142852715835385111958499061685231940506809901203002037310544535347120065353160548150202519147306953619783215370202094647001399278789631653878723734107107336270334461896438687632971113030046970915517250725628916042856712317201885961476373256107273720100101377448819019379005564487992446231181297388814462188860974790769319965536408568806763710031904296614443824715720354786227977147717644039441882926843334364215066476325062772890646197825744545650121642820103556928887295211370324244390686576018211634039096221283904971026389339827336080993463333740850151098956130421669294559146677127045040950613279592334857252824048349151686034991331489192985408261041240840240315371755891445828537994772685080266536255823217224502822284982927744175146556391223153952067141342389533981012140594746669842136294374299297132320233691469017646321764174243684911582013430898827493017744335225905068099815807836119259508757863256544310755823562209305493191948821697610884233675985037286728756051089612436113108749960098878901743523377005650172404963230480655272692680078258983895825418503086446894851301580926154193675537642973365588696247936405951192073748122374187695621517535869484819042143377104284104065289770888548069900949629928130808249522356316764073452112973652585571237738014537981651371529207446930557409024670244654656074297115731007855018150414993846986016360277543503120096347545325829359434683366007511357636416880532857911692906335302201178559734755074779201506150790110449226291754102666169883014891131883536393189573563302133202349115987955198358694936372251417509340811130877872081391936367570326865473956137047612956333745319481350619920226209502702766830443158140082309825521490225557843392890441178441498792976154848164466507750953634183319359831729820681304432780883153934890344850477387457575681115669582468301512380331939782290759946300105237940729326558400390072065189903797267120500983362012937118690718713082919274827637932149450411324530802689133495492737897009128937376555610010732722785640804633220129061095890039344401190556682201083958529991386169432761936352815202768038664039468269181228817550554076278153218880899269092265503172474204354728433158470860436857768908468690001700213926292429350179614009911838574869037891600636738434040352917029560469676129469095484672348931742754721739930601960038684885958900940890022436356903229585178635680217578669303380926361065639420387857617343600703663765037056706855123719613778349090786403377679461364250443307684401105552550808098668937081400995975289319200523664005124999876219391033995468152057055379381735677107119749229641831198504738146550715931533096863340171942890271999215347631320119644268882409741903929800083543275971843190744796857687086312817392319841583868822011792974199341695009241672558997353256774111214198074543429130694875662145236497350847238888367970275938551827451239015176979165309830894649097986270069978995372255879915559691465286985018763932114457656092103771300471906381395070854064286970173003753019540967652171784767532878209454248822116264845751093746343902123224095770012347647197240340235959396607559004606885931399919770984792017257552047538161955829726198811093288465555968966780627710603111810461041883304785250150311734845428889254291125775023814351600865337647647120989205721837755829191055040682875979399905364499073343050012182284251519281228150183657309590401083311840322848244700457310065855659710914975423641018100800227957313767382455691898242168514843995950075213408290312118952646217026307904261129768975585041944734667153408290154144940727371528444748048037686106305429546494705887736959520206613690709082288836530788516571098669346684734966068847317760409816607377458287554188796873556703889244406597386522081850949715142684199518699633743456241271851675125113317536270658410495397236469872097905568402882032137319017815549906789185519883842245090406139741632463473278085973967695256275453260413932994129084742908482733989745946168600923107456700268024248781985277651084724637532096409563878969805643717085272478028117113127687483438485649202009413334433086367944947308341867867623705882518938625050120108857047946821926456896710625576445059033021799129800469504270234764749242482743171257553598191147794837301351714565441038686744991582428473554188193536584396123604111071569271697410146862547504159512710944315419407975563761167614349849592199689587919345007723553889812338086429313364914989670965016731686950460729387154309512144800362377066302587194169025950728344110037133707027320134470805145556011116434326184462621902262769689831345488296466951474200780728033479890864603611095468694873383077613766956110837007158948892327078178560237205013094710079584780208030411537491359606203561860170125110897562379838492742716912016322826941702649435985875658913627660509949465834373402797283233818800189317862492310156161868705852810507680620931680940983117294344085346534818306148712144296613901701980399158728419029709814572703891794973497722820298379388489234349125525828909501856995885526304503746950804747243281564541758696872822301230289162773321784462988897366827956157442047925762888960217967924713096237909564992223271370591118818164701512730893851367565191817259420321362719673169169467950336271099840972405974193965243068106833178278541646768592908764717644854123735143500923111934264447445362903903624433003406180841908082099632380897348430567329435279380856913347580663971123331437965394324387841171422046316308212349992766695285636272523180278274367358368022474568087173032078932878789000409672216224038078790434384456814596319618389358466844452004479201388129576740320340566318336652215454452403462766049229906744910917839321304666867966430514107868816314819521301245606060242277549923480213692762393380816659238640719012492358268245353041603121847533240660281910404509002314223387631404378493238793812117711416256405145813640320186055730738335144293525084290207978500895764148424930377383681830269402458877467729302255556407819055750210224206137600975310098963913548281353536637884057251666359175854842119259262524932911657630082331537508459934776942519247856167772961017983255349185469813399270483734634916151308510149039428884526158422300608686660505183788749716314669463018088062325477223645585586654677700439569438083989325309590244552866721779160414887203318199930886591072384873470461267366741081836410513658083656593063233809436835782795097427708037374299942180656705664093554290422220711709314214738044620554384005476645263415234321733266968224651287948452483073249956724039269460277203618341412961485294768069218254467974071785986943168075231203990278577010071255054329877884597581947751427799461233423973859920071255670945804825266413499672937708061922715307642127841291211049355320590748794167068045650741433309193690861482841089965501856627691352402388464253554191001831120492942761626678646656808761856960828086602149009584304837384860772796269859169312594062997836553236916390920540312582537391958266682973770860691732068936625857017728829577505254691873293840371340805452337940807456971398118940105212644889436802537642618280018116260870435738103495808429198794605971885411476969321846291746006410304305253503852360592310940310967511223203300783649247275242393437868202575851728389853227699855854755123629345809786018503053272632263067960776632998591301348872527359053283720313071243879567393367604711704198296488287980932615969035297392384577424244315358185956596837808149426063786711802096156561827658547005343037117686610279945859062030427638127652338318213658737309584395975316662183463060241949456781530606347413719913006073754905929488803998064233823567444850348130832192661811254397263622858004620839594379109329956720840883721932384317722859312418817460137491865979777000573847144038123277248544281482815715947441930740329988791944309540477726863091208837174955847018879420617711125683327201918870414613896254986453166091773913375559215859360021058750178006799090268350991487978833979669916734755331563035841072051827306983304067676100180970000171273254864113342888617027175602173203558756359687882392550460178278969700178072333516204890744446189895102503908899208725412158926824290744750729589759477437750785588893246134727622385922357572566172899635338530121618312103939901268425109901513475534027850551682188041841753207724370572094832653918839373760096546717055187020665655047807931705221761586448002251181191026426225895521199452103791600221280304611717713647958590588905296289516633308214301494322902619383782315161432125340736441552135683954764216849912598960762918497703064763228409531923020717421316354987597387764798598899491452750919176686209962964618728679298561345179907714390354015473675242562691817794595338809037881172335896844733146584746689359886567804148127467445459924114927685726147520249492675337693365540297745218396982274801089078278089268913370180891468999898803771737240537345742291211782233270073407469661809075213321412002618805216132910068803371332329043004811314304883722932967879248207536366595086766383514574592513155547454238058257288733771807409102364233466828235208865269478032511996568623645855149235986190738369193902505580627683977672605338114474526800123044897079570116410942679808381042623312617405310083047836753207522161108741113713118628146406422763442613401544798058312711505982214121385574984590206090271172898173232627437053182862831217979021127381694922465656828064517340873413678493568795482993384101734417869352289315685537924598978596612029585671557456574189382830874999846995013050505073769821427159962491183260295891449418402814019034640861033691122260942026706611703115958441848495325089136993134885492827907385704202458035450193711541239230727512554616510724203480372399072486998993634427454070510430874187898114526002988568792987611503707190976732212068370536473002768543585386514717773876187623186798207660142671781452521486752675060382392471831672221002854829596947847002282089779179386293549901556988608510815142712625130439145782726834082093714025779469075342460797154738981103246553941149258607272535103883327785825170611992771753994085249709064668603684721648323962326930019823074342586482754842795469464072882740221848250726888662199218336918867380156877894990959856028245122199464551417473256771282595839524219417379529806920744682093016234274765439380081840429258940355890461670672345402358062984674060961386520861280790683098128884670746471243131154383097178488241481579183656027456453371378942015057883377765592189613577702060156159110000891196783342169503238902025799353464082094313769808130730307148990374662961567819820048919737311569957331632833683923290332503807642637172420182292464806968251193462312355345748476147745340193017626961229441372720114573431478936440883883598348611253252356242454020068445647858236659326263043489294922334270395930883618414614944789996951363871775693397683542689047086797673239931697463741371292827002089522189541607451772849651791340953150520600302209306915767562707311992007853504804495821631125910933824521281698259029206973706389284214936323236379765332218173821567034269020488396067800183012498800846371250783568935833443821739167195646547104701910663290639591721949343149347560027256092321961138838209428741538461659611408420849391082033992157537069479345043332741019342319548950498235095638841297651574084870454047096854664075736143279331185443549902798750994701822124065636617111536064741671925572669347537300711823543402621799003469605537729154943308551330293383546119019066127242025690474954934056647009424211890390924020191442237662760326229390880706471996414863470311122785688695791043508068331646474521238446750967857345863367833698906272280705679285691905350935770878981233562660922671713294841565032243533116653517259420927349630557238856643651801381704439194247870830014984503534981992320250421802933581311241531264689054936323554296909933416286599190429231790277029450223331116800673346917401423525710027477041110518249105553871949289955151928511976322681625790020601797628554483476226882145788578833948421160265774682770508433277563447875800341319068921871754658893934261549663043470568786598860062485819211160924030739290810976759761849916755405876883321133916716765733685223082419252829560921982865294533026710734496005354258990197281934485509288358990854723782274331616216499716845376300819654145214790504513236203243337683937136473420436715733612367543349758932324763833422966239346275146377816650426587807586027474726715859637867443471530158158362998686909804936712125778779676101433122076781953794017701739985031397322010789659738993237455910666438779499528811679421085223431031830473725922240656743770680875672513073976084002911920966878898436322722550441015028204665103429300599856437071215959452081246573148231133837813726824134052848462276299191461972678807330833259774714297484163347582703740088112393990813749140376982140346931973136141494060064877959600716678332722648828796425422870762061246201427666282439642101971960221054067493042126511705278373270057787860698832755687802804108500460027755601196324191223509828535875603020286357036129698709290138030282963987341281838839063774018187841203369763432201779159028831233749682061457977110340393694075256472929522823629236630072117960644117084185535456879513029294393410776564455495264793370502653469321859293841650719610265098269219241503170052513057223575920226728549112460998798276845835358852535305127091708760071576079501848704102939644494329548312646243061219375495584229207239520211104302555392043727328847088904316563725402454498196016994686965180108166648655478959343712329638026239503572403282763959910207149193034072508984827674035760767937029580637680654998119955683713561798072916691528674702857013474189892342054931899981273578153128162540201823580576532094861750140481815051286284342797802490895658104974678977434139709639960141875482732123296758181051705425372482423417677216833652251115955691508157065735392068915492875801207380154680580676372962750295605377431136671725907724103478246363757361371668852527013095215749604679263639769724569324954544470491642972540574368060531109441115730698346672261356657218109024722378711896160792981190896021012292777754857429355266554382510466714049407503709027461713809483052079521508774781462278812010818723237157770393339508184416852553056625200407895211424928373403547331032708413804662837434763173479262437388068007102194824832256733501916058266572475213945423492018826287069384263443693394135622788154345162090486283258405089979905187207426148190171016206486921718399086676043539630826715935438875481572981501962847935804265029085978866249186138266775049158843503486674736581559637269305278990117573949863758436307275134529496762457551747687807547979662211252641069364266780668398865413356431447015145200036708955559059462649481665134101373839024068180599100348034697896971376584359333365666710097004249481410868446082585731698607161245389722986213098786438233818971623679952997565569094480289528047964556956790433193099269911772130397309639441889669923505592841072417555435634359056378091869791708099286572527165598217808786766109258574990634085869678212166839462151704721600248510923777408872466080260776368962566078755522266155860694744549432728546396713191201423809316748090393600044743657104091283932926991259231051904252993833962403786856716903087819688061816598846900292951028396493273250289579842727431624687864598163878212196340323799617200455902360393552122178722469708476457396317762221125078158728995577477957690913135838517581598109664398813851402137761172964254044716652445682189532119943615281547930583250313333206614477814431521925209654450107535714286848232193639691661883512509206642490267889685952895930646126375039691117836564409758009115838307616730025632325076741513050843874899538995131783386092484461225795874605887412914773264618254415790959148423293494592404829074990133612689349948771826401643808406924229524267783035723774668278777524077265901739852648259373176359296250050685885180684794702242562818966448325991402883945997227463823552590641771390381356589167805612172852147769882053569625879990857568218774183985749119434442626816238346159211582408441447965314645483370151672354017521199775974462442892308095254909760995859795231676195359242902224779647376207174381174379353776183259322038506707610432879870406590050469112849797951638334822182104752673076249110304170452827945555790841077375177227521477598058527036929781292986077598971748740814716103387453327587372345300981037254573387495990326631851149499437496587984146366203050937714380919304535585170436123875093999713193842154140756447265697787257520678537223752990007808429559606194629465114691525298580003736932098820053031509396331519203792112786060497712624733726299129504407633695395593663693561797159278366105339084725150188223137136168135906115799645590051556544743534466727722506500565711504029806772062808248924004251326710751601885508871193368715431576360688792309089404691170206408273281228874675054180837701338794893483625372660005047869866954563149510953971755086024934785128840385652115537844165205320794018708464962167415824361687824099573663498941356182872709811216427277801784344379903708184850709358504101865178817599764404347288804893618718432725385844466323373861193375895207542120870803629665440576707403491342737390429128807733190260528440168944045364644168905382879727942503708763365602682277576334207412030880594877215883151391204524101244916746341013125097177143326682662899985806988138893831190304953856643173618461741786528068219510048024010268249878514882582753428777790307606091165276970187004688874096046052985093071075138738347358444257933151786859255804697587680802049827144783248393515793792993963369972070235361820019698990782124281684897689721624130235721418213992422801412683767728236952722941190893808726316757081621358315565095168364337478523032361709656122307791956939711482282145883294879526641682087241597167572971147050740618495146533274689228464500059028179142734350750696086872787551962630907571888814596285496924624746890097493285394290893537930125182210735543199949357883657421810659868758885626577763619673219409202974394702919461229823190511671036604750974807121766336019122691392279548746606686827313511881101710004894859234654097811083869195434884211882964433759230097998795977698589508648742635703003191559167203966193147218979104367034551879560817420430070695452585299582511054363028189573418080672711484588337940798770275717281097056638916009202001107271517615368034721249591705449261910605539645896074560015142775889600039973732680786070030068782726147562072575032911836431161999659521089356440294067979251142121815874478331828068240400050780719440674186967636589072022224983602615455420865323506415177005903598198658736262172638399755857141810154141139191255032021463992162870643620513013451466235099142176245311790030090654840204505534939259490773326736053943876537575880550078256917963319797611793856941781912882437440353973785125482296225646064286936177257849844855787550029166651940337856333754965416337688022336753158413215027286057010363676222103385662916098316066142634293097163276156830464496116542860306707967463974253500616085791667981167144957965386888095741573584132963175549753985968601777418755649304783648525823418945277354231204459949277119521499859979961785705391672538859765785520831317377842403358873478737475151111955840329379325696070241099654248479722644186130546306580650596634723499441667509757238796194488045387439443953899756517131428984450212092265063930808805956999885213496792621651209887119388238527712273543717265111470766159771938872772017840127733163377167259273516639265805852060350975443454618583714327687028952154817086465357356804232660898244627093839736957657903796001285431840525623438070527631756008080129232721261130874545692166583591282228085617462054661831313029730234725330376956865298312258159000736845883056802638454915526649048459303863469550736981702779787614617967369503103152481803835872492210857310997261243820673903828749852132120497777819231155923079760687007170407503776969693715074881768222588120667937883088660208444417702553679787037468885713461289968664177673164159646723182912486113015712739067598366846582932584717118729906525714971226941611030757500027583055817509423324738052788006783445647191883163579020428057985598909137909702307349708251581925540193439300103317079979129834522807259863404436275647787447838482875474053938791960364965221326480702355049608258640275230197290981165845499919396631261431575091548906996980648157722360029561983392570277911412010728398529582517181334051704971068579830411060063530500828252115419932540914238620868349423000248284968024855362120455712020935002165822057229174627916298675655478806878792460105669263048754651739049448572108952453683255685521974660367153309417949218681479014730744459317703378054931280063839424745272972361492474966138832397179565298110891882638050665268375395711202542753830910736919549096884194568447419248070615115291631837190019567614100926811240318374192553924744783069556897655613103197210652764390676301419942599812782117454401308224478579117513489450411394473465859932922367522039431614889802903084183941721652048431782099206659893490103935392304784292723110481152212449413206305488769911474229473615871837570945293602277469863676571468991579321214223346193532045414134504580850024098469780350397434464978565401064962226064738503339495041048280701923118806485960417858820201856847398371723798734936733415345471179714361572712362418098472384853399957273891653303891924976848598351311268504736875400258626761692242847004165786157559255058846600006496203642044609585690087949965005019999584288124020421913206796103642713598211765184319851463327582327547649967253857338609999985763138961254650182821085960345006270965736045807339430316121777712908596188362300537398343850826823526945576121848082024527887423955157050247708996143298266010375449878165698396629620948751217253428136153247877324239076614681796449622468691860030385439114853453374873488069845496640441468663424788928719849521253461241639538976487275891810723069099319301046418340300739756540423418198884136551299202000684799304059728191940470386435338972615294924251822673122061120667168759315340432701311701928451277307338596604578096190171354369004324749753506653796450121198906873895661910190347995624501971054831341140617724112947155474058413311686410701444512976195719071010372150664928924216732081070969407476925936223408276537258518114792132018850390977259442933281958515322732769788999892162915001879487986461571201055731283190673160613535289370316055143164181456912253963755983124208054305245852042381274009724275375886796092988077044052709481122448745029260103968458561714769080727350435377632926654069131311200340518173732216430172852595895865809862985497864513015867504933306220706435593682118187545806726428352630515206421830309138857013050369986667367659490872554599826609057456773110205699040264988767089287400744555320935351019869283059354240738081331605207096689488901408141612382850352299590618920954592463218983460206891442433923856622628343570689705241526847533397749919869100029799370013696337520997157324880988773484565307707301459311006228744631875453323933555134846648108650281031171949543701347530205424496007929335140240783222513041435167316054016188683319637415660692721115603807003784975459990878560164953688757989416674624246427852102859347198088824906289962449611755711498552752498318110143549992634528260433624632763367819320613502953077419294551587702392318575167227115157501400369696094007153425045301073977589222857444336852256537993050506650185930623906062927750519468228884093141663131088986356746312180493083075920439548376096824270943213548224868844136845989563592915375197650984434980839391059351542879516850910203820098832808690465438707448771349471409744164529567856319480356419751934169387761894389342044693052236758799621430930185657684432388106371322256339683692262895231448846424950601598159163295189061076618561710893953870054727316045977025139743159138256460052199165772504064954908784247962662148135108051586135278430535719027637853862393412573759825605373485302637887703894773787218706701712872962415956278299427195081717621437587520289014273863089175005124014983598210157915260076603982643707790124525378808701252909548838124523025201368127632822524506841607769065044174371421146710099607219729524680298997577306830567074507504606868259890628603780699926458552391761273273201212233990928409536400672005636322783863983795340950445518184671734981067331023757712756278325653429906440526417766191470205797026805156067520534204298333532520944263656658484873489816527768118567428497423386294212582546561011739175669675120437222552453395207604504638775150035011295290992277919139257638813158467875161427690562647298548452696034444871850742727800230188319500602656043772735338193394734200503285145193078644730224673430146174125626684913141481137256883744766109070788672312092713241575694834055506001887579314375216700954002354253464007131169458257546706952077959670079980592968078784416149866787111732126098976588124574088463669978366426330027493190620035047716840618159577028057688268591239409855365564181081200671120476284744210011531038025009498740041427296861157877087601419274420387658224199248559900644286464756049604555667253730637420778322756067557992728745006250924423165930457366530600980739558568001347150066671808168785023221630180752303840536433822084384125796022807967610608527258402020066577817622299612110458903011913274732037503665893986894272641098600116747481937439700942372837034635913580997235759256560813771690920756734300210352668491533501611559528839948234231073477341445338325700562157264842041332484827429217828631724212793620775560164933881540877361722001337647732765145880792184456709892552598940611699062191045667297073608679286767489996064445937080527411724689898298121786557011349221194124970807987136583814091468569735606981791376811738362512797829674984522777253916839203058908285373296030717780943598304053310895096529101808976607926434723701063532237526194063823707893571271165580908503026325917960052722987645476361301591578731891677323533447478201237803859954386423630204320874906599668738485533689723013345347443436954371582477118617028974118880377405773983144461407158505012506074341039964466708782073391411968437769056084452635564458378270242372230592472147640226001686953843593099300356741774336874628025650453329083427225393897060382479058369302201024253291582023005937630015698789915160972851974656930554129713911475660908330079024685074975903674938516912947871824378019392966964000900232058073619242033376469794633567018079291843133234033825477921602444224164333907258043276998092467924558930968433860169268126018011431103320113288993585932973663219528087282954119605243246276329719083742069883178790787496805684777397041769851527645845242728926043007094016317015980232051644432225458229998336995233469077419469979181819203472648175135620651425118342884863325040311528747257014405921007304696222563115918183481122944707335230253380140589549835481441390132830803639123311429716524321353916716019653939635029057133684703333444255057822815253045839901442464539128924116945057403726532566420041081310651690925762903593348493376098825098233733801980070407632778772018446698207519277983327209222765235789470083870223977553733861220435899505814449944741082269832953609438735782014870494046389538083994216274082167049630775703011423113241636482128497013281654364611510922064958551038153214714382176382041907877431040058299836309876401030753513865280183199112428912253585803253384497174132548057404902656900812869882285245410923501044018781023421942093803033817769826573195775995165355540179679312907181237857641939400573795455144817030822882676609884842138264890038925160775662815073908411157519218761061842813131446605258823973002443026290134088739746157643724440344334213101410488921459085675284808303561601570762462980967405992901888672302663495488007359380653373046426538450762819301065391059504956226071679065886343054573875582547260011731129723537990192500100724826506279049011106767411754482497583025307835483423207268830755413188923785925213390745860446161829759270942347718866227315601504134267266565666366310983035271172299345492211799653812131957043369203474654264773274031183135048833862366602222418855707538593242383773016767207187376373200637901385520230913406937569642604042355583469799539292927145462979202741462655207851246540494075171415310155835286980719430641487390152286879150660656252381417310872881854812300528741003037366348210620264579615191173976319535430017651304418103006860099629244051181352146992351029324758537437310994771747119097999079708263803915590286607370741805452702399706490531008663917004198556816460754078988586896123431914968300377728575917711673108881596056545897181719826984389403288919079474961040708532442714899320539656013205932079782394174626838195485869890879838100442000951366761824351309319741869289559844257192488945044220607293543198463937647402012561450306089486247835971756831418617692701320443706338556982519784818878749289803021425694533405512869889045341983717282015638093617588610286709823934077182086698175305089150032090190060773349855563965933401111169371597938504112924832827712730526782618704245770594517417722591955065464857991822016715847671943986932343432757052069990192538334070984096266138587479809697830014968241210707944023535228140021096068775175245933850410711863082021014994611665721477626448060875982822636904689297940531493143215149830502259890375480053478358834044256044107598221966315768416039662846188140176420432992192851153487611090941198875357190695591904911202806397648933710599619835909718705781992775319871350076009944474251578306372589071355076386325839974606200554132632507542133114041153917646762985838923641208662393035369226309145481546821623798042386669989196869932492120031840478328303361945411863984946056450496723089821954968771432342980284775705224449593178484416393281435267400659608541292470891385299293435248300542076374491646551468690651248136051548980910331838878532386787534910308019549756062478130593243815646577962039794468666348300518258816942222213971152584626471878567968848629122898995640373884063581824160641569226185419164471186104070307378805126614182090744969132752636626721111986545413628442364865094885547808964205969937841370721802308496399741917041506394001887969341946727488185730655742842164202138283446412769373775119024218550986674065767878267706544158755302105138308473268588472185160410943832983701094591606930900854664623968276195706905282487304999985993194829209096188720798801340538768992950532683958003748424562839965749456627692469025645124629550171414072541771316237723545579708912508161224877387278828775784799572299658653987963756769573171757546814160163588849368942548168104339278385674762522535700687686771013072423676563556381981503162516655675492889707695180466859224809887625635840551283483320368929064798748574115452887666904615034614335597416670416630826766281049623474308148833201046594903427926095481582027236383528703293815846692249292362773856626279112526562787459347602639061412241877215203143869742516907351181467435336960206664184546405416226049818130846015551870653530160061146142829982375269445400738773037830784160920749204781995975086510387485578512526305717161221270452353561035982266999945347511061094568682034290929045929230312978272293814192204662785653848024742811974156271027237283178030243255624950347114777336117435529787669198780464726038976172194731715134878068968288050454159829635550117124974781551302319709072943360059660932375851382626537120187739066383907259534017482949704633398407251934562834257860271232259631728892985817159406148849741340833483778470503946450108162890328505886780973209874462605788159236647008350145084343369270626814065580559524395388131285301434174142529060668283761660120853042716218690893115874083996034399039591770488342192978137647127728053203569853333680258915899491513202443204705192747314241183644977877084886145764832822517826136471255537027654891067437504377806018931951069522247344100960109046605866081787693400178892322191687723815764289789750570951998918195624066387613364347807600976947830079425854434814154848236952014634302367043609882951903738497888878756842455431694127961091242468367076632360973118008058964780222572237066834983071017590364030625388793190733092427949881262172388363031125784989429791836587688563338110425567680345626781151096289866655971857789398649595985661753470287486626864244808368692124557122755281948592080087271540058236810519828752265364854451705316508594238539860100371781373453993107485990669734404873692140165561649213870346617457696498356554400409368306479946173651560850322495439677596383256008339959749641410729587003647065542243197176917637534312608488982741392957687100446136468442639774407008319459429607708135895339928037306525680256301521009665502285143377647363368404974070408389333241037537438722205130633902132159354985657835309281322982419504321984308801373771649613161849623590260093240025449725511807444793822263490565856679789360453743093727961033820638424003488957074109040350835597277947910531042068649049770670084843360391001390562101692232315526005798108813987161367537456057307216972964050538761986895945449587791057867853677704182912938866287605608336016272029224160828889159360450006915205354433435939979342831575661235528295026456429495426117009365471972471560558947154276933076609939451030023512024511105827317142756251872811877569806464143106474441413268394205052074970333937977742633562412153216472606304632191446412996749256025839768839060667426053953741484611195027381069841856204537578205054298451048370254899668827827364628110970591325342418267478126129035512792537294992208088031807521290951324609193017294053460286774318026807869559215852539383770600260445941949888798601125942668090227451361967446744992027004824599045812100015409174931358356574923473902501871078611218029847598607022034388756836442246389210060233125732700789985251217462908831983451789834161045111404774063449535027416572548290128485191908771192113012244417760929295856356159689411500006630265331676229144149269073527074896585577786270532798780671467510630801084248122633411318328522185674290689689743154423458193047556451729655519024483906491666628385958690127812533059331395088548915790462312450032659804571227481404579244401363917609028234544973026680664731745378343884951236456171780834047154357555953452925417371200359864521635030583796195643945985622167274771956609554687432413037897316652580637895275073407867949063535952648458508090421995500922841195230971562942313299559403641346161736369271961958472907391431930292416002746712276683852128625726030004508826138215686375424674804522427888387753639496740373721429432138904480571766758816234001743746750908131436284704980309153078257064848110204229193193461151523609018883723582299373832197754099116685893723709005834051806006257060452434639047997697804545321004842856989593723606257908718998377580883095419565634019599664523948419684169187481010667491572887170955497377980895904087923181704197099887618139544745767781986108816144554276012046726176178541560621933261995440383420339314302956339266851282926363677120517072151371926414041513324692995208274673834826997874505322445454019263745713548754296010316247098422981302856154338919295359634831700246460775136990089961285486216819091882776483402302012148412235337156791029489805490942787900373801922837049123621392872800286877065367969053868746631558533528690081064373366947003309858793300593433357373020244897065590383743876873648654383116802461407300599878975398019396286601938375858719167569792765129841191798624277894356119475219132439542368256319009712019298359789742748769791990381314009741400519985187558601060155923804137347979274479324664205908313729809159247139834010582513602244629885075807859636341084630697800038011082368971947251449766620399580823518389718663996968122602574159180228181931076273108525160144061769208758789087653024453986168821549389695714363069482362026179694331120023046498925539329145580171794886201618513457032602187251480925559799712196418769941030763275225508574312495822646262231054454006924675588986799383447185523788792119635603420861887485238382259343480071671666392447348845759070078359957500299676992989483704125414997230753257391769649902646300180378037018953938117071258052026515363346582849728443759751776703148125449229703590713748592783875430287830526704614452775052758606443035937997133280879939549927777769884540359000878643229223798887907055968329201747520636576285279197442084037243181908543802637745774458147782968387174923230466459199194237447296070202772239493064780850177976293650770740881031703066335114670980274878815951576198324564668336214252156393357508771025505273037936679599197279290838053119509954103480994966870320130548907556104762720893198221534704896296262280031393759160442399421135279429550384392833358833797439791585306892202758843430277848720987656549951376011375681903492888017653046514395875495555325016374029000115028026516106755660229283839533846420541276152659714664680491739345362400926686177682262595099627107302251497452807688627168570865930942868136452349988760161997723447189275010006626347719445109363664718077072174561157935643125518182880013218131175834972048037301755462765900539415000101533960864070745749634912671725981547346576751973116926407895658662013718078704684511122671860337168853931047261773140133193291013697199625207770799016514148596491174388860628243324169640714063152514131256948995251815590111751477902199709160832875920976176154261797728932504603630484296014885970422171812306880351413285894473468091819893323614077123175270773765674920698086999920346425666601674539278756253504502893825855560684968430853150326974831887020688763318600572352104858490562813659704002911820652527412858095112360887065410621691525920013570267098700025674280971324899048452857031397752984657233719258626670664484905267343384658939868782600502139904525166354732949752561247721309936219692530680926922789842811655441857952781057038197523026105439619208017897919505973990843059286302910443894372910902919600439209091558527084652911131949915763692461148308467245336211444383269522169934131003887852124192142708064125971415104773567683842267604358212948758912030283175937557853052611861126688421473766638831904114012804968711432331582580328630132412503097223041614443304426334323133372772769607577476535747047056375941715237734500941819202554849636745699193754045375045959187510496506809724310443244373777465982525471409980137208249843968739306290472212281220483316813110479505025066462686091622279122705559739855743748186881039207591499962141908640781134002284051948499809358926012381288563181857598786771839618922575863481610456899151576918430972080921043846751262096930743545530500147040890004968574584027066614237405699192057132238053505854946565535658197830680104599907289456121046929188933039935895567376988695586991982001454735782680445000942573909839981233316328688480724375580241919135979233896418668064881443009628148034494569700034750533330422066052150865686004513692406310194547487822686895323094620839485719254459924244083646265411809082647069542726447831896316796141446523673203588041857218577705913531830599725524278867249555748729240047224650420841738495149060127258417743412759711445793060447211340681406633686548871457398544094868214072787759412751284943582559679963331989699751593754563896448773896089297767222921381202692525723784425578810091657844486921142140194575384141920423481833002443119628509177134590591888810385917709623769690532299441947984046150038803205392220478700116901260691828598650497660214709474682428498321587060513732368928784833050421418940057951323856648809228495409780849860819278030572479824664136821532414157010576683394463862861997673788012770053932177502444696962544085568131460099661925987789903241044579845834900782949459209968090606331947876619103289830227847543593583699721987462586699096563865812639628426304421391043340465664975189882904066918637869330119311544312258273479588697982754660643793898221935951083928839559265225695482930191368528368592800502963731821041054866793778328952940829695648390168308440337711919301994778579709652704627128278874958135897731931378413476231851766285082985057664201761165807000477624791177765055764951680326820274988303062937085774701103828737772978942698523631530254449973702429223363482839252989969631439769584898104332083456576270276333732701331825634135677466269534489149486274979382494869497548846269226873503070938122556765136537933697621966830118367954538314191936849176021996116950170995635455667043107195758210750042685746125572028229992484385642610853114159775466926731831703889855541593281629495576187832208137774262798286070873076917369585761826255543716628318114211227912458197037648972612604766486621470966282811457862341986595921938662020545263439048782590158064689439540604181954547175441573257124187109225995722099406283717569252953246504229402084885135422142434552144039713579948150500666236858787430812463695834103953712708611219854057116408034321431254224399548149277891030790028947532286585204488959240930602768528552419592127110653351607942905658766070999578602541508045579364855191683425652022066672372806085343944981438038565615625141641791391950667035690095985805114296739857155179611456346616250470615535351320457909715629275059380409963686310288017009562522889785603232529253015736269861862830455138493267899780712769004437406639504642800527434258560286127808815727262745704335971994882168849675538086265797805541886293641873771039118123977505163010218537263629268119330206444993727811959122332434856105735595726371874406424197041007462617696508722320244040350712714849842613722360588098444171781599543474873917268986040597759472493920064551987788336354380213245050164518491230446771859688824034247734820260047558453766773957699055943079967850201453415805412770600400204268895331364711856891575120898029835605475198299304761235553203659547084274614570848007040015470947421946852096695724997746429089816301883621119504116463009870763845914341700419073343325113606155790339647413842570916869769213402008173352389662469741886249596543837971987086521045924297532909291474446716558473540250119811789260052880805729387043114142655529509102943859695469608449900510818779997603824013013207418920322805748030267495772151228660204212764910784454965833620296054673350021924416919002356241210527824864120395205492963499642106732086088819250015195077857652735902710018312304531502841931243649083479076529089998131409634704655631653207054246686399827965095061417108135379807902748095313243265174684247889713994475682372119856957823300237980800761788826169086244644220347427032688532501670270541575946542526916778843435623742594191193003883873725974155502366885850430425561963866482999420307169676266428190635079169561940520452940016601701072942081087719037250190870660022390049316797889092312384009582763995872896071793610994668851606622601415548310214517640579443559785611743665818650231089234591307137728496435757716065929702810176520941478441276486267471565411327642316947404518162580484772578704561423695226068553515239184272318681238985055001635849054191169758748027150394475466555934100341519899871684859811549844707603161198224275605355004058814689018849213880757180239972953265123798387141570608562091670472502314903850553912569044956284768628565410987198527440404343448228357757069891769186108223058202293602232585765675005137839772239001384456887125541488186982565830351349411868162608469162992990077264865560075634209541034013838119109264554524721991704167847160709084334936119819211160493910758714006730929456691687641236511174251457138558540442262259346605206911030482540449331426505379468047338081983978396378907129660719692018395074187205138588148224798551238365061559292962748691493411373217007072003271522944444295644817024610969037899777550212854786026573521222935432131128113713140375925669081502469914672822119485398177358092716002068225510303581862350670429524688870303661678719569684345484016373415501171516050929928184670634374793702738008368121483870303677680157822720906534179446977820001108612826006000582747005369210075701395700726920173786365855452812159887964733081343727047672638069289136366740498301230889032002838883593751721010797362577251474736709476466432770215454386744720214441782029515592571982434654576360905954348267253874924659640734764909313768069368975450307210952440620333810768309162560716746629226094717994658830154235621509150594935034108224479097409635649476564064007340183984919232538791558662629106894409552373623473567614135761231670241960947172026693115093331844740428166032867858262690674843520776203522349078275815436638206571238741712076971949761716715804512531068492505078205461975692309336166724782187604622701363066514831184034939942935225643149648292138812155601784854096308098178242801303756269579171961472614152460200064185165143019284548692695010734283300464078336854095350765714574260686951217931495607494596331750205129015439628490111601134170201159737999413411873554127669234420521926095379349287164386450429540108187050299945402448193307133538382200018444193754050947583964548429090451549765416123166518573170618880864949272699023087856498796621301386819440595315214169734308301570552219996055544338474651419667114358871503977067899362841049502192887388148906350938603241688240537443692309746366605265637700798752217643099578776005777306216608248176226733628290049615860811383669069674849424984728584869458988624356531699842472287005484822559687382089824917887953580855069492791158162497579613145821420891643592028902858665536558423907480117090146502903193335233553623928212651836636473217255292612817911682194397430245572253835012414974636226586224077418451916358890693061307563697601230939302199534442669220954145107840615478645754712122201173271067684671227559286034162990677139947339288178275332306011366323405320607193009588839325194994758253421370132668033093330587459790857321961528301148256243208285880438031120077183178563335623653664776903443857591164846575550229832993463658675517777988693524416633934510639645296833060576786623397777977142064768224287814251355631011648913187571650969535642469147833114754890149903412502314702832552417058598355785011726177420625167223086780962601768384759428585328759665488492872328592681151120936938508649652960742347879940677058653126298949571825932248431091819002330012624938359362928384634672722521808447213191055533578433921603973639521618072756683293120867401051018448618562359202335902167347562832915631155849773987705042779454126156346721918570301614728191253595177266064505948294863071345946824586034322725032955276722493985703540050048371304927043794008961923257880761479088807067341380587615671391035335273962320972938699473106810955763513138455740811128919481729072575003320384986999352157212816276668444267463463321453351899812197387461381744329359240751980041314887578290715342025490513157943995514235269188963628572506017596387270439483862469229529837686020213968386394383025670612507915857361017334101120127787667292195426863656499422550502851935921689479095259957486940711455965497913823997421982182508266723900045697058258485098447001336973140415076072605194936100565890852519015130930619577813724065210934672579593037170739837905387809229201076037900970898299682086046548493567456212703461498588663856178791440445881750958819601200313334033473388628505268683177813270540689958702649974509004498499717954391717343208521907357526602333861945010024117719984280768860047405214409583984525695905630725561966269105367236181758311167496177844662062878943375006975139611384276319770265050534190082699505573092734216133098620589752946112995358593571474329888845860501571192762578156022324645909711941542305649391908202369700481974514970265545670766074103582795709269802321825335299858638350566992908861080501615070459780556240337199821592678894727682479586787805581903464690621497203014229671046996605572335670607510544521973248134428536148018500383905819531402554384914231220662277777301274902818415173316175327315965962008750477972116842783127560082511438672494213380286556844481652028623596123100016084065804321576379274146584153467223313868155251715917660459879545046754984474023579799067810394633145253899850849999901172267723344160657986168468692094841094054974218220707541282167171209422879404591137091558609896717078445358844281213580899565011157504900169417766450048481381448118003852671649924556873177677088769542535515454892423470977338555213880937524929425397632287527915342873829000431819549229490924551637862422807913968761432620138220028737917561921010153019981956862225439551565362118407202094192004732056000114833370030832214070709146073300327499780613868278471449442268070730457606922297541755647438714911741200303908021286844001519938726285088582114456399580676070596648755824227182071077401901001538268895334550239264216526285681355155705523181416015003395120222186155667059690309882962192633987267430935098607698146937667729240543428447520986695048681930489778885136134340866437202280021386351979179111786651966255999913855190459675942774618490102713904817512583804517667611327649807091907123655047599763480703497908050662231978982434968007377384175875136363976705566197036110490645581086702206001578904043649516502365474208010291936180783008074086430020499316650885106480250553688296822738740533225172713208279107636901639635447730202689291357955002927464738110590829580689658483809814595820274641729501861788101736885958488230312982839322236796558853921003484469931287932000222881966945463303106429244529119965766918368614962724113686005162248525001870186442191078900817002803758589447094461807760208155193059215135347428035237785283190539481673070898298312748720828162041102274865891298217514011392242890436952398308097311246797211269423894149034005366119428089011864730618722967490830580585979707059310710930261578405764060345140895268450534920647067753785857945944380278987299379320141688304669660945053540383382161537159876366310564422479812729424939340767687122563967210648792095291212648887421872379562502920477760980778901976103878174330779814683136935725636958209734791353717340158083505565884908950245646970081113588354670684083805445488968172292959813175397202884158865889692122927813912302340631054254028777099888307855042094120159510719866280478301754893836680892079810072923252588924723596559852152142479586987339407149144963057718177928076134465621682676300993679506520686607306160300960482549743786188418416581729574637845837884909739667684886554769341884028855650503433782229584508241616147854878465405219856174716339454859895405467817837549679670162749055732768320319423049386120605826204526174135226905644598332919732823534787502471314219289943751295919386864414435945953395458860834306320518543423044177376129424975569066984679053613499148116884789985503272853170289060957411958754651092028519100541480362239428741122998893578203755711896469945728775186593862084561606022741081181487638310304553394243917012226575927614030369156340031277325749155356286853022554516161307326495155177417265863614863942461712757943131268425271790355614149317146559263741201177991824431871979098272332705571292370927084188165730261006567767161335674686820135227466804308868922721094285084463156300069036310957408911651580708701048399849311986182449113644530501228056297842348052734975364723108970552422839207279582573676670208094917346717685058514396060249241679893076290633456211024244967402707179250847052923079612395045256077649359296280670564450852498332599715309095987205742725003276322507591547034810440977855214090067345395873955312297675464484643820715081468803064369664180884913564947437973732343160082064645284773125965789228503885210775468894226400655860136240911511025179293701298094897685200001079642615444368228240864231606223366143975869413751106410004287782369651359217770304042151968952159559824310204915669176983868221379555950040650875580822663818478321780518808669090139215340508686848860975922186802965085378329495752158942502505262896202169601224274851225183996525700761731297368834681639509630447632439889686236787187294044968231960838186360010757873610991014635064028306152180254872791083858924651703260939542981109751751819735860658870682094584318750503430064296157923977427450720311875861499708286962769545952621232916717836528910486608754778654821721931664391591066508969023322405062334780382085418402308883256135164871594299529627661001695435220055150155916279556164686049744028500379717505690095892425430147871970639166403979982972344727771477752151477315319320644071835807632776702746463413270670645832288301300729076077701303695927049034842601557672193394928062043787895528678519417561085926219946678020185627453624766067470993699011798783648965585565760563734951173561972657348060694524004764142151929613786324019419666497879974845368916540254944857178071689088094499643445560022059157457833099338014780046530324095256815342570213210209076200738932632663389811337241212087170556848748729969878139658823498385843309723114786098189113060317872566296218208603649011839118837207118893642975657952980535532985340745119206107682909788986272743161855483105840455032997195538857684326273906150334790620668065694420302115312581047310340968169530935606647740340623255182864684106928894622158181319546987171432085303864949489387722474612689269332938097227662886075002978331630631634211267290398987638116281636381051719540206350087491712056992177115181238776971904215940054038074816150696544545033663996690283725571100600677367871177745794573225152388357188897159431606026195322060287352516637437131222637695143723411924538396139508223208949871431444273691391161234623616490952159082194121078530472124226925818689008051831783812298725506876681577513793042571312299561913439459287502086265754527461192766727235413191750958446070013189850968297251753026935658259707044092667086358347772902022482718920667103611044101152923339005538912571603376008418149704117908125426978201189622076145707148500002099010815436321701612594609591035980859016769678851103868531519945622234934617269327000987848872642448785821352966407748494481525247028791194036388771759733029358310638461247556026998152652973296597910760953996452237033270208632682501689141535543861226106200887878138467489777659572243422099131920860603608701923725523728544390355507345873412953203698373035694073729477735703116731108936946233276202868960328300572458154412394091083029168906017069521075741864308078209999313975505835883402764170197475724860207566568538895325162285130846527099366037750378706140871754334191292699642115574783861920009550514686523382175035907142571271508007184705495658794410138534445156948260326865381417466117818933401944518373482884759107982483871409936985554557974972277457759034481104743785581782826903729932497683788253831222423490413275349820661913099115797661973937180900755645353606436196746056283186335533221778840271198901143317473314794661005105010735094879096055200839282796234672245251505467311048231869377191648864142973575270763802105674126372615563272076587607893408999250076890698316230039138468548498871718708711968999955352456041388074010781077297401975463167367875404156272544876988711068278154387172184511349806266006017897744569319732357149101976489787189336746934786666147703726277998868830314076067921310952334243347389721082153626448702430788165867656558023058549953408213828166396481709208720942154579152994447389538491844283898419465785449635247989647380277729775611789677932126361522697753071336239261198923183808364202772000493535918287401954378685572308393554932021177382409970897281834000415927087199607195466416741407107172248241594936516943551796116764700392931708659469154606275910706632430767959172256154204979724410276618058476856178680380568628506166562790240318274906592972443864330862462558530653197677054435779983249476381820435641116171250960016942725272487139183770062965035460897694589776797622814511237001365498701028130215788827991757042053136686448937286949273165847081568832521480589106930206203586285619988540022911738981415094958668421563708005369570045645648181662056031054943465817994637652764682525455977681822459512473593574600915743386583126352328811275806484845691477529344102630569719153886147274567344338853248115533084309598602877362889544626513173435518965032493561084695334462007976294496785107945503458750337126538886573128683342855358441013269342131941340069110965237295271318411230896021014717758756075777296910121555203578549672972859932476234060340553209553563027123122591018970876526278070362458548236226742807522508426422622233182895915650084884210681927957577960134862171788573560200775878096370959704967983116890590649382557246722994300240275031877105804896170332307026245528787778059564748655375411586469799969893539178015833254911625151046390057500933493497833722774902889858755336903009930817294315455501421752521606930651424664045491388047244348308826388631178345413237298669572534605950533941488711164430166484990218428522555553050466753272872093723094709276031917540426657034381423465031128525339482945140777632552991991834398157060234020184885592861719243195682359110352691139282276632702409370729262893245721888990977354108100738597933488585172364243747560927918001517981164806827286408369709690615549504134564216496391599522628609907488180295085765047643492019612722963614885045898768037321948283225150435316191771211834777384896613838629367258964343123861810184439236969595246976665490606569659988879381227613780096365736931406261073969753942619096890364299525441227110363928935806814206334815753879086728880571111839032582019189356091225434154485395227358594038238459918216902256532934334693993107103689170714194025534863400129578556528387863063896278076864142334567926178431364608175706533965554765822383415085754714331897989851739833808462947274031993585960564938134649000764256715492852477380154989402938425039193208753798903219167398269298400285503034608142401532151513409192531031221871758155858048972398547228404097294418954146230783683047282847772147912643465841824846457821741040032930008384074423782249001675574386195746174759127693326548548308607831287927654549060840182635040246957977623125845285740174035686204613229148729174957264064710620272920360052736452665727155909485160464181600112740099470888494485989643783213709651784727507876914031436423592265205449676027970144297636594482455028335921210336752050182802358309602592736156232651535058201465918438344161537453765883159294409612507305062924809647979761994713513253839779606740311383097208325938147637669523024582133120848570441581002243903233089741092929050661912512214448082876054771092321997702093213665523309080329187580211403299202306348674009057817821543590976039430781299634639130009536625883148673083353453096087428520548281071681139865159994913339141107946649965864534479557919891326040785432602718437120626535711660868845887381117936546087440188767749220804572558832273254276498525992568474879609042336298429333710538035832041474277242954736319508048544835819730722354003207208938236667605087605675165878326179075211074652940729174937943561245770664316846107969666435157063232103586771824989746496823616496260842022117546164232035233994824534513057445963055198622735100021432005755670574366142651071093334048576781063903356148127315432828389688387696706576738384091778705378169756981105544146297844589735846099717168968326663639218419208723383269907245071771272562829438603138114718333293178276248656351622460889513916057979146112621922659205252829637797442147478185208157408788105319028753944508898592963069762968429938090064032580846119824933843253717469350262652723411193957610561968079551385352061233244481978991383831360199504104186104630872994761796553002017282667019782427630725253565269967693891991583572438801246426356615881236804751796394018789268283474479092899752099391575732668727174522397140326697118213222479426055655909327157672375809416022509625487241239856855774888507087267671525372854451548980547011629421731891255487069156483452325924145180436873826488677727422942476171840836854564848084230003960130540911148967332575770800599602806521296090544496378277010087195319904632097294456609997563087906863656008243907801585935015992314543727065664047569259664889883846955277400072100517116720123795333542078429183211149307248540623086180863110239331209980470802618692381648463870220742599727228161349280785908561222003542787242596583131637397481644202210708535925547195192293237837798887043145585876109191512168384438678385024318427635855978602424393947563275638581572191585051542844251308248097146126616482208534268107924180325452211820971374389500995985447855229043675834902750087276048267497722662647834734778650137010337062823506560381207974639319314380505456912170348358651602819710496293472956734699685898702320776873310418378476989280547883635326848045504388824748360872169706344343908817964707656124599719864417785893261042409118221439634114525661982372442726504479931289415826640571762623082715399274132699507888660883366103733783774804683003042554712401332275982882371852293158922690920152283621947579295144291611152271338429880226230078513783219665178843726383275395739380361602252484438334928314318966399263271898386401027590725493298837619960741971456734112251628726879256189342353009469400215538391267398694002058894612080848315508969479059834716870861188494973749042182208465012934993259685660075416998256983818059136883649535516478986686702752714965069994835685019910332227028792207223163460686423495949818265639074182522286852229627414769495277447778646054600096685555693291412288927339736461644857607830064357043909748555682073586651779912188804167806860075394961117944667964129800966516023564567187104172916761345012659615312936828270419041501286258204753838628599623381709949061929929447293571571369155446965859026554385299911404320539965638876217929072922344986119337713248189335287749948272390116446969865172378175398894921035984457843042327553134373271783404006339230661291602745244866994189993690337410594051251059498413360033915646060371261532410394976576019247104470818487657633640057916950158812842155146207244946323455592524671310442474323870638692663547614460077028209403034492400849234153959718506746374961336045990884464480382234643838450462316836507236025902791702356801910509073137915417125119352861353086956830852304323651149184176990254533955204877478510534711139531899617593499989577957721603638075638878849592128868400334754047853725516686750573018724614497055868787982374628418969973636957733728603238634761032972092547000133744102580784509978221978186166357081400469114550491688403719051935669775148894970488752448918644893984802050901783879724242800591489540693225378652305102189263748826610752261656100864379664061202304260436462930058665864527276926373597569566352818523058442243451539739350222663117350750512393419402667519756943457167214551491709704086257352514463201735424004492176404482725148488179005577731142651428815497284814965875372729640061372077438454403810310972173048487526601484328778247067194201580521557474062340358522261783434560706366452862395130835773718862828795003776192051187092358675810617531631248579963704687076722358005138324556893099352622178731142779482851994492504877744140218500788433518077448036233974842694657965494179764925499818425716797074880163627100972966184032384498083455066769496832415455801952802143328637747201353351028417213938681980736578516595202679976318067799655633399085071575609959938523245730869884319999312259091625240906399774700653000291358037092381992872204854224911932280132282793683765550156010763412955741800726434380978377671179481751954831736499014552584841115452434682562669299035268606294901227948668957148906554534642389997370199635864542495685743103464599002167720754674002245226890921971306388252832730335583888726296412475387246100723070087779977192181601460984307524811168519650054840471337611770669201918027202851772563069491851908489635482600545564887722247432562898024912789118375017672174300328279831372556669641707115667711743983064860951528214837931659588617615015087630562045795585310943341579951979200996965657873836435823000694386785659292479283847101148201118650687321478174349398023640600899681385141017196960003753730231175303996778757523355971878315774840834933315095218248361039970168243616150718311545543773680424273536309693421677109329323587020428143140684242223507309073782230473981605347188725872788666742485935858146755143015406286377682057420339197069304735740188370508062206748978285819984891172915728031579950277701216275181099037904366157230658915200262335579464996549790498429576374597124793880640629339539118934657970694214085559300835369371786999884233593895426890107856122241580510931689391459948159715509822100699145189831084016054385958260056588152050645325430549330403974720866341111795112426938184937663988830933102175411085787141208958031856626415799445236034260582346512604484155577422265917191836711563999258339994966084289559862135032466995253757458237814973706285004276079805675857719094996640679822672159578316798133360250509762705558918048372867165766376180741216977351739271531032258564942386567498703125034790031231797821254066938667883507308013261729302534479822107937640100992353388720130793718907647327131904058658614986517638056654081114599379557050353508913504221997625920429939283509260758316860749355820871889426569675889241049815763644081641993407069640225324386348667732567337196206540746310000488842337255762217090055884899108078968459503840642397916991231519338706959371535961722618964620075156437596138025060920475103372447003152973887691503917205766035757137130323070599595983582093099859264185078789297762210100232542546504296247513666897599370852396279417422544328585698702355364382376239137922257235806372360352621327449351317706742639712828479379192274395797268152010286261755742636825919304582495008842694113426418080770197830571922424472685726046337283268076011908818680241431789514943304984703054191527906239975824887884874918995360846396388875801132069889021070539379389185137036399060379837613299437473624338409714095652643953664065354247963212273979237641651299962908937850013979468827713408372844957891212597009716683162310963109238651070569384255750455910267114555297283990195603047748217378431871796854157715819944337870578485717518034742111954709929180724352364922429839495192202482613547129637793800200669621596979778021600458130847756043118769378284567359498389312210206076771502334726212431719056851854794058801183711529716293143664492065953760201945693815805529619721753074152636801021224004030933416255161764350634615010501551767550507263239435645378205254374386340441189379539797571738278093059296753582141751035065228931216600603899378626935356664888584440071654469238069391350276723527522274312031168658491074275156294926356781526976551481474437013826056131784657965037124879773822451016047127581437575210798000614569673696287526123618702127546882074633535671920786963349255141931521655800202495574218718228383600441807643740355208505844698014809568526749574536991484988340228943898907562797722995605251631853119813940092413790868148918200797880493252189982345349807495265649759787190778796798440576797705407381472058779396304253475439529159945386737079960887511001120393540596028243622056418654040940914403698816341046969257662814486608917052897590380171268345217199330039077572461162753313401886977971738436999423283249478442714415474685096475142151707549890741003580690566664233480207187861533882508537501620336695418406117403192045358537381019926411296198835820329816628623815851427591321329268545032004191197174467990204451978015740293294062269655161784313979567868143849471872971861449730633590771342402409092807221028380318650411324450822293819218893360340037168134061479240377899425337247478153999143133600397369648926579001206409590542632026382873386540981006647019816456119958740422563406866516380817100058926571998295846745863078395293917917005548853712374159366358983581293136316932125464799675000542113488263634788784541408934136477301070667963524066717840708078043920338526096036172957103766290218390103952510844927617507036962284984274137164397911101793196675174754616056709973099728537801812271402873543176609180274145616804752531281398530955422615425940674450944701274415891308614437271551452350330407201395536619942842449338073925797968704001114480263844047777104932556575032687028725659052735209462559957102269617926281208499627661032039707414520474676783543470571042224126397140328739712857763828425215870197061612687666342603001093188237378811793602404176798783539981064876953289606287106261931117427685292905404845819775395061382818284998080405472735484662919251892910458426697425595297636482104058326493964987819056542265921367065959426116646505572150368506176265471745834224761291371288789825241137598503825160468274092060464016595607146668456079263935568192335226213676050269098875710441181827688457839339462326866396257505520670616698822610487587153486335346226083349481678099417269811981288021101263155751408047858289651969775864075801362581662558843428794723185518918924553140613814398478561932758394588588811368125492751211683332857298695077874516312206747745398426591522956865111653142568492131499861303751172228138130266300932356885882193067791120268485441519089559748894181745305841259639059773857042338562523714482161810548048789736504402180383431749679060760293738553303383785085806603875776347531714601276015447258025226731290931259491540954413808835316621663739860002425816783894787149284981521555582040776147906969648918074307532191201342987418121386165802823333122020185912763959659201123331953916179865126562552891509662958296071270013062088149679169704967650552108941026867979771469631443683260344834379361816566331489088721137105809450838950516545545030539850788789838073367432951179532582639703689986781630005978967549666563853958944229088365387905985969647843927422516009263364950859200665303513992794868468292999454460438648505919254116259923493291405033060930871540223277713303472479725653389464651914449586634744149164413404704619698911459961594550351016993507228568328830070004940593995095447263096145955895993706230520736426182832465123341219344794685898579061257669705752370122750032991759690141944761522410914148977253712292736378460333169855448194367025517792269729699778355604272980377925829639333859213538730690088800023939649241668705639336031000209305728697070489367297724559636865240078931875652067902434733572601887577314915081840682969044444190826900785146171576624146688492868753997151827126705708367504765175411862393207777450300496889627041388662270216077576466365571774325525000657207640637730862066801113731951731463318276976388023394112377303039254938511285465810559937592684145748641499435648545151286343052197637547283290780638483097503161295200499547951296913095014071981836582866762103308258134123427461545323369187466029495403074103212597835684066784346626957215485949044502238547466849366763590929478745684110391744187807920991246146972720995568037585609691903441567085632626618984530065154993038817123501303754717088703663534003399844359914040335563114199027054761048726953795622107657806720142903782681888264048201077438036013953296784526921622893369271167293610045031958235395806257037660495548423417422551230618803040945534707455897822594449638909488512727196497916648623777147505116578347918847892064733392362790775663769096397571774449682762837179557364296930826066798189435311568693970799674481213512574474728733917522270708896687486392939417214478089747255627022083155671898808048471694632821170767284616992624592094461259974206962575682140792793772283330862771352484897196683757377857212520847985080073641882359386474049084310394372573152393994443773091213371669826158857779975554754451193290930840303245993165543211281726610782141295259662842621724744429640676699996643051147397052701908014433380046067720332417207507703319309892506797757050127118204979371664915697417308294592996553905822267865820069476981879067704253325283729033582973142556571404372256732121567281952711857580536601193642487965194030886015806518492996411048902132934848770347040310201728807263085033161415134545092028630887537967918405761084419978713141554544752045032162900546621071880086238108329476019623726821815168497129666009355627107326491338570008794462486215170653610164321935434753495949181919301792455266101836735529840739538680643965006821807744066706493308508631217635930977976404133577281730443273410115834930579060739770362240472676267806969597142864271345153941464333779224668227107216845014371256027841520976611905138691605899448728168323342964953627634955887325108436350597077193088849004640246412511130862833183274665795551124233368059899976198225945341840809576617225497054395444213271748846675006829164057236409842345276270238092091127925243129855904454587411291560040496957773283833953547141468044448830495535205323958230989695345964273721702033808290506597710540818955133350445087415643183192769505714887227674067297051863301508160106018148013188607420408191195756651424724313742327295239493985137025876364839743433578424709522057264565284139103011208474645864334207227331355581206768105802521404444700217191136294545753855793773043526209679571657089249152051785254091103717620380953318750876887640619296022808871122010057603619855428044113542245057950847353951795361605182059386475679709684093598532379710639279514612508074293638215643875240923825883541392953899706155993095119799350963203155107632519396663442937626433305509928169743937765912592888428022516891343376102891715395273374949992440325668804139229082035551210578979645133424566616111632023995649421842504407756781487699095035948794658712311739881438641112171633633680532605296484519322177878814604886111004791166514026721969985579386249212953616613888886538835167144053528753141030941171645316111770124810941246637204765381817842069428220553738273007196057329526636629312430939602384296047370382789675986625172147180245249491570115250245366685110790289514705721816434720345856614623015772055640894352843057333012229774244724110861685365390327975342196030100642838402583230964921146038416245248178499461211426515858633501532806161974278774051989420189580318831284211110779572000452985052070508251938296695833052063714224079266928689276497622951933667521458311434232184176297166627970761290505130647452807582300663530284659705327592071927993898481127188107063147756570642268706227475557091052063367612612072735766446098896417068260307225755618366705944086696897299086305452074344564099842992543568279576473994222753563747132609404655466025082088573000576223925865266397256282802544775839259000226399932243936337688383513325125624066838654661342476708539433554885446102551647494160035346510475084901432270747209128426694474072202156217562157929662408382424839145918158789800306476346232143586868199396427834754130364081246430206975143561425545048249680575305674561810319209883670597376966158815351805120609705303085556190708992616938049779675027022499080075617388314058937541817393175549931123901615231898372212197213763469733845313731151944343671690580862250254533132258264742023474455834799162645187955242590669361620845457889626078556462857884008733145135828394695185931598109337297647190774116570580007739499458577349415308088751551908355681538894619410673229941420209436204945918687097229703157557431899363256700340777792488913789811805094230502651251642808352192015787620944946400741371960535580931624814757472483417894352697579315911878799060665826909736714196824213416065852983067668975694653004750336347737178262752881496196096525124214807841958971038318754811331903109677078011136407388154495276435495428645081961001387872451457506679135729566580914221798003765949470863744878052377118862401431006830550679582586162005613078720604863168133782413661724134709813444596108019419712003463480077102511948874913856464176986695923980362275884520448964932964047554999238292329951081239487373074097858770621662350613506046291389443344034352488899426637047076203352708732774267926811006744109774143712321757003750557764602803742013658685637195170354998224010165842269345247975786836017680438613817257464760704683378595907569647305838553240396713502696566536253380194498099047670054068954374909418947362110274499715188460609796222400796923616495669326247511029049318485558160150285876269741567643137397206447630338866876101960133536937881406450043187709324752043532588664267114151990994244040256128467098633741411361983137826719019365274527033471569391679318066549136294919798652858612152646414036421898822140214354024902165790167413741638928714335266987147113200136743102028894393762227902801762098065210807257966032650015075251049275562141205343124209259554247782265203773994724734228288542768612895528884905394744868333974256267475330676227742230067862803549826849506230458072967409889410724274288381966202229960389159448187574495753021660497692459066272856843278854249401098383617090556695605097904464791093694587575223852049757226461085106273847085012972776951154462531225486351645201171449748664484584669920128047267527034131119603881600630243348794632209491752286699593978679115696400209942928066368868390109241497687051317900170191129856213673175730444510398394444810641803413498362610866370863556040879522059767999190760198232712417261570611170643492959138269018005633773991707544727970821751749631621670263195278546570062274405467899153135113560571593247814930230030208489641193113189974409067250446038080987558084130360184589135046989855811925746177573434241213008552527598624678274388242346656392910785691525861486365662023938720112734603600470679273508881027037434582160227470776469045837937235460436695885320252001929875203493810796030026248420012236773889521610390604006298353798292899355359346543004501820987686321196919390981586010748917418741496685419718191905061315704764648266804879866824547961472992941706829917810515585729292208893186618972178686593811054122083970298953047052137442395079968992548269618669268079437081052826041347266049907679030504255369454923928400822731784250696997808033162858628038800880462248702434905937040269841126877079810034999377262494665675032585969793270678932640200958692366396045338013624907918652375840052411649085966257747510705397761847008900782580588256628964336750708088874919045390068477692500689211615040915519072899347936181147152375639868124244384630415101363243745761944419047399540177410349715715086936502580407897310138949789894171537749352271826404649216289698541309416154027156939384373024987806125852646614703328074703360342819484305899388409535908517361479909565207609002455150290585985259844267523836462523729874107255033031442564984845287578347892735622380621859195018705497634096303641452257761588177086387170797215503976640100069646975134860513683452345597895240217402607812493243802462227001307446928795195328487537221770769257170684090580795589538626249708787756445284082696405197073495678405605048549565841606850804528647799136802335933035329536950122905545153132966377266057481742569477296750071614731592288700921998526129890695211808280388816192363440681515531961958758434810812131095290386320222450486418697524893011427004269726446489206976113067124632539007474244135287293024175655970388564635872667432900191679605165375708431084282658756493662989472955905551225964183026103938323065887516515668388371489365509239782233800311779261420524473325236664610479027968509699181557510513030363218802565116003685033246022843348484712581856925829980702302512422356360964925245349892361583969106698021195476968558962698223555957230354434096209258094121660278252652443230472783218854528245627175322432230672719172759001577278815932828029176131594975579205657185207158732356624340833727767609966626148148436398768293848693368132233126848765605550350029755277178230903463096137172206541104292056009294717410085683285422529527161914802372242101772480296745011569164346045214201444290249832434540437361060121652897225561966727649211802673723421384356084142517244800869793045933122311682498798353034108283458401865062169848297542041533936206487467630492133969625505169090837549469220153832609422153764178209738035089036076976639628195278802309337244946264924903612426517669729526793405914494095263711319896241246324318363330462735200941370701642170085699949044417318450975079253837473053258886262392639966203693514510785879639446299995629091243651448615562803708272193202764126156603747863895109545013901015843058004825392719393394205987975765557247566091038702788150855656895458082775300132312496255871627595043858088077671260154581097235965806512767660955988430523767999012324373419721359187462477134956932135642712701257156743285643922106330198490955032017939686565469149014640509606245052233198217467508647785694076466793803434416471765333326010433368274001678137633616058111288045529954154145384160254051541815632575250003384946785483311283077459932656678944535907950932916267313049917540809980885443721834838746385976497172346083516080492028132092586467347571161132683305042671844589024271848917799826289216009725237744785177256643811603097893684918959019728424822074124036401389839869797956664836535964041947140460484189545888115616161476380993294570701160391070640572336635131696886028233931901695836175787212389924881571232133735299743687826908413354914556390636127693293458962156628073128263489775853334802380015663521915560377433049982427495113866921508422915960318913415406104216290717906480291898656488225039596591280659564631191490356781730959424917448725688482767851534890735578261221548918022050936846486643989788614782495260944172711311536341748858432088131929556185350796067677452150212983014036744973923425730770262120103974319583977215320166607329698833583161558069207415298701641394670819906983795801922905409695327174688423256277219471913005983735380444336425166738432207638471165384721482772995351384745637979748645960826540335803518435890005375064218874651827426047033529110594600511847914405592882742134799945744973898661261759079538251027793280649192142939701149711532614949957114130994079306960955135947052353453397845549159623208286256480760673267682287204112291404753356940209356406730380675681571331321514697426438625568369043288002193739554795381605377665960164306886117011258198906313006318927381347739012308791779095509182225685541925532026672161162547203979673830455340602751319043734853242983998443590302496021587690304286827644536957596151296219323104118621382727846227853296275345169611948113867003685699984604614950490020224162074051749715298678935781465737410988962303944878130873682115806875427173993512138153515341502996348743864770726815193715962438744697834741595578652809471820492337181341759753501058044018416872154000253687101168320697319176399786416054254430084839235949026551207788173298771374366068902870725593176112544081895106784174322295422502578630961158289314465014335957249063084769802804645100722912876588792936947274595973534924348707175354617616511473531481414222216089971072896133438688822606135737277024513363349802154242043279817570618888839410402048049575243625970140024070185811278203675553149605668567994845523236010579841960717598041583079188197716867306590102513426622079899744008933955201040723855441610975063461391985211402587929928892017444899670794252159197669917351834790880643672305974690041481148038629827073924161413408652704824545378887361878384393517634446101211931524063112463914947145709650990224043498844367177011126948946840419908402917802823230115969883872492486045016254775236471234951453418712897628844520323966785400800633405348687536969824783422686758105978855287895119891120950439244796574021727693812357042571311017525799043978651009717041461033048272991689420389188656698665684700070820519586836263087737124991655326110710105541375766091275076884239388949298456169810637332534765695735451556325894250978533539180783694254904353456240890829175219434392874198500278636962806774041449782707008650653730562777776129564720743000039835688923457764972562746118536376583676042721498126644943795948364699881630504854934632417235764963682056688469945688174461688701956326441969962846411562562467910539401175165684421829184210011394803018967524090040627037401512123933226160893999693959947335866287454662338524651934847144077572612582961046923731224736397925632646328390199073392589070798205658673128676783534548036416093069939408409273317808295030996616931426460494335657963499788788142286426472579412993307653537622106837660230098476794403611989810175306250581505437052044060128064922879723947943424991011214352579651720478874698083816147542319349021126455270573856466136166032018601740166912554720275013418242401806991459185670414286982156074752953587712989080960306544828318229599523634447891684840575184054264749014787007646906039898691629650192616130913505913468946874268803811537198034943289002865077684374632205553287829481492669665013905418605624750410749668586535453755677420121264184478813946165633177281254013429495171582214243215975220728278901854064081689086946823990076019028791406344092598818332454805863006811153915644287198895261808164098645183795899297422909347377991352612292858778368078013998072030569760343065524026525348522368837021972143765882628928652202590399619701840678305403706815027269111311191568424000888698529861641125096031711412395627610896304726039711594462235596411192829143612306391100679337940612102518946769612603595831015058126980411728946102664454651281230038475038116362244195488411341663117976956277118449795142109461286366603765127616908457025496448776296820911381883096373236740804089931818393792293325857254925128884946873775692276677134120075587395560483868290373713981536394635543395314946055873219382119623304936576318560776735517815994083491263537849279132654438831019981730183386832231019889858125934217458243775466852637489560920418238251857824346975643763644631914974558370959679673726254032346966907746960649140701499400472910185374595660854076362080022729913459096110256889025443865986025648101817329602786898277033443292943449494409770416474571591876216294639251737108623979422652694849332127268668764874502870747206033490519984421180650599968753598509128319119033663633141748451928336539626685223939075111717405891383321292608817805876001788895727767725744627714822658588029349730011283244118035648738089990162383367219352323332698635139570319774660097591265523800166948982981395850677776668319770311245503670181827441472321258738170395525321631637385517324299475999329004723023733216730778044450156378638632379094762183791345916772982087839657133825423929885884953908334935266492257493360792294530550541496805591755238917736452709848384077897914211219148251289480043304277427435983380487787136381637902826753602885531512642627999174659652205435686541958471047364446795204504816515504790312605161449792627244587334178973246515263971725229055268140137196340766360158499655390837328502428240832436929939488395452015797657504025125757830435542053337750939996135955150613684179349609126709235414902487183217894701630955831870198688475872784399883263212338763780933166270450626693389391930175033924376529151176485002437416700924674320172760671280749579705223133056867302956777185743166969775192978202294969432273812700391996625213808014568885414676407385255934587375250173967883777672239123997259553255828980609319954157152617646643705169806119813813875449668346755207403347523129856246180923950378842106917070835988128141586465275689922378589259463310079096581408773394805917917825806040287416736425700200911255436670525694345222502982271591882979081133947994736607921425153813952455999827427163996003803606543757109939186306460306203656322981100331161696283843505449802514416172062776923430572802104419915326226700824706077659605669302172017268869640393732202950618748196604663226527844272993844994499820603480564271065463782382214612220576164528498496080108762316056920421382097244093529220436813907005786267481667344317313970433040430298882104749411617067733469900989254922518261753339611398601853069562107605101794342600640347722991872797973749322729776361737346625920719858891328883418649887368310240041764142816655598146474389964318896666807868852762290179753141160113545958431728122223825140663365300325596495076716425670268711304897577094685790410422774166165143372936146339897273213192940054608514596937701326368013398631230712784696519471350633611581894521946167430394170388022355377525450088269372388835846168378658200261962586467760511435870241742668883138700898647262362190240846511393673839212892765800500302323478669499479038580198940345591927708708648247057754283580535160234643066430097833719486712530080133400535416066338336129364785870583174973043076287193695878436072643195260243181167185610025556645967609500392950575851296318530977356110110499832286784330384349121866787590148528810306612179044540125377944846959971599386529397437427550327047907982405489177091518942026223879078285718397821400689567482722749406031063846768786085818417424595029106722835936736623556358310336658310817698343251427059631667724966322038668708963701376054097767611707315113978741950985096844265965846353006540003355568600865373160871311507571841952638259173171836370417723074466464680841942457902644051566787276231112281415796105837149763123263342167690313982493775145584181817428643675534106300538895826926792790128561398222317833571423282944849977486404773830079620774766767519017737743618167487169116315145114973347036181751688130268537274696975289786162916664066738502101933838092298779894328683238181131585468331110923559590328598945891111508477896178769230950651770847202995697428570885786825568965072404790617058084991954649618622239020323067956660294747281608461059214471032238995489557180104472874362742313528731383704594750644118462776188926041934946507879342366248300829941941804404975043654754365501475610647983994433681521830551594554950087739404909393104344209154045781872434156173713035141000153853395437527152094219865287703237945557000659651105744417611334319961991674966061596786736526932430866459304807274731058659202592489654533291313825760238141591347583155687463009054528122675360639681939525286005706568465145892633433980504068492075127282959464773763149704807594140161874495195681357401999177185717721432568086496778852453548559706978631461287620975860372802563516861206232986861974077464363860555747520778401549347990115284304813994767357078592625773149375685695006146410407262583876284518898648922667355229244449429686631618925185287997558612311598380081307896317114792245495986516519099539473674501525919209495005859915673774613580109552680524457365972877257037892415264942400684660693199277032633831363877586921362772325749136790874466304338893402463228850887031362877413404239607449045634514437734059104438884356766687044381531697399905356256970506402225395594529714015771761329490109732035415830528483426308418959303127908396112387182652046591084509205429177394745987492625057153913005012253151614307076452819198231469757048583228054635205356653890706924679597830230948947405263609205645709552556078611624473793907042902545350784386147090756266223850378252462499352023661910471336874092399353796488735925907439405285157703837316967045184093259695128162148604164197532526142203873638990842313766191989512795918027575997504114039457413646564868091272523922858324702284947526360531094319407893535001592694508241469637045684572379093240227274616146310837930976213585827107973019211882320134500998170699019630987833805645218190206758598602994918978249630030415101200477003823088671786342979458947437816382161475497963966599699706341497039772653371387311922404250985782535433731400703915641753490093909436803961320338706723635594220946025470734437765618481119756166815811349429261734086838265903808060524982692071709987909503076304045388601587454455636466967069259689841771539319970023227463283251381151579992004178100800922547990768283350513418498490798984019666223640852682326007657789507064834173641898156207889146940053958158173163559256015771284222051268149805060274392776699502673814569197923318469341023841588104862689142063438376426719604005185886198983147883445584084570266407761069354880896361956592888540015343925521566888833646889291196468788253960865180996289382445413611940737592652268335861958198387156831538181878646338809254028792210278482350689989745696409650976641909679570875769425109366994775744992962440186943086290690894916344506390709037456466565950925788141478894000051492298451263367945081956288534842479496315320129003222129510157767710776100461969999677769857291522047534947213466136733673312220550284559071990532597568564312749033570497044015991646486693529361714849425692120116043872681712520213849501252584974365576482073201527712538891762023340237651196890550432760032565309952313551557133796441884850317991682473371151954418712747961424319757691780551337308784237117814021722964915466480391137183870939161577883300277209741862700595264472909488238752169513538489398554560734644057637617760531502216253403059123922165787699694201044640227322939887294688231524602529585505121125701216279504320658636474807488388965244017121603591201862884385124385257123992686425872830532760495985094751144631591526793086213207429409613376215325834700719865278801446664227176704944701065073939232441368543007620558391971916209687879078408405924288332429878376041925529425895861658839730983328531621161648227195428493262851808276889050923536459579542140003238230612516016801275815652876751072732763876040515176717122547911374260365367315210228384888653947552264993432474659870808750557991959335878211230493546910309318085383427716602434724821026794552111943751373710066290549571287178047639103405326560655423586535830196012169505941282278649062306988007388517496043252248728145753631738826795620118620553273745229343794055273233272797857499754432473203128948097660595192355191975252428542721098381978657386225249241150926048801531110659539209834037889928852697185011540464095289811947482679988991712388468495391118337799712299207296731032254953410164584733162271076741139758902788775349925482186679147451470839944506494293378401749678706152096241094721127842315509733818041236415473694100555466881502033076927071860087066787385237723162672603213495453330289291215302357585553862938645887316954721026339599041643433068175366988679831568199627376869439392444145260642252798162553625775291072193215387861194317180964204714945192078940788908316274935151646272531889693910860224731685874122081415951095050757987380284531330829875217841034344855387865148548911357675196570137810950353880197018466500736958010121051754293096878160507707596775748361631335364276986417691103495477851506008646446235626279434304932283357198719788774447724216575653581035176392502755431670284181060944208189254231755190778130236291024895094351498350030969965254276876241698667831989504605995700630267864998060912985537820352857125208327144387839827249414584645037634711517998806121375624120568206180582447521484154598254060205978924618107237867962821265215068320297562753627147673958545237377698449416313966085168525632438277235789429648066072588063209447888661425942162831482309609590283189383767549016870632528121706938632972046956778622849165322893865825219876134606506301260945529680257077327155082144654187048175538706586837024488174498858266630074640514032339964329764330991619203148313531397233123622780521471424595173048910374029020982201953802320011178230884712905880801944830779667668970992406292729499461134702274116645707330909398749621366047770986877276113157401876654085044121649834702198085080834529708625756181238097838273013228998430635666464716119273038561210954160076192268853937226801533109228677465471257127448937058165463723694284781565612445616520086981412155221866518418374166790956552579937128732464005498207763942942344691859915271051039558956501120302247162407073960268244049959514154740036841936654048576918430142008806858236066310166749915178756509594213966086767923693323071640857975943546242502459513116640240707056451312533803924489905656274171048007480364950262251311324673206468906351626688264844557724806681601596822224983933844341534927113541283370193450090100353952637663076052775162903460270422418452762507588767178526032481304118897590392735860827294273886354627194647558987091354240359088702256962812187249788145921507595746361734785596614493014819984817714708131750452178590893253768311925556130677738001970435220516521828899743078439079101586502570217665674456010587597400520027227406611897017400847490417891280653834841194576134759051134000378200402371372107323245655769415359760223786887538546411345609270244091680978232513205435517392208777175186552026622932223851532764580734955376011962970901468059125431622795591633660886189217285930010686605650282224034225672120909948549706108620676567411877376046724441565861288296804472461810625076489678052180406390990314848801198690994176686436645811098107882676473411488717778450781876125928394350698015116062719620067429248830569784911381696937139444272613793185800493368368723500676367898397172642677901727119574567570041206206833122952343961942678703776216508300447691360572576785947273461365713543165104462845598568728384553041547544750809913586768029469684360740088554754775918290847609138682660294894051010840441961717017981359905852846384200320028856158674318080352322548392394980301672570954081973781796884646324514209773883669605852890400770576697709923994132533753020723268738689806076812359768353042306479245704612015703818851906116184751649820776266809255971265108538374666606139643102643506724832765378544588430926590879366341630201002826858989400330015351089103731647894210517203741881103514812428303114050654041523360910994553769167619476029815249645655726295756460339345961520081105732132810015317584888278744389352878529803026940758092778730037856276119642815897226347533920033132170470602172413160990729715621244346903869439907898405599627921573103546118030044976702788436445054288274194699684308113364707791702298493109649689190365110274947173208815542413107530382269710497344921653051512719362136438667883514556356416658041258928086788933622705941650321360434681275743055874769426958277596569466487159068911595005314896751155575197089933734197009584727925373096465706481062352622505227416768675557050175541541798516745701717173721433272299596509628708947262474593094015298505385333473208885864478101349905882187480691411590175934930848803335572256609731170087860946140377411370669533108242977239610289976494427354659555685941130802605566049494362338685360973462368710393003447802070861012631402017578334502375277444276773192349511418494171294841500127226149219116224599336762297938851783327986924276356286918483941172008087346975482354594487430089080685744059323977535650114470549998383743539312350519279293889494598658281480906859134292850567963315934026816855736244455579390388855289398762640427806891866544586943027954498509076307066581134831799139552383045469915854376060097971360120739469831876229891656179612101534349016803315250425214191421372511938381298646305691582940452803984108200688916855776063092206514823262592041954437888185848109319703707407045597142922881041245019769499605274521723588172061263578289657514209979182344202264794471477805060148183551269979325172523435580012797898476475689522378319482772500128643751195839085769058624678156272330236934747148790474135494413655727826495862327628187185629640974035682188018366474372792060410946926050877382752405282989803461658527594495484448144922228081384674410393386121414169577904136456198360023404812720058218399857110808926836209290856539917348082512421235531851182787212237728555286195886264729285333091224109638711838983362391302640665959484012809726249300607028610212085407746364103837178370097844379648757858448904670442384639365423408606630483768590889468562562643475739474906519073391355508712384750281302441050957455835733039166918913448382789772078847935325153724297630096903220969298463475937214537604229191020582067952422160652244521239660708534415407803722843756761018642645008043446399553025840233348266985591238747947353219605429402706808287670822631993357454085219386936828515898517800702425744056721955586864835428141753758459979065511259787855110528899929331205079969379841165379592111335848189616380235108965523119180364526210965660451267814877451474497398082860251903559735117177335364554479393299396209358011685332056341490952689250230574773957513529982498089352001661131995108578012384792722646511033192330058739148504719142376796201584653293387992637700649290938827634721176402077651239867710691632006638455878341132610146617015462585169105837054272019497896711126464804021940482459838458116297981860513330808805240654163119112538937290766210091227984377545420498105584804278495446191166650941403788227078435118882860874893120847027471885257368789362753953951833628464141854193649725514610489115642986525803406679033774691744035021720102426667139287572168930567527161446582374638127334396851678531407329180382943918101939959079322851330894783966051919653792293287487458630084404869439980157769665508462829170560517137807493217984658982382945308074116483162002694056917934451921045387004684411975731291023242008665916665861472740702997487173202727105808218093396763298899059336330954646721850447633375665543337813182900990386456801577909569316874460299813269222422115408428775768402597242215134238622242760466408434179196806505221597253931528407676652912872364442221810768492582581671971379070277017263082406148791277020407566632739107715546441816622823972094686952865853145749531863780675591903951012753439575355735419908319542591001113052554187436306774864411140456031645926496821973724076583035931066518462956267659201296511343035001322535188373338073210489205029052498942794278730828849855119248392097907642334705839762703292730507780040637738871885623758476823409846941477688184731959631696044104973094219702081513750882815204599021118495538277174436092159719146875939939308040938087754634780013866402117808785321696641925563841725257648297907054810459468707878836507387158649153581604249269888750638517790093458535893612455218765571979597604276558645158175308574777926645042301268414643951091014427664197399081863355809737119634910375838480234672711353867623064144234663622599575154384596898230661658940605425466021070681121815219028192702806886818549247895386009133346278960743615158431489422415464793243384700623266203388977718316392034840924269792680289127683681274315231108976638802916355674743425196088664478330798695013383736891839395839359732850690768671242812731365562209040574711280772416291709851770015464535705280003648036342348552566987178751479118165159644375328290191240227831920227199401419254928963629649686738316694982470841749794883538114350680781162809637385392021639669635479252702743154571970717358973270800515799739122298007350048227397984378067242672430020191548094571890506485814259264452551076293781327218073407088495708289042497043053586067673461134244464914397199708436598803568049080617888764565660910232544245857483234209499276325162140444272974900999623778340673168298220655474806422625649975727506655146197436513097781254958694084265899054545972492292089042656171568948439454642696290427560564073596627127737440482101718276602971994658244378941755599899834201376509486329959212375311265276707483848620212597928468623445072707178727572400411686465116758042662131572401933476963420492300191716326898442878175828582212702292034036113010137985433378994873493780989327814818841996549406619131067501526134819668433315753819060106034508631340612528734783317561495528995269257656270134507310722331052280802793066906804630101109862184972519057779430782611468142990987171984347547540526079903179785709970772708311339296979457526120919802409536854136592705597934628890140611345434212059819548142196102150902990324855384237431413226081186212401879884886146317831919864094678244120829067857918433244623809178586227994042242962799603675155797873136624914523619046208974284883581042253476030829702093616776983016120470253772676619913575783565864410437428006609366953892730106755305233283320685758745712263080415528362211788682380932111375482850574822554144104089301844635996794308148926801333316182428258325441184868517917086393577657709078524591848262300103758555756127876705275628497765161013386178888547093737136383280025155638310855450283566175087453586497044879119177733344207786334947436535374090171822785959157547392081163971634504827180631999025370493229073726835758406279516177750631961684959370533663802083986262634248141008164603653617759553818888900471753333131195278986053494324997809177562976801807525062767089727088715260469134228209691410773291419642865619211896640963763146730708834835061108138643252340227126680735928610327403510279058206967148258654745425080756700726755481774980406120580314482024189475387413122587893684369997429036092135313757817279745567442888929411047890648682178345181106710414809408047983522571821220702834172422627949828962392485594934849608870064963171734880337167013120435584750344226089463287287583114359963184612885195646815075448472420191718460467818005196382479796609355889726914755680040404374780598797339435523639248984660249668050018330855717641997516500966943558958611740813865175053783129488854675382834265732364519129679741630580565319986530838075295216911885107394013686761010388017908536109817449588196774274402218940728093698079193096352526901267136165596617342545969195501568279188602330996413914044814918804560344455886397995867508320300047583012905422774053689968561606503780755001757037660104031783290173218857998944429656989148068477204439708447706173944902466527398633371609625406508330051840577784394592857186128465438780421281599158946651150125945247562497634815064502180602680996574960809191408286479181413150166689658221357932889497290919496568283998956078323751778081427670787054752753969122294847579555957386099189513863719426937453505504461685977503149826918195509374887008192692986564354491959197692279515955202825286061861295634312376875783515309663807658298607846041117727030107872460246664326744555028789067891262197286957209162020877114966411970385426458856809828421152821308564658118713341087126288004040958720330660898366771743301130656018787123450674117910652456855171364642952341314719593859776582776884557091648633557284431210937044521116990670118701057334023657622480483650557602961373564186252487730616654960258852543788327915313290852119921312466115072586989719916703785796516192433256636574607626971621924081141959380906738419745164723781056922904798054549364262685304126497488804004302621008078289663770250125593645742170664854395371526277490893797181744808770701294285039432056559266657969686970038361218073640337324964291578830500873310940506037099463670055291296304964134854101712231469441483310886584191928537265111424681319444826985279741103024820751064694526274203909966934212580524399066888555551332247221229824832758719093027944314661883111408486018880171172720393089613218319261622539234694437606806271118086648185993282503075517809408965011563150758960598800141531734460543984817792322017852881650730707329335103621550601362251996113262644451799235819567796741769711253794532907348677385497302305611699433665348962378008227646231416070270444938543726434533288322256297319191688303570261593337985721072177891383827558699671618876562616775697203179647046561179468963035946632057007240238269236856694421139521929339496337912441300092393589076164719760195213853052701107396194523211674988587671087801300787499442921579708014727170249787152902821892396227116999346310745801327358401866792415918590627817195801233693127473785289994915597028984135905171931850591488304181644472744935610333790515111056776850828948586704351926643323032139845972701347246196675117133084331007017530494382444585411637485154944013586107790554649406986678295067147192340320336760461285778216089483602540698623228136863464726986743696759372533025878572096215533483916232274164883346851804210843077919541966758355486325354745555935725262755729537312485452059661350451635405353321897383119620784404990948767748699817967649733589618823308599468236886269200230686080717655545898699611711686115578708895996227370166244570514703116071177992395866345746575526121335169592764183498725234118800039789404539352550937043708275861777347639355228985365768070123280182403925355874553874794370664500783468032813245451126402344578526876030189708587930000156485600327270034354849226312080274874984803170732401890690024749096836736076824321930463901249275806808539782149152241491018329552870808511066323922116163326726504142498050531577001935063355720627198456842393113244603977362544929633133165372497931454498691843245001239236826295881176994139076704513415412510801790261907803374913352161978559199314804527480969455246021288322086974882095438824192527069758351633646688256423878080829698801727858631189637300534661055642139743132615253676985976555387890969214785074422868030488230387520468999837480031055608341534745467653391981648667769230986467351526793725998155524019599511342604752396775954109382689958337719010850743506785133266511207146225470080792946931858244666872750150291247188001743342782046090107640453480660535615987700256714150014626139207648099055422770039896682059700884554471943487183035672748801046884971109465717115077547910659234873368038836017695117092782065261509447370218800137575640461710203958728142498597895006143865565138568699179900868109635372229588751711138897290387963686813271408195612184227860510210632094123166134507034644736392240539246535584628258017084308539644180112138961548774807800392860651394076829256025322176759398796897382499116308467969071271032581880457150058919550172758952976704310803132599101716996145165642414748589690086512802210637146905196678515397073087919061560353500963901844551950822410252074459183002338393258194087230641103630803103926066364989552555553624701163570735214021652192267053349741334313273212182330945413700015037960149598171557950121706464372126157989655271509963973637021211357385961327728153267014869014859865403027570794298826444633580374967754306026074093819454831992170175461015141795928417750265451393781204186599684310847477409454068197885599139306183701600620373027818954984936345809538273412416148002978082933687649285320140170973177394365035596332478860324734410435668836870596536634747955957279266117192280238237457950480852031185312488534886706571736536816419871868228792108228463740359220393157488029690482797555562908470251884049554699528677253453141817397597824160104324777362846368818068713767392329579327457719157434841341859549338940104775572464397303500933514116314589467684385106722090081364065422011888092205281321486624561014122424393122603786741139238856396224614893016798265830613594754536072373362611392100882430806749497111729203412888800448080404181825119097474054901416205513041669546144287882569285091580569379546066233467263611866933652282997425144469221321744605584440620169041499158076742805903018377942841515403005365050856448240007080053864289717027995650130596182753990662974137018103532884263715098208134425063924193183929085322167140228966063694137096961048498347981740505061452438419448926991152249531044284637342034525671101708545395603974966197693091088805008351658100186669406642761133975969112910448396287099680252529374898337439318245185712274846842749158161787076409061077663865780977753190212108965324443333485483446677247543600354263188660775986810805030841375774535936990362738213563771051560548737823014077719843948413023743711744227216264231076167995408202484369188593244165479350831342671318149459824071106582501784053620753521428884527346606617310481480096844756556751919852034146572512486662867926624178197077283094151069437939955415462281316020958453445241652506333995775656879306861157647259569693630874727055496064895772380517489392817960837219255622269726795812681200765362080143795886239692629052163034358356181315646678695573357834845679846737335817981766977687933381836332770831433435085770677141035659434532987017725388530076158804312387575255193169887012048718404717558461434564227211842726083061245555933302347138889441844278684616087561226718445385311701273419588572870303267027568810472848557376266478022893129142663590132707199990822934112016717954276918260527302729864106352517342930095527621068527887306576310652770514198469698368057108578566946565037212157849043420588278036051984926908632268112466485425017762151981860580753669550594478580008175015062962545564763856940183212920323193237140433804768354286673514497787804625090030828581837956980652267874563531365467655755928192944475201557575908303661323683086581388958134609369064271716604439814438362382250834679641118293462437296215779725623678823689841663757071585328908361794897777419289273109944330871095880045232981254293588223602687199496838657889291090332891211663311756978797794406214715804425193451530502920152830393954971433432228613555790794438378778161983404716739890241023275415089305063947723194652358197176411911699554570463757893925471878516654305432863440709339328414047462368958692302790048916654190596470360688989176634762101808253901254391872121281492159872293563766167781702714128359094050887832090579252642016442514406244682278484821706931471283989516892013286487738692288690931506582909308049739535144118065282710222952477575667377356808271024424226201539372345640721583671512444948185151415323166139053042463055113247840839950889825297433795049170337218466620345798992931223824273457729314758882067683667851723704170505199135316833869857848038535420460904762359295592594367234064785199881012293790940575415780457734968068932107234950861342290666985620840958108395132987565473034955684740615278717436793607863237483356465902495793244623854713743920595731754226863584484503360648510721984636654338798886220145143234801201737112840064483562809439023113438452956538113623505715803139221837902566726856213306084733606924099932543825861767813148880645690446060051670498265645414591282800678196874621433520263966084543539144946472016083279321497145082639494953111551095588160370760540040161679472044896625293323678384125422389222533520700016641398477798257679525416191944868482991786962907770516760865888395635932102902345063081062791588031001912119719567735127065124971105219335978212307968745569278995362175263878576181233002960092599885522798513764742396456465551145080139489398249844243924194836966886399772339862849002424486924218818324331477308238973464499284707542895435249509961408436046509792356221219776336547624812939373514635431782082782433415158432891381295293637126573623153031895908737768050423426570982486757677991867331910857041935652900474349970012898524349328984877919715111734263630690960555908105055009140682812207274540599307898701553218581232222931406167192350999770124579929708445019547265007263039724835096384866022032828620904411514546220056012045305766419510578546298790015745443446397797481581664166517708844567109688061322675521499594009118280712800671690998866222510637858050456798610166581649427271622476909418326712326085124969050237971877796440126981993092608194515686250451720284151511287397928017505614607677369077439655275447816187851516176779662501165596825430324298293769670710462497907605091478431351474974257444103083082827518757151181031292394368769205845958524177404273649829997091344357289104856860044942018745204978009544713473778713256120426190068908946810432376942644253937142081674150217739804655862067510342637532389448563787161079850120378659549106133607815462200322331164042981223004624189750209429877987960574065854694233674808028902124960666136681656027842693131921508456026533529210299083494012998006015889033299374661512876326558499321102934735710467999765573348647901058274241654803537014896590140982157915308417929937642086576673073378310118083733732521831110559347684984748594271230214044808132859495823863616703437868923134461081388297657606903284666359082626919524397862573586353555196454030799488377396008039400793691910309940597757615175014309107241451621230853047839397222155434436773532600072193930155687407704794409890193645423186164591329473043806373581447632652354767285198744426321358369821081106327852519628461688056955285399857661041710691315216419562162584778829539702973735941632389218828602056351321717743690951657242713604239702303582142057764444555546646401142926776637001158576569476694412597786858429591159010433136821481131645151406828891490471102040433828071216721323136008234890816912975683955689465866262581427659570117983024007472255504632745077015823105169038016282810419354376049982551974489727376547669466773633559039599855289703221168305748842824652790616331972342003431094251183321455060448653704553754429008433836473492809474976974354524821633073763201880082342700352112083020216478514110363695732775937849806542363277789523316449786993404837400924502598573666806262225635821335932260152355110045763875687973205717584220542966778219026992514696501352031509229831059696980600982778340592906255688549902591847435918268254477969657760524096344977694412180884250383715541791455337551083138489235728081860531635926224985603241373333398512646852638638895995296146524310444655023402876382220960463112835917493812630563367999816484858973314858263129215442293879055271204703972332352387883562917381042461736733760438022232549729478454293716981284996434225260176852034214820975455814971516655667888491850967081303769512215237261166141931206251065706967396120110891716715992163540306806542272089515295286569254273001188227743885673165089442564200276841992615988923133030384472364099993907137004853499613287435945995296928472490172441329128820045492112412587785855113159513917581521557602700223951785895258530410058215805319249910724157266373573049941784089353054973578810916753383261222505951635564057173986612127816600429418085436080798931237021127565132776910374449754953075170605676679594618276426629723736367076697036290690007276928998125201563444269992060310525577166067474905477777112693429016899017891268021479025726354789215782204796438407270868864509017434933868781748168237425446310062490421526985552539791254922799005382899285167937652615204691055116155821291274511048740380134443507586163116574598467489626699950554260403656976813948405339734906044433660888166300826595140417755594048701496982345490691240514750666077905572042991849296812380621648371195361889808819509544122556325163701723247609441652747048452070304620779960484330758838511891803577041138765225860263694902110167975977902270502633595931835562137755920856882659540026735845030827761299146967190257934130907422871531733101697046650651640642409601083185455672342615850104799702410849868131694821673130341184150170006163361398842484490644041456046703730935249531455264795838615680809452816530702129641779483548445219522300758934110393912391686870375609590922581943355023235636394432306383526435556367057156139496188077319381828408920993839896886512483390300937223201553307804969090515626621994508680013667233029816050933900425619996950042977475939417170361523116527103956975958466560617630770150861165848907181916335017775401873424914940866037737661529712213989230925840843717230094495908925844340076866164727968292335634736846180711476915830101237840402983791560203306617071273295014521544587788156679890548609433265801936839280995223585704207829492877395853461252750326935150950505952904599135256000876108992074175268219479872126947584596337501899516800383483015953566215355017751177196949540277854841429671852719864421639057575883320123062056513444799742726866284847698849268695581431711030249405045449313109811833020655211852084338079895006491337109569717405226387090524749406011126941267437377126339758589517561164389877189022875791056753382859849540795633258447846664130363955076735689750043245898030653250743721128470473570842043388703555809641950908626378562634662802987777547160955047569706153662690232580053166368344883029257332507443917746571839750262426504153782779857702368599834862956247359332699397638867711096095211385072553906147277458543538908346595028034155791267945746500139735622690386899848658869306368794795584330974017361407265437178842256827845287945749015333533989638771568690439767838504757145279673192690137750216235153878199060421380809234485393313384171483420965051408269435356744355937621721166046738781719701899164612211748609110834827806245394389985716616522673106864502380565749285895802083028930483310988816492941275045187767747807996888022812786483016509815174942655069804997961283400358179450918352090570859477524865337944190363560404881310119516381412963784230475898306342115661814177516388260730947805186553822734960762391069387368905335487049390826264457286980347046641457878772335329043895011717392348878657210637515431446762826940734893194541953258771807967991278804159544719108333172527469432986286708724468276021620218541817998941551854986069628039486853908934920534580252968029050615460366302609155358633349676220634107544633274187461389956362615698082461148141541545015839639421526405398210892773941417453088407255168431104084974172159216544828503685315572497109792278784459197169900627362232354720193852291418364662470323715396468562345521066815554748966392915523367780057966430503343165673742910706831915614251188418334832095658362863914431627021679119524215252867764898239590791931640016293100692782197871078273673017672348248097460183131053070602364049027699582265496747866988323581655112809184751390555317641226184862209018079949741709891235328108801363006107944383392400573133013524022549812849441254644694512290780743075528370384129700968093596190310506436886722703774087652540298235843648062106265523019346080468465290034926489398766224382914242767670736874797457157315562166041574486659362235982591823878477986107081926714764929952011008353940250325927451017482894197554014821968582627141564657976416700098991860908636836323872674425487077036114099142646932374042461226326937122090052432825184807533406900196206397364278947914190102145180041600379289728137187659648191884075333989649229764235163013011801368333025660911755376267679614258808052056327134792254796332279582453745549195743551270291213738246394628251929310282476865075713247262287004391025363538664289791866099017750825463713982061871887436247332103193221710180369514527890298649536965737651383813396802592514950257143125937540547131148882345088173309324727040629424482156898778088345035844417161292356210254639571066445486143814924273544104372936417099679409418133242914144267609548738559034587563626751554838725300712126430355153007722316352452637121547921848636391005484409509818556085843421333052548561590902314581001755939767026304320848163216163160874193278402836131109768964683840675247945318546170706267666987402866235766524673906880961980791871794010717272143938806949458090960550759763401139075806290025816121314973228466659370275183800543683896621159114414248361854347050124674856718455280403777296878428757422605151112520402053401913111779425044005109694707332049580911258122129959491366534229125887810895747251045902524639808551158116997054943724918683224845871037998439490949598016351485411360874074377058008746833536128103878946025838498986797905069335032942556360776602307342061351946518677767681142245427900805220322983518633179073161439322688875276542541564279162854474795045134002182910594272543316453966301780197925636850257161277074253677521607241446087968411110783179497065478335194117346586860733405814738361043552411320343469355507819660895013079281903069666836194330754387410162179692236927747181938344811784045657218907310447578045486768949016597315052740279737935398742550458798450718881993726023466756499136936215020846720210675315767499146821689669405321114255603964289024170874332394266801373797034356941653577323576580320575627412290828152119947312551407845815757716162509587781722660668660618379442445277718874515738851739726399472437423671763340544072381250669657184038094127169163996528256869385975979974982757753646342625386865605558725619406713887300177507041608592444233737309224300062889659460836901538430712989293089179672745252689832095136741736727329767361876263160216986053812729239617218889324379306276246971016308453900537211233899933311180162949938674074775646795246039066314308185207020434891044345280357884609479902927525927232702623931398588743353408112705622688554348304742863164860664102763085465121155424789074077831745379336263097096945406379516991693492465384185331357002176151903730758158107273839091452216839625726432403258970513573701983812465107127416723609974396885310684931414840167920416161263150317825805693615762659358020658950302661802639137276410777756734749406910507055117492616701378716934531864060046569901011753325628996052474427016571628893252445564192854161483694053002805426683704269398796883708650402994968175368402971170920201442162721408897113652556394599009945723073446880975711251359052229604644815953116398540828120136777546361773681406358245933663152046272391104930138504058461887337391030639992880255021959385310861559352928123160246040371504006024342037688396193803160772826639544404447789471033510205478164881140610752170210695093247116145666921293511939136282122085560102593079970654705858796309628685857616267751869882913385467455969164435764319906387708226346594361425867447501657175316878542029593100031635815457436401382418145590344007533837367914740391405264764957930062611838968220111511795084976180906283046165634136093928492348012705011539690701576443238363463100468081517786210150993718985529387232779851566129729956369645369559810565340836532717888927000985592261167309140917596836509860399931179451178289246935766404350447313846665845478635312814946805675006596713743906749758808372226180209109837309037529808472109826128381843815052399636638606637720909591002738517999851845195464965047287445025735718313791985706974638347321827938868001618223897393719773586383670956091006534588165427625305051920428069344880301914147852584153960260805619655482929987130008555409809137729036628274608937130521779488162036918062861263811945232001066657648321214118997183855060395105716599076098664090830558881829318305837840330094946116541858192118007239523236399085102438370649708786594906317763970991820928500506252648309199271213865220953565714172970625233338128216954030328900174228182274888484686939974042002581164217631922376773183452858073419258001970801993746894698889492985378385336492114390128415417463951400616008146243157370011473893392960006279857524105898326572119641365711796887748753217830189602907754287951571709164826237299324622895785999994763457889789735805259376435258633208060752925583097930345639614172677428555467241988029113099575780655879609441078102045079897766910985634592685534680710522208338181936804974933106269980911423922560544621072976411971613338254562015696353824239712480072508252390283613213425356946476693013342822725712068428568466945061763524125076361711270528381221561129651880181884752230771387501717978332495445862467241929840716583735196952986847869535431872478775629370916408752555308861699655100831427764304676394889982086767365427196263390548390977416893205360313616839490876837750318841398510787893387000274745811860695844631411447649563973466756984784512549885120248331941110092868957888314756090170552630859218481876483471325750372012431369672744473405458217905387966060333851928706809846440780274670005406402064633178828464652060798842894045749788635278429670155710758887921257180193543846975191667428930389583728478199914010235304007196818984496363571830438241851173064086285983567447388017203959358608154761846339373325994413484821130200798182395151586884880878175223598478126257579206729080435324882708259469882893279054766096456687316467399615741536994630830314386569319568565946915519866066993295793015957337978803750281295695289646555962651211434996147130681023141177474898917271797906241189130485465540969335531631197328215862871140531187524001144371813627770384461589950963411578856727499293935205645526576340259370062093371829182754856632588363563290972686424759484212289763106649201593677006241793528590958760521257381967078355900541043582578469655390628021825044289903602106884374928557528830052226517109205999270492833083982804265951590401284691070890930274657979175642083907862606594350464579645381002584282240369619697493838962216246647768135072592014947185532150301073379212589073521449258966087772872470588498391115079317553133023927518257547262261689670514794623399466963436291916683801328677856816187889708535417150006597132843978285351419376767917386198235727776179042582428233501690089542085140454553240622565303686939229090298919275618724555080831715904453580489826067708206011838771599028849565597681578930423690842489739188825898247574120048777725882740004361064063695673307484119546265416114044489590040464941936178633216979375793628183394741352096897919372393378319232798458183520766959748523065928604595716197739303402017930415570700264598712677380436033258058532343448218390739693043911214765071435811717478844023507828425348300620264869267280119750532275608136596549006363271401736824024332185458779881396425022334170539392199970620230581700706999272550022611077827125117682398151776348462579553750283407598141875338540380694839210809074794712298681121651085178550666303799811586764327627686175247847663752744832965070169679483841428942684922092961584551088167382365925766840212679651807670204585065912193607198589509780730805535450335880393735161108817484050784388110323940393134273368993662493722021620956049101554843887223152632269276387776261583101798045423627611114161717943818814162394049106564893014366517383860392931191185566417664712027509576931767073758918379464446220396469544819516579794625976479373066011815689854198054722766600874804208394449561139838426877318628923679751311439303295660701963294199234486485952420432867642238393326141952465679306657232249775036197311605429851808888328088742650818852211744860142684855070064564192066618972325381882581543753639201021562970559475603597078035456956334838402048439754881189469649620409722532707137059102251398421676154598911562294337416327778228427635376094050566479621267092554944393077475905009640023074380812904299954266284926235401643173099167971446789160957945052433688534642913112717058538659988600249653228428709194030635505209664737958749682538333186465516379364178992794788252587327333220572346202626894024527537623496834105041023232917919296834679685323436036045851789831527053685069008748214307582004652059903933222924091102811431173631719037575811494189780007948912099701230043410653385079322976862375329343292475448671034606910979322540893396020866502318311876098993633794811478818973670954552781995139536127204336596697038228077481775006142639398063394294958081235398260081458051278672262949527954565387738617325934745951404196514887757988704544686645087159007734541940330589947464611227725269110542012235057539189527871610503870420492439457065566798523308313947310214760482086917567324380035721697944585562889305895342040114077034555954410138477943127205883884778974303758927444025887235104313965716574993812233678479884158203530417415313185607063066576914155623520613927806366892245096972888387366525356677087172017177579057368846529242299092171557354100198218281456381754286472183955206594245942770304920153688760185962334615149756570769737585637849538817267464784607874408987147306663313165176105726409364266558960717416057155277904053256838824145274621737126793551784876630764100277823386499189435139920321080002275530916313835011896036195970651203067531435569072990735837657301211753489883080101071287789663097113236751679481931821368505241779102433742272821705619907945458386589510504378438191120768179968176535109014727970228808084398204869084899339230399285448009598287005711914440092076458231748228237037484030100414264643117683204472605380872396072340715637079309321737567163125673479534249280202742731579245362719002400041348427750969119691591547370962143280213889449753623410105178296754686684167732508255733932215402478688461817845816810695273140322891420405482912277194309984438833430495023026461596098810915764896856550778553020435752805360986123468723699837790858475539144739381828776040328218903272810162165029298818684522325013620850579108629705262604554367496347698440925583578584119191283892049497987490631648672537561421288061963326565545752383444650411274911327298920848522677062119854159573953977571204401747200216316755494207885422319296479440193608694898499009128888129844883279137196764742786558757164912489032190509791073271803185007709075669511795822178900044572639748835433387380549099356796935695668366221685054133217210779746971481659697431091007047809206243666456008248116985535891064094081856216594684599732549078485043815850357483823719843221167429235330185276652904578001731892839684576568478003627392027681377482933300821002844141832950663121937956370127569337856487265962652812325907042772583493293164624502036354261136930313301321932386322175538805237607657676017917518163399222900354760689157557122613456606698780340225345380383768258135543414103950736647363932670416272204449553430615761520239566441860072777052404817363834573216020459182161361541293841532686635949433304269495219495200283088373853664305647186874581912637976537989726997202093663321028594631012127183799514945294976945277006944856095776704170035309515490784513961907856717556767989699310118868540766786099243052326181131840932590617678598043605728096529715013216297097571765862021458773888249625621103833560215322413945584292285735668420780058004697243290103970946494301419265190169106089046049583207825176568532628771392496136993902516634290288606105161107468368664496964928039414304393251203301733701533803995833492640968486344901569976670723152955918328958146936869386380951370503177192521995228391337038055308097787343898958923801412883691930937637924839215446711724889092574312432181098976445034706601879233309390759039639687750979750698062325412963250654446593692593852009594021691151934580916665041688663751166091901564456039008901599574143037416532594439236929490383067212670804040257118961139417467742885860106170015411338568122566437535477031568125008662332318967266093745344641821975186416135828424983973192349648639336619251866580952589985106734993124752249459610227001145679143260610343760955133248810649332712295870800878098349043338312372103752151955485035609391650594168143798617264923614885753889111595648651674345956393021067429753945860761919686381416065833909426970426251410745790933588492738637103260506069543210277941446588469042502620113453786578034202869403552387747871491061429636763772392172595045251216256460260103190059596969875363708703147930901212561210662305916638198909358721320563181900416238694945227828751763149098824151106146541827611201013467924411692840749797251633029670362459741844727360946504424432996851085933600796230907941350530302824505565300704688914983885266730808808544594380194098024493941705872228884354194547369000423904839561271694167882424664919748714280362899122706215054207186421124430982060046740104042849088786936151660678656490346584564250621970030950219911685672259574716028167834717990438223163902352234175726709317514173907785204171630061685775821850816373480291136546911914765171439717665476351435136485361199820920822789516801670788741913680718595362283543343837548378955162090736034099548382558419078838608016424410464624105889478288287385675165611098458775983428737382158797256109404841331016179479615456793935437571127264041198615628618499754090841664926042919130968724455157632515190320610008765438159330539273742288111458336584881670910913073454634271116903510941890774130055559438401496488788867301370715358709472646382257551719805437210510258159099686946943369851872811405810416257949932689648610916872244167521394072283057841339036474110838001875883989379384638635111337832654581234838710877836611973306840905809847632511519427140645481876465450867567485000201655212478851478721381082056913151998396366125696162004720093828923506841370127351693235825754566158853801982310423954347829951612807079057803527856046127261348510037522686246388610360247645600136678211592392360629676279744600301000845321972920523624134737741052688963250677136213315973084724503528055403218837380422259760205885993372128271182607186524147534216943577452609451855622567460082420482386345314004850460800118329530293375572454271402579027916792224095996323795731532482381088557872049397885271462464819232026999851792190326266862639705770026693189788964201627066355512977324837257799013123061518474676844636320351073033967176752945375541208688343023134147992859504255302839281636184965253202490342609759738620487007131652832785558195868941846253086871797593404893630628980007556995744695361021910750806560859201052878842719246670996498208321458230474324313390405894014105277440842393813814756071980873498483752804646721126720911078480935696879496144120750642204013659958318342240736474931059134077358644063261928250449888600528343050656476920206472821421754803626691860938944712450738975578613753092283809374146341281234196385235724184571695908615225095592014383618126670342486188754345518368071140464262982283661363346190833591121241262133872994407809186787711861398091767061686352819610042588720371721325670288758065413862148937375707217378872616889724236122089301087576553901553652493292001266012839008489255066571023805607776245109745002653492393400292314148493342378011456908216273162055296990333227644220627621449068642631647915746026557614322253088462019066661727794473379542664836043136066290491462824843702881749086419660045269112536227728030657775077360136581308558117867984137039182592437365096444142778001650033187064581310306426194219316317379534155799634726630571607615303360187457481059555079706922554962779304972694107001678265657680330555852317135566939528915538592376607869585857675652330530805527923892165152505938780035017449103819977410557072513422000566158218341916350922010310428301862056915654819588757699218796786257449009689082228744416826364163441065213731080227195671494750532023855703541152670367379588309810102664591836788694143403098390093840205970754934034411748589291376678986759896651410977932522024158466794970535191660071105865825096041781354675839672333481151708824739242202031299044755959827393621042229953716283485556963711886604232523859231287766735870111920939414851280350698660345651882746123275624425617236942043740511178481996676300762896168336380413316118652079449058250080067696382851303974977277959808928946722271183851503875396805352931065928812962037928891256631652005816727553441985911761695959825286208554675392220028716432675609479922390223721209783513392879842066593081919176942561490322318644182553645941119046941238554668022631599870391867845350364687287202397163603449863256941021278546151697634639518221762883457086505209994036804320116756639242913651953278480016924314215126098699830529005768444895749350518000191124710140800118967830812311556894170874588152762656964945745403176765650335872795496857200391180499750595154680388299993641251420163860131790604157819358041622692468869236048474118866033612413817629241060596979600684420918623176657550824977599786886907845261470491044887889787569774361266048530938380086592146202371034627536366629619526207322980264313862466658567752564101862812653562664897728573466810408302809149757496400091450409571133438117776067628806570737432832105880013850729686931042148072337874041564785435907594374446893612737107408951003623599582315577835359156318101115838890867397524400879357972820679070998947812598993768676090934100189909599614812607854120769414248602002756804079239999788277687314876372962102944833114061044788712931650588299287943425532771150704217454143625432967203048799947613079743907304195590803098854541674959709189751740708483015820260661557247325075221399416185617951508255719109623448852567700872538834301069554183055255442844457525616832799548790730534494800239615391186041043889305712004987229587670485746402502798582292149922477025303760990602788782061162543081438963299513196171023218260803316163986623758955432951019486740257370301055529733868455281207625908742808683738780079345459413582850133146764948647461700097994270256030090792859046904518128344815042323923664801248661588064498225001612062156761745102373365873879106239133413760486732859908447303833512449722506074596244799672824418283764948922840931940730550480267319126776631892163044202726755617742545298945718905872170876680081759420267356089043939236196013409335967853507420312690868956050233049669256248897345485316944185585878054616925417338569265293117397132374224403505623048169697224391495165128699746780966109033989239224252926113085113073199415188251817764179606724297849697356540124710641978804920576762875822049792977695602182127315929461718206830645298033921255307235631050434820263525624585648473566958233364409690501604929053946688445739156296326422754816538303773182667397334974187687671457164697588918678928029841621515175409505470552204759795338474667571105585354138384263064293728655108155704624608757502527007475509269685308852854062438192221769501893205277305846603808480651323724095499009695498885749136335532197579311849593744761679570301122994041955928311042637192831813594022637891121143432413067088647132305604344291200452860512659591453120284305830709273617326083476613041092933645008328021530901982202556318764679192382103601487360066298559592163909778489274665939349902105037599813779010100453654401857206100006754985229471927578721225837976786950643975902737893819158813938804398227041327274809110248289072258841906313859821226010744830064034063913731482942161300918325445851737158705817335400122817326208529429461633095200226966174162469482349922964349632500166989227096722998107606613339403330080544491697256998638043052912163956712966443444547791785553416432697500632379683688086343642541810164883254391661270600749630370828111751418327975669322133673416297803452025922945828389940201632766350118781050512869313599099210531874038638170953910849206214496808030698043297643178669915283390685399392406643894430224249086418223393410668715744997327097149415729516608035209456288450061759668285063310228074450604172635873192783168934599857503636157973558769034465291655901760627707884985679783614861858100081447829816593465934618289309146585743069090992979216591457222806318231408170997440832913252661966049923467194251198903482917640086426724024722689748719430110144341666007026231557181515226664542121873809619362727545689767348464058100933280288703589088274527018717865737985516302540088245869102875981583263506680049844765039781257246194113380642875946934684278159651392142259644076647624935765358007450734292239713856448115656077132252407682804068180181620581933165714458762756597950641735223000759485801807102728327924317673986355150017965985729673075085278531813741306726391230439310872667611468580751919988708689484443289715182049455131226375434959565257286535576126006892667234194378282723641028223597694208742929778031618667396554881059855063395607768104998912378040916617786751863702432103216051922164141861397274663926763578172088547387342120328353013835653773063977034260480462896754622936428546615435946354725117893961600941799780151718635916397572440335816647226920524616938590437769217743732932726648632633662769953581266545822225350807371932803595889551554616080252802282401100763466684092134140066317103741208431276091568134763371507169471570522372476694558996557676235490312611828554316372507177997979932761755668775770719570634739393111767700289966311943468935763483810726986010736149451721896647199074098827950634322858985928623667643150878442359794422032383935366439245185522315290094488147617189498082968774481403590053018041126113761590195862142690059066519134692470095999206227613461183134201410426181452550844552270637139119862444480708110080161896639049917188860034033902756878726881934659936961964620371250887593473378002377616466433995438615332142779716912667109507814411197407511667591754004521711052994257263273740959051534079340747787150280229741201033777812241377848581329747133883539282627167510960833346291965506083300769260367752368393492448291733453462394667287158691593514159639275991072098918716931207269920268260479475301067642610828300780958879345253153638653854973374364211997569014687166359379755968958424388429517701320570227237131992184681131791163624219217006508741586292225017370714366464241710194445506714846769589651795944736009816940960117646668299733694977699718648560402800699769700874078649221715056065847737762570578410154216465296097434597399154083265501674889978084806909937498802408600441677288729087100298826396390765364252860547920952605464610652706656100639225136137678706153586463712411060201684986562128624133514371387364208172015242316065803947821351818880409020840646398975061015149127223952938088370392724252820675830446796114889342726153252296396327608321741114156618188828631362492863049237312524505809361950731066058759851648196488325906285598099005003693662937172720263981381631413434040467145950248875155456926895521846005683928275717475525391514745416347810239238209229622236100053737809645367603470238886473253126337206686921122199227460878111273962752380759200914664552347685324064577363770045820667805663699697931243227275280152931920364041277336943849009691138057019161900651787449417173030238547197904492177388686565241415303605727634634131441771272226170703361233367738617391000960715400395029559402164082564504751868758793106617458894731980525000451686177088091820773760347160572069056868663223089685025290071338880057089461042775767398915258639782814050765375296064363852041174195067922917915824997890122405755300408977482706973393320157243890529805557331058161828308470688162253242408641381593784969873344883675129553639384167599873028275145969408962013356467301634161023701038564248719126088938233575793311859689028535996170667336315083271477224130393856044250216601085839065539261409707266875715032444126864576496718492622105405179095239902782206863576243908876710719568789410855311830449518371194609249211633788412193406179050513360462178409759113942202182073738926575375947073157801055209624474470635401299731012397211803046016400306939555476978728908689785676594463187934924411673147894174528073634373648019841336577982639986911481625133118611414794351006442934560885495716818658605875963565292868608331380196429839415511563533888433364334545267919511746344219709680300443499753394317364396984233118876957900519981014543029173671739647904078241641202034992672840202820688175829151156811895940078610920873588090339528537824527209462087289136507254137501320551541270238608502342486021925109740705246410148272561668841522420409205512482001406396417059637298869608029383455612759751406125435284140446382808158832147163047222803417445954836905066974720115897669120491125056887883070831618474556571222734892253292994672920558228513181045276319402009421906983982098652526077751659375152996019459537827318253786077447989059140982873179610659091802234848876725148684930576970297415957757535237447437739915158972298994476061929021464703230743960058110433334063213682770118768265244042924351005478015784424427767427309634997144957957325631126310744996706233247300902987396422551087688295387240363781271109400382722083657478904049717304615794786105570917966384706219989211696768997920822463967637907558409601347627121221143106852284443719772421464903630980980001447292708268205515298162558592379810336701961968238222739402253751920207564784665436827801334798352801444441190240665372660739256106440750791538199885424660572058338211609754166556144990245074148095721055987436804284729242915664761009916012497570045906434304226809353098314836860364680501109558408411921125997612558777387522336040806548811567658589284814596873688744077087165100418811481990961668263522498424430540227447695970766602700954880145694758801221105996869364186317387697347764949344654402845169182692960979692822014676371718178598092748746577568327643140335818256900240491541146921315693273376403125637704021329396608957434457264649466761980006864791068043685103857232340197402147762628635085398547748918085529408241524691568017336008806126340768223662322381807827887648027732051396895287821314088321884578204939235923415949059835954700379207504616948827545110102505853556786377548080178860672841543430894022391078375124550300893263076698827658916164074094033818932742020689471578121233015076792584088429805525524130341286755264247992438283630704124789961865275377389900073085316476018937031954916136652261060696763928899850492838539752470221537063490871277007015407033060002981275050562748785432744855720563794635028892272561812639248509197225321624782384978755125009009199896095179777077890951572372584600267489148905525375168127196221738064308946244653998744377004099003780280286537069823201873838891954207841477714966842495444777767226474476995652739524111001811284270760877157498458364953761533588249328355468720943866930409063067367839597614870249731176950701789830705324468863692767735202742891281279051961366028857153186420240754042907983475564386403840450743062879478200420093717182996293879344436855335455571915819416990281820046169430597411055731649920312237882224583483061078424991487657027745546666875011220744966212202346451803608016736311560922239706561177778488978958043112476435052080772498573296781624771211631749265201674326108470330806013136717764423923311169223984384774432197892310560153387623128222768228279789926260168698758696737159376406385273038176282741974004920313171047110134898427439308713437174776881424288154916717323490398178055999606507522207839551148106528255953437932102571173215986050899874699586529884675817441710146612938755278909274652876816395608237141090204692587377005831904104529956953061323071329009931365296009008830057191499802405788389027660097809400838804335195307842158297381480042940163589166039608940034431527253187888916890299058864443107232559704350314856165408386341553601667876864234115866595971567667815667914838642247256536701452079553408492260818433154505068772883067171876475593821394321178455946899429797185546737262514047276000152046491354304666743452866622323510980550713981952951759324093342010180292984305870196578501678177514810982648320326370829444378846504587648059643178038401326090478674915892416885822193552797899872862169169527852493435341941210334478646214818903091695983747021807195381477234704101131754114788608860667835436218791850570640721310620633613619068902317125170290633118648588559556932146864692030558780101331163819681059046773404299560987988221936633422951196034744413210110258161959455272839043039677002458165939360993147506256420950857504131899304882091450377544551724300083097649122693965792402756782302557090832581546564314678171425785093323451947862523962560026739229308034665356739629763229242926646142706091116208415648943763793349016746123189413045183989151507145155443159461836338837017538659492444847580782642315836362300933770881625664554802768307809472221368484405256165479871687901488841338593867391373833338468800125959899829415056486839232988909943084994420846285678174140137969438651620387829994435829365667450715280289522661817366837081868477799276818021952810092429293709182333435398506845602211849814279743744970967036041521465516038197396789760417736642146807441686149778377626182325182585114664886252713496273042740739365572554775731712342350578859703734913261530536071904832164594470996987081275079748223623674022704450576980418445529231526109740793975284553843713441041050746308877703148707132016135334945111549195998121637624604996174654102906499970075595246816150590901166258928542612933209225527707798507555058731856218024817165171814078470360159276620895422668844928190155983293420064299248788883655193548744896629226213910239326687312036292701286617615781086014701888647276204489015409833162929411600449007909728285193577024606455904131494496438029447194159486505644498077970420974078722570728626719022547892283253607244325484094793775444602000578384253531688906155889816226067785113963090856152043571643162491148911753253574317655985030113187916171725079496240104252394110279000113492445492011017144911661376904079685488051973924483702704331499255571576578736227377542566303408523962994242875138883385557064830065266959181966702546688855227536276396555777381212910975243712839914474452489015363768675024416963186602779977029509747782407955958485812933462949561152638303258625828040793347310454841335239089668525693221587178435112829911192358258891930916007664204035777719531854705298479925089052098627996179165841853656375623533841844042050724470298987293292684630704597016994089138797656551686086665510291906288713774870772552492939137400155137691777979584721418651070002125548787844205496908269171918692709026511172265695573658247192928054187650668096986347300487744244245921973833915284423576261619888991465773032343425485155835261652094051622523721321937962439306058415878916562166845914376522976883875835458235946074922563964510288464824285106129876859153523567209057194284573820348647156458645723598301369624408210309348082438497661307072185369653451767725889686584006899613453626089864675175593309271811231416927387336810321609182388132599112731862784399954152314970067947419216839009817636148584489897536708001382915526240762501699466361165720282985428974011847184003629485093776775994866566505874299929956477155941790278932899249761089767399238747653956334897635680460004421341326797645507711204194941698630994386947714169461877968351086476041896255506287286297702752473187485513621838290860841364624722518655923382297863360473026991171997250165491713921178956560741943192723502923497822278505789112786930426315534970829011556365614713710261748734608448762999383010962459970304045952086659508239951607007553898334399726160680097134087670789229984865481917077109007449146062478035106682231171324256301426445433620194552964717925843286699743494479914207461669695203212647783554178312056702339854870255014028888103536248032949309803452036421948720838400467105968958814833915393847609424894326927217441562220708437870591828911551187153330668451549448030854378761874739462049111898142608787828999467064307552148045143697264423548523331376322471868588568622156107636463029218453001320615464199560619704121099219564180363355185992228364003486468568563900335304096980393703092868331503709126245663791435948316754818169702127611261414232759809023201188040604654619111199346218569087322588360706300122470874378117233097805167639335917396467733114788092272147897364131253993709499525847687305070791586659384169502813237842388272360473304537358041645733867992137367826474311864708223045305602956730958725587878135358602112965743373757455649299858290915000814884217464715046082503370653233833139795786736846780919604823104560460722754803387049033428245268808181427576733958913426889161945346233643566454784797435568781893173079014229911744163051791918451021844165466611088553446213612762840824880022701797518878125546562974325038234707496227606805522327900425303162123613548058100883470157326402290294573401722909464958197260363639748739708616213887130779391314644378354214780366887245464880274861280237577125044836157602574663860522198555131448975456681114395044336460993597879904581482914413697158532191943560216293481203305430556861932528264919963722870151063393435924745743283215023820160692070422414147803359612719628933359609817124200140873415021585739357145837504313462458912086639016053644991255641456402468855325249609718726048815748381582563178407565201768295847289118987358179165921171029255630106304379307658564688935992913474536644504465193667867073781224790377370954279141951458062556411189778638332139988247559177316932288919864072214600820068138026317083312717616235767036172611168888289892158667113430614305304578882460939170378762919176974271582307825985433729062033372635946538964354380049111658968298763062035128904620668703025984729245462888722969832352305301612607716613774840528779166017799882408896396708157272790996509561856690171938032337377521560090008572868173571459288495860028661048881035607052692286949082346286228894312970653881169837842168517019038208771163518864571299782174949498964829376352334429687729030622524520048519992173565968724056630088831829300704770102694631052618273135713768444344692792502845064402070409503408739741450156665532791809515814291338029106393165781177727736363822673511191792921108450473023289463800878191256561614802905939543355817714956536429687733927522220558323430925578276020361066604132084796340390072661458169177414548736838494906094823280834170306580581335166512029792556001007048539942998479640016789518311671604034266100672383283835357354886150601658460314156586601506511253249690425575165029830503252581491267698925198146255472188444129260743771173630965250173726204105179619926054287062247599243619768724119509493496744377752435157278225251615265765244699735075575342091851440585050564998036542043014712921768358833037588778691549825824877339205214259352517113712584039220742514932967645171233210070906796823805486167717323442872108926678771982785701895638375462427918187844377530016179697271176102800605281587584630916143666582099793748087586023561314835885082667539447672293853368687988880715063138734702770730304709374106984972534355620713635198997641533685141951117080866687300230115481342540564300443043817589341106070158502429932736594584205210513614477493417075429608815900667177795767620377619335079155593351218594532400493795770660925167507418754179555680675919339707714168865004607993450259033716012063992117667756407011746017567463975437413053672308625871767523786066976040967613230341343918419404829536698356823835350548602215099024519978429233624946132857151817739554079711957728774871871029140715961415946084184518786487878227552120909180971311237928202234959659016962523729285296449997452659945741889611313707262925527882576186328220515624190112273887576004293697672061814112942975049908242636316578909233692405055021000182570627662890714859228906065839650553620010481159625185749386926552622565796925641404406866410985610266922694131657413880150702122602891927329967833949312527628907298604962940072304133570163830522007527904126751475736819030643136480114382260244412802095036533433332773298377241786982795327378717797232093461443332649480432626470376118226576076441178778014421340237213547559870467402043103673963377541253748885613106784841626549663882523839193058556052075878303645509199124457998827047597202870656474223912160778237077655602208840866209559174232410681563391850983071540955754545224346339725254986192017658409120765343533979891908306656906130926997885257392206976447088575969900693105043913639287827200704792574314025839982532320894425815981129690063076989926639461293792185122165786640724544983661781458131051854557402057211519988426060709413700143654964055909139201720051509696350869849796046745601649150024661118042868698021903683324259418793179365578500529423908895274555596268972883275881863155509935188983276459931566463960818139785434576358811969843824486955584263254089997702763223017240824238756192351393538831769835478111666948269785599721105039497095680054038476308834643951253469007289884864347054249574061207686486740105415034334392804576509469132527744169313577563652288381520462954101913716193077576053408657660033765652687169188629656512767786104862693992424497113119401901230367016629256296355561211462832516934855394352248958754126669257378248155139119395735333220223486907581460209438303419035510398415742476872148176443738962069383865279120306079254394176526107825905517102231517434308606505406227805438130802855293391507485065656619172623482121131875629960445748900568605784180027335188064402056498161989692844541005154673947095820958914021449425772382862005618431281535343255337258218322501890179247691484924356596683305396098067057469742597127030065548454555146378689844188296332923541844664627150263483198888887742856567244320955450293891009675047169637991749379677177865333253859987060406573011432588656825155930653034744526238746264252737597427459044434408908030073458933322758138348839812496851765433403318562378396630605166161549532245852077102556249197591997524187607599443679463204149757069033600644322466836848301147939631004886506535735568401393056852320655265744856127690537569009836770448370545246882165656715128210982434748323975514250826338138787601253667704444296048489500176107153703278147924406701230679451307920157733453997536706524471145534359658517855020039933955788757073845760039437457666242356561316530118292588016251011121889440428485096936824240877726928014263989159022898024499886718670261216903367941631032184547168303376947338391937433864432619613589600678599937148594456470652554362648847071863169954493194226622260037187223851307903337305988157059438646268731008780444508765722268069501825611927057408087166653505017730987877642508135214010174839844725574195295794912649812341592885779015535516744540465366313965540848512980792068016714991356475300097728963905837576263801160680869562079209693945090881708738583605511626541426297514352545020138951879291667006531763972678508996907579303726693063576240945737435342764357835119278668019663142068093183643979653197321996813260700134743197439560900555010230533298383481065113036213775946942189363254735936276445473144160985836425531205203288980572451482330277811194519713399042116985806059515095375584786461028409916288951644250850997997330086648005266272311612576014350893728906198914160147097461346206318609249475570163893170087189297914766184826700272556958929588389720611533009243104132049749240210936640454261698697060586203374277358417786142104318388518464569936164510756661504163482515108288057588621795675681959519131371794441451344513649412133127172919753632938540225698827569024009128775458662267538499449833809892201332517810087455967986877110040390284082398874451839799190216701513531471747526690765730537941873789749970222404183872564812787627373402391150990734724648323676126117307406763696827364678850943300253787658914934049475499325145666323712102797487348578657771886956830569742000415270656838999878074775016747778838171356113810447416889295614885084447146446396324232162617037247266853319166031196555947825332830844957162957013131678268949389144712626733915071244290628333336390343715398963367298983525574873978402984909516007692248205777586331541912174522257858838662787039010394333180613998655373538601971647776995813704077925472961822995123007976693794297816595552710245811150398999124051693324128637385118290880873951321921109279367011931628857884145039597961656124415638029061557156664199909557584576620696108930394214534470411440984772743042252635639386175912614257708561650890646127680988680694311537864210715515372758909013228912418740701481879031248515284768518378850092029170658516552323998409244978386385505764421797525101036937704367378970533625297576167729305330034071697940485806467195164106106080219938998434449221462523447786724621342786345545894175999124779990699022907649762509991680518645130155345595027256851315245298947934672612991100729780115450873929290273076397019420161608347729815699666277051523336807799151899712149028758175675566228071635865546875500340761370554541541017131871083171324344534177111674184592976046150490495323528113395326146389503339934471021720728254737127277457162572840002227542085973820069035702290136853683357784812163034640689570083492936800900708647593447943558240709118154081215024544071020993233978626823061443473908523950666287243332140084383775534065062520922157013297973140350031065846541149609118039683501405758125688269622960429464959330330285616379874153576331109230690738054042382574777602724878819256282959984407264362241546390282515548200516710591769177473977814768341596109038551932831316531093817307593469489479097032913737821508663784374911712441851958953860320973985753720057711255699694381464689112551157680164616726583608491301717124189334753488668641462096056523456605133890302381516561699478591224611884527771593653558647536405872336206907075900345097385018345744008554699823789435256302525841831091600172433615795929294695182459622287300713360172332352023936014222324832335582691553582525888131606282800451812833210804963814979945354558518735571293965788069435708569256627127541964584832197161914787689691809789534704976302760349852877337530362742144790469517495167192567513251121389569835930102940415478370117098002179324470670670550774748509737654972772453499920932142916302122833472532399899613689203354221526286022616913826273270888828319392900529909466159135355279050849975833988943638785154294962581561536950755744644574538475266450060509767378535657950105304386799433780540086460770699777546774044701753836337860745455991056096019032836758980154123923530021405271243585200501320802459356317233935310930646704585762301851182998360330441827157859649513311939937436945882029797135395858791891810384819349552830185183309356325385110645354183967260359042724183069173172616044982868021063985590065407287323998543551279068026332656078313205632079211338827295664149906502956271387590300337001302342147886251851116508760171385477407605902827954052930988030791244600629301427705461954232839717755202794058458655151321211813259236109990481860801882297409169629387127569873430405882092346145199783546927835447571039602828667567791689428685362530686919718901548012691616830403964034103026930606519577716624835803512544265881657965690998440544816177630939084200914181926417363642463826555253336494990177287864968870820750423976577402917125151873764462218852074903497827550269038806702794914334117079185379044007591335376975577973865637408092103094063133100426118659770695515343235874419921092370724573458564002319968548835314460845513987373886892532262669111492652356829569523949805122261225989706609771557224414891594543423440054685354819948193662158481192725448550321437517561985207635585600420051345383115607605941202451464472789406528633142158926216971845163299108177602979445568107959327709875493951089343796902997549469199413241739837834203139546511812430634068421841288681016496517122624878534452979151312078309268772551665635451901147403951076193348881348862473045839572265965806182981230456016577864438070061572307777691171788145692450708081223297261324933160882953560066315104452265071540309304335629771115510633426528438053653109151681906154854739298281589254112048017586000067068538853685639456337813331627429671465569470016518646925146600096718021428856768047705305996521471262651635270582837490036871206561585226396048570017227356831130737083534787111596965998713818991370439236206930406254446126764138288461903059081830959827580824252117421924169224228400334024057622678147319367148107049529168039376577737786107529224799372095670083457461283898660148431223299087700074384921961074767004664475784717247449410838528296852778233129483573373132337759876542316910145001615204453487827086514730516830585435032289141968964422829523751660749278391996037717361694816728847576800456190269070730774961806081066563551664372608556731760685488566939697170253606540594379706817430140675645861194333866491099092175908877500037485082243543401205642664763766144007282207626369231740820925883354605864803632683790289720697334189726563897056042258653903266589631651618810018174294517916965456551827315822536927986489161223162572834644773411306859579555225808275974777925432645649169059991518977563017598809167704416035770166356048011130346496114934616112565899300981506626806697636110115727183396372435309255653893587720210640694145001553818165686056683195468930996298590844169595083411746302856875308042230531646224944043105699131337314607282029932927750965063965055962142379461526158308927870412692450070824145153180781545014288244894446145335448181451862762911095084375617229709180112367640501031648087917527108473010635792200427558125403366814886892485526802153955520594375548278099792243149461645299453106086707066454795085428513680720069530567607790028400614257333421369706242536147953880185315357306413995182070189802796232151845065332228465083943326959542092488469892841218142320554747596813781646485976595476758586667641306320836643961053115996093149171256771473261394536998757886788181988342721395951494367701590480752036471222124309836359771236935401611767918336877575714293957290773688814561102428175981179313744357387406220029393318993286059015537078307256844882959713258073837014711540492291166127044574352423143764869642151268723411653666056667710310166678768666332547584155860786518401281392112609015800893114747660614275615093461731488123968032394691240928070623254387469050134673748809097710357032178513606070580503240113791054863910310885305769674923585861632405109765352620145787941168791170703888745024353081117669612530609034620557524441043188418314158457183615844441617730113977835579074018796132015407658204605504573072980275688493002001672673837498506194707976417664188500477505498285309942076981951174990639069527209980921204022192669641564861003906297313118195309329436033887441593392249763895253574716680891629578437296722208168271701528051053821966418939113004279816649057478196789686918345620907556276597856325782120087005841035581918194009511819321796142469468093316311768536801329125980923663335983667352409946340100116376272450597152807895511776500079243550076741032571111928489645950026244856483158294772473250873974077794152606797037011067927902639307742817506423593418901869673257305601660209220416356034941398683346876960858683949237110532698760097374251178780516918462145180661134594723852378038945008948230809853691481828141956228430207512365598355663962484068023514474288511643377176174610284242617687033970784881344960355652253513694228486090414061300362340372022616332730210549805758644397551852601117823586620848355891377227564298436389755289151967411839436502838986079413766290138604840246953328038795337213750669756599279404559318790895060553555865158737491797001764611661787512814580547347886532179196665475782691118739455491570281551608643650022495652564710133299656382517475068112647195900353055847409688236827807174287541329700177638808059961296142245104293673148040150032081216191144812406048438164481167936784325995915429054587786111625493509851539413596903299864182603666246472557963947085386491998339103474752133814664034685992835216026195440160298657333085763956040429876495404670513117380468153086587145047978540168435943956948487128134615263282623966080186130037211016769041329722302886895678427788210864204279169402919722641735568450174065761655190217856695936192892395712096161610215839330432129880488977936571456151365261610381879303581187519148365969976545627387213611909437994662968648823716685234598769870589200630527936409818435076969992519884530957929808799314249484547895757686590699255856198177807373730782951784655894840143519769043539451509110820162160447101077835979421785077262865191570046221362436768359550200024259813124290350434661267547055790898875207940073468617313492653594112387070504459818075430928673409074137624199927938118167866918926653551973437838959390717564627315092117659965858145375208327900775474617368612704262964416917753319239453045686077903939258049660502678227512879562944799432596799302661678485703785085347585689318553068701316100308016104103321212008126850957274219689069624103487171212049671652233138337963666964308684237054883233190549540352455179259208722532819974757617584200471846757595625548242833359465061973820753467781749833459292121674613501487251323294107427790636426964101497536459660319604118749978403930094485907209295084169670758813422935168881805802088761626824962605712282934947894361679916980769385008333272317512086724205511626876346752373543418988864316318629749440145432319814849990516590409828093258553794208630239398748147013681530123278428385783531980621530203733747592241927232311523762392703271116983720001569067019422554303362931594994376934236736281737903681888604441004051169718360955862716021419165139419524090063077874896739997613074202767517071747088531456801158059283310777485363772595754424566644844800711524892269878199794213249870761092135200955968603291607651141410264030537761017754276743403065847889182128181218045585405552613112704812038123669071712018999481803974201616419560087493500147442384675060707660619466522754604005047574239454295525216737023397471077861989394390674189318002312163796844703786246097885881608504048170998107078192110869634035754467345567962461128458602949376026182055742296235184749057385545404352424791806006973492082031547625702073623017830142648477296156625437873296626123512515661276436218612737564690812141660460181959259853231769234455325622159671780483494609714443677682334323717366368763320760108548532193324473641175600825678649252210968929262565580221102910422483445204360790029433591336841828387291349875220134566529455106930620369945143094082148081613433837620332092114866236177009918256495207776178951948521661543384855170882356137385645358510881959099112902470712236380410112126125272666012755305080177186565306380065938895687890523773771826040029632410497278645900110783739456626399305603754308266939809920848417713899553326359182287048258145505737988882944519180776660144184523000612809671276933217749047978760197949994767801329009074630996483209090485302132246974154410001203497311023570471067132938760680006099280907925832751766217587593812906620985787859703828167474370214015541355995835390058708792105605063302277176276001333703828403373085710255480567325837325379525531103358836126188168859471128160002839587290946395158974193022473843818496020435879182085541387154425221128106749420568954935849430062998076210023330955228352652212884306071683676611636067318778650583853895691614787977423633799450358760280923609974259356160133371257961380778995765557369276128577048265006163011567007679181783162995712253923064112272517521183281151275343788062527057545399247376689753879857588073880292846429948178213671069030268139267397262535974659998414673425338645489750130583882495428812876026807236578247596000503531033341678972204488498016859971730059366653762110827367695480250658491298220531642192202510505272770047375766266176986110190805939788327160423299188930732084585074639960469888902430914581047781773472235077609594460170586512461000253155839068302690517622878499836900627735379356935509443619720421104509399440644703966142193625429429204519210948938591222419500506957498743272493064864047917764892018908254777217501452378826287259046788980892603878488783090521978514044623826234705767436440314157553141267480652807365906593474435149130648931269734037324591826710406877875101691594989939923366039435955195057454898142988314695691927048822134422313383423135699196313762076232371929514926063347003216950047478209900192040673120831153933867341737724930231924070600380023094552004213687216485564185862090881471002212512395843783201410847158256732353992209717901221938471487204600234823313416537194260743651523430425887983841924135772316808193037165533699148440250220121055168735749125228782071668144960816312611207281952036788459581822684317419246858136559784506643544637884354558751917357671406462943988216261171711383708705728024595880634419043303463558096318472553171246795729668858398769088171489365201145870343332214060961378139201696311039449888688093192002725471991040210823393492176266093214729459298194184497117035903206325034872273000410494018702403424640938683177311178973626211252853214348957495422452253471341475329651842185698319846478817430996936841880870681321585234141589781717444935277256303044561220580375380799037917067199415465449073728059787597275727231379064268985982284686814388057589826179051970356406301587613378607159997733487991725933648190632340019758271864217092343677830912917390310272297482372825525936591297713461487086877691115926908684955563680520892816015087651457442850061738750328349539125244536609769026306219137837029825648412458089889002255580165893951074637344865337933305395358609328077965732277418438353607411802593226323152000714268822537212697654165657303424811906724045078203538238178063505693911953296905581097733135730733547265695205709563510418806800861979090143846446442721696059478842995392742172453178153742844237255508378079489260462062311196149177592617773731870823551444076799792837785355458954824907020824560883702142458029174746701849563672511661069880100387806478794850680845399201143175494830231959470670492443216348517877035038379974669338227528529427280794042552213266994521335426755705914947168529329674194347014142947959646996903739555558837684623259901794487451233021582932185911116442428116004879827214994459641464500806827871986444065079544394922868939900935964857951042793348425165742815390818819028490940978568836387983283830447203039839242826523308748544996178670254996399786812040122321455959076481219867534402488135216677168413297840224605638732434567641754524103160457163770252372819328419957022571376107496864268927545551414294721477853713935360029921485422664802617525227535997024602972204603697951076499790806145187749889672213194830973906958373377244215606715124955905535402868582381906290094904422870630499104837411672579034553243161768389721791516291478467518347813247526284627461850689206976324989573972371556386923144839072694035820110732424838239371439157120119817736345898786862635602428141683707233374234604478837589902271231968371422550605830574391968153775932062824852942358568957240710901323483316874429686388224014187505207893913455456598703614558444497061492153586672895263109869269178690812564636889250628896506766937756357306229852266864312344010649197806014005720319000937234813579977774886060705741205532958517761584945447075733441432697577056569701064442844293942324354783222048977241025033524009560318536114840579751429391968721012293858542000585032413900437803828518411952377817875787854860690899420115702202134744592353430823587710775755143916160239563497737754482943638068415428818734627632360325707774710429915582488935300749157829184299895646265981884198049390242415456395664052225609974337153749800572662665404820275526535971901533789682294971113301635624374236654020300979556130511359529483389039108506354789777391938985684226421439812258815495537983018582625197275553210380377486117710139868925351364949332958485324369824404100472326143379467541942626363859417456510784564857945629183655206199082402700561149465604711284353493733880894816547060387393298088133877439758781465005392273059802069697177887327090072735437097008559076013210212067843866840843443799813410447659936904127669860610962934698880216774075462822595245281171970653027941686710549640765313668311461416252329457144630165801894144871909677264615620617744300719500848260993701058149245169673585716356376069396478524370680383733054649660335027381559454881410323283968396118532486711316775477163027843072293664356540399554745986735256930280230517324524835127557446854956275898271258167410109763449432859699400366859286440277928311038854160254112352180477956784449046214519569185937377398449343763840557891740251960285712245461748895946622998027019661149947131867035997049527030548308506516391096102276851636778315372799554062918956948113722109337582727828283858212634714813596655634530134361339644365583291647695773209814197191412190422627744021445508211434251404382587158939674742470328775750492556096406410020703119116501995120606875104064207803765382934509864585771381727960714949346454830235421204937754626137563216434340497616142528161064818047691904134642011685743743183282203003568738225303440047843201219599307475851053605851621196045959279663895724038470666544494164766340812351543859647812780131655612474114011810304517490858577387969065796203526308184803312623374973470811738153873110820257307158945783743010267145817350842663408243866544341492374741499174082797184049092458766541488630569650176580594278275450401680731218999762795473019041777963957225394985267316886748897178337056242122969016794503457717177471175610723233406073325868700523413070043587347898429057333212168634759845319573174423903863444148591725007592259591196431105857108926079417551179028120527537769675615420677097072608264617778644273348258171782019398637026284256503597711832543953406594258586475540606333440684418141894888971117743591659065284357027752030849317997104299184365933610607570772090002592413560033366625382359592311699529778904795979050856440800090523797867634847209974185958181964172436130064493986596664616260064107309404229938766781373644291624778194936355883601352023093246585591324299548007994034154106491180319871407268594384058594953223288566720242750227778835842962430976918797697079833811709326605153340987144499301948144915088525814960239553467594079549348776680185896397648818803902309114995588560238318810163180033711902475046981488010558674368147372469262225078233504622824785137156898616793050477423617303292530770688158789049452379683566156272394159445265912900142814996753277246534537590439830438904175421412768649049624817037351965859381321376258362213458544640864398604007478621991917584527353145870936689380040198293466831274428551555841854185247045933138256303973716840765045842846903833017449430378015013865045672897543534721100072193089834780106246527748431889820453762446666935596023837606041630169851062475696765919076769222816815938845065935886958633884214910628023181610888854762653353130825862052453849215126083314146614059983820259729493718874723421498212382826800472507746219519492764619280814408969266574979520007126709408860874789545444045510072498854420802062892186148007612745238456959287438344227489362226839086407625266191380113058463266895189632827015496922179652155099774556394773282696797542002626647705475050074075226728918803993602218358506431933849743869461318282584850852832444615641145166518125852999952788751497538902522471344885711582415640256911487849118032642499559986814911294308458683659171404104879302031865855946765069481795154577983744262743942829354891662418359019138187125622796852315560334813612134563678471173861202022621046049192519713790081493420856587886052795875390293358823760019497735404836530453279094134206001750042632517927958034357835048550318742455452454226434437212573417721554675120667235031038441410938635821709317453833892543315942923345112074490548871142740623307452169041450451496316735421747878642156849782681577126848998094359013192492758276093825053864944149373500292301292172298719089539379080682786385711601768446755803105962635543440401109690380263249927521871233069571558463610198260947091370060670700149786125134103024446816316348611960517433098580389420408182995900919687669654468517470247023604371064108316278414328175104293243177604216824815326142222457459300278425894880800239492860965717804951042372445014622511562516809930702594699822793401651587137881539040819020620323388995886793944550297474516915847398353379005986298245862396193048212397564535118741348303955973867064417949244206926433349638064706326330845932309978739943029075848210500737110277257150245110583918759260997085580986060014587349597522105885991699757014582206777189800856586990961645299649849871746714808001394878752281653231776147647099265127010747115474939412989996222021072020444089174633037289049269413599306906539377264646130770318979723758228514734998459462598287430303276492229396524082001510349950084568570793766270144701203280136262421839307253258335482158081194943035627844519787472044759997692104839759499825711655689681913340546023379711403831055266665753995718557514524344139640769730386349458933168294196838000193991588544766410047177525453553555805169671889617938944230386799253680374990656008104693824246145419605877132832105635989327767437334829433213425756474512490285766010102620287077382740105448573324322533469091295485039571619744623478702416201216803585312731223671911513858484735372096218097802833345056924289286889071775442909417293031031557776710625816438619059365878843313756815517925850894242458157538044310410060345808510224821644712789256844032334418403063252846974381451042972586825173416341081164705126016623714187977253367893048761249775813328140615575280846657211353291803044208734589975237177976587208332947205084325493827598948872267002553100882013143003952681142582192111067536819253636875693789505216912827678201396804022674995314709353814852475582326514845088614330100483848837516501902011676007945545250735376489580474670500741319700323165905710009933711817465762245176731612703092597423685092827182601662503126905177108280143788894836434746378263186955778810606301040855862324919144272784612791664128704754813531652528133988517918070418678695899892694162157684669387264834259028474654000947096259871521909363687567927852361155433091614121189225956374343349480159067653107327794688760566115756458256442986491047273735420477049209768109463776009218896561335243781300376247609594645127881694800758352423952867057678918646723033428039543104255361554693687672270857112881100015489796391352508400530634782865768955000192463628667485505883116054267748673382410527887876723969976483296388865642189172223619798940142874691046046559779255122800172571604668902102229580871936205125988240885281204126145587702696731884315477320851388837571961360148696839383658485748156543021413849542660561798720124475941715655650040394530023583148384689792579891309336865188045588431526632453941116386762587747206830659959242723198495379973230473763521090663838106655027313183865473493588971239731088367249590662443540815207936656658525641141600087816911094738130882725916977549473920131001239739605661295654337758184034472195665143653037094521968791766215102018979826480761250016507692159349719816824618984734522943300443071815145491880349312230677044802353264594368859097466702989949191226101013426027294060855603576956224254200369787409934372830452978327475744606899272280964053829793531316241986765097222114178619527280010198492247527229996194064260313008008772992961805105439931461542882694920130813895430009854006819375705059654188134607144013473630543207242035195405189723039319096434731021979214860853159236036084406828549360978872356105275430757051362165698623134394151403773631275869656212924905552676315717976913076961407915136066182047282998801696347509191120563482504754189425786135734528351159354423107268762370745443080667209095190350938592391371920266995952358803669923914623588517448244211224237929329370007408415844432773125912606934748839854712516979098423786001272810301493705282682981108816186297666708889999152059293496382537497090939999335173972915424634270203423661257630028851913875600872167717791336228923368052845104148127708521634644306288041040105140921275310486980425951554955668341198081773805641380391927293923150923593125419008375209187286980392354639103958049757510406654812049360993731401100042415840622743871631828407132989567515276916796655005668348309103151003622998563171453919924108667940623440166082761629458439483129982023914760056169583698750831662504973799803284106934749138240086957308218616591022994900356013697549945603352370728676960281535013112700061010635480716856004388184329060935440567328813968031795762511270953081331972448356899463606962231418416783812031514752584845000321043567146166113849464072953063189669736670050901541519115268117784543489153290843865913167436051968200175762485210027911928436544258121400421173398166105140617068868872869026648646324900376505750968082078687596761905968241224836992928399099895820843692424485565619540720883388141815649258059727627756805320165229640441925638592645051403812171669505201601641789493441152510214973564999479186357079823712798248479381437307225611686544775579934531349626133493482660208816204031111751617794829383097434837054944981408804224602221738126507151831986137073650304961165181716951734409846587699062504287721582973001371871480066015388332789955119809609156876892155796882655506189084882352114857684359298677851564473912831707965238176772239769768184633515377379145854696587559635988959293367187170757554465278712112445517527857747625385073955978662835652897822121718266472554825142859314066345913320964323278185346202779297149080350544657913372484581916000925438604036197252907689261542302397073771020814128688601205164559986136732720888263623910231198713944598855439910072147776758636800487483365361106037275663288716959577618108257457655741211908258990675985090378113812953816555392926466775429835349669028046775701757118840202793466183768102308433624252097176252087967930465411975496946170883697993715494845995437106701143378310884796902678227596555375423343371332145235802409183822211706280885781594248574340184906608831158708195804171490829841759277782832138623954297905708161881262651752844597455910680419504413651405991701568782836381836287752011829783179836002967928136411946613094285869330260259037307212147765388607142054899616090930647912711438846090240563776052040150071851794095015710143705766225185939147444093635557783695866131262404705538386897347765372980631669862496810500463415113804206626258448464223520460570166242861107212621892359235677707903644038498530389157613194212139611532580526636659258771606121939159558040518337875906326385307508938058124113585825039382387836194916978344259247809318679670922137451927425781461157539352194078889620653944019368464862000645672253482850316737167548967728938067925634107596746951708968160950722206669741586050550096522115526090604698731080786091228525638341390689382496782310435979775848738865611764347675350909725503393595373099427452633364279136368389478346371940814816413463183822602132573354594105285829692589540853072511713239212720682653759461890686978856279877230038544280022234520215995117126798092455855301414558216057142762850859136827017261644541904762318467220428567852532260694312632582497960072780327568853441497117300751893543994955569065593984663061034456159134200030901663730127955418029406483133583648687520215006861227183925458215892547983901282065593361285687977351358891129037382296655843020782961956678516049215753168222883747564952560839509144465133475860288527487195315243545514454168680990953393894383244188991133568088645600138308249659073582134292203127094715059442662822365144094623960987619931589000442066478674774653768715143658203335332124420915566891213532782076515351987312479746684999478887086113529621930458370456067202952747335263772703236724869669629800167181190327318013520019346300618342184087733482452299465194480008171994697577717216042546697527429798663036048748430759089682460362550552268264368135051014918826546288064448258618618144395737445523246089496282874360297991537972586890163551672437263148804858058613682809862029950998689681174660005700729954315004418001694663805722963187160740058224324416505463737380382637212269797087302489163404493732086408826448777830746768276715223280467106746523919899113561203381055285474085083195610356591755884250039544320731159349212229793387110072521967044279675125967195502053319601189873903957696935244128409563517749783252773829095186048827531103068796029628243738320374862081342546966181055662860581827712295161395142536580450654558015777789324412224691843171998074422970562990836437639438577155684856420842619052719343354206226070513941675865416998486912994254268151413879058766416804618594981663140227080202181726972181548336826332947851684184826762501537588300766232631113635956636342086155086735480064400750060215286209933368838544818493405923308822475715998890736051001154309304880687749621665501051256356868929652830235610529278203224532455980949225492779944426774135647234210594508009375754862752566162681210319385305486681700128902360600666769845750715774178375283401173348683138267680423232579940072286157538340592509849477553074333100113525558338609537770314729488108660147281386734957535039822664730692102770223334091936923459821948613168678006623576577710481846197278228052136388626538380476773977462327186972790731023675722251484170265891667644498230818963822806555091838630150691483777601406204447323921715638499610602604399012211798883371127574903637178504640686441294970273106577541925014821411352529838230574182371409509180469154652959515837099628222884495826597932608666763808825340021412313828165224848892353402163088327885297838840220152211454034572344475701611083038698063895114423480065202656213071614053445032500523459139456980743427526840334463815500522332375676527753321389135410364408540410060264846783997576258724239448885837560105067429692206248726344196721564953198052867394766574721564645241585629791172085664239134293087433879082346905313244017164497881288698819488856916851301697867180175389436830013449339147376991982368206959960134407668256621278768095803740688386234265398138679951335159705056726712244279579582147878192191719475597260544306824934880185099210379739689408193992723980917503934461366446391023036606460869372334028761726305861076502586989221880788117322524813444336691753170842676832707183214352214830691301165558293735753549471876377725934315316457490387418378835794963099129887942357599870685131497121389381929486024306723179391143201818807346723646028840124356129577190303091471714680933258049457075414348858800758702827724961216005439118990478766664154697645692160762572132992726338565563265274185505371759865083832907886841594035059337255886763875105224090251782915159479208918591612461151159880305374479052092195153520850166634207099742705346426363294543893887906773746714244091899475545434997346137488950000480514260067293846102414397157016726227421649084360208628142521622380781284316576279792795420939512990959999949171450736923307791418498010055414520376870175883326951266549966631585514140799735968773051836345889311977304867244636899825086298277239927254807405299371664248866637084883273935716439849363583797098579103752112395932268700373261499068277474148146307565604162681887684676323976328455968995564812701070347028417370649322052916861704065235376222986890616267519027365870314455224300134349996633590784227526208408551615492358459832545444531420922782225737915128809513458865141822497707571026512485292333996084352342080836003900275488495036354193260025452398720182243348318402710890132831859585853190955186043475803205195852198894010336519164053737013308276351588430577205542151471343710566761328928599213682397807991638800801704038524052647215108310323308032960135425510246815256029901039007015574102741999808311512496614341300001457454177873778424335074835917294169642310975213043775976582884293614586085899440172637007542357482302830582340970328764529557200560998371953423020767657488763323545381881192524676465683777272324808498563991471024310772399397190792890859634739705495907790991466721920023841309517332223518250594452881984031260387414934540028381369366898649130311360935437167261300937888995661392847063479544231170453354205164881216395364898347828557048123900039821842123651611150993951905945418261353165258301862340783559168125471950317745067018899205185633162617367146812962125279215134417642723253794896551078943830710236319222452803757823189825798934756970715475315836802015730480558173565757710037950066217912773619651748670378148337749099776296096369677949067920075083069945987812107483651121113798631321401782531614578566175479130683206104796893524329204806041363465115337274949922860279937618540578755708040149202861640916163073569031283076610270348496123563782297507940215933565478266772567407922184233806212797862101838939134949389158839014201496725414655885353419997545143434025964502659716066499841962918571724512616588069470283194585471129359894260750015793260837175088246538003162350569282418285957878038516355011605479450698713877863636247287685427801408945413222381962905275652240505261758492846459131216064885754429977439567201376126402172954953077797956971386157975656174150124512320169152388309683993442291682804430775408752380877702074662092489644612983686100486389493723441912941666903733324666850624124466044749964732963407225816607594038655556776682925693621904119327124834106570629658239856880126371250497706508473015669819740244543745034930638565417607995955605898141155735026682788353432168962686635142561675591357760444835871572222866481586825892976708905819385973016253011820556243672346438812942951166067429223661749488506826945147889276912982198545310566539778027032197073451414852919226481640994423289786187741161137564500855314476353740843987218372197801414264813436258328399043560094458214178137885365876356097193183076848404808192825332123908551811404686025292696739507207203856240936446626911225386314516863722047684374835517847616830081972606508637931304535302757909801980630973964929874899968306142683914023948589133362382200037928948315353027375789312759947758550882639665291949861416254881599118583891056564094012679342753271049964407481370592016208695663888036902518465715427418885556408193613944790107036243784649761118562154172348521761215940630452798214981098480636782198188625126178524716439102970821725264405774325007696967264951600983340904877943973237781154179447532389466143609467946791183458195523183652050139808801133930900393681750179387621536250662716081467469672808474096133128958868744026432110861344021754751315687356157426535705254236032548569985716016148666409825656449719591584434615447611628505392932889419447449181135707208746828737628275602497111503964967462713289669415858738185023799240592842104123593967404004008176576040380622264513489074613842827928394572371541371256063095999763780797538960403139663953113292925969430100835074252318930562173143243789935514508930151921882947737504520115204881804514432065445454079142336354940389597096902910893377092549150360928915730146901870598487070782050478341670253486763418042042946657190622754851224298554684612073506675182722014558173594526941763287796227244919118921169422040818867979581121055219134183504944929243267865018331335717983800959871543658087549317366662404440548792469862932022146307430924028860620146688576854668776969511269723292095762357578565784534135774689223533243863744068373205843154967940682377096362778360218098948019908987386274464019469395495860600061031827117656546294594441180609605034635429223783854634714750775135930212597787686766579396294803038964803548971665084365809298306237633027021189077375621499469757793008534348959803431351673712343746552864274037114598323204637495664740077765037110370533596414698041934712723916889285353160849118909788809177427526518293926082007327231214587300721344384971751328646469404401228605069917781721384237321698098087744791396489465455686689965504146138239818404730962606976704265940797751254365047359197669439595410691377509582714701753441258440459903888229164055555891598546677330054004739574646903799278321131402181667967986062364760718664643083731201026997351796102902511533454835055875470485400882212629541521237134157665398387973202004294214050565377996245284092547896072990550052626501895465017108072751568786356382007645563133120739449243370836986559096846951783087580427645778560562489656397926856383616642146140817836671568584288173836945365997427649539958338787279259368862162464423195035236941586573616972706958631506658478896302717521740410267351980095730128285344911474820774422160802014328087168821489752099704155118934897121289714893354612030689300926180826445201770864534689961495586735971473993805734224707024289778195299489724839457091215181856525799788275243894551916620937230941216107613839349250099598505408926019089907211789601889468568640630807073711170168391801151213460404585986015156207967797016509214840845346356863611413456434585802961331523315962017265695751336770556933650554154062089702870823827406818414089253469742066356494630397820449555032937074441201054860264909218084576706897047638336846950454812415087487862388261916704714601529399792875628843535478124120794674657392422539910284046229014893320095768511667977548778697088830592042345796737777933254262121728530835730316290318588830248731426653172593994946812088761920051479354280318899374313680843118317598800073560629067565792439606643364967880397678710417256937127612064260074068863282510490611861742727454686412534249641197636568063418758316883925883094794447334605968265335941643285782280182638694221814020082569737260081480082253256732420510793467825814518215765976897006128397048266965912005555292045982732922096342334234987259957449006758339695363500153761442812368011087920165076395339535841856254319963642815042535336926843413095382220279430269130414319661394027327691720347656528828996691842382772367850181278974838784170581834492091712988173409471255606894363958299619753690402367627101353885871226059272629425645829697680718788769128897933423291054454958303760726091242369820044441482427938645862230787519441444616198497682958182741804972639623396148395198030482773793775609226128404465535972016501065429696540243963496342625290167965379216511605088689935668909661836491341416569984236245106941522512773047384705404305886408615024801210889141338839341528104563582470289723019476124379908248322484933577860919727307622873483105730939758638533128073657006160692588401125696682940039352217395022981395668600436530176358116308329102065427593688256265882831624034911964406962901821912789184887718747075646119569436735825826137585918517898923599637675867208064057979037931073635508810865004745005106068714441018841095458677717329749449131816239233133813856024822918235235189903832417071454132338669539658790193528440307425202697905463786021763848753429679773498444840272814377342896823138601580159849555685003489337529932429777420124147980946483851537473847772367306113385482179929418785778534369401913361939522486408364459268481815295328213275601414225719090144497327063981232125111862064965892129584828312432923065376463993778850427890364089740858648227931569637619530701213545635725726497638185415401279088905519374199837678037690644802320963130564281252148419028000776843515190923723252376664064844974899033351193489088540360463412410977841978014325395953551651406674129706753801764158132503723139717660259190585332137719002427012315265837403497195683306450201035084095929836516162939783404406457987982216244683066538483830807953805132354340399768753573624873124167048675051651444127241421746718105804769704773272421333215846480208981630581236316727917658102636051235507116514977473507594371298568733057330220817841822819650201311242643679212095719817988148488508292899682465899744568167490800521713302028088843548732668263334488275650256720724904746102231973731507889876737231612801605004793853960338619753729762061600661624237253633729267064756367250075588213240731376707948911445616228718815516095279571703434582510450282691735095009694989223008805190220702387926699364022563567192949905535140293969692396490758210401804196108210564063995591075848193551457495464414939062748215426451919908660286384455431826580552311763548975825283263024980871927731661191182825122690600572384702299836222598105806069917848365512372745990160665898306579435142567552064741096828690048706834741877210649190478617089290019459321140475474867435532289639622237546486193738878268136672114677786678293458358647027712468267682014844103822187226887859666968395025985189817864678583115490431051895723660878156611835674489083087549168832181782769665442121389904120733225202712587662227649780515321945342483770842329429000250589142923964243613360314744433790011161271196960723933879083562001028100134228247171198061378799904617556312321676644933641044217370597268581096683009444737736240040229509384370137208796740353343929202742484219581413136118879783960317655232679890972510287594838757945202467259350914788276853595202078044200558123007138424405008126815032745532322134942331616108067744060671261543954679186715318701521396565848751149297154265666142601599409108314315682562333050138059399047577349764289313721182300642501379876698332203514711649995303346862753168833762810950337779832055573960618716411373427182364696286896763859815247058329783485254898517120967450941773123160901424241909577623120788356828449435240574703271639652561372620090634660967095175700691825129598501181606523376962598376761099697530460599630755804914554059495950164756622210845502627535645084930506077388790242035805229960705659696101786821213458982671187960242314967669695810436582735063699815677511920436904997379507924442136812304198934103987658314024823094350624012878481534387181339531392286371959710262156868387804069743582683220447440592236946691534044544826282614814815318950821823570150009589905412913282868620917997238237936919641906445408415460436706450568597535935510603304621111559577065887790288488056336461456620249646744310068779509724755998795413780753773127326059896265196132669405993108323173095580381053024787992557517807208369832822509770137473636699854431750938553225391326473222894102726978909350031485072981627745096025259334352477577680324902982939859140156716586387855146854716269088361072420070877368317948337224335390403375688581555130890109032193691492083957794506967958170524322424551049467596151851767655419004200612422274809836487923552377388643423801967174358984219420135147513014513024458417656986456110973778765520090160230927090757370623581931252435162995023058707883819002227595762533127231876894555757696927198955935365866779041260244598701416957242256835757562298518146405318984725210852201466657019414716379124663758915700718291327581953552204486126181375533656324989302646555590846816776914163733768915676033508495837150148991146461275045984574494671453310609473220324389996960954852970789306436355276249744955896137509647195019696552888041453015508991011250261089456122095565546279010788644623608152710038852209096568951888433825171682625607486480205348893152406846968803221734940739262548850332481157655830487076526277092127214077023288361486381108305728447664830161127827167461001927587014487328820336311273812628999364025688641409564572311540623750140263809256511468200018821213917637987981553933702479466230360940635480046730567368269179876741932731399282751311405788970256906008716643542605038398136230653891121390792988010998904238838617599282484834306426042027965341788060273130495854537291098014188495273825312222934413448823712578247661742961688344361333184023014518624886127014009770354516040737224226916218257634665070549862627851151720389127499279771258600917152751104390702071808206277697034533656200146126265624340479626796217640754333608165961334980964239038698511613391006240245931001095524291096489033628708323730290891157783292555593071572195660633247348434911579126233286465409598324340488517650816336426626703144507150618351096607888227238459672478215880931933611172176900301535260477556579765616683838378444038830229976227341069647024119085354030447211260214988294097420952327630440519708342792563697112253490421069393421882315525367854485666087242997661901389113655053462407945249671433402227957821430099679643387197198721875752511127669550612801833612058073997474679403015354765551972037813453371123725534821911766173285716316395182802185738444009009852400088416547526721116665304291740287137107351108249230963976698902798673391141461050010477597528918752516108213561664066766859102686922623708608142860537674639143626732427878032961008994602477378881230423804024372989138300765578265703352094825566454946815371295680378799074572330463062497605119713447330332474934838063016634248281089852369276912974931388915395989723337231179352733444414854522439504088878448074415023906583119705449985164006407011030349964421839502964426706119318731863086993506432045042517412955623505637082368854405582722986457572064245012480132525631330458368463679963784364994848577913870676251019363992448525500643881701128801981241729813399968558194066125880437359781449199031804870539320262635189675064335008245903588812288457139737210362126522034972141166276201349748204881250175398869443186005369823460568329333656846855959372612614838943858040328496566453824529501202711168742894822813884205409367631122680415957082628662506157102228244284934138426721930259548386502614474293044844023171254647898168698237190815014322990950528790339113760854760785912193296538589027140824326753843558703257956416159663521350212868717351549230591600770932622032389552858472108462807694934419652910480235413468715502739573182246096317898694510064895731779346346365225508035138476480910108299038235391754743117920978608266892820541161366490805819198023359802193765142754135447802416334447239269280615572525726522124345366270899213812292168628054628462521947735020625550707289549545983841728171056572355154367922866622905501462129086697052278737087281631944163881591401380451680029759937481590411398863279631686178521733764678439620094352392247056466735450263596195646736849423549344162201210144746250507632327716145761701421997245759985343172335398926148234292948925880177050896654303925450826678876736975740880251905872674082111318719954850462916403983876018996175078266889640501940315096518596800051001289508593175810323298313213788764135999145003117076647546496315910111140203847584760488066979832488449525094519647784378011558946508545697449984540723181806362403817752343029156585085451720030547072878078835539109699695729048699668431325287417397183797660570078795874847941754578516350194577156714618503160800795231411795941229829477819911126009622991765884198672684990923453330411761918468031465137313002666095197032036430943827469253101344416702310624368499426262421211681949817230141389615376582733079953995486195914023199600786695136680656226947466221426890116337335519273675876692131867977262865353887444283387649260678804130007218146348941319213444466247928363743937135075322374152645397101713083202368467304918646991020275636534738027767937627929895005412256512188846270806555701618466081407985979429818755168637283867957746160269486803630501610868708002808780977422562852913175721905823307893066125847934707930006537716079308907168891797562307781173933118095153169560577214843510096188036347153993893952132252368406366312063206268937752873626802674085882748950299895599329476931305437555511486879939321787449720516431758227811011691485060810909965092412001046798039454283772219468900031329466359450455277056932165326045595777916000621681703812784951667349253161204389010645055782954142968128062381463947723024620057193502194778580208587807149166868076032990169915435629752669625483432181189259235468602500312055270787364828663572903744668400086131992187435358962373561924869041991972660549036305651564488581317149115341256225990409299727018354159301441014628371080821164456020825606643191475126360033140475346258669535099829759878124715596807472591783755811559632118116561030383543408143001303358432146382750109061914454080686426652997220630804514779011352550550979037343161251126187598706446434108615365758960214030251521955713414316510974871835341451532687892827403031302348959022591384239553903419016664347586773603742094473918748787444212223306602762863258183011387653484008040890306962722444458470804433912667010674892696724340858899231337890368663202612011970414295339899895246348966122006545779514041781946865657014499708868284800726545527994064125471242141939749822911131353622575794019018489946160248323719753651395861738081900026784897918021162423430865087368931318071999335646989991480784324067742118910695039906198424105454126211015217035496991212908597114268282517680487686106471487528106832431550164325599405356606266987375277052417379119420115747218424712005534049426844496704680588871344401338037300626066226028324784434583643030207858454633449763990070657866290267547060884906976205946000147988897113999702567538682848950653858673201905901973932564430213063469717632025885811943575280562126313114720449779824013199536995864331999669110357656976169707732119995101409108630816692612753038359574405387098153772339951997536956484829414720408409351486189793086305670721731326141434261437053580536593810306323552911478424235806640455257229528350076583472272746960015581048719127506847417823008437806363634541188231495428626260175898628758115545265414810453714631749142754141877499423417296696315984832029157505150708373740065108245891645959007860723627901154690326307809138297574938514779125252043570766280294079593368140590374442065994185619532429518516505533039261495434170988110747587262722556382265558210289197053369184830255971487523259343384763216239369890221457855984425625164272067301539385177102990789961907135955862409963542482238893196115314666606774216966950871179355740869734753312886953032364690212393729328227802083263931718757679008519182638397714187598750391371326926259057911046758643634028283293803860098314866639822952576931803563235181365239938252026399563723121115184974355539411148277425980112914385223357631963146525652459933470575492851283259819644503756729195959209314026004577543547294545102303396465296388270809108986265789176842219254674046977356624279218183283784458977758017784740392772117753467993132815804217318343412620748564276648038496208178483465541752683854041882790442542621578079061897531944526506776107447891839157380087078174926563501144407912959831350057485306312451700018893745085022313311166054904763538248100291769134228457170504499459319698220031345442704320898538128739864594634858688390410575267055066101353260026785209118294641238554435757628073066618643935021845798309166546941686447279043707517832595588904216895717449774393756286899584207357297154764942952639334249475904194659809254200573620880941147182029476198785996204294625593644762564664573265293824573554042649002937358432139731588682519181379077037498271692322601232701779199551540946753424690174018934697794548440275935813156737026554617227852152207659135394710272561377657394574091854923644513635333497152019586971765624691856059147723641052865370492021189137888189723446173892065072258320857373301854882495841155125122734887293697623174416123722780958938806487677637491004260562424533187145662300923986194328991185235760417684576850580436949527676642564183233692464212684284519894494585356044178100340693166070371683602898859681155775781450925070492697454874776242842064217208635793385900139954370058528961354821190495436213223326816482226749069218844797318973822515765807462556367056192794924712959821797432234384022438452764076141667260291577505335337345231310413256034294703603074036988550163868145982153432578104082351166105723918496994409912271816668897198072832043450889012641774388892951205475624602762570523340779695694434542320457762662051193781077623119698724643722427593803484755674736536523925933019140376959885702565722628134704676833352813487000130008747898994975976944716943763477112778309762160548436542131076073705481130750249343536048343652772357609012965906719386831378033408266074233441734257008388323695630861935424276789355824451661494795774790467063509505866842548046248826058898835976309192081936631778798876032082663666473659277258074369085027761996214453770415250798902159848885608082644687726249970329437365391692646722340126275703757142969032104486571116122225808127320822427479495633256888532600981517666208025648071848261657094382425424351286811289057860318996025564692953442653969906604535969613435100529960850268491832136006437371560536695511153861238555231510383339338486150985729701696439908978942594619176995470098816048278339179971367998483395141843366571827996246689735513039454587230519904403119299707673397101626055316482089334408532489928504985278302024963380032125303648806998732683347475034343692501523423681970783001726664291954679723358531445497804810371690835291315284984435039597188539275891502971330921677672964181730921736067359841259117246037809011974322680967133303197914875992060831180353190344678584343994445416409941143105975223961599411032918599197406749141969175578614265735475302760858580768656401406402120768860642708807587630552409223564279773899338238415025456985031868364983811546123658546479656843412242817994628293476995133264773433790174727792243478628313832425157658603627392096361474416850545656690780743014830392086149346182907886523878034989232171721290433127996654434666579919053894362366424947713930413965320510468824254176271559373955359141543599491105254711989860487941584125235348989346445359257011761248794045280066648717580963606124603271595853997385161158428021731518782820317448505636379982593272696996155139751466163105684731615067467811130266150810004899667684333151132931510561815548713540916820085891484929041831411859680123802146530450180812670214224596862870258984460533181997542184812599674333593331755949229186086293646970057953229930676270474435831108973300866278228368726063478438270221768037757528531454483144326005415949250256415647938170824192284962585108931407179899866308523648548513186072096786590329430581471638305793916809791070684546917763002655792327970782528712077805561346406974428260446144464743102464685061784395709291491875090530944128907701063483354217607753294822315895005475202598589668066587764642100546239024131214942076716130646121846365831370593101227469406287631476520443003318938461590680899420313647273499693921678978062188615302310918902251293928805520806493345698119713766520978485254979158663978550532756280537392551935877167347580542260417192271379836890150406877645782196214034371505490281559385971852236058169146397304776528971179722402573702969949975771590504906191384360554574911397287072225067981840032247514852776387857777247888813252795251751661048156770953413239234989322147460447184238285429482178742271991900157484449303474578591424339564693968867433214412050415049975580565710718002759921003867233590204224407829595467461482941926609091796390627941650243925307710239646256760667989246447186869439335182784867449555129223202364244163392536444058387722698848192495900912015598289880487336186468800864310525673591612459053733583243286125325979618533830124859795386656423472685641383426344548716110499835280767725402002562082928751811968717682606185729699967380439432054719133312153984394213806568790556485958138290539881184515522451959619501550441085202914190034360959401215198732414504877728096758243719124985943778497293403411280134283374703033784478121767379533650483025431175680551389793604594135814688977485998004255854372958911969678957717073956034541928888280152871364290384885179925536361119513553602399985583761300257820434844193559184151078658719526592518932298908674252351170322654940899593558109720807001595418688685125703095993602950878753830094539444930029860752827832275794316041582364336835262237790107944978637113839999492055205946327673376462573276223086188493822597801336174138128035947652440060024295349570832474006911634846268112682815308019176104435729324169122574837312611130752983658542228179316411475774798033945801638476462310533063052410048942937075024441515967004995981270456061218834674801481267070653553903475564996982170217335308960647452688454075831988634725645731565846403071939875958712922278769077071445800092587094090942658249646570003041140934616463524388454570797291683313643103108757252240847909401807979006290362899170609873705712846562514691641946126748098875419256906130776492258858171017623353930369453562826962010800147464843210739198409794436636840689825046219512144514426546576040419201789818872862235211083425666530636936117437624842960409533046763822731169105770245406793711547121443871025592196830239338103130171559153874707824921366957489986241756858395636125320775021406339773070828241197517296351200535161344438692327787844619652789763884964482516955837657451167601782253879963985626144179282054971970427834744065500983864240316267393671971608756392332656168201233779789908142633950785698273235594348410663068636426810924904697419786116668861229944015932978611706061077725932069702513742611920465561625439396360060126517706970310958050564886152513535250785715094481093578198010156524399825979656891055631344582262414224764331313261990074189280010433623262308996246667326534310008555862688987292125244894816886081876096721196191837358135330292447207003599232364631265499220810161748361858414223249548825069377327782461623873854665781697458812143413765815811738578382846338363446042056942217281022067312956816742488620265937686799448027371921190134742382595590474845726762549791077923942301612149572961447921653856555453033418825865540217700522818886350989818160386039376020429528391779525913841636392437577941591503742782839233941180256396534116870669849983023924706903421468203655577892030633105554676685266849646772188987975490311615704067822947673737710190129947596481350186895620821387010486054945418395919797510421883596476142654901858673391742637742135861793913753997294715827796917506280517864348443398992173253405139220071209309550434170029820674636960169962236669123641797528460904384100402237557322586684389188845363168937150639620925908021058900222801682718670194005416144185602310782008643970487058436414725094850133798302289818287801259242964890731142398108231337277407268155423427203058720583514651462467797710955784909260476542022763923257091565021450398558565617150340170172258230669179574309498981873561238968643509921051846705133438300396529275715065616704911460918716569243369513523672045898418495049435853959383077949156177143876954965148638293228581098709858928531367780351474227728062143485591342332353574180450836076374239300875963511297165455344843922649096338772556017401910963864035180045041369132891569951162915174796129686168218141770999910151638413042898729118160270198264714205412162541315521280431731199156758727941086702457149684442448850637055244004801997328869739211123318366922225790756868215181105102417762443187703670139659935772239049881537181001496951863490665317741632010004224690222581810337259472721710070503440440013783484747719750448753680065080373996220079395367542800000698546093762788515854055273881944025114914935049509472038838462485117921835564741741564235011112812248490421629260294534170705628222592664259988477862145696743851946995289116557934520265961894777932094430109059429380506007144782325893627308510462234497078963157010663752438444137037436347405139055719924793186192790280883056067315256643644768504512047393294132448062550698528855636896540280121446192007218146163489060681079418753504715050109404689270084348680787666556798775700905829122292069815602649428730211183474995931694367210735164319777025951624206257959870052645100394224005804825246960508451458830500044791836714893264215631519854018432938297254610494065622835576036610762549759235139983199535973574123444585216964332882088667319479393456181974256550952884362254721281598378987466505267799196609845152904276545252550105845109281758763656447836837071029820527597449446401145876627726596381059710088588896542377587187259093573781383421615652590692509314870836351693093033587686127394422852308280383457294562148391454953556571266695680724099823783068316336429783691164165536182604345253169406185717060747886822040595205413599648984015201662260052397635911740292086255946816785819206547854573966829817539884548223453492862268101411718113260081368666774699879993149439190111289777854501123405329278988180418880188335828640963262692483493822370514326068115460052744131147969680338453260058156439418517293705669502619997132907360481170347852357323885381269883284126146512762600560055489300938016494556996965403444939458373348278291858009063283652080572133942346279501177739944822694203752923787707671483756412288141777283068530583772218376808242187408893308639448026272222193359552431044893597987952299318339620583830841000670766948244891424002045004475519045307506379502797971001983816491851715911941914995851763279395071908023258624368670004224359364656185788321496316006783208839115679329614738706888309323109333249695276156813891888402181802743919839332554830454272656347425068303670673516931457016238955843696784664721082201951116933198790529931850581249556293105061705475288484197947637224119215443515858041991808163685936084513814086397097364581965504175052453919250044218186348234405534450358918263259224993011901879852423450443432070823806476910721530349624830423307807148505316183326171389145136156299951615249277883998617416369432624396044392753809649156616403555745664059226359364828509803239698130438489131072128462396347593700707555982161507418645678659538596063055199315588055387116438244222169998453359308520883354317826291785911475475190148631394506661455414285118004413790479729977891311206684231820561902817611317609328364979353114571398122545531136452614269394806169386625753331941914121170231668207655502498477429817394904919643883696266879664636205455409143248048056228455671394184629153875544236566327165280681799897152004915582430568688542707649248983579476440173605919991222707883173132672441981222697269769605356562657234033395347920604733265329548580222850310338083640829381075643294846655571643907248034296353165468222940067539840844686101037592939955851720261955520203755674280817557034103760620871459608215779703149184071858262847317834666838489109123383121344786526982382000775844396669761688347438760479430468605688370888973526784576515197360211168473797563123026744410265551302405737273810802666460919270446582441658707685041682392432647905319259145462343683307205452024792866838177349387047109412328785740456102285294650540462791480343706888413176047516711740103006484613818450890852131396182798450877265558456433039986931493799026093106103932932804586707368505510546941383443687191732900817101070731712226356573223826643701057247329478935708041755680414016472304990259481253265602717461869600080803202091475390284631807894367119478714025277330879182268043686167804296074244729540580853076561150132008779487279318876483322383201288870437769426328318529611197546798835940300227192055295432316448653941970802281088521715072588720465004112251880371754574399737892171686666573941718742324739447445713961171172178532416205778960263224900159069831217615428768000169226220139151883023259176609868725837907693709364008218852213355339766712639550915091993189835975557279207040050548900492486579237679818279019878231892113851713485828137110393901919227600475337867870748279363001307249616362753321040785992198151561586569953901492527907085028402836033816752516951605066403602233354464734101060243385407905872384326778341398574118829746738834862897499293826349384239584737847615791105814551189607265774812426920938650568523385701788023344420418212324809138701961931211939218110854011121216986040018780123035460330168445557996900887028184979973373237441049316387390502816463447276725941356971556100960206942072125985401319909950854650931676612910143839489496899334877677186492569314017083767198309238464639141005551537244390976784760099967227801112340854983786237494882161726637477542492060887633030085946000532769817460832617204922841436456272453109915116730546851908051468427811986324933729502724119118650922586695829984216663985942240992178910670156660217760865259578589560424661109583513185343741815361993456400785138674318317125003396554312091187581393864445591073546721064530237448722968073296234383402582622916575651376236254562550037589135893150084007953900998986014173777011232429982942481468816461241795096175577106012745357011695844363976769698609327836055901414557326287821201811907582741042320447471877187282929764438470993412772448075848743217837725579395088540848714826788121483732178824996579276088920365125898353396299790002289926505735791319142980844725437338154855505570272191315389052608663616640575401573583453961758009144936497724798895582939085713991375132285066233602181244932405501752557174040462220597249165123273429115309578039024964435492856718552474887086322172281289389480346833769950227498721802364552398691839105713465647028514542522546771276559420144402112632998526525217984699100571389340227435062706294752410496093468867050817556556882615539425936885712225065836460701969550684099110475212809528402654532476442115583927461993314864455681723374590519894127462754119788835967059912292757847513078001284705309105543027031534902091440478850633063307810694051262468727727077497032984857371291301415210210244662120964993602403138790151502134199141522835000447836530777272196336549455634448511950871423937636544035913147540964362225797571413106000479691302384516590232305517085595059415918571176746922332530623318608173588295296337965164772516906160777138902929083724467999936843114063092462380826244075571251594501069473445832222112197495258087820465611979739510927607296054423305124600768208461713969792129558263925638277559119526512962353060209059614954552449188492228209517569955928183990782616054357370806721264213408998736349771521935788030724241403534911584333711524721493678972894345923360478349990231404993284804499974789487258420296932843800657071341925320931992702909760158315135523533953537325130721479251365572277861760557773015803009754534472423275849702586963852814518343011790454727338695191135465132695744123114783584901568716749994229691703955385998887931975694928079983995029100740279463970442600183688674483669990854309601856363398575581731488331794890385666484984402388641872714348442046925716295356025230721672631058784046924117334921051157168215520668655462022369285374384317918129621347197822283486028961956022235493624214904485250305773373356345642478429163265202469891209470474685744098118258208346230685073644662040862577974486777911103559008901403182126083010835997004675424725955458828877682160545635367731586486917173128810313582957815328994321646193747614715902700785100133029750812076924186845693453454776063134135165005464407689895394223156936412733230001466313294651335348163164431463009336098673513970522050250706251993584679639950304919766849862822944001265384040340784370341546739388489311557904896797391065305248611843123801656112926776055767729428994905040942805363363501164566958793809707813965847714964117721957694954019908152869778818039979263110016185505220306521516364525919840736260030370854721129800636518460886642122967266876191412209941621841013272750727822345427647412357351238873038228996039112093433127349953650309463642638313017258056577658941008319975260762800145051120713238079702310134513046004821104147656140375466671824944655994093303860391104131140939751121445756974161455206933293901053980064142296638311848270064089310998738724177555757627734388793122718066649002748825095080489130216953485919402908149973159286605374806112429560390950289852977894775554386004335303581842776646285175641858751125966380768743867060488992574379355313620825335130953078127017762688043442278283021214191317696614311679748573838389962408647392102444224265272832097388583684687020746955499964086489214303697025566462995403743476968498710180747439892623695868203300745066221887221235618627065365099232645886743256906082186800918356653890427418381917091693777540723317818937788285939174234487715158812043370971206308921272512066717774036016939312531542766378310239174531963844896884323326106049405286577864706893088506175199128852760985025300493724136726533982127958666657938180168962201936029208276573134691552119112546708896080920307949599005441606932132408800497207328106972963139353678099363156248052365972922305754099676542815357269501392450316737339375641478377048076156517999290870622735429672117244617395524109543632698874321278772452494288138308243536168817820400747752644843553186791715671091127620148738108942013108975947991625099107637915390093682327682516174766318935143208900935840742241612290435542457319235562083929079379127601190635750614426033216883916889131076511346471033889559282335841557378148880347428464016888929894920401187431502017320195085816183949083112633936083230989837365021196222926106238438143073507454630186217004559321172391783515700094017279044243695650422005762276470663235305760170896050815504704467860956347706744317403975124386135930899260143929144291692490090301050335699958838551903375257193400331853353999532897571298099645199010799698849851974269575863455384492628165533793491784944605387607212233872427675878539575087390784997253573827948289986084401783102316452009265053056241416754881272189025065045677280479838845608882540708963395151445933144180088083688105052082869283575642411039600463995231521648480723139663903480269727644063701103545324438642957826087792663383582883754474701078459221544593663809807853671150585409937985774187344409605792850440796704772942531496188891278351110637590899541510815562439098767599300480702634202688897061015753531246170825315268428562221579155849472161779561972185370737843962159409109081912910841070759325435842346706358467909079854473018341218225280350749284357592578461208593745482483183449152989551319739364253567270234015847907223256768973201732114639278971941667707433470012968314496243996240623811471341598751749682918874224429785900190360584819975609309246302061716567832505032438487389232972826907421185119106140731039470194529416066227501438611174355198863525949858046087683818658695286078276460478420479874190801918252490345692123717869204924664680091140692563499011778447741311655479148694858302500674815330232159184876242602274356366414925514278727887243173232993830664312874681331497436396808878749233553555471386991727522258159076903698757665471164867201939781129635987468176295353515555197421567508981549271951573799205264676039255913113866514879098317036267266341323376448660828196406333864447145745453423706319926766724246452291037861354684902857829437389961049580388440246315878739838083750391804190103877687813471417852080259592440894860656546587033988521963580044962870498249842894990762803655163447585612227950858680276450384184659272391799104997097414065403377874908993465534977761480941242915480971539414296817474289261718234281185078621936111746608358177706839389709713464939923218242761635353877048357298458315120596686470602025837585366130128338290104084327841821209011866394365849278436253375610569052717927317928959845231378739080828233921030872523883782721009362936964233080997332476390235110902666117828480593625915256181739114089340595451153014018132577692450665504437163916110351210795143972721639655898527418928342599388740414671141838723652108780422249472244288592748118699061534278974369062472207842250948612088918537236458324520866525059866548081986852826621168234250369725756995361971017723141608304768599945052685423536600651063706979724666192743000705803032020165075812163272311505711071593595108480768511349163210307089498049182707158197428549486614162867167014121630804983649419354220946420234882388176938653000455061969924327864353766502697597216439410684028239539260290405715055884812516286492018317534853755175801209425118588220449543524273075875230459934688819067001932767914681445649439151200201767445324292166965385217560932845524116188705223804906324880506414810616510928411458998650597559364089880062189739194238016900022273955042510780246387427254151220646115412056134224847386039473105949822510165592916289386695980145986118926028732417761900186053688062197163631964662926020198009439060606646129810741599928614843400867816527300844413542699578365497532202170102039283016558092214406430460063313077682876239432219585194844045156933423589328603630241221016926821232593969688702945510372290278109211260972975823638286784906409324358729169345855748070548209531515742490838375385940715512175484873948037201522055549600607481171444560365143592282231125278384618856574993514066124236442554514621157868420250624335872922429402542699458404538128192788683508198435192443577447158997865684731621660961700301043691979351383604818123954816565503685216971081962515819163117273833377221879498358421179760363101386162432859919579919797293730648786658701407404847835419695169657778278192087413045613642793307411326942967215934931729169980521918343768652488313206745074500220069428535138536589335301366485001314038202560106351820826554918434357078412560127243900654729498554512392305123946334684610038847136686428571611538532994108246701848602732577694156125159103768238946750841444886759092680829082135503756677100955497755495871995324648328748809943316502722011749454829855557014622918554142627000171524242988750351231335330606774895886626868423354279378583700963942585808810893158738993509881076733911201751219530466934805322356550653576981980393479009057186318964267288244547332056352119637023934996540995484504944225486444179120770033259396303358509279659859639898110782225973684887175539475114271442169342141767523374254316671954041213248202504495912594924197556218616213265264385416835467787700793790924452952562866382944332227750488996622356302993327206730294797575967182172227718701624106695112902867484392304337892227504164191357950961454439895530952721068352494345752481691223537378410862026458736689520385559149373538460476709872714819472613763089944553511548442302696602653401690191125226620859603884642648842615554638982364027951641610730985374810727221854743428816298291031379526960880861241967619593464756882634114277391798638026650403000342480524458981464954019124130440499576365095802809180092687856312554738156456219141068906868350473771377239061953938721203068095686940853464076407596532188138412577474416747748463677890652420722869550055830329575476607203583557855570637312205989778471307920273135791420979721182579221843245695033358337231557567080880079701888173814957252181903015518602325659458251648588846672997583758628891880261076508413873966317348115341886778674094139505743909781134803359528332486021896743390735448539338945737561846835476574676854731302710029536951923049600677717389567031388529914133513137391612967225469339357459982805291732991860625125849894013449247963559262986586955755091413776536438096650232862660376766110588095894737351753160628765446983058227395494937304524036801367630922156446168514490359282105742640704900339370696084349191903335961574105918539861098385578729041055981344356251188913416596823809681400265283936565949898851154363884368603664179060047642748801168417384505538649833027599332493818331715558651684836344608488121490313425367197452971582150626163559576983538131103787455973906786430615525720495199593322896593316435213142527396547559963488815062833882582409583999680082932476054733667425962282585253868853772766147382475863283025630887267423927865194858958418580276884096623433738833259378374964148333403816226321776290243625881356272524161901930374130450289241297534601540889703656208831305225994529698156589473792710121891163246945717240835272474815977002357328779468618112362666269871696960664999104173462337915373169620009868887804275318119299326563801099201063132065886077218138777433441972416371529776697372919759642304766388197665387439557671799007113319194469062751805967438354456465266783317703037113441562054015009096405320133740915144516284334908713311884116731246257178207575474782230005299759871098506625253064394295363850047699448157512528208189869266402218156511084227242063131859644226716730037627703835466858269944713859892708890886021265547253137598902033591499459338937508443032072475751015887141342012866982117035465311335524169880995553283503277596099660190619117928539985116315308863129696028449857385096858816959788498983708254998617785710738074940312692230446140775500616053144384483894727866034385518390931416801619708526832731754196059656174267863588793440317865354099103617542556727594890431444457172774803100348786779467118922257219354563049706628324945361031190744729595128813600815383083681828697550235238660112264273821831633266352235687642724831483675089674259809488049692632646242545564199032425456335814506365880506467668342049078833722457821918618439924022068259846753241029304228529917150120715248252909539029188623375834956351565916095998995404420587861318530474462894817578521092795268052958216970091095287255388121901155713376355845033386049841786874579131884350403848429689051394772830340334627336329314766103514304473568872238680636667691199842876536157424946427421649652183819999135113815421863845356156297593521403166496502382287385761652044127026267559687512617014807419185448573295508589035484587277224042887306385576926404635942949573831694070125215657905029778075597242667167412352470995481780044785271381058359210919768361016823752389797061417623541784813230435223479008961673426967267103162096892057702199908023527348830631816487486996814428878192923163460433752811481876771827192830562187937373023355397852810689359900400175677602619457507488003544085378743732001792576180896306120387720398025577032307601239076788668345262614580668429240554362606798715366596336390304064699448541669504003691296863382733981323817392865514268120259310099247831908137177321743295835228835509201760284186336503776611433820131507735057820740677951340644222102008597420314599061661927715261646236353831099658806674425730922968452650479387465052080738238481555522060349461071409905003297220629987192485315949497560856409298110371927025242676740426733946801810989644117744172646027745713425025125676334054168478198013169092595881926050011138178943384146129836387943305320870094970262876608540952269058384528466721449766514680157337260435957889863303021335214473193192639635475512930273320161461571721770716624990797792481399606969677307049406483545020201939058976901426653748484581719959898357128443629315048719305400141008423989461898763692747761825689177342998040327068199148415857293835507725642920812901738067186970942794568566273580668999080078812652079148532231106303470382834081795753092113125316434658266206085023348055183046260838107355679909180699126131182440984848517822207566059207939479059385104657932608276993807425627603498023800365630238965430117227254190796757557709198259152985224243911245281723459562075636631579344821474488669814376516164093890719084282514763087605289576764779753137840157072238357712718347361125868778601412294799436772478264599702120745114775082539309142252382298626561751506656479803432126454455289884073610355141307743694054842058956304146622782314615957536463328115938067108017815125487224761798306712904796829801171322108923737006656374725628180171183981993487164266970624224592897170937079306649505167942194565269353520808031471018042033761039457787435254069387909712129576895225897924630396796931950395070739148212296213830272512851624602404463560229547423506812381562384089464285716409944715781250332766441153476006905759788447775481639349976966298509419486533679268808609566396745409918089900605680384721823176074303911063184558526701416101826197738161456175035983971048721489721439509222025054025499555998712231010229568336160331173966916486395491895106801246323190786197850497221891625000862576052879634078509479644748212783140642132041745900687465053715092653528623164893070782963765181542322922393209073951132917150467622473443611206441691245005084488108445605778571258431620889090749028884233788877273286178446222064253400813003661709426361187595921878902894335414373003323896461345715346172847923628363045336627436458912052046344996667233174949285664898399855873673612878527611520112444565650831511854568078143252913134463873442614520464638755741349217026056892355644810076593976686454985827398585997257177028612445789285291542250149701624715921789376032112353130193065377302207151219912022598695777569651991490831117167924295491812759829252938969512999440486675257869394185037849314554450371088252300187555948028335950281891803009414181391092242493716549117109965800635140098245305491912275638314839273871041333467558264108692287471461425369051549143580341714980757773029286503468082792058394313914521665508438496555885562457816419977903142192514276170827976481565948650558779536859838617139596753813088744824142462900718127932461330250166321758242114862975008097129687983392155230266433509204124379057724234233218330088991649348894375346075641199228480506420812991494560298683306585602503223347028637097877731936566967922441091456311108287653386011145973452592109439887277603809375450512815654405072811891809555639725562673140258923181448690815967517394313291664237412580474644523734092538881492934555934716449025824686918374540663051101060874970170975450247611343331424601366777093855754655560337738217868982154316925491668648417594558611448472223596112891611546320439722549440568905971096701992833312814993248235503388647395272768522654208780648017907564179859265267540673223082937832912069466105804576967443814822966426733834297888772129890405942827133206375125167151678449980264751465728345433822813709897939355098711322804579118584359995557985074968094395424809395935816028239651855225209674823610091662082955650914614982559756226668077803502933550612559025823073859059804684638660779914114130379660563309657472701383752312114730479184129663017720043250186428583440668573291773296567451417516225336107460952482753721794896017944018603627432508585151348545836094400237875539861035366805900201963438818721127104176921749242079658064743834605645305306643105423721091838560653645495588534526937630972098758257062161885290010737052678466170621395819044592800684940891754610818141832846022946191335156821229245508458610944677219791806442447976856588735027418526016004307264760294914610951227712159439560971621851190796581244540513264696672452804267481443031401131758117480089990736561827299853009346608722060237512728910960400128661978391482653491962574502352604876186883117418566562382497592890817044083258662347992052134211827095634524472097830295373812688524026171834506679990226622880493303672456556208481445123123109025865279403396044518075841519436800069112077111340470169915089302877292569052105711118431147517291546079732180986198980328180785170471047742798360924573790819941855351342093292834650101499723411974791040935439673303662950257249749735851019163286490260170786455602265476477041252040767383512298194604853449106563415726653248902930092315929771869872567970908602194546253531549460575425713521709116850690588343820236577050141306704091223246519993758275384369517988590136040664010936198829466256134072489359551233179707689334379698054813242361714347652243637209043997709128380766973641557902728015058151073921759451867886909127767195742506077406671968065551130275724800174274970682208708243421729309012731923280178970793203278027892430133014677557437855231184789973182789239901316500188296715090730708044958854843116117779300686786612077482923801020355713011950748497008565692084889146288714783114354835058273094406895414594407587923472344952342160656072517177425024099895725437491405038352326038548394339485922051791229604089202572643423931743895839685470822344332524614478343337086212788349086102868164476769921612538122809106854439939587627483208482544467058876515993245280033360498690662278905640932271440249704625601261052279986992032300234459629564116237609483824835850909603722481629562223346306903352998059482686561519877320648581419077961180132231537805682735202256608812200516456874434583146183508857443155197890904705721532140473414553645245403239817115046660777522897787616437499006382423166624540664689509730453994455127897009155938162632548266186555310650509951691335390846779599997973936705142485763442638433836244230945409237106079178749280982180538541871724094271795856959650609265077611331699884331900076129673367709616826930225719073292845552350865193536256220494374143332207203334834316767891794488042467319702291347725530553172400684080919297984032052877610164800249440028919184351864551709413407124597893480345864196420505797315275090891024696933526631164827709818341892978485146005757925945087297155097979771488745300623405733734548564104679044987488365406379275681103824956543172162564897107950244500229076535742518052563172130697385384449595670484149495849918539545297732454955591159362857044939948682898945083901312696632618632182005871022705272537450488357892094082581402835486017017239448376533456002832783236887365244286860267960360178219107577239392057192870671441721763730233214438742490369067459743726989833837988061660551301603434773951159897302282979822506318240809173308182634581367789539145222026468821966209575888912548569559100257928353269587311438555928965704540540349734252276049347724512003953783211198536766829811956707253152599927056407153583180267298426070579256578577854871338876765792169799132681046295960527670059649932662235885522607718167782277080997287664403507884531347391194876948880850307117953536695052192732833638520657159940119556161687087529166450038567897267261881990892766212044662467669232179685893943935154983624476910615228340980986700523624170762867283427115505210251955543167029013842365338167581000070041124930666715585228338278882079322078568284148055092688973476656862022147540195620911741657476836139660009199142658004663287842626078823947212622271999635706447496523830305353655237319843293447901914072136891203892024974586489740962454296660059204094505295563656125811565464582496516094188233459312558234041372207732299467508813893304713672825220724745460685667325720706583288573289348976572016803877994842480737441526240189945646884447121395799990182961509597801072113816450582449043691711900753896307380062587449776725900058578885858971124114524062439530118920902649820920518950327397925717593084527914632659954913902789159937380369183608600768272811027355086973992674422265162678697370438639519379959459223357881501883883162962293907831164388417126103311217544149386293363622090501973000868460491794494766291609000570406111294277839966558495736740337570764307857310991319989911322229464688170877811896252306706470083525862149304974219063042421629361996755289169060449087294848367552502894858897676453974906527339329933403513103395807351305117961650567112148797748219556131944758592312717409709293560157286134669614431706873301589557243260281074189740324604016177077408855435842826854355908056448097102121871306995962263479657959971817501230384090205433710982705574839604321177268760875068282424872096635314109183322189575928095446045199741354180840698689060383537629827541361440799480223082095037040334962379347205309286084762846343736898360632032311312042261580897978334228996720380467023323188671555465977086792684691152409600627144788863546899522193847236508003899757016054381835763034246956000247648497156077798828524616626113031936083208691889264529438653908268078032726359302724070614441626406453591971650290039474336540496656821878718361264503266811498479375577867743563543003224606511828058001220215627871731482453236238464249982616270910062461732674678511534857042500321953229223391940927855571656857088825635308216846478068886087926788461130817834619213532364501107408037837254590824665743541283704537073700629839904017589947006175231968664392623497140383194825100612201873512583867162176178706314906235021587078464135142533428738289511944929142286494587328553081256878224058600148513532162400955097793003140972249682340548352340936062073770713148515352977305685863543925553980785685333141776984489243737418773393645485458497025666634292886745169365269404444838894159468700084665463593025184162244052376668654842688668109156099599300451127493529422293244692717612273700969412230917133473519292837277106459820326122806486850437925441306701006465387915430044150233517774810234640974455981180919639757139931504305224959175951933682261229994014934392910276351605231212662119378619704933445574557548317416549543532975062048747677600832204226252550574822885257592916646694088738913803347011140161302864639176667015644463049732252551840905435011255209633606209374306004284636221406625347256115861089240737682663522570019476041369958583525555918261528936833861009836480608111371060662891598992440635443203994455872574100707130455657679827691537742219184230883975663656283316516661938143709354034478691943738282442615716334280387459739887014208395689365019746141267250526624315325715501894402521343940479342814974671512520027818537913171402099661919311954213208171414678874066191945924282769952553875498683962582581569693028718965328277055800415877456304136755530040695906455664354317636122720394846060110488256550559018518119181300911679720470356417177003601811386059549614328876626661114642439434098485789569704204577099477011841715892766585697911372622938476250179119299755352954720401886874282440816762120912016061180885907350244125161099279089952904743503136808185103453289853946462283540016285007807984364823604478382732097241039150602449694069102944902673738905448116601727829304446553455803277713332522086891724598105998642588307910113128835697555868235573107888932247293669610818931307561974146289228368032616101318482535965618829404612183408166355121348015117776688696745349001348096020163299546455617039867384774864279398738404679414367487234760735780984317728550529338947378664419814830156016415016506704461498547247644840593743254915572961998810509624552345559556945062348770702918099709858057995572121546670699168710526330459715406286388993799034480388502842479605772241467367122957822008886046417881140914827171446067675902921731205523678456281854928312948921689296567107584385604485174187145070624978974388673435355000073249908936212399291335306828898642595911463094696057511945493678275393151103318532164520428834316544841956574774472208202398921651497189924554985875607569422482890789956844812822932738429416463149555230324671953866198328650439141959159214689586443878389295254728876292514114123737942906394091919021356393588621573625395578172724091636431705482596165688853922374253864397825000143678480814500486088439393661332032691717040257192334314928565728590903663242890250926900972787154730210776767927156696173172816170323313646788631025382628215107481476289093199967589999181831182692416411863758350511141981932252456687836334878095585529716233423412195744928233612407119175250476106958957448804681299554579103783461556775887053282167159840513145556872940772893694843706080168309257722642494729900553461653856374951291506602010599270895675939606256133807899012287943141066024826296073869605728372216909975648803047785089599900989314806061486922259014594499321179545640657172863367319791237748592425623571134138318550857634654496882067069838772935083834009223267265026458975359456582419568161194716731724691614657588246701425795976533424209207472161112683707602490201578504404681303944336242062373449193894909001955092744225436539222747838472833606089934483070380523600627826765792831155360305730857155633600806140255135298392636856069549210098173077017470495056950929214835782678529712689380986352389862355652365101386597249829763470549699927392388522353130072061990264733038160567605039655562778649136613237913758441270822490095354588501209802207637124342701550173001774345987859529189308498703223981037156201070172117865535121197658099190578812936542178140795094372774981665791792071143205750068874255351087403555323896235063135931398480760555135515763360376831369032539799561815665261807616194977869527834459535122770408367478658471058069394000033860605013658108633633430318151274091185159423223930072490590637295529287076753674752331672022152865304625660592415772313119225451119443456044919262054875232345405964984995581084875100537588106270775619618484506275453668867485645588547968425980702787594169589914571651787503827102324549216325611622876235019596418072487099522794539406124303468996475048945824008793544239593979963334776212396949932604391418557219823318197814282156075165577018560058585684505461725219358125274825059167357518578428294030157504410525315998874484826229621884271321588437973503353308191353833767248326449090602216615184485939982773840057571147045881609774723468571450586155849764611162777222320502349808120142087257238306862567084222657650340245082664265759631277421921145354440735678879306949462753400106869990175753358233159369548805684858213407448637532764642221251929402321317233827821676425465542244237813898994948613975240560669041113878480209212473629387697249678696277103645807924795444670056876237016842167921780138105368581214845320308379042162160642161853967590998029536603943814690087814114844280244698438963417127043918344860896885888378811934179753779173877035346184416323277881206731280243795313069246786935017465652366927182870254304262193548319152539921698235315284921352714927318593715038222607151546709573587484783682484546252915048436935840213981238727451769997294089759456479871539545656482934366589248099165389626972327067811574015957242187000095195175693253517521616002415446828553722538094184728899115061512261671006098606631465386474225295881914975505610664092668741795478685477558516679294082878919614124671213898122806756529621705024812129724702556712815071414094042084003218623245947110786246276638648187587714711436154124266656459430228784847656735790891356276396480583526930437209363668161406001225177764236526503980141252487089849094365459450315653462704253358177422815049471598696156248943429545745382906114202253343055922287363481180303762019072567421281113682607758921685967304677155802566562190940018029913565038404199709822927511425199317710619664138523263326995120755381432502278392101182808006315465409724081302279387449048003713300702142517813965280943443380438876120578930378179603561993855426324745373106204825753138997141219825811184568648627510830221547057687763760683737802596155707920063055147897271836806251273094320334939422912103186596372378086986654216479933752976418733964051385465519196741512601667241341131328749731753097429708779618048434132742980982720026329081595715387187897228940390190388740786106053645008389021932367391296658824411325630219830671311498628046945500673694430644842287443084770324682239857985756897922980836931845580779009553772621266634600139889992909062528500613086614938103742695498971921988835632517680760399480435135420544622713065468160131816995696558807411197784042701573150893038771114803665771140833578670916900020958558698150895207146132560970948930842329943632320040714822100107355052167400266597795038385979767717735074255645326426014024850788808158345647576524046543874048821921097972808660229906315356307661999153025391914696481419556624283031322142782882624351413225977210880809188689145363427940619397831837091453283586140214251673843133425042542838659744700611709114866209472026122648002611357498963176402510528393776136540396479977632141378752729010173254203842837589752509592180088718498287841434119747116455864126474510400751888171543002194360458757386900591976417179153733170597994230446067500416803293866528359177164819820417601660515540035296525433130805976193766347847183597258083118496998841565135253055613370682969868947211707712633298472001976933813734920484768683044679337829783193488984109612680907324650620719196429823994960998880815056268223123926659853878470475954592864777897903544368769182234054291444228685871653782955442281396652316841704850657341843174969924853112800151123152594102875380644288474082899920644346187110520374031459398305060449613280774196871593037047504259995506530402133953218577478207466932428287119244943336779038953348017462798837257959145936667401765581662503100471730339849192948234410988147131659023871546081848795911947585445341067503550738956734508026900424538003470545436297996541761185509026742622379255728084137364754014230562663037849289584868112843403007992041044471676172633343665201617591115870468941432548597791997749162637210896006395290239027050082313385534964220212941017598313941928692729156274531280224978515277818178557243188892947791132003603343664500713697286932805032142264977893180337508282763075823495158169210170469168627099853889986308505187794066537747700513004831551141633870103293294198401216131671031516607231074680070710074974561843053012571015982090691532505813786839968098336140327706477873409168132636176007528192804371211914916794831878614711527701258693011144560815024046558478933744414767588493486832112395969116563348156571609087050592996678605396908344608008167084329068540563644184803058601527135589189821172739564462694056059182617556954471511304880951167648079887113965040993745726100942708814453968460720007183754454844542901270079905058266506198443957962493481553427515132987058587729340716824314644691703563692157466995204212102808174720467227179139096880988302831334309050128676292143522319683258517430072870262968790481427909158822593016782531477370468693508862200178506768797877087263378697880755007793996069661658999028145735278356104301852114861373005655264796534203640574525003032058231635315116766427230573725673769047234080153631461430321663582131859207373814286252140383961431469069614672400267422734073827517944085250396534991853715680677893479838662449006437441595315542144077214340590264615363805842098349149152577285051888018793178905211319674655337782133661563451138842132739670203928027937251134233581408283904220839270201826852943216333373414262715964022867840877914596993050791947670945167793198623515948491336524889181910358538891693239849675075082416165871381435837318777488052014506486127363361307409373458173463453829396956166153579265568463294158058364213065012935444565020389128818278103037756559107846128700596343272420900047666762434213224181099085440360315402365067646677936213420935430727906567444779671435022490917337310470917594894374980190703030090884753634545966007164503245719144960820876823639452009293082835984271838386978876641273408085789191114582219915534868363815845579840149069686003459323117551665310119402554771431774530546137538244527203446976151289982809580438621179281047846317871188070026225946583492940621734515775268285419046605615336405015393083259691844264200214047026436330716412479325656653547643519159965873883584274456739163920213816488321021379428849901253261989285233602135734095844222871779683337548920372531327531942072962094221926447153765847892115956537380639997007839281534982620823499608505373303443036103901987411906241695649570048623792909447771363361908769026077043142084761529162904685952762779482423627706981456675244364386460743091651949582190149769417703377696308994861968212071724551357936405666338078709089538767996461690369364238867868444266501415397369174730241373784270846944635185920481186072676509729150386552921465753910365104161463569230321025721420775905323222243079027833388954021407155010678154046789336312577430675166782209105805548760970801938809232353119540857269985812019041015356204779551698409956175023148550819042203106638751023019920340543422264736841572062207946441399866343436406639890512590603124357324659671753038604667072620149872581446325119031141511107782936056616861805182229175689611106825619267000062844609682891277553658803949681635268608861566962643063838815283370749350250916905119719166934662779225589383207948728930506075603885162181417977807001523023476519303884810947480027146600133971345427541514965040889334580891858171530733107139123480786519750865981931065752453933500934310514833163616285020410764493267881776629510366956231273794931885963202872309653392672220022669764519641018202446315822906179326324389027138051552262118160003244240978995798635640535620936002943241227398580579248330747604262587952510897109605603915856501087339434757391949140366913124126510125351082809617845592003123359644289191733733799838100894862782272295203030173414459109947889348109964550200757563489157685188244594560926569498618560328667035166076258463401587553999681153760368647076005026147622183065872860087752489643525041033385860483727900092708639573533949937378170205325570582653729490587580770264707944182580211832199556406942835765927379825479948696013948171109309669901566147676404809899074583702274917688369906868640826902647338691186568401476690372537298015279766080291730980777422641581472701291195189580115863502698932487152526916608201875779966570057488130085250180323071567641183486736295745467579850053088357970664725517303236679200402302844765130551484295367426633356312798727991821100749539140892453387836384301790417790474638392910235863417234276322116240814698222200200256014677440365305631471179439476742941754638566101306409877302263077074835009186259013084691106887047960984567427873829289768214485433411444530677710061120162585786859417627429427488965877898516216488750260673219936170474110302994494377716467935617079490287327395243735364024047399424755665892565020290036688248974953852168254124954723366376202918044116373440576439258346451206474056390340890543800552248533298221009608603134575613230283697804895408860646622474307422090167523295588960935182411457071853726684050605190582701361862533541961971180258963273059794869764626484068957832431936120803472802387048657794818322038398332169350401183490308246429648011249094721058062501446352667520284301477304334924221392041885482159662299042840097439372132193754062969827996587355508116654501589773205462507964314745531346334663385748830397748262011147119018757064581331849658460001790133159503493941330077753848836365070969009981132875788748139778736006998536075239559903549123726163061054733012408285401450262219481431732328664109886373155165268896106418966857033922804806034031110491048831296674620414601227688525010507699907229060144244453046041289166415689356755671500826855192198093598487945945292198378573467436016718183332125589610151927638513184440450371916531435978987675294020545251356155024188339082745348568344680418067499307871980558173740415249769444263527485795747177465261641287794544059977958496795354606308252594054530284843330477313482452833495071950916369763627281716332064351745819439834466235117032044736049735770107557869711110626186111782701109006208642085528663979580592379366081710563946989239904491588212419594499657432143955861879999454369542483343667786879303739057526407176379826432622579679756876909511520092268645182985632401931193222664798674164178640135806545434724328026244568414321098468317429707805965535570363292123748824881353229204738079836203097803638522448080473177725155994074834428945122239071084942122592957542861664007539550192863615458913081827764649846836517847580171721392793332930411712727678220587561527540986209506453735456626465763616726781479441687002644990386236147093516626628994761797881166455397309018980627319451670934393869762442749181616763191995517036707505575392978757528398572170588428731336421018852756904133208525388739505384433790437043399664261723075985139715994793481790818963205247487389520503855261011372351646386716944296132112306020569928106062227222421703695030890826229731118680175529078760031052037649291782076790141426831764258361529782718300486515158031210810036728414146493469592422699135110333256256971594185874838449746121819815082184797950896284291638057242129730634410034372175408060972458147048986587362841440470559315521036318317879348065954880852487380080078987246074757571625797411479972690705961033385412039957203325087128423966640724713192180690119921901561583295263124734268822785025189295953885738880714020994823346637606111095251634594738296316579876153477303741234585532890427219302866136602909880458871859564513407681707729767647973236707344988181198033231425859323857398238179085087366167003430457375519955873947901196414747483651744949063210217716471149991043888679381398955872126258512602880067547638149931552472279055251187253005536897942507044263500174735357609479995360044962286228527153664828764243291576093884337344282038958277602776324429146002614353778488544860436056822724034987902799923168162691415290227463768895077933813640011345188247374514286399676196372791125271613385905374719642541790309329294164362878223803939977225396751160434319459460463913136532820281509555370813974303996243748972784631279177885651979550041012326424314398748479502292565715427215284289483326548511594890929479911385439186440901934488227102602248459225547380071356424016518969679410294972013829456144809607386408389876190416930200631117282428345546181889954288821838744904093123344428922333691870977359981816740534487584044348828805482377052902072943016134495249771226012462343537014880138169461451099176960711358918285810546436018687690463459147520005872484382968763868546945224664067327452861463811742804644497128044558700749343487647639063816349072019000434063185840498396480808891117009854370591584670122890780132090750379812583076698715355990616650269027514311167583376768003948898331406594587478397934316462358955282266052532612291527883244658326996868864169110518077961443954957621159011568595754768783543166581190194204404032344192620465388169203194405171619527281193033661769302484922595664212016656601570612305734371517269028721286950311181424517754934002160941282872313349090666964440842281856297979614277691816499985473775529338558913923709662828373269302728781870786681637993677116280032672571203393671578284442336147590472040913063958601489299674609996873815693241921690706844826549975242171192918718035561136888372560704797734979248405265503649705386472876577152133365648965568226078810337708643276696157453295344951190309613497233275925691463623685860769351611373894233676220003165131929776942843056887575933645083517628761784154773547968348897278817075683134692289622630326799640333907621775117840992914198743307315047269312701021340852010901705889631692980595923213721762241084376590554256919279798330166778342729767543914892792772891457396323609634464202033134866329753174379817160867938083640090274066455855139876163297424030687342001413527430257851806822734248374552224685445111281923329692823364256290098031855924069897733154541788415138250679122965909838379611574073475806708110109674727142334810795708329141351014642749913501276100318349428076157672222483589974395240116500287628121404468657044077684864897430662497366911518509635508508643800209993607382861174361722530856726029980148677362567952719324732309799142486446233593411132776023442877465486900636407458602586218259005762574315319539681311735315544902863337781666754330724349433011533903645802146615961036279901455344107644983690212079114950122146546116867751428761897329413060434722795770763209043986990464064510880922529570825871966750067701750730182761147018218643183300364363511988190416258181680753153873458294838669201618671002658533761420587395511642794821754026219903197568594261767728681532706811889039802350289019867437126448218961220594450407019053916138229442939407371922086162650960657039024789530301139649342096959674494707395003966363833113017252306311232214269410577950317056100837475451698496374661433462833754925103822590968017185793358790602566769134536415087127761456397071354894434741146490761431561147173366169979403636640823922787549970650483996939464480846208994807245601306449045564760573863391751231825488918344278728137043756066107347163069173620888659206506404393482228331021710820987670275750389847067710856095743572522664334816649720905089917379448401147342133890668323645030227069178561731772490449053391939537524263330042191043865782281612366014525686080934324034329632980601185389535083118119951449244472335391062729575476779802013713384785323921940489313503664885567593703418028052227197790467416460136336990552410015534684674759437685819555750103237851180375714157706090730828451040810592951235286207334853560404299078212913839579803564321668907562318416027677673441175222697560835522497209083728655285516646872667073390722933224437183166756102025807889972344150680946479179507952373320677857468928934498777594268220206267401513800291520450846264044441155490197730380174956913579968161874275863459375844260421242606188104445966825672728939090911811286903890247521516998624768185538071348474366387989844735649895122254589522736126747731340359237529578669571812843436018279222509382194247995351538905020805616792921545368744055537224316786051917665114488496033199671827383103605492394276279458973597780202350505250010554094367173355415591095323190103616200817523857812649475094384544947169257099387129363115912339315905765889075988628825593335159623490557824483928719050829757242706684672628175401584741594183782393259839195026252498027657017865234032069245896189577431345498316642162942179523010433751595054088548396547428547043626653507455012293402058888464313775013968107369375205582749181368904637270413054205808674131621738043883767029242020957130974974837840124327131142558638937264402203759137219397492034042641976233574109012339551873450531250565829763520547955974469528045359018853061286781076991922017273221542333639597023054773107559433344382444636543612115417861782546707433691179161416104924665587520157760047918618159912114975234962343142399266753395470866524203888873821371142489254262416718016210799670372468474253270430606186864852518391242303729451630407818976442223845731979661624166870845164938425578958744752302324092318388728002795245254606322116950946626664976687123380054111637905163642049745108965657318283214147101605210163811803116768297206854376003879446141075838139225399351216508766985663513073419734979297437106697281138277472342262378197012501830075641075864368406960942587672434725796799474860895006830885302892935373857209098291940913478697440063779706735699022963975781420536823684955297761828496758629738141481036264222305232225093886222024487878948705727100123280239669665219606975660754366075706405061140716768836170133797779142370511147961395318856413793601350605821372542873448273350527294215159493159926870169351261113406962898423318585271969627232551182063144082996740146516477874360655491836059982654812521475509023163517577565459008371906182008074490508780647618438101946944682085802642815316293702065324950731657733691552763827117954555358302023222210885866112535405024883063565422789139640322231981653395451303444059939873517337874367383979138262759369345978765466554558548601828549739483571733640099812908426003747972990153654290963513227105159584861073180415367509755582654414617281910940070581694199750562968636983261568925412858428207704661298372507872190740787711469507864854809205897676303942504493237086892952896661375000487542020900028517982126058992453505261242919904968331950350411268904550869989524950451867716668860764779421111832084458951249960138740845794115645775359996661007370861034194508552754510320212915306919721426829468224782463735041342724105236309737271632981781224011324153244476144380782586994004757442986896543101032924453732869916837021012101953081012500474803467900116837298353184661703633610446558077570415919945291920427435715201442518867312447614350053916052377527715660820415824365520588765949749780129190387776758029802816880028075356510679647637174770669145891787222453258746865090350997635100059334510834245579096071480300437402288894752296799246321087751918550849965219453019538838508769436694596471504980702361744063637484292370489540554769938430965068000683911570021985527119351839921765047484588397503145280631156867340060274225048210033665915649849925470168734602956259413833135346473244035935771200357755158581589756560891926313169487470293808270439981524182062597338255834736175844038405325192428322984959240808810647079049275726813100879302687203576147653585760847621398894460598520526665505273493962132521745980243643095656151690004278981307219635788464608870789221176827171254848003491139137901220829953424588250879931118996036209651714674251768394607479634410421814284587149373127276293045926112881292369261603666818926616247786451040284817532502611126230361833439601807067437257007574104948164382457373536717621133840868469199222101818339826121362677247741834885702996183748618087986634684973257849505842494066362340216764010522911777635104544008793296355362125417573771200019321161293433067029364795756730292152040887489584742622914880779209342146822697690996977559710727963981294642846114795388764292064825091897269947242375212068841058311559180853288116710959306662123950259034384986304917966266660787715468509332980723588665522183599917416398883923872515187125448012861772750210363007705698331628576306480214245924912643802846500268970998972174223186125821207156406773225507197407017813461032912731346647089198248667309452217228738101434589368937167594164371939052296487758474489961999311862597601406091469210927638086519490566431439748477940258830730188062250543877720553620901464546049037758335548585439824901424902375427103623406542407160956287816573081861281876724998553592252339098117849816133477017259100402596853775121621015667802950297566479083157668281403814701902446177397656653267528766687873865050061236452326633779686112592538575457518175464695142229798013570143352461123927222717415283578685667750690961119113161109332110672220731690077907709672272211225529762223245403232231215856567755700525097074987581226416792872074078111718805594944199664630762096225614071145967070226649679592979471985537100537205655465731744887202943712942559883073051482009709772971197477551811478759426959811682948701414567564177524374858837094870275306739110968083226874090048295260255881421396928161604492851779496811923032049139394823783871778393140543371021917745261371691022922732029262492771652442086338676545517743725451944069777029884245189912356146709968849034727429725729923686223204431174683984948068870517972916544158254781855037517901407062829598126797369968633142798463020834407811309516755187510713201995412534813033286949728975901539573470447415621298451741011406713106774191431320475713067279887881619736920485017031790462416435331146627346648971631051168114313956916023591158117338170006814901434106061701930718071787512066149200383142140069670337373723839753742338715730791097651515143219959708909366599417597077208512066620881848866620595947738591569098777201206777331798432847773121492954394170379765163628011239352353525959751324095646134370552885807574046023025973708405474771062999828442453985680057972000850702168674389274840054914383408582980423535176129391888685005246653913424259728711393337526882765731851959809956244932498179534783037080194711232406494285474080493607541789149348656784913953047088792950709866956786646558717777325060414126943147915351979593226030519911701458109344537091900550034408294043750235565877598072800097906037430323051525481913855079375312631791904092338457672622975001286691296893970929794806525517528941602410753076710751320154673756186568566908920232808506193085033565607814892290769005997054228743948408553613135164604774340367207250552059891636424828536042283490111185728522147215161939404793431210562879278808245798655304277578470243616454788831530698938605110115264582467753356871970345368737621428526923410573048079443555851572771667945936934291018361251096654925113752161279074864049958493164194796531207956084234986481508934923758149434020476077638689199249552224140823855974346354975883149694206226535575184941639920135280020286141665079274258607048021042264746846259736232001988170700194002122581701893168925075713713306659701553660038625370006613897504453547463422715345570265143986526565344557093364820025488653811770047193785899525067492741376745318368072663971529458840088522252744067279196494572701143485266989159740488799973609329138630872919542790514132450394838174186109266221119571154884111826108702333872366080872536633280171201547622618101748416902932917307466580859964052627471258483829656946776376384054665976707757884584778325796998104420916198562407072038537645730911918656166199522000859040806784460935443573842695670288283953805302584211958839466535067753089263346488599803639150913278342820748969709050293419410593672838811752891260776712150520366773051065901480356488593667003802025120040496748610448513791645731519987230980952182834326110356513025870645460703195504374706165403766585220692591704497507639364025925866817902176886774767406662437269389633867224715201666701766825714433150074535760995276237420576456841099098999735443275050597758156965009618099483604585661925315403478476335812712609386912954518703458291270224915078488459716294225663947333152068995134927719367391238681339977052541275617389751560326619600030382922187248128507180618659641881531749837904877485411015555977071283497335364222353697031835044752475945991449618880238295169485253630378220636794254687873112138075230966528361122174771316480462318846723308112738557364916997903916054694984126685400658886602295950161765662241506584502757479820830895370639188472364149897289123948245661118803740590037746845223440067908600615868162287439251026037878563965005787683808315585943449233349585441707290927268186854907160552713763885787390822062482722372922297385349878840434292967249183003876047625368902074897110784150552747074810760792155680259700260876385732300612374047896952236301050275409773444100810827397734426348452443822000613774057831377449370057395040257963759026460571268181946387095622725778858115775082589474815137655914323067426865103062740968060551779710199520114996587292869453187866205951447607215611907657226400302897695828078733447622278769707543500078031136665096831939843340010405172503728439897210246965942142026058152680194458986471365515216700608058747489388099813415341732679842373047908491788385474328313272019731734125073218813316347961897340389297749667945995749493576299519869696857486447281188482675716033071142428812503634599662213914918866871724351338587590532667889670452679201029371159616025688621837419118985950509922594392436859350759390802032356307191054614688409472255434515842348606003431541561146570771471215025306011050405251222506990919900175191020480601310556643341724360145283544690089405706453834803503822136850896699532188288709350086140465320441277229895372435821018112680239175501798893579418173893440847394810473951444860213681263057602955976113286878845561853093076878557428033403964432604160687784988428281893665588652313062017847961521429332886096912344736982681803120000794870283231105858260222188601812043233477077076065292302508654621574057596522537917143273169407350954229945009317593758453980302100487567319387118293947172846708071849048288318650101334509276723946463968036584662668225479806770701632846141048246818607787085446598496755357768719320508339521095708455709777468839338661650669468944285035728432601672073378679384752064355278786584391765385154339306298656687170049160108216473012276621179791607366397467294247634943834337282264273567411021805277319102013212980142416633477858214830906444650195900050343648002732998292866619740207144565674450532258261339068312154236794779460094304909068782535494392261818329270634486059333788222907669670756755196681317350606813568087296576410039688038756471562726103633559399669932340647711739347758814618726671989506755758251956044812746048773694715636115660123372732784850789797129140913248903200973892939433942161512926154779383705499285297492817033680451274319895988727020424377212100885059327658725489246345880234077310599961311867973270328335070490737200765974073280266802860825385613228283363472239176002240992417741848257096714877626902719568247341492667944636886354302059884573394865170990671712781081306249517992469056636772769995067467715485607922691032634799716647326440941235990745836615463110753381200530171597543482287851815889503530310087795248545055084748444437762329772684642224172527110192251482529333569742802446300705378634975000363448377232455755751920387356599863942138939972722096110527154869981337479772187187550940591842209180417067367596785408232171254253159137369146133552974184876498216272269367277423734965819821215615139573516560869271382315395729046785385193169752499157106231563620929541928099866166739121547808462133822905054452128517825672849546075036193194530293540529874787578185821910813874131248469898515515323655017374830850844483055806547273017208718015043035788860188594581099632618729639594678077440300982984175781388664838424210996044778168558958376733984930208215913098552570221988380979907569501531523099762599528804538174896162987184042787888301853742619036858127152050756138873175570448159314977160612781476423073913368900551402600251726053681245374935771420892868064363818176431231185373704080361496644231100384585654961085713200138014963629697155813440055389395169402209424899320108740699178924709091310543096153976793717118412742047257856696800909936397336240941493133194212938576216354004846795345720783129288656910824034274299314025563760727220542851217971439701485627797107462203971307373731787096748855341508650092520757694649347685171337212189599276471625575436654494628375050256600883598923534983651585436320483504356330365366178971381123832989952537305945759422149583479210046455955317973959325495384740171759337282461744000371210696073944240584986042184036440440969300599064261040703607025855323943465956732986893980705515327077257543666139273378942693481028280776028887535281303384524250545632603563390253835623002218404712081521917712422836091600201103742806384674549565671422016337680547524180393904949448366688743251297294881309528391672267541381218462080141807772116375826788913355387378514267138439713378010804850468321009211787397503454593072075296701843330764146451804245068084098065766313287300105009958361958232169447074630132816368026227423596602260856307097543541823805503176744383949101290515747497402229244969453430767247350684960190317514452871518502367732261776946629448155791985103506440926333988065659601934873118438669026218679606929766886709725782406411512476150305064797931895072252874888088514013997178999495320558769640652494291305580663146025420974412689852050052491725256676937206796099874942721304397411518690355991363782163412211350966274422093375194389862467182767610590107767666157341840214900456864257987917468284187200933605646150144666121056844171650760436606624051733619406767591590738338727136891977758067015876737276301482456463606474819911721850459764374466992555152099191914783939269699457520125958104539386639021654102622905803946576366297501148731172196239326348035318479641212016467525225403911420584134070766643576003238248099475845532101443248355256413303640222516272736277733694457922468006635650854583059062138218905022266535594688261131095604858434821667665214672951809267323535875550167159492078603454952815923785357164235492398765197638430928259448354042592268034335297487747604611556614241713037000786832983617543941857213138550785719340256945857144972469813398241507629371956390485776437437509834028687722965149721232665412680673275850590624783852344159722469582469244977762408018241968873744523631232833118946134497413283319725116014132992206847940778711225376856382998514919842413692225341213197583610011905870851812050521981796406127101310393277047828342029115904833522268538432132074986920797612551238436075787360638308022395172866527735756312509883711099583660268932641780728010167807161148011694504815784962541597524069781742869862619685356223245521314684178229558792723888314883970722261808410531098191454491185704000916650749111711017116315092991245407881846793946239507080579090926092779020270883425611108437009144764573169264379191726937278360032166545127016272979208072325307625042635811033895617988431124742357838935414744416667795737802313484985346898207334304826077659161416484574327005779991562739582401377927273118807293244856138792240864593370949051694864369528162165828630080410606881575096281216746911461828902420129807933637032407084781346101401769252816917015270034244339244599012712368708277980206577483257155521867592905343578595596272706566730567891316014991620767360143411634126935458144417661984028577431462821915089667884559586565615072886219534910064022118158527803615550397815267979031946188971981922102228014446553765949735268097015442519649834415051498374626833361509385971624041672824378828261620645194903325752880320059994499716682371448540385608194197102648200107472833022973437609922817329138797522706674774562486680097171383852527525965940832693675065567162430565887394574129738014503241962336861958566069322983669495700409133691869815050386456972041117592285634755741898555792978388325071853614565414049168514464838766761259016730518808435052503813696104871465848493623550149857850015069139402318619040718905110317180789764169183791889164584425048797369709760223313642464481721373467354048996735483450833640556941480175999290694369303615787632542846350778195478869742431547769452645009040352420003478939733626630708816493373014620154491654483495346238909101340333947931888343633240029002542774320857857509802918604991442797518322582852687766095088272739214953142262327722517259840244912629587532276068138266533015915566153358961322056252248005660997533768328151255474176557683427530156768224725084512197813316091682374768313452499073754124010444381433623732328637987113765161119956841200171752416211483056274415741656967120162780342075607733207313981234350658773555581314251061092826701121959777282271471101035040287916951983105220534630173047434757215760875927671098073480212192314122393307483878267465776133366573543869518653737592608615921074011360605275573675618400086700714636614996831033333968619977272554074986785064888222204110428913142485414437110810914790678217481333243031419359424513774345623875341017916609212546783493651636907441216474900890673192821043010598244088090210787141047838979740039480832409504871052943403776395788500967414099472748870651886045259076345019925881510440562171176198888245945859563087040477503817805562873214649469772145412692582985891008310554580242695999635985083809750488398571087768065663828637900375986329001519735974392741241153245473225663587056435290878187446141598047821179413607296305044847764800660862774772764822192352292160349504474883467331601210697577691576340723863024013854833475885701550317198889531410811942706773560009135887446169633277040934470282864737062876101590879763765233109957024822575585552135998089174237625708709471964710937745369726303198660442274181832632820127021379743155487881554988164494794539962686459528746853733661216308496565184591911784639445939984165976526100071502960508141732218312801565821726152440502303023718444287917247842484295588888574647414567872506668972679730062427065904127943527669699393800569554742657241272511244895199611674631899764352469778898020915032958746329055957156904878354385481976099301423473115404146518189409343805842757147559462575495157199089048137525838915854701482361747422899259783745433384419983102452199349301414833368451499649010069555829822932335273747760318726526549106622344472163006689897517866679564990161074838631433601234061408492549493558270708875096441249222097802931809895877548727185915187531364223426579549935832236499583591654746092984006951104012044480389342240846774108277089142148909974497931164860422920916292403329097815199977574718756657979968118436406890366402109330413486021112425729706986583710593847950811109440329769899088090114070399837133514257644627723074355646189335975027445262332709297877107994669692476658205533840356144742375781364100208902703851831084709890888564544320147265404685653104713421491506536124015248464992579588480309887989769000776392514991561892226386523822066282897834095178753119017852416223550634658234275824743681830129921536226637005345921604446336184836177770967136312646354583357361520495555377622189977849238192430705366048631159867638320099012204476238966018680779889288683877397210028994154204329862926327225718074922467762414352150210693540552525922390424524665694936568176620949454742555905345544862010995812367415642168459919534337076287394426257609918844374711899765559571724538176810702007881578861905081250146704265582017957931977418194733497652211455348802912787533567988797734009791558269951931023644335919004033330890881478260110622714678164239322113524297856523955249587229109361180411000680414799686912491671885858634546426768488746982021106026307086188518234458517345367569870700527305053462933540585556067462196588741362217196274898740534524598867357723817663774647736141882938208416465795740710430946596539313136171976907340426597135307903944029315081961673362818143796281788667205600067763116116393078462753604711899261896735430901480490440595754729059817922002343832770683246395345903330636551565419964049919158660499718448675008797885205277998327912368773057809969017296177792335015492335451394685861506865767811994447210133395429498667911270866596205470509210054033029638744333667074020096305894263138712938007254959560017562914664115926947002728230240212035369187110847263758386681296342377036860628981405534084887046484043809352350755102287391753718735248967479287224708535878491615569567304828512018576039277628325370375229290527190256193824070146948108608308956321080805421017304571680981213716347400575065610947128269410977126417229813069200451932044217802701180307606448281602047384454817983492539009722667661567468863977784355208200126980764661025387680872958759753757701734637675459267891319115255056981874114774536573607638424646390139575528507944732877774948515523206387237231963684662574911636238651918453998167872174161258722967707731603666914493317634123920090142757064963569060871940910115613485663282777156587664749420102221383876628622323676847739222442135279922714039397438192659854963459653642726551974469773758578466418407610442264923627000375001114927024428128603540921546173642286793166626190664415344279364655846413940888760766789243780230176222629598376142308343713011754367605336913740298008147622731940062749742213078810031658806604063183397065753066085079076366673252506090912554600294599214419265412010019582592214564442104914392837897643279433444896549404990192125758565528732112928772136739546859436383405145859204654740086745282069550154268954751877517760110140628608979501363816078107684386277237321549965320185135153941924931235387658266699762800752504395613540396151755367611006262749945946867416326433515812014540078006772022021854833314639973473857566990101783693844058665230120257927763892577496789698527921466531945165158570424916802273423003239132971607729107084941209417023833394611579891164858591952822669597542800829615868419197211129693570085552664085862396059048308100827196605701519491359247949241002241020915482714226521479143981341997586593416820332937919084767808045257020542218810172687134090206976187198683517000894938672063493976041335380005604703390016558041874488795174076544150621339895909592676567590359123447401194519164517829381121635413079296270701477879302691064650048628965782831441111669862328012351885853795437424967109407805967619814155547625385504926544467804227286246688658965544188742605541120356940403546376289999597944212633105810853019851759550847467192925197238406522512880889417069847243039511318009129826315663981612456735356675281263729721925483270610265682988748532096794236161335209528452857189395626548943459390146143555223081451619654771252012267010170262843963548584559140716112684814497246116918721217140219257543198248968574246746657940447573505560262110202191593536397928366301686361362411053701072428030754264668699115138630043161408034564651448695992892461243773717716427378170324565997312638309244302511850934663277020402299450020051860333287973745448928499165218415402788563264639311304695389009443102670061085758523429811030627484925614251488251197900406463488772572092093674662416057235880286410121657036180200572505051136946076132208820865974027480221253181871053987316081240040409464907990518784044884881657524465098768551327929385990722895488804739944123462345946746729395772561008254590007258073650301328959444858523282147141880542030909231107489835030465634391221107289723659036593114718463923299084130850413276314545065012843418309861189547613624996802308509135308222915363904564347401919244048449114051215834933878597610266695819565159748318115972230035665244265310210847246247324609125521437761004939847543389262926996594273622534651229039462703086198596843055451735901427869827399817667882949978494033839917145285848333597717817209911790326471338486665254159799315326907327880582907149807232567338036779374978529181883190831529314865554022484451635378434844001074566606707794614286277062882679069047793131855141164842145143012588806520009496310045665999827543197100848006035057779085836237240772616580036138071601767627124442770203173095762431950816538199897979967142160597743534281724306869847376672587247450740132789262932498066440081018271547604224221247075601274557960540178335194792857224802955094323137035556570021696899678974557685913447457061968690300136465925094630747962821378026679067580088595168866325199174877724031980544912832585802106398795193305931683477450438487000732042786465018824616668230087641914715645819193002523828556425951393043278451480802088851080450023900787307255344736958681807394904038977635351574822500778770655438396700515671043078983335129193518157637407021660572506139703466384989045372430798517268346717013227755390379789819636861315368977142976574208919312957282201975705493557846291861627809536360521056221741588715373565628374217169422694400604981903324888426712147659286649051219273037413214784283191262734797022342568921521482796340266317419788932901058085746618025422940902244925447119245300226843789601831352202863806973249604765808714713003346563921197867214203453568763571869621047588254394256211219045134637064234054172473323607366921692417892846637508078825315875858274527454967705452075425916226799963467238020923736650537222345247205655729186674854665660360112275429801319281330360276212959839748917139642409633863267730890654578375617384911663034898727405022260305344681905097439099317303433659534274754717324020780812485653482165893106079059490028144525256987385902824518700765546053672756101931500527583441022871980464901947972799918718492225433656551172210214757061656554881021287260717148696492188390881088631693297786625574957182616228556742322189265439521310549794879929086305450837882425132866574514172692031598031662238129731441571859129017339060463021696124484698853971109028668348012285839944252271481688824589280978236649158706232737395965783337758919928630266250654623042166649001975716098937900824980082776482493317483527398438486412748698161221208980543506640952818602894693166394471269060093081252614149304712006810049961002042081775681740308900311071820493595836994393733907384200795425881032027557016773812182883657523465026311143465781519969872458415392644038174360612081443869769298680831010821968487571963066012070622158446496693184774536428724383509867864970864916338756355272237974355488572908311692331224646010301932101719899673506211781294187896419106183180476674407334862105593704914442441820794229197642295086773372128679939075050317251712448109112817143715341717547895540900387990587075401194370238935308605188828659093571182364596916039075440711598381462547526135748656488242145941409425060401632202321685099867201587122960700006664794361942184437119559150327598200905703623619388425341012366215631384499963312555830427343960656832902576322264857051655333555158921481892408591661054060659218841113084194115849290483782751678450521529514863453850754288052511978122901739956488817267407983421013124919060090360856419387885042149307004738841187655691018330975428147819923646548319957209045915939954390497978583066641780574421939157713980281480870958098068145720397896553486517475279044702379018935615282708274823938503655033061043830085132184990980443509715146240060582227241195086708359560255577556747330311189585107269581828958896384065556912188162152375233718823723570516915894337600485184046573905250967741451876617527887748954510102297386271738232184255435525457412846734234577607602228777873726736303141484167869740280201756560955511665193365255703436349175107093340172409076931846181399546457003987438548123437111395619431087880240619394092406160905835482381928804189323388642786436897303196877032423884236206259821879785137472032035264337733508414018311232710933970762323462129641405218188964190620495457640873889803682074797170038254571854011503844938848732685988702627843768278323548413013513971214624235598756710751797257211192300283815353920378840435045583625596338040137874621187233984122797853895054345729328597771891114788227996321382734363263279908499485536471281710077900225421784379194058652040308989115143226738693264257623870885794467471742126931431666055343766730454294368166559686227599209962145705280665801453826393742781587391681606874910105549346427178548502513022566734458096646288586662820162055417800307031369147877065418751391635146670548754820522519868121352071117682208785869279481802375208829949022296684663138157527328832638861185373664220082902554034020795086596043060768498598373557734496294156686904238682390444934521331702694353950947517096242058053521293788876778185707891027265862794072802816216487917706780029248700584765965629890361664791823033442214429650542592775227449938312117398600367991809974524981969408021115780165740502021008555097670357662605129524669612535180827887807623356634072646536975787912391315407197519069961390677381397403948718486085441612217349551554370755391886325547243881607606779836118418048048458026049881209604626050408409264847899799657953054748507245829466085898085846925775387222429401653867732370688860093930800874857516875400034404605745698619741818005569443427798331932114669708801971045107313050770749499145827621262806894800949391054482834073147849809346071037128321661789798479463853130505732897270200419699025675515969904415211955256590258197382040753399453661075265351070191082955934478786474545424569871438070415256634074182738609216226172350681291522071830950904034546970954515874317854199929744198167407820805542883981060336057936509421632691664842146013703735104478317939392953039555598484696738535325510905735322223322499467911042037145855727700812461965090816680685682757138775674999797257580988792793743842892386008428179641674324474404774276992906586118960744223151625626054545269511620313953638467095153817974899492295467243560161865020962758559564278848880836220120277512832893139792869372663585884110080747636259669767690274407760370383140934019212949349592631930248689388570588365218001949587470819688252892965275901672475138259450492299890158560337911358227317139186106994847753440554486995019014838331760863041116295399065450479234377544879274777882875549868942630793832078817497864517605894851959752239305682363590020996017730776552290474691602556388584563676585583268656376269263365698830930534486813699286470988954862883494453393895705630326357214355607419345502990768144862160709358165537018119073614950898010085041802213858039206677971675177637699819658886381419090538071649478730931110226736366795735800598771836596725383010061075403715632941324227388568105746619153825155044999390541011426948725586426800798969623099293042497751362932007329743262602987663926416368960637696453330653005595362356935755746966130465853373664775345045238676564818705546301512224702411852303668137252512280537451741492523073710107569590111663434938887679794157352662572834736631907508271065535139395757105211483782346164709542183465619485540893591260585596387631899800761581367776707892159629420220399710182646086660454506155399654787002432199456873572632938709737757790265517718556267395205297476638722504472516240333118072216375736974733548649268963914785366246923292753180433917112404974894484257770098338519264028071278504015196405372447669460493389810528294344433868646020249006766732796246720853088618193949124737362172660908169319707441523844927146291658496817125479884137442338697873386824720398005741996163055002020220141082277635915643753627476873298484213787965695672768290048500445823773018615812353063427299220564548595918918693812878925110760069310880588925053134131299357888730800044096170568564024051114764039642676280330433026248964721587885626937405962004038152766382095801409332977281236065628991137018831376626980629755991842706315803737410744682599528742155559818197764428759756112358331113209953086751341394002094107102472251441558119008387007645387063706430037807545160766976149146919083055966505863770357697517691398898954416472280630321877226570352128351679749857184566204203046105733437715340065243049668240594314033894293083531174940253390598793462244041389957743536782162030798403385634698902800693107133981319602273164569137497051237946519359785762253991537321242183181779082028306163521963180610654597312595885907840727472459371129779937727398215528648343468784065091455918239948257958674297475465344583478324381382710902452674496987439940918847030592906410073915767648182691526376557992830739722739977443945643886845405946891703520000882219260389180906454937824164998373375673432262488054028190733379948810315682795147163013312057034619657350954658324387650410477217144621373047762434747849739679000749995038131774390166488109141338224669154998125487167931306766761601002035978994616196871531956635574749987879777412939003406648762353547209043229924448132936515296300140180087941584797846688119223299258815390756445142129000388786232492780044025026464627722964781497520729444364202813280612584290296544170522821749278966443719565234527399475243409340504588485111987242955823362034775580200838781620812731103798091512337663568603747245884248369784990553023766888568994343135286316018289600945918202248320161825143946209899852906255373385513081326391880718970395805760226833998855316599265415183736957533923595804741078901397736185524991590317335033000409664484798809083019744341406416436541347071958900295557389396036722671277013872736675395083760953053907520167125760845872035536358841584722413792563129579031271157402047014679683128538333257283146348124518089616434839636120701072083240199151609880445986411614932590351025850745376637622796133292250748121829342421532163254225541618806951956064921399737419660821202750482173484195902879017890152530186318039993519656060948662427294079858509676511464115163957297825681165035110966910498068847972989215457288401460566703554270853364119460129546599232232753030492935218506917011785854904329856990902759645028785169647716755724811714842575054381947280357461336554055315585833157565452233662854026645124720763700732591084976635400317199345834365791374966998072997470456680580481032142539389144329491350229153248652332191259531491605192020499432540128387546399715642086359219712416888983587999519794394109601793835085992761776435487630308266821890977101753770837759137496146981085253300199222831768275538291328442585269938925716424750984762392665247533105352125166248972395230111119711173036495473728159685787017224709707525077652579334631698559840670820324062095475829439442598403021552588936831733565746093913443294174180761444794681947326572188583313388071717551639138281730371374072055913980489758520381437857781867391293584558633897245500646566430973614090893775126347435505988830299105318490634135733473740926972941215054238563973275231077466633608609998668106770670403334458601345984413960395660183029241960124140420746639729328126170552391008873621440398208910413691871079342239694321356797666760331388686474108837164894968845405726364026837591747075246736494983974104590282481596616160368564666200918889733396914170379223823265508246741938551357955338228918390903183620618082422759467902918821491581786135821782588076861227628849305901508761102109126262804816652211897130705544117102133751636414526214207791275913815598810909446081715845625684800059421668612705862726347621065193895139841387696331888200364489402500839069203116344506582888380160235584383351009739638129335053810424435351327112262281218627053257187029993205845412142688353191885151282853362269769963934482832936740627126359939541071189634981143010888391891465012879795685962603520888766712911432693478176496443459729924476372172571849583491242106814374558465842935832772573200111748612365899020280371954873787205670172068633581560724409327761949104909966009605176338915566753723175766264917489412509060158347804137483454185757627837872989858091887886202958542098944101680546025465683268738624915446175570387625962267454414237557464169579298589475682385786050832810979556622713698436835011248543556397440518777764487545093622634109385708570913941298122605752926203195596504317657483560620131479982168056364354760564499840100902985175761120500615669970312657925602273593662237239525946459645326421441752448199219689201173976251759348122717621728581198379600548776506166929238144818315234117001347505124892112645716633042070049979524466969557267882577757309926371747546675717326295145119406850137597939468075491031629886295940900289471017930839504578154096109430796958427079822711662312635701513410690001470615884366654885686438706287580379792192873769120463451522560345733820070346673386384291343454330517264104294183129089473647290172197246125480981271453938665160532386172160278250331555798887432277306086547242102901063688329333831379416011982821812668154983753395419944750986475167485329643135941462082410986077866370712218334070264959238951607090595008477769321213917736143995007770682090021071350942295792441608174091293069678945494285325406892770529914862079105370851801249606854511517957340145896489938360072194272723104919476428669967040486085798294209734708124154464406773482019792229683282585823346366171046506923859415543939813514910296948177109652799842975855841610216437992294543692187253011914153541000453397156273258056458915527971664805464979318887491873982509639311964560568865330985929018018409125018390246337234207124947852249039328882331904614262651426622528756111218830979124262563523148505400245137807278434931090737727226928217805738758920931297271282854022152591146778881898907166284849427019879834566674934883722345661170176386855081211621378132386365906371567954996576193526235443993521720012944594360238376215392516394498411154464074338482930168557688094018710099144157053078101867094864939329180587663639021187917689459367101371360634616205546996148081662309665558404371475685576139474353485037039372348361341560586050153784987775873020829740111505576277426077507535385581550022435206847838261469205307962209363516329301954607476049374399989210985420492864731495003297679123300917967496235786754717230121077006527316142700833030605553083885100674341264575261728786109172593275705372171125046545422823945303402883368418728281732052450415316494805370410759892923031201322672783966143538122348072902257756590833057581346596426246637269633957739917892057217489921826119530342660694687286805222861121892776575861650311546712623354095840561473041971293571910955718090940697452135813257270900804855978647626975339038801610963611877821631858688354757617061628990875855566750380469871330434234243964630846103362270955693889940945418793760405391833608051567573503335938005585403022340666009530064655277220021076762776426128951719120067852453400245086370766402957078074855153308534129715431154773185859906068305606653911643700869059885341044859322173027162396613931544790754154305339935994072427497139937530161188918005201144213363708922830978224689854357385620031218773063140048700318504739591641707345653512683241592174947965904306894624281190508168512604086446200782511339259886597198710385982614866965196343833418526442390235364388862415705742297288689018462139596386495398982204479235969408579830295876365479957579344489896269178168871185916997848808244977602624396970161749408267620120304638372932979674471389725325053608732456071827650375649731976885974430511189478102133215068951863826938893295381366458884031443767264030153251811044209813801214541897793461396244766175372957601882435957024713485309167388637544285299726446284488846846241979241657923955309859134844681609385945083498702313382468325416234406345641487267136657757063051058527723047694838880879249555291931777916249941769950309113102493472285495791090045881563294784869048148060757191016157287888866495213833918225100443344719743267239300243706473848849446751240421167954885947145724948819998725713673348296727261463471630696914986607361194143221973286898227727666900425894778591552510529934330537063157808992860189231041774224477654892319041545428465082465236034354322329745558203033917344385370229221364554819557950589025277957136343576054175551661465596068649146581530083459363499464836446848402883460922526533160948089635114565033959470203267044497311907782839269089914078529279992598153328770521194563363985712161305595528298271378682739025761166059116889641376465675655330411619248256784256412816421317496259574257618538502574989927478608208214540981507050357604263935689853567053252224470963266744418496676180140880811305379580831919097443639212376145980988036324354227747769155386289229225930166363438108142574297728617333120043104794231956933348851914013197687715071099860878771988242156259115751947504649211321205976527368420279610619803361204744192943804849635918000980753653902296361705026958128277350075333970017160293487139314191676121374441808458549840452291020163047156253969451725985018714193294794022042443191782788103633107446481040303368158771032219511941540371798453716740580177051574975609484229101172641539799928033014965147071271195160094754104419631490076574839163587521896753121191732949179267158044556322626403031218066664380269170258488766205731898220324238583873459987815678128978978793017683741599613464460125758286286497489711649737513056693898200178736015921003774887074621375417833587457806540973659166332296014153597025871866469803531478798310191969152506899584449564964225784268590256181864387339351491944478815558318643727766998757104616969903431387813075462272751974781200809379248217268722316540048511208052553295832272902166333767051931513138635668986037984201771968052662788292697888303079848380047001766618580266900438117813281709812041572523251447112147975406971853442883342949044560283801371452429187728437052539355642762016351530942100414122356169430920740287189886419273170417403861238246726333295954455911241149809867712748863185493437099675348489595901506440555358835168029997704067699713095454849568515900004862668422862446006546624857924672711552545842957347049390114566177522095191861962528656383249571247640179896453644234927657082359950103506693721674884259930533188279590224819380612124473230474253146199662990779871395483781281050451347842750240641103351801162745522323194605679212866129187764107735291599542140191042696064584207979541851092941678369655617012776158876922879844409361687216048168981290384723419116445610902000223901447260964100259154031711958691869115651573514853659685293441053137092603015711867137907851951690002343479700021194626574053282712308510369256813954193491682696947749283484431894081416377948885105929966286960793205793094792491554425086460337679508266017274854629363856707022250404539788621043304271782042294048359506150151964528971232419787892453904072208787133030060692976180546239848705433864664929661834708857843923371627421495600020575885639906610566290188694624308368277854997071128618650600134760976582257614805000596975379636863116844918933477839773533054395620661517966948173612801520431864114887074770375497712957455863687370952745450835077357446534455259592251005946382815199720876798483520844000623900354801298607591189772907282936623348556035651327552733610422528769322238848394038062449004645324191549521413258327570214665747863060741563730789945887693654916030165684237313193993845805072866467974097370084572541810578904685548118839412837107273472440605392056801231335550429994031730683119889888871707879017815750024125498544377537146667510798601582460921593317873096538402267235611092614321906905286278288708694011677266456204241830223244050497288361421413115969405814223529682770826635136779956911143816303848872205474104193966162546115136460064671538441005074887812884336997197689577313631962877625198604991377995579709419746018477420435817798751664096136907635368798027718629019440185127650012159685892332204597263076566469565136578475453580587678202504752707816575844292026163272599235466679407725732543734403699724409417552720118053942066310959167984240953866892194422327509543578121658870080216252109109210357221462004082084798959168204314544055530241911091486626542193181115046383940953991691392726845641617352701129509506317094747768441003242773559372391372476331463351945786186985046161444076359080579190654305468480589052538302838485066355333805016229357820457800957059414953220251429368842010440588687599835474248706876904794988145827545092677024890581721955424106617084573468838767626321354959398223405449732951227758472438109821289024097594650705094886089393124791495392424018655216982602112706644937743545683432428702267692485599063746743194807445471762600306035328246856781465664265091352634151543508376123769648041282465354249087156602639973707089322805897690475057685523766283759138696068524045568211549628610220352432932785367956279610822337038618334196901355366577519777451792956746455153237048006924613164298900351859864525708866833408159104044555897768241735342468700436014220818640510925504863205601979428920067725610743833340212611390459131512467769050868465802142470234893853781117254851258564597411011235962419573615399952124204769782867663545995579005379066576725675002496303531152367620524460058669653804566072961438236755490207982161413350596858621995483042302121858988671987416102636462174529655997312330756070272832174346617007308498656347051598455377547753362770035458416294072969344512420176803647057627329001914714786396669107247284070863347133854826274692014842296123539828833257596215968077056791029615002539322305240066917387398719984045543009486784067408005360304145584980671457246528117674967324121237904094976684981448351289565303208538219957510258253518556080917603330528519337514328911505360921337606811966871360064391099121833686318640606905158350393631253383336072988820404711648119657739456343316225313838924707880165982895463336087287803846270897397682336081806333763138175130048362776353424513651367481866388241682673652006283270499366364144898209937072546116864824781240615515183745082296343289791157257589064065736119562626578719350725922768505584993876923924231346331453454527126210667929594989976614684863883630226845488779351534483191266219992631788159937798259229503409498119326820414551752521079566916683597432955739952731425227947515152429316928216645498365331298916536308997013590482440728758709270937904149958128135172808999181279460206254711642440930793060815590952716708675392865083190862642685558735330883491149685192243460529833279184925313604283451203716377564712317335991068488687188072942391231247186049489281733261511745171331134101940541346455690499181514525114698239071651266481617682520544002842151470848400662599864669854838877522220298794993625310395308638725865891275729468803690021437068080971111569560238073197552409977767798279192591074840845707581092458146495378645622834385514765832402883955507936593025299903471338562171053307205758959924797323614831182626688998641306557112498861750474425315333464815631236296265884073043917503203352830957215509396101343009582971625303843638044024065590063291232332342886929847284442928827212271081490639213151394820978375998397947815932525652809865722329536450776227160077113227057452190797280991307273921018008392546599241138769718804840563324145492749593121372049903885933157436484515913291529433287873699188008029232536498433320784141052982685545284385049183851451063221506455239218646573074477884792349658629981827047004183131783970904589672421028734370685014386971066145744778246618988916450147829954774782210097917005139875128026880259504124368268291986577453672810412167904306272078740325570634729392367037275498912686663212747475590833390066648115568722723952853870310236163094249056928788963745072300199056840879344197171177706381340376723695161871925502109423780269465259392601272348433037604833740375739732278444579550686704105376234872452541464778713499941778905301383646764204700269896240588997961647235904089831591954829635163371993151965528054734334944046377667381086576797370629314962405011522727771893153036472977429871231115018230778530495799137181761496140629878364651258668457108244523762445506345695170488579415039194494697210119079466301506535217738624887924867630739408020552178833989556015802993298776003080994688194771717155340749184999761191986243706155093885880994505114041283924684607743723983616042150727353198931207647425534538654854074955152267810738303315658134120996380602795457398383313200003374955886777195532784425004785746332494859925326751682334323510584780374512169841116332087554180371112718975907657737391852147975478362181920999062292473086941572689265930094364137130386601317372618011323029316598270315746626501120634113264727062179943415425807608290489983051032955338771841101365571854270162443188347707039055042487054153741315183998648182694885871050690636246760744669017795543975369864844950189039643380357630050694964657044293575793907827822003736200786583008976123892330247101661167149170912931077551147220858577792706075217473903467877631527364015684081176328990862775360963412161413517779067817775670643170681730028556746030865761012295072192227369986736362953560836260080824029177373132941644692520857330300741129314161265102855793239973329279567665352507989203938192262358129828469366977117843655034990169386961457161190024245918554952322390627149084700369969595492644324812196931832499488925447421073428046140421346134255846351966235732518689042164070847229399546168177721284138653831406537780240502324694006569356770120140129296572626770189047236836125134508693080740441954982762591739625639320464578469921080479694111715939125999159550740318151672456264529591970060482920374183663933504037546837489099795411148490190980626221389058801429138555516442375015350492177586388306231053701532763307532921210631705678280906666052160989213640167414635948242279769744171436561598605040282218222784805670895439028197415070326632417588598767316087437631062828710015202786657064326579403960784038490827165936848993734296981974840349448457564551343097659736306874623166862100281599751430162661433623593468012620489669628100927238145121726079730587469828780534575369331493019098482456144104754578433264106414809164751771200056872210474761536406897123995789264769194694787417561302053939828519990355440071305950011704325800278492313213271134723495737812811904364456347827841841691694620127022318840119642239301167210155265066829135401645464863317133352164097260063150939484514266390559043007190071186441709159602990260067903343885927790404338439397722399891282748595645010981896548120262498314173492718504405920223527083857214909097289590394240273346631650209911145799661379117540584590999510664141474833029179023537154859317096527947416485115454462674859636101447526331984307067256947519699101514853299592181225030933539754611878348456597119170974500528590364166496356156724219480420891273813365541588452046870831897925396100761949755450655408528464648352929660541713689739302545727292389577282100916826123043041425934269849747607501430661609774227440087080893521704030071747592049054373637368092010523704037947132220601070258264249615706554587055134893928744424330285780790765694471185145910167041726881612953805783809777281603751326510028183510460288937107042087673748406309152605991754436085042054644240714138110346897798380352917498357330257438141596792527768099296633356436523042220661105096883487088256001652199027900584133975581280241485317431575804990065882803944380890226841143265972077586725327610740777370014296613173716522858910536201598927113536993930586270137841373654211487690308762859449371912051770578091544295460772383207607283775012962558936269726574058715417425665859408007733614376724235887837159409156520118590215975751527926148977262881700091823631225833309819846156488445364223370413088523235874861333286177083795989176756625670176445097527581806826318997553287980291095628843849740462932738834677056254713590541745576046557595721554604897407642928400098043637183404747892664099653502407891733426540745542416250459444121314480880251099216928205263912227052379409627266714730858648977631598464252902138160900223144603084775284116987692505799567177333925480801804734427993119554421048090661645153828535409274703388378484652884297663596970588723386102909345154156175376276150566491713878857480654365075556844727738966965931933006097391472572487780087302664825722659475887217766586255464625273349779131528084388611378500599935877337286045417043697385221465752744182090698549040211186797819006936384155111598281008245326420125559671309340635029614771187176908453650724513178053004642205124618928814510429249340555372206753503454523708056526987463605019182495208918098889192315831659625880512309296077233949491291460813619126557123962507281077981054044382559027033607133556609914010729415337368805459332387846703073498692160408581900173971601714530845321624007510534330718432838508015023846715752409363277010447075997254721474118645074364480041390691227405679606747887849942329756341421819491250415360636660027183175951072599287940750013615605651886338976705999011598319153655851628556840934760288562810375295573440756102565299983575787997831106360676725762909150847924641652508965545714768196842375666402811912208577886994850835066747260200143192234319041167007204452174115797999953252181554291219257850960332733052734772099803152569677969479880518538903363484149486844726614015164405364137861356776825594754872594112937112375148501164309304467536820219182819146169863048055589500403199204104502694561013630120770953144191536405263135952821367573165991845710223199577973284287454739930487046189979016941724803491007192779929149759459550997248534346352370762483686025199828212648211022101144164653888831772753730694059058154915321300210418602725701803331827761095187268753270360092241830499593956780583761297238714882246520542043922326245569490592518721658659509236110618649313315784636948404433448087416988214242024179413188947769023482786543847676947422603756511424428579343007139202156591041666312466940426114718076180523188444080783031082487694469560737398037123099568698172770123241669664748258346695541165375259004743095767465080356403782417636342392237513221846793547810904639196239884807305086983661230375959100662682495877928110422306958449641829372812566740709764781968016214526480478246970121659061575969792110306994983396079662396677621957172254540521332783731482808790633776222378085781415149537901384524225095042811289959126230127975661678719913982252424015566673295529089593496230651193593699325826419635112826628030161850455811136615296779707347402047554984544141995381584584248575139318402525548031111445276007480676241661924807992484744750900371532694572486566103565740347702744575319605918504367460536186184938454392693969667802607010888382774158732173216736592577641447816868807624858233590529329241541334053485244101818833433911513747525887164839323350322208938807073637864810467609890107993203905740451808988632512232598602548128850590343991445053385887617988413073097102940593193650272188639521928609308754340783139330785456487968588103842501007459601431770715968735497451020975348051183087051134931187688860081886186929161903166398457292748162524130189918894954538243038160953152621800364622370090440201671675183797728889443893593086384023765201668600903840591441007272221801150081105040620155653849087255898099722349875286126334803629445640225516511044792023310257920633991563152365388272527528461824533434747419593232000627670620015079417175759125225828314507946500357255483896648587286614262872271537906527154462615524907605126514607593399658553281064824109992190231787496906415616511122620897762535585211506978832149863503943326285967407082700590126207139369897874181811918175401912086780382887664742143904054591839156958287032909317761922750557530783150916033883188056491177050619625280955335307535138045805206548881752074045012340915866045433464164753159757333277117080047925200523783063224723410248862294973421048913735641185150981779644367939893509320220737152849828126422655500248897588699482597260032312908986668504112968783108630725992250266819128347496330340609366049325646898541239444084492042416351880810338152038509145607669860998859950971037205492026101405551371699197659263185498072205601920650676522022925939151260990172668632001369314661565247581694803474073140218028875604015813273013334068762129066724106007734155191289922150698373496643157835139975203332142622176575033948499711233133636722166841030137568216758498637399099757299185226820844059650273827145114721040062107661909065749575990610276646560504058340911673579013864738589976426503757948462230899893772297321626907583554783064125144972848622585848472988877005980174292320544246529211132371994263765059703669185789262201717144359958155098538540562847617656813645328579292616325635630915484641907561986597713126778551156971612184014443722300910508650816396018535397721403002796296862499673424219466843451055792016347635676857556829893366880079392950234316863070287731476239413811696572793219830714820085599335511312331914540043253662150803710516758988204182023106265001835373627806892553440684887386882021404218675015866641509435701602745033409114353916785722947968528764261352106891931103037241218442019051389218683452847310520525661867258085628947823704535629031564280940363642624908716226313150893606852996778055507151097336974924933735889357231410379722744878227287236902938323068257088346070840303522852102109687822148266758196349262195220573201277449900033147830213433316235046695209676277795582730706876772930531183782710322254685167325627792297034865057037666022619716097217020852109421754394588673735762215614341628757242348400956017498964087803877226613645725739101691224754991581481946552846946719265091093530898957116067386211152218030115465664200598334173206041829008536452518021828342468069635884682549770045850480699881620175194573158050100348933929653412930735412136763143475524628023245677892716144632824115565884911291754282988475891096705486969423385802710140804851353136855618543336655902565480032605946523458008610472236840416108084183109809596114395623630365592768312524348751409153085325398189168294279167730675180890154839443954590149940589474970087248537237887909383890779368214518008325943441508984543675196208896997365435460280896870818902925121675397172127419434675214598560813529493867625615442803756965274143840030547519925942009048199507911272578034022799432381145104210560794611412764776910220316202015965066572655115081904939064307813686158369568300313444866680444621597608321120524323194572774703628513115038822024517020770032617386610329107501909385590536922422266261520592192531861965461168948541715242107350076731281788298838986645796862305942141946558446626739953239825538375028381605333673110182860649621639983825071775804334196727664355224310990736442065721074182036576016436201085631859798104748652201062716687144028291866079749369674602342648235807022360197279580202127230596870008558911294108516803444667860489738104555247085022954058052831232634255272458933748186204890983102731985915661044201964968437684243621005549237321561135415293014812141999381376471387458695701229990832460463812812296241013874784960629749403106104899976675643019507199432386553480196746377664835483345316114762459760786291737884338011027691386629408550272439963974569028110734835185214087634289736154054452956493642681360259227103134558596656423394943832112115018405712852711066586549421304787911637490300596634651547158383773601611693261059013612850760944504921188510826306290196114729711766307792287333951210949712800856305510062458488471789192306576343211417358128914097372106862081401051134397741590202346277857353448742631910558449588418557444589544456644586133326269738143307621701223747999703773854922745616814926701993231885030281701186919638403898749398404854974730397601179608482055535467433168130461913391435035244771659957543541616657511547144070454545189965463760391709798716994960237958709156355672387536027545468920600304759787264517979719419661811979432348300613873594991497967339064289478395349497999570436022591518938974926391473938872540933787878221701248042497398008328884962196469901194995058886362690261724756174546134286832400283974315846346521680709694126457070586904536154489214109724109781772272972470664687778674118844714204463009384381103236911515867667431859450150379415260276468756686318135749017308855952027998003574790130379667455341734232588167591025874864612039551896573657910280908209407230683333754906336055561108132700652120758352950635639301428422799721426729494142638214016166717520366857909100729492449152757436667432113696679502848207670512633748323494813225398496746717609904871458045733210274955506131431000073002254055341876751804777880767941366469722996644981875847199224327482803023762641222299856295579554986293720616591633096551267488044553688437490605946648396083815346183577168823588170383862516862342985891746332936732351448071594743221213897457352022741681928552060371157557924633124061332389589095402319385805231300809111723426295502123114615225253094165817570624095686387849907867359566829552457897045731190255965329068207665064016031010618607608999779116189649426836298063905025870046473019845066751736802749863838960078186536596535860447124871093466996808384693103074819235433454392953093310718119456978226888085706998646685396618237866756505651667631634940510710507418189974978620164552775145766242135212223067281886688604715272606837921558823913371365665011595500415443878486742301982095825782559936480490322509269029928269548049291171012511876829020965454521366021542313453900409934019794222235019535402971692601809853688774098867912218905636647803620610256749247203741550426764699875619884397250039732778722706533053761376918263420136178127159447007911617377614793405898350329462410562534429536944096638741154898607553647190326740227536952031626142963244132823201386789803957076004082428505702281280837276168765281542906413722629516119208335199440903343299251109686200202813126897103172130511921033689546131569363663517603125738732925696533952177254528893351544957811414048278903179934520672189981812916701269373467350541397283912153324578755820036928956423930651943161680247661157082565524646839076031309647166553949831562362791437992731196217497632233891201744776480832346415500478589890103974171964318068040864262704403020397615882808241768113248957216229237020258730778780439754403441585030915967763808281659037441955499925173429209035877665382313193440347451915828376323693387570969690561941785895327956109533952087760170565292606624856115171117077845489628938109328510390768241989895101624008686978031682762305960858986230956351229086870175156629988151897891158882414556523181904541248414401346005497217401538865360735064032609775877441007296465172021913599062423911009024893951959103672641317616909236295844457821731616167272987156011098597922433696275882733830742717526817599521150715973748093932545673464449500891679224945708363858252609520679879671090190491434880248138717061213693562033505878885135194478148641386717881652333963992185715405660189655330447139624008505016416197313945782866459264453457076888709916402515192569687279781440953295995616312193101370691349500142152086889374606027885442499548192333918809852649991696973395354531854543100734507026358517243726177082906829019867595371440076721212388626705438106943978263612358746939650531079722855474721027573960864842553360148064180195623415743060098272694602760282223986740277365317956840568463997055147150771274191560998704158942732075401810885706548201596654422736151634010941714474263559887959348458690145582069742229690529831084966573125409822445790857686411115641632353813241738951813456740214932842420585080553113955527207051375473273668064385362775390693615610637936557856002073277257178785081895082427208584967724189115604974415059379385209395957162001509020844500007469785365621362375575305075639878120016472943549962066994490927312554272821285949101857612890794509995364122429453784077194563540235676553446801134411919837460535427521955398602816340618111408037328423041884150556817127493396000838356708364832520880332598073797302786532854205112590140968725330039457238966025570939297005962167633650079293356862926437226297024942717996486407927103136976223069044964007364387327611052850159021224825741828653930606181138711538616442169110152887093501066793646913466837211065012827133404413960696499233180804811679678278025839723776014771352936521214582448976954070550822079580952242901598289611585377328621369339550873950174392533691831267369389832234365234473526786752605517137069562142050079827079357717755533507222569615680763526429846418106998422475319810461093314456922765266140945541797213447596536419924512680810890495036614792387531242658818813613099459010943561763414475659845661522658909224540631140770616110324039067503184830766395707346381777715105877696672942116357039160943820545556409488337855458084037705504374135375551667554818032963949691073179953316790597217878033887441120558457308867144458100793719629408031702593826944556845023836184920299909582390069037704581712858313563481743087684889464930961064360054539594126434174679788290455979495571326431343736906682410925613701817156794018221928498650857184321087790038910985693259493608887209966643962127373465133907008259456838631442218092265320852934485987067494344814617340101949673585891743784145931233308714696872884811696519220436670866405976183038528810599025324480678312695613198915023302983690070761837783898504702661172767101293094941080175553259132132770690132125827700422907884937455756868868120423965413578698067432770544201352535215138015881068209683799959932728884317227267267325055997754055128002794149121808396695786066558623372922058625281280307084374790721696546849358466451345224840230708606888562617605862761837890507608115861351253115049331366217873914091471217427528294715717287765465450937733407922409324900950812716965627318793994258201888272539704976991963535786330624756664469350617849454198790114695909762149019612556551229470885100722545329139563344931923332223745572257446311791609420577957962295707906842696368330761428250873313246365741509690984474345544048296037594506277708260186861358200577519944262310815859810725218173805823274648921869081198840342901879452718726707458921367789263267206775706167548485022320839865111632667736711967801138707793894260555947584869295619234966449220396271530297508237970493616738518910228087398116567347705778410849125071000480620208689549860393705324403674229587014046785942582882037238398439056865506014950837336316236895610594039343295590436136162055961215459359814406365687133731320070455657268356345097004847991840189734733759442654157146273663746972209804101917168262579040248416855794978110177314736728749545488916698688857132088752577818053452283234970438616403801070759979679076197029574880267079902410374152623322205477481635503544586833024588376601396373169330734485160372914463090696098115174065089209806896441988429771899979318508990385824744704216153592304753417347219674238861825698397019203286623726899561815677032846762420189417534383943663840294284584679979058898056978947099358261134018634509280440563250734339759159490534544660525647454753602983629724763490784684070631047175907254104074151194482453488662241857287179963408118957238350525150192318890562561511796412675018394720685377832655657180970319165154664049121924493999414392307718756785534021919263521220711699907017092165330599693374092471813548623806811950923202369158857737305341140694020560633613269589806269748637131574022335151490376089530250738314671780171701331161939858709067644622134969770863528532132267977744668745226382274801250283774597522287948631047328988123468437227424524658917438186854059383864379491574281078519914322667949326441151020556410783372391145544128566183168308364543353770861068323587484490646373462256146932604875091938828738346004417964698798754611017613638475903686902596353122994985296700228455084935928319860195353718737138021253379036480341359755346191448302509977684498966697315824117970251265071470498331337008041283920521650354927884799005261603967894537806922747394779390988959776457560708815060642916853024635857800655806717414869396803699062061812735764005489821269334276348949853250923857872130527333619824804520213336716979174805112303476456578673002221216066087919661491774070337293263024352929178133048605780516079683501984467793707960529718064965973850993090432443696163253607788816103792857179736713052901832316400800917886371065620417420996335805165638427767196250421121847879680602997886341724266709017316334223264160156906893192348668516079424040271093570913041095177757547885735393739031758433425650715443488222757561251383174689419199617788649548519893868327723767805724973911824544609752938730505159845461028767743448510876794133663344634222822392931374117790353664412465181930908988425625659029771157126898895301602729012431154799642975204801727261282968126824173200904266496463468410393476217555758474179497782565222744128232090169712620949106918734851396577765270664205650439404765452837075172675154960176584657389194597248594699901724583284197531839541371891121852356965591607689889146539044868253481756784555428427961580621962675958271312733295221184305143877345889444561909352982816026735145707916732933760411278172314172148889728132254351448062308704081794382488382035937050735629033230065517580545813305585317609201420555034900763096384861374105461316078689589107549964977620001197474961230158242600631150458537138939638298513223076888131713398068273202028159092603848985029938982861176991327114622348222994609811804973094421745375573304703839192870737256328391827948561690961772789501179570754106540519099069702056818094861017979628198741225892039959331100789710309005231610431352556184571910030385975301890949093235509193984341837741910381788414116456755964714600047797554861462507079650709520932301590890966057412033822685091807698605073813463701375653451672507506890520500643123721283971644728812779104870791727559673427192769626020031186848061002246513105778657771990150563361326534283935626421884986915240772672440984435341993528317347211320709765179388399775734648722373256518689593489305589749128048506676429308945107004624897980926750793619676680752412257029175322094895990836626691245342528215681655017225625972362727051983278069446698494148572650112391046812054408826157786334346821460182422160258135653223041937036511695716613535888178437649509478365480806992462771493303950833154228163325649662071568643430132742703603180213666032557840765685694660508441024232637912731365963000980287441397599389359596632701114920073359257566771964098147731401467443192743497257613724570553138307055018283939051117104658955157891454702864618144160435329867795336125270227978653549806925513479597007839936847753088324073782163710334899563921966145637773928520599573148356083207859506772304338754123801222328160955403487983950218707306215355242225451575324490601262079580508044783166318961519025852888174603888905728121392039010226488794435827723096491721454499442732163541759412487552835319864388757799117232700209500299451525957643360418669619621589606914384388868217398860455878738972225876106794389734991008189174652894562902355265953867012943963908471305883122341550318421647203770529225194105914476360803065168347024832106136009602382822015421144642295089289574291628336956757845511278322435525446948322123637278539070716042753761823909435968368068190796007145491272349628622811997855440170328359734605988151699367207042231033702455955275746359528413361870099379740658137385321765963824841096551733136105153461981428584866943980067830201510537621051963369006023125512579376484199588805665573768037168944532551132619724290303353382455703635740718612844390328998482022115650147515106510570776683883656298425056411096008756591172981501061951016595555163848736421688165621498991309092347005825452341665165241127269358066906534360720534065635646418751727276891942839444285218688225862042969882312401863205648414464590152121901155846863911324954626557734039111676601580258576877826683687045541527214529790552627817613492645244661798598694677364218588563842598521844868323495892264222899900763232234226545796623263137162752042407639026010920064957851056589422022512157255982787064804499734281774986497979306979413633944823309523311544830230594912624689580842778910586446170572973330620151946433955030870822837686338733665803171197685522688130955762718162677132496310419776465041295878193912320798183481875873026945393292882049523946196122060365271922164250482228599280628008570234126200598922174830386895339879479772201591921025628967610635251875101564118607245560390260436926969860513159195569901028100805565291358507105477575589106056099778665383825087433518664706078176644578110160450835252250886368612691770544997004691457191150980576193329445374979421675394993264093661371169968022407436942308593812608272948080578874139277831526587328957610112822215175142270201881341188405090332023918746399416056274178458094997783522928987447931162682872390563364349446134829137406397939170228616916765247775836170518912938729288507004729452917676075363254591939814747175526244191298377398266438535247494059292942951267498068422153742349213064481321576820513485842724460017403490351093399821846908910431217893815084998318507297454925539907490792948888170859230348221225835793836681137138626010289685319087718832627324434820221818610089428952212754497843950440178202451029116310072661515878935493334528981308317220204513695816942505820755351172225858381766397722417615333575434044688552242435094316327929493345241543720067246143577610520364734375077521303643418856981683955365441041747078627332682386274736214170918986037876349083550979554007222493652241867848033184385964410318375383643995685173523099329735532894098495882156287386779412141529180156719823410649256660956424643707450088078294377599218193518183200393137915784077257819582533392841538352594014451494061493442629778046651750669341350877596965020925331257246446323725294881724949504024497665215652867593647613442280836484768793352568145538900026953450573454295353393696199489094126616426175218793723832261784502383336907399728945967683387697362393235615591582581224665892100799569825794965015511325761106555904663599449944249445928689780183482734490514109560186297551521417949979736804169915844917740907411176799743684594557346655163988086985421274788707754769400355585854455391567782912885429255369658779090662330814393506370246136461930453632106930973563864738142737549760381817700187612625219692324454720129725995813185908656585043908863499538234994397284567467899141356731777728858211675113460108048129374472610876821671365822557061262647641297515219595531240142911016362084794886006917349716944170018424700529533663990087449133839793355143264265400688909646939438511189675678592719591346044935468630635309551259212205046434943881241273083204480130657840393209544299832774305434143660128564218025699542936095465488261773678975538881253222309519038897997981746797549638246179739779666981661997936843966477427039280206314285340675781085562125170834332381390836516606000968453287819144409258237184139083802720199050173455204615028956981082563120045199193908552498331496094437138550564920381656630478500153313812385297993010859234694986867908199859758984594855700464276000497065815737732771809955399688456172912629268398493163828106588751249417036774216432695185133471831510536591588569013617885263845479530814433133112634205428691636416529602731233334405704427643505796162709170264162291313484146830443528543456558429057067755165566608740712289008294230306442589662573493656901221452310226243443846620371263086616212698463036452912553981244877568637669442354875801325619767851306355710903936782030274435289477111477415830021462993738275676156726669041089600136468502031482532257924715177664276694037676907305976128311726317133400861552616003014203474530575487584970126788807756696136185544775283383076608953847571494882955333264818563588252708228283583721231775015156849591109385005693188445054575298602086268615282083375132925587726148596364375520368133056989896808059143030039998383084849342583060043305400203789224608931330369958726859769587824552710685246653731657666176253905253422274891026487179350009163849592311286569376055356712602728521063516200688348764250675212595828392997174785332299148000357830746565641963087040781497444087462380079011803531196040046437522297022238423696665919411641770569746972278221393928141864128130542979505803827269498531223311775488943818077155861400235869822713491008952112227535849309105379754053040349138707392714357694053169219600442860228733055197855721862808919348790865250463816646268418534671045304885004934477838271485464601482818490736829933859617510837220803263308506042118020904342568256463978285007504724284032948771256612561465067507058701283144852301657633838415128511846605965024106373199022406816641401620025222910046232003227477262290708850905774239478687480637245024717615771010829076301232085198645211000876602559876307420881487840260924694241953485619515820786647234820868749127670171582053893059014983491764331716443108673731309960291402415493262826321174585504656455790704542500951286734639613037102901557069865385060081851152971030319478523518213704971424545657391235501821569265656501819025836558914900930803555575565844660800423422020800998133525796624241590076065617909836083721510060842830805049505787211966714697714579994793496695912517265203210305817965980254675064156365536335530508823003419931035387655389739660108075740029832964787687069127303195148178940707923974719213520606209133099165840775209588392937907827433511691192702752965400769512290715133001585700779593720589658223662042230378132977290440435534319614225347103132628223953241547312741967570611953579309593424539641363672382122118669876651056357005120283314910852320172418649507559813253699923820339461854729996276632079364462786811486547500983617543495264726278168892560467569975663587169219897738871997014327066819458238388322149691273891539125849983306867307323969339011301923704492360868615448465858371993170513466102030458290857392663978750678091464629927887154584562081837080784544191493515624132311483578317434160380817401516834536205264657980675976110834329588161135342429830598973352080888709064976332614886094135897967422333820254000537695894438935919205593957501705829150227704951430187550634768881131007277622748213620358742866817682127101045503863195317926377067091261524187488801985961520317456555009888312943152985752940824767273054267882234409546194258058342087108291865242537684906874040997964602409012173826712774745025465592221219218523802654805093849312397486677873614513720455763372000746154996286475698304735008729364776017905255957523537693994110361377925156937496462007104050938510782478200682564060723142360214470726316173835062310062801179390403402389952911884909905882096420271076542539347457641925430868226249924186473889489367281847472674833913980321778389572115963073698419219624707962038332933755295305137845446797404426086832815440660799384987987046740640117814014577098018445874378618255339349735830791618912724478523371354794917225198440284467711124805691800771772647997290969029567379009612314652755273373212935166357431196597704830103724524195909882319159817205424786572978821872796305975087787895623870393463432227275740381718891319408448342243170202725380381241221912808851454281367296782960383712647194772370037056404066381353324973346363922147391107990020884421649437539165755200531633035922379751696719390176349606116147345964413493082093737426753797116939394963696146399575110814331800975210113902701024192609379213499286860381928418697732990886376262175697413582808977696787002521668217669230021818321755480323843933968643215475725854399221723130083789607783205926846931549179729941306813261399492242426604358091530229386812580207524637947474445940884494730666965517595877748336914116661278797455668142294551323937355064292218672982946184002528985089387796362676849721014479235662452742223021639289879918970134819940661339555226934004685037801817825455978754283688676908346921119496419665327872164199393841648719110083275033315765874152531068001062749328047434011102116294178866243173500995660202143154142950458733011393011253815984483906284161890708730933063771315704914801376117293761056396696493126140633402103351313355903721386515758628288334879489519464861367538733567415383693984140018358967389816571923288367458781935948303364437950861971634425412805072781430261849855379973282046031337079999442906803176328339693745448257323376554863328391235006757721668343269756730623652809962374289653177236377656502510064373712668088005108175052890391594728823829146479791921894535512198213258883629269213990683042487456212570154626137791732092537148907728527935205192296538059188029559038996351909307354776665506492360841441816969393942705656529563156852189881691347927008627006200188965719931938094474305095998962074612279703194527420250301260081930851948424054574283020695088628300506446522743894277088538757733632305865078624838388899397618326376213333577894660898818249727973056539055840775951229759994708025523653334556289596421637069695115432916694373130594613650466662083342350223204306580747319056938207235076122261577612787117683996466444143842029011917464327099762187969814598052999495756338291824901404378166363809567495897002761178662050855518678223585706644517437261165379983768084769545072655018217299578951680504811582458650885780452044842460927260589671847011424017513306230234913065825832124664192618570096276944661938317204142916573891078219575798965245263429336271030730910733929856303511887558900995907233079440007963124852265634987141824334560985540261482926572636561876817219985786223990047208753117959128747728189713698922707479172690699028073695259325628622574127488813170103541999462207077682886560955508257573036804308486446889215329969440597668085540513410552098254936985680799064899163047549856078105167987540787100118596898766000512768787053629700970009664529844536316043822763177232747103264213823422415075721161485139721017465135466953391899147592332981563771671577802630597934652790791716434141207463090664645357106900329396832977037999478503685671667545152704133922476230548035981078158535592932607027079478510107751092670701951945382629923013408777890152569113657696933985948987017706755088499944239831044612118967915340421981995033286230511094649431786971255385646931595843928641663194775678762663526691601675571064120234119363105542109153305462067814875410619962960014743031777327614723470658879998648273389894327769610421238832652768486041796434619973636923090881045861111098358617133968336019990406133466305210038766699603889562363908120172765894812158898405989140097180293715957648629189395847413669820215678228510397350281637948607254339774054296819955873540276560530127744526310515554118183964935129283757777917369946163453327120512074707724246573971227592743149728026891299099814142841852568207125329542049212275651051954092227397829514218489993624375287923032408525910179155038600780767437152434600631719420036594050388510043705678411946449576066939404186458936094141432632369102764513215476850354681475441005373785368663732266622903008379273102137157868246500682696848888713012603771891451011030542386075329937755978737878770353051535454161394711008610172465390900748932785013329210767824497024148664452452563773609308997098452066617609842979408651640610129322194509339883744353144182568494626045496910837662640002930249224587729025453755559416988672739059931362083383469180030132245596077197715565054992105735490976383374886509756864682139859409889078112665039326153368297141733622550945939030375289465839200568348115807279893187167480542757712504326297564831519618574865521963822341302307994369306600082358056034853271902401489452886260141513512103423441601662589888862716589544638905733639653696426902603834646964299342685861596349345859132939539470940492823235775557695746908732012032754082065194581966951401586873037223928365650783732265844529387394543485694125538183742685210684936590540366732589499399617081134835284586446775945625730341113020615288146084995796433728689330094145266933828907909906257556429083935877487832302229365124392612777016774085037976844536532297710901316645577308903312904923292221114436823807931149561486067115576553062646572968808386792664977446762412300448696434839846343270629618745268063002761483901395034791030473644831805245599475069809912783803295231865027381262183609801707247587059068723032369845964810255190276603199391957962707274679448338479291370338778727384169256236702931982458264558366799219416064450182507350514182626537301341770317487286841372201873287651673460017256591297719904416620661087322690299263238398515979775031916245212666712967949218323765525566168948727598924856829445081366656079565962239304565363595329946261535301354117211942370082855340033197491243173971471596985134308341806151309558066406300867806024737898023667165769294764630288594605268892057498113719757126293183005771548132797720864619674024060224351053083218013529557725385620466911970780659526018764789143520098619883432988054657551454658181793066242561159929728902595309094138679581092152304828433328683342485991219429136623626361400585667422626658231303907962841773220743113994459542044726163930663661586373695672286397257147092336195165664389365704746666618059525766891571719277552538690896637340154495659671030854281162168476037640353263128403485856010880759764872493994987198185134573433437653873175909055230218554607586555792544614336582629457088129262146791560602006429471781235394111735747337054696937515949849093302373538969478887331698952867973180579880619791244823024364992978485900782853273649770979329118973606328767588102502288737301068474943408100609342413649846155923618724213577110625525960974928941699835082582207760221059343646244193221181479727865491987065159070964079637348880597051507427443437397676327828130672753187343024061128688180696912892986292472115139305767099700268921780476836918116850068655564295960028862326960723380559351782227508430938920092095132376893753802399183037695293835581662087297448797461750364286715332381670684596273582033664660641934319046518255193905102253372307627625601779494442989067545778749964915811896076019660648941746992298904751168249748574518523072167750336761601340221227866301190765936906661987807528717406388134296128232852328533083075492840339947238193777179197225421207028839909308515718452593984053377172949664217008650651392396560430914866142170695187639543924645597419249035623575644765121223515338455717766149981624974747655570980945620420894795123894597781181901932638133125762312622473347462604512574801221227080468235369519821938033294014218931038844231921469301814630629395350107219841632802094561429559897779445913429268563398224151935015285288378013638924401789518468732672555208543526265886481085080947701250369637848239001006197899941514677161264536654032386097898135554878971934563180319512708673312443678962640699263535707415500689234889742302520253645328919451896137831400142180609087579803995320417341126211401013000558090034812311930779305598669920061104935348415862783670450417217451104113129874349373844313119513713184133327824658753423314559529991388108684622267660775826802461077574048110905137881704524218710916237153196097902545381743064522813616371130804175840652267544784099558119118001221023871086285751885508323190977242922364889986227840556343222786349188684734921288062382174854814738820047647845677569374117539625192732997836499666532811604542520885855336171139771297820439830291706209543441648786172533848817366481909894566807993081987051236544236071822340791248097648783741786206549413171067677132607069191215574147497401763981592216323929344282605316814300882505923660480678223613766089456984550891759199987887483987672969764793994989009277403284242426310475021096862460556253225227032771390081242627686882516289283943258625965416461733926945606557223297210921271072675191015080998900517153265662416606639823512078565578001656633263681827347113272053748967917104225637754743974465162516414829924735574688218642187341140478739843035611977101166918351358738368587842704062589891720209963909739637994954216673973406981512313027721157873317439817533803665345062845734227412284008432879256451034880702436175177610881118329871209598443239616347375375166699196511456811842697909197627033258380546988812860782471216234662514219398261425712293980445197658546407756455674649961067854742673637964042739933760658127358510641565976921062759712845270694019656753772810504662185537978391409406581279336378260239188690906151677572859874960221716046172122906764806637694037443369277171375398123975174166996165028785046867338874135439812619058590406248196648203307927137214072118916893620367447184923425324420606152326097361896086694101713388912755568248033789366223050535906744793109243660048023321314646867082485739514485541110743014167784074876602788405917950178214702915534668578748001295345946632163266467211692027994805451543212270831760911241359359879209374309264308548221494935559216312005907271104938867420912187300813211997978536559392925774634785281180299850163651802943420014569278398807551244287952408438325355255853956099814117215559612147929596055966666836652294544928491437909800665214674388279631592124446768981862995172417299184918986497722724317985789993299983210646543761356753216783626098503245176409032177892773887894797162866451297457815683716820996472384132987376978981491385175982871963971326082627664686554900919627609135347910087624449378483639642558152431202865890293936572749631309570377604829649491908680705290716597447504530132549495280758565228890523611532367195840621281752073683022854210995326331537488538891843057787881197572520037479016615580554906170644341036696448593195317410492068217456686775222784589651972701081712340196314840217674129137476838968888531115437261228229700964118367738416320404739311120320792221707799226992572544259528876380631083666712874019900131035790258509165001728412028506808078015559828225669204966450039899255045436329059958733985508279713461911781700634193127232009452977167671822220537697330014900615833294198272505027608404339525359697537547600115213320934377423195421086870906616977390021551153707473060175447246313736122202980660451016329065415858206455591174028686055812149982745286455184039588728191551392794205374299085483228912179567372841316770435014215023023735551894484205213751442126756941812959173098081474360913262544366852625976833119457767639956283205171967358421609259286821250076099178617749849285731302243090063918805353145106509589121646542661805791891527260652898035974801454205876192965703742733899283979466490653576732474247551417878745105984610570078709001024778949463321981304124388500144742003257652215964147485034316335615114283760176153766186096801509512866374060832516028867872818635888835336655504140638141887641570001893035039392729787129835954266733860585162548661371490520158837296822530698318386139415798893138137908335188895831322322140097078339216162656428633511191143958251130308619712602667730882042234559140423592660716837985241499211406629447691159556007341924129321847025271046297372770628328546278669123507176276377726154846962135653538497085446854858326339478000476321600194047375307612403164269604533295827122746369671898727694344757993313465925844659100031175602532901378616141751582264606802824172065089260486616737933266449353665793729958548556348350240903258307912227351446066062399483026262200421590107875268308457433103312890231613009988200276651108930802454334895059445401934934878386577582924870884805234979023399969694887226981508125014377563655957845789859072678945448331509218757113581211561179726978010737608048475097928242574276568165420072468542990681009238541122613428031617116577500958780605128604757005758408521105709066492981271163661615544855361606083707035938249824007273787191854875198592247957829764762794923247008492640774470306475921556802146400049958064954556149502100708736082265671597322578617344386099636379802889072579954641801937733067206890895372296581027301587237236914589846437315118249256706824685647470389807177407734208539629525903708072637847655049409320523396053712452873668882675306908941601453366336706630686148357333949568229510942346909158624876382215847829761768854278726977724879964131184863321422348604264959491527987785728465728609796072939845774194736037053734472548322501687744186197342288777476806277880750830101469561297288443848609332628093663366762342339662134087689286358830552513374108254123848069635406721846207753200095345542772011141441529565447069598305258102861610537832735223292763103946802445974782886049260900994756975707329913342764853418493842520693933994730715583125865175847410346031843427634789082792940865120071854459259855168092282568596815361523800696957040651672938362974989218407630955473891316200762327248791670442621180489131852018533010052511917318095725156898261073364795029216333403549655460650254227826041251451686155823768505345233040674337541379565896025133352578306631825933795048582466889999729715938987480864256992123350565177602417053859312307582107763668266727826952955413412822207459960128950026279293387345749344637185272732158041374790841652464644436608499166558535838819853414941768319791272474290211469683312675511589085389487717351381385407214763317269665610365122822121978427275479414075859282216934675052211175878532688954236772594685253822192011528728661919204737401465172335542262889289739514645153073563780217573219870692786498585572840615957360718061920192832220354992944859280662622354671353269915456120496070315360049979749309809040175750824281251392094894348780471789810160761508124352600164850247332239116492866581554910462067925732651126917673423192220165520620997597462928740777350866869248555141595881292615006593474314845172974087870983397805444838806616241008161324725793369719479724104625384806995279576185501437355292168406622557250355904547929512281362735851599039877168541040824222144882802820741790052269786437667484626645028228473242207784850396017555081061478530843758982213300326713804062725344056845949804153758415928431825652787574974138052900924734846644594363725174969818945331018291938873108926591428539071212574540287010164200601319798368950968580705239081283980681983000760518244672898643798316504378535948803725456044974095593669508683774061734905482730985254814330171251302125798285984688136278232911793690196373892251306882672345434090091494252050540484170574760214465101243749209849378358924155275155359620502557179885477171146062365893886023767710612519189511586956420893467337837104552096065185025596922151706066008159199573903812392784651132550530571177587350254124422905955205698961696444520470108291057000196031245930259249615814215815655999549565285054712138078760676111577309162380944155881488723979614208464860441921934797839125525853495923001679521513363242950790409984060614599064866281167432981677516753227198446323210690583337469289776125110504634809454355462538991944043770250389700277522201201908489203593001934770010107833153268075484279357532308124012678132519057877477939872110770398594453966256771182721111427534161665128548488223172355544661330659101911814119146147505802235317049364164281274580483727202009131882773815533069994126265282828160901142393293849981365169758005340997706021124142002757258973327129315319948361187822248232758910901087727515094695922459818237044847348301625838220208072192082639384912391588688767444739064561607083350918470290118107539403829750919406824485808005490169106886208389286293056893314505022234529511068294417752227965183297909127688188248011170497204045071843130078164051363872960123855378529800707762342216133463680018372047459770060616751611090525015234738246303637835984270636896779726765246162171362773134055376975287429518338855371008534434035281932317670730143096719985917495311839018154027035908980823152826792879240925835124863732626733274557089717345760067890335197948695328192809322918447371588683049242279069874114262885466085158216926553117707041816211996733249956347908067715142904107670083817406822707584485708267590802497153391619453950680773569994660566233470907159928422901101238849697704190997054561459675419271100894530415360381762177205453392599929342846878823004193053708388990618033800981297604042177155015544256235479287923245386040381421055824059564367003153588297854661411512330053423450283795826826066502006739557790433978318923245842372307198334713060995613950549476557149298897996141487203951074833528330816493510752194822186020379309482872008564895727490196344491991661824323968540316686029886631940766732150698417935047899268732515934138895154926731021523657239489530440855493338100352783706547547123684283829092991365801226806492069834626075736994387453047434075034425908475354714420838590846117311389432362529440879830111141911063863372822401311490090619175357235659204478859947274716846897808423145683331494127654510846205654293195405108892085381986035455575352960988725161629748764487245691813070724264077854359113434601903852041874419155339705642766737558815703084269751331493801630369888963994422416439138992953755252222653937106907509634189566806788855622129246358755904159256877873584940884464451369831121403747023679803842858844165608945909697311462877832177159781276065802921785435671260915944915181222285224236646484958887793778035391121489023986848314252044515153713402012745109617939802839724109011216003578868775292563014431593342853323829136535809511043168763841151871423271254782858437338849734787678233445303125300897803208560664684722064116905733651360123115843420118282462984475407786689967409510676131418054255857678725481759280783583043863147665246025812538991701849033752602582250233039185639714486848871912588388168022514410674273905071936618448515386926267826450548061768661838857073250413250972132812275079833488204355899163173448384836796414107561915856421611121342700913550675665859197824854682267065282182589317272296389344222108075734552084563142522051552938459162155631088994051331902605115330791012649937868517872169901710408036357684992006762945664601336350846036182073132677790290165024555029833066003257194752156514587193427137285898029266294342354493808888676405143083331624792235084763651075326713001985295687171102484881412175704086347254760508312114917475913432751181393470867333401577869424072838125783194326533678875026080253610765350115510166018558924984622989114813610179260973796632830991522954680743376840546352388399398816231223464316444138670269215682467190456236900537942682049000135379266762219489796254112902270518603878380626190477576335520614996278525260925741691981585393382053572970721274681873758139000098949508397537888583720349633935963683429208177587589004319045699914746485680973232904926542374007480107721846342139865054081200009536219283648245478647682932543658527644646545616343908308420951566431860645530556888448778360320875245914030404270181753664915678938768550408669251743183606136255638037587841153472191198408396985883232994221476025442606246079010443492600028972342215018042117223852650118431143612362851254907662009457533799655569151703312971408675365560855531286462116945869647081709067288739640119648069132000263295620798703048778913283963123254300191543301180335332835822116504478838714263657278589228921712718995488649078247544517115758865766349626882136682772344553231105943092521568193046621881400273661783675077010166412545165135121771269551830880254821707356085950458398710414997236867318721523361295017417921659626579077238507939389429723993449035950258195813516785693192321701632193304266618967563914882090191263112011146397902443507743978976133872715041319748263948956292716579371406477450098267783940891419416203254341145307302053120414317624298892512593638664261641163135651664482216658201440445949597038005625003122151085484609477493121064570142048117480560837428442414120940389474801368487017527652669013916281056623694204539741088389103163683144597438383833932206935903807460908763498336721800434823064194179339645417717201661733064608795465678979636654154229339378809522368936912322305636067491448267814810450295005279816605245619348732204712247942458720840870683941371075984123164239236255607212590627022808321479450072867692987034532309890780142027486954556540899512583402133148482527221984216200154829791395396733602645627135307069093281056994710831767218506338909195599342217219445461335784471455529031532690074061913617195216204578274540565412403133851639514646182644931991333587246892638212734989093259477006703333586029697948353407813389205022445532959588233869579196991007682794231216904277293458289376004487971663762716113466304248648778240549191660530620848535908567755878718786835967747410570585933111427147590057585158510585400325664331768344576338207057248619112473576033023998917841258634183502391483564115429671847245679829589571519547701049582097900747385072126075361561252999119383688933924257560237466576727991271747163643975594196359980705088639001048551750209362963550303445249158850980039689414016960660860665636224339045193096651472218523381789063668495131896852786454810146423788974134131040250950587319196762693470183250860699556001989030920268204440906891326010197386989191202415646109108187104497766940919218842689428457951969956518692125029827775057399905202942093727758885497286769009855218879340289146721123763093629313913787932085307480008888708483350347303654481213221206366616090056354045933609269220493431047776958836067821028235351717044634527558294900861108011464043205510701593670306959514317597671272792400401234482311562731617343973544335628841274484293443086134674395188742728250848081281700920722515794005111951827216987833590830016976955241800893388477476318758969042606128143633442755628889944631990670812467998359828669559007463402417690617619464636995515660581407752252406604106813023002318107504163237506780395649154871417141467657311133644556607258598300261182932514306063726049458578349571552134626304153546855406132811757854311005546296338018199028376592746778201852852050442185568064945635892336980064552330554855560291693301101526126561399626161253958941324452594064661004216411888116181050853921404338939789052644831276678317258909889952379412360552319943602486001905405918784938908181703096537310272459206780789335176588411388753661679382959663979210434828223262586959460101272455071403082673215372725320464605704733821764798674462601173394545657345282164257361966352721666190124903032573190461531788941101434522132261001461582545867200897575158877098833719085301295521159435797737464827697589242103083664393236019825535315587962493769921632190775943222933379234423015448359949497291368544994571773653409955138467763823459626360760681938977955278444000160475455849794846423577635986753084248547438779542149895052583117602468112631517352219737039714203154667774346988147032090834719936640809772122428354679111200174718396125108351850897052558463927878157554521688045029094033280388646947676672541319094921340133829510714672066519968724828235026168688179290995764148109917647198005115043092523428407579276898646708057312955873126562052127743626876483526117323787306890881780020778312736298378369559868936871773626520785411920485114821021104904143122030926296165426450268252546091291864857189199533906835773471641116501765579412145087338634162120953734486625578138421301499977038161885534143124864308080525156855556332085230954808506452658536838099631904498933445035538854134005954458239576193918149773487934692320273294545485905723819856640427680701592232608168924289131273524861841379801528827144803867181953420564216622106434611554693811057560331737357492304732221056203577586032281213625648384571717489281653905744280484756806059820179090045335924815470012973886945619808390882177907368065149384199983777482255074619301088659955483395135063419746445120139505769343485822025422958876693709461724663536004726491259455073960419423289686727624144142394292698478663518701833714791941633663350418447610375173849140138608548943673894271919598826793925984465029734790990915771131261132761051974544601386940561740310844403674424616979553251336330251891696633921066996775428204565850557564596394407670441328193117950594084784626899352270926788763569568768202710718270168492919488973133889457106967968413892478824243250853853257216749888168225279677922398594870563570223617845940733307874959589138262087479070551857827503123102187458515329318959114929997895637220842808729437908223183163945711388162694832566570096124117622181896800629231836773536151983917244147156079926357416167510847919371974533973269252250864842029164313637397218943692397439384835359991142311428280765372402036900575665729497886497210979374742764041320443639211667573474863829673796217261159677527980682944662796011083520114607683105214414351337768990481148924979556668035402673876834282360538620213227878202317415976013388887773998130521529960031872174164853833407974998327143982720948622259173849092581460912550168089370491023495780923455593353465552935779647188981029776933533065089146385207025210168125725066171675735943744541363107147665051814672630127669190415720447913354069324749959592422622055073419586780502986661347789234681836807659522714779370729804952276286127811615050103858835012372161248813521936737262490059295513845782683452475291571468852649677278855370070386580565078839923823670885940549931744584964616763423594159499766840989964787358222839362056023117033381857720346933413834133636215153482176180219350890114888611699314303161241942578846451093284791309062653969657997580943428719647980438672326629511593382449032372723799330875418562108436072961121894837407831391191880261737815851755929667935690918369271305958769979552528914391206672705490261899555501755857630043672609894000246399649090306088654298075282575508581893103527189021626367976331567414524044184640271873844722332479912579077936242155307952572857586090508430064046111051431546206708108350730632593701195171585334273634586861468221616743218268396444917301587058117548236723402898302715387273492167528517483855398143569822496238703074226407783738492154579679174322705804677374981866918892714024091226765667829843268634670372350451437538234708417765880531179618405659959246891141353534998562588214342055439734498288944856800343647412796496065989062504055782022916013347255433076278793684377630239864502289677567692089919664681353972961927399020147945302634492450578999115193271799160149876773105171444246845391142818466324560247541598649056803201043104532298721030119207591000560898195823091420656403101464024481654898612097931296347895111402039055758694191225171873092624041366394067240864400918514858718717514308077227505524551884154715688517834719244689677030391387470675333869760964912509567651214062367534756705333698779334580983730206431883364664311161801264002578260461410854339848119255534578267494881182915306693963035722945316765980391693126860244592517164830855843428975048791095018567028148661339133482627441357176294827337545109294155324901454276733882403534652652062380547660510362992635041256130442062983715700698398181796014320046596133019965111245133435890369454616889657023800144962364026936726860393868574202641867161441744048334860118751772248765413553263106021266499960640633304441176459957748624629358131014142382138489690139716210492409010147485724931139794609658099151433162752935579271165774948937684979540194353875917749499001748683440936949038479669407768220724575893248678056546509608728719110635033617666628994272117685333976653728670662283359568371997269992277255465132273254940923926281446693190084094070299819400772443005878578348587026184119095443835234165581304536399144580901347908295739935924001685401038408553123212144257822129015312952338884089079509335760499958097434151907554841682129004067058691169183674798891453010705593554715462698436867120597923703158449789709527291318867392767143006494068982412208673344417310682116875719375393249527414228041697455581821504118786889752588846406762300306214416265149908849493791563226280808006178353637928881340847000134296837963389539468563061880510029579924472027578865837293036250618800864998279792507921708888807475858096197904605122091027688352499810439856228355910307098945533653890806935068637971918241331929289146835761829104161889698785886642808833041018381227075553951524610912419502124296100397361213680787137975935785061570360005059660755851939447525874713594400651616020308620250417403668313437598365143391593673429939778091059963771585502464597949428694057014072630829273440721276814940971954571745662496020822747569368642478677267565215314286695103047400909627543821629083764274379911802463441844435606846755116741524452985126909550959341383454266200483502390047380276598751500575419054097384126878527445825970927052150660650062222744090169669804614967046300699041753663184077533948591489783529981059392861682641720224323565670759900648759622063278807443226934507161952321818685352423422910587595078605330387825685246842271836089711214380543995102841174991480305827736702427508495684509579562807198021683817332432638970839926806103910488684125414202557748859457468873007678989844143236269738137073721979094635345377414781024410862438915575900461026379679137084247686675241726563368702659016819147739484259416117310156002157346065289575903954668222905967903132098777578338420919178279626759782029169744656727863389972494286655126330869727719423586735175738708508302608631111643308970749035003448683141635824888634460804228824805568113786870335753344317750025859354306393059512305238735707915433963357854695609801350769718874696793045126648692010946892927921157588727976370600382596683874883768449731053872654341613717224531812426253074346639811257257701823209884139753229584364925610934943257929975158554721373018496241463532403039141507861799647389063719900542148842158980298723316822554405403407480228526075747633825017506532453931213232780448480878513545656859457561187460816859820649964946945533190086962692405150856802801066663860890252610796315034252616394677666065298794936934440100427897624120612453411467521269169409349461913221718070674348672381245209019600227709193914996811278115382002344046844593578643572939836549100368869524755368491684015000128624497555900297627643555820284597066113498021773844205778571593367606537714403903886529626792524977571594148760052484352394416093809460174765140812953015161294540560031529879956088491505941804065130752858444193473763507246572557146348732674263528180668073986070078064571220958040008788286328682712312583673949769277975568695115248072042235087623548826454327160428874899994140932275143095728522160826497739950427907798511238365169687794420177265199965104007633819185171199863511089343622955117896335693208244167326201385336871077974248153363310493055164507089184477170147533261647542787461184280210522593816878228801009039566056151713768384268098414639462238762709395421147785799159526984101804913073645645031744271052238273696767695471371248127456447808559350615177097015273057587687520703779613845610621528485899853551985790711141259650297346804241178817561498747425505274805775636530672569406429961962894739421567854959580588915491760476798427108804234384150174792240905591195698778738612844842964361102604931853778698361139247099236980006845747782684575664047574099386298254514625507339343124349077799463165390797186500331274674357013893259231095272315851492993845348582231742132373771065265584037942039923774871912248737659692090032744414178630942301332429878252515942824939794021694399475645556700108436862851546997557454413096184590361015659555855559252384642057060828072761237861186374901628795545396174370129048775828173713780064865290270205277365015724465165592132773831848321400832767537925870284136496603505446734914446273160110008033896828540114693159904907917679740791578642374472602855839683408156127280029841678612255785036854410448386760436239033891471755681263136333041231157330565860087366988457639966877843527182696300894557682055046322402185949499310983859735818842772230587965300079251744735116616276749425743126987986362848815247539653641542436771765397462766082106003974112346454310881709607435738038080692338738056609303842549183401342450622791172073791216988483673627962984869086374786061204314916363200296706180655408780681950974682975699779919455012220270949729839434855530617597252441925607545542326684511607174927175710041905641601432009145124982344367039076910724350157627701750550577260141297588486861970026309030148116893262704591043095820129401773914667259554780682853351705449421104248556299520477397020357915804305091312602052977349130042935305458346753669431836282578618891511386626347977433040544381717151651160352463919973481609458862483123997886674692621564594517793248824099597263362332025766272094428172710842997301839620618580688783932152449509829892584148616753736579404259353004379681035828548482148035697302979669314014843663265722030855279409460923972750105638832782275698619823542464595599973880798312953411772478333285993462894045127754719610403072247204172088528795719824544610938516176052315120220969212794780238909749616076646552469557143601148181190258868516226963069197841814832966542738087013009996356213165590208902085686848288395392947716881407550094594354216342668552472245053450854516673846283206742152586618134949374491427848194146747531502589872521774448484911800070876309238728384951671753842891456958993750730326834993116326975089385536331782626804567855435879267315988631421390181050444004503766083161514382053772458815174548560368241689029651255015299664374796066764524679158005220364070604175656806611503576461503059683009172400681967661035857821340794897415548495290538551770367272492846622411118788467589652500611466276536855200235043953472880602213332487812404978991164021704926982495539520141515877177403435355259634570414236748966103437744377636462047103191289336894509765465478433561459513799701083627272840723180009599143273977847662337949288550143417483718873883314340138249968562048478516777210897500064993235200518618063027361453229872040854743951007314099074571520515769324516104378060409712995538889803832630573085814958795507347169237238875799739409751398151201916134656955831901082554460470930222922920466880748050105695759836473662109626326851905791613195552826265562697022321823735411569585366526871450787193362741307805721052653951120912029743612800312215162280877897425110035366088505650262541103446325116053472596171733886514204584420515938781243088217204758700590085536199887296320311483720286954568762188077813592909889936310620215383688952229930482826476062780913189102219626115398566458995438891107687315791554635770485128022770918196128149508219388778237597657280084166163426777210203235848504463197739274264741341818919968610094653287728256797972978551524912183523080854884224598410441937964471643147066512638585783238607634190256599806122357439002690577828693373467439192701624068616541785914783392717489497827535504748197979634260913402111029665493835914422873264855491698157550228547572494632114422200202708698458333763458787701929076175855920435928489317481395500518965045426199970263117143552633315421972138309097086322606986123623895518171520462945060708800202955636719357009482814253020057239875018867487865026480509412566954967232941901079119122889918717107901131561418898491888328023641876625200899350871374018261311591617347671636367111827333007754566917714878605480686506429722855651796262075717733012730485479262988980575284287605672934219678456014684783171743345701410680801702395139941724019207217248972890378590310714960291590587780173498779877678223765312317061971221944112800578062125784021478465568698927634610525823216701331532638087910377177915361971978289089084631412753560277553803668364262180129883083578057819768284406102113129736836906323410463470600418883207439119934217273918866077166821639136577355344050534937797296192250982710799316359356763890187881328834835431018694296708598391159450653093673473989768201489563519210201035202084860012909715172806165660136989527736553292442020857212895081269149645353206508954001629486286340292735469124579738871002998305039118247303042401676318185492590666010780345726828035307359380045028385817480698957607756056153674235273468280442136567811679380804725608224800177555406934973704721051095042512841194420205566511085560503575450590121425946641704520411127612522235842779631985260606766050074127011037719650699894075781484366619344208475062434019833264219905891998440711879999969508332378068481252984821649541192054675303669782084129667183808691557424281786084275936128395149575696346126716186369961113577843611138254747757514323658990356411433076168551991288433811857978421154658950937314936147475249700408945300818433607819014587618207357954579635156262878894526237496995617628714879793003357942866605382031356519323260324006332254425036673705370904414118318153615728623391653321168899900603103211820430528149998243592059968547677511650311246234323803400140075483914313752203029038649805587355803831356029891093166018029430759828065382876481767650371638667573878579873510831348081446191674241042656659442322398184592957449708586247337932204674289007024815470182773167454139283868693588226729955533551612073577689428084968197109725077434297896757719058892142871142081457111060849212053869514497682544262555922523542503148460786293927871165791268407453590841382463422525732211269808899231090212598890537602926809518117190003272657243526241776866155826556335750169215175047997451372069909905985453494841870952339702877262948284860041332037265913156084454948706469847241341978648794147274600922236997330599369575135762119829541133799753699356900341883653178873405697578825732165658552572984755297955317813290672619471978947110323182511235046998327256961410105098167939254926249722133712710197618205708136750497122101445866998462566499881538481408223760584555124006148394086856851642508263841351926757396165259260303055679115488433603703716019762162048701041023726379337082403006099446970077196078162033906448475642928939226619058378319269160793171217336052214062191432731792347103417272850148167650046326580966174865320323960041518583609095649097998459274451070224557658470151045113197219627237401429142824005078616576347237771204122837519735395028967558765579158079696894956906708838759343655060172854673495530245185032516599993186698256928768941891518714820119778152347360185580129896792300014581611778574089111429228018683131545072700102618355182970688278929092909019109823719769455498906484343012503558463782671686240280082143623277166668406957412849909019068047451353431278983980314459600840661411847820656085119814606582962002218290965806689938942511434788972786143146569000739852855845528252960296237000315351927724028571600757067078546418297970317297295920091600778528497189323999404741335407856563301806446532257436758811579163856376760602606478772885477245703336765246194653908411054876658745409949689299954750445765479499386420740640729791171862422159178832063261974467937267770282699024486506012109154964593420622973979770897740673502839799775492564743671436194504333746216167519529577046274295221138680610401618893320710173598411282338631078465515937853806523092067518241046746582245392629779136280957196644573934917240852206077323185306187692600518237134764965063811867580052577097105119956924376408177564604235159457652605079881614103794159793656813519661382452214010473302717692678581551127710435193770532560115242532295880040691907873225470377985977278609155649292398726091520285880744395059449915301752906349292682113954609530328922766573082301222152942173190131521947709451698924944931324304888638983069567466975066616753445201612703321485540409615680089435036413309205738515165576104468619941737714494340960684670395335841088534090465772817789763459605405388110489492690273372730897843245812543812162936853126971545017644069936719620892945802007301991447332505510999063004338419561456982321327708849660200717645650206472848690619845084080680884687773326975380913764313564476203623267210193471219287464875516757409197505539409532381311944054875535313541077606604263640981804446484045889322271901278353285944352496076324066052993588791601619779145311668292862602159481667491082545997594855811309204854276002962165265605407565891361699836361629625616224731252621713334666868343564257435641686855077217387498070282766585074612897484510735473325340416379168723392648823422379731811209753942759360186025893746671060681169708235506770112612236644008290081382166437050940153626085985610355649628640771971114875620858721242527184681630215080856778022477842045009623699936773350319036575491167959019981465785232337809557392604046295099357819552302440732744134487729228778269698188388166978145659297841427501678512893967544710850158773623920682774003190562612836918726949253574897971327809965678153447277682380919997364229138975565921319351542988808359327294644105103061497278797056069655949748387003832743256599810726563214782875678537516732209904357146675285691998241949418009338643559861966554671826901401242213069135312254304421237449569467665195281643807507504982570414081784769233114979598867388034604052571797371693650028011478392584063928462912472261122444092537046889213910835627722721754453899697254176934541425645179585157306969036037186380746578379790595598033511810231092418008517957698104870632921470575832229088334889485040150723411375589102462615445866394076653802966614317560601522511845053719186348943502771884881532352465901136353187914682147160050011152840094112734491405234538479789025274763140977857524963232515994175348119151108727708088104861831194411453075731654573177357830757032145911052410972145828255684118284042592321224132843780227024638473651647706682725830558500171513571014748602652163017302433829510179469447910259528811015157700942052527912157929510160209437280889978054043288229272451498529542303104041825187159523604705945063681958220312510296955152968485270944987116932296580301465230704485462764979921068409987085703032645735677696663101106541124950488488009471148271709202297915059612745295970509056796654045224175314887131036513369779028458187900272347848696205578556881691283877078790589115971122094123492915449913248463365751347372437547414293399537049329251460813345435861985979109154373335039635471157971740725185040676376416715786200367709145154507248232770442165559154516167863822330798292704280934729870583212098160497024901809233074357270425070564882589825632021867522617084524147372555368383701429598586006578073917653993534244585739141868127798128979173653473052228367274368044914538267647827280323101201205387431782499497538536961827767484269675135065423693923845376855527294313206172433729846475065852883809363377964402723415755307658010832605548761885707385585389840746848101976768543651134005453684370269075827854965712351443826322246459228976223227714164945274918938472535286846685125775115355534232865732267103726797183473905187305523221674420158599474609724278031054060078203963108405500579570445977800905207858751962468932417320971695471614012006884245318564491296541287553163590978036249758058286843533067288282317222421599217563079719077037615890211256652063944623211395646932751081799179278377576828226633760407395513742980532445106348404997299850085512620039786677262051597121172338585958201639848599253554806775195945614784857470838302207461238125630780407260813856017807231858556022841160691021566900071578382173417912526079427750797776520388753431667256929877994992447359320149107861446149730535797633762974070253938505621033729919235948397928831773244521676856323223667214833019641676766492479832864142170185256367029761821781327006488402295204516781470827220096328401061612740944394541420182815643611041370295499756516137324646684354210640072512167644936660823212528590992820147908399221135192642252896465503181422575868606460127328207739806769252744939353767938490636581381368868657259115637785475409016945111821027771616516164905458733745837896600761246865021636818431654752093197354965797927210219317781055694667923504718701457953554974910968612107959470316645146352309138221492372021769796256822879723551854410871508495313435296732420493121781498513854455975581418230880818625074378081911560185220653947500196270060842456965870114021492959545086257501331718251722249070438427443460420456004334522287681990304920959430740890199357003775465659069313663598986810072630157290506862101459375598153296284184327932722036350384605324472813729045808255050398898492138480502269531043009215610082098237513789095112102104612000894450688431609218321299826873834461697048537301950947242538086677100678634343724101906967820807941926002058596951231230671467675375126067764357549041625838229740959216734632087340665263231960944206942852399172079113291609269842675458025922100731182970896300147893298088589976616599138542966292690108313230637301698321379685498593775692792329895134179737832157082025177053879507902646355855387959786868787470956894002611767814649849186548193713052808246926584085958436911407011266480260058997907212445089824163361808347153607341208754866396362906028850206829984102933806709832104313233051434060080980271440226070511120871399872247043945511026833258383765862003069637563096228297078077070563471280877993736259999279008134832330820085653611886398748184129164152483412451737460132482049063032571112749059194314884010718885520576200313404318852065885194670709349343033560620794834265663641598257808498961494236540701430617659920999655748101724328906325725528019626189922892719931887236146086538302783140563297483277994264526282372411747632930643626965808991021276444281267433106014094910532442709902466126989902053714847554272474731481254662030955954966079151300502405530634505363386983068288383881733754458939816319866894257955545510478694625901119396717700233459330850743775365883860947969752664752952902062148346764838529556135362315792458957470128003793261235390224964718704265345544706434327767794070154921899483145864927182961784801158033443378799729884737246024196261702494234684050600382087872726633490807179860855785774087873757263931317442271210931535630296362199218796471845993377295909631920066517393951952523645616000675549933642524794687098990409941453012554009005413442600071440220352270761388663891070986209264018485607616448156503871533951639616183338638907961138845343810335278239391745551082487186507762033463519162726418671612723299250810855071154553664040922674053664470455081834698867245534671826012166296610100726679125225496758346864173350204167500336470880580488755073961143177634751925066757320807972994913393585931047582675403290970678237126238897905365924049272420397918933196042675911891699415395485268495407183135104191534436660156880289693613734403806834005178710373936035208243308155406466851230936293594502955883092820038982036583013507132503471510355284111174581252325608617644079699864318459765052077964306406974846769511810102188280224128871517728251614046008944007237334805089930560771506988361612057453605756144334667958440722496797763345006833888351480676977389050019583482317918479790771148627923158409330719721948087536887061355478303437150438271834859016843418699819545809942309503028664351056991433859212257380786596441615949346208947464835723695111371317212936109247903094498292315005562997701962623666550192129048737867441031571137244916567305056074079367878374830634618360195391350886024049481511708140167824432503578550467730141305465411879330939812197091839994184426027015386744336500393797115618555070408933950148120400365287044096435437386333712279976449880317772065963944505198858543441953950567964828384138372457936791459002168512182469220745747969294419644933839254911276782473722423382069000846009269428583396331461085505074805214856878065221319169062518625355096112146813762247009254800316798227330101691588718111561513703593361747265278297837847217141187257948032833777924561067958813381069004104480811405569027750783874705349344085497254662502884712332869790497363098029444674626454453865523905968558904302408253688164293883222411536461652056365406981079617001405016234698048584955345027256351151564843179238772353478550479386770099708536080594271966124138876051593958580135757224674253678927130854048073008563099035152474702894787678233021816145226529187149626124123580861532305505337143767156498342196385310129432677792860499592681150236496312681160691611240475858785384887342735038457849338028772886561411215210961257704952212183603550564629960853688687818359562347167558964404525157989638651598020627077002676078650783514314824409013962195083352171406692024836907680245910226561072110436741876977751952684122709274597715248465792579371466370396998291044313818815906029844857739117013363909939386490788113988446821591595057382600968549288756087216849720434852884524250097981768949952007934735647513785593962941796035247651233166175500817456977614489528334537200798547104018436123996154273372652217671837626594866098796221936508815404479592528426575344533174536023043794400101995887233389970591323756189173754487180005890013792462283331390640943225866362912633361479033744153088681573008223010126789489457209786869281172922302035463658967837604305843785809435773042712084621747457818640225916459509341953799700488080646653131553371441857045874705413920194778329602109753792533878762835111884357910266796775601578215769068141395310152978794418730696477321569066274182022566175393324685584539455138084793778451684319764692988865707607693819142593488176550226748389643550804098506098602031067243603138008910238855611858006753002598325293903630711616517394675646999948143690553565248615539257497827310611282068037673100452441029717503492513885132269178951089612697681877541939736455682967967953273998106719425006201863575129287403659694766511935755859478588302467948009968241397319851046822239212906106578509641962069505288074611287556883922189250343885613327312321389671272842933698341840323686675171409504634048534915529978320313273061792140545518171467712486553091515912371752536794277608239297067829622240460313235947484606707824687565625782850917133491092088471023194327895078855299631815494697501187321672517896451015900819991318358986280183826390832666537192115993821102404883130794472819012752163684508788887761703653301137778448373652350712309565104700380482616222791875031308386322182952285952537267378884719068983053167085404965879548293383928262571617156128266386436503369696225803220461191130527144135505147492912560279014476827510152581097209391269628258388058442246010958234647111610235090252941929222944531545749636451112265795743881859800234387995700296296818953453550101578780602199876125061849321624023907087782134081195263849758223579229826307463731658973456282142120557216406596244015637391224086911347671067719546444349651263831944775971719287259307635770531434962443200688386653194704385647820229011344236989296147584049847935380341525496137355269160179321099638105747911513915408893481071599523239665748582380649777451331738472378777523332734882755111822529585720825081970426440900173169789938715116860688895375683532679359010384569370192686983607967233931469875590767410852565657332592160488570073253033799046949000772186284038067722203263445185391753804582598397158135160674460724917690773734464414758628358830793096881336852520950740138603052319130193095060217712943659367503539053782390844057572811029170259364681938758314550637391934653726287496271195642365967192596743468092518292801613439018224737123690164406104773395846232146283994124949989066304048293073075262195664268201107084266127673298298263639192781146031493986223417373490540537886440911704928451239247130778261470010417001228639549582612102711770075640058924853144287980155299983830425373417702729471086622923240088779005883240833969438478539208070817737850635420346847170086092953062046742230908209438358305765410190584712202061947696341620402304088626512487755078713161421882637012533001420225011907352130279330333525860770130129168640269323228205553828919081738036539284609346967192920178081021300439312136713545009866421521640273389251169629322318399058583897451468330422673062214686193728364586212544940779322112874447166437876286628741058304493833867163160114037767039160144552607870340849476728394907186353640098391336427804550904850303080385282667659092241863083398120631296921289122415831779371531615469999330076493242033697216593424732942819786741900002577572663234111792343699764751278521517996486185518028199629065798651613015845574258778626642085115450084621231626324862386347238690481105598913404991478020329888725644657503242332427624139680361859640467441456296766020462598042835448828726789638652433735792132740606685532907601747955086598066307928616071153801000605893198087331789226384890037500321824156374626627820167857015584461455573415248327055544948963863492183002598747507110765739979135001732370958705501688191169071174804026305317849210254705814813391588824276892119431390837566163862404554420469353674650243797521491299480787644222206428035574846368226067647065423703373704235154966622816274013296278859872809957412669209304309246991487462721182390449108027342685899153638069794680545468183081629929817132638530323947209586021278283240852043883179050968918356557580171450781654632870957664939962019031594391406321723597393741047698162600988664946845940380845997946600382770457697951235095803077899490447635716766248519753458109118481781816683032110978548530444666799828729204538010701392373729890617276552832631688831086054336130652201185355789080928870664162206435808364340685723506579522034394676659149567233569865461321330987373777373898880515335214448767041911553050520012170310950719395318632246687184190866262221107895666939639545616660768400025968993766157923996916581644361555136267838471742251742943145952338641651723662206067788160859719408206639074216443590024729914142300465676491263113425079901783146107816073393378123274366040964167643245856914266562233690146163973144781666863344077826685395510496260271046944899889068909429505832055030466893305440130679377709287075123059540939869511151405558037242479389129518244786602581947463219971679613384682923131862244582828228734222407683665093930875652372399241327988763060851386466196777322137147626444462557800668799918355214804881674622978023744257754787381972350797009124550337616126346376595041064467926226715357720871029812452095519887420861783679567783543133157388234152890608254592166985357028326587710300086872041100965545316392134856926764448454894481970373947604788551712033412413449696626751225557125005178424166794929358796307682685207668851233412774275237262888313558250794933052674062631993606786095878222634868571296675130001061966335331730577606879745637391764915122784303775685391349703713790742210428196072652597418990718847410223573238820443815578899979468485965278197823938602977611810137662682833806007519210557407636626110736695107170455597948164159139454434185507617770507477881990295347513776949753350015716985729627390901814939689224284433109501103370607061335052555874509466277670936991692023843622912053146389651063863814088233838931817232651439950274992926198202006247329414650778511472065285596165537124728132861121287640657919843289110383220842061906444640357549129433620464336247450889366071035532114292723072034630802105027055535880112435956585072605692548373643711780492310831912420379655067732722175831509418850002224199563997514707032343180402272864906630715983849261859992844656908564376305658706602201357955534882661128552742451859245168764642254559949866497486628922463717845370199428916814595642535635178597017074708695804767666707453249208856337642357627015685251963494251754588036805079635556336821799574840282692441845350062474410055957143656623453350326791902535341005690710069135412740696435296322348712980449536516674667900956710614315338406939636752972590441633277051557448880723553946585143344839077200753624202913087092065804320310016097854523349278027212282533570240311891920212573482021773076574004724488981545867059102620609739288952685953514099644807752436877794319480600059745229231050599885073425951045075208087801134226660552417253615945534468359473222353866145779029992964178733301973673619115316083112051204949523260105054889082179108152138316074636436618932367814462445321556877584956855907602672292821323567916737435275628009527142817139749906922673689088580910368547657106955351472552326542150880421612391032851746953539377672336959427818324429658416615921383606874229037990130549052478572143551433920851300781177422398708458287137623293913125339321984030329825321895934231186481027702453725365506885925616919859234450343694899786902554817159286716424117801939858786232051976269237463345795345365129627860380486142241578047439340045573015330563510628014191250988919513251179378213200919493499645424120790246865747769688507237546710975852766408324112101746743490824866216814104558517094615709626102519632728974948415654590335631994186850727059070605204854004284382275824633589067271776594932740532549894223248434485047894238981102339197075672385523366304779918281377021476438008088374314057162367438230375610588090983075467543930195302616616164955429525153828735892553452590595574850541031475135160135718538967374114163238746994377012332953073777212809535933558905487965431131759079027721145073120253203518763547970224359748051341334237015368228309404496343379928661978816871571837880852575116403092035415244221339291482826202918378691284363090612536783181516820123428039594315686841866098289432984256784944437224272387693528528671951586119915691429510929010404678662155139020824238858988815998736322806886166042951654028759360008845775802688519218676584631764057858989543699381982710335880805979851076294655940845668352223672618319399039548434528807403722531306770399042828865996768549934874024753975214777983865713694136359814381872333566155614802352610168575652769588013142429875034846961243027359535148464262050735616703033915381668142529587908596710655795923304463611077251658034387009676278486772095842325626868037920168602499333985242018848399175059350687664252934973178438079179590481007852572208852810427033884918442072359367336418913827703266863208745054114207752984432648233943101135744175141684981377721851537168354719862343218285385568081448931791713124607538886898154885143601196732969221639555058041476361911474291642331740861690780750153327060747741169204064976635488258904870490455196220574767391110606121391081942926906065794302767646574045351059700340009091888201385657888120066607835387511342942777652917371970989931468465850997599236535053892584755943912289703913685081556582017510204806178669904216627536211468722942005324621105354047705275996902222783507181910802060820553105935020890332522217530074559572805624776068439489070385146029934028996774969985941157230184697581726163606958984929743966106889841470156471327883027453185504463364965962665835442397922253341067756519574694985157608699729681942905913746937854354885321051036126267952537688616420890711156485625553496753752260604693673702033637107932437461420070896204414835261780223358717049772258208504745958383837131971726535859428852300760750004421376616086187224044722457695963267010896325526263492305614486606092119010487877010162372997562080018151753692861524998833795143118874733130157832717418552261975139022180145737633417333666491050936163145519692345641475763112664256816748005054246295823032142919725238671424017509570339482219072793181367697205253076954784910108472159416061974700629973382814705489143176124580644420774064020641349845319983938052874396729804031057849627559244163266512580944133394302384590157387146062411821519328510873697606598537305269152442746429397488970756441682241582189306541362503478508911990848921597871109817123597404335559877560213651622418480576400237939247267431252625307473013381385096013503737638784994754486160989551820098194335704682848227391435337306725398271791685746638604674051832492434514845373147538798024515027186809540513123976341254595133646311905822114014478734579753161037681465681615804993099519436426558294429881291523401144311713599055639863230746780398568445177147344670674604259325478786012315083625742794772580934712548005166589699322553885608254670105075738206451330877343927597330043488821253150098150203511391031616847172610002352502009577672576100952578086161169255451838721145827258504807697180730629061685726710193215630636965821072540368515209312786743284031833679585534675053794663673718401107665044125365358490346678649504449498950678395769981133230491041375856309997591880495904721785068376855730970323168152067712701727830200820886823775739861044081665910923460434140809200027937812253646140103886288359555414037223978970792298217933434862416820167313775933949433889822707869810245668089596500385726746067011298786747518741626432521360790018629623332155485541490771810726567936762481748381983548557674438650539160895216658625519764963769094540954963463350801313378151817044494799170874563460320995505976107005577119320992844075028238354216856636448677617600125317719250515955859078383666785620842835106047943858424385962688379594300652426558647280144767023244085550790429716930108960675908137989315745617583026822748453698834370530568710142246307250523631471425267647472293707294527603487692993512166233213375010842538747068147678575121583836436171918657761776761967772723430864538263425561290774662268214468230874691982168077549389700258362600260801751331931756146441449554994214896544573777170912671040797878255694855308179560106773755083534188049381250001712030186948526136338491698283465263255286854519351730064207604219136034160141897666826955245664314664407356181944050705346373685416176864826459623822515400368235697500930204059652074108131381689110040153901349655468386778879189464321501321620821609758729088053957138753046685501367142893523934780001878955057394494821297645478633580872832364533195867421327748222494591106666231984579251173973523012084899112882411193736840824170337427390236329824834149673157232375310068338322299995815275030780860960300813959705397537992767455807255627082900816700864806881907952704510030685956347637698344617368612317184066550744898314640670553134628538787245999108769489865676522860341373057091397849364743161217621521724653049325625628667788273250341362180982470039742084138850396889028056068501224714118893442944622595662525993625910479983482930094039518085883925286065704974983579083617559333084592747219492789395348570194342144747381598557183386035308636881721356414529840031057410290310045980317416866691678012088809543751926418479737313170925851973027508807659872446929664175558134478481871300314603121802585219711470958508384589979878418518374453941451558598416886951047316114381452972339625653682159748227839121817330697726969620829750237426172625018581351297941999343332453433096504643919602020654424220689059524078409398771690840210764042864552046166408510886683172818897329170426138003375790185942360909946559681800101598142488546922506680972213234119169644534825297947268730917390111885570012502554389082055127145943693452531327523903565612397463579081901220670088772337599381938064452648112544982217879074819698418415944072779443772378574118926535354671598334241490224823724720862501179724758748216549153741098324875591303021020927393387868214540951060668281202245211115125513143317326306753909590834155491563711354592494250116198278079296519119190268940812439367691653663373598225060138746487169286179000378243587546714735574979735266871452615907084187483355585462683751789274597768555402993930338910578023108295939791904455955562925046531159915648383119687376725816447987053219192648429081561524000741093339998433262343520387867044780311767977150383761730080935590619635880293421895516496786669852204674857506108823872742542057031661794560926247034492185139900714176803301433937917759383495962413296186710378176118176214266440281308478353028697945441628741141895013577023183835526069787752532810433699275773183935253694598864938014411645219790682904100915498327647036109063446602791129935530919757930086561863565005801166244810841538460477000347281208797827800518646103970689544022752432923277483932645669804133558415963043244610794334347057697176032388493654802928464784869789668994514895239200503069360440528176842025989245406755296751066313395561552051288694194311826982708739810011964334526836992039303821058688860026804986244803269749518252557512449149080128740841283877754776891710803825632817589548316625357174181593173910224924463493735686685910802295853367717010351163680547812592551080540353600866144110000318487993593856360667964329161329986810377400461550997054643785409813428920839552198834982755728872617705942419206418264253913786376055244249268026078572278538666212510162829789659924749785543795818401090741880420698412746609447828749535637215490475242681405852059837494729243744682929720075487809292885786469407599596475046380576783648202741394308301288044780144988861200876956555110697092745079874746133534149286805931384118853199873956780000106504908663949160711254851307941790391612255953333427080610770183120358764623610849419076914454707252493149207055341797702905961439115086807311505686541140192666215342500764662528396289988287168782362286807855284469625022617488674887379895653929051397850494481669788665048980083351317957231736954733779864440826545205793102278538375130672131095845914581572152393258939600806459536956086690141975671983931562969823919568855803946702268977441862090150306902089650702665318200564422089820297835224022398744127409739191951289493865100182413210572941344170073996200096534789388996395395037745150423926359071950591307898309035262895268798133907976974975280338968272524930803495364127150110551462034001948463966310917997025122939174064219153208174071004934640903396750859233141899296570465423067611096855368922513429009055944098282130047012040201882716273409501925643031166927339840114179522593591868820146143452213222821296223626547194416780682687490340650592063470211513931409908944851323002475202899311691090973322141737650755723531246892867608051544562024476785530700640122573752811819540775151293955520341537749512910329332887698308206443091239019119032585240960146791654897801993462809229421850766979902286206756890236247842766915826482703624584653104694853510461865950673159806782477978751121569572419750111545381221028389808679590037067554693190635551633201881836406872664793600160167719588161331253336855501285224359551936049290318975800701512298822070320211955511452003887350416742524804330141070266357032331169667828901044436582971127542234182368312565874745555385761451154654367604663494976708506950932850108705767474520055283997660902827015190865264746981200949892080412950146641136012087492511773302500233640469626312567018698297479884927810228818360384588647731551014723084307342212124561945375574024525032117602422762836317124752503058289011532051036850714020744297169259354150002943353360580661468676199420418072794209338817444184465605971629591050871766682308342390085589059165215148693552646118225796255212239962309497187376799602950178030726769464316504277528138652979893110869114175279127771604965093134732353034228790682487369744821573319420684980845373084956262586821836155103752248454025581382388338437794172804139194161598107731882506329633280865302547425148789089284097936075098310325905845518520684979523019584387096842433887337488000076884430695592843360404026118693129692306486107977506386358415578943749002887306132363690018516151624500675364366111663704848476298984799573223049758003584485441015113417087447863174211110419722915889816322158387170692216287230813147848807920128050771240940620435362122094439395068226332312649302628933355728264929732578645580544081841322794559716392454413945718206107122895941292462989194682563134181606880821944250449231967179584260183730205988745831928913199274553328002786134212026662136277095467472300652947394011211900109430248999780399675632359184876192037457685740624573524024156619613732576142245957461176954212392336033192886648598693290309391942054887882084631030320203560216139725780252777098036709252185972930654507321371987073634880821515623395562049781213066878262451973139627825510351239297192057172551840467082453061923275472113738204594918259346485631190732000294353204791774753269431690384566854114514591262840056043448198268887470890479645566764082334127326050149861705572293869804163917995457343667730694554523138258662709913416794493350416090042247558458751685881654503623139485162765892597054896904995783143600668207325774677467293635413688260621916800425872902390787925174092586097211096279168613178214098577214752037151555135492880502362417627878380047793988315238408554550644207237114885347235634320690428617402365506680631707542886958518165897617039640964243197810197722541854678354220203763338404233119646227387095460956862496216890657487995830164022888930175405892967995880586716136993634035695617612107042744829962260185232351405035426161232219037161828504010888993993554125642730314333861907765638701830648207679960353299497091542108034136521436244974522588931279200823672031088121523055603793188591416721105806122814469817761046588348175521327580075081953426696944053897836169823867238055260787587113432839798101910735721393682799530114532538697060562839142839400531792420801104048853922073462019692903809197655720513030632079975203830178674071139914432051039789746452546144012477612668289321646010510222677275618331629235704476179705955894652853521769699398834384372682592514779488393147481284479908982433375478485003782943742888875051188743877395589029499075439258594523626334202021844107017602743173508472304990045650145201776260277698335081723473233789953290158581251140539030550045293406765218851559804925508675540999709539837405781976996574460700616264485338355780847078628760509241453794669483659720643912183378297750964660256573340640217595294749128500038854942485265140143499215946612764376900873355063200084182081944528012349433963856332390513538442686966753000948056261588359060550734643749664078274896099864171754963140193581699243857593951339373794678299254308161184268606370623817545733450098209314766645541381406463493852367877380683698779978156465365416894324323370684893040609154330070767730001348652079115029255475415378983081667198630191395642431496045939315616656296711280650311522068033002611103908543492924717021662954980003799651342081590402902211544401507611856330607964719733449221316556710014211642008056232522101537959737613380645996251959648796040927020289945465800449517491731767149469452342313038372366171533223243489174516380510822919820744974116242573485189916054364792517060344136632589098590892518034677097933095564999060478931331431836842709340257315035838523622131176464493562651896669918180494127595340428052498209426192409789151232265185423396058610737478507420207883227478798380234425553132162301072427829888395929072495564146945317079540051260290376414551359948573011481797182808536423594224023784363551662163709109911363753781511384731998932207837017556149597326556710722059364253391807868161942712705972247136504140782126036650475405411660720200760443689595117487183115349554815130625965049170579336201144115829658981430694148175075326504008918871254489975622567854300818489570351628121002653955471854882569161795305586010106908372730822466404827060171834714892115996185353129257756440000013003238278925088589510781483617775502190728095615402089380958218783434496599860433218382008513834926640856716157998781751063685167560041621768097497771538502703804330425666476257749533999171806423782553397703050879548040960474882470201382992130756494288802655118365500975409074519080477678410605784142450316953427147848664134562355866925344161198727808200838644194099122591641256111523142361172833963893373024157051986434675684510746653230108519601261412341871978891138807097199130967395534855735119922169500321003389340375763161646678475270140121346375278751881225479587182381277121944747877442955836704651119299798196165161643594911811002288572015746882410771768998362210988179910276682595404366488095929196183860817182310371174771906664410328674905280956903789345710039968332373704625940312200734135124831892330431371459286723623446022415431457674065776061400592288610901041695364220766663392355354484999052262780202016861174222004498632532889656734042081349401882217720763699164517091555736340347591901108963290833737601293029681444397391749803358438112366447965615374378126236175732981188676823578332284461888084445269382923609205135477739898112777147484452552487162982086638685435717580213447237984349534140187393325932070876704382143002780001584168491933222781146516313689038506098625750791072226121631435574881967975157021215111970372435083226752808964247166762562180243144813676242043725847786777015931202923077457628337549817908566665995252345659705005499778468889250272420026049302549732891481500688831092072127850261351400538509141705706722334838539127031667310179820930216543445153094268459425177686674695925844939168542782528835182730324983513546837366430250430421481885178629322337603697538736919030989241525095363627363697565662528076015814993282479863793167833610150790792695543162126285520460787757853347623387627549205207727937068103060636630966574049182680191032201007992052117424917654428888248660553507951738828373379390198919888011025831675970810329434102204815501744667331644624612689101227401157469114107162240344996254900010863233289122796100518706762050989783896960225921271584428674101216230137103587992598531250257520103168577607821654209340721057684883794833647366909309312628417208788844349666697777231790467708890556704522226388540594818067517431554228248224060543327794607865022230003003853474564526330203002911387242366292006254325243044177178158251394185202782471459875572952445004730469205494256499102217158606870626521731193081003781956777333473007401618938084089561770550950514203687575910769417981991897821889751886474809508317181711155350440932915675838454727327896063799065374832872183639801104787707846084798026274127979894270011406677941588822562539384353112426600668466089830543327497600081820041953971510777279835358121447881978809686834835575881539818156238426482130665081579959092477614552246855766881481795563161878290014700285931177136878443531383295948538197635705543033580307950323933996623934104841124129112753039152258282074131796893195080895710480715332012623256005824456346372617357252162627947105101133847960746214723044658384232912630784853047837803416717236706752834637136181353699973177610498423328260503474990796852163219525429535060829775986057030317652033447607703527834499519825011173154815963798740982258968448287687690591894446528555699114622422700032867333121157540332475068052987242817236204261234635527394867470824275143933718549926649593245191212357505776233600592911614588740178973599577375767779730982590093204371242524457550113487721560745928810672452701094813152336232497006712535034927600887293138994754890748202439615705794838644520147302483747281579939356800907169250717886842955352415769527382414411751783169431520939193382197440953418879822172941722286012251519637067031330346198893132213837099811386567156352817855485541037931828497743793874749126760237022413294405488091240063071894248478178857290603157447755732811095092097622720074089079952977701390690304705419850234179187329731176573663115453358669727092780477136219455583093093947756686808734994254447831891911660505468214655111985417854582376478588207681455373298437948029447174269869169578987933798911507166877514721698232527490592684933110279909931888758503358813614139729326768339721159823056749085234734496103306897495917160775265111055907394653214215866588220576988648672155440780413646621617920612189961217829923136698365750506957422086988337809440490582807591118280638296601593851207742243370983717549890914874528776524817380852300449889349552206822461285815375800404089543974420043043058196933130693984817035711795242889221628464162784479671956392319522819773932269682278741432471112493249887218397263477540065090842490577040429947187065947983310349224674305047154353466842915189082472157909289668567955363890781708268563988002631558733544883249684921380588968671275813316801588002027073785333453477720101107729713670033995092493711404106193272331191492544203799260266412814520746880636038899465423871566484317711926180345863474714781638173185212901132107266841397780846890742656809107341972863454963316264114266933538099979817430689690997871008090239906800076025089827324212387811103703013715883888909241335038389690340025046031413108471915308605073873855750553901590818409843014195982442630961426614957221303684361447391634539473547654133312338447693882681594477215200567342921283856909999574865461542633341586781822245930231258405884677769510570652916977637355737846053128818415331896533003103309364878171824859983281175627505304863463259887350990783115647509379061791332982226464934136966300115198373162541063416191548322508088290720587483671273330111203003507865688980279039012486335732475591528809353127972466452769690427439760699081986543825866395940627543790609356180637576981845301856009300027855005912766229181074230906777450595296778497947239831654248022288973797001100470521441814366407827126644442012066519565490629134919673564628726228609451066299558150110334741959069376077440139209838972767372890762448513377578730328605456402071358204715010551003358669202094894814758448819971849693578171583699235142187879599126163711027603043282190075434528645267843265968848974919742516370361443400603886687886371535527406887405570215987571198900314347553654199933158824920336977881120259087143412782039095636696879492894948422448969623985065420883200404192784552704168792441765933323803572963791907803160541940502969357376096360971625899859826524432593473399096219682908007390724085225521839418082509135536443322298062495082395932130894682498418737766829257450415813962047699798602306071290451429505912993560803275123722910844935967487841762310735275347371607354564318083940010278431424105140639949074889383534101404340957952092072375528346313147162458509357247944195403387003063081037267688779962982668534158458294493894177451233928625994553071822757688333166379775816609832595607821208055735032651270902727521763313990622170155261358567892697248196387819060809285352018970529034633964928901626070428768205862394612490437437402583288989161281099200516445574927339501976305898320785056795897161245831212841482967921777324833278814485000081393674551708281167392274468941234811506338974680799348608567841135292947664025628943608736583008038929116974470635969548785384639806206002182732614025927505076633556079477716495112807942257640134743008210787334232177386307977614767824946480698517290300441057511999511538695531376902762209561156405089492811884637813095107814279176006231088130455998521502697368572780161901999687268662149168174144959906823824683537703272989270061797805065527543541475500087536690761208707971410180873401819809055722862593200343752242181738100287895536484638775923987456148605869176993552259744116204836155101446172775350655582234941576603035342737756166466096687950817146380202232733056167378997616947429871396170349333799628908559306882704154850376294929015173799174654982140274183386677753238362015876314353928224179309275306297048090846709084870918419693988988203302447483259695857492883069098519801222895091507381869421189636690475566887337772332587169415525794621111395748841309151854800947436181382152534010958826535162444557751379205023569323593976044629623006946948256614646669019416895760720476870426190389921038906060075362468839724105957610508596108923687502288637051191069139442460741841789939913381779217753331878168515358195300729112086382379012618254951037299753548834754326505243721203964628695574558553137846053376954948126225933599707795224980327341419561687307485707765462572433944037190279956094884899398509711490057893867260962046752058575920412862771224018017375878603134000213111563619795855252109165133641459774297121432700846733340102672093361014137245674892004730542984909236893897971764364934089679078883571061413699113126425060559737520752816423580431967176901554385186040228044343219235837293404683223195693102896047850318322942726544426457205974637127570389802500343130183103667342330100508095926910163393591939324658561455956237700925718882623678657723408956149325999480484842532351958638610072355074041253714109080389380429588203767535028105470712221915464660749287545557473125575660947531727412567053994158757294492384061683248408457485222075986923604465691758745929915907138049081166600649097002892180897666499251808786508792148789501580022909651052742183506982520928608466512261024923016577936602542666614793081644476959984001753471921241322488873745711354278734448311500959702625380644784132965982049721086615730438903817384318179425347690413663866865239317185686998385957727851909126378518321273302812734739173935401935950544799446259393802422807746428038025170230223483241622598464792907889866732101219390477429825395735907031088026216595941328705811463657336176509055607668162516703215259008120416856685446790440971607354928235964270088653878152126862506354016440142265537574282485398045623987959828011555089158751711028919946879865039851488381574570563296306175202995373284813965136584788274580440073500497509253585755475732735239789314756670674011335657851598085373205625881516680328375145630124345925086147952787253164494400933580773261282496948887851010689594447323565503595063153373403045640072183509829924477822757498606811065908138941280311876830465481951747730361630077656565275095337685827012593065215001274383931314138110394977129084751566387082786382237555336689721990348641104052149183127134771693710908308088421219375353469886444895676171623642419563596451264838219675151850311067238389055706701431886087565229558865004995568081499010611007782210944177128428668486768108861339464149401333801694901484883992063390473330967471722142899982670413613172766155491072941650143654122737151853592873602837698475706351164882208941013414794828916773505800864005313788468995554595551955611952582771026908383032372479733834640213376439626415295718613023482290830406946559347368068408570610038227528224450730955427469275967798046755204202617432513637969812166305536152303077635060067322974432623976732444316837475293140628607147895332852460383914383784439392667944473972984076952814171282276010015883462943407913090623793095413942326112652225105207305297447813794817927838975241332634484836461775737568493490361110527945543035593852283721525250015159293078885230409532396295759128029689972519996117385642609044828872411430942752659182896501929446907915179561110551528441607485480188053056716840058829827437297252980299211316379966107229038137098699839894643317153541686402121312401745863819185846342013681068529995289129375547799864137284332701153898906657798840866839031224768123069685986083300629605110424984394039652669554944184079888719331153703438995747719787291666619756522731427260901148637163673634552531810274376465133486389973429543296529134447848298853904216359446866874091989638221861844356875199804067975841713257249341625345544617610964591646457300594848629999759214873225170756177650703532855435641971693385116403544547219638354942843307254269213431503073102549965173505474345708087663013521826214706030105772717245329741170747959271192704937697862949336341180785278232568743563912962171423633959061771515100373856948080571366989149650769294309031100790136455543499007138025073409624882233290511495260110643686694854352124572286819794332710582289712633646758481085381580990364940382765352723561093525228486464928172555018270063359823078981097783739852927799680165849879667613889905582645389759713954495941673506543108553534775055551828085597892745885299558662869828427066534177835758195657415098384014253991329799420587891128237487874144188381975774120415879095580058462048571140525530786721571600252978610987442952224583527923308753457639342281399400825269088135220053418310823341121162504924951202084050562250741349704102909786918509381937576421773920339464708682183688826372291023591019329713617816441085266325957300442962692427440356455340068408351195496615412475086161075689980129992024276762821608300010921973861349035885279823278720479607019754448221291969441478893775020937833556965867704771074263489143669181466669534460758377306953959725335952103712670452838754176880991312167694429727733009839022652007396191743880805127640062221162084590923967658885373434915100415470888059346635942456871257445704533618437610307842613926587652607013962137706531479544044313600699277132131964269826332974655896528391515810420804970303024435096602494540397132724564893149018293122179197185054535467878982169747647059554705536753814063341596634134865863427974702631201196505345913306762743397157036510005305606637211659447954783105504361826203456581945921378172112086165970173856411583714511512857102695155636799812948563560665078577898507784410027230114836861478762677358513784648275441533284112164974970586207068804426462364749765329142251074467027651757268637772922080828074786892338833573052820450274543728184617784217533945522682472846823423754271643677468139104650880887041208402128350024812656727990597032875623839650053468029245615893245113024182222515329369932755715377038840446696374183889032532583543562994739010501626113932311564681305743210416651978614708774099292131713445754925550695206605644564301767913184108570671352455445103883852143367912993667630988773107357207520139508594648294123713924510934785287028119125542738192043048030157915874862270625356127293158283698978561052033248012261424691409776983845390495795285542895762952548833787509306438429155535059647733033621301615501429116675428117310729750110049188632927118546171273183334062342470272765206520288403879750472910810768978649515451598116126355209839752554544012132409938164885094559342581972762445662448264767530296736381893956379864115587828349439749271785260574237343503993408897597435242407808370237043490670941178362348115517271513327607207020518582239441542522599976126085364730532034493902928793469572869306061716989555323326099594789737242206405230476218858715245477111580492771729868306347517460240962064752962481371849729902027868227669063391677849329290934210798512242992055462246608889542072470415899973657140131855180047162263842811466270275658735258613876445195369138580778675445004744426779440962509388950731256634727164605393867191050939831839427805903635176909275413044166548809920954964200851622272318030826230656757423895695714452882733674804903059202136805591156305324986901379246646844704361546304154872178455800104418421400621503913298120518904630273648848167073821375585052358388076048701615908523126985748087267588925786966093342436417192287365048124496741793561588800938513211123476261292119001164539406847283674905153941032363656762797361854476478237297919593127046408421775005743987851841889087483435653899423547816728688524958187114096765610445959878601921459574861385103309031288487451877031653227423079050559727069258390817178344977651892233210867364842402907872337986179666265992280501481316223624782371538002463014045978633802866313404705199150128937299799150730951469232260043888517768856267511090063452695184087845383760919854140874050778512057639603497100065074854543660947795488059865725958001376013447639040087460737576064441240706834601426848578579183663015414957700840203847931828094479895083692231940904430053401862830380232731693980586345472225177329003334055946156282990675063613448369926669744525467269638473608956591905477015162209526776699063453229597022027149797825616637345724302943206686761763539496596747059875165963578838905299454623100325370457108072235009729890856132386990646269260684676998694804791157912845450927345287670875955987201192286268467992808172679033929436375903631749059383554988731543185681908629736839459767494926063673521993346144079865273492350901385242934879486178410247311709948596896417644081893816929553117505698655225088672280692483298389603877680436689092285691130932112649013207412364796824047198444002191484785586837393506128891841593326100465972065787202563424831467659073294245384446825027138353339069311209133559541473980159622446715217468731089490734689455732615925931073190938127870691317112134378748189814545163132115365739007091642180156602380270154065460390492013264764290441698923525930681081679274049685030833385119189339212362766467024395867062363440231803379014944805365293414715700042994699540480951353049581019499299128750616427006312549823922250173842353215693707201787887737888743688848416954332826047432491115846024853241962832260080023026388350358030546035316503002341343926211088373383824372250054162121727503148567735551639583354379099975117254398908582050460959364807351753005220012385121750028214292250090072236480678849460213586824539668462624308319557309325572207481580130724538309133727881187017554979429792582851965466843562394085685013986809499638016660018025313433909830358895173768555502012634886284850024477224184833302388547862210962282041174577274126093399390566795237350159742487095491665104658199508535054534143712832804598129450329267733477215665276287684117799519083570839095169278389457112945001987566015018287991225042105188905345933314327800086529361498334770644641289255766381773747738738282103819946263418016126076799620092659929494782110768499525835657677084059825973134010256641582876856949252943971456827552977961371044280391213826092828581819839032034643527346166938501948663072907460118260063077490027543169798605569220995760861964669906714469972157305711961987667671072820066313678134508832199070832312413153863359890192685885619253630870353482432535593718476596293497671740819617667050327573695346727917018400460185246151129340356094816141979515084169236193893061522018647235240314166764886087904790302145512708408538757484541371404709157869163500931508935745983630127153423150059104168385489502021161012306828935924507880954321568308125461838154132258564197816822740640570120875739292505328176485104785178623946775067483045533606285011206451279450938827718645392274536198166276247876526665732379560527739391877110972063840451669715172061055969366521524398053297490852134200539979665562239597279732069116979512786653217979637802216592474676401703773230919693319545649140016628199390890277528962347455714070639315871798783619441870096540330395635914398599057538069511939919881637817972122990990709066479535241899892860326579761818896027901411954790666553771475350355700584176503134711275541360753104931022261882830799102497957422149199763853771233453696336722130311487381333058241231090318956319093061625131455003414723098247946846519501608539228973118305144268390601182867611264472956949544109656977417329714457171974908225921958772884973413728922529294915614968906389318542569311881988303323447551702395098582813841378753257488595629114277641191294681638750228648880151705451239656876578243646924394023270034041321837965552173063180544897347441827206277288927137826628434539501766941670810843951281192309462062743219741094003123390110708463544429359478765992750731601945982175124556615668931119694213834510645722451476002892161445433021940065206278591793155070885621359734744520935041467840029207557008058141440285547162253072519503972005145715150301724665518859766526332079609194199280981424841411244636930745537361031061204883007775019746341050146353018302399443828809597779948709592402143912634543139826654267428836374770901456506900079530122382790073270680257464185372088456847386994442751451407980822817974249074888308069365006377530171989207091145543120395589557806387713426625879942954075118009772624065470604597157900810022512897872929780118195826922804152645103864162714483235875056700557871810372000043327750710464772418132111478836702452987426443892876117928682897628413370642582997910880583617411616515674949787879581761593167514773975843620177466210511713298144726181653091381666044882685633486473619069060632831754377306802772305047653004148022002731494164531997957133009015483928919031963539089494186241915731354141320384306281080251126670747935395303111990676086458280637886268495227208671840876845238649288183535265451926379521812800124854886040918691136838008006612806803709397766590450451911993708072422107660588340617988616663160082419161831961251174814392618311436470782894040682399972277199394014123944442752752290937493516962032551300862623703275562143426193489755689447450108037720062678852613862378763791409898011264042335827146068377787978341777467781430229056756314387543585897346135270825975549616474099036555432923784730835076690148442868083011230792884597999866310925376618420207167132049673364238542556342253763949901269615334734875400948925194770783046982781336483361406258132103543636691636358356470388300789483542770405852641412723344684584097301928977172450829200622725888585996006968833986650149620918554838506249185697718288687273159217478968388761299308035500785699502237917909802206302419676257675027023617053571560025095723040446261634733468020495671475748776193771333547351486505303120885225626423098610497193799628465099194146758090922645370440971719099795202101079189657024023402475017711942816769943400258342324880495192104585069737355015282714525285376457200167419712359120651666091850361174582749749725042368712010057851105003684995629626672321968008499875498053099319775025871102613678095249202714681214406212465955036958037254670334486154983287079339479006685505390541813521788040557933271465432601974340740532311827576209465802611999241491393783488086496934429979888819725506680710002250871317745510496464164777520146878474007177195482744967392986146566422139622321200870136191497737788679248562956793227295581917441490443671979960851062604570262282687625646415766656696571840417516019182622687911548831830395141796582068757899273518081803518036871812912866502266623427763124008161325187209048363902694393510910263304337888362862428466732069010836542841702296761517190907185778947407985603799319895219409809348437085506021581744065707140973390620979767174273768158575279807091219219106181262586071769850293318234153952227786192126741024299747698844345649107231272632937521308731407050756757235634192976989368839312820695295033677124566982133984120929713000509884430491590446227675893097259809824130403184120234715903424381576465162956509504953272699263888128125213278578277814113204409402895634799828051051840724156889726124109272447539547180685523781400660750179728120961260395413073921248151663232556522021964939019005951293451448551749014703711475058863342529782722157036747079133546229917068194696839530683873570557240586039856147327627303079859994742447166871972581722656047881838836459061410979256614360548326489286070939360294080468185717957217515150013125604604994699180062071371495595726208438310486997294634217764538201228328467730947535317702251149328539778405827500898318138250799353590353828380460351189516315829219572793397811751792397319335800780818758187829051273924462538945483581747639486132675511610974862288098864066875379417304829719206863492915250185185615602899736904215781571529474437354207639524429068841914104175573391006785271612823130584304439017349340778609972211279340978945612716935027399227301553760559217924681975397285797568988562550029351944276592083827261755353782707379766202050040550786245926465062091388695542565613149202381075511861795969762596616957698195332162712463138039251322559306252209624926804037537937221932042489057677767191793616524549612910549721941221470081233731985557686349270232133749583776417936790884859785928645142495725525585937873676169445502024415107318224040188357849088169380881801926756103390373237498525031388042254691681612652243903498955489046652370136107298404122230085664018374483538966233518350172266101215938505433727459422323128708340676392198022589685010531207545975092371385158222063485761278183827129251096879103271894448870033393744066823076512978196622997063818916917701586242361577163862001998281506084641507462459837383773965078574028640596164640887017940913866653026119234781275931090659591190449127186911556121215555851078769439822868219721725584830530863226045900871153184461256966637450363721795924108591304938099099136486101219415502866151582927354611988086334960393523792625282462960274344345625222787963364758928609597002146671204424369677889981828540160701027052005753564393572222550349341916958120046727120744214364029791368741604108747187832812346273139815855498807131547788739435805056653401963826967018894567535100086092964535114115312934498835828875158032226385328468030080950456749999382349085902798615645208491762331780020634265586561253098223854072769546904380758629189340533746332574334684316158130255871820705374964808231804768826329963781607808165228423538845678516260087041449008386276095719504662343500460209327574500359309525065983361110968617319492135825278595159137864897990357190573136965853217535548653903750057960784612976619730463101210993008648911294109248075423515856168596629691127447062916762668114401686291026902314088964705261913980386054646864061585373059795626274484583708512531822292598131655037636189563688614739283670904289830617196446696588842792217019289644202191958508855545502536430685306912721631895152229549610789632148838160450543795812967984015978778292791470071240046395384505813900798700782627326491524660546194504768500730478774185864683659229221661105614553087749150701031487958216546430722874832114538268528267526451404888050962969177252817539925062287403228584480073710756631446582573553153016207170107557964014178160338098800579348645517912569104606512460564252897441548521628487557682021492036265062897602013465480029750702889326011038570899419261992158373007881403080179366736824128248831075625021310413830219679035442561149464938035450087700840028632505285067926020398787014047340979933360723299959543133555974672933179398153066831679876333119615423762558491582238243488438612657856019336928620320275095520768744416210759798332934329849980305916719227366090940098695273555146225766687772111740457713003410440000297502708611210340876505662981597094120698277359364468362947819069691776468177778684653136693186958542643086374413425246938084973510333957977825792029745384594332581289038130890809170502115200694415876281406540780061690935473919888082301930891647538068489116066144743900709894854844554052703690534735161190330098419525225357083297719725456931906856957908288755883653048370885280581399027363160101704743211623086904744258911836364960413293269611323707708871571717373499581283715194621665977895713549885263286019871801864765989152269785278563543308722946132266037830279834006360973415118163458210786543912364873310829476513090541926183272550505086770079269379752147913221811020320778354721775106338962686282590016740161284499038006335779440216942146247082549904547044974841656895698144536570925787507250419963231190087725235055697048265703860130275462431045285395271361734480221115301323111192413586981955785581148906401334499697843354956152379071471100990427749998013633942924433761600957178446123181316352009010070645594663797474480969972295418795849737437208205819999902675551936868639642568435243009691615418956833511436609278541818874522150638271273988551599722254050941421675136861722729376932787463644187358113192146335187498470665913005994281057957694446970530648561208894001411540678474665362728003799736533939380034325156987596358693236049175117276541335536070778172809796398631569876777162218058549935037983008393600134210008965691742856517799854006577073884733192785842253208593142212134139904082697586456873045005290769926513204534398134254761425323379850589095287397969112096398250426316501962437045785208187015438218224775047916046135769287906739544004239293374978104753407972049578501850478325952241655973464939981010024289375789524032089064590654690852285820646410228191164884913032381900345019751968259476706383056654069530124361774930934460051960074533486657428738084536713372101089133926198661807660648610706201832489373172827584193394983554391184121080256803546465910072374201454660193761336237380839183259192874027076148100856393044007882160168717946400533400138394660117519551895322256560798013380125681356118212777142954961307246319372558152507253559046875972158271033642242501397673497884537416074958266135352207299093952743784532440409091668425012305226221209902402089063108825653148448167260910763325746376497081990139967865019780759790523649936321304038002577610673762468442304728767045639198122184392289293507877628773850574129055447420448428884145304530642370410290030057375218541319318584355559664252000402665010760375811848516839121838309517651629022875576074989335807175161220403290958413388546271872590563666999988544902232800882348864530406061476061473213625164110408261789004812289938398790780079244922377619015091934714915681251965689017775479718039695061187759557528000152681635154773557358456963238248837816098603337979126588086834904449745727403789284301596676188947883797632537713413422832720803150480307940635956700890978686554709367819957585442104354035566013026374891011835148847367703175424758272078228445360770322862265963618698770694676986434672942864732782957862239581251528434754585026101487370599167451687117269293412121318517346532302157625662167105707204975979096578474421627892662596576280086380636265430985018078276638385145464065671000605641897090581263202064522572593340797751384017384637082245720165507914986078507200757456080471206415137135805733497027525095106541593222469823930571794823850708443766572630384724077107621025657500093998615907435603509122930245720214990007491380419153557088685987385311670376354845429305926154102970254899520045564086638582842823854968514037708967100009551521333101939577245781072243976793362873984965366323995037969921166002861412734336513590384058252865632841176853515428249321299411772326555924710239464766350179250413213639996311762691919111844928098800490228443708315358589948703174700864524020341810513846920295641364807600551075087497976669198777091446839438162472733583339549002618000622736770524992617843745114239019147892472730057635425370896698192965205221674379112428357566892860670947105446637653882588402433362585213454284231563007018544366202913660482213516610917364277822049024876772658397482731683457375273481368966539483109647007785817164799245243526546156227293316754501661076233451881339828000220899007710923796774018321620621483183939500327812722131593424470344780371807319016355541784057054362636974042933874134042071570771735141981859314214144213534747684442662720899282736533287789837980152259687803690143074230140014875530993402892846058801513070915404913242276085622253748037766242103241433586576813302172325223533333993778936472388115620021665573007268631612283204004738775589719260078171050895766122861005283158734037080084297807144884037896219186147187210205585475701962575310696801197572239278830400039749882691616184832293164203168171200303288994010335857954149762270749936586494403202966216408898977001539390298117059910259342129262425410829927443836319742870265739760800560994316927717134544440708420747807351439164483066834941527450941966371368704636612946441778421970036749882689922447586031424970797879271480283168669316834913547244092321469495412302802732895459577534289545964633153565944232019283699979580413006139431448388461199320613478801588482882046678898180464880497262967143672164069442856138228203994494704056202511948835629212650984034479674051561609475112207393023552900308429387190604501896327678975302055513885576500440292809640625168026356672753331943041396631338911543000279636713888499204355391524762194434923836684594176559164427298289378906903615982827850249790683617466414132141239346618832847680116406772556919438236239841081613730160916156839598163547064917015360558241369874790835072509533178282540326688103024411677096742260082470331649686334070323969909859851196401197220080830688405375690779819266055813250351729998549165442684665067930722136489068796008143215430533140331739784396498227441926348106573944533766599717664020075768806959995362547734100793494922963253739552000795510113957874325733041750000112338900505638814289361409130395565375566262754468206852674224735622979333153188491245828497461426974306325748441067719470759799643867200513375074632254876200668602326624794477764272003868559179478761750712141449047536958646304219352414971182769470214874605801079730017699494639408522074648738387085643288497903789202019157066036123181626436673293602502055548964561344794198047856059406002238069530922097441796260364341936296272907374513023346479171582485016565382216627282411932166333079131257040369626943160425401307111011950482681904111006350966108259059523882681467140800768328878004419073923551815231645927285659873596244324172285938644167012914192950569100953231485427377406162143972510999489456550596888405636008705399892316662737571906946010274691672702189020228256883864532062689682427730443919628520473008241782507459901737219524366392064800702811591268026601705846957413755739279796297543933652967813403941449884124285914822802305276087822081725353760628826382891296541647810424599594642030648573907464586860232606732259997746676460829043120400895041175423974184194016478872592387068472988943950252266261703349567422998845488524309119022441071969688837710196229408750352545557575693841334019129915155757038840826581546758679100216683532423559245496302191688587116279206634499183787913029352033734009147026862513828632654221981564849958931862802680427717629832408939953598557023674497087002562577247217395504839655439623948840676686808982195325817074067543686193506647129788080849760310572255740519103833211275232161447800526558597704813534510760835549337169564242671644759028637744981783796781242243527065936959844284290768367891607867325355567487480551540716383635984093821243218496529497254830437707357042025167560797452446629136644295475766014103812914913461422528692189727462036522777463047480768731875982991847388068710821249382168771427762236053732898466229601013027920732977911954672678205721864290426143549852863364707207726440730048962040229303865898952844001246244170069476786292297442312345622461596404161898778848026631203435281397699488955952916465334618751572527582900167782340074174240546537725320905530652292405255828438069278747936111966301062458439602946182976325475529057005725098415439616946862596825040551321634002416284704000905637407994578232434564579556646970678472232812925793516426396960425769206490226808999839523115341169182097302372464930851420484279925267255569336385081016786059547555819204649973168380613762819236201808494128673183868188905344690010177377477120380943701067450319873484930165360139013097686421152765420443779988290126187831648744134828354132509966379153800449701057671873043445393980234314831154137885407905139093274760664490185966765624567330423750012696846416890881299844888918667741098389091398979821579555575532756375863938657151426537396918012340206635848535138398737091031809676844642049183092737310622835638431605814755943156263350230777654438979088189027811206380126365956753055470058894847258502928837789774363134788071976134596897134195746318391244667192156095353931252190611657894454689212779273740062330287568937258342589125505997673229175078768935956279243052385933882090648820729499700477014872613070868281383521287021453884516982510151745731691248615974061613811147296490514187708870658861554391507578772277057928650376191657704711300899784015584200508803630630750326334529121385755376562693694173055027716603869586912309464354552496197863454408724095003865879432066685292571553680887444707079324627754320425014384820982894874305456913737213650001925159985130020137336755669250770984506134457087914010577791102556948726020874300664567763158748841754728712995563124979889417341532916756500108780945247037731346987855781037540745040485021902735278543439852456360123229054311421408396005450481014076990989195503835999440531308777014936901784333754178767904851847484453862286810009521856339842934880909392796870048518217657787636178233405272332607760978715687764515444850565606959160036427391636636685949564292759927058886610235422423556060741124665507253837122725988042518941246762646450900368558112003871110454908042766555649667128697354426328446894932143518088780070439899296570185345578099566579165596752700452367574718593415153497565322032035496738873457325143521656748665665020136533063432741085219288575378460607392839271139592677464636208351851134664493781692685822934907308926069233016226484111331868847084114172961481577600513860863234557877570426734067345342020948583690840507514138584768825717706220163543319487162906341745799575395178439200503825559251356218228263067067010698132631946760289658575992621280615027449143125785909237778796636441180622340662107209507400043702704597529198260058350819919093451017674361708288798463624364908952589964798023646964014168754073514480209970683744710321873275090977498617988942127535276261120985174444285277740440701481371562387284962383074663225530207238569622570656762050820253644820963023215272256716102944619726801899880792625932809279485824852395952114814091933485985848307120633899715043484840794216703887404072351045822997337524080780346015166847151038404525137514896232578694871784181132183243471311178720343023065417698389825110423338785179313816787358182197466002320320326863033595567873646725078833608195477237582070662579251387627103847630499496626740097341218883220198134787438208893212581624813507706079638491383046077170030087792741102350098525353196670889999652903810409319715922492474036744182081899764579759477740574490922838044676664287190764960534641998294616079962040937738763769779299271294385257258336137831843937802983111366835140019722119955930796437702155832583703877028714874907801633254743659881179958960061414677006050971717493075827169207947037915241864507594891337015729343965840722676962642357714736107417065086316008050266660753414495032069091107462841395949657490423578582135692956481862444215015388404779238754475689194992487685965767624201291928242434206587163527345782980057814257634918119375832553866753242384584444153904849478088582668952814056574558452273233638668585726320822940225449421707873709800477002326738091228326757415568086351610776651984540624220315843267956112555921957356870526266453101671919621505749949347621799247265430601004124035211411265938215826737154651113662329041344142472234503364969197320912071925843862536009258442602672873659032112366475380759205959895336635406902641634934762801926217568628239566560370348366498115240594448662183448382069119068019609162153989022309115550183179338899468746005323130002542991685532111522134768390934874276879839379717539755170718997466660772526998594382543333749134416815636755314661974299038500324722836633519868801644463552779436474032852441353439225733500735345703710329240938240756646561971990058600916958242724880554096653425382428398167894604532658986229277234853736216715474599973143574550267015383689022625488502610767492053993191073465447755674196597501008211669256405660831516140811482629447653642172590941361075520948040042391759607138733001143136163622500830381795408711884194621199667586717960699376775078918568076301105818071032629486391589499632931209202594821662880854674189824834659794171329267039814862071602910871863575666945006459321993469998566672278220572946802604708933915623096305954296868789484643834067193270027582901922201296528558901078762080854490230168041927415740663658110737773502836437778339253683927921668134531561021485293601727063290459096342258081485422464702844922032578649752276946895175813588410235471215494380016645020437295995023345249518282696880420989213579251493007111880442988251539419727404674798476527211491401710060614564496725157587864259198812078897348176513438816782534095282578552680998182685281631056431414616788396452443705328821006483874811087420161653234574117724621426094647210892159307524758127483575610685784787437488796595115225022341186565608099872365593762729103181149792493025399214606097774518927427457774165800359700496494393423788529237985685217440681854249939098374917777143430259146127696097168938593184496547680338472902127997197947702904228825530505947709862149220780333316706980831124862741930224027489151501293767868421935169596880179289269403271446560177292281488025120825778018473884012699319159845613671409877102700171784263465454631959696977657712760997344463213336261032052605543916800588415255913356766779969907126161670374477518172189787712183973292033638137288724544561478122949750930904255910844526076035011695867050874718691373811232178642371100328825537953186396074553816621445792133473325834721730577831728234501350317696323009749473226310370694420790857680585171977584756511414387791347867727870628287850193707284164321808879379217585058438318924326745914926184546567177286830535697775970240452157457262946626778959455911246340289710231335420323837870670646616070729290283774206665409150772445234385896986924755649084008603029333945777618733438343017597364056901660888029389769000989794448405236145134270548592796866803649431213492800283975302844726784757769054434365638890840495280421976715053466120115351787710332002612773111555968162906209953272562686090572706367721070771683091953526219361961396993870463230135497920990487387541788797422712264682825405447914934898397733447555438494491937020741158346070616414298106804305878455739350620443498664843164887914790022664713648968277289819489272833512837762369659444098319402190049264201322500099960806465761406947393075338689783332816882408228326498269538718944536628596424759702456043522067594028047119607085590134853030538275658730447960326333316811640617838589799621064604989564582425814327556972155282013293679806851673830979040178557974135414771950256127592474273298595296092723403137109325956550133787133304748029416780134297078523875788971064536097541424036472505958724325323553936331762070706293909251377142296388555163026563163973671378353659127897199745685919732207692361828054476704914246186381184766002621037631948859130546975042401835087207602402105432333696030146521792955909186442080342578901825847370353980860367808108904260245907452952760526869506458656728147730182383744324304961209960065270304818095221062242538369083820257809985766318413792228654696458425020226617075219349217138330223664042458789735369573235556657989592035171525933564437556032039906142785205452904543761574565148945873740546827267475449696829064165472852412329826022662403781026190089566660010866714043596434125322057065925138444062656978880442960593315901215562933027560006627929566908242787092435040450083420150891334947660903516485683304574830206201040300134366762792218131179064571537967536287121762273523321589106656454490817685357054012207774314661297986460276556435527581801352415804716744229797795737334720350000812024631375564833849693551835999482174347569939765918816332633634223618393701989175254733466018777173905163016448746182379115059110569768852446791955543052356026073338837551698094099631404066402777196666458524068293426201965598679269712421459165366337223067111082038820867390169022340902344253014568236763178598332199078637244642841924718215662590739393726464627755040616976627742418345702669419649421447941316306029368866724019383998831361469179813045569841141945603707539215403962786802082506363157009755312481625844902129909933641209555389813156597232407706448308572946935050730420764415398288150111848368035813139199381121868377578262799918178455436601743505259137691310012496081776567352459055363931048296008298617921730971388569819462264071404825951609572416522865767174918139041503274015954159744525349914002178401574214184703937612937679697457759774729895805233424836151661442675011350220987690309308509030794488955837506610690390911449959349769389313579911762021995634544721001073447375249153165355038372556132776842954090844003927191676755213743120646320993921232238177394700633792080094686107370406210887367630799467255471175877869636104830802142409453657410328277972317767040005220316610099631432262594045105779102686274917944319956915063672443460756771713517129688177473846419280779053876319393567505536451042393803559245439343029992447875175181165670973593657293783492937556088715680266789821792054632477028337448673502924665974125114376182018887100316452745787047369487542949698453727994179123035462008316627198805015005826272430400338543370185761673711139479727890241955233291249305400530202615180681298293387975088700553212726737971137567213488679427992273697869841339792736141930274403126861524240400915695388802348309984316827156196789432500859621964555143533687169065741095460662695650218350028498258099655455652776523717473487040192840461277946060197132439686563706521002324806843347269423602135287470560366650285878898704549713425598202754997138923892241234048101085561730850536060139057255351904621973773735847116925570671666303462045596255669909105222427383654651779172554546883338893749418450516158280564518597814458090498750556003052121154832701621620485508840443690412952438210765389509509059742484050723158194086286623243489668236326777790539112106155777265826770869514801862213724486409763373235349917342050084989460852739953744139078005079391842215525431586339167629938571026186266544658152506112013656344280672151813852933925957973531331003344870484485496760323031856604118565552107437866482628848397873586165932293998911952539315838210254446093881800068750825965397063231836628355556691604559701168654026228899693034223029618622656929573410394597718788084661596842218996121382843265599350579989325227499892963767300189887300097306619127653894224533854354758768195062814625369359132186727900953832018853772557817463993692618403854542329576957967102583817405594804386176489889412002443385411584255281719119627654175588086790860222325925603945585155143442360783895120652045374412522016705778688966932073846194027042333573279973153371423652530622682785910575618436387888904117748281048486749077809973172652082256591632365403172180041945334718324495117810264922719308662940351124278516804904620454906554648417840140005254881896065991141632903151244010907252622180172507396542871518619692606654553483369461243020885848686751364539542469696114416937109390096333237474896555314745003133133341274322032212168274387952215186060940538494680930970211804495931453864343015729615498539202004354881681177068618617653014956891543781169878238193571860378649383102742514750039019519527989683156526974846987596035494526867136746811123926067794695163637682573070091257769900298303607577175604633040202218704668945409385965077650864943723937259343020612642078830221405631298149464129713758940622423918457255408742065973520014388213710435226153553610991661862462457903682763356932660662911465100092358070205597653292831863702280945377447124675598058044618153864250040845785045078485102388081176445163604036607837661825551485284581497626201600865330647786317814464281504632569409048815600382589864698539668159577672376893846145519107936120039455828921283825300100252182502242813570781272579234838913388695000660899299904276090851630727862678723816258214784656679409139436488061378877616473110610479993183980676978379518746868470923113758018399304426536430103264379798519670374563423722354169512519231304959380340021126897543424447331787515568316928225156705791786133879157315826817269171144922335555809215263653801836989983798559338163521711887834319353728589203168386058826011136166363518143463892251336905413730725995918018960168761561643440268247628104854535727865985567882633813385383373293813025999679313310852256900798271218842668952880691919270470067169385160000535879237194271056310146986016536557818115462463161656256510735233453519726229164289314823109082426524644500232001751102256585160972230680320463148929190840271661700126337494311685174217857303961800837432348286921909383427646927296092745466985273079581604016135463100908320680003056512876575731019359456200462424459969143031575574382422847346830460936496087606439463526737294263850421997363029742746563285907176488798930849957759205692428236908228187227245978290968247877715842323259578906890441333857024985746642990164077923799496221578113567966062276228439515441369969707022382891171177774773406429377911186063454827949697951192826381293313565055782335450461419971359213210434669401316658428952940429175003554316422924916062629621857878905758590886382119812493469575250990269525576262814261621632329878226432822589440099016668787374149847604881512454176069958816863002612720253109117242605397800789446839013307858208035235642492893791207905329698996544397014448844526311094926976151983706268421918294153343324396868317850325518237290212253272777795625991131503652185807632683586503641623571506956243156581906452364679022122028423982051165665928777320766428117310125729446525592766823063673302387272866586832648292860556323557995038787601821191295882345329616670880306127375204878944506989639045874377234419277266970128783149995813033070175919649040729425195310796449473161216983047406236307430361239899547809445620899167271183523055425416299559292529524545602730599096785394261824059291896594229493014891256605720510788707486077985405609076916479274317255902439430014725059265344175635289296783417653822361714761015122262028660762093910978647461897433288507387527350613135164734677451357924110509888480213142812135994645641460824513648125989875779897009660146596184134234945040570611347736476397794237537901839978338022888575195499223425424241333502214658404285659892430818602452032924167953682364185067986378544036656235617397861433434986592617614808976771848192051442268480150784946234970181224030340451367517743417029653926525018118469904895472521807021406848581402797737822443790090870028859615893964875577716717680184574153613672874711265982315572235548410561305551162020435143492661521440083933962121932786045728606789610399970297835914542519967968802235226372029711155387451438041322644193388042253415633612840346040064943847870823420339359262140047030392292581757806406317533854067119178809717779110247151472789799883933589924790260467316254323505864899302689918756431177987752469470084336067333396209171193925535195046344428590440249569194552233744120934202860933167772967431749044188108089722910734615583655355589966852681390735261957744996693776796530814743950534380209515064833773515200817387282144661578983955630220037445250635481202591487188574308878033427537247613687446833202417946993664547039488048607756944878087301381211033772426396846113273932969912612250147632511159624002794492020221435342422558667402342078084716406713728510422147108794280647429746987506840237659435797974680705984993433077685835952516386213674417568397353915766556231085201579288527006672879388533834821299320413664215710818462969358800777614913110164821088728082937778225023284301980690118426919642218594276421549483364238479089955478936635584727724899908102141347466266484246010429134139903513662657753083232599847364039196318602509657038988221855647493624593760376601920619143736655239642166387819864619218853146688616136778285259560744442714694301442377191664035851107356589024101639809314788277623282160253811028397564648897243914056428541644751206334707811952569026535144851537425613830180168257574392956557991261580300158609273696406671960159198049409810239162604913988513703573609136185501550694509162030122919627017617984331657135251315809737007435676442093547366245510602478860306006608072998922042125205852977880155019260023696172158931020772629322976097633143400332875758828767940904340037470640099362877938654008345113738044356489168065163187276432690150344852726056837019029323644220733696050905085766490569449953154022100128814169334268739022589199130272195952301797724441101104888924455783104713879180949936236363474398784677546254160556305705946232831027608149941270637846526691166915682010080809179128372917704204679801669222023981241782610065132244446345674988863334334434555301826962327295831439093881224857922580980129363703277183271752753807781140325437817185688394382455881491524907006172660044220292593010357709723875207675649308435601291592484709579029489941732013880682928050097390486574277352460925137852554371763214011536182594671685389527552953529915149473911255246560481221242843925067200148729085806014553488128239246812034601828180539297672844511293267334829300462217349626388339240810507598215483798807705417362961470969094950420660974705339708461621854455863628408419111047671175381470802861500353242816853758477052070605303965809032628166835491568727102518425979349539378105813732973641439458415428990717170421378248626855104420806101511627297148728775820879828658585410727299742787032813655326977156606867749965695374003463444898750302460445728283130769527258717509225989547243082921339694942940671557400143729602778656365441949379861243050277386321659846303431173746755210728207844839856505948062979500491427099545407369549759649736280045629294025396267220073083951149489229525358111779734913117687058996185450249446866753751944493287926952278834290562503887372837766273564917837552983807275568369210078620239699809540461156929832373584025238555511333699405372473299124449622210836449603229548600249267246075446293997163979548565648237759545444282442927976361108028448867031414823637227122106500997817333725230320489837496246155704687919651207592456018078039423466562855309061950528515706617840472594925221772476116224593317022643528398760205032730072921680933407718182175561403796674840796984084668165930869849993688286612782898388144305249769921823871048660517532250372920352879326003235373746232790294681445837731441804758844184775690663665829612098485616564062879969211391956120201715706948038963460354596790358710713505832869887527335856260449342908889121816744059662136956465962771661842689033784144988184772978221485269587354733305110745267972331372545600771358557499820231433566647861496448006658134019564823654149976169625020611242911279035715589761565649626853733920806248838735463502500361104093334086092013175563165242456861969195939805165224677604003202424274938367304296648513617466446860717289068148732785227270727327242558413365807635001197845231728619404823513133881294708042852012027612255773547216020387424230346701274344001696460644557413283302279102747284239382260583247879292590327287461584206312650557684182300913949278975199986853259913240759883289725274100462124452257197064373356011983101822669399990871224685170996922168973654858879813350635699890152155245023569835745165920563821000965176201668329755937590668279127140902361394154435430827327411764802152472987674628534241750128118659184232631982384933497066538287981766367464073406436336749467173844311015149443283943064450749585296415969949903865806343264990449530941667475055069856826392579595571336656268388614109316013247723113346023827193800069397493429254464729575710671036936400217612184030811020020429238877290088925414942235629107018205877220590281344816984770513109588504111564603407438571641176333075987971451035309696497536841353507810710374913116687439562495571573835137692823223536279098862132767600054996863420563564362195275238873218739700506423113043955353110367691760243743218675969489975600123235727422225459295312479248043898930587716648338437915388628930816845276948855176352198704858166549517886644943689626222284387750119303901790428321646958549525046357161577946570984302457552971193718329797489219191277637608051879320889168273045284796563180795126340409486974353652653155807406629827435320964153742535291645882373979242656833586328616198002790366268875352330947468473840907091376127948925969794733371874143520677510918824277995534533664792583381530722784346459123941200088867391242511756291872539962392341764952644696701078500040001610232319686985711011322831785381033531306758696306535557678944745522224140041357973600093843207210077695008013309286413272702891412543033802166749113148554062184213005316028900138458531245982661145178842134571916364410913017725362650419499058391512439761202145198739005668003511811718033012848191197048715693384418212311796556703752162577319625152388179637586853391266494839210956399235625521853864945795040000145289074563359589808722050252420272404265116688851249404949733593689289144061210197575890280903678934260807454211382153704865120040435698466727254925903054608426652374887197935490958222719831574301308954065347572710066825033645207145545253525991633115250064277046809886976057094322817451169336933912829917339892150543597601133384803623153799140110379240874037857000753230121599231423465059200749973213614729702173341662439846608618002872813765290875214756299625892553500212107715365006265326032871936056717374679384272249230074157432971155247229596630844135477692244667423960507582505263688867383260277840411520201110945853974499063589441157841382157367553821218468639326158036120098531902616112024802905576271137127817940669612521277565386830220532133979042778515815089707619516660612440554058094236156621386481105700447989695082930844794061742246622091391812394819990441475481069494879651139539024645665808025939640610186030354621930529010849900264861823620463556869551372115371247347584092243541650482901264020392676563540392587756846398042437919990942817427512985083149665667223759864540376670598167825116254229240251630688525598260927225026529211884566854080493214431584344272568603494821786257410142949139107747298969458262261040278902694059645954143947158852849805636988422250686143527971819778791825214277665410905449781535801608038769125538819905903860188561489426773866932528017842006809891547246810116825388745209133595911411556847713814685399758037318856735576305166981208482264306863971442826083023983238005399621633086972693100827558763827484286939856100533766952367348071011471477258797371326893535526692039447767142765668827391506901766793570454482852584390063128019736774746830232354822146157068180721273758732397138514437581979796823761747723575825048247283904280798005732552272447592891230231040933099275673979790355471527698554937209573163921808430800405805317210241857126431588273917669916396948130161138514735285082127709691393716425188335828237367081070756865105652897588644401916834413532828574356699729732772586194129585786003059663401515177634978750083608245824790294796915732005240257322949266139435491713271099801257832671248499863573382452241584379971833197339404343085048050612267228233669453107877331899569669227845930612799249364492796014479403445249424790062929531610155592876854444908036831647747773846888616395823160853277185141452099966667215068179550733117046384177989222715795725239286820918814353954139924936531117648587700497018280794153320380383298162205157109559992064848333445236753840202901658187384551685474346402559454984574045424077225812835377094569907699475797043755163763027278862252290732867336004617741757813090533659001164074459604032301141005733617642991395597598060797952695959114642363761128135097560116138731570059920077468148046293379021142819658496117505271034386502050344307649249513838571902545651482648285177037620546354400408465250518292964917388985842458836512463716232386904806297690797927213380335956926716111862654720199357191345067059703043806426468426425218171166796135415342670942930098267566310717115709607599647112190209234667029284578481530983512380056569465814471024250501651140724271258307865607882076522707030784163604921963917388332523138168534276020999426184584236905841599098474631841427130351032908451446589871523956795001108372889116597471505788263161277524522478412661973584490169250542671670170308939522519410779114865188695693991544960100571707765505917334487403350502681960533091523858807378635629443247714435118996007460246153237897148501921641172774357583383688567540802224562024483961863110849649710935751216643163497010095874223525814299840552638953862186830115858734418306633331250908553153487886850385304899306050263649525131811546637894341431746708375073325280332208683461644009340374304668594357869217409041864032631846751959680172459558894114999576228101203923899133255939185745275227519157546345378136211616513252965659413013292349472691736028236227905601367724000961960084953778849135126244429996306866427355181900590591573820049260224619493315390415539138954279804271748006584530104388444101903065118641300167991100275305470667962008463084338507535169408201031339273855586373557969729786673639226500338902136521191411287151022362718831417933332538334804785347245991192747490806342980953212030524579046302063161822581084132697874795587150969725930022223698082866765714111169618509531552568478740247184615825956218726342397751192652205564785287040860853946014889657781045910757836606869911710191650166419453740955477088415550932755427604758230066706318091855889906553458976965301342159037952972707063694454564026763134012105252189661928239663052606010125470052017924480628291518295263687170213416285484253010487494825889237936033339956491506108776745493984320435760626756593431050418663323923885914606371437894277320569378026504715282442772782612263053105872351654476611908926390893147972481669132518940576239423287700313054013576002898825617461661496041738671506345041762038756630099637590915595407854066618925519611812783696372550545396958535660983281209291039322960534100510546670078470095798294109117258732461371886579512033125795448501565206376584245471401519052410354337596758647059689302028823145198486770741240141638996059292238749310014612025300111896535743244125870675902104288601821304004419264465482625149112389864762948025952226937986713269110486153224855786463102325159363492738138572044168242396452254044491049570213911639213709878988810108706544401384862452028990504201992733782192597307989983442308716303270191361368997850221094474480897460391973213617162804712727705304314265580055290741360354818745144519554985913750992731222914558931244455946187583463989330988609564609539537669761109238174608927463273775000081860024454069935027633566916291121367724902016053975094147159301170580530911189787137001448567933729537306666983822647677981459473376581794530998238702329045162691330061617063268131313908064308672109195265873835694346629222653419675155852129665900161071331465315724102674485837340427137710119733898854936741959550183712793314736626474982533087200080691516264067718358694527603970355674978091398337090420692521755043049169381231976802526555448309796999924133555405513893646358530779419594840111725725060621684422845422748322678528825692534799331334910845182480491839384594881881466359357925737064832666536801285819499364999417897731765407143494157132394084481027856286737354437388666975223706101600080268798306454253921392065428874509691117536754383836076852714788538196630926519540146971426902217338038989497132075293003117512156687679075095311952309672568579920952647852367052785661779447573915309037508625324603817443346591573471219910618535072400671203196931992877658013631297143087801403509252936633255090722851122760859363711025147446588268482978624027666113529530785068617686936386732645733919647993971395491380689506438900010026632048185049372022986062968734507142905055197243895473222404801746541862184372779275723574385017023605060436606874963762160019769868994717775200787409812065392407269470770714224682974755731380722134690227314676042668115362382102452475986318895181495220255177378373174625324056840566916488082346201000999201733904054207243053077501216199256038982168630383265929212998714367368881801125632072241133842013055559441192255040397062283234854488518933740151560841671938845191014802486486491868716272232800105462924553291728009657302106542366510200146244543311768524868172692259381528848424440670537088233417321102482395566422097005962325860189633705991065336307857747041594178063762682468842581207717856573830677597749827226869690215283686420492563226717028733271647432237922257066960765004833927587486996029056695644009864297011429618405380780220970307135116360528677289379278798228865937851578127039671017967961544501923308691222475661900059510107857952497064564098365873310344887672001582700793478857743085443976354891039903051690230974034322727159633338372976745091130468982527448397806829948492665251077052324431178171465891034244618150431771392355961047308194508544008931320539742527309974997430354126978696554362572910559353194660520971639093826592226857491454462089447696629626114630913753232738784900800142456143259911404790774106997876087134853261152308067918201803837287459345395153203620806335400634041867654745860025660743152507602021886497832629097300395002604533968646394664143849458007802193438282063561356366173214300432679292072287629073874008958132026409517638921161097306777096305589866549562268336630375521659322728757526502067152479350684438599305334724961747335760135735667007976495166179898422123758532547065501761397611216336493765898472787993139733615352732433002476471659206881720566165694357178027870592505774771359099953222661405773524056289949954323257508404153822873091992185783822947070493241642287359385260371220091402396682135712326135656917183705344518510442603558661134834201713842570742436105072792357278346409344975747671688048813771078859920133903186021356110316820110838271521552713606673487824170010694256461637715643537857426933347762484611975522448131536271032121294362198913055417380618274627930769880768106436341112573976464720353937112535773879446005374819598395264847393965022551613484418510637505178300497493923959417631498590800247701298414665328755071485816626275373976558704404074568303188025442577076494965548791535618749340101224780148555202408708909148154603010937627891479809399803778337484191395417067057644891795621334423414768336684578009663558112693972408260127349102459511252750972590638070329455274147558844737871767194730632116859251406022408234315812571495424395582927298535169809483268258191416697439836413605953997316855082637177155384072595734009792145731311161507436328110357216073374101396501381218591056471753552151723668518885936760982642861952882072609728835488489834024009077696221876605296599589221654573426065220933246708792226810168760558282854578332653654318371558808502464348450227517718442941517738506766579447629800838768089625836382559840934325488338510516883778561032778585760922929898016760683585420475891410709935019022719625405297806951603007973358658786675307370416926427838924942210432901038041098873915972494297547903417819051083617108579908219565315221499503800074403751146224162587956581092412423895152514557790851073246213106603379655857213459701355952030011811163800064418347825605669586441910534271335196195327555839004187722723109279761345691380118886296961538727774890293942073991475466723029392556286515552062772344277541842666160525599817853787465412833010980040738951481746990391122110949762172009273496062271347830203999684123484577062312229731497055093456944092430730330276239533712362638520413538771317045511537054314334762598774314626834376066990013564556170166759603696509973960549546863464031029575244116362244384285007920839165685703549473085674533355114156194160220416824290662924904670906258416013144549343517473250211636736689580841465944984449198599005467894736676131340938216154303845752612402554141027604695846971354168854709186430513400633811333014051899763898027487828217621882329718925371772922153149256996447484631945704770996653935554154584713335002140806176983823362407712623440827467181042385816863009220452499303796177014221639092069239780095167967903081605349969355371419920949945091725072886857082170601824289897028213365813969293750967718634371854374290060516443768377051669623376121983806655264096288355534266229319985587983677138692379535269001193098738767896503078786360462746724319320129480378175679268761091344053707019110357259065086875817605195401436335644345008155536380850171417009033126982598253528613448254270543441926829390079862725751137344773060379687258663781343284581583808917650811463178488764719505514959566359002083896191726943966890577194015419052201131132043290596019688637514475396576500584122723753152334619378746053536573194267442383333396167800215872616967118201799628187441666258541233074718907839656087513925243729187778724230713724042875794647089140781812730189615074629381487492031020249325862510832551504593235748334681410709072065515354062940144660920820295011621848237287156156205676998158756814577471037432461017491549723083640423203825993164756614936382774475245020899924850912454241308518944599213163255220983803042131677509734454113940765731350726900464407681595686199999375933551403224115787825739313981392814897900857972004891440865745604887021415017383954890051651270463973329966022665050095242764238567867398691094121062059029095552979360429953069346016804422524282621105703114827763853504749910289631412028797575670867809742138057255115156259268738349929230370291142734611569392418375502250831986303651915902886700442401336848748062225803621167604213022580428296544931003548259124713502812073349201150591714918917320495705285952446393996900528900258402607090996816507823348416883063759024801393423144723378962208013915761954502557665186095332855081983246551032793812816621023136137944414394291375560515052440521479011621947927871223306487066609706407737736045951947716801594274423949819119393567575521530289160992553188801934571804088601838428626611919285521050559633795094943767022761404242080323855710137458429822617915065969616784156903854369113245998096319991431632128323775600258709066982665927684774861376231980840800839030183803126415221324557667554293419257544474530691282963802661782033465181502183421178999926580459418085960289661228046237541989164984411211523406816638471040837272936048944661315616679726740698391854120177396129602717100342867429092511065318578105805768801597067262500459302158432931962557730307332039087103225040053287976615178219385050332940760146377325588896462754370612556216045829205802021621027575926818721432096755504705990374773590996936748808085344472184686043575640603116572640711225737069915251184015585971469236645923504168123188622669639717562467446007734090989857012741395614317833429961479493059520171149185719610299059459491123120331297075383679202039974487566057043395098109117248426518891601921527644523894478340966538241272022569237773598719757260528477170665553786300866487289869390914186771506559801767596932139320603088519093245350936340023390939736889226811596433951650147721699152114092025340241346295261005254230566652272447569871566862011445434014552396056918779658816738936903894107073519582523194002950668443414603299204815355638361003424115599378298693378176762843490644534423545636541539924711691919683140022167355697871398440227190269527379893244014379581205942243899820947161781662042323999473382453395345237331839199577644419424059712475710171262818570173060999920786529331563073421189327565319823081402410031487390262026221424013281971072942836879202665939621706749131556399756497684148161922433367946701442575188860142984587345493834815146865063042984731121394678987377969554553810075392828671908508290022428569420338591800896575444972039111510183265649393659058585156643399783091456573611369787226033078964032254893950183051179550848274317936816230554227829952489686883054781128388607364744472305290101246695880874879215647178115238231305539686697190960233633285499993612404610724408760686141199360474212042354444914775595894576919995105209854566898566161303117118332969109568933600294418841926605840331548170677323184961042926822439369425725548418568714328119378682699345665244923120523183693831958997255704348058471731895680770930370146151138067910351575905696615909387044060606996153014632374776429286208668650006803936406043703473809859875960513450632099775978091384002362810482491241509455730066077651915091215914369062787109504155136688631511163522222043246278024707852887535975036910225143111575129875946490813364311289478203796174005836030077701894315771237726550790765268606632549905399236813564117350488869960723522437229424477835913675619637329959779504529621152937826222100404139071083741424799094776824112900026003613872855072254151993936557221986423585074621311854978025457440497942280993566872965639021684955036780001907073023279423839281501663768122292639194514859903490084867073145797379859521032372826877180364311120372676986253872864452378588523708229231672270921559096213334590640113381252313246787757349717064864517948236296269005579589970708138072419550086474868380145777358891068069028307281899279318382420962169689531333112422183422878370061843595627697817295420526629511804977067397740581601263194455020088723651744565579496785805021441016321224929259037723228151905677664963967475311875683031236326803054949197075539329285337766181932017832887146525985794347362576381862977164316659794692040670344138586700986483340281416016865749150813556284769002880964635094320530392948495840767275484251565798489419718981455520578254643220148042200034313561468648105540392644560354394974201698642065032778952349308277740250183914076301812305491585636495723215992339742468266298466647137786104849154663654185850303502430144818448988481682565011091631502630455312491887961838413470408631989745468844104762110674926654693022291330532744550541868165215120054251204077009661712491500432508091752752357515756382666396266464041160218373524757284026341121912679482389113925574688545735544306805595293542080826965497427685564606714737638648135086111360742039283328502679653778590895481318497085844113665021588051703775104759698642943106747461141654334025628241002031758149111475363966036785222120506432860685469892927037428066607232953478973844893699499006748695939918485572059538494770866532106567405934883358099381650215449766101012701665197642599192662157755490802095828106742767535637696302728845721033549478802415673229660354422096398455937438102727365026941612637552416856716743019397087073270446651994666724175689063667120418049066035734898451772505371003204682362092076894972297391256134523964040608593352605682024329457591378604140345333015669519212377199171538905214149293780163935245184601875049500567058244008352648057346148098061602401339442069157185147175085839063873334819857391631670879345453848867253482836851527165279464236778112334062893425321142042371990305639777056873934171230735072898661580206838938026019815904094549131977939200270984446246849691655280507653637884276775319439181870932846121421846300197732377809067638739384170485011745104061902522608850612222690510011669571457487536630963178598415463835498543391588946617511378869361411824918491783432323672455580118749628419205136311885979219401415785926747300676022343631030582404281199974774913450934754257606756811715153918486542156513937990640684449057677603094060277321371273876600323194561964984844132482356127887080134396694990193407394976245438655602983478922381690396349015374669505366496213177164040494709129774833578561762684287582280946482360671829275958639912932879764998908993536106696382588723917795773826058184051084292992849551472166434326937354745543582449896741343474826295697245481070105789108003366997243180692060372404592253497651220370754055490174075665216844161188308864747884690707883592249138721507296958908207661198352120871700459993125412129625688475053809043323678953699802806815440917839801182826327753576229267046340968491243158963991640172722056609580944665248732086251319753480750228889445062716027946517526663225028490262977554366229346196825989980977871739646855873548913525066491933143590202688390079740803026216735865280252365796465730638535329001469722946473799689585929444279996419825164798064535345905649855535229573789814946381731850883491265375374420873860998961603008306863513497577879225117315112597267066148024175779032488157749948386352865163922101185182818357928330149201178311846802328540056253551377628671479269338154470659361093538125690222596574002016637280895392022833960743116620376208760600537757032582364841675142341053612690736595353741227842582929938325916932562548797584991594714092866140416499920089950469306885179360712908167818762525115287184865756024915527021907406468001182340875159983099911317992596629265019442021532655569737880866360581153938278188508077752022072065098547882447555350735075874452567612401751723435230349431039911477001459004858610814934942993568596610340008216644748587689211153022365348978257908630543888138798466837113082562403992932932342864024782554265233250853427937798642026075858968726355991591451578188512025633701246093204439514352461014021257129298584366451254511626495781125041672568351624865436571338746757531342544360446795477565390904799302950584278617394176488454924133360939829851262289368736009307741628087627896216703635411642191474230803321994464353250071247461869936741345051681977232668494197539408709790424880989409664364785258157726463010691477515551495828996536262341040772784777709188414148798825713772304018030552677032276107524376163585880100063469962908334520572573234691374140193928299508835298350792344408175905695589208338596692430620412204206246273300782932749145750846364182792429851892289318247569758111034250855008453220363813814049702431423408101739794563358454935669602784413500937319152045428600874624657922876078397516618913718549244613371391735466331705002029654360641664086248130313281565727156001603696330540583453840855201904489712654761166964745173521093556147786238888775348049108772273540638568453468642808178605000846560825003447297314081403904665414202115847700849055089255448084577005568504231264729650998299409875311082892623587444201044306825853554274896960716171835112198518618105513155156309221870115150977082375283837641154079026124281404598784099763854018032130436836878531532896104009298300852133058913141148138495376146459679089358801892004066520104953716108501751027245474910043191046274356153131521055926348178944710506274054158358675090906861273747695272641304803638784784634523827147276488330659672577164050833474891388257143409812766213645795834898348519521672387939031190439342239507742813218045204046376396257081241774868713290819610024634189267798715985573279882875099156612435060856774200669736979064328524909026629690324727097415996282278395805240822429037603618420634350565120559558805830402741977037966569682328904344883261978662694739431085671074201541057406531183480520854931963137711675946199437126364815448866437958173032977644702363271365019454575999360364781639523613936816336376802497568630287074564676638997633568112195120981096839918544061103053560220559928188356795726625104698318048448890735033171615151449335525256901722917605174954584474920119144912344433045850223538616797439756294367905766872668913896805616760760097142400102005061450332986971559977834352839685208205231750399798483420607156330069680551101575227368230664546599919655883298709525311123272956550258348056000857637545104851966920077930378372527816166253107717171164550084010545564432684957615410793391014492224826703966885977378222726885656376076791907803490658342827046542070368289526008282312657353738033983176855365440770739882206051393735851938037255095267841725361891517992636246740119773696537531574253559368678804929673028349799999253334529770120662609867719237302020985918834657954077003098804705943273014237945951703584806178568925326882041335465861408602882083198606998780338945361465075639464954501200584908198913562014223580038326971357990709112059879931175719510183052862402095209229063555220341616294895074292100682400627452494013977976953850339697047202817901810917120731339369202655618538063767710121628515097385356122279407797645579641409365274298407389455546945259470706754605583115042582260215549993139914003028881067528321235366425876877541847614962465186917258397769064803178252408994080341218794482065479564888626638147278631072956850499284059969786584333509296456762774660154201339859273418029126441409517178349758767056699665978700404288762483748879716844921422100235538685169472465113562198402642726728222938750792094843827975690094210925496288739977063588207661498815121902918574990708145492393875971719926166071592666878067054341900070311105789498581646970920724713101441308203225361108270328256876285713773921266940884913111562248990102313783414046942244107896243353094442505671967000002264678515242954703333800717646057847502541557101950613918988688803913332062975225497208076909430249863459708472351553182069965106215965066749152124190468022351124798847099861637331521041610973022630488471336937785690245471973530695710270623937203225212229407648882971497357090641457950028073084705641347571493324716677251987423711085496060924185776430297089325578107281363580852139748066752378094785802162789971090434776622085802887456162193305559010512890221428371442574051252751580170007866057938892101345285008482323753274467356094257715540372810601015179911881031386235718254941950614836326463665718692738768532796112293880222148287561883162889691005690779158198513982818286043377963488740080763363038360746768554596356267381635053571244229703505495585375329584578217364540036277660780530955756528677988820787024397548820197944406902740970114046495226541110780981841536701683569413889885925780774421510593731670923668722541072473213187947230223942286253509580215917038307597625318770428627721115771088110788060146031324808876247020247561415511256463134597086538735007197074664721337963706018405638480578468670152659638735761408389421967892768865058106567699166858036010567262132645992202709324844609719158213069467514470780140757023997725727377999757412511674204295939925333181776226028044830245273640912840083370530885435914315661559950901242210230579513589502272747578694003678674912388142647130477134496689572713400475635975598121023725635145042668861269369364596473379413613863442908726432699532305648727705522522991096560700659671883052138519811224500546319053161665219681341109388876851219741518542048023568178027321184143203503637928279626360735926396606043338972681371509947135438307955801511315784717080109916531375396658062485669104306836476765842110060805007369846184821117766519561884326190307223677700532088026793669940349048528833768038413706170901040374457206614440796923274796316772705080861804579102133655734509566305459403908881789664924061572280944742624596305380907760537606108724744856732794505771698543600069416416605757088308331074747015394870539109755469761301357883709452775855195918823591539455439083967540623570710987694508934976861544687514888427080323074889887235479318133515093888443201298906067209900182463750659407909367701266574759143417331173880162595479240964401249613530021684395972381100572897422060121573939428911406795017686863229140797514490441586072225095234034487687217774384843980662263082644144537871895309445008317554030218343773350611536386184882151196899681697411407397497495363618360830500481980627586640731401468889843206082417836324039560913411557741317650504582133559374239462739239663904378080206156129459990398614807845741608673800058309487240066342085561082467879431574233996676101301515281125530766402276646255197090798354732655644021622529924706062743729215096938972503882803904641425154673304321328852289074263693615247740693246999850300957048742343116271471687281107108338829221147497800997405194501517920529279587318578079234666249570927135674479798883815713361926554796077536386098886257375444930019531256634126605758851462203738283727517269254473755225903519378093439952201805545153528693459226253949740405192003940940833482649496670370967510303324107750097636191917738419832049698303007727918900704891021993130090353725635313614649399132219494540652614250938383242620560247234115711170740990137519337047988105357123300849455829572063638255730955092713442070909485859938205770175138726469444591714430722321322221838996810710098646195923305656046012773488847638530168818853676272865288205699722300180870035333954529764933863646179857129685322142452765213773112631190293236444503952605500964248194990881168018609087621256787794056320890612058302423533603367034577438469847762552287421309295072628140454600884621185959022895082081385491304680811908047489006936774406805218393737822012983471304128296382531196673850037718791099785387683649786852039961642572364578282035492471135684020691426022651840239286461049276669850625464013924212521036191467759752786899901647073482174698200266354172857871656910025968627386229399455206079504801589949138537214700311704706322341848234138567835504156943869905384737827694182679788024773557516098731106635557984058918141185554418296082376009042106892515241915038832797420881130906429389097582812813870386006793432798267100610620513700308403173396544747553300620525869421695042464631783876375528257952813419413760362474207217125843954659767548323804558349113533706966070408849172811125611726559447370578731132168896171678080797855740926996644085917580234898205383968739697123607674275508605184572188863198790579385985567635668591824599137873083890040478770474295568282140748175432635171925430422137653126834142091956093429405453702824969308684800470040011026681372151012581623380732813974806884801693043483996690992232228827824782565449825820469400074774655159683178408066448615247089671694728068467274786401762223592732025739031825733298687192501858932836784578828623744683052145815201535080287122554845688466981945279891245372698600607396291203675215279512058849707671305063004867436419923384849311402071443525248614184734009384265370052451896613403704240946083017464021546031165960254513932623106120559053964563922755304882485624966972391348431922567607429062923847253167479357037401804300396438339181664651340658852886729460507081881267046921580319766686766108669645667476989066432028450720656035854604747713091912926233352419892104864966405341730924635350564144409896590106572284763556899922152696112947112444469259603066036415688565215548500043946126611351336002241041878673673456322780381694143170065087507639048162753170711036170176576683516039969618399253166986409761021296427364533597753295888039937495120533837488941054177110149474005776172547627153201147019695099914405276751839393367788079719878491170318444465699111768768469485218909649446449347026852575837153241269251958128321760624108421439828694867787482478640403484762941271315904380509416072873590613962893672762587052521553289923932957458640884118896698525281340569313675489788252390374906791814510284088565344251787044295480773978136256674699704801621755244457240909203341384610097677278888256243724723627837164228733833354737781146707827775631200448623899272081778721631659251213097905651134069949187948628684084278708693531717195227215527365783186927521461605336430981880538460781698965370633186140816234499435181818768057662392405568190934655578968159400797352111265298017320748776553482382212037477827691551913843752672262047475043258645184261834598757539783638489769023359317828005437971524968888442179301235852242021762176848989608666930660898045091943310240109167092258197122697559975676824302078105717094037138025495150190389789831262388661342395066813766454613066757814971784813161876812858885714620110190145867117738451417773645493424009414930606633192688951314709690911656294419984182967851118180701042842465052793793739909014986202120384310440544934733865731710203221959769565073774161643492469561513265719194990350583089816364372753790076350509964335908152418785337929907694392696384607334832577074523050486627921715943210175368993761276783160639005857761988560377904074786596776385179123629378239568678620030860654006299793472848089135599505437804884670228552285413371591237344056720945706470019712606661910284049291140488513041950491813035062436547266588650541888551798258730847866704065462867388844473665762085750947117641842530199760299942146241668877994342506154133841106101481881836632303213470384835366315047826896523797575925823685774286890210286954851246382198672988336100771784091907368968468395643538788088316535895662393319730106774112046373212461911322495220290090020826683112524043246346093172275678035341136470161011112686404426852113029791323224525387243960354845537887422818809314400799235575648047802762552667303689110036523054658482574084860590300545012426032625300996018490068029444059148090889283395735229401773870746997407988998209240902324763643988002528680265939637043658576877495350309301234626167301486689634374024158323765600576206269144734341847952701067280618889693827559370439185553924308283318238835638550344707740542557727960734372970360788191738815002062634336839732445921281326175679366624355436876401269463643658617447387237658419368288986015143433570867001812262313297745899634683113225790976155023546361688471202768844007608637934263123961057089024093125467691289209290881998603054743063231548332052616983081188280220056819808283283712544577721323062990231124154072637169729080503717097377848063620263671096969979489910610359658510768115978353217434781408939189569723964848509350497238474808278612310063872022204405711580106450875838658031502527988917908005570154885551020922857780294805644238279485861978704749752547506569705537462998898337709665782300634973710967854642184154991579517516970607271863624330565569239599594868099848418036950576617644716896080722676597619137190485899791461930195564745625279590144511061667638867887355887871310192584003415428254764914786479215069886470935891860046406769680864776026145153359264281170130886589000596930893544721738295473311631267802036968637910697176849785787013043777381484400793103825122369160507263716883380467850406125495072301787389521756940888742571596047827847914078363625470869638339462621893595458329584827219151337028786131988621455185959368040363877203466146820414899386634176105677015813951592017966265145680552533241197716300705008981974423244216721844395364464050300659719158992330454118490276104004031422290769709215391098551843542100908741753666332901379874413356317836123277024991002217663993407018927963180212391593502056943002665829540811662831843407138445521922946373341682165522450611177987273773263488923915668890035516555543772482965630765396689686682430933124222930412755926382435241565582167685736614773586136156599677562854181769548688086498178792541661038699677684328883934347284015430971870410213890989614870807837350856162148971391899791655084949256800174957899837307906215263104283951620184469742244049132670934408645169975056751388599637830060988653504689247742562196816363803595894321653284521569397728470303557218067144227298897554068872786394170991590911687944242425606338714174625751231490507923439850922071783713914280798149223210838262825892170414105062656718002329137434969418339320665084596959120422327644631318414129721793595022469548989989285498902422393569151004389108215703313756606627056059694005862322766997105680103230048268088156565827112396426793282418713232935117158975487126593532972862342050863872219894923497067049193113024094410681536036846433809929980499177705055812718720927277670664604881468437158040319447484881765209059647690272653622929976177246047860290384640103066686555172808260912789242811143208934023306216698252983341589010685897318743287833383369059652976683858026152409593921193862568436661415948527935863068212884742410965803261870318379807983710250848996842057140561877715842514657578433717982595474248105223953894830117353409959652068995901235384786055672735444970145177349432802038131555545628649364926767499194015185507740677738741436368768791342501629108568228066141167050182408231356321506142675658694087962914337537845456285472690381699404597223670538953866331772552088169042862325627601172390951979589586107847133416680750193755057611468057066063148236019011679840036027943822969037384679044773474048134094128670800147882932840826092433819971620484569592779552107984815060813571758689704037400483472404940361911707402482175945699829016944795884167232111327834446156587968959783554921296782602200546385106269419057038850529672469112184155537430250662564468322202240989318265509280870075438314598763102644242691963647435707854509135013829058078770708762045339995416456493537995084076726236815882183735465969212177154305672896125550128224008974285082692288615414244204896655634919736424679627955546184377586996619645128567665758979184082746012262230221173365897701737977864837485117641036533382110611615136367743298578135323864163671871553803503741883752165029904960528641193599459131470141241137643669152197755032682055317086548762369322689082441945772381967125447403141207139790278916149145398105875223812151709936440577651020784014218639264785511624363232701576446379686303447120847673351574308927921085403319551675067945772848717236413628503545678887059261646131440768999339846387907367458225562633084513386650331674194305918228016623219633126203413418628094518695345785434965238202508521598001699031815042188345340410246941184265138996922715335749153131418198329991057952494692011261183901634538307460053368845552662096809297230554542934207868980147209765366376882354264189309578764132105167845068692401911873558286087484959464275749838148065030995537904838758252369455634774488119621299073687620535670291640487542131399738838065952800793582587765266780093406401152737054062211769502932739489290932532042030800433136892037439281253761026216883699839653189766342168495820137009074217067840301516026422853720280689798190736176980173549369704827587459319045186298324128700645900104695138567864532541892523963778502386525045227551348997762845396416153384276173177540014449674882749397624298435570132180352582567210452086951861534267704871237388835596139254103046103078194614321303003249640669209017710950927523088854840331039748454786688842973715441826568029120701157105006022119142495641716276213017364045137665687580981051871871770412617235596354104780134668918108949075736455206383241274263654233595679791719993235137472120696072012208256014344164291039544832056563989294320239738352459578112491228839138514506120458335304193959339928644097294215039295527652287564849205805978872163478400968815973796609641600291152014569387141549873333860011600589948456209346329547867527980736945088690033220722570649967098443858009541349463203138924361589739134395264517836610545593112613598180777789489649277945186049028098703418825234975760164234311669248497869780830394156493581750674381285782801226358443305420895903090086841982795219098682342923875145111812544702855659457567802896144601482968566664726939031462113730140609178861959437800565295503446811342009055728679311378100260521917553303781396474660057979124086821093221787282938669147024630566772600977033911839304858523625338199129920801863499398427874631363145342271402991163241979768693636854660246988834774491319991881486316678390949072488409292934539670622453558705557557709417029545627509793695204789155311237363389235172396552984881628541927648356638379528331174318282979101053428292625387585783620035988268221881395335135668779849546778810074462681854654305907046599961223518464854366567364008975743712407187819302824292876171468269087211964132962739521888179475915634069835799627545649778993685911676568246919142524458326186146489139333750422421270432377564085754515372041726344737225306483392392639615275171216219530752557929284048432736509319812030864248823435416667403860922308720416457675960623672559168662795268423943543127254884432313067496869021944113154960223074523694832161904499677039228081810645308907313837968107986939737368787883341282122310216012610583116555561154207892470863746332600025349535389576612600137305535019984302014683673826558713212931815077509044621705473773516925033763805578665553314723523602821174786977716822975645012365490960938770785218108542737471260564753707562788597585742296615109827394742502165039416455816914731877071660374084677347177679673203273163320006397025801740316491053751118417124972843179088277725035162850579414770111675003337514705437520182900566088910492563043391515411642732068533572964322801704567968977865626806779282905403525883517984674610479767749560740396942969129817413262991240925616331070708156702588581275267884557510340916073159191604994184051809657767217010174711628420302393868569806997140130225514773667115236744010959714566343146165121648597794567791518665117276385385033480013138555676289574275727469090557175500917048339879898263198028160036658362388076735979933142848254573757560059329790316033744350790938028777135350595319216736649822290211543396883000706432716510639742560696724282971836360616942613833238429752522962968637025793978529485884797644769675342075470612297508729262602739687557684632830722487803132572540148709583104488584239495711165147947956670088692852040189657283509933968184708729548146029090672190678355256020478940264268036122428998743928627446486613928625373932439638618477588948967681626848570435745107903588012773247478784953944012455593482396121054908765194763481781074773416659818645918372392563569043611763013306427550668891551115582002930462297109884967088236459835245328165327186031502162662549001768500914274900337242798867264356065492037652482956812483308227451767150345687745324890952046164267469033338941435625023425259348124043289078564062123924432680450647009262506317976591390191392493455618244475831032006139843113847017184198785003540138722698442757835508096438592551116988360664106305117596068933241131255246484662576654027544170053130481984665191501453387217614001878324249399189668869459987584049629007848477650349440181617030358422113128726042534581382423271190561256306683974062352870043751421695379993031289123216775545777302082708467738938184672689311383592581990936141458979760754193156972440591581740346270053140142559333449009018731668492318402854055276595127521244065749946047921879737463821552007103482190445212053691481978702332937202346218220048134377644305322932987067648753688639404503287275052488436366740264528454184028226147025586589148970688712271517303665585307696354739147027161996287184422218494186121802027472493626651406896411086984098746470792205861989654894144958858512601476614179773323617093867102447563312638291831768293061876956725250740487382774620369855416572862258564819376981033423403536772901820792663698281812397460807916534508249516449309707770668108795363985161369256087675967013025907155138830128014674925516804316359562971916219385183960942889389850699026816294902408346272485492140773653639931821559724637852330336644648032762700221677496549902062732800138952506732806447579203730335761254391627353676615799434524762541321859065015114097930275668428310575859310284713000162587492111209921801319133149875839456682279013493230412861414973395107228920388675069261970679595573090686229452551169882371369621629087836476454589028896472280130050297644626482592687638526086900101084329458024361076452963419984616744315018665577826658376256437375272018037881551314369654160103968772335017209079087697758489222002104722655188512783464141280634260355951877083061777494447292154043902610533629132329128020967499693176776953753694560455734249568960308925155146081877270375167058703586247759443827532381394555649497293905953812744046873624396931527359342479569736490101981098067362776985511835612040864903473809430513412924840548586760021082438695861069880999776117982714266785621775379286528758107000951460033476599444431991691794136381446767765387333996064405031658034325626319143266302099197861911857949318730850052335439248189678487835578139736286569324340720598570476040532294180600392172673288409707648531716871817558079385484263647910132887529168337319727905946753428673710431885761376281472911264565588943228127223913140177437389559468284189307753032961491266474024676442395819471649536863761881351290577986056248133328979759457341841172848872292450549680674602789446879206623842772951593641669555445434884567455991188817431127193275976134117819653425398636124167706156799352771052780089897834821270608347800137497088787493017275068472315732851506865480055296033558784002189008500462693716077053957433490946363175254249455520125234680701528614867229276311619163070861890058309318794992599637249906447525869537729458846874969356885851281403028385139004211735080916286223834736538648882042202668868859175538338433882598754713687581145675115172556330142698299160729269167516793699572145051798423697002989091556158938655182689316524001447614175314160205678885555955395093721884545091897338708328502923193041051707330232044122589874405988375080489087945063460963970711340015363266914903602756095790665047221299803153295382639915061584500950725929663942450128255907247333119827878295441352615157023742689620438667198235657870314198578931043133755059463893021263743831111350546159726223482236128290347978337936931837752945398635494961352072522103552667521438691025454171456159199391230984269015043617418258508824401611291298347159621033618966463006940274517829918359415661911982271225092643716221346781522319686797177850873977876420540734852067653933147837560864926982860935049563911785412200108534824019437342586531160681660041632367605755647906460269814124990330691578002745712928761998918927676458267266457209182067942173061387751121031505510502012732563609837568751763727935349112711655953809228607185942094535791620998433746202267542786984425033662423409551783719791946746161609722085578399156888540574932275568428213604602235880295327026103519417828678249375406038503611638564697555315160156297107529775492591691070351197980856953358991856706959201171511133771788893300796214146981603107338562637515151476659772975452977998531822994345073146407862640324834999061996813457018545968072410299797126178220017234692943440187861817980799777783382505965758593573852680127189133853262590038020986233847818313445819110481756680987798425501306950261641286230370794645590926377968046817278472738802517008713606890836333404505786157652992021501235280383943040553780256138236093199760154494302534785894388751291050906735963563106461629313399799633248480342417120606026614743096198568940981492721375207665004320695979546186590723857361314249440082709968069364421600956834090150868474200247069875767632867714107558783402596870912833756493806144821396968363787763959928381603404651117668687816718400082469614900998407393175316160979049921097202642285002230826016948725101722650937756939739541343123713321578907925760978606201055741536595443279665715853726597869412267898004799276372896488734513807636278309818229051460896119039656551649985273516391662654982346911728339046291409386629730096480276866457630538964071497510123844700394889116375129520862376649509442587310110325584125292342101309271469850535235466843990088585250633719997164357760936066286252289933338522415909730114144467787680774234133020695780059703502378388655620712326281755891570109224288135838898831552613186328761040865926775991563500863208281383511734697857145618301617323274097720988498915202658249679060450509371323597084497178534747455607919389728536979446358006225686951069366146521001542099246211919866996602581381063951494368711850754476354845294181542332826077510416962008181696345986567823152860098531287509417389017937626215866516149327732969166820291170504957106995517433844161931007328335551923219302795355408258352952939051652476119293935020139903799673451307669389215976045270619438856632343354765319211707457005857160073716662448031660030461854503294868251377943141337180250960097336940410170999498800859864658431727193040756937455588331249961810162744161146883147479575199544736077248894823593660305096608859714489359740312970103772413349488117270745698156053961827433623738793896642095094794622958516500448143781024977867316174575284860851263045765980006060717429210591214064319249521416221627010576123767397497775689873276493069805232815996867673676635068777873232342474788452146717392691638635624478129976724382495188959064215946738258036643395527141296276551565330698739000109095942871125678716107367314894740846056675216351055551104158753309135888959853292823890536413151499562575953280956043315276095728738196609708935010632112395015042622182583516157732760403950004336110140525198943073558487956554797926428608701285966106402640951536973621391752908345638731958084280189532793112315635215875691047747628166678992706155877150310234809498060659276064201034717968990182546052605687018205249358541440572083910649558891803640035477471982949380369154986842951559187230851726322373857063373916901360598043710068936272145055680237063519764559749451826363932083423055632789910031196676186929718895136023244789740454450281919995712713523322752634941272960572757165957329155553580920042578000744740467045767597049996963275811623273307405161585329774420743590266221614542689258472372379699526348326500062800470888308036477160073818757561457827185732761664544905231814236876271891844918721817901880530809897479255730649121954377310255825016980162113544013515269419843412043724422823882306708080516693878959013013402100239140482348215628936271051441534707531791791435972252861159725923739847977606955857990075717620912836821925048682188295553283863556181864400948384733067398291697522936908919821263868714255966945237013874702391495607787662319467591643846898161079331767274707639077891665494411468983504915163961580149730880208216659755885823915767259100105270804544181733072651381232125082310142531240531327690665940413616590337017640135077915815736299179971462881484763516525329582361242130565790364475430943475314713610767594770292029032871861310974225177251700973439416513320840755107911722900585264025241797221275076989984862117450639415576328093946854991254349372789502753955185857902046332746955382431450846654795024913755332212028042508585671587907864541621909333312631098056361486319390408654815712045490436977819252162460917179981067880802932851648864461746133162177975778450461311378402309701615988436891219914460514375815708239046968207416298323662466201035289097787684135359234725757053053453335524799538299016347579752986829541399247077043820326764183009297756063465060836848156190418301833808332630480990094280640780150119512406381557705752639557654825632798422550219896711436859390016522671949442311958176008441497386691567293807283521957464739412287313953768928562336935247579421899424633306755717212610992576514006995400646231028188771362540457620363243718256898950555839231170573889341682315589000727279501847087096439634801769582786442400331031290347087538978661199346886448600406936276110510277193490808221673548703083662244183346600613407653027338127045485753131911741206692526169982674685732798792694828208777531845075466121208872272507473289050851539613822740383434100510867705903515526029602923515334891267242716899986154424967602756989461747564078331355665931643633380213615538890983496797433253307011265579685900907600907088207699977121240576249083427113015725209713733080201267530215091597487975220582234616932558053343496900938963229672980421840699051344576918041471077948829933546300559797435562411601392579503899849375283181922280863997664667703160396963027049092581559368208645358844339212138754624086497993903672226251700853630341226073502454824446171072198825240040183707534570682699535686221063273331364581077588329483727233649140809252023167966876180504890667209864999327765378043798574215355786911417904641696388865896448183013348142350283396337014788941517711726508366457906176605209450781570765682633478263735550097423669097599281496766784510400533863813833627120060503559464517792375583833397000883671922834788584311681242388337547134147708903035499105200309468292490020356630251931970065148164649001347447522896601854099890936133714836564255263848650675659814324439776835126431546253459417201322450869458905146371087432591270597410032098785902626279460105233987287681316511165403086991285330833837630059289813968558693299497916158027134789282072480494456699219792266991662676164890753787811786829430483075174615411672199524532639297404656258017861685924064813480364108409747021407683248519244305553954375442875152724999840345365428896753124036269568772079075191384257813694853739246506435496512344903716363766848866528047875374201480970562050714687055949644129901144927130271931785489024899861854991839729610489782096011343056183081136763454221855978373881349514163525315292425414307612096798448748568380850504920281130371295052165270937643008268237017943544182379361479267213030000607814047775984990098824806001295119106507129500491284836614765937141115951088752617204030326520705184314249330414559852513532075004953174462015708595527835287316164945134216620696410255555016730888851026524988423234268088606491523775664113126581313304552462696065685281035928470169875608426161720137176340757444597779118387920080288088859882582903757216210178555959113902466132547732727861361886297812904123559411954339908069042676768791672491034560015839881978115014339804089797376341612873308305066590231468135267544003878153709153351194627449358898496783887528936253119525099031287944535005571549490206127031537167210378748263329567697810066494305926958470349450674865943488541232205252883216020016943535075823925605410110328504426877325980647389888845914798649365915115967349334983147823856501430932549650262479957982916978987023387099348593990703656819389244237814823500957399254107094209176632472238687086509087677084530240432910396216889229429891984552105966239676494265303113839861658282517837100879055331262867150748962522862667867889414345413921345289706973659762255432395986125355609226584433877579222132326309761206993820381112453485923808461954176394268570407598196690148592026218735409558513373337787363292498731638749557258613613176233268870669487902271175880228823619790910610659748614214984485185080330180198384072739966370056186630495486034427940555841421194624227732382708304832975311149789603609079614518126894584927517938879417824634882736908570722276413081401576893361917580076479816482943514725996005683818508305357765221152773603570605851802176083402632160967721626823187849436834422079213790169008767707992830859234031892071831913781931593913768297610373186099165776174472346266136793110846598144216463487676235807345959465919569946087568057287697147829328323963292153674063101061248812715398559849099615743826342663776472966805499035998587159002959283633960550526271988660734484067334438084514083803719721340062244277179839235753300330459522474707345145522750861315056278890221184753699571496000772839187622797197439431285983145986530178546773459971916274023987510494991063696178781831499655707900849873562725824937992483016094951264560279955154834818067702310398477355841742056801918030681992430981564337100319946651938586112539953461816277183986390800254775597342823462880451998054570404243786995585223125193851732296338917043595019895104850478132475083599620337852717254641161638672302107825362591460676822904236925231802022739567749392268783165029090172647466069922516358140381450774872783067340961044501842834880556764453909990221604521801595633350470114189751216924415787531503596623392943124834094601622644590554514655758574265674834324248062897520316120028561882497185224113882336585667618282601777599208103258074595742683983397628001656872126515247928444449621530400448349936185642192288463527527297576233612087902597517181997205021215497814377629103246548752987554046444680705424383087131902574782131338876984628901273463004025420365263437817730604600393151419309810132197719007609103517301211536799383923932666717486874994729172867232841236618768524236923560053216177949248120693241079457324035649018133713292881079373591676969022281361836514687098387776420427289439639409813218256950897890789017757300867934586472116280431391383356556433565138715999762945269459883180800655177413320210123483495670899740139000156866053290135858025314935916638000673470462177411675931178532158040782335551139616240225758630305099880860280465072031837349894058112759194993718786570658729102107430028889879470002978910249201014971869156360937704047870859811960062521884566669002448585566238143800788600886702503994321905848512088351893588752784166981278187189043160865136285818451909660251770164025807554756698519203414558163849325297651019592427836626625019145134088725635759700262559670205098421619580235139385362229533309559515874842688811482599981579774698346879433249178633871851554533970401065433306549910196007718354317267080611227681597888745388758891202764725473372019780673722786976096654076584694753741877188482009357777161470530112495004635950557446778775400240245146540389202463085945737938481667166424760940398734796592432701566759856591551035904918818352555514130191533048610299031372359641053316413192681685223992039728804846935557018548429539238622160072710698863877019062027230049187191780752991414911811289003270199266973431504098322481407301708116363766366842616145886761235060267976624378048036569129633445918374797748047261654202336656088351874959306133999333228855475131710569808546587791105075859913965651454678985177276056659234178499103404033094415902770944246716636789163691345287979554364654979919509866801537733032601256512898532546930132651258155965653764043215953932324021895978457736731143301220957383686294642299172949310360249608676521392156216341228308230484340713431419398594324897202337163685273666628092154843105628202244086635301300851070016322874526202812952588226780202785323434006487446681944208893330752561658468648647741119080166430960488858113770612476282412874128921384743428343352891352610063049380824164534320925797418911645066843165847373626487101034043561257022777059488711668112180916730873412818299390038444772876593688556250993887271649401284636743132380117226317669731373820828403131834655706807420489714343393285551620412252849465430926840362431742997242675148591662911952811046131566647354246671848637271455468113274089068436606831549110470991287522120947787239168287013469480836480554656919110534802442211204708634204140137260410314267082750000772481381798560325979928068012395349508642409632721421091496002321923723631135633706367916894298979168023020350506071334306903217675415327022512891198975779483538331206731311943535213197372850194371513008491518020652076835921755477087435001775347582678215618880681233468987689135191470702181539478112263887225076727174323395546723688705066386466382039400493067728120879064657393041464698313770283081023774599362307237585204049027868499674510251404303934942531270542404016728506230048908111381169150608130210234879840530601952831995040003907989328558185165320933886867671512159334439964505657412757553713308037750166844615835825577705585886945331213990805801439310862810650979097971495054188502736344174063991460022631556596581354718918801711890844471853828136382599931477391367722230879304651080411280743823933470381207449116558822388021496906177455340375599871232900704929620630516138704154664473402285671348971034301157844867793677717496331541684924566147377770563483814670670139623116734433902575414263290901352236948488600236339038866520468142058841507799620921363354489679903186032963340351927090359949085835895076371509768496228799656683194494123803153918400069030960477918684234121826614262102451454177016055446231445330874452970204022943362372032421345809237220826113057514919391979935680125537084710436161038688669921558559297475675834339009941008718141528665794068651716316606323768548980606607020567846012368185497433396954571954196593225178856982738499184344263189357563769381316320325370542558589989329401621345250698801443758273000359299816516085507240919278446453894038378474236513370446570926422226124153162294789419477489724528704718546574448414826500657885776435261145759525546850201446237756474721557750721602434159893795900837141003766783355553337251522970875506853695192257736104607345593748860576896040659552687187657727170193292831689320323396724065624512801658478466674833948187172868369411238693949322184291403688403121505086050094091963318812368189692481710025917346771346376115307707230041821466478531576457437155007020218037666807458577112574352108568000143390346115032853907817391439632534589843593651976106289764827745935901299614810148825193094426520538686445132671407105293103499380484123271553044957504200384319275761249461179430731143983939945799398665514878188463120108414188868655644964944651383123375643395943487662342178513173220767339362386773801250209507943586822210700554931301599416190672081147121708752552057606485812038742794788744200112691988882528869939939352398857830084963584545719158489945677633658751642634697130727008534310799549441055862328237676995609486710894005798451800824815988092197485259905079424364593433759392022303536894261556805241158829893589427748882157381667021319661463780687808465657922222637283440019156836222696937094175285092984269251744860136021266247816023972409965408252665565597667866878835601990945917455939231862007339539168438357491189533234494157335192993948625587907574010180993130790700830396550785497301444085929734158339912505221835067457161919306265081390223664861638997072489427875572074633402032993124129609175335429777223978010017174678716191819398850179960127191593000243921045903073410576891441451177929486661778206568170794471289457023421711011265764509076605158643229715834571449352583497093926776311943111300664352539761320235606177389330923700320772286319380513815328112522791849531299943295062172785475512190553556333735177330845343150986692599726029151803955139016433380824544089187843407139330051121121034514361489508035383272831573046209485754605142717186894998919473147242111281848031034168718541873324953852592521082316373083758662524452846714002191582075747438967329069081835304520650806314124354153508287881503873041263788971870246799730866820526063540210096461601541924235447365060915770585157962898087040505924341704592121321281371684371497703751338230344238376679796255943587311852790413609135062532363681878008601867711351721109914373026764047408332992828752429121654553410957596226302886103508662025731929287338475115148563293481370138996717418628709909870027481988539428984374003929308787107694358764251056196761825494853134020943954128008870596212800365282546303076194091108057839658897809828689775358887770752486934596812051426379215462192729494500554129221448824703955185845523150142113715389655224936517767797332327930840114732623013871650344778032563346438642190536040459419690306916180104739061224899387150020517956174670777724185204878353782559860920743899300303241220640029408602299969646153529824884220074339014855331784514559534877411925664040902621882267983361290600096702515005615593543020001221382869867565208425254493048648487599160490333368252618446306941061807479084012274378471029206240237094747863874065525436409378624835410103652093035544126597377469462086848522458628466771078361736182497963598078748050844920575089901637406757887609510766477380619514234252840974850971721368112565589535945337098476358327066691219561728625204590492307251681358187556124065990223606648396926637831819401606976329343060213873469147929345561182186082198475803813516650858499641308192249764003545458851665882999270007803370809915107558377111663698262768583252561062889196188885832804821336289912165514055932708338814734517448675774901346909055344621156354476735482930730065306058954049952955486579805541803628148867941231972912364058297677224115015981976135073654197722458936261016994929772318674154938246079336932194753731683171724565586973865482703496764467708204600967158979656402697811299853691978659651401790116242734312542197534455966655967117640794023100164331395317128851061685561669991113516346593256939710119784387368165878541707008000278650444537451259242252302686302939521419022824991834414786782017972237118784076361756404271507509068719509262760684938882879026711212605128131053061762016065217302725585723198953800476234177400216277598419264721094044439995784306505516636963091199635006071049376204059031749498364211953666419514338946576921235645552403548969101195967906199611049303077794592039890451479025307837724939890108996840448798896842373602468911985821271488628669487477775312199500023818467782636890038440812059960473665108913207775165187471223309633742908399602109699183338020046685762381865918575317445198821741040679925019520115920534695383990078526492260506859714473439984320396403528457469268111653363021247728430011455655624822286725531413691014975589886530823585676865091151612661014758925757735868038157969392102053928869242828241630806080641895129699878123211266021280269951781378064151549884755158613045472889221338954720112810060671595457881434504047702169404338068822600670315733074337769668696834768697367854587194868911468682695112923963966806651235517795645470593190179105342378453531770503089400505368789574355747715641028091763310180504752009162477183535599928354590261701820067073001839235305962939654860526978700373695618720364317680631999725787465044145587721832647684794817543973360184097935318857291675253643349308571554461117240273435761205183509814238070261769644941011299963449780681117165655395569756484381328446143466871507452928467255277987139136058263731916412276398384177142150748586963582370223800172450643307933455195632968974504442825172321459576233239733166072780136355121999501538060279339300955720225725977981776902679940991270471143895098558371427778741558650225246066656403621230734787559767153177811179009023812734419559876291845591813962252583792624964318332875008652811580838328035476679742353414851707242787091902973090451183037365162551671466006294270007669114444848825597218335756067480107023809339391097366837601119127548043999401304667075247340372072740653480003019608178670597248280629114432587803333505092342898019327308869432828200868557708380561851669062473866946699504439515286175629129275261516236980758654826041789880615714510465736226081876503651516026342507837741177423567051789324002988412830966597408827375988013158556587535336606886474062431278433982902575687400637121314068538104628914489691675662970096630714567544186894929682238331697778923480245934114109164421901082665557092052974192874783502746726477324268386307764213923645404939986833820785359981461203083884931958192476373501536804882082895825305322064330944606453496430395253948848349722793324771000553528666437013821519132366417571525795177798510700867289810367840024431880094627540050367878613691518846623267810950056651410392366434080649714333537224047491300805097151890705601024641613349798383982917771626944044274126797781779578378552533956169525861348119148177061614871590956254591674630240873823786751723642237121643963781545644223582892857558333668373464065100424293136671746174025627092089806470668596397116233691502889301763600117272133353134051097692261412666275860360841320108259571672184582088410421407420938513842519422710903466974122163758429701741340986455263709829841539056580275181187649317050239417100302184203978616155284795092648715956147358084628289863116831260734565698324221060581207956793522094340817735313538394422924370866575352165673846923553900591607528859744581618416276747080177305462111540453178494915404696732719026406706823552242957796871639989078203055439238654963451132558668061010234994288991717645081681598947264475731084600813359051196476974987929292417657414990397210559814820579950055246613358822273189380820907870739532304657277337799094811309539801193258230180041699382750948357841152766430167497859399783282577555229640076974341198271651569426210569145988017751513555528957714088556066367596875283144183736138434955727292027612393691876653885741027813816580351826206467535634654043594398806553278843735644045756848710822235841458328954930331603426703032312382772903753422238449253466249570331528064912167658756303341268236061750893898010202725196039070546326061493667939690682754209082363107020275945574601418679657121867501634123801136968855689505832389237104978256561452845491859773776276933321688564203623962933502379214228936256074692939805065022457996253273768044252257579421026239706514010594859279996186359369082329167612763986967164152962262894834238599871679912771595547331010992645146638697218810824261166041812044009898573718310617826480678527983293408556015630655840870872074006508302324996007456404088177113349701573212394548132728853841101769880436550446964320060781083163937414030090776548491412283862777533922795438508208959703471555454139646355727716273024122189141916598886353811511585035763480886134403281997922646446959157043094780665679393036588424603229001259331794742038661620948538484666101325445353791557835778842750927997462661231694065139581619777619992901884678328853443807072753579485010755824135883553672249516492677947684012457300232873774045705833124401205052520846552477754595507845586566091672107465209624453005700002943546035071742043152226687763301314078280575494683836618397359114617241775053314590005471217733672586407059585810029033724884917349742586848359768291851674195396994390488912215329329441272712672391596637700694206923305977868446536957176872236713339192481739294902307906889353051922416344314207693409881441774725008352565746844181890900171033207269210141725243532763097296858080395020721696504146923552867628306912730248351706162559330962678742600310764563868400413074937989642361913729907837373744714102920319464149392323163663428642437487306282608494662316946152885143251916226490802372023055572506246887065651718647915506004670091024361865986589389541397807251089151700917574239679970817588923007406682644655522270035784132581718113958157272655045814940703023089199989762330795001640984786066513799001895004406945712146178584844880938617397887330506688152963173417545264037027313118116390870030306066721420551075763306131517436115139736417425827303155717301103858167488418346806927807946526941717164191417266197181019827421660380459243249835122786889698952806730315325513563925654962718031132808977126112741427904551479890943315198488937157841972776254569323247314192357973293650805902809810093882166131012594808156908089677515775730882361740584309810057600525252301178605300165943518327992573551918366049604410654083000656058306674970672246692531368413508129201524256879697509003965566410797293086959334278986145644760543637117512916821063210930130281345793470508882135409410110881262418474759269015943010872932303125082489210446203637901327336665012178379983396478816531469709858969749162970798765268916275453956281365280078004990381390354658091161189020644481309687845558088984561012365266268939646589011081367657968958791314700003035700451876742584670447120403614682493990866994612897887515164500810615318674314653400263274010916562530746252625861464304453379536012693361295244910076003507055301987952144809878451292869794518856953739899450313893839967693076954271841266390803088050841838472371013260470317802656307030089609031843796378000792033856780855228822355245775129178306940317498595558563908404547062422747074894700123776940743070635031318670118280532035531703382183585137391360529377670446991998334402812404300085348216838419106696051929099227404053486711452690924481068475632924991387363819595871359091862901032170883095217863570925325716339778468636634287996481842098722100260948543420594776836299562753634384176779515396729473543585817179198223572840452669918674145246441686468012686672518952521060576976505251502007204888954770912026157753540131476856236089886303493591654191780221128560004585425606682037175666218853159104264457460367293305943069907382506452481651789522044874581547089826045849124538373578732014154343931666444092901509791474499394284561135532154076705536662776644505500554772803092939971514991912448712935290404434317265439207871253476948441032524722356740806346514570585157598445554057172395563507283839873727654415359262712328688949539846361516171948781634717212063848000197717463695080366789189091933994381850684569206994657569990248064683519654915866819694257827912683737381635959809300068672517557460876142146528198631348963693707396171730100927771951016741011016802441430262835131052175132670097678649459919909213659802635220935111734410479154876228655858457277564115188466919262983633103089871614994269972495982709045814794034457974541122174534621061532077464302052071596503212745285944943305766419634158515077733496383431168937405515078814459600086542217969942831971466625545701938603054750524049059238139450938745772162622275814010016945001149939452131970813196458075324128436870129703707337359558347363931772374571661426754976128585864622227747843072722113272034857949496039710627113532016092806672111490005723600038792303593454003169576500903263480811795335711092019964938423186113568901538229404053430918968444605708776487143570916227080257630155716147439209778626429419894301238224868834994856433409741612627254723393923799109947922193282616496884489009579757004958792966762369276495991178802847205803203642164837003623492612262009279550283473449135127346589322495758644821254799745277491786915769341921113146436875577435254709529651160965776034830522115586233115013257096175358582458511064224862776856541032388653522697983778008015029176413931528657457338520972546882899246843337067235358450020783305854575390947979284217086992727345032048996610541679560734577521612811628220580019005209675960097279863694281762282978613304359086923719661650335485841689802281431904917620832412541146801955671927419083684563954059898578290869033287932449547017707752439398682850778748669745000628433205024829912878057503873808649554800594708495514615657944606993375787790335481086613937391627919929567861690425995963339938072875779596041248794761328478263100969466177185428040832880800110843502801614709565586933791353951328965824403044239702901293193175684695273134123783754333469765043011363190988195862357676175597973545553852237275061931202849489098982087101635894672315508576422710075778588074137059410867928198375761987977288783647781174168043720901438236927088262208009100988210813714988397889216622996316423667568095356755519948309609228218487133007126918155669170846203974438160299766407804254362113705886866382780389631896554790933948995994992227302988531868960398680140631829445370458656280098145752292594173878932120115327854429650698087555036917177749204290720436123973943033034019324919552464214105378075497241287726389299802293709397328025442730945930996482678141379217392369512084650294342380210429624587723303083753023230435996729591100901344395571618177614664244375545850768570541634596786887130810252086136790038342405328814260616823051373560237556060682116598302704864923888816046238579544255427399002470078963219636420163605862227585835705223859241872200179223104213681666947042296457792252067189633641875885639452300928642547915513314856813596906675732835991262064004054390430370487401246396685886868308614597507121353577558437508804753639921141659868822356327381243673226707553055708755133172245816243743018969673904315958584160207068553737440466558436528317985025425644553239557158144220734467762392997751446756544158130024086700799203772881276461956741857000198447431862846792789111951441033195208218661455428700814020308340438284562997215429978828913960942817546405329058019588594594832516835072209280360947256219602367554170116220907982172373554019205153901346638590858926675232157667037417792971823160994179214202978453302993949572485784142560254405473185326559921080834317481027974055362136498534048947906845275093509050928905761780921318571905984078312954339514168328651482487738408591263056434503314890555040318820264994370624144311590861491182189123606325223025053898425092535874028437885122555780405737196036879943411069624770421994903957248909694686581376042100189960274997034908365822149657244712926097322512840644518887946771035513192198089828812323333244573735654036543566653265851743344091014866872074522449042373038984447440419505891391057895504456180291006469500562072820717811670612708795086602191620673270495305916186408141188850383225445246830211389379067137218188596214408549735381428480806145880396596004611921654446228799809142052281026420681153719779150423716746878489338499001986839000524700302657143303720665742908667053028840074275341258928164660015871668124928981498197811514318859981152914580182457572668825416680331018595236326169787372398453577418612032859577075318216528209073813239075947960372241530537232054692459909036385918159391527761650278511585562707681396425201198931495844722364879599620209793663219632712626943913821893003257267630877930285164164752638159697490452866149904811702065888283657517424823323995905505149865882712264994203529704539637715912966548047033477627721899635488406314262658328477148400491782760255690376404688487992590160868306573814165966891035561077278101788249794485549860365707680859562605819830268335911386046227644870991436726739193822893713639205738521029512963134518410390736023603641595322982534400143136431796478481841380653617617766711485892690121019870456156318860426556825558581732715995876774007323976203739360247753889882419073605313127868191965401276929229672688479193925306221419314455907935679189885249122911697375263039110147182691543263864204389677590766359778479374955947664722822593534731456929445253409858794912293294149422676660313582299150300054219354114197534240651184158006874081163716697643817772083640974654905656546668580528624027941522112225609249640467807145277969069111504038826138785992940728918909305100686768555088246728165247809689511223467065194772859636614398237014252772661340143320873523415329544034648955195282041055906204628900697917069319954834151406775641549731470803676222380634352570673711926547162069138415691034687536513467879044791572752501772523317961782809819698419316106816890591862128716894174577505728358238350185040072322767801001973324648157486695041788023274316602448043354907986288008186722852139963714426813844834421714033982067376098202253438020180568255867522967233507368591676653221824807842978225842650782814198847178718459901836222926496940659494951962821169040255434175293640676214676953714200280118620265975335220857729967202956476437123121813619857488641893701631827431470746142339127953004219237330151379452133124250854301335441124826838819142904482092303748826253756030913631241136826061902121202360616146175345269069515752388575540375601523409429521609737303813867541171665304555962922461518037646292868421349148873325402008827900194135226334663429537864577470729584143954697078167918916072889725452079578355196134010058998849263919682121286105077439887706578037719130988269820792210946025209312893176066359750825896208345528313617393724529764682527455888276781480278401483683597805793187248998278829151041495138359146179818258999324265497245063118014819720997534403060676548727011155506486210939789233601722079320740578222228588353283574156127196008539426930701036949660454609810255264832050662284456835320499920515419776215374432670138240182749319577474406080216142466922050000836422096476046533353172675475066825736831411402855759418280488556669509631376908843275996040171372094298171560442709366432633148264057061462439122825942218749872820823268730697869301560121579922800782394166142804496382395564163081442186000269379337422248823459572596418763879736631248638181067768504317725926947132230938243111254521490251266210234169778260472498341454059703870097563099480755519191805901032964100210126414638450610002990117685043314509778847094898598109454814029182134378574168243098090405300823530290576100423426672615366169224146537808680978829099312732348779873742247691517913247395671238921077732814339455132859701398890935852858719085003775266622936630550628112930826944969400180407382085656979149767261645474160720496814747157090687373164154060291751231364544432446761129647854584814899714685958680530114559205273012753169750804886338335475440405460323524107325411675527060977067663093880900466773601534580298621180109139239995391835068402248171425287073646866344698120785909545866895393956504088395625996293749252814266261239709016189762736403645798221278151600865205805243984340520921490458577354780426528553580871495108129829568071509070586934983397316586262570051856551418915239330263860853838526159420035117218005897744830977492847590306529548706301886173280780930682218770880062865588397215979710484869633188218208401373296800119821896391602754783969352162300832813464271924192420467147600605569804078819287942171124768521569029004540095063972207598937638356907457310778975530653104201975944464508313475712391898714444948348852726676301399196418600599775547403867287624858986670327417924568573635692572707420704140859220542760229201437494235292793431504149909779934074924421969903976176126603317622251342661977635631376588904527174819741101472082084802284404120418515266216316713737850615921804907715773756869662916834295480205982760338108563331924396411383446422689880602682453104405597042477625133846635692670878890653644364876738559142934091103322590616071472413400753050302442058266827089544295387339074663267405862209979494829845892334193683440613575399035555759270989207288119600340186038214179502771209016963428818869382997544925018689359976357895678432842977311823633892186390731557995875743772649063888040012615560740413188739371963823599409159770394581779311316719176434738202439024792116494074944206994260979307523967743513773704119615243347531895850472867348203380878915070673025647028652414251474951592886048298566260176557930945050636910691480063852675895558790017018515659014515673856181266479024999682159943812162482901673484939357931758380438990925840973467913225909156782155034405411386338504879548452113610147706776403703695123284606498861219634912457280982841509456945590715747711393563810474189338106196613362426173282474998833992878407162602144319312437627774167714227772002272115217776994070291830729237137308922520064418032745885083896215369956895806374077261119728289638892679929785353859780831048885752215363172429125674982178004852136228249770357104302682922232531504860273499934618655659839241580053450827101542061541595322427262784942108531030813877526284879177204424732968408681735242977424534552518167667951146819715533403971922124937001609670156057663117987764644493517370795151632807687817504587093454898083040463615481295404905414782048164067076720226452199311194723326841766783756734862632248301695729019456854867415605191207791347386516534785345999038983459036229250918113984509438292132970817866707879609927766721313998539101605910179080594170674715985872869240223304294466923708010862977175273897786956514742590380791481379180098981085629426332737817863001549928661214957958484322628003067554810131140223723942575511400496292710072132750048517715310734229039232555483374711846717697129585303603863965219577345262575517597362283468493680410962540391805570246939057813201484918177440102528850403470816132530282220483549230604632130176744993128886204883727428981573645138450432651605254652349910001600793717126080134058819897783342625410664234442744503386439339584955495661456411593672705722820349144785938437537781594508506072964029304983476148307480816627725677791500713138054572682552301644084456748618749110855596525133344898879734364625877694896497391031842637168917129958935414088227331776175993793280470146383227081033293044476129187915651777233448499352002351261724874424842907580863120673255727119728671254825820416050553088347813909642128341912944744792771277475444077057915934155301744090830787959220351358846437425075839539726187683239234458940491237117625886970144219972715794841419930104112350377756384223315057443164141603479532434106861806800217345070073673537003971701142414467004127893070820874017055523248692287670209168979536857789962899447283997998346541153852608173116747916708901421982315241605507376336697543606938834802418898740487065448061330086280705293046787254483226866369361397715501282957773936807883221007323773668237122342351702582627471811077981754990719823609911958121233632158731387547300954132558459003492755734489658304410165453514822970678094786243461697646737763433727896768636355773878986287810257656847236638602778110888735256768288794668719630829559824500530817978703195811404293467479708593857491250260611414949815792979602239124333699068972908442063361551162861931062849007007054419822254506265024774776151029925088502593601211501798028217110817898882187382103530790131122497665620516689663781324705216478228284274276752369064412892462063548670740153693684286003564327831183714207385670062660612847575030535166604721261158202196234661674741485789000254132990682488311767939652920880308196599177618116893222227493869751417620229486504979189618850118578734098769626318340636844818500146912589125145043119910622762887389153172091174881577555014410290624992694941415226862846587643807426896905902056732469554510065250283737314568207828553835993874204213179405225809471229505539369881652840130596396430927799340607829881944339584383755951318690236233558303556055003576533533051036089721608015411962757141385642737304660439689751979198851552878187446495178956471307170466685908734586152905496804636981588110756814360573258069805679521182193828587475233360952933071334255122419372097793193043364839960504202023064740412822767552094677190034835390147469299065026870306077030071791764952796240118449801251336649113661705398751369245564202545670025579799047045758365531888629055158834586083112690569547428761872159402266425242463110156862288081839255485709012282309571452348225678820466003601756671719641363233370561012090084131057982601245812020726003736748448699445532011572645722593948013672512030803185092097473315857924695470718881057825772066604857158047659179799717625691819395893569220275225163657235713373613926547818217645484470104623308091644151895040145696085996629677762393849852979226189432278174162607155505516281577701575825011797387529863858584683979700002856574399226037785043229279914200183661715916771586652058599685242078769469886407130651662090273993125565171882876360944813394993586690840677218552073805753023200044354096576269996814998756943212392968652936149747360775424148014568226861588034183772808035590907209150478017520665171299213763187670363948195605966077923999641058958288694919232095689773714546965215247385282578176468583487129650411527899958622456391282746517108749544152422298730912949238028868200976763634291566805271602248612142717154407422130865403287722169319830427273968991714885837922086147129293724780555824754701089706696768876061754437879807480693362915315428111455181803471462444611582553070941959036796566643734313849296419282609177749565673080403667169978696566071193764889266605953887086572579476405956806947460224374297328287906909877875039229741586934872435600194278852657784373604849278325075447593775525818545254970188414360584039233187023178538011160142361041982912578998080012298508090436629497015233937497133957856939938210523075870202095863916613936127477164111805451599563141284613386470293848525524778411250421888513791243796361403280389077785331506139527948216578300751564851443238043539787412237096764382817934265026488734113320840327345650418965963397040934505321837071718441570932526483026857143258551723156821687762517624503108781892998015027611272280218281825851034256799658806541370688178227553416599700217657292697338662374825945833152849393037584740697350182721004917709706583483274169581218909045704005239672807607118489239926392637825253722822216040509961617943228060518596735076082324317120671103266109863175467924020876639236609915358481423117119720718155648495984879713912027257599499270156028011718520299395479626059352605812371809888274728507184607848211907948623084429223658183308088395734043011103572687092077710439491845214126203200542540534199400139664951473447841241100443646427333563911203471169465857669844700097522330730992214587143174759551906492366872184301018209936440147510348548501515065128995906288569150438956854109688309666636351530851588785357704710791601365462395369109310140466738662796489391324061690412055888924511626761203798732384549160795169791277118986474420521550830125136675904482997009415149820268915971799122360173103483618936867556411210079996307702962316905857564018925341963779393051993779548708059922173618602369625110370651170451300094265265264631419387492338964748590505095258855884773369616374671746445804916581529080510644836544907634290615865048057747168053663463680849151156419466645186621216708580144875439359630990062038119525820904222371848690366906464746509117591223248334636251380307891833690312205731494005171484826829142675501427216920791692955374428752129056463933312856768001429068250637870152953564632597251198220992873597282111341601195037804234855132884961659967093341025367599647982487593072707982041191797028938105980930796979925806433004669597644018160598674537189954665606052423604286544662677352553974017349861379957590045036811385217564798419980203233919151374089034406631381672655722172319931228537217335994288999318612775253910781917761356071524657390709573049928056042529661529702584090862316546251894657403256274816034328376505221737913638118708458344278156405872254758904302318515631135150048201297912331236683964163567142044604832006560704486527246250246022876359815439927165276150024057249962386426977425104246636009008531495827111956456941027736214465065597716623367815717801954409572229669602984405652222452457516703512469719368636211659985638123720438868194508247769576811159677168929534063820121644269633360799535374563249205272460260233726124724898845779585348644000836476670042302255877432456861439041342701369544125933855641040681036251430809462677168087523240139097866544364989273864422940501611719792463909445628054151093687592006423231484321131744604640102034996118533654808739906781043678643382041403070245911264285993833995855435116659229955538264078985857974254437394693229528288718437612018906488064215587312632971405506327502263650683114148710952888548998263005037221468576140112782221028397191872428783638335365492823478279949527522901168977509307594691400581346632841644167560909584571227099591008338790378087281501498980503039755830984655629587160272036984281008180410718451670626392274016693320584714118463310984751553972604752382339970945406100759717314508543045459008807127788852061752799264438628157997658253680823071690443572723013695367720671413138957323102554966672891196655388077062602150488197638767170836805053828860909096173637996230466187174566247813722735836605950459875514427992976169859985222489599764409200754204396447623069075209994841109809308515421736115473712967081412650814542953753061467562770518315959343161178658499159952161869165722846605215151846227992571913093000448245589223424255119165670472640856164624854265288070594231688359352159693240602148352369576701904276088209764592228393423472565503160653427507809304422166270467498952227004302986510944798613209590431635227909396607346237400248345946689311944666641931265007468338828545656191046058275751160111092758079190037921291230090593398114236581593264000663078927582434094466160875209960386579313205158589870319053963534716542462563691327836745553660416147776499622949229878508866730978937628983609526677775095226041610690373667741076465320184319091672633957488634960677702678308024600968841687359515264036482421098472431081470093507234805285482282513461377400482182165137018252499074163860883445436787082172289157456974164686230997179891947176130599703849385748061828556850923038077810084135044031697205787753939191191410982299233968670844980584927907520255423761689974056983018930169433413466583241556280595069397860441893053335346073584190087689227451374958977188237366098747565515488898240602911592970276959191124374241704944526426695803317468480783933455096911693943096104295976831186323994518426888745589315746029658569605386095639010503233314684399560097877025626290975696386154401966189611367186803903629236818314682569326068647239708606581726581627942475518205661312191334798065097447241423484583934582350594205125799770114717256230359492556237621733550439318574536062502349483157733045011032531324855026122934506991767451722080402577531904452880317634385404365312162889327702790908066491230818099753603418604425087677586612425782316153964149472167582095789297068102116657794715908751466085749303292305870511547061327629229949987820531683375609767604786541692669473680984912732791122206640427312054003073808755090125305707007529679055326063117464342855020478681520049964168064494353838668764956384625423695546957519221911525540549800738494351890154027822869214231795357104379719691272914360461937124254894506542011380765030788349965100203073114253976278518261637078989730267803259385522650071299401858832845881814248974809074375321955899000267372945210726131500188679273680870617607297028117679108895971014526117898299358992174383970251795960777567939636837734994373615924261542929426686325076772052233945021984697404958018751999855485396427167746132355334783442775119149542765273468139776694226408109282896791101916607731994040702922673067680964521942286069235948260087208628810645469713829035778580176465872359257052326800698344749437540590351715739704127682709516988125701914752653659445574811510729250575893956328666782081708227043094690353863834334231701194182838878443189244648989809924856544589084918497274046983016703516386214939117423206539146375094999729067624298872334818279442622869975382235791688400802911902261017969447453635031582469335105711732761844773033228947561222421594285338275277173873553234454312664358452073326301252820135909703798044757704286485802072887332751734654380503533224913633061491504146859788049394779340788888722423633100946348244963093329615401848356314336556669883546657201364770254973259857588862616446654579394740878258742615489615916137525979149029566772951487398165710510773625145567272399840405236743425542123663165913158687828709129339510056638096473953903148619313930380558816815393284079128735731871409845224265962552197367015817278404729119216766766526050347614188495451368293653983726956616404509520690324376221035570866760070264331432849262512404346463229095371082426787568791543358393970191072784303530357220961339451085366967992186184803576576708646483233343295762222302234041650238008377722085988635546929145597336996702345524804928655900724890598568157160841334893101505949939544909531347192842885144377293632899673544890313943432906393835431428684234178970630088759864051094402868271652243386745746564625181694252012722133839521763153101771714436637329704953916721878388201977626891433314391368536709792229401796125929657979445504004338016519513825565302691953694314540943802559101552619614491505719816368837685760832489391053520230478409445489898144165165416545998297451678265429166504461362896547152444083451546138832829936703331849386228486851205017155349628716440326057076129444246443375873493148638950954395390540692996601920738571308224889426603045573051605491237129546729562052268337115934529987048756439042201003315153412864718081644333116978240939708022694893546507047880113855361337540782805733373478879312315488230735022478252484368568209381382468531599259976383790192006447167160213496264965877573111917954680834471953334085484761859179276995122919037880939090598655659086144680625415018267457842038249890371216882583401879708924499046456417270302930984962840679098053327278135722526160470110221496655502994390916293186662539701294123046146629989382889875358470969276360126285817788119849693772119957260706680905559567036578821234191868605643379614348914706084356543083077622665123186152950788264194345204309240896617190666645634572966508115796850749295803092657047286430653601600027061948487882362406316907904530605305712923181562522251907870477501558049979168414695987871532631579497738911455532030800135175446239736951877617574217573220769805250048041976250409596011010248540939362061823773978493787029736672828596681700543010772131096691974455237229123487201414142292157558389228554575324282512562797483987795839752911513202371722299376392286913935453055918905096869384936304616630576965285175187207718188328112660970043151380078481414166793196045664921822826128513531820314434028878610012701958204425617242438841262817524998967452833371872825944298390725975822928909186549453930775891366669940388886757464518385846022166510001142769440090598277551747390668599293537060066766848994973578347690754525859884637980585918649301936963731619417804194752894090019079277392107022235595496170111568733924906049719366245099629782552233503289695171856652006241336167285628834639623585570742843931070153734313326725526450347117719380692428864453552471927274368056836315044172121315032125926170384788964882236093685638588240994086322970852861610281978982651321916874502093971269184697603657120624729380456123730741690775729887946277117760253838877987248208077707931486177210467556821765568261085850467642406418495120081948675464973871070013312865191330132726368310296120451613037652163986230966932685161090295803953724722138232200962684756005717551740387348842137681686198110981239937942381547368899859171465303471926526405180165878995314482609639902189226317537545477235214713632468727654812683090174864426137572040547963351429719605092438208420665457389280977520951045836692818248921419563285737232283264253372163296556603053263568132564035265570627953798398617889956295930305928664656586155944089994712897394875495060291558895464814482789269009234223550107149845154078557076922963934605044975249556826412254242276357100164334394195421125113851151262315814916232060004027677644950951730995773788066180185836700306613431757789611258879477896211832041586069735976465758387075191165568546541596957500788473899886174841505737175806093400981005562406083722325933493231452185393484268743915916732159303499124813036009413769649957933098004009549829671419650190291366970998229649581610421001743429033524536304196439629492101750662549867671362013080772089924941032396004477968272252010663650957421405875387789144164616309704644429832413438690412616696317445030918189369729209983292860296572959333929917441907161432526387667335117267935173213403345654940408540962166931939546353376420808163088313262131820921854732829003344340278582599027238893355374997610090666116230269741770483090872409293125099125438805912875820395106798490771633680475564827908001647388590773682082468675264079991077356433821972723345432761518062594523368853550302558439271799505637210460476667877167028177910935643524432079348308847016737959159636736175020163484012718767968004098852780358853003811028018132014876925147416743151897179258489673227001347077855915978453905215245443652544515615301105463515800130105925017996291184337672365717094527490864790539632128242508979466645037709201182275228174262155400760528978261093613927124982421137032585639925948919425743216226022665602573546705564155410538663197036233227941178626044804425437808758222739441222162265448506754702309159259274615746040703368209001048152979386825745995222264605972289315915995559917952469055905949322081273732718734728777640527543177686662907418378437233633827820390208726697223801273862599097063248279290947915497865901409298072814127199730717987699359808535807420188447958049443393756556857155584888220782283870382242541684288339837499497724097757518424835320698053596013933197405355659078074532692419499151506950216488394504102000550110202781269495294516912941174338865104208127778816205373883194297175186206303160715011652315032126587276037150810301408564645519703017076480318294008025180333959595332861391932214953005726854991766857995064740497119495071301752376671050487077358145787970322217126355466463780172812024042345394782041618359471820157499608266066381729379061064412979527491901994985981766915381059403252275583197864002910733116999248496408752906903549518537056763907764515958915323000460160147017178299216942658232198691493130587454152504791531846765708660257802590866177602154327283339925030055083623830280728254434604394444809453150904050792820759982854286604057721800399235088859377204629035402638581168734808467753014335934865920174836919452477497213261472762082014842489169509241417426254490692394115533715840080151336678340885277159806043518191615802963220548336437044698016864456979562990071665552336077514059371047950862806254785314205656228191629005324252546248818367437177384814373701071177376439763908575234544298834110728885109811301830045567929858981496999468239540293347647065480010337410703633285483830705222189292217484482286049245925152203816944983827961308336169402425599905535856231697395050968466997864647408927889128815495566419008215010877307482006685664800698521611367195098362740142882229497418729737051628821664536454835065408084440597636545438579719404767133121706858032814610346119225444099081731320137712361038767155716463792872613086139533685157727868288762204587612569304287943325568419641526193939063580332975889545022212573024076738635026849968328411843990524102638823309016044236026228448423922419695443463453596976107897103234806188560457013785326758356675734065010191892092086290151577857990676979924212131480897793027314717252317531560624490149489245691573866307092457439834765941859054418841245668960313121274506086237005058328859806600717423386715517977242709976518221498030654885619154703170110923750287807211531087407349754380009727327182052778995618870507082806181101423423208929475559907918922474501234957435112790673960403740978749145112891930129990709794939319099590929935834180710532234738084368259462975541252217010220638098025199904710380182915408872584217408347585264168269906545080493636007070956513160919003176634445462528131634892769696535018937382205225604705250788607944586096151339441324011080367929395666730258516631413646443015951216884172368880777227577256053817502357908750824746464680189681689306817826230704419608041094822841458504385146842557704501205862819148780914813786151797662802761409184004614272695713647656455758272961369769408557360637497123123657967274341143863555648630056472050895440417860694916246610129606625545046708104768643815346488932488716797721368789293598791580087336765223855933789544328426311421429999819182299942626678816158055322799353859261861715493453590280171748603306559253716899889463025412918773020612974992770465626539154662191587297435167211320379930003867252535246164909278054474529150418225172598142575737492292080392157898182608795344589112310574400720301668579988767778360748407628763399180560841986622187736705531240952184997390459872045191920494863561342085227688534138296750790710842687382758992677011418576235675138977009617666055268657950910947945579414743959934959827487330661205979046865580953768945509953630956282697176534515436851496811801858409836430020273130036024788806609255725612632708464171788198153932652171234574371196851394538648957417997892558010557590195969239001243900118256013829176157202569406195625360944971457104748038334228041187901034518512189222151771314445386890302297811048462410050061717671863057783083502874958970691055126565739753546040616909273537377464031234804413877259073724793659638080075167971458807535729225834708354564390695762972124555831655021869131326981256350134141283872552378680525506277070347022907480404271148518318252140278319736938803332833328592092320204429657840530637404159477475735608703144778037795816648076772367371591497777847481134035590097499961613956949157747901359570228394688637682747436410642006703429246078951737092617180325928821377970165813025062216105380746095097367995001582360579593075703380073818188602241609734522337138666262943594312928650171021996991754328046922414210336111385076736110677873322170524998451344048398246836582526579974314550979978307907746676916333668959790767784974777675039039546405216930576455552626424312014877071605899999297500517314841446754513972740214289590377016163564453673529759799290346129364784651368618424002350965173039674771195636566924063033643946406162425111724239215660947590997553386239187471621680833548493945325720854153675349524754833658355594082588551252288289032841842737664509222561991632923685267528986553251074280608956603418691407463052525421885530797353605345677725157306783860509780224299808414111453124045272460483366187854494139139407914045136436564482224202177727225003616874290281365234853949892946479892067735945788024905957172714038520401981906893962408538254179115880523492889214340035895560086240205177331973389295426836374442964745452934361560325317667430721059513740020412062456668866141669036920563107583103017375941731590997359761669988688585960399887995011078224057127350772748798880651892077978066630017183462411429415327143057167847072541792400306322972241308701702661465588829516306830572402958152349281670835587960164251529583439506636614846528704448468033741183664414218204464935996377038984625486429007271054697712159208020059659832290361842976763510516418892982527741453589940962726803506736832987920669135947056840384233599176650662750637465454990306670121762893118587345159835731112533667606528937042957107840069110495467950905471539091436922698428898267646051115526105030662821672883102341882164665897307986143754096954216883796441285535951558344180448665887508808516594721143895946492461788628156417515696967208704708481534252542594972690451192560749395681429733835745516746465837669516628533039778151094471215864858241714411400767244641642771300603898156973278097217426269413090886028539003449953286806457008247897447898108261131718824496955253367438683690867612871993455336330733401401041470377688370959696433298422373822208364536178809697652043872657660377183758534415276007761691449845050447466133735292426050543222002525117710963587193703725002412557252062798260426476839135657209900185542639820201866127705079231237638684599900915033028306899558665100713063715870853234391570694886280568499267526579681926426296908762965974401638823209545498583834977003998756131008425705429759098171952074516416447592144208524691073117402826556766802017202412388230267548507247762385216300961874900006771921153189120760525965405057381277885050147614763675917693368386412692168927923021452186850311960259974197778463794810243146409777319653005290277441470728259277017583854610965304134654053735044173916685290398603410484177961794781522674452898655536021197645832454345833051316219875759716925744746916232009939177544038615882999032375039044721792546650557970794284123577210341167519430777943011848618530284296376697291285061328229823434478359343680964427452713028152972103206460738362646741783881895223712679310117485636326800187521932052002820285140032836937204218169534604509548982102579459172678854980463926115767450429513784322606210924086299511012055919125574593707287843510823453313847547578591371071499997914558447666180681690942756140674491850772832485105274778309191918603318914388862384119309399725041166790123795400362042355778547101721674027460133351492896025150293993409844701830805166837448933651282429188409344370692050433948075211251689125601390157341143140038939772875791403320685575180163217264250208411312815375096595472110455546082808043346853404828549121953528452637189504570019071207833950086136941301959906367798838694361809786844504106774810567640816678184083164552561533769861836733227873694175268264633433054284966888925358234008640569779018705000063213003880357095394691691971474457793870735642883453713462706575775325314270106945098537099415176051750670216542905264759690604917044986916502885918085611511768367026884969700069474980385468968758359984207814517351249303371996691290680224363954780806932189009580497506911446872769755520600046726100747193246889583070930849142064028071984394113789625345600222921295440103902637067185730050700905458233260109997614642249359561524681176198596079116624724308678903138904321330132205837691579256904848792554963766740729127760685344847095366115267042162882604582400488561777015092896393577654091852529274310893197410516796080410777521227335302333654479590357566961173016140453466871734847327227825830103611787091453009251649588596329375166711016019880040582062590390220250249606888688657868919863177990545971949850920292118525365832927825445370120303217032425141074767945156118927430574907440182832484309008909200479425343782501667297769168056706199289530251817272245836784717382106703205811669516894593170728864814734345763843028512464767443484208125597225854431683322434753249405220027120268491460687281758074539714128927621492853175193510036874550465268814326109582351509591237118298296927526295121442285909429284343623891074375867209105674292587918927739505019250108314647644541404060844628597686494936105126872082028597695877649613592846190628061800077083776824598952774523875138117017142164771974613214598765812908880390538178954815398154774261033761327894904148308069474787436790105959976272724314580961250179042670721364437230001764550147103200614917766326725927592187102392494562249693894915146471059311839843950714875565180162092415246011707806644334279696579610864283116259744495428877957601769046747763424733539247351250743363538581210515349472124973868910325918113296052772155714779354397772185248416416440934984272949664151659628005793311197667100880792518168949675684210817796094516964939036135325721252060316187778528040798571375263020019742771047343345667870606235287273394340001742759302082954062392690737498819526585969417794450596848480336943541372413568261863083893164004686566301186780649560064231581059454136636913014400916725736322033581657924356730844356385470509043553448959321346898451858410263562724767506176367626437701691202445396328611186878858494693686988350770627275027613315250252261463990441886971753278953651590425473924944626556615931572117651600096171970045430453164964028064878260736566031270824374807140747488716618565749685748094326509896649952345280037908376020481410920636429650310016692180037313827345706795166721587646871762572588421000176953915401869529953016955493498338359088787985250269510340780764334326636626358935199414836163935194606690488238963855791957000193523119012337284910118304576524010850469446612130109971255040769300273818613523980115356902637997154156313081085497772506206640341492002549661648445514834814783237444783222864166781252986006878546864027064585651882123872351487560105103616184201523884074372908866329692015023869140125640119152263547895333706590716137974584896081287803401478060891997796242822923418105882178693444316935971461327599670756596922103013552027524517460171465457413871250618352046127137756548147090961378013743472984780420924344075329920077199903895538359730922794080085731866104277955761100412310437096417073033980649929947896688463092224724557829463795741570683331813684663110489307550575535290042380141518487472338374391956742405149462366792725623005075444777958278914461030823163773163617100801342022548729216288081472337792585867389711471957442661852009127881568544723532100698527615029884698959259767717483254211415547333251964798430949905752954264126321517932801429182682526137469954164206254956123878061288840890427101331882330465741769094627412397689679030969642311074103029967681608877152281307608188282451036513779932403030066110687260325594985339087468425078878316409439307169009192088869473738980581059151048147448718013650398491660327048850790521913623633291796084786023534913113929606771043546538082644099514424352032570938564014805570449596243760398289795720061792674403891101199621934892243277865017007044767954864883474398546418795427338134988570572091063853991707245492538835484928338944328442833134474342187029481235360464325266751653770333178649353423654935073013648491448923201397013946049179137213296768345019735068780103254771600015744194093122464334516160275142100092784501830772658108115151279551784986175387932002689311730329120183713172351208967147419528880958669897851959081878556035379960745569453423421748061026341342106094034735997253600451770527201094520982778577424343915477736849238156937884536058071535020494836677046321258663571731779040229577039973917090249824814768623212783326215273667984514949373328546027958845329541087194011643654696684787761881479237489915896102640318342070383888756373288835991561136621344178055237770079581741138933186661211976328168427878639050732890129485498898034335285707552309206014064037741638404804817644366762359420707717896106140342788707877159622361949437808745370413767929616651446811631748196339009627895074118864157302761318995332511436103768276494382374560942533284379778949012997465726833636529033742530807058108541739389203014139892846750957573901310229557702401509268677326346105462152378530036353770465219857206410121935340674955247901684417183609884784709738029830761945013820367650671940596188172431489009435807561903582829972006775555390973344422171049822588047950050613518813792031881752591215217374065851374057264845451712486436471864028300333773071711864959869633556312382669406944054590651845687488368682497815933533043380031547006165303478297935067524383917288034182981012317312158898849587859524151529471591243218627671222285123055688069286002244054332699007705526158442504261850609288471395769129238347914590927994588090361164570554964817886493603792322853920518029190087320156490259369409016630205810695643310487580205281995797218298673799679686633515198009010416441244302867145730158377824052823181434797622550185114807565919655506685758369145179881855558161869610237506501189960132297194861362812024417610534301730159734074498203725572371043055313478462635169763365491045059836166959339628153246527588726597169234546675968524601432888656776062587439846639389018021192449607262209507104380766108729390123486705269921137752232694340871388681949648297591913757310608858074955953771125293651521951884626488878535819809584029976284671063271682893803555743801073360686983646151354525580867469679037091702432877655460053550757775932056968616225357422987597577491210134632884623623448937340397729429664738924070724792212796443292814261042090627982959912129198425931046840444355793136502853804365378647190810325417225139548888467190404116785258207735520462931200005158634201067157503069666644923119216951002801616497243079782972115819188102213251739683534954208183621484188012903448819940397834024086171064619952940401453879578744125371628273299808925117195201643700292573074512311718600068467984054828704360235418517486895368454600319974432922792236288374382962048523971478024558139961373764823645329934696675678951318705838281204130648862763901466650267722238558441214350171604669734040728805905846327946717093019087666375473795267655400683875988782404941097023021167346485563207312270316801650751767254495765751093066035002221403998289487686305878564596504840323506374421803096265858919149906487978639467287821033329329836630847161170996634638072882939362702966370426792629878702208553492424131449648412472061061979581817039077988914715305040522643233268006522340948496004206453843813086572741684740215101286965278503019316412576420221477763792543964456361890777124697029065231665013749554284498535793168184060401934688778975892547853742944575801677655913896805689424858376925851425726598331476185380165136576709854301216289553303407113579050119099081853471706243780877979256432390191439325326271024063758203606503567584568765570921707991227444450597035721630370921233356388271674574801367717868947182187191139080643450014763200928525182131440726975732502697627249431445689921339235730209676096456676298572109806906701718471849097206472787600723688142630768471217168822711406877953961257622549960244484105299553598617096474038915388233562843054637821418234397949075512094321381538484914947350775811205571798362189885991236835900018664488155433668031718804697779903361762665626023391639925302578027628276532212591206151953384716726817009425687910165816558178965853715607893107580146839521220497243717204322412982629996205649870715522481820553661344151432174813227667726706632897692366022088063265425841383756620429857993010319406354001660975968103282660761722089575865258307715410312218623477771147809799915535228373409862644779232040707313729340963542166664190775683578036735241296551848875096570289025482669868672795463630329188862423582875998291838086345683731762497771471668337947101334674591063810043725616217995199058291572235083358058082160147973604105002592536476138519355145751453059160855609365027840049748488986169304703243692819562045212686551704490609237413517320965180117741984633356374554079111849751185492604307004254096459162678498529215851743021144971367732784707771196255935542539631810663756622003152739958472000706509295242304577863087556140766883309741217066552770843483434957274824999226960828156242187806747920273533201290521047788523567636472436726295823199393708330305630469771745661469606376299825830859158745093405134508228438107122692926409466201385721662812674248463490118965657590078431814639890676671991961829560354583788976891999074897707941220678768272843950919325482281237220488974921872335442540012801365594290868098221759187580932835916292966097506907220788649674587291465699785791211775180337120303967816513863381765000910861861932651844677263041800301791706031729218954317961314482345553566176484055413958983754007133563065757703337113985179152495965936257169016425161360814124121556793777945945663595611649141357217100235616383399841800376304729051055274418417938497823495867169698651402480966614221103885028919984599668341659501034561526588998586949899440081243777607540251077004424937917743848752542183014153594781597329622440317843992436838237379142607137976605767934073588207227798166570991569399502998567216609620742833361051234148641193733088913486817621201201929745041876512338913847147599573086768080694002923113083004214802761967657046589716855108092176918407884215800787961382471548118153674747181220283941705016641089492343659647338218980034276655102521546768919832951707687060898863253327968773475963533713746383603712021361328155239741364874450374427419345848547998388113082542917803894615572494712394105114438262410523648424967627498521603625865311708920756112900011742829087447976333286667642209487241057528025399569263718924205027020463361699930956696338681937203535903647254824175581223935505331060012773321616372799304806129182254623751740889640387396396570174213597994795998182727299797837886313093434936288394972898136996828864801937787076169459957853882020847649317945485996902424766184729076814563484137034211653046208180401827349025493559938246597268351062770216492637906699955153024733255195912080855497511830470163694961201206941164147597145756297858645792762336862954237099814807270624057968422433381004938697408245036028502973562235326042745317632130008835309547702625512088111818775183125991567144577704512391620103039576937356288202658855084662438360327097514678589624370812958214103036427947815771887548798267251030957492708250946298423298125372855899611753162638985302196409546705151355324873568574197321185275925569327097661469920466525959591123793521355805777502767315870668263721495184401941509907353608916138628940164746707262551021755488525362762096636146501658237005733444467723406129808832165346547049193085314011144178269726496270425315368997811429249656744437320601073853413630372735637998040848313503301478018430016992423196317220182782719744071892601762558026192953460115696613049447360297274531487002720380503210979293140627862664492700888527384277053280588043989250358825839907240614718461306368414066027885879304741597642096513075843071465894568992897025608973532151642265172993055101645870122694140105078735907970034618128198736887738391081096014154312428751895531780807369111944578140105483441194906768796246577153918843430690270644897349824726453210866964540989776907113512801255150295274891399255841329502342377334377127010190810052609541993988197259657021532788953259483955027126143293902729710602135299571049237746668034699290175009730025648245417711169858101252830331155096184145541526426267698243172330796802340752235212627220948882058151600634100436347988913520005347203910874843373578670063759421478855066135973368758666918811641417543854066006322551784383431287753010818591285984467609994058354385782301353319974814782727417141653520948469045506338897174026739061507391489624027714474822252613303279194175934728677360451216585548568968137663522270252722505560201384960458195401651556701795963713490596819288705950756249642623426064343113974016415420833534304008718944417731239555376527405058389827146956080177299060331043789118411968969966955303105700294290637399746028285653422781079938495351579770100055558813289622997896263274308989919592248482505241770737591902039081486273517848101270063905571296558923075029945852464339155119327963404938542266774045346607160298226613993080732237906444311250622906697912605747610630646005032052501112065997891634028901609011314784423553512401461015246346075060344161151147603284130608292723447432132884547857149699332059251034382281233999761695587703748211098595968682802772329294320547394604646923737871883316333460028006179795436680669111674624779591664900385256660031205496732356278476831474926650880408104501450743042580066221221279402984612739974164237432170054725157618499662536501635104689296595291385139819070162938431126507343711703891824323888128813827735773189029911754649464445257608519567200182777459432185501627976660481218004834899473937010920212365833936122545084695744255926000885340428475491058756456973184898368784017519492159319496940124657628786359366290684637222448784759952424347483512712378352265395480431893323931209297516142683043600545653942148858347230219154565161242593508150892735489970489473587054782025099737473065574080648791751256080489802952709754824755582920742997950108635339675821563693732857012170031615686056741169855005373448371508460716694458988429647593806202109986611992051490800586932687968402678661325414046148430747106772760839088337679190926924042546233927546162537059734802218263283534559735660794525936639999759462521671261310811163642333555934568976846300121931702740087523626210518476997794907242434337371780577184348857861623062174909682312579601915252162730624507748914343057750509692411340226788605584455914831004718215354180087148991927656933965219207235735488038099997970812064866104138007292609774413335916741143602380323308046241093045040116863567087123250611757818731970033661089068651229217906597083816281858836143330934331811954856537733911397863114435857364494886500027076489334029629545021732869507978912580520670184745633782174397494448946673659050079995071492716627799811044963686306673405456443550128172487630520250436191865310855411044391379181058099850078407550801910372782161803224416825705503279566315267279531925201218695553063025302591025721677149745209956972140529689690378854185337359162709862328632403974562744029985909842645640567547495137574429893169489881306685094735463529177616917756835503031375574867075454212186154450201618181400403625370920927303394673484339503731254604544653270139996016664254896891475718637787984830764655229017779369886363196409835505593880366221941098429686193415728383326674911360782657442050544326594087037723366299656755233414236044214121962647637896907019119991991617554014673425570159029210133741905426548035196440866466193372732435821322165551078421274316948122066930243637448214029303383911179921407480009698538471142421202864392622518970367783598945347990479679247711170026464486543688020192930337246099840444106400600685029908097366489593048792867923829592923093875997365003675594441843531681257607611565206945802618801167622591158051852337168819173700998154824495855816015747260828204976349982317985918028082262722286405812170521350753834723171229370719476112659434639523266459089026424037560433106560706499989247625889672440557259565753124773054741810644410245485820033495077228794700171934213859652041886988475882506663954696484031036405216802806200065769672345953585069666612397230956852080355014279149558858485420758455981267986536359379544120657383511945873568358278824039428656374996201421974198362793274175318656189645670328979044314270552129309702975169996314477762505348885231981839421379534363673599115570775722484251516124943731417162915368117941232609926884668756189701108281633739935222990514234385576394941552524655478936487379660904298996775503421265670432249416157586249296698582626693400506215008326468939050828642878110121684725877792120688809925236390264235014624297828995455754334013487754764487134572920104991537722737287112248775798580084930056181475690070542583269292359151277655992468410753877699347092530739700243879192445454666571697774434373819740676186089993143550223653321316560098031270262089782559293640215427959904087887220929530997790784672401853741944989014228894877703608895875547825221531806654771384715704435906341851496723891318008244739060153405670191875911702321632429361635216191662316542681584715576642906998432544945068252493887430208769202768054820466255736134116832215690370389829443036274266942258794452214744241783912570999750980265689506048112185158601684757139052786236010274093081406778699294622284678563745004693748916672575991535592873796942164397885230481765611341326912603293126467461966931360913129898978751452111917118097702599306501469104533630355004530870568867548694352766423021163895975982797791989503312267099499463615215129686863609001711189692457998217895190711807523229638934018680380162931683592821563689407256840407024507638683968257226610807343772760838228144696599452494251575511910371764417152166632917573327339107657162191895931879123202040968002859505028346603017878117290614083775379672588613701631639132905706502470282184629497339494766051978724165616889794526581519118213700616019281468875897210725652498923679249388130066364388099351784560230318846773481377521433301718021507430425936808244335223582221919662023587495264004275642568329129228769937062362148104255153459670877927782099997573727913730349551260197149448046190187950675967750510315394816848003405166950236165592508605225680634297498187750335196047659512718775413381948960823814629865514851700764993059364523173453575547758328906616290530661754853683833312250619000615967612406646839608827295436852586619343989948807870907889226317901310875342501750453737427397035263925968074768340698044104747322175167455025517522565050019339492472182390315456102062856555755409537518862997383519705029037973799600065565822260145571773921861642787731710179893538955495790954066418303624942199813214105618996798193261874006486951710360472559710006628840744813256005848585408084234540115569613708418179336122518916097758835368514096130410523328253922248059067577900763205339051886321620029885803975263984586108970668173081773372464868384169119407676662280689528866960261365779497081195242015668636463886275315291249314994583215576159879301814828634466253594633771032647776644384638273436225058457870907153412950224967270130573678902477799683044693089917081090855589866088125828153563455796013587429018895488801227382437738674160793810785641695150039769428983207293834676686462803518265474220178323352498730350048496560402248969372329442403334179526716845521884790405845756651875603593500185195351345618063004579445888602017301320702575444953427869353506185345403864351154859084164426286206728220343688260627574397324030328065789849416065886826449589680179072903103113079712922089888699712976467283830895209237254218951841557011605437177304634419548326463663534456785326912119824810554418627560307771881259986310016160877189601720067542904708185133780713651849303579598824681653309905329071381471471991383397981530911705637008864557441432462782525540188002521222045126120519988925511861574402242513948684595351275620018544078473816875844262550030587034697089070821048702795893608149408756546948204024332250041094649425434982984786393816976684298014316799659347463312337723089602399611553677176893776293186686082979324912009826561799176239606507488791764121016373725277295853940284032138100909784861999743221877907224803896396121956423673131736779642237688715558260380629140182379023739340832831924768822833640349943469801472253601190305611181994594912671827852032475439470214371141907586394929966047037421823028398456654568645828352808267349080318252706241888713138126056920956195361660354858309225721558191928641414058779931133250955000574410120364676830040657701521844949916725622225681637618250801788680053145014653839551543038499092868069919172082945980973420254527887764909871882618017084048299228471151254359498390610626267385409565196246664658561782347946909750938356517684285304934154151424741240849444678788733544768759021347079883761259197880723390995804764891613231394905116325008120181277944381472507282974782122758683629263171287135715183891719360975280496696122046109907041503055646654305201051780909197283489110418329831606918708925655659447397040943565070142917936504874547503327417257005647101247989971897605379264309156603589077557450003919875817326338593806997203613356133632835774502155103751425349018007383499054126763524824265266825899909030264832416982263618654670132767559835027905438522552061092919626292394194899459393104412036754004137972535771718389490975446707053992030111178691597565077060790791517710971781748963944236131765559449516506045036737400686799780449393379272735712041125865973270614361269685213758690872027765850315370418771140326441811978252407203309490983662349537496105802958644276879840790751513367788287841399327558863969887800325921956645424788613650850410105297024200555561766359840998286282573402721122250221679650422860263548501659286340634927449807111763935188267709777160160538631657189388268337668754292119568000037087187062813357466216294592765844138151530445512201635756889910951491273138336474280075489217957126388626833563214727996565252602854426250606618536358172931217363242837617374180381793853469517225660387063821392735798620956669094785531453020514607228089640870044318779411277798874691578501736641965778153175330332778632327736473211109376854887053129044250198934680827502080507447773590481662267285904600771995805598901262594266671034783940828123696415752029598444736566540004866595435056115352097206270104407558820505722701949276718007752509596129193888061490497011099987228756120670092630661985434555610107439105693578741042754220094245073719984635228172844742121514218880278777686125174788628569775742954036746183729257642672986861827440753020506745732308319262738877376873842440262050647802738786693025980437476078103780429013086607515172763326653257327228588700932532454360516916539941956477765749651303296023051563733753088162426601318130620451567064411646598721912486571115450378708194686215112401297829000271010706481651872497138052513212622331171011199333512113051372630992922979063219195038151673203246124604832390846165587744126614039952160119444559227249487537808419592331427687538182670227545077037032772470490563188584432291305813521771195511962717418180687535542709159386594710827661630310894385810599323172165473045724863543944613477401521869830781069749411659938026296329783426232897302247983846269799960106802948700324957540988481300683545798885729694363357072030219183438447332576831302001471458705546338650683416571135398568554010190538204225677727470776694033645669799392120239805240697401161410879209642485906954727809360693264755712143491312604582554152690455203094910644906805970887668256870944818021863025515951720006193086339538722274976478680141031567431145142781078851870215859394030102418915588333931555387950971407587942268029431108972089445080059113059233889137875389810950166307649361692167290305270680245714038754222242267726179491594879349429878844264030876379241356344699938556793425065115324762448850536505078780451884400990723950370116330906247545097930855815995372709424119660208828664869756111851621338515130400586858916320850277106153926362218074207125221207880950703565935027433467700317118169968488316188751715142219925051645518378381419131439983577557982793551763155675442117929493989764145309264655605526944590277977385801065496625321195191670573225567357527595705637013202942232977138352876833153815192854803762626788489344778661603838960332483599162635431758598584248929201531570839838778050293886891108662379705845693493657391586549884330346577561195880245963772499337032392282425799298060605496308593098849960479193531003206368404502932691619948848948072969994333557983741930061592646806623610695211498802105498896387144761726146597986322116262851786132065243580020193033874615070738601085642536642704548592544637229085689075453110493940711084565617673192025363362645271338466595917322106325211810767039373078838032500514474316996947636039939214094621351187449039617468393686366592326748033805241296509736233473171428486869884038229225245603543999198755033649073351153233480123307925641779226631257616005203772628826282665715847393079847422195670002715962774394870109103602798896914062612569305477860170961668049391399891314412935633555783829482813119259563387074293952734267794801374980645169528364097766981186459028994428255590992238355496611291031810939334109870161491352468394221855300883351683268209074546747745536421185103205654114293576158950444168196497840105454211405763915662253512997227288197249310867739570035349691986074339239667374720086665629385723694902655102777495966454862833227448560338949392254455938546743651496616986171345714598527537650566920936093632232050663932468251079904885375123493096570735280468686621529238949410621311155807013888880135268226453590112949305547542015237254916807122128827425338928971355370525089613398831926402736789514936450700409908087904299304681713445349479281301821242572551366467344902588561533421237032328230522445905690724330699876060243535161530356242356015556169538333039236578176062939214741748446073098176840546191170309981871426724641298926677281653164870789437786467623727446385899223840737927399005986328360341444224945753667223104771512871728696502089644596588920770760094715461333434952052824403523385205379698082393483711909944661323477459235597041606166655472793512714989257438063851635742232816321421638316747628785982063977551180628837736970930638092207787885625380801022529507780956050684894775646338078241609757069553814747983056269311425556038479924208408645404186239864967245413489778621431528966857478837888717581971179725832053215322627088134118093071233789739842805900861841778474352846252549182342264143421640068548178718119112822386723221613980215149646841762405001714211781173922445413431684978490900082936921500846627897162431725909540532820612685328096535864121299471028449724082044598646068474952480565806555185318266862099948135276223332050560849663199022374022402876093552125140819641554226261679517930402406627242035731287077565112450964741643906588486557930310826093340731532874382206378529791547067360789288933299257754916316808273282779678611362521607191658027764837761036423089855483657108341441929017230305920397717455271568797916814997617380903275977960027993193222262303566968999912065540612285107344937999878989341765507492683449737895562575769958415114236980440945295706948967847135188580569457548097582136163812639703757651154912350624069227755484715501119700096051772384772214227585123803318693136579851506010808051745147355517703595906747112794210114353582602893689784430243530462444719216447967933095525852958342835447794555372094015961160135292832810783155442947884532783228611771052279288858670053501818523676147475342555248759260288829521063426367801097987872822108803545972543030362250760865918711048698775291664087156435167739628823164432169938462860611932132252303527628676029376613563540381449520967724242734950277862440832282116063500756224630335960626698999051604583716619465826277741681069560113032067622655110604157059105208242289000038505294020690587675523931402743166745629518998952495445916613789854304531046097524783926911277096610429181547758456499993737347804457105826822849459777944881480964673011204590357487558222075770462421615520813825555560382593634329807603637029841647418067002224148682328125197937384449893941888983726823065392395003185115059916692408344812985351934364748431783741318118434068611930652652124800303798715613940839727361210070972045881635306548631909045873584883632569718417118457062165387469039778583368910069356422372183421019725121259937671214115102676731885870967493632373367056694839041841658493467407254863443626167140837984498997150982419987448758961978937187534836961554509995670468950477886720965299995886153105038496411636940035624832164454915819801117190567002715984583614502105293131517102688701500234448835925102704167178795520538826955994804706529897165922351514493743003266878633898579178938289056232063993680106565051860321257120695973962428564722789127662951327294551737274555442710402793209042639059781018383570842489296232902095620636102698038182912580337375862243007731313103662728014253362813689677743868069140930537486483169602125737754729675487553153668415325246813669885572611214042893291920320791430339698163597110053204243917290211522959615835253850570670133182857017694165959818119480634551779847199213544984502674152284187504340831930141772098143370368132555426568448661871661342571628478772918277460933450255244507035787831562105803048592783360579728705249051685121348196070802550173887336948869504459300901549524316067940679117226045927416639731700600497999469252442003217687327482807803389508053962551489465655133297989909681612523609055189284108184103058078215196282756475733251387767079604082767876099314052071104928002835306478942771843499347980138757609017486123800678218045657421438100715815683118956759770262610705902127450113289853213926903453692521039333613817961473233248822201536217647728317052070036411001037996631949484127901826747651839412619994136219249204397115243856032144495811191721781288565547363283632327415912141530345710988244675927397711646357588305300499908397241240928472419512293704346240582234603953994977629022968104975936856778394739253105605675296531018502652162048459985521541838692564246450488421934293786035288203051565677635361092768135961091055969652582617761837562767772963321271212748426667338157889471513814508607397592450475734605234930095063207698574135497143343449091441617587465355613950675242374339442359377721098971824304868093431265952841064011482494075702758753703616147067189702215080836730123467091751888434105200844646515650215508836343342211571790039077693914970345870054024726266660995835390804793803193095111000952183166349494663537323275032832737550767720091374185792387598838657811240486771085759622691148010667414532898087127887895129438620694074046829045203307412875434874675010381578190786784453432641856886229930063725772225511820154122787033279018348578561047210843728637409440225996379046523221950616680484527142957933659022437317477521275486801764821681662782392625356995266406755367654844006377518862642416544562755935515270888918125816802269901325047567013299917102245753636490476036777115013999891199708133223353144925801106643222231899086830433798362614291287837573866186779942423266598944570018149011653807693000953961290290915289751263052871407568542827299178270271813522653475019295857220337149145710619041768840731844957830836449355352480583113323247426599245416633676069101860859508717204900518825716413685121245104151179017261444973434787234563931301945571405952665888075646042350232042286937121573208392143502744083986613763305748906795923514277746753155749180943495324606829201648817482778984926951106800411728961400379870604424545231143638255412859265178603355237685635330690214449460439365151307549771255318997102995344175104850474766876152550785757307047708326513190591611103055547454533800184976818528596449101569252983048116422259620300489590027590797625010776465124020999787412917075855756610545151358690100667094235997264954634900789084741573214515470903592570750428376141848436294366524473116644649194085420762890778062906736934764077606072534836919571800648775628170422167615204276596498958812325676708012769943666939319297924504695822264807509345809496892672012062530246448137611218758994004886760069737145689011335851844888142617802300855690826747692596185036438265070330175512848987650575929155307684702124905525866552007136489849444289024017016607665678266685737642306534930838424657375821160208163721740781484977081736338704744847410530442066172577920523927034527331828125444798565582940634063041547549463378486022384487822122337238628524166586003573395989977623881453835484582894780442363403022563982812284845319965900892942810511134624928783557836216076284692417089754368308913802715547256710969965998941235154170911350711377436917389011012149658066881448177430048031082453968648421236753191014168083110769443960524711502114568876947413760195832872169963787564209881227259506008235325142167033858690729494432204621675224332600648213889417954109530167640795259481644566065107632621683770804132741576228798760097095105985317258379487351437970161250260847006521418176202462794701039523441547875969633073128420016498286007115002570624780013103025886452439298875813651319959149614521133858465075910079756804360627515587727731826461421902414990146650080097281325653988320377268925195309233650942018681151985479011660843619391667871538579566153690835943690160024939581378146233948951595850740054791061879327272348836455434055215231001476273157367709178603315912555506931535124297194380868526563074555754894575943982446221852687988849332065865603379344112119221371052118922135660764925258237481921824682671650514108238943755984602066883461346713512125153710408306254024429549348949720598137963471038941276417548156643835880229311903231327529254132176518770348393623032500581228788966134291837391285026730277810223942395033237286388209804211376411302107244368628062947829788878376516511422025789473640793713827658979812732367903778749303699741384204529653588658633588134741397556456457480046222596452263657559990638145960443167144565051065967993664209671996722502116774318608334679550836076373467006948688050938684802399777691605423283562868268678371933806242641359144251636830248173846612062531021831239925564201094500945272555515999780814798238678384412536269752607308313443915806137897272387538024261356606089774630222067902272045312503542867406670034291497050009894877297263357148494485340471447418741540518111027365903788104202005993071535495882740310585788378417252117287474651606596811133871889499158416542128418452887516144431389677700425980293224393073729402876466058409934103055774478271680244151550309979929160775397701920182257487620140642454642356775879540084943329139814378192722096330370035135625198781725614423731654892831251656042723724487685881174802521929078632091044563797885944380994495833497697314799770861241153457337489306406972520764862911199340992404272611355230553084001838024228297238198017830997725925889477363080985229949540486587630100170566999653588745135112729770417955783488251017400993177101053361210883767939080298506656114359764043610009927190720375388595976124309109305115468965824678579912782859342504377260833722890648660854760641591290525427945828897311752228764445876946325276357450262723671631470491902728574658541118522319735408973677158921949203139531691603734670216103609498258948520034513715933031569617612892734609952198397806762412140623344535526367900044632244723119347803818542145950810971058282063302941451984622067895406660883596613076683083473712160693062064746821973850798177765079905836428683476742597156420925000740447825315016629261966551352379337799127529026887942955725625856740786851565345560156999851358046621416715998848190679374184280134873629932684410569557864798039357173865554396035886753082291770701970452960418811060132046438458194057741554422633501692162568824009599151925820115403549896959262087776601852210649487932396299082086823682384767925460621701009068251324246404620631113633476061627109794200438954847690511728248356869307285771332769093882271560050177754185761563155218161130887555654972962059195411974703718336494422841650982481484282649575251607370264927061927234956690511569129603650034925793769067813879659902088608987115637326167033912681438898541886945614642793800904286267644831015091352520334604978639047066750586547494588291516609243951962796883522339965451517012439693355456437237099500273087631943224329818299156315589538270273029629871390296360210975492766367031604781492477195679089217506346852734174253772325356740849489347877498223513335074762109115665217807248930126013025129244961107286781424631198534486039591515314174560151433923587064284708686174597429368372742461451588694440543025419111512444082804593825166235292110365268300509264347068857741166032394177809859142668276593910232043285321212304626589710350664924845751062387221694121957116689621181080692003499160469077312106254524074383241043719852495111701843728911885706384725761600881047906984729017517753995147474828960636187127006102592707258028784797040437575255748897309976810567996480381869821195108829991801394299379606116201675529155917255400698111291194212179195002270000023681706679450404316038864932358281729627361765997236654614320303912162278623518317244900234230829477521977766027342523304774659773598397817574766876209210365308129836774428720633558933412766420861172645485674037694096607102723158292173460364850022793518745107319795757114898869268178949537386145595844923815609064769118023121721561589189325962330948179174136763311666738663753421401431413142175617683855162807494474946889592386402867662292211031933690451105410025538453582409499518786949380279366682245173033665764674359426183044233415084424903907391160148970478277406087757659001340638137081325457224773478309312868777607108181073245186481056875319149651202288239295382666923767119270362460139880737416512106071746536056562890120161742712295098962638829095655449191579322407641060786807945719832943132566132619795964304408591836046960360146711461896696166154360063221381338860824512564827455165590445303364098377028555102117549834099185199580667095481842861714710380319548452932199504723208932803276682294490541207526514203833110693387101386336931952286904774593940897470339021599913970512270241909947085165169910064112791266510352054159495174385721299447318631619360172798230363085794647951085484440720837684794301435049847425999849363876408996727510031440694796918237925693227820030541290198063788656579066172412553833671173954389231301793731664941244861965521201701746290529486349030212457085780244944750242393438131637107180795817717559913632771789064917190905720916335377843362289957675920053359496901060169998559126364946237530600254236016522070441308598346989157768816692635880283624048623368659037737847657870205855797452345464398421805979020691330259017229595650328201049733124531332094411323095166599095506448713968501098530492875684710386786629098844341617732744235703232283224259938799451516749250961662651870286578723831029853696679116272194013005718676350378173846953967268660668753646449642615704585615714178689623537775549802239818051865765082090150019002381923137752986028646172772534276596217389694475112576341398074321200472992033138449181133559078742842181693222035653156656963772364771296187416876143097635936794076859418442386966492276887812982424482235785050045275962122941808753804036976423580838848145968372209354821410845414025104764782115998757313306467133366265646408300923300006680901471988169249592006247346967005093237802058023104849895750728355946814599615204704038731626919889924294792083003515805326575076243615121945254017555793831493508053859478329619460874119688791160236443995253226228840877239228554034261266860851846842863713792216548997453164676226075709395942388571729158688081708011457219740470473168101669125274282290899291760453102069081751993347475364874072550220619223579324442723164208109314814005645877964137985227204993176169432787017677941966254461967150715547740606051805321206462290214562685914179464693649660353650392088456108041717370602222598212499472793353743485456366983408274666476997647231129392626846749907586828687690931545115554021211049563330917465514855657264608157791720710545938871104673906433240159292959744185628045450235753439003311130441904455968313848499298221616778574454092553846317131355650439706430390568187699920559977082465422633148425314741146178907427815537123106178805439749338678529926171180071307773093369731443560261195779203378552429723977172338125208659176543550408921220360513011745955906277145137488190577364933983493787040305646798680376036240818518386066596963354426803231602127044096566174075211136717631107687279117873722816641677175187993985178293463103845395010892487580151368738372418882672534761543043484342848091206999920102733745630663357529857241715034690939404315245458734154721782936571513720423514485759964507579522295167386959406115591836606733490159684912555921312806411812339840701748615533803016717517733366669737931466341851782439900692351702446874938020927297481121130109613670206597528633072220761702787406094368753317396414727766287006069169780903442648539221011774442482990291849029667363354325072700574002828059723495027142927099738651547555979920552760581602756890857962298283843871881063789538538607076309217088251209693307147466575532866201150999478931657101152037855932555032819115170252485845729077540635209639979664365449590308081845023551787521019162545157090187403986521219509405562418016865377935212384870666308012266013498423486570255339509705650795582015498108753412191161422503076328874946197497303478395408010509102180271208078503730457052200844092083272237307832885135170400421986205917416490999799427340957371246986310620736077214364008145267867780452616981279822916748518034506136259717489951028113011437804678809978094527944075593726260921766889761255551592184573054590349148032255751078627268268921368818204603059573912695151943674680199293108289858190416071069030927895933286137860141056503208683915112290975875556181366414001787954233393951750502976051791894301832177131533705247456210234375477669507644345478575538503144817881269213545390770792453348961787332424728959795179659835188015587006015292561735512677972658870238571227267851102961142424179110815706776831134382231165893583387292841630466042827579855595269504172503847713294963371023585584557425002886386257600281330651071813041339713295125360640463288452505242553358714242467451049788825803747703629905292799538122184394404556003354988659810087590602689865156641896026667573573607571156888099478046747978202267143683393969148300058689639274847103428394067082534635375873867204182336498768601091293011988381159231354105930507192285635433270151994179318550373587242200042861675923434978921087239946194046354090862235860600599977025321921677698999936972795271459553940826262271743304183716494974268564425888827496900411666854480816235361827378355746629408899010418941315378325754095889194169908444905616461341046264162854225336289620141311026263752973003347573182743242380798628838886291083361780897311919591143831060252903722638469246539710754921661529001837224976745138131274196090621225656429706432617007391545359940637327567475772525189364297205519837533022633217238130596970468664213763385974767397696955216887229795226643475150621026156189495229418363930150638251147575112155452609010690897404289971364998789185205103591226896081576429584634614194046543242580182097389454511401393496169835603565799818517985448902270744794053534158040666176519988701219532175745076740334860395305441229076087006982044647477980738855710406650173308376493048641752142780696304376500853870863134400507107846334048903908136591438351757382591323503816357486410531598388381399604853754196324561544059761653080213349110041417943228353245459748559977486169280652300971036853184783740291257904995195801286592443139530177439588508149149575997899956334281860024381251945117545603917697130448462800373670089899733541656283563505103680277031491587631405027678811689361971038975169293845621468075922557044218502456472437214581786894993332901211117506389315539092555967959467738626709973896321861248134673727270062083064619149761541946404657423655265724055954721145521254800499157044556357247400553705279510938633510534862509387436675555411703323884882742345915567664507978460872543247876639847574052099775714784418900198862585210796218578579690319887578375594661930787252483816022275211429411561352850425978908178015012794299048415447225672040923082368619345808849199835122530519477349595498765896411845775830299527938312151237900926255694596485533664538127161929578960159865494870393210188387238368612444092865410611502467421665510705356392052210090490225705421516985841958820681979127732080431748394542855819742133486133725924861102587997950185078772756680815728265310264041803065800901079209176874118602680114123099974355046700913462863428921233815437884281043306391588389285833627147783708214095071593533101128480413922696946408818505377351671837873537146054523821105233939385655161070311989776435794338173339126220924290499394592701802904385523205434347558566639428615636687971476015396346285563048706338953454217008007450558334014531335710903705231066271454174955928041300168537648743862273806318472520402579518073450894098170409725523273359181187313406925074544911500604715036729818792035227483437681277253561823961386888856400184111640573409266262432416690260664203579069087845959713386526162167214919588770064061625160484131055043149114999662839826800780515117527669412315673547961025208822293806716503898137739314494382507132354340546279852353836764864004323183234440352269262089919641163398686956631421412740536132016114361440476350482058294974192192649999370115348056371331812482797549174542352494203170994846082249849920200283577326243396461549110574010846238852511390442137725413380488775961136107423724349975413802001371967101404516416924539641966490474570323547514921685901967212145009522696474747399398611902107259557591535588724307676222590154138040929255260793206373870465431427296903721167772195823294513392268797580062342445020023295573727936384558774535628329074301266527972421584681884053631540678979513098073487831240451413822505341450421411990636019460085744266717360527011832602250900047299740313812519234863978060686106015041335093818141243639369533670948639609259821915538785655625449041938491251835428966290301249806703625905520607323006966132267617311355325565568885856452738788854326259057567281216299702258866551880997269689654619253197698383853204245803828470425080511199575516735071227493169205480423206546056179726184726458177885699968414759700139693620238679641311432289689841703044910296955860912758745924507754247887674572589629941683028362199061357760685761545025173758216305082982904704897251118201694601683028727820218330234095359012791706243673612304057628138288056025394380905616558976318968799026110456693711697026492296674874983937873653478936342227200754141011259313412730581897643847336389378059096240638757809539067230613907352497345525615188847566738112667552323389600451686350292506102567335771059748527411895944727364045889215137281215447918284516552448239464668330334609908147801896083495658236699900341704839216622088541027968792860405189028804325044411915475169200344071992915439023367649163938073287588835355955000626501665479821419832654325610398985538435367645831925321547627966496624893208450904232515806948312352081654774236315486778707010708600673834797036370847095230606379065980477263422324307405444676749818929880226929663313122967696325919228875175880418576410661366957733573773427593856213895000027797373590004828486561690605425414707117298836248766053673049428712355268965645183906180710535854450903147466601590583766224945981041129043919247123621513414751012793263316276214725487134546458693841589980236811658960574999683313502390674762830709707021061768267541163777808474683621101080089485021414626847957984607489185884795090670079106173922631786993359474867151257433524536295229874264828747159820920307445295594663394722443631228977382872060848521117934038007319538516030001669525950314146025315729855262469688781360209342532750332973779345170585364778020905139157998479307381162888123344593805409857938338732054576132661592171279525632990393465035485108113527925925751808378612103074185614388795368492615310928553243578319051529847286194425213204852147300608645949970197897660014136139437823827336768397843507453471205384124240232219356083945470199148285726033355880181827832084037817601738048210194123316822144275998525972631796950653157710559293594800281847128951309668843531085243752863910735102770591060116146125558459374674118782352603284333582499713716150965791966341234874242443377973082222285886731819275582611036233134237379869701176313643249152074119731977997934896473116907183777037729992584905106411123371292631889287450826836391687931504825892903075945695083008352109594258299597730816740223290306552252381510048312910656249580361055871821793863131309935468845198864692420229079409562549514220884003072542427992222110830760095729310946145669193274712987811299783024676258220167378453374573214685996702847949406410374652073628296568292456659629237537136176995552849387009661173183341743894766725990882966929616037246873266108446991529698570007415031703106139953768294037634873755077145814827541580533993662140610202306087335827075641425171950387736989306989952266339824292986025075983997608969038258127201573009509373184475003502328898496510323615236464366039097674754589045329445632666051027482208074492099178372652155563838136523118850821653085366919974246692552623873384729045731081965600330150057333703839617628767885894879589399081682051211945946421923816230120327323679716697170392648358304569871726132073759600447075626937059136649299733400153154625076353995961509837208412339632790580220016817704498769585736307402133368064513827527432606303486329990198369108118318586826584355450550534770497405009897012952496911704449812134293792723385917878461616916450595991721385480193150135735162163568768717542940988379112335789694762816302631811432188727687618815725104528988920227237313128361192453302313086009426689741422342283413377651782553299550953075391032730514926099604711074853628266667944230842150965948783758627785785610261217661255723242808279645044573978377685770121544385667220930446170632631036479626298858999558147145063868874412272230378207749889114292252276789251135054385319532872681969671255760153696060599862163601099958988634897704660380890114570261480485379439084336707221407229805798518648221283732843033687425471609460127653301395648232040729482950704037960367400606941775938063183472734307353516216634819844880358554925068966937357648980529061780764235317280554841006910632169112650089922701647816754719530350435967673144307032623168486677529019336705912217744493253278243905341715335004069523965987696012460461129978191206130863805229271194430415500007551671504569250465115129527650806368370964320965161487819563594337300027725602120023364567538039951710175964105344104446502284558211761748315095616342044051514271480924981277649534921946165062073967024323213527355083575170790062082437474824632738694267963680351998839580632570737041987301866433902883122515589423787243786801265365573434259335196045140510426778276225926233316923776345752955887917513751365210605817503116669890756303544526374267102775131478085669083269487844327243298349389002076972302851611571137183273225918878919885203573464359809079160907363985315516007953130032010952766947698594530760512308395058261764762598974998432101879239801541328631096600658985794866402590120780767690965397433299822879668033707016641767226567199287672401965752262838197513611680489058704027425257932407654036157611682624995659080907284497317298368508826109559746683034581895514786866557441288552790786288075042233961181472312947235185941840842218318828040638034593120023630365247190688145188047693761311891238417321747642682557351470475658575012483774123724825796871542240539130987083071255338933517074540374382775801173428214035284440751419890674943353081780403584483366299284408574166456799194173255150180750450810104364437564062716813832553287492849722938214452132333814182941969571236343060484395173163582081390201550894378125484029006382643052335649466402324446143628203006427146591065934777406678518888741662717784584765699569670484488636169967927073958081870159432754079023970036556216285238987705773382597574068236330485557652704729300953115690609827534829823326826588891926271046198328120853867345114509398390500469075932613776153290092033598535799723228170310132877312577481718548627628499002541960077809325771613198096826954861386498574037768704770311162081934632590483903877909347998691308827787590073412795233739281029551602747797112254862262310179803167063420149229385676203401552114538624457627907281400114424552823940717648746520561174885542043311482888772849382376301689394860278554508243308601159189381248782697952221153042674007623146980745848746230445742813202578651948984631592894422931692460375077664504554954628247015716463892908667534654855012693166893304718318838720536313159912963402274177542025885272073808101713397447841356028703715853272601218197825655053184044750448358368247930430580661360141868317425942429741305252986811390056784309774816666413247301219462849659055589772416995339928551552349660354948636077626650004775327792257072154475662100911810217206707868209826897963082599237984655879234951483269541155852537960265325836004442532296312417323018190329490891321387949930238800349307858006042439159726199656315602980774895790358397071994279562682952548364567240431800492145256156165785806125780885165280855812535470176774489813614958102174520029366816550641849419855866307121703322842125458801205943941207365032352942014414660008440914782826739372834002790114485592141818743432208720761679997904572577274627361372120348005813206797789808612634068400748908503393282883008028749433599939991335018409973763058359882305874911636422886850331618057093092238307917962185500560772219834400127378858180196982043466427010555134617648603001036995478523806530664406939865429723863159420172962411890527373724914168809043540530050387292347800210954802176413159108967287317249942308768271558507873445269970704275359855471082795190653774812108542233744335905935617077107164677197380401537930322593879357254588092140304089623101249278845729913884742647549439354746718668855351799276800295960825363862940377305088848435751170860767681222438993289701321842135307571041098639633985576618505215453420550597264550861667917400376869098971439713600030031693391859710809119545308625287231291341405914445494316196719093593210367511937230297787882305090642040932679230549480775728555464570203476138994095244553564725381412009419472305052661490933812490323491546173107631945887320889262476626964545081560744601865048042272274049269957565153019459253887433550929835636916523422672690442582927265517098837729022835575232339391045296807686570517141751735140542672109407997578022969907576507177828371412856654471639919613837444638029536047292561973559363470955277945314492254063876910483484956619978038837636549677687011677653289104750471156696865103923582351608719385800520429824163369296903185585201514393352479244486931099753314259671858063872887561527886367343534827621558431994529140506539823642437770566681348846754870838672006301857791096603450401596001715993333169210115534042475037845105486135739070085018046911003501757819769934665698439198371822338216977117604341497817411318451141944115869585626580809795133793616563536887552596507932437220877702898407307299317933945478087255946770730669429420361730675911588658404803770970257522485843092199196389619768349672404305504848850372505779176281979807176183479877561110797926012712537394420666921659233899790141938006570553188637214416498738132351826860587439242513293340231527599189970241776164933303362742891174031988619685818846652275234481750440714814564179011366472392165196581464979851223566924524197505805831133635681879276365301259308185753458823877677884729944606899503904829154436939870577330269120689430505076558257091883865783558960428537611264059546669175977960736670115222253007104950298395072840127899445324504864069029140415236728363148911222159600922595269461850377414257167140902922246176053682947195307308854045552276668556525577716795960779988576883772123286949573098639636624284306705721935010153970516698027167898959366511293335871776312255140257402138206005024206118257108029248488638583591480793616245062350136753928370694799594834191110364695718762124021774398563253097920733998458615707486292983188056335317858480422909944720352176203760907554145677069911731258572414106575240773726076855873147010661363586764855959866613929306856093294608064712421790497907458358166835494585220439669115413414830284817022627772429106521510329616669471868715126568722121468134465830118437866596730130353363021550848249825760146128592909645899393861932622093688667193417641215219497781747156482797074785591401788078327212883705301963263770740696486483587900671831126404921487802555515077102172669471985768441699624273274543405728764365936591390038524734038830359072195917393020501295746408406197944860775115860651860766536579897061089912897211382284499133044808388810812828689727129499299386436834333899849955436272106375357161862730211836538762044201311403161495408673312602689367905472058279621113130002986735786606738050357690914442195016034724676649467514748389158655523827018083827883416166704314375041319499724722951607547531371808674769112906539780207797748970704449202920180199950681066600103271532640755000770571205814830499100666456288827281732467086778710770320859675882003014544908546956932920441732827668183962146613408608750701011698525912909874237325034528564462506711788798524647927623160482129978162421252797028843948609469369379274560260832407332912132993780470715537790995474146682846404737813568999599416301746102004595675636735805685850779594233909894981270011249577957876655252047155754282358514694588080045329364285168938120229025300686991926349120045098007947542292063547941058611818623316852966850038484341208081949887197587234413150775308360755609785769703649872921834995114626116255711058643458109457750105419671279185574705004128302546629809968056743873007059649316826577033644152369965552296701835233703193500679274980872508436674258494799784567609521454381465898176754242547174393942054325943639834028340270753138556596260231413902428044857425248451143195858455197435565615706308736392791137565246140573015762020745747543417054373778549862517798976998923538224852728442116281291990877707387261227170179253018877205484433277641587927016932971435351338461984615637916669770675485657038383086192375462218262099220956654063419606988893667759587884124050382071024050583782904872369608049393553661604436938575502962977948717836848447180626884209895066145982573539598868804683168290906908021967955090206399941017478467220373329153527836433927644487923900164102065343584782324813538759919727758671310185447715030927829800969722370109174362928742992915776915136898522443261269907589401385515460509687185889401064821178515274863920353232845048098788957960671631367525587263397011071755397033688300909424656342414331921189994901943720037594481976076996256722188029365108489813396599597058038499179759443833710092602432470251794159878034264014896743859382312781620391474741449795142589152308231227945244390771636119884413703280647726139016802624365252629651632472482111113529523043086713910270373346047185063438005049503737366913160587209249605025929168601551839117737516382769562420134988596588797931911657901478526493618529735268113857328640980283361712985578196272726318811052644496046324369004971853237647803092742465335394974918339045149835280706677992282709260380708320541536781675374112735939097936189054830026624924181722164799539080966525653493575467442646433516986189692523124933738425075916612390044256544845252232517034187949451955027551333783563699665601375544997250588445144387918129889199369898890885179939809471611370332111013453227732182352414473595902497062946524030686199615375638081541682099920445038015587210528986466036265422611415686596778140802747879897588947512529941412705041505675571869513190334133486488391156247253446769748541164958647731131929741165308267745660306651612126613222078138636873252992613209440132818003571557057163177828449015190828881894960947369366961717004260800914996330988206545092528538632072969150814237296869793309103626816966516565599343585155166522520762090141142114414247260967324553708811520851033413383385967115542604851247225884616617490514517442348724028852694725921028757501178752345770494872708933337097608929508907503793211815289983873366280148425794050858981949413181257006940438980291709543363724142517753652240510627229764452858569839487911351106371153251375413928661640855805681010557377221675970261435685126256596032836118581596702590827402557046392260562830051442028305587458571359812879902819821838249345559995933821206413409355390535521071940556752246654104451776213996419434359073310825641370677978901620490021996075328504715885319013551632500807351267602427006818564984307144777735423582029128998095263609293381962096818244243682268322894082116255761551147401002626775011873528970911601525321596872882550327139353816783429462142144325734878866065683560549778193675639724306456427354323059491431727784444110100724244254421034933968134338359482781000064177731082441623831074357876981023323637011699756430779574571822779147003166620727201117515155441394951384247359956291149147551540107191955605061270736380870059125141519024738398340920699258871360115975571193036044670557719629476224887470228233738455951732594400346079320672649450076433019955932914846324826601069325505308772782394330355629569614289158187855242995882989830448195844924957281725652163572465700944860213688724434988137208845741201227673355415249650681342100426515022255241324700508799937833909999360825473983361524796074944685799067034754717566437712003125815847204629694666352997432986670721213083908539171874856428588275977507241108959418845803459069435205530342750200597945303175521880353241148917698416277989693693044820199761377077888260174189484870138363435166430170232439599920534207770337561054384221607955050127222444907663930147495819303073989051084178260748734291711219719078837323128822238392347815027041609237525172594850507986015379499671057784956942443724032708367330581505521540552082934736092580393047593237000085523442827269500769521427949501113599927645174190325490719179180446286641477867396767101569415350842122141351207721056815588898372855860778295960497383088348841758494103908384574035672577417126699328616999361326985026359694959752029757559089352829780041964217999902287395673381728782962621972662884267583552063566010491538689092979158725607936915868102021267574332359130664396876161121234446104549586951380164071128658985675045282123975932295563583946430893601324982149996645573693231779105143831824556621949364187028799563227546798344170403511981010716754265469202500231918115419433609984371274248817935209567926594175997648598197149640202986151001817778647670437780721581717284475896098033786617264186895043039928773981123763461943757219052111830494655674053691716077197535542856816155655361787149395595958054793327096843585835467883270996302819536698012809990109548168860550378161337416117779010934932639385388975915136283832537553558202402447152286415612809153694715626698090885367119663847671114646219684200727960995907420394783709190810445922457067978956291502900518958737272678502621894320729081157913958221360596398818370646541411592773539488369450880312104012528725020336611394330442880505512308295533916669368383528126251291864367733736721453217727580981835578487113465404362177850465106367363787303925840667141281810673692736305513580113445725710738858333454014110876156860223243454357647205011889593059842352925616265410679501535800853381319508690899558815251966105811397635485716432694499307058514300875181099493683566673008930610305249650031343701229019196744021763060780471645803375296729927239890758641190974704701969891092692863763663375911861547473370775886534924910816524360920936450779796721823912632607646965032249115173244153758801956880677380524558494659709560534586930001059682071127038741966081502359453628454172129494064656842586567314434854833680248170172883028064428463037911600742110181320517897791015188357374252417205957781509961459415492796269069937084244725571720870466697921448044198073613649217990411433137209840993564900123959874814755824587764441717308633761196016997599502245754757914225485362113306400694013947266569511198562099921728213406465036114881816056521161803304189313949296625316833840248870497462099490096276925371046495854824536561866436536854190297029468227531411148909846556574185241799787176497376081488111934456387680741765818526928693729418111651557964654432048822730299170784613714399014253755045186124966382194487931277402338213895268208249838013206056652606194713383855401902610883820679137286202206550672277842399175304090164040179509587732889729208598087412307613221578259244554315839035670783973450024176986523718241812246385309637626294225994623616445827155733070366257021413877864530213436301614234722443940162430501615868023390089971702811124100735330232266990351472242788427802008301347020119037862866213999742238388514949909062919168734682376385475725192432759601832698629586026114693175886526840154115170654710892209572075296442010302555239292867037612026803620442119215265497993407855122503601742923543508168180718324948305180010457384352528420021748905594149380534066730483413772814318563567548196455959469751085781838731548428567901754180682994468426184340189573382943404991778547694897326089425412087030784428363669694662453038045507828780817739445088072970638317734800634414663563099672773741033844742362913749294150361587924241551586157971981664067877285902045637439806562490474639681057957837047613894429311643573494340399830056246886165561046191631431767088373690613606752972490107011760496359033587151056597201893462256553031456302023400046207334931963765861137237609296459452152860959422352000533839486593855715005718488953766832224827491887320565921024178683381028915536235028780248597863830894198398975813448883534635340783578644621711673534631552761116905663070994651298322325829950766781977428107268664088380990256242155944847712283619312075012520394490165440326371083577426743367014615074052198352131765517917182287312312553779458163964239563380291293774696247704595621410777313441301856869582937868872946357168325351996346117450094716432093785847796737570639849052185607797745220679679511600880945767225111401381268516121230700958570235204309154703719921206742396109057498039825294927854720601592486696279134963650663486744881082838344404339636549860203196517571233034355493959773124332323176690834796394263592915692179275693322925443838576795345583783033472108118267342007223923511647462686664309937962631619984722733091734968726189042905880909888679165180923387127811378117137653411850641388560585206871254867023918357522280464281366404041323662321851312749709932187512474665160366488769625928710550024813145192858009053579861027527614541200098456272475530878162464724953601282068961827265282610985275702083763255343064844810156858462920767315976414453549374804427859008908797477311712042107551081198475327448634298125124129289951569943871150619799260051278566451287345630046164764112713349233881826796994945125179427796665643079653479738037140214268954308083799690901111654452197862885889129411268969039424199111811047747994786251617853873978696900913556088560679147248663253033362215044987565856448079636031719422124612304996070048804539790613172740997576209856034502778371427762598690916067865399059629035237800254355778090674794260575919133980776942006313313032570390000007175176080579597413008317082451528148101752893138238447896913988160848885652302984427712448143873803197457025000645879225851806205908108720867039103807785671133280595339797423186098721468441724953889960096076639287444081952801553221122607915210166753645297468277608748498088207943660852471164536903306718300452019757728899859331271634808667795243726667549300424030609077511226359893212509172879706889800502869253118739639097731230396615267445057181934894331862453696382759065053077477143422504351466622864411876166986698594257891606927474170290831206516385876221217772888839323532901290445003073815928789059095254267675515912392245175581393886483608138964117211087666536042958941476336667432297479106650427175570271203294808230611085639138328142162645723650201883821018906055324749170561458316750444761470781543151904017164839166622261045038584930217127525256561193808852560819908973790632144315495085131356637419384105035431735835223799394859847032476790932230433545492103406923222627197996368429419624403465128883761104261436883701026713321208194548778483635402982514829909462888756484427789918994123317732498476852895060543855681321877607138274357453856368778727475160753771499451943741154211237479703379989942201939563411693196665095633978064005395194730894620654235575228288966444507427782453491092846852951886651800650679288429172855857586969156996239745380996321610472256223948539259309898122764094539279758065757859865125775034012673133172650239164066309832625853201848344352723954149598771441932723108374407759349015875617741517900710041339016905466601887533876378416288260640447513748470575465077340862239306891240493729053717415610340750690446625799114261283834121917896933973928607548950828280697474411131623161711263886386499745156292225499076038860942543966907752476089713558233903487720160777615937112853713927075706176743154928286423578881688168779718212270553486408785198845846107464720196071613636940311524404101737115962659936534804890375383386026914909865674766034595623838620155203031873035522025269491403629771112186870457551632541836117999211282727493053172041982692550012975638686324641890686027211765101789837014179777775645596607176110806256752503968138254407450196103586609986123510213970491401974469506203244207248842575234245108559312769605361573226947684161906480913071265315916548207662881095544741553418214919024596726291433541026014053528340284724972604213099681986231306199054186420157929843418226559150828870482396504696455202885009224342896006772066550144428634336712313808792235680122666417482416957789838790378373682187155301797092184173801856431981613929028503599181442279420419684776211324063973158338256150633490335300498270527577712847554305710755826509367551119903126104938428584721702647960402422531818928306542311757996967016072527675090972950542533441182655702830964871118484151812709097093424157737355777769424402738929526352754299135041458183477988691651186993559932789867384256911313365164994686121181532409395917545808895305052621087174154436545415397856907589546050601533339319403970807666077429428722927935558690915480306533152929517373760922542239014221167967424070148068432691459168886608566307620186427170153797772512301394707566246026725791210077215442359255608596147071540273868326812790706247905428785158181470033798537886633873116314233413597892160095249729054089733495061309279518400495590758191300093290606095611903887982258119475581236699507540745590985195903422842572939103233550120865662625899731236377396257786805500653846076356555178857901294783671340067740538531291311340578759408805131091614024769990485347621794156218446162992644398743204562432170508366421826953896781040301785909595980259530838629864687675141568772365053553722063300645839405814124333225092021247477059711154713252441208451409145843818506298403467317285689128010203089854824898472016881218626047017864230592400062010875039629696406940982264877434816229033232752866491303517407853815749595898640894635244587665151067148381703337688888865715474813467015611124769856977090889040571209621469359505519340961458742536752272060201352177449009567503430912487399203699324392947847282773364072774029371183384878152675891737755474981721556639551829838760111105130387580476133620305387219601679017051855757043469448220951142643806407561083753837045007947571423322467877675829858986706809220188888413681127662209311635100343003609784112001781266729966392010779599453691156156113487101254224887731158506084215034285445894980318163260524910331076617914784410014306829607146374421261921878159205560333166202370836144831726097081577444118528331694347479879153188952986768723667957261157618117656997809143675600561541100347392379582107601850269418990382645859722009520983305617357508536030103682380912910295720434541660516872499365183632241735781001414497109993234897296463768040861014173407441129507545694649160818211608363205572421569645832557166339220203586045841970385484927574002193571199657376889619698418266301470040412317088276753873059401997370605179147018221856729974169009410156343893696881214828086214636271334859633710817364145650107082577251542123281498033877770317019835660021634169911364568720644003894236335631281821760640438807381807272194066938868466974100271563944585112487721793770122117119191601973654280369970365217691668520980398217768448438247902920309182308209980365271649972398452672477799007726144406105361779253392849158042613473397302258443131146830289219695842296816999926881098153689954090772697102350616336562184355124795656138104687298802935584657799358271252900110523495561933314229891740742785117614192262468280148727522595879941032932422521165508259835922745381199615950624863248194442466399256740541210765029003452414698600819707670736645459525949150649608329401955938541826641623662813133977923197688468832175109016948565473994239211424839098226010578758844211027981364045426162900076545491660279618396778459739780002362361696555975569062325413405154440348193110231282427760112219356211074787098932344042617887159056180920171740451947189889862798671276441452357064288409902109331426371023083828286069362951025433079921760054543762797500833815337284687496923158044249583228789351840838445186562922315833909447028758798800638500120176044400003779667399972430953112061667509808440917586861062844414011083100899654610698179507820440713363225202452885204186829315814731507069980440581365141289625003347617435130983446464618888527960801432811097585082990477948342797967963016063884812717046270943517002137239527134050678521989557605139880029951729757386705275576527006982776052327731625847396117800438184815560904119729507121082878603359802470046331180886328618396058812807710429788837198522186434147040933690044559487265099722234489901465525627770186662910959416844394652916830648173386601086956921002111113764348652032415304103978417887342846385749772805935172752333428533845660302596465680221133510011348050972288105493293106796646799026268444994725240264070277955517721130891177130431668302366633503653213946889777164925223511306438386724320343084598595921872340496436193383703197954009181551762834918001496026335419920051826757789836803695751267127978258614069007388026658813153403504040299326789613228616959227199396620706295293330755963419061630036793102366807499776370421239358650224542334059059730937240592265895045012948520821580849931311482973214132340014343433945040571093898704290472725216071173901862424222361132958390412174410088462793502254840447962382591301307413306921199686842622668099809320713047355445804058343680800125015424425156783033753856015141651755422709564748212695975869157025449393834726009793385165916657954088107068383877386116581126151342485106837603056736207659700487789095188753684336310861471675553063434560066620986461128149494844743042497056893764558771174872217494337385033895815849879541428099124738613378171479300691641309099507691257955395310430848329145630209476927925629256787904707144720209091757177715623603613480348787380174707951372088750120092137040118927102927499036211907730269725958182960862383261786096155273647692238054505323401993423459864337119459849244244357078386343590101355185661906510063894695836584185969807827904272454110572020555195337268620703335802145984681652217217595876461902336751435484320728884207182534814351892859538483613960513008090595969960728272105934978842292944432515189033524228349795695667201991857177235962462950810807668668558076547203607272829854114403535289073249991773851064370427133700600337882065595252685061249207775170808726000335504317613160132480267343105550744881150901580263638718790132830998740815689286202292280102711312918426038969334357361307993658176818917310465988374422104726104582689791497531816560798773952329161740642590778406384480644216407948990004941393048102339690379946604170313369009081279405020931149806661652937474698404162894501357224463961917830353334719209421275096365083070526615763449009105834301479607687192629685393474312954003072741401230144373436097863801669173792144153764221652733147970636105135861600937234525567142983279892866006441910191042151766126709388983008396089875173499638715311065820857169731579522457033425777430721377224840960014070224637081914591450019856383240017215652331016518205361635498164444904328966530410255084158836763063877169071832481633357379812788471864839614436979639880060677745913617231251293066439219378191350754139363023958646833039041325156544419320215663008996499860227349803542548110095926522712914457701189712080178484886383482409452108275573747454983415891910785620095058932226715001820901093956483664891581798603625257035521043340985398399751669443104815573940454746987513922681999808416303602017030999175698045139250566799950650730741002839008870214341076656046214563816676550005892742895303256143392783166122310816198651605828445575005310528191783689585368728151333764772624409956993503204406848048794730440403877812579317689434354899507967589663825776494543709016854352211375056954722612333626871271113046114903981981707939052756495073756395170189971850380019374269088668791702499682783992771119299078467212992978599431666376726726881349596671742618860852478808517561075379271249885165493987658855367739733908811065335101910356039971604757713490234698977159218379674506053649915172167797595965952847477829118094182816409910831919556646168790495266289897701205709331331061334046222164109845359119337185107707096446023624306934462267416812997866930263221837409040523992495125922504315135505721010592139384907566049360261751274761697940267228246107000519100956641968612957125823809286504991160945054277824332264163640883686818417233209444557137821541952039299221509309128112245456132585441726347688997348399344596311202357731848855882577025430208966547755068652356251839515009928593667788167522978199138061462660992872209165701128497059641412105698785187672364144779490246631392910471497406071088411581417714388498352359871936103118805114933280142050457477370701808658180380941947342639567705966972406450933532881001407994607909974075666678600046342145345967465282122031225661567234562928841641622475898079715488747727290226610855554145753449933314946432605683179048625453566632399687205524005815957840401986699142794651532794451900310903165337841532601697485351036325628323749252415362692164939957505334182644841257609845404039387358420759512097990250709824802507557522639886052940037167318276791560759494119999284016130330024290185079401415783572216764227840621642006952613726537554847863772261266199059529258694846382618262023750974104613217129216914786904154751911359737087398060716252734621095469369300698120403680407083453157050155427048030086352415482617731755390289955247964834292644336642323162828301538291001902872224947657655570951118139806427351493789144569370929071768074873580259552796858132669558878661979608650430654424685460056589891274027326315260696771200184156525305679044646261588800079595822147299069422518067641074627602846166045559982048384985191456219065936805227733240130375008167610370071526828746493303901708399979215802180396059729304065220457355771236560532408124114000480427269520628066092811005354983992881589747316060341023046625249560931177555692190772768842191438229196592038108725877081242351092859652553136595200665290791419728665880309864999640856904303631803504814815838886530961180808831080891776243766733865912904896811550555108374861291486931613648136183297772112441797546784240169879826021907557656600211684568987150086879870174597244041803516714759884001022447936634506863625018808503545936163103327135191438137407980957368535143527736374150403583287618202192581694906823808289053758500956031709037467274539502102866589371892297718582594996061895512158275160851152639484499396788551951890238602188983337082226366409324522371593130419345141379098395273705399050560112933650543457304560133547155032225692175270260042621805474464945379791818790140886263495656173569232774393150932660835204401984409442030364464913699301921208574473663249172070142075194841328937694511672823524371902186379629210444532576330784032641133166594043115272950100610851836837538225972691915263904202883749438701661888279274210910072448933294063696168875039610195088078222729112579597660869926719357391948887213396841010901293806861605183681945314047127276256191989460986839742611622079165191221498127584629090936645199370504127996030950471760457183478247805521021487615856392943413645568820823569790611783673095036221247624484955236717555853943087831026546291532727502462714691687338425948957822980688081595225912315214801708751680084830813243314947751790624316686169989526595203499605881944273241129957115357211965073897748528798117184984118660313436325525426660469698517416957504435297798207353560968533928108957399345851770629050598686503075131615512482097316890923529680184574847086597430810097193873938251043532934777564681387890545322537864572080218385064584118911881939841465995482729300419375965177061959864905635309627861377949392964850777548516328224373176787111801784053747293189705066543786654170933971858021065406362695857645870703720518649271848399064037344357235782809169647240072265313727249338137413774502471497213552541827880395272368825631757844351005688498342337555192720076642463139412027769130074086624154106872562175792164158247487285066293041703618340774960715173862337572255442209927949604024782733683335570914844922454721974548750685384591360785232689594006041789847885784045606016230614857005261055444896556738481278477496592408124782600884493403420569218801360819102240704255927222544525891327554831130168069762916792211582176835939903016474415313770394952618512283430363465519895250214950870507590549686081330050403097563018043224704205597816126959592912197067047859740935709991444756012302598538534552777917790876368113932768822000977473472724636072998552714969021288252262079657109984715270290693758257853742567791901061601898321596238031357084613213709121443986230526640895502289734288153838099709858431630975442834710169845399771798021031637329275310072061713533251334758936838744553761516337720202985165029730235690031241636382250657668355692477194991992156557532005539627071047882609830468818727806983023583360205290642113329433682807108014894495682725442055303242867349358467729378949363854127204585577666615032044678386186172319244734546796080687427612369787670028003453782644091064866737203666490830572490836118075400734434025169056662882186100259841181640138063448139255250897024265528074497552512550123258965860939707369369234188465286901260771380305975517756560316458674882400464893046575335859596658902693204382674839471595689260053703114671665982963949532352994714692992268419508248007588897804680067119839387625932372341864389299135273995356457627931153521254248150824928365787839248242042765254129537850069865324211473627910075752582991241075162064556730292648998777116108484109990135865095798935513354955874265303980732636976924173490856642378074548554336401549419745963248597523889733858420936212146967504630321373807669652367805591960783572660704551464832083005998550408208178930231513650545572823062239956771819502796177881164246641852911218158110443055997955582384144190113723507564853071817312088244265709653930490269104276870585123704306263083072858290900226925541041541939984880593341689421045296247217731840944720902820778764522574827308642773919021344320703686138549274126630492699706331320315810538448474337412255022956068006942430344883375350539683129133425994709240182098191444021520546706833816841324506805541510503461167017665141346511949205407229867857576058938145392202517040766179580414122302816111589999167685875437101211710030787952843990267878419066327443039785338943607183857633839770551370511046753021823275970574690128340577201228946266870675361736321117656058855397461362856154334691604824251092013186518097415894766822958966507883246990900295589671604853836886034989475994131222433362886706680415067980040560757493695179634133693730531630196367931449080287132125878189408862264297871068913594199084671966550548726018759147914166339140092702460674057551721048259808937018797472882886816282934671871822633081440256098468770551210605226613228999983925010216775383346050860554931401161868420569476280368431586593014068305568526686626189118711311336374251718762734202276478611263113156776858687554018916592224844306851068529014955373080987100381080938884572279165409294409455609083743381328490075869910205095537488615788903791483319569012184075948525034777692312506068677954746062313378357548896001436835636108506290882262626530613463377087806313953777840337793306172306125920445888507912529140204327118106148940037248859571503360896636280363073107402304908132888669652492889249568190619359027034118861545577936670456175073268208572134467414844207844949954576055486479929747313096318189001365111268761361917773774876350676146195248042241205149944664102371695585890941998914653697674233651993680784059610101660000005972441127571570783163214669660087980716459707838321855071631182852070711274625913241082235774127661710975518549889212554277142140403227279990742699744419739453551460502881644231744563274754606481563468894366614425638165509792720294755301955205225510483477565283929614011790798846569654561965379316072032499024931480264941483551147782308186609398176557383350369605699636669971235248235282750971084749606315916860310457891168792389855053444868854453918379234398284061663219100951585545476558278818723735344615081263944811298348187149296800969064063423850208270402713963742864327605759225176128212971358927555075477745680226775358033498621117051982641548658680948617872685802272014994624765592604841207331439226093451463223298912672088397192362607124553963875530154803671343079802513239532264441247083011361900095233607050664608268903148034878177271001659076673437021619002029442932400799160652272924490564240405356527591457189865772082082394362163466061380595025210010474462544093417434073298243452955726253924152078659430117727275740511000318469423678001519314424449569474008757897316438987951941719160678268307873840630818932490530722909851532250522061531897536268029539245118155860989800985394256891948868211802898285153386419524365465513317181278206314317929293902606718785359238140240629519777460316518251459236352218814323502385852060120605512180176083349823348329830004478799034331534026473978443169838442406617452693920072108768285617506362794967099022795922576350105399244176385490314497288708106286291937294908063679390294492381425246117601205972239314380610291005763418816070355041820682367745904631448012273843431449910770681551255813812342960688382335872050956828277874398579905786726231333846305594338567478465834726110010093675525042620215927393315871931380878570513045815781857424720686434014172132016801228091148491986137844170376771550082391356452503221450116476903429377357414642964470138060252886872167091763779055426267996138741462058899262921254032738320056007303301710418716621573817963728073149076301819276191032156961190509168049936538016444861135152721285931349483272756537749966352153531973951094609468509929015813842354210640721142866646224749665166135696781321883580900114206085119164431892745534676842935021865970792686302008071919539599326194995834487083427911086475686750249709831249874856784597268201093565874508618997209792022401749876567149524647681722435414956680300739862725242236435211990076667928720182110517744062641860506997743216366540518676271958521834541145647815636882968414502241476020626527885353108002661852751017080197800548640945369906777805592513322204494063779387895168042190299463669565582122056344893736383886520173920733025463886799553456778307103185014961299274759369775214165255983442388532029243447129690172738139407691031491581258800842688077361905820113148172860463240384426082145578962826456943026177875095967725316429930375826908314938828218762949249381322507517927906589540665297357238674960411513734671818216053532166844911620933224408295504311947060972166411791246974987873413513012172970210712159715994885954919994077147199303957094343458717657138093573525290565187438450689214684085711152582641237362134040404052264186162457775471653232029766957596457881560451965793834165218961473603887631347909981328884630826785313111207213672993940872083762206922354008713759564237201749827128002508070716349742126684218473275779262867641666902558168467307006230745166679521868694407479166013400339601231340507585135901348019693609526337492452243995352245435293357419436165824078079936609616589561747503018014321812480476117286027523239118657310725678919647121452681874611805768166885503734883056402011894512822325117205172624201937938116459793230665902845829535291730446253387258863632658925987736215845435646351982742248626385724401639802290842357074043371436657547104871256444340205288173250393245173730843081659439409771553105952155570601451268239929079490670000590318262122486260273411758940796429349471932920678690023930634270588164702370621660816611269586114999360089462195230701031643884416638427987307324306995440683231794298924099860187297012906668114938765093681163587354853044533058866957117531051590770344895546447366882986980820765325911321967049204487963282974155710943537968978135048938966261139088166579212184567504633767628279246262858649584206136702229323846960232606736209016945343662303143329667848866065127437337857036136005729853174276905561127896389997748323212022286104776918954924285495274877692481812469835376388901756931734425962825841968729789702022009705544739195867047746853867163322383566569023656990495026606923247947534081006008719359075661609916244711456332919540972456749559756496655774274542264805994304675265323871779723377065598398735256417895442997919997104624173378104472607927762876618295464676529916509415745616676258349911124237910321841496339271071689687390089155634500326054438631969348452939241183062578392233983191006801923381728082573257924418016831837454125958951250768024225411469181269495677115830504302429483223510552886409034091613941477497576492519436930006266800408852071278242867831050161562541218479563124016053676209400825776574461058406195275186477961367931459704961533326650727686138011906818841636209133739631848278429542358832370052916860848100731547716620480603154677671545989237063540369155694812669438141468510900133536265052536047569365620387020083563106983088089774448565323351594129784684368334834690335852729591017351695170292216924632917322369584316441714274093675400736584330359580991769613387260351402901917629279278713123671332424556583891701442018502181501873791791147331656434859345389566682347956096484867913246319932705708264392297388774737591563562483169600245423131783079246704174280522039698236123601598486532525100983319104926986023246685301069913655789039665136260678284218679635350103716971359230508897245472236554941964230069015343362389266442545125137171122912108256557295668602367694788725570494119739029339483267358629715955891703665813684184867039529525510410366540860154712670900510599319838935322703690686575376930710103887112106965395210800031463026980695480210761376234583222678413087078120768208650270822363620455207048663836238549906158015806646832770195878043422380243409050887872210357935410861706351849575682193786051050530545426743746582175595325340779124389774994120730241276755689372166913266540698086856811806903458104751056929591517333821406016690254383650065452739922838223195172723387432694709773535286173518838277799111708503270887826693025115908457796169294498891150794807073105985993345533132976275063452914444885881192148334829936671259322087679397605039767676564114598388093819245381673415646077609074814327853910047730635541896685981001545958280956870232800708749469432415200974756104485105013708518520778125167358143892477756808480667453221712055895311931253485269239104738101925218075293457770083222715398256335743621953800990348921442485204302046907064901492864111617948876725293565359424868771765334013040143876263094561184967691620280684234943818305847487614283736365447884712563457361863033573124757227433091164863691331177037275306571305204024936153015101422089066899115708186533538621929653984820371249320324618318970132668771007028073546200612619109747295212880575031295894313425563150213420188178681703283710744794760098541232829861958439174627750716273275129338799318207475800991165856233459540591125838991998017712183805110334600531292052983469391149244262045551261242715000450450159804879673648973045492978074285414005700075142554613010100130615180368116049688147564154975698708411815621810998814039594053303184216704126747620629653176005062107642345522205842066918765888361121081087921392848876694365003039407297900371782023154289283975847919070670193465617531047692990870926898907188672499659425364512754358603902454169548747958688366308749014955469364289008599164178010046252007963199993325161926363773638518940818808403649478496745980950532709452628473652141370192678754621149601982993768642456623058246559345830643433403614647898744744938202695270743390578191598155171553767375943739814465792918199699880298683361725145311341253519875518535223953762629718351332002647981092931924323068439846953453344260504778684676576030091695037092883200867361563501014782974007551079170891100435552653815700616226603198939118836519012063319160496324454865130380042535272285808533704684406850023942172750729159169455732744192294533848864914791935244712560846340806706356918330126233370143929319317160518272338275500091993223756199600586620692602218215132463016204369201752716314579679289050548143688382681831365827280512054879503477191673947026761789500356098178434130424954132107500243478310785071061425602981849702008470445733080908586000812635881408211554766067679428034106828139243146084774430159072372640056752778412577673597070531767134673075261107715278078465605800510032833790464470978924338074537775607425880563629809208785153062261378433937682647289438230441921912145128984916515124233311902443176830384445554261900740177183750169749234440426039663780924356385944203882850053351574768031066294057818510784749162387257324350782717224963698590082088738256579027943040411377788509334360157499525521778087321962332823987814787698302492291638992881670146060702102637428823149859451112298305762486015857688771206379358529884115358636420662130856861202764582072714687978133379657333156749906801674634945928495561437464814901619181500281264494364950727114361951008178033075991685742783654253776012870701630899177207341900182568053794522176225661297511437247493010539619467450146456767560352145917392865579143399793174429044964243933712013747800880450967847515014640958419286380884878697110165137462732341927730014807210891142828480533594807374289619814695552556762792904834869889111606364114626342800943290943733619484511558549376729861638397456426987346545850516510131830389249403466826764868330542143327371286701708272462637431230621244518710670381149304023463704790594782514750634271321145463866096639165161642753714344130061770057641308952991471214393605825505223125774184590247245089305641011160128257767545876813503634043820514761062389610775778282117903133636197112291732676223739202825871447267473205821302426713926918970188059242746644205665241603902863885708145712529632137029694797337793462306400351956105594155537837284376124697985696983088048422538127744184683392263413325431830142105161281639296871240395075211195510542656454191149528531425101928606871234560776641894727051197446568941700020856705897910584591857428888014101752594190446067755545758588753599003808596207463464518418587888192081928070847883041218169195496004916683981660655297269098362309307284531761800588839262583133667704699795910552554569709185469229705305556791844971386285314659241463211227012104150607103683462920012912090605795858300364475357770007775172382627407661359592461686464162538874739383523671007075433518686096185057189094784123902484096857953999045668807682565291016855867388166723102138250831388951716708742312542534244197435289180733583141642461346011691494192938568852220073438682762005027840117547705276854981598326634041364548555959033609780735966867551300362020179799105493902318649568671639696276912786890020301477077371140155377758615101603295656777185192983597218560630929282931640670549544953117709023150999706430954281742685564614815664869543306681290419705070690572622119796532045440099296538836038486209543749367188742329763874014283014940088861962794966161998922519067513728528098026141076298991015226023953665385580203293768059102113274674193204427561939106875891678115039855351767817306918638250245664285466215325615696655108131926395696484290985723303001750653758174648464400791318034569100297172868635732374386366459194237373748206649797049245185452088149569774845860087991571968572564444507079135902272316354161436653513632688083819555991303207842093923111205777188433573671723667742249566553584673240053230711709436857414281268170845720988918931827095795458903810600237975107730326896216151362145354919925302906916778883850283812794679405722326009654521889134174158861551712959308305056541701052249710548439952768293517678269847000017276743955220613766414664409103970081915567034926609738056959112641525449150390224151826283612233241489941093618329251819878318314654903839976941227269374091252914944331537361523714895138811895920902326933815306030257128860376409940047719897518993989993101659319079456470015971388498135314863761430295325395292282243717901386242180056271087963737387001830036443406325590048103947193282939833631117131813809465939548163046307988035622310534207392987974289205431834037002850873679318835270412185573462780563855667310576727619961783179715053623871513231505728061043020437701921752888720887278841251641445191409939338560204503016600264563778654576653048911713358570936807821709972459172173352087346921568984819409070072950345593820241869020561811662120511501550765596672047653921640005069699456424705725525102462388737606759841223238750019124521199411993032865407268480983371761366984849714721971444065360051491741684210776573452297059939448069968173082172399080566916534333680349314215793112725071651818944658884401744178779136857264425710009237048121321224972398621764360500829289596962633079264955020599127980179110809198272112851298228060807837638845659454125438123463108501398174602390494998746454271463737106504391757566211346033505324794836886590110281466222871525422527780443962370801910850768341862460203971322089562364485820362449321251271412888387340112600555315558429105597866991347897708434472090021526027930667989842288537264036024544167068090424409373049194936223944336924642554889008869901106997253904519935524575660742831969145864838898380905320383542383932405371640787825813604221480264828153500112003284377063355578401900288376866020426097851787503377669386226060288272972227584898258183326898577924625226064760303556849652797881227966839337853392104194559415910594657658059935141324707390348805215935863981198434766175279770075569491770150361259558687167731480335833980973436474661103374010777321169801242555734251303655566977907129488449857722504071356140977952794066571468364035189624481358820123640849136961463592902420817537388529610759610161159933073541405623124566492575464514887764616363453828268154448870656183569468958660687319742271947725161089147646667956034274432664787162561750431287561174696733449064851454522722128032295294128935943100042711732154855614827427639266886576433097650855098310047020551128876134485661465296027987562071621757373293712314539200507474492751273091177446899068849717690674596178316993830810654499489201744971342353848378994372712244322978725622009496465534528991033506788252820331843484330233072515533652681906348249313050063517212041270212250022540343664242180814623196685007500805527252521888191212909924734899905226323226385129316218367723866230873366737236072866475124973336544038540599712683783864449056731590363608484327691780881555461775617098592592277390274066191088560099093778651066712680090378765844365677977600930917475752794080039943266937665102405051103377414834616074372781923478365114840390417996975243530736853173393362591978524393090773971023841742639872977687493687299679453108275442632628684668588055933955962985159470036339712811975061444949420555001852203914904176692163867254063692734763946723733134933079351969425159599589087969024513775775751119771837390196915177018702446489113541663376288133891549650686443556853762080460194497459041502144331974617822573953934457801213051198157508374749243609519552671869670009905931765835264276829725422241088165172013249154894364028966459804370167904747169773360310342473699886530618084213478151714353511149298085714453870890521719925074471483830174679329939396534715764791220195505145475263284452880358401441310240689421987235129646626992844524389319151257230032277196750021671186143837209983075137018979384268305473663733292608159906665017964010648838403242549761948761625474048158329122531019868580114854074695878884564035160404264832609540502617210238083182394622671614148396214501796762554525695855678505693552843453839062542687778536763105273940038482293390940640490342279103173680808731883060494575215812017186622698227651874873722163595215471482543655627362264266227307780222836521496541383803645734769171028431388166080567142496700505013810245396543185640427607310145896797031898770101695748254444054529586317243110700885815402516751164578207036284600750544820620496301584075237968465389289356874534297613259552336149335006753401340641848456711501774482480223157405549773427312566778313460237090680454984363540706553449643125134694530762959243572006023774955824358374275643381653072990004806256748138508636071353987991945924744071954177665351025061947551070500986261711097466322321256429974030567678467678504181626550323096756856745872191257799667161430940007441855048986037837930306796906890557842704242467257561879200380069069871099874824340545653673564157387332069975279311608123513305728769126825771432636290295253463921019516912763571823014412915968105403567919164704259075151822121031412763211728268983150768736240085791837104923515013155100878721186630701402812183108550954405320162353898356303636770272143068499138478138478699520923272011162814104693834117741980834809828189397347707164933996155284274889345411814639931159674416632938437071610427430048015906294264860261829233439768111721008903559631963421517560999227397224435347329648851631389308979072341983037844006626121085787132435024431798139139679481428679546123391909878274737576829266633917673616912704201321567953184687338665076728010923899836070164938476576587640215970088890347819437116622628362523411347051611685440026106674471280189968897622594079322690084290545218949034248452564766775315238063348380331855994781570541525996210163936935095528985781515336879714463812135810691105988823035632904182970857910754460736801901507567361846589835224634415182928138358854938950472952163151625590709038404658398879521318270700594765719148970268427197384742715335010354638024069679701861102557744834039757987254884871561990977656872490386462322554492667193002761458674537446929230816208924888990231085223309861465226149132491076793778680353191943632541125524899509769958304522587190167809407638236328472697036353871140242608679094154326845806334510833522174066594409744960512905887562464897429359226755233239458077652495669353963960701271463945287623515268289442579912768889005785154101370297411657929523114386975396862877713477360604792343567703654278664008244822177174613982621467519746617528314191952053265640828560235570147508565993229967074142341420424492686848810921058121604739703900778643161362251148823442062643008805513624642938288269577899631214817909670990497940910338111775245908790248344306164471049387459908091659360650231079086400699154840036772194612011971569500330545892306499671413741625217355633538375855972152496741469726554210436335372251323323399741245384399714119576417616856055157132169816683813256238640583334770270071558341205723954498821396083327734350367832947641355081436473061373135113718156132806964163141200891622354995511701917301680573463353191459468205230492927467427389258232599386636424997059612043328675934746274383644859165500024809307065738479526463651592645496028619381595827859934946258948493232018987971859400603532751557732787651144193764894835533142356988081358695552142728865414300242968936869557793580814825655692931214893537431166366794331747130562211216602854748806550332741225922661085212846551124159897297356438000495088720988673791108483521625609685102677202896511970126183439430711689447240391023204982124950270097722887664886971035559533822037366481452764866545856709668441983011380118132404255221792468932879567613859389970958316151803460082115112654604090906723381793203108149016362241407301225836384916432580351676074776113670506214843841987817782257519022080368524529100011861459064078068567862799939161167059392891095565618949418649479667457316076676187842239612837336979159199816165040553598574640839013956138510752148839624847121049041465251562575941961883987805133918984533268010167116894615936534840600069132826094981531228672347942881230479963290444812589050689238674990107739550417748825992796411662930630829808595534079576535199282482274287437621406738918099342508656473649246919609084094585323155208062652637459953698139990846305579431496863616160403991407722716581828172750914934445534955246586691164417611910173907199081311169960648784583688903393959926580765668083573570747767416628600662598075591657963871852600903366628624955962066901486237313958563180649997726077195159160739376662177380550744272887493978849990402454919972936127730435504332041033433519895494562695764567519781155931231729993704685186399955207507251452502255982920744505000930006812717380877635266679682883118504561082927891742100971217773358525441930292826345593786630016557959549664317710895509695717893060482329762243089238121442961493850221993136704752647080178925463778191336379703522606655706534950144120230563427461110147244716479320725973628430148422850872512305552823570461061418787506974798238894424366916775331381716193168591226073651711620043615552194614169393649261149842723062390672192004737508846904738414391559708988367784006233898933449635812232766041174984420927131594333232262280855358742783996955123665138798250573485078449327199326433112341497466043329028009591993659754136983808923662330322645276785304978090970005870276732807017910685794495760821854995639398755411515475534008032229992024969114879195101168891053803512297241545037388755577786484095123803523480996463384780663306201974480482558080592707371534964715140400807877421037980601532707999968573720119384367124064870212102414297740087095576395565690248868227457913749693516113970844878415076760723812984036552166834535645216853555789568010040460495563551467883616854342483374408323761825681659439097001061662708461464783432680598343102616588220245790632102979297669251518516751116586855437577705826934578954913255096746421496401995864323567738044437993070192435696937343610925068782369640328952047714818967897898120868475183443466625240902758909082088036084906021015578686592688552840542747722373573884341614108689690985647958995170634918865848371897731316491160066681900584756206848997107388233934930675423591112552641096531834728212536744352826636138927676687189251709462603720341307741591318178462215947435187374722259268284878069529541263127739489411104829321154022989993543160977475341493700495768271097637107928057357489155655612725740285838832758555469089651507136905344016041674494704304018033242699409840605532484347894213943339817961451891220881901327417249864331939800912560023363341179727357271833279875016007805768642107530899238648860299202180585508655367914539575997912427615429767233261086104730518206534399096046533912926268014183243586702622133268832401031937590523475974820546941062454365457573213840620936899942143371332316111846144325436754894271488678573012026859288373312040602769980641670264309562321269317321679773210939355607530277977511974831745165311686214295667248384279776356938799114656485410832231632165737444538561434234500275580069311492138636048131748195612736963778718320938706769288025602564939464980900353000023126637904544562596899809151520797908853026668692036749977331130210042617305771589278374416613067654913656838063072294054653873507921235728689897220059889814918408500431457356697287236262899160098243706452262219966552263838499258336309682661193199507445630368730625182310726090483649422669355752009664439632270540740775951937510840294930237196605623355873543187863360498733650481288114614685900878359394810504472340274075769585861077968119329549773237472659475208949530846616444915225590641330532930053320790711116969050970125667106505720500654039640792409501161954333033162863817164812106992737883267353367773330656882304190972406401518885172056613560919110646526444989320833984343614637642406562781926458008319229635185336626328279008410056031270849650484182096702769889102432687683492155786317409064039481028809784627473674030523257377287052263793782189100149938124380759990629913140797454689265856390589501211440006673519630982024433878208979109586734094536372784234453913340678594404400072950199955300909638549103053334941507701470514188911095389978627360211658435163333907746855826186849796386617260694042561049855921957102544687248029536457950193229406703493753238652012295465740754465681044837170456816873132810344513522872802493179992909641822552651662954804397102293463337100212890395016554782708329240573298631176846319710112342356950426484306681376234472133763135939003497218707873904094842894749726687792776664480959809879471429056070260672854808320588121984672878008034977708205808421011597509945680138771602032427204873974916525705464089329732853690602977141757104720093803987108515437504563046610324972961329841519561210397215781883871535321162385819533119963114080269297000829971544835156302211713876710629424606941066577336064794005215743231118399239367357926288326808894496765840998834095042897965195731920703877552812463049565598757388622264426793516443453898278227663780248902242191984337350166336913405562126400775945877310999444595818155359516267702240516054653463229092872724197484710578105988524226063320500058291496964869388398768981115590604656874324061371427249343308817960666353196170513741222443192352220419025250593138388082713947973938938682186437389633761372836889369890368989988252537205609561692873841367808768868168383016491940374946809850668413715970195615501185426973427982833324088959360235699897200623121441919270569209122938748182089086403717276385143554483747498992990329496979554064671089416907160568691120693871488196419991521691066275006867748747752876500895291406278362945746596777531226861144865588046337141850736782537549773633759157430660616754610411438618832998593223519226239883256277428946244077324186210459920387162817278652466591179344603230170584799319138886092674340517954866757181236446297765474701922500490441692326482222936596640173660927277990288321033753921904855313034817127608470057538640955668172143721864739855860522336469056911780487815405804310299820129041934532275363301130822488328595004693879114438783531922579558895161795641662657293624609146642069550443092687045352408294545892988880982946498723900685413775649213617806259272173123920201642460249942759121599430744545786629168121409898330920812236333983911242165032020395239710885417890131014860234234498961497144781309694192072815065259878280306566281859240697025454852309733779332840594504878606397212757304107871805527123709101282906087521860600079714129674578739226700970261155076730650419590636397332397362621987572899202317817372024477034660780622079723350732242731529245731969368289866794713686163732002482539923872620700688866722052358221468484708908379699557265066049252794966574887783358622211727930798994434647382747385629907745765739719031482322505350671454204780436724285793399025906492477522585083254061269556800068587695807335716485847317738413540585474432498464141530565013384364533372434808624084695929285722175819731914693800240495910077896562421971733545375405377233576353708827852260538435764986293347221888238956177700709758353350748545305485151857887395232400665531908105604981253491439981699968436681358099274844460726267886074365758673394808865575174606880230295387274708416434801256111213888531719060377344155590537986921375460216870034490022507052856086010378326220205856996994188624998456946427813160719992474151899442339809587575019093198918712228465715421893720445382852943608775462555620514773306045776203839535985746968270139672670901094006818064301651712844595058747169458505215741798713544605456825753999169777748437346014136153517478849369227174320306403878944002705462795565416283094923334782008067027265155798173220891032059309844791157269026254414123322826455854376042171870406776732382654083114620319691039170907611464541143106045788297032293447906100723706915068206802463155634051390867558912729390490190261812275028508214664571620743853640419436652135980224925289011010056204478506756031192375147904125661963177338182857901505256346019721817615671993458498627828113781719723996128317070525690683088800165514244861636175008346609408832832757903954354129265825776254506387519407286098501581320629547982331053041350432827934548921485417760184715685117880995122844708946975258572085604449067103125952968781069150616732277120048528795370363204403708717820790226409671814835075042073134350547239758860340436838829874997342704651310611567375709521113879497349247032896043671696785806181517199515826563141930905503106565260632150029050154465442147820454968888344648819385327079431748910064901295103112921299454543011211201408006032446726342345496245059780065962588098029521708166070887651228849133210968537371835780381915973516222142383733057572314945849791150547676626907729512018766995064678987686656648379206590063920572160434974668260651291213602785603541545815567188328584041220483145248647905650657506089783014876908626814021690541308457304809757843858136747338029522070801068377047112533653012429842762668498600623194337700207746211602124284175091431876491671275378219032361281954227643673249532617412402282143930969916185991948853017866812274434313890596551669010898232657885746277487052466303826844733219649730036932892958220067290097389698853983515263925900488866851152841939396576521598556264835323583510157353239381568993975340075622004697744948393421145488083191614005283294521993246017850979022058927719446217860191764353044795988607699011828480310461492799243042388265948808096551278762584530661552071010368649666814302453843695806609265512810163928136722689757094843585907975361632387378728954577168032798257596684355209229285920857609719699416516536917589558966552797896132351863336214317913146698234603516323529594857822451280142849175981235509399643258738532914148939231025544058856598901050337335981586281186711480788509018892862042619474029088545776872010547120266667327331816838193801637596499594875750338092224997502268745218975864191202669301724875215095603051958701134172736908456694377176195063955893108957935434806734870982181273687142915690866454773963517790809305933209226176702581002646193675557500183631303307646583278337889625382009354961153184635177094797180444678995328316774350855089651545144297590635502601032648566597530283925889018317882366455540444010267614852277795132773694910202214787719608027032376851145184138987667855538773567921574055998576766201746198511670746837359239282286555790123243973126170285394212213465069961326705482775487158230277150566740629351577570849164253187293766211655701730990726142169511941550456950660377514081437491822599502160102799327685862647749991652335931043201712454063471073530870760608651963628778907317160101676752880906980138830266878612811794055998926416720942110711352537507828917304738400014545756883523170742410935947180267260955190862099370775771110256551006621498317448354222023901022290427929588790924196810861104362480007699789788223591224789695989557673413307095849920592006936521067646795830714477292200082897018848010414096204120706033028215913669047226286753259025945893598396512893716215089702812130798785584008579563789067985134645311609900435255244092448723145287378328867652182607678865955226446112711122325955112104643046857887212095313555450801352221108438076941763002038717915034148492784486726305475404278376600435715284309066259140581573128720567942988179824568050034596318821543803382271232292326727827885447614973716475791359596114283440305268639748033010285314397288107051335118576579629977916836143378440651193507485639906591249838351613653888427540990117849785604946528490126718717993780378023783393222644810034445122961440696283450015059376156347517756771252031059410096910207057990730985260489524694770493552716756805795921993018712907961275268784280189905684684633230725245897559237332387081558513285538466325638376352871842973396510023952915279934742206486318417156439555127880860181918809508624513991025531690693964840339111080495846327191351706925067784901169205828116252994631536144391093513839692270444725300930247493859176975424760888255600056065892809413934665213428650870060824696047531506550780561896877654162039932017418436820526613627002058582644225795277785425708030073797742474164616039140667824765575424615971213690673182687121617693137934859466298510896107814459392760540502958347367804350565732672419195304622118933274494940816441034362977069023537611586731662170084472318806775631004154254287041303519745601995158398078564542501832312572437546872000092186901836037336622646537045476347331899018454393293795435450847181649947312047381779649047030096403204595879471439437096842242687559449282896718778447369706266562390046297727355529724089939882499695321278529321690229599110059823816233979714879244716418985072603468824779337384564782089761104233857692138619688595695642671238990375178483051004078486036580526712384706065048293208962223148857409100057302774897178934115442291501340552290781046803045642949534678564606710803006464975388521014691658322524229922196933741355189789242497532390154025459129864939393512605057954947029950916973065698745930544047063669073789185207063880763539176122629832609605230085341297872028897476099031168936310699976229871842787417346664994012179260686281570129694390612113201749819874346950298569117635382985046864879946051398787633926449467606199928683447536216997863134828678046622809526212793859820197513555881285269323611924193021034925395903002580626219060743217908859339731673873062442819917303091926105657601907139359993514913185564681654489819218285353817241327023621429134608902778270069640245556760799309807689563375114431696793531142256054928604081563413268351809767991641703656904653596705778254525911634362568154134877108254589662773504992499637806643084123996028717490524878145745932800123130958592711582299044716532462799368220561935414069614417688235582071595264382727677005604758906090766562500938608842893761493275807458970796504092034728977101124916135140812689765782338288667148751948692928121631075210853230460123753281630214261776657898729450369756918773384830346605700101168311188065819858560518254434921895133659424516323333961466435552023303396349191029179554024352703148429981682798949051421881021736701206188582653119291679546543115684657432051662409699562661983442036705330250493722860293759790321382990230391877690724805961909090063523734500537760291314234742036266615125963213697971812544639962464821802481790612589187861758001341498403603469111534017862243963597968685121807146522067909194847745147255194072658982356853565158333913734984382383763702419765751539445143104559487348541287739030189284042905607206056125621911797382808092922881678320384100949496873678373757643771836445526882508753349400238469237627756061177553089381083880551521193361482141901574778260427344944082725616507318197376771985785164164138785833512194564183832586002955651429834734925744239147678772435581204966004043649425788420121659715496943523697913924788338359774972129424691305564375067535016179838481401203187433344418278681737551434255997591105693711358363995207110099223586414825034915822625454182173799041783388331527026141118415589760552200819192831122421045659534306258843353565162231006288108036915877899163543249392852146836714670956541558388795682807397323974999924753920164237796279248179214927343887145986602979927238606611292665669502991535210594997887519075166199723183337798165564376336602012420688050891545718990579962518232060987760156290756313549376017212317309350510768878190973845640199984489685159018524753448455726297065737241528394642934184653575311486473316500028085097607985626218754464570042537510713277979041207778266693746026135525563036483721212795698308407791972243870239557313053442836183446912702421334872936785459134061167839629805340086442941872202428662367887835686694121844424451638452042863166855763452486898519282205924667183034710232146350120764187030624098342802612468043355271333248524603694658029215505741617167882613166761862338875801026161232934039865505088811795266411204517331700627060490646304694424317606706592019076458788922930524278499682963408200560656003888670910683610061341711680317168499628962015018160456383223957587046825055123727250260733429867186647369586252256097813920355947952776577974960959432938702584106134802874840000563370409426340320582647658173650855217223246892886795164778957307497504484353300124126926671565581625107180222092229705516730756596233009900952016153359378570905668028344400612057761505220430188580927893745185672766186914733002403497501646662627409565150403251159991562511088121781843122849297429088351961048143005400786875338806976713890116012286822647779980451940112064551327476781697306298995218122799609099177187759777260476796917845392234777060857793140724430663475538215892732890365787278203683387424144413625486264329246700270380679864810659025883892591130313835556039634921775424244608095665866760357798502196845540910729188895578453550719144061919446174142980282737179720762772372599132818833849696961532576487232734669262851907687828721118619008219747017499589775820519154363202551906121887561214698700157981059790564866666539970798295179454610697742852083566126310763594521354515056049097560300958041978139816929561312224730027453051164845868134910255071136591550862319266898665137732207051030173255252419620412044481505723756629961201820254697870473180454674740532654350030267080349554471713986268541494387748289983435838798449296837477437521876294753052107209421517850776584564625904565385426831881411795454549032564853845773364540129414944838294638570998578773860005891849093163016940591778074313268086545023150212177559760003794899291607236203924237043484270328157090003360497586592428018313255961816683396506314242879599122062076243206642799319431899941542987280941254685473958188561713980605726675093635372409660446339165526905392477661334875502018693483105594432201125636181109363157490628950064933806099241809336693498234878117480200314812261757859997674508457101937037078233063607939872719308933286578233198967313083642234817745958041725191436205307409949579514007245905293000351975211455625747996669312907735025431889085512095480422665641454816866246049698236111159214457135921771461693511103185965117246287156664256206274398205856794200087391890845114257736794270275660922373364943247485844219081835353267999917509671925187870571778599252484185727566180568010466640977519166508349851576911118822218782418229890453002748594521725177401018879493258726868760838517549526879684510681097690919274754975577826030307918228432495634088527811712300161689424691359526983974843231762075293574323843453226791041088336265122988348145163686336696633299355935539186872606295451284405299319938765247838161838214338287821752206510962546027268314204430889403486384105071918792868491887629450196441206420727873160901397578147646295766095483837485577927450348271973242158450223985537383621092808134520397011337683933750947026779841632021322677932102401915673963238163123837909002441045904182720928505215223612152955542535126717590297593571934711828840185547527513368378748235149141776239254182740137313204156411361184520580785824941676086018320497287510296248765486436361578742852636198855259277545294083746606870274950267402771431734042728521531927808112739498893200063249478942831730463576405098552138670845942035699536051645802073096945681060438643778548827466973737411870384857936109343749792677378202224395711549765499980194132346201035949032954868164100232970971468121493086130894170707711133084088910295860630675983894030074571114745794485628130151332131408563450533548200916543022877616021175974001816375914591268839928056277753217755487638834163868748650150916893452672985548928836212673848887296806950365048013205576832160150388449816835704522678719508461566886900352161780247032642629444263004360425609330718480256105726655298784739351176272041404890212091820731181431537593257044612476713056086420027831741338136301627409522130215145482690399730386580052171494835476905983216173099141976211273966554889780137411033177446018046001663005988678631390528275012054825088991177557973544722168217640799933562667690162113872010683471786095514238419459885243193409278060786475327785756075867205546453239957512781309510012532712283354095370484154314117174359617521885283296305863808897012262187517438058976858369060003563249182586014793018733652407928847432428020329436706210464780259881786867248517761038773609805830692628238461422017119971136070191890011111369650781754055175155398554382771861319626429293790421460164589952988786048791668366511395594638514583168532378807047618232765633937724552440989938137766650116881205455391866793952301139670911199124182880047910443410776205660582690668698400669769172227687483650854150604929085679444331280143247743551013652602591179279354707247074229610668719905717782216219691296436197574563975159076660394556328684080790639561849038626081230720264558733429278983450543634965338627566587817065526747625447136591286611827343301734906387154130733224839313445154122394231463116411788695528299172310696524807565387631139405632925564113697515608935546186613340172952839987815450062914744840009062637501231523584384714228901608430564389360185949585693229065676469662127998177097421948577276568762961454762502991349615745077342598771161795882762459266141669130436772432744077039121963789667024051635394422098185427130831978259830375191166699965877739517860888416634443874734931749599090584351174748593145968145040167560971347906157846720562691264801961753787433752382596511909520878942847214980070061205959102552949507153548042227285284476701226886270104705702149175585100591740128169135474545194326054308904545648709897073485821706309655062895010765657709374263812959512899916462169491586220931652523084068328343827859017752129931300438431910671599910904357463264696670278923762330118428195993302679288250630196560881644224979649494491297490100986179209487706221913148850678156964998701121243829433387186571411247842548223966657635899389342787096059461304960023790495073626232876066718083352409080835212609259656427106474393147978267897492975171912442376542343890055851835536775689417667344231588953985655009213358979459244300622051812936732009186844138725884598638030957354208421845137247628413209691553427728331212816731551940227425017414904717968515705288346199836771782841329549851434449938846945145969967152503138968054743892087310247157395827917804004376733425283736812014482255613806718736286651388826790524258975206318874808491477395263756847810022053825691586004213879257477948929706944453297215269810066256313305268148349684818278580490590121158857198136110914312542343054551085836031105236823066403577095285938491234622963913933861012640380643579440627461133859224797813840441752450376342022503968028387205737194613339599263732058728693468856367177618872944067597664473155983335087002160042902952597208194697533832715418821127286746396214103173147667774789150803896164889808294275771270988955515333717844762505790765059302826859492258130152337022178892630404561866131816927489122220590824071135593407088468667479311438595384943887213031039586011109644047097254762079320856173158659548992692075570959410854144809491546184883724841873178237925123319749120898707473354579220459465579715894078386439413601281938008473515614075599198387650892288826501631816278177532650963689850313997210777940056102553462816584223369633988770935833703382367499801288414183335512148516966632425093801853673033705744505200219604933784320337189950888088587378522254505024087923446727277109946315689182512227502978958873879231974072005025360761248166013379780285398789208319439372105181786800722682792040862989760186776672854095794360446664358931885837118313066252425323217953379645808567002657567603407539205560007418516854364057306544602436721658676751738113793508849510940496338974832731555013593886452860600818174101252644104147879181634633032851889719757407824098443491901296099268031545992749881265637089111826268031283326269129713658745253171492588282994201589340494906779748921735370805936556592376955913566212337759479632645225274298641001003038822135222672920313137121355676849393085081746734416779495035813560930644967617854235826273713704896447718226313052756232267957248950603596555724102847235234988999718952044739125794579241819621598960618815848877767020518753127653525807419080601615692621392691951296865653659041319767475589655351384310968292954808583369917536986699261471505152016392189921475882256378455913145492261954048670482061578400876481142948801398639159594231947785559466624178962032795604666203034641882822454978934488365328536932401136291275989000889437083554229183046124228747519361764331328229328127933808099288812606489331301101390119681292161420489146154572118164444465626447946049873593576748287786163468473282727912917412946228680014930747229764831862828426903399055681725139954266274015613242537698589915254757311784507107178080416575499049199925938463106750449028121719381661209542451989815334758621189832073033130265043940883997499895881387702811796723481890332989589253493916218322766600201237472056159662646634554101525010406822390000643361411914586642663679921577895632639105539831972748160748302485677720379256765865010686441845018734753342954111624509755730799827470243005881307197412403210641009240718663411682960032960901043350365349887137777481737852512717098641632981526658948579373855993180067312497176943272205024543615689444266404805550262746871966469942726849935585572137961683617476298114951332059562908573148226095626679630321910291778511299940762904815544245401257874746078220047983269935213908263596327706264716440517812108150535444919988018643592103752557157134660863709264046068436352616960189331953825373945659532950950717830774737360965246496602853252871159716364812922970253393324429144512346630335303933203848182198672817119020985135215321214518125296097781491916201519677876281605584895638437076163573609641051060123279054162921114599542235155834023995057313117672393929302260698582665872355616492055384701769461175431324319698451803344058307379098494032085209951003507360413201893098462616732650720549102642918143772975653663127444511590288435214752126796532337278420190509728735991794337862152008652939395198503671059835997295786820849584197061040777765076978168246893705948649104349932439355185402109165367659745596437301944424350819742103689984498556390036343459734345040094074898093091824684356733358476621144581518600245246392923184695157161270974239343931162779772794885502567599206540457252886165350299553677482021148198874015417668486303113784120440712587400239638506045151958520897588035737289763514462472824255959903529707628254609066016413367513846078266155162389199309136742855330101660982598128960435663943801991804361774744670649533045188382146089316201753833989072500978410872906986069316887403568087273028549067114743252401787403301754690013330263098004181314236507609983509408518192579138145731221951606214093259882635436118277479981368787937385628547133935549727443232009185993331870669443981281127563808557397625341203096377366965196183168951159382630912974538116547036264464809853716748228019814716831924472140599025347506397891558473606938555691546962146458605658991829403495815260489329739865472119649651547263350502914138990643513535300773014870836025240586682891908583476502745025844160147604739232260782102707919278216287992416881892787446060313530412263567253352993446075048834946524307238065827730586653157835789157850358384887161996073385163961793221133567548297843869001638769689011448705346899197036677251332930604176351068193133255484645418621189048114607745435862983389895193543948096215741248901499517838778129356048290977061490330291371652674669267285379952918801349824733257939149008174968432040315703948565331503850636902388701263525529786003763861773319042072086438343272607595577410631590589433515555895030673444691298022269390337886646030556038140547328909914153098663518882263378877970423428525065695292588359221125137290892286013440202229583600402978865820337221173552106222545659403367461633090869611386317312600739779687991191086049102630013051669968397848310138963117996367602360903576012733913931141908658059511690286114536533093323912527624511280207360119785928933567399202160120151749347623521143417762983571241067348025874040568290806131705519869910866053226514055064492035967411326836410156070348817828965752849905359962655806293409012527058033946199619069087008819742890423575351554653510990433187564227435928473996336940730422306238732005211088850610051783229154681804426444664896436052504526831255801802113977440946942346626669384468930971587156121944443390612425567194414330820056074241403231556379164193175597185521022710038927992440118916516453713183340119881946265455654315428125551396382886003077752813368978627335410482624207136311346875727031068524604226660981391639129871434589959836635710208923481685894568558679692493333750248507995313499689656233269397336647416203983084711923237097441017034094880311038882953417169638450536638123400304473003269425471421892008390285580842109138259550328219432510863279856429972265085717457229943108016045951413468509329960496014372401450398079700256185862075397971009757689046206915251300660895519010133043838743244620364000127850442861837144308242109149111963554271257899557866415648373972024298152837660233104053865349328024483455211663435320475187936768322934269324060633996568397987551932812991232077428947598862894070065216766985173766062937916218968703073472264703304391875744409553308792845371105469824995252112904792837070626602577424387565688759329083249318281172288501012988704837898273919571649689265166075295969724081618959397669461525585965514847011114997143492742565449618192453366155874040579047773056599979786618641035286322950376954025674181113099366036467166192549142467269187359138570400483011007089775847778009856042618539584658626956832959992272660026953783859808691735535806544698205261723066778947664147705424592118820670206740400405513365358967470394274888969035945726771073988408921801931923983932549914423323246904697797624605123945637073953636753116032281754745022306307575494175927920107558877470792146402625174821568758729763293593195117888077215251424826405570729832414548096381186304879073161352944825225856459033246556929329118215654390491785072716866678151771809881486241285034872883351213080671978841241820453137975812794247391797167244275035753749897319387785034299546983675218101147044263863302346089322181353134506119002628372278762816198087881636430099429101352126799028670298490801829423688707371132315233572059328100650476635515040621200276933931592532614086732873104918585662129128622215511647600548668356292467628538444300803938657827988741103875023675585573798372116141452477046361816137929867441577288925759881439420103343537274117464452631041501337557610676283804883531937223099791764995943207225075300753617783014571932135174635755102242479833991515256438126162281057847144222630513838478393243991008204703004916454112881997286341430095227219623159429568411369997327859283877710900810371454834706926363862716494544755649377489535797426693435133768154881071937275327269950463680102986496527340016587299697299199911948344575239412664855124287898676684475754534620374085887552675909403617130657634164900907457626659184913134930011276700881430465117346519217596845509332919311541764907956629702719278057913156351558630128748081341810903169960366851579783738104117453242915651797325679623645035994343559745932500367312949241807763607349912714218857643410268081548090727645704948801764718772396540753349702292618344278779936636239854424666674867189922693730527032299650983901440576723537893125669765203043690616515951893050139217746135421414598160690999605473092220881241250674580343772497847124066134355037584565472095712922751376573550660738604255872409996536007346022105421145106206821976670823205467350599883138702290334663416902479171752524465476211967203785369730228022427554886880236607040078645546135645149471044831602475757355083640520232423426376439734606245011418432641253482576288349201063081928017275901039050582351997954267116977748683676237885601520254023223824617619245067407350731492504534693157760884678699100846305511110651382747752993112571608234870085426245630648357737154984397507143101298679394710786654619059027085380423398515360216786365156472814952772225682684480150708901874361996137912845168211151584690027892595902259602127014505037713867462052735444149929351435062551222474002883772911011606595733185800721185288087867584035543196912343492155955026371684266646486108051383581259544249211367981323243160579172131330605036215695674003644496622276508000981104115020334725334044354936573987471101823233661432646972811225420534850348091159045313911923927207495159989613123301532762156240297843079548648576570175677925319726616675463816100599422191129210338747196050704097802951616519946709186264015324683567879614531067786614904404236224613246649672440317219259905723641430431323602031618690397741965483198487601701672140905125678103712810058020269999827602433300489572323842475951770623903453260437934520663919569612092582122420390508573690676058162993579118731845207148663607181947981200135727574805794165349553929205054347205348276728320620042031859198223304084983329535802776713342132988422041305909038268362411040457550818490578290096065501476028655506066919806905683768745435877415780440289111151776741650482750738228525134869682665258791794601085467038239317514493370582497861998783995118306451440797652535491381510435779356652626066058102652222848564022068465079724734069830773967993624603654348496530886191978692447797021060385392889395418952104570837456314663386206958642417367896835980207675664964814696629904083388202984112657857627248339291076935404060191868871843842212497875050296697173052685216812807649589435388797147341452282870019069009762134734487747331922981850733152150580340223374489477666533642916572996877165652991335426956117946324210704720079346511948251392497927618928349881173033536108077177545209135018023908606034874587047892006154638839817355719780410488378579807928577093777708674124413559947232369797960579676413217445417248781258186806592496457355028466968827675948927958427416620534162456869938584868097984762128905164445900243053963254193799633043308463978574988405813738463428980927447133119385972533414048529499212372194425692471249111631416441514883906262234967409081541266794509512282144784961354489154595031816463360726518845278941790908262116061858634222752459171384261028782974543124640326449969703333300195012758684038865921242673679676553024749070180207992489241130573527757612053981337324058321857236438979088203765060133364312041496530150968135506393313910341848095190002268632619008775576459283427841264392753546175047433967334510896489215317132440914380153384327404373184444883902260761663909990841683659210059666014825892915256685363410913924752284053451702207095149658852548561987886999528278522704770264209458494897015243214031970498466398399837768714501705261039518550512461523669670234479243072388080824574407726030909335529282370433331640762213325053630859760801514925041081338921031082188788882064370108294141460313750211399395071096820621199633877143112187880992106326633641857575273690967219736395521999998553864854812808306518537347548705072353365150854689743861109996089924471496452300446733061220256236688401612257435477486257188561146556477130714313786656598109940085509664350582068465337917727733590016082571737609531397962204164397769930100587750300563712160848520323260222845854303582692634795152744481898456184850367138441960255720754114630377833947596034429223287852794468271322519066780334409989380994277043278434818920580306445952518901297955643659205695639134069644214529630271731910724529326397997955727121263869199293602587519798554231785137901563658004996897625089643662208109445081069631588399758505514815124156928440771203313931621183497682773778580373130647869139463108544065957094065890557299140458104007059156498617433555017227609902808300213132771640435258392177487695864120716431157464918137600523570054141734766566024811111833815065049131866818807302574785249231327112367334590184694841111307120145203665306128044802225851575393664146013159720317433763322754898288387397343981804683301923665128107266916782642945797236769700758088645405062570972819975270958898310940196036602316282870752144357442386595920924513900108582828375890503449745213208631620859949144951360275718044653141710015826120248723262099261219903257713685754298543139700366420353011303641876123638937294716900761261821989705970791094527893706249908207087655159356553084104531768540142765036133405185709480829107523555227100594337799988925162455656692565140344095129884728886255131598419437734400165110701288224134670102487688554357548713927664630032903225400243638494597814435518097873589016331579814990102321332698889671116393587831554890407167078566631731158267510431286171472546430332341389412421673714694722439689022258971786321551659079838931113836607020510914162113871629312359146853567908234224838973050428153277357189475502549342253200484250778904034561529151708477240265815822235690575015259933125914487401888220840343369924610710462830331174294274619002443671479984094653229952469675006818299738766325650497329685068491189404260042669272560278219260627447561747451838939871147333909936042692854108835675942814095037028724396281140655745990078914079781270478070753751985082426459729308855311196186111520300828805237811885580311615127929478446943655307400882462403278780260697487502288208603087748791594165413742460321183259159120923932688364704158864630094442273153585882665604123869960655570719159738912972579422813679050334161544018137452360658080132413547164481514429992979939324910226377462657512285590797091660680130450332991181136845777583660804029980242157546930239838833071319080205791985108747375221888770515642830855284840704730179664796014111093123423701030372037247230176957177634417661353352618062773778260221316651178107548639132817158225171582064128254451231388997697251716382813286864887567580589190615773699451577684989259883840099049790560577805785239470445840432464784795339864062524036583008100067106443494350559342862623149568394048074259056314103998308334303927467836374894675376564771660209940202617636345162090860176461450764679815697139921993647042655509431304917040076053816015570489737067247821583926534558588584483441274835153443860342200669403788780739978131124367425791592019669573889310089071253141809356953628547358325706624374606270388227133650485056226989097248729668201845489355542456870792540563758612742690956016454903719415344463736165941302415534379744595069596659992649875640384418529838189088171787758327734005376678208254121457979950496980927325836467784826004261228065388724510156417741075363636881780382373046450339905462888534385769451143301193490339715912950588956944897396417565225125946088203425583603829024925802145545348146302342427033161004345659962669985594470002054373234754106599438755852094113593666079795608116862885102553275052715382456750991625913279336077594085076825374451955703197639705827533846039111834428000236694998886663904622579281346493152232519852217537798968235644606010521135907791467968508798264823607145297353663398220630989858543384542102253100910023962462100460016636689054562078160604439890058710600070781707115231182254929498185229015299357190076516152933457172855896096972074754703444798562071707015929549999226524266493930715617254613238131009366441967235122879014979375151735476357037886519643219029682439212702049927399274944814126336461091869001480148102508209714770289214047312663270784809522425954615615700348238659586381963484242203240530637205597696454591275400482418774622220157667522454331914520019317057369568240989626123601379995251664383409221455574642186698303343877256205022624526474407185478935304278980308373612177854045157569154090015932877045408421596498068277097413470906090473322668990229491281685652691235042460577105315692296414274555550330987754104692368795819189302046842597122953230664586651442667244382420124223510207937838546706445104501646210039982619987423268254578084984967453310368939511584989154280832108065849432228887657194870238282732907832312701067881128129728222001699441550578078396159031186261765583307199287655073509073988058741855983908223615026706467792663010944182473889665065854230997337576378458940760128785695026116972302019110644236905834674577505466383229779400261050652142705184441881727278366167473116983747057164827176805972684094069242433599698617716395946854793114505872203850142084715995321501839906892580981223978054452909136444520193810962103634663275341988395262252307659186936765835593935906804650533096580871911132352903725496322139127156512800222891418474209269179184537139843462129935445683239999987257530469973200230012404512719459978077700964689052670644932698865510382047983294522192831669482370175814771049484265554564170886764872574370777054051785939487322955579910486698168814124884585541250798613259632980001720201521353030476949631771179666315960554354658905667587955861785317440620091036053671142566309795588080176027524110948415556938055800700372493135939061658927793281972827190036645291405824343017309953910697935837802336381383487676450600947432115444257202626571167487744152514276804514020819632104147252221262041784279958956203893394623203165321791104439254951883283663642703910237363257087486485642260570146659045375766350258247558662419446545763538777989387055522531241848223035086220461706254660802668635514386481314831725318952353407416596611798342413765404723352026767565020817440777949966477597473872734610537906371950025770311425856920392230772996193569761052796754420972699084187266646565173816707693178906929598170925990611135287931554866143841911325959228001688390295847123752115700912943888610405805908377143436480560403741346847861979259053923949277505847812225410755096723309321214352719454212815874707227545289180174901894338969999451581152822564086398188395103873389383460588622553220881363548794335158470525454338844750128799919947197751615196278551511582821806546998369600825436929525696942677053646069249756785209514222515390779354209484506427052619289006595284741769779518297520885888511153636122777361761102751979213857890816292727356252739708533283075113416467605004537107336184379100123174443397939180536489795863584196744067486583184399566119643815805349461690871414228486563152007181950624224847492066194741594575977207963994521024057577519061094685867217272358343533383464442245107581333591013220347860681234063556737697617328240135635833669191619657751884594072255177803706182796428804097003578617908430920756597774493210556741617834995341891352136689653771165870725808043898226011520708109476177579886066852439575928364601293723086177820364786623855599102719531541455521057327695766112521920244358507805937675290609095322334027505456296324450655479553441682687527992567093235290767224551767952602156189875579582024741025305114361143557486720924118333891749942943660399850242254587768899221449105930168625324090930030761974238231687014857884211664410514221945350925978907814800860640611658509803010976994026478949575789147850553696561382269471135621343599867627686228947809469489411920379137657517279456655820159253336394558947774442994970230659449587856468811890786211026560319504742986678545494855110775996643323786393567704643421029047929333441475414113461068005095047909402402476384851670535458184637730162436201298378823021180628406469166836868784717133624173557769306173906270643403798017575587945826947532480646228391143987627894592098485906984951538553658237616667231011628917661341319282361878104661294716632605344529392148654022031790457404396156753786777359196596462765990980020220083842998961620042267464440105661096248349605215391454839540742042040350432288599200333368923196268450689965186142153883219666104619243767359935761837445182527932767802864357025804447282907409540416096986002555781534997998615482410169001897088274065840033585618494070049530705316508082616196903508343387570961806661897635562416963485954591269044386675307067526883898902353364322972018749320377297200517991527535390186261487990198800131585987691031259348446478588460097385612694497964439527696423084063568352269670501510892370760620081840394679973251592123224572847601647500704696567753009494952299503397750430904470381137093762866567324221837399904983971273558909045603780127926101216857729028478292442247078232958106440746051433746153151090906305933187498928498268629751374260625471791948962227494834141058213844959736604196573619036533484858861075375720388369192499415705205106875003472105734155474403869488371302600149220229988572582771520460584255740201065719336092164935157918194959901449269227855066219407306103969835126170937862163869345224477002236163656238803779578378174343367658951172643903205836613778345389537714978001353241524994938312260171868580136657764410085906510868591360890011681577196149665315142846558863147626205195634248537648595480128801707089175341049607108233266298255950264642775231961932431427708888960895424439835092438902949247839821901925777313952744148039914224070201894784547418240299024646629359090512441497007976917169175968918495419357338276574804464053932875554187159357873936069828904347865939439660828684267109504468822837194110743212280672265637014777424634085190380756310810265454618144603227102979520990146771456797185242018222912147905090644203899301111088984386180933692180722817051238930725449672693514080946312497588394109990449191266540285011459985453500453682642789768407156415241032529428796050881073415426174031160227162891252473999938219816376653038346179010455859740943840790510534907127785625618023443818360247156632967963406950924979687693790708382722492595557157304260503828174951597867552122087620910623159095175877867096102725670794772831147216979683751850431596409859302536901897408546770420417130272403953736730872430226789789949571024098134444417963345162976429077422668835430881339117353151169026895730260217137090488528646465056119416739750553940772091710197501967888976259104121067068097267330973948986553481911788900943171447644545381196128167750921766391280861349010651111807525269935998393385202535280690468849018875964217952405596707150582533260122160017236727963709411575309670716710185835059141372199481676509664229633529055200488716315309026489352728280610676355280817927035339100356280710083200244625701636695221513041809255960829451188346110203445824845999299283438504351513096933186479645679300288453444883426544237938230876215094368230205920165561828442977512996180664149775484075956408963848149459520373002674782894914343682321728104110761518971562264148379342168198034829706505246392451559502123099691000997489882975984915580159070255958498618400740400193000970035619935548726648899883296570011096881960604941214239470982728323858842320078316706501856360858034730371506674754158504692333900493349213033998044803046432994200247814532978685093026371760447806355268492487213038705602884201960561663269469456449410402774418652578903556224828637236521567674291138140968440542077242102560004479676152985864034961485038876787951685271579096153942714687832413720479669607693634635780813414885773655282441130349867534076693750742795915421070553422794129996886551127499040870944824385074693842011457368732927552985017423004514561742305233968561319402229613295720158469939080578271293540944489421646923363355370096935384414804586026608167013795314153191497839467708836719903188051795532720981036212487155874555465683902135663167545023586792002241972212181892390213502995216775166427246912608621194414051832534868365593626851948115731787372020403771913260104948236317609218728603121905682836610783631431613174477975260773841369405176218766214451921209215512625653316977609778062536993316772837977760420482807768492583391839550260556957245936979566855625365878220770173590244281968626195217773547467925215160668573062394040890895923165251924738723969065507249591794350142504440727789433941771121213108893116962903060976305843601211508389499285767351888550936780354014904796177647391599497429089813235030532085987644076565782743087778379461903493899872245130819906528798613954658720673879588274417487278087183013964894991434701724954738843678908500694988722238415475294932098893539454772065823953515491158953521325076854633579202689544360844028661976201012554156320772137165429252340902133893217345828498610871627887773884651502297382707898435456000630091847743230426890337361100100582888579400331908436908134615847593039743162749957948835771753846661066154273144092362003511842808873319268834110623121078164969318627609806250094346944729594848281764885391444669032415105624956234723667084961414651131337661194157557395271327492579152543470678274765147945532781889469503742875893999917125561203397985019764716660480154475557686880434829929335861545660298442406329774837525478196842528621626933910634444307236919885728528007483819943432422979142242754201815741554332424696327249808837569306697242408675828294060378223832420131570129799336696613418197718361886756002167327546982731402507080741599076820901230217150754064979520306410125149948991382174482009131994365346560168508799463796458009489387085610255123380564332320506868622262037721610641091565936924650468218573792529279488548821673678354577266580801910312947495695182181652927312011137029431222094978292577703376073184191633467766685109737611834835197025562800243026916880126481638120522996109817473959374177921607310744193638883943599425502606972205063142933027586096197313135423708441213858160119006958042683090226421852243874685053921048071135114723375185652444576323645683517075060329902447883110399608362579539085931685372453970793106006733782262596937588590097569628780748160997387142720012149289447199430178388244509456998017667355261211575938791798196785561401030289717688989820272176325072437747098294152702640699077287055747021892882747995306712897797973739188335182106519499851540576852058878428355633203376275609052530656061430064188691689843485260642608148665148144536366695918320342733031562087752739990149407570261693696854838378809752286713967764458730586944577360236375919795398848571371499239731211870605939628524523941584114798514795355329215419990116066559921421596594816679727731295904923084687583423854652887002253006273768564798024583260953246235459803442886013421632903384346443153643390739812521236354125320030021364643946359316044930890045794400270368797977190002686899363040463256025754172512469754898969852534335940265238396375651421889456732195227301620347631666076734643454608330046896524336446978903607248755167848023698831156505375518082644669649282277136692521711491666504929326927435335527939653107962788218873427166470483287207172614213517031131601514493123414766691601709809498218663035876534025793854249338874833495738725123221281210920072607865877930401871976609504091951619334143371019792677834420603671280666959354852467789320864634118571831824921772154195954186283981948150061261800937443259055854376199135537780666679294693621908520391891895114341282050766080648135095994704452171341856046071389857913615204039270589564035895887330232455520951065214747938454018913143998236787324914035631326768715757663901238100282839338522705046355832921808753313654679914296507185305693342740202490944914757924126703047224161177799045722585391170398271274681946322797134452444766008231018433770488559444947013969161780109365790947252713464211810573570724292028217451885557210694280581709382191567958831451354857121703762778665770609930910111219227091236281569061713279678928848568740357034529107726647947763982217414164405770831004683470241829049027533720410809742313836775685372581634356336187462383026238345844993055684533811196731543600507447781472433111301490535456414232005866777936447276034675545518747194583926888872845328437330605618408085673865745187767265838079466814299304098121669135948705782641340241380134955313811784764262804293262757825121063753124533761726332727278005086103793899898276574062028234106216908104656759660141794219928564475590928219666265529761507669463593632102836891974435616544623377855350614921269244556891685980856917581005192862116545390169858478018528956410857345685256586504638362256287926825964754007158232716481066222572923622893915668892508444800940061242625585077975763964536851623464755319170496639090958157945909402332935248133165174074858241489287653947734488538209430388106958452996216780495056576077989484904131622901908277804279692546379850641101625533474942001796749250725566555734944734631105112798046505443710881075240802657975293519180032474885243822802059305949633324527092642981595909302944787423976127827652372014405419052868183747732131452319579640036798479074260514731646576282157038984690217539695624943074993503162449816692237728142901342409398633050278338836422386914014342142666390814718849030046363843608587057671699594080746519741765072299009159033302340626646602273455557519178357303877126240889221667617433829242616973560393021993050647378097268134887054641553809517399024409264659911460146038547522005024883247312273144620506831829739792609541816815486259443697856615111054786443717882979453433999028008595438364451474840495366355418162615837165373078651388588803126613745178610621868980749980986370607483838909626541155692400615031328736593371472680659176935566503571620804021617761875630529397983058526413462148225892036236728312600861314603513303618563968266260479358581445626342210532404949705976331794146815057679344605217903368511082189544786089605965115016650900067310582829083762904278756717734438028524761043111187794373715603388890985739006075861725399660350332757721108642512639461934273376650553956522646140703796536523924655150329031151509022992480679945612946101299884686563303467226688838148396533755997311945150910857693058936000033783797211774234073572208113246910224528148491215887174570944264825692949917036190788207973864088648133058825348951909064962814633793474517558423613275409605293237378263954819134038173122054444559930601938038625728632014563849847065015828794491603835040887849573267661834205471397412799933537098972693671262518333983324374116944458368953360672728202616403839820594012524511864600844609387336173522676258702323250659524164507928197502736926764800562519578361347380568351555544219175702982934159796722840390373229826462544568229507282700454588830347568497976459622934741203298168983359890107026953054702821241476717359997782866966020151043922808532467165971000924300861571783235779705868833649328241551602401442526274981755595740734446749479435686394563770089212452844696005585974901505090349942833977465291961477014858965001219697895241768944843959062279495437994237047751583558616791440958675369280022064254253887557491821882276494955208374780961548687746516210877394739932772591770246173018843690271649957287246333517671582987171896165203291846714448679579575670321318388293931178184124403147203808506449922624697011029843391985409383009924077067435889361299376994680566363655978824026409849503943079740853814687838585920629633252356253263821516405442856694722507314195125560155487637590497176539470022090556047746278690808816824880023446240621400977518034778457928723768693935138383562878429003377220978138048704449665075480763613005613859775338584462712446832970221324238276409745138361481544068316160327607352012926052075222274534846407185001776539656396230953731021873102046438518739658200345353286260686864820288493307201937810977114186066192073123718518724850920922083966357285749928296662670378980633249133943829086589214670148324372158607292552393798313497152591501894559983217576810065967997031611918780031914890085928541325492185264635460268697568286391375808872777526529421434954689766564635221966781600432204561900022077575493241645158488337738224252251975564751254457096107478169037275031390385671921925774743997341924421545194330801550570182626450152299738291930855351744346805155552721899239796813152290653396586953165247823143411422170694486493152485079231587840909114631653493418300613489445270644475274832837476628629230300933268318801853634055185083337585226712551520914158514336085151887519730698191709392377980529953105166563987402016198664428760230157197502157314488455906883577549163131207582305388914298838766879334446887426734701291846353748276024698584474957691153919007422801271979243676287832837269209690871155075441793139817115577995641060927009645767625607359450538070536758448968745581565484138360282397447429334444725582053913364679218437885205691003158670170284998999878770494089171690006879573745175689857478494347915142398809914138258457176645000901849888523048463928913456108394733949289220533559284136795713691738419309532585851566874592516395140466570878878437165137227758557147721953658732458675769519577955942465979214151528415468899571023971359910491292192245378347190741794060587785572141465159592537179733478453039407945728356514752659679097660320805500683513667851598545242472871457068517737484250375402030857804154581009123934887713743943929373138712775738185050281559195530620864864015211826291038103107159428687994063695987346085563381320111663058857256708272318583382423838638493428483551936064600970739233985524734729352621347432838503534198988513521080275177961434135577651555875548684223906437774246564588527358684872159655546520734810178348475282080880541085831676413949822409825200950420538701727763792789885517342267040561646387273305829862518093214591407890062159055409157642962175660016052840368703624615130484721628848343994229252367054950309249933975379289699615920798238911612834167594173369028607980934121376171941509506172228480977935954480079719415594065189474058372484316655654830715870170269938348477166331791120480134151738537271072667632531814297354813841736484985988933807738934883090908865904284414654349874279696389437465265865173689889455544929844337500374383590311438584409848141319133579944586599282686193070510018050782348967428067350816981027748842953028572632758185051979150424415271387538546143628410139966630269522966824118897669755586774460352099079384150567423834246813484256903860338023423547668841760331395028253363008388904073617144270480716730553218712045717386682544072890711136039291798132245965166292556899075315584661697463022430045473333466871638229424352242485101148060626543030121201099577908576752467928812222229029696763946069909830398980364486924694073319212434075078335589101573674296225380972247994856786439952406574045933949033916358438301846832573865725159393271910863550894043773989054358798276288500132018168752731909317593927576310962105866706220569845526097314417965146576724753310741479482851559559505551374588576476210056209213845796820157419828591761048887726598576597004524946630176788707842571888363750173058241928349968944290848708510553409810923539805164920228237952960953098982707882816788412311717617857400890348652586229253580455519674968420677430657367912000486384513955864423406615862334937865624018815537206791561161956512485664170234241233342547561510291556499591525498967385980367058082488268403972395520524981618105806067200869152435797107609487021461137356563449552419662916385882274898874762587720022221921314630895059764699242179827389158458951470627309723807644159859927184021985298094869657795756622404027398886881508616743852490617576275726689133677054408207993673955194101343774711760699802367279232461247034155059095916100937060278430301129053676721122079604404677911408371753770216996368818623530878221814874385802799546201037145532731734594887691249072593634100714882291760477476638923266195621494216912098966681075288431584181018895692138514083414208467312236683157377914175888876949108545625866639304479803817913912095577962005133589355880930073666974006261506761122948778361359159271472279704967311132151386382967583882066663185106122562563918047449656651515993181494364763005158520903867528745987401758788070192399689091447274431375489198764894887410316277578245003646464939971472409253984000476501405799354433212302903581519122652159410805866991507468348146455199114683945361190885572264366053045521106579309146259448995186310916239330205725547919208569208898410048958460532535830311538803526097774809805136766744492477536239257865879478204974028663746136797980309279851410916128505670313246707816723014439016262812335358179265489937026161054815243184202507006880931916904480726358533038144468336335824437526913298992931106461162206366617134067836769734192335432286852782537856653615906713377560773400049184745901844480388895761203298690461312795292511607140631835700254302471368661796447876523992829187068069820140703671996286532603434078693446336183627592915677412060856798364172094067355047147758894555211866049129753862823905843665915587037529396050582013454608260294762284470171160483001654820895212587556825177646663656699649259631705082139174854419756159929930736901913933010819870495636353190423022702521646686739041888879520099308314816876572621989944175502478900689863747968865943723316007759201395490180958832067171092844619381901479505731434518415302291991822508307820606480250585468017789573580110574936175979688928242036145416674925286290527174735777283915340296870727489719990998388743206906151447355779632487591053862120945214058789425358624227143634509796979679395951065091987527656977163209540434156712694355792100079183822219801738176503718830405582696972794791198721980139137873766265095094694376670613769819120843018641127438810068784438091951274217354076516134553603211994918998975068166720438196041448921400810758660670737319203692522166131235882279139855718557813434143543016964455110018290808919735104482836694890118835614633129725178869523415597035418548683286683533687170545572926794956226562135220083248463025412888981602661621431521763771484489602202905385566559741716129137620024562294226630597575759937875954832785777074563810487302207149396888298176215149316203898063045323161840282249125755639088094116616284552396850509053746396883815248901706241806062722917700175335534379472466606966854039261496699664102661857718999477608952935805383585626338097317355126625302648830885826226762265883584122636095708703612900135083568098053750388773274268311812974288750840474235855573312474893108298847067171047087520586677739468346095893596530410778658213655903519061331416479624969718165037201712167562902437073151954378170077577050560332865834430344415811030526291985691398142968947322403974706453327428185902679980121256623834237636633174377571036420692396433748089606929138469460866422158518062213471085167889642768789324136863586056274775753077796608313635536990059804864269026783978561134461746058577735932760737037160266804478597933332142012725219425801881220244505990243691686526978606357844662251181977989413930527350146969594340806834645292063174382819462943695836968557710114462914975930026140144093725869479734153801256782660100356221064526829289786882647632511743823134102256471738586499568079044674822668961281628390034132419760753847226868615342245436211512344474911868696965600299852085926311480850211948088827171134480409677786756008227846267103477496126749728765016419822395341721300683440453768670543690075323993565513605839121272715421781812358667868708091584013553825789321678984948373200022960317328350041645225440756082797930946633935717500291578578755396289733426312900619779043433007893739828537195566828051666405003772466937310622372630545666599271110554235834789500783388167150475405355916126946090445123776922317243483149732509519440168618827418909404799994726069998937004709665563559126816602730679590866575775209545313199242764003138492726117064642685335952205959198862545760844719342410199391384666240136448941614236148134684493769405693896507861649126902806398704680941023269567766061596226726218646638288622468653865121442055796020141732038360330516442763697390991757297418133663065043913882759503686035599837972381074828201407855354399913057909601827607854895550573128538942961581781580774584393003132617767886494303638436125207941545553278035510851823917635749949843656671129277820692889111763325721707564285246111254197414360083016642926520665176744729295980024918721385439637684922310757922269078762863196860884270461867615891636806434521588070675440249058992853863031516430771928842115327445986056204555001289584714490309866494124982498476632560473913278537347164327946538256657649189461701351128063905277777522443230999733970970292956514477987682528270524924226430254220871572274895576557892201129410304810038476790968359061397746137141201462853334632131322644491229531155495287481660641956038926267956550856119006599103409660934332198409976664138880859336104578781663694819138269871409456724804727485956621173531493775767570071696424106516629591844551951556558028465183223680440176232046368794980181555701818944103475349231920140094439243575827944151227435175557796181692091117232356267461564238558832383685621863127678856435839987945537879336921415349117083239351718339285882170332182743638048293292649177062866279071551298490238909879348846567923126923357054012686268910759148863097290952315693091688909689466588795580054528072959188040574774853308928202434877755542754220375409418194407106571375960211465282824831141391004962503243470540810427316322770044725399675967944813829003497134072044887554665004101408844880262641053461961488731289562521568499032149174072755187987191351225376835239741315849977247420553395659596102637602341406399033530780869599107419232428252804883306358958230544040072304553461947078956981293067985754009729765580828394066625754510312854820948355751778495726271438248209317997555075535798060689796219284735461300703313688779209675534149104592120507025050372122309529260937093982904607031538823101739035945188574052810613192552454123630649210485985474101849854304589988137144507083584468807022382094195418095514663268227295466093469047279403828388294332021997108924924560143879371698034908596136710387112711139398218247497691911915557142535855459595852343885262677134393491389791152304311886322068693279055209801734274697875749284880658424779672285854211234013800096064701567466555888056998652431753607019762319659872784592827459310030392853082704146631203039485094138659409755306351465309074773887001421638965618652720044989137518625004289615848936926425271557013301820739747359472473115764244696013055736206140454965303038540884934257789351691766956664666945587289160389032300957486591779136744851412865219222421375940322439959110211135635296342517301663663205839373719812018074040890730596001366050772693900489121579167173448644977046088516109964779695614929146321718117289409328268992239944130340976392279360418414408562616015260196457070506344585299454104167471473188669519127193906950376479502392868579565400084349290485080422241997200824410002388781343375331235372545752458179440577183294060658380867397069240812358945488109207877988116908136441173014286589448397621084278370325030972979694732967052667413554889140014988474905911445219924227922748128418268249340439503452754625353905456100064139400664827790188707830154790150612999773780480655992870426680731584558593737108767041649065455429928738678634910516657173049304639682112120419958050201896912796624206333452691869589242453454490925704720611798685025443612600754983097066324401377147780997334942601323954854479186838281380390202529747996251857297399765230281576719633697431842778382774616252818774066803701174038225908537870858793076484988227525184475301694095762311829201085223002547869668202395154399169871657803750237032125177236241163925729726884186753379735819830541689094130309768407636153786162930899292662910226808278182127945890343806935643387169589644236637304780327492068860139945648056182317805852333204330935864197113029291973354060823200054604306250157852069468509493413806689742697264972516615968413545717888142021885538459294965341800491666794367541595010350858195279616898415376298837005707509692311029166082624367424218233245432671558072331211768188349422634499608462431220916223769152127047399346493336293390105635966194728678330103234508242633798621146712065197835853324744329856157246883498602867872649172541061192334454715695080723335238876505404874160967360491895197154888512815219875616792659086621453682268743376763286438200541675635893304725162653150014306452979138264451032339909734234247716461172442381964184146155686459337391159229770116727917799355616582428523687887502503465163638822952322005755983046689616337751394336631094915316529566726629795365020142351661684969852790937304890423401928486529648692101818697755633678697125252392409940451171239533681736141173532169774872008874925395622888167137247989441922138178028634232971821382178362318624952007386203415662766637495891554141230933972274549376394410070273737367909754239565868616678401883109250299700052643207390883127518250413755898364169498166167810712240044930641121923633581655766338422258276098970312650676268818386491979281080390771202961280007003445945329000557248821752632280918845987810819028016537473705249163252260325640028204989743012900912945070537820731286329216464850918801792679690951324760501190025715743425360586916267652173348961535883029680502618015589306748195438815623408826876990620291668383902357770178290684875139960986212456965258060246123384703775127350059685902496771812499337926072275134072239137439376614431383026473658991538232036602875560035995717566597559740916340289111125432066890190719437660459227330384311742957466354573317155933299776514869531776306393805149813171929904543325233258650993045921655455879894890952567342244250147623357573087507416936709331532732870193751567906801988299237386401050706821474269359789511037869876800709027529603270062567436789287176491456347158912322588698216500815406914786938555802930614893132307424758908671544382407765903972033931135519330495901715661868786803233653328423164877333884874327828323441887441312231507807523312555772714961359123762561504712344462666645677361694629019378061624190824318028700987415365806898895601479158591197497191342120879590217747232433701189582623141652103294643422122571405602123904437937159265348403665978282404282163713284556506652150018626311372917747141189369485054152066302597843372972096035348321798424298549295833653781267450543482648665456247000262693740345627707336827827144358791544100846869975801530077623766418783804526697044628049834450506380493574491648220727927493036965243514798813055384788005169815361599111699448723894051192025513531659584324044405439633684620316662480032334364317087013727088491478548010083895052086402320523358607392449537796392329470144602117780503205152578534812207807130464997023520864874454936307322913283448080755908341072046756017175399764394371748826377704612074615810730851862269133751602260110787363672051605002458854085905494665088970313554629932392854532520534173591575916621266929786931262554487534950008429715696280299705342640870470295620164056177302099655398789336538504950213836146939040051265829481650104766968503035726780247387649940011860245022707631677307862749202411686217840851374907253036806217052266711381451232004772689563191178203197687928861076474236131757577235456230607017764505080266567169791656576150536206317789196246527847105844276671644494608478423309923366984402422972506496060231045977077911950308311250266186789997385388532055120272619280000886382432284226618257644817189007878060552232459307283624792780681115839076769015049387022030938711358013995704434666344299396511636782862363022737247561855611242526941065710247546464173145390996027195162629445611463943943538434619039410231879533733992738358031423539440854756521673740690979590857030122842294091415682273751816748540504606959522374357972796926817676688655840602600441009246236543380940305305642596240358121762610391831191495564782415551409126010614176462433480841184858961463436008029111551115783444731158519012927325796789794694562097123192410083805588207043248238353608768723906281462757441818964991161192067455202341530377344641987659365574994537230146650787966983498339050599689400694358076941161637758938054378809522974922577797707829727689553694637311743741857535252305153229506387696224126315025420149448551243141838361073206546613513562539183916270637745188742271070503875384714034829279462333621773596982046595322026457409599369115193413585408366635229593518102570475562663911577751676236081243677998138054283061073235177864938394869957587802372332207130046639635040782582055394198328869368364359027705573305435230633349245793365940292532916762706870194731223766925386953514542838415061421017842304183628941697576385568184792503022287152977033555468398406628539468979339807733386340002653742433816670561989134778448863992463940773210288642937200642693976979200809147456073719004955398921710371919100117761664441371727254400094435065426435435253891204067437206792088951840704684111211698777553744000185061782270951523518022508785883856445416526904262565319924359097435861528937332954181861649093226462435099879438580816713096287433370181512827367349155106723515629904930358664208205828256038120422931306763953962497269488759628781532103826565569650547362973102581650727526409332816465995562158325737007446276709090306629465096385096099564174746798474631348061088807047514938628579464897296214753686916636659963653858733733603556296908077427530088589131666460007261732349098567093942617745493456042734930502652169258613048252072505375396930578978180462081629313023739206770346993206408768873454720782588475467208780017778108043466852552358967263356296383856451302268311147997902984037357721524117072351144048750380206452400926874730093329278260036152972034541180490375998576400435377217612514735970968424829582834810429992496073403691012513907095985579342086978856863235684594422909353888881090457533525121559155120930590772876635807349714525349573075430151056111245019708876648051716025938069845246408255177949438253361857268678240415156133169568211028957572928412138688066023183550816055016390486880815149598682013159537495062502901513504336701810862796994478556321886471838690527132237040028398348904072421616086112830451701714943594716552711617801872277539469168042561639398913100104100902632072125502452993738118042375590310095437511053277464155473533074712158407606718352358916420009601694950541450438865291170817621897903163293273190121226304308184166373010180406642126864541213019734475670950963372788963078088924400210894869596585423149588489668570982820166815442987030862489488692250073544603575008365986764846308280887620418749540725976003549142911618449973715397086664856958518578683657723657293316908896050157747920275737980754509596909919454995549710393748492006437038713323877813378037468696529027968704134344839561388032292034635032932293861694071985555818430974573875458574366591200222975243175032611173203947487197378773801138091601139820599972664473878155714813502109566374486019831851106074574869633348350575004632020964954760973252677144276200813574007630572243970795964357459904007198080483251445602930394778062247766662771983657368659386589004212614570603238536479840103295862696191893006744832225744522853622993264050207210454715437886516488632854205234455720860267588664756504509599973054228945058721484464296869405253071659362508145512804161796975825754744143760657665817701488937088033605561716429154763002315123027524119643290205817448687102342452877607434186855227456311842292771791043352986932890370112936293040132632812104858095492059630148303421344204975265247093166145960593159055756229074195866100873616083850792972429968073903373228119604450758748397422776228244148299140996444238945186977431493814538068137069412444538069889394151551261174006471486663661566787324750274849773129690594086220139047780467030215161533734486921548058634583111681850056193256319050376303446576527211153261843140289847373531114818801022833276597161546114590657681025354069726507577307369922258396053782317341499322897748534457715557595998315750015343690919337339639689785787651793226729615184852542789338885071158573164814977962998536061194830340799674076861462890271271940156811225220611718893183513167786386226113620433787844232365959072439926641466144329995948653870830836947577137647482283080478989690963447878083453038327747825809051383613482934739512386525404139792722561516454728073612787383888611859149212060693415025089026564636714494627928772256735161397770137457383827958548166353737701564863504243687449751179896542324194963358210357217801187852172701827619663851923844557424283046132107372031829133082776142332749779626879415504738084277002392080542480544646528132273706120710965397336955909165514116138763178490819184090689515504438053596263470730605659486426565847625918231772022281851048356734618271061751549441227787885963842523783509298771871785598708791119058776528208707480710074498280737647153463379346088983221525144554121848301444481262990875334626386352784705816783155144578423992522117779812757085131757675782383165635739650413573186223512255496030424172226255171758515685416289947955044631866216554310736233362249617895163533197592745410149153604297441119037084548020881818239238005693304992586931018308141814538354061355014052350978794423672215713874238521876613909316762456401221463922879474822074152899316925249880105141708224186641674680407155935515175477537662190883559748469422715781223773723134741059279647293837314542569008469535086893560200761418144542086247789750949901523623306288798840071520141239880927114283943572979838330783906621162475363563662024751962261981771014962623948605913102725998854393097164766182481932411563851483997223700472343348533559112395347736838837043447131804380253410282808590327357127677833372715832870796690662296550564219048150275787672016073132480245871887711995701652485699838716044418339902941026465329752764223908591847000981718894033963203568205750941973482511266211226832946929566099210174052967747834826951428914747886120997262426297803902678556630045809701835054394422884044605663654889071678637856099017542253975172337700118310869571511011394909610748507262579180238341594281392320745550386128777719889496521923232574650730810307808325011756483347743203654432000325958626664066070780495353552832817092044401903800949484265441615384923837807569709064672156389321862126686929501184708570715316029434882044475034359414211080424247435996478848495332823386323834551381830717920362795731737835656431605717025142196536965108312792350278697505778922114662493120440427604257184205725558155011590487175871490219891531046292797370892617293103909478360322327940749942120208732253133598788677474750153203395950842145488806727342789365403606333968437704180876711832545808224351540957989577916633824597326229762382734463310243413153958781537102916430656341537900010726534304624281141073605024661440547191743331381454238832691489716718497952637462555759745551675499191214370793975362473332050203061149108252396150218377347652766537286053964657896487466289841808001880379091130753576689267449016501629960480076805137524175155493180454757698827617456355999758012158997029059780751652715675473848087879588026349064544804800472410259147703710825439229596854676117922242765794803874487264900908266196343673828234238090176124237540406405762830476246081089510071730783084659372774073573918034160256191022891931436751034672293828687578693875458629300106608457776031087931664231992659814707485076899310073601498134774346350071176593872297268646361198261975593175715322192611725608684623548757590242344698857697805980383599396888213654688480538884357434088876831722530710361018087906868485624290733793353022930473019659696209424524487037468383686429532715206229510880160180019714411365738255732060162652221897086111070575913474698584543876632708281391794824087007978812245660029904918297756310810471968195688457270269271815077996781375333058985889205877869614131774089439521540987882222081367464021872577265609679381146589169425749299635828493647351268918893340247268748879556383010937976207897271375183384368630104169151508863526974111022882809112590551067583816243730663049777899462977512090323230912273565161266656687301401438213245199106271118334066839756608488065393031390791620600613997154579666503991156945318126318251815294541707163116464214881052731535192884983215351053399332956517474569470189213049786912347291281432610598661076425997871041911496851035907790313861043145703073016058066705101822613547049319015039085976694571526688803171977040985690876191259103724587306651272583002663212388882041648578683380655410841131995166222491543123816607651616940816439873402499096520308284177740846460758360842403612751154986017655173074659877413878192905620106648860364467465946037945068474389129858688301710038338031787630610254119436544989996129476785934222851304459274077888511983686260488028997820951789978586635301732419369019200419814048083837692106748584131835701175650462759341726110969845110142665787560541669069952828430013730393863649074874758591047423124548798908261966828926103597058288363016679537170216459568137454313505401263202656877776874280235367504382196585181970512289258820818451305957311430822665476029222763648715754424610466400449454955130693229156579448632988785964490537373940712173053579651730725062852026328879606085596612868249738911844764461746426471948236131440680913147336776205568907589667866056566882632886104637897641580559666315949273236179778781877537394090312818550629582827997687851070938258434612058146699988045302084727811930278099098796279817216090880011216093248593151033019674460935142957507264988229627065723594106448802137848031620736071356790205209069265226934806173136089801583367446024856892368559284197948969792227997260940714108812687930459276050687810845756096166928112135757859031877993350886486465473501720025313237366395329069374785621107383379618997886729654673652823896648371278600478307211345623176027001791523191558179539560663641933252789521959770633404154526592791886814468172757079733668682417489154251828977743421323035444539198727449039941470971618883510993986037057915936347886377959754216905170971189465138885777724506448655558356053796353794980082570716403526214022429756684474530447585168685422050947385003572543722732416447950496699121209649000587160608388650741777688823945502484135382064298698211597257287855898139239333773399637107539776428936810491382108344191247398113712246793402802802884674664664210327604275006250240328480535833398744099093362704880161506289518034058659259102572491104337982614914922022060008146427435870380522637231065643753310367738807251134073980829303444999781563161981528278827460638202079909454600135085065403675958018870875741873978727871924875244290314133146869470574708063328180685336435996091836301100369775121780232509162392012722881240987846698291683724461861490009309306514242629146379931076643708469012810875950949736563542253054451804103643860708878794150721087616954423905602880914156427431881459076401146662350187153493044400711220702561396108894005615526559483233703537032226170613163119475601337470400665337039357582250531837832510654622637332570159377153151895804366961035082422202792103880549482697069965205953350923272922964015155510227455287739654492965952584163527359327939032905338375781283679380430147354455794267057435285686743076973518737735799044434619654412427084145080593133166896567591492184651023202585286926336064743124070992362718129132617064767285945068598418359337954049283215177721767834552671883659578964757375350553318430207116677423322143094987041250349394219139222302984450707979451565691699094651928345550836749717137803279073880253645004409888166347110272131412933072947274228430027958239263706880881407566903541229855623056158634778280485477138749554426546856927590560944779356255545435578537496786782665956303267394517923107190222930520969959597886115097587587322536857225601892786360467796358076004799499576979845381269745479836087239204911151999141859668418750710680177188413519867337713007328175902153978164479515947560683848244366850314519217219555591317743358788939972682723053438125961102819425518088937287360797506613120497920201968195526046989171635787617797915153235093688498003789221155091593841150011905880435413974828044726973113186517690496167839263113057952228710400256818121301881966791240407485577307750073904460292174368372871837945290588363130396383521648533692176735326124940064355017357259613767114534252665806480768615133306329249249480389689069963648228113527661044122530692330303623116182945374652463499867137244522075872327284852037672417212404635394240372990117093163125602238636109796919851876726100206892800471638143981203515174965693138255954036013803715178530877981248752909622065979906454580875770963572695361203061528986188365560532140049858781225706252061310422643510826736677099844880748238489276605519179140313901906598754611476643729005680208484082187349286387132308571551441856760994528826404107882115108008294537741257055074482512786867870232279563284444656701767823582919533985616534902018174578799862434921475055828490496866782515200194913030566692120432647907278429917122903247958981222839755501825475706831196561157353619053689164418578810770974304349790858784738207626161738221067494208696470495059676121486214834305442090698498733804311514197253722339959549274873903386279169161849322032394332550832719757237350856806704128631603765880720039144752050858278971587239005044410245035719972625291457090553118927798616053976960027737162805121448076079758479701883761364782559368413354960132797096725772344497376877544740701352017034877051620270063470395141015752056474340666299832260820822233810641937420849975801297333787054270872137354480439297357078453375295498263002623826582124930710787203389738356084272566735819236224519585425303145307778265926859057061087510941716736936943067082612586780014097497404652299097489585536368815599119555002383188343669347207462110813010365924041277298127310314826045220817306776487751665602147387685570086283390487176516515072802113605176398713617631244594340205002766215456733199560131727036185942470312480237336174619421197367325146864125915029104230989999507929257716626680269148292430907201303222312490357263189794583551740845198926080654020456122758051237741002010582472578467118660286886544671338820525682731742487563634408272902056517538069227479856223314605573951001208565525977513314340862660991605777195186030501043300632956533703887488217842552780567427937204302756661442356806387784596781470212628240081845269415459383723606572108144368163760969338337620244038570075106558640517273114170337426783407361979908330674025209369429551698804272512268042447774146446290569091859520978537578081135273202342163588244716343777995644239522273388581026012421868273479796129451693969097044812228184767126234898923600479740818794394525043296756845614786028039584396293727052063728860706522857203811998897088264624150568905078728177280436983258872353637593979180006896728633635334301257578214174569338541087740317889789354233971404376577774145145752410016338533205786475138563488223236450388232285081744410206092443653311161997777516408472653327632997386099710518797692327412490806864228230969460645615115030466020903753613082328970115803019774074532670493491144891969394267539724452127463852733638745534893867196720330482723663896800256221983016613112196195892692342453195371558839937116976067651433344590139663836183182086841583024585019221740444062397478411024862852756895118837021968253033257212374349832030308417491509324445501290692479201574576638000937645918472568545352388549067813732172254270979147407923160281980149326152763251599536210384842313932717148306249118656667644635466151651750269074708137149994353347471198642763687226485967041544881701059420753606673304736059714924372317181623101973322151716687089741081270139143469423780726911996439563760083850102529267002232039786543636342022540118602800444744181112259403975333036524732458015391165739676106502105087256575765624986280617071486282146404043273402732549514813258989456208461391203132624380864066138472835263249516830028597028967820501121490812831652901772956784913053081355682518118584342590084340320763280690907839310047395877341010559136160700290264007981078415746564849429156859800223307928334891736512291085423003355664524926258034153181896999388986989260205956816976585632902045698539054048171439002007719133626906292349491491626133797356957208208140839739330173342374758527741648768224995770461752695910282615617946456261547309327170336788968771116820922172790357026511259429739411808415790452963118209075292879061011824405704904108508181888277341400465787160459822418997762283812243668165214579086129269541424749161849978394146139476044076148130793689218255288533052258168893590235921550295185131751848481170988239901449727296355963143957633766758903024322234246173880985078177687889158441959522481733136575063549370686958768741513322954362280928957255531024901480185309237442150517491325134397855981688853808055560234172199696842261710455747230505978335409467104488132422162371022440502858057373833644415959380999716085006746093040524335142419496217417996171443460330968451465796327496988850958542388176445246997150321320701772663247499047805443504798578705063125985995194015519713456880042094937391348896133547775397791056375610316473440570601340427700662586210984952774838266291312428955314684340525810565851226288423200397838468693223692829918147110781219908446388694438748902728181342092105997422884905356118265809479979659029179843218271149041772856548697904268815022129330398563409739161176516641958349565367249846080474191892552009482878703062638311238455747762988797554821736579546026788699271138663212874250668505459081564896428401400425217947826718395700676979339292936830323909273061742009609397942175210295225212348622204258928745489200076287271475788459833475887026612489562450017661469588456853834897110027241719012812865161897587153530650936990487647465918032850479685083127034125593436046758807006510361654801026944330802536499138371768135538005886536334951093048643005201850173177544030997703996790590556598365117820433360539800529830668809666926656837630467814785771702196744652113172137159173668877728318788525123040099556295140693112201335674700847214989045851356472814676793029420228261224258113117127603122248006913092848921808794563589977484740746088956683136404352915495574514390318707968362825571717282641771347414731074607726020495151350689173846268389540264379941161565838423268527406747013555011552240604537758991699314732072952345629939421425618209207691595058993877240195983729858537484208766675817190395404546261379186071413075720127466647284520316287337594938317793706880588415515070876130808411834852350565814923470622185736873942852875031247910821249545842065551296762160094821525210561630330067904017372879942987350785734289846249161361453824212525236147024527587657160796001433130982163063782117892679928840228129527905235628428442635698919716543757575412179387498646410130286103549743890920367461826702467179815898914161708078758009320729335475658834183871831314392309401723841825471944019764853204085502432977834933267864315070336543235407926348489720416280118912121839090976807580811220877140425272140119679616015244004947495111371532813116873730057546114178188924223152291092516953390080697241308355246828689233524729611648946015860396081764325814125845051435990964195691680105535974092985724986941156592806301845550126659251340047305847486859912256585931967328130988665749009890708142758334804052483869991834777406851596259732990896542680380058165892342174169566645322980546762747617540626737157972057768427505495748096506740137514324286630385217169589947172633680396216140926518916766205765125523825341896564828850090223661210116760974878635033051610439961634360749681222025093956376625821811655436040222630116509547558267787892996655451386114450950865242158778436583568301064603108384640048088913136402264695414070912859851260054733161048467414082262014665478755598834587925916035888523249392358891127748665721160558756744741647959838289494204406495787581402430140253477354962989304637639831298253239903863056296892861089916852429334476180317932146930776987013550699777405032709788718793535458329960078906284007376893794255334931690127948599878655554627279104085676485149417264211907488733270892030326599552693738421037930366225402942635935411854658880741514230206702423086550187375240535368988902972630634812923985981477035387641293822884797821894701783648691688104929302669729718084613120832101957268687694261420256139738930648954625247268824879821991738396376376157434608594238486529203021912597916518126436014736365607583861404877317388933635462175761958388937912449513537300981422318932998882685673704306079154383577569937578006966935489620783733498801984036203018512407665052215843380316266665534558817230694888590543682777898067964519685947248635025249165291019772381336645415843126684817907975757403015140189027822180459284579576964398382125542726677287386019312626593795182182786219037544680940539177943307328247942677561763583953613617629370673832799922375571369799083738291771706254331384643541818175571018117562947905127802683255605143210435942789169919305961813422294091982472118845788794161955327374332530581482051801046320936334602123953969829208079270680846616485083800611977502193624239881804159861135292277827542015851330970285110312288372711807894135704143945241925437725533380369257278347665147821602380005766995150141518589178423505638893685599379251558000873169074212280625455730516319076359471052830487104285622876662122003693691011782460978771250684721809238172475899923985109883399019694087755240266893990659318521839475433807105444765791905747257884957381031650226552373911552815415645724754705684073209213060972718640631397900088098764611232971576550677834840930164867793103097870815376017250148614469754347254850381630330689558503764225419799036977142959526488828979239946413890051503200754610480459476311172512316514680922774198144165160453708398528405809587271036155049844674340860876127479550780534335743417010755992809849877342794209727782155044176210241162452778048253750936166747326078271415989548429769830664839680690753891697893327708261707283386065200072492814070616352010147221256862823387314451281024046514182417579647928539472481408067059465470095666444898963322120351973965484212441540115934755499309960315221111866223968128362818003978018206181460959863980940539367131622659543950065916936073680300081990212478703822571688199821055841221614961303075899010349883581262361260737629549244955501624179239484357998517359635768209082024162792813543322263457112352518865301285186045892006262840879271629803452336562229564217539509675822256313327967643132446940721583879472871212332038026199638706010500534965373877011165764393697524205391673520087536267979992776874883871330083193284731452028090199243551614714091670352887022822496226287929284440735018070929132096603652321780080109576471464291035788418062897802862463382489782520656657101065952793085625668900998296663595672048456220072613593291446006333943412620343448711295268253104473843306091254403881536232511910768175683542113676392715627569698883161440626887472079225177261605580981019747095272988326735042813566866387433079635911267476832156386741323992736801045142762356823172776378216962158243740903349118890604310594182085524069484082809661673451917405663763584564911661984182432472726432697874387201141837474805542265583332628640455545879348242364156298462600520220326560303519932277832801683249397263735723866497740138625619469463577220047031292043600994441539490368217770719354222376691861987317473031449490372303900091793530454710618503483315507327727647900012665580402337530577978989315837729005722619560377546079708824519165201927971315530304949617533856331128658923721830519726485709295057022039072057585114539234011674374800518030597665630871126979162347380271697661598039189191145590535592300561121844063834074159831891067907908874942176351449743377978018782660568373614129441779222694270345057399978960172874518236170337198635316651041901901165802049672023090861756455668135242209827713869976112040542019347821150944969456171940483967702002995839609506593469536167278090732318094576715792488718828307792789253570636173744177936650963594143313313390518836468259674009327436891029207344996573368994125065164486971539114305796211178489072813809882938577744982731993451480821310879343829556345425314200958529126032087923637874602501323800726133290222130021736205690875020472307001815498152598952156410916773877542676405413752147216201165750331396433787314224245628151935474069126274779371628790852383125020501799084633928742073301190617444502518387488749977388836378395650816460134325823038069965874122565778447633503609495726781991683568288123171013636325355318342248380986576629422192427909110382794914514890910106041283292670508610061200434349050539469994985071299744112516855160590753452480763874144221702038095393208221806355568403225196401505893626093977714775592926754040098473028638691205246010089153275015979648711578432163099750895561658402203676755848595690787197968162473983775294933931380359722150339080456330869367014067818907681504716667065037206055183015749467460420115939180750766673076391390762544322228744463703560526479330732763030468369885056674737526752848654137193865187664347792984817138739501759217763292892348545470444055085375512317680316359090053306849851112442031397685427536287638270168498094747035172803223222536039257423889831426166725746926075561816958358257950299379004524396636919589563243655337465200325533678639950219235882119776160109101168913292919112190297484161072728600871823865179628651246075544240958794283448832461686375706595454141747632914548354923502492324327178727996092450537827067763234629859066402462692059913977551202390453478836046880649771113340158811038852530040401693108402893362280784402961842440400550136955097717317642760556434875866241536913786325595817588495822372251754170102636366201664501164076036007988193815935510686738270855357795430907794320913311727974480711653404641001235417572645760250631252491026155280854647418061473044551519659688817629436267984149025821834872201601865388180328436033503611844970782809408784783004383076915938606461264432710833696888269482259700464556079900286299480565390178636016627134967498163124785386981479760757649622650046816001065495383634028662531889689653722073967452835040069035471160199023550589410053420771585722124079503499799387504108617506277842379785624752348384678422895179308425661900833918001082140528769122313683813994477893491522532810675107530331893061468436489616182718912287474154162171869162284760952661541705916022746260773093069313410417606462643461174379547442158689976757036713375511671951793408906217954920476856583089159336967592619966431989739634894179845437463569788770234118155674147169879783681707472094067256659637767424048459662378733777260221614125016614925249632345048597069445233724366633792253003433147875646776534178270852026098500071082426136010330851132886751697935068667841708375657946147814007004792213907717807327868468266436456214428872826762606824334413978454963713161998011991123495166304126261592254438438794831797358066475152567712810963722951989749443590716982683526933716033680711686253973084806277316133399501602552031119744779152742441238110406766836210904248892981934874671304617347882359066349614488971261026565833627165494495191780147304907732832351028301830237256996164390793990689259022500108117565034398792089529039189012766513708351423920164144007911903796169445876487312879887276745909494213853745401197365752493242218855544249710049259418297076284673746545564256945547759236122112367745693704273726744976520151682863533749629212826280043871083607014126927038646566768862967471716389713136031842527786996350666185088836458306500728135718938112242438825184497717324713673513484218518148076519203837837975514932147490289511007380730975737011385415152436751815688691818111117565553842179886729630577825402942705917357429314882450144744979609800640433591175799552239751341098632613342486320246514822850443295642027377054403219435140104145216144957419639462491818807882442291032809060328550883287320898362998894228815128942529768299440763834246986093468515373380839876301772791753833323233053158091494738884269343589560348000797195492206311394729779630134678031860642063917915076817927768269817500057825095822855638379336225296107927897501610506552080798376429577162616177353037962331023558686135991750313767945678457214334691343482918061653368147266886106217235513616649040987051199180321670948826197027891790152114977014807746082095466554871428262412141211098009824478797228308800986679046724509956135141592062388868154880025732965962274284514674204047743375518391408306073179852403221799550200224826206207292759555725187289687085077786324339370298570448420817613816595232919284917544896103567548593307631746307318941944442882410077946797658655334391883664171894689723496739639656874733264373688771595669491014685319425168791086011820845259346180363515875736939401578624371655660125336187984530016161199902506454854943710613037743307371541660048330313380684615160827855515563130612140161580609617706771987678512994585881171643269471691501266995772065586940501537083450145052296159445981276309078887030710884561396650331498453318752665817377016175198975130648498805375642352186080224785673593647125936622876411032335137128302485903471195017570695927322845208721582246557438530484339370829259015925764192459099928172606580736416581712054820379982977827062448073781828988427600652091389934883267262813410429217392325751884460718289467679056881571195784533342552558608203155338823768901079957523326678566128815615196885136077994806148481984183694370757677258862316067215706253145685172029681158701265165150528153837692633969838475346792049521648760735145846776921194829542424096488377679068315029944390034692317375779719914587721640091683322928973717999195880148720908333609262724536597275391725759130111739917936359090739742406734085071794771181490654382560473512251270329004565417411734425126595387534498272522525365059339215713159938619492814430932817227846215391595972667712697739114153523083298889064552908564482872822689784292721846064242636517794962658493701904845886690729654110629706284128287616850507899322333497680874449809549429754358270113069037955825139392418025657135198141223473642801954116325718523533027917544109108686029154079414319446320757554418838762185915727551859934148686583662369632930511873169506555936550913327579153150464910292778656343330298630570808812590678269306063521577499835875380528331440908042262969155517986452912225409474334210493852790576785388204545315201601227254147807104598643287790342633968048163445359775406751067234658820852412950656489019960806048723653565605236704650681063142638231445540229697960450944327031860278444851592777232964156783805802715526872753179886156659264386995709442573948116777277344617517480188130057891771804502975762881923491788820236814452211825814979620856954026325398278319269518516596204259777684403285740621588506462656434203988807718575549334101134842062269205896156758368814987937905741382326215337261331581595595676351260927754672118049860376462115450740442750374472067619421637474476437305751643202463039699024189114475528276264472521057425678389957858696190549731267098665096975042577526866809494107121999705789610700018705936465093631513744432465434171514903351542943947376211302276658238382259502835585925161709220302993754945574241810030019132841931275125446701057697594057184387729315046373455829214502953185538260453062095411565246783924695389936787232006059149082792623170634986914209867626434434226976662773342927684323660607861237624196897171184638423316047497754650891089285379347315812754329849203954026499358499818554223874765485274534744557747440946647520675059464823054558661585268139697971613295039344884090996198139242693516651043695897500779922670359090584925991097211017626058361681722941359569683063248504252992482137991408704532604184187733753705374898098392251424816650498383107799799725413496919328992405885136677863165950179694009077697162768972965993842285882403365566726535371471908510545867097680955826321290514778562916488740441207258718331435010044348629516824370531158053677636983029212136854018804465810901229787310921080103360849377025410736164638935605108068352319409979172510573076845764836033268809895077797986428081463022679213320965617900497044269791000177772380357071293172709443855747567034451811445520944423500716657396113330717839907176026793102244129029392456891515054719729057370889633569131800613796617060116262180970146072102568800147891407054528272594266641521918067882974660796942601523017912583838698299373457881712864967160318055447057153320909825702329610316788900631152195063369012644125239946624485217700705187393458628727075465542814271236238393600981874152922756356141980792072612558830170339573681507264011705527151214834883725550154135088068808570530969483022194870959302742467730914899801055977118617526227799705063708922340471523116354207920422377472701404819128837232949200250526909274086020645929436486376562294729253962649966411209122826539926573965640717651945477355490306434427184364096409757904868724471519778455590885793833477466225355213527985755314879604341887094805764472386550061772875377294467758006422179263621898757160254126370909331004274006597396995477390166828180085430675246547057475772024092756725434395037609331101091033446119947002313077163257671169879083418703999025163876031925607821640450366871497028663220071249974044339718824557976889060973750211501856791512821034666154463764688673809069234656239339061636113373949420256228102729190414431447727159167526648399544827596164945452890560941273443368456040531830053301498054088132339218491705868791143001281296627784118399667494414941236773998507219391054832696075245702525553437170210570684744161221398958295228644308968842074650636400864320516050611005303611528069816959327017175085171929011718137127843212840067272541963201396776340963716800931637240791787632997359919247087329719546206231984474862527903670495846286437773947075286698938423675352145256070729749928008139698519268243903353184351147958710951389943428300625577446378136015688357693707741921544193621122676410020628281787458927506866970849210740382630705109436494496507286345052146903994035832708653935216681577678969959870441625976838124011223391695235658929575103118377138482053142062166864374526700648009198501594026816965277001405209609575467145634198858209581225398625096959759207988935207053066993644390123795209505596553998870327168521464982219591674094547859606159643810124598523513253353904136389439117036562762471308519325159056859682892990975906641773998417194443298319345528885493549332122365741843679477806299103958003709977957108980643661939738670125702111392583645614753323611360250307962084224522834714851603489220151096902472645661865937164786353867594153771190470937319300101261979844605796190545233568832385015080944453535006029357495206310786965097786744478241317174984889764999283524017459806961809825524288209914450928251517933434787027360833560048595155892822789130939917880175126119940838535996611706259946503864812303057219255599660736868431418571074823821672604130424153809403137556873428733637257933360673235510767745500793372372328488388668608353150712792512906542469951681445150843861605553987866631444101302538435555982020575292278665591558857269920860082597394552522088285898451508767088630960290441583763377321696672325269121537185781781543830118525179028312224011161692202117021396840694709445733357997944370256207340934225929801857854273816286532219395056194261525370116094806286640074081138550838205866368390631496660706755761221308994472211333341491199149534434875440505025421895498217238046066341338499337104264143628064586820583041645861606974390593887368592438722034184602081779511060360810708686690074604525108160109350512400754671830703622570301427422397555659852214823035158830356895724067043616873413185613009430677221128154473861874867679342845483351545684184295345624047108792822582837380020394964968615548732244160851605458142551238250066266403821067525913425561915538767803268094407498709025058168782030126662142191301833623405488727851198378138425285839479338550696132470103308338215061065435941673903996277058482136992851074029684963342616067488615016732855841600524404105799481629382033993329162300465143652156135131269686716192562549580300629770358447892353810593368932715235138253396652568628196964855400681883150142915845204682853386508510732574783930324994807960454545522246285539381702002135922302872789468158630988445419190410900137307760543965985442340209777184881363857631282066863014277872109306667814987641195941721274203588180271161084283924260984453598085206066568532107037207820956778084141672181097469541801563000231660169904346950540993776889940787860283830424304615913991983201802611066937815171190021780430296001856596667355283392018397988770063364567591258537715850597540543909144271395544154359531306896275740086972540562759536410054472532786718280602492414627418092001639711872824253154276504563411627944345354573138256833197320310821670638675808326498456439631602295400685675615506832958921447087340081511448755603235016446649104521025057574171580972488096070251583469939813485332390868499660278579565450622982339001891432180385125616087962688647863433105591827883395275385790928389322988725097373687880633239514876781766858434713645610411147718258047265689575361128900436519677587681095817254766777219753284649266971969288766741633752716030205859991032019631706479969158080734929594355299777954375676474848940800619876925309856331197277531562575369321492059806335959197333829361846474619265824778564180526049067560215489907294431412582450068972353301604344695285756682181993622916300767682350762337405952555587794619200164288914898102250163136714155829173983585656802768118063713575170616612756659626588127941571913123303718420630784085678101063898859675445221761420282228799644027088056937767946184634818963074421368665120501326034979326241427794082835351957898333430522574089309538565879327439932072672975984960492915738860681135616388790033280457769383353773795111194648643401350876387304525103808874734320032005662706617741040953995763855475147381546067206691380559064185775134889513896272861407241580997954142724403116902590629944964763387732032715458737546416177682475587498206592340177789420646959201384108471243807661574828915511606890011552340558444643827227514425637685834142262031660224839689457555613166759596368442538643442962241407513414158112510931408914750713499602956605899125487471018025941615200271228884739716714677040581470118974262194541791543353120019495536126942543648090835920188985725236996589076613616957469474222210182488668855984268329719981376242505647005036683384973858685525352075611362001877020788672166115285047724594139838633795228709634034318762435723926355291153196081650714207298918600655533524882615764388173458376086600660174781866097654375781663742521759499982124185793559180421106677118759202157583253530671926776296117367498538317469064225666498643858678922201173737298688270190164552870699486074697121583554680840879672042751291068404854152271126159751490162992942805178835059542390194227527837274509157426706716217195153671716676568809592971666950068093260611994705813212329587122980017340785579825302696623435556760520098707958149574815934904301451471740158215834330080022962023807197264137999466206162539900077471028372849613486381854551649620860678282892800979206993733339258224993031590047565566300214699318414896524259841447422046198908596728574693447210090965113306730516934582773022147577522056112738760784512353512266609487978454126224607817509993213313056828638824413282233962959455743087663729509247290565284535493158984659537989986071298026262220445646678980725060700872060698193741869336105331494383787422339802826717303719180935458973892857393142697177408878103300473516289790998274041619443375988132911666172885075465343660253450413784863364563552208980250689890144460793055091001090569247562527916239474942391163477319025864243501128906605160372618206243914049905904626711848016127826722912660429143848035715602101022906026642494325076797247958974408921924674427518736560335579474240889425494857197449809866605080298589304025183626335077511631111766658961464755281010384797910775781123624953055788902666290625564095382703319749150915433499163856342625427457022055194486139668422754506979533627362082841500354536236378706956493636172708692546925554484243538445675214558706269549762926127045645427508283931963877939518139498703875500998017813651411151792249967545145350452181807176076446996186771099978788616906663430083388343038133725269394204218984719362558677464319321987867091866749395289813275916543423138353412277942930733732396925676272723452061375292053462112917882574155037618299825861682816110868012491373078633805529132742719141178137182722046994261789685365155233347777901856587650477912757900841249129818741770116207427569915229980907076337945582463153888581166944817630602615860427295159450953431805375675612722086588292245774819520011991558772718442606698678331746172382174512392913628869095628752672396022931113214459080105829260249214686184852866540754786424789590819345800258921335027953793787058513529887459065784054701737355601733008198961060161738288179239609633881080093047789443187174937903174030956896544758579545460375199632390041447102450916249410078688921875788475888358681165194733607878914275586603689758979742294622224157285159217040476337897171594966935143164107300491772146082703281859752070274273019633417326655981691368298715660601821816169822587058524262830458423352057815724025140518446228414809595222413808085429319043376642315364304536293112786767872130000884766893935831573286900611384962167086132027377249336195007756731648885769085381077634029228156776146382078936132461504097811716521358324644644774137801761243694504866122942469512078508274899947188650431427916647405844023522994623856994368256902160914566976277203451364284999421400152024555802536800331671985460085272724828275070061551069903794440592256242473087736876435512505350068141035032743075621387176031916559396195249054873237967364520754529643237022889081405665409599634845913622036847039034303564301094494823438538484386748259801426485036361909136286119773971347761181068043098703802702435579605683171479504172934927266344368743610164473605824951538613309614254392715652969488060672315217234298452425350635797367688090097962749563299726300168430844488722543618439089370649314718235128803323789893725066302896088732917613319226768380226475766579455670542694166892909656244503705737533647889455629287901934626866180629572440395242447756903492017673006295392232292571690568287301664986161325625546496621868965495806791235069404886232799194435121840068276397936154287288601548664943596351336102755907455894264378819638686298955389596760710621348287981984694788618861286387941916802590498117568655396635705151833746777191157078792789169696478206691168507109920162224438896488386629863712546692338793513779851075258543564217783175805814362194358118645026603388632726621673402904968881981957049789633025528132804958209625751420893436834122797316242058333503343151327415072426515009325116498365060017271776574421385498703930922134369690715464102551743159568846602430047687120933569874878637437811856247898595188394133965583605846393197191870693876180711534766943164566510729023186096101898004064502107581763036241857256809768416394459676899278429497755658730657532654017207474716207244968598874627103175848824213263591162739525269199114642632156888124327223625733575231159060338350899106673167536512176467763674155777477513363088131291980287994757956539969782452349416054220265122104021083165377510337868089002335702624720488752873948330091791680462497960026723574367310319088466813415882229031184315993814634089600700178572818832822710662635650386270439072155682410234554009717176540402787698028301186063223722322294689397261018855430957898052142425452503696168992503933541614200594898638083750088679681533430464953486301948651710346060375403839542396740342137059379973498737436163103616237411593078992785565238309753346028737012776981139715538435936457301398572438953413881427152536363941461661534145977338829117485399599586615991189723118200273098290764266766075876335101883131109530081338408233612944954684415737959600059713883852372246602644883990346978395239106911317544043057315255218384844597290623879662617443963368645789010551358484181936906073027823854017599855249592446666322284264186215343647249829574602288681247035584888315618080883983373800412843728458849192998267508784635516630275239500988952636030385205488402037829984690847531385137458583385419506572060971285987223455259462044993057601840970771990346263127010320890062567907152239313488390903446901535161795257367257268937412489149518477635169982489654115438001977648344126521809182881715590980060749608837600959506787832599067836778340951767458345645406843178333029897203601689162104226642633480879092990295710765210681971283604744690418247107048290182973427641214947227226891553247678538007519523412356686306852636430922264767821509229656484679623024633525126171412336547905088243269148204892503891649330301530579551567063349788203151866711503242284927691080622821406343424734080987995545661381899279351250463878182950596606299715862028583988548050317982764402293904326305919685743771283259341255664062338587065626078058300092072035528952956994306764891045170909933759869559242946663292349222871396430194085054653079810410399933409544296180137167579149900066033298411644688551034340054811458981241208577891551943198626886545454733101273519390107760646891414581689115928674878312624563949289552210194082341556544417520144273019297445261062009555383447168326452624895504305812484260610304416165276299426372812809634704089683061653901553480478008353427432622274742066041614826117756597463729990844354139142656941234348400552029769829743598955319464544693594799866901811609101826831117026359089007889366425158178081949403310671635099098079603820343863361378883598910156117798930207424862045231429022848376997867542913324996157168251955604249973823901233982907756275571067535195937749323351751923315297993260708885982771216478560545952894518593194231428350207568345043133918290138041511429284652469990677652471822795912151305389437824698466652591436651260823688869189461287624981166851346362294604938347271116493831817122571810855383954319421869887127703181530838870568342120656237344305235025793469342512357742211014871877708386508706289745968924771783269507394668191728815697106053235676383224116504142016440658513718447709979528281560368581918153276199964702358512853521022629665714148354553532032439961334072303163294484437529366305241794201606799805770487715579958121519286332443946652961139482493571972647524885306470869912171612953607870634177726953989236878769600086587166274503521129892882650246868988585612051562179540477019779096901276689900751149074875089545454417689068073944870651991461698352031436985171474089190180128904952357227084580741625961661241951735764402262444765646048021046763503006088398020010989206790278929601705705157595314294678950588197218689084396718659886683216139464104278148355775441144824968546981057625954776481409406060645914219634138682467266411401672853824166151605029403847153089846944299759898917754774438779541020528236059751895342856238559753327740616363320547669141931634333254691844723961091835376377865658036355116889899438353311429085200199387046275834557583653259948804928057335379833648010599661381670259518064184296945944429697990743677437060538886445730121482841797652826491346412278232147457864992375610706396310850322035641115790838425404153590486345553420824150988064244798629051300407542546310325422687778271230682441130097102306638218013807698067990798878290745016437019702080958629017478881694539744933571188984763277183999956231863221874296417576850861819939752850772308240000960846053828722196760561347976832563071089895182153716458601761900815180524229721474335281780388830447752527955996013950319468316198648968002988771857947318434557771659718339547541267898731437735282472587042834204299051022659011976925869980678446378753543317815019328188783507608126041984485961993785305543100259931584088418227682291366298244540741486604605951027980688820055362468288410239539196068548668817521136866875339544285543980082577400894704359686949059065453648990560466469133669079210675267422320436999269865482865736261701132276817239604182547249465359559802555470289731022539999480477692461410008143522597000186671204027400437078244579108251766473486914249179336593782981045529226858252184071806556200067861561627699432231885425129648782959704456217178985500816698628330431005979029854854079829168073272857527963086182609117996035295196235255398886266182947650269194862569524427281665494493402317323626477072304646541725695990945991003381898340141984163923932694367579197820492752305038487936589743856898119567734333932017770001803373424029992545389530976483619481203849122324724601835417844274065915462103583786506093107554347875618693168742927832544937091557641996811382455242684052591036714310334800371220009551014952236831226929805237594985892204845493214157508793514589344673657287824696482240585851815965760010794408691042437811927413679671305290981914224172229588940360803697033467800208236852901965878979789759382010053943322910112735832359319845543256282173390710432868671960417014161688400346655483362681166294003030682783616882483561955681990004418856443062116714710943038718739788326789520539910399360028455798826652690184522460664024140492117200231247977303855409885223815844709569767128155909775307043474793310879042837910209918719987611394071284563198438065144925050483137725985830963540396679333738636724780630828349896279534356324408697210673505274597470075127128470591062316691493149707049973220086635046584094857294967270541725687039977180402596239205822743011450069033219251012057638363964693081922445224775495514078390916201512867316745717684684473027280106274039419618969741556271627725315455417459119572941518951087662844197314963591679518861691361133578552495756284839987992593875107678523014093924086575087088971659589338865299633976151454793633950122050081639380390400178888166764659746975867429672322605616922852920017292357095859946881211759022560880543768004917607365458123516876188159359949993889298443485973961689052004477173204662550374056184558499905742558730266303562734764610567922623491234241121816012408574532053608754766389099734389600186856515749625031516297645715612565106971711385682989695544638342903533688527165947681311237450904164651650173079201790432406280933263365618899089175050221858456109062406268979413482944080337628651258007691220922072878637306900023444003985084431478972512988690995548784880011042209171835129070435597376979225663274680039344949553475674400776200823361101540016623570676719803831054650982739628270827384212254702287065492435298073272856931081471327348982678458083596710674588627388919960851362648618055216299460326402346833571506099273617572735708550276636843559059118507712946293692861969848443537689056763829875780402151333749594857600143499207859104491681539587672508723365320459095379355060152197501635572976190879270876793629211101922199344187981102423613093372997498794309985429890526548585351187462329363896043767537087988161382360439929624455426540154964047922210290504812914268100070867753776314670422298028000147320447397096591333954916227202195289257540944268690068335906184193430466790856459314682954658753717075609562131524765760953548873880886815348290546056021325092787698976575785564223795436900892133790255849488098518979384278770440870335682287465535690516239337217402506538777054799132347986745344509049657136396070418272788073633804709262997559410210356751923237829862271792732378247117850958349184047354965065091835060881689784227866989589137300254889155276241576180618221300835883066862468093482273224107368232400674581443546254052365895128085768986786602995063813165359979422426721973302088727424095923015693042194969910908014122161431179904093824421195299761933235285571108244889933044358736737481157417389246319072818495449756995026534602963591449532950531335816751082340062144666324246895774877702830473638336216947842388790752576565699647077152232838365520427075653135364477132318660586652060683226720429852010228299860384826256870908352081615978623244561026957006856192011456563540630939923911690164055267930048369960785305638364481007739905622161559804028414840091196867057595855458620212602730161347607882665900057392575143635594871759306282404860077996463786800004429078337163253930872604187804638989699011631398441462187705574822863063061632996775889221483117312548923487041393749335414904524625371833081980368990771592033429984095425871303466406386285003915632906785518282589579897633437248124982970158330316140724320079120691526547436287875973462324171388906660015890388188007698261562714788289644141804090808866475256749269150769877213841195511408828437472754397160938514042037542628892259455747263274258112988169376156747840274435110861351600628287659307794657438580791556225786703217893410773578859829514632755658633855318465606514628699033575615590706107083584919594454723652309751827385268308882680607250578778726439472439437434907033200628954527241536352647379223330864592076880094314012664929016661406999086730018417225368190775801566879900405946566968938077782898756048525929435498208111403533249477733253571853966294794244665382482461719417307874767162452052923901879157954591842837698896027023233666841257492151692519862174281295947107967566053844883229164326740626283777515571307401205854867833055871424263663436244285430937586790934349598498238211371236387629503917336668710025785908851507313219536672304788805507633918817826882048435721248925375935320122481093233330946001499522298636027966110459993282717872440767951591826332216429458969105793037587356212716863008645363724008968137813693860934737522176372666340793890984267825829963240088265907919720089304060468957921774307504503323931281164840621772601070399294247609898706082666848127178742159180465107808777462445344004446188994369964352844874568651784956075938436049457487729532289820109756198100558278121111507255579002143938927742994263028090445337468088583492136389911836671881015364831294899020890360076780153855607634015126694666021021966346520204723840783099942185765459678564118159812181702344644997276284943556455186008344567594069757759333127350551591019648525958464451121023088280602682397014319780062618579589452169771523232304909800695258052602164350624777318478291683445413943182587534392972150972339398844961950600377412602165498911686789853499170926718306239617960749569942950686011847756594641320692804524545575467953189736863550882855209215681256034073657648827024010036447392629388045851873904534139648477239497976104080186062525099523239996424918951085151479333111172354813695343933063878210774815575666683507317525810538575628392516934155511894225279251067526612322533413724096272366845870785655344446008637171304818616599824385360505518493733506567328371182852363006023941551009761322456573110439379619161502961120123561363585792108208418336188615878020471004357945484155115175658352536858304412570387566146889414968599810364619361295915469495711428032029356755605690300417534908493394670373561441309454267084586411897782233510685574543477087686608885323714635982977950264557415368453890137333497106352040494927762850364653537515843538890124723469512636753632799140323602660445348732725637230237330233799293346999554160526765687487373652862019765893209075398562019859498908976456180687757713783511633468227676217831182291571915243573249715505545122205548635573134729872963383153749281222571879730963260292993598623836370993591082612310400520638705533009266711550188321423564540686986172042285660062371463718385049137683551396526055108016668891887921915757606273647237042742040608146951844208011353619284515143014829853578562471490667681215943203848047723697671429106696364619460159284226162090742207473111732246005809125582130481296124487995472319430266007745726173126859554667055385203679012792861497323445791516071546961502634984562163372816874070534954490863196791047408120499046928252651620824721273510466198035207335847558547709264151407789161335065147873266592278535984078869663615632381643567382145264121510530289151832568642374811744516613152660110753381447076610737221595694001008368278601175099278511850650832175680506690676007949547214582611464650955425284443334319165310214408612915131011665203827173430791528723859010989640541723213448698939713781970363574777903913961171956458474016329774870333340155083981166196408046723390113036493357292725741411656048405135811452676098671086698416159891465081933436035214572251447760637310746321314143220180988318909520162707606579208639585788303821807030682987940187992967902199371397077519891634207977315605121751319522310667454261435606339086229475246499432045526763622416247610921358947629807848780936642828926823924787764845035475259980787939938786566290530338765698350422819435042673557802937110494656941081640713906254385583410013977014232418271255344478299725071587205309238913305479066277246447330097471847364768688137028655672282038800952122875717268164200018843123624025220842632832265260342321953078748730800997439132269356903197148708277832624886480884372589460580610066106919013841009537497861105700446584687539070598681314679815719034998897416715161293836010770948631140876291219251935791342458293875774902675090212919851443924266248695945790802682990523361084103150722671846706079807532281951584159023533483735989090366024654873276416751676369053847028899724031399966995417130976377418962169764086146511012750375509052978515489561847007234635988814646864442248460682706616411673897828932623429579853191793243136902983890200011671655646177998416306943895417013360898678769893116252261124178294002445822424350918145846432251803693773857438147121272409035033190850587943071880112678380080824042457977035258643460114274991926718653633672241550550492160490956332498577799209156398272768409571061183741106244323143377709753665480481865935106517450372957833162112001218045571785074333002983818315534424887091003443320060762070436307876370469416250712736767846526257633710836180344025497631220614799312758424368877895968071511536927679007454901207883073680369547123121749544700770893895956689634218453502925438897671457365232214305591603572794700421421838882979826019308308526195769277700049688658748120470525800181604703642266432919981592357917038596096841218982763319687680040225683536828703396243373459906581914235280104620137977745783429235263874759971236306890694089590151963693647134962966748427681799803052802113114373462881374155924591589525849400940903687876881359528515392862714343408817456616989251034379187228004112373168604986807770499985031921371822892135420681523990286216485857252935527693552078901379225029390175564652185709645677159607907120088811529487339537431472612283791732004750109698586789808291127458967226870239014207631961875456169870019530225650972742061765847090944638716957446259371213288898930832591499215804793855621745264903846990808555672334238930658964951255829041935707787497260783911421122127695207067375447132757997006444954932536693878062702856047758532147326078973719898052197237016069901300732377815343836662804096911032981363425933458113868597778092479195454120780418166176440585379238223388939876104968271525757816317713132274475945863791576663439931104770520042158096346404274998572400433383195222000595718773561072500038777698359474321297851389213824258022631075521367581726501586598099031051618758290116887089713546250068494210286507681691256396153282665374095199879661462197931802821354212129969153118671596508408590948024753373699981993735190100035626551583844080399436530288454712029831643376638198288263901595168398466106015718948762738678787360333096776694628155520092252944069881134174074891779806735030045722581372220873483577372452419321867595896408242200102189461120021442262499791108579910656860278992980674662660850272241259679586190532951797676403358754957072381421605709907595664997831540142442397093762094271817490010861156698704264921845509551225300694163463517589220840123777551883757669172616959936536990597623507589896529699947626557516550167237281340590425664927675965247579269712112318087164385603344400050755244743129004799001209913056649271523764187310861949982862262101037026315085145212333319996090879977561542206710134339249382556718683867689297724079372119682126171938968773823485165011266934518556091491660651665772255079675188955297326419432249850966263863497564087625864013771705318359443703952649724994376594336416121960109744569604258095494775094151085339990403503981797890856917668907862915433253976092001185894123287512301881379996902136318993589639317510322332836346447848498966765818036364787677587987578508029620807973189644320760535551423541986459712194268362555933080287582503531822219474904937610309029910698665306227650390102974075882251513019358041231594348114495557681446981726577226432083374088683348418105013001789298604387112815768084461763458184708389454443417200399059678133625764386515788468761468877961958741009964490226755131922037185243125160888297590804532665167806490512970550212088757223978057486285296748610531769761177617197830679923736593677097122134018907677798061977122561694254695703974637661500812465507202130482851876065341074418358850339744474656356823977649145903594134785723328889239805798671510620293460699711040315172522604918848529105726421340993791116702829016166703226807500164762140589543432454319069512816677306027603913330268590151858506682269375848712696582630854814127930107499690874726842072301081924396815903688425407490843330758271004829269067056371405597570226049762778906177113659381761065303263037506489499008098971376562373087434921164717624854991102744836536492443641313644853167123062929767321611423132681594213771159484151110055519840669669080271790507080958265029523814319095939565281991640044386516948953119739246680137881479320646811681788780997577058383429883997649138821085207349810364403052751737944567691264332568576410163511630588511283514629565810971506165122120211917026660148795382128127228756827570984188587727287357423259961551493374357341647689447832263220282011456847872568172301766012875137231301256694655188749394893755661983564786464553034958031190660214434393337851590251383881172007426937178847875633316203118435052369092136664496465505398070902964191169983079775237972403060947143772212893558276665863515422871272798094527340668657957499570154861672264069622933357209677349375526636395563654365335924426009586000079769608493561429569227535103217743438246932966953481833584233327853862057576431057497448992799470804414965472418781368137659056823050333414344070770996692634170448627827793750126134305382680540068303197353082906769161615773195783055839137820312874748826872161883918866084329118925729346498560223494040232354462669364220373667211794393334010546804556075611244506141538109303312797276316712960044445909934823777846459471298359680891273141262245743512078782381298645108490421712745799943247218807931001064216015584081019965219176147847298878300398456744308955579724809361155516044026894457283226160200121010179711562754573137037911286299412541565543653524330834811146063913054768504164549268812610146382804135564684576442413864291051490138083564408032663517633101319509388555164098260593308435729899646350653449048580077323205907488421974273609486898522824359388815939798377256704216991488503829552930866615855149369558484836361798528273730596641627779661755499278414305674261275187412886724579444139210340975029981015590628956342733461773027298479298352394517118923741880122503652687500963206309478614593282223244539626198540800705789777289487888155386469843012290068158026459128623061634123175926650049872368124787071132440786029070114668826679504775977805051975869102561660488275818181051887585720460479478632279121927260907119063276046421645456092356709985951230075441440043311461878844280009345676134173308095971404894498050876718471108943342561313477798669123269006868502301742091670586893978621542218785834774971066352970069737461560418348728470770543216851593485574441570823122527209732209313605736343760232440325495646377009517043396928024356088177456300079840064692952832438230142896192214989273107144213082742829817404437921234995283578532492157543894065221178052255106940774494809084488238468977879413418347805546625617900224769694310106546671015943140455090539879816380812389949966449360067959237709033328779853766443567007822884671724109018250634777622917232414584081423307968642050451826123719017113356283545034302655563112856176620711265411855292341936578203527447953105086145291486577021147178437510725134085313455773561595767410655778866128456280649735083728561275670551286048799929442977927923603733008694923610113228065972549410016082751852497035231670681813136318592568660017310783759799729330748706492468594412075562645866343727818456361622357053795360354012610506406683509914142552214171484445306152940895975571535843138283597317905607859681763544850311040221549643715294723407282325530029732899668346677003592679620497097238746333323726669485012792770286168195144779532892178834382248217864343861336885706204341735378027766086818675346470690362577887231455261036038646433005354106553444916851134111749563303135292047310618241469098670398333637024965190074479667144424409866141352530826377970631083113690991603821035510880015550698374003075654340536948566219950929122872452285471836644853003950339402128776397427583391558498975948996600456232003789642623240457029046914887666720327234167802338758577814972624473634307052587864875634009643405899697839136130236013196751144172453747268655110103099573241172644824136342426769768177531578073450143126108241228553837193008327876540979391175317279388997780962556046947368273859417783248830130906280146158908181826497112465615558863017923040160669649655437410235965810130086075752727558589329053608518164347174140332540964339084306112069649055843312513559327155067892073760774421395656496801759622152635929179215914124019909863075391096655408910582186152347061825328740055496679413593460728841724354416383789261874064987494875128576910121546170717905785139163820606053267030403983290389554336228349509542996635977844198500948704093424914916304212450280798688559997334181203339344111397756565152266590226273326509316387627963101929075314488811721043687669458829260465858444261320058244984840891807850104133827261270593996380729879765845631943271102485875631847983621952193132011805831539142799892811369495921752127674061023749867828981399114104339112936910998565568930902336491932252106156191135725528424731884149550356986769873939077292544689709606621773645882549909094192652006797918230815517947594565557689231051612531072921842588358338230797916360418100110747601910066537720815398183107063929999501464443708384424014854904363343043982386450889991451939292550190244119661516514211478976580975825167749855208043538586123484197440957081896376190431103367137665627826296131378781490377551025535927977924370598207020778529994162294584047090925278859931734996062374946459870859544276534425355337307439011335019700200720705771430981107359083645380848081573800453804879744132473614352748044682373133939119526976420478704897747607581084786627619242315535050871550588351277050091439213663204221677165687988462965493270432374342368842261659900176347316511886381356751067102504151191388197118157654000217798615790698309400108339116491717343136207583842413258980919440874507103224069125887711547309348603181531774655426014547875316065085809294431517940520942920777572533416728969247644753847350086047839403336479601361050169213301419620664232386285330666347326952937483121049947908067821335430334965998693402321211835928961888852858037376662653913674679782424846988867088997057561050251223635322182486027802027399488992013016641626361085275760385630230330814546866261407935888395752102077245327607179576131839831940234950853001322004731311436181282117274235605614601156936924939819034939086954596278154517294718242201857830043957593344702156531773260699145895394509616312597667072796123489898661136387191131268988016578258395144904077347332432755103881833295431419809401517090450250867416086563091374929285096205209920847334163871847394655100685888338217199952525451466382962510575993938011014969236938644933985633452330407580334929748042274264153637817322618790735438163706834576922934325348139674443298014612641335660650693627844527178030207361962921675663539607176468837538999332951872577404912566724982694116572610371428523211864238955749663381147688246021283473614786296138567274489975497547621852434098849321931348658837727674355094241994598631672895586680748172956209933868632516226597005240022040326076467640119416227029185695861757174057546554883953271892890058485952554713805213602490357550074115950498940520259408598813381932223142034767036664032749552459642410845928271846647964647816773069657666330137400952547602887558315340581886300764828755172731344468481564149933226649631484401389739477607334266764551581100620128413814054856290749968789418744659348699479948038956591642535895983520810918857795007191920668661755071544206283019368786353016527974389227419609622053789938589551928833555918122132151017807853375194035527966703578327103182536932303102448864550568124658650060581385597966877018157994040492562508158901317176191340158562371127458548223709751047589070072133902537430565287136717357112724553478690231487296926491725257188910395579223493705290215867589991610022778424332957162455233470853516703798504702181753981258677753807370496613770048676421446696189647809489270928536208810198140901067850696892397904211330705872767695368687848597471545391173083362483527387968923657129854916182399681450894936937246425818338702620783936091266386756729280802934788082163910862528976376606354245791334258019437223076302046471640138476526719880787084389986564934885178965672724300535705084957822242736582324881477093910003485085039785206806195809796094070599792751239342666658056934001606423308106846365118912545910452489880313994616908018528064887897540152103733724936414108741848034441101567665276786952692453524498940368799173414942871643257578936339793849879058106030879912858054587039689471693017645869167096601803173614427604988860913892881087877408739324175320213103437361852295857629185627691185872996684224387961395265108540016111634973398519231633730246024002855579674492359638395117624087752577997636454510869881125561645099464767234814253814037193529334983980911004413248532878086414595298866828964373087409794768872737048350500174720879668853839923863577512480944849496249632560668408923385233848843963827260422672009700958643791028457224496191866345162179880844830654740270087736708125661396845576565010608949056475400150636076943865758075637223188261859695010624468259101286110271485805302598089317091094584083661045085740099395465693124065872756187436718302300523750435380736489358224639348812107588516723082357946808367259393013068140376671881137744505525421079232250346567967828591376156063638759162740201899708717946895073438630350875226346197664744068936735064846068689019670453711612447783310383369228141109696692743972078719691112707613310829755215387173295609295719347933665717764300377306436205265013877331253330304495498232714612168799134590570533962701631752929180122190207290412927470737439008231668949577748957982756756308627110696982531354202366928775298510625717160470769862912977454611762259964574757894463363932042332192008554842422962928844237094214315709551154643018645038184436367743248239625546976775104603847042882254944625819666867871572346670572166035233074777993124452099569802164137359508415707604178850821771586060131017050654057366881713349218938562726486892259241354726440156426738872813911979561954215441611500918643270106899731150311938287722615728940316290467588005074493112148000373593182296892310442118877309753479899754954293320442081886210951785831681111662681297393527965259617642194653554477376168393881766278332058851274475906600653738004699153877084505952843806913610742687593534673071467280624323452135145957095370557425998718849016725315301469677399068915531923549305352118349672283054543767783673573241681313458365162349033828639365383972948906550328257067698507078768456708118328099138835981240510551567659401066553155540475152103508854632013715728431891929370951614502979460927610420514155012845866917662953318477131016048146539851169052060094923637101968344957094989599832459714029943627168771102297354525969458093173039043762214778242831290360835247434756887541708464139407400304820289504337949383754388408221804860299677645804177595860440902609440546681182341507724037110643329052604675205417370948442547968793924444093771825512632414355247568496940222429474226587807334175332228281542934549496885624940497564365856531302544042548554338746858423723673945321245005382264749756029714879016578441331169223798113488533600813168422580831479650256190337104932982992683055051629151464578532892662113138523161244154214859869066628566538034965878858182477667432557202392553488423332975506586628196764079037375566663445401935715155496136294657600365287287426932286017910833929014174716916901959862189208930709325213547861961263369231025270264405969108175491022674099241016550692192755587157001720466392612217213025716242134582102427062063721641607651049154279956003085569579490498485587801944060830430099452256445223538223055660146849261184698082662922800782384975486275915580809878037265787751551370476126801420145462065528274038915584786685241921261291233823253232458689686377276394842766131704202104933996644898368653264062863296078252158403611963736001180568777076743075476098803863230062487350390338720537863082802570463714731445383206374260396012584781527748684443131046796609766610576450433798059429431071675934570113073077633595978386539164620556622542119447671145562679497743626018904782489052482373308008861139604157435957346955713565378680500242577851154772870252233877235535491913623539320507513087874007363130372540563332503745312944113541929335452315732037574598451361647247311427272045159429396411655412918415156522309218854017995711942508334253072652223409319828058925777064800578011064791717451234247558710609178328784549074759651593873417905004330976453264470577071166007281697727978879666938557394614723221308298988182527007657204406986066563523238920877891003181850500823135338943349239444818679162886000604694999252048431218946976133225951523516607132092514832389611777472461053358088162092558460364343905457217886713201194287631186685400297584722216877725641243168552778520065457502761258412177122902930035203350489287126274742525985145826236379543542880306133344854584909789278443234237867087605023809938646790768068948618926769700553501469344266467758318209158730343563639625143090244671233041212098328451954997134887274331521234471390197423157453676430278269930600406702198166842561048859053083643968014952866935583489086088521731376313154095730928513999825152252949837633161003758851639433719625996806953420805483431291294634257431785839513760457786178551918449891978757497493058954729460829963108636617202270170630504414106745161388817051511319638314521326107991141592755676516261386616307795344968336045180549793934035994659611041726239948323890448750455651911760108816754305713190015360211028853015495202541334180300841780400945947756802859785846233923303630922109336611788831522499247115055957426370807265199027510858762685871357581667496132776375757806918629360957352747833841524818134114865204539674471972413756028935419938819172727292410832401400685493958262716009572282215954248398439763168428370573253387352952954880018664975233269226827737556973478426898311131149868499803327033708395216972809010843227002794715955229376623941249399190779276661119638707317816120204978073319713407669506485578579230111594276192381678879279806674383377636190401943444879000451044501907623037683095835752557717938550159901257946946290587675348237902061636061273784107714244836562327116831957777674160789487963854389265188959822158441785946761022994182730919891088629184099523847890027182402832398412747008369324626664580730579794094424185802260857496522816051919776228330246827480106507492054074727234542125804399840576641837525708574234093008634996221926323280607754042753444884322745363195682885602242660190017492381075662121449157904380268902569760613530879585589297387869857099534839466830410902283192066254106595237296565926401272881770489422133748071753288861954858246130308081820237984756607816541732616898367382949977426732945370100067259770056856583223993657034951949521778058619586985876824938710947906839909985447985401599711161150502362996828367959361326047575887517325871387513166389537131727198265990326888248848947196558516752332144236131492377577276110175975706439441101479698141897174560680494054972147964666108596645923833354746424496438445664227932382149170794293268477141199938932144788832456401166864326258814587463297497520223541649077964252937568511291576011029449823069724443789230323749797208548358506220748599634755223283126803181931418451865557239383400422589839376981665873666444763467810890820058612482309883156091308102039075891448826788441536373362370439700818760658210426200612085421191497377262610059175502833567418221019407070959985002265727642780146109439237277862910665781186137298145420181933125691800490831522276560633242018696869629579697851445737588740067510208752920737440475000519941733146281978664375750115455740708060034120487913370553687840171016949698288734680830364735023062925949019241292037492441954710274426788962249300072784829544138342598969616637174864303782726087935332715676425314517934547259308898322880878221524165009287453421162769845838607133133924949679815087480064810448169085237331730181806433118102848952342137892834429173398328776641543061465183351066268263188380672179566440919633684436191575028342347257742823102590634959787835866947016244362215384471285359286688414483502161153535526767919318982828165899473287117141905418452606508329932317891235926369026675038977228060191847966458029913187196855157020086032411935573469998083369453482776885706441896415897928959452697158420102494909356449604505947514492370267572054373834105190394133237742732366689287763179376941362273061130560555827952974503180823699733364324334674915141380650995109620671557031491520086449118058920944744720414073354154870777072560946669711107119852005113033113700936757916771456345253903035054299946477406880360433045233862007178194299914650064198293876543983780675222296296089915548459765300132575059286881273269886870448108268284828889107324107832202517416205338661247554489774798536813063963482110858777534842801009373113074644823482347019487719383826669780798828808569795038544394006373723840704685167299139455495523514449433392261612037561702161328427581103560526246005315032660607915616517848804713788136252022793251259309323344522240397634991346947704461789171003110895184993453503692854643175477715779139287723611469496124520687808844319218181952322563668800754738209508661717620103513013104421259403566678782430617264362867987946501517801939738944731066587894964456860260101658781236026316070775833179756667213607150242065153048861920560705738523856588522447789799571496428103958887439827912240644318307268599014674137677025914615291217068817670061966793479995752134889799760091599843706432754554828758584722491699796232554468835348748690091611092242627983424903328300901841687223533195179664368668651356601622105632818947636296607086655232603895382850744455450007245276978587329347069757063987238038078339496634416639732471196045575249035117143680613417975611585753175884444227343795231614124046747586274031009932559496419744625399668522898204890276134910791355445251343835821516270294461617808109207830706691881175152296865650266853951773321448382727560290797386697404096190757128478305594276262401590474679639346892241945619618050715294649758608563235445291794225670537428206474725182959888878867932776785134940029743734173398329434533766389954689121799254861468127175084740842264847229770117849444883340414895097245273264015861173987839012917099886314666501456521346619462849503679163912178807491969369470400073360065902510308927097836332442767848999190418897925729634103300613026467460080704758850023702486662434470030432452664845247506070215020018342992477091367640873723802092257975754349579653846209958650873722963314489443819020657427852590918097666086052851546591238798189333225522735983178921426972666886107968889547269700851374300492353316345215671469538827508324594136987006468204283428730174096848464236464577018865998837107280184703699482948332091272290036246391717837317928087265146140661109443103096222786992031877046308922360523329573953984798266455900993608184539510932101449073666472345745152911207388861691971471667065202403309214413781858691120865132123121293498995032633385555443483095337161092263321500644719419665907272526482161034952738665596434832792628546532973994234627269669678703035084448630615194752502645554197805946722780842699884417902165470704889727096691032870523703535948606812126819979198490719660207831757818343631718202900150133628280616439249654769238610625640613794162066581811029780093088859509085506440831114390160418585627300800353552015062794466733466077091452594779796836880218618429505427597180706323269685693121178683927127329304191094779398553695734458593453787357024829691381235689053537395913151477767875268568797764621512931563179682458969679353622666870671799417570753189228670662965119507924468935704515942123524534163886748331432871403189318274253018622158346909395096611900225569878989736371914724491859475349728687311119120162798700883752255570177270513361582447345711420033200977097026800306140630163387386408994410920168513807308252230219142788629988621438699329949621467473168508871016097429204765715737186786945993512820702876284510665936497993466482071280316998489541424108538462134310752585652000215898613373737191899932462415893134427315855120997358846516566506990402630007784557702480773142229886002319691154148649777103911421787979327108279924571989427417727067277830834590549436709068849653335561293232319894465900992493975575319138546820283513878355606944312005101498773801641095225209938071761983700968137232507785493491879480842925156772068923245017836089684264336472129550654717356142234877414310371962252056174925361313398107279119409784541111684731450362402260039116228576125803866536460750101023298903309876808330706497727635375261377421861505196324455470456959772517444168012726999284987423504713695645906530171540922802535388206813951390299325900775371225072295512202377520237164916335621478673133560310738051187271740718612937649822749981811704887271088363707438097367544936116623228508101370012634196818991006002658191629736764427163250967161809612893514711025342773802816327378425701451581796241026969031916321528570151202606151829052862254288127829957734568482390992665200749696803546510091240164168737144406560721145864609982925418724362892216099000855264401991613031302524111685932097743567934771219544016369215853506251851656266199252935689545842452696554097063057236448255647276839645085284119570787538058877682188176755182198924018583575613359543700961655031199503717182369785389199030908472325761414704628303893055913503388165026106290784361362149060825571569940297477991831697809583422153314265434579205767383978433307713006186561294858331544252985504032763352554116232000702477695314422849725801171960412821663586280599660936444895700728602399845323830451287838858854450574434337018260666280550629233165186124522406274705749886563476535290401018312503547357311602548807501047573759341440473264463648259367733083423823533304361006442533312673801816911082210317322098635968317640589782374472627820104342267495925555069801353676739409492878515883416615022245064752736679387806456180626630682375058221715797509746968176060470975398274269205210276547411923488610909977573463570600270806174635782466350305378197327735027529423269237869878383206872166636322519375874020179391335277172046897330388881802559616681155954821902328139412596346711424934130509652262582466458565836830784082045246116373349494663388143979153996807557867228418306058527854471350669934749498731445898632764390834885325383224952156702170297376252646050665608600124447311579166843225462988058123303153140116042539573046545115677230723248670531466512162852872611423159802012324217087886732031352453191264651298224745380229179998833549875687801227028598840610248910565859500655770501503287370358030814267983579301640186208356002096226120068600494735543898601714609155360472865151277702946245588453146799485141348587831337353148276670593407382387003757778636028737550711069911111459303354842729720436719121267622279490220483255218931766949131933589611000925566019154671245232985334881835457663265178266130580841871214623166638300540720155347120716893559100651234593985714909444509086874698904954084015026316584480619262967301365949762211291273179651794609450037417153779303825390039548456225607804420763525254150554314992227213948984278466390876837967570113961028121556614031106014417585504902541655277359820513527491597104566666050492322714448747390484278535452759583714585369924614177352748902245514808033091750486236299611724618217610410942363603501128605485892395226858679287614372186093472634119621043057532170933205466200965484430925484823372302272855939773872886959241274745433021081694777932201185225404244802546892274129390204273836815246858982468096286031785663718757302388432472469111038153406571763098051168955202132763340404794971484167220187698166839739843750116391517899219524497521468610871936426208243361110855262762607773550064911641560888996912250912731584069740691407051044602379805633388596670944143187692167426095777663955098658722376796303252386514794582536731169488133617385446478339760458600987044211596902417787423854336281937756443164632861083452428463144872721070753866207045062776729250057361925714677283316013541501876247778407286745475804086875519485685271770876490233606329798197084140525286873991391184805136057585230897470724929559234884927771005407150436924582125417231725107073341630351936072439997454169409651545227988784540315048093025757100686642537390795429924142969372997165708167259980011299204394028791948838599121063654403688271504963344923659342958301230051957194470365096502471849595554594023549718897565543617662819474714013626431847020845297470039728050510768607401879818060787187194623832406811930594837259981904154845087508388138041831136560733414060178574885215344136187018773099431700910394726014838847913708629791093856826056091421168341074297227435992937385110488303344777952791214933308068947566692745498912940714432038085154820367122255585275063485913565526102965723096143035341202204348952448438559924564272960124535553454480374737150241142016948864660312511753247245932109527742427425262696955370863691614506711997457535604667229977822756712011332183895984065120165265661657429691733778350688429117520028889676545197514996311135877523204449329165855685798841273523701463676931043740133179762870568263553519555166622154969308502829793670878394517136150105951348508335421126867959922799943679685572291160664686643313545601651706879469294371340121793169542829397060894430643808013036828885097714074779210190266529006155392854692063527825251858615699060134327131120101149730582352778188855309292406275783030439030043737261455426363054899057925595117323070315885770191532863111755226739923393540910639919848781780480142693322645643861853455332834569707588449943380708848424377249568050507101724806414812599421164528064917309166977352516611417412953081739114378840455102396878985396445019125232027061735531010706727885766084311594944533345368977530283000971953473411241073510528814684749943148015063453304772661688575142657255974070779406328944817628140115948008969677324057055981300090552005609612447882645230884337927433294133068152921140228082564740311148887366249810600884715838018394268993527660183310503928484498345312728257310625522189209669612642107501756668756027418935564020445192515556687473192818062598263154260517553014109373166893166454014619593889963916674560795952593457551082323721882349746288673246343216423071533728657363287316932098160162408833348121038493741900096059172932234760044206548510435840720978118447966737116007877736585545187677980877512351619380762810697709795865614714518123897590148995507849432864356928819786629036024643525797966745206501190752750380806977933191906273533109621287939346459322958995911530377887888656474424301610611248041816992802807804878369690842349203697297220882435074360060316752799880797357062691873519410579362268108585567845374452774715046273343829259865708033020935015970548124978440941839662108415125339535544874233956907758239112162549624985764478340483394157607841707100756161463977609780389760557258103405046329434793552244614072376815892396419859453517637653342450248247666698778343742158556075459284866889584414829637637015909937447598057201015789957871714043186330598360002492035751985111254512833694659128005353416685667405173258164005761200783153531284696325872156328050370161737602065763674000512406878931498324514893090364426688035617820315365437196541848604166581002241923678192303923158513097617218271001665231981051393542913144920597400658327023269301653737367821407101894263745546936256200478493175960575390221465167875069328852131217264746008690922637628986050744725166649897761026182831902196342413414005643535729506411260904256748710298079831895605626699973209922634320071092627703091132966139629372263276201361352854208560612744901719711358141217053122094615004242838197518107752969640147865929752461344689722887812698766319557833909010357490357328687418924074098397186058921193398883424995174623054809359420759330577628708834656703904343576496597462756347049836282036834205341393489069243197140719502710755638499073517501935872542779793959426628929950794270016868364741243720200777862355273629720660095235276490786447809276562809059384358458350719187977407466470812729033147209767707935964499407457579660468431445267367945569409163949982444231834063187657238913275637752025734361429521697586895114756779539250780107070536891366642668880998740989644397670469014014310493928061319682150327811398095782327057313816021272217251881727722909188430203480432774395427788788617346854330881158447737292277573588620767236116460441869350117710580643061864723114031907558808646249903718134025117618358519502114909384169349280335864313736409881394733875503776504110701030961087926655804351388278541868498596936047669087958318097929807629107065141905306542178700549474495777043064237825092189789483006006695060807476360855706135039626588206757503211051658730485421441001330267580517644416214005239563731491524438833178038757499537400565739601351051087625204663181163764474209178891108641903011893525679707826904735477561275957782266712226247508745835709176641923351131914483487809568446688202148105128782935664301303832801661571983155053882912424910505834133974482676175649787036640123599592575180284884176270423020590251156512535464058402166352929809522700401040790128040026304942097669563349031768720308197824073017944486289065685800605872273821561264848028070354710330055355592143675640493778353814758834006810371131340673684442694908514444731398959737127800613584148801350658578473209357556021886090888033550717569039284021440022340970930940080676993697174185811713275522669891410366575276247626291718950493897683167442454224864705972512881305024358671740706936904151455854221212191492148229490572904008026042719220152339732105950264918391525513884553715843292684568913844524622060509728986430457685047918874935183148114349726437039081754763036040652436840523278875000308038826481515468082096788462379407931145856876314923490297935477438238060164481568511219706879313502008180832080469009823404754587228250201029605578875372004551785142912854011623599605176728212977408843724821641178556175442058988099791381227173853426520246813491407155860763731749061115970114077100824939826623150605053077279852058249150782076966627458050880734177242604838083670449794245056043156473876580850777395697400103897683881718515238053078211782434039696561727773476894266999939107586284099624016429332619781342509961847680107396308832652706623545831208800368250320081547586285475889419875978552927046823757473787388186981577071966643253518259288317490321069020829302550300827626125154570910552288854097500830214012590247884873061583136418056064659294693978270411063808187689978531496046561913469674269230692218979449349635431436838805578843935045696372634998890103445588730164149554654046656831370964789270526473770804934522241818656642119592807154585986525156679724072009169358982711138804053187680707665050932784710032270436733189876279278025090943108713521395755085828225002975440683753698266760808007773674268221243621586907129707014972600496059373986972576313675489612605733886713796100549411239013690935022545087250523159907829704921991359857542095466773383611946399375351894638315326997935481350818577905034904787507682362090637715722535960226572650832619150031284775262498423926276405927104747915973265455594638480856561516617267795311178911059033450082463412923264657483407007925642692628167820329828168618574923930134471191660958683437080394328944495566843295660702800066584821283808710709967263769517733080658408534377454699709601847921071007748442690682163174559616981599383935111688743102354139539167756321732434813905010340793479719300000377125516788814531727620972327729808045082145866766289595029635113096208175327667988087782492429510856386015373837281061632580948009553885103159869749941256140232789539989416941051887020017843351835857283030208230728462040235254282526778591505289975616269115140025224248605721116956655652487550557114926876275545868881699561636628555454001156325395190168215259403867038665572086979819076352441649638601670421449519226369575934118816358599778059505415490530872541596619526343447555763933301751376638261175778251687724736595837360764389101165730222369276190293635718289753242489750805124846064800302911477361333703585116724028451392203639487089056225225666855477904746505806137149287274031568641232168864037745014571028944835742433274449670879206981695366009875234042482302826967087225224991397919422867029184103117165713231196290587466318027792157685246922068357713446335212869718223266536072443662619962875432782581474127488991061289129921604162386973193494431368005577257018419937933695033708798998580515057972024551698448975304886391540503394613993964041999062936963086223910081377429772876819643883140225786531181887629025693557468293527111546698562534111872526287095518482016919997347121824054464338913302235844053489545649697971446407893935139532633629419130695919357755967595267695665559965257503484959924404671439377749378077224226878245299206976577650676055320274080391313462790882984440054238896102882901337678360960908325584244233030155523463826299396989974299352573069910080523714622533146938460428126350662456727429251340940406378364603754384778338497813914691194074713466114829561341372934706469874566428884021485518212770432053888901920337455754073750884120483314134105488111849321010643217100267744796377363674947783603918591498910231951027879016311766799453656311064896097719420547419017279024162361135544069693282640245316597748635117128744171784912352874318260466016459540819204281972140421115509222026245431182881932500868235266800841293879772929015704850883972876481026280072725198827581076222763594757461129830694885450654908422013957179967633350671702255048007683597074112068808358383206424047792210990619942546820511291032213640900981193185516934440855319513455667543153794341077806001695470316018274239150860154850116077442053743695368861811128071078022904829955535395091926376842882360155947195793552433173911600661480497719307235829348012821452960890189934433410627229963546703897398749882509256395824999593835278527241721034779974867592238588226744709979692137610254968868318160133515319305869098579101136830897900634766967394077437925071650110951285921062739565756818338894113817043534722280998740645239379082373523675683849826853346617302652335194322802704041947658301836275239860222534686548609920685835851764310727453917472356461552593153521276709938688427769505730600838939934721478301700882130558736194345857849392163376673340253918254999156936840320924113139866125844320140781459067986775921809340220136294978991672212042876710091351828482155833306825508971424748326343653175881976362814678555361922107550239065720701872889945116058179582778817369260605235176947853953369133778607880487950422798013663320471951163357596953901423844374181433854482586482776910551289348923484505409286067892382754765869198884407461847887863491424122051367266949867812712837050381778699686772649533395957280485111603321920114244840881194520289161336864742556216983316912548189120990912110983714299011875345924950562950991620904416607735418344478434872356872142842620288230595833936929964367487439964469772460148480604636567293010626321066396562446231725007900776780818034005026147507579879774333576266861285206662738336128306929690127807265309607233407215324325459375683547585277965966783796945151852021722157283720406745308167848222879070612714765831593654288770260901450055347169546267216909295975283611245855329411553960932769365737177596950724590196634680381232553548440926289436713007097132718229363691485434881987192627762358444067013545595041941579066506340935643351297199902594862380906928165296572953005008641303476877572473771103080138896106636306533508749511139457436489931935752505508270555841666442371961568098682903141445468166520607498451949707283197967446793946469311856780015470519234079037449277000412516540790350437057909379724187458712307591778712779227122402788656199860578136214846734130420863371222713963075175538388201509011946967666038845619173413071659779449306734616262910293518388671913921724835279999469261548961567735978235883529439807923837810892439968758383365214643307096293151688860873697832827151394190117873293104667353301137875246367413629707464051813892066273101520081120487391238150892573365278651830645045328758865729667646348859602150140873066367894581157767222943952383180518778251274983515513713434084615314102448863560336638047025067065765389580320107712413320376295252654458474455862237246800815571062078295100288723208620037101507609766657740505738415205516084679865830374141967061240512637542413905738983155283570668103847110027735648760124440924858619795674422128653002222926525744863956989363733379236377875646840626640295250547741064448360701351829713743650399323969116274643114563475793648757205886125637494150030969938475274236858566752445020438965196503889676121938714919563382973690423014680623359055476468203592994071708114431671842046216285208876011832849630310542131374427132748416698171982347606011901324396842810075732072960157285925886532466346235718515149148983385919473402702831326182885662843478395097870859067100149030982062084953520220906182720728054531286460216534591008152202953952538724424215530675435330601594551245748649069482339077654921317540449148067177345949095688820332550238317949244004972013708125308905033288787394903615166307780832623798730061626899008154585821928216148891665943681181302601793993847457822596750793189921269344449524387974817546853159542373116720606219732017252282048485508048094909975517257307464821278248205021324052940625337858676417239892064463612711140457683535687762089693135054333148412588746093172084962527293277462364097893318058719177763650561523010464271020530329605716093089694751474340426174277700392491892578465272150455537158577082649059302089047946081739742108099622750044652961877061734278392720793740832069366724423459940867352040072265812619653026574116975276209170474255817572053153499450443723515100010147159616062096192992199597358002000145440652232802205590522945312648570092688113464292193002064019990070535534259105754640739488474256489707326184497653318575679420876387475763739680202343762593527019049882461321877343455311793775693683500813856558960173947449721966089200308828579018649487460349910224251315237279390742851418245436696187142933188006322387705166187933034626284597432354968060577396654818161589657518212830035364528621762781967157759461451167293974466567397959218192612001319221283931715225909341144830009143704877113843436550623722544874129288206655939638408705988456705048779663714548008848877903102551620549074416844346327164255370697251069558500127709365580144641763613013005326070816309450694798515047574213858264216961180880029378943897331391535150915049766740165779512017556269277470838350479246203984349735133927944836851574001053015484264261858156609576649696592927666986516425582950609365865641161809594884467417390099796933771691890703663080844117044850605961722777352560873666702184331092721788568189956767291073320914165902823721632877282013811013970001723975362641547752834216821130611815710591941417861819560687374576087333546049390664413505259145555408788652911243218210321259076363998588417410623925385230296941213737045625816710156591093016081868839616952240570356839576732682191857975535141748784570643612036758166795689601954993787022316627359654323687897775108401854200041693756730443311825202477736308525712800241606058839874975312188707553115196752628765659210313820865482999403891638781383826492272350088567489527006470789184772904147633383319187664377144550358962364425750885976058058222018025724058017333952844321879278180888686435434622389094927987124023091993811562849928189467591069201736765393186682452382082062135816708184708098834193597855275258861599981925393196164204778491801523795058752933073109759406030784916030349446420956538956998723010626009342320213229186691168897900510879930360859176727129464659215446743663862209702218268996512315665857873232104621274517031986581827666884977376462299435646549388021998635917723328030593077317429617809748499832418761935750738454405302191956387937470757515571294780457094838923592974279593167206182108704931548704859208215648533080491591143913014886044720864622673517507000522708922008295102815462651131622985138749607650112240110496984518168593530562428815268158024268302519195438842034396904718617818425440413216258537610998400328040461152065802677669355719648718763761611785084861425322900007942751588342683553088986249640231739081924950425823396355794066625518621055834354405888867896788650944126575420197911897007202009881950159516583791210955956570461476717028038592267850841481908790206047753536204093197983456599704608983564503823364048805522797886553660216978174229524676550442943449483315987283244050940581762124457607633308386187125153734987105963777501935077122032813572236215280489832883369599161350930872529771562842040223875297469580195357782086434682201478236941587274512388873057207386491770063367879281539289625584809219000273085012326679493102768105707007790461608603580466652584628118083900019386898530420192247125793017479195568055018499713318963903325734950129104824584717564762989689582513577558467556095976997366244060306941871552600775756758923806499165209693291407612014696848199727352798026321316159985533665676215230124085419849124394768533866880346611005734371325273945229776327162621252010663288365126663602915054845594641125215112446492739938599657048258197415221110435293386168940686871400219080513341504117595885720529498421646839734851960915021365112922314957890899197294735682224864147295586820430087024600958436179011326938892324884216151435634549427755603617527259871917009117720632233924562349748616181687385561516711520782094526162610652917538211783860786982428136485835920648668518199641023590146235792716958862025011184234436927658554188876627937899325040862194959301433478386913091741136017984174183065127825403540141845971599987036166534769834258108144985898966460203356685219987905210561169132610641410184267462886323061547017278728258257499356792248115734419846328035358420336616523101881622182833852486837015506341575964368014697474454358688415116726650994024968432002911391938745911942979835459714434063800408534770230347184017559365875773823820914552169176509302892863992218867689492754980014110641215784530182727093005452193565158195853334705845546639880875501936432815216565434204621456998907681880795973021246920242341847573740562624708657792084095630742856993235244366237585263714910041602649132631974195770434641847634392671898164511791684298904145224946875460887298527010484457529486883703616949552486969450945364595412740628059825957053403587612226676735173078673861823665831464044437623547838959711355126285235683761310996250485320221700106074201791773120975191040061312780446752271544749062030174653352364375031847016627302088122688062694925572189667833163607786192251234536428824382941755837541008223101974473218334924046204166487071549004244034964493968546304338995713282447182926828753609305603040351129652245417295292306436985117271960759498358841784117054634527255342455754604435105988217833474170262208462886516227756178063749698533618765410656807605285111965659847129784535587193015318804345361787330654009084006674537756208815137468595363249684868378182793598474252472531817333387627391681511456087156222581393201049491817895436753751264560253307000146841011968181407433191724018489036018154092058896909173582549044729312406490980442493685609389212797270748744996420656515415388904530958819084782941350616875295725111548464885109194177244667658738505277947857887076201949504846156337415010042505236223478824277980619129190247940523927481409125375587879312938091507095751370997822736526772068970794710605890600434814047706939327026545807053865160032848832399083078424506026190687447355186945780318194232860785615938662601225921507035449101510046667689565361263100506001114331803139794957132348162057544457337743320386089518467340186377649006294212761120210927060484051053350695565429791093575094664312278062895095238763748532117993510698197405032428906274779972980855809905153145233798156568396917395251113777599475974751440010788554605668806659602968156999735748509839315018837373168759411286501635569867005902750823700925614763204143991188203586096709212431649970178079553983421208052525256902690275788979613992714582625052362520263420565594495921471304450764228308436415859614516199702801681396324896045008825202635836865360147492909580284849428618739897910000959461339444533586329530138956148960042553194692135860824378324177310485374031312884453052878582583267278401470087051041760990144903992291677445859607932616379071436962574798075980689073088152255145976910730658188691142587532772101827113403820141354408064808218411036714417720913878906327552258586488813608831330711274594008812100609050356397771930590211638506128537640927833586973049040908691308767211344236700553069417775943606638430128279131167514731471775723648020459752771162217494243886975431295591130453264950788936685268964013042545630688999932816189555395122345759517094353599929523430414877156756938024179959974264026767194539230601425728253256883387926682741874365788440586020706885377922646369003275731105635464063240019531900557135476325154999971103002965965503129156725810434925762294748672173155867216968449310447038023949037560775018391768286324398372820427939155413198491572851783685016907013970402003751935381377085580176471578316877095445650219139190599697229636858888504304969304445798349785415920973127023810218612113685424589267079436967405288179143109928052555459014619175269223727699098476157385334425541891281311492190214004913365310397136501369869402532218700950157086365686996995734694893385890167392639036954928230233932499186130896210822181275170306410285028093226639188074926372315377933143767078051365864454276410950574354639470501179680966746016005743008634058749358282155006488024093905759841475408601893693640957567992190959926682699848319327477554749858187269891405524676790905648913689560320207018759751332398159661792354666017219622321650590917913668311015109705160462102592776179469712538001123054469991698019277582229861307692184596071744560857579416216419711914923366281951021942381663679387946210503453329607936096844853862428421450598074674959257307213804909496484303557034221735054319416343638714154138437305591722218121881480987926982813580483627312634253345118865074277088910445601706276467983084060025834864863105855563416976185901000027047523836718233099454418010877027168843426524368517790277765493254998938056797125539863549987583403425513190006991095490917211055889289644371276333340032468659102781250481478653040560389463696292392216681339622096943068940485514583470798837634788666548530821101398205384396965799455058304555243523807479294901393743637769905880607778301721572266693617712903485352618882645710167376722787964544431738798607128593366917184557210415475230857320634930719273533435230867094867685603765625473808610788836535877757371467849859283221321294425047121932843755187751616246866457936807251291452753078306963483650598962064533440591595795648214479787215256663443667828272434847317154264763842353988462289720808694155933905895162628055480716397470105201278960384836479520571763157330777201632440881845221655515055634308398770914962711012577084464741801061206909401393809343002910682660767746297677125730791558508448768801528041643450057422425200524229107639708117169583993013456387122071333067759163526519111738140010981021633393594085661256738369200242259669618269058109812253643938071176896118554386980935976700730549265936395008663565662538581047990213295942075535918020876264210843766841418411637686866766789680786706726338227854213859056121824456990704344800491703425272374771278862309372375279919193012423481439776957522749010992549374127300325712204516898947127150268868989278426046505869648667491197097569085252472781163991660528847487123600045014691539567854495271736527905344736992568016308710086755089039685762495889879802967531435787828901050985633408574740632665618733220518618007800644887448112843731819007430021479371712210129069057429440817589638901752314447766995569731696058639054083418051818787846982636503051684240251705623013118417888333296707198984445924610383364298604011149351178606992822810273525308413603074303587962936936802029460460215114577184474528795327830577923519877597445121400241987211793757049328575898378534418357136906019184773860263250200664475038233033767060742685120700630248304371522997900415885525001006331124352388190808611205581930929388536569582561943091261553835253922150242051955089364037736136887487971991447368690143441829054873134957148001104737742596315821022575074719423801026654715853649763882946049911084192201200041636669548408136994007441305283454582042087173840199580060653622940634776009159803398452517267893252869893951908010065912413400772995665550804610183095075344210933420583356940376938381237599761489734146477736518207088456951055701368576015037866941852929851830355240532792484729444332012555668477526218685034026046019236861113208566892368413722509917931532204347666317058489646798719543374120251358673325711228969322782173435466808196115931481497774558689611011853254396757150524772174813578922714427370188273499149559043709629755398809510994810066593974380477291959991577875157956916785390377188097947172545961816131480451850636168266340594702124903403778762677251110716390426650928892114100078360831355732895217132733577980862077147683608673709791075118195643864754425116848299162671999154110589829110513793883927900490481365209746672205608291675791426476092993797896938744609402017374294971444056341868867502745543117818267152193023042804838350252414183027994379966547452927533957334632533109199179797767492185474709972660698342316141780732467084265788569960652255565488490355130074389668441001448205416835586699027017015085012892761693508523951964004101682467213976883937563372619657092458762824935054520868942158154573298206685889884044367499530972330200391541364717725859496728520569248269238150032319776053521652202774620867155902612927110025603272333280246259474614019794207365448250995538624200589783009560929242420669362121116759193478597824797327994865964298292251499434721854398335318151878338275431004091913243947489183744989588992200184780309254911803917135879367135236903409464355590092004515949023458472695535538173285970536774316134473037662900057043763628851737902405773445287334912410618520097766464139296938960848872505591490165006332792085058574475560970161681962699857570250293390259932568909064161300260315544900472802231570157372520281143823142159088723919412709219031858687977052475272399645984900802231659367775148978312242057471206841650484290222858642532729036104844635023223445959540044776090806462798723479955127464206301417796109816820233821260123636139284285092883853498482178040625019796018887533213403106926219194624285381231402586282840815409467367824234230062127720065009867435042178364156803910023650948636131533760931141987916884432745701377232251372499724689076750177269119219149911172600238143504634708109075388040295984339028818006480748165290135102324090532079015822822699769787374800365681790909134831485000801770851228671105350636485744768637801303677827691055978800347477616639698205936382726898261527794638843279522303580026377695774080126974640983053716582982380097353005362050996948674641013353419488137585961323153704340253928927448342657796599916246233557630545741359676764110574444818828091834775936033565059711108605374811801954323321088269396535534550100761465242826508520291752001965829005905153960550048789214083625537309246598139940120318812487662481869380032015714149456092332339562697396721589942347708155257500473780715012995603535475352446868997885072027911316091004592330653367041265150932915018413463837830607664167392517464128460980300281624409807213531941967210028071749480826815708748082090040967397641583525592030843356137036211280983664962021695267822953135016935026477958026876511595660793394070886760227091839821283608182251503849480074992809439233631008919012622626868221157824008347163270525086794900279335330740507862936876071099696504138133910325878624935120955405590850482226129120340092807898322054093719644342882890130163621801327740194887071593976077789641260327235060671397151208077153518519680098443407766126540032044091371136777105303809009964664656325785612528435823256504080439760786262979184451420178529451960602671179857897738752829272436193388295413199890484919135241588017093065727235641780894179262503723083709127953353472235782829711351799373157111086584207690252101960586074993948995462604602940980300586299813380775120083276248566420456140038690974725195720585244962857331424837162895475496553409419121735860155309884640210217249578255296153986972476667037293915313528873344257883627408756257018258098248396974687234132136081537701743139874537173813824638594315214702431445486296442987887160069964000371042732692202979409836962777957084877399495774280927529156708781707508186648344991370370825485764388275947810270319904037862190553826459511535918139007324619989072363700744119770856391792104042163787454839688946505357376924653679310381796965850727444658709641084822985270250329946408086292768858817884084118192915662719982991496728419613612676450234837684618819089953481295016223460322294312157109054797269704443051463393481777971013517139551833927196289096079304090117936551540484228367234805887125626043070410501944745786591170255051482021419937426925977212321234393990978846944517911280348442588964353001974882042094585746455473114056570070540304495417596352759194084090618956892011743178945239948971051490891177979624782810152410688831666307145781580384324357010427687381417900097512719849857988607200153628263805079349910622712198189084460017177956462503474482901120099011136069304618003902048808751940330712486581266678800257154996110434580755579436105313658422191011922250635795326573052997480779737331621057061887762781638470455333592757369396877926940122910850138568888475712462212584679723272343991014654986104784193629963545330814633707405441080766413470128804496460250527101554809403788028256594718213326753846929194137227881700479749784757792911708724617857081161621529940878613960960267645326116954717102068067891979348523145000159274091067694395144904795721503852607411545494349073209810980734876365197176622567975418879975773395283255084165281011626061149791337342172126014786388815233987614408989920092536385734075298067692137936248342205155554725544653811224869942093534197492046824785360332990011804645960519938966471726565869692982596934404706911346889706733982528980526669905002850179029870582388562912190036215027562692607246434023082829678337013194890460170246124882561734276275784354148385354147251622855482298032200261616641099185616970695526246846344896291017503905594227499666869747856775548686757951458261514933476893126347710343217318313837360880564032249121789041438610848847779204843900932693115415858762839070826603579335261906737569090605242873243937665043487792637431935146052553018655038975085119946645976127363556086487536739807941862218937852540804828187547064156784607141547606004006990467680039081734919132113747444465706816807526177761780183482289227096494423309450250252178085873618159230341620528599077604090994953224636938823900136181862732810998042953363010282483236876393463990338170045100450900304366555628898518704962080453057964510641212720415613599800250971045648519573722863610445762668702753364467022520090219550181061515620151119984112301556323132432765057461412279523961516954420057062530378264991940440586671986440290038374648489414283745197646383708784770138834054393463148999670088972690365591159940143448459066753366138960033364989150045934894149551332822879525188618028964940218255912552684104511730925860952021150659482538155402293044886664573834327848756687790274445569221392527573022698652051501151091357413434053917501012369441051371089262643505508324646818581918808014591511168747657988630854704278362769446980917975557065364768567560387471992191886301800389471731077309208279006622729627656162129352200727065898766390470408426326270823689096769136028311930366241668682566049402232266956569981962070125021684648426541203870706333644786418363501576338672648410428189253024534908332781111412025022754316357935030168979252958846357688917996756123648018921910754204812247249805947618545986641911902048792290624809602740388331742417270896504130768393427982157210123321828339856390513652948896758281500509814602360020659606774362660088628851869788468887526562685111456064599256333449415163974861527579612604923083861087675331177601073195808674514865738988870800185292605486760461825345972435587363046535774017540984046880756395896250566310583143786636024971144447956439728524500264926488954808735198874787151948672684762577879095044635384162472716596527446890229352115788298195419978447401046037154500954912980109701521680748249527757340981734679175419516429645421163039834690686702465407910966813073897738503068863721366135656937061951845312444832162592685058935883468163981953092645092760909887573677086135785692438881943749283929739253027224206815024960909142173714166798785664177924645310323734511523899975051861958128038619751113569507307943618469688810104281756768123942506962473733542753088936339457293304145486677959844772772906019308514055716231724544118124538057646240430351909792663338245435922758394836991004080489960997589942957622691613904479287716023812279806670291064171381060377746765923643821535870975287016354835175824567335698721855881089611479139491348944266011344431249027060597658290540688971646539916206416816290060039024252260595095666099319680142448387441029235276205353166685023062565212343323382147251240429941275235096581503469468924096019438699083062637132615404400157061802817550555701016765195053427194357887587220952963778394109441711962439140769604240494992992660840944856102565340768280202189041759630815470438390273373481254492311919101450944131723018550599075280265683132952204708837149746372576607823480307055526608193603892917171804151640641369568416543685750054926551169197341053253587321959409183846976826173519448871998520295657939914764101974340402283995524809924208623070155808434606446388568181880629678407669409859834003972839269362930403803533671485793196194569733439286292065003984845950647542590271666715986011776498552600358443372748596020792298943748019967656445470894447441447022488193721782632081363776863138534064302046381731084692866084620254248160199522883030922973858600649442867404226524269098586991762868804588437989343698742971510903558629407557430213933508949974151245909504690777369160968178052462198120981458501287589641888699998599575031863401222442224375434377709571910710424488604901392458554567970616561452058859173848486613435601573609027885309923577734513625275269436444728722628474766704535955953390898283133507834610597602009377360020095669423072837307888747736531353760660745091317217345259180528293145405116750747509490384428327399622760377363682211090586892739740132199510122235674093293431397114772604539403238539156791910160465644223102894914357197277412680961603561024070893933981840066579622462105669407306054757100654703398862997758493900500510046027119968680956185158871510988029497251523696965830347657656336999548749459099474449854783341493150880510360741137043405109047694193684356595289440821723690088333564069743251784611952558334668186456679128680477467026067507528296889380175252902488662564492500601957736369177458617606325178137689103574529880700164575961816792651684614204480640307598418630036922082860641803474266407937423833871989397572369308973310214116560450173870852997679806273327204862369963378088851314268032334646864068969102627578899007341580521591327501650112573271080167351719547594083207588349547320386738244962118983629494454432985556995580701287327897222562612424736861986582756551044816069440642990239600134541806342762849445789323404893257414736344737205851114143862756881949384921083373193451189340440281261486588390209535620823009684134761933142597144995778961799718676601109652890798312836553283625130368160395672197205042621740701046973635739432191224621780242650242663551497321474667911445323471594384575677127216791275702940242565623460544120566833082824385298424018348451190640799516228964897688473223614105160388156836309414258549240054902006874570839177812599529366778529577396253859175782363431254723514843188618056626535272135053940305695161516237124303986052420418636707444454020090260907367853855779546501148528817930567299620556046111829661297426755220177477275944865684868129861994098034156519923995403023784413997948196955371174231495079023295241726792324662640862475309946605798052152075634103329700752894903519366961096751906726930286996301186293187859694321261574314387170966425541267241623432366839703707232491402716682125466587797244043802311494778299977802776910189557093476334698816331155452729032419758830639083343804610589920410475440280557723350261482634335175471184172858527171510334251420937608280489629040747952885397126628681961275611035478756645082493014377284512603662786466242780259270363700861741589412620579647349623037317020756725431371408563767341573683097094722368617325309463806282472813316804694246161837563169509565350360332855405022381702806542283404071335264356984322975584491816392875120365269225966529382170784626932106814013708045980285625984843143404084654985768711473381158518592806293684728537866098173958293937916272869219623579818230707213738353706354558119340857265051392922836952698079738634383933259596086998219265066228532624995201884818234714985527726926791922516309848502312973991547862502392701455410465717246500849453626690621392186164752092749430778841531506646254887115513020567771874328573498644103014933230895023641130852984358111603522956607800095392174653762144060903670754859095697994481778598157751199590688493093212233034669754826966685687909833926030268217893461525295246666501754705053840483907971415428222601246915781665033997959948623612015717208488963780893354899751892955420584923936748601729295985355547754930478687982950489426371678738650943865305424761867272467874947674921179243575308862226909325107145708147902146117802654431614971848017751617223673884135532271442819766152672918903316969901266490151007748255700803985981298687941072474468727038888374506412058706111735857403996309387636035654908410074222257995552792326247900580250681952534356021530129294544173541900831997291909398417660446733861972651854258328429480843736330892739332286827434238188983691467150988708949620211442308378374159064966882834145778638119721558106241793664905694968304752435825305520038711133662584929075254929875592805310242249734794418594583164214325026794695459858544722991959223817749818633132665505974308246416401659804202040596371105990547415012622209040346654938301959210968194424347642643606628349655196037198350245580204033845462955064511349119953946176757702863869910173495193320299479635712165783244313173545960477879648249077968364734533480829356475391508340708949488344695638418380133260279972823229681629143115244418980254085812366910271202436772140306580759542270385173694491715509102319891755572656316862934781288161850783056979216645520851981487795518569568131526404432185668568533395999919634416736154420564370987086902907276294231480167187878304821241701671192998968738051950884797548873237905859125686156494134700961337084028628497882833481425326807547072081164867867845582565940646698862728695865466223735775796021879934746846794474259441853590888747115811350308078733370285863379340800341125936278220623646910631151544611664528925484648014144518595819510526799752394907327051983879929759593569195268813273954274919159000961731176116629265865779820469813369710843906200999195878945917832933207985756386440930654626435794454152703458354061413223532438318052418977878941526760545178749352407407111882389833392706952776212988075038121257855757957036025576443090372397326253926810044896036854379922535564639755071539878439992833594275818599484469675084967624807526242200674979620162944898026679609613315623691880276814034380676680063975297000782326527851681060908708744470593884089326538398010691556726162764679728480445175269630197331346750444459544070228109224472812563850633728201732878590936051783956748413921432939012463257963997664647378677054338311456200887051688971292949686254328556361376754906238810681959550835715049622565392165499581559109611124887150217321297993525516167211690399096262774676723858644163733795679494704455025690697185542340625149345051173468288829326630433398183824744565551662663157503328177665344143655132286864529702263562175897268887040095090261593458412325988293047154633103860335691746402217516857090776611921760688586185304087812548998333543769559250171201372594044757742620465199783896111828692195430807371082787309285099155589810626943703722861499185853748365563220406208893255993268260176407230508483293209723346447053705976403849706371620676426691691822166639897840507341641014150174432495296348986646297325026908719155089857815510719524653302357454776371864930752625131652940928891126636482122455513460204357389748567200501206968441277751553433117609582980721516968481551325559224016943199859326465407133036769362080887053010486309065974607708948579717712226069439070120365255011126116790483842474423623144540986280723649490468144396049496012867696282029201825837544109406487476825133671375631147356543070847180539754525345087223716344210573247488685997691836987937480852204147368931110307061144635924427983032226458565173856863995390635327336148635992995285360485287787467161796548516448144809131966180624461973287259673226195810233443153253149637821665702237885887844961171633227469295943070579765761127595639316927559207408929870760771365712378246496472173925631118507244807323812510489572546461077838191467802566053225451189336593734727725167832366008331046068840080702346580486688305555035503008959347545703358016086110682366985653142329455462052815365875859005333867029852321940077017419712889926681170913029555565298623328768498744371468506042652408773067684535138805987511221209103895284861100999492971775186836685284562592006861220952578606015506158510703431971352336904871971548075523353820704240340247768337100487013129189153189919631544626867572721043715034705358593132249444500616362147290444167362903513530199595263743952001081595432922739825672627615330827508862634462333147335702437241214777243996385592814793307701650049644075095984847452603143153580551174880966264015325303221873889985880048114541901714039113334496614262310225721323266245997233232670923262047633033186562519943837565913909530777143582263233598527011212261689867908951864064466228263937726244331493910481853107036380959806006150715460770148389390089028942387570991325595845375449116128947869174927847661759360049158889004787141480500923256155082344626233502405737666897357597136057117065155228792002601824139189430019946556433870986211575733788956326384369251730297429064222718764324472894512013947607919449057483644456801725244630519337036522145615796943390556393153824456035121183054988374233607315914430632497924447285963310105723880119112062696703269985561071088113185071639850562195782125428604165827177393897506351075444620883447472655404910654139136846876259117095400618739512924647801515538567221619908790545196264028810481596684200668845788034386639914161858980443447557634333746073715179697137622067756562452842745415537442838648290727199069934267737981515420588986407204596019637808728866657265519733588348342126256527552963609491510732777087845831023660141228825408088461714349558170786212436480466651497894477978847355863960703695517370575246821942448030142479592436767882569071678780285901174115281726260964534992989664526283604972192749648784667093415636511729393265203988135003926118242511184713443637476005705193732692089325611044331962873466679406475277505837267788679940569243277095070956240553674323875455471292607027269137031193135857456150862902890758858118664337338361138453520332026896841173705783448207622698984335342139297354239989872344744234545393720044034467346559536303969092679577995201334049901002149353971873392290838264934351790812541382339316068805861780357761552485640051812052098275972711038486580484491152149355484108756732715298982633103714901669133981171927340247631229320554678842543362552997987892708770647756455163692321579861157708690993495021507373087710906404912735738709333492559514698657808274080277114406664402869018189608632540921092105377681030619265988041726525020150590083919952939553541562468950993619295847362713292349943101598982135549964493193339981538140760774944959417800312823547462326812795573530736346029304994203797565456747937539599112024466275653442935172534667578591007053410463611765262108583545080186114701658196607514466009963473993341478223699817256838725331252591287047706136959932297908393534042436554738356727305007859182105035752982585901630144503521286341197766687786902508372888868005741738552785808052448010870570098948210823737696606759883581633782121042151588938374221288195211330703210630030894742817134403564461031608409984519616261283379550303517937388907651258816490885049099551460091366234176826723231530161752346941019601906274410210005633456526721769089008977956302688449969073455081599664906578627505655465527699112327521766844795689516149630549445186653436081498275173094278610571821603016877778035843877862513242032230191971959798766757680443753416988231177234227718092752305157866964265825972361396858568983765601340582273390374955021179595949768975888902758003751000237083548872101063851923131674166019790816602742803815952838357858602274254765016191732797496324185512775788330246621233199929807153172917438598645041769122931677711109472614379287324584727828001272023590696662246693218966201055726025293557694611321682139404951535368681491810940421957438863757439437091814394565349812337853666670585398993333297750011430824477174685379319207575628368405576208319577356478489705750806457412595744629688181699759100059062326454157636785421379685101113396876134786430577146547651862312795537044921965341776450992317425487096285792735409394884054686062390789920706036433792570492791576598732513104470296096445245654636728552371661718948263455547337155936070426400265163392586161013674944473325566919448009469578678140590504764343934180818705195277170175075194109527425414430360945871542832884599409312377352484728845160564127813199894535156193587436202184759199916888747530736511905993187335989864854510149873455439756339760222423122854875962127360646738726399860140877141595621485604433210438028700929690843722239248722833524238884558783892621429963803368625625890160926116059171037478232907722728936253603531023296581672446346769634690687690152300663174287672429567173166647588179712806670904797330025244481509328838834332047156960623670651477215968569268062630890616024258915269512409412038643669788606921296770112836837229976185128494278876236294978110680507461373078681643818184123033106802416400996915469127828131097141578114104998140623174798934759000574280882656726344413089264450214768636059908704256273047487727431702952336958859992696782755818045343754016905717045659907636342365990264223657317608918624492482873063420742608850917349930998456824129916940498188395284383464213270330630340127678719259097523626454345893000720600287202349695891449995036383595407899592181568020619470944162168993346611917613288323171377299559010181655859989724116281839708814760269520041626827510416711998805736246554924324484967672849650778866894369944659791982789461497450526796523431763973737634059815502049176553534428170319915175178910503918376565118606693653789524983747737192126365794680935450883067959649657958281429596489589365995664685499527340671811899447098224608734239266032074247323781202544608402183880707942918271822142813042852813583092843619999609085711307968070884428857971307783131603560046406411864288246240683295512313629668769876951018840776539358450094968829727319046440255184770520942319340640747610565703365658516622247098524835280471275577489980176253791611166085722146993023839363249113955238436953527576784425815017530909274888899964481287106896458312439374896354643546086105502884475398641077255205357241185116156162425508017830812792810700346108148265959290321462479178968818919077888461246389475366777959266410378513131169961175442933082327831308994846859683097120136006707437478224402883637869524512332455599568870435047851098998085129152305039060740837554803174807304824484512828570649991229060485272977045641533231873120025906474618573645397193991506387744799460752736024889527049569786065528782949563477318340166475724035566172163388820673198687446934695786748595081994492027592109661313596802348392002593866231939847733309216759778283976665278305684064538193926296107532315332358479928895075492512047893552915515843370463923254040349599565154675836479308112541873829528379301559271261711880008309040105653481538289359919578401194924051485014559090958053755528109594249428974509109743005276378555755555061678092016151504290670435587772179371004677945516728379365747079108743557057283564865551141903453194437644199552899429159766584839571932328577571677733116499003056974826418771181976178467577038378054259527599006725586235247790970562389094119766998309243889423669400761506751116054519375346646938225734821295870611028118736485686442597688568183485530082314571247778299300052263196010104558824008936177840855075473164266495469132072113542389934806252391430195904423772644792613649394259260904738752959431194312247509638792436558782723115392836455393092176644565925475481374040524508863281863590633153539232171145740418632283804473722079950239937578716212154258187677538142262426733903170457725190915087740918626746249602669780862625634937422068949459662907624137254754215050598603236877022416079204707778550791612933975598233865865857219054350454676002930978587121570153883453534044156260975961436689282122450477889785263867666399634354178294773718976664908820322552300983348224002415195573422533391056166377854145923593499841753824382669666541174003870415326242745174336513864770755165439675277306524338621203231358641134823791504280011314124288465214728122035104928419063667523416430431631272293285876493824685044981676650356735375952423882907472766780828924680408037110277484222030223073716916259417345311794467819284037393894004990199199056900063772149956424734530590126304162095951603425575136961736352896964836569337120460937016660273309867251408931096789014778063669659428710071711650383587155378729541002533658435581669595749042926807338414934731675603783804263214523631430191997251209873881366254975129540967914518834079999699271222837275770365850812393135458848332587172094841178259292181667197380439534771627193290417318942203559038737071217097468010617267507376421475889781542019735042801272693289096320614155457484999900227171592018688636685889687669843119666713073004397417090630497964879971251182433381260875476692452088744323082186681032309513990404985125639676082877463871323730013734908372249173250223822283355149459632760076196872781916187249020202575657321741287742475821066476012919752935727417722006220544743579115185689216924493957607205043033189938716828659991785560161583789913881862860024518705723934656035647414197009914544166305280545659877653105213312197847297184409999831635545036710009910036190308970465340725482114532590183071987037464840936767213027160021944380968857856082920759033413184247692979249964618564068925691190263423462083856227947101462798991933387387890759270000578012981006903966125741246368627342040088672216031557603534008651739789084843447425324365652934679166944683440763193405883490774503515880224954653843871038284282952446892932280852315465951479955103071289103922471805551472119801133788749414575837809869837803598811405890383696002494799747788230154136840329523972888120560758062125099125144342789652732853879065987584253248449018665372835579392233285574074297302330687312171815934821246041629483130577889476167271713291791320219562672196062128952831530484821340557159612471995649218683388616152245400196366349838200427074022757728025780195746707039853269902841392311977730516645264349442257860377316799408876538342058787000800067730259727400698589569255530586419154278240090442139170768731802895579535630548695302937113957286383598102429775660830710333889223755449909965123928486657245232646340948981602524313619535213205760344790116645047591093945702604674883954690536390251634441110588903151526974685733331765054769629723739332462703069012596322785075725968307241787401525136018950799129619866842714382590151126271290641061861756710335223412885778121365916804143018139022810463032328295747966140515074388549808111788372087446944027263931884967443875800432386958693285154493443381282535571343008382004806217471613785434835980361248484486451816605425431176019065266095729600693890639174113467968928629657183334225404958612068736725437317278572814732060817969991582428804633323959157203011435399736878148820743985530607822325754892238533212750389424664092652291336800944631234958331250944382032870680553310688564285492413527899867622671228258814911164277509979347941202623308030187732394357346266360156145339620033008102862068881592742019531524042358426069208792268814453422661400432856273504693477739385612054149419254713980036921480500880550235036763499786149077726748418976889714941302998720954396552049068771725058403462746727965106181958754234974674074961768159546041131888643362806076014942696610051111027446092639417943274141085274010378867484725090703564373678897166372396773020861443307387650943908132652209611746190532483498825980902230678482142927942542155792205548524198817497633771751098673651803730385248507228622454524407994800890158213571423840754944572467921844988227218888649948117197378764636245808185308199717743368159624202064206456283903441467099829914339591360105793035720798001824195842852144501723498251742090493815723083699785425858067393211044749191247198287485591840884271175188268033791071943519244027305131416717691833673094266673467119375859791636084347732522300520854690347503509054593554133916079400983911692099053576257976339176745101746205125307183145478287187272498620792876551408191782331076528380205695347093947160191483460121934174544551113883540915184354760281457500238174923184435198223438082528806795407840498303777360509803510522602611889914515290522565588209464846646656070879201471673064373534416818671949674848667072652421950867917789170356367735831300949147396514959615685995537714394892040657670702067273158579688429847707904086086937526330634424887702187887203993008584940888079189189352881029018927010528413472715808136077733204236837375006902417533747382911060421712634103548226443264607740181881148043591353030033359621533378816845740991893662332412072019685154906648997255114124084635150945266630504489228548864240774362869484289340150946030593871726442330364353744433364374798190575320196400315707847470600706833107374549748301228210255403943755999752442068601876736510216888833456832213833423156147975928054234568698520763872358074000898117378263503608138547718524408166867795807578309099868885504140778136090903937020652372529098832593465705094385007628618683092589165129884294912069896424822662546590185172504394012627262835190097171233554119208061430299130710405723401307651569623810543552255752931461561031237591507055173188582244847392799629111872449210549074658548810213054151886638585696629400458497905676275440043314478293040664987130816296016617123400603869185121230290739792905299173275829543033070504253100481942859326900023495834821719402603095492632828810132151728099324449757114423213469996797749205995206092242418519411301103276048385142881165414573996975193360687309023035514664097838604038866319404727710686358129719819269576206239906876208452554758188044460122453644663160859189124211439460501310350435708882199873329383831566479594530546871710726196100569433611051956965401851176209282523634099011547771140926885649338153526051946644014944621226554839491450276884078258603808704516585797473865789600586905151448533058766655640165872370862745746532032162757522896030527500144790129452496257688267422399986727471034793470863462515122289129727895665239021887722360531704607268536777940948252916265935146586011244788414425250167701163058118100183696573849184310648864213386112154283473206890188955470852157100180611966107596285724000077581865575134964814037781549150712224572061411216412775144469290302157466900796693418420483342389531646976357176396498849964462931541259705240851890099231081616356652005509742066588965499358935295199081711517390625397892452842426201824367626836447635372932931713614366873602597499803847372358302845871771690576399615662840891660535244240566589710572731486069318999239675459829133848845079726193870837614123970188738534700049918270751856908651717420179241174822902325086647277223871893001823093000489072361839615895606752630840230424578219025352737759602736237520941889197212294796909638937806213955117258242950639179861016875200124497588874792353440525698625625052578492980444884380691359924110514498813416048243530738321428470652538722210304698132684159259530383184020971648446294013639548392060597988684478743395925545203351532504682063338005010183472483456071779365398288016033710126608660292658866358241219154829555785695229509107382931652751099228013063806529389281572099320892711336676390041061725175320067342495289022888755616619242632793726749272244887911135572117729134763240472166951522999355964703457810804180355616237228076563942186426000724966418637204123492968052753331870409832719041563057567232951142210372260584517181837532144035353121517316696407538927917666564395623346029900656696892893382307508327039952145045146359239455482512883968151773800677130844567612536603042175158143787165778931975291545982980519903343849526516145977663957462124945473743260757909097077259047892415153409922504854734838862461776440512668902006063349674079520173085656363482552618537086286099563459310826034816015427769835222847005450676098798714220996878961869429330595468200552866502358867472470560926080450206789552724416883336175226614623422801741591817004766692319848110428928126163389407297403405539557758520828789526857287125887567885713192096513318728095206115518856701516139785857380537629386227606153367026066824733953748926951942906769867385073651519688996098776887955631401934583097364519866399735977264598824867117807657557816631935421767384071183988304747202044791206408116661969895200352208573378329064783559635318271643864810344062108820597625484718839921323722113722834400188549251407642923873952067141626471804101562629224808456329244297069444125959778988141083982153978007302077595763623411609730909213680140698565367498275388490009891369957604534147521566953673275580069851556594630487826887637655313801069016400450422299740527626778905041694330849428623757890696821711713808709825098344461069703084151939989972849994097455419648727220252257266268595716963873493675023617753139598909900908667744974121839367682742125628487694838300450685278916852682908207267812639462554607554243498202749830611849701300443467942732602371851782954754795785867729493929182583091142766740865414051436459947787780262043247928543916943986902413957976722625944462303278082667825880903583519613392054362690356165482829209477379995256940706078098814708877026125055979305825240278121325812775777351422463352736489374355227047697631905483596940865804138941441344782867989759078185664239287717982581579918677739423128978775012111978121972829393496697424961822603597137953669921997468819309426203560732480141935565242333164167165918849842115383878802831839201233494696368312302758639394411726525388643513518894694481415143150267616470645457803659637704262106684916067189220694012697099100010214119401000750421971754548443928438916334892616091485829405696998354062595233621059316887720438808883835170654829416224851880936358030956316645937288580859555179244446483461978490734442688028711811899943161374663694582346024935302727601643379489302244113729699425045808642066234793234557519863229940045991986062363698042085710967204463348850727177585413636775005244613339292182145436265633875150007056131871681022436790329201017109694728760470133602787575565196200944853745416542735041253450528711455898768169468674779966815231945651607918820506529720096216899837913268805481738058137807798018330826315854405773672687070119081997092958878894987886968614969571195158415738561995719309387737005161202323756947931277977955922754004389801974479529362928231843542645168653310186815913969523114826155600893714277850682438385235228791290170627872406984049109582199986541641850790084453031887449683961571014635125296771272951032756445249877158460772589407742870823955725389404592572578595392796919498572881522696559731573666547521028353136506348684282413080049093791910734112251966364138618058235224686336908102628279440484698285034352021202124979486936866068938281239923234625846922096844226185997254803834149520031849587122569522509621348698669718250205285778514751961803987202863797097980050028595216257264306590180778095471222963719127971359991522942616506564662997866563823712322366610508410001166991262372760349465727154835904519204417570165359426625472706562074728613558143634475713931791397437347357430422323666353743510383376994902157839234388235269899060244948535354242546800002383853453132514696008449379726386122541392384970776980429586557829397331634810385921746181325861299152596704519181156378903666911419338779857655515659245551129144734400205815326509741862621768140917821086439290533125894698099244679402195441578399682150248692416460243100156495114197483226749049265907322146488986699755117970542701596811411590661997203368284165700972561615187837593062649906198570436939268041479540410632590700193838051931738509201387455877842660892972114078601846217473774872538594654025491033426547266542425413077980838575871066463080339332175783746540768144160158098956243661799462610496869587432707004818754356221648630319376498137135559797597778522423601337762054924331051666120331692234041625666554995495540863070194101630695221597891454426361233193391021229747551547393964966284725185647914445666913588239641237685034258381237274336236207851836972735191947450623795426158448882106883286816176557077340194574564594048839483894753598751616888087014015822691888116377069372203261262078336543067884130761530072851273150710322367170705502284746227065769409910715067285795303803795602432505905537742683270436038235128277772754612202906443167812566184846224661522439893770761350154558601033112554588405929586106415124472185017304859497936197366331942736381881075966806166025750417248230505077606337755323753312931025083924296212602439722026695609987545689549911538642590888095330475911948028685552290931294978894140364803148737809894602908093474612839842677695818092299327258761668121707563022320382795568733301645918412464772784050089209280678214983417540111854684167862449246667861131392103340606689243156932997637876538572812906096565616270481373448563644657616081433636099109143529350021965166039508462761568845873357021706328581491972424857072748223146835908471061590316240887671361076922613928276227170323427263826928431308223102782631452701232821227802047546307813346866866242022750830244113238992957973075088281485402480441995445890873096755970928408604090302828437525768844059964826591230843738052866774395682938748761000830708684040343548338011718168868656393946290782046364522162715775032929395442864864734532890325025308423939442137996804333146992057524351145470454765615062209821427817289456675654155608716869988067994905988012090674731511529270162877179043331995331332607971142002721465884133911113917530882817470535047105650266179118285291580635916346221571542049237360826244563437723477758477598330120090522381273990853103785074964314156887998380239960092652721066735578711070190877086587409280078429224845238632773642787192749914208705788649298167097655886644468858391884999184936842533792303733368402632331407355304574167045931357828695108113897810627255138235314421664656022664576571957124813548564821237468789813167486853485236001172198829639604599327657538314066219472018942339744308814808768652230723415373733558799579307655135391868407122172251254739788493144428450900456171772957854889224266461314110270613421680178094931117545318492944327974130034526136735525376220560210509002592341553108681315664060431588030281982658969353380889942732557729897481792886970503566914567676806628928525677904226968959503023384397085672874892078185384927344601683417629578922376631387567922971738782736218811429016883211177096872770738182673598419553509349940907903073284327849309854420140840255481678581956167130247579318663100224067956839235467526186265853216854004894490761849405064660221632796758282816311049619595658665827114591273516354190097590693154749131268965967206625195628570889276465019396861870121487021827995476083607574661952113034402266568685479807232260352368278280990227212702101608792493695922221939672861515411661878641259473810067283073923003645801632899605553132299289304587660746230533049968258316839855057301989667160935632461019434078372037016119294596299292518434134154517197486283296559176550707383273526869460398425117035151184992898498429814148794814729700958422887630186603468567098020903387551095087824450336344001098030547290651439843575356528344256344533202693216436834054381770039470533805849419505470626073919886419937460475951152909100391304588249441707738573500172208888914884247308321498454224824394968946622349866726825646744601808022630471831974237327278839012694831258707571566529601626164923163564397890059564065675202103340315269047297826589088453630450240713003562917916959914013546304366581629649791257212199351960466684202766684705237164355204385035633970712293439228871732047989382264349587829635963928140077257083201894691860419814012722063355854175528067832060698255459702492748822626790817714526377980599090789949334806561114319976623279817335372075747324642565026751682207388142663830863545531647146495509094827769280988178582680996382267567316941327902359126325828894234901586344080600683878205972552868396318875863043159808906237438793374220919958194111975006184637729537280222369554572462689276445554739515987906407587883431097504552049501191051197685671393328336840723199657976002562084398767274183694883076540144620309160561075069512594442722935732535767375550965865331920598075305861800061255272022826602219764984185580772097277071059238914559298389635456702567734260967281497606304468931731673232860301334250439398662907977543092007356662908888969312486279182570546618247990153266942418817151183950147131305740266007825652898248109500689062054147252239071129652903270027103686460266100797518546285668677632120740047699019502255431334020674550077259894137306951996941093532417478454944275108173778175361317641829699139100611995657876191734722774846365487219958846989909765823533356320261391814146090821282277713895045729553890602034726658807179859216174719229144824647086797693766091876120565048890395945869630310717491187108445600690051936275100188716932479246212382370030179376899492884271365371238764523095846190164579554438208526920885232678121724425660308319410763520898869662940741371484150773950220637298898898244275055487481956886053878340514838605987652432079786056409854436560357850229146063468109216147201862669314236832704063662211159877254882601189424519637391491652108238321880810659926935303500866684864631960325345066393263929619073460489424041722635351496560919505638936718720094285325474670771327842374836138381676305794548736718007319886919003699044264347602867225938900743639819531546921323039956296432694538410924170753315379588104476908896351327348919737389922627676004023128987762677703854023269556520205374885480828631953714315756010487538096344213648751844406349556369432152419362713813528210752281108559833742089398360108252626596639030126364047048426748287492434604470293182851047193349539998399491397191550956652212917620160679421870919076357175038400257610205192953679590244026854301177966004069374049250266051721470901132778708395256844557996341766711340282929190271869097693205728283060003787451490936360499386442110181246545876636800559648234890436692837202047662130763894195152763730171275715447412338743478592962609431609100543616954270062498928299689839666258058887821482168792594289103382350982779642705512930009748504770181455393834952643064087635900964511189521608637776329234473734239515189068972379876175556256582276345438192845939166675327749938941285692016850488250192705717715212678768789204451378078520720919252181276351260469775659186874961359357756427643158457340268747605468997703031737415668256890087876766596901045894876488736024962480380824671585263801652150911707365739225010427644118034888728969263484096350611932442415073206714124587177026049067762222079288914633302979258405769194033227893270122260855079036568661775576789420448471898949193611367152726608513662801372688312965793166255675851778516624469126888579062760333702852408592813616250314407658932005319465627768871429207348589835895877355992682816916678452548919228185989206485882378211067690117168979471695001591814935906969330112409669732460492540320201304714876077611191091928906304514329410867706381549744174722114295666391464145311672955677964606120913866750211089399689979004283306613821362955437079083855483496423245163318359296756463015154366898963101772254774764269991368850652476281490204839206846892177263287593491058753483100297075439089990004581312143123106256708869874774075530149998137600468707464474967074606243333620294911475673623664924254235806778344086269268793796076186233211714648482700600484579604161519139177863245675294195531071110722123671347329902433968391591444385833664944806469586549942247233463195670215058369363801723698107036942717428894107743632243124111026759112849442074590155312099312279664225703688703492564577855158881495750879814570277127800856306581867146432218369417309720421233797953233344271047856698536451271114849269670467462722067565030570072266534871022175902706551573751642902603470695343095848211427634405769267474963526096258660761332330003042670794064022282172680990003219163226133458612034090385703835646320581044458755789353636156517335798591312365157780336488067407194189298899146269216278822185055545288331253239644799307208492098275389496625621718919536058545789607305144160992770304156726431491493575769535676039919215380279863802495619739599326200996471807769569472392260556814700237679608250773749975007539685536754133726913395078889400798101259018508536667745512676006535156703330753629528296673012061028846793518579015102081012254617452109726986494954517854524276833489287004303378323392604262032123654612197048867971933006980412089814155073475286506194852079906612114353622579539559299127690382741855520116464722507823568960658741253234772607253511161488250349308406477657818020387861541800932642642249309946827140168060870307014134653965240045742929978232510775693020843661781244761254703171855970353714996298479927011087904161627660638937133860567685093100040314477013380070919710135345594862743229377970368583017699852996780297770838112023876852023881800543763827671009650199572022314386969426632752216223228077899683146924753720023750969396942004793417487880746563644686224893773753167327908609312051452150987252078084793420988558881855536575147417681434341046686068832660015232593583222848666585513166858709024068794931680068269800889782836434959502791171132601252333739036233135661346912893649325818617302892126353709524256350784389864947825913947734146058538809078300316020324747785637773707804774560782932296455238917881598717246012034176521499427130002432063908779847905611154535696011100052521647643175629368438826217120292548647053779459447108206605249607371500329789849085889709024820070921976205706171349867916153917654255672845028078559049682014389141403194751886352477609725223864527616645054570858951830869436797603254338367259806244677346137905387615505095057013825881440617643735409617658756073627440644703118820804881182669224830717201284474244242335321174984392028381575737856282775585135355635616113816383393319608364125930512184493600162663197107734451419154818971486488799227688753713642185208287508161276483133511903015452182054707448680435616833160921715909935807727564131492579851347565979517656855791477669532387414470311809683137107992111058860705955508654671978486221898138409761358799481654800439481089965184080536437005382905939407223036523479102328994788360858490308713811034675958838789924934699918278077864011618635300405978658247420847830298643535839742259943584063096527718006349991649877731329326629579114103042297751841131112269311758228236459660431542412174113739281984724714964557945118853756813711379555737657339371914614302740988270978632106115020597086019829341267299321941246871364882119184268672196491318987112632545273400736290605499611382602761141646665005111168611208603843831073450081077828355813199927408881712890512359014814602518477889521061332095979184017703841684194726043374104206543064206185883039100632032489926772787127039410650847457120836062948504954643925762271189173913768836211402588086317229651117715331530832520873831818243972907786889675612375966285097070429343195259323134995458244240084929154714443731164151837554438018999207060498759102268267132078587351955004658780762234224627149373498916913985092785794947260471495848963636191416631866168029569242100493326128566699757913864724052269549463688643857112228571325992835389501112089609140237593811564081889079359875187313877727944508146069530043586537124697881961402443521968841961270610885533023560530899300261171325006127533372583571951129971648264028529108363177577116839437979045640623065056023240418141244061452703283959286975325274051192000793995497252827458461276550881662819527107595175581306360305638622803364118698687106965946182161008967256323880087916123997547317377031918315312896451022808129103776513874199514152343873963133526339967390069557157225843070189621833663867112434420348525349718622846161410083029000989394967550608858629832437876197904900874310287847805293263556126500301089806272595158430886316147053568731705990194268212510745864079526883731512229255107490580571283787187998383711305699846687553770951113054234132112723103525667980953902975598666811527251555679634646283826107469734821124895403654514961643449658918354452111301396109832954840027876378597881965424919896069610164242465851422119434398974568911385321130957492938192784025802261951643625238634634423060363020240359821780816910465106193888401842169635937609542915609102416129041181374453880133595827493726848449686056182839640616974037092354498764695459356319700848263085353749780816930808123922299761351177283914319428701234610107401247184137243737199678097099794589083010799740248469704355514680962704955890767046209530284902214333632177620211386781699867858438052127831799248244822668160627575077213754022852145107280401122663189181424965013681182052958158496265832140276817565174959390262242561924473476742967922419636847446330082719266729306168491631576503848075901128119363463489783000315348608531148801916130354836154475538996147924579998287705991967521513848151270113761736355387458048665338199285659868825934281447952084212053584576389074440232302873250811088963615097930091492063032318423988276320372727385224128939336149085786498008261057607653466925636057192717771690178818449241484489251807165018995777086711842603644254414183888168228964608449684457441940190112443360673555247836700534517130016510593944558115735624208224157992257087498759797924702479601415494197257826693260222135575003051979441419459755677036426609715529036305168891012612783940122691995882709618272940340305666209336161761975325211149976788546791089475068335655098746332267805657280197147262829084878109546171675629888738242625298781125370601647364921862687866869957527702629781452293385336835476363023528868119420746975333488368631460844664615102713220847953135821323725416855842282588476001718624205796173556429489355160223896521631105548537764275971720819729057936410815296462070266765763157852736755125667111109481902512223006240525820189259518553914607639640695565065221666979474364296995854481858696385925112770223093258222347935189136421433348158359897239612752113570862133349905029587032086116962280773970834753010124353466799192061870803864002689244091364818968736773965366001650659106158084739167134209865491193866516918138963928976409846102563953962110486446518670363822289757501746940224292718020388311588403532206096708958047731350091479165536071878794658572748257773856941431489752776074036573812695452235319068923932576523166593089067754110019876153654975498228582958881036380423014739704960985368480427829204016622520216097342832035273791090151007947483062661346250169733793660609062462226910520934376503215391654812740902715275789189843978805304216824342791964118653565208021872114666658693529615040188307246616089434514607001662568321720235601913088454644433435363338451964715042901212625435909284475151120438837487704313802130488640124787981110248496170170037991967352462011101019626486182975495095333190649380699294312578575547501054243938699803478189262430575807551656851384808659026741218370712216832953677330425513307648940274325198651728343662213383796631329282083665080878965350657072171911574819956283314696185816202058704841969255263397212205525351162078635750550696452867447969463463785608194096916780438919998129011993475592819815431112448774046857630434900049831990984335022604279272946314306798997503964740215868331580944071467649562471020867665469725791714801441071510385563536084252062081861724014286487133604928628313101676250238312937838120126540418984948211116056227319040774543050138802941679371968586960585802900185752564833552411844705255240797560629647390516236659286928059791845878759482790534816799922848672594317514150369996917576668413508115754082508231804790634599998107408553073769916481108066443451781688640818285727870138686705246761857570146359877317679211294174893945930062865685034083687477386783447451302050788052993400982035315812903728814377819590772779893151477132311727719149378870288145407085131286069579281387281891336085819729957936420537931770531487737540907301439446803834096022418537713424861440032527151200352804623963346515576890448348605712935563650159679432804424720667449621465225418470665171548445488509371330276865562893226041582844687702286187550177524047476025514711643277458831479767595307950410074896352078188607122333015015677607514225663497384169746198472591632962240640272765628427061909645693800245777230919186659245256156584650019258915466383076581718006262232271935327838549650122608313320492265914576736583620912230830140562214394789288687940020617596858812816133557771908672732371072164575311396414170467787708110468620606457962998951508801286099045914791406728128883063062111510034336536897882834491244972953840610747109571172233831838859431824973938112932231855164315425059952014010648323027976090321322865268861132092320058440231928935524024968326846846697276907598339130347460220748095069472435578760470401387473656830405393059867198384588100853441008964586714652136682342383997605262957348254596570845701830639636755195358357771539646118488736367512399917712588172131232473869135475058394439321754760485231555174600781331219968728184137172287117382269242991293352193326539521155945603922037267328296643796276137394547903033246075462723176196097867207214735745310988016609711800447880380695774593311089423733214326798682656286190718801702000071537696287386203822589905642058866472099456637831599384563738477385328023707411251554837831898504323879145956255903234259983149251101287435687620179356171732959522458106614035075436146614842895531831591015180758352807378017813331523717381878830232229197018129118332309761281879622365360700797738156237200280462824625085542168390857648281727440179903059580632014687979302769179521796499533197097069307922598838310118464191892783507246900885923944235455599173953483356877193557434876130709599343011705248608555469265425618538128185614968641403841236129931917139024585386074864971101229001930115845329806400062202829814045898239546478023584549814850180491037973619647279195591209138353026351824343858631216456056263696053731028776245001601370130672614650342827687365478433575339807869770361322833468952190479921191841875929473487549953045753415915396155848494441826082079934311980053132907787567368207944595185083335297594984564862652863425720623689265302090177556269193265931421756116834008899893199961272595731350393564044707746489962388641585113825219341725920980404305461874113169311934031621398127012786611405580419543155556998208191875245609074929829009932526876990631998726195421995452164215220818050100821677885731826513791705320205203090765583903124624145217032847330288808012938134523420476629048999387384932047796544014081942651892209153573202030006001630110584960775943486839640629649604546103924516587249748516804792913675552063985237685297774735529499706097812649733744508322909988108336350491506942471961428267657331462117952550167476835350559805286760981704109397818698753104186303716302985595759282510623885117722628540347697779075984514745277714190301675370363076664992283593688163129426328650550755033354123142017765338865502124844959678788373747524551401380454195754838639728677753091566888609761561728488775421721687657573051682913867428345876279163175863457349859851865989910549013122994484028583353493888452016920589773667891455622040918043035036195727476139943113804079985822875314301526340034411058965330628885952255673655341412433523216716426053504078488431550913376760804287608919189227849511158804273197305175104658170073651061054458178298665389393369791550457101881728871315028556948609428856890031333155945626921103425242807332718897840133854967447761162805005803045662957879027819816000696850529403795754622157104474902719639181697339769338390479018480753785063516977136399068697716303365281025065185704166636900590502022268364729699141057146566690428520135979205812685406737351332973901561625028714201792957132443074669766022160445734373842931769865360234605685421865886557139976670187770851777910892873821209179393131973567115767446884627833565891330952578379823478426136165566394086034996551053171796555094610909380173697710328402275105828782955882041299581193752757455276356474696234727246155948482523574072277825430623733063062945754621019583635981991154304312993691288293949540807615524850679332831573512679488648486098388822273675521743283028110225210174859847812149554141975460049850139557639119724695532487471038747921069116853833576302623741061282408480406618518388922892795196678639825484253941121381517306973869152862949893829311977124996885960614386719439243609954640324224616251143699521293278213471037771808257214558517449630715493565308658802951600143604002436643109368812446409948639677608048717814245029235605633162464574080941075965434439930703180479637145068609898427835291167478691706468590856289304134554645070888004924475152960535578905409833558699667451055543689405011782026407433755594729779589543302226238030977215986219852374449400360186038718463345069534364194340808075305700531478306688459482655852928053948350750143883889904750097160086282027384996653370946725829927815988889338757396687866950609545983718956075347462626533287007455288966620747074673072124387725511072206346576824906138576480171967958264897500584757000986318614333625819261351867356391105389147008304146767515109379418356848286449167828266451687322448203958307809213068616899464414409090041117682345350194325372452664955654466933964985524472081470492821042213804294340177458073205728330255089430579374913554916473911714948194998934993561255533915685078833521952738875394340567443215532140903959326668995190389173697009159146813060664221685866050022959298145659595090624864282176743210055828556053950634014681792790337340123056583306338686086553730991740558246898321980521445840286574062869346893290778514558987900604249187015377055583895100035308425646466380495125344542488893643801107659455909953236770926872008188273770631573954550161404579587107296301513175853646675932050918245138348799415318162576093243581754937271849601214905471187926479231978270676657038298962895492298853847716788071996871270918530455089066253817645716602279375903211905687461086489305784741786072167140354502728458403694802911335818372957313438131629507986306641109060371050177963045579148643472159082139687739335710374292491268497306426691543636207048373625935952244315299504473022157356606502659058087579560347335112225159669179230306786300572897003194745948485571985342145015429793551885107343092834576063903275421907219915158684229218600107989305706878846059641063429892701859333545686900560238815350641126277990667861944300466700326119652314359126189178567531525470215362247085995439341413434557866360584924696449827678350367508499204072268729756779814268272676076938828585736360007446417417988291062476812424389972290465514887305630551447300374492044670997357784908779837433675446734527347609162615975802291140994455659751840931050389774996627008593870618300728313609874308602277678928856795286245579522572128854196247217914155655043690748845812324906353782953273171486048102305112933507031896404599387397056260367186315947377393789808884169796879864821233053055784674609824066457372003288363763592105796934958679876259451409022884672424173187779147705874638620731509788476419853618303670844394957375566069209886051764444918334746816151478811330983314381048703821438640450431158361438481152259563201361992037739745500466058805681673507093670294787648619518110973804503270615972772566195473053169950413789005187878473849672824688429095689967868895061619034556416528046608562283792207811521893351395200494104315540761330414095364374591524354621094724060923834161773710548761500721992587239173591335089788155970346603415194253693717618817949314431158756506172755124450034289396177353087351317926466922966953260351588249819497595242436185802285758624261093343290867601093051493597346764176745712025924194142170587228798238270471679832959735646181837226468756136573503015836261065462896722407662116969190097471656333682148230253784682865343984093818138266084088741072267153037855780592846128883919899845606024585541018923903675764429288865937551368996811365646932786537168859537636276946162086554800087202319206104038207253785425495746355135965258151516454020757698601532479689082138005575916268213624628375995212851485594505422861842507841238658631209943273885631722786213026406678276784056752166198470555435881015152427580948421315021899579483140748158442061663637191216916800011519455308692165358688549314871746908543085233304882131393406173096472228200160324964376427864097180703727332418933570015451301295500844734554494967884100088361304366355522257674026660304418312905279730164509865286455340275689427966107301238314204724314586894306331343998592826359301648323374587528187457786228755049767848896969871996989284317896116304979130674675708904733745981942455750743681482288358474651736041683323900876577595285786460844935478852453979602026404208013379388018557594809486898020291617172602655700221078424327517962075211257911553692960740496042760543001834622293734558856435562383104114327828135791313277849606550657686580452827642747602179139549359172791183608153219881720373637061612396526956176106047550258739838725090613154975045778981084529400350051188155553179900789150178534127840556669278377213564593004318949111050585444481151146273288638447243115118919500336400326054123388989086974823898536854608792838749285446581262214722468251327230183232443683332815906456557697940417491013999144214019869828003547696689143579474969987633350432585832970544490108556654270436886569584580806811336992891507796609445160195937643581414512342358132277544827910696441106103165581997668617115214069246546575114340196650209273128484170325292596739378844111359449265206415167222333921107285164506934808972213187710619160105820221237872866666781593728120912773797829767903215882262245849119043279582617587077511063726420192062696163389974549096222349282439720464272771645133745080800048910449424129704836003220920403786561757010119680304461288702244639971452815112242045854473982507668630505286892621181696126331787897496795390522830955713600546161961300390562324787964059150554064638210507640942657015958275122072555538523996358076514900246794838228629476106092466824393511094228142921158091702721985000160898036915519281794726327637778459255328516269656421276700210066968993516212163096680345475511598343562591584307051862484423829606687926387347979069170185101781883584078075091466840048240115238858271535923827760613285452941364650817965095495368860931200596987329863055214246511407276476979492387887149745165507494671092953541494738933667375447768757891154066303267309830863098259579203163562353542272117510138029298980569893858651500453643979557074013890631394748631234579474124773632643484436245560109029805989729859969295603628412122681283306791355197426305010942780601786560105200908464562362580512130854481043532221883097254121358038859887519136541016647523396514705147576042402358104882363500027360449450829701954749487477464325010663694517180697972697147633390324889278929367512968054487413348699410907774131633188377579293994042177741868460180918032772139997184842704624545015443794550769620535060584934100090541789592848162401945385634369921647646123765882220809914976951493723424527378574723595843274691917393663660383670142042149921190878840499297735052467727578788172239636198199428827331110568742489809494845307133186213213799518504522477029571676243094696493401832543429658857328891013350316574653324314978319533928164053028376118066583509340699155060976439240405996894358127710747665519475748915995103840910653965591321327038927953854333742854706483992304969184165844857779346499585400447717416422577587655473344147514938701909966479832131762400839576254060839429577423590447342182278763266677700864374470009789686453673840235956892335942601970703100059110806481234149051035796210147935725194471385350012173006011605291907809394824221367364707038505591090058839452326077694366651669950901869247999291413192761457214193101701534028776374333512606195710540620658586798829852310036119666258858318386661994069418750478447998731139939786310694280645080366982233562838020401765306114315821005621185300343882087500692311488492336638857669193536331288578473117219560955565221182242204272972265162590007932576158408907973529456226999073911533191728861914419832374350988501158598903520753031868951323861310425565782826842255336465502734040269467136851641644738215281028825744929684803226339948140336642858809893535560709423944134916136929228114260537380963490074234527840092743197515509566854997557145008441607656654933175206888666659402768776688582504725120278159009942774085102515332130679305953132379786307582469568591911079061264714941430507066195626734773262489481494032416603332597158035678310008501047685771072137067436040077270444059974375130609869932195148634844782424272117906997124448781629700535699533992193476028697895637899690343301935080454707844996854608497535557474093787931708386096407008915648952091170816523962574193784933694238349369282065127927617309431804494847971931196745380098973471979978770306045413116950731325478045389390511884263569503913449858269367190179229930020725169657948428453963192828728119537273255050659119884024903811887196570552657637682745486972638014246967014551825793889104290623891277397188593985932388394557706737383520283810836643106514717245198807356174308921005517006368406260771370473625315734833680748347814171820892946805019939393056605344147361587285877888119829138780420251486710109544002022347942019826650098173988376559933848808062801208930958091985190193881625125590739813683301327517976540538273888040020373390521934229039388817471756748719978143479020042604460606312608551913327067512279908479918054819721715085743409812260007462762044492778476538382784269298205025316489519254352561954270528925580594638680138905043462951465053308884763087719593323574236136726438360154215208045312039735383740111455510654228989743212229255946901441313080979625268985212971411147128378140159503918809848084082842481535931657718105934214203255461280822174034359084545593852941720529567879965466438472527015465068377966749752004471609469567906339347909592007326239649492672617996262481832090841558939293408232047463078329683362805264328834140363235776154003335156735577764447428146560974532102076546139894099921403322506130851370179387746750428987121776957408702781583726486629278517911936130447294474665252575115293310862568840791179632487942140444263775696878118720770877633417834824116439195749000705737282135614919375211686497117260022388930772542868496733221597520370725796580664860873719439310852694698272419327012900970531272508251762129484102816600147167790936994292856054087822093874837599442453263468780141248484230774636067046022294675274044127033456322787229235015715892407686002908626491061864650795268638328398398877130439295001992804967123229632311399348962531314031079179066348327642095219544418234662876956200414626107151985880295295673326670631482578150393695082696548840094072731166140980668486688062776626847080225723104159787712106566299163803698289738834268486819780116865963022842916096888003711932025380795076178387375062895639897242503773619470037253381648820941142316570435754175560262324598581360526058538163778708070175966306806584156361001348783166728099648258116841877572212761065998644996022433319310337652431777385703623141450589825782081655892693356055042645563303482924519717971472124294634476300628480912467770856628926432788613289589270019839176208842451275997959570715748524432690677971215074709814799513400299732838964168164687613838250481624001772764706415616509773619831985873895411972337596332062826539741756411063385827976375895734572730077450606572599105965602253394446648254941801007127690130210529417874935384512843158191219714453510770388745982140342709925800082929962935928847245174513249867428119148947460111633715285916262064312449502232523165817539958071002625288763307280464110455498390611085983023051371366793517572264003349931801204294653479852755318260510310896870383070404088566209484574987588744950416722466458187486008977301142204113448660777656894112257993415793460884372423531969159229413100994615755306770956792933281800337700539941638073923039197012561016206403851331420987497694630257761400685521501043992286644124287225260375893307138435943470660577386140938310331347245332326850935353845827023929152498375377652182783020601548298225964336662759248419195605819242737209639018987622677647774864811581681812540150225803832776934100308712395508631506867785226796810384413179753741729236812416511504883004677103596736936041117193782604422825120639576303100506944230997704132089359048076584458277151506703246423230086399066799823525504770600800337544880104405795624314431101611114749195977069554282422449927027112489145656726784536757748004750769729287787653700630433850753736907328448588980893923993819567918569164179550710616254133346616556819381822585054081867156366683638261473396423077722517421492508672714997132419123669116760221107430126146823360774596339897093489987148543462473039597053023846597139424116668197411730111133998964008949843324876943720475589229295714649327475212455455472422284169680945406661764001134658149304154421916023937058436934153181610373400799489081197828808282339638267023799136756162361585643089183418148269636093931383794194394873571748192929381700667209848115716244784246873846371050115824094418247990321994918235624622187302753671510795398390112676450081410736407275730413981140216787802980854480442059309583169929205827163398019001811222512770233698645285051662727952416264073849101673719155422076135213882405278462714896376765927312987565529283760252659060737684497381310854491172169169079779039962852539096667271036738402550026560344162576940031872011280309692288101864048818750849021110467808106447015009452279728106198446405095407199502399273727146263739264473380092658736849481753391403670778131538364686011126226212708866186541701444421795780193704694393945179640632447286489349622928541213247909787367627578582775044912897985596213376194317884517693631749811373865461827436140040548822555121525945730999929807526327238770444758160960373070751806039746862068617809017521929372102796879227157808118517087941980050644955209762224041148917266533438131945952960033326154086592071195146468405799988586619091215431431612342021317795392162966340574211842445863208830808937211311475588747314661688236736323148809408679726547998839811846144140586987720010177565175591039758099079255266241181057511329812242349994394225006492346349484935863846574502708518097839520564040108336130600624658830023434829490328335005027266693688498086169040434947101300804707415730044844953049097759203918600667511392335596201965557463885672031498158417262771789291403559948810838910511418411233571312625978167606951771219644013706266477925918092779677915981591286446750812134663458259181604574618797465531985320287194939005226217997692164229119514719338184918778161349245452994804568508666270057781371485416129922222705529237400029394797963056509464010628990889551010289528468036058982463557862707453240670857317696439302870377164608995238305393915198858165100246398382128235633210064240156706527748907015567265812791371338118431717549095516128824756239901311781542538874232602187836660823323313279568066828509302023777323588580546330879903684214966779701363281737736540592617078927399438080247245584196675606533455743321396966218574695509638551765154900520248026923369623718170705627221650392836580796653350792199263500258734148900575334084417723331545571559384571416926342792460557855574128469956609233754694981644962756335582074285048419372172324967919589718995024242571300921869604721350431821991035660510659657651183745048323100271957515099204449628022590802598495703769512202345417754815686811362998156661729353510028422644405489275893801053593407228690428148945804643486055094301827244350312139370761933878914265874474739614352520471339749122398728147167270864604271671217815417716547204766306813010356872455177685101957798622014184309591283129775720781437979824286912020347192861878597745277920432859061854474653718958570091401911870050290516723961883275085743218600001973624870790934713114136391413551358741150332936288141649608233791719844280175951479607689271585235190953984768930180239159335248352920767471684178082535967283454523655960191766473351043735124384557435208379725695165065053701433524056542532757872883463452213870349224237298204901997959805337878580838184588655398105889745540882656024386587150820953608002604117898543444536375310389247532768054682493600189785871424387826162892779568489019172162182150453074324882476708647014323207478116203888410302643328596361416054956818876648478411018704711256558404687398825406577589052420544191539229020238275728006239110434520359873906098726817293402452752620815883612398351532000130322925229601875637823555730449773314492113285798560501258010722086970922032384648571488661015534131760899212753684217790518234452264203532790230458593684955049856147384012029730080638586957469216774112229333517395294979174252471567420689796534370037723740959083225455114713459308666538148458113804775147894108471736362384167214143095703157086867316331423823670893052076595268368480102264221690274871762627009280904054713637685772882665198088498071873129582655653622857541048735698007752308966183765770233454775752450533514061448948604363849198955813926831266217453148648873432679340025204808888546311012656240929933738990310632476064012915394882587341983973847760098950551705637610761150295499337356385376412965822638198956608489603265210162711499091301359883721091610398130697908091033494748944216130030396445620242767923436808947708676218165025869161212230122402851001600674457937728121489094167412157611128248838893010250841219853742621035270355155565125003935955513842564497643008983095027763957111212563794741572258394263547940333470834260320778388851823153423790210491320835209819531954145950625227009352794214579469565218866723662883807243685631717995060555682264847841903830859986316427766829068219658481750601143577482657238878276578993967009746033038482596291680902087852013843008637809466541078796722874121517243184304111844816968906129982575911130075105996261022451833313785965123368364018074285109177202975650533195526998372680203392661073574229983533353456781362432122118871498564653200331870855001816497271366085892311547655048494818995428099554713360958060152583750588772079767548631568812271950074290651168467600705362429975829127666268276727519873042844466960985982790452259732272112124377756702219203685541348780429613378476950794725246600808468957855106330018575360684362590369479890441875096459311316416053431062511499567856185583931769849196762794835106178176011039885125071533378282239196993102094777316479813079246559553515815678476548675054068086050153934301702228485117550998109553784780421421163300964993138012027404441303233534823896794304123887575835146288367796993981293891334734683839091476250523183752531514349230788273951932841098625215211335660051749635280400848088210521921695704107000835166867974124148278684064891605498470066899169066183950699956712055750352537684331274533275869022398149746170502703324433950615182448353792587399647078565189482495126389138819994682518801965444930992724082572641312288998201297929484226132789855190449842452832636626600638265547989298999477149651519205640131039418633518921885688887684087850710317111307892317488811783057381068329590757450635652959319485372314814024366187759977659649238357640946800268250697347195311020423681812016867955065641513256377841376639268924601098323452883577370932663464824305481383396275123840663898658543827449205920595893328476656347354149865635664859915801865854274118187676527360335375099464232122363853377040905422431402680983393552196359310196277465340501563040201766138864934291887031881433429746166702579634731854443739861867750120590868578810127743722466848392650457619929174856239163049460113737448797608517279474321839460180466884658785969208640141487717434467991306658340832495637316008682743441302876544852136156492001189107878416887004738015745074321070571094371112453706295287076595827057093310828162877840409225811183001032357193547463856270061786436272606408720091763212642542924294441843745713715090779775934688865431996770262362839179133149343436831083535433560371497657767593943906921669317013201152020278542901667721028233797627590972980079362697533467134352130463176741388316180971285121580853180546738793603325120875147278299873809379103222986219234941757507794297030229381930161054566885071422193153845346628093108368151488952992919899657919810364424388121138295781285348370163493108069043367628319051568077841581180457142121887185238181132229285805663020950066500470423228693518107147439956128007570789438312669498844588505144603522697719323517399963938483797847440283663304362699692915730574505128520532816880323680961978958151032144532144851840732189748216198040325294779830121527342967159736189693453702911521080349623132709565728252487528178482215862388801226467834800089937444369429972670859500643334814751118572603670473978283787612259866827275765762980115368570742335803383394604863114937455041969581989346029122295399889085043568793281746981126764017633106778434134031505798807139150114314382594302617728783397484338736391510187810931849332017882613649638603091747861810724760256425267616294810366987635242567837105137379776632837236933930684823536512089001007890759018971514318070943322099138465007562793557680002920078030591653718001293573433955242155678215990535074930633630685178316958758689758747810557262396822683124101520170673090405298467633542250542614849839253778267331017435683958301762459310885727143657863082950998046071905011543572189690387998793972871980544405087068880823496032823497872485620058851129366198454654544736578030534630954588707563282709427187816677826885382141211418311830004929169698773281989149397688569781265094459269035533431640008598130218324592120063222143367118068542585341985112251896607247352276059501056528223620928534367997196740136918849891186502491185331990091874024860409222522681516109621041417491187218815468945454950844284604045676727675183042447841224224838895467998489115198782997456810904626893911167244081217641235541115706187548696465020947701098744935878714484068588225117898666380730973651863863105491236022656596069405664089292440883680813836861228982714524558888354350565452216374319097049816648874466029002909067161514528864035324448554196228015985638071040141859307427096187430662634930556828898319270291177278162796825626654558268071246619852257369982207027689026503171263437918607586858228863112321734450093098553113397581956740867241102183295914246548615095405944503330791408191593483287518578812337326128928141462685111541776126102524089131206617930074352019611337223679132344396454832879420935236667740769874775455129209956547653397322130243179014650118399966947915703190842098502466626372363165672408635741267510578584697357362069139112361599210657115639746004257608828575967679687448455924677897624732159013251040708037220012911000451647799336369241883096343754120089671608277316872728017483023009255632709147707862870483479973200484109432154929829106476756855017333920392624002780732047258341674459613453591622580147854540693341271232129256691220310220389048759553667857983850662384626664177028747920332469929140136013082484540555113220296898494082704258028118997887099888207031344787872943502354107172901804472484398576477689356414664669946613949276860767795135016544667369898900418729765442350052166079347325072764240253441893807634284246127511110855742084650853196733217342435874682227059283429870239834469657515276561159466727757911754430360842661046428040498622492259054561651315447297747485042083111614503643034108917467001493292278362481884274002546745561522626874974394612516045598707600616032717837120602263917264745485101931638396075953508226642388318741893536988772212441674409137900167250588964518052740858883913796197172653571255048816424235650011891149418024665914179726715921254618644308842922505312250619213521842544936119626637614662153324688160573711119412403345941458894357991663154734614164578095895867887234093489825915361818521279526208492226895262048825406759662446176848647858662678108984247265817289752498691335666160283663461655842845053578591409883019170917898602432332205481421217259745657682694531490543725807124252084236191934908950906441266635923424365589594371930886033476446061466834008689531409171477102216462469992196699779329116522074405585813013300322773290132211550411336271918574728784379921281821767757667435340548172722113230016743969521966072455178262276564079477788478671601062426167671937890610515218550867182034054063579246978473621571733573197033072334035791857539820773916989259237244370339507450480781523986548761312192246551504864967461809635317625088474121392485157107854472095188197131886280326835696688961211718021521752364354903694531825878155575423133492231818655386315317290280834241732625254493115318048027088626886454053842004757997616324613083723245331541835783609862448634196852112679973569705731764049937493951730251686189394990460141218584647923937818931620662437852331390045117894222837897518632204851920553238713462520770830225269818978035528581625696259034916485741930372514050259094652806794134829338986638034517189098241600278928431893972148920095454381289863756171029829792453853549534477843381689246846361243515664548477011675820912775507116357913365862717942266552254797588701595688293483872207830718707054162804630151742752498014376501808439742243608231700480912857155236125167573970723002317783723833793478735567539603049782235570817025453200272771298451214171999241416200132070075524252718612294955948890482372374330240946352773817576532440805136437353079413038024341617732522046134575392051061737865386450421175946112560483367183088136035306837508865567731446618905462826804490751399157930712562227574037857506044661724752628296255257621036668980985926079281446584458572020504557230506405690194494802320845221355498056699992289729646856849440112537780244871806995567933088366013054046352367263495394877432226334723689063139140947969457985097896113569509064959261985319626966432661447154138127943896539644061493370289699919059703500699077138892647351012919061559886121201715820546894343610372527000194715184474292371057633482800365000968710576723734810360616079412056079955068575211194156628998432575289343791439390120324314146668838981030374566906973725191324282839880664036308460807015902994191557567333119351378207068108080161098328524280787343014599773677472724473484010925353033222739580063928146237943389542030777319391157687900233328074237860020766380583311993084954792600553353513409675969396082008430930383733537260043875586880334518326501007725945684081286007492241342617715829198954814784939864543434743620493798372725616737578978917864794684312278869622455240382936581578053124250762571131120784551232803197630283822787238421987694328114884890924389014101347100539881521685563821082375793683771747926194041166643278082168224237406951112756385656908660699633203405270915656408574924932033365921385418220769260813096256306871376597635303893427557424404663313642087074253008770173714754444107609211265766019549130953753563194537347265019965912290286841136567978806407118671885898028953403300654055571513697643853110407538193283205394261867946682674284972409605883623399468997029885964508697333940519452031204961197451170977698806738822672785178143689841721131308759989612704059542663744639050314522486430096375520141768746697555214117920205631763163997890815560047626190663319349217788511031822403093887657546294540448279170441617589399299620073656635593224097304722139145352900923380756337256541168048973357639990768585670535450511968448457937855446413456068067392479503016814432737032480783388277057168774523411659946010493437756524609442169388417206467476224124010448929952682468630836472526812896424342051917989914721410601483415461876032090211487146553324242740081928903675724737982513611692994069360156868486830678512418666808350581522704603494814451711293021058557005938196440143440763560279649580213012025100034564299217270624666123251093870260136156506429998992676025201779303795531409925015023770512408043823460584971476835261343104825664414116940771202647297050869324551879520015327265446534872531939452251902995397370650626105588935326800998189619902844071355184909338844267750985430100747175692846045463313511021568223314610432427155424879514942395447460288610310746773654016985495620694737007664384083111653049070524690072120745858918955374743733727637294494718906324339755028596177600453124464126068586545313796512665723566138012245994771282556464642382281794917496634474542472164570762981250848737966000481206192231710860372328304971642206626450925798039001460524499782384171379795084926207095259709084381360159530536426927047843306652343429789874953416058913757627967880077566197784784943083971976972182638505478340570199797155367460530467251488851237903564704018874206775832705684845861386546472022944766038388672470066843571193440065589182703829223457245582524048997604212865844130603867805236848734878298151167692303104322464164983148546736765332536896533400727929883921900745133052247552082128745650985900030864364802869669400257300453806371076743403004973083977111088167548097627065834368859627989004957790241573393780784110899601507185455937972378715523144713322692702879024647990290400420724527429921448146099763876850160309661777887650101903721301636906339718197473220422525784495215890948770066203497556317511598651596112804087347497004129987808780076130464552513816764210610820911883954245010642041479790513785416985083745003946094829979768813073117635451217030983731358401880075503978505553797828926137925813536001385156368715183340817240953072008141539909440126511160235664727824222895249480902589270569815535634290797061178643558918294009429802558766353250475059844835791202568823153260389949708472617998875754928104573006103314586790584867704395679577042347099809738550987253484556305813435373598482214784998314842703608782183535979531079708865315433726401494229491003901726863051021652123467533730693915972734976544116681616601206481190711896110437115241579988085960700738674415803204984405506859851868025022962514503224331466061066500658008085273671940383180863448913494247057536511879045990864001041790704591164561859380044833004138711166785771111885550765223281851679425174209668687714273701709854280486202091456109677005405113605596100155633498922257932055666331198936967744653117245424406912140446550487428779683566928662671788140445322851488396157580454077761762423509305786988957789388068719742269941049200452003335998797310822998216579104984197139446331503747545843837210637371647148833089307177240642730425911607492679788223678981062311100672585578997678580748707596092187302070982955010437744331654720536673129052692586057302510961612509579610731589251837652353619004045089608325088884418523977894102749143338647258477907166820402866888129744965348965669079411493332591470441147619449274112889132587167085849218812935879170231701665434757624964146949290801255785670678256802579726707318883494589219461978544978994646000091369663914839185854222865097593891265983367699648811585480232080090809426954701421349647500772626023200437605499322238904219857602498337900997999172107475479973901616302655453996029016134714663812028199804080694366219552444220256565316562607835849495319394344449606480008142677123393284466237842015659808052024356931230361708169284680013747574510539807788262136644330073176589651541809813002397989488611476388032417120188767255729210319625286460197334502025963905364130652680190774716975678500742628626618575407104347496122178066924459260815594400236047118311737701550602081052579145923127651902243921996540321837140144238075643531602244670348975539766277028332960456161314390942729913312070675382408075500430853120422160081883727139354102868275625243143313209869620963908379442381858465333510159331064663486637572624557622795176758357222293197422927114718368637669542819021241427252782606768296636316289617989873043692517865490406538622375058445999118493291956602245160125429812924166448328376660593911166095486167398942953019111154765303270549610414949832741309183947272129252732566875850012647930338154602258643863397453700555144410921011750693820567982958790931504208804433493348395835921109630757842098909033884839539938557552458393612860741318538388235391351332273334220313906815662124038033450818640145584923355576975117968636155083623681088543329252527531627871172993731630357103178366468272507411267330489363171627372677777514113174086858625486166934398618807926680696199175668164808923712482087109982361012452857012248593386678756018691596134020745363162195861648612106589266792521580269970611757672767587801662178852110538852100775668304339095647737433667860234291735793749731154979790733269334704502766215618832199412594681063007731801382551645321292865350101829299201511599296519785933794906639741074602053660413302214665127436719171247832848018553081518138288516536959798666615521023952820541528268565265120602326677667180258388422862369656364609012741796307519591989037070544189311988981685621431694025810810204700593547062905579902191917634668570747905025552010896204328783485791813347544502682532543141932938528788265898087356863576931148208581272015664120217347813620809741347017682905972558233028683855102583946428210782329826225222227508952393512944295369186290355249963761844027006580665407091120903747870524096897289710696702672547412714395367706616123322554125085160719466148706234257915206142482309557994628906756504579672599583589302365197571977624932303964431307486576402334247699234678638436526046752073350672814064821689146481034783411014724477557699614344724286856076762320265450134844486568143933818167074913319502074430379386337698084868248706826506565957053879206272413305459261726857596745308088463472813348558590584875141828813541961561595506374492535704854709375093086474443331337880200141829325047240295286491727434169068866366447056136513160907991194741674790063919998245959435047650926074121595119579781427910383025992727630413393505855697576279850317966957476821344820220286341251624168524047967401127391934655243533202053213208550188253270707060148155663622789966795766338020677497864892363355470169610517364673647928814411830229921055338576345027441917298591721834433211608136954319500320445213289011714441419237888454208296975911060740391421531187455710211843832533054119872441862328417349032228220693295448999652902361631946437828163898893346853039712062492467788142586627626125307278654050659489837315514754757544464318103954983257253165862355431695242161489290913910850538016058341003601148152518972958067781483391189066018857131661554872248069804479412342526503138114257004635634948488933839242446335919816804441238278463627376468381868299263533433833627975639966380736015451731354524976902639578996329317221801035046064126187998232828676420438319122011738360473760977935596130294010682431789138869563968394929775353991604857361746199216845665820460748048329445636265129441158013496054950135113687906979064216893335118285449229187483437067874652357618167285653122158444789220575457270927268356917623234274440353333051151530685424586818118487718766355576001592389021750191945737525448595866603175522510877423557081085023920549266863176200760156882964577749968745370588744909224978635414995208797049762034360072535787464201336551757171191727574233449473169056966096630041869753333701103108639382147417117331096480763838968934673821805492039572576933470598322677508390657434032414415268371575286856526003194322437326435823373837480535496299477156605906954773519158803466230377645445723589034813992983537612396318422718448064900413066257033226240500289978529431363688296042944099416494143623634011732735569932657420083836586117243030018378279414367529220064046170220210417405320537325634226959291638374070397289967627569124712674171946441088781415246657347731012671038020009011348861829084406330056269010765918971787552488830252792343638901061552177528845165957622152113570863719639223022704388823610227195749015193534775548691475735458585228427946014192647856681746586870985320291756782796322588941544981957219231197934881749130652521975655977810640483752964517632304668213311302061833146206791872698093043314328471700800243523300136039045178099209484142523090464843344199547248725634905016528000322139002980651105639085347615441399158630365604501398343909728968327227899056634185965778917015610502186006854304499364696394130249288940228870415799104517241580967102423244672765034026534027713799386948463117983526907524091882393705023762037923459433762039033133668351555031480661422004358581754258407904125240494483422198253084804072268178280131496691722678410406702045272894578316420128619813642606510568537798739716932179639545387252878138936223720798627431374696362303068170101311892909420899854034474805588122284193084633086594745202012116091519439393218930258082015503486530317510999942039127752419057190167153222874359574728651795827708393840258310941064611362887424616546634975919039234453433901553690296222055969178607766063656153105230223867371446815162623275206574832588783020475522926645014227963179220111006890913905090257353658778923951962468141901110666724384759101960379288849723176083621778508419942534426689597007788423403410083324037095597237454957339762571610002837411087790378673836245575306896603092942746642503006456574758387597566547497615910810161444361119504813095904197473836632616638697070072907089598449104853180550917027398196002715112563150213486393032615503912703307078617401290411279586098460980936517057091388524681527261329375368187653185188857646711932369203906504120902091616514198593210607454070546963073729508839596146991881160498781215989095999785776698616350835147900620994204010484825135253898357080678015583952372020941538544780315295730118205960132815408994057938524023268288542147951239343149916652206775556574469445829066355432999324808987056325951228021025629840446407842486480341089168986455560250221920376739785618209954680891051153483388543476367706359295619964528114261416420102814847428934333210009257817856194058387483771262233728867722929929912225099973975436279197656779840051493176729530395306157295278189152216308428276646386564367279186585754192601406712290521373852306140084120066476447129208208103745380356995893919575516780499954779608015999912253062615823078181982111291691256326904670852522697186242205142091768309471653276292265690617576846226716260677278401737243773890061945120098802354026606298428319066474994482370362052347078363693959680187464487123399860115500871319841817081435484016145787358915213364051528742405287496031914316382940806761427353381102707944248517131203052328390826290570095259285003001397438222331536509182304341733152760127588779263336394466242732101360435170102069012357513338490807444686205354947511370112878525451492671320175345439000499752830142261961146879696385061085269697997755761414787239449317277523866435915234561184898548567465076597029790999862750626513817395277797873974889811102970862570349906887129676463527846753234310299105789253585933228330688485541320686618257925377042506859587064635110796705799060342022557591709713741826289607296653163948539457221053567741244040399157214603983862251934683791447792305951481883098775477775752219821815232644547025058998905819898282589868203042694120632128927286035956507542121109127942384700341011536736754949551083502286122021910413083945524130362053386628878874006849131776837524846180509053200921922824238572133883004624147970281503297988662409871147316422129416954799878307988769599656529497610931917876754386953561673477776928688848392555617787102476540113812993536625457658264938249505660560085438018001300880061642882213678174045111599357278226709654396110826585133247992399650375844250511010206310969579932050117411311145580086525587234732085864932551111461668043777584698524862066638820706498596954032393784363729072486059221831001648948864004643833684119633770086402054166126637760819188301163039878606846306904869089851332818800771965962607083182386695295857080403598972149481683513297344370462962427538454550388811891858034625768517376648669746398304684229484902596698956408954959391071001636496698001248892784986692223358771642000888709822870877297024230596704680010816476801345405419601712509663626667979457870035703466283491272114246558484204728209744255124241254182419123771387518962163238202805534222129951546659937660262466853567012705547785753829404771360404020312072176951098426520228098973216485768248326491375247028382802630672311827456668658103852623806684585767236664047430800058088322705935971118484978916474596395619968029892528283793560128631531364171061560757173632011374088930161731446105930576869733727214612382052774012778360809080169251455501499161594479150775918405105733945533348267654110661910866376985246913606621426505205101425540702578303114542707999628344221558307149490579610548537006198381211543277519382780533960426242864680819414088190309813070458532497525144514202331999984116204079494261840568694463972973473899698100375723050565133530355132488087698804939167994536456985641545314226379650861226421186316692980389168540106779692514178683478324778821402417465533404009234331793647866575413433560556886699978905103549161195699772925491393250443214912567928016364977113346781269784703224927066864266618011591865340469346750742168798691415807327357737209948897519371614446319191522904834781896927282980213009234556800068413438464716415788391026676586591177186148230184766546311398142580032075212106937906832584612104786962135582602397916980669963920552103294245139538934852921432047739213534215142889413039016808455480182451042973432532019580859567564628731692943614946660185854390205579964016083842312327946700708374331270579610820899571838154601912687273210685953159015706533087472121987676796666920845211278147304610041197596256473813443530479708272500323587392603188867729860584618767080954426973827145590520873389311097910325824262143953300546070854099405647534328929611281196929592818588635848866930035952560097196126588062497949718314017918581096406423380035923742616664296352700276644550030174923756256830516276939593243130781807410889491483006376090057608944620355125813990872286692045422539904184336885479733327501832582478634421326420961662227017236077498372661130516913365649481230811148838060689569056998895979682146260388692284806239561801825740694550915606888798081912652932012012233011251225874507807263524697186050068770323928382238800340432678485070051876142485775869257193706977542406149239563899829332451384999667590829379016529715277167006484680108494071322901401326517959559486731198914400167499043220306910826217391465967586473114082605933944760231291144909007858774794432722697236920078331989816236855144914470502217341444078029804535662566721636675105074052587018412351971241627987930726589707575001682699075572191903024490324906268507380668484139700500318333199785828587087866327945781225711793578129487032996111536890403569752599899898867540372253754201275826144096493191349814947402771559116886229530947102575378514172944759405519483203079914777744724368466024886491740717535290896183889465839398490488699999712455913467218567906819399991469373341583216919711498241691266331711499826330221733591104596645168568847666076641915849144575515207956462467121474704847053593508483874491487974477576575876973429335775340134461345304679187918292707845570180066984379042674809339393341138638171469803516903549576172539334246893201469575849603164195274877530618153678276051261431544905057568866349821625970007571377015409707835648249749708147665464925129953948725535935884675933005614510381294727072928043742571994362859311633869496792587983263405811830093138200441799101017852706036643181948311878026846223114358466758434110620973974576932049570023553275128012417947421624749116209675290277977934428597528365175365911688479318694502717097484804932619089045987269738006340574133881623338198108774227401769072407470213120228784633149486378726215447763547497652250477593409955082367661117000357343070168806071693997999652616173228681263363381908135490013908726929572939944473813677753132759216817866082751752433496345790058212719958528620730958403053118781797576545291218744007598513933747942226810980749643894621704458768541321946281754480823189182901170467366707211969975557547361204184093438550179992057001181713357464746867039889734803048867572264449006665369282075962045242376942915541991034434511120933786968214789209804895888965996613338820360961508083076489236697768811548521256135528887026025044441976538425776662722674277662836224396231861586414735220800528421176565640805837105531457815482742218655667776962195124924107788376792082104954113031426617769349330187307636745227409159266217938387807894579458795253697367602722283008267488414740165197983232495209685904703150917171846685918854015669767029818357890403809093846171210719599971250712627471024251231734138504581178522400506681046567513243917796800341417025512522428604201673845499530297060791238516098384521269838090781098339113462651951674018325344206200539824605102777457386280957367957206270845699410748699842654601866987021108580989959229314137441631586091607809163966873971421900227116714511570370064714286445192620131898285441408193642925118402191884969626359440097168573711146234301637292379680055545095028401578547303642555015161939686949468843443217922422830079894298054412457962301012818279853405127562688964546662870126946883376711592130521052523560008751230538266817337599276629553400720289265032771908208716758051617592657910604743335153370332696494413786995423199955250055279980527689137927337752583319699948019782127879011064731971438388722773482118656285961163210520897026267925688311817138707775441151042171666451588012232149273946795796199923911733020832634022421461257322056270888321994553274914857584396261956193676371652265429718672608906707496432608615110499376913448664054528273658547307781051056035238635166700475202474327161124662394723682999009883296513420702057183984297788864317419786731430454889783846107541071292498889956917333325093423831136721407052978674830558829493056916772125571385335679087523442000601966090445010522189431667429014108686349345432000608789288709047942819606502532978514338276392823896114400983716755995411828464530511364211370819094125727193176281457693609218722239316545705077975790209493338407410431564250946232692169579589353561959425214570613904797361838456490548868290318641426374989332847507865454508358174177256594016107222897972514072925991056035693668569555953847918722471422391787155722916667487666521592496796591722996824488808033081644120125813255519727031706235161018443223669834517839715457603553355395590119463809015112245511192422352346967387275021518480239393710162899879561285183528903396601798563936931528133502748459060409424258866704319951892358937584245576057574809284607233470823093890049299550962254992909113946838987333167662912086083510264966352942661593253866050788062683930147175022988483198509211890115278628168627874678061168470535974970584227387886946691371642676560767082240720851631911856976601030689521504971677915710864388423916499522792600117906094765484669779022886244334416043445050994274882036269565170897464150169804943769050434096303067072781769427915170416185460735161620596089522236179671386910642642043826243635474608475503017765330676454764445144994586045784476588716171904622657765975103486190555518021741781428520771434673349479720355669646135041612008414869444563937308137363102990172600255656093518924588846881458909038563252038970189919302863988024484419655789234151462374409605426824273085996739417537873104150250929836047554822462643604464627386412698391193737635198778980925410861830914787896758174647527715824943142362099665468519896152183100704697967536652580399657683677527224969949323449843319164012313064439491113342007202385634436341904456304483320728363525812458248559836629107576106594832366869417218635202427309438962114198663317148834101405060455319843632981855453981260411175259027644682651918253837416593658904989064951089607968143677184864643160468890055527535524148340716906677642393891134677119589869925596578815688186973290811599716125693535653888657008861594371392953536411299802521720132652064520366962842204466220054641419494587984921975154627095873264644713612293433856538645984272992704632429106490446700227820430236907629059276078179811568428774738631487194770903070957655612172185981395067787672279578108142933121652599295301146118255431673400687077892224331114772343565418150855954234458512382307471063405620230331627855170524163720277489544221164911413423552863001814603444900005632261432882999889592825372717559588871979033818201928306724303214919624428130837368378025949740715783245845441843222031711785612742706275821734532894051722785656091303826958614544060248242161243067586837628892467303948376280323009820113008579944495370886888775758834533026642889238367964958017978912863776187822660032131302680624483892281098926790312820307990328932725540011265650730449009853949347301271697894910625369777374312043883439691408987637087618110513972521257556880234607397925907737609460083173732244805399258219185800025220097453060449141733186589687936965158940386129777959932682246162287637913530513366614107905522564174570876760665915442366433391101679831445137674247590347371130711550372908574979642475286056333071157449841881505966935609269327750720169097691431253090259741628895292449022430636117577595208670627377399535696496104615803507787324598029388946008679576375052911538553743826312285816710569191829148763662109477762220801245874112453983406087153437744356631952037974791400928472809388475725815854135506175010675498584068898064365318644856362963249251724986378737920769180445960434674309814881928603480622333173670350739150519967898824202122573392324311527946109144313309365092635847239180482240105896602650017553172850819389625329926484514931659124572326707505453088256916680636380692653377977288153009892927300899986377702853529753095764869187226870692810791725341151423048647469762423446392581157385433079527739310663467020179503256196135091596254331869035268389708745914374962876304811708227019018314719721081420054843811446435602273430645832658724745235465306686259797064673471975562365152681644345024997430791805608074908027752824310671024690321207415255377321768850923049628153391889276135334528104006666952783624035872929091978101855831203323364869121465712624534460507238338631932662058607666892743665087104040376074581220445548580088221351160489154145906269855769316038354008085236459819364024371633125140919524327056903413080296044622782664283006944205253044172748943542834761373765473490914586002210979563239226092134625335048630369471442280245523427867544320700508360496578912301941884837079534907598262881821779178869284870010121463587703931895108915835170871944759667528643232310545843331908479039801883585926026625307322279487631645517084091380332329474745225180698015119142522578891354377384841599860424459293068367278317032100403017055707827882590183199798576269892257615717509387357962260137926073978556810915566903274759490955424278197304246639756259909192800623292348646668792863188050780402510072848706802360574912369272527807692706862582984556876267475755319648423933980833641548736689392945309658291442680089090342186518201392496418088271588451771099665117900276908899575258464827100507654479709452490449282715874479386470968580357595946664180398572639217065740329736276465016148660734811159814664628309555645614563035985016541821254236772826874135612710702684144436460514690437153138037230694872613114615931888515394302600763461065733367411157072907585244637468731262974794776607233215819038230124172162963480291407754856438993623616987011596956439529171837731186210138155435838379295540174045967351719378851957801855716082569949068589822178198202796298369543821954111620936464596462301818113291792250643017509910947052777388199771395171259994658551929017104613856841585075700152009619413437719109486127137345766072156374490895002788874948165873208826130918303742657205562744229341327744082192502791647240489289842620388701489696044911184835729911696675866390475778691900704711384424882396503456517506569865330223284821628050346132165714931053912063151533600106840966925279672447403127786448745734194215335519255483076972450605638332507995289252750353740684970125287906351652227240629000261208383629057617375477691277962088666993080266743106346698378423059859288122447640521764005281151637193685224860071750345299130596715486243257462540455437425800740030062826692845360783280643238767335564072404334635632704645528105433962600762240183184879283576909292708379286060055157996234241660452778531681275597514435234805175629883297337723676072382999716136529490327344009300028617841856654477729836009841813478140822768795511901381225548692081389651183218049966668953897641668350039788839258725643011500993279215647489184191673072715141720660667868255929956086116250022196762402485791322670216682742079740295052047034485645822731217621754213660366789128795903087420250034138581220649763590513931039407493005136989861143920229257606032452340709346006530242480649279392442038907846700662675560146935926022154828745133383078191912612098921633850956791536422203707680332473794053233948481904353193190363332867491697315907366594971671456359518725625782770100545963592635541565079689189805367585614261850843276722251209608461685447477074086773677460193867783416556781680342270425368641994204388779577941212952103300506912499542592749493072163294242915896370894233332647979017374064091429951696117598648868477941143151229614201904443947472772281769499480766921199701571922468280785760637223615709643708953651811381162875999777469730754928880511271957890424168405610125681734792758865086581569720731029752876376268508525114144848468459179325520893271951720070355730417892528082259375572914180938389066332252404818544152584299623081419429412333930721315442634138283159305794202238558416343404172603245818533560838631296812653801048362731785441439897975234960489086760537727237093109908246176623508797218079687271939423054036692542170921836759555303820733030450324413425237653724156759316307700466550127643309008652885405618469171662795276475817802824879016113932361403331283499169232032638988532676362702770486245112391078621252183762015874146934145560113807573522698704335181072020007247639705097945023276135587894665844862139759252414244481559547574598819965307753192895450684828255992675415992822512373396687483218030710736597746342001022762071705745360956738134254066853370434406805659694448450692871099610020065119051320390239135886954207336330863774148871822886261697075515084519378753848930014805310020616388480136330535693414952967910426602239773039766261380165830289714075544485493213951727569751194890233496601495427975136050192013296778736244276331042219797996800532872371779295147615444373088121852656465032400083146208072570327487582084690927611142640408355990914893936069259366168031388029675205620360913360246589475794957930277974562851569148606023445031800411306177776104155561485730531479769880646126000904632402388973347369502432666760881934560933332851398925324484488825387185674686175477680563799459190456833590502967752799790071402369950665595678989786725269189265148237999154575463733303712419290750617281747879890343580425264866473534437043226256966141144739710475270891821643071891265123909003616071056095836510190120132442677763523180991903517252774010805052494233922618833465594568685502045024826864855103029467784312950541341126068130200663329152726613884489495836394070611982832782909176494837131875840240599538036884905586416779474624805399536120930082731353152671977540761110331197715118212606756294520447344845605932295992164185788532732959179660793918247658570883418964022959761335364576860337315458794093603980234218057255615206414533780464632766369898731631068523021027088235990262063332323573850135186520284113313411433881252995928226649942212216100595056736441262616195839566696666809034147884983105577572044396812093048525177390798598023322125515619357444317729446505751571690277261991954896820923689589097926788890446322935281663473641045676884872127560635324214135753078415718322001490426704026372445117996040339329644125685161503895885069513520782597966053800614676146442033815132392142933284410896848445577516148193902673421729767834456055090277327249777498294075665289075233705281509052017151817130424018881575431220371816994121150453510070923993425555555673409117894207592315050842567391978117721238575042460083519727379038170571680991214720959418409317218186691776546189930292091153728401981578951217382965611783996390678623706939705101763990956786096795225675949093960274400984284072450308345216898287647090715842714214409602906069592286585213520879768052165341513110186089204688689486767137535362908015722460885202641039053692840215009063684022384918173735648884643871236038850563230507395785865551596903279100766172631045719189705886659430183859653195119984742313332013844716074041085591371287847771708302577981739578836558223080475369194710073794320432222203600120896337140860466931708026205420376175536438258068223849422929089373841665861640570354181932913695375307910623237861764722934866620099576378654381181241059133839031554334971251297694387765520244439001123646110842767308854324561586138546872572776053102285125702950985447378853620357348235995830108246919745379380859005167726285966080160746980291313767035683495329547167761214862112431983696052259169920081801456659755842790479023270983494693602884394818710715378514237678869723628199101312578391722845431110865228877928350898438823109225588220713484424243671448240660531173920268576244992076526323792268791650808327662814915055971917046728514462576570055229990230292999532437862981956555945979607739791539402022257506146398210040847296294534683190973108160432412488435949929751604911207911636356206508634665452907190810595337483399409431336700118919082437356622547124588678067977296830179749790316910606744481528853036965253258288469844434876248326170485469057086403676350025050769922404789783462440160665472973552478706668849429879617906152712625852518988623392159344447167383192115037696754920770341123197648862354525896074133618522265386483272970626210345643057781690856796041582219918177390492236756896359699961444626838117061609331598650354132392439496230681075126083989110956557087738593614882033359331492612614356082781267942162588215045072494040487422002176119457347144605898933169745164867651856536373797063576319661962430922460512209200130539914071763367875986776177239937338874315455090688984444702410873622100209485062076210745419094595340118822937417905183470014752197504752435495808236978537701555487248116618022558663091593190232518835163017053545409754571995143526043536191075185811039000238099608887680353125562942998356764908869052346963925462495752700463423086454686868881642108146637888294835309262154724737159494842031424079400256991238119207141274757996944715094906213965239498319216563261406674318196176215484753561226109852324165487228795285908350906944759824010261997774061214628357885923807737442677676029860728269049994227022357916722336086988592271385695384985283784373946716792586068101935552512242298056595193946894472796745023775791995693076468637339578394184642877779219305543232343407445636747286388489737860262353132601615866407433198635457326114423866935523976967470997548161061096427608996072251367289212744549797655982318718492389107249669820787283018818922231387134729448656821505934742211050050132208833263699439731560380898501321900973243568612398374919069871637636298637660749788677646811755313042271663021093344953776777501201660071593351153385680141135404739650513066450335181869439808988432287381182751635658287341424358671491852867333145868787407991021784316330496065002302637513144044752726215487309552338385611909490927958211086752222034793651702772580872310215655467600283118336384399514727278660298260859750943852465609455054104107096370094430988043197467829887765123958902474517577758212277242826937680297704431637692295057036063162098764590546380508062550109600252781528713894323771253223595391596753639786576585097849995373383664521186738763536752593029055581588260016006336065157181417350872059669135389273354466171089239891971590849773241924082325972995116442165568083204450242871644177305727014019317611958460314747457916239757144777122555053706277732236281611901310060166723886722731899134996819138004770483420613999957025237162949936702785786815788577565385334759014899544020230518072613204178606739612802098587201367158374648399325990176446821735855446396438625946287878471007292471430405594557337053711696239586816171090977474420979643573963060671822380306800238877583557136077088630552462292383076860255373446479865796732141014742366418286564209066671596730748699637020489978436629365813864901625189617177855604866453225513159451408392694395506744139593336362565297187319823956120523468778209858677035738713381610508295882676832636323500175683386270512717107605847185327240649515471438772858057846117596960010747065344536963791648744214178254621930484585354999110849836921641444667345585982435928932391451258562712018328005728380103075519789257285586175965661545823070190056231184673626614421281009514209919151393811807990922591375824558766649492040559754970102168606470635088434630417353202961891978289927142915573059031164744416110969856734859456023112005734814928384764645279812274696734572317667437851678073530807847486554223792167376708572740225342065266200769200387099710945286011974388391519167962555456557505438513763651924658563609164832595063844676115516150599139547241060905983231555630212135131451508276140502153543747615189561238257150962753179666981095337033484933714487118907546103961599919200525052827275226850368699863318226713966172896306417114945023905436031101074896542072313018398303546698345242298264922357027905309106399048816128961713813188855717282663580314109142846212478115908469808604095089637379197719284550671276039163177262003984043261598635836944330062347060721866680733608368403196879483672086115814377428168816185752046074483534758607908320413817409249569882711530015433497821249580051306707270986948294433217232767192603057469161709973847256464968498660844130124121763303058002662347528861136278487272374217587746819347911155743053203198998407149017980616671905330850689150958098345929881316711402506908992447024659613700796480074642793630445044734917217777004461450465167596895621846350479508946561221301394517236224639948736731208988670141333129276817482108886223104209062608221022675042465806071918247232500256152301498540371482155893549831648181191646605785556112480792288471695066866537067702998666425942330998153304864392224669953973383989696240914176449554186034312244462609805672629431583354534668562651859025273074828941949612560190232867114722571340590598040897040973428449126126102884147848239880485554771536856830616832111547509165103712192379108973419604526576761222982054502424403303234960553489677531669735618597544470845775802776936936124577565857040472207999442088973386547721453443897656008878345232941960450106937563063796637568665764690655365245561868235497373430497408850400370610925703880778993569218763718818198768868178413564786963221911112773552746834299569778888513864466641324831991652335671637722957038120823417913009605843536029982764988952323456105860161701018567772403944708128847129981994314070796300549054583163624000551260603087195830836939238976593511753428639474409625400829479505305764890416622417427872364610615993238752126532375365771262903818546342274598300926465484210011371765161394556119451330544324729566581813434387116871045322909028371441371587359254120236724452137358782227374713966059478014832033030687461740649618777033602014126498251706939375440826861726697647101195945984228073468684102045124426989811799915121623916956064730200873695228408194590602130238964167369548141384425844731267539300088229769007817234836452388329318718906032749984616285106689434998314219359280831979551202705044552170291576767921783983176974898610806767469678697391051390038882675255983103949905339316873025710278717546207466413704307273220398125773665103412877455523708598220407639041503216205558259725595505574831919656976128114369446269224481774560564988788720944341438638032039633302274091685196176339618504877104587068056272061415365747150039226497888227225604127243588987265305900543343069941214681754418469016528346520812053064217280153657796682972153035639281254993963628317383340566702838047474389477918516071899096154065701424648753455909139893671227223515636736916892613850901453890884945829758374455549873893881175793723041166517805235287626422368335331357466421553819232724450886821055169057169464223058120372324484912040750526973275421090721077735374474219387198096799361417960056119109339494252913344764833112213450906713510137732762157769170050395014134253965170358564021367056267082628411322616411248966908165731789174711979382826998552527703927838991698548611124103754144716981265221310407914977063925494696997970322262367392656562634083110657758421429189154848472423675281872266878932285197117989352749953369829058464749230479175677383256081568596338008139018470722886175288954727718281009913100691989580795059866622336546840897164397186955973404098612455985677046956742317659872369183686640132914730418188221260012395342104221543388234245389886152661198548401063370170058877914017449574058279427222617042104811016559337129788953968721215490740830436472712538946368880492988107702244313547475191050141098001676757632106844622638273408288532008894285659650020707598695957245655539405868808051758645585275914337753328179483444932597442654885041406898919962863041446982247580586034208685128018038437417509731519057038604179689387657117980510399782396190156275718494103211814592323785772213727051503284705787744198750971303283140436533329215178490679876616753152701689612325143127742723099447894043769739575181475472898747363129762645634947675973569673176874463053563618945672250999760323104352391224751666225514210902947572773128846485243500547707642535994894919326862826265131016609351762612579669537847085304095339248755666730270025831830930782586887530397951058228378108028814125963321657248823658115863848838045353684050354431134254718206144028570183712589109049492820729351051338419046222371005639793397349013472777719374751630719528296685931661207326070017195532149517628372375403175060548770327321718724281005027360928200653126544332395231184995117380640410243079975096763669205406783447653445006894363109946895007927628049646943942749924943884654316672444685876585571112276559684844274440749403951272313939888157144271975662988057590806389562958201347522207551438787296946880500913154329787135844081282539631753189276935146426869506643391456567200194620643948105999901430163788970154599590624445834276972570610798148026320347467982916604616078903769726417211861784539035788246751559558889349121445729251164558489531304450318946414977132136102059358481235616777410294890862409486665571538460223980464437549035752715241739625323805189204968863732495517628473293509916305152710300160852665722446426717725546459614486736089019148571725975223713733430861831934183297237572004182732365586369746173864967597413931777359899981807566742329620431787798030558021578540474109392329004078350714231636761017656686243912572310576945091701249372253409858681488783682254724889736068040341315256702424945703378873873384346743911782248894000165767518630359432091991400561961213756498093694844518808892735840048667686892770434163250277602404402104427273928293140551436924087098603610839804247388540321198818856379737048660514592348801793851647994069794786788973281721299378796810869147983167495309195747191986393443803265885583006209074844058861924815445185739786191778286961050059878417888867333354130414202291929432483627307733058429342882492540507454099953301113334399809945609190714258919825528772232157532875124025445095674149586885700594127890674704016545432126442980871484531904699004716608007506902116147566899767990598174489138800095872914454633788671285587075212558510933008387037711174428404406513182780915078987903450554181221035107372098665665187351480478906543272140564033321384480435537644889492911333770604330663106695872417010764600076908447677912741510966656362890019637487315971012026567680769897324094070532359739742141837349443216787597742336728653647856965677165270946033826261350670149947878374343402852598710268568354913728064132718471702938173672669352575188323175320307867035188531619377540081901947193177500427734252006594462314072146874951295526916568283047115630934287253489583849791952100754906153793515172432620919971269919721359742787234811400147724034498016074218992228668464564058712752114461163835393127167904956661028998222304402965123394896119333750668386850633807637537186142583015800235978514810029916833290354274022648959898416922341434169176562799132449083204764264352817397285298532549528955680061909476811458126193796904089527057166236434908347583996932758692168152451302362118869138115846829087087851774073088110841175885337888954425112644141376856128862891759471779557345070176429300223020096425865794201618850804573731180627119136086637074961658104212975482420506970913103616963730837969995388428428456629679225884092405880120723744089801441514782541834128616784637739228211948775112527364780780334712747829563475760589459427776319677671348261435648394270641598394975902238983424618645780279303091055608444024727457726487172953075922047803523391767864712752263579322313316686315732848022996784901154851317400350532837083149635606922900901696555337120124726386777157795879347114755108052370349903140445507879651950231878328691624005629222647236934833407467196644571070592097495582909453164319959473934564802608186626441782092061976400725465142063356758401491154008275331572710064407144079970238314929878385743723651743275116864065060565748277890994860513079264945705616763531839697008300393591821776629664325201468282689854694192057006713651738548796421875568840861946972488747895412041921246580206168592393497022260289802928615043382857554999091916521802705659685211883760654751963090236793312280046870517769112753084813310718208932542448958847276372422682065807245278782221184339996968885073000643231168872172453519877023821528395384803869081979058352957159606475024898307581231658590545959473244527300334998863890979905201065580963877928520596899244650287402253929528161561011606857600859291405462769736423831320308239246732552545222742825959376235807924960451836592716125312170440237018701257813344424109869974974641830996355764295448144302996824704447426762276170773355181233122137838999721289861701729047544333068135004534558416384509719522054320526330803594660016914297901404415017596316335033225212425550713436592679335343847305734647557553123878972187636666152490074467028783650805356285373300948305213607073431774338783465961841032930541393489588959141196939397318104233747433603498242521208530058694980152477299925646638100798604320870720509275240539817982000122850844925835846090818953853749503392830847806028520507322262860208129868002083269012574691734579507501516775803126469928832227467516083494974948240933513811982584897542622747022232241116254565163036561743685207219955750674659478503502372975085626640893870232637396912589066144088617425369881513781627205266064721799798787726792857003810551644699678784498354015617138560757388188619507177171747057657572012279302600959302634025376074491990687465712309364064783937323527827697940215090286079781420759164111548630725196962364545009116709714270627863183266412475114332152709622482700602561353806119528969048452189963338304109671769146510792197384429295415779983636463567680640040443330866881448436776616987751973536327116988568991710170893411432927731143019674790459304108005715298608481762425470889208324034294339370388690826616698860672497113157416842590931190838173629833544792161901421861410689896501179246038498364297552472911037226086055228405707136716382234597091928924746243721222772338700764633573438507268872215771568858905692304398183387318400010050705797181441652546124032507542895582450273553126481849701539440781426900636137221107930774828681982648258206681604789194254659138150552809307400483840968887823588303952375415592937727570316399300878228669957803320346802771989366253861748391178636364912267976516130562862690409821364873519331760996749769621914976899635632387995678809541997624870754225381684613736232335830830152929145917449375766882568140717120963544285526920208414977832269175409371597656595682035616588984351949420713254480745996660364348303429817343148881114967471031464226965456590610152968738901158581839384898895412428845220391280816991588864641278273576442839596905550671498089588519103813363352783179565983629890780770519327674831928191225674136523550947528193134376834610518321661533013485007999717717859534260202467599868939389153380439645362436398548961776103214463759765318935796455761295145506252428209521024834704455172945179050696242519094676952833303286259933347706786292849282890713483634913761327617424807351715519446320758544886993435168092848110807001598258565230611525162227396250007238105306772618330966355259624187527918927246105309060604769105026652272474377144379796933395855522100412328511417135316931271095859222628508022618654797353087792722912482830593142875378983014934376564181991883211625425030775912883981325365287279065142109145589506572789549439091466629194328089089499737320871377857103238256235649066961191365599979631293780255244389486918245618983891354190493114540634614351594278495175745616561121987501501863129166563459321925381885286449246831091073812312589364061631956969025828958915393096479166224375846173003180953655426146095067533892019680194342886919960519864034121649763946264502146457607174324138367502085744161238187827108109803479505540303906680088172086503876281718062650207051720085284136091509029359530682435345897152238690963862704482730384262801869010744133613138047542155782119742159629886881466919252777251655996937715762773097699665202848660816947967855821690172383091197935235133221516406307468475092744196772670853002606981914148768592508644811536117493625694138523063151673674554297389127948863284962448694690693953162506919731445777065059490141392578163500178191829585192635842621145732776196155247354098161135593655043066667185953752536646459208537074367076495117008293524853424692492315392483329622784410982233861512678749578999970651660982616013721737564639697870574002803234848437821475037362782642758227647305101933876581842189192056652903490625950115995214554918603279125723672855081611186637974779150460461337969363086393092882354459713414052947884834392773912665951219079303001810320693123359572113424328627610893542760229552133002717155196788017254456123723749546138757070172932683486602837988054693986511981814357612329237370423418681100636787461306128031375288493274110149519879178294348971497036551473789371515145286448936607659048873999167226242425636277138990159959081663508261380545582847310678714645559664967758873790700935354779256040451415269244935946922803852184847151747775496637220537671208671810539642539806511572378673654508842110307822427721105331129630424248834380233204114847544922313147275736760839933431507437193580374982893032823476237790869570219873007910274263574499499362152090249201941412498768176504215203362323517759236159467388323059774574663041819878767203543209010888192858663248735978199921840491914672850051384179890963579711858800387988053145546778368411212859410632941988321416961092364618204788556185106975138990663156927999015494057883659520369811268592309288227723419877042267984814420107218716085309267211853201063096041645885692598710228769930499727541791192792201871451926451702546244644766363334324825976122629769059468145068830453398185297220392533381578404468442514230480244394720468671627531972685619814389792866664745469285444866868042282468420377304111134112724740408883855924633982750471743478149411278962438566790591516638385156674643136943696761948518014932414695957323000163835027492587787220033084828516213619825666393451505411039946881659957196082815222619067378507571671786426679416311618849502032246350630765087003343475726422607551806776927293721030937395504536797340708115754792826524043343263853131320220285467767372963856613367932122170273044347923123496394685840978101851362247383148476817684587057829435611745436454676021005139051465663930477664107444888142204391484814497040787824234414002347254940684926944768098337356217727198845186147896071293315433546775152699399304475051942642511859179088570918087821697529554131222876340475779267143693539281413762696932296665608668577050999279974026264422258914608991173231988055448204581389722079024962253483609482862739114985375447580593747248344874437697996987296900353276200154395568122206385277320584584822015728094284578562285569347552936962204629062106509476123926214472782174253552670565068386480011970332745746685388095258452037389164897373048402287579532799766235757420048372240655499054707478914674278612439614074439584666900896513434956186735882979344705091565056504049208974055967415536813523920846348968253205491826181238693094049617574066993185421311717843622577341018307410440968537092701422009564940714546665411991461811180922001400909392265097795929632560807919021697765143574369164349130649220608103230204875281599589455256343702023620671577983633875311126368792980049297828324834322911439408733033289604197234919944662776186609163013566359338758854065752426914448575569427738641768450724610134421066276006872625755519310846578045678830393881039225521517037398954685117077501472544243221070815901931338688653600730263955860999310879331506455346398073171074614043974304507340753511364196704884340503797201824078861484719212235189218181585781414364698128061772102049002100432481508544186122333467451640158868808395955013565095215300655239045432292654522177126510231028020402365281515066365988612340254308765250116684728402694172222631888268010808053331824647907112800716988276979364385726323527814997039383012204290543141788106774977277515079386080996789684402315837078719128781049757829199711306817496079335752663068039886244619885584573416460203509479944861652832096908636811394878867001528053794103990551346982373834543261639987750172144192582038814518640503765842732448715069916700035967979322823346456267098321438182405045617571219358431640520730457023939088854574405907129461251584274272111366065879416516863297090966963233368342770693201557355254679948709107757119422219089116978666357449396222448748188680991314572642729288922711554212287574056019974792256071816210090153463200793116705714069605607886204098943834966572769918022676834467859924332153327531762566378863690264173896028980474814722510251235690342788096045917877670332888492012636057027357137303566609629927028058148600842143502181008964175640636602014742289964769384649992392317407197162750662436644132144459662582749699689517660477871183764414963862837468096494356557557349348655401219634469079390234859398889681971589945095506604345780206214638794109757512057916698655915595861810282973894386122756928171885909544510964975717556998421162876701593154377558936080279829128392522347340457379326659089593761095620861688122401405747999160423556508957758317384754482239317218793750403690463273418005420936032282943761143481612402620552979254061387671319331694581601369998735088291631756803525032529326052804659245239251696343379690908959079924644705179026661068547315488103457571062104991324169770805367094386402878741248274211396478172782174070379651879654294237599198336406994190702692611490358842338463155616648287698858920826886187701175303153804352987363635749026891254233727398565987783929172531846726875070417537069525299826300361085473437266195343644600727040788306418187864835421708315963896522456166841804994959022520460319065941344169577035116902169961792605836995385660323995791624428246962030441846299736272761044706662918020243222182267416989526625120529617278830071542505489364810939079600545252667654864038009726903399864958432461171632709990828418264391147427825878976639590399081084720510530684749297587181329465800332569373979839777325430385439869620315227809761710036410153385803828322587937691050799779756791693300422254729875696329306063157614887926183209242611785696430613371139287687592643629398786738337632029873874877697311599799343789036649851093268873603020130313713810436123304695421181693398584335719069232342877674602077295768295826385003133817989107694926723394275698368351439391405543884580655408950207875327610624686017428878809884155571936381589897350116186373641969899426902371095840964580457305820721793920649765451919908542012263497424301911188051849748646957785664855134154695611131858365570009119972626152450165842888121641484708671523709269212152875874837442761121221978869154765583052809545496850158676407887263494429292329824736434760290875958348618719596542493237322305379847309416521289217342077737725008454612165934729938107764504448844717315940565735086991846409754233736080028999762312977878409424940512115460995084256975894622338058468133525301989373514549790787178111016214255401452704936843107174599691486126152179990154923566101859930556995076925525333481061020623519429696238535169701259175743540240891128170581651875504644436907043502198909388460443715048990718835676809663569807387390983281328612429554762914246250864870500068731494200708818234173594227414360310700333590157896342590826891913311597927875458689034284173450832453735337030857096523990745222872813096325342160397631616569709968611066636699448473594949689065914869920035412849489920429831700216295498758132945275431606363535855613993767825854487441901715598514438158366262533077756711534790617963228588957304247688849792613395818266655096197219397054048950113946117185797285071830607768354550918093753078388170217607900760028385756665415051896572309534550840668343184357334920020085235282213120278982339106421348782316153743776251843424870010063296800461324992474337435925517544623166918651386825740262392505035069964022311891406332185713520205873046875082276270072301086598706266870598555885461069792546516274966365839852882246750782959088657456143459648559083297485756275385449455193707484169555433841358377163378131057665789311300208869791294477787376619311708274340315492606075268855631346921597497312249471660346870950039930185425466601097861527546821734748647691846769600579297135500818423063336121392232727206503178656314432238222088702238874461617429518022455053729365634117959983875831089821084481863924633843670713382872026378844440947380140392964809417741571429169926883367979833554638331500957733069507712789277246732490123003419592450299796161308286143018559893075545831293498862271650268210849412914516541604084725343572506042801435887320700721161832897269459314816694992606452148820472223204947006380060646476373814316294047205924190922211163951965826680923584633611244424024780404764218883310268373125833031952888849141673511462907367890569852089378939852360716147022590386484613859157559876383637515419196244198111547295880806288218615370832691612461561152811737503101867997494241720552305040897297883138077052461245050425974195874033971256807057523744440561363365455488810983025851269383289936620812481801302387730405089019925103273532488496431702322805804108412188110456311156322747624437149473483590140126465902966339333719935520657008912584093969630388036820205460623505093553125394128301053567713014145642370967055546962599109728538552559885191462299393365841697228594555429224712066405097773220739473736035446997827345592961331684335532133740583269956635385482013445243287808866990001857586214049429264275244098976420327811108937390689528242542559997683616886902890683567261855646599098739432672242994171128590876057050413173034722842239920256461835175225956422590742351122424654239185504604094819827722850542201377769513534355997974072124503105516313343004411064050952057903568195893457748668291209369370496909049779935254616686540203299747872815251733258947586634357665265187948640381806151638132709768101894658260087010583619973606537436086409306039599629197284790516623007793126720345070608450133766951374247938584717478629507266817145990601211869044684112200156885528847701398804409774301911627134087836367104715904926354234135437056201530919029735877379914861136746569494575629021855704112639847440913219736261379400515532356914281011604198598924953790409167184227772554461386293073232378719584071763518846778031362815426408095362519195752285327590644619434564756280751566906925097080441052899197455577667068531865604715303505120479660620930313646357115174777899961399008080546917158729468003271248843177248631097136203855008653297593747374445172725276991117273946615778132374302434851465168524924021696035888904918487463141984997203010402884165527825283543578993862651378148334458311418060393380560760769108446596995737477830888032566917089836114507744152816493669699570179514531651040727412270516413974819586120581927441026783620093434749749263810529690875457344238983826060365078082949239358912822945910353997391131756124324504091695405448388614284173172826032533283321810410620456347840502490449130105948532357628990699000145286211473682098785587276619937461766644890850215930262636171776869346678613924919279938566205262937151393502491327816782206799727568811294456447613951981563565969451998351636667483767134260346022097626938244343244249862260144823460257829947103580243385049393067618617992233300776299391871604869821766126232021170974263229174598661508005880588179095534803495397151284037819445646238322368329889853013345451136678738970439149519547499445807816178690050264876966256468652395841797740126565238387861291360203186350603910084928941823820110744049885055372124576169867805344938148354181245362005858302929551602852179553604077706753680936357729742134694523919816700813840875697189461564475805272404372687453140063035145560066772468101966939285250815862761594522105579779608054436184990070166252517281280459218183120258860926029703020030836219611715963235119447555625110308396217511354605951577896148423727648447287921322160867252129779302533810411288380243197501706609210544895760144411717924320596324800519894477377775666988909550708232352532176326266616312710658854416263342060787909025204202754590599155181516189454178746667337617668900187556688349996464013875060584302757730832246549069093318338833010397395118526333818610838641319784896119772295780767760600073169763749728283483100402655323004097706171207021762106410488375824356522853095314986787222718088629818597033332205886105130874421233093732242732612523648387432444098612054321197282922245665060290729274618309488283391260291086217289047973900704132131585051395805692141420986971222476478633522811284577793945766258834951975450126189116638731288124291291008970087655510238848831717048245201883830685104502263255738582938447089444444367108679959856007856719304681297934419449132277983588823572076287707705945297436431709279525600467167307968500739501828019714050190725209438002760706318869712873687131291614289166898812726064498646741440356261990753206727364833304366530425944082087314767986934340297708491731782334830754220750621797766426462735174782424824950399496774902563473415422515138468413606287739256811976479717072271785137846818581230715515448027979923833680896052288917522167570334059327067585141473048803716550569587286362984874534591147544512545845944091937447091289991158979600420853663011185977881792461270928141336995841701142956037754281693400502116625498818168989438853145180356130731008536362019384054419082410366950233264687801137882355002942254839837840389846804403760797016004903287034787820511042022501259873905215527038543837773336009981509543929396351003349281954444406265701984583340646740315931033005771883469530387415492789243505180277879456119861374965812245175924968250684432653132817835963561848139472820840127178811459088827836963814821558685556976012585048573021500876297746616889324574883270733521934180650652039612923882746302432180972029383867480684228796137397600127034611527412316402243244572492680666550217916126229637583647289935547492867560366591883134269153671509183795597119297061461176595857283840136695376883022297344824622330170697504289213439747997966619844040146960462228424092999476301779338103049323369899681191527430372906004843846872962396963533170748336538242054296008608383858397221524017429658571122146696814609182484714527022502398049313265317219485209710962529309350402030055003558214001452619424956154612267967015267425958497211435697962734555667601621602713057884620331684458840246179795343736557386008617693343072630464274489871021869876943039689573059684351799312853211190374079200993469888922892862583136454815973829445657768446789329433103086590936298084822262879081902980624796732917504902406147348861235019553813274165749368467402408297761561460215534546199870271333200470604405005327061876036142857791709401084191102624356397427019437595209329856294355916524100390563178035586065542918125038093127198625680381882323486677531778025531950187313409073706339667206840761090738160471010602587967013712685610353855397719002510583670727566731439483654240607500232724419982636649066933196081607968495778483281192764552453188447036469727647305412402837347586313097227497036732226873225202340262736547187479229809283145449047459084226491437583091462023598277466626517664380808739944538696825893946302427557356371677179855438642769320280417264246927308678004353528123360835668891689281621115578243703958951355328767370333114391938290174710387894371191490821689033032940734302206382437065174609172107121510370454035159652506678564841892464161681731395289248109509330261963252493442682767873701573962841384701021984668809294853147573998846735235634481055695111723913334987396421381692461473884973532452074802061232267228742121546133176698237706199986015890114788279392594722199393032644479267937008505677245678899873228412124856214069558467493605643599190218502765156261694604839527994981791794286434697248598556779761186674335807054323000952541463688702677662524045309148397920148479901899200649154274675378836787509843350837236465886559834436213938741531262016242873256865877678637524411645769741683579967527434410759202690664457688790527676461659790219184668298665775490658414111355533355518997454779462303083522706390193503693404724410570829427863138418110580922077737717162706513938608165223465923314847069197596174950832126541110660720103537566132468380581092403324157018091422284418002084992151406206600086773033764643487585110449781284654210331711573525120558742310616434491720248324689819883901097095939514098896747170379785332118095191965388493044287455755662371006959133315458810018090176802379892792960791487138040853901145334131677566641070393641318329156565329776568388244190653894384856413261570082650500390578657682301539411678946404589033436089355618899791727662526110881719482968715659391469028666112532981955097383848561996404222861543142453284516637731881377143798299645772092386995274620318144814457100016015683632564720259416594459627910879976223932671891266572887008982022155767758774590957534945479084381328481561337459182516155521309240972248544216893981031601368856614293608805508537068666840346348897145810574262332731764604572296323790384325082374430116478344990814526476123905684304420302448904080095148705967045638707203305195745952556943791424639156230016772583154603455491697687350375209575809477121173880441295482704196869959433172370574385012912866036607843345509352057923696698252086033737926376325384270274944617576028001858370358393871115953163602152920733691646271852693984057843977353397619629993301796068897177354120530920331521178037768868505567737702537706039049835028520915830853943261140250077417418783459600961998957514559889570876703674100308996076016673761642476192594063109384778516400123503317710735917781901006529113547938447019021660000875505611284919083709774348913868862577566653834473228795383240681501945107042083060298005199985751124377177554864277791548992856579532832876366693313865861958960283186481152922774639265709709976111600717404995074135341021401004251898725037138634132866573181204889742499900947915507100057585295402503464891188748357233598714440666847643997462998638174204515122856006271478366462647914054778500636979020846263396760621527519184238470865969877195157831690424374460965932299525789406957568595777518248195191756375540986636179245231836010290614870378623295355575265344577357222115656907660092542028538774007358827330801486927141547097153217737528053532276535329325622188979125706075839130369159781073617997263562852925543259238153337663451624679832661814260816915549764006981901183423496094710317809887503407200745657732210126121927464816686903299823339204524232917219069111904004145298266038709578521839361598414531696977042182958174781050471354431902111806733642870983961537222917308757222651320080002241316366116316872224776574163710502115409550069550514103276895493157610884781130644018928131858143497067886466731926327285156471625052082447479929572311234688938913869152910748860164397326589207888399086350112479393343527778530371779848083963054689853844967503410451365557962141329836803608655530059442454429019058892621904200084208345212783597128940147257602363033140922994721673473826257108648285509411952310494804137155676363333574050997749195770472876171043219278382742447261442495582312476715422199514590998546054750911389497776584422691439471120859694211226734364135837539576553692080658683223343105914530146700947510687997122415678232614863294046690909778407958785237176649672456940108743625016882748682191289769904265587684652594788224781382633438663430748332115892986977556321924833642157564029494561908805243888676545957917066738885370168506158528557658453875290008252870777533009356868225229827294141991630316076449807769179880345744577723334817258758446862809813413482655799357952302451600051193405294936338977986463099834698350729343425356447342882438074296361025367118680420450822848750592836188423141059225654457126559784102630950818467677032563781450199265171335356758786113299550066490611845153100505930532050673565217491126848344203860918977145242748443293581543625796597721392377975057797878926459692920211370336666900901085603177545213792672243521288845450496809383376472294396003721575303335352328719890938021158024754064191229992025989338670981204603620778607144971640286811133448672776221919487311616562562800239149201557411672210139405833494940240873449311072949595012420978681383313405013796800679161180827505994957230911300447030697085442929965500598120853636391668866434758901139707256474519707305243903595913989040138829962364076008925384654115431753357319035904055409798440740432722759227117487909668483077855703872894725431072810026120275011848156222475099223042558255308492968949757902470059727633359798691584165751344626942106860658419235456019296074284596349841073301783731675611032868629463868020726160830200064423268234683862752700231075417577950453895604273876763283209733912334963299157295589398882973086827696620738030045375943411767356169071874296298304692590914181909921556855246869150125280686213131261325968865436286766040993813201624910880143592936262447363099084631847357167584729417493206785468641389467591822598164591059762322663585818123988967985504072712765623968037587339567670294864987268702254873985210601809693389407724165376521515467045276707642745921000697923328775070759354470994447371876950559584041487761133131298859632049433646221592828117619939718063711975124048797846913954468409922960461361594948813403222121246283697251212578144038565680333295703008512643402798077439167736192704208238753872180287261098536430165522111219168014463597158078077798588012612347490947205809653526257424639130919556988087982254132664745868055206705226542062307063840881014752022115138517872189050165250006156391614740212112226595101183427585120021157933112323118343008912645459558393031032454933519600539187869201319364721125851744398509162685905258547409520370432951064116142865600875959973246336742180263882925978100812954452966362977496993534084340693643628370348292008540154917196297353164908549618137566358126482798070778076270681086108692624900331933774478038729896383162155352510411210204340419766225283225543899008481369531596123843229473911412868079458523114611955696635113176147436418109670944530647036608952902225754113554539372532271369665856863392307301543159422316784513791750433636722528692067466514363509574140852502370331282757607461084629107003613217178452693643441211980917351064554008127920892328174181039107241141810449287599709753544073676354849174398479008967804671292752232015016145438211310494991005411227038610869422878288292306841037586822180080506866183445573431690232723065968741227559346307107478411410728117059720135340962253016025720496667591864307292432082720729709215251569986914345627163282553248762306929868926220784971207785846224825992449321492254459094888743929138259888330696046052364702659859527627775493202066716597969232733391690673652887814280682523221643620961723429519280841095659323204031295429059844284714342809186740094503334664196359460053136556874874348620770507704271290017739887480470529420503766036672651778355629962830128617291065258813153147060351782863547550007879837312252941135980893970612801686450455015609217658974359556675726506637962311827250297253212361078932510687977861673268730886471478981957791937104919195220182575198605686797275902840338626586554265094470304135346601555283970300667748380476146504902361380390011510198209927702038941442074725615984503062068360395241154712625093266237359829643592768065680101787747075154620294607363510232057471105708530028729892200777084200682823614170098371169733918100130713222118617756666668688058805046714803853683168718092224668618895059258669441280659974246490847909343895001583822985300685828744509471832146845321108540637887620001416955246136616978272045228014010015643471377017057339812198105917850900264850797933078969538067313247347354067992218102349983465781093482683686738944275914069100209241339479961491831235752955699594376427982746932070089346581019900809999748958191114045166248537027189231827960297788770211104958649099547081869189528591317736055712767760416333229861613159062583744260340110106476987721673362744337776569046869200144767210162246927493760719279143251515744984980720057858679235910060922219251132779792748337255856767676546210010758279988858767647780126284000623667586649105141908411907102976320696794179508548401867136761491984995941796274435474790675486102065340562639367889014506600048395517269973947495895027055951882324121758903909282694818628225543281343985178670907317793620636059647046070323737686297779619915455428664344009889947357021087783027079461564729827664971456963617138979766349765558667377829081049921578223131301089789307082652224050455063386184106710057723223687737248759207376254249980402997989928074329162183489450215691827594874720003389280352987625963920423740535776707214920717323505100280661501338176774890509142143335189687897932563885910217243223719503478915742111092090876541862795988009439802899366802642418523774300083902746397603804396218731393436457180346994454792220356515931667622013696946793257269002763759308912603785761371653428874919958570962097871636873291262771150531841161916861438752356136179196939499383748405989472707758736324903354031051904995811490627148968028009882832470653187337050042411352143462035532169334102641514625782514191905384492370447787550581817106790796122819753759757479662593787158057328608151969168087393373473324574307105146321446254422282415809363362304311806093928637797644477937723829059995167606371424135819562830051143115634816364944515147472895093161068299658585313817194276465470264377027371127253237749927194962440114091804163052823906058236525710417679484967948303916117361992502048117645137376708405754788668485126959377152079035538357609807706504035739580908641319030545845330527197380348824021283665405109870918278391502767701428780940070407638844518155048977184822088566606729927267066240674992992789666842732519598048213392230707569504879737360746790294458940926839860644421667222868240656099218563530362728720918764018131872655961743606959928664119695339647699948085914338613462186390028249196648314656827053635927115574832347589811564809485583480696749479579380023284705504099279082489424052240931009506482409724612689957889355426142782527725268918343779670736226247128473543374979678335423356545939574471002722254089810448768255213539695127957889299511513298189422454355260488903004807282784114275205559936190783725785869969678000731453618962961669006594452327757800481369254958153747930995942193294644172315392174643480587110547615218466640178639732033400140602876710826014718961843563710599075868623135990572281749291084716069109041839851818555610827591653076084675421534728789873585739147253037941129871428306147674498080289529335901505089313756771590700293670730544759101155305896422882883632244836783255057548443093619321923436516085464791504568611963792164071711763796257187094601837180077095019605214115175816917326096937487743815388661687803131499270942784083186242867282651878973897510253627901521009877259522543692390958649127795641712619450593145631390114721246594112693802008618605913555199465265455305146600727750245193127905489512256388720642354965392928252040626780247214316723934747171699160090063400210821245491062018476629125646339144643043313442231889844930877699177671859381994436341284288677379515652070753258520890374932921640309614115981213222541225935389683904770904889405266398356855665104804421792486479299778104439007223759471999811840848187016687818285162772506372325160595210457972963999556161768276059023543866130286372800507576794296688846322047028267253993091775185896860310213080732816634578569702041670477428969850509180697195831855927332737948716217741502506807085351420202647196989517453704144838962252527782063644139165343518770465946838046869820384245002151861546815526705947514324794672178260247636868456850409567720183538237095545601916972526602647216195935061034574218181922895373013437187401067552237745745551299962303559989425562152057209254588668622709575374227133965117780261863453626989216601639546866503792715471185197514873297979968117487142866790402379133175323945142308416473371977850737133987318009909897249199838870689494196282893273387908704595056449144838722342750797737445120689401911501568511835710558427451663237904523631101194267707307516877775671458178808618095720044863058914910953102188178539207678548793537967077609036176220388307569839029864467898643995364317666182725034042089400771197352257333820011841459919680403510552888421843069993982070214739363106033072002883420512377515528621798336846654831353206430613376266400267298664648075335202564753947811657889616374010554745798119822016106815697167795314613275105642141145667721120300016133833080806956529110833725871968796398707713540323675961556465201913696422497493573442956230934076374283423425630628356066226040895496340091624272599299449936971749884111408260710843558327449592867262289924567718143521335633033455323205925248383339449222807243652046363960915650505614098355503496426333586424740710030313907921471452406144356014221413319435280321585956995871138308509276445115957390107604705407647199377659310109822745187918555496813768973245856121196173141595724301815275440518424829310952255237331433486307363279358468861327421804743229288235366725535391077027459956633447171716957512834800633859781814965915065156289282800110512296823634880006430480799776599919201496996714960805425101622244023853333125895555428578937357483108668860728252132008394073820682212589671569828824229913913960245009136749712451404949623380495182758789334706366785452854954064239625471109844133340484075890653867502154733711537224597817676162379321406864124985071376803025769853718515417537508219955953947780425357609502013514013940784388342209574857181571829516641852554262370210303448681586214964200015963494761236082517889222704926445750130543038538536629793618337405031348035711639450963841216653569950667932752343352679288595995616811176791649170422784354030566774705109402642186834862431267968445104067857592643221971663909070439647357631069473330311537149319768607417161584961112840210799425661218154392524674820748734952785507537490179555928831858899970147961922716319009938358682490666636554533869782617512946095963753199131332621985505162103178638722678094220628216333979774461013358649673925483575746212880212775781384863826858048222996782651941131363859062092242833734674808441270601451721423542309164173791728948376492314482294301582333589392619807022798777575798334270755228239769169775978880629405726220951782600778753924453172841642346814906098926799324108757680096000455729531948095915086900551891971677728857346229930171799705489704446746002809663431493834359341646027306033187582771964741085953904451197991526165571831196530045387925765232871943953151198258025537590506771240021566807478344288790353264918867319549463824948669028485930158578453521068729315449579315654018246677216348340578289250166407162481774880204491538972879044176944526678598335525475960003879285700139625514045870659333048192299557627019676919430020290180932803685209199097617839757003641430410699950747836022153913771598552944141652317292193007559669825559939270422377169538396642397666637827598129650951496241981312517126716073952290603437333414089459921809468765542967542077207527350681580514207691913151234942516684471804243346120956017230526183907806303610395685748042613677497498961721818948809077873734215820611865353164587380809706791492100382154518057241781832322715353450600332459994851513768725118493404727887345285258700611402397536994612908445172038935977202727205981797301126316001951042370295440404993088568097586948474178340623929842008520872191365389238612634204300847168614530127595019461026482981843698256819663253108503527499421136844449424047324964582472123428243551804252928917849604696986036997371527227862614332642696795319967141034416668972629702206122611514973817766417228240689278583224387108813576521278771133178769682127934196970867830204297146150240711477085786686829887505431692571930984853017743492219639559495766874365737155597418422200585272573132105391456907284554502346928931136311341708785127261826218163555316674086806941171889558556515373672399169979906175344561437433113345624554137802886728951552108277432692445469943985792988414687819841963224252270842046226987821583427493744145389702338654423335966259143452997080597452144948579979636386410304295036540740424316571684062840366748481919595640976460645396305801374649320572071387221106810696401017506395144489365607426367168098782809270126598445370866499304763224699603367731676523387659232264704878579632736341676989570895526778218074456309828338074414794308205408502019889161502834836088310432415291177703485753365712325125343432398178895110696011307406177908179742031557006820451083348714727794129478758267624835017415725533716818617651890361036084621240334897771099691915682045221664487669360553271556530332800666403600973444119565277692219814456407453236577715107012010335933913104526214186053779567307434790558532643720909302591480640315955606567416090246724268563804249764586284999554090644347975547261813485992687855671005538730903879953422441841091845562480350368813193597477512957128969237728558489156731404462113733118076295090876417722841912794792796531137046732527090123255818773458526443766745053992917303509216655628751918576029574513459052524345885868935902167626523975038134679547516144160303786006305410639419421678342116634747007964912829289009786684866139761430797054082401437882086185771688946930606230775664393505648864874571687791422443611772840232653190454580213480132105468361234521386028149743632366533896375793229816311040886103963358474955856677636909335044807741608297977154668796521459661611462246238856084935665435032193060876588034582009206523118970430911163523326325580370011105068050255047404104140653219726432750332828652971292302298549592761637306904586238050417685422360975695285936444444353834779262347300360600076757423183676047259945896966083343967757171024948666096314518983106342627404604950375955589357966604059238546388574727964948187697063176117141452788991990702016353839164641756649633245115473220192780750116268088649745732530641816265044823932659171902903559585626754967023770497566629593409489389931023539104365647677720337603235988861843416310634934605740323481536076872491672504794070238904554358009983761208537343657661182148483322698956972156321787822277915225475868724830149203621268012552085370113705113572384337993677775696994698111227428191271482049749413694091726920683281260425194498280172355777091275251462558927336168553121213359454160791536411022218157924043566985909772451487718618920089557881311940433117342341716900561121005969783414765023377287751302003666347454968505497885285397960403126876763822321913212607929227796592404527493683561021594665913248750767320078772776498765817761874078947746597828116873318505844142651563610063425511613902139126640547820936052793484895073304796121913839882748980747754683975836138933027518998756010203233881357449295380944279080645207640232101920744210685341768780445225961668495522769041553162918299306264743995322977444896154902282949708401121464257908986843696825985239940398974873599338870133465520880045688398094651180283747221773061849885209337250950858602725800982702426034106658815250647909091045149292713196063176455267067440100310968839281958377573257001236617166218654997695495875101611256293775639824701956810401253556368388845649099157512754902396114634975150443943981232989447703145405029830570124934600122948600194951706578292467888533524266958973356025697989734360157155428201964674768284491293376720846068498346548181135166197130076373458381684982342451025859616611948351536046070226496616440011471773860400134542147548609141497739328150451845823430426158238014417185178934948303550732036208045156844288699451587331044085774532933528683403219837622813012971958231861753724692889111253903537175206551129592125396481071610750434442512960685812967513493099234614594462748789842834141626807875661661627752212418980799209750775607780909843669460640896979321389814488215635227261979797677021268896223913357341525889284095455047628608833249239823304868949099735592136759484288227347886212452682685487372123727268873854991418752400519869577256278058782248655878877869969117010443613279897678581156991457925248791051006460135507342866532026370311630156982600573677958131236899486295315458884587603618676954091774198253370892833927491937469829869743517321813422812500102675664084077167906548828905750464507123169163433983954412141310102439386075998137615317165757678023972595908451787263349463503385996831925196571103189918842487446950745160783428231066090504609592768710143641127361046075788636137150602165290870354864831435577199526981733643404636449063535579780449829522839696838172878281691954028172167273163411130231508973212921335307935060161035738401684221768677982451740237470360962402461412936885057177351014872963187009371562027519791345054700409210005220232025640572773874552185318310125088978691889647506693764790248103994520021963038488837574915349570803401802357340532585901736930626624957172399581441539887023176390119778324357466029021406706539994860700571021796814067011103407511136499927961288283326973506260156524233062340661778300265870960379815135937233289236091653923348425678380296726743149444653551609238152400930020820247538166174268999282179586665319915747064681925900690555940306134811971372915937207788782743193797229970523837606572480095070730969481269317850134174651140134234484286915926903842030515409465895489937821182502835764423394640706148835266882407532999442892440111603883668918351121635234727372932360819350900669371231034881661957294153667982770350757452500665519817956749459302604998434049494915130996097509539679199913027588965304250964702079744175975473551865133519254216977828756676930010030317411035855635460265636082219767200293284740021479441256054767520338315999156103186138732709497856221719500570440360204634020580744625081702591657173778953988003047891699652199208734273347836241614579691245729189701529631357198930128381239294693685654642994165721909876262441813415773259380395861449039308607763792725229901799456304837287079407298709278493047074826712423302143257108600334665018585634955062085221206018614718369368675397767432743790249122007009796366631045876288469901200942369989832458156035922846443812730908416009578455720115972047915430235612220368946311482451357352310664650053141277980359632705312303690481127195166439776266765135066380393714729664398080870299318584639091453432275471680873750275076915905779778697028254697226872879103471215475627410623237565370018732051896148660318965320988305952090249411901981718412968054172562365474473273287811172722887752411675617090985847267603001311556499654040295711563668071205360449232427649450546717758668864068009369613488826072931980536318930506501264091544248387642947757788034251482618863378487172374757923219617739087907268481521244627531611925140781472992545313333036164031997940406508122826964507912105072888379871379072261366806822093781565679668199364904347474643810663772706025201861004332055071090552520999805780740659484434848784888812716445113466471584729713613417173022643527453078056126281787832444265354186230640839910395120224955876745353550897489765676231058054790606911804793378468447677830558694096419479614438651575402673627878399949747907105930165155025933186084102017461426394758226235092198358691043095658455946747394358209173742577021708190841184372376645564028292215070727343554170068537306372514366051039908074247757973956479564596621424947385384821721999159797322270074576342779850424434531066592447293954815891829626498824983134517558667504769855345306784543068211864947884791144942576607514694905324295721288253949023239075021454568880892247109721114336053970336983444832406491326273420378616633678636298415181301999278733946432751518589939417644516989592076636721910213071887443063125541511115313916429896798965498793958720863693258675759665329031397732486291028381015851464268604500585696983720142764167801146200289537076300745095917341410097694984262151571711511582940261828973277970574363920659129604618396498532104581938005731849560417938124107366833132971633129690489510884885440816577268378122906595564678105782684573261976931190475818745641151328247619667239641696736751888280487573717959428540555345222066905982421187254130856397411697267055575814698258524054502768257716949334806963434584891316034930000123657288744445090066805474977716606461329254129398388329245704120336581025969160787595338296356317131326303505001393110619369709736845342171275522558688577916637950374563931155178501883014848936225406978560360626445052382093158156628102289049536881776426509348816583684777797687892971873892226896630591766230556954728454550363955912387257543108786024467560222913466287808607099775676171169844183791028534419094365758342508738194705647328939830965196820042303324680175873055583493591093160889963851197876661072301704637652517307922201948995419595909306690638085041440004770995524006300924165009734120650366846208779934273063508111533215331736177223397279840439218011265832107925972965102187538665719589481182395289202487675250104694907686438259891766208820449949051678526939856874549968426968450153626314574073127897131782073208575926050701674273454355514273293447928029241293209177656544574818975611901844544984352484193920276037628792397352888446648093968428653630808690774308858834549432333944535480082998898721952092319142455620967681177043433252112590862004258078377834717450071729153009237996309682592138190258042412186089441899543425165116684053172694658015455370812517612049534497961487194092912200013425917238100200099575047732552796219719103470540221155117017404685384728881130971296708537485159251462719537064865383710588372805464995513180794960765029913511916304145230382601850071855199662430304269979072159554600905015408941837289527757241020831967549869931938092899744189142308051887400601515650874019515390065159425712424123200510197061462146720084618957022000809215987229356726649800387564488267250869152450712006891405982048542421359079882464034286425213720602511278820774048123015235549525708771344288580876812368175590030392706662404805056435091521458606693702943750199865501903317592604201159382361198547758175532530046960751493308914620510874398443570239634293077772233725072348974490575127556195590613368164557161510144870403555016041897928560221431133504078680122731344408795160450153442651271953834251659838620809194105646112600167044740203160152845754904963730533039496962804248719787589912285444581454585011310304846317936724260713938603741072068512086647089386106322811483313025655180247873917609738602581208864227443870743626823382360176339073140109495545387392814882952799712445982427667952506659898436891517611798319688989043032553794981349864672378032827928518579410206439489632897974824542010336720390148354192997872938393081390767715427715680865917122493533374159872156028947966760586056454200509761727809258545565222733597123096729404768280658890135304718528707322471469456088120034173294610240066455297302496966694240614653663724377574730066660814644681352757489686899094059595458042963727308598097411377313726749381468795405030715640738853358537940739467183358028886197219455261375176727264061191340910295211532706642146902016123578223622664695601749505459454201976773212707837157887463123491214662402763368543660941312981379373811730046742631431506643086828589719309559397295669830324423646130448660931472002341474464272978554822029584180254035281667859030543045383289986160178383504687201410838746748244793997345005865408090400736291668038736755946816464504330798778916926649834786755244415889170986790731911300635122190773908997735600579788786134638384585777804701285758478751632863473232144088476548324419422581584869179306463803312293612353186325423836266277389321664261047008373000201462019447806618207301838171391973347299426234001834046225165351122073786297188362990732389268318500039529466456824787225840087654045704233834637662144784077388484171501115546634032571578375701303579758484225304247150494279979847743583505486437879146299453982478047964336167096268172161566799119195509958499605170623136676978043125197189140823840734990182352969531832811362979466856645194177301848846751602236927561374984828849290941526073966415703729024108616309934265682688464176257374480870954011049683886576675661582839243412469170195106588218852844098054132290225176294929568106915618747240353515392196399189110409415110836326052124732521887182175956016100352411841930549406735365746471053777113698469893114349037763129270507458873707181531213206322086792145398365496877047066287447176262705795806613664225898917178640112777304426767927650644963445685634646469868050216269713721252693018029405047868926446735557764570534092321980130486505945503324060624505619729603039777163107118946358836388191208012043007291386808966527073422076687997194260246364238595193048208979780250285943296658991269143065129355731695468249154189803474104622645014624045609676837176389764362139250681629305427983590065133229911565241209824629767961229853174278870024709366412050180285303123349984039047602862285664496651765007116372850208347803210561318922755754543354163975063352187288835677441104033990093759124049299108190466193738606535444309472093060305989584797046498112260262628995416094002495032043013913941899620248030568284414389437042844269847396392592015892341442976606059935590128015358945047629383596561671695841380812421894915527397439000792132955540619204521378047755727773719815130835343290122040078613116771134967957502688439031180961922795921686690875343280110675247662701986387297527059548866187670982754942583134724383129959993587751671567235310419937487999870529941530516180845090633235651960726496834765443418649363010447553355005786220740283959284473527981337663662628414331166145913562905048852311417266254431515613492537938743351847136784005248052170685963782591363014638903942670272032996004067064230725261942814511399872769944691932526265306845962305825863660266178006047677483027019236800018954435829043916336176004482766360577143647294306165374758094971464051954206333302359751763550722908967394769497823909475182849963265314169307015333065456300388357562919632200875221246844669488890139215423097079548052856701320407557719529705580188061692810919485238089653976583877208114734836872196697306270837177931719690423837640792620650207856311915477302662089457844519420396613229969047148398071603444115582704053093589092374735460301344985160414852076948963458739575617770438067949787637261764259739258623178090829647153804122223130073409736531761820998944511634027435831232733441447760142668537866948579073814478417926123742771230959702306763503066678667068775812277181469368521526421797396126944924522527239231017348059592462487390442154887693273007943793339616936809946169252003383550087852619389531365944965287392132870348723423330605731797435263615810794191534214471725904996368965835397822239371409635512241269669990193756259711591487138052512047544139758530551084450356417243221980799380659575601479794488442796686753446199267943043955537249901096159390508359635458468385644171597096631986380558763428541288589165154175217069378297501562035032617142149165601234153323064762272934756692292880547992736680222757441083306968166798512884386160824030224256952324539444350824695094338239850718785492218208329161551245150704557579382144465078966870492425787055761526653986745474680075194068404667246456292385431695756696568056550259691255424006938710516947213259007686870419596996817653720574441219305422738237331637327185516860478216742085887749528058944632668324646211343566084197152095046473830592520766751913136173321440840512639982040860624671256569933126529892354151432299778704278274620752954215830373741375780464974241108472857933013272015295138865793272057072160039774926323039654399254332031191858007528508062706992375949602729405604229088264140006204373217129287531732418702085022062218909191930292528781517494171299549819389308174997162833686860901918323552658485463123916792843253114395554024044103840268951139641389826164547141194695699039585007708022946952238181303994094714462250673889675351338132278113632429211988748598069318505095896371095208224502309374176130055227417577279762510850993415273337022306543841323800885152168391462751987883685469537369547090317527307296541428806905680585182836444672877403860195070507306707456628643272300952538309737512821947288909321626129568936740373561387036224321435893162606080557861610215456122584501163763233718642371553105098790978611195399585867964264570256348242310550315791813283271653778827995616316925463367270502602736614806802493448135645822749038418201027190718268034529506355035213466900162211808614317628319657873107393859386377064654030878155351011298489921343121182307953948689604499191565477909219436625376158806626053685365910325646750963065785328353159021594034483182919505441414781314330107710342736557865173647750282131064879869535099375430699845522940162874702081946897083612577720014747755227656457065763271027689505908318656637670675858736336539163532821892898710324200043088366092241525101664228813785364774142822740205559693970926254515905419231129354444781169510163407679488593951751660276387819952848366043694338564782516687897095332606296788433879085556139079805994510655203267937170618534207260565590897333942000211157216700746551795066561389748495395439615222529166139199856953235202969258442122240370320683231524687007494953216979440885812604428836605236567445855060657632758618003941392986660935938432893480340786412574522385053678617287828041928076299146449600593408480587561606857133746408758228984965041436378045973199237569287524381692634867515059216289512231133048702593933331378938793128149620044224449812939617434718818440783341548145787030278860938106502362764476767871952117464863441271319901987132871479101617433740173926164644696535335506968514893673952056966838857086591861775980018775933348928559246314181455122523308644387666136352994495401032571537234179653231666908963723258421719310373793879987193672886953986828932790833576504020598246596543056660766083955291788492604002720220821595735519016574596324906743121441138426041359275379939753855564457547470803483863232404897470716009254502902798724152119475171156964884853970219915433895079096657760494745533552297656073908757589396753036468592074067132555245106827757701921270878996075351150208630660431274620312835530452596470992828164586028510550465093543993778620101738955923865036483712454613607694806296823979423294599994672543964432465811895267826305826594669166957569687923044303397339129639244126957687000138456670946498565762625888031234418649815939740769173940567202403893229019619800501020478607752043401002156139237142513355679583476492593897178806786812570223846555589560382776884988564572911313519384539404402538198295507126667614414394915569458593391757788588028784497039510328517136633769229700364455248121485792919344551398259657722639244414968786313474121490850431159124479115757046546479254046741279363150695132418323382580464046019463698316666454139159978212029274690996085564334037107877343199801162406170804727591611059444678945638324204955495295261171495465903034539689497159790502697520995624873141817455475097538862642116694214163594932259331279769873855895368056158763362753147723719440285820315186264872429982146301549596064452705699636668317272081508422567611588223098158616325478172094814701218465241105358602489047544830716744272310248943842781878151586072293067935720643285687806935412689905446825937323327510461427019052998311139615633016991956412925474061407622997792638938801234780086093274606706573266611061039673990006873769704267537424498675429045993364317131581073777566137740524358710243788391184980793782496602369307346389510762993473136895109165941441447665928326600370538926952792147168229912807091051290106447913774816552681955071602655983247313518279868345360947654390383012222584731786767255409601929666472648888973769157874806281464441981875646791601410415794930828944142666410822651086071378805462576134110275368335828551480195782059934619766040712828369769328927091854541847500532747107464289199361903206672791812799466644641368739026557738796792143544733902856596527630784356833555925099035739557797447977960543117971342277833301649028003513403137100691779743950567858373725836245744857769460421105053595138037209557152839255902583155016129493294590224292417943736219016315930892269396146438205620267904297286799818285318485570581634236847139028243323915695807273592608486338660678528016359038325994556527911685799205841768353787299773769430085764595280630168884741400038147882779888592625943571063833988482783636533103691897094479472607955502141332886536334979320495197916992877316946205445808774614798767231098913547036063124980296735344370622036837395814580014563371085977751293198052469113013752556647743584376761290934595167418650603423562681658926725919812699774915017152281261997830243319871843378048119831418831887571338190715803465716091300946123759535898094668788177639412693583955674618718772319845183017185318409500686270290815105612437344269931738527139356627600780505909802824692201476314468734663847429177074452993473274873889280952963802053374851664082991056656536104646676253840861175303271286847936587481349847574756867854902801006176429632242907322315257749017788409073490791901412753416173025621190491179839186848966411474449768399780498853150728358667053223605393955863685070802583753320121334494676596733588250510038505615830201751376629944438724061069841522457130716189210599502727834803112289620575498124830470704165486519926570953505520405828599723934949862228818424112698053504791442032381178335431474591464753818123014886462995887190830755189064930452399621507240126309249495209191447812416782644506507049183465363805363985615003217317009343466713626088903138477202861308495684771996454261952732144764105938574531427440575798220741329814479649266683117064883280664760868992956639258191576414124459478534840231321016340694748050052539690693537931987832720204289629322894076543977243371256641435365364092060380616641437968836212343374318208828639613809143507242461423271948680012710369522442037917270616217687614581824778994096442510674322930690262788740272603977461074116408774401604583066859986027684918923218293841020779087355457137838678945688251210815245387178737554042285046536288901827410369342600725911556016220849382912161413726141113114645235926116098025222364576729878367881844808899311766022129672102992010769772123968079727205124756934043117626519574059481104994197391747674529242917565370720543738840068083776950033577777765299681145238229968496441932365332771580892666567076266142900291527084016352451120595813125052857984603794908085664574572129817457783817144496287336038429960709438799628846406160153129767852456762092802534854706461684365073823579179415272029070677836193453700125264607844229906641257256830861824127749383791540207965420479693833794210132745003617319457097932514775013931654979977001023286566432594657938208865722732314168405240084118551879762116227768290312960879570504848104763080035341050182890517438024570274477281584081378352707719971019455505262161797763522146153743454600016307904350323405481676716752182923484689111740864929388403496482572168628583426262345821197042727632231569026933377918050641442620686919314250572023223732076094988305596735693899599127622145439082998408139594186585244813180180774888334673806385296028877448893756901675641531256056988733842944879941510766793126050107987709933161169679339805728062233194741594473069836183539160995416046759636381606402439572195317682302881354436415841767607294207940062470542459681742307774205967409677027924841350893956964840352906427162793654479183038047066166281026082673417027255535225299979362655978722660388868256937229693369968611404565219162652528186798766574264875456056202065899001293086778224516804017928745609916235942428499594035592238564015667784234619976715880120852840722690860903789954401842402065704078738405581264846965708708933638378090453271958013844843734198212669870666014498331937999776711838878137823463187805805477677807050309383106821982015276650741660775105715017937562177902341658485492155481012296726660184386776901287710964740689778750587011091732946797927122452365415486370955191163981987205134541062865782488941229915146090230692597216420437883797845366916023729383924193775494260695287378592092250122323026232473299972658365070841123234803379440492724444486868359266260926714760772927370332137533191240421437397545189418446446608336845821981326412398067034581484849913520606077265659145347526504359594415660314306489503031040495176650292912073812511115640607863459351948443985739541348081002438676265279445790779270653902710798913895739094371514642139947872411290027425603596507983828821463812708403260074170273116624427552258234775691901728277952575702177954874549526241647705333417087158580821094332769382751284785577530452906280639702081572173155140486785383256587010461176776488294452078706624762899529048367109551679296838676563445658254178829555134212545328955769320000471202815551658943108892839431034662369090227453206702635585190921423008441624883053444312432017610485917826876783595362038854152327418513806630673492062149810442136647023529570204865582481330524844785285138404908787015848620074289990038922361081207331728681834223723926996252325020398575927380061418187841391590385362738206240211677808393866769207111306825990014521620753603753217381684448385339900581085038435027865240538199508771353513556242127063679125284500184973607940851319977893801151692325007337005117138471164778648229468509171927187373071327620564812001942464687009623849405495631198376279397458431230105469451803543385588118827320147520305449087597165142224405870551718785324861669256979392654945483645832199057327110895558063880968283631339156975985417310247157002039172192789593952855216557218398429049084904729749893939019247658286284400576429424340785044197530869856355163367916961104446872984741287715357557744777812203207454254805981392134736723982962683643884973788236796942319776620101471940802895297755627239408112831150654860153052845483420761253986224964615940952927966593421481996409056448278915561092629701398174875450287600284748238366475850197534901081699932383815760369259674628110079871520714270718237558921055815114918733964615727831064919110420995741915034964513948934388560816132017189528612523433060460955713485432947153875952398460153719237772663252804255288025069855898990050648274874374248340918883415311751524123256881497059893494692709868607656154855182576551245990934822955529468940161093966243537210527387410756173808844706950788206082882257309621121417480956873584071849994981028481453020121609439816346889094462895278025076735134978500625551360525312714678196203508661755270075440668505260169968237401804130046747016280329093417618624305009920573411316277627641283514528203496664258668687670984733538615272457903297224933867028529152464245619180772306390405768114592068579560587268661909539858255816438833473153012205767470215185250901302531035475869038582090659532840203226681598541597360956868999677898821765177928598188931435248738222960396398918816065355973455535630340081336131464723142362090399555803310441034252324382359537953845908507143262414628395150403917068927852369032671808136394837749664065011546364605656246655179899939319561969094199581100282546630096902143026713484747432917380777329522651390873835944843267653438699369356228024386345399716210680180039722761591522569250772860039779996128970000334571304668865125837097222279120383709432199127849359297992411120342037582390445577636312832144035301536147005953268408550731458901217789801459090928334869367573784852490869616376063274794353524067556017331007273209158324428765144539360260778495446579195816202423334552714260844669099886225200891156124198877878160234105246798667050931828959495603929484625809631078034222545023933173738168888448430933871402500040225252093225278600386227198203843928330861907141583579357565129785206016957636210238160078471863502059258880162888966045093449627347849645228867203601618111635777910271910573802457206175088146385470857476280468724192905805070961606684808336752957672461935985611131092830882121536436010137556016518284407572544218029766855225888844820317624622691190889633530960341672446656783328290464149799775329247976125679178783665470682707886637858965707246907730751136635376349261406833391912479344764519746758439815688122002034585217733721453355775087353693406475682736177366548704692025799091661701841125330563430259467580781282914784842951853861585180515785753579197804570398067942243397370427599029642242625524533585164703176704302380484643108563499121589944381241565605463852690530126054751476310163500214190384902001651108459262811843411277366228282643966189404558983173702864642505817071120038086158600366284124359766911234315683137722919010247043747249960120369785168900359489265301316204717742260090796880402687298839516610930132057118210367999094407447142670213643125053963392376103767578806151978087960600234432914735474758902166206110834765574969181059035992001422801040935528245296839351107922359011480131676477743461966167889273713424286120381901386173377051662066966762567389891811471330606371956001647225978110504984771255198592480115552372361034650025352172240029219599189342558847241581059236093805148107480427364217332497363327126558782734083988961493771355145483411258864300728933050899688335205389932523753083512176189172055045176171172077919636361583966133345229499338425530387956595902645663072601871094357328342060043395672851390141543164210163320426805898408817845513342021877192896723381059370081144235893166740145819980549904211631097118214471766825177796740745411465196632070653370886006514117103430451185688361289081149698169009850135622638702422702438320886159533010275765245857304793579310343001664751973672532954686143740542095824853603291039567101238977575474822546755502951481252180362606424289628268611969128338767358086886501038717037105882048401721931326823135945871867384339805984339292391230006691318957224303656544186191762261599280543779655849076302868064697448380986477826041073519596138788185056466219153244324161511987160017296241864266395685475963213683458866073458011185947230055996537038888084037922967750543526956619439339710628103476765996321818705478409108296560860275658660746749866728787242559775109523040050989562966268474630578298133013310836589462270843563182469550913237764990946501224230696405922874906705136470134221399410914099219567073539967086220430049062927393879509745193391194566304196478116773271983827887871579419348371848467847308857127675972309679060730456497141340875328883287284712742433148167097619095004445299096596919417220805848081286735827558370817212506087631613379831346317232557329629604028813211760617092623837518586488042960726430335537119476344132415020740382474036666851301924576522161252687469291390750560348697990555224441576533567948227248027109584946462238955796795427886169319850640037091263489791724807546816225081942355948700677418827342557816277376776941772078423157430415066543131930846943491036084002064198017173575970323775255763289309098692280744021652037112367441438752878131732090226845713980691877348342434708389366593471649822456796441715955408005747740233085519506866157879971163291061195633210272739929976016232577759520841688581805537267901108380060916127974750691238241752180108499353743389709172865054544767600593966114355302373239047009210497906234945760462180990639729192437192856302204693306043587032671987689900344750507628419237720840348483572538745912091127973039406926629679774912710714368231128588746903488202766919187401657819548120840979469540791052218376153762251576394845635286209256750999377100380361567544410890353949317672432932692082281936087827383216495979074094059424725276505791922563927702511159570252044468457625801701285484805957328359259766615261678307086296427473802732713619771909379948752990171052104737590194147614536231884215875524100904143776029968291403880288871362750824518198196402207346326435607053027641024302921893794829132580396398961432457736826808092599416476126927719192632463922051098418904757006154291310523197884046501718894524275088268859947830643167411966031460993500221850107623809492532984716591702329875693882356063337981822675063893764488749028985099871209894877630331655666505392809012887496203423664658594952061118774649670793989721171066473344462632458479892180368646719490474939931869475172027510025799061234911596521085225351001305895841976788789652757494396792559906551136894302972078152567690474336745411969184661493490814484370928316315120151773631806982322388757268890669882567284697620783426093465655025196700468119958338818918254287948289775321140850813447739820565413888847974980932221064775069002125418085629080190434045806822147911377242018053547891906342696996970738663481622642877439006204435674880041547231306804578751340434689204003214230407184797474432336851805145400908667329207922493356994845925405165653471973159326445027715485238890569143959784060634936340175815581265411313594888292133309466782760326039744916871498082069057132380350980090100391619577626305658067211342713836891269643970916059496836390271108216064526126572240843112958018693916574358346948183452754134839295235200773741324372727634835480234693234335182110764272589286602846362482422639581296193777968367415642962942350801441649740341519650012560964752980969358355783070084631614647529024765126193943836380583439540692665517820099937943701697402110750158071204404082415653183019781085623782973807602430897810678047304927053071521772186962417415931440036006102915793857146749511895382692979227572057852343001122081368546501298068943704132796283383996293531104591383643291493179666289791785546681393269578286864883783903908180720501031470838567280002304607542166429522539537247876678528346614705651556087713791663718722712642240719125778641995363065573360304918227098634810060988284241411368280948838066007445810569816698202926668738578127605358501779410086789999718046295407262995760461848335137302491327051604610314589775662933142429543236739505052893629386393952554259178344132688227708615404400260002782686903890330905066266799487431722582605931863120881453743611215218085139101654137183503020531824764688961762211785134658222320768839439578066053115366311220633645556143216822952396561744038341723935719739499495648492071627351407761147099675793811838958216606421117208207815861239303337360763733147293001167211975865375956295573101802378520183912322721412583619035657368966383981338679986206455999562630661498757614282529157106497848254299766874360800924767444353471888066674885527381617248498976130964219288768578445646219925029013740055188075466931135277710969994463622965761689736004197478237152585774251864710505675688342932863285312477181689854061917417892309987131970771058832562707409206190374652970210645210993078321315643005250333733688338728502552520795518834675956654374442625269236030133528346901793004668289669968463097837116519276409841306516958725149449574163522477040174414056208586097832284647404918255721066725124920462129563597955721968794459243234415612576282525131654565793754724800121068500697846373629920926406097029221612452318866042715518176544724886924129266009649173218890231983829734701070488761013135624898617617464283973050007747171284748389397425620575630602961863734900157041252746899978237776435364541044328021119097903461495966660082253791306223408250727481678916148507537403343896627404435032267897977715565998471216238034089855996922773531277040846668645539516724812149292419382561121500889789971601525901989352359099390125666322217365244953785308693118211523249371528146995940913795849989040039182179152465025651882477218096552176648524329744303180953246630750159464241024442731371821035743335391061236334549158228067118417037662487809589727348657893076144517096109869356651868481523651265035192455366226434529168933014800284993598912864845189352638079877790283548569359767732947992903217913042919674769737494804279038291659514594394631021738204929422342761053110789912392190037828956635755826656476239654816466886401570252409790857566396363533578607789082483524947787738520104089968582504892892441243908627057761700714947241470280136368415785370544741981172313982675220665463882435572561098062463327711320652126145862814220269226441807256876730710515800571924235114683858105323242465258217589712222876517978341794519830784581949844679949693941776765117953346772278393278036147832689838783183708653659371891263385919068535177945770696496093419211284883487105307725107043714539252100152490328648926354025707430445535109526791307048028022864092077704427425182848204753882631058130654135720199846774467847570800893572599037624035817243572096830683582569648988166146628350495364919881713495465653291866053314216897598445101633788067950796999183336416771597831155379573555492351401032686743510506348997044276691302312058829194980925660978241425498446972524704160111047079693312817306868011854168283938238797206233721890868130481965768739279954792042892421474393896277190897630425227467964434756388713130992497379665788129886529131087898368826708241977920923297120693185489454106735719183371219988931600034154222156790137858523575661429181154775510725703439454862646244827890339221872197724080422591945925430169052232624191724298582081449050952471385349352799287016135758113383773942494079262828170077755982363273160850416517698396285773257630332630391085490251497727689612182330289261177549933539067977592631663002874349026008962601650714452067197533196203339923766967121573796925099029873953383666681270693069326341455697600024799311874878971175874209060555384719496964141826608883449115247973217703854340613285271543342139857950661416379498476276871232569540337792868158943114359382080442409107418710808816310322083629252727631110679747637199270518058491065237245740111035211055505120152583865147428443655761551059560597757811896085763089684611780710318931811683471312073864730302584858600903850706500030317238017899893789116694587715550063463748886719359867550881936675331027325340965139139375804922526082648631039825319705638379224710325495297653424849448613062487039946509684828389496625412127754692711462713240196171953342161794362344928496987138722205546042081155609440849133076293942142151773823166026490101883732207703643689879115032553387007160230645925856571361926508529047497659281434707446882683818398695038398785172127216321266645079479152616619607992928121544059744830574414488829211346644485644659978482681411122886624151182932170297625910129933867512573431205634641107372223811537616215000556671335197376942550476677944616817183071063759038243418782408504493078144552401713669281499388495609524794249885468737306079199842216085352198478994722064217367086175847159276355729288443378985620386269444729809609055358703914448116944989316026089484244358805444804226402631360441989966729707743852673982905851817573664520129023620048071202427976777825896392977605752906917433075276138830876279918201748476085664786219962121624479585912672144317670836091602465267231095205176480115593338459597338230467916112577117518335477478611877794600853168290410039752807779295327770037069540409639799027776721415918630101744245697935264632007312565973751466495110785317435325763680699520880584286099948010539499649654847468396930944063371841598114669314113539820685080475478849178805089592149437718471351926962876537053077512829785290079930887442888409754435080330986221067378643441520560834938522786716582395159697473743466865730616328544586500625531860527622417321556832438071009502879993756478058188216139708406722277831729544649844302491902653900790176356659543184334326975312453728910607036086253016261653549900866183784136111715821902995377867005334121740455129038964966579331048032186329143388071267465686015498411056016103350225483128836328285050048169177112036563053537649884236485802772882266024066563273227901169008248754100867605750130690289620307411114520162166683044780350552509939508229979268740155908112026753169495590582222590962765996806777490830265682427146958051204760782564206308404843462893138972063813181209775485116711189186726452371381732024223236648473981287388905045499520545105139243039881583878261731023223093637596735374753037531667794330119770997033904068893766187101087333198059120865472011059175442027457214688168643917801915283456566806065152777048241826662253773397409989217992078883470822884520926683064100223826147926895515114032334662760468249956276077250515990702132620317441415769422439347614713984281075145590569796649774924849298328178954595569635347429881800806127428216421063450902564391182503353080952128417582901078475067881187692337943456570188766750168415130294757360720650570815396237136806702026537494210850007957916927233276286974643361385145068218419742393309478129584079384900117091112350238427452535629053095512866926940148535188563236443211094961312796590893156846134835086318967731638720672390631268271495118793164222410677383544384799087345349325297186621379559795385615015812630294641214165877583439990878144647561547854613577554173444168712350070636495069595057472109541362321350669391117761696317123233032694798572275214454310754822405405955235573523155160376961946459598927016800463548225762305687749198327502642583988807072479233979796299950501266882820775962291818519504587087750164033176862564116005276826285251234345878042483009666578011684860397445061024315914740731108567134756467900886131739918489015324273430519948582685337464006838897418702245224442338822493569557667755126257320825429202669240774088168094861899338882566881698001940205230667274038109865228134022572164899436929376164905369493979604042205362903282699983542788983647027197814212424849578890194624208274558148897823693342825318099928688768007175289789999971824990516517496502193789652968704102400009498881458473858866638451378817899125967114128645714392206945835473915153753884978173224815422962178037310751859145997306492614775769783185794057218541091590011249977959805537380205976665494400774155359942061896547567797292586532491538758570248342695809949605460757922260017450072704410597951729053616473576405925569446262851903130136728917667685694604541338511569696736453538685733438088889264077266430918004030604887051211514764016155095875023561071019918631681535255370440773667156519341627257465658936986901939469313152460953326793587694970318241572622285425290922009560579079162050612100810725777409257049212705942869850260204596201756696754832318519580858760718818165575119978036758423645240485739593023516544772819002542691404581420214340560189720337703776438319888883591927747452446232546013874866588714041712350204950134015149767146030529625793021902972738523820794322650128321945807339836405868602793125735860222291475129007419492284089661290509499418942721540490729762296324716263141695742923036406242446375947580415426540920295555487015894262039343657590955249493871004448774493458749438945233049395695651555297566610241929124862060658082538184686726957229236717355318891575551565896272918852396669629326569505814521171996424427842754244280871476211218281942816717885580035391306658874511999497629039993472376574107423650451379641411762644926458329878615244067939950355547629597223744736955509303918276511295746141002850002030284582642139155176806069180884128716364580405102104760487690937311947113825028561875284745339741972653537622021489209289319783409701090129939142627469915257763544764827494291669299249750119201747970666443290964127451741073317424251262229835303526466008720536244079712069108946010700665819460393057684536591692787479211266803949475145160296795535843408108995953732929382239885315017148063454660126900414276142740316342656490495253627466598159321223120125158031003408739042204450352092003489525725188794537358803050204521531673051931076952566868284471047763264575225193074858199583485898501759077256567023489751164441069697819393231959714355732235130614284156045844588260322946918540215662527176213231044195372944801079865390609274092588340611903411759170633286290860960506051080136917223272493521716501301391448802591197049681240727111528663488524490201763652130017108360109439495431324606260956976906892254963575339173784399704375255264000685055726971614815922762190442761262699795593087409627870273437372953768251178656293258157837646524873781442847036023390508070340621630925147747393643096053449239945445258866990637314400692944101277735006124621174323764572808910445938879021625132225886685458791829089971675853134465026511820078423771241348435289711042880027236030862257273677957204682362830123228019893381610212332822315933168396506108404282903592397451121532452422855578664467542373050161679815696121613359229191415920593206267519492787048695247411488604715067673544196548177625840305660812089981760428383040873364278647439442443439571467813239565501119903510033527509689167764047753052293431016911660438770601638967426613388016967684987067588874705950441787058807897579372524673433369823597008932858834627619891665746077647524077575202115244192712159946155544091285078217610572280089286053992765542477023862629132273992361857821628718287471115486684914038572451903141972798282437785136200246377540980032168241440205059981200587539083900216895204542414626124876108297311633099067918902555354740401395511678991818454829952016014634243270659399557695344162899447758567181034126248597621437014580802207702933433023414634832337546982791393143006030903315132779725446442016634004148578937560574648916729792101995579427823943961036893006364537007131089584983340430521787863745502550261167309364999960319393482880366468459047930126176555193022086226337638464598110527983927776526521339176292434771783608606956928419079818648655037067561139069973202294935600491819679265557398446201623515239148345050629377577967003144027039478789909680367332874561021759561746487517475533659203891104952961841962173282961177378186612215332008010338940275072800237976163249922023582405744264628412704151558029056208091944753639392274417920854151933451589483243615163081183122773237596535603180793472597758002689517764253796481806110028754987011287424233505502963074251873106399282820329148884679710560124807930125287900671921585595204539374975612624695981899884615344986118332661293068072544897434096384263019593291819805919485571445046037947996514776005621168582856365349078656498411952661730508586846062504910780906985900048538022852854067431722933996957064175340939120710321595852866211453018149620437981552368022156488173146655690554235524582018245067236238176293414538116796701280316727714541131603901500034758614923874861102905264422530979642319234183008207367650712020364163727518181935341119788197490003601628023743976699428258136835712911080707667325023659602031470155128384909106734206912374430508656059403385670690291928486404274664391582263234603645422166779217212716142278280139781751288044268621001929181804724317803794398373027864536443978321508355416006427189188350726900969660981488011038312560683746444525701953985058984289208385218481783387425154571162807696980130906538906854124837845234396538570534241662961661643214524252664257269094514355381386953303792235431910958472213461758592245815538126416013873377984602394406684537528441521797319454649823841567686067140375719104490151080184596463822351276339568885617448873649785487846609086146781553880191599834215209059052423319380220303721905881059666380524272640511956707994821758503477592780952930763986561834331423784361811480068631834017417983075765518386657166125935506331268597254440734921152677555107982310527711448667937405808959563203514766488742313938787922967894347594621416552029209035599498644860364889705386035194744861599879137357751198781209607755495521106599270323576850805447764785784188599952112029980115073680831768429073856905388413411834314357440970791202136086435704081450725589050620643254961893864354696494211021317304165915913165893869229067981304227135730763399681003917592018085966002984643376161322386943134871656490440752822609271427292130492416652390025912510750884714730767070165791635112646068316202171524720762651377707169680547964443689998071270337883177607733729389396210370938942867270003975912933476821188598046437022908600687678790284837430047359705904704930185144413672875266423510035476357160323889165623044604104183727947336094733602533065846874494187447675338193493877570993111913869084242952796533936538709868288773133573108010691170669844757778580266934985113822896864681696222857200714590792801227812110596048390733424621555505072727465057406433473116352317911651759144631941680974604116835134363005072985486359314707135051969842227871052134530663786588069855830900714426180947579670842214373600699532936453689942514568149953376967629023422550706921439653363786302684847174262171797977992381172828100429604833941100980091025177445499726576297610789205300299800207301425862183121830691389461825886649186784786261509850492416013919347098314303168801508955923157062954850194888218090643845505958975259458319549044889424888615900971770523787880009660739493593885660117887615448819826203054607441058202836483394125484594513814301217378534375218645601662892378679497832723243058591042329969849741898552557118160577480996156109331265611429500619260445653590893464657066440528797726562234817367913566227936508826508225899116580190248084867620147673996319545096363549342685152853117466529276626966406937632749886827019681019717787891524059486257204961926282402710002494444581801553640754038004282404809010858951780356183160828544525459302295044161541305829814359508910079162299367577753997415324947644457400418809687130051312235484430776032463372431019100702577484981949874735039868508267151510729707754674233039528498667873763595668333761083784141104861964886595269749793303332209110259297962619793669581080575473324389785186943608444701654100024918942085573056585142398230935223739634150828310597130309380117040260155332138365469228816108730755755477896343795320948890492409820723665680188564606171439202905296334766899327384914169879354923422158689835321555153827734448714020391116130404282894983467788188593165459856723635691007113444838242695021766857419204306859440149836393316214075188048291548916836035216960671348179917264298405067094126070974176241098475290091460177385897054421521453176762802841926785979966058347770807574763686627494934673267031549353238796709650365647356087853653575209837792728107661020736974188698353495732346156582657074604131373262786784681591166727869245077758441429325206797997572486868046856092949364049012301376707776683514022110201805062712787881215134028249813353923171267645479654179263614365509588809520340245206534187865587678601992441304686094911322968408383176379420907387354746255567273535510117035851406929235937602062070153771223800635299540440542817693704383095616619104716899655852914805318519401634608614682886747999351870787089922536199426948538472025440887037517646764094829711716788092660109023534338450111241007825063967719829085001951493806926814093909315708365630406831579108989227737155798615529804658654827680326387387351776967262769938577228112601831250234323791781953815759364773069370392194100598769501893368211763673389363429084566114818307296154793331524171123952895552527255643703427305272895251276763073449727077451219570580746865298977323014168827525265903591158506660007505366410247613684444095084831599221443046960917126540230830054917805028345011730700402337483068153618993062431249485881895624109448671094557610921233192948892387366777840044866869501974754762055218565620585396204575462282488027136546965244408805780389406186572599628765448875782068898542307063412138462929691634290543464959328878890637449608398491936712868247822812285636880613930562708533321882153634692948311001121010859526208597698594328074494289420748835130175022388163721732538751054854936922993824652494811741315626872483404420768788502100790285428194038476151976696303355377324782384072164174046807599969827338841796335296494773362163396269946488388762294920582569006799673474788860005147913837416587729520718527537996349162376864959591413878690397532094718505042783070812120547662416103651315590868895596067857465483917251179743869070726628586175453543505250859255476613236126411823968180131889353752826473478012014831427101694771157104356605988377391692851334698284223944280637268535418935815080483610438780967838352209209604854158545804526497960200850502639969847827693217574829933375681352595022112758001729641791716351279292123653140894940940672889235020083031780159933305330235729704822271544656219506903188128958881721610521684859466558553438312918723318695300140152272746260665107851993776403974061284884291005550058940391220786126740815504915360633793713417085201120174058207996589150691724262351709671806701558682399942536110579118148903900423370606575844760685380250887581803439957576406329679515536121835306651331893343158559104789737341549418890143881710061506373671818963342682532459420260332920077791315253457705382790135002920379077478753634397628018744607518150317344967931617731225043520101890255573045123678025729650721868437226370614057695633126909634790826835699697970398298653037989883034680806429184928871218641207346825836330600821137334365354107844693555501169695497118465926423572211025534062206627794062922852755964084524220507754291580083119504890290216371158004901641848085224424080770734833363707140544955494018470275777927263193399626579942140789563564461519304798819241006311470047121924497377564870061043509272779169592862928466914979472951969098484174603935199379879381999627120028419321304775471133403470565708834911975352192748893397332834497967389704454577710237957730188213806600104041549463988847579571593906259598260366817218671124278618167046100573089120310306219369856251289845065301757589735625720793383181432610441423139304551862815453249957813395291090092156954658818326872430297246563217002586794765941269778172569675093817849218137919602860803178909762651000233136702569446915843913119245780446508301271278646394874732177855555767602335763632928003158236933948183842383359464107614584718133571225354208597031054668516041569349247894233271968596048666368056006827909946808841115295852628350957454284164903755396624818524608088824603058614575170969947143504669988756063554328434210912248282985464402184539755603311595213263018035598223340629372806163966479409409004577046314121284105806624757430530982030767417108587198980594963185559501187488022650381879349095289004497170943761309551327934027874449849833232065057100458804161846252324544221144425496883860544584285005272819247877351275775695487891803816399020517426006903612389883464508178049134178789002847067109907788948170752801612067192097516754748499805295037856995771295778215206687639480352145724581153127614722229158592181140020479856773057276991040674785251574517112403644270290269695849460251606340826633903302017824137764534182325030184905912901575055780218932516261564524697204935181642652283446570003683816133830508551801450098309081627961928074822773829379412736827917742412114814108177824944077438063068141153384066759950752612725449849831378961063438506813964561300293399866508674980834034350484314567590448349911121403226532654022530144311332490588213099125555724129073989918754140327409382696380359060372531420427500353698861831213768807131639732244519608889897250221527401335048933561973738744026076845999393289814699157441049566939061462278575432759169519158973091104834435192601067578698172150305445761475389311934094490324914528384994328405196260809703804063936725438374039150530054807704910654415958756293308336573645956383827350945862176532365626997997044193097150762205431315295888174857853310579869197044649761255541819352411769844935988804964183841820675787247263778250048872855475842941695234137653763155643572221323864370964784934120924796061518817564384740217254214891858662301070571851968264668435709199086162800450325181200287426600063147947573111801009327741784920190247649757932232210740326368953364583527233374429509471936671909598252102716621605600444953350882921556222671893215475119743567571210743732465513076711902486559425038745365715561133063068966058471521651223737524893619728786618634494691252479169605003129711759384163198181943961790664920604439880089256251011601201120898018857705514791742627305551650734937387434387639792174185564805048688375350897980190016656844741264672241150115926821906959348564200017369707623405364818392858893724196375891918284612273022273321275380423877590813060573895122307563820270901359495427154017362919659988876236120883665239585496258960188854362803385609691569499627352340932887241596715749653748575490817501952139829692856955235043412162297967013714584839458111522221551785493347597428140691801522114988443593916962737227046996963020687718613223695033366291937107825995693283863787154996767103026028042515683364548849572823394426356862254902867430351671307047681478966646493336211139672664779804144540187319880864068492571569718324794619202431706189817600508725550315514122500160097446287859111939306761070107822212741366708136736759139634586853158032309050892072976205445007185052265461043382388219538873152587724207664724178030894075736396416581468017337893390368973040924756390727149762104568093364838806358855411988625242860653013872681932159407579658072648780524957230577767201483912946384100759072770898381951087566835919232341639941183171867274797023381554499623555064007891213715143836985973245796972461014542052751771226015116310971959401145250032454699414153168366817653500788139793639885803175197028224216943928677490323915453614921029844303327017759730918727802826657178715960741206966672635304324169572337519395892789297269046937382938398455296460246842736744501022237150170708195839713988814766686412653260053061446466202660460076971555140428194814841545633613267806997697999953239340811480397672801956760037855258439800520445362828609615987399777141519974861909049634298620443702477769683750419678378158563068594189937333022361979344047982141269182852493160199027081728256487596514006808105774456647614119518762670443442063087780117629697035442562034429371548981683317722606957438645571688916146363164411611658836034204868825308358965384470319250794237228809235322846120131819284927328081467400963944377605528962946066720881237218434527796925124990351014177708498792874639379368209183253937138534712208752947196325665532331945425858565305671035712823322319317677681012511909481530840100172886029402562937416843282918288422493610215782387055481659031506643936736053081689523356150486338988734288935931279387888365542526775077304398481524840318387153377430247753281796160501857578294194120214982256726171260281149451433337359709818179669297199372538762233525071470709987049925000894125499436754252152214518587226857405441794873606212243441033812907175194165088188219732438239805031623054316934232328088295625868879246105035840387614062423774589117591781208081330000676342823729841313121703751596672295905021533460062361451256791734884752547380469162777692011644215758667676327663186298022397327945514807088585677145622237535920062290229325270591105814184240353297302658983739641643428358647713338056950729407144616022186800379892645377858440542578484316992700204561194252643408733787588784832322814921095810194711818735373086250112254812628785037330975243121757446003514835567429661650749931760250949292478558413370220285885860222953430409785681116341888889254474619271223739290337700576198326541550090461721114947037552436087059393509708673180959897241243378440417331236620004250479829848487205860324075724908269167143842768363137952743722800187524222304981771166136648672054908994229895189230947858091468146295913603785882170303557453928357951596497134327832242963031424708139073535458890803084522068610729498669880299134501162013240937564971850813889797647481590737776563014342497626696673368305227643920885041800792834124427175021370004133795246559492245968042859186260660265445306743642213020792707591918973337546852264357840246281213228778537878239056205590359760087205607744633027724014133007879496055347842347882439106025272310246689725502256237009251572177934269151104268617097081601262966893576473452883433875372137763731718310955095116292068720819131886713735885844261637932852394805528913386985392814996668652604017839541501761574350635673401897772461397310625692411805235753658505808670500473227731068707496628105100013650991313449618290716777582267951340835886179143326332393668815977174585219733947694801714795083327182651947107165369106592827136946517158496921843229820755890118569712599428981399905592409859840212373337032933847998399095109784380731879069475539571748710567909218086392275810839950214959539999839784585798721855639659523035326067871747110088077186050990953385490602391897420629740257569604090753446027708629228540032878907307990033659674054122205737709114575106955704749910529787121561172688795118059417858835147470513425711739173140374004883701177575098242366489526295757883499145154861446412669624508517308251331878027259527799879575348861036088758446775801046778933262120124999439661621763868318722648530603759645376746020423855906173514550206354725199706642450002745743932616177110146614805474720142238593603583674660021793375147626473546577006154841815188133724891373050909659695180939901275876725719514503916629166084029965102474889838444210780149126093385102055665770307728684382397193141075248236361579216789990219750294085217096472181721297447777830066148534578024925486055442618148620484455070193097122950357136828159819529871742587510448603800309816283123665036147216259127396483728142757512219331434313279590145371901205340695920431325263820068513332962881777655587172896714077445588818692840364417789564837627881281640656546212118434661743963979267551996470032780406866160736399962145864021035694448802750023892122321501595112413452834693820705712549055311905597911535773313501428490326625137400107312643546621311956104657404874398791290522730687802848789576615508040705236944440417380075252379785518483984172961064652390322899559448681006190790728245518310246144640159457236608216649469472889456621857685343845380066639164050610120550210980679670279214080730403307958737737661536993210609613685730829741373804024460220535072255696963487392034822481128077469074623659793603693921478487249251214149972882458972199177271764559719631759693274516157071542365417612159851800816520549640336668480326726842603866784206305602733391768548302682224594499042441514697800387472113876450415824109842523903390635047339409469221248676360939956440906111939318887371700186344809303104531118552481634979396233572298364290864643575907617713237295957005976014851365921036054149354200521704622658718091027073595839631417146240581499977844453614108679013343842779257617401459395967418938029458324848956911110133748396128248536391755374442766495045839451270322910573872822103203764866528409725238533272193490371521186051170155686964423180640387447499992292412220173344309134313815012983984793867327943413363555736758133885925026947249513816390652567457492824425346970227659474072481404843328680720249966530608319139392503112199596115530861537599913604741640469130197561483762745434368854576180455927739662282902070095473715990851160868454407552722459025031338684683355169616793416654428783335208224835273334800108220659634949872110717035520247181378437939314813398325580254444186587194212188257006039115473213420309807606975799593576016494969792422282781337328770065650520325102138140974805392659349353972470659294891301596248911545391481310499579856092957677897573992549489832469646931240943086278492345903358643926261699083511317593929784371236717399621778655805540979002790936834072914432314178198946712394620031149307386892468264473848018336924387655543615710277049174753098882592102663840169822290584058522248696896605076844389924616841417651144613459313225897202375015099159856589896267795715886995307384881973390852721251212277572846854296222063609700979236928760246848486939658258903860068043805733876939059009154838656147668162636574544856199417671413938380987022751602610798332651518699768514151513569697419751492540750146527171927206167023449272689782017089767229498527169717333064529002617704863261525450326752824309777082400559652161032474311536401837549416945160543669971221809717769802943490817723283190351361793029683876092391017957930869942893736274638501184508833504401250169964833735070482585306006414783875660123627009171712970995690133428605753959399420652730292495523070230978745693434586663454469324454234093995304823868308785121607565966186560764530261038039455418456145123623032400429197419482660354864694269633737611808557788756726572642316893308513862066585880174062710294291432629411980106994831676397409586929253320783760921355834055066507920119581897193396027552580918623457575976621978543018736034430283608804195663221035622550168226941527160072202639319787728487440461244385280948432984018303720465970298113801746603509088313886970255899003821127078748046129821152505229683924259937451811565464718999039403021672878666574496151618004876789609212814668785748609701296271651111946096990258201454848169371172956249072318913935384962489744370823767744206718577556932760338000163011062428003754218490227166445189181839440902356480720244281906261314985709063379761794425975237941197102620330978972793776594358130804709345814114797092482385801915177441554523278448581006293777673151229510407183467640408905846144273043894501623848056002349084413654354342678518865758509725771763631776068714317447648828099803400768920133927682499443081861495421948190414919791040930599554859002006869744441993176532621825084745174431613606440486527232567759659694748210356740536325899393391475012771616258527320379999684355228226964075057591905366128285024751798758087667316669709140318971153979104853869278889534817785955290069667002516387535774838581368356913380769556979029757887946749182559440428428914089463681528551343807353388930663062981322074765747822715262670808543971354724538215054339963860478676997935217501077266677976847883067940005689803211071728457387061579915190537261763963625182278554970867138538653926323398730371078766555319677788251902767261979650653435191736998006024622751942947170499557486284842074412258109503523439283361062709118878965485981285198868657234965031036321072890806628570371581846648590481697663706128785511560025470474338941998490745824368048640565531091621240940229419638943813779211454971846010414251691140781451057862188263557432981423886024902546017670808550881020514763556789791638796549718070223714278577495955450647350810123822783585731475500642034229748293614939827207370220089640990148374354482152962633345288498640253407582756567072484447979335572108577722637857760518409108259469388217539676162257584919750165233817266219056165159194036038688563807632604664573191937745220588754209023929372646298484883907528035987869484059949072320442669967427719180890780017043525618014023107399294340990289772176745395877168158008075685205907068821957607578126002184316161006262557296076067260738330099265941130859346165134385219073064617935225174041367370913852376341401495881164394923634239286892060621042562628440820861073378400272190284031088142862339040774656834493751104364340002245667871233112004672029969101518682426934452062026554264981932991242321734675585194878868485300089227984064753283522329287122621670116572134756808697892319495985959984729233131159091649087285501440346781453634970183615271791391020847691770993955347587846144769506230774191008220991955630915773352496788854802466734389101692411915468295040427656437806828463204651393288791703715058320469441352009452256932643843605470611472554386668450138409886676028096587464745899510999278705913473840167029822137557700961742289236673275346761787233629313974143535314884759447642359983453357877349870713880011003405001388286895834764388877789296433048125573480348854897825325419977709573632425799465307937695244626286603434510232020773305556390477345074068229329609522877355474506484735475497000680337243927972347382766025470936637094617274621359736228560504390042978915324843181784685627337780476028968605047903282800289023686729099719880655112804310682830996243317257360120442428144780233169599138531963032326310245832588281816777367002662210031308401775609646183788541811333440290327617955265901003963466623158018273828335178502760197687253932970649077924020386630773827178879420793638064617279327608280608139513654140388834131854124098255913363597437990281780137014508900747006595158320101228551147496130313151759145479130725808786419934234928270379636557976457414666999770613961650972987720897460209228434041921244375495448493279792501392815493091824446152959100704480309726339298477840881718394090654694405496777305026056887274069969628183130704801866178612464135122386924748169310735246543818008868491976914371055163232335061283807137807358995317587117825373234162381778805085424605951662705246995383748354057043971209320280558915779645963300298328052184856369896453370889498063358837903496703514570442497651138352631706575243393845055150112670080297796211007212938920345330729667361845165394279931362944087703142956010774410840049283530454706704474040098569401853096683583178410206563908178906950025918585787629235254653203304853347992165676027346790897609223143579477007266931716044297074133917093977172287545448977993957926888261013360061829794678057788250415744490956095129049242282824815640320104675049905144396349577720456553241203169131097946816909484374761751795973334156367831261991721067630011725444446364089984474979382648557093349507629174073580200763924137629585184515035054396610663992662924135311851235793791730692840735982169011052500546701598174604465140647863561013045725783541040438656551788037918464626081064948231914177970273989348566908790745594843664078222467446100853408103286390919682767105272299253709882739497683275917505174897328784693742260556584199780005648037428061789019622130870313111760381610020328423743463490889703487371077159906257883538109915630003261010931067791855522646987245242982730100906061370470706399424103697345940508245206465974930445435852952778781522399208267752206258602612975837276769367608066204104114644189708239710978813650149785930203814746676057756185514287464069362283773218180152602741672168495350127251993546880357140743127544154556211619882061305132495252774924547773860459116978989563528509388571974891078863902076014422321067437366572825339654240467440162463019424988972449575196517216203321502423663130776402945762899304680573741030511362147902569143084301713606788608806632254205366066480974360353565970689439269241483827716229896549381136825770530373864605542534240520476583634871930417958203784727581113416417358007364639739716377323849417399113459647946681030179163496643204283221682418644669164917008563315279001204783182410045276687639175729280173920360037832031099536815960601560721476691871978535643975322070086719310756597344398674261464262894977771729671567763511648523092788696080770727694939566073669677365226021751743784645292849034399449224100432844819697152262744466482984068109108947753041096330936300959538252391773488645689777566402855427427902341872439851473462675551256462244667078657909960162510528204323422987557868128508060674230853606685660829497019938210454590425647287397647148226470551572888847960757514767439102959826003679523079189320970839376375931801692340648391506151638513780454014431184051682573310594566827545386762345148273225235034098755808074471441728318755700703655001105761026395342265462067564726537193233370768343936541498116544794224077987929686103325439279604473244632634253787866622433234290968205749037771092123948014732809995094049983948693534171095217833973915500261127710150492980159087098296211054999106233493166650767196283487355092707031460944280955663187201851630920582301113546468242454342548067824368947250301005449718829738091386927189578892912160614782888822244461483796935290744528866159911896163430894144594089865009187050422771568157407113917608367096505526977199390898213320386496976883307880400693557142463545710732326266337932353248965094099994056576987335586706107972428260788184488420355387306828094536317529554960538890105844272591696099088380038114891712222577324836418314266894980962446636916683948070852709055384335949342025698145912490471351853789122792378828840870866695576864415967343764267656808618817423075538259072494076329124337149508848333588960821317472011890273767842847465579122265193148571460021515319597849135693021108563539358143661472348296069412881507225354944804740043790197643765894389524395257052771864470949196504552988716871044283810838222036050204889706142817130764617279144224781967111928205578390508754310354773750118787128927402492000467062557282589033106706620917878672286045942544700038094987438085842360551036067426151179693911107242739792490669719520148162617502260213455053424501597268153953548771126851194207389130560904854118506536505068862400735071303105472249236516845701883283283778600257937200134870229680615800490659699322613202138481563051764028796017416550930028671129707041263716491029788946923853848572691764498502241983370868574060725416090231325536868942234932761986620013706114118656963643800954258636007103538188421866614242398745986929983056044737803427813542060870423508291158796642917827587658977373936752754314315539218560779870029653599339052312185976882670891261612066542220122238053710801240034532238109981173007448827304362112826826033785587808126745694227289755410827473213736518372741527425523698633573110167063925662169218503122504868332376919171961259473452965626419051045724662674809844965317770263205621110827471348092784088453580976939013234554131376055016263205416127781284215313750462178156641498978234384172129842351500752119441048707248323246597801705744623135073891208525231376088420000737509877856264418938932750594217783807576123994894106151430818845566729689420407478889045531721170546165492020201580053717523028380873448183450882254627550954142599798405885469356518838414441921273624143699689629241572095030955895701344373271297721642943076883704472408962260614978858608027274252049189669533737741770384087103106372665418565203339182610404781177787452876949376988444521745867528981248258669811763134670313928936703709771719311099460736362186025406579172920141585443071664688916389121988563249851043786753638230204050255886320089847797924695112283671264524507881302682777696543624564136515402896277162377923786943471521504561855130214789998904806593117183590795127665070791044288757887420852335878874470561096133563112107509922127168357787906971859896419131458731808452162463475745238597133195415955070232583252078360574063253884103095674519236348719350865866041206292814592966557266850688604253646211365096388137615415718964267960475230850349567771455747189134949582708454992090109956826132585240742329274161707854014452854168662548560010521817021924816039494668919456467143606557185513386455591773910540909455373608298103506841464086350935395615429828577944701010091164566176593334368350156379985703166557212912685560559001443817950864660091551814711158405927873406313017783807081397748896115206177161177536256801763300724961410520273366598507194106175546583534361049664523042101787266487859369993829419373118005884004647832905542551173220015950173135690893943396403962199808056654475010281450524366798931446019699824306630678224477270442278220277757741680874955003728298570314402222736164791429135102541556428730425067510222127677495142489256572872149462977218856246806350924758251523738133417876555767636009140809879779112938078254961549112809865237360966362289223476276505033853782355091831379918607690929701910038786449981080281713560822547373285500513243126450862754339406352052972848058550543615000937887943288008054361998561981145260894078820133897868382095701555998693915704819701445849458930087655631945709363532943285542406198886519644648209625592188823894121846849703884028667028571262436178964531970762392529307087840128225378407432810392964736878941333803775420050073210982533151575186076594891336183289195400886105405308131981975353766297129264755054084250389722633259913285799655190617261478715462110070356199850700713336926138567833036577254523000596436013875310078656866519167248883283297207102355710191714558638287346088790871232010561523854784801406733602816866519331124846296143733813858596528659239822061107099881974540102017107661046684380544246512084546675928606137850616452819664348406855101683154425770749757289696164888594396627647787512325018990175917601692469209631581692170116903854994394637662568407857967704230722020154683469758014437004097450237385102518707613323762735511381390990944372468780467630644882825516788426037345651162984024828460130513872727703251222216467360189736715240788667379768745471522755470635684339285054963817154037203570954930935083191437387525102566574015750456569914430897275967081745400668913333548713797935943003552107252009849887759547798236032803408128593168657292151241889633088032393527586445453329896657487281541122079349329093838728470828226979371708647320922682302028027739268433798567243331493479750801837949784092141006265775335152124957706674700213073430398315271567308585257285844330493991835309893915079571492099826302646097045335905087156217042047276045410026105250455357117464408939395017209704452928921949041564790696645027360952474597888048957905431211165076621525807454849497210489985469458535934994505539678435901523665680015797311417125634177480891239006206215973891714662071369932248010808120769993006987197245030077629768240897396810980499478470453594389246969386069291861319973679193052629484909106580962575965916213330342318805885523001094158920047978942502371614864092632420560952380743455164910115058592345807254441522649622671813211301493173350718254250575717211336409213322854310515279570598421079436689948107277220053776244282888265076522470433604096003738956564859540530944683199040278086081486321514521371551194133222687054175996303712714622832143891608047674822533575027738975548144910663180702230123442265322098386671202551763689665943965053170300268476260046192055193330308027238761821046974460336515050121992045747515021108099448748211567039537430411129781524439587807660042465789150896867554360687898500982987499063286043227658965625115945710229088514721309651048879908446259510995810973416133577457685081489865296304041069569877444114989546294814035260230025158755558602807538359183289456701519480061490123577141316743347112858099590903203511117694384296797812935582632045705118131602584058843715462688049712304959000961391834336900709106063631260466946283644118812572181217873218899592363441829331367808883640845179086012490068387409867969944015908156367099001835628462915751984528330811826823322039389003684363329588412586581780370369102990655518998905955498944101241334725144137966138772789461150035343424791515551216811486028289518227605637764823082729629132986794669081599637822147480303675794298594583670596751753317264920098694297744769716059226637079553185486072121188616360461084785319573658898231102244016176765511943624664899346395105771634227245521999253429970595288003015896733063068292780340596943912086669823755456405988907584971646905369252732345709346151402505144107544501338152090820399971142564663049691654807552704119739454565392420855642104824235079530001312923121684164863460567372664603143179734837265605754141193260784947440507917913972979326318933412416085653241354733591425667301224248046948077174201541171120662086025690358203006322038349079423826438043612023776697873441855953178810509426738287794165377191827583131253969852744760720470095005665468644215420662894880388349704895232272760896439884146322594582675744230567175254541834379804563503489125739785034463365349135237420731882106246281966145688612431836940782803840918432171732906723450021523419288678613911893344291446264848624846714638612261033723088819071012000779127091851013369334502311791165600066384620271244255014309534964539251664496966000807125128465540393981567886085638888406931018145478845769866426263993228537756190373066454717135958573067754817700013215861351980085421234946414181492790389467509621107118911188542722125416100182511447811554588528778542218841022660882631713732708020103471393130079426955554887616599514880085111796548685174341003065999951398032545886135170092488495239967729970688731534326579116462625334967057369164953608724393949357989712138904725809988793026747099819371201258006430255331226567717828084532340127001252135381373876435583159273923620243518968548060219713664321201447858165342637153494268392944410062426507914495627032858911015164679315820196572502795689159442652326016781674251920584471434053807323292000385784171402838240006327254434746790287418797046643654881982802252549287393832677539398178935719388655992901482609322235189304316171688397579053960244127110143744620608428528209221913100217704976382209965325846978280357652209383774024783239600129877187914761848781610009332458551340243501372093758975882456878661776873963040806149794318084030370156618843491430828961765486555069042780472575745591899923924889967790200269606726878180536830777305526203194179217270996598090248152142513747429833212342063907226191045733106039921209931275418831447690604602344182440133823208576859553097538183272733302230643638487125403391671107078913305517329653520513764389863248359994912648206326034382167132984679212526556229002943346612566464134915397000828595104811389693451477550020138396123278116416160843439551380172397793621882988338219696015255874879867832805946150603540726498613467086836609677514467988897670244700001946149051823323794021763271175760757888335566505162157152214313907413466007686816940462268897721053133833371782091723591319999211491519320320859128090336033238880780024769920231521052030770456144450309558692972333316364824863201023689283323093699125966382360016391827325729349523188716654152650815781727138630411705557307535745207307530145488606094796462526980219245407325192295986285363844273307691484436665986019025538112123462079982162017370730110319060777181176317162583663056426413570783729936820145606991234277081248637070707199579549964500327107056902737101609873274429533977270390853332295200376522813851821316198329366559738949300525889752325798198274337262519397574278127620881636057591473824926561195548128075116990671174792460031987811797550033192992386209533869565625088680484501627691765654497564075930406160873189789233086003142535148695098100542709428429419357233180825587785664720936496471008508109430495346125457922392241598835820374316357338417054375084395253637348410013077383439504851537508610041681638806549624838031823186967344727786129492580575701968258731295409026450146350558791700935765974314673725450714381619708781800154157516456750225394913155057278015071637480727688927137055922784691879728753503072470775132319702222888626952032598973386250491314678440729016006857557148284936843921194870030193416188468550599028857308983732355018233656927775317434126868199562502473499454131280645017143481650174091613885139842667982504206745066311034002729971733342667722558317789131569932827293568302982833347107345404993108859390056114252069975367317775426491472674023483690528381227039599858543680211219080609946548193305811685888181047937820016462015296312691872421638827100517392208802275543311012282536937497787636907049366161462222970371795879869158886564888314130604388851041347662064208166603475382847764900287504865154047757155800463442457879681733088864917907909834066153663194783875506420108999016756595698653490397138964268005744910425919136232397429809012748432954016699732549358434190938447173002536370271430344036366061050250565467765532274751391951718426471190596444872963824378369526811732051625649213570773474050872376940251164047952495687074542502543149053746215456302350236214926205986248607819347268124961818246399809504190279118305525923456100918371231030403582684953582715861489731209997414220840866831909449353948808120613505493050259252408759587719088363794291019263044161824941279420452268195936012518277453578303092939336461480316459026568586509943621627699946414420989361468293604085738591042142837454655359006124703098440864724625506559826686784600581347138885350509992065473509440406164547546885819237205376587251036466400262998239663295137594629567129298916598676684882901464320488999607234425009494017807326937180382143247150368637036782281008773869176198140525185530914202972522436505259430264263193435883584251462763406627093797184661196718128717523873483023464890792681614859691665147534379572457732268432433236979238402675009484594506250355711031336482483010078462995773372744734895460934073803775932395656000215900251466723309108725265324202178165492931924497739960664111530616733053935237998495271220275787110130023494192261748519744519737940501765503150806056755272808623235994951905080153368836372642813716133707364734881872395050705560738499801393752135764433141278896005872644111453076410396454819447349970599124528840258936757156565345102144372794892713024339583617406331689492357156566615662514552763750382215382948516691909283325505835201429578468874656133105209944567390474331887679460515156972694321387993305270391562777318282180740168528438267328045558351002379961485329868664870210055914982800049375096266197975123187252162288961241076186378842153533346581674800540932174942106972273441714054636042899064120166416502017119065544739662056859023083223140966489184024121039788932819384406333717063130843449560390701828571119187264718988181537992399910159389068548392340595652720213516445210762679888511614244611727066003235372809956174246900130434322204327993466989349878834658207975272894841390377430169593389787684648395380090957275079055999642574848584113520716952865839418989867361826209803016549149978120117371658664195939588039255166384945761185550174183164345329910148318960088377655983566790759078393076586567355250947899624827635837751768205525574094247967478372934282891802535078752266791767706704187339882471360952716013044998570184367334507010633925673300641524661939358050913294464556483821234905054579675798875281214320689003218510482805548521922213857929478045233320816103770584055962869490052362709185761047938888156795847512851503486482577930621482154900487857402874345111280802334700116175570772113299161350497042778522011604632660158428039653350839898461575734336573836216179962289769137205287224946028293504567037015327740506838192031089610185306999597545286502267651576831537689749080087890999179345895229056968314624483886168326500044492355683437340916487105098121859303164975469611473911450328705256876850530844172790611384856737611082681797125624791203656109997850243689497254602573185814128985502813596421929883085811117589728945402504353163881514924982347759611278644012747705265571804959670739558924916397389682442391295915793616151461384423950428214928904186731312631841240689211661765711295814544342043161712384353589678884786919740980195494724613163559101117008320232470991854108338580712036049550543306748599571709759488497242311428983199515724418216354993675086798583412334453750753450568651793000929292243952327601055724541836181037858340108088357919184704164451812741361636204555225284437487723445964626515681636211006288688758838933002517333587058400129597284181515485256538715874615169737455126821934023569859565359462947845749849643565353912806039940239941104691225641298221591359564321729733452944766568250962140234103152382146192722658790126561207481886582749020848323032525609585144988415305706698312150208152622890347472338313040690362040605417512459227473343089051278946878772352205551498399829454205215014204080073145601649092275983608955776602941220623107690454541885925388556612692100365164664797835633359444003752782608713388520202110276355337160153114001906670186679667732907731697111318965510400193098466646956133377461191340057792541407345914525212361965993965451765640513811154653095398519333076446483348486704398798969032325913643821678063090798804975209400578446357214475562428819850079437805248420860543476589410449199118266195991156095397621675183467894799728882426844522585049240443735022096103748012351225181513033730484388906543693449848854946911808959764673511719878776749672399409964077968370650462670331637489897134537919342287828310975839376767758275110906881269820973632339963816130222647606927327605817971805708591397108362234890734947633985262580538230233541328573872352237128981305051774368098024988424083070812884974301811550376187962006909513561261575343849982265653299063560959177380558020705871528977812956597700119676790435210602472133812258638799588887809294755460992701174486154186257067358737236506046410591835720825142661620376428722035611474463673645233892527915379750182255920537475468947415267785464456116994054887777106370643639671321506959598126632333391793851945111251036426928913028429822602968305983842906269939968856503343712463415039353908710226202773636159217582818319005604438415048731934091356310175492389917296566009469186922919149835511185137307277867319712985832213862566101481324125056677723027385850670095906591871120308559421049897053157857459614527853957197689269702478550790322038079582318966472372906103985195172727822875787971238182151630881396879947022249749786296753729441940785563636102349814351734686511308106935043928043523661680167476884472965404909761897401959697891025457084468782196416741510061871359103785524555849870910197452971558654710978661775584398424340733285559716765719219460762596334798447959361668261190570245703168638851004264069602301039507177229416129313990164268275036908318961450845312499919647571531483568431326711014454336347399669433113828709257405201962844595362052901144235730152532902737049734754577290432665133291229585739871370212669069474431496442613890579798463455618178157027865605961214217923409070961892905882565986339590310979556476108236371584445255601727923305578639046787014421314874537034694918629038459851286997979257336501377395056796617957107733462963868323521734685541397074895814945977883491117443241274450805610569546192538646135595985038105786818157354276265391291793712029218759749785317811378600301084346454575354595203022133624081705923586091884148024833467764145427489023541694461009270741766431051435457600444196945051274098933351832677587717311779099668559090863043089331897825463381686997926848194022051176321734512529438492234449135193510805288263711008062314952393901064339478729503752374196191269270666904790104832568847979560682256201491585524525403726725068387018603286710818992937547447984603322611063620086990390278056067080657949353774266280870675710589504850132071424585787618990925953789524587577911109431128887941890939381317850154795913330457961732943876677657644540160904047133920601620112946169704061136177050315775276864839148104049333285751456103907818112220101248951898241883955371840462978033377044832909127470576269504921810152623029041063135045849164614422554953131000318429141926164324212142517727368149137363186085014394799353284620047335851281845053556432459146966300253194008140747587317174646582703043081109872362524706250718978231609702118426049209974109407662234272117828889873056563377837528038193021164327397219515722906270773968690937738084736328827331425839671220075397724633102761222800989792939948777063432087731686321712940340318082541972089080347213781020387581939963686072770265723830730448881109479744632350302798080944706118888842002864181920551359156840968576022859782923999917433774269445774890779647222853869098117008498047020585564947955674576496446120115034318104918452639969581259521075664841376330909110044616376136046196425489534284994487092174214441577860407142232747530613408323068096965705929125280746185196767861382472066551099035537427700255917490370771822792541954056563561921557219158423922274163585170620661491974835007336605815359307401343246552170386375206127197201204811713652873789298226120325807058514342194610087697709080561429923859594652266430332765456959807821994156127206150791813981633269578474263455635510522241047626362047584250425064345911791121061529727434055549018954256128109602687452623251932013830137820036958130691785640602646698980549790908967786577034601074261635502479176547377777096454883700641455719442012208992528787049233767859118078697912066598475003726783819457379211691508660932553748924067827604737794638177826344054225877254974908146798202459198822410255329417171956937517853294824749729601374723441748856872131762212217330378177468654620724715434803917550333034158038450974081864234061538811342675610533184653927037500779265463027141829066367150148707263151439907686548309887318618430468251325587450875257770978304636233668228751070111881032655698963450478484353204455625818770756449464957082632956979595281740062828981022679733601931731040099567842502593732363596753011683739543171354406006292802111492775284561291414955776645112603298145444477089764812849059206074299517327248936325317447800975106333298486040324485458989981218877461259584104111439232329075126631892467176421066415839418555807312172877770269688302730012060815974419813548412034371407204289786646743453075030830042021337619775163366441437819879715005941074782025095028641325407558134754995404258642960437821333293106442673615344590342572997645137525947025949628131910088733066819705399194298051851873550372221888077197227174351214206242493213053906842457516703889685793145503488428967510588790789295356789129503573229149838811795026053369526994224632048432824455690063685833593933458074579212598951142327473962206927740214252054933315189734549722983661739133478614141206721729774700850554583517269266867399910852062897074493870465002803340506822800260696974196229508631899236129651013011734324099966642656411562396494876145928841318033433367347127355164224641779221977883174410565205008924104242536095370430336355372105529007307971399272212150166833166879546642630347127234377097278110808962988238476338279313121362528584290938393225765920944289256505022126430322026485182625785512572798265226744695914133773395793581320461318398212033778484153857412712412589687351573228724397269202018406581745251266318656986335975137100000447251667131250380248119003001229324209216358429766191256595857023992774096394641316286408174401236832964558746144787984606985658640562370654505733356400896440407349743821544999534837341925846858863188663269189788771835152306415223345272618586069381535901753821304526000732734089837413683660811392221146510426520455813388568250350454920597657385437842841123071279382463108266228551847320130809959808817959991744036966666958223545307054934185978686081682404811025782047998583873943882977334383600031810978883603299669210292544623312821464978989893562962744201824986099617807755527378157200113354664422069179179275434147746962105398416029689387498985428275653862495464619330190106020161551127864221746536590317009179649153213835799186531626664876959550753090109051874052515853461031975337071675965041506954906694491033009790122269155042726606295760545383970290870404127729503226316143631532899487097159084669698279616015266147533536457139816494961087650304845796488362556102029479054835664711321569701650768908398626299534114399434619074271906153602431531945416571364577070090720476849102410859868762501369082631601160195650567005134918642259151453907290148901663222287264033360943316633443622712495754176403979648324580075265452202059594184120618169745937469807027428086871842366087914789113751593787832084078358937305456493169261159646460732157509800515497218037446439196933878584078826308779516975662179015686910721121931814762035054032425882583849313032986838058102957933787463827545007459071726766175085260785110614419075730346243739990274775511621298690768131033786570009689773717516218417785410337685063948740193917287983046352607861101426689536527522274494730496320168745360178704024508803115326437263483182843845902375614312039337010059453634024677953890297074338206118670190729417340373288371375603718513683775242435400320178403591024914168580198052905646357233284221551056336405731844048517263315703080994456790367816825952550160315570493966006048428703533286044248823975963772896710907229522857380026744460231848387778540960966204201261492787810809044113267634130796848908796134105633578964906484419836578284554088650403838406864016601697757712096072710531143178328909589270486323685776666430995506565152120768220616837387413145897392949461027413695964130458066494617139081504238405374035630523302957911956987128998439331750970248985974403268469644408400978519199829834023735721357011698863630325128562960981847388776996370773416858554688852822021325059537308269877171833387047832497227892979949121876912325987118715363326375290797232030520925510589484955080900776510244547003326255971740863770149607814794847433624380751431975862173088876640547691957010884269300706837111736575045727806765171796174113442577172839746349701709249277612456436096810356106630864453839310706173710918241138497245549395469268441450556500176191471379916315635453695398238713496581426708777530656295616270647905917078220150202309992671023894006716396291472829144749999488678530246817497796575548030424964121585145679045845581254766817687156824238099632719711466335764061252931987696222455955274633006169129689678395457295582608544410379806754354091884715561757491685705850990463191571919882246083806466251544714996082297603333075299259159391545280528824433438770993838196275441354634182336083367130150293684830673507769533026753248340405794050130955286192514266492479717877059633699789648288258213666049918217473758243526010072005116548428656465684354538095050238015715564896194490502306941407059315787401155893674398803610004274634992293615716833664707328389494582961877714131887460602602784800451300826932258621936322617978752655918009538450660866085650018597735655701511446186937649604783527694200970801773661797437414920575807144748101392723934694850136165537871679707542096619520581540115916157551086489327319196577533609717525789351099970871436054641573977194829799382997758118808355307462617741603469582909042448062774102464552112852441266062084628549276379171636965030600722200666815449883016949002721973195951576890193003167871018221491345083990659023702360275401930559764150117960455789479605247397699700858290565791752308178107244938748034901100743795885203454262364624337994022446465310146611968439639117826270975509004575216840369088380585302747478732924712652714148644906630405528028537565404561052016563679646343711865903258964293610042412257976470013916527817785120900168430588642867975617199746776672865154456145658651764572101056298341313107258591021529407547148318732995338327211328282332466658104349141231132409148270886329505797928221555807504766753750905113017591737139002448717454513152586784023225122583312870291187520115231818190316679128209922755883439313389818993217233175012891022213793602663085435606828394947544339436255961985177973052748623808786550839922589867261968468574279562793365154317259532228554037613542498895933495951022316240372509625503477192866368285938545494526689943049240567390679382538396320031888499901422040350467465557498365583674326260931658977079562990014983175062220025448601508561316769563643872789833195248798058590683216542061676553350164557642694858501953605037035891746794933795845429352628050178654820372678263361635319753118237552233714516018473749233185845555684295305277133604623284441177383981939286646062912774267820943488382916160577640417623351988503949741667410857345084726332072914388589442782832328377079553068781258227446050521909628201825433571087433613998697779611170293355705106518310620444610367118652492334132110605233462118913538137724782356564148954059497132564739354572466518633425979015794193150569707428546672213893070996278365432826788546450899675878067876355358814433450502336128734356062503010324740274466959215233894210414783634064971245688142649207307675846398742162446321422499416849415132430857351110882096842392482822418349438951050391031278498348650600959340295098046366468052219109151978426950176150845702931047146290517652597098360854083444774705960940170410978612813057776824258219845541672526417707372023317371066736429813522656618298006151043772340150025695127809392835153630997412560050520723958056134714542308339757586097902681243126512444521212412193402174616983925471064666684746606062157724368642906470356064179399759718072553350680103401693275797966644710750400682782492771727928240857596618928208192974010661114301992040429095566385343936144076618958889354863643437740089486251344802630179137565552779739171044059496322877307758773135670531821090358491695239180514028982772886744584565767853909245453177859552533983615463429006359878573400917656236278725174236136336380368329755422446687479326559954101050572527753696215104043548709656039714143214130073444670671941115183180971540545158640788428454224634348128852688004642695515484408129054814889718491512697835386841237014013057045625356548963981589717772598074820618272760514919595935170261962371624744869057166576770186916911219644972569901594261957582837870392519733912299477327772639471145717106459731736971291526934886954581845631277317313269431298357587493084810109521551514916754839753737729678152807164073751336740384579029556263275396317468678751448557011780347861968814303516353856204121701536381587571646878222892464825284591570079975954385028250537507995614521964570823669321604027673172895778432062455268507078059606731950048171196365503191920359600444682655840297011809875589941551930395812715282223326395922922561473697339846797912277317134987105131213778102386791609289797857274469159323562237742637618706924963478087591773052533039674675647040769591386407517171681529642373366514996638699097720325883132733103615237077838905712281346369202461090010543469163145182431973733085946579258230645399093964028024495978645080079237285465145806156461578389616293094390325611840945597070696870323693947595474617662423253920140482264788562957806528614587127767127255808108665120015688534652579595751629849355551682460525337999102932777564979967035045391029337058461297468498802750312147516924576596280605620923461215299045033368194110233603172595391319849540734997175571293289375579312405711704991646390023572203350531051868621528985534454303373491391622709162333543085602661847219785292432328186945131435466822600675551672355486461425741616709860338539407454020343955702990256344314860339825275087526767005286756860347727464715904984178699509799022074277433909189548120292456491455231569866511042956535308704390796498966223688603267107913503504796249774396372289611780324673087540049862068977916684072268467973373387029410650588475755300410754144967029580648984574757566080254273133664923577396353192689478784056206884976462721806996249448603147985666117204613932324695357861684288931099964146672295714443776181925829183517531187162340494545696448850264689794291836916754071232697298984716232842318444163932582132690995755909221767696415981543086000733567078853096199705443569849060656338670977304668600852057700175414351438524358554428111621373233677802411142311472268467761902497831328196931899846297034147846934413875603473057531709297227450641859407345359325764449211999798745631863481909475113875235777977901812059786839873200915711329215891419487163037431473199544174304872841291158626699176492673795493948278206775023177809585777862373188188054653758468915556088727931614578275121584772564849196913643300549039262193036875239150305328995194735446583204022075869030360897688417357853262180602091593362384121977515629702172358538602111723426626755085390229124022444441610934279941009408175951878939458774920946338140019859868220697898890375184412018082115567259937346745886203660461903280217200991953077148537531657917989610539301770270554848852534147312004159897525343739803236397158862494542921077320881067088040007438957505279553683583346667144653917129869905940006316127607348452207879906301957274196657477209959810201653329317395870461271035853132182150454283006738050545274687607205456607028960919734953556367148791152371127813134214178330154122137485283480602133409820837917765427159285164434874827910768978645674032305681959630856703704762766204637790137456178400565702672061982018718540732469892950424923967027593750046196246134780412106654419597518594231269949499838228227157824766052784387742433312494179199311031167918931133128011486440380641179668468896905355560341727413919455988773786343181281924150622102640761412691030044126735603498714672891653118602618774659126449238507693245118572826129773215072413340226082241696493729488536464672350488594237542628661923398589661061809362717861293019309356991956770305806022603137626913876863695897971604489417465298741636298910332723346852732453451172712610573388439919605541498803364051016409384721485225280012435022606124670387809039174062372974011705898081001684008689600415132273351919880208075940872708131746302301502346613262652736504366868007899468072816012245928349993056197050564889858776184422431859171576341736112461497858756758568406664755260600496881663127933573193212613844138325919301528866493115805200820529780920338640710532285428490469793229969467790884291827238267900031350948210820628689854725378709307699078202868385560220934212728719908326755918823357342795200175454200320276964341975271198791194514915443352156167114678793698519111217475898712859689654837821627357510539781019109248192514808641770032041576667666155745538614086446153220009571052366762808946811087318204072236100794576283918873658328131376396093000268054876229584216754952352171280056862935839894664515891253275813939865070775211933457153775357260226852399899791376010481489565939221754493927608409255853582273511505372015388549717654365989758288158139888473542426305546584511399779564662083141594053434094181231211148089693831098779050971157329094748441030311425568505008230374600330352419873299724672672097107132369896720646136020805437942292560877475893524984293303172859725219396111045387055362042840547602100191734838123401245532432186673722841700391309331740551528068752909541349215252012385105962214965619403346661740909959329188034554273552546965382212214845887743941692895996566393780280160542453949909953208498644952920460596760215314533709329127046149129072562305246960026906581795807523629244539606444342808862187245536417232596341290916019745206361233706115826119566203212309555805483361785992327752045708356878151083543569109706530652202537650136115717950185827068206071729599619745244138959052846990820703332920614099443687999083341817788732733229642465471609230386866912380279448581672649617812824329228343224722004466336349141342983506068309007712997758800316906471781797835315331838145676509698554641524003372216589996853471914902783247374991755920293750340731629902896385122323300905564495275153454306514336539757797305550767208922886827777531989299780481873616636566222488397218959867786489973100963183446345483115694284917754432595330222429138811112435036903546020313270984482659487686147313965279482658804746689391620054846264764041613266921557688001666385086129361334439184922008879170990414982152478926898826301925626599411209705891537477160838271959616397316587104160901118981470562722888990029203109431709004179015249228557027414025948032390702922010168098858583170677321249257274799565191762460790350169716033714073173117557848455948270775013248691307659627072504146284895875959314810714660939710165250834856575512127329476547501589502449496705494571698053497044478936877030495064225819243241104017183498799249243732136844986470091226641412187523369503360193138654692311564628075069194746967053955615651114808476085210615809641804875128205786035987387159119200850508246452503720106365146917269440629494499195183667588699372420239717728149490617455928781795776742733466239326006582922531202961133732234606437648023737240526266310400930528903987600867019959176868771486225458965861907015282848947006429595739454142226083862790513589202686593435216984326907026110782039540008744051822510055005543408255855056951919392975591915760442052738830181135913846189198884933364360088532199979110245238590251096742525496893392673843397215797654633247636917792313179949389320714976600284111419191273243971463834478347544766084756568070457715936377783135832034062949322104401062339885604476268678911753341332478737837099093536124556146469563038103539361748869901904362911366349746566104595053194668668283877317349533497574406443393678134322774578761129239797133375327337893826193336960887866361700232261589052474830024211929574977620136741375772583390055404662906515153323577773842213426966556691818585203965180970908556331790829795926439076792818741883644993155975393341094087492056679386657270086329897035898018074343450185831560491792056546126734592830858989621521823129364358131316765281559848583089432424906423468982434089379645048503327354939811389024601961516130196662585030472314870119062225493139956719459865820024537687005902863455276582026823508587121858611275178939860782262901432198243578890588080666221558475431653776123249010602766357243368081412131086431237205830363491243231198595097326541060566981307352372080124893959297935478339918506652488941945140874044095214243364129411100344165899128781217444004593542555861313573886179011827617990187591806691327550942241327700499290078810585520422280896351471362833656936103989661966303320791531479732474584527440341648423833860759096082225223448116529045932892250723711135420238372833875181697017944708334823089261814037421891327528727707136656525969606880877192733134700991160624946950536551058081133654671903366529542769053119431609599642983724061341408895262746849564426217777274561324273624917402173409897357493261070263986322414124926937490674695354150810688549922831853543519913598680865589908330627218634317019596430541770886921522581743019264151870064875463530272139839941189129287742689725207041938610900125829922457316993051850314439827702812996454375181593673728096118750914168489387781734945491419262417963127170534936351305456724923977206252257091740909545471367744065264280395466353383330266756482708976554152953004463875571764943707054271009299391114438957705443441835385377869700526741753098133650114354163988308589361892500647282985102346084254516340997804258534817762461270464360755053131945104559243682307391146325310770882260613471046307581716287025536445821223439439922542305363246235124468094444440782939176520424910979583210910670866189196224469301429734058637044970575606008363007425278724610987914027065257422529619734237867439380059406622459520369943301568384819192806976775591827340995116043585510549072570634877591415479615227186714201353958156005631500881222635320032860304829035401535620882594723712331206470641932887103054432096578741057338993113294277464373015602256061908114246511230412677334213098203722884913703306573812654517445621876727430231708540770915107570638138512449828311745522736009521413099853202416000915462696566442414312308565182177952221717885977451503120954511442589497040335098211929197537436469912595594035554704945365805981657073892867915441675913084692276424612623432151746838370476881309853704815239960438653311913858966244287401127646078900491424986843991456254559236341922100612193597470689960402816802962454147453540364431986399777781085788558228808537204730089206283223844446971750044636280291097614067808662820556967457350900463491769691055257274990021652075094395242032471629135224735671026258135619135482847764694621642201434361414216190318167118518361230834055017248420584771636258901529247793812923136949414511605370978393464190257927393646953848761437683709614097799734486169070236155981364614660584011221118255005096449416681463100954649705240927361941689096621104759306717515798322722652806760188265361826705128591059428610632919165446954397108412683689493795206832240732139321367847937724805316169034690184323189993913418212361892045267396652549064929711675963893549209114458737400795874017717845662991832755396376351664919190538724872738148970087484624490126968393882222512703853562859680169867487514250794702500632049466811759843461350434860868618660340532608283999150739204389376303645721270537064877818583458914230399321491845227117364225525858990776158235617818331993898100318881578966403893240356063033205202108601908015091956679999428499569899398828198644993508910659426514622703211140655832435795456388004767029632602645683032737761165453374563540591526588237607621310721176116188086245373551926341144016620501558334031957779541245643271645161717330630278577067749547373321105231358039979730151571069412513499834507164842667650328621660647272719913765040925988022430382204936188031429344822586686667909965878772843840951711247082524722277354888369130669554914554260710154765863746332673828913325927395903546605888447462281032965596414431851592038103276205886305100201127748153223135094451292751857559484172287379650119839447525637347015384856645903886092885491180570701713895650580339868959788720746834218015539029683695849389596703799667641789328108908157926557859882660652191592736555147918622992694732908746447182757873842582933062515865387094138850910182988108148923861142165858216972821346254225947986191775443847665803589834752404362860860454504941611858857268201180035286829825782852986286581696786529435095826377144948818435993445318808906014352890838337600907722762216896613596178787989511094136151072594500524163579947069854005830306829370125815898363786071711751442621357281816998560886440308833998467934395091530591001659597589169641397740093515909939364852008819188287135195588212475055306806148678096285027275637129714477118911528011505302321785430479366844608623225716679967980955028583130967996543033661554799630939101225451965132183530896609526198510190695823706755879164271859840838595648016447568842290085707581127710918934364494531967175852758740455694624125329708339676834393016306502909709272566277135041657517290210413363434236325135844472325146762038239211626657423726619535689242568579390095731697669979180920926664015514024015361175147674415513845022418221945766145111237593507150430345373485442371936880425092568832226300088916679763055509579518052298300534656197452166401251207940425088735512689528784216635337794169556500875712022496296918747451784307386981106305683395161356434527058570603596534535052252396527562367432287826052194826459304427978891531906621127633524628811753890969183076557662188311398526208914145591060564356323180345938099989010609228966197812109349597235819015111778794316658906753031667809231981274525172918467155508716185533327576832809137221963494054090169672726352582086445324986404662510429448930443894222506809187475227596418681055086215454036356747753840359333207423555795221411674862279487839010543070318770699917785037176316099825479527992287633995711779472527902165419453298464321518033681358927571561628534865446816542503913100730020173352275912802957452494436574291769112594067034508611960281988689713835952991090126687508566283411973428640621202935141248406808293117527508315684204469868391647424447541255514475550357581699415709842116005471212608105737235737712010491619202252191832117875702053716201019103096949755315656419774580089251001558445295178571430096471244226210518442413615442081399149089803634710207037719070694656642538165283835359455595654680886556877353752773842537351180880568352748234218702781013071888056637088184958571145364659889461994936736041363603294505682708331277761109415467823054101014960112851022513370619597290943611796502562078179188666429551540536444325965703468018064202803484552950237375258095090556088842944121176769938074506874920085577116056086173236179825697609992352861389287688253046860718966553267680711601938321029532944635992401101633334087259928400327649832734731074636009287670833608738190821134508432583955292237050321835998651408131589549190579234502092632403769247720806084561137925656600890179462446016371961419160912849119390250482461706034638773643721468551944329835546052104115090895951788191267011368277872205567832837006155523351700577707911413913665088344325998352322521493044930073353939562173913688337532234765794012052949617025851896870812373749924550231321727602328163039722156291691424744248800498264893444746940155958744174789776200786718559078297279971287639914833641508317690918867678739751886615624653712424542305304234106501101266338645925194997366613528733447052887262192231236732771848064068800140599746184122375523008273860272280177895021812581965497998970432258049268284034812550908560709885417749886807273737314875373812123770429956443575904394481548419138798269734237844599382654456282643629983322257609574135837377038018201861249647120517347514820096847922250796228756103498153085237895819721790247113118772636046758400701023158715328944482142770273204451656731208036276600208478009225306472922771616237793715838810182369086832440640515196891853173618085101976853076591544547931275851181338378461817214661784303087060774948700008383740936638309531247691494797689390612159647704416212720131311443659326567298606269272781979260133663821475617313201135728809714231029866869739295730944622593218693323779172943216251571533760861210326791028415171042968239403972824961497293489923791354878260932733469934152402830906290657202880519637311976244787438021214812525458663278252118591568665131919953343809342068271431904040147675059453221905544200274244011066638475858269149455133365842040452580129790643890446579285904828738101313956235488850591619714058174783135251849393448294517843147419956698728925624120139363190914010168186446082771658498883846065078381097823246360711916756883140755790033400610002700220735764329726744762235541267822204904958167228340022221915179520448106050547339641240650855868317940604803937497532891953657527043912848270028421337234690831505194650637805046245280067365374530329142295473769836267331477453552850789573042270195716707964308345055594587812496629389411396934629199082294839204153300715739370337424623144050486480514142697792037396213883938026415901741469302795008368587687735871926662212388429850846375051661353537619224864046083179449833827904578992952745490909785683422497156763951383937791667358246758552828910653894019402811715066288567016955143175380435379737187743219181334629267490002175102800736201211799212988473238959243724670823461842148894391766855397039359780045960289249121838503781354170776343063749017374288541793562294940482191669621879597529339511353369500688365499185181728902997851045010120012141163100106390852214798651621760980576785433225276197745570731219532496252888851536044461793723807621882842552839104870774236464851111552408969149684937406231252458488020988678917805553823991043665506264439358913331559643543752941033108268894913738354662340151424760910724399127513467496285452581116145175429132330738613378737898282661429598447980300677032165147517994920800191123114856828574456362126834155132357897369358274637710912876226672002164954844998733807542365966771425835119099132638448763802207232454968811650998987793951185634414321795210669774869812546308173128260976300861807409409259767759358390216564128239656079720479402360914639670035074077734458955148305550246108319077448559925493945304684642912076773004739087254005152171567636057815024974936533204600398590146254532394478623834421174284350788740528287904223223801130582503951381518356921359318443219892307327852192354232049741192207103558097173430706393594770385540297905891732780259618367845490522531762399840825145811955690617421224987023170721621661801684430692379608722191946335397190248570038514723250592327022937162821727400555756399645607644225845068910937544572195927398957278737527647944512830479846934415150346734453704195548979788254966290691196382469907995795487045646555706273030351578764328376199508016263626609614921319511446710130535507270374448906015507606607443077456818225689373979724385493910177047496975400322784935341638149899218295198614899912976225256438984460729085841586278142348288637899369035791201423574790171681849276443828072603489098541154891642029378715828604723831351009314692943306885521204856963836240277886245356052020141149851643925178947500117836611699992038705068524090405435289878916906845964714547047915855523484949750083183638608944591753915176396210804767782251432135913552219852837626220208496131040480089230390854841969856837814737834608735387455652505732083215520989357554649562327003028020944105357554624452743810607479964428236386524781283563286941038790180712485616470817782098300065644393218871556182270139671442545168412911870793268616712785028760488605412806451739327309720812240122529644316632450016563986882229361175112100698953576617085546992078123576242311850035105147225345641498333785772104505439247069170631104634133948257359644534486251108281663926037167027889047600784177550758044370171364233961996807579625181564826903196343620359741303859941344616489461979507643176775031084994589996371891705571614411061517896191953912390990420673767101113632785253357062901757145564065481626241953457986488568695530835972980277905598555604865786298283906859221158962961908335706695526513498409638051873441661824809201300733137525752709872356058159785680147789814533191950722961826894610914291474999348319503516828487803889119859555571981682925249319521259473241758414038943759765417854921910854214925448666348506042113840755565360983508510559937236457706740491530996216601091605030496656792162271179392912342414239456523410942222973564807046245994143820024873622461278557427793963737694642079205931160016825364644532667178619702818141991179466487179470903224509179121662251007025164239858856955471952711298427490867477702519075286006902215741255620699532630755084547326850273246104967285237740903706116775348848371408142534044134516256074183791867451182036772571453440761103224110451012005711198018040382629181881742935477740588693165766972323323610904848387047203678562838319927585288905170136228865938447513801022364427127595160077898984622368974298767542716271307751280520108071817215564872752916328005161754501242952404583800615748354976023175619929548246818072798799066285356676495329221077446818681849212962956673837083162517843476165004274975968877973834793765893656370195111544525026902537013882090897324586388636385011742636906935821530517741521435283773939212961372541516080401596232666739941935526805408196897302350560956814211440953866960443079230396615361713538422362534479427718321587083861554565202080908750297768908030403467293809794113533509509253576391407296407453532109404159050549051857150852674930065740599679753792696611601647848020273511626045014406029081331379669196528774607798566910456829459716300555890161695527310299704796477600985638063537027482508136243560925045115112833099113147296391353080091104510093940845456288014055389684150480393614288127315489443568095934664253218228105566877530110387057682393855590130848460704252428885767962120190040926807453141109286905978503169543217558530890388198209908801542605230571255213526367256723323503633289366542655327579234166083236284882978024680932497478247996247344263799433136826338143569787080301320769193361563911778468766268616733206140065744245863580118936694583730745151201192454819838696082729641185537563788765378534669196631983702238476579844912451611144696076517351119361015809824668119425549293081488646740243725294448232603407959190360896012130314999006916922853469812473912011301701668588820390878661912678012541427594260174760163559897550851269599096698325892330746615392162198336596054882128869382037089536802795238802500778019370572995240438903514343594450425901198318340262293091209573638659557660633569046716771010717885135420286134236601988595672753147609536165815624864586879203044761879693431827152020851365595420028362837673617573473199783683200926457360154025649857226476149110727257966367252428651904877282228923819861861327039346157068579220236546448365984991523632294108541110758108483203114969089766105151349668891787420530394781129505652491388725552458739727554092595306607850338641000740766711372010073273654722433468334652305418820426252348948094364117639918221207626959831710617179351916418675177376282545631075722414393784050903988423598427676685499832683903978273477578219046202605972146274503000513491081313371850261599380550422970896960368250249104380419180870121927824645916086416508946597746501067623021788657648030726202181370763065537159923367745196736973649918185949109616313022448605805785923965443782188121167716054528639746030017874596705749369362776090538497890423501007337042323111161340541860636653386027711957207256076504431928670107957644430667610704634097331571484909095810361032178700811975364093095157424507689575544144610317181035867915094974335315249355218577338519909679904946350037612037787302152734335644623011206261341061531869464423965369660702622048559751471184585352981075657765842953059687421860483453896546110709947355326612406987032081427654895171611967277482252284860454757820340671779538474602461500497984323853934609461344112396742929665695587334577464259242753115159884648822871041458172017725236238843671474888568360567211256406529156156607220390169500713369572319055017760923929664045390442624457047693451315028617669248557969020844856809866586876263094053807524397728727540278571788318953341635513377669680792478598838366049942292609828974366143924273668978960464284450004981671722353148330050715025517320408539848194785533711614551252053666100045273802488415526271760147118403619785717920406242435635439160712731776570044112736701522586037681397493296273889744465751864205415127813958693663273944718937740571782859547807952395419844138237249042369647749665818876265016630555344839352761968127514051363645384450806116208729346628118543611664802174095919862873351216411810913212715411990101109204139115833655285917001807909197927807272724816026157624740083343532985675148558765094542134791870870224250597667906597058276655064034565127878974864159951552063379344103030357130586308192482290867949993678543708514747558857428202253787135472037020937623879105635962371883529694210164806710507317306955422019983664200244406306874657338179149940699489049188439148453857637696253260247058512501355850921120607842901188361797641126008643451867619942903098224640313916595949492792034262275481310295576847339291030977695869306164248498489439713714439255497779631090337143503574040872324068356287670638159670190802554016945935764198930367009425757338187132525600955507790949846525419529237491447879535556411256743490847871068394894661790309370728185465737208473082782702790073508496604899621809555805841808340402766221682167668631560179307871454026316732463611682567271190125600707720240435253103855661162113377719181531957486652303714251811853480003964387714912282269651709064698373564409659326642160679045769304934211492171186480536004797135279161035012732994478617693112366082699113190917945525048570803415277151778026050163867006769624839371355575174171253547692813177415084838800924680207068458718203197448551059457376880045301822004369489032871898581748960230192983396264356481695452209806772780339012834218225126616129168488355194194621996510237884963032179371454792011559508819191597651777103368142627397915209622458840055991520816470998526599476655391639000216981154382918433201437505357083761819327000032227744364422704891659423600835944101825115017821574750382762046726854610999746981377752403419570913502140189462721089856656916476907823934479353060224058729062869700469428737118387262566643962322362721142208089703726478311410023758249774918134668854798575445820282331741226141944434400826611812883973098242086832443462187674387265666660526601033527981933595278760498655606100079140890401486894909725502039935444886475377098398776764314848611731901829786658713981634533015667601029830282394896182207990544842618199037268576263487706313752044862552145871907738901427478424759154007377652257606554180514125213280438850853830771162926730697270405270498771381249190502124708952130073023845369316119177556782064441401466701253471478704380475606789955587930751684516037532887649407801177972436523105277941850320851052419914465936697780834707038122658901094932356128194441662433027230531092689390468341365600407005408232814640849726944946384631354667053836537828279897813411576830974757434166797523789958453328485298971931952254228407087209345094917885384979422733636641669343853530245115201299606000747465407230881539813090785711293844967303149942247465540640028825990930976296832065070120900818014950922480969700597923074897601013602147783362312430992030855090029707931449909121702291221491716080117380226144491609035621695391848900593211330971455470188432022287963786887612164236379766063497371197748479304036830148878135959054998869599435025556538528790761337200533568828065542796110016993928020840660950287625646016450092463875169361141573567998991549969173800159159797494525011716005040080673595416627795984534125268699820563653470267318018358549128696869486488420438119488274085021928940036126656610862960460318444521792295354082052365699788498073828190940755344657853865070165527841460925078221957090844501847524316740763273017222532444348741745251592774064467080001339886342900744175878279688771229147251919068674752130892963623826886128624116384962695691198811697384656708726465049642423398794531509122193960491522620307071060057296515251112898824800312461891802629925586843349427684645937962153514886413734538015479262603687518398534632593031511808177958851978062963130695018936934925952013799967943577801451929303464374684697564304921655188694195907518372618240217555080894513581881025171414877896671074591733597810823891222343537586842521667023488615733990110718681255471347302886034084170158807945395071649766959206774163109885228422165839470033849985962786802026539576729351112791724816064211440114357175607149419693580277449855641788254592059313879358183553165696945684738004636221975138959244989331282383024595518969648354380095086075635343210104241511340018753163863639695384227932201743088776274607853841451376111248242262694439220059730540124788466749515744945854188329289246172424827737654342633350497039248376971450084883300307271924345750894316047706444051852272396580017340556069103416742375061366341878051692756302466371531819677504555933115760799965317167328865424538909619771283674013745130561896857469129834968936816810574805493648030327027996416354495267466086396995706826717789486281117782347239913048455290629377345981456574396384563443450664754793201412258291325096490058914282668461490203590045699141114142666048850475638716426839856623328185089018386103660248712541284390832947032713885777679241099040757335269285999344185876694394543458753852444011592172346750947164487808141273433468356079904477835700972491287101294093602642566993259946016971441858670309033027954788226774007200104769395014221110291797034340770086341693277009341196911216891947468531022901671203009374463676820888289730217793578845954513872669017032121153612502997014891564565424805043834722190297559290430811509587115041782596469398086085589514449213475868436002683662062497276465640762629147072117110711098019842369190904968158416459676344752613003056535558169672019230580712268524439298243358039406067126176565503357386836347171490927370691130190056316833431213072423713189456731518103816132498178927447569295025540783952491884895886807219328747724843490759782877448899025883948952423571880782230237555399448241463130756985022664632798481619276349149642575558550751685056666775245361494388993782516718218413201206821731023146602915550967774002549727537454803769818986294978857408208816244135553442063738156275892199374001737019442833338428551864872220159325787210409810673335094833392519689115362020904299998850155720486240426722519605241898133066888464087436871047403904419638518467087278173187496483609665441698180065028277060445162228255406822511958849504298049643198499494300921536848871451486993797665788082369513496785310145572642431890422316322761377351091976736391377736470638346277724598108858690108679914028177060239314566216312084843780655232116289701700273886825719778867737844467224821379866063263112007247325149083360967436731026897883892850509909846337877261987747371479561432081267985268109747432594958940236236730419054949687991355923398838354731027499700486516959855699541303603980157881381089749521508921464402969556289845509363742594245039976506519161376246057365998857588436798560533815077182286837895031903373399076714709795291979363228111138795627700790913920524522153434535560488332146704244872711123570308039109768846938871934573339174014188256778517098739478321627605022901527418098039789803128632890604235125311501554948616776879624061228889671591804375054446716889316450621499963263703617605402784218959896794037437708441019184317053685409567562664016475166036467139930620050608893913899430334473233390974194692941466334147074139416153122965625566897359736473825487559384358039492557136977175998472783590065124524312089176034960004242885756148145183997720321914866275860298819354986361082705761282698799417422402563107677560496771811414697690469595021280233151145421080969118499670626933912893122889012444686285386321828115339387233771212513638287399651787050311706182569602066717482940275137019260919122969508048776740072011980973386292153900161383064112470517115473547728562120828624112665261283615765769332778962035185819372530219774729699192517203670737876753477854936843159514335478334158470813558249149384326157150498782509459540332447547768374934804584478488366812568133575650499917868802471447667511143049621734006505153533507453186796371324069647342132354323640590937173213795869639880205072113232463800366998685817282239939547165023852897722016799832897012470957705853267343696485820032250498028725710177988451682595109804864402333330436164658359248824323267050658299863218127186362659156025527036043362337589772858766973932162693827863242280937629313879076276095072887140185656361671737776875153381534951883437149326186047929847781877609397418100652874214997067714156728714268412686616243774260481254372536843113197194334768901015616771858398736398904981074988203465422403222748899989882404845733395500149718745528532221298318898091285005624143552805161214861083113796888418430147428440273636690258610734903277600066366443876305741210599914161627571669060291685998760933829440687837386187361375679238016558729794861646404171139631562090139749544293052975426865101600510806929359862451403068319573793765008264590008919188037208354285882973630463332144118120524446046242426491052555934076200407200553618749213155493508590012055954565544714895747598850900441108744678171653384700151711151395809428985489183080151593525819985602046768957234917443041675431713261696163905489818104922969114754182003509175719637470698161532304577514453703546709049413325120912223934306314893769124651044390263873408255763230175489374674612132145985948327207060675258449618697107539251618482422006373517725923668749219078520789620416622875054210728330548052227475208814853996757416385438376891376115331867488638467703361020939623530873078554582717210380287527532932206649627309428913232538794175058469296414045474281535793351001329064444632910064491558461015500760965203326116924410422793264572631913782040423939202933784929074229894782112695168985466361171492118464916082754684481284430775107021113075716475869904727770179097986271729621457926814587697812471698354607289350377465884329249749450308929727513651484732572674422404058976259865136490756511099948435330320219634221433652122578154148852559823039052355994169873904177561646701789110625383840205523667789395576006046970505017868902408560533641961436601194748417808531003119702430675640286712617962645895163781842939713126370434790003544348834125325464361165347329224386577167197884911628663831318789383375555845054475766365214365377042597665188982257347901273771171422347174274949241853600544965100011093109576192223413032439123571980102026062747003993901810010527974492437068039072097231673472497199485496626601947342421560933637201288352906253430449601895110801375267226390596964106054313912091414705964734846134955414734449931839458514050524592454619282967317625305209017108225064797421304907722158453630327340455897022132501644557007879301931140025691759413600039990101089430736615025274244038652664026651044046196258379132448294278634501435411473491467565110315617562915237629772325139151493335278485967475515636639252534257130515763868134636308529622963992487185076542572817023307108922553011971059573401676426871188943077182203043913246816302693785819206352401641229247144405056662618440505057188222043693476903753927688980465731573516420229487759609284485554102462976911108264112198378830493603809902412134130091255438401816388524403042536151477679069704743715609672087375251556196340321563363600887066005788317145075836228829408305600690687715171550796609359715184658417958143378586303205796101783883574511453757744679430607142818495453698078649164628800759294319326588436732021374623296785271468403428090669805957033476864254273038765798934419147650476381737705692679048903654050455996286619115141127204788586792856273476598145426151887293368877209136934347700818154235171037515297395573638484274234555242833324894518527960247940286571819375327607053250432354828738990012185896324200408950191387682792392357278722364006774100333744931926458979984476964315715883696579288608604887932849014168455591202938957601754505866841029282422398578359382328175247995385688536301159760720120524383190340341694016735764445815269986977129839533818651648874864749621657337700999798151071943580510027922563479146670476934322418463591597908998993418770277703701466548086745740792261334428109113237637523115283494037523601683292041319540723851333143397497077356447248982693738796262698690545581043115240942904976765389665642987435902865667197491587510117138517514091062338742955928801477880294499311721271271795893644089498453457084502707018840530699141275203966474622926506387384845863471510721183708977870486990063429456164765555024423007181416011209484398737615306834423795145017456100113339602735269146823039889975148284798531763768690165616846006689984686062949836494978575196558379831902716146425869311299243085800734670695054175121334150061976128566486805357891221978217853401259597747524564122946600683029713034639882322805544640544519131056129260807715119725464618662478306975458547920385108737058536997558129940443490358972435465281278227265114202747365283665768456101361249560433047574058749704069011590975657764559898599391765595065705331239376977228603888917993871728630484264756761748087076536321763640947762655472315521126343599867071677699253172908309559578084219980486542487326796333676326307483437881347281941780616357496844512071923393765827883922712526575899643372114619612728411399910636750646244823248878377232018260599996996016903127345495312564241070171282919439483986465008194143057528029742778687937241853914576206974895130451822098019932344618464404577043240672769753426274544989379301616577688455418198100898817339774767698968927907654177788685341714308956607850371777876579372994656340072579694807604033880867868523913730751433807391277334955403282427529289391983665038012840722493202357542749742530368822958264634471294428668036003534224187204485967495180866083800073674139683769319614003231672004733056664514708606947773900415003704851764365667509909488269498021246302983794974052155782613270905744615204845675743125727161158875430332755971646602955649283348594337924949039289537421651308036869825842925162435259612946146251041183794231553353752518008407316068309293220623822472109783637062711717023608145947917715586609946932350865913247311099342925712767134988984402658301939410742498820297446780934027398206027249597983111809660761018384399915641183154312999887290832011431242797348508292802743554994719939358364199400937427395298274913599061257616840721806756525953149073407309461640022026297518228736655578072064084900968206414622581231089899305952417303875782252692103282368513761937808936214637640770838853504885397626437812722621909312025626408813652033733350254521819071472884071109534149677878417093630852040256435330553836850465084473830639326921874453546426066898374116048369708830786283308552048364233279504247835937531066742227411719711646238067782369802630588144860424642574151620187843420958138255567465828061846036799951300300764594165291223576828584855448985622060719622807127508640141825968693407471324389130734739861699123341696369180346475108671413086796384562274806912822027801404694313851757075975957482319517396745940958522432395479185698728044479725191562656646794009705976478614553072957445206265962896386056444672542831371707086099502822843457493831355834528245923148764043413081035333042836832210512879296838475509404831674874612319193167261036278438481331196551827164727101142922460650805562208439281326143376196108918739137820680299479098815921670286100220921234790288627846164454062020679731989048739775649498779212024199310333193256014133727621261104085240082132790944832254754260716057635827310796173753199050998805454001759817001133438384260723309577318499256866165672031988235586622269539130321528290842534394261553026381544875712957687841548474434158268502906236739360951272700534169597156368335036776981986923115581900772171237177318446560984469384920362145863400499583573570133901425607554582097277476851336625834597336202311712909602330595652889775740558320774272000285715492968445902433934150957697145797449091291792590978703452203071324078495910074445842361647697159337203466429292092310251500676937901403000200871740731139687664104586459168014416231315465423146173490138086346988076366764992042660226865858018401931584907178754583845247798092874205764990275770950556506824237834039599299773674128584452161527239630059010359328653944091209173873337502964022634718333728968888545547586920369741606145058435768322145147282434857154834542744439769342684142310295856555885076552809639931465305399002156096139710295638982504828361776521844534088938059867550874215745949833891527674436736559841948778083160246877896863702172330612658633031769464034264128173948114807290813080574710553514388038905061857210556970906867456748852672815943522237835289115635198637628946055405047158346730000297159984551585322634741239520763808524412851598809647382184077318281540673662519322707599052200222738656148098548252369558512162457911166241994254586011981325050067063510920602949424302787956112565714607452604205104150842946863012391832345041178793411302080025888380253788261643596830684163980468907143855461513846980971169975586081855494170972816724497725844890197707750703761977389933905611293454196697558339368566286931610292833849913739575155015059902459474897018160860986109789691721839933922889747040853214141901227207557305148661835297424139565082740025166973921283131915464160109865117400632092761548020775570553088642937393399519337582484927534686145375196807646268442930398877938808706748328950801142272738816542389823867231289831151937772799105704210097939733800802080923304252495008540953984197268380406964103352858840382556354108983135165725047569123476410046025937765794737786259956528182016400034814105895402862043719926963449412265288336420035457680395183689394238991048450753162867173067785704917612503639799844981322342042925922691516952163221360306471928607512160400417561340018659231480131584129978976066873775354452633247045208111087622641325783334269231419918345232979900665320619086205473511098706665548505770010108566388915192029894791054863220130181938335547447434183907756041753403432387083975474499114427508254778245838669820416866682510104662639594821475517906655443138341271737341088242232649943473350483441914719511918094295570220094094479023323089333031407850818549374986099999231249663228344680944787643657789000744345439913072199083101937478798405652982547498943903793577565614781238176021418066543696930749951884160590906908879310529219137735615743574824098010800186401685257187748823358169897381665572756574960547388914350304596047359497812021687120715988935462401481266531149585266874903293244678461708207784959624603426401684963060163491267871513003513460509859191078905908395579927764693736829287972435717291456130025424586679967904013691834680722251985668875989518688942174081395542431122499293606512765014183260320925095199787801376283815898201068952396978974128041361551142070416895849907452986084491457788765688012790689178917802377858350480115076196929824002699120310478930751064551430702743919701841496662200694532224116480075635465822495129520634969537234584609365582023714299753807818358305152248445640797827792213836979428983761350753053199898464721531492996241778669147911063274828742805591702691407515914396491396926362335414080556701364447650645150178698444768400243123002187799038864391328988131571827608267660762197473501564194738614667152353550025100886929592311151498729687726472750177211863461697903867006034106846366927543916400808949459681065367688819140049647011632585632793765857111287302211704801554999114839868954905949343623556000962594693770931518673479225915483742910817100461784763653512224477562652868576369501740955639133051211813964196728431989270039066004326309206283367153093558350912905540800709308416316808101555693755587365923447319176746768312507551901916528937297186088776920343084766945426764355205124957890704462787340719352152227135614005640471315349766014912242186528932433718754379364546041939453139212668652690363884886130851848200686273243980432112455703071627085718065127437383282445395058451789611548257066796909255307312902269718139907551058835809815565508800974441509765587043930225585662805633435523526661243580467867256234496114826336743135452007760894868263237147117521435620705753297729206401455733249758737705524581292434962881696107075730609908218084930671799952115254477147025794696900859452560065828049778317434289835939982949761201780100027564260945179845997741806295983364639810644230784036429199400560680345337914788934635690290974904053288451755479294450233915799505796874224234341701158264547175865354762530433631186632638108914215842100636670033007817764041512974823388988132528714200301847075442949405013415129646184843367417883075690716336445491787889935366563223419651454292695865415451156233225959251181147726049976805093338869216478458663476143874848677507122885099437168525056347814598295063472257350824618089174801626495084454588910108617689135872671379700518370222146307732045022548236652327937348381179220403960837216015457531129870393206744988462704460957993590148126426836272419495338246309120750369874320901487493871177542038440771133495493689369127970513007862133620421670571336312364407355309836182711495351949457089262543678645619610177215970612273169822066261337700382017126322746902339732761265003180222313110041860374554073492755940840441743326173276989430064242562150917735050590455338354143490753352669200713726909331850203197109551874170985783939899316549020188661437842637746171362753207738862742734103909750873790244155041991520611884299423373073214274810145758813502898485145379378250123052179319398096502087044553182179898566928224603333436240084038960040640564500302398574572281259460447591576614588189684821261366595104313981121760144224412795815432582345518435471382439741089960729182504615464552745462402955316688134131899702962999564284784435285094453868179041652364073800303195412854877212265068429916709362263907197011785414071554628693548024926949365496760072909942306720257277304275106732239723782584876043744849928643069779914707095043315726445203105610292728601010070477953441514397369680024548779650647129905041500583229000513423334240266362766756850766778806759294963543716532983961509977969978549637643436239779448399437296784075575379969000564351354516616938677489400283942365865044101080866661047378147693844994790820857762666458613119999108429485984879407099396506407314632319638652531573719323187414502444015059652304767882380372450362926143851286444149880819743792347995880421264879921754630049290934124505203628173555362312590490109626840894472405283230723980172199174289267054397401404519859692789385214394135413028565374986247147305508901604891355488692170474683194053188117869442711591044287905536786355363476454708656345031827502571138725217770701750243929753049601946558129482473926542503089348573196744642327572205218830765862565053033597881610192169502121125120001121617169005344011516324079823608061601426090721200848852811825563401225192138454097328008344502253513956824736633186524629946456003405574225374741703487984314528198504910773268124980162974901811327055772614657736308944825272741915196782722057788667614875181495666099980429153698709771425182673164190027491868129857678197059825522941110234710951097590750426966025597750681368024124617061898280685756472559896378826139683447576675280055425680311579291687604967866852335933524670576567374277625716405015450489420733686525639883858520928030420174864449364090765665706046059382630696046697059901582803423417223667714740257989154200172826605995957350628475394163178892653103209700296629531478522015046419485236076237289296615931477507915868527930401924202529530114465918599655762894078037804901920180641376142126067863633835833252471062109333806019253040937379415602226620074082557141252458881054303756222854807809268463056350971024430374818622138508644952366714008061744979454538260775652200704193459174520328260402318425123884067365233503974865141030762870227236915104926840648950329738532613675671500667768027003532817575082865358085652834372491183245364086719098748309357160822900141778932173206626632557500575355555200636184559187114404572401611030997621497942050751451848583652270505873608804682068398487897225800889024332255918875274880834627553226533557724332634876156800296736693736239983073446136767995015024972996770953233093043456936660027219932978879417271913397181320355202365369903412154928664876815619163460359845739796568297212092515013040714199101752471223228258203719224348516589577157191158497293992937170247329870904508522667379778351856427455078397665413393679571640844466248968127153127899864186606393441813682357592815080641515722548687318196610042964150455396375645603208126710742104156437365761377153003974118258787089267986398933725006275139635972125664990996724317615708086144770497305827543649801457675107070578534054359031639964721945824249091718154138901224690190810970752207934799360631827832855234440792554973983968699517295702886338407217608575115209085594704967248699495003087024484537283787864300301291325657399240494766174421567841850800194641996203055951634125318386140422232369900170008784239752091330429698866783744657114582033047319488117242193391137652155604927322462330328917195554676661651672595154325091114924624757763752743545291195497408108590801305982653485868064432178198074978781861304646800000036902505696295807856282295452136442978790724938746024100830684246593795030039057946366913392418337600601082013201611085086884694382653452616137926345017754309305500782743184520815202285590843770247633643297927423304379630820434753370253133123310338761660601168138226793973217948018938936044660808426202339769185433784588565060599033407297098176591098746033281142285966899057526497466190829068892451945068977955792141652339410325431583724959348232675465571950124799473537353924213352687753172969279378813152885579976577179283216824263273320669922913478712765046293272462874856096056101736440655970331031714391122827424699810325132164010820767785014524028492413041885461914208633777211702704434121975841253169759956660601469968400256759053013049425901725609674225751370951007556900241984636587545972057926796067667650763542857284687665021264641676444609943561879438983404503436241206533370557485029362461908087553587076237818869170962614848647218347020812183930636513194175807929824451849663760735608664094246628843103786597451556138122825056079829842397877673583269206930515337257346279135801496726895126450124051961089722269148077150239040313082594848660755789806846651976499502644921027931243593214594120489085436092806807173028401327671753134835714451870181034826913816306776074210797231127652019762891732926385350352945085359204073129318186254960115247480300632443534104017261168634167593982856072878259455948995299616004707903150209756404129486289393549115483654574933973048211689505795628578765981287884584430774914779844796026457039859030265600745179420097644585804194353789105790320915611829651793290142485031907870373179528610888247214241645418540120103884823750932286517194442761308286721903258245797299770312619260507345582843334156616015131906075345869622927874967841553083763585875923064978723300268320274883801997761550646899196774815168912947157750871016306300230740861035044886934394818310177146885501269681059168815289432888539161637253287177122708187166077893893283057215940668535540917932836091800823581777272757167542642048485382621190511868284569396841933877260162421133174452775661538650815648114271777921044673333515192432514552732950260876834673025361965412087827693848845397078909580728904431029557443376403926969453562929357145741950957918306670437037494060101257566353994355584092501471411969529468263447213909171721891492136500835616185222311760507213876839789749653212991578620250894936889357803808565283152355093840154902836990540944725808938380619041684474794282265458055937098120357565837616740001233203625923930925191128050616572388970826715330568249014690462269976654650853044177699557424863834142313682055616473339365704197593307980115299972992492409984289582077824574769121740568519887270841699333406167042116120453338522631085913718205080449026359190619382566284573767832390109851136692543068913431672728537195567647079577819887269922155935539608109244730402727399173930536373191700223065438501482516312187049867683369738081264866905567749223416040558769901992468159335630377100175244515880469682944390453067948165628608091714070153814981546942293763632036572065356844390805064629910189117411238101018427475768437558642911384829266923880861179927166399258453919943308687621850198525057933294277825305279562117768471345187171175913222515920195779192416678175268304754568395207768172827728392662203177765566937829506899845952302728723878880652836358843816169491086296382272767959402980242328567506061431732427180862478752181181093642854107276307033628243449395435329207332631701100305550061676870527475850017034481932003482471444131756486956592761394967935828374273224672210877927927925477718999634249688192929405013362079897047371455920457081752557178172707449589497126908096733119643566701942998222170793570351472100884360396287150138717983719717847938989090167409967799857348906874127089705754167420785284808750076635361029414196960315328020257546428824125244041771215711948134727531079824001645620778909348169791727024811003953736676877492111188982376718196539486796515253187831206169511288468374389028291154612554179483826841610951945582381283697273390185222795737858031688994788062828681492857020693403508032893017187735342265782514558006538210235626647884633398012346061178055918822987219408663627075625984327805002566271837670106090316623147381978516435265555628074582525405796503317842851109191789824351376558154217935521146881552405473572068222019386479661394228132762784160300183608007779137014185211672802896022584511758505108241166982562244139449337998488885239237090297363485114120893646842367203334608583153191773801389920881724846791012746607814408467943629934909611093079347402472694856191961138307957989870062855954695600972361215888984520817256828739485710325445566189613592636640925599961940397477790755275355518000933041155151311399852737056932179609932467276025048051757724251256336540882420264997256737467439442208105942440745157515993597568497822018103212403064540350289262444600403974216319784312491864653566602925246769400145875380076274262070261459277824651314343006292230532606268172613961973478666473222537136806356410298235644955374364737224659623366138730304815889711135504430216858980420039252939153603946509352651750802601591514360765578861200138917728066094174613694688075012069933448978380134479895398370140478050048047953774665277651362854366269791045311678810711210570188978389378298974601980763259017094663984467966866474511236183593962543067521919328031505967733722199999589594331549412430474806135905166848047428451552774568258600041687809379717641308552641368475179937095010519921373990719856327045424345154912653010454607573295003480098376432862286636067360895134864807093831606302455108612823652613526303560963054289760327255081176544952597194136856851218634248176888032859187375163401575569619489840279629775560279328964478758980702635662095117401834722968614214418281455651225652690501745829408647987150201889547629706965317396490339169835249749634799817687744150544506737804730156516840221273987972644131404165533668284465672333671703924529132977105931921177414252251940415475184802322749997337854514375445368533407018647052588811726160097123354624780828358061780908612754705513984270991735411716972738274146417176103070652383833500144793379446948548305794062724335613909811380894484179189882463175905796161184391521825568179691365616870774191416465790487101444386527913464171188882493742570385350129738366155185105206467154636874290126084918688816313900540531163529822458586354526787386651401663257148003955045183354428357371659942088376664367796752014882784056910251133326658168771055181133479827330693950693293076288027658106809768006114271883710257204696236506511669771470134531091281823734257114779384641218647442420153159764077060181361596694214959473172263822335151191358972228331478318079645131085682707236040039145256382323590501544858940555533558840628416878388103499587581389822525925646943939471953409697598789664006486308368390087630207807839708153202881141789811396395109604078813451873022953186161070689225740473206221788635255901991894742967415589899019076769347735111826215042365194925802057401567728080315751878947952067750125677653631434181029646444229791090547373643936500640676350711905700349070962982456169918454019497019750489494361605140438830633834930630264738434369767047497757301207868205133919419409150127455953419219401032113286718759503499349972824259317354182942578590242066419172517067921823720769267477808038420083445811046878735977389859773414571355058562457122892690969369499245592671290679767456407197444940011814586342423830089630713967698138163735665549740168989766824852623355670755123380645871771407524578886429126777900763725487791099780064224297430098233695905980521675841247029144668138446201208617970518645801293764525923857069289842792753539307466757927744325775716907479054846647135913378397406485320461008281234263280981001512279495215796395386423638065333627513979448383227460285447321091949283116876068448461406993727657006527901289090353526527329907167650961236758820614187785965258346187183174671044893223697556468518091203525861232303067076126230116334602086100638068412157391588115346539540702934606410196352018392105029213794102994824409822501554957258406052767409998453856081635842118119600601657035952755246307738662589280769379902038773533584649531275626882019079941989324694607544243936977353783742868312077055297746066313720838173388683640776614543500408721042271210546730048650433882121426970504803006168180241503182431654682271518917520792223444395758657712505913525578306492618052139593471632503269298414250845898346506817502688096909641215633623816645021485225911075347791935170277925307362861864308382083703853825910375726176889628105986923782547669812144176276880700757324667008442568588282239488654870252304988922801976639692783618422954306136851682579890050521990109969878299003046763962737160279502224702194127315398477300713139731552392484903648396295767070044177996191786504928421227543391807141495382114574106416129017772230248523687395629243660927875815079975467313613797660166975955641566583539390126873527606824908049130062283544889275851645734792343199700305319456425188841366955889481976715700343933574469120230182981795672950101203893060404603601545277495440863970517238205596119050030237624998894797485411754829104610869899020421928286320266307521658260210716664471391238298444853702015504096204701579252719752754989236580570298924641779522158350040612990133593943023165763446335096020066536664471349755793623360562083287459124222099952291238994388335210425438256429619464009418434017468785918149517026479979940102638178725437424849987199548094976903338283967951005488915542217032180979685793662084125448120561059437784484926698536409447124127193505887494052439804293643653285127470119837205032854680460159237351685879373021218227084652122015147854354194586420869561789907029849409504985945393746540052878934995236912153843145302175141473005922951393789049460330173236565895235514061752264996500603471720580745435495085251913314342112306414229849959294760749929544181960763465257959500423479269771257444925864085958044610409261788090001555226290629731518153490032285262349743138971060950317900925155200913873760811404166526285380300908298719443869431609163585042992164778561203178018953481754185752540917794955894901116546611904522040047357638954044727178328102000855367165689921775212447716860741996972981524361034082022312698826879369603909715486495147782549385341845896539696977313662015908173919716470625543026094432890688111661537401824213231183716368915389527069522251329293499232980856305480176386381942041576371782762364857097202712868906708464830183942725794392543805849533341101496908776304856658492853404783675142597370489506826209661458755370523994868979803869177851999664105350514550968417937002783378888585414784297643097384038986247924184954307523761051106868872569406473652071896316029373290845364694213156619262073262317466221713887185157675912588918878847996501106591474485777901093882173820837645622796365866808896301381553849239150847637853129085907291645154292617811782802241414138841568010094505617845152153552387656534603101400610021039572397295162775632180142754796126933206613762444301580549330405475040766795040751859588130387736826732124864724709548580776372317314140615366916601423436784557861865998655905084409198649459021753861510355309084892830907275974741820466068462101596162690153396257213069374425153046023136993818391403442246524181479611522081063437600178206744961985543290083809383268763298674538429807060466175790279898702201780068682184654690630602376844670782886097611145612616948875717071386291083312225557880233900629725416345649005533141162488285480777977494383472384477066191941056739093531433661187677693018907827128098304275537288671474110189868127560524024525374113440124205118687543099424429949277395769131318019184429590351078669226352621660223049669996587807940818358957991922666672985754481115381989685409926862248622684970276744368739905003792011934032813503314268196806638230011721527394926300154774993905072139394600468191340697881464660158171672558401463403621138795424686854573397468000174287087361801402167207626201778998455592330220245015373801336466021861476506693676163777088922489642461514331597941018246968975927417901077010614510740214948251418377155547396592414167692147452566615097826715510921302391820919630275896331935585817414143055595138300609591103698942713589755297931717362793426050730460001053734444944391366390874027841787321066247506415437216314866777700485018502591281738059408631397635594565599714140057627760137765348187599789536269167312887066955007491667288226330497059864151843070062256896078238974050556833496216550629071885864709009895007687749465901400129694936289360356956991554939678528750219157980877498304013431545260551049621157895677851685423275985903433739431147965643862964413820779681934986751340418026223170746567004728771903472969640044586520199219635766290057243510906131178354232507454827886128309418195854687834695571902321042885190209693766145459498435545289010227913264561869568103325994378847583844227192112075577230037927278181357534994887267075574027935185632342430453105150053579611852398682125129800650177262168148064743623941740010429784245771343275489638905408491232202055018870812942809088690818119071030774376275274812946168642109915590664117853052464818954107043850312343114642277400850644460194982020297242362070834066672228990867228835281125260329190963698843897356244253111253157561910696994745429193578329267797124781225832931984588998711490208249974194521062339082424248122969328177078200641997037098059731337805306592223288373307407245613454581839537093614402467956110508719373217717686540028773572079353872927272367178495026835775812729276112638332526532707352061470325151929119343463774491780451889887660385317563097421838862138803056280109528712862988206610190465631668747804471185908608569788363690178790554480251247707490057348685043472392573301863658414902391484163776475972335233992117129407308352635238294684696164536395329701082041908936020515364227574145060644052429783855061133411450108106808859243296027640884361192867959003912476471542064260103694102590864951957685087221677866002121250708891520298350695557918508962321610129116584361226444421705977794217144317595275017365103478596568396877327006657089659875730388830665451764947879557502953284849618918069026671394074058647729802133850537924012951349510222785121389921667901277574994777026011127314865604337790126066169829445826671215518780425157562812656667240339908723509308002696711198001713443014374271401724773878791214261317183100650016368110004351895291024307675010501140535246791910922557300205924185187303889272353191846677347996024344653669194433146262690456094949065492516603982474347660882004302313916648691073592578156388317828760597707893845107105839992319602812292882279955041925874536157836881886304512318821230025326591822922461059038080728738136726516591528482180370461504435380403259380668433511841112529961317169995748887461852237465011160804379397330041517416642253902576206362093691136412985538037506579299491766636710476385500439189329082114931774561106806663697926529317585944071936236378740649122522552999385540945720641613292734108451807640188302793176099445645581693969407333837955753206422189795512795006931189970611369489062317205546497818106290802503786306474987001931970029577956419017205138587184049831057874170400940131096696064893231109294968843762174747603251280367427026772307131069178901491932855532343796954252864486994501030051213887240512455120393948067549008034448475735339229697302775650240529927632718647165970009721811453906520406756489330132671691568690605088901936529163599313680363553296569268046398865001349272214238037393968252736359643209099790306600653460316758340830279313013010021407764833469257220742995756334702774670282653599343960832856768753913374296480450615194516113204517352411884588391721003793689864927867092150207201798521423694927420452799011153904908124120426350184635691465522770787283944266380393956597764534487835068956349779507109435400748194641727514207115855402429064398961432150654469413091135680801169504845415981614532494568245887733071612445316019187489452436420840046928344003771164417211714628917677224672997077770061043473484873926064035447645004482027024759632142625097880024389981935593984252102158610336969059901230553610469489345183866616542025055398968914451353788493768498565232999636015090917955326963720462763460935305632144564694895452380951436724035523514965163170884170678623643615689772013817699733904491391969484243743214891472200125497196782130820180569228932771040536703926690214709817235573754596044081069959476476143807813385897660837198834533969294031510540779375851544276083680997615198428365941518311482767620488388417843286562459654337463752994835711505141041772976555624894981500624394923000266635333746148763020585649720890590101740242029816955660719364858916563878439144382037998027636917674715417544950008373049641231161824977536001678221094984467714305493699912860474694391775892373909162091242803034707477121646767427463032641585865860317669354867918106041336999520450963645434231861174706112658795340739041174212983085337330717215955663813749006687663563064346765281886511481422926747533997922125451380645442091852454813283143993567733262125496333395096293834157773072295371942781376005807710818118010392106962800868600126143306706410364040868073151677303935768568953057932867790232020145243706548034753859790389901143967440857201873287020826563472267285692485425178158780508798390194406898849082630957155650432175093751868888557167625611513255472144669809731205445080879253737835959978546068948103064085224676351364950045598264272063661660890427441131320160276082310141005963837103651964709965731325662989975362237933984599124539275392090126270688493009632045608229826270347074970275840954304026540494336206300168781329923464878866158762521094805777154865516222668628740964160269312460169410180415515937166340301556070907518681812551541999210796643676830615872519697383774833574790617817779832811856848781226852692602325420734797864727951356464817607200604848087181097703434899294773186780095989064464760962147234105433207385479128481381230768280323721545786055292033301374131088294943765663635775377935891165719397154753920349535041256998853855319174983687159147098418747692861743721967196532946149797499196934922339070447771448512984277686399419513765354773147504288965118596815178340118378891333626890982473182385770680625741840802007812587835321933357256105650337539460703432433100219626901353885618574631136559535872260202508297279716452534718159535749814852992131969670092629253682691652598438282401930793656578968475090244461171911975866328693679152427885700502720054883875676936177273007935767119196491281085780739114693963181189804154008291501046224432930107637066770555746786965819613823675188894963265681331027909397331562045429662929175450334501660128926195017257617591497805463853669192402444877259573744006540480900424449751990914248615682550312283816007179755797411411610454760275673150712716059192743147033240112643948838761070873324745114411425172763467665063485976859843297098942638590034093867102914543321438871871137594597984013597453948332935780261165297682497400195454532902946594973532945011880337937339056065546616217358037048172472039835711118126588520346014231819127515084885453248463219630244557293944054480832922931504484755974847851039934884958879534041609085344869939404553319463741920585133520623259414872806842124047788721589442373094978741986342681423983391529643047718060602837759315570637629786850011723392898380375128696476871177706097360126552337377269488192560010936059087350474511835012560485690418036273608726402429139680417203472859710914465313744769433530004484625175800701664364795245969870870737557661377671993489545045329804024274752526165385877047562342513000582607013925022080236826130768181756050631780164466175045901744297535538571341449846264727213321861045125917630549713049394118541698837429397113200860226639394483812370403770106254696737615799258712861279879491215610053037881034563457020964738616499224379397896701519312066128751226041314482920367645306700712239438965046318035823152174577350170930600711167790600278829090407841713788373357570257815863514782812248415081141297681949474707060445163018931125586478906195762497174136457046268111467054627592198180580676062341507674246005280180521075113356852494712759622553937133672848569335846487470472664335089006156692864216958918512587866185190119568561865853428506604026804631239786495652026540231652890802584970507993348561674292874562402543901119368046076318820593197956631390481519714262644845356330190413033792141909799211233725285492116648387714870834466880556567551881828525123107218387534434431925985657204973239300809662262784293376798401742080246197760902345007113627864007505406702734982997905049381532360610116077084193429466361010449477926985255762560804350729212061760990002055235809586577067058623937304558270920613093800204033245879721630713550633213953809505525137930888775192154692538977560776350460579907361257245763603388040028393787116903848415354110678288844127841689107129476999948781612802946444380921664211774078678747050404968014742352589552799199479585385860944886974798418379798987746133061891404829487923979167863152747062718448472875439257763576643236349775056969826684679008702901002219547178896962965837601078954242096386458230028929430758486134826338954359972609484977445540691872693598036461424097306129853027304969486787346940302886563021548854362477751194020447019518134640403513371858708179269590308624085779979104560049539180025910047958301631286377643129863387242002430566292943447498114128237774930969199666104650927833936129875638094365420376926840992174879692708598002281725767653112622158044051891783630917018917065997601970454277439491405932922539990651949618575317179581906937055508878885418806848180122321928717997544027059630519569885917241393041315341619487889493726624576098668857517933143133068483631900013419880897398058271285376003959883998057066260675843345618301201385986834845782040263689706871317790194086934979125382588820511555044086971051968335358110539704586476677928188857728698105254247272606536787550740586367099811226540580650983347782040349011346043657362806072616430851507764840426701539418916712544089916743261945352941353983431501190950096794815077127362686192347970542892900169474171351333257628173915741900302243583938573521608464160427147765994274913662535318874334516201406510556603679946848801380207456921503947082268808744727210903596560512860518003526532736115737242450460624074549778882541247951640872719996889605515662827490200524516612137249424542831694161623375885762551568115447527058935832548185178432021285552218115471134240010810321791266205902618473000290493151439406429864102408650956964119643926991461596689202252045532347241509932180366125625688850883290005435953041137030085425095318679502954468173384014261573548966916967640618861879181412461337289486047554321166260611590122315309485135554046865075460027364753512723085053840267621757515681283479727532080815687200625456676724019066094276945323994873801908231214664260929847073645266609645618446007033610175241685127690036034141174593382306443793396129871961033934067153132183210431662824197997727519216577529984616798199360052497693204375124237905882621417667204454669108776721143420733102069197285107540921285168492065261611801324165332215846302737658249498935951090140282591709507016013193930262156670448518275105835265338911084801186560359194188027697533417133393476120601071115694559349097563096921636462300320553249004590185308788662249625029002135400198176718992575672382007514369781843666879870453582003483037855421852487738552415216345079041163905100890745806760268995215848744670148253050828071581084962420234322557411937740923429462719023723140310555374510859524740832572944318039498534991324181509914344634012734014139871524682067331359518419469257866120344703936454070743495238898126417775581153638608764983618761777210105257502040800282303115756079343428817147950082618663490592659015593039769196362762774184683771195272255693093535366681450828488271481205396161983959433847620972466373553194404723961780496537034566189529677439183032410805173196829431653791262301529846869521726133905920013264969551863302194455063746916457080970913307670389820869380851040935650960298169628904530869906047244687519274179429205988977684379901839083657681556402948792302047531272852806677315361641220338144298455204689554195120731442001335689042880419773280559779858221180903628268255392188303731519670172644842528483591845248633737263397585056290839314272675633396841560142112554487116820565025956469877084416068990057121794270811061188593671186248395841000920610616190171081953497246231040388805981410222334837363020819266009329236403251769231800388697098093032627474386764972516987310701775763785579939753693614087107802688367843218754965515176123463298500469627450294665440918706867923991713848636844525958314840187989809994155452970769427653427463369196484582704250826426410549410324275826745790981493192529140570288599579968566402787742159774936472166676297911696722658422188373678762209063219988275886859964680366772492009688191514227719982633320272971247822268682301451888881504401954063395378349255063629173027006300629563173032809830657175347126830363407623361988344346796084717950842925055302653916564815495219600062317186877064090386604443698743679471551643765650611890752640312171484567518376609769284705142391434096772259161640980514525409907315186049799833766979755140107078711298763837003160121168671913377660319303680475896269418111550731918747108170836885274466825537894318649136733278942718127784092646675726898491257910384436957150046631955317223410732641970943486300317838130992854677309132981622596955654752462887806771447214625037567364795150785229872945234357996259706776781846845671232753508981839297737911999641272545407774034918823590316054392727098716217342618568541705447937488747722494923238165012408861588742503332667205781976401439999133894138947172802973162321579104937947578487300984366510649502316040071766964086817474130877945905711227430204075342710021638828351938022347656263221724731823340930860069366114261091457101480128563344002056669493513619582614145756493849862514037902247347523874026213067475178208325225040007308744989442033826914712010906468059752816881728966456502611397461716753846323208793169292685770392195264523716885518447794103091002084277494261257688175279168842465895843099897640646328741872768839721383586640835466857377138154644737113615529458037027708068170884788962931845059501342254936066229409394222481712152809258691787925222007636047781276296358901376753491824798748696628681475884269828626572932687491527307312324927258088785446918342123389229310792083787278103595587157305733234376291871994153002893731257036461141272934930868026672843307571140540049513498366783950936298186990052316252103670680575823729188453581647122358665492413571677616438443915637158907143758585742003243146114668676340033473318784380537542748772382115819376307025505140602222170270835482332772779352239060890030573432929630197753944993362490130316766681257698458878615430121436804706165788794276929350537970002885748537163406833838866540239949950017004411215009197478305581407697137580538634700492967440635635675084760177045569632077664974755890178318423814363916143185583339161757035529915626131598655554204363930424246588566845921926825983799818592919635771662744261913687436945809976558464295535075243422250601933598647947586229654695658380794241609352813967493548838525122217030366778492508577661041150991750097818342813462694564783699570805882856751692133661095463672782239952398323751979754778397935535075643392747582494530478270152403416397600749138419691699274158902054180134849349286601423721034234077184443617024765304508446758321940921413177967636945760872216826957753670778680730931455376419003792340594293768400962506173650099824599070967885213586226303704924110392557796615264361041629574302138723676992024038869276159780919575703591860239232799014388612594699027891869898774293564461471968156223352625590000770182093758726937314346058846315757535677719139942249495054731989989593537394937337623065068082266755901358825548824461755981218837856718855746595899663197593737064094157633368342915781549458816043412502706905911167921666735131335367523333285525366702197785657440735890365616302151893781375434829175446241848115650975289175751116641515155880611553623791580476159685251149660340126044158014337598921750488013572337636790552887691153835436896938433299414659488284913339920958706697276555363719638710145228419942665918864029055095742754513836167829044674013053085290085867402055799851325220715977539073404470274198127019348782661886069739258396407788299772262147873979244604448101272935466610847751630864933749780049644869760962711555974066587022392742665262765310052020893140894975691074335919164867081434203764746139032307410883944562280473009339628075854077730170453772127740576361582372729060219615278627728065310288059799274966325296237033709196184609566392897237729561272792833346566524319201450897096868591619378580817971809245000936945176742225428930445350769805409061909591275736707666164808252435507681965580928319500780077623468764893351258764240501202846335463523581387024452073640985131649876347091438200316606837348269210879705593862667897306189396454493836769715017909694018308118851998535066313098327135738043532931326053046328378560396214853830576067254486272841198491576151309184526220025185504187706019440594263101878799510543262041672321224124173129317441480318584703540152122986676540069396939066766093425545444966935237386507596174992427927173324107776895339078951047071260699121599463193331403327602066870567418688362826194449357228309636101546811297830485173945426020620865108815150708774277614843192307099205314843801222953725514831315098858468546489846559369187542527568149557519125120784346192724484317210371157523809597294005884832595577098887232627514727604554152910175617631424067847434885476149351093043687554229053722651736665756600771762847969537798461293352062180466928613067792497613625678412674517738256966777144065917222442768374641028821258526527733259617648152414600605089489670646873650349844225712116553519535077061785164332473342160019865151511776212470287185110064679855684812387944454806244963596766717623050826710728487701125398169690519583600626011465115651426557242077018584348291458076556362888114286496135804843399595042759553575537542501620552434235570381829408750640907176536185095583618521681366851474972480296915736392892453679084573233258502648437922824195806234252259697498273047362422495996264096517239566113736285074245540743216516616424378697644864754438888469151007477121945931754855385610913157783478976564961104083715760000458480160829616929408306188172268973691222394192461752981024574986475745456514716706883213193174376574290650943698604960544637094707382444643492807364737491632942793228182359587243858757889282940442917309621820422114929095543110090796885481503351907123940757763913116252687645496004546030755164542533841505099618527159401611733225688570750529010121427805753938991388038444164333899986158806736713368402101602271613312496345899847570296558346934027282818677611890366325369314201854447220855939856391726975568453755489284578569941311064001993765772079343170465082354662947256876886766906124212392360222463233060573367902384002529503821060985345234426952914090023712546351611821546061198826214776656870815576541103568606688896148708935261136674693916149387443231484059734039900122160001454592696146838596895930023485849323082395323369851131433343090556149203712566917894635619340915090663628153574091856471256717229147402717274626733806699105290310765459044784094041873252262784359854647746000778773352465689133190759901979419514980974353279360922083226919763177516011061148458962184067429188359745186812415810996532190116256081131814651486177109261976839912613287054588822205006531506276055231728080623300088025295311723415468792949813924228636652495914839320596837457518637293195098833721086167177563037827904464149969038887422699330225673420955219066069811111111924638560012243438518979255084614460323580815434802028784746013274253120865022722331831061371952458883762780590756344748617189866666444660866445762274945039897118105682908333767854963352930509733275423528940557780689281436086593880434399980126378254095594411589407239928297043562162727371119892485263151938462415836790996693909488533763462276677955574375829234737347829508068926892152609388877100661574574967453791937381764187409681937174027714359720144286687606931245157355287206669656784716551352756048004331266639324331274571033534879994096756639115694252889115725345539321995634305132833116400222774865658671292901097727671007206502363743924403163155876538216592286169007069613549329690736061737914656557403960368042955173496507236790309287451372439631222553230734675371524406156877816064857216453328930724356124815685964454011514937269487822193754889506095974394063697243234517289841725103025568445275984375894467522289516919461656712334450054146873676602068113531113888353297775527994140555294743540286951951367651758059917226990134889679013371490915420037053727236660746511380695328734750129152592780668931895928060463672696084756012386357907583231974444148969584847411813154632969825625074082330001678540541121519906797548415620623209943605936628621303036057721979197388303601374250925977119754510084417017192672198411144422027332646025873080775912582587108384904295263100529186715156987640773013842982099683421069045747376240301168566542473225783434687741011621813880833587012078462634918856741350290026083251692362043091456016515444078025455519308236893187718715614257073711498620787566261217899743220993895016537014929684881025508391390196798748283633099027535163797401702729499944946775212539385078270503367239949075244118949664594855926113353421754495157379545621326502973171891297650275256415150506402823972695312245137546936342034300531809158527783650207385072685467754482736619063305336226653215046125746807395903545607086990974959527099338359372263328988017706689366640830743835142691354874821139474934893291183160699849438732474751539310001998359258127217449792355116758222318317256179869496733536213517669265536758475953564918448991216218312063522773934501886788877924674737032523785473126609988346568598488775126176784659994597480024388154522511175127188868096961123648658249059033240298159047860414768932956519847268134157422084767993709786824860984450808053181757700389865675987601250270676933509274554430054117437023435476758670016177004141364343111596392105168561791891472921325275523734938927439289521357992768164673848130951682236793388805046588357449680527061270318294560694741838653914945508427473514119540624566910161405183768241504886909061283800555581608706966364682748342713628028838350176003843231789455824619928952627140125894070662071910686890509882999968795957509941992571530406410380307946518111770631931012585613174036735656848743269731822668047303576682538188295673773583540039778995408007785625760217060477927737200473631159702196401698179949308208497325917385535830680696901452623455596504359569179864450424518724904006818055819971297391971273671169526102483874152807821728799217599866670000853173684838647019906768957110182763378659524281177735494914099191518301637163013807331196559958219082314440991363005718319315868105387729961445728010295655998896116815289652802415123999548339182816161273088383529286052394828170174703412489964741794580056480886134191223724109208013273094290960475302883670839687002464315809696606966587941761288164980583453870640399390936192466843196918749639092069120650679121895632071495406179388019886425729574775522653814644761072235254173591842815808920671396839898635881734293197626851128713724041695029694804370170842875317265733160406199461332984114526878592065096632781896136622210765807342063069007287275748849259507840003385909860913515065215356755185426426163367084103408169099205008895988580202971450663859229501749766844362774011172094768412160281959448157921120408348272169840110399565976963249884934096752569726202900474030507347945015282004915012908413506606728891691780735074794688150027742858558662975192301448881929862872458867583424840967249443402586721084376225488387719683927447372518746105668638628553993771168139835672837149183519729226269805830949096113443331528238358864400696462342286497406174705189549271017086951911962885981381448922532532936291567385886202030983634364688740529348567017298534047872029655701358776446923057882854385709946123573451465124329266993007350224188223932779053038759374841749441397431997146140748027837602508386389133591014642049001203199686431231242756313003557075747677850879740925510602198994923248793162702174586549613893630609443652233691598004914006851798176298733571074652123207944725977850201859896322305423070765102515435593393230404759495466447288662404246837977866294959910949999493768845495501592986377161329230024283121868177859825076995655984394783169892914265063691354620333782667745996152256572588111356527847484030060990930587889771119607465259631793537204442672533338960030418374963950504900535437695325808930599949666281052968171018871359177482909421571664167618639252137163250903899811751570556964093639588015284089844757844854849521758012476054623834296457424603883351348117947826738747670676302270512722632938691337453801897658943639681498835002409379202495785825130383970532208459759625711633234473039236878221748936699274604284782838194060149916197194380169598347843495891402725450363413437117053328412991268563521074077228760094483706317271751914961523089834353416049798439391207895482254402795604425419856831238738720967005556442154574623651555721565380990906629585318521277721086125649447107045773749724919544109152117817377629652368496340490588134201715864989120385105539584371364631340590701498001304239455722259786877868444441832453796837250142695473656677312839465008842259250246164292868318249076093704639701956405912905618872168022956288007880656735607286501571186370702165101854948024652308754549071811351869731812615998966342429082384526184651954274342747717253609167975032340885944482856756512727779344393058430833287774565058385091195131045073976043186871671710348273847815853558177011176468869796254211057317424790643350403620440789225594774331503470024979483289694162166458204995085439189528278485147834354676747832957854980531250816588107393582459436370611102666595300410513427420800743462541278303858988139446118727652771462644462507361841977618319092910257714381503435498563494778304641505422540928905367325488064476932991300716114050125978823794660786638512903435189331879106990429194807160374685783632030682763932858234379581149183763650052083454715174433334771125850099772761796975689920440949283709219495247800752514145952813850186517575817180222466462049140293857488216470415330401703019843749912195659811851592434778114921631308024981820095393211239166955685971184120867105597882889583542130032542171419709522493234343748603844605223762135683888667076747262507023572496542171341242265375355812503607277370838186128590637088860975797818961200567476552449337709646298696223038247847942985324350500864486556516322141056106422062205783434135654693210947021047467384664507082021755803114003180100788710073038255925043274558973946056686037082373396937195268968164524181680288993126047125758967820620003560940125179322205306542060284478409887105749586975087167466711677594401177234020729803909407200301900780161197377094201913329336607651689165253143383993081514962854295859261052104010451306362543044653533663633436844734852797793585875704405596684231435066086950126540589864443486604021023454867686244278188838987174250329483735100642659959373074109597143832860791683904884241409536823870701071046161430413093367478276154866268635097314812658762699303055050911939533306352965697284531362471916489754370413905981888309047541412448447353244386462598439695430231519625021105728971943192294888128221213119931683849953733924216549545699072421373109121780610224418139275789714145178145374116077214681434234952583598350572199206660184418846760659163065801424377441511230162831720228501639228007386170074123463158418012158529347661431544049831111250680344742531777048700061182977590729362419576803915749738814622674291031448868444720688918749649000499865679230382659183789984889969999250751947113515113025859462583312279473570634900805544072627018292884590285468008588118866567652409900216864045784669156951951944631545562149553502299681590849726001218980335462956074277203669434066146319539487177192958751495633326831097867654273969890673742655963963790795652615654115101060810687001462271854647564469458521203315142296511087547115882622092070373078421216466026768092487872905547627498309271603689076937114583782571394122262015079176037611122589944994360516641474992945888566462995841478693199593244001175178063418631257773401270042503082280945876509983617818111794143774503158441817097103059889195418433397393753781538176751270816554561544805194479031625822659211413932156630564007512901166578781953568374840906915620965304487944135548547250777820819081756219436303792941736102153196815043169808239420867625173279157890392722299095840064553574347492772291337575609979419875279031718711134773747687313520367752978929239280826107989451335029393197401335385732221450748535416975937853777872030245740129855919965911414885416786490668039493438990383758800332408747404163852354561685851672442951095703590107929970253534037620635994158459270292948390484852268140990733990375201069228056108123143808951616384070937128005005341346963436812806895929416302129457274738195976081297894855755194034051645315625860067605659969333431273306005707510857014375324653602727111889791052749413717549717545705680345901873086271909661769927951146713849804285102623506775394568897312509855097847994072878128158091400052805461924372479740431203806673043604390854093466434129285360662259960012690639392399861955052610277635590915549259407597774284651917383471524693124657335528669165760199689804877310472540228059191083922067032449068966985030277409771564079468419576719194497083897421403746468853124940032806111978583707531339322665411035014823669789377039298351002379237434778022978014901563826789160326675141854323807733280806846237595690460243957725065637536258807607336018865626861816661360514594321149902902390261326194817171809114055402834338595047884975557435750871403990935668485610224432436203940579678385778165924792643177058121124696084478443381811922833550940247402785235707440277055689263239044895897635183067575452385473498792905310253894925635891545518721242631278558583294304971000425388252363901438555375979263710953109162436968588725308211375439411053586118780489445701220342213636285861150315137726512516997334473513456388172084040400552607132222318119244599408385726781641139259124691637487843890990316456820034813078529400692522545177069983236861180727251993259937655002714828570250775963811662136625326823033649303431972762644661454021670377309774544420952896235267089970498489401724617631928899361005899564398988714398973093872918616032700924686407166011640084349203537413404882436548277138751293654462789201193863578914837167950219241127358197535700031792980881854192821578425511104907944453971232354311112529330711784766785892766870441991819577199032570838597948931738969720100434720153763134721270775122155125575921983093709615810297436698324483375821827250931805071591703441781116663623687198156103255338354992896865934645465072973516742363835879097707087813426855807380362283923885391428116799106837711601943895775174840089270751189436779526327397779671474094860769619030646526823081692039265020225719620011327646957045394562245893073358242541364647218117464337702356006637459779671355053894137885654105689896310280559858886150802758217455140927450281216126827903674150024019583888065337243842730770878536659402817286014027579585096460417535012178383727042124002476517130489243380843661181407676365094386675840398427786802499788097422256287560527838469650765770706117779102440460566161313992690170736736127549981987413965552989715642359731076065417799702163605063994858634310430407194675161752040834571468359152726161028887383226145700078427454591624674997203637856360910646781105338650920870708691351207352566793638205857226472497115852112116281213309229654105854804931946224692662185972696566681019881000269288762445027254685936642433916874820530088639966974333592101128739364785431633642861631624151597109206032830826189365984212488279762381555077042055753048274120485647753724577158143963468484472512487945553054560916034087854214074161553041745624232097847336623063916649157467508835613385895770131554126602877856949962041193075875433221937881197294252352930753914834028678173609657737388568787229225163954739928192212194931704270577867229425756038665990227306444182025543828658586634110098497877177487019672175488245444411427304959170596444492908719187368375467935592397425053000085379868064294247907029954376771578008927518129626610565239105901564666598651923693353936449563003855437121939548455281747532032972996421687940817205875907062464271809929683027816557889566782868589348719097072771928191312838632913374656263558436843885258520225711383820545674062248609150249187276939399023785915745252808154889889067806362724190779125017766398330189954191724741255322508852600647587209611726912284738215020990048629027287313683392060738811978315884790372062001305673930552926157102631268258093187108413074707994527343980001644333797593879094040260213652060048161320012435879095492877346577610048586393163439769990297231714163393788628676325542983327412764055694281609815774486074420560761117614768439472764462870309996864831015920686022884157180881840310426734646251219954173309712300837308600414453415652075474420489761041318301034501660005878748137437179910300348580297261371143967221488989724305685573350632286470902585318536151193528973158860212049361622970737283840475110899694531414398602417384632251312177604168402898972611013269650398979629270344671352645693899565854550962424460805161064815731009744474599915396214155519607011930509165243273995271979380020141042552870377560683323232319443419829933811995651098476848914490664903167574547637936691986658027868359553126712613933170403095045772079483461085108677632530896131707992567649361981758412834300922077328858282429607125844518553799373981879308982770268403547881108168860225178877253398950129657799037202842029072183241901595465935940628152563939409158818659824092564321568329531113097490649596486034180995122485224071544047024566279110337140758876291500982454140060366828017885461409616004845328096325626919763559735264187731992938052395039997364710218615276769828668532676710815884783373893996835444496034281574427419031243688270043955500520013111308721279468713603138633335323115268483886649182487497066749940365119983037109653489313081043297272120981408634918525663997725748363680313019628314259229017719603134686395740848470052591063178592195687021832529971817978385135919150614841923974122691686399452556561850584721534961023706469179640690531407101625148944463874771901703993636902343482279519841646082159085061953746074355591191448446546057690574079333272691514207498088073337396305357966528120265350712663470526883767731317739624887186903116297839517105386975460238934714170653331358465372376171720407980469516981967389839797040755001601488452450472836248250634492793739004397796931963847430140978864613553612563228170838524270050956299155171530543307605145753619981419725606152180878860292241100550959797117963591790950608828720647429644259741739755040504270147319795790691338746454098855011046815737894987506174172080791068401079276424107148319206932466690752396163273723344862898421827175626402105356061052195427534632816060643638046641571326360558890752133456963604378688439927075572468973161992751204794570087572190752658284709386437833667597384685412337142145080533638004746099993882289652772787970539405183446160227130162854700133051693700787973820484593297259537256462278092852074533075891358108601364644239394612263089579549823004665630068289179762240820111458573125888720215782657802564381240164877157225494979537506457492372204805994978115314243809419761723447489303779746971293038181785444528011114395174749304980714697371190397023239200848483273289887714830858496886891609921746963634651163504799065770926187016595869926861748739567870808432266374631114193128581975184696031501179685755277230877245202406572651014650594899346099270128712867402477931099459568476966666442943874881484857422563369880654028391080539143863588694629131702114672655322213011734928398459056374954101397560015096864718930313622706927650837423904021378204648679438269591648511720179946265276291460357465814574037157298925407092776703766771399944763462714019306823072685832942863749459299442258721003628950303828444389208724988979456211479407823022605117945662752846834377693361151310713387228673075340243624703721301383540432350980901880260661453476309937764625810676884893058568634923392365067986684708671670473506675117065006228824722940059641399938623887183374542211984927749157619815917188915648795671532313582494683791806577435779166951780668796980154075046053587878773260400501551030635720470155311587854340673706464389643991325437433755846426307850661233888977191647831661276096750567532628959044997816770426851139705473671788459814137922679635732593259540140794623535948152406271673590993065285409965408176056620393930443671748716337967331082603052068719672071177805610426482209951898546455031180972815082883882003293045724589091561135999404844319491831940782622499165434274563815960122256238704974630140817449999919575756180831865560039884019713332968106247946325630801581127410871153473563453734745894374253187139613771528852347209021582302320477052298960558249044261992285103570281977681178262568823146422978716682322525040449150213151464154043085444677933974656542787754369363068016235650034191558606779040577934398373630940197199441201060328999411460115153857070869556267227404103106723928185495773501374007506536716823181911352773371986466211653468315204825331770443533855483701276614379787839768799492953437399709473923158444642476896582271104910953921988154387563739385813627543522376731416011247804644383817595368316474780163796299339600217036795913337825771532091575906935471854681813532326535299917833955571445942168020843841356583582330925928588874825001524700685854078499510676677818774671691142631808622817681593476723966335397835475847569660135566720088448859837692828072931586090407817670036227069009110535100497165520811474402933753444431452113081396270971605138866418912698408096462257167006366255919823092949562133514844643745097845036374205758268430805101541352559773660413380156682458942553406980559808894813864865069328673947607432828240439495192482157621585949249078932137440687326331359385096591788301904509753659849203020176388125312728259695131328656108459297309314504635277894454332815680589884769717048351008533183351937629070766070950442986797046482279707654967411444790169690197352003227221418290819778983459595741722038059770298471724028871482711627743386894692640867043116435408752354312249152248350106430877798063751896424641141359702697703831118341186868546445161237222845388773223844917272425316015708186620931399210635004761125247003378791826466672055971467719981928910444770058248987748779454985801307707394054202326473065650275455732949875843416807880971478723518196596418228127987109209262775689726427268744997058344153359289980922405088865241328981066248925764087480534615319810978082848655627679952572094589037134839050153514554743168464227735430369069880007371200886019150156460528555740979914857406074778761123078677793679000044629187751793087520375321788933902138343703823044030607714092327687520908471764772974732634116295924576796976175868548588800611674916628148620185240101751757413617672836106008655108784501987615206642465285301983003177214604157192232809245843228386920221025673615303511067277738741048957047744351603394810431838609675067670359519863911253144517731813549217568539872229418242570909655290260425348734452129972020334375802419303737948932183838870450194786548299514191355720052138342973045522114759567498851580545824537383053819014943718949091601325038118730047127612278606343783007221616567352869550483521183667312235533212485297135289845776201974214904821699001791888461953712235173087523349895462337978818908349325364783573073779122774851532553210751695743541581533564644992491055578022672050132592253948401093312741350394801659941573708437501777299153995521372359197074379976181342061166775602891757807884804311842176686413919010008366416385846389715667963320789551688273735911751627533950963811080123740622844690047061289536614334441787117374781320053268446886230627151439153215182386514585912243959647743220515099048412477174716026364177991689294917922161407550529736563788392268498588594227985153903675376512417832121818874383569479406955985181237560550192967606369966563606797409673444249375924787141910159459346452772851238288949321006281788833161472326386986051648766159104246721115281491443647869089773024606753477423774341596459211469023240137541708146797591386861215314251739764856216673104412464753768644304327696743528313370741639093305863848119988392762524884992392341038388637703537487628403999749693919437353716378317273132825157386533291537556126900547937433906426013646843613106288566186142686475242789332371195700688644969812929932571706130725764696309582166027537064279476179812258038978610212833457073493259732712192144358133065316238691928989216727201998609710423178004320145945263610171481829729706544487870681816614631419979874968954124676460137842475849610900379556019327821414589054554637322213824151208569023261509153877059874170186869887275737510315983119719117786700963564282953697587980011881088102937678347616985982881786802539876814961368096616058064780339721244849973037760294505445462866011229835902716297843529415239858624848575740716174759241309703033004145965646249600231095024361643277714754548830956223776780079877484592663412784620159517618303217071150462718914661734199837384948691080539205970918369030664129763315717177752709976946584959714151863403968851230967483821845283148624573960617563142524887831881719966157473052430052160467621826261746170925140705095895564210679252106557404439197400609665881801469101881772013018559577697352803021519341107783063911193504133872539160416303353150660147915206179460354178817233593689856749193298147550718047168220046651926714064416827615881246731151148994277554722471559558310313815106660749568570061156818677613053125488428625944905053929544777692054121248810474265810906537058593596457088448021416730753430556481934415206408829621013206570044821060866381829428357719404995801577262364471622528141492989422437541538179220533693257968893305375917780688385476256769888455646472029659674014266731449200555646611807581594499169285126216123638874859910356346259526427759100473723882086917420790250781799729645153889212365451528646790830397165725449744345773933683390273354780998427671412536529600512157003359620291093535626773896041189513974767274648918648923276529477719611127779338744612469634276031642712440941588218615799473057592969543905660825432691129771720925243734247674889562709772584745060140617991524890619571917342796076954342472502897325804746812146240242501369479737768683987877193627625197266483918151361493338432614350484962087812355121291012835210732872795830924139023720719855574001309971466012641935265061419951844553610533855707064015746958559782348065295357422839533123922100145689133185706981808801987465474645872883612386151782056787371729158410026589965492522883252350441705347282398717865109652415885688310472238214573219307303178756537345401576236867247423837535936806681108198638122231833288560630567270554085520695104482578493176548533152705939806290526898343156373676118634728740415356409900305854318839111971557075169322164109213974261098940745782392390853587882641497724518681737127917069442714675693517256961327961070404938498449051503349955652570602327673210994611389763580290357599588095937986997538008914925918606943077220086841095719169993298306142767556886108702336210965965575032747962408545891090392717130560130613660748355185149935386155620939124948835745463028985449098595863267152732138218347583404183305892445311130197629156490598454704246599168753088926636814323107882773155886770189144101377495282946165840953687708692923809636626913877855720600180605746807240720759588568496166106263649781851036419484176239555183374504192176672218359147219010386463634533142624992382635967881535183712310758891363898060217199339799007176153621081056855393735025185408066689896954542438834900777064429446968259093804147971237082765280873850392857176538201336344951195772758786859687705485315082363470489277970391951711493610851314037896300508984072208470520013878477326683913573544461558564756210215851446273024076366673004902138285058731395339466851938249141617966906193708088771704590153817930072359779320530616405935401663534113065690916008077955558802414183524639611970269086593177847082037550120321670505167685930711173919283493542113108855354079208702738512348369387082825030648531753500959957538969133951100209792565939208578227787401556590177280280595145352386360090171819787314283639275374721108127539535938698316419001457140507818132029110725908288013861091759826774116333780525216338844744789081488277447081898687244027675891862323639580935234746177038722804217498132299543187563461855751750634473780784890632891311384176370684742149721989037191579993700030088093640514511793905677912923826095897409979366755198307282027755879300631682637438591540637734119535981258744994233581896263781362112134498783039457636320283844461170360915945826699605362495779494714565708925564698261646136032797320914291914048991436432958827952833915055422968695732249428626330441580659719851929510664341969773848475926064671596911205878201122170928993996664486155416463043951678790052416183600651012470757476930858702207149018339446949765092848269653473224054695687339513101884204754812045608845786136035126159484347750938808654124901174477079509530582255484509778922157733822116189709233817423542754425439398179123823235286844977377358919093826383967980858090778471110437497199584720980179579559604229648275755438430687294708495038888958436185311366894473036069253814312692987625596127097246205681019173480938420253506730081202106012088329174430358716518658677133646255637180790928873389966015943685400064375913027291059723145273786891439434011011626158873134407502465400099988425025499884442025384818867089324155607694752684298017067604802583460277332405710566253818919074251424204770880512584711423292002998238503158022204460347542801043180906866739618760810097374953037330422620868070531177869399835319557727700140301205947723289335504761076889036256167506366372737102443588646955966972227361405310590111469959748816282551084417210590826105817462386848846081886600396196293014863145574510040534207367004468753557995473846484567819318884780449319829965595116450920695061340106038762611951228739082007197376671369507683638079093748492508501461211985902940381207613455338438569703105162332440740005129350121352553226311439988934614457259196123642165341678341793930021506208530135164728992894069237386821967196107464619532179832660222527903109811527901532163314161860774896071533631339253500200103868420314139721115169198466816904833498548013249543091512769970400944216276633753477531523438458320704664131351043467086327571663926686434550767439823081117630758029375537852536998868407498703928856391505544587034800412793483757733709286424413217097287935445684039762844596743603331464741170038864834776927492583920488936369558572753715602308207588188290989658717408828646855024787408696864361760622902122058933173275740059436911584225330138111707458912899389848679886847578036924993892765087495785647386812197098447834025993261973380555677711600814882598220708217647287855021172743245590509274853017235091597208733018432967220224691309945773167746500938817666978664557215486797822988158005544913267218472637006061152263460791618248245511798107491838280805532412207635144975095833899747458379185636508138067194038009225233234566316507633746870148833769484957190013359064157508532353545828547567541139138908711484780884795178266354390649884019919868760650252038128590368690706054144129668469402558054994061719318022907929305984926048496389421382559388162562731913517158317824746644599464332679986603393294069556150579542805048490901796847051651736021894236133390444236302726559759352799270129977873194747927216560979242677333060775340225844982350251923861944667264538114490954039882570060975475158709482887435575268295345558749868361001968836793740162905737886947226508609695272906313226269723559556881901063803399859346995739872684815286430347184113725989945820880051315500500407107079897101832175699204162541886621471849376158734223605082178665674078990417411222919343184886665031765692724472171028426134409444112952163085329378369784057999021567938645393040796919341785032029984042129944474445009492031215688992125555818701166961661207219743883828153766595290071405068814818589593761168257505043754125224078589353459072579683431327756720901490729901686282642275621061909113460783129313373579123308750466128182882737895023183221052855661532254031053899435591672759151781047405270448387191066513107966930717665555738659934956028709984888132935807810571291554008169516474261127966104616591730320916207048994966615586334346145433989434104326639337584041218155912543625184715877794809245247176566627516482286754067929887248441401680506281281038718462497108775956517782225487546056271935553687235366753530706146087031889626473119162982239213112523559024450950548280545889776468682477035136562830894689750876898297158620885928835778660396707443681760134467385537007273768392846690526267322248190403088284392102563558728019402452377975760260023818867898853482682088511183112409635091529191361906604942029411336834330590862437431602181687558611741416070559576773208168697211114677400053742596929935690728631832194895032427168925804808508612786987051312188117751238920875274688314395177338862708741141926318783334683125912341162406910630783347682242120241835917623804323131483208994870141351244659127550666839158624414278681051826209053891275042040227454030430737400155694795049940356620130800320810341997236433491104501416284687577799398630739848534506815095515863890341564388302593752959605714051781262090209172353909169572193190754667206940552606342706870220155053918227125416587101509742814324725262346438260688765854751340684423657614948539318029192651844694227764282710898805500890671975597824002158916314564772683847689199783833254583693414077477549213666632455040458120573714349554579046422223037983702030430188659905786012916123325218479360382333618049607532462292330206900997197589211794057552854511738923486273282313993915964274571809039836983740324338750947548092906141167079595429824894909285439591599272018982395301553326774938775529562306791832334996124531913805270308281416081930736824447261052726091088759171295017883039872838543562558684275209678354340300499585668661601640545322867885727472260040462279000069592472619136621604180081962104894400503322193399656846346162716588543380085522723136786189551508559688916604353963379964788135333312506110068691067662685534473798341942932454144243130625422202238547811065953170560960154135545324705949557214269476938261658466160328604569818273043513516229489314973116843127272584730772017334683942014426509921217846276470859022604166974477504474915693098046525945123758113040406765957304664639103208880883901040664668551863359934730297499246674872579164413682228535813301854554255397015356345047954511880900153734236349671158499167641753462810979692535741633809330512562617111424774672831985632181446156045048478910161033799052520618929154697144912531846634713489869320989129113155557177337109454897309462509200590714850375313986746296137197551387388329835462748906753112023911460993040440869324765357901182123118023569425133710038687540250107794786053349225649130069871006824963203861386562246884616978302892197649351215391941781481562099440554132453835208729357149824608075727228717623255307515117027609128314658731212921652321860897693852253781058093416141783122166454475843087174265316827093405075207457679652116196839299093132828424718135600873002148371860841679446099269177690916725704570532342260201926045057499553292439959108393686859432401101420872412253247519865525552051958148992187369556215024537023329359502521038152090146148037644675940201252194450656202526899367033029999610632950891760500326875651504014318710079048518902446400914635025314640266892376631027443230158339317435080941282591060134418455833694839675389342441004083285053959653879004791410332477362289638799739660626026602042954550781275519303886317934231271578986356309474397607377569075308358039003954627343711162365546116037116311383952138997931735586110806760674142325556673685388496362363980917330291036524192657706302359067187761113977790841981470336367724087250695466806466192278787762517896735746824796787473604575474726414966274391826838125674893098051742746234343711709984123422893319497717606104730681045797925761112672516169379225545705141606333370238264908548084916760164102177622089174064996550359598666477276726008110592361544132498244915568652542257474724477312667108430586487220621439654583418193400608476721337165374954445626484131693833417411154697873734688622812533120830519500378303404162783344108963616066226404052348299216433996022568224306246127035419258130578245122487065717710387578042656035978193127768903128398875958414521792313617144423101436091494663354409257560148364744941000696282207677632774721599810394914375774148468054627051215343234521019979447776887467824086421767983426808860923416573881747392951163768680855585562158690351503978541524325922941895104324524066196162004048107816902566226034632138004619415264201769721467810894754177187056204947041483107554432878844314942065750788505945081532327891441854954750439367598374206812683630953291557316937872770809178437750005174638395612866926785696576551261582508004318024617836027048731591199492005406809863307805951884644286947709953471805726821303936599517716305419305049928694282879941700419849810610980835917066963241080075651775979412636398901974469926901356684628146610027062697895937652866246160569435423645133885399431189541186568794500914804813500631225792818241794332641784498403103976073125251550384804748590619467896225291925229823184934498607794291512262740735322659924231626949861251482136121150434142911487208998200621795158502641512105240858712771380178506945250803092253447945854209401179235825102014884581095723853128633351792200645565756256279844345408194140165979393028380650582371027513455241475323451375301445839517763178967930943113069270480075888206537596597076286448680133907125904183870256642021486900185051403620842891278107530008162685262561861409989358664807151251952829291752364355104225974467831327161692351763694486766933188825955256525382593091621309769833617414472356282767336333382407405752772001175710189021806496913181910201051979450730903874194550155608435119140138976727482973325694996611163197144087312714477419455554157546386386354997070046314559956105641640949843489273992006903638603787676047905853695923723948516324174663991335061840608459318912218618461447247925073199266022511221098662539105965605361601153325265157029994253644388208812738980414747350888557050524171632894259933487217843851381640858155332680172197904891264436626966117492982028098464359281294496435487566372948133914878700330379063958177120675815066817898679747743166365876585586840388614340171621842595355991081034836541791075012750508763471507165336751651537773011361391572228702649862629046716113059690225052585801737324988710407086979056674570554288529521570632813662449942184642503349915956586219780021420416922825668973881449359045422824788386202356898282681600293149999369262658500906122402784220107889472464871970219856766202385551154775291628914211386314466914742381162445760059085108155823554747037967925497507351855126318176088198825188437324856607943379251356505375549822502077866096814644029541343619507456501413551625724457660954759406784390074221886494399059418177840538484915569329597223109156004170977403421279711889993985199123070494925983224879406036610277386482546937032534196286030291082157792809065771837315242388540620340531277780016924208449812328919115470283942894373583625383899102501137353429892964485908854779269018277018885056964566088020188028804688136741306263673389043907505521614759299331911197598830652427675866211827425239980418888577571197183041518415967875370675520975894357940050160281182023958853826256365784694911174191939148355476488923274857542300971561639479402051057371345309087348938702829329798288732005915096056388130344903101350972424563321696421309111325142024785127667947549018307839753976650598029662918672292334128818681591711692941208322774441749186274745176252850320679273587942919561798977725495134068793174734837779094723070124397188299675964018110987094201431064152105689625647846352775887235877404297187056419355031700606234252024915293241184799814432472404399738654872869894671618279772207448789506523647550917006050667571725344031964423790697458661409249269991691843734304855366667721128481159194902045450462969723495156594066173033804423098672706480668423909706893602978406816985266550362119810354429267978284924262038588094764084520556352909264732903522018591629441285280607363877666535917377236016166431338994551268650748546669256105980057409816462860807932967723380853919549154957660076326161666823086254794562151926838679938181826830380181606153583680763789083388871393436204910470074266044462794850326284081766188561521702989913815275741121750815476658869133568714975813009858575343232466609659578709372364045445476830908086473542295178435752889343441929484720680292780448087275219403342608551463357140302337354966474648998834389189309616752350442978353602106895467986161981071991941372500934492648197158026070104947446110796384411989126617368467427434424778975889189882658820757298193514561531102551616163873050740558547787513274350528280277662760025483554824089212288545634743559594953303557508862162411598170331988197286328543776010900557785526702048320136971425318312561334341701099212982016994916308695781843312587164310823553104090505059893485991077074129295007400553648101088262453160700224668235958058906896300766918808696308724850456321549244933929922511803719475018765248819576017257269586669805340999858655023042272537137190426872566686409862970549953542533696274927707666734443363363530435467199619871564500246467249133377532293869778402481730175486477149259807702781133100148030503495232890175579522316880263768752194881923729127165362791347745372121689937802034935769220625913234925476251982932505205471829159310250518666427891665952789127377472582108781526296510352757422111745854605383554971743622078061474958170606584128926680239711160261879712015401174713852828447018078796712526629799598648366366900178337534607784494153550717980269448330683598990808678316028780044558299552975962329917630402843630589108957992490496502829712499421937050961633807953025660638415587891418002461443730264714810545026281375971011782689706827698705496714106067150838046212561545291587707269694236384995151298821536596323554362139547057106196645238269206305812022681569839769397015985540025107954787465078605367459739450146676206481236689674515377183662833141871657714038271637288758624339011742499341107793881702800277522623347416665011030119433199992488035168953682471009315085692755580857343829152520413398705675637388025354134413632383075444553348748046582279533119820591790649146716161979934746095784743881605040772508740384091863384991604086720095196607107646483924603398602919994420553731347892872836593174918441002655924642893256229676929252583482989436286730179041206799141055246532450227851182373347724131829521235558848560777267691583303594168675999726153608136881707828867643069212042150774773073258128683702995622277356260128617018217868944776022296545883757354427697042830040815539680810501113480477264387065622994585625642625283856128840297963571894916831734606468301960561189719878428262716233547506068638002657370500338680991315980545199038528099195807659312512306797963415343426171050079845943750268591136840958702102810524160829739823169122576287605211485840923661562957435253352767581921917946878693613596514327487021844657209127608982661346482135395658542838971169279824045701273412971057852205574983894465192683416844517569924751697071664886779383051996214713064389125339261902945508179454126025672665134757055406538450602956028518878193869553209971638378035491981248998761253410922289722466336319829805336126316229257099143333032030399153026550189977195664308380449417200452440045869383358151462629191047714053087767164740026169596221108114781312374370568018378390984277625489814446383626101535960957392333349067306352417708968335810686365624226321178034952320088423910889569755476174355302481443501661429956723895822380766112431954906176231095763209869773315126897765680451432883467413437343499327458452922568210359557258002749153727296672402841440639993794842449096565555742711858534280710286120119499060002363779644499931288456231235263234457227515249503612710907881341338076786769971110276027280019258868545579015391959467115740130878709180653479673196720429918467680220472168060666341169008908752385889823509655485035804080032914070233461132469171281082727935097347339961979489241640096797401791575315026126296116784750425653493543001343269587338892057006898233789083077356461483751416089582612179929202344477562272884587509169935367368732828351431095613458650222197157612629947889426093528255461634043919736232282119741242457364395081184794886804330121539627874510893787517227727769905947789596912686640544897067542228462984228348299082448049297745166781348077370719003038097251756125543002454208328293927752434450309648341104394808949396619530456357617729770954669962012779132904715038976132610040789202772097391597806800563709398318963807036283188506125460469906905982477011138332452490992208678044456765427097701157087824548157210165869805156740426117596577794721396028880702996304517023702813993031727636290486419946728603783803664684802539756642473339169131667343418142106943859089701610792252239938020552124849747258986151752978183433422392563573310988189983171640831499887761620088081076609188309905362770440679840958188989890512956714662824964083945453429951080093359202524648861842316816817367261534244770492124812743799091855582339234132145676397111906844399231068483696437213387484184894998522809267397246942316069073489390082652681938827598486305482070208875888900979328585414167806280759120262178214206988838570497202829858137330376937284006142716834752613816140408839784379443450668293947968703289099838186152881639255280134944621485786162389114272369187694380088704943084753574847852682216366276006200068555346379702134952764167638002767952077720584824498730274348388345332206000163555093707154409642683061336596321388465535497532416554171639734529364744820064482709853502786118272680887670521231945600566041016038271074874022363050294174382761734519299059141005424075430770905194512273200181444402082572344263871013421703963791032834188685321543413961829144683059288117433637913661798998939565445158731170461408527811329704965591357256739354477212342020629452618062991518747452264042719999800312736817754783894672698645375238126562631688943159877898708998844321765748553509375997310778164085736891780817833405607682116052826317734732743081438383495218944159294111323827666052731064234435465816557559598306948829872974488023741729373930664365096693543563573888210548110196374589915851775103655762051262875833944437796158653450233265499718969398769338165292806571317730703089875138314853876793170123881477104648631439410922846124967580860381268482888457671286788222967662094333723100066739230445696670327359460559066375653166704292098002491619150326586935200979443917893398915017517414537588774859794974551224883021335897530878553353341072888212425047335769974396569563328928351541120911241548886088912175380113811004523045309022733663586829860233489964907283829861917047134894436774723376221316000510089265032266608397833718166208732410158689048866928841992977646390685935281607190392187735235972788662967630027354310159987995943949010851970682645478131902512950387735926897401222400457285064351649703851038225507500118587968545189263962743859071256242325386430464070530878590732914744615233180077130263949044777992598105311814340063363829709125508817416575567318321131528658646304151964127321304288823221975086718415768952550326452865929286822169939205551671586676991846604290868797259640530191407041061592099751558142020471861954107629430144373925847466287666796931058897110496846375199284600069896753962597557179197525194152715128088870885133130699735938999914624904450540170188575852436451504371886168662483406509943964570080256126172985803010081908161426557635167624379523396625068159883507076725529421401635865421213258153383988616426865669482702071639763969285548507768003239631453969314433600344921091627498946847979903860824947578989041426974508948456415539278103388923323705045243657842565596922177025475244922420925863648293980385073091948027419545890191001297027731228823907691788107928818754446802078048111084545331252911940216187816412870857805512733277750553891737102224217550909632231278795884124454943555645034039390682996802291913255446827147132990851682028360634709836042963253349649233434749953082050312933083234826234339169135027098659015529236077428867219404362947076064570878622396046198210850929213460905690381455540962054904993666228935863342506713257517253907540532910413589736029443542211520023548958920875199127186190760178536100535683053800844554712315858965621848661451450265672773213938992728389867183390582301654096447187867947769026428881142833023564329136026175447060382716745552142797628793062459288804925163832535515499852628236044060080214450735324942653204251031096819431567053605052493969531720261849334766625806664819990813271375527294148777735345364592951464173398953958236800857225713424048994915824730012907123900354851917960553135943811550473738646259016763525925129819019817381004962791826525750244837758407145382302993455616833860935510410879742052488492636111037852453602878432926874189662976677204561988953612742291606260540575965449766128172453366911438838177850382872172936423068090275161466824986902644406381481166998485191386220841785473275414419371529434586228792369782495276958208617784880127171932647930538970431859296071758887453545893682537480209294977039464602446851883109059254459427081237043233217124426281705464637156934750832334568182290031550570201987658934076920773979684395174954698554915752692013752432279460240266639005598550238450602944618656895202242148600898538596404840733764184946894934899204552830072995601760217078378475589860896199652855465990266100112992899151325439077205770207191963526959104659995910118670183820378561896989310518012804462263827977327386922457424905110329892399140216110623439345154958404077528602617172049777117212240552667165166424057513442562492114241488536458223822386050693728777714882712340542072606174015293118851091428428427172018306333836309087595209979563593722691727632801132793977189218629193138584458973902431378322259242244619142889061840268700784842016624942226662746258418439139761504824468208980440730669754629785501986089763531008801733231984547934916727822454697618579198922654284754747287018525776392014048888552058707802631667013430430835074308602854602110312531769919382591979254890668681243524784948824772088957568743183647991857130106546750423993707785003352608052141250035258744499873860576627585784430967060930373236004946032042929382923482048468158159541365058065289848642803185016445930814974363717835196515073255399717150801512960850652201660282993817406819888069924494536025350166293523718500442783921115103851984494421586037092994837493810405362027396286145857421138050722624087961460146591769280890885019083712666618997653796862863077508033127026136386532123077214937441658290835002543419691558301928089410791194474636829969868248676463817068757152665428803589650557659413103767276590289795956079381356108784271828800239773680526357884943840435832993709544310487807252805559860056741374201838804013600298479806316354332085491246785517354187955665745110928978829986960003959237251725404392998498387509747306132966622981802025774504644754109475757588968293514705182104762551238513713525389657707545287574722642829879540096802115533137907252128870810833938081831559705948957865092028759366395857458078505752923575785792360980977373239658584924038420839617702329097491405423829831355221697160107981770496576295612959174174459756752536716027256993537059701248874353496857827811975680264810666170153008245131480470078707516376466119263978590430590838769515128712105368878460537689122249962402985355278121495633353320414942176884321690393730348783760737630962717983440888917614103076924788001962165848262397516035037184128627282267113298917602415666642535486250486519980350619911206540865583088820111824286643945589845807892834496491912883001674732346238850619422947710772345751876794935811542625143272316141870557879518988522915109296591233880507551339668934959209774335177789930634940223278931335055227218113454455219510048857456902767682228121267984319139383739872520854070171579592892034389580934649830024599248246962003424092589389160020858288158885743624773767811928987979514943645519513375434805129675861801310443435904820921961985303465962926041687153327791362797106328045179515501376784308091200824682878371731823246190329473129702210948693511856895309942067355252111994624676370512283416362651499651234538327645844195481906998754261648689073432889799063277520421334565340031762110329995007746243476635870841437794386059803569339135542247019830509878653846685401316642700586031345499855586518352078298303461918636561831661175384776887219460942160859482959268981413295315159641711247166889498303408014984120702347289060970413880125680156541283957769949336771145992389059684347625083764898037774891744001693667179957387404918258884346328631190317084183919325646391395630432983055721790926505111736928855870586356670339883238367274574069421721504044960331092200091485465931503869988552636866000942157911979237717119597889535832275851605468415776928454061628592458146319629152651218642596025119780246766886620748728780854407952906186327092552812181802028963348177038685100310298829657407546644661766436630971769319845288480472334357827423550578651127080065588190918938804935861790274356186537274176080961544585866177181912075914362466362577926991092864455929516784554858487077202956761824728910970803754919801595717332467559605607002555467845046803053103168957148794192774201117314742575879790131944891959246452645906864830717369393927241342975799770968855169579274713043065053547292419880724392517269736709501228265715313604483021867572336087087903971467899759379272286112821998797016765393090537202996363864207787294275198047487286610132099705731363484661039864917983095887903699651507102133332804391023497369962832636236128385693502683388686685516533097006563217041241369861367111349822254822616219668781667982203001024844166078252019402703796489186102853448082867503437536528634371548231951778355363286129372897660387107406214027215326344511102317736406960184052158151927306374368328178510465530760471868149686197404053323849633200893048704743758684827099460689208536611678750587917216165899586422069462846096279888506623475324985089252717298920668681533544260242126696361855436325199695616766896807131184881930773032621916561182428782857250542399488192333114711189163304236786140585214979227454973017297692762789811456672777162551490290788463318082793421854675256478214128135258727792845842688038526061659693443145498598752795224647858750254596445419542304494418756621154468775676714711978875949123129158790574571882987536890146040308040178907711555655863069540720679983700665418625723406268466676888662346666408595877577251861846252151739518153342526364252118014634601007406943690930603627802327114964729994457909436976826988611575410991373783286627211631070962942621629529898690263876901602606798912941540227817310149414610204801254860650063510208990485706737157350119280828588117077625083364027249714749306727377597810578554578189699322437437225457529906360616057288822485864485229297894867851581131796821597802076318540560691925214012154537153407149972414350577237388702378374847821782744666690608770238399657824370684299624553698583657852414443337594787177965174150327564747890845340781032596112832170694311945498883162595111050240806266657631123872814771410580682133157551691045831492147502245371079853658442629914825118545025634478827026271876885823290061290774849952707900688369691157394723607979309781786341557969613997355883655768444717347394932489151100110188518121789514650897676978495914142957606589029876699645924300045861822486636538051716144505124082747750161004637008689152067045980238960980958408130202990027621669466965681538236431530929868609695613510072006267837622808178607670346215860618459389032893788674478590524778173503494729645514031094659323630556149779417475037688777801886472369846852013416938643999293529668508998183989271627231426223932659388530040539171026614585583853241786386071147689048672673767599985366158324852060229922141072118052888470282705263928284802473075089743654816119907196787203221985916262761498333509002953874819912290905376964854928903981783679926349115281346221810876752293272200499293897159408293972484145759244692587547346192925499058824437854857437202514992192079664076828534870222342377806753305452375388657438560184780642447313865666610725052006688174770016903739930798940078867217658769081563289753431452656464409389601623564193620541812460989553688006405019810562809560826911062174186172693765977000507836675450454435789458651462424180403694922379279980758524326931752797174330389103027239925213938411271580855258994715551747381791212038119381750113209730809284626132243283770460107398676138056599363933342913780398201439694445871497304245896963756857615225880218532989444788816468292781897789945648739718324761665774695629474661997071208181059121880638950472627405374813694284667226038324256195622250178046362862425773738420001818886780372188188874812076005311168105948948063104297657288390890398007576874708332458338898784896446454187648135244107546309141727955769754862863154602299552460858262022013182672033155027339408167367444207217683299325046683771823577310332299296835050359331960756906039686045262635879446974722056184393537802707257472060647908369827457177833035475191112309317889374301665730478412605200427084429297293723204072737361546609753717773840499776265408922586901095442792950607378193554365729567977511404335542377167412244284338487207864366137442286711546209841730816353805754341754922539568917673621827756477968689541954409628464793127272063418366224065869328271059090625076493566229540262532373170690076069670080912920122557170057329521784478911950648413879469010193492761220556894057257082650065919596987530283924848038724690447382108684835784487948857594052978232785714859941646473885036904167396890746549488765467921200810600831161272732749609161702619535748971228994951421632145298667122764236497578526245877071921464848478261384930451448932752558031507759969186400073289187849828041207416581815712627565740328129343491918909701261773290836521382291461926392868665280139718104360075124171231064630384748899946681176784087537997833306397645430051924538536339766497091201365783386724255330591453708533784452453766841155485937602289168909929152545317270526087927026390113632373990318550683230220401912655275479354714141602968824694594963587336850893605950390968251028934740881199228081794161817311745236840997066658324183627467509174834418632998730905122896140895260849549768622577687105793458542972316342795058072331319353188726546408190990697235759420447624872210549682895414278438869455843876817364941789991897608152978498066330715260201090975392672349959244302955718741696655904032938890673278520342899778722003883564678965740814498995604229451233671321442329490586530390912036377565369350623567023585017977434887700324674424301465725633109628507248677983943100254995454808417881958230327544026401944141733563763253569287798197734259268335088395464896635717957537626499983710162185975421224034441611539113367928716331242322870909704414337172424428150891187693636800339482202446164642105863876206982362346331463836561845393643600010658362880709124821462668180466957900148340829173075642482836987200975736399126225459267252778742789663922180751101637686316297553597940638273938458648583267153434453400431674727528689515933741540692302972101734560818667137066727291555105097313303051238896815073491246174904621322709125964591737816866523665535721750510709492684985377789442725028258579679301051746060185656849216258278611732157968673695370068004475106895600611932986366091141524187954089864834156821013575925681101052457331683395105564695152245972584097914940287547019288908004089689000878793857893737327046702621187602678428144831711731703714632572216029099286170479893889104770689098325312046224063077593003492932186816117742196035488306580424849917547934135242379875891492622344127707987627843074706019810365699362384463487014245021973750857577827008888956839370783467344628600168744193278759938022543717772742767477011052145521934556493035949416075877941015543586220578216212275359624060885852910109852601466178309611498486157237606224050903956058879261869938954078413862445147781695858644106357628019016577678803092961533610672044651211471996579423010432519582214446376219244868779955331423091712688072447389577808780977279385199490636686967372304378237305439949297681597048072743972893413491957999016057477586423384159517639846000730783598956013555117853865818743876918618660889121481746772384042995099961672043581431793545969733163058695190760382758478098802090306293482812769126100002309615199916354587792239005822223652138776523962320691075140648931499192318242634728411814196902337749454474287066503698841407240680023327053118998961344460442817823315560836032440812679608013954925631689265624232994071037654652222741915227314050725274072676053423863935841047430337837344702514450961943333808107611367234379822567047912743394134745012891372010020980361687460420551174878796841804775524891540920639922980563956661830987995980585024680511344948263032652689245715741393409755283579525803770678720079535478792624868085532525013719657624787982328259728990170760722139609643143182976746647792648575120592963070731320147382270117741831316620358376758261878193052865894516374668842992679191434762225776533301035153094451328428814124305083316483924254954189944763607877616825678628534351093822525280814803657640108682687332494995585938094556582324268053930484973188500102344379106188174587722394627080427669018862107121701012280585758802472768390276527931558433277610832023329792013994368767660868475597334922159098555961314772726369052012728767302034759207421901054978715084583219962080317005041374516469409796618800156336363038663508268008149441395194216658765158712573665090686693098306237162451804058275831605306181220116022362113029764569673672969999896923726457595697277833973523625689826894252284468053023666173173704036470783789591790325838685727584032000658857913385122521907444490524906931637914281356733987632669238438394934605916137406380462785845507784440819586637450612898009123655819823434754352795970463357466945387141767035320441835625170889373567284236718710005972673175349782665263234154918440728716963420701049394121912179831999155554338654779519664328304028661577162966646529909592893098758727948196967711807921749970879135255162871049148873810537739258293864680970068028942069119710521111742199965743585797008520248724194145580683518534642944518654254768393573004650856414541958963815771904560664835116703025544028095049791311008629581158862581010582948382295653559978361405076847267814515024059259969642246196076400073078983883718703181508362916221384266266804821336126816715778830338589514804490960093946057272020672757512899222264266541048868419698562542828530713953962971365619055426356165209270670893822980180113484222394179870032160751413019733207327944851340743123349226711627260790260635884020931374816183380392957658453168696542176968002406605780408480965833301808316156784178124076058782649120601193361724136030827493049311073008152462788777906417567325596989632915342898895642353463736153717898633776243880276052966625013891914595333845966478408851908498930013569027825256553821222406609927711120380400355487260444040545844771027822895318952294707273381672139369837685925993210827048415357770918494780425780378729381416695383745916213966959145263874834705906151642088521048049444358664516147721347717940711559515628637802133350645544126701873965754479018481244976451050487656472147132892912674154624198652628904146989981951215945488829254438808509986234321058244475318366698555545853289138625777506357480044759897734449430063478808884069456639302280858094329150299649195877753989164035246107170701263404099138378214385253751722668437541917866126230710987790954148101225284564574151770342851518876870888091058637873470227132898495975521701692036004387520700635154448532354787642099459441039544037292024513144009893843308831458860854892790408242396749404669665995161275129929054236763593426264173452572414478833623610086329306564180849013643280561620677263992781749538723118363626140393374921309066995318918716848561963982836493022356537649490321410783235657495317505186829267669258068858596565284619621543022361063231866761836074519772649966589338491499168636506561981241507490813831489405904189647360505270707800657409591543598299220423975610873103110265146586837499174321722081658026620384262147619506548382173491373423859508566114890131689536344280604432092981545132572607226854409239780831893464979142086599870307531895819074318806901161315969342617959359169043953347672272816137892232139542005573699283447148027103796501128704056742482458342061625237100648090236767796670754690717481392464784635167798495692792981468254393254471545110764217673907834827670682135032435256456795666340531950499790148254808908190759460504776856108140976997932729755213110252413912302118230385579431878750367947516233319264636538385766420653408110699808284106885057143715520101891063125308172480759933990113745206257108287319732223415830613143637867276621799413659345798090519383449920581123802319729742958080030971472880780114585722342689052809096508960316509475972178666674323965448993639302884323661322782199258544442640960834987025736680523108019738615455272012342208379621350989228586530807865367651953837499704911426252098639849135439106658161848345930425208579880137861143944555934743018251052882093142148157884269004909494343957400519822187586122552903406026542460146698547043037420013533447145436079210326303488696286839993495602439887475053571415886524046075232280010420922413418895505120212086667014868256231051609225913068565412878954166230410875842840671369857235688841973889247630919758782012868507948259014910841162029439640487156573343694330527638589960717520193177363466350456414583541324524438471243481258038534196731354644048617807446673539750740802663532478005482307479294381274795043332794731925609465812110404110554666813938579057681045987498163944394340280431273142691723003088137720433137496053680423627691123187337728692093811902479252704081157085951709158713552758938471895946360561143937364663667115811312675704270136784788493102408698092370363237119334267962227376681356885685646372207470006496936656326672475534790728157258198314706077671202140303696892623084514118756800929591871814370036449803591395459069367482291214114174208172797205902050876204425511011050970778278132752734405011087881047031804127897955320620552171877866626762414098860746910728204427509046059940293033648303418752297029532000045175503964857802489648810081389124136167256879586221835053779286894690914978608002311649337721410953518461463711775249595264260420647975327039048110792628856586870576198856420850073529650638101457713808568724223595234296265163378835858214356601571527389040925717398994582532371588470667296968891239404734535401995761341705244882799789708815561330248147916367045069829359898576470766871718920343668879560786215581717225895190697733099875690443478468976948283121986480160283055202328074149379993938563905641644048533805249949992369380642224336250844475356863035321453131075428048974744114536717155845560675410242321120067542723687647863895635330527430397807697763542472848286390192181086026371196094787726855658357016666682619688294811217007626766654517074875379997125125631798664751883081535610938767028351873519866829573717106674658450737606845754578508848692899782696038233690120578730932395729424667953524219658525767122254070835886610456148849073797616379419154750256431056372545634465313116099278435214547805844886234631553243787054680409063989927872917349829381004057257167138441906006739442563528593745704452138533291345531653606614477136828944711221132224599752171407263363743606976237534276116471181244860924032773472438397170077684508482252088014287718056977306710903361712786173360905443661389286955832168185590859714399015004148851124125926003224178063634744530186022666068123673482218393792507773811336381435411425241895701112462022935081499900053224938901294893583070275169574460265741514112216381919152538836384447457770961926631142268667249213862303563284469897632293658918135663004665743104720087788117771204188855771513250566618756690696528732759196697074697833139549406259762282812587470473477059898523944954614180327412822375844478820099226200945358872089122207490322139780877714648570591764069482910708663346761150994261555140091156272539713587074081359775907821674555906490881292547114401218499406796003197589112972272007729534456211731607369129248993121698448869688921423755350485094337733886059054632822877749199069080887243524069403579658248669456155158384977701829277932128971644466942702267422341935966646575938917769486418193263853465006639258553085373952072790318138532905203842429798343421317062866738039595358351684895106120632987175540412817790108288385299424765099961432139077128711187671307325819687832493793319513485713929366773312556126859525916932944212927911058906436154961912927662624708605870607426238500264518992027375345014602486188268573723045410164886294646517045296774470932380859517501326566497224401890295603914998461256627596481408380670547054352522663464450705555337303714264774851371432594605640326792163891112435559366664633841319619378547014847330400719249840007206521564424653466423341582419103175923076430160565631603894685203422689627664861312178133396546919173451929202853877427508265752516449020666159488696822482067405711111351854086859573065111476871705463641674372352612962525845202701994989407856229148696388728812348178647943346733372460444144108833958114345327977775674207638817865541932063748594832584022277546466040988930645647745525302759796676622846657309383109134170538333066673507605210154308411147185117947213475231441548685158787606094440315747747672603591154910571056693661424833634383792109871693725975732904945493365467266493545841481777878994613752561071575875095004310675942297058329988070615187901293443975438119993303099911821360695716508255109277943329400784230865935884911773398182373098762421358567888611588501117602503912923934026312023782759601327421751122953389935104717100028629740205927872225034128919082911766605904910289635110063861364882390857830100088800000243626106027945362485444307207623610720023418896906375131532014119294486873595145073498497234129323662345380037723851078077430300954413583640028101249918927366700415553555296161789023603876187512957647144673242715014002824324558121282374720738396468774347962691139368140496250387667335655473965412072857064052096959736164091550098681696675527862493727664457490403873897111810440330937185359464505968260964282035226622405534838413132792374352870077380601693914040185547356461611654914561728084617600378756714246865715524013636439988261389887691712753791314998052207679235769128551165410543249349703933459989185518567603606741849543748726592626719471653908403618033066055791068766739291156962906213585340455610669603432206099668909268937865367884581814827452775618384304679774246030569933849076637681799142141382119005157403512978877878154845916629219761773624078023643540675069963233666403098803630997773676880078258424040152778206175406929026503858039434352175889719146201465732749155811599722960905090675129915053713694142194432427750066560143107799486484355090799569606369628441195236633864988928388369407167324369272093297070020311438557881187383400340230570010603278803628234522641388077377834687197336635160854686746121627207869705122468286328770018358237341117096386608836167935952192070267669734803631510503040117133880452545377124386533856695018310180008525171960167436985321339496514727640290492377275260835651437266411894453128862859481595092942540230739731021655351011980608945401588003249299669393853182115541348623802013954763305380258737190978914959296265048475454178023746754561748988958795424579720513784782119354945231855960307447534717757635858225908700779731181680332223737983355980804885787405963723047269604636832868094796760862291322724983396900559699498160955824143604021796555978933615882376705125539131655096107785238109471435490575892840674738984957875971225928524345310128092312058769366820385376329107971784003249830716557364361535011170566168850206616885642738421679111201612101058564196884464796221534805316545864619453198644483176003240813289206273287033643324770624444879799124043070965593538965603245335373363673328760861631900919419021094747586964977143698626230660042051236182880804319947081196438838673065519445915476276059408773495813403020345777838247890326091987971694025437517000104648879288495459961584240814681162998005384902199391099678405822842641002513825168260715612067153293378507367718181196096221571053503699718262881138132581778342600396563982080652166413759575589064233091066682747036588842030874803782555316467757003908422270603255248708534476805145620315400770433201055372986029868321383881105047118549045839253231805910057825301078412504516114435288401178484626794273358811853195747858578433825384034174335453723766249403275182816832412916841682718888564850277295618102961671049111791546136671115457606810000580112616567304757312370973893430989601988516459279589747208315795181911679720216201014516177129409435714217653629024591597932206639447355525753259741005253213220142068526314120457259964017869530247853313765301593840892973943903462942236536770976673415689235504846423386101266249385640780101857298347515291416319841602601209646876984446648510244698398431484468759488283330275221774887594687675125836924056520850321341690831372524633041028980008348902989852563268422363169752462243444231255654110737987802908748680759310786494995627559327461416542744155237507011117473890307659440621171173936085447449039804318105044899422424614567206688744177167115909459857022994922453033382712838027271625373900739531905844107984406897317499643905790502306931614999432962316117718428664577837271365002464148911979143637577954521065258025120933391190500871213235931039859223128481084674728714675963832491119182802354157131355788363285792047303277348269312333615503439050376310148818846298956180803267555057351891810209591675669291321951183240201244012001497907798218281598724412920160906296916933861713968923100003936466064365459691268874059379345449435466741882857263682104953085903550329269369331831793092983804048444823568550990509339694915688876281993789979327816416381535940333458498508197305898237471563132527017853211222725022097372262893129094345363890577049897744855956325118544227085972862755738608930294455398502058289627145823147139761517359324974429480424500880201224437846704746607168269143212747971827230782922647580790046405998029104588763832447981278260716090772066323223442676533233590371883159930479059615178781634196641228659802039865682595845038407843507339056257827970301937204733425877228135468275922379278970220022420904280626877268122446254880130081608983709071778471955808497962920823370377440294001850007052407225131211253825008825331550849604920424980864784414487670620483287959369630600128475850972768397818294005901403803670255504039251240332682180221010712625696677015791470399804513829298850864112142562581171496473932438209587221729477281458858972172867773159093622998515502425125133684048858220470564152493743631176298179487695847767325169884297106067481891742360608104581105401065998683809204265871604514466305556961877965664418635474116089434464215999665550801092671154615723439989293502994423780888353906589909515890578787736128933947067985807969432950385947049830533786147758446949250067693263227659465390385800745566632289956674479959308874439447422764642630916012789249462645223882507683074954857982864703847264499723321086890841823627461483958562850442445474601742318260456023400498280715152061732569049803855973484527399578878029698685532548427215440029479053647570299531455951462718908158037823477661006648763984389151384073725947545998186135640570148120457110177642443654431228135535210744362543840302243801899396978527590076009850419771535380658858071520944385766150276226330924747940221955774135501727383270770222397078308533109580331526238791217307447508799712904826013272988574850054989410093586578865772687786673055998065574019205339794481759708475376342665270417961249683857074082083243217778462996084006392090850366372621674673200527097490376328693588710239308385484085145909397187732150500801521375682457916054876421616014328311509088481221109961692093790332757734848629450385232751600109128808043557453167732146802133910691080146148382436175518602445828459353559439448913468129349364619760749509282574158225786533409671226861134684903409011880222817076718097714196420855320067540195992520229064132020074098658394910251846988795229949058435042934909595563439177518826441749921601335070613068553360037202791595021187670236089112513078040579538705925811287860871825385831843458420911210613146765679990388891526811910953915328841333716461068545299199212407785647206381443275068126377172188644959266072550659285208719608359526991464784369109197311383880880284356926390062863764774039109413323318574612443552970700656493758100954727801707002552148935122072054812400350574923263134652792084930537742589939052469056763808058510461608268196920559858825825222972171956364198853434894001999595240836577192610252256495472878237814973718020756899166544036806380077026924988519779246346308605259867963238856725646421700882846532763523041243486200149984669976929568369783533514275201561928519998591855920173755706383870219847550599431060759101318456922343406209676876474634913597018533179438432942210892323129333578009157890119009329014857509337766927784846779242420530062959261983581694763794204242657098937071994581722806780776947675749386899994123707078697589996346131783549512005801497203499071532446598949195758653091472107773208688794746967472695970870522391681267834420850249212994817664728555913380748441312538213011714739289592843722230447615256686810935690925051359392504749827404027464459807529292870083683506030431379179193338048768038801927856056297873671656195553367919511772544025316480067256081657402764943024221584201719604552624007535847873428934730618516023441236045083285517927321925602259035223980167026656309829607146990506115419205982788437385155262933519823743377331941522025718971112786868311814048702682888818011118227732918136597764169535998863730038217318975693543923301294246304888187132914587217127677752218010655725472818030108935864153011190574104931273190603360116536802430150219912137983698965087257569471773160417510460455500928312170940095430106699249187594808481116583371685145541744040070251628473829040303342255427646371630215861821854979326226701830772633486949067994699905417359643241648665079779512112777105247677509596038221479353723393016807584310916148304891771242281235246940193958704168441496653579843456640979254081120389125313875529781660058666749792321411674419293880017013932815201324391747608542423622111584903920579204306574405779373244839783822292949889673300334334869791329774680173513145115483228879097453850923731762467097322126862651238219604952106162648477821162515236739100092306072309294530191290312361053313200354831230502235969462026951062371168848570139148023093367402613807746964338856379410788909291663130975360933543009674330617396426925627124446357867019901558034448320397863625455183098184507579083479303866497605872004721514859572535365492071828304728856847473029597047031117665546030375663156780300050563858246251695765506213531015152902154670417499176456538283981352014204826977520850141798190212095669449709634921240890905423720052355540412007020742552322132650368604736282315454084522276681544486491296758211683665932633867162016320934048753695481641562172157174078817863828345860278462115313183203316968652393212555313542707190435316138365170264593029729012632484253272860087277551725582419624153590306060546892556507413486871197960157058496991770254304348772099408913455369756264856913005423287417978664255309547558960109606489347624577141660756590159646196742898786993805535156941488355546772728700314497814908684002321120923441976341827836030586852573134691593750536693668980618533104291860441818992108181776178864090532214480362339152634578406577080855015044577186614672721775959845835496903860049330172009728010609535332796770368584620648008369336751024879381482527637631432749029347504367169564088440069644246186591242939336453981688534151477823148334926673551698696023935569298086375677588993442010031097346259386384771309778771899205844643150540489733549701234757249055397656362678905221778418950209468948202750154250427201860778868632302224810651842493483472870210395838310193142164767786221239891804999384831765381883783742425410104371239372374033714802529319190984985002140261287607831381314518550839680874358231259284227035307245833917004021450282938636569217982271592168842005937847732187395452850318865169642773855519405166919150176975358120082276418546566660304957289722236305955102603382551926895185990020041948310599771254005055099458199524870567854350706994746174220866124669064266457185029684465984064736731913833454081052237683079297714052997736369313367231388590207136450185427268979617440080643190754731658183464753932097798152250900824266200216016394606545227888438002809201194209403264001906665375789255529797370510882794972222825010717579192842666736614572194523298935820069580050716530072462902378656850786281714048194322628815076343493176514873279203338868975827298979974942598774308724711477823731684151480932827715520653161751653434465855616145176113519401445651727838500181185673092912989502266122627796943994463449980588911667658183643308694562475840949426149627149494204951228376958080778016515529682831758136795976208242654064898381325741621378053294415941368531072656678729057117997028428305396305202282018513799773776562619969235207390824663027064676378296090745841583329705672323087987388455655904971663935818816129466867685425399491903186236633439445093029073302697538443365107852578068437710136793580181435809803750346936090252480405189560776923398252576210570265745465632133829017143542491461100901028521305540441935133540807649043071467694774147382573236131890907378529547424303745838511708092278807897495261130878333530351086845853709092941278629529611680646866064632595966801581663605250265983415648249527810954254540287454786411085515641305547501533725817528923270912195754619505696051287510248924398682225100635162593462720372587719938920446894602586508841230417534154115079062384886164035985160340055612014303697737062732047268434625071071997997042084211459309349465826547608826084694462333727845606842055268825298946783353850410764727399811908430931633748936402395799423428762041069067601864805310728498823763327141954586666528142546157999935993413428093103540419055601938352968698386714308302313455645650533231222141740923413399969078150529851617193922401838755820041522552251709670845101862399421468264877408387141754031806081552140995273847650049596094263197150365576591449111520713367707903785059947152796064381822621835890566501577805904936465090365489974676668931203329209687640900542696050200808827184501159829057077244609583626064966912684369408417289554526315237476903929128918135927713088457049979660748069555761693033047561783805997756579871039136568873403070634963993695125277388769146096068449908353743257793741183140288310461115655729059163248515582173404614241052242250924925934196168115305308440319623197344753964810022000084356128775702720490993725616363992546429700298937126257908092137120244051032139926948603209334321966554784990689212985394397786175882031635775782792969829154597004641155837447575826344875383251698712429060867263308741575738149230888643707834646210395083437514980346331394852142359265523497099039674845374888462077711862631965384660968429078966449207032538251883316642991409404111214700697893970777801424154266417608319770032034993953124352416958551366281151245470968544289945935499847753460971040723375049714718967664120994181416143701404680523245739103226119597081818542735183035872785298135013624976999173701539020120658672728602464030083490206752285871146831812131097012110959325321127899655739909110345975141230306656430191572188392178837915050505515199958584497179046602418497730513288488993944290462831598111923902596205847814496689762989750182089967372073032059016709191565366569928225877991990671526122424819461361020931759959159968456326214022214061512772145647121919001676500217967027388634835049155261043907627406146638068390695984533160919141240642806498594970566472250153668223241235016757531923126290900878782051131491011800424591904622667422999842765650718448459261904673550078475845941445699690443908280754210316367957046846837483347712804735534261947605596705082869621235314796757688896073927361750172060762773395971496259889509406310868929178273557780095700904691502699766680239480473611677583281178515162837533718767387468936621530009419526027413184543022664258164238167089760540086609091479694507355767677241220378291998430409212119514560963167564435050660797960440391720104337927702725061124005156152962769129197019831656345429161472930294757592281775071511944341307400804061720080211587375804663719457422555083549579506124597104262574846789905014924729275522998540979508667786741516656469341608092822560035048127083930312249557087183962505417850285456953054268806123631664231111265271633732085411974706678190184888844034377410505549790728960841901399155442555212806502001970628113200111925109201656512687659930726259039695411338609522647303487641043074736241305756668569571569714335783891705751277880314542499197757375123182078091979019079420542363383297446234380730612749234837538221910519285410987578576315391700782165281183877463113823370188832499588590050238593710247213169341847241415397174255292280221826476724793055235028680399721940083103706173044742425112571359827056925807942095364586268434909185969973049366780719619915744582906836347333928457263836505211492608757889396734758428114691821356795666673734823259736972770201966680101346104723488261306976391059309222265532440411963671349173102163008332387123566559313806278745201229066786225014892284406294551632377270338509061189517686727781759275050150171566883186324046616245873192423031997661404419267128112501192899996026829433231122886732324511780330439700498800409699192910951918301544377984885604148864441087482449133898426504785613875882987703005418420959560900858537973225676298669226054743196094148083253223056588134801707282589720449922825746214059294751166195891471826158933538843320512687583422639146031820523377908065602310613644470781280668916526592075887536878268687674164653079052210072735114254236076134047036380525047173599188059943991412878170654690454436840214087160820824911988738713610226950808319205120978822267185362486013794597584473634034737635785070141385979300633790744463873092805776299362939846064772673693896782594318657629388306319071041030250259419316197073734293966473624350181118435702397912809129715280687273626033412700409877057216425408311038855404492100406903926990968836253225824766592281617704889446718877632305260658789751683679684588983680615056260815454418083322524791252485751371079035798782537088537838082464550656771745713821936880313200488388315714655083213432439225060536515246225106718436863796536362777262481342035052286995710528531169497770168135824987239658119051088811639236359888291775157431247587236897773147079473862251866186119104755029753844546622456194146694638959116643940096296023308586392216859377808470376782399289295841548832984473855805945935320314842566177946938386069069550506215967160684455785208661274381468720443297993771763247114173999553331296545058901442302983461334180157926798518007838989734873110362344863911439316588847736766385090430800965263468031711894517497032972760048974481060184888741523411664565114689687191075036459785265113759749662114026886039031425425911091870550386688139602024802797197473557209975760062822371253298615389522611377946936452278048764858839661333216477686798635534195388748707392941322916617515835258425787335312451285450041551611320843694750054618630511910388973179897829148776185443181573410672042593659776455870434033727886684839002512775817150879369544668665411219211753635507160347174999445621909897046319785380458626698586130212330071097744285178190771616257209940633462809740823724930791529673795719094742255494242914450287386223587303266629566848554001676677029575185659615450134110633288651742465637403853052578092699767866495771169857482140672198537004766824493882081154210722630518588227490085885475342200079257620524096829028417126982340416404425471822077028147553120243693589726672904404441238575351290023056372485772774635019585176075571671501103145599826478363927070475624290179661291693814363366962610667520480995044075902510374438572330555425390985253336600046018176698150998723833681000169702304938146274948600522887464609198537648762075339195282368849657764778089106013852018944822164021617038314126740250816121560371612705075341038951214080307543014664596864771346253950214441229566064806430256558979824311935085074461622531450176504104809103238840020580720579931009029658597626902170317226138316883488739612265869814254771551904948235842468423673823527269067051138285197739079899810415834014312071311045048249832160282660414196247153303023509587432711235117589875133784233245627942504744688083799586102044616911093998422245189630531849254274572705420133094045304420864149179224274308175813362701299351722538033566523069441418666615120025450545668496395251297531906749299951363821891339578231763792922067247266702848243301973738451373121148065269081396719693192209806509159281023857432502324742937100957548472174912808995618979025701592414776831338841427598330941696984278006547813585776103431610541518412933820444619273413254698205496994391356875773996798930592086912284396318981138637499039976904170033648468196623181190099157495651143389101098831662406907970337250800346033750169749028918805134826915627632496562928782879148809924518078242617281782726994474960515836578536638422120450792458898612908703340045684768131256861189348341814229000210002294996964983689432576937742405222084739033060919582796136009171450565569135899884210769186051433392324751188571053705761501575292673574369839804764224898360026412222584675572729811265013096711628876871521628786147186796480614690438154203826460421425873285844508106550569026977776020161820881261456917602766787096825163152815329570434253846085955124057618676909517656466886434425536262573719640564594352807451386944992815631263046452396873119389195406407879484818785679959994663787538608874312480149790788317486128214813907376100898024707248759159228397575278905635175323848119800400646719851689605663971950390815702636707093945975360084766860959880763098575484890469961719941233522790122083266879724814005478523816076517749140877290876922220561715011605568061718412515553360714658434068579838097931167062339725227113049730800473552724411877803999842040960424966656039063475238239526312165520137403476161907262970933552442990494188818064447041102369214350175631128575342104341573346417049854134094621770886015496817105147784089805611780438388619539816526117016523269730851326108942360882101419771644872035035343166114153035717470249845408161228888181952810065479027800202290093068108062955553138941955437244516870990458125623679948987369327180204553320785166125411285221610766967894322197971524221971364830806821587645135695293173451710917035474880564646358726266449446719977399442781836142990802783646260639605016834531017699085885261835352465200367960426535829021699020657136992734932841278321626271286771063813916987082994231543652954584185373403996752814240170416590759383248554601198089144307934577306543664260692553032218676651503838268517257354704750789374004770782518462070642629764789884393531698875108390238050277623443100044122514438480318211057968052547118011301321717680728826452939772945188908556703863295894200901158056425454833292647430088724625562685695065673940186571486885130393824580382312429409326359862730660315716072275317110528827399787379947340346379255776972391849735726268640722472266977744046892003652537110151416854614022148013102260497076296675478828381329587921528188311587181444707292633639014965844535723250760050830364692268609161150271580424078770773547658478248014620332391345168622513565067450587628134234562227492470958672183208364626761157941819760302558258952817144938597382954129489778080654830255383016245953264971563067386493813182850964685990380285250483928398146186042531207503838645482647417022660774376382694806010772772227430828099165876994360392805326450537030394670112346680835444261057093069857342815866513735472105686024691449001658269819144136177276908788944546307304894996221750492021577386319413338357487675115525413682001365873392130842521333903800989278266094514915246046038382274363241045175455763488950678391959159397526497008247806409437566029339253432305589329168369038887662374538430013235245267675292127312135647194235324580813111687578425970296564320924293871870450222342012685637630555921359124101721357204067897941612866626246009191604890428408572154545584819335913018153064819010296650263884003706078065908524837808649977107610344905173567853890007100568064028897841615577408452130414050035105641677988714589310131679375803355605862246797855332329837847289613034870249451754777202277274345050121460038163842726796925938676140067114503974838895150694801506629315636586846587079719257205235296611824408967107453761126355028994971087845680527575465774834635676575512008346952697108241110239125645586228683117425844822066991450191708239146026850439389491292582669411369633342993051200183344167714514813992282652885263906321386812643032048590405286541928970397480585904019755638325686877948043863866743281211007729668437917010572137584950808097122504030339939110900016038131844944606936968314731112419086916808985119464087021889727882421068116177128494507092041695784611403726508538511164266098749004780389043785959969637550801600490146961715471257292055404021784232331400926526923216956196757532421139193310008697216096002582700422481965496963225871503154452155508761039467529551388797477650333650077359607796681055245243341929317773502518764993173901513841518120009599760646602813512648960622266548078945986434754328644666731804302156987821719290508542284484650178336534775663564213764934005399659763150926446105961296173123636504425329847160587345667812123966888832071144123538408673509844215421131197590055055460346191328924660511103720686482350216870817034997693407214269043697602616086929645241903620715341981840069943135872908987456362623245507792417588520433617633148938241798134186827337458127590622300540138038166605818228655411992740255754397388245333110684850422231087950939053352718152521170478017184779787493056685441544154882203384666014139804569775687338121568574461975112867519867672801616964466640805633731715157143741421657821918787467905021182382804950807482594744866873747795676106153052988804114555390564509169143885704505338965905288388039132052814243331552208836772022343791849972985460245146811207252493594395136366982289485528652972236846596044253167476467483373190591655874854707566133718917762192225077852312298664754387866350855711448779305487053966268837301601173414145962445229336564895967891849891879037827648858102886714883759558374528717193586812414500240664874072317802123155458179314637897391349637104581288652610820788014728268077710377142496761312730380353805531257189102461719915006407794893985382154802877575526962172125814102551364757761338460688098284014359246282436290787551636020183223284465811860896189573289150135181015815766941052034209475232439205612204095524703288646268397737776438331109635364655448829826312433234090214234447682776985061798935912944291778002686086712576245700298015652845407378502580847868989865636499957530407275337045670520569136451036769456782895430441571302665470175284791545290878515047933611030073273806510129657069023236714693301182383780130906801935589859289500191903440869678023423962523134152674008296160660599986545138754682992201298851256189135458170980273920585345651307976837614839143651998709067472596030405971872345802292977739637605917140029390107812837883047237420324350509181101800784888650702547153244454151262133712354108222204256293637602121168438178597333480148162090466489862060404975491334653856227888347230533912176772062234189320267337880765038470592179283502040662439982440564984124352444342207222054924131303334301387023882635347745227525736399639846454836451186424012474777757999716557882229663251771060361696504018769217955263155113897201690496390403951430873513394685723576375740385676960393245047428644756740325103536479689547294820629558616211582894770177532958337879191250496537390837498825276536083810145475189295752475601757037586721161612658289567085425521047861634199049274465520107574383887981683274842897185742506372726402228784938931869184267294752122624764916500967598278442108883460589111794100200721157024655761488141064363918813783449185453526258622426595840046302382954992753850357863498293597592362844559542541936190535052058789647071518271238626973530731999529562698342829826865306185707820901128081851935347612634935757446863283461513356350956399160372841992906948654678622271023867901957873166881009603066093005245348975604602511459421025098755539004957452076560708792817796055721314260045719241557517347051451959337492512501981649208042174143840123785218979471331157974922570213957975702153362974115028151886022124530859731200377507802023560757778606042073357847911470339118484978672778929190520369211936392656252110587776981770874323358229428196657963925220917967887815922084202922224924250485196472983157331797514920369862078821850187610590973617459495968282055499914362652691559142256381773059079982034327738070933040445577102709797500087571806384856531303621638163644323467004842892930771803438892207991301548173930681837507528821985718232795857590583477345217299044273546568741588980475663610687538735582177100560911851276830919932556318488367342039873343900875370568779547154052605519656349055353670699253813083548175132717287684471270011013635995531034079845299053518734397092892252616409536549113645620940201633919663916126299423666566393765882538918036683986089257999404789837553214347500578756267815287422311872979480889119662490474970058405890223530429621295114184937669057924666811717580117396743720760044628095287344335779455649804611174533240717886967321028728846319105686866173148628526843368785950535553821245154103541374182032825586374543951255533121040889995898020163181134810061410387325529736967523444730538249693575772172874877629014908093054571585360751367277807407239435353096593533530476220867879144943941132702564224422525555109983649365683152915226208888108061230356413711536214400934907293064245699276625911599957218241858159848739395689082546343298487949184420008188558252753784229672681052187321767683165648657430243469727412832712272874183410841593703895677566978401259871872294511323844428158768718375645480971194292901156659926186333025671888835921657123234967062506757575120353459674477649734906240017262098571401809210699862356905911268630474217786453334440898803132411702011786297591850011513413797962823857043226503827093149235159979818627787776261137896829267268813526575603068968226356348076979817496366334445328446501472693353289808741114226270319264883820104562842884125329078994367530760413522270229145191572477825974672645179386326860323702801895205299300174097425260353009083577220828694566682052373381273399009877638501672654152996865903146191536466422554036575073198579783050561820291377270837920885713704325082718267467149036449879870195919126538808347087188903448383681709456332721378658696081489927274648222832829959215118239327339567550220058279426090386404137885096604948689645442231469774416706443397724080696127532545421072160784447777746110052823428662997408509477135296562011752595807993482072596513340152621155301118063171525761376660097675426569996021009413332576577727517577872627474162442963352037475473623181846122617370585828906743812851397447956130079888193896941943620927610758955259712456848643529323389952021232371271398887739463907898710621486399497753643657345164065111218737881250804961258545235061223771568646658214448592025627468082670027554298601927733924500209628388052298324855962940456151662060303644655123453690571161058287763444368628338969198492478268659844032852507897199947398415527750552597045507118319973539991898757315871399436253951509461959917399473610463521435007108655239242530718139895726261219154596665503665869044058216589789608064765042115066458123972980414688938638559713034022030120748011653889513657361178455332977249685799995337474966791390037246345255446775519867018289042181633119250805584362242531323100717514767761670754348797526846803094636587400279917336077366824540250476267464274313953232190526769062052046359945833130250861255973601308984882913380561785813961461192378451975004378691215629184191897292682202215732853004202278525751253966050314463694682516056087119754078889970542306172358597696066526979084326762576723823787645429400300956758799880246688097301719082559676855287703024160735308880451591600716453791054115662624020133953708952405729396662056669914137849712708297983962084436508474201549285063960230724105205766460830478478119440205629359897439679082734487966447682384463790040609178448203420364122974269682981903521053292993437967452396156827901813449388691044486464515586067076370855254748394252813578590914823953225154767138979410072197566460056035504330604155203354229787238600244443436236368678348577398454488329106263851263286898377778455980509010486867899996903375313120707338448038370366820406134152088688715327358141910252271154676965574076272308862960773168776101671322905976775776351612136161352308197852246376273377004630561533942598563538677526776886092040855836102079660294100503422328381380636850199287706111817760998371390981695280717859422091046171877243772656622604337681266292720312449804707394539797424247858261080716118524498462512984395230175696689672229812615752768571641726975342573856258914232275066614514756967239242249942557501010165296382920237040413078268234874369448082310057959284482528335255347623641442786071942981027226083897537855708556981322405543552250696719373570929302071050676593683143786890933471200419403107145745244779113742152025175754330196713806359726041456596994675846326626737934525852325772675590220199404492927236975614690776153272584214146975537256469252721325537661904582281167061616436906375523873680271052371507532551043024013213944541906736663373816713691445383404838955414506632646130094897739394951128134227187528035301137165870365685536302758077847779159267015025809606548464835355754218086838100236990367910738391350516600713624052428236899296676882403296160064739559597756044403371308666901990749261408068482169271622710766720861759860275967528298616538771429685879609695174178788359887818547696752883569218394394518579908302881406077148488892585265142625295387843339293665012471989081896940055183696688185777341243468107780365315503334234422920258021987582011140253088697435285595234134052435923548092141329219828764451599532127321640532986771848344347855313908408354550086608878042745760063625466228971759725676146110415133720849154702756702575851747358579616242752859824718680821764798094472256523691704076076016566610787738900396332966907917297197778184718258732058992005704673420390125174471927202465117184015345068774864817159064524441869007846227166562138150224268102138142126003436128660423177871463658338798500564566496196272203354751715080989195280645993249969623225133573195007829777089814141062132606678750951172003125815522102863239612294880762333475495467371798685561345581651874511333322728161844328369988182368040220849982871376601843244516238707538582679140660702985431110722858717451805689576769705832910744540830705014703596052872696275759185205317946638434197498058973169280449524932157103112204208410853310064548514788926035851894878557963340593278953154249951723128437310775073221401384387787207464473984705025341588803889108303764484705550694426135557202716365838362431122281097864387443377234995531194019166674955186633573986395341319629484227042495060868959094201547775745841524374503478915746265960409427267857793963651172289650363903643117181749227402557108519567660491201805409574476799984242259635587242782306532358903631640503051873862656866002701108541260267139239784714312989582597977305879163268333646791930880037132210339714244123010662200363365380835222987187746014211816380173897096664974775893094919255830166858260008982113415606224475440932174256453316806383579852962885294200631821662213641469200092880677012267315822799767745877169183015684993931081201197379232408702737223808422923971434065962674486021934641788890737896161588017420209741850953485332044800196356388464804064506662385423595846186909373001610589722951192839111784646647915129659468787083058138170562219941786739250709178196018730853195839601782107774160757540276379574795557899695814913652766918993575044659101613773205242719662510194880344480573000279557798385966493358971150178282395736151104997057718022044603011555974541703270796697311271497219595551465048467462772113281253433161752443772864333237086716854434071857455877034620078786586280183524613223580466703552995043219449923801202669074239618292991181186371377545157870384258674826188221499850129929067664666145149408343155100259203063855366917427990564236979437623288466128338069053328681210573414562058308578700644859516293499741289642755256553968809521605616169778918913660392775758079334550436598309105365391014807939850557907459480219746784446087325713544655175715085708857801119647109473208200384342748486597599861325027907250304086660354890662494733024486703051255075359531427011286518240328868171251032889665898751283475478255824473018741797490521940858233343159579373380856407406080371775289543779717596424132921460708401621065120352161447565870782552221082127922066498752004796798314143545652631471251941434803835902871658637195947883828339575409849144951229450938986047505293484439209359263487601365665844233773921680624794667956412646984990910944670240549732212264484651767697241033767168858343973619655165255655720530579792147183370531296482995467879554667445458753988110574873582817429354086413455769899194094038624468805612907222807731516226861263845190443401498685593906704159137399911238935687269832412278247105316989973195537956046800085081403184273100770566692805513824636592320834776950831453474324989939215368832510928799359256036731137738717942506130074675420202103254021413903878162784161105933698289025165513199615438567446386692104757367071282408546119847928754093982393610627310603759463146763310090417589669909396550469704829372822424787238273237942890116816209216757438063933834043954658448784687626932818773715564252540641170921202695983316522655924114655534327305184288163778222871714799900967308032005855482574941580690447095272073045540609880276098208078163624932795487514342715308287931001724856546553145150036237480965159205233656658285734064425997277763951086167076714410376891997201025295469309342898802735115793849274273084385094386720252478379542795563150645472488136817298298455229636064441340208463294370071241973215448791134906645110689403250893972252659185820871447264745400217473768514168826676237920241434249493168263467631543366571679011674633306361641041979086823405222120387086189765360674403213458470327024572708692062453815630446708156462931961258299537383465738533295255126012015956039889720703260610756049792673375737988779107783520466588586500386087602875781789221388899881551734228383786398006918675641143906538315739171480446900963164091898752221067497602496940155807485615148932674955896922444075545588986758726217173448450104980118488732298390179197232405600719937407088944363833936805400625425615881178290712767519077608290732664817423388324546110819446628423603354591409166058729286880057150639670197199234598770236343192076444344785378559010437530623270694600273382935108292944323988145257834949049417557324833732395606160108678724375892599308531044261296767897308022730232201839006390917698597796445211994036085155110583467013196125954841001711646663559507559185895163558466769989298437137248361063256602622662197927870484852438709067984146850834198745968998205962241759921608938696536009674143503418947016513409760637703800253147447488051979026784934792478355429010453448067567665420196400344956099755965432125673676422579872299581331355063637833910241986017456324974733415914862925712607582695168997522144877513676878505589174254864240646145202610629855996375323643091336177350543980298845603602066488578416556945635100032009483661298964003123255038670224333977963785742968424465665750915575419653963366654504268014639589336971461592467920163397755984082730945727539007111914729413227118846777783886422903433893745403069135552519482945141611007144967957897124371738814082445174370435125185087829329179314501462308514863929101371528484491832425886236820171697923734113054873774456408215694729105476597405632933345022383154251685654031702150349580084695221594212214197265011456717539051378002296679771221189233440804817196166415768941613214891546432564289646208137667389047931746167599468332422570011488884956137762522110499510213266253566199800318136341931618949324431783507990582387325856372900597601716581489905946653243654256677093500328945403490301760308049613638122792783880021020049022794813146265200019278920320031418444928755082703385947294029140163090772219728339715597451704090237772798250372056379211588996727684112197818271358907512610692231179182347623013954792658244038401596063071107664151661952698063151078028661386240076844686652306749159738400760080957168811698415267418367015831820756121816723084239127809788209010314878288753530378522827964091197805833316541901456953978464458993989340924000421285008748178074252348501869809771524149711305799305420630663547490414091348041871755663444307721570763719819821798377659294971176671173998030179498932867582673385479154031140224206713714959519202505989822308055381982035752582310640460914068361748660392304229704087546029781649219911496493691020852211881683333303804430285132769113156974473596022709900150748612210348312829616911645234969624259137451607070294789147522000552662297897456162212211486110148440711317408259261327785385711295120419398636016446294210291160089210322103336688954491748548534968612964369937863780140317351740510131901679046871902254257515555669367342394230821705040718310389553380040670131444515303489189817277574021700876615649750611040874865760160787245988733578080734438115776350659972673522122934348689777662362859053053752947308156510969568322171681275979568761068575308384854730617704259711157621107354394162209658651556815779039091505937692027448608433406079124068875627361960710223096073856596906597164540603043111530556910311659361245060352859892275373333824272109033513743721773368853443941075981158950473065631083300934698853915372071958544449230823000794396187557685804806523288055217884585159348191002602382968303467852049349222442429798157556187568077930726445957416229544880124116419949637319158129007203290796507639931663697080020671227784484564926297258552089889974526787048703608759380902420580725235563668631163057388131223252285981602757243071476411199239415787272925313203210949949888128286374032746417114492666817310644369387179305330938556415202650006114463320549293167575617322905656224468469760122856645335290257788385547877487147306605172043335503439263003375465502077279069676270040061726070900635535557242978645346366557778962654485567642149470558492632489943892080115779521273083742034021309285530814510703818326835962279069200644394571656936065439312487065686175014121611440418212449428355981178372300424933839683772954957158666529072795204205503875030372723599727303765900924403963836031897691030158536770124935141301865281292322026745800776990561891084892559882557789422888204968898381179679972007691235859580865505558640044746718242592841413645885642016545950892413992413973306988452186818142999900090703272790209721169385513755736698950944793375350816630340293741385825295560338965607932170629343172051808489564217147509481731292007866807956313703901024654857643952465434560016480925288455111440925394927400796900561041087059197642148475471697222701614916952715744255369077170067859776523596553597985311503549942077584291728931054191640530506895988019886672037467122681638369030847063946795990172497188731503984005168447960596065731952504735068248219385206244734492197680306853931972006672816462943719007002614546629385177712040411339747637243151811776833406926876375026242107285213147170825765217229011623217762391753537761977656306958974170447369160182813413568057005029137051461648738464927915582604626299275885049960213556810779594008430083560862152515396932627950677289497853146696127965570756276742772691901364292992401974983774971050217737399166602973787999347438174270039525657866995292218872511866089071825208305635577377513190636669768816851044741171023959164065112009855177614455193413606765325076615228353564556508056900790096462455503429265722387447994160595378411144304996407644217448081744159118543481044999156490103046324424069235739292068427502188226015474852972568399284891272557265800246099889429757960479878422137120007915380524028720095127584919660145400142895600259859066559610093460960550301756667814949634108062598234172701392803272190277714198335572129821379859074886732327043398879439163847590541305940286008550269901676918375551926351393775979156452752963679960116528846153608109803346471217390012652405016232665497228601854859220698505488721481634553030845332412605633168473227475239503513102347542997234570058224881369146652049691429194250323027276645730700098884112502175561612797971629315114371851428066573171635015528083891172737139551009542274335109510561017930501746641523215878523691840216716415753925164616607058518512822890374247826935248061396545367580826958550351877466736543684872944772187778170262312233820892141111348776423236416601393235562630169294591393943900791172428507659070525509641512072264688100676500208349161821806996016191863168400657294749976284881865592515184540133372582194816801812215041259626816575595544255367210202135457220092235272688720707776367220246592378328720689775125730843201397953194191956772781016832552956190568548167313551943036361200282274021309733866058142435972779702762579568710035454188638947193465656495024274184788419858635606249643700924577909942424059478929527583141273990056663408728999697674137526155198400728712377382824264349348091149151803067086225957639464265508269514900270167606801751915370320975580761232577798560679278716691393316821770887864998099469638709690378953885836829168011317701358084239767386181718693623200644539887153727099202527960577473879956510060469649902344744760166405506885006060524904649275327224587478779905664085307518006626711542645746200052972336300905292553119179362149295025533607610187670758876091186473267544627551326614965393284118264127657338142758510813192520224188500753252405478586917414309514883666421124108084766844723820648269601960455981352152570582134313274699894516815017512109817352245832749751859711501989867726385203802789717050994703012774596174001472663208581628470328222362297372027689222652596553349873648691558593501211111041974862069271393534051435520549589277281608263013371028746255352975046797723584769548206933208522402134863998251121592544259201604374631512846290953398452731618321793069571884367622559251835324070671043820534623421299774703292787051254754883802153950885565234297105933519054906483049015716817779749178086771529032459755503290596134482456671145611091984630318292221847123027916481013510504945053190545557790251867498710268884262890326370287983299585504964236347462047914385310768456826604281539521101743411778599414525592437782771072189393832909206164486817222952202955314971607451940665647461820334339449181362536951283950958567531340579140545960353808942712517900940745423074910538905416098248430068588829665198113638589342021357581287870779192591964416789890049879328999109645354506118163449719146812217166617443855380631829594774061896440483624925356343024870080296848113482794701444722157384792945817575216403090911155811778598981986165616566909112118178967702057227412632875028117843237125751272614369010907402176318347904100616231677912761860080630840415946849394142004706368076545898306070434672002872837424597918791134880055610330121496792612574792607814350768115934495199615915829540805513349266853351152863581749883895962592842322110756211537660336032912583917317678972033219694754642649645471411264592147642736856380281231014228638339076685234840376273071782959811726885399350576113788371310812412510750230816155343602318026240261192350894942053545063877138176987061258347642754430512513861315669985700009868660802406051673195792035424736594685220649736985592097125883619733132356511555579172137618211404262117247425432883674571972680062155246461517947914066200236789340760995942908263793827103767753715379334635321293344606912128628844793239925517993107621261352381607919942991693082839270753158227539467314799516389209875590267741347137682601978766181401779772878121128765175867877451244850772767530847924142445839214028293089057637186537507877517822994289849804405072131894166240714033979079566211804473806688817103342355117331971635656898855806618967642868664398686314032712396525719942806164685633697477600149805820838878585598549366577858354342679290821779339481559825759503757759743525739485945103296729593592087066013592680810229408056041459938886655064607170520387671268592848482699451447670276729876371558668807504597657585679326650633876477489909751334784318464769805086990919802096710277016050618111422366188639165963694574579017937191818921979616969165059163637517804486361548186706324392668036706889583874012772146740327486437522035812399262592350372103763379368469373193425073276321603366586359313002133715025201513257170160721728626710673039866830629821479651787474274903127047869676842623004243167389357937921772741479261717063478641094655407729875195061207542113332710370160494051343756368965279144272254190449119822466901298326526394078221308648413259824523692734757297052542088104924806940981456752483059827767933849334010008141526354769721537556339279316130485008620812318543700158421202108589951811543245418093059349601689228512867028847350951466842737826256343880416368087851660697953837081134532286092332141913008517463811953969314900556517087209768092827512137193767200803635634028941228682979975058553792193879700641365844274764768978744878034247183483863633487251453083841730013047483013238544834725391139433223374601263544203085290954947543843437757296369295835373323594268213478760128531840669817791785266193688850895980637042649635550728424275316855989157590452118160113370257032166322409441694206409018571384621594049691706607027968345009083808846114020609898630502627048660324403323206273281353911715382655137231481315538340732444465606610191659721662183907594492213045214327482469494897964896966208439099123814484826151927649481679297774579516038784754601470524882973338453261896027407446920062492416581704044573151184456756390235967005535568518705627801262744922878461942740608273827870732466304773699614080728396973217333099177506885901848964831470146084223091755050965676870468497892017279859859679384560171394668291259856639266021412603382738295629225659413259898791414612237566876650897700635828615252398373504805719025670669787765993375057925276041024620162999498862857396899832544388562839947495685148766972809979026920397261101781220135472056367633357151040321889860860094106517945177270807242157035733187822168255200456721918825874938798045632411410726053270054001280360702036571787126655868669980354112918204828907870336488060801559895294112548587632076625080284727245116434452298091623132345320040425558363059109296561359910329472305329823686963996689411356092997394227942430567136683186521307396313469885690998504237839127590031902397490789177300837083667774559799277703726343062905440022352821870076596635792547040993507563296085560777447470052894054563320482288538017727991200952868196761313118474694392914849707362485201533085568972340732672505640527503659187377456547392698626076088466671985771214531604256273094900780710074043490957966697252739009266467161190592389106433720793705866394994196142247674792941646731478393471361055601358199527900563541636884703141897680581218638448155357098164503131355252617094801727486735002320126492008063843478398167025509959893518364486511884265541310520284282385572621601455718322810391877033392789215496036710611569167694665636740159711285012522086317261635460747057479395224334768827642060760037189303891832967379211006721692971934102110942673365846706613948438540444363117600539604707278936869196453912342613573463155558133768789812666832307098929703374479557828205539953349379545867363580292649502788566502338738692279392581392935197974976425659267575926666102893781223468136564642271244593614448004873810909969328131208908647225046134127059602293923000305893724815909182214448958375953172884529041619690994928492407537839466052381634240702792297686274503644055039210641698215569861066438596249303632273675480735950760614841577644288404390551419879835357548741976225874000895795144697601999278011359273456714772009863397769920176837615768811258151940862610782385830103719846986564215311548354764093263977341407147046497449189897163042329676913900651022622380574011183435661058059891539416784214025046722149928014876920134554630952501461479567921765712907862241539394807209158928366230079234338353674442695379097879048594053672573609767547436888454300106456817686963485273052822840271058679402171749917248124616125113935824725538097721489313334066751539447745882106899309995237344560655057046800301369539956958647640262306657767461602123871315980732886693745140297570421824017512295191406253442043009206750138511183239674987019590856821652713524963546701695841348893405910457631650510306339589675435722371532267913272069067994232138805827906944600946438840476196421459337442932986853722025439356678387468469440078162483162701959365211566403992184901854586486617725296924647825717467443356156035037493098982729202249201584143661303017688862532707035466471799402401284113035834026060243784125026798986995504059784649233825352198623311551115760904411439273996547128264169329843572194191435915768279477839587692535027470838307282776410942556101205445004681767934911211180352542446513983505842833445584937215818236894649840558010111496507518034952390852054213703309648796991366853908423271913070178990568417210847259985694251333341346913648634943348299453329440300862944280156779297395174788602397732604141865667267932222934962982621812279669557805945595117585225808160311508214054821837880132766701164388188816971713953912428064567219723415379975205573454744257189597240954285259514142554555587221485254632303396474388093855401847391762776185569240974625383080309527608312221567140770985262386888697354061654161710255243253795314329989322850587087878749411964546143853589322143748398060434522113258790437888130352801341739713608933499176343690314236169976224715431949586909292033681527105651533049360590658220972687697179544279537006338701333180781545646469766814671223262475065581334549668494815966895591841110117177526749562180796051731117314880590134085580747301413666423967391101957053813618782729632809227514324135938878440786609170612776582111345257145458932736180819491264400893095985966659084314633392762389900719745620834000302758067647504476092226257408978461172883279570643823482241739511939202685712961484342225752896817046581616820663977119379563615113570024096582288052878751880296866998599806070174302583611291493424374827421157249802283920242666611418778447070996884319528536530933208387286367553494355349034533048196427192805626559158573612217670453794319155075212303081046941587379322605920048863191976597253899854954031521804497167727907216687962221036252865290624259206658593373019817052794780206791968064433299058844928687259048260347263951824402268887734984139856919326513532960780549811849130314788031581380955555722940779727013010147042903192402727415624093804981820686235918584251102134435888217249849089151673016304357904761094804541352894333802243547000589782987933729752433612113382251887644403440931017921971807014151994009506440243157033009393826126123235671028880487995806557194278963821387484610865017349221325645470266674930688857010418078070048053182821292702822307460597157348930696926530968719248239406557768488925886608789610563812082584893762666412682380445853602818046390977483733457763569843049366220404451740817009944157019483290059867080124032255391006757340054121630186803081831698564625204399043537143000981497407396978539933189443193267401286981408723521119368570199007486500012212615113863643163601267579312620435754164887481252423402201293183639681011415865703724431215223708658530796815567067491958931479707854582210941092270937169341403100752010336087509757209621209701074082749405948088086563954675659318933209458354766283779967710277493126455253599198206462112672740369979722543284656872777181148122101468024348031716920120336811606900879796114764492090000620068636890806225578792340460755470911453569693655827799100580043872231099081576777317647498251780159770274202695572710871181364385689371589233429790145219302664001613408777202851334972719369681799434368693130995189902273131563674776694168454580000363178628827009474283987876392820465579459028929545134050002312417208744602668862119543576373944703751259031383181086719039429786647035382667676617396246031258957376688259501281518453038726564879630642634382295544971339714040910657792722595192537239323372612841396663073060860023176293404139685843120467693589081768275789549797024700852711035134396195205999559397961355189304411452994179967510321078787864273077214092254896261415788133203595313090073620097256370365857494376737940436743652198579514105937341378712425190100110630612416617901520617612157187308639534209343367815715502541307526862725298221905490824802931810601970788011725124752421738776268925535592710450196862069644241849816386057513079270266977191115352642293163017360113503344010124154362449162037673167749553884221136504468991654645441688061144953093782145485403489621835414400387502576652429905095394084108845622912045007242900694196622599405180247861611686443305868757217471377782526779383774819515410727691472437814606252031096063568847611736330280330597423992503203611351427429342281444243220637930121258615940720693603917763216533138917092031308389010960660200751203809657194228736415984604221922212224942581541092763468374781688878838997942727810611575993934234912732188186709250287742836912469187042576878412379630205780097687390261472897950516343033883325456904848127537160605512963453135766838810099188325670265229081637094153159597357023982809093450709507117262100987470325102814273831707366017341011359978060991714083107668685374674133280827135528717048580492107138712825401305170706972733994675856906244571441343463041642190739820716622280647694509384841167173102022674639096008676967592553339611273537636448617836734242525342948066096579296366097727751479286823959832999091215127430809135415505241509712258847860225326741705784593989669420245678035367735033381245531569429867667748071050453556926828836828777863158083861528876045632575154679511185145151569541888965836633629155736402806925829733154657077350159226849532610592173905663401894570004044472632485741453176838620938267353630609657156545770222512248802584157631473187127815953575778304751792842221309229336992663738641337607972756867669515323026150759274798787330535920856639320038864165796731520693616985712556302113805578408411178769918744738829039994405125492195742520447325727288633781301030173562466376703354567626267172495204271792744773931351060044993063933122922400083997235780481222614859834061290282119542607801975812590733350611428188623376178604387967380788890802909342489838084534120415319789692327132757134014984064794617329919330231920088777805332158265928668000976598033032951375938139297964877322191453474408560077838461369837251163769679213166755236494565743086485827640229424933183087807914163610036829578645208659658372722940970185771805212607093680655130166952761243218857791759903620746087103349366560764299415073592609727015851726614781351325359903816258254384965029828517866147053375393678846618409015707631275109185570705399375960729507829092084387638247660813936991800650089807263668145892651904399818483608792260511034971935430336004444648972013614318878700642987914150121692912662522496293771800499710196375079176538132890855982568782494186135386660043500958900547141215225530461923795735902050185575686523065038727278589519595597868617282191077697118829807812636652344922975672761803263298069723939790064412691480725898994245171469296558864508790629434472587259640492493061186180397637254663574481118656915155185448814774974356504952835154798384325785446764164855183076729539239447512460822067595531524618764295801759595475074761493095502851762404442940838200988655835206961818209311286450242307964906797663820107785235117776245860312193433476351297745837671658841759271546971864002316702999349585318615879895813302450540160795869352818153249750595946203857067570704008694046070435226715950282921490820246620612502515072958773945275243993957621885653162213169460605328947484742975940462331043029779076612252751843827678923018041685280495413176204079755992214143303497507031311127012553926638843497755438079185667465167882033750212330529190928761303885718507471738925797919055315984104267635263579578066331166516605243639344512917837701451497891700270544356091046167887744575553564178170430860742208471357941949865246623315916592784553639996799641647531117553476810402341504867771932953944990530991319803395555731479388737603712129135489457892109266111399747041559337018464712273167849049932480785067936256175704803694068633170123050204593213957418730941359049352667736967757107137549154395457228446829098346974932616765421270628722148580723028600541295284850682933492800882215305959309790152585937832250275266603320678690502568946790472170990916807790171068644536909602168046049487026413817962135514614343402094762108041519956403765577937059142251702543129300204183907562326001359857299013901108263064042460806965120262282439937224667874722878703228180483681708579315300988411492778119243988298300515227797632465957820024146373340320503020183997871100767133110353651331457943153634219362351684635538883437597142639631023558701406662069333195445127253064565023037141632268176619106262906157956189779568446617514212545098809038989131919508924890896064772870902039790364498723355907703602086061065574243153778081622613172716249700158412784322251475937641875949169547842844730370881638496399246970176243910795548611977359111026754449672221748707935023475150732978481174040501670473195355558875067755587552291712668593595330006706836592206216929124803678615536070663725298048075393655412409034588041963557288472689496050847245384365163268267117574369816524028270618900138863279943795125526192178674055299895886271133486390593486433975867196693724462294514793538042932348912255800343211235971426223056598561642062358371834174455347158467757207187478267426718312416516753556331177803567913992703124136302764351280505279805850646400293393692467117297871712659459736930751447099116241585045010938976156279992819397144434751007401581410283241314248045513477759126037442522058074714102164540007618025585894823409335649758606970125316549957861132633950490619374012271353975210795492735534643779017633046681457555655224284062312834902859607913754997034646176140646390003365241407929553347173488987208519719257744781971476855321935190638641996923692825749805551119557758562630961808386407909823063638786110516823792797600543463994535108279652376870352716337839825407861078034442410464164160746496063923573331054670115156538075244205145782456474965836990733654418773305140193193336635355282181052586673842155318040789508456297522521694044815193024942379064520980701930975198893941628342397767624859625943781654181963550922195584765937962303864799208431712752963214677302401739903091642372404879467331752352705125469044414525493424920897627235813065585488514914892813573657222159707478933073434008846529052127342663004499726214599338527758362710468045578931197309399229398035595440740154001866777815088254223060896960345459146561180735847647238441343138512834315535166875116803089043413751715645599207660969999184296555882806053764772563150621458119929045473713933450461165852801218429688527449665894641455769628984008002937209021111537535847209475017503228612400577290673635465157988098734926540558657072482499078368164781301249773817655224550578861501370527537045197979089735146987595076807131123261139798826136380225691885377723333152458718519833685487872263284539589342137671762155364230665882065837836767576929768110717940625966104670602783321102523721722942483416276491734133569549750700381597527733092689453714608767591035137414521399914987026182064784187616990886717067355926412024194013916819512032423118162617758603950585628854982586355585553210185306444865748420351441779669291634714169239533576981740342858197543280333926626432798271853803326538279294212671526796324433726171904079493560501127062812272299936576088884003743901300121056431111372615665907914274902283316083347012701036261742066653247296057013024420880990970760821050214063106281191770530712173720471203020141193723021661103631578276382594937131679064636814149978189110800140580085315049382942631365916131921490784003365984231029757942110086067571488487556758566147084208262791884223743505021790945297169738138930351529427895270125272422677477003259603771334993269641928900017245498401620402635679431292695556272268492841056256320067136853386721459958690055821848848148274382224171559394761220228094296126742271927695363134086875969081069253045666680626620582978735108584967262549790369979395967950291843837147221922126247662280361352230073365490359932560634742737250209044570927674189729365898632693629260934950954914479563815278767577108274798495030690261943504503877864916438041833925257985842077686111745318416216704403998281897495266804679494577516507324601726262464453793378645814489859455941008821656688132006474212061073785432814857990819287792037483946274205846188143592041416440030150311066067050075380341187929951549884835972390345057002687178593787481143152364105929081766381930664448952201558203627601607487325502473130317375092755352760843180746715412599714031626636350245669629132839741801806832941308990559443687151132241207119931810231388357877614580417693024280649689724173836579123999996742097019684128203702323958760020639431814568302287315390879112203880126642619100920848627510089776959224842100909756910621621407510574909508964290859042169361245832302693826434922921427088233895562622585681027454619571803793035204849321481276787491425986170235768764832199515040748486106098927747194250075166237944113422348934338075241319200119739149034746526431273263314289942108619061831711764432470617718618236942992686947857736923555914551216641478411016724259458131503938478523581717507468618926036311898092900163371355548619745190013889626198480914719739595034373701895458443047927984662622131761117621896644764887759792632822835751244119483235181773474190084564950368415220995976654296500735344241609369874838892666123865871704377969789169226172634552428016071755253584031868783598842940511825526761120183279135979347707859128420811354966943939040553505656166663266783399936320558675706043210578362439930698121012519071011765623168893243992523329392185904898473867548709935003029992442122437564141447791954383449572567076883501358683743330527953083376140418621275190400433935432004696642472505076838164755888635145674575354159384050917406181227324381533637816754942738148566823847411424069264939312967010009775865682767100992868655536177916545961678145250658417712936785499524597967821359014348084107728147146026519682251129797719047660355548125159200686229454074750004572850199999448430405514698462411207028430037406124266316256447793420061563943530275376469246650642313521443916838780221809320369309165431170607637579409784382720798293075080744307633576995995923036138104650704612545121907964656708744133676678810049840264585997710607703330962279691870777289537851541158255793479138858741274705473714669526918536449613702523096687985714156031097621440496883376539895188232107394090501610585464751704571942232576242696130261919759010287776273870443632940099498345465562342463136401059815902088513280711087684917107937516949165704725521870580110336589044414683980883462279672827569614942777152234568563268217297502425770885894621345986720291373754414965522980073282075250340683918922317809866730961852374619906231163106818398226133289416731308699580443968080671813048959156264488797546929297959860883682913445250486680810332765151404117959059527934232855341894406440806787239879700218011350189874128059841031478380245568346637531774800277426528880379634659778414694425405434439256119158007383639753688937889761208779232841709008485171689643166107094780552947147789825359022119877597330284071975842830049516536965929880818594423913275317647994996062563217707652821495574973823398032356949979823774313588244966890005362510608453680354065818626855603127473173346591691263175960071359203538879234444676597428231950198360544591630611005712226260747621100861074716777139570977566200241287425252092434229361034729427012055723528213020219962078706995697108082158335495302931048284320765450816359939080865220720345820498366823253087352688156632818060936196881774001648267681700470914454793920982338833916391696898617576413239019616312189850373957310857239090150847332019062132725102231152154104963866093937640263476358176909127748283033244064558501224711081550531723947608525515809500549215154616186936183299533724263154465599810871769036596003145206933676738888234414444989755747404227767328003182267208491165214922897807869859548555680754008747658772467031588268245348940285063104576050864879731870210226430205184646505459163277406588717583275862529142296246654255795624674384761917487734800704715985188547838808825824599599700242273855829220123792688229160735934093397509291294678244060570943885278637512894772018584659976572702121481351655043684847017431496028817392341194609936896407460058049116245773433297314833682245466413556923496235536196635543659204824605516657491003268925064808250714791112602850095869898017850920073898677856489494408449543702306362791690040735065694580376751938777693554488999254697776473519770163065727954633874861522708107863199782628393833737670947789542075517315730589956524905970511024750522892418444270173164989067029984414014902825907794797702527466010870088783917049228074793183356533435107896060795250736515358340090694229520550897575947018468581286401357501938557141290342915935940765469138880807076020286465307389679044096068041404408170016451088019862794464155864724531193814840199610730140279045466434605572205282037106417981468353541662177378795228805969080537944174285001290341788295658043160587562325713726112742788752909009446695060200543772674431513198793352635581069948931013724812254747541572556273101012089350037576665324896117501171254102142495757792093883514416014837432602061878519936065368002099147294675051020246543824178906790439847542082279252540275861985519891126034888073023583545725786429729675734256790086739026852546076990341493799647546789408009183514888559875974006842002400616015808027206839856216692258712479108712492867673441102503961192751479897306357596955146129254955155870242109728733762704331553810819297465070489344606609944771533790156691566147282481363331114106371646924526487760115796679919635799372020292874110834952779204333604888499849502740636397166003326470640620282826096749505269536125393125203561739203257447038375533975687464644708684619145881936683634002885908905026068291576041396720602500176823012408549086973353526173382864652023320209826144643368061093950345809794243922235409884716234444592958688280205767710010460232104806509790762706424428775835708724607401209635984823026265780911868186173508653681698729696932697315988356226376189351356406018339329929942117047130350405344445399862533775205375064249545871282054533987096655596093402925693148066465885722697995562329943680516728898572824729312729048911391491581213276792054256678135354913444785554774099000297638675151900528586369770574616062963236643718434614901320052333848612532545348423632020292997737253909385128113806662432541903031640090361306205761579295686427332954651387040219956377910535214657103799008345421253955780165400350469136674309887265938599493622700008262928330030877584368724348492132900115052412436378913871874410672235045248133351740224936347483739592146586157198209518126483885553573883307970322933867950859836693268844907132340571217037589242735535351066622573875380025833921064319829895558870484629517571091594532385884393685321434431210297679277518798494229024086873973879936334313134250325169962325793282102137615017206395004542757429256421458944646896226390627743092249415048082115655416563880345617105578329158156198099082146967552755055930521788691730565999171383284255638229648798388004008432215901618755773111423316344856345578697271405085328860473740333778426657465874423831682286311431618332264154986627045969266648269970256982928395393784960884513491402817285333475605306165001766174414025132841290708675419780278783691312127312842413064469339751879567706272768914420759053067038282995242867900017403299611071955722267499278464994861500714189975633937555741949994521616256932815881026782898342229066514112102553965897352106034996441318003372651561085923797723814023530959070444904705295355910049356038117532852403915796505278082023212162116784707350062294167449806516726545474679252226480177073599664348322605859109067713341893601618506043309714583728034929133767725588989515870766074445608444839820220049566704044254528201168715154884467320186618913953438328921930974260829514091291627949292833582437278063078629828128489803972313486794112220287337525276953633623520030415009560054357819133921485636041689894511036255038256733321002858961743593682104720668661802089364710666940815534755175706004325676851691027280163875507023741326500888187583013379665841121606789680380205747799498629069081496109362501943016288966609756940600770367628487920437411638025309661430786860437288597354839543917473667273279068393838688553112787876260386946205797637978085315755504014303188957323945304536079766730146974826518065805463882463200150180845471519700893694953455896489887141597169177965285089173923000804236460618900621680306191462918652855889337866522048004196664388015296039025973312745555393487584266366495305195314903398423236696224711704765850201236376001475423904703246761668859310775348273991261541486829571152696956814237776728917001664127680303246158787365831565177166075583042840960103973284680633268971193390910824070924579405510796035445134093481455867601323163753425154573644991391610034136777562629880438126616233052095978266068774126536209981447819161867095677506878320625497341782258884292211475418805701521904623844136441883172915099086821060778144696706083491572535360694723246777112069672241522458984093786300819230727443154495012572559922448028411785984894947052930755726254828924518588284586084923009884540125905400161648176740171922708702863745634289889740547206463746581266824914257820303792109920881663703946084382590177632127194507743478456351864929770625156747080365554641235433815597877902321379583009641665666025144067379578360594139880973741875509907350097832509156227981072596260795055478357537777331400846604128256464258996671667232793907039636670596872993734038986842186393429462264700124972116042901255319202541548017924207223157212445830590812193335144609480661898681040809432012553887965245583841432814444053421423238498746946337460335695917926827992639178985649385578651777231358376058355157031472191449010483647245533944247059419696301856214420405802494801453262435797203460076935285155996572055613169743686066799119354251364458139506046869068603864098484317170338682235743956862339526343728995026648394357370522812001627862571030070960057857771681732532548084425242611738917012600721010444913024409235125343177345754544261465734625609969653113377770197572768592094376851325003552827987410753969142705273918199917705115844604403135451950808577731947571835284108582519968838399145734466037628708429393859954618586712598946794590110419822812710385406692077981470807981609095260668873939071925316483773639644840122885549768081927916970340189890740745004391962681768200493890743402572544594744133079473970057521494690442484800025172029185278034418246486428113458616738468342414423581494903255557365276072735148107213072192334826963532919341841578706924966155248364031372159974694335780909458067747600595344018164816569179176819922276594283845870110988878397526570802893746735341961704353344997603791981776367499568386063388451199998176251927811019847378104173975872680868473259701640434980222975672490892214316270898169930102405870160376330640197566077852143835381417033915724150037902591804619642361264477988255150987786153235034586896585940229501579482933835547848036762899915201251840055038817156870518629745633149058726959005564777519111956429153059809059763294753603673710446509696211336722243915761200320972591105105785865158576534293031440194467284375167276564466849816465372318174160273261923921158634180967853152129118751614439180896407605037136029796665790180624346941593605574915809693572875855626251498868903477365115650933126575329348952509196187472333908168267967030714567977660306744197148927380389156323888415718274759385315649026140585947368729594392496500948257536977418050627311415389238265919191965320322118767055751607467437367494079951142506609923909853954172892807983553707757865114774823360780006817956148471070164549699205516849556518916218137657619351239693604243512716122249669306867712123790414233100262965441905680094279367525647665753199649081858090128594579959922520975270487597984057500496863104128820279224057815749982993985016525572927253785810118120561176241715474729011842538047931444462760603961117642969561478649933933473150957342044659243370389508470917599881244666644327395773994616648048296758618114428796107639361844410727066960556197042427283092104521694337423685139465494835985182751967824787899741362123460974028566911425109037843852321742767981030210809865300263634583502562179995019373093533264684260319381954025810392472925966088697691809834584695041520816035167596670104804080402789825512119365295916440719202347128326517971258285633687680463261995926359203138440953353300109651105550463807453190805442938699100040008314459330526590519051230179846458064516779478759022772164558634006043358436111540656996857373388063242200513570898570919289724430007103184465729375431854480929082858612316124534578022786284653634646713548282996687360836330997938945612585263702331582367234064690840745307648383253857145419199121573053652671228223608646357042044689620908097440463617407980612354833318581036759673450654520891257919579928955692210559629964663846041164128011429969716687887043360570014182074373185249562206196360781289354493482863291328933331355202533796914299087412430279826841771905384220114205683537850996167098271882954514717211943599300701814899257980213765994462041276163366501045800231672109938554871985562304011800588204873484160541255607474260876847974303617408777407553321416648416757170069534660105772837830869068949523047046359725331777342908792227256125368002671637522499847590417043324250922770380688578941004816398652569006031304882240397863190434105468694909199602879113801812577593095127759531667288966529245070509492489252180178217850786404156709178682121798026483670268487764054835995367356151309772634365128081120585008284704903363651834214818088405608294540752892698743901347802222462543847010730215523259615336288505794937281671919938502984100542967560066406225374143698414932593130827598235165309241014068426847468117823937853239009599536659838922054379095450587199418294349304119298161089046254460965232180732167957882038691082467294981026285648085765747032616531350149445749264214842403799182458687991186391193639508524572442990309813570672140750530045924043276960407276039281935202667592694942243986500345844494324149563549238474056381154049427059945151371926574627102247011481352675678761983459435270976833567848596917066878677491684481916468527405716574199688245210989845489949378421543922328353666691429519464087135952910910366064109079264727834856764170246574467331169291846718724337521643503899972851159147219204215409872586058399630912550651199973518601441843120299956893755762741752178222955293372928012297952133617942081503648205859840112437299943329287103410813681615683388043435653501917213266191000415170842840607319717472480327540669556100547928230540171536898218949624464040212690021905126927581540485849661800461774314246496081960708645354927180510933923096874732429390104856841757215649190022988092429368824533667158140092838230875478469610196263927264032641538081833095936324544743151399849601096496977300803800139898449649720725740833161837741937986883424707216376822133249319474001816864153765352483487509271136201470878863619414451456105956278276397455724195557442540567955295274745769953994342348563753594963934518195597960324070543144409142824664018512532593921645914322269047858812918220501540229701302156332253819275104898668297114478412881168923718470025850150911646001782606540114743725683540510264852735580377906705806468574801785089560333681405751689407068628642936461716640389594313423059687076606635304187455227071900989568362833413630137830674202417431700825685800355138092087390495805430588249788277486410536128186711732336242686376109072151092724159700722843645046581135505169408830472724878661078646071289249940857172551963480290311479637652075788394585974621927449065688544811580779037458369593910563311715088432725340898230873057309860172713317472737333053355231098155081184754787424315991674216016489271877252737945961231633519740096753452221760835417566208341797684716872183662366026401201545330987184977481102271592384803545812341268351841973598257487336777172149469568864493265567425545719567789620225891239806603790669692021491764391756399767917250428120564304691425101398693161020951799195011758388001734711647916186442908522901281437618860277625280804366758012398698608549768604534017959099977042918172112369369412811383461427835167880213747254007088399123463306326203276651809208336440095922019967668549418976314834881274042433694533869491441277988988840350159072122459471617678431066700424762940077535570489062233658561032011348283931427668964425150996661826486110094540732713079833471839250355610522285056644355935854768053922391633492107053456543596999763378624694661937417199538659538384577945614850867913750464635822255837144926595665488100007360362370961589365679430766173047169002308007119260797445965020041291186156165314713135364687933919223128379214446106272613601701414668521230842743911680961997887215001437530506791626892085915656001811213233273047624510133210353747550393661229003383583579629875325520333721325250526076627562979506659056856867362175786586082281417019839947436332965104086403876415961567182652507927081054072528339517523900903655474764031128067184540112952141469239667140302642590927239872924752409504132875776201535625017515271574507224508688785219432387163592071443755961932088922247026787542210343419913057875174390955357528329866995973615914852903767381751702276988190193794401913453891438963585926404954232169340443256739380405133565004658077979099245099407723447672343263921534087547477651874684691829533190068085871576387688122092372854957238780284225669193086019136808530125249090199787771289935393764134151109878524401300091672284513867498975262119031132277991919210997554056795338939886976490176469991825952497496186623144937548776464829055965379759316418546379759753040779206904343659356948224791987841714152996504101411271145128594965582787216292421169350690198191772570989815875186098825949535736992576574790928708491620741531473309935469442705080453993972681794024208523634401084033487611703303425789109245034182644505241094954357087891768194297372883068496553645040691185806832316096473696651260225214660474195974862569697071221063166334107142793211880914560528858964444483621536508117960625067339090880290976887885176084625160993485245208613641135753174589321055848653901364454231399182908648738128141412499124130255780686353157950347142407463377439942704366542059027162409110621400105357118671134980337576235673054667531692841569227708869259827469740801565493898823528484335908137566125492744565565710607191887062615610382493819016017445025864592077705364761751274783444693859868622466142802276859106776673067114948710218677959940463357737788354796838409441326273698333165427093956364619071089274427304820747894270781296163334364595832637571060817366179103005645527899554490804999502025433444974644898999660061713705203172713656671401319891272915874595055557548729113818462974627181747713252595418577318894392169569555117076870271787321185324062584637118652708821370456984469301619150321565199952012081835584452079822974109035653604195886253356976509697966339456996140091592972763045301485463335086070670416908112296772025884861703085214849475789992782180213446245155856574315496155403031380366606425603050846597446170672775822664444806812686084205245111375846126249711001217150447870111902707608661743820091469989900793560122644330474086793439829473346922626761520978546908778488374293468295112773848503357183956998119295525427529139134097670472571100856184286139348919023400929961902441434701272205908624661613951379850557384554300102170373259835598257184912009648875027966275358578315936729855822911865787065857550143146406070800738280061281248922629058694194353383045922281041991480287972580259045924852067030673762588523275342636175899730967977505741474301099478256374364348797966490010561682838543441111208383506655709977418751990637746700988486577553281390040373410549299457217032910093704774545646340323616326245740045337939184595432271716974222539226527802555330618453299847882666406424020619516862345868111309845142103888393590028869219183501864405508201029490128373667442297785139736827697862511471109432259000493877708460161775738963731172028972973729793481381088533257056766459718602245796904931458276594507042611054696885851722207403216464699874432414708467636166029229747266045454346745769572166079378639923832801939763883773715205345435071814502380988712136140373662049645413986238731500377992054071739465214249885022651439333594775611427229982157946189606986357746752350206316012844737475279529208268224022357113141871444172159225625964334917126054115187433920293818499549804955426504520978332195024904928434597637783188355867564159994889337742289216282375332550906062207183578279480789719566600564378631368938244005812246546066683896042089130337788228215457705837236242719579124901234008319932391012438346340614382185124938863802143127394903460958366885473514630065327136437400548749937100751041844401707758525399892577112642154822569087505717560250351048410417523392649846157800400246638563909570779789501284386652829928984770835786396508918964499384117537937295251385082883118857273767148520276906631094771900275235487567835561005363943754763493079455928291148474904566821132177095815046429974988098988720432673688617204241533486640157793298701873403200755697597140114117060902720037968407356128800745451505271296113670833606657914023327578860291188384036977375234088898240922921670803835178197795995135050062111638061235774504447242609960595524816666052886320142462978255806114684013447602556808397645663049542241442518798382912140217862681849013824822873606035908367587233948086221094567872723821010377659734578208222172359904226026951816038644224603169093848529867506142369631962497961124594901972497647013023956911095075228640761323032562655639921258300271277604769895297707385535307746085898897451518576227856524232928704239448559992676903081654476090120555557881387420565454168048320925119576323344440856945953753032030300402951631547213554889311180893035171728795674207709356397946194704103449329325108531211802306595576880689664362377633334491241603480270863095960387424484874385016221092995903482982887218027047032561275535381760415320929316697559198766025735809845289504840923981468956018714123236961420057287786916517151076573433866161516306644736384066645950490920394285959547246567428150280489897628287228352128221141746195292559176268923770159389689585947324382907457922221335860273839461371432002206103974193284097380489471854046579440996040700010604854730522565353282382744058204186799638092700605146157495200880444951073759041839529618682993757675264874550490584863180855363940283986836980501477346594810570939520964336181970218071684012713603143382363909637516611628996986246758738191523466182162810174700913831192829007560137025433131783220666986051577589878690423290994645132079864165931567191792691091349477074992325040849649425685781116382071423732447284789585601173243550859310416241410028156532964109624567614792269140918542744137202900025980968036692067389473235830620690770034868128841772809755025640701780810819363841631893926268686625379994719380228677158549392471114937685483916751220520056058161737532110528753848027727032036759599725261000512521708798284273240625440639030634723305678830543871842688558625764065506727200395887710305186145526396934446628064648020900546685079024227379718603699868200043970261966468518845841960182479482543858146223063767324046526480627962787593206214949871021632599037619302762897888294663679892670537117925507778425286706477848697187499513894007218179506894188238749009553564139958204572199252442525360578038329640910300780469512117609626000068680713134688454903429255075686271281893614437169934387915296769976081682787617519702121433131071418084045333088998472760337317643024965949870821273993670772406228296157821423632504535640377025726293408457146433177721613909340785848120678619808792561694697794374196688250689950579450043323463203708158804839163171135777773024999306573926071238631684180949280924650917249709210167626844675118413700421601481785858971708527400644887394939402994007412679148043259978449018900720364855308186157947593581513154603827211648368708369412396206880148447169259220490839398439145907198258755847761381121701593158043663442449619373109352835610576841631803944779737308060292378654979251001996708917116306169135324250344099055927852610093536656106504988810628518259326466565022924325775516806368950971994284546461817794271441982400910522078182275933462541325086529748563083973125105763711312713311808720898657465201428228730817349424669964425628775365111132415250650435437493167868865582302772930867956524736590329861615369885412749178065112454206040298597763842339462003127925866593814973702838911417631701749793160016390516598420904738699189053115793013895755372193352924323287369422056774797918296013295077651822619103926463913488746784917151793614721296526521454765455264457468456935829446896405354581365852608452813511282630834544281163581544076124961644741118097715835209741979419165992293733857390240384090781019205294905387299869397079664871731232701762039513840342189803973829392861611576405070135724128907310436932115441348060695061994063406708716421923402048293117462262735144919397023482324912847002189939267322909760396972548350767470058615259709959111707959820509209240844148006772494440200384423106863991141400849811760992835242103503316734131843517608945202924838461951368204887803548315112640276711285869155716347364646956319898131070995020101092697620770725311125740649427077495411449337553770229827794790784615029931403055011714116759186678144102357006211814857038496249024615569271325647293878533248393022385806152773684192539714445395935589672845676880163473878062096889058876350734531743707618319278704602870207949863794706725670542861748779468381345718875489316016823867091721159087486502456738421794151027960905049784401907985556695364583136658292588606190721805784248573000168147944029391110870530513851821323201409027000867781353901119547904185264101985720111756851001827356548031891524668957292007036214425032473276329477730038026518040394854956463946867622677589479795655416555433917681981626931909082699545236034827001360604990810419340100450838528089607353583871275772667826449292547166418498618340752979127828330702355830329433246662712857267775678892582490640797136339866912896400505145510377914078064909318060010011591710808355184988916948301674678819866497099409826256090351740498833496592108117842096320669883594560338296441837551387146414636121880044832548502463237124553377417723681986308645612395171181831031807823234473960581379161956297695534205648919583303814149964966551676091709945497455420832104300450882102531143621254859205163283237168753185496937320493089001945165715543978260807002160536894167285790045956713700886716806192904804440806582931398475312155400182567952423503391378185384877403131896158781808588390619653180831405815873504268432241166942149215628768477526546596848900021315759086216140935063228675078630753451424685086460660903672002827685390216548958955335981610284597393378856465020567667712116586868530214233718411767968160390043972361634888183539354292590462997415410222600457296517227540400979248425657783762691557270809431602939374619529603666931718749720576709181755084034859439261247769672808488329743742156647032354896416170915758596057332597740691773975055956760887025414688049468090515152306772542056305985279087597452053697662989577846977850845156616459883067130043082336248779278022953782069077080804044828006991927109450062751067107661200178579983195820321461633740354409729184789253805388286279853361646747882214581952474669180137322113152329317088968395517178018329153010977675425263875007039574099677665106877289236925101635216602977010297286351149363967518840719846116925088677088520623072851709894248990190839496294184649833629133391803207730608070541696147176154261206546885938452948434077684086843931173855451201332311968115619191805207990453951646082368490321600021250842083409247230535867905317227778790663594204917819271690269422307102332318197814667076051591436465546042493544414548520627604736491576872598146502112788994172155404641378209969883922771003060066767245501004458642090655032856285032156108067952782887458999012954333317986168726601084124610734958139102862802724281922739345054229085000644488022932725409194991264375038238077405638229863209899423296500569632053857378595581603604800937375900892056857934145074025420440074383326973336566461608636666095974272241970500793092359303295282033960498737158685102075946703366390088756090685254753686341802611990253829671126276981085274810298845396831255573211605115603327556662465887751508224977557372683479691438302597767250138479867688201159921431768003381827410976356329768167981760646518775765209389028963765770571504069050917201578341620581904227795823022078303721785465357987303305091512080045756248653668154619865873605579019041031762923909344775866876631601216099662702468656441397301603639095836285985841412445085510684048664101606409739734473588796057142310112879783145801198473065692338533475357755566005934257018547768072119697044665828853809825018662665706949769101331731951488597315629277292142555307815605733751527113244938394412648873524133558110428974356480890184334799325948650716280194282230807472584658875965247271135402838987230808646540781251352539518105102242818776549567131325693289855033287454070547979674232011618150102665188068654930614137331283220753403271740344131770562260881497837781681520985841980146445243685497307180278236376318870369519444519070652767050993771513403903208807141244953536289034965486067421789377202905413256165631924498973562131088435607516279199487331170256628711702444978425801913123579854246913111295956338529528979961043684748680702209785288652749847906848992954676601522445459066838573866027601793784641234702358236878287483995392242326307264486736996540398099667539467738120430088470001856407953450926677683792437101919965301942606178253452571546139194799476463397697339773501761090035395731509280302411903548745478437289939502365666402004829110587453632881932624583239928981077396240943175855541597739171237313779928335092058655818094340093459219135945666623063227071295632677677430153107183155450092403847117970338375983710443955697271846643554242363137350759794020234772132234097667930363641153182795436267908108129589524543690622026963659289768759614204789142585006399021174496992210707101532837006938210945465697892958702239104340224313100333254165555797382318981150757932279648940543161534423649362528005678535108344278733353613690030411724423604852499266453836413776630900799862888186736297883442974933998346652004552212858282882423874672616398147478656759511927517448845071347392948144294356784558336130243498985947537011192272567866047739505792896181181896922912483253948347869539657485574257428055280504515744159565143691910422193921636173664770495392289079777860026824909536868797744663667649120094991900959128795110338053184502700845365348969037890842944048759385745383585812088002668523250941646168578783301102012407205010417456649393126978413234214575313208854692799036447410225622013601644816362632568986359583287144420499631891403080825341702054873166824245258999452152082967942794519184266753813378627964913000042722718535400432535767827991019347409967991155217727726694723788626679947869071935697488147523220973229180159491742434588970597182196097642173435540289605692529568639802173699028923199764506727471295733155138533542266070530597597342373863005280678459202181966965759197735585541374037145494406425885388222024030208761432861722096843564359445812944466598017892085151652188527511449492992912681108775982891666724170026343368005975020747278131044853850023376341000339821489087662590694607970794578924070445427122023185413223944609392931099187832897487422284601153648056539223595821145337350338032403131500635481951878370017344013664707908872468677818041189154216458042606443732118349833199432173869358727487793506698760161505379507144298748558866744323813047219220703217408070285377096509643425376293535052463245158795533364829889624548976394100261320883406543563183537100324650996134533821130274100105970650072305069894368331084066498232038890392272966560269151424934620352712778303786703023819859696318016872705164237676191937993981471565133522374749110746958706441745047954479032976572064180047852138664367209726176592965937237170457173141705421853912432504007627726555730307621404262328382410033737386332061367009297005851152726730494268454151025544909300450824039301924891677880577421312464939536415766148825994953094754741349529806180788561298362534593404511006019378400436325964109830275889949290343785420648783113899942523227434623884459219244055452028850567073185944341464587779774745759763850032865832500939740621933023777088279850872584431546723182035901216464731582513631248488912839910680710453919878103240022000264796712825222598684576401606828244373975254865212834978895821934700659454582925888646968020265043488550576009365837505660805765167579224322955605341565343167623532200047500291576067710501814079704399501816988719689291644329230709085057814103468814409123372307367208174701050824281385995213885249802915990595190849302243139282646901709831548074563645248596722927216180429469212445758279945352983958057711696483432118853602623165990083906514859962093607989331687557962651178535567926234397841705434978398563615016058232607624478845749404208318614114408292539717272377458636826131288921763327305545725237036744454440109984388862428369461331798719803583313796499421292444827439763948078167072312381089632136704759861568148360062528311169741701425552626027753730453622208993613281816799489884854030177137886955000324192172721044701167865639228808768558461546536375852803087843263346413452949125691572624512993324863947451651629353849292635636233460931314302479938955327099581447956102984718346061433816274102366749564066833551417926349614997659896321588605000893712263065161264554401812008622512750872206431940181288438474344807838579288689339123883297927163346651367723992846507016476784778749138867000444939676962245924136039089775651464013476681195779935326322459969121478220418256025084734438405670155236914745078321396664359330148494706207898721938842682781252962121703039454732519956945272279862323731660389614093869715474571206984659343753101699370442635013838313736096133097196748615532197583235282665238182652428163300635582928497686872071790485607997836349762053991173056721339642999345080225139883175867206853778875631169414422129821700113410818148008384334145344034862584780253174010366990469245860505383757681216879489473562100044014825797564